.lining-calculator { --ln-green:#08724e; --ln-ink:#14231e; --ln-muted:#56675f; --ln-line:#dce6e0; color:var(--ln-ink); min-width:0; }
.lining-calculator *, .lining-calculator *::before, .lining-calculator *::after { box-sizing:border-box; }
.lining-calculator [hidden] { display:none!important; }
.lining-calculator h2,.lining-calculator h3,.lining-calculator h4 { margin:0 0 12px; line-height:1.2; }
.lining-calculator p { line-height:1.6; }
.lining-calculator .lining-intro { display:flex; justify-content:space-between; gap:28px; padding:28px; background:#e8f2ec; border:1px solid #c5dacc; border-radius:18px; }
.lining-intro h2 { font-size:clamp(1.4rem,3vw,2rem); margin-top:10px; }
.lining-intro p { max-width:640px; margin-bottom:0; }
.lining-kicker { font-size:.72rem; letter-spacing:.09em; font-weight:800; color:var(--ln-green); }
.lining-intro__steps { display:grid; gap:8px; align-content:center; flex-shrink:0; font-size:.82rem; font-weight:700; }
.lining-intro__steps span { padding:10px 14px; border:1px solid #c1d9cb; border-radius:8px; background:#f8fbf9; }
.lining-calculator .lining-notice { padding:14px 18px; border-left:3px solid #9baf8a; border-radius:4px; background:#f0f3e9; color:#485c46; font-size:.9rem; }
.lining-calculator details,.lining-calculator fieldset { min-width:0; margin:16px 0; padding:20px; border:1px solid var(--ln-line); border-radius:14px; background:#fff; }
.lining-calculator details details { background:#f8faf9; border-radius:10px; padding:16px; }
.lining-calculator summary { cursor:pointer; font-size:1.03rem; font-weight:750; line-height:1.5; }
.lining-calculator details[open]>summary { margin-bottom:18px; }
.lining-calculator legend { font-size:1.05rem; font-weight:800; padding:0 8px; }
.lining-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; align-items:end; }
.lining-grid--two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.lining-calculator .field { display:flex; flex-direction:column; gap:7px; min-width:0; font-size:.88rem; font-weight:600; }
.lining-calculator .field textarea,.lining-calculator .field input,.lining-calculator .field select { width:100%; min-width:0; min-height:44px; padding:10px 12px; border:1px solid #c6d4cc; border-radius:8px; color:var(--ln-ink); background:#fff; font:inherit; }
.lining-calculator .field input[type=checkbox] { width:24px; min-height:24px; align-self:flex-start; }
.lining-calculator [aria-invalid=true] { border-color:#b8382f!important; background:#fff7f5!important; }
.lining-calculator :focus-visible { outline:3px solid #edac31; outline-offset:3px; }
.lining-calculator .button { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:11px 18px; gap:8px; border:1px solid var(--ln-green); border-radius:8px; background:var(--ln-green); color:#fff; font:inherit; font-size:.9rem; font-weight:700; line-height:1.35; cursor:pointer; text-align:center; white-space:normal; }
.lining-calculator .button--secondary { background:#fff; color:var(--ln-green); border-color:#b9d0c2; }
.lining-calculator .button--danger { color:#a13529; border-color:#e0c6c0; background:#fff; }
.lining-calculator .button:hover:not(:disabled) { filter:brightness(.95); }
.lining-calculator button:disabled { cursor:default; opacity:.5; }
.lining-toolbar,.lining-run,.lining-heading,.lining-calculator .calculation-save-actions { display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin:18px 0; }
.lining-toolbar a { margin-left:auto; color:var(--ln-green); }
.lining-heading { justify-content:space-between; }
.lining-run { padding:18px 0; border-bottom:1px solid var(--ln-line); }
.lining-calculator .lining-error { margin:16px 0; padding:16px; border:1px solid #d69a91; background:#fff1ed; color:#8b251b; border-radius:10px; overflow-wrap:anywhere; }
.lining-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.lining-summary>div { background:#fff; border:1px solid var(--ln-line); border-radius:12px; padding:18px; }
.lining-summary strong { font-size:1.65rem; display:block; margin:6px 0; }
.lining-summary span { color:var(--ln-muted); font-size:.86rem; }
.lining-badge { font-size:.8rem; padding:7px 11px; border-radius:20px; background:#dfefe6; color:#076045; }
.lining-stale { opacity:.6; }
.lining-calculator table { width:100%; border-collapse:collapse; font-size:.87rem; }
.lining-calculator th,.lining-calculator td { text-align:left; padding:11px 12px; border-bottom:1px solid var(--ln-line); vertical-align:top; }
.lining-calculator th { color:#385347; background:#edf4f0; font-weight:750; }
.lining-scroll { overflow:auto; max-width:100%; border:1px solid var(--ln-line); border-radius:10px; background:#fff; }
.lining-scroll table { min-width:660px; }
.lining-scroll td { overflow-wrap:anywhere; }
.lining-scheme { background:#fff; border:1px solid var(--ln-line); border-radius:14px; overflow:hidden; }
.lining-scheme svg { display:block; width:100%; height:auto; }
.lining-calculator .lining-part { border:0; background:none; padding:8px 0; color:var(--ln-green); text-decoration:underline; cursor:pointer; font:inherit; min-height:44px; }
.lining-calculator .lining-selected { background:#fff6da; }
.lining-bin { background:#fff; border:1px solid var(--ln-line); border-radius:10px; padding:14px; margin:12px 0; overflow-wrap:anywhere; }
.lining-bin svg { width:100%; height:44px; }
.lining-calculator .calculation-save-panel { margin-top:26px; padding:24px; background:#e8f2ec; border:1px solid #c5dacc; border-radius:14px; }
.lining-calculator .calculation-save-panel .field { min-width:190px; }
.lining-calculator .lining-small { color:var(--ln-muted); font-size:.83rem; }
.lining-calculator .lining-list-row { padding:14px 0; border-bottom:1px solid var(--ln-line); }
.lining-calculator .lining-list-row:last-child { border-bottom:0; }
.lining-calculator .lining-list-row .button { margin-top:10px; }
.lining-calculator .lining-warning-list { font-size:.88rem; line-height:1.5; padding-left:22px; }
@media(max-width:760px) { .lining-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.lining-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }.lining-intro__steps { display:none; } }
@media(max-width:440px) { .lining-grid,.lining-grid--two { grid-template-columns:1fr; }.lining-calculator details,.lining-calculator fieldset { padding:14px; }.lining-calculator .lining-intro { padding:18px; }.lining-summary>div { padding:12px; }.lining-summary strong { font-size:1.35rem; }.lining-calculator .calculation-save-panel { padding:16px; }.lining-toolbar .button,.lining-run .button { flex:1 1 auto; }.lining-heading .field { width:100%; } }
