*{box-sizing:border-box}:root{--bg:#f1f3ed;--panel:#fff;--ink:#243329;--muted:#6b766d;--accent:#55775b;--line:#d8dfd5;--danger:#a54235}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 Inter,Segoe UI,Arial,sans-serif}
header{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:20px clamp(18px,3vw,42px);background:#263b2e;color:white}.brand{display:flex;align-items:center;gap:14px}.brand-icon{display:grid;place-items:center;width:46px;height:46px;border:1px solid #809485;border-radius:12px;font-weight:800}.brand h1{font-size:26px;margin:0}.brand p{margin:2px 0 0;color:#d4dfd5}.version{font-size:11px;letter-spacing:1px;color:#d4dfd5}
main{max-width:1550px;margin:auto;padding:22px;display:grid;grid-template-columns:320px minmax(0,1fr);gap:18px}.sidebar,.workspace{display:grid;align-content:start;gap:18px}.workspace{grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:15px;padding:18px;min-width:0;box-shadow:0 4px 18px #263b2e08}h2{font-size:19px;margin:0 0 6px}.muted{color:var(--muted);font-size:13px;margin:0 0 13px}.tiny{font-size:11px}
.field-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.field-grid.two{grid-template-columns:1fr 1fr;margin-top:10px}label{display:block;font-size:12px;color:var(--muted)}input[type=number],input[type=text]{display:block;width:100%;min-width:0;margin-top:5px;padding:9px;border:1px solid #cbd5ca;border-radius:8px;background:#fff;color:var(--ink);font:inherit}button,.import-button{font:inherit;cursor:pointer;border:0;border-radius:8px;padding:10px 12px}.primary{background:var(--accent);color:white;font-weight:650}.secondary{background:#e9eee7;color:var(--ink)}.danger{background:#f8e7e4;color:var(--danger)}.full{width:100%;margin-top:12px}.summary-row{display:flex;justify-content:space-between;padding-top:10px;margin-top:10px;border-top:1px solid var(--line);font-size:13px}.summary-row span{color:var(--muted)}
.library{display:grid;gap:8px}.library-item{display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:10px;text-align:left;border:1px solid var(--line);background:#fff;padding:9px}.library-item:hover{background:#f4f7f1;border-color:#9bad9a}.library-item strong,.library-item small{display:block}.library-item strong{font-size:13px}.library-item small{font-size:11px;color:var(--muted)}.library-item b{font-size:18px;color:var(--accent)}.swatch{display:inline-block;width:13px;height:13px;border-radius:4px;vertical-align:middle;flex-shrink:0}.hide-swatch{background:#9a6a43}.water-swatch{background:#4d91a1;border-radius:50%}.cork-swatch{background:#b18a5c}.branch-swatch{background:#6d5740}.plant-swatch{background:#819b65}.status{font-size:12px;margin:8px 0;color:var(--muted)}.status.error{color:var(--danger);font-weight:650}.status.ok{color:var(--accent)}
.panel-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}.panel-heading p{margin:0}.actions{display:flex;gap:6px;flex-wrap:wrap}.actions button,.import-button{font-size:12px}.import-button{display:inline-block;background:#e9eee7;color:var(--ink);padding:10px 12px}
.canvas-scroll{overflow:auto;padding:10px 12px 6px}.top-dimension{text-align:center;font-weight:650;color:var(--muted);font-size:12px;margin-bottom:7px}
#terrarium{position:relative;margin:auto;width:min(100%,780px);min-width:430px;border:4px solid #354a3a;background:#e9e9da;touch-action:none;overflow:hidden}
#gridLayer{position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(to right,#cbd3c4 1px,transparent 1px),linear-gradient(to bottom,#cbd3c4 1px,transparent 1px);background-size:calc(100% / var(--cols)) calc(100% / var(--rows))}
#objectsLayer{position:absolute;inset:0}.object{position:absolute;display:grid;place-items:center;padding:2px;text-align:center;font-size:11px;font-weight:650;color:white;border:2px solid #ffffff90;box-shadow:0 2px 5px #0002;user-select:none;touch-action:none;cursor:grab;overflow:hidden}.object:active{cursor:grabbing}.object.selected{outline:3px solid #e1b94e;outline-offset:1px;z-index:5}.object.hide{border-radius:8px;background:#9a6a43}.object.water{border-radius:50%;background:#4d91a1}.object.cork{border-radius:35%;background:#b18a5c}.object.branch{border-radius:50%;background:#6d5740}.object.plant{border-radius:50%;background:#819b65}
.bottom-caption{text-align:center;font-size:10px;letter-spacing:1px;color:var(--muted);padding-top:8px}.side-caption{text-align:center;color:var(--muted);font-size:11px;padding-top:3px}.legend{display:flex;gap:10px;flex-wrap:wrap;font-size:11px;color:var(--muted);margin-top:10px}.legend .swatch{width:10px;height:10px;margin-right:4px}.notice{font-size:12px;background:#fff2d8;border:1px solid #efdbb4;border-radius:9px;padding:10px;margin:14px 0 0;color:#674e20}
#shoppingList{display:grid}.shop-item{display:flex;justify-content:space-between;gap:8px;padding:10px 0;border-bottom:1px solid var(--line)}.shop-item:last-child{border:0}.shop-item strong{display:block;font-size:12px}.shop-item small{display:block;color:var(--muted);font-size:11px}.shop-price{text-align:right;white-space:nowrap;font-size:12px;font-weight:700}.shop-price a{display:block;font-size:10px;font-weight:400;color:var(--accent)}.budget-box{display:grid;gap:8px;background:#eef2eb;border-radius:10px;padding:12px;margin-top:12px}.budget-box div{display:flex;justify-content:space-between;gap:10px;font-size:13px}.budget-box span{color:var(--muted)}#remaining.over{color:var(--danger)}footer{max-width:1550px;margin:auto;padding:0 22px 24px;color:var(--muted);font-size:11px}
@media(max-width:1150px){main{grid-template-columns:300px minmax(0,1fr)}.workspace{grid-template-columns:1fr}}
@media(max-width:750px){main{grid-template-columns:1fr;padding:12px}.workspace{grid-template-columns:1fr}header{align-items:flex-start}.version{display:none}.panel-heading{flex-direction:column}.field-grid{grid-template-columns:1fr 1fr}}

.heatpanel-swatch{background:#e5a63b;border:2px solid #8d5b16;border-radius:2px}
.object.heatpanel{background:repeating-linear-gradient(135deg,#f2bd59,#f2bd59 5px,#d9972c 5px,#d9972c 8px);color:#3e2c12;border:2px solid #8d5b16}

.product-links{line-height:1.8;margin-top:12px}.product-links a{color:#38694a;text-decoration:underline}.product-links a:hover{color:#1d422b}

/* v1.2.1 responsive layout fix */
html,body{width:100%;max-width:100%;overflow-x:hidden}
main{width:100%;max-width:1550px;grid-template-columns:minmax(260px,320px) minmax(0,1fr)}
.sidebar,.workspace,.panel,.drawing-panel,.shopping-panel{min-width:0;max-width:100%}
.workspace{grid-template-columns:minmax(0,1fr) minmax(250px,320px)}
.material-field{display:block;margin:14px 0;font-size:13px;color:var(--muted)}
.material-field select{display:block;width:100%;margin-top:5px;padding:11px;border:1px solid var(--line);border-radius:9px;background:white;color:var(--ink);font:inherit}
.shop-item{min-width:0;overflow-wrap:anywhere}
@media(max-width:1200px){
 main{grid-template-columns:minmax(0,1fr)}
 .sidebar{grid-template-columns:repeat(2,minmax(0,1fr))}
 .workspace{grid-template-columns:minmax(0,1fr) minmax(260px,320px)}
}
@media(max-width:850px){
 main{padding:12px;gap:12px}
 .sidebar{grid-template-columns:minmax(0,1fr)}
 .workspace{grid-template-columns:minmax(0,1fr)}
 header{flex-wrap:wrap}
 .canvas-wrap{overflow:auto}
}

/* v1.4 visual refresh – reptile-fan styling */
:root{--bg:#08130e;--panel:#10221a;--ink:#eef5ed;--muted:#b4c4b7;--accent:#79df97;--line:#2c4937;--danger:#e58a76}
body{background:radial-gradient(ellipse at 50% -15%,#1d432d 0%,#0b1811 44%,#07100b 100%);color:var(--ink)}
header{background:linear-gradient(90deg,rgba(5,18,11,.97),rgba(7,22,13,.78)),url('../terrarium-hero.jpg') center 43%/cover!important;color:#f5faf2;border-bottom:1px solid #31513b;box-shadow:0 10px 30px #0002}
header h1{letter-spacing:-.035em}
header p{color:#d4e4d6!important}
main{color:var(--ink)}
.panel,.plan-panel,.controls,.sidebar,.workspace{color:var(--ink)}
.panel{background:linear-gradient(145deg,rgba(18,39,28,.97),rgba(12,27,19,.98))!important;border-color:var(--line)!important;box-shadow:0 12px 34px #0002}
h1,h2,h3,strong,label{color:#f1f7ee}
p,.muted,.status{color:var(--muted)}
input,select,textarea{background:#0b1a11!important;color:#eff7ee!important;border-color:#3b5a43!important;border-radius:10px!important}
button,.primary{background:linear-gradient(100deg,#7be59b,#4fc57a)!important;color:#082112!important;border:0!important;border-radius:10px!important;font-weight:750!important}
button:hover{filter:brightness(1.08)}
.secondary{background:#193324!important;color:#e7f4e8!important;border:1px solid #355740!important}
.danger{background:#6d2b26!important;color:#fff!important}
a{color:#9deab1}
.budget-box,.summary-row,.stat,.notice,.object-card,.library-item,.shop-item{background:#13291d!important;border-color:#2b4935!important;color:#eaf4e9}
.budget-box span,.shop-item small,.object-card small{color:#b8c9bb!important}
.object-library,.legend,.actions{color:#d7e5d8}
.warning,.notice{border-color:#7d6533!important;background:#2b2517!important;color:#f0e4c6!important}
footer{color:#91a697;border-top:1px solid #203a28}
@media(max-width:760px){header{background-position:60% center!important}}
