:root{color-scheme:light;--ink:#142d39;--muted:#526774;--accent:#007e80;--line:#dce5e9;--bg:#f3f6f8;--paper:#fff;--warn:#87500a;--error:#a32929;font-family:Inter,"Pretendard","Noto Sans KR","Malgun Gothic",system-ui,sans-serif;font-size:16px;line-height:1.55}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}button,input,select{font:inherit}button,select,summary,input[type=range]{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid #21aaa6;outline-offset:3px}button{border:1px solid var(--line);border-radius:8px;padding:10px 16px;color:var(--ink);background:var(--paper);font-size:.875rem;font-weight:600;min-height:44px}button:hover{background:#eaf2f4}.topbar{height:80px;padding:0 max(28px,calc((100vw - 1392px)/2));background:var(--paper);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:12px}.brand svg{width:39px;height:39px;flex-shrink:0}.brand svg rect{fill:#0c6667}.brand svg path{stroke:#fff;stroke-width:2;fill:none}.brand strong{display:block;letter-spacing:.12em;font-size:.875rem}.brand span{display:block;font-size:.8125rem;color:var(--muted)}.topnote{font-size:.8125rem;color:var(--muted)}main{max-width:1448px;margin:0 auto;padding:32px 28px 40px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:26px}.eyebrow{font-size:.75rem;letter-spacing:.16em;color:var(--accent);font-weight:700;margin:0 0 7px}h1{font-size:1.8rem;letter-spacing:-.055em;margin:0;line-height:1.3}.intro{margin:7px 0 0;color:var(--muted);font-size:.9375rem}.workspace{display:grid;grid-template-columns:338px minmax(0,1fr);gap:24px;align-items:start}.input-panel{background:var(--paper);border:1px solid var(--line);border-radius:12px;overflow:hidden}.input-section{padding:22px 22px 19px}.input-section+.input-section{border-top:1px solid var(--line)}h2{font-size:1rem;margin:0;font-weight:650}.input-section h2{display:flex;align-items:center;gap:10px;margin-bottom:17px}.input-section h2>span{font-size:.75rem;color:var(--accent);font-weight:700;letter-spacing:.05em}label{font-size:.875rem;display:block;margin:14px 0 6px;font-weight:500}i{font-style:normal;font-size:.875em;color:var(--muted);margin-left:4px}select,input[type=number]{width:100%;border:1px solid #cbd7de;border-radius:7px;background:#fff;color:var(--ink);height:44px;padding:8px 11px;min-width:0}select{font-size:.875rem;padding-right:22px}input[type=number]{font-variant-numeric:tabular-nums;appearance:textfield}input::-webkit-inner-spin-button{appearance:none}.input-unit{position:relative}.input-unit input{padding-right:53px}.input-unit>span{position:absolute;right:12px;top:11px;color:var(--muted);font-size:.8125rem;pointer-events:none}.input-unit input[aria-invalid=true]{border-color:var(--error)}.field-note{margin:8px 0 0;color:var(--muted);font-size:.75rem;line-height:1.6}.pair{display:grid;grid-template-columns:1fr 1fr;gap:13px}.diameter-row{display:grid;grid-template-columns:110px minmax(0,1fr);gap:10px}.derived{height:44px;display:flex;justify-content:space-between;align-items:center;background:#f0f5f7;border-radius:7px;padding:8px 11px;font-variant-numeric:tabular-nums}.derived small{font-size:.8125rem;color:var(--muted)}.strength{margin-top:18px;border-top:1px dashed var(--line);padding-top:13px}.strength summary{font-size:.875rem}.strength summary span{font-size:.75rem;color:var(--muted);margin-left:7px}.results{display:flex;flex-direction:column;gap:18px;min-width:0}.result-summary{background:#132f3c;color:#fff;border-radius:12px;padding:19px 24px 25px}.summary-head{display:flex;justify-content:space-between;align-items:center;color:#c5d6df;font-size:.75rem;letter-spacing:.11em;margin-bottom:20px}.summary-head span:last-child{letter-spacing:0;background:#264653;padding:3px 9px;border-radius:4px;color:#e2edf2}.metrics{display:grid;grid-template-columns:1.05fr 1fr 1.1fr}.metric{padding-left:24px;border-left:1px solid #48616c}.metric:first-child{padding-left:0;border:0}.metric h2{font-size:.875rem;font-weight:400;color:#c5d6df}.metric i{color:inherit}.metric p{margin:6px 0 0;display:flex;align-items:baseline;gap:7px;flex-wrap:wrap}.metric output{font-size:2rem;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.025em}.metric p>span{font-size:.8125rem;color:#c5d6df}.metric small{font-size:.8125rem;color:#c5d6df}.metric.primary output{color:#7de5da}.visual-grid{display:grid;grid-template-columns:1fr 1.08fr;gap:18px;min-width:0}.panel{background:var(--paper);border:1px solid var(--line);border-radius:12px;min-width:0}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:9px;padding:18px 20px 0;flex-wrap:wrap}.subtle,.legend{font-size:.75rem;color:var(--muted)}.legend{display:flex;gap:6px;align-items:center}.legend b{width:7px;height:7px;border-radius:50%;background:var(--accent)}#spring-diagram{width:100%;height:241px;display:block;color:var(--ink)}.shape-readouts{display:flex;border-top:1px solid var(--line);padding:15px 20px;gap:24px;justify-content:space-between}.shape-readouts div{display:flex;flex-direction:column}.shape-readouts span{font-size:.75rem;color:var(--muted)}.shape-readouts strong{font-size:.9375rem;font-weight:600;font-variant-numeric:tabular-nums}.chart-wrap{height:227px;margin:10px 10px 0;min-width:0}#load-chart{display:block;width:100%;height:100%;overflow:visible}.slider-label{display:flex;align-items:center;justify-content:space-between;font-size:.8125rem;padding:0 20px}.slider-label label{font-size:.8125rem;margin:0}.slider-label output{font-variant-numeric:tabular-nums}input[type=range]{width:calc(100% - 40px);margin:10px 20px 0;accent-color:var(--accent);height:18px}.range-labels{display:flex;justify-content:space-between;font-size:.75rem;color:var(--muted);padding:0 20px 15px}.data-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:17px 0 0;padding:0 20px 5px;column-gap:20px}.data-grid>div{border-bottom:1px solid #edf1f3;padding:0 0 14px;margin-bottom:14px}.data-grid dt{font-size:.8125rem;color:var(--muted)}.data-grid dt small{font-size:.75rem}.data-grid dd{margin:5px 0 0;font-size:1.0625rem;font-weight:600;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.stress-check{padding:12px 20px;border-top:1px solid var(--line);font-size:.8125rem;color:var(--muted);background:#f9fbfc;border-radius:0 0 12px 12px}.stress-check.exceeded{color:var(--error);background:#fff2f2}.messages:empty{display:none}.messages{display:flex;flex-direction:column;gap:8px}.message{margin:0;font-size:.875rem;padding:11px 15px;border-radius:8px;background:#fff5df;color:var(--warn);border-left:3px solid #c58426}.message.error{background:#fff0f0;color:var(--error);border-left-color:#bb4242}.theory details>summary{padding:17px 20px;font-size:.875rem;font-weight:600}.theory-content{border-top:1px solid var(--line);padding:17px 20px;color:var(--muted);font-size:.875rem}.theory-content p{margin:0 0 13px}.formula-row{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:17px}.formula-row code{background:#eff4f6;padding:7px 10px;border-radius:5px;font-size:.8125rem;color:var(--ink)}.sources{display:flex;gap:14px;flex-wrap:wrap}.sources a{color:#056d73;font-size:.8125rem;text-underline-offset:3px}.footnote{margin:0;font-size:.75rem;color:var(--muted);line-height:1.7}svg text{font-family:inherit;font-size:12px;fill:var(--muted)}svg .dimension{fill:var(--ink);font-size:13px}svg .axis-text{font-size:12px;fill:var(--muted)}.empty-visual{color:var(--muted)}
@media(min-width:1350px){.metric output{font-size:2.25rem}}@media(max-width:1120px){.workspace{grid-template-columns:300px minmax(0,1fr);gap:18px}.input-section{padding:20px 17px}.visual-grid{grid-template-columns:1fr}.data-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric{padding-left:13px}.result-summary{padding:18px}.metric output{font-size:1.65rem}#spring-diagram{height:235px}}@media(max-width:760px){.topbar{padding:0 18px;height:70px}.topnote{display:none}main{padding:23px 16px 30px}.page-heading{align-items:flex-start;gap:13px}.page-heading h1{font-size:1.5rem}.page-heading .secondary{font-size:.75rem;padding:8px 9px;white-space:nowrap}.intro{font-size:.875rem}.workspace{grid-template-columns:1fr}.input-panel{display:grid;grid-template-columns:1fr 1fr}.input-section:first-child{border-bottom:1px solid var(--line)}.input-section:nth-child(2){grid-column:2;grid-row:1/3;border-left:1px solid var(--line);border-top:0}.input-section:nth-child(3){border-top:0}.visual-grid{grid-template-columns:1fr 1fr}.metric output{font-size:1.75rem}.panel-title{padding:16px 15px 0}.chart-wrap{height:227px}.data-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:580px){.input-panel{display:block}.input-section:nth-child(2){border-left:0;border-top:0}.input-section:nth-child(3){border-top:1px solid var(--line)}.visual-grid{grid-template-columns:1fr}.data-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric output{font-size:1.45rem}.metric p{gap:3px}.metric{padding-left:10px}.metric h2{font-size:.8125rem}.metric p>span,.metric small{font-size:.75rem}.metrics{grid-template-columns:1fr 1fr 1.15fr}.page-heading{flex-wrap:wrap}.summary-head{margin-bottom:15px}.result-summary{padding:17px 14px}.panel-title .subtle{font-size:.75rem}}@media(prefers-reduced-motion:no-preference){input,select,button{transition:border-color .15s,background .15s}}

/* Shared Green Spring navigation, scoped to the calculator shell. */
:root{--accent:#167640}
.gs-header{height:100px;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 5%;gap:25px;border-bottom:1px solid #d3ddd5;font-family:'Noto Sans KR','Malgun Gothic',sans-serif;line-height:1.8}
.gs-header a,.gs-footer a{color:#20392e;text-decoration:none}
.gs-brand{display:block;flex-shrink:0}
.gs-logo{display:block;width:185px;height:auto;max-width:100%}
.gs-nav{display:flex;gap:25px;align-items:center;min-width:0}
.gs-nav a{position:relative;font-size:14px;white-space:nowrap;padding:12px 0}
.gs-nav a:after{content:'';position:absolute;bottom:3px;left:0;right:0;height:1px;background:#167640;transform:scaleX(0);transform-origin:left;transition:transform .2s}
.gs-nav a:hover:after,.gs-nav a[aria-current=page]:after{transform:scaleX(1)}
.gs-nav a[aria-current=page]{color:#167640}
.gs-contact{font-size:14px;border-bottom:1px solid #20392e;white-space:nowrap;padding:7px 0}
.gs-contact span{margin-left:15px}
.gs-footer{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:24px max(28px,calc((100vw - 1392px)/2));border-top:1px solid #d3ddd5;background:#fff;color:#526774;font-size:.875rem}
.gs-footer nav{display:flex;gap:22px;flex-wrap:wrap}
.gs-skip{position:fixed;top:-100px;left:20px;background:#fff;color:#20392e;padding:15px;z-index:20}
.gs-skip:focus{top:10px}
@media(max-width:1100px){.gs-header{height:145px;flex-wrap:wrap;padding-top:15px;padding-bottom:12px;gap:5px 20px}.gs-nav{order:3;flex-basis:100%;justify-content:center;gap:28px}.gs-contact{margin-left:auto}}
@media(max-width:700px){.gs-header{height:128px;padding:10px 5%}.gs-logo{width:150px}.gs-nav{overflow-x:auto;justify-content:flex-start;gap:24px;max-width:100%;scrollbar-width:thin}.gs-nav a{flex-shrink:0}.gs-contact{font-size:13px}.gs-footer{padding:24px 18px}}

/* Switch between spring calculations inside the same design workspace. */
.calculator-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 24px;border-bottom:1px solid var(--line);padding-bottom:10px}
.calculator-tabs a{display:inline-flex;align-items:center;justify-content:center;padding:10px 22px;min-height:44px;border-radius:7px;color:var(--muted);text-decoration:none;font-size:.9375rem;font-weight:600}
.calculator-tabs a:hover{background:#e7eff1;color:var(--ink)}
.calculator-tabs a[aria-current=page]{background:#143c2d;color:#fff}
@media(max-width:580px){.calculator-tabs a{flex:1 1 calc(50% - 6px);padding:10px 15px;white-space:nowrap}}
.message.info{background:#eef7f6;color:#23595a;border-left-color:#6aa8a3}
