:root{--ink:#182323;--muted:#5c6966;--line:#cfd8d3;--page:#f4f6f5;--panel:#ffffff;--teal:#007a72;--teal-dark:#005c59;--green:#38d982;--amber:#e8a73a;--red:#d63939;--blue:#376c9d;--shadow:0 8px 20px rgba(18,35,35,0.08)}*{box-sizing:border-box}body{margin:0;background:var(--page);color:var(--ink);font-family:Malgun Gothic,Apple SD Gothic Neo,Arial,sans-serif;font-size:14px}button,input,select{font:inherit}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:10;display:grid;grid-template-columns:auto 1fr auto;align-items:center;min-height:44px;padding:4px 8px;color:#fff;background:var(--teal-dark);border-bottom:1px solid #004b48}.brand{justify-self:center;display:grid;grid-gap:0;gap:0;text-align:center;line-height:1.05}.brand strong{font-size:20px}.brand span{color:#bde6dd;font-size:11px}.icon-button,.small-icon{width:34px;height:34px;display:inline-grid;place-items:center;border:1px solid rgba(255,255,255,.28);border-radius:6px}.icon-button,.small-icon,.top-save{color:#fff;background:var(--teal);cursor:pointer}.top-save{justify-self:end;min-height:34px;border:1px solid rgba(255,255,255,.32);border-radius:6px;padding:0 12px}.top-save:disabled{cursor:wait;opacity:.8}.calculate,.ghost,.secondary,.segment{min-height:36px;border:1px solid var(--line);border-radius:6px;padding:0 14px;cursor:pointer}.secondary{color:var(--ink);background:#fff}.ghost{color:var(--muted);background:transparent}.workspace{display:grid;grid-template-columns:minmax(300px,1fr) minmax(300px,1fr) minmax(300px,1fr);grid-gap:0;gap:0;max-width:1420px;margin:0 auto}.panel{min-height:calc(100vh - 44px);padding:22px 22px 28px;border-right:1px dashed #899894}.panel:last-child{border-right:0}.panel-heading{text-align:center;margin-bottom:18px}.eyebrow{margin:0 0 4px;color:var(--muted);font-size:12px;text-transform:uppercase}h1,h2{margin:0;font-size:22px}.optional-block{margin-bottom:16px;border:1px solid var(--line);border-radius:6px;background:rgba(255,255,255,.7)}.optional-block summary{padding:12px;font-weight:700;cursor:pointer}.optional-block .field{padding:0 12px 12px}.cost-panel,.standard-box,.standard-process{margin-top:18px;padding:14px;border:1px solid var(--line);border-radius:6px;background:#fff}.cost-panel h3,.standard-box h3,.standard-process h3{margin:0 0 12px;font-size:15px}.standard-box label{display:flex;align-items:center;gap:8px;margin:8px 0}.standard-box input{width:18px;height:18px}.field{display:grid;grid-template-columns:128px minmax(0,1fr);grid-gap:10px;gap:10px;align-items:center;margin-bottom:14px}.inline-label,.metric-pair span,.result-row span,label{color:var(--ink);line-height:1.25}.inline-label span,label span{color:var(--muted)}input,select{width:100%;min-width:0;height:36px;border:1px solid #b9c3bf;border-radius:5px;padding:0 10px;background:#fff}input[type=number]{text-align:center}input[type=range]{height:24px;padding:0;accent-color:var(--teal)}.range-field{grid-template-columns:128px 72px minmax(90px,1fr)}.range-field label{border-bottom:1px dashed #7d8885}.segmented{display:grid;grid-template-columns:1fr 1fr;margin:18px 34px}.segment{border-radius:0;background:#fff;font-weight:700}.segment:first-child{border-radius:6px 0 0 6px}.segment:last-child{border-radius:0 6px 6px 0}.segment.active{color:#fff;background:var(--teal);border-color:var(--teal)}.visual-grid{display:grid;grid-template-columns:112px minmax(0,1fr);grid-gap:16px 12px;gap:16px 12px;align-items:start}.inline-label{padding-top:10px;border-bottom:1px dashed #7d8885}.choice-card,.cross-section,.reduction-card{border:1px solid #9aa6a2;border-radius:6px;background:var(--panel);box-shadow:var(--shadow);overflow:hidden}.tree-card{position:relative;min-height:184px;display:grid;grid-template-rows:42px 1fr}.terrain-card select,.tree-card select{height:42px;color:#fff;text-align:center;font-weight:700;border:0;border-radius:0;background:var(--teal)}.reduction-figure,.tree-figure{position:relative;min-height:150px;display:grid;place-items:center}.crown{top:24px;width:96px;height:96px;background:radial-gradient(circle at 35% 20%,#d8ff44,#8cc400 72%);border-radius:50%;z-index:2}.crown,.trunk{position:absolute}.trunk{top:102px;width:22px;height:88px;background:linear-gradient(90deg,#4b250e,#cfc5b7,#6a421e);z-index:1}.tree-card .small-icon{position:absolute;top:10px;left:10px;z-index:3;color:var(--teal);background:#fff;border-color:var(--line)}.file-input{padding:6px}.compact-range{display:grid;grid-template-columns:72px minmax(90px,1fr);grid-gap:10px;gap:10px}.terrain-card{min-height:188px}.terrain-scene{height:146px;position:relative;background:#c9d5d0;overflow:hidden}.terrain-scene span{position:absolute;bottom:0;width:42px;background:var(--blue);border:2px solid #fff}.terrain-scene span:first-child{left:16px;height:80px;background:#8f3d3d}.terrain-scene span:nth-child(2){left:70px;height:120px;background:#536f83}.terrain-scene span:nth-child(3){left:126px;height:96px;background:#d0a23e}.terrain-scene span:nth-child(4){left:184px;height:132px;background:#667b69}.terrain-scene span:nth-child(5){left:236px;height:66px;background:#3e8658}.calculate{width:100%;margin-top:28px;color:#092018;background:var(--green);border-color:#2dcf78;font-weight:700}.calculate span{float:left}.result-row{grid-template-columns:1fr 78px;grid-gap:10px;align-items:center}.result-row,.standard-results{display:grid;gap:10px;margin-bottom:16px}.standard-results{grid-template-columns:1fr 1fr;grid-gap:10px}.standard-results div{display:grid;grid-gap:6px;gap:6px;padding:12px;border:1px solid var(--line);border-radius:6px;background:#fff}.standard-results strong{display:inline-grid;place-items:center;width:48px;min-height:36px;border-radius:6px;color:#fff;background:var(--amber);font-size:18px}.standard-results small{color:var(--muted);line-height:1.35}.metric-pair strong,.result-row strong,.verdict strong{display:inline-grid;place-items:center;min-height:36px;border:1px solid #b9c3bf;border-radius:6px;background:#f8f9f9;font-size:18px}.result-control{grid-template-columns:minmax(120px,1fr) 72px minmax(86px,1fr)}.cross-section{margin:16px 0 18px 122px;max-width:260px}.section-title{padding:10px;color:#fff;text-align:center;font-weight:700;background:var(--teal)}.section-body{position:relative;height:150px;display:grid;place-items:center}.wind-arrow{position:absolute;left:14px;color:var(--teal-dark);font-weight:700}.ring{width:96px;height:96px;display:grid;place-items:center;background:radial-gradient(circle,transparent 0 38%,#6a3d20 39% 70%,#3a1e0e 100%)}.ring,.ring span{border-radius:50%}.ring span{width:54px;height:54px;background:#fff}.verdict{display:grid;grid-template-columns:1fr 78px;grid-gap:10px;gap:10px;align-items:center;padding:12px;border-radius:6px;background:#fff;border:1px solid var(--line)}.verdict span{min-height:32px;display:inline-grid;place-items:center;border-radius:999px;color:#fff;background:var(--amber);font-weight:700}.verdict p{grid-column:1/-1;margin:0;color:var(--muted)}.verdict.danger span{background:var(--red)}.verdict.safe span{background:var(--teal)}.verdict.danger strong{color:var(--red)}.reduction-card{margin-top:18px;padding-bottom:14px}.reduction-figure{height:180px}.reduction-figure .cut-line{position:absolute;top:62px;width:100px;border-top:3px dashed var(--red);z-index:4}.reduction-figure:before{content:"";position:absolute;top:20px;width:104px;height:56px;border-radius:104px 104px 0 0;background:#8d9491;z-index:3}.metric-pair{display:grid;grid-template-columns:1fr 78px;align-items:center;grid-gap:12px;gap:12px;margin:12px 16px 0}.result-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.save-message{margin:12px 0 0;color:var(--muted)}.save-message.error{color:var(--red)}.standard-process ol{margin:0;padding-left:20px;color:var(--muted);line-height:1.7}.cost-grid{display:grid;grid-template-columns:1fr 92px;grid-gap:10px;gap:10px;align-items:center}.cost-grid strong{display:inline-grid;place-items:center;min-height:34px;border:1px solid #b9c3bf;border-radius:6px;background:#f8f9f9}@media (max-width:1080px){.workspace{grid-template-columns:1fr}.panel{min-height:auto;border-right:0;border-bottom:1px dashed #899894}}@media (max-width:560px){.topbar{grid-template-columns:auto 1fr auto}.field,.range-field,.result-control,.visual-grid{grid-template-columns:1fr}.compact-range{grid-template-columns:72px 1fr}.cross-section{margin-left:0}}