/* App shell and palette follow the user's OhmPal reference. */
:root {
  --paper:#f6f7f9;--paper-deep:#eef1f5;--card:#fff;--ink:#1b2230;--muted:#5a6576;
  --line:#e3e7ed;--accent:#c2410c;--accent-dark:#b7370a;--accent-soft:#fff1e8;
  --accent-line:#f7c3a6;--gradient:linear-gradient(135deg,#ff7a1a 0%,#ff2d7a 100%);
  --gradient-strong:linear-gradient(135deg,#c2410c 0%,#be185d 100%);
  --gradient-text:linear-gradient(90deg,#d4410c,#cf165f);--green:var(--accent);--sage:var(--accent-soft);
  --red:#b42318;--radius:12px;--sidebar:216px;--header:56px;
  --shadow:0 1px 2px #1018280f,0 4px 16px #1018280a;
  --font:system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans",Arial,"Noto Sans Arabic","Segoe UI Arabic","Geeza Pro","Noto Sans Hebrew","Arial Hebrew","Noto Sans Devanagari","Nirmala UI","Kohinoor Devanagari","Noto Sans Thai","Leelawadee UI","Thonburi","Hiragino Sans","Yu Gothic UI","Meiryo","PingFang SC","Microsoft YaHei","Noto Sans CJK SC","Malgun Gothic","Apple SD Gothic Neo",sans-serif;
  --mono:ui-monospace,"Cascadia Mono",Consolas,monospace;
  color-scheme:light;font-family:var(--font);color:var(--ink);background:var(--paper);font-synthesis:none;
}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:72px}
body{margin:0;background:var(--paper);font-size:14px;line-height:1.55}
button,input,select,textarea{font:inherit;color:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}button:disabled{cursor:default;opacity:.45}a{color:var(--accent);text-underline-offset:3px}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
input,select{width:100%;min-height:38px;padding:8px 10px;background:var(--card);border:1px solid #d4dae4;border-radius:8px;font-size:14px;font-variant-numeric:tabular-nums}
input:focus,select:focus{border-color:var(--accent)}input[type=checkbox]{width:17px;height:17px;min-height:17px;accent-color:var(--accent);flex:none}
input[aria-invalid=true]{outline:2px solid var(--red);border-color:var(--red)}[hidden]{display:none!important}
h1,h2,h3,p,figure,ul,ol{margin:0}h1,h2,h3{line-height:1.25;letter-spacing:-.025em}h1{font-size:27px}h2{font-size:21px}h3{font-size:15px}p+p{margin-top:14px}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:fixed;inset-inline-start:8px;top:-70px;z-index:150;padding:10px 14px;background:var(--card);border:2px solid var(--accent);border-radius:8px}.skip:focus{top:8px}
.container{width:100%;max-width:1600px;margin-inline:auto;padding-inline:24px}
.brand{display:inline-flex;gap:9px;align-items:center;text-decoration:none;color:var(--ink);font-size:24px;font-weight:850;letter-spacing:-.9px;white-space:nowrap}
.brand-symbol{display:grid;place-items:center;flex:none;width:33px;height:33px;border-radius:10px;background:var(--gradient);color:white}
.brand-accent{background:var(--gradient);background-clip:text;-webkit-background-clip:text;color:transparent}
.app-sidebar{position:fixed;inset-inline-start:0;top:0;bottom:0;z-index:70;width:var(--sidebar);background:var(--card);border-inline-end:1px solid var(--line);display:flex;flex-direction:column}
.app-sidebar>.brand{min-height:var(--header);padding:10px 18px;border-bottom:1px solid var(--line);flex:none}
.sidebar-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:12px 10px}
.sidebar-scroll a{display:flex;align-items:center;gap:9px;padding:7px 10px;min-height:36px;font-size:12px;line-height:1.4;color:var(--muted);text-decoration:none;border-radius:7px;margin:2px 0;overflow-wrap:anywhere}
.sidebar-scroll a:hover,.sidebar-scroll a[aria-current]{background:var(--accent-soft);color:var(--accent)}.sidebar-scroll a[aria-current]{font-weight:700}
.sidebar-group{margin-top:15px}.sidebar-group h2{margin:0 10px 5px;font-size:9px;font-weight:650;letter-spacing:.065em;text-transform:uppercase;color:var(--muted);line-height:1.5}
.nav-icon{flex:none;width:21px;display:grid;place-items:center}.sidebar-bottom{flex:none;border-top:1px solid var(--line);padding:9px 12px;display:flex;gap:7px;flex-direction:column}
.sidebar-bottom a{display:flex;align-items:center;justify-content:center;gap:7px;min-height:34px;border:1px solid var(--line);background:var(--accent-soft);border-radius:8px;font-size:11px;text-decoration:none;color:var(--ink)}
.sidebar-bottom a:last-child{background:transparent;border:0;font-size:10px;min-height:24px;color:var(--muted)}
.site-header{height:var(--header);position:sticky;top:0;z-index:60;background:var(--card);border-bottom:1px solid var(--line);margin-inline-start:var(--sidebar)}
.header-inner{height:100%;padding:0 24px;display:flex;align-items:center;gap:12px;min-width:0}
.header-context{min-width:0;margin-inline-end:auto}.header-context>span{display:block;color:var(--muted);font-size:9px;line-height:1.4}.header-context>strong{display:block;font-size:12px;line-height:1.5;max-width:38vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.header-end{display:flex;align-items:center;gap:7px;flex:none}.header-end select{min-height:34px;font-size:11px;padding:6px 7px;max-width:158px}
.header-unit{width:58px}.header-currency{width:65px}.language-select{display:block}.header-button,.project-settings>summary,.menu-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--muted);min-height:34px;padding:6px 10px;font-size:11px;line-height:1.3;text-decoration:none;white-space:nowrap}
.header-button:hover,.project-settings>summary:hover,.menu-button:hover{color:var(--accent);border-color:var(--accent-line);background:var(--accent-soft)}
.header-button#save-project{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-line)}
.project-settings{position:relative}.project-settings>summary{list-style:none;cursor:pointer}.project-settings>summary::-webkit-details-marker{display:none}
.project-popover{position:absolute;inset-inline-end:0;top:calc(100% + 10px);width:420px;max-width:calc(100vw - 28px);z-index:90;background:var(--card);border:1px solid var(--line);box-shadow:0 16px 45px #10182824;border-radius:12px;padding:16px}
.project-bar{display:flex;flex-direction:column;gap:12px}.project-bar>label>span{display:block;font-size:11px;font-weight:650;margin-bottom:6px}.project-bar input{font-size:14px}.project-buttons{display:flex;gap:7px;flex-wrap:wrap}.project-help{font-size:11px;line-height:1.7;color:var(--muted)}
.menu-button,.mobile-brand{display:none}.mobile-menu{padding:0;width:min(330px,calc(100vw - 20px));height:calc(100dvh - 20px);max-height:calc(100dvh - 20px);border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:13px;box-shadow:0 24px 90px #10182833}
.mobile-menu[open]{display:flex;flex-direction:column}.mobile-menu::backdrop{background:#10182866;backdrop-filter:blur(3px)}.mobile-menu-heading{display:flex;justify-content:space-between;align-items:center;padding:12px 15px;border-bottom:1px solid var(--line)}
.app-main{margin-inline-start:var(--sidebar);width:calc(100% - var(--sidebar));max-width:1600px;margin-inline-end:0;padding-top:12px;padding-bottom:28px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 11px;min-height:34px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink);font-size:12px;font-weight:600;line-height:1.4;text-align:center;text-decoration:none}
.button:hover{border-color:var(--accent);color:var(--accent)}.button.primary{background:var(--gradient-strong);border-color:transparent;color:white;box-shadow:0 4px 13px -7px #e83c5073}.button.primary:hover{filter:brightness(.95)}.button.quiet{background:transparent}.file-label{cursor:pointer}
.eyebrow{font-size:10px;line-height:1.5;letter-spacing:.07em;font-weight:650;text-transform:uppercase;color:var(--muted)}
.breadcrumbs{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:11px;line-height:1.5;color:var(--muted);margin:0 0 8px}.breadcrumbs a{color:var(--muted)}
.page-heading{margin:4px 0 14px}.page-heading h1{font-size:27px;margin:0 0 5px}.page-heading>p:not(.eyebrow){font-size:12px;color:var(--muted);line-height:1.6}.page-heading>.eyebrow{display:none}
.workbench-nav{display:flex;gap:20px;align-items:center;border-bottom:1px solid var(--line);margin-bottom:8px;flex:none}
.workbench-nav a{display:flex;align-items:center;min-height:34px;font-size:12px;padding:4px 0;border-bottom:2px solid transparent;color:var(--muted);text-decoration:none}.workbench-nav a[aria-current]{color:var(--accent);border-color:var(--accent);font-weight:650}
.result-status{font-size:10px;line-height:16px;color:var(--muted);margin:0 0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.result-status.is-dirty{color:#9a5b00}
body[data-page="tool"][data-tool-view="calculator"]{height:100dvh;overflow:hidden}
body[data-page="tool"][data-tool-view="calculator"] .app-main{height:calc(100dvh - var(--header));display:grid;grid-template-rows:auto auto auto auto minmax(0,1fr);padding-bottom:14px;min-height:0}
body[data-page="tool"][data-tool-view="calculator"] .site-footer,body[data-page="tool"][data-tool-view="calculator"] .tool-after{display:none}
body[data-page="tool"]:not([data-tool-view="calculator"]) .workspace,body[data-page="tool"]:not([data-tool-view="calculator"]) .result-status{display:none}
.workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);gap:14px;min-width:0;min-height:0;align-items:stretch}
.tool-form,.result-panel{position:relative;min-width:0;min-height:0;margin:0;padding:16px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.form-ready{display:flex;flex-direction:column;height:100%;min-width:0;min-height:0;margin:0;padding:0;border:0}.result-panel{display:flex;flex-direction:column}
.panel-title{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:22px;flex:none;margin-bottom:10px}.panel-title h2{font-size:11px;font-weight:650;letter-spacing:.055em;line-height:1.4;color:var(--muted);text-transform:uppercase}
.result-check{display:grid;place-items:center;width:21px;height:21px;color:var(--accent);background:var(--accent-soft);border-radius:50%;flex:none}
.form-fields{flex:1;min-height:0;display:flex;flex-direction:column}.form-sections{flex:1;min-height:0}.form-section{min-height:0}
.panel-tabs{display:flex;gap:3px;flex:none;margin:0 0 12px;padding:3px;border:1px solid var(--line);border-radius:8px;background:var(--paper)}
.panel-tabs>button{flex:1;min-width:0;min-height:30px;padding:5px 8px;font-size:11px;line-height:1.3;border:0;border-radius:6px;background:transparent;color:var(--muted)}
.panel-tabs>button[aria-selected=true]{background:var(--gradient-strong);color:white;box-shadow:0 2px 7px #10182812;font-weight:650}.panel-tabs>button:hover:not([aria-selected=true]){color:var(--accent);background:var(--accent-soft)}
.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px 12px;min-width:0}.field{display:flex;flex-direction:column;gap:5px;min-width:0}.field>span{font-size:11px;font-weight:600;line-height:1.4}.field small{font-size:10px;color:var(--muted);font-weight:400;margin-inline-start:3px}.field input,.field select{min-width:0;min-height:38px}
.check-field{display:flex;align-items:center;gap:7px;min-height:38px;align-self:end;font-size:11px;line-height:1.45}.check-field span{max-width:100%}
.record-navigation{display:flex;align-items:center;gap:5px;margin-bottom:9px}.record-navigation>label{flex:1;min-width:0}.record-navigation select{font-size:12px;min-height:34px;padding:6px 8px}
.step-button{display:grid;place-items:center;flex:none;width:31px;min-height:31px;padding:3px;border:1px solid var(--line);border-radius:7px;background:var(--card);color:var(--muted);font-size:18px;line-height:1}.step-button:hover:not(:disabled){color:var(--accent);border-color:var(--accent-line);background:var(--accent-soft)}
.step-button.add-row{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-line);font-size:19px}
.record-tabs{padding:0;border:0;background:none;margin:0 0 10px;gap:14px}.record-tabs>button{flex:none;min-height:27px;padding:3px 0;font-size:10px;border-radius:0;border-bottom:2px solid transparent}.record-tabs>button[aria-selected=true]{color:var(--accent);background:none;box-shadow:none;border-bottom-color:var(--accent)}
.part-card{padding:0;margin:0;min-width:0}.part-top{display:flex;align-items:center;justify-content:space-between;min-height:24px;margin-bottom:8px;font-size:10px;color:var(--muted)}.part-top small{font-size:9px}.text-button{padding:3px 0;min-height:24px;border:0;background:none;font-size:10px;color:var(--muted)}.text-button:hover{color:var(--red)}
.part-card .field-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.part-card .name-field{grid-column:span 2}.part-card .field>span{font-size:10px}.part-card .field input{font-size:13px}.part-card .check-field{grid-column:span 2;min-height:33px;font-size:10px}.empty-rows{font-size:12px;color:var(--muted);padding:20px 0}
.edge-picker{border:0;margin:14px 0 0;padding:0;min-width:0}.edge-picker legend{font-size:10px;font-weight:600}.edge-map{width:190px;height:95px;position:relative;margin:8px auto 0}.edge-core{position:absolute;inset:22px 30px;display:grid;place-items:center;border:1px solid var(--accent-line);border-radius:4px;background:var(--accent-soft);color:var(--accent)}
.edge-toggle{position:absolute;display:grid;place-items:center}.edge-toggle input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;z-index:2;min-height:0}.edge-toggle span{display:block;border-radius:3px;background:#cdd3dd;border:1px solid #b1bac8;pointer-events:none}
.edge-toggle:has(input:checked) span{background:var(--gradient);border-color:var(--accent)}.edge-toggle:has(input:focus-visible){outline:3px solid var(--accent);outline-offset:2px}.edgeL1{top:0;left:30px;right:30px;height:24px}.edgeL2{bottom:0;left:30px;right:30px;height:24px}.edgeL1 span,.edgeL2 span{height:9px;width:100%}.edgeW1{left:0;top:22px;bottom:22px;width:30px}.edgeW2{right:0;top:22px;bottom:22px;width:30px}.edgeW1 span,.edgeW2 span{width:9px;height:100%}.edge-legend{text-align:center;font-size:10px;color:var(--muted);margin-top:4px}
.form-footer{margin-top:auto;padding-top:12px;flex:none}.form-actions{display:flex;gap:7px;align-items:center}.form-actions .primary{flex:1}.form-actions .button{font-size:12px;min-height:36px}.number-guide{position:relative;flex:none}.number-guide>summary{display:grid;place-items:center;list-style:none;cursor:pointer;width:30px;height:34px;border:1px solid var(--line);border-radius:7px;font-size:13px;color:var(--muted)}.number-guide>summary::-webkit-details-marker{display:none}.number-guide>p{position:absolute;inset-inline-end:0;bottom:42px;z-index:50;width:250px;max-width:calc(100vw - 50px);padding:12px;background:var(--card);border:1px solid var(--line);border-radius:9px;box-shadow:var(--shadow);font-size:11px;line-height:1.7}
.form-error{border-inline-start:3px solid var(--red);padding:7px 9px;margin-bottom:8px;background:#fff0ed;color:var(--red);font-size:11px;line-height:1.5}
.csv-controls{position:relative;margin-inline-start:auto;font-size:11px}.csv-controls>summary{list-style:none;cursor:pointer;padding:4px 7px;min-height:26px;border:1px solid var(--line);border-radius:6px;font-size:10px;color:var(--muted)}.csv-controls>summary::-webkit-details-marker{display:none}.csv-menu{position:absolute;inset-inline-end:0;top:33px;z-index:50;width:340px;max-width:calc(100vw - 45px);max-height:calc(100dvh - 150px);overflow:auto;padding:13px;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 14px 35px #10182821}.csv-menu>p{font-size:11px;line-height:1.7;color:var(--muted);margin-bottom:10px}.csv-menu .button{font-size:11px;min-height:34px;margin-block:0 6px;margin-inline:0 4px}
.result-views{flex:1;min-height:0;display:flex;flex-direction:column}.result-view{flex:1;min-height:0}.overview-view{display:flex;flex-direction:column;gap:10px}.metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;flex:none}.metric-grid.many-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.metric{min-width:0;padding:8px 10px;background:var(--paper);border:1px solid var(--line);border-radius:7px}.metric>span{display:block;color:var(--muted);font-size:10px;line-height:1.35}.metric>strong{display:block;margin-top:3px;font-size:18px;line-height:1.3;font-weight:700;letter-spacing:-.4px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.metric:first-child{background:var(--accent-soft);border-color:var(--accent-line)}.metric:first-child>strong{background:var(--gradient-text);background-clip:text;-webkit-background-clip:text;color:transparent;font-size:23px}.many-metrics .metric:first-child>strong{font-size:19px}
.result-drawing{flex:1;min-height:0;margin:0;border-radius:8px;background:var(--paper);border:1px solid var(--line);display:grid;grid-template-rows:minmax(0,1fr) auto;overflow:hidden}.result-drawing svg{display:block;width:100%;height:100%;min-height:0}.result-drawing figcaption{font-size:9px;line-height:1.4;color:var(--muted);padding:3px 9px 6px}
.plan-switch{display:flex;align-items:center;gap:8px;font-size:10px;flex:none}.plan-switch select{min-height:31px;font-size:11px;padding:4px 8px;flex:1}
.result-actions{display:flex;gap:6px;flex-wrap:wrap;flex:none;margin-top:12px}.result-actions .button{min-height:32px;font-size:10px;padding:6px 8px;flex:1;white-space:nowrap}.result-actions .button#export-result{flex:0 0 auto;min-width:42px}
.result-table-wrap{min-width:0}.result-table{border-collapse:collapse;width:100%;table-layout:fixed;font-size:11px;font-variant-numeric:tabular-nums}.result-table caption{text-align:start;font-size:10px;color:var(--muted);padding:0 0 8px}.result-table th{text-align:start;color:var(--muted);background:var(--paper);font-size:10px;font-weight:600;line-height:1.5}.result-table th,.result-table td{padding:8px 7px;border-bottom:1px solid var(--line);overflow-wrap:anywhere;vertical-align:top}.result-table tbody tr:nth-child(even){background:var(--paper)}.list-view{display:flex;flex-direction:column}.result-pagination{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:10px;font-size:11px;color:var(--muted)}.result-pagination span{font-variant-numeric:tabular-nums}
.notes-view p{font-size:11px;line-height:1.8;color:var(--muted)}.notes-view p+p{margin-top:12px}.notes-view p:first-child{border-inline-start:2px solid var(--accent-line);padding-inline-start:10px}
.workspace-switch,.mobile-summary{display:none}.empty-result{display:flex;flex:1;min-height:0;flex-direction:column;align-items:center;justify-content:center;gap:15px;color:var(--muted);font-size:13px;text-align:center}
.wood-piece{stroke:#94714c;stroke-width:1;vector-effect:non-scaling-stroke}.drawing-background{stroke:#c3bda9;stroke-width:1}.measure-line{stroke:#5a6576;stroke-width:1;vector-effect:non-scaling-stroke}.dimension,.small-dimension{font-family:var(--mono);font-size:12px;fill:var(--muted)}.small-dimension{font-size:10px}.large-dimension{font-family:var(--mono);font-size:30px;fill:var(--ink)}.grain-line{stroke:#8d6845;stroke-width:1;stroke-dasharray:8 5;opacity:.6}.band-line{stroke:#d9480f;stroke-width:7;vector-effect:non-scaling-stroke}.joint-line{stroke:#7b5d3d;stroke-width:1.5;fill:none}.guide-line{stroke:#657469;stroke-width:1;stroke-dasharray:4 3}.angle-arc{stroke:#d9480f;stroke-width:2;fill:none}.cut-line{stroke:#be185d;stroke-width:1;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.cut-index{font-family:var(--mono);font-size:9px;fill:#7b2418;paint-order:stroke;stroke:white;stroke-width:3px;stroke-linejoin:round}.part-index{font-family:var(--mono);font-size:14px;fill:#252a24;font-weight:700}.legend{font-family:var(--font);font-size:12px;fill:var(--muted)}
.hero{display:flex;align-items:center;gap:18px;padding:18px 0 16px}.hero-mark{display:grid;place-items:center;flex:none;width:78px;height:78px;color:white;background:var(--gradient);border-radius:22px}.hero h1{font-size:27px;margin:0 0 7px;max-width:900px}.hero-lead{font-size:15px;line-height:1.7;color:var(--muted);max-width:850px}.hero .eyebrow,.hero-actions,.hero-details,.hero-art{display:none}
.catalog{padding:0 0 28px}.section-heading{display:flex;flex-direction:column;align-items:stretch;gap:18px;margin-bottom:14px}.section-heading>div{order:2}.section-heading h2{font-size:20px}.section-heading .eyebrow,.section-heading>div>p:not(.eyebrow){display:none}
.search-box{position:relative;display:flex;align-items:center;gap:12px;min-height:100px;padding:20px 18px;background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px}.search-box svg{position:absolute;inset-inline-start:33px;color:var(--muted)}.search-box input{font-size:16px;min-height:46px;background:var(--paper);padding-inline-start:43px;border-radius:10px}
.category-tabs{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 15px}.category-tabs button{padding:6px 10px;min-height:31px;border:1px solid var(--line);border-radius:7px;background:var(--card);font-size:11px;color:var(--muted)}.category-tabs button.active{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent);font-weight:650}.category-tabs button span{margin-inline-start:6px}
.tool-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.tool-card{display:flex;flex-direction:column;min-width:0;padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink);text-decoration:none;transition:transform .15s,border-color .15s}.tool-card:hover{transform:translateY(-2px);border-color:var(--accent)}.card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.tool-icon{display:grid;place-items:center;color:var(--accent);width:25px;height:25px}.card-number{font-family:var(--mono);font-size:9px;color:var(--muted)}.tool-card h3{font-size:14px;line-height:1.5;letter-spacing:-.2px;margin-bottom:5px}.tool-card p{font-size:12px;line-height:1.7;color:var(--muted);margin-bottom:13px}.card-link{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:auto;font-size:10px;font-weight:650;color:var(--accent)}
.workshop-banner{display:flex;align-items:center;gap:16px;background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:10px;padding:18px;margin:8px 0 30px}.banner-symbol{color:var(--accent);flex:none}.workshop-banner h2{font-size:19px;margin:3px 0 5px}.workshop-banner p:not(.eyebrow){font-size:12px;line-height:1.7;color:var(--muted)}.workshop-banner>.button{margin-inline-start:auto;flex:none}.workshop-banner .eyebrow{display:none}
.home-bottom{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin:25px 0}.home-bottom h2{font-size:22px;margin-top:7px}.home-bottom ol{padding:0;list-style:none}.home-bottom li{display:flex;gap:16px;padding:12px 0;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}.home-bottom li span{font-family:var(--mono);color:var(--accent);font-size:10px}
.tool-after{padding-top:14px}.method-article{max-width:920px;padding:12px 0 20px}.method-article h2{font-size:21px;margin:10px 0 14px}.method-article>p:not(.eyebrow){font-size:14px;line-height:1.85;color:var(--muted)}.method-article h3{font-size:14px;margin-top:20px}.formula{font-family:var(--mono);font-size:13px;line-height:1.8;padding:15px 18px;background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:9px;margin:18px 0;overflow-wrap:anywhere}.source-links{padding-inline-start:18px;margin:12px 0 0;font-size:12px;line-height:1.8}.source-links a{display:inline-block;min-height:27px;padding-block:3px}.source-links li+li{margin-top:5px}
.related{margin:20px 0 30px}.related>h2{font-size:20px;margin-bottom:14px}.related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.related-grid>.tool-card:last-child:nth-child(4){grid-column:1/-1}.category-grid{margin-bottom:30px}
.editorial-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:20px 0 30px}.editorial-card{display:flex;flex-direction:column;min-width:0;border:1px solid var(--line);border-radius:10px;padding:20px;background:var(--card);text-decoration:none;color:var(--ink)}.editorial-card h2{font-size:20px;line-height:1.4;margin:12px 0}.editorial-card p{font-size:13px;line-height:1.8;color:var(--muted);margin-bottom:20px}
.reading-page{max-width:850px;padding:20px 0 30px}.reading-page h1{font-size:30px;margin:12px 0 20px}.reading-page h2{font-size:21px;margin-top:25px}.reading-page>p{font-size:15px;line-height:1.9;color:var(--muted);margin-top:20px}.reading-page>p.reading-lead{font-size:18px;color:var(--ink)}.worked-example{padding:20px;border-inline-start:3px solid var(--accent);background:var(--accent-soft);border-start-start-radius:0;border-end-start-radius:0;border-start-end-radius:9px;border-end-end-radius:9px;margin-top:25px}.worked-example p:not(.eyebrow){font-size:14px;line-height:1.8;margin-top:8px}
.project-story{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:30px;padding:25px 0}.project-story h1{font-size:30px;margin:12px 0 16px}.project-story>div>p:not(.eyebrow){font-size:14px;line-height:1.8;color:var(--muted)}.project-story .button{margin-top:22px}.field-help{font-size:11px;line-height:1.7;color:var(--muted);margin-top:12px}.project-preview{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px}.project-preview svg{display:block;width:100%;height:auto}
.library-actions{display:flex;gap:8px;margin:15px 0 25px}.library-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:35px}.saved-project{min-width:0;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:20px}.saved-project h2{font-size:18px;overflow-wrap:anywhere}.saved-project p{font-size:11px;color:var(--muted);margin-top:10px}.saved-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:16px}.saved-actions .button{font-size:11px}
.site-footer{margin-inline-start:var(--sidebar);padding:22px 0 18px;border-top:1px solid var(--line);background:var(--card)}.footer-top{display:flex;align-items:center;gap:20px;margin-bottom:18px}.footer-top .brand{font-size:21px}.footer-top .brand-symbol{width:27px;height:27px;border-radius:8px}.footer-top .brand-symbol svg{width:21px}.footer-top>p{font-size:11px;color:var(--muted)}.local-badge{margin-inline-start:auto;border:1px solid var(--accent-line);background:var(--accent-soft);color:var(--accent);font-size:10px;padding:5px 8px;border-radius:7px;white-space:nowrap}.footer-links{display:flex;gap:14px;flex-wrap:wrap}.footer-links a{font-size:11px;color:var(--muted);text-decoration:none}.footer-note{font-size:10px;color:var(--muted);margin-top:16px}
.toast{position:fixed;bottom:18px;left:calc(50% + 108px);transform:translateX(-50%);z-index:200;max-width:min(560px,calc(100% - 30px));padding:12px 18px;border-radius:10px;border:1px solid var(--accent-line);background:var(--card);color:var(--ink);font-size:12px;box-shadow:0 10px 30px #10182829}[dir=rtl] .toast{left:calc(50% - 108px)}.storage-status{position:fixed;bottom:0;inset-inline-start:var(--sidebar);inset-inline-end:0;z-index:190;padding:10px 16px;background:#fff1cc;color:#754400;font-size:11px}.noscript{padding:12px;font-size:12px;background:var(--accent-soft);color:var(--ink)}
.language-landing{width:min(620px,calc(100% - 32px));margin:12vh auto;display:flex;flex-direction:column;gap:20px}.language-landing h1{font-size:42px;margin-top:25px}.language-landing .button{justify-content:space-between;min-height:44px}.print-only{display:none}
@media(min-width:1500px){.workspace{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}.tool-form,.result-panel{padding:18px}.field-grid{gap:14px}.field input,.field select{min-height:40px}.metric{padding:10px 12px}.metric>strong{font-size:20px}.metric:first-child>strong{font-size:27px}}
@media(max-width:1200px){.header-action-text{display:none}.header-button#save-project,.project-settings>summary{width:35px;padding:6px}.tool-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.part-card .field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.part-card .name-field{grid-column:span 2}.header-context>strong{max-width:28vw}.result-actions .button{font-size:10px;padding:6px}.metric>strong{font-size:16px}.metric:first-child>strong{font-size:21px}.metric-grid.many-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.many-metrics .metric{padding:6px 8px}.many-metrics .metric>strong,.many-metrics .metric:first-child>strong{font-size:16px}}
@media(max-width:999px){.app-sidebar{display:none}.site-header,.site-footer{margin-inline-start:0}.app-main{margin-inline-start:0;width:100%;padding-inline:16px}.header-inner{padding-inline:12px;gap:9px}.menu-button{display:inline-flex;width:35px;padding:6px}.mobile-brand{display:block;margin-inline-end:auto}.mobile-brand .brand{font-size:21px}.mobile-brand .brand-symbol{width:29px;height:29px;border-radius:8px}.mobile-brand .brand-symbol svg{width:22px}.header-context{display:none}.header-end{gap:6px}.header-unit{width:53px}.header-currency{width:61px}.header-end select{font-size:11px;max-width:145px}.toast,[dir=rtl] .toast{left:50%}.storage-status{inset-inline-start:0}.tool-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.project-popover{inset-inline-end:-100px}.hero h1{font-size:25px}.workspace{gap:11px}.tool-form,.result-panel{padding:14px}.metric-grid.many-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.editorial-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:699px){
  :root{--header:50px}.mobile-brand{display:none}.header-inner{gap:7px;padding-inline:10px}.header-end{margin-inline-start:auto;gap:5px}.header-end select{font-size:11px;min-height:33px;padding:6px 5px}.language-select select{max-width:130px}.header-unit{width:47px}.header-currency{width:58px}.header-button#save-project,.project-settings>summary{width:33px;min-height:33px}.header-button.library-link span{display:none}.app-main{padding-inline:12px;padding-top:9px}.container{padding-inline:12px}.menu-button{width:33px;min-height:33px}.project-popover{position:fixed;inset-inline-start:12px;inset-inline-end:12px;top:58px;width:auto;max-width:none;padding:14px}.project-popover input{font-size:16px}
  body[data-page="tool"][data-tool-view="calculator"] .app-main{padding-bottom:9px}.breadcrumbs{font-size:10px;gap:6px;margin-bottom:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.breadcrumbs>*+*{margin-inline-start:5px}.page-heading{margin:2px 0 8px}.page-heading h1{font-size:22px;line-height:1.2;margin:0 0 3px}.page-heading>p:not(.eyebrow){font-size:11px}.workbench-nav{gap:18px;margin-bottom:4px}.workbench-nav a{font-size:11px;min-height:30px}.result-status{font-size:9px;line-height:13px;margin-bottom:5px}
  .workspace{display:grid;grid-template-columns:1fr;grid-template-rows:auto auto minmax(0,1fr);gap:6px}.workspace-switch{display:flex;gap:4px;padding:3px;background:var(--card);border:1px solid var(--line);border-radius:8px}.workspace-switch>button{flex:1;min-height:29px;padding:4px 8px;background:transparent;color:var(--muted);border:0;border-radius:5px;font-size:11px}.workspace-switch>button[aria-selected=true]{background:var(--gradient-strong);color:white;font-weight:650}
  .mobile-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:7px;padding:6px 10px;min-height:31px;font-size:10px;color:var(--muted)}.mobile-summary strong{font-size:14px;color:var(--accent);font-variant-numeric:tabular-nums}
  .tool-form,.result-panel{grid-row:3;padding:12px;min-height:0}.tool-form{display:block}body[data-mobile-pane="inputs"] .result-panel{display:none}body[data-mobile-pane="result"] .tool-form{display:none}body[data-mobile-pane="result"] .result-panel{display:flex}
  .panel-title{min-height:19px;margin-bottom:8px}.panel-title h2{font-size:10px}.panel-tabs{margin-bottom:9px}.panel-tabs>button{min-height:28px;font-size:10px;padding:4px 6px}.record-tabs>button{min-height:24px}.record-tabs{margin-bottom:7px}.field-grid{gap:9px 10px}.field>span{font-size:10px}.field input,.field select{font-size:16px;min-height:39px;padding:7px 9px}.check-field{font-size:10px;min-height:36px}.part-card .field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 9px}.part-card .field input{font-size:16px;min-height:38px}.part-card .field>span{font-size:10px}.part-card .check-field{font-size:10px;min-height:30px}.part-top{font-size:9px;margin-bottom:6px;min-height:22px}.record-navigation{gap:5px;margin-bottom:6px}.record-navigation select{font-size:13px;min-height:33px}.step-button{width:30px;min-height:30px}.form-footer{padding-top:9px}.form-actions{gap:6px}.form-actions .button{font-size:12px;min-height:35px}.form-error{font-size:10px;padding:5px 7px;margin-bottom:6px}.csv-controls>summary{font-size:10px}.csv-menu{inset-inline-end:-2px;max-width:calc(100vw - 50px);width:310px}.csv-menu .button{font-size:11px;min-height:35px}
  .metric-grid{gap:6px}.metric{padding:7px 9px}.metric>span{font-size:10px}.metric>strong{font-size:18px}.metric:first-child>strong{font-size:22px}.metric-grid.many-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.many-metrics .metric{padding:6px}.many-metrics .metric>span{font-size:9px}.many-metrics .metric>strong,.many-metrics .metric:first-child>strong{font-size:15px}.overview-view{gap:8px}.result-drawing figcaption{font-size:9px;padding:3px 7px 5px}.result-actions{gap:5px;margin-top:9px}.result-actions .button{font-size:10px;min-height:32px;flex:1 1 auto}.result-actions .button#export-result{flex:0 0 auto}.notes-view p{font-size:11px;line-height:1.7}.notes-view p+p{margin-top:9px}.result-table{font-size:11px}.result-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.result-table tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 10px;padding:9px 10px;border:1px solid var(--line);border-radius:8px;margin-bottom:8px}.result-table td{display:block;min-width:0;padding:0;border:0;font-size:11px;line-height:1.5;overflow-wrap:anywhere}.result-table td::before{content:attr(data-label);display:block;font-size:9px;color:var(--muted);margin-bottom:1px}.result-table tbody tr:nth-child(even){background:var(--paper)}.result-table caption{padding-bottom:7px;font-size:10px}.result-pagination{font-size:10px;padding-top:4px}
  .tool-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.hero{gap:12px;padding:12px 0 15px}.hero-mark{width:53px;height:53px;border-radius:16px}.hero-mark svg{width:32px}.hero h1{font-size:23px;line-height:1.25;margin-bottom:5px}.hero-lead{font-size:12px;line-height:1.7}.search-box{min-height:80px;padding:14px}.search-box svg{inset-inline-start:27px}.search-box input{font-size:16px;min-height:44px;padding-inline-start:38px}.section-heading{gap:18px}.section-heading h2{font-size:19px}.tool-card{padding:13px}.tool-card h3{font-size:13px}.tool-card p{font-size:11px;line-height:1.65}.card-top{margin-bottom:8px}.card-link{font-size:10px}.category-tabs{gap:5px}.category-tabs button{font-size:10px;padding:6px 8px;min-height:30px}.workshop-banner{gap:12px;padding:15px;flex-wrap:wrap}.workshop-banner>.button{margin:0;width:100%}.banner-symbol{display:none}.workshop-banner h2{font-size:20px}.home-bottom{grid-template-columns:1fr;gap:15px}.home-bottom h2{font-size:23px}.home-bottom li{padding:10px 0}.related-grid{grid-template-columns:1fr}.related-grid>.tool-card:last-child:nth-child(4){grid-column:auto}.editorial-grid{grid-template-columns:1fr}.reading-page{padding-top:15px}.reading-page h1{font-size:28px}.reading-page>p{font-size:14px}.reading-page>p.reading-lead{font-size:17px}.worked-example{padding:16px}.project-story{grid-template-columns:1fr;padding-top:20px;gap:20px}.project-story h1{font-size:29px}.library-grid{grid-template-columns:1fr}.footer-top{flex-wrap:wrap;gap:13px}.footer-top>p{order:3;flex-basis:100%}.local-badge{font-size:9px}.footer-links{gap:10px 14px}.footer-links a{font-size:10px}.footer-note{font-size:9px}.toast{font-size:11px;bottom:12px;max-width:calc(100% - 24px)}
}
@media(max-width:370px){.header-inner{padding-inline:7px;gap:5px}.header-end{gap:4px}.language-select select{max-width:94px;font-size:10px}.header-unit{width:43px}.header-currency{width:54px}.header-button#save-project,.project-settings>summary,.menu-button{width:30px;min-height:32px}.header-end select{padding-inline:4px}.page-heading h1{font-size:20px}.page-heading>p:not(.eyebrow){display:none}.metric-grid.many-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.many-metrics .metric>strong,.many-metrics .metric:first-child>strong{font-size:15px}.tool-grid{gap:8px}.tool-card{padding:12px}}
@media(max-height:750px) and (min-width:700px){.app-main{padding-top:8px}.page-heading{margin-bottom:8px}.page-heading h1{font-size:24px}.breadcrumbs{margin-bottom:5px}.workbench-nav a{min-height:30px}.tool-form,.result-panel{padding:12px}.panel-title{margin-bottom:8px}.panel-tabs{margin-bottom:9px}.field-grid{gap:9px 10px}.field input,.field select{min-height:35px;padding:6px 9px}.part-card .field-grid{gap:8px 10px}.form-actions .button{min-height:33px}.metric{padding:6px 9px}.metric>strong{font-size:16px}.metric:first-child>strong{font-size:21px}.result-actions{margin-top:9px}}
@media(max-height:740px) and (max-width:699px){.page-heading>p:not(.eyebrow){display:none}.page-heading h1{font-size:20px}.app-main{padding-top:6px}.page-heading{margin-bottom:5px}.breadcrumbs{font-size:9px;margin-bottom:4px}.workbench-nav a{min-height:27px}.result-status{line-height:11px;margin-bottom:4px}.mobile-summary{min-height:27px;padding:4px 8px}.workspace-switch>button{min-height:26px}.tool-form,.result-panel{padding:10px}.field input,.field select,.part-card .field input{min-height:35px;padding:5px 8px}.field{gap:3px}.field-grid,.part-card .field-grid{gap:7px 8px}.part-top{margin-bottom:4px;min-height:20px}.form-footer{padding-top:7px}.form-actions .button{min-height:32px}.panel-tabs{margin-bottom:7px}.record-navigation{margin-bottom:5px}.record-navigation select{min-height:30px}.metric{padding:5px 8px}.metric>strong{font-size:16px}.metric:first-child>strong{font-size:19px}.result-actions{margin-top:7px}}
@media(prefers-color-scheme:dark){:root{--paper:#0f1218;--paper-deep:#111721;--card:#181c24;--ink:#e8ecf2;--muted:#9aa5b5;--line:#2a303b;--accent:#ff7a3d;--accent-dark:#ff9769;--accent-soft:#2a1a10;--accent-line:#6b3418;--gradient-text:linear-gradient(90deg,#ff8a3d,#ff4f93);--red:#ff8a7a;--shadow:0 1px 2px #0006;color-scheme:dark}input,select{border-color:#343e4c}.form-error{background:#321a16}.edge-toggle span{background:#48505e;border-color:#69778d}.cut-index{stroke:var(--paper);fill:#ff8a7a}.part-index{fill:#1b2230}.storage-status{background:#33250d;color:#f2b84b}.result-status.is-dirty{color:#f2b84b}}
@media(max-height:750px){.edge-picker{margin-top:6px}.edge-map{height:80px;margin-top:4px}.edge-core{inset:19px 30px}.edge-core svg{width:22px;height:22px}.edgeW1,.edgeW2{top:17px;bottom:17px}.edge-legend{font-size:9px;margin-top:2px}.edge-picker legend{font-size:9px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}html{scroll-behavior:auto}}
.result-heading-actions{display:flex;align-items:center;gap:7px;flex:none}.visual-switch{display:flex;padding:2px;background:var(--paper);border:1px solid var(--line);border-radius:6px;gap:2px}.visual-switch button{border:0;border-radius:4px;min-height:24px;padding:3px 9px;background:transparent;color:var(--muted);font-size:10px;font-weight:650}.visual-switch button[aria-pressed=true]{color:var(--accent);background:var(--accent-soft)}.visual-switch button:hover{color:var(--accent)}
.scene-mount{position:relative;min-height:0;min-width:0;height:100%;overflow:hidden}.scene-loading,.scene-fallback{display:grid;place-items:center;height:100%;font-size:12px;text-align:center;color:var(--muted);padding:14px}.scene3d{position:relative;width:100%;height:100%;min-height:0;isolation:isolate}.scene3d canvas{display:block;width:100%;height:100%;touch-action:none;outline-offset:-4px;cursor:grab}.scene3d canvas:active{cursor:grabbing}.scene3d .scene-dimensions{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:hidden;z-index:2}.scene-dim-line{stroke:var(--muted);stroke-width:1;fill:none;opacity:.75}.scene-dim-dot{fill:var(--accent)}.scene-dim-label{fill:var(--card);stroke:var(--line);stroke-width:.6;opacity:.95}.scene-dim-text{fill:var(--ink);font:10px var(--mono)}
.scene-quick{position:absolute;top:7px;inset-inline-end:7px;display:flex;gap:4px;z-index:4}.scene3d button,.scene-dialog button{display:grid;place-items:center;min-width:29px;min-height:29px;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--ink);font:15px var(--font);padding:3px 7px;cursor:pointer}.scene3d button:hover,.scene-dialog button:hover{border-color:var(--accent);color:var(--accent)}.scene-hint{position:absolute;bottom:5px;inset-inline-start:8px;inset-inline-end:8px;pointer-events:none;font-size:9px;color:var(--muted);text-shadow:0 0 4px var(--paper);text-align:center}.scene-part-switch{position:absolute;top:7px;inset-inline-start:7px;max-width:calc(100% - 85px);z-index:3}.scene-part-switch select{min-height:28px;padding:3px 6px;font-size:10px;width:100%;text-overflow:ellipsis}.scene-selection{position:absolute;bottom:21px;inset-inline-start:8px;inset-inline-end:8px;width:fit-content;max-width:calc(100% - 16px);padding:5px 7px;border:1px solid var(--accent-line);border-radius:6px;background:var(--card);color:var(--ink);font-size:10px;line-height:1.5;pointer-events:none}.scene-error{position:absolute;inset:0;display:grid;place-items:center;margin:0;padding:22px;font-size:12px;line-height:1.7;text-align:center;background:var(--paper);color:var(--muted);z-index:6}.scene-error[hidden]{display:none}
.result-panel[data-ready=false] .scene-mount{opacity:.45}.result-drawing.is-3d figcaption{font-size:9px;line-height:1.4;padding:4px 9px 6px}
.scene-dialog{width:calc(100vw - 32px);max-width:1600px;height:calc(100dvh - 32px);max-height:calc(100dvh - 32px);margin:auto;border:1px solid var(--line);border-radius:13px;background:var(--paper);color:var(--ink);padding:0;box-shadow:0 24px 100px #10182855;overflow:hidden}.scene-dialog[open]{display:flex;flex-direction:column}.scene-dialog::backdrop{background:#10182899;backdrop-filter:blur(4px)}.scene-dialog>header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 18px;border-bottom:1px solid var(--line);background:var(--card);flex:none}.scene-dialog>header span{font-size:10px;font-weight:650;color:var(--accent)}.scene-dialog h2{font-size:18px;line-height:1.3;margin-top:3px}.scene-dialog>header button{width:32px;height:32px;font-size:21px}.scene-toolbar{display:flex;flex-wrap:wrap;align-items:end;gap:12px 18px;padding:12px 18px 8px;flex:none}.scene-toolbar>label{display:flex;flex-direction:column;gap:4px;font-size:10px;color:var(--muted)}.scene-toolbar select{font-size:12px;min-height:34px;padding:6px 9px;min-width:130px}.scene-toolbar>.scene-check{flex-direction:row;align-items:center;gap:6px;min-height:34px}.scene-toolbar input[type=range]{width:140px;min-height:34px;margin:0;padding:0;accent-color:var(--accent)}.scene-toolbar>button{font-size:11px;min-height:34px;margin-inline-start:auto}.scene-summary{font-size:11px;line-height:1.5;color:var(--muted);padding:0 18px 7px;flex:none}.scene-expanded-stage{flex:1;min-height:0;margin:0 12px;border:1px solid var(--line);border-radius:10px;overflow:hidden}.scene-expanded-stage .scene-hint{font-size:11px;bottom:10px}.scene-expanded-stage .scene-dim-text{font-size:11px}.scene-note{font-size:10px;line-height:1.6;color:var(--muted);padding:8px 18px 10px;flex:none}.scene-dialog [hidden]{display:none!important}
@media(max-width:699px){.scene-dialog{width:calc(100vw - 12px);height:calc(100dvh - 12px);max-height:calc(100dvh - 12px);border-radius:10px}.scene-dialog>header{padding:9px 11px}.scene-dialog h2{font-size:16px}.scene-toolbar{padding:9px 11px 5px;gap:8px;display:grid;grid-template-columns:1fr 1fr}.scene-toolbar select{min-width:0;width:100%;font-size:16px;min-height:34px;padding:4px 7px}.scene-toolbar>label{min-width:0}.scene-toolbar input[type=range]{width:100%}.scene-toolbar>button{grid-column:2;margin:0;min-height:30px;font-size:10px}.scene-summary{font-size:10px;padding:3px 11px 6px}.scene-expanded-stage{margin:0 7px}.scene-note{font-size:9px;padding:6px 11px 8px}.scene-expanded-stage .scene-hint{font-size:9px}.scene-selection{font-size:9px}.visual-switch button{min-height:24px;padding-inline:8px}.scene-hint{font-size:8px}.scene-quick{top:5px;inset-inline-end:5px}.scene-part-switch{top:5px;inset-inline-start:5px}.scene-part-switch select{font-size:12px}.scene3d button{min-width:28px;min-height:28px}.scene-dim-text{font-size:10px}}
/* Keep the work area for inputs and the model; context is already in the shell. */
body[data-page="tool"][data-tool-view="calculator"] .app-main{grid-template-rows:auto minmax(0,1fr);padding-top:6px}
body[data-page="tool"][data-tool-view="calculator"] .breadcrumbs{display:none}
body[data-page="tool"][data-tool-view="calculator"] .page-heading,
body[data-page="tool"][data-tool-view="calculator"] .result-status{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
body[data-page="tool"] .header-context>span{display:none}
body[data-page="tool"] .workbench-nav{margin-bottom:6px}
.tool-form>.form-ready>.panel-title{position:absolute;top:16px;inset-inline-end:16px;min-height:0;margin:0}
.tool-form:has(.csv-controls) .form-tabs{margin-inline-end:66px}
.result-navigation{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex:none;min-width:0}
.result-navigation>.panel-tabs{flex:1;margin:0;min-width:0}
.result-navigation>.visual-switch{flex:none}
.metric-grid:has(>.metric:nth-child(3)):not(:has(>.metric:nth-child(4))){grid-template-columns:repeat(3,minmax(0,1fr))}
.scene-hint{display:none}.scene-selection{bottom:7px}
.scene-toolbar>button[data-scene-action=close]{margin-inline-start:0;min-width:34px;align-self:end;font-size:20px}
@media(min-width:1200px){body[data-page="tool"] .workspace{grid-template-columns:minmax(0,.85fr) minmax(0,1.25fr)}}
@media(max-width:999px){.tool-form>.form-ready>.panel-title{top:14px;inset-inline-end:14px}}
@media(max-width:699px){
  .tool-form>.form-ready>.panel-title{top:12px;inset-inline-end:12px}
  body[data-mobile-pane="result"] .mobile-summary{display:none}
  body[data-mobile-pane="result"] .workspace{grid-template-rows:auto minmax(0,1fr)}
  body[data-mobile-pane="result"] .result-panel{grid-row:2}
  .result-navigation{gap:5px;margin-bottom:8px}.result-navigation .panel-tabs>button{padding-inline:4px;font-size:9px}
  .scene-toolbar{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:7px}
  .scene-toolbar>button[data-scene-action=png]{grid-column:3;grid-row:2;min-width:34px;margin:0;padding-inline:5px;align-self:end}
  .scene-toolbar>button[data-scene-action=close]{grid-column:3;grid-row:1;margin:0;min-height:34px}
}
@media(max-height:750px) and (min-width:700px){.tool-form>.form-ready>.panel-title{top:12px;inset-inline-end:12px}}
@media(max-height:740px) and (max-width:699px){.tool-form>.form-ready>.panel-title{top:10px;inset-inline-end:10px}}
/* Languages and scripts: 30 locales, RTL mirroring, CJK/Thai/Devanagari/Arabic/Hebrew fonts and long compound words. */
:root:lang(ja){--font:system-ui,-apple-system,"Segoe UI","Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic UI","Yu Gothic","Meiryo","Noto Sans JP","Noto Sans CJK JP",sans-serif}
:root:lang(zh-Hans){--font:system-ui,-apple-system,"Segoe UI","PingFang SC","Microsoft YaHei","Noto Sans SC","Noto Sans CJK SC","Source Han Sans SC",sans-serif}
:root:lang(zh-Hant){--font:system-ui,-apple-system,"Segoe UI","PingFang TC","Microsoft JhengHei","Noto Sans TC","Noto Sans CJK TC","Source Han Sans TC",sans-serif}
:root:lang(ko){--font:system-ui,-apple-system,"Segoe UI","Apple SD Gothic Neo","Malgun Gothic","Noto Sans KR","Noto Sans CJK KR",sans-serif}
:root:lang(ar){--font:system-ui,-apple-system,"Segoe UI","Noto Sans Arabic","Segoe UI Arabic","Geeza Pro",Tahoma,sans-serif}
:root:lang(he){--font:system-ui,-apple-system,"Segoe UI","Noto Sans Hebrew","Arial Hebrew",Arial,sans-serif}
:root:lang(hi){--font:system-ui,-apple-system,"Segoe UI","Noto Sans Devanagari","Nirmala UI","Kohinoor Devanagari",sans-serif}
:root:lang(th){--font:system-ui,-apple-system,"Segoe UI","Noto Sans Thai","Leelawadee UI","Thonburi",sans-serif}
/* Tracking and capitals do not suit joined, syllabic or ideographic scripts. */
:root:is(:lang(ar),:lang(he),:lang(hi),:lang(th),:lang(ja),:lang(ko),:lang(zh)) :not(.brand):not(.brand *){letter-spacing:normal!important}
:root:is(:lang(ar),:lang(hi),:lang(th)) body{line-height:1.7}
body{overflow-wrap:break-word}
:root:is(:lang(de),:lang(fi),:lang(nl),:lang(sv),:lang(da),:lang(nb),:lang(hu),:lang(pl),:lang(cs),:lang(sk),:lang(ro),:lang(el),:lang(ru),:lang(uk),:lang(tr),:lang(it),:lang(fr),:lang(id)) body{-webkit-hyphens:auto;hyphens:auto}
input,select,textarea,.formula,.brand,.card-number,.result-table td{-webkit-hyphens:manual;hyphens:manual}
.tool-card h3,.tool-card p,.field>span,.check-field span,.panel-tabs button,.metric span,.editorial-card h2,.page-heading h1,.reading-page h1,.project-story h1,.breadcrumbs,.workbench-nav a,.category-tabs button,.sidebar-group h2,.language-choice,.button{overflow-wrap:anywhere}
.workspace-switch>button,.mobile-summary>*,.record-tabs>button,.result-navigation .panel-tabs>button{min-width:0;overflow-wrap:anywhere}.record-tabs>button{flex:0 1 auto}
@media(max-width:699px){body .workspace{grid-template-columns:minmax(0,1fr)}}
/* Numbers, dimensions and formulas keep their own direction inside RTL text. */
svg{direction:ltr}
.formula{direction:ltr;unicode-bidi:isolate;text-align:left}
.metric strong,.mobile-summary strong,.result-table .cell-content,.scene-selection,.scene-summary,.card-number,.record-navigation option{unicode-bidi:plaintext}
[dir=rtl] input[inputmode=decimal]{direction:ltr;text-align:right}[dir=rtl] .header-unit select,[dir=rtl] .header-currency select{direction:ltr}
[dir=rtl] .icon-arrow{transform:scaleX(-1)}
/* Crawlable language switcher (links, not a form control). */
.language-menu{position:relative}
.language-menu>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:6px;min-height:34px;max-width:158px;padding:6px 9px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--muted);font-size:11px;line-height:1.3;white-space:nowrap}
.language-menu>summary::-webkit-details-marker{display:none}.language-menu>summary:hover,.language-menu[open]>summary{color:var(--accent);border-color:var(--accent-line);background:var(--accent-soft)}
.language-current{overflow:hidden;text-overflow:ellipsis}.language-menu svg{flex:none}
.language-list{position:absolute;inset-inline-end:0;top:calc(100% + 8px);z-index:95;margin:0;padding:6px;list-style:none;width:min(380px,calc(100vw - 24px));max-height:min(70vh,520px);overflow:auto;overscroll-behavior:contain;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 45px #10182824}
.language-list a{display:block;padding:7px 10px;border-radius:7px;color:var(--ink);text-decoration:none;font-size:12px;line-height:1.4;overflow-wrap:anywhere}
.language-list a:hover,.language-list a[aria-current]{background:var(--accent-soft);color:var(--accent)}.language-list a[aria-current]{font-weight:700}
@media(max-width:699px){.language-current{display:none}.language-menu>summary{padding:6px 8px}}
/* Root language chooser and 404. */
.landing-page{background:var(--paper)}
.language-landing{width:min(980px,calc(100% - 32px))}
.language-choices{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(190px,100%),1fr));gap:10px}
.language-choice{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink);text-decoration:none}
.language-choice strong,.language-choice h2{font-size:15px;line-height:1.3}.language-choice span,.language-choice p{font-size:12px;line-height:1.5;color:var(--muted)}.language-choice p+a{margin-top:6px}
a.language-choice:hover,.language-choice.is-suggested{border-color:var(--accent);background:var(--accent-soft)}
.language-choice .suggested{font-size:10px;font-weight:650;color:var(--accent)}
@media print{.visual-switch,.scene-dialog,.scene-mount,.result-navigation{display:none!important}}
.toast{pointer-events:none}.result-table .cell-content{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.result-table td{vertical-align:middle}
@media print{.print-only .cell-content{display:block;-webkit-line-clamp:unset;overflow:visible}}
@media print{@page{size:A4;margin:13mm}html,body{background:white!important;color:black!important;font:10pt/1.5 var(--font);height:auto!important;overflow:visible!important}.app-sidebar,.site-header,.site-footer,body>main,.mobile-menu,.toast,.storage-status,.noscript,.skip{display:none!important}.print-only{display:block!important}.print-only h1{font-size:23pt;margin-bottom:6mm}.print-only h2{font-size:15pt;margin-top:6mm}.print-only p{font-size:9pt;margin-bottom:3mm}.print-only .panel-tabs,.print-only .result-actions,.print-only .plan-switch,.print-only .result-pagination{display:none!important}.print-only .panel-title{margin:4mm 0}.print-only .result-check{display:none}.print-only .result-view,.print-only .result-views{display:block;height:auto;min-height:0}.print-only .metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3mm}.print-only .metric{padding:3mm;background:white;border:1px solid #ccc}.print-only .metric strong{font-size:14pt;color:black!important;background:none!important;-webkit-text-fill-color:black}.print-only .result-drawing{display:block;break-inside:avoid;max-width:170mm;height:auto;margin:4mm auto;background:white}.print-only .result-drawing svg{width:100%;height:auto;max-height:180mm}.print-only .result-table-wrap{overflow:visible;margin:4mm 0}.print-only .result-table{table-layout:auto;font-size:8pt}.print-only .result-table thead{display:table-header-group;position:static;width:auto;height:auto;clip:auto}.print-only .result-table tbody tr{display:table-row;border:0;padding:0}.print-only .result-table th,.print-only .result-table td{display:table-cell;font-size:8pt;padding:2mm;border:1px solid #ccc}.print-only .result-table td::before{display:none}.print-only tr{break-inside:avoid}.print-only .notes-view p{font-size:8pt;color:#333}.print-only .dimension{fill:#333}}
