/* FUSHAN VISUAL DESIGN SYSTEM 2.0 — V12.4
   Independent art layer, no changes to simulation mathematics or database behavior.
*/
:root{--fs24-forest:#315B4D;--fs24-leaf:#57977D;--fs24-sage:#8ABCA5;--fs24-linen:#F8F5EC;--fs24-sky:#D7ECE8;--fs24-sun:#E9BC76;--fs24-stroke:#DBE7DC;--fs24-radius:18px;--fs24-shadow:0 12px 36px rgba(39,83,62,.075)}
body{font-variant-numeric:tabular-nums}
button,a,[role="button"]{transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease}
button:focus-visible,a:focus-visible,[role="button"]:focus-visible{outline:3px solid #D3AC61!important;outline-offset:3px!important}
/* Hub — ornamental patterns never interfere with content or clicks */
.v120-explore-shell.v124-explore{--v120-forest:var(--fs24-forest);--v120-green:var(--fs24-leaf);--v120-ink:#324D40;--v120-border:var(--fs24-stroke)}
.v124-explore .v120-explore-header{background:radial-gradient(ellipse at 96% 6%,rgba(164,207,175,.29),transparent 44%),linear-gradient(130deg,#FCFCF7 8%,#EDF6EF 100%);border:1px solid var(--fs24-stroke);border-radius:26px;position:relative;overflow:hidden}
.v124-explore .v120-explore-header:after{content:"";position:absolute;right:14px;bottom:-26px;width:155px;height:155px;border:1px solid #A4CDB7;border-radius:50%;box-shadow:0 0 0 20px #DCEEE2,0 0 0 42px #E7F2E8;opacity:.3;pointer-events:none}
.v124-explore .v120-hub-heading{position:relative;z-index:1}
.v124-explore .v120-venue-switch{background:linear-gradient(180deg,#FBFCF7,#F1F6EF);border:1px solid var(--fs24-stroke);border-radius:20px;box-shadow:0 8px 24px rgba(28,73,50,.04)}
.v124-explore .v120-venue{border-radius:17px;position:relative;overflow:hidden}
.v124-explore .v120-venue.selected{border-color:#9BC8AB!important;box-shadow:0 7px 16px rgba(52,102,75,.12)!important;background:#fff!important}
.v124-explore .v120-venue-icon{width:52px;min-width:52px;height:52px;display:grid;place-items:center;border:1px solid #E1EEDB;background:#F2F8EE;border-radius:16px;overflow:hidden}
.v124-explore .v120-venue-icon img{width:52px;height:52px;object-fit:contain;display:block;filter:drop-shadow(0 4px 3px rgba(44,97,59,.08))}
.v124-explore .v120-workspace-head,.v124-explore .v122-task-strip{border-radius:20px;border:1px solid var(--fs24-stroke);box-shadow:0 6px 20px rgba(53,91,69,.045)}
.v124-explore .v120-tool-button,.v124-explore .fs122-button{border-radius:12px}
/* Town illustration system */
.v124-explore .v120-town-map-board{background:#ACD09A!important;border:5px solid #F5F9EE!important;outline:1px solid #A2C39F;box-shadow:0 20px 40px #46775824,0 0 0 7px #D9E9D5!important;border-radius:18px!important}
.v124-explore .v120-town-map-board .v120-town-cell{border:1px solid rgba(72,124,82,.15)!important;background-color:#B8DAA8!important;background-image:radial-gradient(#86B99150 1px,transparent 1px);background-size:13px 13px}
.v124-explore .v120-town-map-board .v120-town-cell:nth-of-type(even){background-color:#ADCEA3!important}
.v124-explore .town-emoji-box{width:100%!important;height:100%!important;max-height:none;max-width:none;background:transparent!important;border:none!important;box-shadow:none!important;display:grid!important;place-items:center!important}
.v124-explore .town-emoji-glyph{width:100%;height:100%;display:grid;place-items:center}
.v124-explore .town-emoji-glyph .fs24-building-art{width:100%;height:100%;max-width:116px;max-height:116px;object-fit:contain;display:block;filter:drop-shadow(0 4px 3px rgba(25,72,48,.2));pointer-events:none}
.v124-explore .fs24-building-mini{width:40px;height:40px;object-fit:contain;flex:none;filter:drop-shadow(0 3px 2px rgba(33,88,50,.10))}
.v124-explore .fs24-shop-art{width:84px;height:84px;object-fit:contain;flex:none;filter:drop-shadow(0 5px 3px rgba(33,88,50,.1))}
.v124-explore .pixel-card{border:1px solid #DDE9DE!important;box-shadow:var(--fs24-shadow)!important;border-radius:20px!important;background:linear-gradient(155deg,#FFFFFF,#F9FBF7)!important}
.v124-explore .pixel-button{border:1px solid #D0DFD1!important;box-shadow:0 3px 12px #355F4622!important;border-radius:12px!important}
.v124-explore .pixel-button:disabled{opacity:.55}
.v124-explore .v120-town-side-panel{border-radius:16px!important}
.v124-explore .v120-town-map-board button:hover .fs24-building-art{transform:translateY(-2px);filter:drop-shadow(0 6px 4px rgba(25,72,48,.23))}
/* Plant: same surface language, watercolor-inspired soil and botanical cards */
body.fs24-plant{background:radial-gradient(circle at 85% -5%,#E1F0DA,transparent 34%),linear-gradient(180deg,#F8FAF3,#EDF4EA)!important;color:#344F42}
.fs24-plant .topbar,.fs24-plant .panel,.fs24-plant .tabs{background:#FDFEF9!important;border:1px solid #DFEADB!important;border-radius:19px!important;box-shadow:var(--fs24-shadow)!important}
.fs24-plant .logo{background:#E9F5EA!important;border:1px solid #D6E8D5!important;border-radius:15px!important}
.fs24-plant .logo:has(img){font-size:0}.fs24-plant .logo img{width:47px;height:47px;object-fit:contain}
.fs24-plant .farm-grid{background:#E7EEDC!important;border:1px solid #D3E3CA!important;border-radius:18px!important;gap:10px!important}
.fs24-plant .plot{border:2px solid #F6F1E1!important;border-radius:17px!important;box-shadow:0 4px 14px rgba(73,76,41,.10),inset 0 -9px 16px rgba(82,54,24,.08)!important}
.fs24-plant .plot.soil-loam{background:linear-gradient(150deg,#A67551,#8C634A)!important}
.fs24-plant .plot.soil-sandy{background:linear-gradient(150deg,#D3B586,#B99365)!important}
.fs24-plant .plot.soil-clay{background:linear-gradient(150deg,#8C6B60,#72554F)!important}
.fs24-plant .crop-img{filter:drop-shadow(0 7px 4px rgba(30,54,19,.18));width:75px;height:75px}
.fs24-plant .tool{border:1px solid #DDE9DB!important;border-radius:15px!important;background:linear-gradient(150deg,#FBFDF9,#F1F6EF)!important;min-width:0}
.fs24-plant .tool .ico{display:grid;place-items:center;height:45px}
.fs24-plant .tool .ico img{width:41px;height:41px;object-fit:contain;pointer-events:none}
.fs24-plant .tool.active{background:#DDF1E3!important;box-shadow:0 0 0 2px #6DA687!important;border-color:#6DA687!important;transform:translateY(-1px)}
.fs24-plant .tab.active{background:#E3F3E7!important;color:#2D7153!important}
.fs24-plant .meter{border-radius:100px}
/* Cooling: crafted comparison cards and engineering-grade data legibility */
body.fs24-cooling-dual{background:#F4F8F3!important}
.fs24-cooling-dual .root{background:radial-gradient(circle at top left,#EDF5E9,transparent 56%)}
.fs24-cooling-dual .header{border-radius:21px;border:1px solid #D7E5D6;background:linear-gradient(120deg,#FEFFF9,#EEF7F0)!important;box-shadow:var(--fs24-shadow)}
.fs24-cooling-dual .room{border-radius:20px!important;border:1px solid #DAE8DC!important;box-shadow:var(--fs24-shadow)!important}
.fs24-cooling-dual .room[data-room="A"] .room-head{background:#EEF7F1}.fs24-cooling-dual .room[data-room="B"] .room-head{background:#EDF4FA}
.fs24-cooling-dual .room-title i{background:#3F8064;color:#fff;display:inline-grid;place-items:center;width:26px;height:26px;border-radius:9px;margin-right:7px}
.fs24-cooling-dual .room[data-room="B"] .room-title i{background:#447C9C}
.fs24-cooling-dual .room-foot{border-top:1px solid #E7EDE8!important;min-height:51px}
.fs24-cooling-dual .room-metrics b{color:#225C49;font-size:16px}
.fs24-cooling-dual .compare{background:linear-gradient(110deg,#E9F2E9,#F2F6F0);border-radius:17px;border:1px solid #D1E3D3;box-shadow:0 5px 18px #3E705015}
.fs24-cooling-dual .settings{box-shadow:0 20px 50px rgba(20,61,48,.22)!important}
@media(max-width:640px){.v124-explore .v120-venue-icon{width:43px;min-width:43px;height:43px}.v124-explore .v120-venue-icon img{width:43px;height:43px}.fs24-plant .farm-grid{gap:6px!important}.fs24-plant .plot{border-radius:13px!important}.fs24-cooling-dual .header h1{font-size:15px}}
@media(prefers-reduced-motion:reduce){.fs24-plant .tool,.v124-explore .town-emoji-box,.v124-explore .fs24-building-art{animation:none!important;transition:none!important}}

/* Clear visual markers for A/B experiment and low-distraction interactions */
.fs24-cooling-dual .room-title{display:flex;align-items:center;gap:6px;}
.fs24-cooling-dual .room-badges .btn{background:#FAFCF8;border:1px solid #D3E3D8}
.fs24-cooling-dual .btn:active{transform:scale(.98)}
.fs24-cooling-dual .compare-values{align-items:center;gap:9px 16px}
.fs24-cooling-dual .compare-values span{background:#FEFFFC;padding:7px 10px;border-radius:9px;border:1px solid #DDE8DC}
.fs24-plant .seed-card{background:#F0F7EF!important;border:1px dashed #B5D3B5!important;}
.fs24-plant .tool:focus-visible{outline:3px solid #CB9B52;outline-offset:3px}
.fs24-plant .panel .title{color:#315747}
