:root{
  --paper:#EDE7D6;
  --paper-deep:#E3DBC5;
  --ink:#2B2620;
  --ink-soft:#5C5648;
  --paddy:#3E5C3A;
  --paddy-light:#6E8C5C;
  --gold:#C89B3C;
  --gold-deep:#A97F27;
  --indigo:#2E4057;
  --rust:#A8542E;
  --card:#F6F2E7;
  --line:#D8CFB8;
}
*{box-sizing:border-box;}
html,body{margin:0;height:100%;}
body{
  font-family:'Noto Sans JP', sans-serif;
  background:var(--paper);
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
}
#app{
  max-width:480px;
  margin:0 auto;
  min-height:100vh;
  display:flex;
  flex-direction:column;
  position:relative;
  padding-bottom:70px;
}
.screen{display:none;}
.screen.active{display:block;}

.topbar{padding:14px 20px 16px;position:sticky;top:0;background:var(--paper);z-index:5;}
.topbar .eyebrow{font-size:11px;letter-spacing:.2em;color:var(--paddy-light);font-weight:700;}
.topbar h1{font-family:'Shippori Mincho', serif;font-size:24px;margin:2px 0 0;}
.topbar .sub{font-size:12px;color:var(--ink-soft);margin-top:4px;}
.topbar-back{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-soft);cursor:pointer;margin-bottom:4px;}

.list{padding:4px 16px 24px;}
.vcard{
  background:var(--card);border:1px solid var(--line);border-radius:16px;
  padding:16px;margin-bottom:12px;position:relative;overflow:hidden;cursor:pointer;
}
.vcard::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--cat-color, var(--paddy));}
.vcard-top{display:flex;justify-content:space-between;align-items:flex-start;}
.vcard-name{font-family:'Shippori Mincho', serif;font-size:18px;font-weight:700;}
.vcard-cat{font-size:10px;font-weight:700;padding:3px 9px;border-radius:999px;background:var(--cat-color, var(--paddy));color:#fff;}
.vcard-dates{display:flex;gap:14px;margin-top:10px;font-size:11px;color:var(--ink-soft);}
.vcard-dates b{display:block;color:var(--ink);font-size:12px;}
.growthbar-track{height:8px;border-radius:5px;background:#DDD5BB;overflow:hidden;margin-top:12px;}
.growthbar-fill{height:100%;border-radius:5px;background:linear-gradient(90deg, var(--paddy) 0%, var(--paddy-light) 45%, var(--gold) 100%);}
.growthbar-meta{display:flex;justify-content:space-between;margin-top:6px;font-size:11px;color:var(--ink-soft);}
.growthbar-meta .est{font-weight:700;color:var(--gold-deep);}
.vcard-empty{margin-top:10px;font-size:11.5px;color:var(--rust);background:#F3E4DB;border-radius:8px;padding:6px 10px;display:inline-block;}

.fab{position:fixed;right:calc(50% - 240px + 18px);bottom:82px;width:50px;height:50px;border-radius:50%;background:var(--paddy);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 18px rgba(62,92,58,.4);font-size:24px;z-index:20;border:none;cursor:pointer;}
@media (max-width:520px){.fab{right:18px;}}

.hero-plant{margin:0 16px 4px;background:linear-gradient(160deg, var(--indigo) 0%, #24344a 100%);border-radius:18px;padding:20px;color:#F0EDE2;}
.hero-plant .vname{font-family:'Shippori Mincho', serif;font-size:22px;font-weight:700;}
.hero-plant .vcat{font-size:11px;opacity:.75;margin-top:2px;}
.hero-gdd{margin-top:18px;display:flex;align-items:baseline;gap:8px;}
.hero-gdd .num{font-family:'Shippori Mincho', serif;font-size:34px;font-weight:700;color:var(--gold);}
.hero-gdd .unit{font-size:13px;opacity:.8;}
.hero-gdd .goal{font-size:12px;opacity:.65;margin-left:auto;}
.hero-track{margin-top:10px;height:10px;background:rgba(255,255,255,.15);border-radius:6px;overflow:hidden;}
.hero-track-fill{height:100%;background:linear-gradient(90deg, var(--paddy-light), var(--gold));border-radius:6px;}
.hero-estimate{margin-top:14px;font-size:12.5px;background:rgba(200,155,60,.18);border:1px solid rgba(200,155,60,.4);border-radius:10px;padding:8px 12px;display:flex;justify-content:space-between;}
.hero-estimate b{color:var(--gold);font-family:'Shippori Mincho', serif;font-size:15px;}

.section-title{font-family:'Shippori Mincho', serif;font-size:14px;font-weight:700;color:var(--ink-soft);margin:20px 16px 10px;}
.tl-row{display:flex;gap:12px;padding:9px 16px;border-bottom:1px dashed var(--line);align-items:center;}
.tl-label{font-size:12.5px;color:var(--ink-soft);width:64px;flex-shrink:0;}
.tl-date{font-size:13.5px;font-weight:600;flex:1;}
.tl-date.empty{color:#B8AF95;font-weight:400;}
.tl-date input{font-family:inherit;font-size:13.5px;border:1px solid var(--line);border-radius:6px;padding:3px 6px;background:var(--card);}

.yield-card{margin:0 16px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 16px;}
.yield-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;font-size:13px;}
.yield-row input{width:110px;text-align:right;font-family:inherit;border:1px solid var(--line);border-radius:6px;padding:4px 8px;}
.yield-row.result{border-top:1px solid var(--line);margin-top:4px;padding-top:10px;font-weight:700;color:var(--gold-deep);}

.diary{padding:0 16px 16px;}
.diary-item{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:8px;font-size:12.5px;}
.diary-item .d-date{font-size:11px;color:var(--ink-soft);font-weight:700;margin-bottom:3px;display:flex;justify-content:space-between;}
.diary-item .d-del{color:var(--rust);cursor:pointer;}
.diary-add{text-align:center;font-size:12.5px;color:var(--paddy);border:1.5px dashed var(--paddy-light);border-radius:12px;padding:12px;font-weight:600;cursor:pointer;}
.diary-form{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:10px;}
.diary-form input, .diary-form textarea, .diary-form select{width:100%;font-family:inherit;font-size:13px;border:1px solid var(--line);border-radius:8px;padding:8px;margin-top:6px;background:#fff;}
.diary-form button{margin-top:8px;background:var(--paddy);color:#fff;border:none;border-radius:8px;padding:8px 14px;font-size:13px;cursor:pointer;}

.set-section{margin:18px 16px;}
.set-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 16px;}
.set-row{display:flex;justify-content:space-between;align-items:center;}
.set-row + .set-row{margin-top:12px;padding-top:12px;border-top:1px solid var(--line);}
.set-k{font-size:13px;color:var(--ink-soft);}
.set-v{font-size:13.5px;font-weight:700;}
.set-v input, .set-v select{font-family:inherit;font-size:13.5px;font-weight:700;text-align:right;border:1px solid var(--line);border-radius:6px;padding:4px 8px;width:120px;}
.set-note{font-size:10.5px;color:#9c9683;margin-top:2px;}
.variety-master-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--line);}
.variety-master-row:last-child{border:none;}
.vm-name{font-size:13px;font-weight:600;}
.vm-cat{font-size:10px;color:var(--ink-soft);}
.vm-gdd input{font-size:12.5px;color:var(--gold-deep);font-weight:700;background:#F3E9D2;padding:4px 8px;border-radius:8px;border:1px solid var(--line);width:80px;text-align:right;}
.save-btn{width:100%;background:var(--paddy);color:#fff;border:none;border-radius:10px;padding:10px;font-size:13px;font-weight:600;margin-top:10px;cursor:pointer;}

.tabbar{position:fixed;left:0;right:0;bottom:0;height:66px;background:var(--paper-deep);border-top:1px solid var(--line);display:flex;max-width:480px;margin:0 auto;z-index:10;}
.tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:#9c9683;font-size:10.5px;font-weight:600;cursor:pointer;border:none;background:none;}
.tab.active{color:var(--paddy);}
.tab svg{width:22px;height:22px;}

.empty-state{padding:40px 24px;text-align:center;color:var(--ink-soft);font-size:13px;}
