/* Site-owned CAD desk layout. Sheet Set tokens and fonts come from shared/aa.css. */
:root {
 --bg:var(--sheet);--panel:var(--field);--panel2:var(--band);--panel3:var(--margin);
 --border:var(--minor);--border2:var(--navy);--text:var(--navy);--muted:var(--ink3);
 --accent:var(--navy);--accent-light:var(--navy);--accent-dim:var(--band);--gold:var(--navy);
 --steel:var(--focus);--steel-light:var(--focus);--steel-dim:var(--band);--accent2:var(--success);
 --dash:var(--navy);--sel:var(--band);--shadow:none;--good:var(--success);--accent-brass-dim:var(--band);
 --font-body:var(--f-ui);--font-condensed:var(--f-ui);--font-mono:var(--f-mono);--mono:var(--f-mono);
}
.cad-page { height:100vh; min-height:700px; overflow:hidden; font:400 var(--t15)/1.45 var(--f-ui); accent-color:var(--focus); }
.cad-page .strip { min-height:var(--row-head); background:var(--band); border-bottom:var(--rule); flex-shrink:0; padding:0; gap:0; }
.cad-page .strip .brand { font:700 var(--t19) var(--f-title); letter-spacing:.03em; padding:0 var(--s4); gap:10px; color:var(--navy); }
.cad-page .strip .crumb { padding:0 var(--s4); }
.cad-page .strip .caption { font:500 11px var(--f-mono); color:var(--ink3); letter-spacing:.08em; }
.cad-page .strip .strip-toggle { padding:0; }
.cad-page .strip-toggle button { border:0; background:transparent; font:600 var(--t15) var(--f-ui); min-height:52px; text-transform:none; }
.cad-page .strip-toggle button[aria-expanded=true] { background:var(--navy); color:var(--field); }
.cad-page .strip-link { font:600 var(--t15) var(--f-ui); }
.cad-page .desk { min-height:0; grid-template-columns:minmax(0,1fr) 280px; }
.cad-page .desk.docs-closed { grid-template-columns:minmax(0,1fr); }
.cad-page .desk-main { display:flex; flex-direction:column; overflow:hidden; min-height:0; }
.cad-page .desk-title { flex-shrink:0; padding:var(--s4) var(--s5); }
.cad-page .desk-title h1 { font:700 32px/1 var(--f-title); }
.cad-page .desk-title p { font-size:var(--t16); }
.cad-page .docs { display:flex; width:auto; min-width:0; height:auto; border-right:0; background:var(--field); overflow:auto; padding:var(--s4); font-size:var(--t14); }
.cad-page .docs-head h2 { font:700 var(--t16) var(--f-ui); }
.cad-page .docs .caption { font:500 11px var(--f-mono); letter-spacing:.08em; }
.cad-page .docs .icon-btn { width:32px; min-height:32px; padding:0; font-size:20px; }
.cad-page button { font:600 var(--t14) var(--f-ui); color:var(--navy); background:var(--field); border:var(--rule); padding:5px 10px; min-height:32px; letter-spacing:0; text-transform:none; border-radius:0; }
.cad-page button:hover { background:var(--margin); border-color:var(--navy); }
.cad-page button.primary { background:var(--navy); color:var(--field); filter:none; }
.cad-page button:disabled { opacity:1; color:var(--ink3); background:var(--margin); border-color:var(--minor); cursor:default; }
.cad-page button:focus-visible,.cad-page input:focus-visible,.cad-page select:focus-visible,.cad-page textarea:focus-visible { outline:2px solid var(--focus); outline-offset:2px; }
.cad-page input,.cad-page select,.cad-page textarea { background:var(--field); color:var(--navy); border:var(--rule-minor); border-radius:0; font:400 var(--t14) var(--f-ui); }
.cad-page input[type=number],.cad-page .num,.cad-page output { font-family:var(--f-mono); font-variant-numeric:tabular-nums; }
.cad-page input[type=range] { background:transparent; padding:0; min-height:20px; }
.cad-page label { font:600 var(--t14) var(--f-ui); color:var(--ink2); letter-spacing:0; text-transform:none; }
.cad-tabs { display:flex; gap:0; background:var(--band); border-bottom:var(--rule); flex-shrink:0; }
.cad-page .cad-tabs button,.cad-page nav#tabBar .tab { border:0; border-right:var(--rule-minor); border-bottom:3px solid transparent; background:transparent; padding:8px 16px 5px; color:var(--ink2); font:600 var(--t14) var(--f-ui); letter-spacing:0; text-transform:none; }
.cad-page .cad-tabs button.active,.cad-page nav#tabBar .tab.active { border-bottom-color:var(--redline); color:var(--navy); background:var(--field); }
.cad-page .toolbar { padding:var(--s2) var(--s3); background:var(--band); border-bottom:var(--rule-minor); flex-shrink:0; }
.cad-work { flex:1; display:flex; min-height:0; min-width:0; position:relative; }
.cad-page .footer-strip,.cad-page footer#statusBar { flex-shrink:0; padding:0; min-height:40px; background:var(--band); border-top:var(--rule); gap:0; font:400 12px var(--f-ui); color:var(--ink2); }
.cad-page .footer-strip >span { padding:6px 12px; border-right:var(--rule-minor); }
.cad-page .footer-strip .stamp { color:var(--redline); font:600 11px var(--f-mono); }
.cad-page .footer-strip .grow { flex:1; border-right:0; }
.cad-page .card { border:var(--rule); border-radius:0; padding:var(--s3); background:var(--field); }
.cad-page .card h2 { color:var(--ink2); font:500 11px var(--f-mono); letter-spacing:.08em; border-bottom:var(--rule-minor); padding-bottom:var(--s2); }
.cad-page .card h2::before { display:none; }
.cad-page .card h2 .sub { color:var(--ink3); font:400 var(--t14) var(--f-ui); }
.cad-page .hint { color:var(--ink2); font-size:var(--t14); }
.cad-page .warn,.cad-page .warning { font-size:var(--t14); }
.cad-page .lt-item.selected,.cad-page .seg-row.selected,.cad-page .family-row.selected { background:var(--band); box-shadow:inset 3px 0 var(--redline); }
.cad-page .type-badge { border:var(--rule-minor); background:var(--band); color:var(--ink2); }
.cad-page .chip-warn { border:1px solid var(--warn); background:var(--warn-bg); }
.cad-page .shx-card { border:var(--rule-minor); background:var(--field); }
.cad-page .shx-card .shx-num,.cad-page .seg-row .idx,#zoomLabel,#lwLabel,#lengthSummary { font-family:var(--f-mono); }
.cad-page #linPreview,.cad-page #segProps { background:var(--field); }
.cad-page .overlay,.cad-page dialog::backdrop { background:rgba(22,35,63,.35); }
.cad-page dialog,.cad-page #modalBox,.cad-page #editBox,.cad-page #pickBox { border:var(--rule); border-radius:0; box-shadow:none; background:var(--field); }
.verify-ok { color:var(--success); }.verify-bad { color:var(--danger); }.verify-idle { color:var(--ink3); }
.hatch-page .cad-work >aside { width:230px; min-width:200px; background:var(--sheet); }
.hatch-page .library-head { background:var(--band); }
.hatch-page .library-head label,.hatch-page .section-bar strong,.hatch-page .family-head,.hatch-page .properties h3 { font:500 11px var(--f-mono); letter-spacing:.05em; text-transform:uppercase; }
.hatch-page .pattern-card { border:0; border-bottom:var(--rule-minor); margin:0; padding:10px; }
.hatch-page .pattern-card.selected { border:0; border-bottom:var(--rule-minor); background:var(--band); box-shadow:inset 3px 0 var(--redline); }
.hatch-page .pattern-card strong { font:600 12px var(--f-mono); }
.hatch-page .pattern-card span { font:400 13px var(--f-ui); color:var(--ink2); }
.hatch-page .pattern-card canvas { border:var(--rule-minor); }
.hatch-page .identity { background:var(--field); padding:var(--s3); }
.hatch-page .identity label { font-size:var(--t14); }
.hatch-page #nameInput,.hatch-page #dashesInput { font-family:var(--f-mono); }
.hatch-page .preview-bar { background:var(--band); gap:var(--s3); padding:var(--s2) var(--s3); }
.hatch-page .preview-bar label { font-size:13px; }
.hatch-page .preview-bar input[type=number] { width:72px; }
.hatch-page #previewWrap { background:var(--field); min-height:180px; }
.hatch-page .preview-label { font-family:var(--f-mono); }
.hatch-page .definitions { height:345px; min-height:300px; border-top:var(--rule); flex-shrink:0; }
.hatch-page .family-panel { min-width:180px; width:42%; }
.hatch-page .properties { padding:var(--s3); background:var(--field); }
.hatch-page .field-grid { gap:var(--s2); }
.hatch-page .field-grid label { font-size:13px; }
.hatch-page .field-grid input { font:400 13px var(--f-mono); }
.hatch-page .hint { font-size:13px; }
.hatch-page .family-row { font:400 11px var(--f-mono); min-height:32px; border:0; border-bottom:var(--rule-minor); }
.hatch-page #patSource { background:var(--field); font:13px/1.8 var(--f-mono); border:var(--rule); }
.hatch-page dialog h2 { font:700 24px var(--f-title); text-transform:uppercase; }
.hatch-page .dialog-actions { flex-wrap:wrap; }
.hatch-page #tileCanvas { background:var(--field); }
@media(max-height:900px) and (min-width:901px) { .hatch-page .definitions { height:280px; min-height:230px; } .hatch-page .desk-title { padding:12px 16px; } }
@media(max-width:1200px) and (min-width:901px) { .cad-page .desk { grid-template-columns:minmax(0,1fr) 230px; } .hatch-page .identity { flex-wrap:wrap; } .hatch-page .identity .name { width:180px; } }
@media(max-width:900px) {
 .cad-page { height:auto; min-height:100vh; overflow:auto; }
 .cad-page .desk,.cad-page .desk.docs-closed { grid-template-columns:1fr; }
 .cad-page .desk-main { overflow:visible; }
 .cad-page .strip { flex-wrap:wrap; }.cad-page .strip .brand { font-size:var(--t16); }
 .cad-page .strip >* { min-height:44px; }.cad-page .strip >.crumb { padding:4px 10px; }
 .cad-page .desk-title { padding:var(--s4); }
 .cad-page .docs { overflow:visible; }
 .cad-page .cad-work { flex:none; min-height:550px; }
 .cad-page .footer-strip { flex-wrap:wrap; }
 .hatch-page .cad-work { flex-direction:column; }
 .hatch-page .cad-work >aside { width:100%; min-width:0; height:190px; border-right:0; border-bottom:var(--rule); }
 .hatch-page #patternList { display:flex; overflow:auto; }
 .hatch-page .pattern-card { width:180px; min-width:180px; }
 .hatch-page #workspace,.hatch-page #editorView { flex:none; }
 .hatch-page #previewWrap { height:300px; flex:none; }
 .hatch-page .identity { flex-wrap:wrap; }
 .hatch-page .identity .name { width:100%; }.hatch-page .identity .description { min-width:220px; }
 .hatch-page .definitions { height:390px; min-height:390px; }
 .hatch-page .family-panel { min-width:150px; }
 .hatch-page .family-panel .section-bar { flex-wrap:wrap; }.hatch-page .family-panel .section-bar strong { width:100%; }.hatch-page .family-panel .section-bar .grow { display:none; }
 .hatch-page .field-grid { grid-template-columns:1fr; }
 .hatch-page .toolbar .grow { display:none; }
 .linetype-page #page-lt { flex-direction:column; }
 .linetype-page #sidebar { width:100%!important; min-width:0; height:190px; border-right:0; border-bottom:var(--rule); }
 .linetype-page #ltList { display:flex; overflow:auto; }
 .linetype-page .lt-item { min-width:180px; max-width:180px; }
 .linetype-page #splitter { display:none; }
 .linetype-page #editor { overflow:visible; padding:var(--s3); }
 .linetype-page #segList,.linetype-page #segProps { min-width:0; }
 .linetype-page .edit-body { flex-direction:column; }.linetype-page .edit-side { width:100%; max-height:200px; border-left:0; border-top:var(--rule); }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; } }
