:root{
  --soil-dark:#3e2a1d; --soil:#5b3d28; --soil-light:#8a6240;
  --grass:#4f7942; --grass-dark:#3a5c30;
  --wheat:#d9a441; --cream:#f3e9d8; --cream-dark:#e3d4b6; --ink:#2b2117;
  --sky:#7fa8c9; --water:#3d7ea6; --warn:#b3492a; --ok:#4a7c3f; --gold:#c89a3c;
  --herb:#2f6a82; --panel:#fffaf0; --shadow:0 4px 14px rgba(43,33,23,.18);
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{font-family:'Inter',sans-serif;background:radial-gradient(ellipse at top, #cfe3ef 0%, #aecde0 38%, var(--sky) 70%);color:var(--ink);min-height:100vh;padding-bottom:40px;}
h1,h2,h3{font-family:'Fraunces',serif;margin:0;}
button{font-family:'Inter',sans-serif;cursor:pointer;border:none;}
.mono{font-family:'JetBrains Mono',monospace;}

/* Топбар */
header.topbar{background:linear-gradient(180deg,#fffdf6,var(--cream));border-bottom:3px solid var(--soil);padding:14px 18px;position:sticky;top:0;z-index:50;box-shadow:var(--shadow);}
.topbar-inner{max-width:1260px;margin:0 auto;display:flex;flex-wrap:wrap;align-items:center;gap:14px;justify-content:space-between;}
.brand{display:flex;align-items:baseline;gap:10px;}
.brand h1{font-size:1.5rem;font-weight:700;color:var(--soil-dark);letter-spacing:.3px;}
.brand .sub{font-size:.72rem;color:var(--soil-light);text-transform:uppercase;letter-spacing:1.5px;}
.stat-strip{display:flex;flex-wrap:wrap;gap:8px;align-items:center;}
.stat-pill{background:var(--panel);border:1.5px solid var(--cream-dark);border-radius:9px;padding:6px 12px;display:flex;align-items:center;gap:6px;font-size:.85rem;font-weight:600;box-shadow:0 2px 4px rgba(0,0,0,.06);}
.stat-pill .icon{font-size:1.05rem;}
.stat-pill.money{border-color:var(--gold);color:#7a5b18;}
.weather-pill{display:flex;align-items:center;gap:6px;border-radius:9px;padding:6px 13px;font-weight:700;font-size:.85rem;color:#fff;box-shadow:0 2px 4px rgba(0,0,0,.15);}
.w-sunny{background:linear-gradient(135deg,#e8a73c,#d98c1f);} .w-rain{background:linear-gradient(135deg,#5a8bb0,#3d6f93);}
.w-storm{background:linear-gradient(135deg,#5a5570,#403c54);} .w-frost{background:linear-gradient(135deg,#8fb3c4,#6a93a8);}
.w-drought{background:linear-gradient(135deg,#c97a3f,#a3582a);} .w-snow{background:linear-gradient(135deg,#aac4d8,#8aa9c0);}
.next-day-btn{background:linear-gradient(180deg,#6b9657,var(--grass-dark));color:#fff;font-weight:700;font-size:.85rem;border-radius:9px;padding:9px 18px;box-shadow:0 3px 0 #2e4924, 0 4px 8px rgba(0,0,0,.2);transition:transform .08s;}
.next-day-btn:active{transform:translateY(2px);box-shadow:0 1px 0 #2e4924;}
.next-day-btn:hover{filter:brightness(1.06);}

.daytime-pill{display:flex;align-items:center;gap:7px;background:var(--panel);border:1.5px solid var(--cream-dark);border-radius:9px;padding:6px 12px 6px 10px;box-shadow:0 2px 4px rgba(0,0,0,.06);min-width:150px;}
.daytime-pill .dt-icon{font-size:1.15rem;line-height:1;transition:transform .4s;}
.daytime-pill .dt-info{display:flex;flex-direction:column;gap:3px;flex:1;min-width:90px;}
.daytime-pill .dt-label{font-size:.68rem;font-weight:700;color:var(--soil-dark);display:flex;justify-content:space-between;gap:8px;}
.daytime-pill .dt-label .dt-eta{font-weight:600;color:var(--soil-light);font-size:.62rem;}
.day-progress-track{height:6px;border-radius:4px;background:var(--cream-dark);overflow:hidden;border:1px solid var(--soil-light);}
.day-progress-fill{height:100%;width:0%;background:linear-gradient(90deg,#e8a73c,#c89a3c);transition:width 1s linear;}
.daytime-pill.tod-night .day-progress-fill{background:linear-gradient(90deg,#4a5a8a,#7fa8c9);}
.daytime-pill.tod-dusk .day-progress-fill{background:linear-gradient(90deg,#c9703f,#c89a3c);}
.daytime-pill.tod-dawn .day-progress-fill{background:linear-gradient(90deg,#e88ba0,#e8a73c);}

/* Основной контейнер */
.app-shell{max-width:1260px;margin:18px auto 0;padding:0 16px;display:flex;gap:16px;align-items:flex-start;}
.side-nav{display:flex;flex-direction:column;gap:4px;background:var(--panel);border:1px solid var(--cream-dark);border-radius:14px;padding:10px;box-shadow:var(--shadow);min-width:172px;position:sticky;top:90px;}
.nav-btn{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:9px;font-weight:700;font-size:.85rem;color:var(--soil-dark);background:transparent;text-align:left;transition:.12s;}
.nav-btn .nico{font-size:1.05rem;}
.ui-icon{display:inline-flex;align-items:center;justify-content:center;}
.ui-icon svg{width:18px;height:18px;stroke:currentColor;}
.nav-btn .ui-icon svg{width:19px;height:19px;}
.stat-pill .ui-icon svg{width:16px;height:16px;}
.nav-btn:hover{background:var(--cream);}
.nav-btn.active{background:var(--grass);color:#fff;}
.nav-badge{margin-left:auto;background:var(--warn);color:#fff;font-size:.62rem;border-radius:8px;padding:1px 6px;font-weight:700;}
.nav-btn.active .nav-badge{background:rgba(255,255,255,.3);}

.content-area{flex:1;min-width:0;}
.page{display:none;}
.page.active{display:block;animation:fadeIn .18s ease;}
@keyframes fadeIn{from{opacity:0;transform:translateY(3px);}to{opacity:1;transform:none;}}
.panel{background:var(--panel);border-radius:14px;border:1px solid var(--cream-dark);box-shadow:var(--shadow);padding:16px;}
.panel h2{font-size:1.15rem;color:var(--soil-dark);margin-bottom:12px;display:flex;align-items:center;gap:8px;}
.panel + .panel{margin-top:14px;}
.panel-sub{font-size:.76rem;color:var(--soil-light);margin:-6px 0 12px;}

@media(max-width:880px){
  .app-shell{flex-direction:column;}
  .side-nav{flex-direction:row;overflow-x:auto;min-width:auto;width:100%;position:static;}
  .nav-btn{flex:1;flex-direction:column;gap:2px;font-size:.63rem;padding:8px 4px;text-align:center;white-space:nowrap;}
  .nav-badge{margin-left:0;}
}

/* Дашборд */
.dash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:14px;}
.dash-card{background:var(--cream);border-radius:12px;padding:14px;}
.dash-card .big{font-size:1.6rem;font-weight:800;color:var(--soil-dark);font-family:'Fraunces',serif;}
.dash-card .lbl{font-size:.68rem;color:var(--soil-light);text-transform:uppercase;letter-spacing:.5px;font-weight:700;}
.dash-alert{font-size:.82rem;background:#fbe1de;color:#7a1f1f;border-radius:8px;padding:8px 11px;margin-bottom:7px;font-weight:600;}
.dash-ok{font-size:.84rem;color:var(--soil-light);}
.price-board{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-top:6px;}
.price-item{background:var(--cream);border-radius:8px;padding:7px 10px;font-size:.76rem;display:flex;justify-content:space-between;align-items:center;gap:6px;}
.price-item .trend-up{color:var(--ok);font-weight:700;} .price-item .trend-down{color:var(--warn);font-weight:700;}

/* Поле и сад */
.field-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;}
.toolbar-btn{background:var(--soil);color:#fff;border-radius:9px;padding:8px 13px;font-size:.78rem;font-weight:700;display:flex;align-items:center;gap:6px;box-shadow:0 2px 4px rgba(0,0,0,.15);}
.toolbar-btn:hover:not(:disabled){background:var(--soil-dark);}
.toolbar-btn:disabled{opacity:.4;cursor:not-allowed;}
.field-bg{background:repeating-linear-gradient(45deg, rgba(255,255,255,.03) 0 2px, transparent 2px 14px),linear-gradient(160deg,#6b4a30,var(--soil-dark));border-radius:12px;padding:12px;}
.field-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;}
.orchard-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;max-width:460px;}
.plot{position:relative;aspect-ratio:1/1;border-radius:8px;background:linear-gradient(160deg,var(--soil-light),var(--soil));border:2px solid rgba(0,0,0,.25);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:transform .1s, box-shadow .1s;overflow:hidden;}
.plot:hover{transform:translateY(-2px) scale(1.03);box-shadow:0 4px 10px rgba(0,0,0,.35);z-index:2;}
.plot.selected{outline:3px solid var(--wheat);outline-offset:1px;}
.plot.ready{position:relative;}
.plot.ready::after{content:'';position:absolute;inset:0;border-radius:8px;background:radial-gradient(circle, rgba(255,221,140,.6) 0%, rgba(255,221,140,0) 72%);animation:pulseReadyGlow 1.4s ease-in-out infinite;pointer-events:none;}
@keyframes pulseReadyGlow{0%,100%{opacity:.35;}50%{opacity:1;}}
.plot .crop-emoji{font-size:1.5rem;filter:drop-shadow(0 2px 1px rgba(0,0,0,.4));display:inline-block;transform-origin:50% 90%;animation:cropWind 3.6s ease-in-out infinite;animation-delay:calc(var(--wd,0) * -1s);}
.plot .crop-emoji svg{width:1.6em;height:1.6em;display:block;overflow:visible;}
.plot .crop-emoji.rare-glow{filter:drop-shadow(0 0 4px rgba(255,210,90,.85)) drop-shadow(0 2px 1px rgba(0,0,0,.4));}
.plot.pop-grow .crop-emoji{animation:popGrow .55s cubic-bezier(.34,1.56,.64,1);}
@keyframes cropWind{0%,100%{transform:rotate(-3deg);}50%{transform:rotate(3deg);}}
@keyframes popGrow{0%{transform:scale(.3) rotate(0deg);}55%{transform:scale(1.35) rotate(-6deg);}75%{transform:scale(.92) rotate(3deg);}100%{transform:scale(1) rotate(0deg);}}
.field-bg{position:relative;overflow:hidden;}
.field-bg::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(100deg,transparent 40%,rgba(255,255,255,.05) 48%,rgba(255,255,255,.09) 50%,rgba(255,255,255,.05) 52%,transparent 60%);background-size:220% 100%;animation:windGust 7s linear infinite;}
@keyframes windGust{0%{background-position:120% 0;}100%{background-position:-40% 0;}}
.plot:nth-child(2n) .crop-emoji{animation-duration:3.1s;animation-delay:-.6s;}
.plot:nth-child(3n) .crop-emoji{animation-duration:4.2s;animation-delay:-1.4s;}
.plot:nth-child(5n) .crop-emoji{animation-duration:3.8s;animation-delay:-2.1s;}
.plot .water-bar{position:absolute;left:0;bottom:0;height:4px;width:100%;background:rgba(0,0,0,.35);}
.plot .water-bar i{display:block;height:100%;background:var(--water);}
.plot .badge{position:absolute;top:1px;right:1px;font-size:.62rem;background:rgba(0,0,0,.55);color:#fff;border-radius:5px;padding:0 3px;line-height:1.3;}
.plot .badge.disease{background:#7a1f1f;} .plot .badge.pest{background:#5b6e1f;top:15px;}
.plot .badge.shield{left:1px;top:1px;right:auto;background:#1f5a3a;}
.plot.empty{background:linear-gradient(160deg,#7a5638,var(--soil));}
.plot.empty::after{content:'+';color:rgba(255,255,255,.35);font-size:1.3rem;}
.plot.locked{background:repeating-linear-gradient(45deg,#2a2018,#2a2018 6px,#1c150f 6px,#1c150f 12px);}
.plot.locked .lock-price{font-size:.6rem;color:#d8c39a;font-weight:700;margin-top:2px;}
.plot.locked-bank{background:repeating-linear-gradient(45deg,#5c2020,#5c2020 6px,#3d1414 6px,#3d1414 12px);}
.plot.locked-bank .lock-price{font-size:.6rem;color:#f2c9c9;font-weight:700;margin-top:2px;}

/* ===== 🏦 БАНК: индикатор долга, карточка финансов, кредит ===== */
.debt-pill{transition:.15s;}
.debt-pill.debt-green{border-color:#8fbf7a;color:#2c6e2c;}
.debt-pill.debt-yellow{border-color:#e0b23b;color:#8a6b18;}
.debt-pill.debt-red{border-color:#d16a5f;color:#8a2222;animation:debtPulse 1.6s infinite;}
@keyframes debtPulse{0%,100%{box-shadow:0 2px 4px rgba(0,0,0,.06);}50%{box-shadow:0 0 0 3px rgba(209,106,95,.35);}}
.finance-card{background:var(--cream);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:6px;}
.finance-row{display:flex;justify-content:space-between;align-items:center;font-size:.82rem;color:var(--soil-dark);gap:10px;}
.finance-row .f-ok{color:#2c6e2c;font-weight:700;}
.finance-row .f-bad{color:#8a2222;font-weight:700;}
.bank-block{display:flex;flex-direction:column;gap:6px;padding:4px 2px 10px;}
.credit-progress{height:8px;border-radius:5px;background:var(--cream-dark);overflow:hidden;border:1px solid var(--soil-light);margin:2px 0;}
.credit-progress-fill{height:100%;background:linear-gradient(90deg,#e0b23b,#8fbf7a);}
.credit-presets{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px;}
.credit-presets .mini-btn{padding:8px 12px;text-align:center;line-height:1.3;}
.orchard-grid .plot{aspect-ratio:1/0.85;}
.field-legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;font-size:.74rem;color:var(--soil-light);}

/* Детали грядки */
.plot-details{margin-top:14px;background:var(--cream);border-radius:12px;padding:14px;border:1px solid var(--cream-dark);min-height:130px;}
.plot-details h3{font-size:1rem;margin-bottom:6px;color:var(--soil-dark);}
.detail-bars{display:flex;flex-direction:column;gap:5px;margin:8px 0;}
.dbar-row{display:flex;align-items:center;gap:8px;font-size:.78rem;}
.dbar-row .label{width:78px;flex-shrink:0;color:var(--soil-light);font-weight:600;}
.dbar-track{flex:1;height:9px;background:#e2d4ba;border-radius:5px;overflow:hidden;}
.dbar-fill{height:100%;border-radius:5px;}
.fill-water{background:var(--water);} .fill-fert{background:#8a6a2f;} .fill-health{background:var(--ok);} .fill-fruit{background:var(--warn);}
.fill-bond{background:linear-gradient(90deg,#c46b9e,#e893c2);transition:width .3s;}
.alert-line{font-size:.8rem;font-weight:600;border-radius:7px;padding:5px 9px;margin-top:4px;display:inline-flex;align-items:center;gap:6px;margin-right:6px;}
.alert-disease{background:#fbe1de;color:#7a1f1f;} .alert-pest{background:#f0eecb;color:#54610f;} .alert-shield{background:#dcebe5;color:#1f5a3a;}
.action-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;}
.action-btn{background:var(--panel);border:1.5px solid var(--soil-light);border-radius:8px;padding:7px 12px;font-size:.78rem;font-weight:600;color:var(--soil-dark);display:flex;align-items:center;gap:5px;transition:.12s;}
.action-btn:hover:not(:disabled){background:var(--cream-dark);}
.action-btn:disabled{opacity:.4;cursor:not-allowed;}
.action-btn.primary{background:var(--grass);color:#fff;border-color:var(--grass-dark);}
.action-btn.primary:hover:not(:disabled){background:var(--grass-dark);}
.action-btn.game{background:var(--gold);color:#3a2a05;border-color:#a5822c;}
.action-btn.game:hover:not(:disabled){filter:brightness(.94);}
.seed-groups{margin-top:8px;display:flex;flex-direction:column;gap:10px;}
.mg-toggle-row{margin:6px 0;}
.mg-toggle{display:flex;align-items:center;gap:6px;font-size:.74rem;font-weight:700;color:var(--soil-dark);cursor:pointer;}
.mg-toggle input{width:15px;height:15px;}
.seed-group-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--soil-light);}
.seed-pick{display:flex;flex-wrap:wrap;gap:7px;margin-top:4px;}
.seed-chip{background:var(--panel);border:1.5px solid var(--cream-dark);border-radius:8px;padding:6px 9px;font-size:.78rem;display:flex;gap:6px;align-items:center;font-weight:600;}
.seed-chip:hover:not(:disabled){border-color:var(--gold);}
.seed-chip:disabled{opacity:.35;}
.tree-pick{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px;}

/* Техника */
.fuel-card{display:flex;align-items:center;justify-content:space-between;background:var(--cream);border-radius:12px;padding:12px 15px;margin-bottom:14px;flex-wrap:wrap;gap:10px;}
.fuel-card .fl{display:flex;align-items:center;gap:10px;font-weight:700;}
.fuel-card .fl .big{font-size:1.3rem;font-family:'Fraunces',serif;}
.equip-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;}
.equip-card{background:var(--cream);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:8px;}
.equip-top{display:flex;justify-content:space-between;align-items:center;}
.equip-name{font-weight:700;font-size:.95rem;display:flex;align-items:center;gap:8px;}
.equip-desc{font-size:.74rem;color:var(--soil-light);line-height:1.4;}
.equip-status{font-size:.68rem;font-weight:700;padding:2px 8px;border-radius:6px;}
.status-ok{background:#dcebd6;color:var(--ok);} .status-broken{background:#fbe1de;color:var(--warn);} .status-locked{background:#e7e0cf;color:#8a7a52;}
.equip-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:4px;}
.wear-block{display:flex;flex-direction:column;gap:5px;margin:2px 0 4px;}
.wear-row{display:flex;align-items:center;gap:8px;}
.wear-label{font-size:.68rem;color:var(--soil-light);min-width:96px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.wear-track{flex:1;height:8px;background:var(--cream-dark);border-radius:5px;overflow:hidden;border:1px solid rgba(0,0,0,.08);}
.wear-fill{height:100%;border-radius:5px;transition:width .3s;}
.wear-fill.wear-ok{background:var(--ok, #4a7c3f);}
.wear-fill.wear-mid{background:#d9a441;}
.wear-fill.wear-bad{background:var(--warn, #b23c3c);}
.wear-fill.wear-ok-inv{background:var(--ok, #4a7c3f);}
.wear-pct{font-size:.66rem;font-weight:700;color:var(--soil-dark);width:32px;text-align:right;}

/* Лавка */
.shop-section{margin-bottom:16px;}
.shop-section h4{font-size:.82rem;text-transform:uppercase;letter-spacing:.6px;color:var(--soil-light);margin-bottom:7px;}
details.shop-section{border:none;}
details.shop-section summary{font-size:.82rem;text-transform:uppercase;letter-spacing:.6px;color:var(--soil-light);margin-bottom:7px;cursor:pointer;list-style:none;display:flex;align-items:center;gap:6px;user-select:none;}
details.shop-section summary::-webkit-details-marker{display:none;}
details.shop-section summary::before{content:'▸';display:inline-block;transition:transform .15s;font-size:.7rem;color:var(--soil-light);}
details.shop-section[open] summary::before{transform:rotate(90deg);}
details.shop-section summary:hover{color:var(--soil-dark);}
.shop-search-row{margin-bottom:10px;}
.shop-search-input{width:100%;box-sizing:border-box;background:var(--cream);border:1.5px solid var(--cream-dark);border-radius:9px;padding:8px 12px;font-size:.82rem;color:var(--soil-dark);}
.shop-search-input:focus{outline:none;border-color:var(--grass-dark);}
.shop-grid{display:flex;flex-direction:column;gap:6px;}
.shop-item{display:flex;align-items:center;justify-content:space-between;background:var(--cream);border-radius:8px;padding:7px 10px;font-size:.82rem;flex-wrap:wrap;gap:6px;border-left:3px solid transparent;}
.shop-item.owned{border-left-color:var(--ok);background:#eaf3e6;}
.shop-item .left{display:flex;align-items:center;gap:8px;}
.shop-item .name{font-weight:700;color:var(--soil-dark);}
.shop-item .desc{font-size:.66rem;color:var(--soil-light);display:block;}
.buy-btn{background:var(--soil);color:#fff;border-radius:6px;padding:5px 10px;font-size:.74rem;font-weight:700;}
.buy-btn:hover:not(:disabled){background:var(--soil-dark);}
.buy-btn:disabled{opacity:.4;cursor:not-allowed;}
.own-tag{font-size:.68rem;color:var(--soil-light);margin-right:6px;}
.own-tag.have{color:var(--ok);font-weight:700;}
.cat-tag{font-size:.6rem;font-weight:700;border-radius:5px;padding:1px 6px;margin-left:6px;}
.cat-veg{background:#dcebd6;color:var(--ok);} .cat-fruit{background:#fbe1de;color:var(--warn);} .cat-herb{background:#dceaf0;color:var(--herb);} .cat-tree{background:#eadcc7;color:#7a5a2a;}
.cat-rare{background:#f2e0f7;color:#7a2f8c;}
.cat-perk{background:#fff2cf;color:#8a6620;}
.season-tag{font-size:.6rem;font-weight:700;border-radius:5px;padding:1px 6px;margin-left:6px;background:#e8f0e0;color:var(--soil-light);}
.season-tag.in-season{background:#dcebd6;color:var(--ok);}
.shop-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px;position:sticky;top:78px;background:var(--panel);padding:2px 0 8px;z-index:5;}
.shop-tab-btn{background:var(--cream);color:var(--soil-dark);border:1.5px solid var(--cream-dark);border-radius:9px;padding:7px 13px;font-size:.8rem;font-weight:700;display:flex;align-items:center;gap:6px;transition:.12s;}
.shop-tab-btn:hover{background:var(--cream-dark);}
.shop-tab-btn.active{background:var(--grass);color:#fff;border-color:var(--grass-dark);}
.shop-filter-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px;}
.shop-filter-chip{background:var(--cream);border:1.5px solid var(--cream-dark);border-radius:20px;padding:4px 11px;font-size:.72rem;font-weight:700;color:var(--soil-dark);}
.shop-filter-chip.active{background:var(--wheat);color:#3a2a05;border-color:#a97e1f;}

/* Хлев */
.animal-card{background:var(--cream);border-radius:9px;padding:9px 11px;margin-bottom:8px;display:flex;flex-direction:column;gap:6px;}
.animal-top{display:flex;justify-content:space-between;align-items:center;}
.animal-name{font-weight:700;font-size:.85rem;display:flex;align-items:center;gap:6px;}
.animal-tag{font-size:.65rem;border-radius:5px;padding:1px 6px;font-weight:700;}
.tag-ok{background:#dcebd6;color:var(--ok);} .tag-sick{background:#fbe1de;color:var(--warn);} .tag-hungry{background:#f3e3c2;color:#8a6620;}
.tag-eating{background:#dff0f7;color:#2a6e8c;} .tag-sniffed{background:#eee4d8;color:#9a7a4a;}
.feed-pile-tag{font-size:.66rem;font-weight:700;background:#fff2cf;color:#8a6620;border-radius:6px;padding:2px 8px;margin-right:4px;}
.feed-throw-btn{background:#fff2cf!important;color:#8a6620!important;}
.feed-pile-tag.empty{background:#eee4d8;color:#9a8a6a;}
.feed-picker-modal{max-width:600px;max-height:88vh;overflow-y:auto;text-align:left;}
.feed-pile-status{background:var(--cream);border-radius:9px;padding:8px 12px;font-size:.8rem;font-weight:700;color:var(--soil-dark);margin-bottom:10px;display:flex;align-items:center;gap:6px;}
.feed-pile-status.empty{color:var(--soil-light);font-weight:600;}
.animal-bars{display:flex;flex-direction:column;gap:3px;}
.animal-actions{display:flex;gap:6px;flex-wrap:wrap;}
.mini-btn{background:var(--panel);border:1px solid var(--cream-dark);border-radius:6px;padding:4px 9px;font-size:.7rem;font-weight:700;color:var(--soil-dark);}
.mini-btn:hover:not(:disabled){background:var(--cream-dark);}
.mini-btn:disabled{opacity:.35;}

/* Постройки */
.building-card{background:var(--cream);border-radius:12px;padding:12px 14px;margin-bottom:10px;display:flex;flex-direction:column;gap:6px;}
.building-top{display:flex;justify-content:space-between;align-items:center;}
.building-name{font-weight:700;font-size:.9rem;color:var(--soil-dark);}
.building-lvl{font-size:.68rem;font-weight:700;color:var(--soil-light);background:var(--panel);border-radius:6px;padding:2px 8px;}
.building-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:2px;}
.pen-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px;margin-bottom:6px;}
.pen-species{font-size:.68rem;color:var(--soil-light);}
.pen-group-label{font-size:.74rem;font-weight:800;color:var(--soil-dark);text-transform:uppercase;letter-spacing:.5px;margin:10px 0 6px;display:flex;align-items:center;flex-wrap:wrap;gap:8px;}
.scene-btn{text-transform:none;letter-spacing:0;font-weight:700;}
.mood-chip{font-size:.7rem;font-weight:700;padding:3px 8px;border-radius:7px;display:inline-block;width:fit-content;}
.mood-great{background:#dcebd6;color:var(--ok);} .mood-ok{background:#e8f0e0;color:#5a6a3a;} .mood-low{background:#fbe9d0;color:#9a6a1a;} .mood-bad{background:#fbe1de;color:var(--warn);}
.animal-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px;}
.animal-tags-row{display:flex;gap:5px;flex-wrap:wrap;}
.stage-tag{font-size:.62rem;font-weight:700;border-radius:5px;padding:1px 6px;}
.stage-baby{background:#e3ecf5;color:#2b5a8c;} .stage-young{background:#dcebd6;color:var(--ok);} .stage-adult{background:#f3e3c2;color:#8a6620;} .stage-old{background:#e7e0cf;color:#6b5b3a;}
.quality-chip{font-size:.62rem;font-weight:700;border-radius:5px;padding:1px 6px;}
.q-elite{background:#f3e0f8;color:#7a2c8c;} .q-fine{background:#dcebd6;color:var(--ok);} .q-avg{background:#f3e3c2;color:#8a6620;} .q-poor{background:#fbe1de;color:var(--warn);}
.bond-wary{background:#eee3da;color:#8a7862;} .bond-warming{background:#f3e3c2;color:#8a6620;} .bond-trusts{background:#dbe6f5;color:#3a5f8a;} .bond-loves{background:#fbe0ee;color:#a83d76;}
.memorial-card{background:var(--cream);}
.memorial-row{display:flex;flex-wrap:wrap;gap:6px;}
.memorial-chip{font-size:.68rem;font-weight:600;background:var(--cream-dark);border-radius:7px;padding:3px 8px;color:var(--soil-dark);}

/* Склад */
.inv-row{display:flex;justify-content:space-between;align-items:center;background:var(--cream);border-radius:8px;padding:7px 10px;margin-bottom:6px;font-size:.83rem;flex-wrap:wrap;gap:6px;}
.inv-row .qty{font-weight:700;color:var(--soil-dark);}
.inv-row .price{font-size:.7rem;color:var(--soil-light);}
.sell-btn{background:var(--gold);color:#3a2a05;border-radius:6px;padding:5px 11px;font-size:.74rem;font-weight:700;}
.sell-btn:hover:not(:disabled){filter:brightness(.93);}

/* Журнал */
.log-list{display:flex;flex-direction:column;gap:5px;max-height:520px;overflow-y:auto;padding-right:4px;}
.log-entry{font-size:.78rem;background:var(--cream);border-radius:7px;padding:6px 9px;border-left:3px solid var(--soil-light);}
.log-entry.l-disease{border-color:var(--warn);} .log-entry.l-pest{border-color:#6a7a1f;} .log-entry.l-money{border-color:var(--gold);}
.log-entry.l-weather{border-color:var(--water);} .log-entry.l-animal{border-color:#a05a2c;} .log-entry.l-game{border-color:var(--herb);}
.log-entry .day-tag{font-weight:700;color:var(--soil-dark);margin-right:5px;}
.empty-note{font-size:.8rem;color:var(--soil-light);font-style:italic;padding:8px 0;}
footer.credits{max-width:1260px;margin:22px auto 0;padding:0 16px;font-size:.72rem;color:#3d5169;text-align:center;}

/* Модалки */
.modal-overlay{position:fixed;inset:0;background:rgba(20,14,8,.62);z-index:100;display:flex;align-items:center;justify-content:center;padding:16px;}
.modal-box{background:var(--panel);border-radius:16px;padding:20px;max-width:400px;width:100%;box-shadow:0 12px 40px rgba(0,0,0,.4);text-align:center;}
.modal-box h3{font-size:1.15rem;color:var(--soil-dark);margin-bottom:6px;}
.modal-box p{font-size:.82rem;color:var(--soil-light);margin:0 0 14px;line-height:1.4;}
.action-sheet-box{text-align:left;max-width:340px;padding:14px;}
.action-sheet-header{display:flex;align-items:center;justify-content:space-between;font-weight:800;font-size:.92rem;color:var(--soil-dark);margin-bottom:8px;}
.modal-close-x{background:none;border:none;font-size:1rem;color:var(--soil-light);padding:2px 6px;line-height:1;}
.action-sheet-list{display:flex;flex-direction:column;gap:4px;max-height:60vh;overflow-y:auto;}
.sheet-action-btn{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:var(--cream);border:1px solid var(--cream-dark);border-radius:10px;padding:9px 11px;}
.sheet-action-btn:hover:not(:disabled){background:var(--cream-dark);}
.sheet-action-btn:disabled{opacity:.4;}
.sheet-action-icon{font-size:1.15rem;flex-shrink:0;}
.sheet-action-text{display:flex;flex-direction:column;line-height:1.25;}
.sheet-action-label{font-size:.82rem;font-weight:700;color:var(--soil-dark);}
.sheet-action-sub{font-size:.68rem;color:var(--soil-light);}
.mini-btn.more-btn{padding:4px 10px;font-weight:900;letter-spacing:1px;}
.mini-btn.urgent-btn{border-color:#c0392b;color:#8a2222;background:#fbeceb;}
.mini-btn.urgent-btn:hover:not(:disabled){background:#f7dcda;}
.mg-track{position:relative;height:26px;background:var(--cream-dark);border-radius:13px;overflow:hidden;margin-bottom:16px;border:2px solid var(--soil-light);}
.mg-zone{position:absolute;top:0;bottom:0;background:rgba(74,124,63,.55);}
.mg-marker{position:absolute;top:2px;bottom:2px;width:6px;background:var(--warn);border-radius:3px;}
.pg-field{position:relative;height:220px;background:linear-gradient(160deg,#8a6a48,#5b3d28);border-radius:12px;margin-bottom:12px;overflow:hidden;}
.pg-bug{position:absolute;font-size:1.6rem;cursor:pointer;user-select:none;filter:drop-shadow(0 2px 2px rgba(0,0,0,.4));animation:bugPop .25s ease;}
@keyframes bugPop{from{transform:scale(0);}to{transform:scale(1);}}
.pg-score{font-size:.85rem;font-weight:700;color:var(--soil-dark);margin-bottom:10px;}
.modal-close{margin-top:6px;background:transparent;color:var(--soil-light);font-size:.75rem;text-decoration:underline;}

/* Кухня */
.recipe-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;}
.recipe-card{background:var(--cream);border-radius:13px;padding:13px;display:flex;flex-direction:column;gap:7px;border:1.5px solid transparent;transition:.15s;}
.recipe-card.can-cook{border-color:var(--gold);}
.recipe-top{display:flex;align-items:center;gap:10px;}
.recipe-icon{font-size:1.9rem;filter:drop-shadow(0 2px 1px rgba(0,0,0,.2));}
.recipe-name{font-weight:700;font-size:.98rem;color:var(--soil-dark);}
.recipe-desc{font-size:.72rem;color:var(--soil-light);line-height:1.35;margin:0;}
.recipe-ing{display:flex;flex-wrap:wrap;gap:5px;margin-top:2px;}
.ing-chip{font-size:.68rem;font-weight:700;border-radius:6px;padding:2px 7px;background:var(--panel);border:1px solid var(--cream-dark);}
.ing-chip.ok{color:var(--ok);border-color:#bfe0b0;} .ing-chip.no{color:var(--warn);border-color:#f0bcae;}
.recipe-foot{display:flex;align-items:center;justify-content:space-between;margin-top:4px;}
.recipe-price{font-size:.72rem;color:#7a5b18;font-weight:700;}
.cook-btn{background:linear-gradient(180deg,#e8a73c,var(--gold));color:#3a2a05;font-weight:800;font-size:.8rem;border-radius:9px;padding:8px 15px;box-shadow:0 3px 0 #8a6a1f;transition:transform .08s;}
.cook-btn:hover:not(:disabled){filter:brightness(1.04);}
.cook-btn:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px 0 #8a6a1f;}
.cook-btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none;}
.dish-stock{font-size:.68rem;color:var(--soil-light);}

.cook-modal-box{max-width:440px;}
.cook-progress{display:flex;gap:5px;margin-bottom:12px;justify-content:center;}
.cook-progress span{width:24px;height:6px;border-radius:3px;background:var(--cream-dark);transition:.2s;}
.cook-progress span.done{background:var(--ok);}
.cook-progress span.current{background:var(--gold);}
.cook-step-icon{font-size:2.2rem;margin-bottom:2px;animation:cookBob 1.2s ease-in-out infinite;}
@keyframes cookBob{0%,100%{transform:translateY(0) rotate(0);}50%{transform:translateY(-4px) rotate(-4deg);}}
.cook-step-label{font-size:1rem;font-weight:700;color:var(--soil-dark);margin-bottom:4px;}
.cook-step-hint{font-size:.76rem;color:var(--soil-light);margin-bottom:14px;}
.craft-stage-label{font-size:.72rem;font-weight:700;color:var(--gold);text-transform:uppercase;letter-spacing:.4px;margin:-6px 0 10px;text-align:center;}

.mash-wrap{display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:14px;}
.mash-emoji{font-size:3.2rem;transition:transform .07s;user-select:none;}
.mash-emoji.bounce{transform:scale(1.3) rotate(-8deg);}
.mash-bar-track{width:100%;height:15px;background:var(--cream-dark);border-radius:8px;overflow:hidden;border:1.5px solid var(--soil-light);}
.mash-bar-fill{height:100%;background:linear-gradient(90deg,#e8a73c,var(--gold));width:0%;transition:width .08s;}
.mash-count{font-size:.76rem;color:var(--soil-light);font-weight:700;}
.mash-btn{background:var(--soil);color:#fff;font-weight:800;font-size:1.05rem;padding:16px 30px;border-radius:14px;box-shadow:0 4px 0 var(--soil-dark);width:100%;transition:transform .05s;}
.mash-btn:active{transform:translateY(3px) scale(.98);box-shadow:0 1px 0 var(--soil-dark);}

.heat-track{position:relative;height:30px;background:linear-gradient(90deg,#7fa8c9 0%,#e8d17f 40%,#e8a73c 62%,#b3492a 85%,#4a1c0c 100%);border-radius:15px;overflow:hidden;margin-bottom:6px;border:2px solid var(--soil-light);}
.heat-zone{position:absolute;top:0;bottom:0;background:rgba(255,255,255,.4);border-left:2px dashed rgba(255,255,255,.9);border-right:2px dashed rgba(255,255,255,.9);}
.heat-marker{position:absolute;top:-3px;bottom:-3px;width:5px;background:#20140a;border-radius:3px;box-shadow:0 0 5px rgba(0,0,0,.7);}
.heat-labels{display:flex;justify-content:space-between;font-size:.62rem;color:var(--soil-light);font-weight:700;margin-bottom:12px;}
.heat-flame{font-size:1.4rem;display:inline-block;animation:flameFlicker .45s infinite alternate;}
@keyframes flameFlicker{from{transform:scale(1) rotate(-4deg);} to{transform:scale(1.18) rotate(4deg);}}

.hold-track{width:100%;height:22px;background:var(--cream-dark);border-radius:11px;overflow:hidden;position:relative;margin-bottom:14px;border:2px solid var(--soil-light);}
.hold-zone{position:absolute;top:0;bottom:0;background:rgba(74,124,63,.55);}
.hold-fill{height:100%;background:linear-gradient(90deg,#3d7ea6,#5aa0c9);width:0%;transition:background .15s;}
.hold-fill.overdraw{background:linear-gradient(90deg,#c0392b,#e74c3c);animation:overdrawPulse .4s ease-in-out infinite alternate;}
@keyframes overdrawPulse{from{filter:brightness(1);}to{filter:brightness(1.35);}}

.grind-wrap{display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:14px;}
.grind-stone{font-size:3.2rem;user-select:none;transition:transform .12s linear;}
.grind-bar-track{width:100%;height:15px;background:var(--cream-dark);border-radius:8px;overflow:hidden;border:1.5px solid var(--soil-light);}
.grind-bar-fill{height:100%;background:linear-gradient(90deg,#c89a3c,var(--wheat));width:0%;transition:width .08s;}

.proof-wrap{display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:14px;}
.proof-dough{font-size:3.2rem;user-select:none;transition:transform .3s ease-out;}
.proof-track{position:relative;width:100%;height:14px;background:var(--cream-dark);border-radius:7px;overflow:hidden;border:1.5px solid var(--soil-light);}
.proof-zone{position:absolute;top:0;bottom:0;background:rgba(74,124,63,.5);}
.proof-marker{position:absolute;top:-2px;bottom:-2px;width:4px;background:var(--soil-dark);border-radius:2px;}

.pantry-bar{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin-bottom:12px;padding:9px 11px;background:var(--cream);border-radius:10px;}
.pantry-chip{font-size:.72rem;font-weight:700;background:var(--panel);border:1px solid var(--cream-dark);border-radius:7px;padding:3px 8px;color:var(--soil-dark);}
.pantry-chip.empty{color:var(--warn);border-color:#f0bcae;}
.pantry-hint{font-size:.68rem;color:var(--soil-light);margin-left:auto;}
.ing-chip.pantry-ing{background:#eef3ea;}
.hold-btn{background:var(--herb);color:#fff;font-weight:800;font-size:1rem;padding:16px 30px;border-radius:14px;box-shadow:0 4px 0 #1c4553;width:100%;transition:transform .05s;}
.hold-btn:active{transform:translateY(3px) scale(.98);box-shadow:0 1px 0 #1c4553;}

.cook-result-wrap{padding:6px 0;}
.cook-result-icon{font-size:3rem;margin-bottom:4px;animation:resultPop .3s ease;}
@keyframes resultPop{from{transform:scale(0);}to{transform:scale(1);}}
.quality-tag{display:inline-block;padding:5px 14px;border-radius:9px;font-weight:800;font-size:.85rem;margin:8px 0;}
.q-perfect{background:#dcebd6;color:var(--ok);} .q-good{background:#fbeecd;color:#7a5b18;} .q-meh{background:#e7e0cf;color:#6b5b3a;} .q-bad{background:#fbe1de;color:#7a1f1f;}
.steam{position:relative;}
.steam::before,.steam::after{content:'';position:absolute;bottom:100%;width:6px;height:16px;background:rgba(255,255,255,.55);border-radius:50%;filter:blur(2px);animation:steamRise 1.6s ease-in infinite;}
.steam::before{left:38%;animation-delay:0s;} .steam::after{left:56%;animation-delay:.5s;}
@keyframes steamRise{0%{opacity:0;transform:translateY(0) scale(1);}30%{opacity:.7;}100%{opacity:0;transform:translateY(-26px) scale(1.6);}}

/* Фуллскрин / ротация */
.fullscreen-btn{background:var(--panel);border:1.5px solid var(--cream-dark);border-radius:9px;padding:8px 11px;font-size:.95rem;box-shadow:0 2px 4px rgba(0,0,0,.08);}
.fullscreen-btn:hover{background:var(--cream);}
.rotate-hint{position:fixed;inset:0;background:rgba(20,14,8,.92);z-index:200;display:none;flex-direction:column;align-items:center;justify-content:center;color:#fff;text-align:center;padding:20px;}
.rotate-hint.show{display:flex;}
.rotate-hint .r-icon{font-size:3.2rem;animation:rotatePhone 1.6s ease-in-out infinite;margin-bottom:14px;}
@keyframes rotatePhone{0%,100%{transform:rotate(0deg);}45%{transform:rotate(-85deg);}55%{transform:rotate(-90deg);}}
.rotate-hint p{max-width:260px;font-size:.9rem;line-height:1.4;color:#e3d4b6;}
.rotate-hint button{margin-top:16px;background:var(--grass);color:#fff;font-weight:700;border-radius:9px;padding:9px 18px;font-size:.82rem;}

/* Карта */
.farm-map{position:relative;width:100%;aspect-ratio:4/3;border-radius:16px;overflow:hidden;
  background:radial-gradient(ellipse 30% 26% at 15% 22%, #4f8fb0 0%, #3d7ea6 55%, transparent 100%),
    radial-gradient(ellipse 46% 60% at 68% 46%, #6b4a30 0%, #5b3d28 60%, transparent 100%),
    linear-gradient(160deg,#6fa858,#4f7942 55%,#3a5c30);
  border:3px solid var(--soil-dark);box-shadow:inset 0 0 40px rgba(0,0,0,.25);}
.farm-map::before{content:'';position:absolute;inset:0;background-image:radial-gradient(circle,rgba(255,255,255,.08) 1px,transparent 1px);background-size:14px 14px;opacity:.5;pointer-events:none;}

/* Пины: круглая «плашка» под иконкой + подпись ВСЕГДА видна (мелким шрифтом, с обрезкой
   по ширине как страховкой) — прятать, куда ведёт точка, оказалось хуже, чем немного тесно. */
.map-pin{position:absolute;transform:translate(-50%,-100%);display:flex;flex-direction:column;align-items:center;
  gap:2px;background:transparent;padding:6px;margin:-6px;z-index:3;}
.map-pin-icon{font-size:1.25rem;line-height:1;display:flex;align-items:center;justify-content:center;width:1.9rem;height:1.9rem;
  background:radial-gradient(circle at 35% 30%, #fff8e6, #f0dfb8 70%);border:2px solid rgba(58,42,5,.35);
  border-radius:50%;box-shadow:0 3px 6px rgba(0,0,0,.35);transition:transform .15s;}
.map-pin:active .map-pin-icon{transform:scale(1.15);}
.map-pin.here .map-pin-icon{border-color:var(--gold);box-shadow:0 0 0 4px rgba(200,154,60,.35),0 3px 6px rgba(0,0,0,.35);animation:pinBounce 1.6s ease-in-out infinite;}
@keyframes pinBounce{0%,100%{transform:translateY(0);}50%{transform:translateY(-4px);}}
.map-pin-label{font-size:.54rem;font-weight:800;background:rgba(20,14,8,.8);color:#fff;border-radius:5px;padding:1px 5px;
  max-width:5.4em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.map-pin.here .map-pin-label{background:rgba(200,154,60,.95);color:#3a2a05;}
.map-player{position:absolute;font-size:1.5rem;transform:translate(-50%,-90%);transition:left .4s ease, top .4s ease;filter:drop-shadow(0 3px 2px rgba(0,0,0,.5));z-index:4;left:50%;top:50%;}
.map-player.walking{animation:walkBob .28s ease-in-out infinite;}
@keyframes walkBob{0%,100%{transform:translate(-50%,-90%) translateY(0) rotate(0deg);}50%{transform:translate(-50%,-90%) translateY(-5px) rotate(-6deg);}}
.map-roads{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1;}
.map-roads path{fill:none;stroke:rgba(255,248,224,.5);stroke-width:.6;stroke-dasharray:2 2;}
.map-decor{position:absolute;transform:translate(-50%,-100%);pointer-events:none;z-index:1;filter:drop-shadow(0 2px 2px rgba(0,0,0,.35));opacity:.7;}
.map-cloud{position:absolute;font-size:1.5rem;opacity:.5;pointer-events:none;z-index:2;animation:cloudDrift linear infinite;filter:drop-shadow(0 2px 2px rgba(0,0,0,.2));}
.map-cloud.c1{top:5%;animation-duration:75s;}
.map-cloud.c2{top:12%;animation-duration:100s;animation-delay:-35s;font-size:1.1rem;}
.map-cloud.c3{top:2%;animation-duration:85s;animation-delay:-55s;font-size:1.3rem;}
@keyframes cloudDrift{from{left:-15%;}to{left:115%;}}
.map-note{font-size:.76rem;color:var(--soil-light);margin-top:8px;}

/* Рыбалка */
.fish-pond-scene{position:relative;border-radius:14px;overflow:hidden;margin-bottom:14px;height:150px;
  background:linear-gradient(180deg,#bcd8e8 0%,#7fa8c9 18%,#3d7ea6 55%,#2c5c7c 100%);}
.fish-pond-scene.loc-river{background:linear-gradient(180deg,#c8e2df 0%,#7fb3a8 18%,#3d8f7e 55%,#265c50 100%);}
.fish-pond-scene.loc-lake{background:linear-gradient(180deg,#d7e6ef 0%,#8fb0c9 18%,#4a6f96 55%,#2c3f5c 100%);}
.fish-pond-scene.loc-sea{background:linear-gradient(180deg,#cdeaf0 0%,#5fa8c4 18%,#276c95 55%,#123a54 100%);}
.fish-pond-water{position:absolute;inset:0;}
.fish-ripple{position:absolute;border:2px solid rgba(255,255,255,.55);border-radius:50%;width:34px;height:34px;animation:rippleGrow 3.2s ease-out infinite;}
.fish-ripple.r1{left:20%;top:55%;animation-delay:0s;} .fish-ripple.r2{left:65%;top:35%;animation-delay:1.4s;} .fish-ripple.r3{left:44%;top:70%;animation-delay:.8s;}
@keyframes rippleGrow{0%{transform:scale(.2);opacity:.8;}100%{transform:scale(3.2);opacity:0;}}
.fish-bait-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:6px;}
.fish-modal-box{max-width:460px;}
.fish-hint-small{font-size:.68rem;color:var(--soil-light);text-align:center;margin:0 0 10px;}
.fish-wait-pond{position:relative;height:100px;border-radius:12px;overflow:hidden;margin:10px 0;background:linear-gradient(180deg,#7fa8c9,#3d7ea6);}
.fish-wait-pond .fish-ripple{border-color:rgba(255,255,255,.7);}
.fish-bobber{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);font-size:1.3rem;animation:bobberFloat 1.4s ease-in-out infinite;}
.fish-bobber.dip{animation:bobberDip .35s ease-in-out infinite;}
@keyframes bobberFloat{0%,100%{transform:translate(-50%,-50%) translateY(0);}50%{transform:translate(-50%,-50%) translateY(6px);}}
@keyframes bobberDip{0%,100%{transform:translate(-50%,-50%) translateY(0) scale(1);}50%{transform:translate(-50%,-50%) translateY(20px) scale(.85);}}
.rod-card{background:var(--cream);border-radius:10px;padding:10px 12px;margin-bottom:6px;display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;}
.rod-card.owned{border:1.5px solid var(--gold);}

/* Локации / снаряжение */
.loc-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;}
.loc-chip{background:var(--panel);border:1.5px solid var(--cream-dark);border-radius:10px;padding:8px 12px;font-size:.78rem;font-weight:700;color:var(--soil-dark);display:flex;flex-direction:column;align-items:center;gap:2px;min-width:78px;}
.loc-chip .lname{font-size:.7rem;font-weight:700;}
.loc-chip.active{border-color:var(--gold);background:linear-gradient(180deg,#fff8e4,var(--cream));box-shadow:0 2px 6px rgba(200,154,60,.35);}
.loc-chip.locked{opacity:.5;}
.gear-strip{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px;}
.gear-chip{background:var(--cream);border-radius:9px;padding:6px 10px;font-size:.72rem;font-weight:700;color:var(--soil-dark);display:flex;align-items:center;gap:5px;border:1.5px solid var(--cream-dark);}
.gear-bar-mini{width:44px;height:6px;background:var(--cream-dark);border-radius:3px;overflow:hidden;}
.gear-bar-mini i{display:block;height:100%;background:var(--ok);}
.tackle-part-card{background:var(--cream);border-radius:10px;padding:9px 11px;margin-bottom:6px;}
.tackle-part-card .tp-top{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;}
.tackle-part-card .tp-stats{font-size:.68rem;color:var(--soil-light);margin-top:3px;}
.tackle-tier-track{display:flex;gap:3px;margin-top:6px;}
.tackle-tier-track span{flex:1;height:5px;border-radius:3px;background:var(--cream-dark);}
.tackle-tier-track span.on{background:var(--gold);}

/* Заброс */
.cast-power-track{position:relative;height:34px;background:linear-gradient(90deg,#8a6240 0%,#4a7c3f 45%,#c89a3c 70%,#b3492a 100%);border-radius:17px;overflow:hidden;margin-bottom:8px;border:2px solid var(--soil-light);}
.cast-sweet{position:absolute;top:0;bottom:0;background:rgba(255,255,255,.35);border-left:2px dashed rgba(255,255,255,.9);border-right:2px dashed rgba(255,255,255,.9);}
.cast-marker{position:absolute;top:-3px;bottom:-3px;width:5px;background:#20140a;border-radius:3px;box-shadow:0 0 5px rgba(0,0,0,.6);}
.cast-labels{display:flex;justify-content:space-between;font-size:.62rem;color:var(--soil-light);font-weight:700;margin-bottom:10px;}

/* Подсечка QTE */
.hookset-wrap{display:flex;flex-direction:column;align-items:center;gap:10px;margin:8px 0 14px;}
.hookset-btn{background:linear-gradient(180deg,#e8a73c,var(--warn));color:#fff;font-weight:900;font-size:1.15rem;padding:20px 40px;border-radius:16px;box-shadow:0 5px 0 #7a1f10;animation:hookPulse .5s infinite;letter-spacing:.5px;}
@keyframes hookPulse{0%,100%{transform:scale(1);}50%{transform:scale(1.06);}}
.hookset-timebar{width:100%;height:10px;background:var(--cream-dark);border-radius:5px;overflow:hidden;border:1.5px solid var(--soil-light);}
.hookset-timebar i{display:block;height:100%;background:linear-gradient(90deg,var(--warn),#e8a73c);width:100%;}

/* Вываживание */
.fight-wrap{margin-bottom:8px;}
.fight-scene{position:relative;height:90px;border-radius:12px;overflow:hidden;margin-bottom:10px;background:linear-gradient(180deg,#3d7ea6,#1e4a63);border:2px solid var(--soil-light);}
.fight-fish{position:absolute;top:50%;font-size:2rem;transform:translate(-50%,-50%);filter:drop-shadow(0 2px 3px rgba(0,0,0,.5));transition:left .12s linear,transform .12s linear;}
.fight-rod{position:absolute;bottom:4px;right:6px;font-size:1.6rem;transform-origin:bottom right;transition:transform .1s;filter:drop-shadow(0 2px 2px rgba(0,0,0,.4));}
.fight-run-alert{position:absolute;top:6px;left:50%;transform:translateX(-50%);background:rgba(179,73,42,.92);color:#fff;font-weight:800;font-size:.72rem;padding:3px 10px;border-radius:8px;opacity:0;transition:opacity .15s;white-space:nowrap;}
.fight-run-alert.show{opacity:1;}
.fight-bar-row{margin-bottom:6px;}
.fight-bar-label{display:flex;justify-content:space-between;font-size:.66rem;color:var(--soil-light);font-weight:700;margin-bottom:2px;}
.fight-bar-track{height:15px;background:var(--cream-dark);border-radius:8px;overflow:hidden;border:1.5px solid var(--soil-light);position:relative;}
.fight-bar-fill{height:100%;width:0%;transition:width .1s linear,background .15s;}
.fight-tension-danger{position:absolute;top:0;bottom:0;right:0;background:repeating-linear-gradient(45deg,rgba(179,73,42,.35),rgba(179,73,42,.35) 5px,transparent 5px,transparent 10px);}
.reel-btn{width:100%;background:linear-gradient(180deg,#5a8bb0,var(--water));color:#fff;font-weight:900;font-size:1rem;padding:18px;border-radius:14px;box-shadow:0 5px 0 #1e4a63;user-select:none;touch-action:none;transition:transform .05s;}
.reel-btn.holding{transform:translateY(3px);box-shadow:0 2px 0 #1e4a63;background:linear-gradient(180deg,#4a7c3f,var(--ok));}
.fight-hint{font-size:.7rem;color:var(--soil-light);text-align:center;margin:6px 0 0;}

/* Журнал рыбака */
.journal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:8px;margin-top:6px;}
.journal-card{background:var(--cream);border-radius:10px;padding:8px;text-align:center;border:1.5px solid transparent;}
.journal-card.caught{border-color:var(--gold);background:linear-gradient(180deg,#fff8e4,var(--cream));}
.journal-card .jicon{font-size:1.5rem;display:block;margin-bottom:3px;}
.journal-card .jname{font-size:.68rem;font-weight:700;color:var(--soil-dark);display:block;}
.journal-card .jbest{font-size:.62rem;color:var(--soil-light);display:block;}
.rarity-tag{display:inline-block;font-size:.6rem;font-weight:800;padding:1px 6px;border-radius:5px;margin-top:2px;}
.r-common{background:#e7e0cf;color:#6b5b3a;} .r-uncommon{background:#dcebd6;color:var(--ok);} .r-rare{background:#dceaf0;color:#1f5a7a;}
.r-legendary{background:#f3ddb0;color:#8a5b0a;} .r-mythic{background:linear-gradient(90deg,#f0c8e8,#d3b0f0);color:#5a1f7a;}

/* Лес */
.forest-scene{position:relative;border-radius:14px;overflow:hidden;margin-bottom:14px;height:80px;
  background:linear-gradient(180deg,#7fae6a 0%,#4f7942 45%,#2f5424 100%);}
.forest-scene::before{content:'🌲🌳🌲 🌳🌲 🌲🌳🌲🌳 🌲 🌳🌲🌳🌲';position:absolute;bottom:-6px;left:0;right:0;font-size:1.6rem;letter-spacing:6px;opacity:.9;white-space:nowrap;overflow:hidden;}
.hunt-condition-banner{background:var(--cream);border:1.5px dashed var(--soil-light);border-radius:10px;padding:9px 13px;font-size:.78rem;color:var(--soil-dark);margin-bottom:14px;line-height:1.4;}
.hunt-wind-banner{background:var(--cream);border:1.5px dashed var(--soil-light);border-radius:10px;padding:9px 13px;font-size:.78rem;color:var(--soil-dark);margin:-6px 0 14px;line-height:1.4;}
.track-sign-card{display:flex;align-items:center;gap:10px;background:var(--cream);border:1.5px solid var(--cream-dark);border-radius:12px;padding:10px 14px;margin-bottom:12px;text-align:left;}
.track-sign-icon{font-size:1.8rem;flex-shrink:0;}
.track-sign-info{display:flex;flex-direction:column;gap:3px;}
.track-sign-name{font-size:.84rem;font-weight:700;color:var(--soil-dark);}
.compass-grid{display:grid;grid-template-columns:repeat(3,54px);grid-template-rows:repeat(3,54px);gap:7px;justify-content:center;margin:10px auto 4px;}
.compass-btn{background:var(--cream);border:2px solid var(--soil-light);border-radius:12px;font-size:1.3rem;display:flex;align-items:center;justify-content:center;transition:.12s;}
.compass-btn:not([disabled]):active{transform:scale(.92);background:var(--gold);}
.compass-btn:not([disabled]){border-color:var(--ok);box-shadow:0 2px 0 rgba(74,124,63,.35);}
.compass-btn.ruled-out{opacity:.28;filter:grayscale(1);border-color:var(--cream-dark);}
.compass-center{display:flex;align-items:center;justify-content:center;font-size:1.2rem;opacity:.6;}
.durability-row{display:flex;align-items:center;gap:6px;margin:2px 2px 10px;flex-wrap:wrap;}
.durability-track{flex:1;min-width:60px;height:8px;background:var(--cream-dark);border-radius:5px;overflow:hidden;}
.durability-fill{height:100%;transition:width .2s;}
.durability-fill.q-perfect{background:var(--ok);}
.durability-fill.q-good{background:#8bb85c;}
.durability-fill.q-meh{background:var(--gold);}
.durability-fill.q-bad{background:#c0392b;}
.hunt-gear-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-bottom:16px;}
.hunt-gear-card{background:var(--cream);border-radius:12px;padding:12px 14px;border:1.5px solid var(--cream-dark);}
.hunt-gear-card h4{font-size:.82rem;text-transform:uppercase;letter-spacing:.5px;color:var(--soil-light);margin-bottom:8px;}
.forest-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;}
.forest-spot{background:var(--cream);border-radius:12px;padding:12px 10px;text-align:center;border:1.5px solid var(--cream-dark);transition:.15s;}
.forest-spot.ready{border-color:var(--gold);background:linear-gradient(180deg,#fff8e4,var(--cream));box-shadow:0 2px 8px rgba(200,154,60,.3);}
.forest-spot .fs-icon{font-size:2rem;display:block;margin-bottom:4px;}
.forest-spot.ready .fs-icon{animation:pinBounce 1.4s ease-in-out infinite;}
.forest-spot .fs-name{font-size:.76rem;font-weight:700;color:var(--soil-dark);display:block;margin-bottom:2px;}
.forest-spot .fs-status{font-size:.66rem;color:var(--soil-light);display:block;margin-bottom:8px;}
.forest-spot.ready .fs-status{color:var(--ok);font-weight:700;}

.forest-stats{font-size:.76rem;color:var(--soil-light);margin-top:10px;}

/* ===== ПЕЩЕРА: тёмный камень + тёплый отблеск факела, отдельно от солнечного леса ===== */
.cave-scene{position:relative;border-radius:14px;overflow:hidden;margin-bottom:14px;height:64px;
  background:radial-gradient(ellipse at 30% 120%, #4a3420 0%, #2a1f16 45%, #17120d 100%);}
.cave-scene::before{content:'⛰️ 🪨 ⛏️ 🪨 🕳️ 🪨 ⛰️';position:absolute;bottom:-4px;left:0;right:0;font-size:1.4rem;letter-spacing:10px;opacity:.55;white-space:nowrap;overflow:hidden;text-align:center;}
.cave-gear-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px;}
@media(max-width:520px){.cave-gear-row{grid-template-columns:1fr;}}
.cave-gear-card{background:#241c15;border:1.5px solid #46362450;border-radius:12px;padding:12px;color:#e9dcc4;}
.cave-gear-title{font-weight:800;font-size:.85rem;margin-bottom:2px;}
.cave-gear-sub{font-size:.68rem;color:#b8a689;margin-bottom:8px;}
.cave-gear-card .action-btn{width:100%;justify-content:center;}
.cave-enter-btn{width:100%;justify-content:center;padding:12px;font-size:.9rem;margin-bottom:6px;}
.cave-hint{font-size:.72rem;color:var(--soil-light);margin:2px 0 10px;}
.cave-injury-banner{background:#3a1c16;border:1.5px solid #7a3a2a;color:#f1c9b8;border-radius:12px;padding:16px;font-size:.85rem;font-weight:700;line-height:1.5;text-align:center;}
.cave-torch-bar{display:flex;align-items:center;gap:8px;background:#241c15;border-radius:10px;padding:8px 12px;margin-bottom:6px;color:#e9dcc4;font-size:.78rem;font-weight:700;}
.cave-torch-bar .dbar-track{background:#3a2c1c;}
.fill-bad{background:var(--warn);}
.cave-layer-label{font-size:.78rem;font-weight:800;color:var(--soil-dark);margin:14px 0 8px;display:flex;align-items:center;gap:8px;}
.cave-risk{font-size:.66rem;font-weight:600;color:var(--warn);background:#f6e2da;border-radius:6px;padding:2px 7px;}
.cave-grid .cave-spot{background:#efe6d4;border-color:#d9c9a3;}
.cave-grid .cave-spot.ready{border-color:#8a6a2f;background:linear-gradient(180deg,#fff2d9,#efe6d4);}
.cave-leave-btn{width:100%;justify-content:center;margin-top:14px;}
.cave-stats{font-size:.72rem;color:var(--soil-light);margin-top:14px;text-align:center;}

/* ===== КУЗНИЦА: тёплый отблеск горна — отдельно и от пещеры, и от леса ===== */
.smith-scene{position:relative;border-radius:14px;overflow:hidden;margin-bottom:14px;height:64px;
  background:radial-gradient(ellipse at 50% 130%, #ff7a3c 0%, #7a2c12 35%, #2b1810 75%, #1a1210 100%);}
.smith-scene::before{content:'⚒️ 🔥 🪨 🔥 ⚒️';position:absolute;bottom:-2px;left:0;right:0;font-size:1.4rem;letter-spacing:16px;opacity:.6;text-align:center;white-space:nowrap;overflow:hidden;}
.smith-build-card{background:#2a1c14;border:1.5px solid #5a3a22;border-radius:12px;padding:16px;color:#f1dfc8;text-align:center;}
.smith-build-title{font-weight:800;font-size:.95rem;margin-bottom:6px;}
.smith-build-card .action-btn{margin-top:8px;}
.smith-tools-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin-bottom:16px;}
.smith-tool-card{background:var(--cream);border:1.5px solid var(--cream-dark);border-radius:12px;padding:10px;text-align:center;}
.smith-tool-card.owned{border-color:#c0752e;background:linear-gradient(180deg,#fff0dc,var(--cream));}
.smith-tool-icon{font-size:1.6rem;}
.smith-tool-name{font-size:.76rem;font-weight:700;color:var(--soil-dark);margin:2px 0;}
.smith-tool-hint{font-size:.64rem;color:var(--soil-light);margin-bottom:8px;min-height:2.4em;}
.smith-tool-owned{font-size:.7rem;font-weight:800;color:var(--ok);}
.smith-section-title{font-size:.86rem;font-weight:800;color:var(--soil-dark);margin:14px 0 8px;}
.smith-batch-card{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#2a1c14;color:#f1dfc8;border-radius:12px;padding:12px 14px;font-size:.8rem;font-weight:700;}
.smith-batch-card.ready{background:linear-gradient(90deg,#5a3416,#7a2c12);}
.smith-recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;}
.smith-recipe-card{background:var(--cream);border:1.5px solid var(--cream-dark);border-radius:12px;padding:11px;}
.smith-recipe-title{font-size:.8rem;font-weight:800;color:var(--soil-dark);margin-bottom:3px;}
.smith-recipe-cost,.smith-recipe-hint,.smith-recipe-yield{font-size:.66rem;color:var(--soil-light);margin-bottom:3px;line-height:1.35;}
.smith-recipe-card .action-btn{width:100%;justify-content:center;margin-top:6px;}

/* Деревня */
.village-scene{position:relative;border-radius:14px;overflow:hidden;margin-bottom:14px;height:80px;
  background:linear-gradient(180deg,#cfe3ef 0%,#e8c98a 45%,#c9a563 100%);}
.village-scene::before{content:'🏚️ 🏠 🏡 🏠 🏚️';position:absolute;bottom:-4px;left:0;right:0;text-align:center;font-size:1.8rem;letter-spacing:10px;opacity:.92;}
.villager-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;}
.villager-card{background:var(--cream);border:1.5px solid var(--cream-dark);border-radius:12px;padding:14px 10px;text-align:center;transition:.15s;}
.villager-card:hover{border-color:var(--gold);transform:translateY(-2px);box-shadow:0 4px 10px rgba(0,0,0,.12);}
.villager-card .v-icon{font-size:2.4rem;display:block;margin-bottom:4px;animation:pinBounce 3s ease-in-out infinite;}
.villager-card .v-name{font-size:.82rem;font-weight:800;color:var(--soil-dark);display:block;}
.villager-card .v-role{font-size:.66rem;color:var(--soil-light);display:block;margin-bottom:8px;}
.villager-card .v-gift-badge{display:inline-block;background:var(--gold);color:#3a2a05;font-size:.6rem;font-weight:800;border-radius:8px;padding:1px 7px;margin-bottom:6px;}
.dialogue-box{background:var(--cream);border-radius:12px;padding:14px;margin:10px 0 14px;text-align:left;position:relative;border:1.5px solid var(--cream-dark);}
.dialogue-box::before{content:'';position:absolute;top:-8px;left:24px;border:8px solid transparent;border-bottom-color:var(--cream);}
.dialogue-name{font-weight:800;color:var(--soil-dark);font-size:.85rem;}
.dialogue-role{font-size:.66rem;color:var(--soil-light);margin-bottom:6px;}
.dialogue-text{font-size:.86rem;color:var(--ink);line-height:1.45;font-style:italic;}
.dialogue-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap;}

/* ===== ЗАДАНИЯ / СЮЖЕТ (js/quests.js) ===== */
.quest-log{background:var(--cream);border:1.5px solid var(--gold);border-radius:12px;padding:12px 14px;margin-bottom:14px;}
.quest-log-title{font-size:.9rem;margin:0 0 8px;color:var(--soil-dark);}
.quest-chain{display:flex;flex-direction:column;gap:5px;}
.quest-chain-step{display:flex;align-items:center;gap:8px;font-size:.78rem;padding:4px 6px;border-radius:7px;color:var(--soil-light);}
.quest-chain-step.done{color:var(--soil-dark);}
.quest-chain-step.active{background:#fbeecd;color:#7a5b18;font-weight:700;}
.quest-chain-step.ready{background:#fbe1de;color:#7a1f1f;font-weight:700;}
.quest-chain-step.locked{opacity:.55;}
.qcs-icon{font-size:1rem;flex-shrink:0;}
.quest-log-done-note{font-size:.78rem;color:var(--soil-light);margin:8px 0 0;font-style:italic;}
.quest-box{border-color:var(--gold);}
.quest-title{font-weight:800;font-size:.82rem;color:var(--soil-dark);margin-bottom:4px;}
.quest-objective{font-size:.76rem;color:#7a5b18;background:#fbeecd;border-radius:7px;padding:4px 8px;margin-top:6px;display:inline-block;}
.quest-objective.quest-done{color:#2f6a2f;background:#e4f2df;}
.v-gift-badge.quest-badge{background:#c9463f;color:#fff;}
.v-gift-badge.quest-badge-active{background:#8a6a2a;color:#fff;}

/* Живая сцена загона */
.barn-scene-modal{max-width:640px;text-align:left;}

/* 🏗️ Обустройство загонов — билдер */
.pen-builder-modal{max-width:640px;max-height:88vh;overflow-y:auto;text-align:left;}
.pb-intro{font-size:.78rem;}
.pb-placing-hint{background:#fff2cf;color:#8a6620;border-radius:8px;padding:7px 10px;font-size:.78rem;font-weight:700;margin-bottom:8px;display:flex;align-items:center;justify-content:space-between;gap:8px;}
.pb-board{position:relative;width:100%;max-height:52vh;background:#dcead0;border:2px solid var(--cream-dark);border-radius:12px;margin:8px 0 14px;overflow:hidden;}
.pb-cells{position:absolute;inset:0;display:grid;}
.pb-cell{border:1px dashed rgba(90,74,44,.18);}
.pb-cell:active{background:rgba(111,174,70,.25);}
.pb-items{position:absolute;inset:0;pointer-events:none;}
.pb-item{position:absolute;display:flex;align-items:center;justify-content:center;font-size:1.4rem;background:rgba(255,255,255,.55);border:1.5px solid rgba(90,74,44,.3);border-radius:8px;pointer-events:auto;cursor:pointer;box-sizing:border-box;}
.pb-item.selected{border-color:var(--grass-dark);box-shadow:0 0 0 2px var(--grass-dark) inset;}
.pen-build-btn{background:#fff2cf!important;color:#8a6620!important;}
.barn-scene{position:relative;height:240px;border-radius:12px;overflow:hidden;margin:8px 0;
  background:linear-gradient(180deg,#bcdff0 0%,#dcefc0 35%,#8fae5a 100%);border:3px solid #8a6a3a;}
.barn-scene.night{background:linear-gradient(180deg,#1a2350 0%,#2c3868 55%,#3a4a30 100%);}
.barn-sprite{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;cursor:pointer;transition-property:left,top;transition-timing-function:ease-in-out;transition-duration:1.6s;}
.bsprite-icon{font-size:1.7rem;filter:drop-shadow(0 3px 2px rgba(0,0,0,.35));}
.barn-sprite.sick .bsprite-icon{filter:grayscale(.4) drop-shadow(0 3px 2px rgba(0,0,0,.35));}
.barn-sprite.sleepy .bsprite-icon{opacity:.6;}
.bsprite-mood{font-size:.8rem;margin-top:-4px;}
.barn-feeder{position:absolute;left:4%;bottom:5%;font-size:1.5rem;opacity:.85;}
.barn-struct{position:absolute;transform:translate(-50%,-50%);font-size:1.35rem;background:rgba(255,255,255,.5);border:1px solid rgba(90,74,44,.3);border-radius:8px;width:1.9em;height:1.9em;display:flex;align-items:center;justify-content:center;pointer-events:none;}
.barn-pile{position:absolute;transform:translate(-50%,-50%);font-size:1.6rem;pointer-events:none;filter:drop-shadow(0 2px 2px rgba(0,0,0,.3));}
.barn-pile-amt{position:absolute;right:-8px;bottom:-4px;background:#3a2a05;color:#fff2cf;font-size:.55rem;font-weight:800;border-radius:8px;padding:0 4px;}
.barn-heart{position:absolute;transform:translate(-50%,-50%);font-size:1.2rem;animation:heartPop 2.2s ease-out forwards;pointer-events:none;}
@keyframes heartPop{0%{opacity:0;transform:translate(-50%,-50%) scale(.5);}20%{opacity:1;transform:translate(-50%,-50%) scale(1.1);}80%{opacity:1;}100%{opacity:0;transform:translate(-50%,-70%) scale(1);}}

/* Карта пасеки (луг с цветами и летающими пчёлами) */
.apiary-scene{position:relative;height:260px;border-radius:12px;overflow:hidden;margin:8px 0;
  background:linear-gradient(180deg,#bcdff0 0%,#dcefc0 30%,#9ac96a 60%,#7a9e4a 100%);border:3px solid #8a6a3a;}
.apiary-scene.winter{background:linear-gradient(180deg,#cfe3ee 0%,#e8f0f4 40%,#f2f6f8 100%);}
.apiary-flower{position:absolute;transform:translate(-50%,-50%);font-size:1.3rem;opacity:.92;pointer-events:none;filter:drop-shadow(0 2px 2px rgba(0,0,0,.25));}
.apiary-hive{position:absolute;bottom:6%;transform:translate(-50%,0);display:flex;flex-direction:column;align-items:center;cursor:pointer;}
.apiary-hive-icon{font-size:1.9rem;filter:drop-shadow(0 3px 2px rgba(0,0,0,.35));}
.apiary-hive-badge{font-size:.85rem;margin-top:-6px;}
.apiary-threat-badge{position:absolute;top:-14px;right:-10px;font-size:.9rem;animation:apiaryThreatPulse 1s ease-in-out infinite;}
@keyframes apiaryThreatPulse{0%,100%{transform:scale(1);}50%{transform:scale(1.25);}}
.apiary-bee{position:absolute;transform:translate(-50%,-50%);font-size:1.1rem;transition-property:left,top;transition-timing-function:ease-in-out;transition-duration:1.6s;pointer-events:none;filter:drop-shadow(0 2px 2px rgba(0,0,0,.3));}
/* Выгул на пастбище (js/pasture.js) */
.pasture-scene-modal{max-width:680px;}
.pasture-host{height:300px;}
.pasture-hud{margin:8px 0 2px;}
.pasture-watch-row{display:flex;align-items:center;gap:8px;}
.pasture-watch-label{font-size:.72rem;font-weight:700;color:var(--soil-dark);white-space:nowrap;}
.pasture-watch-track{flex:1;height:10px;border-radius:6px;background:var(--cream-dark);overflow:hidden;border:1px solid var(--soil-light);}
.pasture-watch-fill{height:100%;transition:width .25s linear,background .25s;}
.pasture-watch-btn{white-space:nowrap;}
.pasture-stats-row{display:flex;gap:12px;flex-wrap:wrap;font-size:.7rem;font-weight:700;color:var(--soil-light);margin-top:6px;}
.pasture-hint{font-size:.76rem;color:var(--soil-light);line-height:1.4;margin:8px 0 0;}
.pasture-go-btn{background:linear-gradient(180deg,#8bb85a,#5c8a3a);color:#fff;border-color:#456b2a;}
.stray-card .stray-list{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0;}
.heat-chip{animation:heatPulse 1.4s ease-in-out infinite;}
@keyframes heatPulse{0%,100%{opacity:1;}50%{opacity:.55;}}

.barn3d-host{position:relative;width:100%;height:280px;border-radius:12px;overflow:hidden;background:#0c1a2a;touch-action:none;margin:8px 0;}
.barn3d-host canvas{display:block;width:100%;height:100%;}
.barn3d-host:fullscreen,.barn3d-host:-webkit-full-screen,.barn3d-host:-moz-full-screen,.barn3d-host:-ms-fullscreen{width:100vw;height:100vh;border-radius:0;margin:0;}
/* 📱 Надёжный «псевдо-фуллскрин» через CSS — работает даже там, где браузерный
   Fullscreen API не поддерживается по-настоящему (некоторые встроенные вебвью). */
.barn3d-host.fp-pseudo-fullscreen{position:fixed;inset:0;width:100vw;height:100vh;border-radius:0;margin:0;z-index:9999;}

/* 🚶 От первого лица */
.fp-toggle-btn{margin:2px 0 6px;}
.fp-overlay{position:absolute;inset:0;pointer-events:none;touch-action:none;}
.fp-hint{position:absolute;top:8px;left:50%;transform:translateX(-50%);background:rgba(20,20,20,.55);color:#fff;font-size:.64rem;font-weight:600;padding:4px 10px;border-radius:8px;text-align:center;max-width:88%;pointer-events:none;}
.fp-fullscreen-btn{position:absolute;top:8px;right:8px;width:34px;height:34px;border-radius:50%;background:rgba(20,20,20,.55);color:#fff;font-size:1rem;line-height:1;display:flex;align-items:center;justify-content:center;pointer-events:auto;border:1.5px solid rgba(255,255,255,.35);}
.fp-fullscreen-btn:active{background:rgba(20,20,20,.8);}
.fp-joystick{position:absolute;left:14px;bottom:14px;width:92px;height:92px;border-radius:50%;background:rgba(255,255,255,.22);border:2px solid rgba(255,255,255,.5);pointer-events:auto;touch-action:none;}
.fp-joystick-knob{position:absolute;left:50%;top:50%;width:38px;height:38px;margin:-19px 0 0 -19px;border-radius:50%;background:rgba(255,255,255,.9);border:2px solid rgba(90,74,44,.45);}
.fp-interact{position:absolute;right:10px;bottom:14px;max-width:58%;display:none;flex-direction:column;align-items:flex-end;gap:6px;pointer-events:auto;}
.fp-interact.show{display:flex;}
.fp-tag{background:rgba(20,20,20,.68);color:#fff;font-size:.66rem;font-weight:700;border-radius:8px;padding:5px 9px;text-align:right;}
.fp-actions{display:flex;flex-direction:column;gap:4px;align-items:flex-end;}
.fp-action-btn{background:var(--soil);color:#fff;border-radius:8px;padding:6px 11px;font-size:.72rem;font-weight:700;white-space:nowrap;}
.fp-action-btn:disabled{opacity:.4;}
.barn3d-loader{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#dbe9f5;z-index:2;background:#0c1a2a;}
.barn3d-spinner{width:38px;height:38px;border-radius:50%;border:4px solid rgba(255,255,255,.18);border-top-color:#5aa0c9;animation:barn3dSpin .8s linear infinite;}
@keyframes barn3dSpin{to{transform:rotate(360deg);}}
.barn3d-loader-text{font-size:.8rem;text-align:center;line-height:1.4;}
.barn3d-loader-timer{font-size:.72rem;color:#9fb8cc;font-variant-numeric:tabular-nums;}
.barn3d-loader-error{color:#ffb3b3;font-size:.78rem;text-align:center;line-height:1.4;padding:0 16px;}
.barn3d-retry-btn{margin-top:4px;background:#5aa0c9;color:#fff;border:none;border-radius:8px;padding:7px 16px;font-size:.78rem;cursor:pointer;font-weight:600;}
.barn3d-retry-btn:active{opacity:.8;}

@media(max-width:880px) and (orientation:landscape){
  .fish-pond-scene{height:110px;}
  header.topbar{padding:8px 12px;}
  .side-nav{padding:6px;}
}

/* Погодные эффекты */
.weather-fx{position:fixed;inset:0;pointer-events:none;z-index:5;overflow:hidden;}
.rain-drop{position:absolute;top:-5%;width:2px;height:16px;background:linear-gradient(180deg,rgba(180,210,230,0),rgba(180,210,230,.55));animation:rainFall linear infinite;}
@keyframes rainFall{from{transform:translateY(0);}to{transform:translateY(110vh);}}
.snow-flake{position:absolute;top:-5%;color:rgba(255,255,255,.85);font-size:.9rem;animation:snowFall linear infinite;}
@keyframes snowFall{from{transform:translateY(0) translateX(0);}to{transform:translateY(110vh) translateX(var(--drift,20px));}}

/* Сутки */
.daytime-tint{position:fixed;inset:0;pointer-events:none;z-index:4;opacity:0;transition:opacity 4s ease,background 4s ease;background:linear-gradient(180deg,#1a2350 0%,#2c3868 45%,rgba(44,56,104,0) 100%);}
.daytime-tint.tod-night{opacity:.42;}
.daytime-tint.tod-dusk{opacity:.24;background:linear-gradient(180deg,#5a3a5a 0%,#a85a3f 45%,rgba(168,90,63,0) 100%);}
.daytime-tint.tod-dawn{opacity:.16;background:linear-gradient(180deg,#5a4a7a 0%,#e88ba0 45%,rgba(232,139,160,0) 100%);}
.stars-fx{position:fixed;inset:0;pointer-events:none;z-index:3;opacity:0;transition:opacity 3.5s ease;}
.stars-fx.show{opacity:1;}
.stars-fx.dim{opacity:.35;}
.star-dot{position:absolute;background:#fff;border-radius:50%;animation:starTwinkle ease-in-out infinite;}
@keyframes starTwinkle{0%,100%{opacity:.25;}50%{opacity:1;}}
.moon-glow{position:absolute;top:6%;right:9%;font-size:1.9rem;filter:drop-shadow(0 0 10px rgba(255,255,255,.55));animation:moonDrift 40s ease-in-out infinite alternate;}
@keyframes moonDrift{from{transform:translateY(0);}to{transform:translateY(14px);}}
.sunrays-fx{position:fixed;inset:0;pointer-events:none;z-index:3;opacity:0;transition:opacity 2.5s ease;mix-blend-mode:soft-light;}
.sunrays-fx.show{opacity:.85;}
.sunrays-fx::before{content:'';position:absolute;top:-30%;right:-10%;width:70vmax;height:70vmax;background:conic-gradient(from 0deg,transparent 0deg,rgba(255,244,200,.55) 6deg,transparent 14deg,transparent 40deg,rgba(255,244,200,.4) 46deg,transparent 54deg,transparent 80deg,rgba(255,244,200,.5) 86deg,transparent 94deg,transparent 120deg,rgba(255,244,200,.4) 126deg,transparent 134deg,transparent 160deg,rgba(255,244,200,.45) 166deg,transparent 174deg,transparent 200deg,rgba(255,244,200,.4) 206deg,transparent 214deg,transparent 240deg,rgba(255,244,200,.45) 246deg,transparent 254deg,transparent 280deg,rgba(255,244,200,.4) 286deg,transparent 294deg,transparent 320deg,rgba(255,244,200,.5) 326deg,transparent 334deg,transparent 360deg);animation:sunSpin 60s linear infinite;border-radius:50%;}
@keyframes sunSpin{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}
.lightning-flash{position:fixed;inset:0;background:#fff;opacity:0;pointer-events:none;z-index:20;}
.lightning-flash.strike{animation:lightningStrike .55s ease-out;}
@keyframes lightningStrike{0%{opacity:0;}6%{opacity:.85;}12%{opacity:.1;}18%{opacity:.7;}28%{opacity:0;}100%{opacity:0;}}
.settings-row{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0;}
.settings-btn{background:var(--panel);border:1.5px solid var(--soil-light);border-radius:9px;padding:8px 13px;font-size:.78rem;font-weight:700;color:var(--soil-dark);display:flex;align-items:center;gap:7px;}
.settings-btn.off{opacity:.5;}
.settings-btn:hover{background:var(--cream-dark);}

/* Режим картошки */
.perf-hint{display:flex;align-items:center;flex-wrap:wrap;gap:8px;background:#fbeecd;color:#7a5b18;}
.potato-levels{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin:8px 0;}
.potato-btn{background:var(--cream);border:1.5px solid var(--cream-dark);border-radius:11px;padding:10px 8px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:2px;transition:.15s;}
.potato-btn:hover{background:var(--cream-dark);}
.potato-btn.active{background:linear-gradient(180deg,#fff8e4,var(--cream));border-color:var(--gold);box-shadow:0 2px 8px rgba(200,154,60,.3);}
.potato-icon{font-size:1.4rem;}
.potato-name{font-size:.78rem;font-weight:800;color:var(--soil-dark);}
.potato-desc{font-size:.64rem;color:var(--soil-light);}
.potato-custom-note{font-size:.72rem;color:var(--soil-light);margin:2px 0 8px;font-style:italic;}
.gfx-toggle-list{display:flex;flex-direction:column;gap:6px;margin:8px 0;}
.gfx-toggle{display:flex;align-items:center;gap:8px;font-size:.8rem;font-weight:600;color:var(--soil-dark);background:var(--cream);border-radius:8px;padding:7px 10px;cursor:pointer;}
.gfx-toggle input{width:16px;height:16px;flex-shrink:0;}
.gfx-toggle span:first-of-type{flex:1;}
.gfx-impact{font-size:.62rem;font-weight:800;padding:2px 7px;border-radius:6px;white-space:nowrap;}
.gfx-impact.hi{background:#fbe1de;color:var(--warn);}
.gfx-impact.mid{background:#fbeecd;color:#8a6a1a;}
.gfx-impact.lo{background:#dcebd6;color:var(--ok);}

body.no-gfx-shadows *{box-shadow:none!important;text-shadow:none!important;}
body.no-gfx-shadows .crop-emoji,body.no-gfx-shadows .bsprite-icon,body.no-gfx-shadows .map-pin-icon,
body.no-gfx-shadows .villager-card .v-icon,body.no-gfx-shadows .map-player,body.no-gfx-shadows .map-decor{filter:none!important;}
body.no-gfx-lighting .daytime-tint{display:none!important;}
body.no-gfx-weather #weatherFx,body.no-gfx-weather #lightningFlash{display:none!important;}
body.no-gfx-plantanim .crop-emoji{animation:none!important;}
body.no-gfx-mapfx .map-cloud,body.no-gfx-mapfx .star-dot,body.no-gfx-mapfx .moon-glow,body.no-gfx-mapfx #sunraysFx{display:none!important;}

/* Достижения */
.achv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;margin-top:6px;}
.achv-card{background:var(--cream);border-radius:10px;padding:10px 12px;display:flex;gap:10px;align-items:flex-start;opacity:.45;filter:grayscale(1);}
.achv-card.unlocked{opacity:1;filter:none;background:#eef4e8;}
.achv-icon{font-size:1.4rem;flex-shrink:0;}
.achv-name{font-weight:700;font-size:.82rem;color:var(--soil-dark);}
.achv-desc{font-size:.7rem;color:var(--soil-light);margin-top:2px;}
.achv-toast{position:fixed;top:16px;left:50%;transform:translateX(-50%) translateY(-20px);background:var(--panel);border:2px solid var(--gold);border-radius:12px;padding:12px 18px;box-shadow:0 8px 24px rgba(0,0,0,.3);z-index:300;display:flex;gap:10px;align-items:center;opacity:0;transition:.35s;max-width:90vw;}
.achv-toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
.achv-toast .achv-icon{font-size:1.8rem;}
.achv-toast .t-title{font-size:.68rem;text-transform:uppercase;letter-spacing:.6px;color:var(--gold);font-weight:700;}
.achv-toast .t-name{font-weight:700;color:var(--soil-dark);font-size:.9rem;}

/* Flip */
.flip-wrap{display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:14px;}
.flip-pan{font-size:3.4rem;transition:transform .15s;}
.flip-pan.cue{animation:flipCue .5s ease infinite alternate;}
@keyframes flipCue{from{transform:scale(1);} to{transform:scale(1.18) rotate(-6deg);}}
.flip-status{font-size:.85rem;font-weight:700;color:var(--soil-dark);min-height:1.3em;text-align:center;}

/* Balance */
.balance-track{position:relative;height:30px;background:var(--cream-dark);border-radius:15px;overflow:hidden;margin-bottom:16px;border:2px solid var(--soil-light);touch-action:none;cursor:pointer;}
.balance-zone{position:absolute;top:0;bottom:0;background:rgba(74,124,63,.5);}
.balance-handle{position:absolute;top:2px;bottom:2px;width:14px;background:var(--gold);border-radius:7px;box-shadow:0 1px 3px rgba(0,0,0,.4);}
.balance-labels{display:flex;justify-content:space-between;font-size:.68rem;color:var(--soil-light);margin:-10px 0 12px;}
/* ===== Уровень фермера и опыт (progression.js) ===== */
.level-pill{background:linear-gradient(135deg,#fff2cf,#ffdd8a);border-color:var(--gold);color:#7a5b18;font-weight:700;}
.lvl-card{background:linear-gradient(160deg,#fffaf0,#fdf0d5);border:1.5px solid var(--gold);border-radius:12px;padding:12px 14px;margin-bottom:14px;box-shadow:0 2px 6px rgba(0,0,0,.06);}
.lvl-top{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:6px;}
.lvl-badge{font-weight:800;color:var(--soil-dark);font-size:.95rem;}
.lvl-xp{font-size:.75rem;color:var(--soil-light);font-weight:600;}
.lvl-bar-track{height:10px;background:var(--cream-dark);border-radius:6px;overflow:hidden;border:1px solid var(--gold);}
.lvl-bar-fill{height:100%;background:linear-gradient(90deg,#e0b64a,var(--gold));border-radius:6px;transition:width .4s ease;}
.lvl-next{font-size:.75rem;color:var(--soil-light);margin-top:7px;}
.lvl-next span{font-size:1rem;margin-right:2px;}

/* Замок на ещё не открытых культурах/деревьях/животных в лавке */
.shop-item.locked{opacity:.6;filter:grayscale(.4);}
.shop-item.locked .buy-btn{background:var(--cream-dark);color:var(--soil-light);border-color:var(--soil-light);}

/* Окно повышения уровня — центр экрана, с всплытием и лёгкой пружиной */
.levelup-toast{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.7);opacity:0;background:linear-gradient(160deg,#fff7e0,#ffe9b3);border:3px solid var(--gold);border-radius:18px;padding:22px 24px;box-shadow:0 20px 60px rgba(0,0,0,.35);z-index:500;text-align:center;max-width:88vw;width:320px;transition:transform .45s cubic-bezier(.34,1.56,.64,1), opacity .3s;}
.levelup-toast.show{opacity:1;transform:translate(-50%,-50%) scale(1);}
.levelup-toast .lu-star{font-size:2.6rem;animation:luSpin .8s ease-out;}
.levelup-toast .lu-title{font-size:.72rem;letter-spacing:1px;text-transform:uppercase;color:#a9781a;font-weight:700;margin-top:2px;}
.levelup-toast .lu-level{font-size:1.9rem;font-weight:800;color:var(--soil-dark);margin:2px 0 10px;font-family:'Fraunces',serif;}
.levelup-toast .lu-unlocks{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:10px;}
.levelup-toast .lu-unlock-item{background:#fff;border:1px solid #e7cf94;border-radius:10px;padding:6px 9px;font-size:.78rem;display:flex;align-items:center;gap:5px;color:var(--soil-dark);font-weight:600;}
.levelup-toast .lu-plain{font-size:.85rem;color:var(--soil-light);margin-bottom:10px;}
.levelup-toast .lu-close{width:100%;justify-content:center;padding:10px;}
@keyframes luSpin{from{transform:rotate(-30deg) scale(.4);opacity:0;}to{transform:rotate(0) scale(1);opacity:1;}}

/* Живее подпрыгивающий тост достижений (раньше вообще не показывался — теперь показывается) */
.achv-toast.show{animation:achvPop .5s cubic-bezier(.34,1.56,.64,1);}
@keyframes achvPop{0%{transform:translateX(-50%) translateY(-20px) scale(.85);opacity:0;}60%{transform:translateX(-50%) translateY(4px) scale(1.04);opacity:1;}100%{transform:translateX(-50%) translateY(0) scale(1);opacity:1;}}

/* ============================================================
   ОХОТА И МЯСНИЦКОЕ ДЕЛО — новые мини-игры (скрадывание, прицел
   с дыханием, маскировка ловушки, разделка туши по этапам).
   ============================================================ */

/* --- Скрадывание --- */
.stalk-wrap{display:flex;flex-direction:column;align-items:center;gap:8px;margin-bottom:6px;}
.stalk-alert-track{width:100%;height:12px;border-radius:7px;background:var(--cream-dark);overflow:hidden;border:1.5px solid var(--soil-light);}
.stalk-alert-fill{height:100%;width:0%;background:linear-gradient(90deg,#6fae57,var(--gold));transition:width .25s ease;}
.stalk-alert-fill.danger{background:linear-gradient(90deg,#c9703f,var(--warn));}
.pulse-ring{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.6rem;background:var(--cream);border:3px solid var(--cream-dark);transition:border-color .15s,transform .15s;user-select:none;}
.pulse-ring.active{border-color:var(--ok);box-shadow:0 0 0 6px rgba(74,124,63,.18);animation:pulseGlow .5s ease-in-out infinite alternate;}
.pulse-ring.hit{transform:scale(1.18);border-color:var(--gold);}
@keyframes pulseGlow{from{box-shadow:0 0 0 3px rgba(74,124,63,.14);}to{box-shadow:0 0 0 9px rgba(74,124,63,.24);}}

/* --- Прицел (дыхание + убойная зона) --- */
.scope-box{position:relative;height:170px;border-radius:14px;background:radial-gradient(ellipse at center,#eef4e6 0%,#d8e6c8 60%,#c3d6ae 100%);border:2px solid var(--soil-light);overflow:hidden;margin-bottom:10px;box-shadow:inset 0 0 24px rgba(43,33,23,.15);}
.scope-box::before,.scope-box::after{content:'';position:absolute;background:rgba(43,33,23,.18);}
.scope-box::before{left:50%;top:0;bottom:0;width:1px;}
.scope-box::after{top:50%;left:0;right:0;height:1px;}
.scope-animal{position:absolute;left:50%;top:52%;transform:translate(-50%,-50%);font-size:3.4rem;filter:drop-shadow(0 3px 4px rgba(0,0,0,.25));user-select:none;}
.scope-vital{position:absolute;transform:translate(-50%,-50%);border-radius:50%;border:2px dashed rgba(179,73,42,.75);background:rgba(179,73,42,.12);}
.scope-crosshair{position:absolute;width:26px;height:26px;transform:translate(-50%,-50%);border:2px solid #d94040;border-radius:50%;box-shadow:0 0 0 1px rgba(255,255,255,.6);}
.scope-crosshair::before,.scope-crosshair::after{content:'';position:absolute;background:#d94040;}
.scope-crosshair::before{left:50%;top:-7px;bottom:-7px;width:2px;transform:translateX(-50%);}
.scope-crosshair::after{top:50%;left:-7px;right:-7px;height:2px;transform:translateY(-50%);}
.breath-track{width:100%;height:10px;border-radius:6px;background:var(--cream-dark);overflow:hidden;border:1.5px solid var(--soil-light);margin-bottom:4px;}
.breath-fill{height:100%;width:100%;background:linear-gradient(90deg,#4a7c3f,#6fae57);transition:width .1s linear,background .2s;}
.breath-fill.danger{background:linear-gradient(90deg,#c0392b,#e74c3c);}
.scope-btns{display:flex;gap:8px;margin-top:10px;}
.scope-btns .action-btn{flex:1;justify-content:center;padding:12px 6px;}
#steadyBtn.active{background:var(--grass);color:#fff;border-color:var(--grass-dark);}

/* --- Маскировка ловушки/ритмичные mash-степы переиспользуют .mash-* --- */

/* --- Разделка: пульс сердцебиения для слива крови --- */
.pulse-wrap{display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:6px;}
.pulse-dots{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;}
.pulse-dots i{width:14px;height:14px;border-radius:50%;background:var(--cream-dark);border:1.5px solid var(--soil-light);display:inline-block;font-style:normal;}
.pulse-dots i.good{background:var(--ok);border-color:var(--ok);}
.pulse-dots i.meh{background:var(--gold);border-color:var(--gold);}
.pulse-dots i.bad,.pulse-dots i.missed{background:var(--warn);border-color:var(--warn);}

/* --- Снятие шкуры: зоны риска разрыва по краям дорожки --- */
.skin-track{position:relative;}
.mg-rip-zone{position:absolute;top:0;bottom:0;background:repeating-linear-gradient(45deg,rgba(179,73,42,.28),rgba(179,73,42,.28) 5px,rgba(179,73,42,.14) 5px,rgba(179,73,42,.14) 10px);}

/* --- Разруб на суставы: реакция на случайных клетках --- */
.joint-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px;}
.joint-cell{height:60px;border-radius:12px;background:var(--cream);border:1.5px dashed var(--cream-dark);display:flex;align-items:center;justify-content:center;}
.joint-btn{position:relative;width:52px;height:52px;border-radius:50%;background:var(--panel);border:2.5px solid var(--warn);font-size:1.5rem;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px rgba(0,0,0,.18);animation:jointPop .12s ease;}
.joint-btn:active{transform:scale(.9);}
.joint-ring{position:absolute;inset:-2.5px;border-radius:50%;border:2.5px solid rgba(179,73,42,.55);animation:jointShrink linear forwards;animation-duration:1s;}
@keyframes jointPop{from{transform:scale(.4);opacity:0;}to{transform:scale(1);opacity:1;}}
@keyframes jointShrink{from{transform:scale(1.5);opacity:.9;}to{transform:scale(.15);opacity:0;}}

/* --- Сортировка обрезков (крупная дичь) --- */
.trim-wrap{display:flex;flex-direction:column;align-items:center;gap:10px;margin-bottom:6px;}
.trim-item{font-size:3rem;height:64px;display:flex;align-items:center;justify-content:center;}
.trim-item.pop{animation:trimPop .22s ease;}
@keyframes trimPop{0%{transform:scale(.5) rotate(-8deg);opacity:0;}100%{transform:scale(1) rotate(0);opacity:1;}}
.trim-bins{display:flex;gap:8px;width:100%;}
.trim-bin{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;background:var(--cream);border:1.5px solid var(--cream-dark);border-radius:12px;padding:10px 4px;font-weight:700;transition:.12s;}
.trim-bin .tb-icon{font-size:1.4rem;}
.trim-bin .tb-label{font-size:.68rem;color:var(--soil-light);}
.trim-bin:active{transform:scale(.95);}
.trim-bin.right{background:rgba(74,124,63,.22);border-color:var(--ok);}
.trim-bin.wrong{background:rgba(179,73,42,.18);border-color:var(--warn);}

/* ============================================================
   НАВЫКИ И СПЕЦИАЛИЗАЦИИ (js/skills.js)
   ============================================================ */
.skill-card{background:var(--panel);border:1.5px solid var(--cream-dark);border-radius:14px;padding:14px;margin-bottom:12px;}
.skill-card-head{display:flex;align-items:center;gap:10px;margin-bottom:8px;}
.skill-card-icon{font-size:1.8rem;line-height:1;}
.skill-card-title{flex:1;}
.skill-card-name{font-weight:800;color:var(--soil-dark);font-size:1rem;}
.skill-card-lvl{font-size:.72rem;color:var(--soil-light);font-weight:600;}
.skill-bar-track{margin-bottom:3px;}
.skill-card-xp{font-size:.66rem;color:var(--soil-light);text-align:right;margin-bottom:6px;}
.skill-card-desc{font-size:.76rem;color:var(--soil-light);margin-bottom:8px;line-height:1.4;}

.skill-locked-note{font-size:.76rem;color:var(--soil-light);background:var(--cream);border-radius:9px;padding:8px 10px;}

.skill-spec-choice{margin-top:6px;}
.skill-spec-prompt{font-size:.78rem;font-weight:700;color:var(--soil-dark);margin-bottom:8px;}
.skill-spec-options{display:flex;flex-direction:column;gap:8px;}
.skill-spec-btn{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;text-align:left;background:var(--cream);border:1.5px solid var(--cream-dark);border-radius:11px;padding:10px 12px;transition:.12s;}
.skill-spec-btn:hover{border-color:var(--gold);background:#fff7e0;}
.skill-spec-btn:active{transform:scale(.98);}
.skill-spec-icon{grid-row:1/3;font-size:1.6rem;align-self:center;}
.skill-spec-name{font-weight:800;color:var(--soil-dark);font-size:.86rem;}
.skill-spec-desc{font-size:.72rem;color:var(--soil-light);line-height:1.35;}
.skill-spec-perks{grid-column:2;font-size:.85rem;letter-spacing:2px;margin-top:2px;}

.skill-perk-tree{display:flex;flex-direction:column;gap:8px;margin-top:4px;}
.skill-perk{display:flex;gap:10px;align-items:flex-start;border-radius:10px;padding:8px 10px;background:var(--cream);border:1.5px solid var(--cream-dark);}
.skill-perk.unlocked{background:rgba(74,124,63,.12);border-color:var(--ok);}
.skill-perk.locked{opacity:.62;}
.skill-perk-icon{font-size:1.25rem;line-height:1.3;}
.skill-perk-name{font-weight:700;font-size:.82rem;color:var(--soil-dark);}
.skill-perk-need{font-weight:600;color:var(--soil-light);font-size:.68rem;}
.skill-perk-desc{font-size:.72rem;color:var(--soil-light);line-height:1.35;margin-top:1px;}
.skill-respec-btn{width:100%;justify-content:center;margin-top:10px;font-size:.72rem;color:var(--soil-light);}

/* --- Компактный виджет ремесла, встроенный на тематические страницы --- */
.skill-mini{display:flex;align-items:center;gap:9px;background:var(--cream);border:1.5px solid var(--cream-dark);border-radius:10px;padding:7px 10px;margin-bottom:8px;cursor:pointer;transition:.12s;}
.skill-mini:hover{border-color:var(--gold);}
.skill-mini:active{transform:scale(.98);}
.skill-mini-icon{font-size:1.15rem;}
.skill-mini-body{flex:1;display:flex;flex-direction:column;gap:3px;}
.skill-mini-txt{font-size:.7rem;font-weight:700;color:var(--soil-dark);}
.skill-mini-bar-track{display:block;height:5px;border-radius:3px;background:var(--cream-dark);overflow:hidden;}
.skill-mini-bar-fill{display:block;height:100%;background:linear-gradient(90deg,var(--wheat),var(--gold));border-radius:3px;}

.skill-levelup-toast .lu-star{filter:none;}
.perk-toast{border-color:var(--ok);}
.perk-toast .t-title{color:var(--ok);}

.badge.disease.warn{background:#8a6a12;}
.skill-scout-hint{font-size:.74rem;color:var(--soil-dark);background:#fff7e0;border:1.5px solid var(--gold);border-radius:9px;padding:7px 10px;margin:-4px 0 10px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;}

/* ===== МАСТЕРСКАЯ (лесное ремесло: вылазки, инструменты, крафт) ===== */

/* — цвета ремёсел: у каждой вкладки/раздела свой акцент, чтобы было видно с первого
   взгляда, где ты — лес, инструменты, резьба, камень или гончарка — а не одинаковые
   бежевые карточки everywhere. */
:root{
  --wc-gather:#4f7942; --wc-gather-dk:#3a5c30;
  --wc-tools:#5a6b78;  --wc-tools-dk:#3e4c56;
  --wc-wood:#a3742f;   --wc-wood-dk:#7a5620;
  --wc-stone:#75726a;  --wc-stone-dk:#524f49;
  --wc-clay:#bb5a34;   --wc-clay-dk:#8c4326;
}

.workshop-scene{position:relative;border-radius:14px;overflow:hidden;margin-bottom:12px;height:72px;
  background:linear-gradient(180deg,#8a9a5c 0%,#5c6e3a 55%,#3a4522 100%);
  box-shadow:inset 0 -18px 24px -12px rgba(0,0,0,.35);}
.workshop-scene::before{content:'🪓 🌲 🪵 🌳 🪨 🌲 🧺 🌳 🪓';position:absolute;bottom:-8px;left:0;right:0;font-size:1.6rem;letter-spacing:10px;opacity:.9;white-space:nowrap;overflow:hidden;text-shadow:0 3px 6px rgba(0,0,0,.3);}
.workshop-scene::after{content:'🛖 мастерская';position:absolute;top:8px;left:12px;font-size:.72rem;font-weight:800;color:#fff;letter-spacing:.5px;text-shadow:0 1px 3px rgba(0,0,0,.5);text-transform:uppercase;}

/* Мешочек сырья — постоянно на виду, чтобы не гадать, хватает ли материалов */
.wpouch{background:var(--panel);border:1.5px solid var(--cream-dark);border-radius:12px;padding:9px 11px;margin-bottom:12px;box-shadow:0 2px 5px rgba(0,0,0,.06);}
.wpouch-label{font-size:.68rem;font-weight:800;color:var(--soil-light);text-transform:uppercase;letter-spacing:.5px;display:block;margin-bottom:6px;}
.wpouch-chips{display:flex;flex-wrap:wrap;gap:6px;}
.wpouch-chip{display:flex;align-items:center;gap:5px;background:var(--cream);border-radius:8px;padding:4px 9px 4px 7px;font-size:.74rem;}
.wpouch-chip .wpouch-icon{font-size:1rem;}
.wpouch-chip .wpouch-amt{font-weight:800;color:var(--soil-dark);}
.wpouch-chip .wpouch-name{color:var(--soil-light);font-size:.68rem;}
.wpouch-chip.empty{opacity:.42;}
.wpouch-chip.empty .wpouch-amt{color:var(--soil-light);}

.workshop-profs-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px;}
.workshop-profs-row .skill-mini{flex:1 1 210px;margin-bottom:0;}

/* Вкладки — крупнее, с иконкой-бейджем, у каждой свой цвет активного состояния */
.wtabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px;}
.wtab-btn{position:relative;background:var(--cream);border:1.5px solid var(--cream-dark);border-radius:10px;padding:8px 13px;font-size:.78rem;font-weight:700;color:var(--soil-dark);transition:.12s;display:flex;align-items:center;gap:6px;}
.wtab-btn:hover{border-color:var(--soil-light);}
.wtab-icon{font-size:1.05rem;}
.wtab-badge{background:var(--ok);color:#fff;font-size:.62rem;font-weight:800;border-radius:8px;padding:1px 6px;margin-left:2px;}
.wtab-btn.active .wtab-badge{background:rgba(255,255,255,.28);}
.wtab-btn.wt-gather.active{background:var(--wc-gather);color:#fff;border-color:var(--wc-gather-dk);}
.wtab-btn.wt-tools.active{background:var(--wc-tools);color:#fff;border-color:var(--wc-tools-dk);}
.wtab-btn.wt-furniture.active{background:var(--wc-wood);color:#fff;border-color:var(--wc-wood-dk);}
.wtab-btn.wt-stone.active{background:var(--wc-stone);color:#fff;border-color:var(--wc-stone-dk);}
.wtab-btn.wt-pottery.active{background:var(--wc-clay);color:#fff;border-color:var(--wc-clay-dk);}

.wtab-body{display:flex;flex-direction:column;gap:12px;}
.wtab-intro{font-size:.78rem;color:var(--soil-light);background:var(--cream);border-radius:10px;padding:9px 12px;line-height:1.4;}
.wtab-intro b{color:var(--soil-dark);}

.wsection-label{font-size:.72rem;font-weight:800;color:var(--soil-dark);text-transform:uppercase;letter-spacing:.5px;margin:2px 0 -4px;display:flex;align-items:center;gap:6px;}
.wsection-label.muted{color:var(--soil-light);}
.wsection-label::after{content:'';flex:1;height:1px;background:var(--cream-dark);}

/* Карточки инструментов/рецептов — адаптивная сетка вместо одной колонки */
.wgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;}
.wgrid-tools{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));}
.wcard{position:relative;background:var(--panel);border-radius:13px;padding:13px;display:flex;flex-direction:column;gap:8px;border:1.5px solid var(--cream-dark);box-shadow:0 2px 5px rgba(0,0,0,.05);transition:.12s;}
.wcard.ready{border-color:var(--gold);background:linear-gradient(180deg,#fffaf0,var(--panel));box-shadow:0 3px 10px rgba(200,154,60,.22);}
.wcard.owned{opacity:.8;}
.wcard.locked{opacity:.7;}
.wcard-ribbon{position:absolute;top:9px;right:11px;font-size:.9rem;}
.wcard-head{display:flex;align-items:flex-start;gap:10px;padding-right:16px;}
.wcard-icon{font-size:1.8rem;flex-shrink:0;line-height:1;}
.wcard-name{font-size:.86rem;font-weight:700;color:var(--soil-dark);}
.wcard-desc{font-size:.72rem;color:var(--soil-light);line-height:1.4;margin-top:2px;}
.wcard-status{font-size:.74rem;color:var(--soil-light);font-weight:600;}
.wcard-status.ready{color:var(--ok);}
.wcard-status.locked{color:#a5622c;}
.wtag{font-size:.62rem;font-weight:700;color:var(--ok);background:#eaf3e6;border-radius:6px;padding:1px 6px;margin-left:4px;}
.wcost-row{display:flex;flex-wrap:wrap;gap:6px;}
.wcost-part{font-size:.68rem;font-weight:700;color:var(--soil-dark);background:var(--cream-dark);border-radius:6px;padding:3px 8px;display:inline-flex;align-items:baseline;gap:4px;}
.wcost-part i{font-style:normal;font-weight:600;font-size:.6rem;color:var(--soil-light);}
.wcost-part i.wnote{color:#a5622c;}
.wcost-part.lack{color:#a02a2a;background:#f6dede;}
.wcost-part.lack i{color:#b56060;}

/* Компактные плитки для ещё не открытых рецептов — не тратят место на полную карточку */
.wtiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:8px;}
.wtile{background:var(--cream);border:1.5px dashed var(--cream-dark);border-radius:10px;padding:9px 8px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:3px;opacity:.8;transition:.12s;}
.wtile:hover{opacity:1;border-color:var(--soil-light);}
.wtile-icon{font-size:1.35rem;filter:grayscale(.35);}
.wtile-name{font-size:.68rem;font-weight:700;color:var(--soil-dark);line-height:1.2;}
.wtile-reason{font-size:.6rem;color:var(--soil-light);font-weight:600;}

/* Крупные карточки-действия для вкладки «Вылазка» */
.whero{background:var(--panel);border:1.5px solid var(--cream-dark);border-radius:14px;padding:14px;display:flex;align-items:center;gap:12px;box-shadow:0 2px 6px rgba(0,0,0,.06);}
.whero-icon{font-size:2.3rem;flex-shrink:0;background:var(--cream);border-radius:50%;width:56px;height:56px;display:flex;align-items:center;justify-content:center;}
.whero-body{flex:1;min-width:0;}
.whero-name{font-size:.94rem;font-weight:800;color:var(--soil-dark);font-family:'Fraunces',serif;}
.whero-desc{font-size:.74rem;color:var(--soil-light);line-height:1.4;margin:2px 0 6px;}
.whero-status{font-size:.74rem;font-weight:700;color:var(--soil-light);}
.whero-status.ready{color:var(--ok);}
.whero-status.locked{color:#a5622c;}
.whero-btn{flex-shrink:0;padding:11px 16px;font-size:.82rem;}
@media(max-width:560px){.whero{flex-direction:column;align-items:stretch;text-align:center;}.whero-icon{margin:0 auto;}.whero-btn{width:100%;justify-content:center;}}

/* Второстепенные блоки-карточки: навес сушки, заточка, печь — чуть скромнее «геройских» */
.wsubcard{background:var(--panel);border:1.5px solid var(--cream-dark);border-radius:13px;padding:13px;display:flex;flex-direction:column;gap:8px;}
.wsubcard-head{display:flex;align-items:flex-start;gap:10px;}
.wsubcard-icon{font-size:1.6rem;flex-shrink:0;line-height:1;}
.wsubcard-name{font-size:.84rem;font-weight:700;color:var(--soil-dark);}
.wsubcard-desc{font-size:.72rem;color:var(--soil-light);line-height:1.4;margin-top:2px;}
.wsubcard-status{font-size:.76rem;font-weight:700;color:var(--soil-light);}
.wsubcard-status.ready{color:var(--ok);}

.workshop-stats{font-size:.76rem;color:var(--soil-light);margin-top:4px;display:flex;gap:16px;flex-wrap:wrap;background:var(--cream);border-radius:10px;padding:9px 12px;}
.workshop-stats b{color:var(--soil-dark);}

/* ----- Реализм ремесла: сушка брёвен, полка/печь гончарки, простукивание камня ----- */
.drying-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;}
.drying-slot{background:var(--cream);border:1.5px dashed var(--cream-dark);border-radius:10px;padding:9px;display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center;transition:.12s;}
.drying-slot.ready{border-style:solid;border-color:var(--gold);background:#fffaf0;}
.drying-slot.empty{opacity:.55;}
.ds-icon{font-size:1.5rem;}
.ds-status{font-size:.66rem;font-weight:700;color:var(--soil-dark);}
.ds-status.ready{color:var(--ok);}
.warn-btn{background:#f6dede !important;color:#a02a2a !important;border-color:#e0b3b3 !important;}

/* ----- Простукивание камня: суждение по звуку, а не тайминг ----- */
.tap-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-top:6px;}
.tap-card{background:var(--panel);border:1.5px solid var(--cream-dark);border-radius:12px;padding:12px 8px;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;transition:.15s;}
.tap-card.tap-good{border-color:#8fbf7a;background:#eef7ea;}
.tap-card.tap-bad{border-color:#d16a5f;background:#fbe9e7;}
.tap-icon{font-size:1.8rem;}
.tap-verdict{font-size:.68rem;font-weight:700;color:var(--soil-light);min-height:2.2em;}
.tap-btns{display:flex;flex-direction:column;gap:5px;width:100%;}

/* Вылазка — мини-игра поиска */
.expedition-box{max-width:460px;}
.expedition-hud{display:flex;justify-content:space-between;font-size:.78rem;font-weight:700;color:var(--soil-dark);margin-bottom:6px;}
.expedition-timerbar{width:100%;height:8px;background:var(--cream-dark);border-radius:5px;overflow:hidden;margin-bottom:12px;}
.expedition-timerfill{height:100%;background:linear-gradient(90deg,var(--gold),#e8a73c);transition:width .1s linear;}
.expedition-scene{position:relative;height:220px;border-radius:14px;overflow:hidden;margin-bottom:10px;
  background:linear-gradient(180deg,#7fae6a 0%,#4f7942 55%,#2f5424 100%);border:1.5px solid var(--soil-dark);}
.expedition-spot{position:absolute;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%;
  background:rgba(255,255,255,.14);border:1.5px solid rgba(255,255,255,.35);display:flex;align-items:center;justify-content:center;
  font-size:1.5rem;transition:.15s;}
.expedition-spot:not(.revealed):active{transform:translate(-50%,-50%) scale(.88);}
.expedition-spot.revealed{background:rgba(255,255,255,.9);border-color:var(--gold);cursor:default;}
.expedition-spot .es-icon.found{animation:pinBounce .5s ease-in-out;}
.expedition-spot .es-icon.empty{opacity:.5;}
.expedition-log{max-height:90px;overflow-y:auto;text-align:left;font-size:.74rem;color:var(--soil-dark);}
.exp-find{padding:2px 0;}
.exp-find.empty{color:var(--soil-light);font-style:italic;}
.exp-summary-list{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;text-align:left;}
.exp-summary-item{display:flex;justify-content:space-between;background:var(--cream);border-radius:8px;padding:7px 11px;font-size:.82rem;font-weight:700;color:var(--soil-dark);}

/* ============================================================
   ХЛЕВ — простая панель корма (старая система: купил и покормил)
   ============================================================ */
.barn-feed-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;background:var(--panel);border:1.5px solid var(--cream-dark);border-radius:12px;padding:10px 14px;margin-bottom:12px;}
.barn-feed-info{font-size:.8rem;font-weight:600;color:var(--soil-dark);}
@media(max-width:520px){.barn-feed-bar{flex-direction:column;align-items:stretch;}.barn-feed-bar .action-btn{width:100%;justify-content:center;}}

.pen-group-label{background:var(--cream);border-radius:9px;padding:7px 10px;}
