*{box-sizing:border-box}
body{margin:0;min-height:100vh;color:#fff;font-family:'Hiragino Kaku Gothic ProN',Meiryo,sans-serif;
 background:linear-gradient(135deg,#7ec850,#2e7d32);background-attachment:fixed}
a{color:inherit}
.wrap{max-width:30rem;margin:0 auto;padding:1.2rem 1rem 3rem}
.center{min-height:100vh;display:grid;place-items:center;text-align:center}
.card{background:rgba(0,0,0,.28);padding:2.2rem 1.8rem;border-radius:20px;width:100%}
h1{font-size:2.5rem;margin:0 0 .2rem}
.sub{opacity:.85;margin:0 0 1.5rem;font-size:.95rem}
.btn{display:inline-block;background:#5865F2;color:#fff;text-decoration:none;border:0;cursor:pointer;
 padding:.85rem 1.6rem;border-radius:10px;font-weight:bold;font-size:1rem;font-family:inherit}
.btn.wide{display:block;width:100%}
.btn.ghost{background:rgba(255,255,255,.18);font-weight:normal;font-size:.85rem;padding:.45rem 1rem}
.btn.green{background:#f5a623;color:#3a2000}
.btn:disabled{opacity:.5;cursor:not-allowed}
.err{background:rgba(200,40,40,.9);padding:.7rem;border-radius:8px;font-size:.85rem;margin-bottom:1rem}
.ok{background:rgba(255,255,255,.2);padding:.7rem;border-radius:8px;font-size:.87rem;margin-bottom:1rem}
/* ヘッダ */
.head{display:flex;align-items:center;gap:.7rem;background:rgba(0,0,0,.25);
 padding:.7rem .9rem;border-radius:14px;margin-bottom:1rem}
.head img{width:44px;height:44px;border-radius:50%;border:2px solid rgba(255,255,255,.6)}
.head .who{flex:1;min-width:0}
.head .nm{font-weight:bold;font-size:.98rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.head .mt{font-size:.74rem;opacity:.8}
.pt{color:#ffe66d;font-weight:bold;white-space:nowrap}
/* 地図で拠点選び */
.map-card{padding:1.6rem 1.1rem 1.3rem}
.regions{display:flex;gap:.35rem;overflow-x:auto;padding:.1rem 0 .55rem;margin:0 -.2rem;scrollbar-width:none}
.regions::-webkit-scrollbar{display:none}
.chip{flex:0 0 auto;background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.25);
 border-radius:999px;padding:.32rem .75rem;font-size:.78rem;font-family:inherit;cursor:pointer}
.chip.on{background:#ffe66d;color:#3a2a00;border-color:#ffe66d;font-weight:bold}
.mapbox{background:#cfe8f3;border-radius:14px;overflow:hidden;touch-action:manipulation}
#jmap{display:block;width:100%;height:auto;max-height:62vh}
.oki-frame{fill:none;stroke:#7fa6b8;stroke-width:1.2;stroke-dasharray:5 4;vector-effect:non-scaling-stroke}
.pf{stroke:#fff;stroke-width:1;stroke-linejoin:round;cursor:pointer;transition:fill .15s;
 vector-effect:non-scaling-stroke}
.pf:hover{filter:brightness(1.08)}
.r-hokkaido{fill:#9ccc65}.r-tohoku{fill:#aed581}.r-kanto{fill:#dce775}.r-chubu{fill:#ffd54f}
.r-kinki{fill:#ffb74d}.r-chugoku{fill:#f48fb1}.r-shikoku{fill:#81d4fa}.r-kyushu{fill:#ba9ee0}
.r-okinawa{fill:#4dd0c4}
.pf.sel{fill:#e53935;stroke:#fff;stroke-width:2.5}
.lbl{fill:#2b2b2b;text-anchor:middle;dominant-baseline:central;pointer-events:none;font-weight:bold;
 paint-order:stroke;stroke:rgba(255,255,255,.8);stroke-width:3px;vector-effect:non-scaling-stroke}
.picked{background:rgba(255,255,255,.12);border-radius:12px;padding:.75rem .9rem;margin:.8rem 0;text-align:left}
.picked.on{background:rgba(255,230,109,.2)}
.pk-name{font-weight:bold;font-size:1.15rem}
.pk-info{font-size:.8rem;opacity:.88;margin-top:.15rem}
.alt{margin-top:1rem;font-size:.82rem;text-align:left}
.alt summary{cursor:pointer;opacity:.8}
.alt select{margin-top:.5rem;width:100%;padding:.55rem;border-radius:8px;border:0;font-size:.95rem;font-family:inherit}
/* 都道府県 */
.prefs{display:grid;grid-template-columns:repeat(auto-fill,minmax(6.6rem,1fr));gap:.5rem;margin:1rem 0}
.pref{background:rgba(255,255,255,.14);border:2px solid transparent;border-radius:10px;
 padding:.55rem .3rem;text-align:center;cursor:pointer;font-size:.8rem;color:#fff}
.pref:hover{background:rgba(255,255,255,.24)}
.pref input{display:none}
.pref .b{display:block;font-size:.68rem;opacity:.8;margin-top:.15rem}
.pref.sel{border-color:#ffe66d;background:rgba(255,230,109,.22)}
/* 圃場 */
.farm{display:grid;grid-template-columns:repeat(auto-fill,minmax(7.5rem,1fr));gap:.6rem;margin:.8rem 0 1.2rem}
.blk{aspect-ratio:1;border-radius:12px;display:grid;place-items:center;text-align:center;
 font-size:.78rem;padding:.4rem;border:2px solid rgba(255,255,255,.22)}
.blk .ic{font-size:1.7rem;display:block;margin-bottom:.2rem}
.blk.s0{background:repeating-linear-gradient(45deg,#6d5236,#6d5236 7px,#7a5c3d 7px,#7a5c3d 14px)}
.blk.s1{background:repeating-linear-gradient(90deg,#8b5e34,#8b5e34 6px,#a06b3c 6px,#a06b3c 12px)}
.blk.s2{background:linear-gradient(#5aa832,#3d7d22)}
.blk.s3{background:linear-gradient(#e8b33a,#c98a1e);color:#3a2600}
.sec{font-size:.82rem;opacity:.85;margin:1.4rem 0 .4rem;letter-spacing:.04em}
.foot{text-align:center;margin-top:1.6rem}
/* 行動力・経験値 */
.fastband{background:rgba(0,0,0,.35);border:1px dashed rgba(255,255,255,.4);border-radius:8px;
 padding:.4rem .7rem;font-size:.75rem;margin-bottom:.7rem;text-align:center}
.meters{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.meter{background:rgba(0,0,0,.25);border-radius:12px;padding:.6rem .75rem}
.m-top{display:flex;justify-content:space-between;align-items:baseline;font-size:.8rem}
.m-top b{font-size:1.05rem}.m-top small{opacity:.7;font-weight:normal}
.bar{height:8px;background:rgba(255,255,255,.18);border-radius:4px;margin:.35rem 0;overflow:hidden}
.bar i{display:block;height:100%;background:#ffe66d;border-radius:4px}
.bar.exp i{background:#7ce0ff}
.m-note{font-size:.68rem;opacity:.75}
/* 畑の操作 */
.blk{aspect-ratio:auto;min-height:8.2rem}
.blk-in{display:flex;flex-direction:column;align-items:center;gap:.15rem}
.blk .bl{font-size:.75rem}
.blk .bn{font-size:.68rem;opacity:.8}
.abtn{margin-top:.3rem;background:#5865F2;color:#fff;border:0;border-radius:8px;
 padding:.4rem .8rem;font-size:.8rem;font-family:inherit;font-weight:bold;cursor:pointer}
.abtn.gold{background:#f5a623;color:#3a2000}
.abtn:disabled{opacity:.45;cursor:not-allowed}
/* 種袋 */
.seedbag{display:flex;flex-wrap:wrap;gap:.45rem;margin:.5rem 0 .6rem}
.seed{background:rgba(255,255,255,.14);border:2px solid transparent;border-radius:10px;
 padding:.45rem .7rem;font-size:.8rem;cursor:pointer;display:flex;align-items:center;gap:.3rem}
.seed input{display:none}
.seed.sel{border-color:#ffe66d;background:rgba(255,230,109,.2)}
.seed .si{font-size:1.05rem}
.seed .sq{font-weight:bold}
.seed .sg{opacity:.7;font-size:.68rem}
/* 記録 */
.recs{display:flex;flex-wrap:wrap;gap:.4rem}
.rec{background:rgba(0,0,0,.25);border-radius:999px;padding:.3rem .7rem;font-size:.78rem}
