@font-face{font-family:Inter;src:url(/fonts/inter-latin-variable.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono-latin-variable.woff2)format("woff2");font-weight:100 800;font-style:normal;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#f4f7fb;--panel:#fff;--panel-alt:#fbfbfc;--panel-sunken:#f1f3f7;--panel-inset:#eef1f6;--border:#e7e9ee;--border-strong:#d6dae2;--divider:#f0f1f4;--rule:#cfd4dd;--rule-soft:#c3c9d3;--text:#101319;--text-soft:#5a6273;--text-icon:#8b93a4;--text-on-dark:#fff;--text-on-dark-soft:#ffffff9e;--border-on-dark:#ffffff38;--accent:#1663db;--accent-dark:#1250b8;--accent-tint:#eaf2ff;--accent-tint-strong:#dfeaff;--accent-border:#bcd4f5;--accent-selection:#d5e6ff;--ink:#101319;--ink-hover:#22262f;--ink-2:#22262f;--ok:#14783a;--ok-bg:#eaf3ec;--ok-tint:#f4faf6;--ok-border:#d6e6da;--ok-dash:#9ec9ac;--warn:#8a4b06;--warn-strong:#b45309;--warn-deep:#7c4a0c;--warn-bg:#fdf1e2;--warn-strip:#fffaf3;--warn-border:#e3c9a3;--warn-hover:#fdf7ef;--danger:#c0392b;--danger-bg:#fdecea;--danger-border:#f0c4bf;--status-info:var(--accent);--status-info-bg:var(--accent-tint);--status-done:var(--ok);--status-done-bg:var(--ok-bg);--status-attn:var(--warn);--status-attn-bg:var(--warn-bg);--status-error:var(--danger);--status-error-bg:var(--danger-bg);--status-idle:var(--text-soft);--status-idle-bg:var(--panel-inset);--bar-bed:#dfe2e8;--bar-trim:#d3d8e0;--hatch:repeating-linear-gradient(45deg, #eceef2, #eceef2 5px, #e0e3e9 5px, #e0e3e9 10px);--hatch-flat:#e4e7ec;--r-xs:4px;--r-sm:6px;--r-md:7px;--r-lg:8px;--r-xl:9px;--r-2xl:10px;--r-3xl:16px;--r-btn:12px;--r-pill:999px;--sh-hairline:0 1px 1px #10131908;--sh-card:0 2px 4px #1013190d;--sh-raised:0 1px 2px #10131929;--sh-float:0 8px 24px #1013191a, 0 1px 2px #1013190f;--sh-modal:0 24px 64px #10131938, 0 2px 6px #10131914;--sh-accent:0 5px 14px #1663db40;--s-1:4px;--s-2:6px;--s-3:8px;--s-4:10px;--s-5:12px;--s-6:14px;--s-7:16px;--s-8:18px;--s-9:20px;--s-10:22px;--s-12:28px;--font:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--fs-micro:10.5px;--fs-tiny:11.5px;--fs-xs:12px;--fs-sm:12.5px;--fs-base:13px;--fs-md:13.5px;--fs-lg:14px;--fs-xl:14.5px;--fs-2xl:15px;--fs-h1:24px;--fs-stat:27px;--lh-tight:1.2;--lh-normal:1.45;--lh-loose:1.55;--track-caps:.08em;--track-caps-wide:.09em;--track-tight:-.01em;--track-tighter:-.025em;--sidebar-w:248px;--topbar-h:74px;font-family:var(--font);font-size:var(--fs-lg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:before,:after{box-sizing:border-box}body{background:var(--bg);min-height:100vh;color:var(--text);margin:0}h1,h2,h3,h4{letter-spacing:var(--track-tight);margin:0;font-weight:600}input,select,button,textarea{font:inherit;color:inherit}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-dark);text-decoration:underline}::selection{background:var(--accent-selection);color:var(--text)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}.eyebrow{font-size:var(--fs-micro);letter-spacing:var(--track-caps);text-transform:uppercase;color:var(--text-soft);font-weight:600}.mono{font-family:var(--font-mono)}.num{font-family:var(--font-mono);text-align:right;font-variant-numeric:tabular-nums}.btn{justify-content:center;align-items:center;gap:var(--s-2);border:1px solid var(--border);border-radius:var(--r-btn);background:var(--panel);min-height:40px;color:var(--text);font-family:inherit;font-size:var(--fs-md);white-space:nowrap;cursor:pointer;padding:0 16px;line-height:1;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--border-strong);background:var(--panel-alt);color:var(--text)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-sm{min-height:36px;font-size:var(--fs-sm);padding:0 14px}.btn-xs{min-height:28px;font-size:var(--fs-xs);padding:0 9px}.btn-lg{border-radius:var(--r-btn);min-height:44px;padding:0 20px}.btn-strong{font-weight:600}.btn-ink{background:var(--ink);color:var(--text-on-dark);box-shadow:var(--sh-raised);border:none;font-weight:600}.btn-ink:hover:not(:disabled){background:var(--ink-hover);color:var(--text-on-dark);border:none}.btn-accent{background:var(--accent);color:var(--text-on-dark);box-shadow:var(--sh-accent);border:none;font-weight:600}.btn-accent:hover:not(:disabled){background:var(--accent-dark);color:var(--text-on-dark);border:none}.btn-ok{border-color:var(--ok-border);background:var(--ok-tint);color:var(--ok);font-weight:600}.btn-ok:hover:not(:disabled){border-color:var(--ok-border);background:var(--ok-bg);color:var(--ok)}.btn-warn{border-color:var(--warn-border);background:var(--panel);color:var(--warn-deep);font-weight:600}.btn-warn:hover:not(:disabled){border-color:var(--warn-border);background:var(--warn-hover);color:var(--warn-deep)}.btn-danger{color:var(--danger)}.btn-danger:hover:not(:disabled){border-color:var(--danger-border);background:var(--danger-bg);color:var(--danger)}.btn-ghost{color:var(--text-soft);background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){background:var(--panel-sunken);color:var(--text);border-color:#0000}.btn-square{width:30px;min-height:30px;color:var(--text-soft);padding:0}.btn-square-lg{width:34px;min-height:34px;padding:0}.kbd{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--text-soft);border:1px solid var(--border);border-radius:var(--r-xs);background:var(--panel-alt);padding:1px 4px;line-height:1.3}.btn-ink .kbd,.btn-accent .kbd{color:var(--text-on-dark-soft);border-color:var(--border-on-dark);background:0 0}.card{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:var(--r-3xl);box-shadow:var(--sh-card);overflow:hidden}.card-head{justify-content:space-between;align-items:center;gap:var(--s-5);padding:var(--s-5) var(--s-6);display:flex}.card-head-titles{align-items:baseline;gap:var(--s-3);flex-wrap:wrap;min-width:0;display:flex}.card-title{font-size:var(--fs-xl);letter-spacing:var(--track-tight);margin:0;font-weight:600}.card-meta{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-soft)}.card-actions{align-items:center;gap:var(--s-2);flex-wrap:wrap;display:flex}.dtable{border-collapse:collapse;width:100%}.dtable th{text-align:left;font-size:var(--fs-micro);letter-spacing:var(--track-caps);text-transform:uppercase;color:var(--text-soft);background:var(--panel-alt);padding:7px var(--s-4);border-top:1px solid var(--border);border-bottom:1px solid var(--border);white-space:nowrap;font-weight:600}.dtable th:first-child,.dtable td:first-child{padding-left:var(--s-6)}.dtable th:last-child,.dtable td:last-child{padding-right:var(--s-6)}.dtable td{padding:var(--s-2) var(--s-4);border-bottom:1px solid var(--divider);background:var(--panel);color:var(--text)}.dtable tbody tr:nth-child(2n) td{background:var(--panel-alt)}.dtable tbody tr:hover td{background:var(--panel-sunken)}.dtable tbody tr:last-child td{border-bottom:none}.dtable .num{font-size:var(--fs-md)}.chip{align-items:center;gap:var(--s-2);border:1px solid var(--border);border-radius:var(--r-md);background:var(--panel);color:var(--text-soft);font-size:var(--fs-sm);padding:3px 9px;display:inline-flex}.chip strong{font-family:var(--font-mono);color:var(--text);font-weight:500}.pill{align-items:center;gap:var(--s-1);padding:2px var(--s-3);border-radius:var(--r-pill);font-size:var(--fs-tiny);background:var(--panel-inset);color:var(--text-soft);font-weight:600;display:inline-flex}.pill-ok{background:var(--ok-bg);color:var(--ok)}.pill-warn{background:var(--warn-bg);color:var(--warn)}.pill-danger{background:var(--danger-bg);color:var(--danger)}.pill-mono{font-family:var(--font-mono);font-weight:500}.dot{border-radius:var(--r-pill);background:currentColor;flex:none;width:5px;height:5px}.dot-lg{width:6px;height:6px}.field{justify-content:space-between;align-items:center;gap:var(--s-3);min-width:0;padding:7px var(--s-4);border:1px solid var(--border);border-radius:var(--r-lg);background:var(--panel);color:var(--text);cursor:text;display:flex}.field:focus-within{border-color:var(--accent)}.field-label{font-size:var(--fs-sm);color:var(--text-soft);white-space:nowrap}.field-value{align-items:baseline;gap:3px;display:inline-flex}.field-input{min-width:0;color:var(--text);text-align:right;font-family:var(--font-mono);font-size:var(--fs-base);appearance:textfield;background:0 0;border:none;outline:none;font-weight:500}.field-input::-webkit-outer-spin-button{appearance:none;margin:0}.field-input::-webkit-inner-spin-button{appearance:none;margin:0}.field-unit{font-size:var(--fs-tiny);color:var(--text-soft)}.w-2ch{width:24px}.w-3ch{width:30px}.w-4ch{width:38px}.inp{width:100%;min-width:0;padding:5px var(--s-3);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--panel);color:var(--text);font-size:var(--fs-md)}.inp:hover{border-color:var(--border-strong)}.inp:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint);outline:none}.inp:disabled{background:var(--panel-alt);color:var(--text-soft)}.inp-num{font-family:var(--font-mono);text-align:right;font-variant-numeric:tabular-nums}.toggle{align-items:center;gap:var(--s-4);padding:9px var(--s-4);border:1px solid var(--border);border-radius:var(--r-lg);background:var(--panel);color:var(--text);cursor:pointer;display:inline-flex}.toggle:hover{border-color:var(--border-strong)}.toggle input{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.toggle-track{border-radius:var(--r-pill);background:var(--border-strong);flex:none;width:30px;height:18px;transition:background .12s;position:relative}.toggle-knob{border-radius:var(--r-pill);background:var(--panel);width:14px;height:14px;box-shadow:var(--sh-raised);transition:left .12s;position:absolute;top:2px;left:2px}.toggle input:checked~.toggle-track{background:var(--accent)}.toggle input:checked~.toggle-track .toggle-knob{box-shadow:none;left:14px}.toggle input:focus-visible~.toggle-track{outline:2px solid var(--accent);outline-offset:2px}.toggle-label{font-size:var(--fs-base);white-space:nowrap;font-weight:500}.segmented{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--panel);padding:2px;display:inline-flex}.segmented button{color:var(--text-soft);border-radius:var(--r-sm);font-family:var(--font-mono);font-size:var(--fs-xs);cursor:pointer;background:0 0;border:none;padding:4px 11px;line-height:1.4}.segmented button:hover{color:var(--text)}.segmented button.on{background:var(--ink);color:var(--text-on-dark);font-weight:600}.meter{border-radius:var(--r-pill);background:var(--panel-inset);height:4px;display:block;overflow:hidden}.meter-fill{border-radius:var(--r-pill);background:var(--accent);height:100%;display:block}.meter-fill-warn{background:var(--warn-strong)}.strip{padding:11px var(--s-6);font-size:12.8px;line-height:var(--lh-normal);align-items:center;gap:11px;display:flex}.strip-text{flex:1;min-width:0}.strip-text strong{font-family:var(--font-mono);font-weight:600}.strip-warn{background:var(--warn-strip);color:var(--warn-deep);border-top:1px solid var(--border)}.strip-danger{background:var(--danger-bg);color:var(--danger);border-top:1px solid var(--danger-border)}.strip-ok{background:var(--ok-tint);color:var(--ok);border-top:1px solid var(--ok-border)}.hidden{display:none}.vis-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.stack{flex-direction:column;display:flex}.row{align-items:center;display:flex}.spacer{flex:1}.vsep{background:var(--border);flex:none;width:1px;height:20px}.app{background:var(--bg);height:100vh;color:var(--text);display:flex;overflow:hidden}.app-loading{min-height:100vh;color:var(--text-soft);font-size:var(--fs-2xl);justify-content:center;align-items:center;display:flex}.sb{width:var(--sidebar-w);background:var(--panel);color:var(--text);border-right:1px solid var(--border);flex-direction:column;flex:none;padding:16px 12px;display:flex;overflow-y:auto}.sb-atelier{padding:var(--s-3);margin-bottom:var(--s-6);border-radius:var(--r-lg);color:var(--text);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;align-items:center;gap:9px;font-family:inherit;display:flex}.sb-atelier:hover{background:var(--panel-sunken);color:var(--text)}.sb-atelier-text{flex-direction:column;flex:1;min-width:0;display:flex}.sb-atelier-name{font-size:var(--fs-md);letter-spacing:var(--track-tight);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.sb-atelier-plan{font-size:var(--fs-tiny);color:var(--text-soft)}.sb-atelier-caret{color:var(--text-soft);font-size:var(--fs-xs);opacity:0}.sb-atelier:hover .sb-atelier-caret,.sb-atelier:focus-visible .sb-atelier-caret{opacity:1}.sb-group{flex-direction:column;gap:1px;display:flex}.sb-group+.sb-group{margin-top:var(--s-7)}.sb-item+.sb-group{margin-top:var(--s-5)}.sb-group-title{padding:var(--s-2) var(--s-3)}.sb-group-title-row{justify-content:space-between;align-items:center;display:flex}.sb-add{color:var(--text-soft);font-size:var(--fs-lg);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;line-height:1}.sb-add:hover{color:var(--text)}.sb-item{align-items:center;gap:var(--s-5);min-height:40px;padding:0 var(--s-4);border-radius:var(--r-2xl);color:var(--text-soft);font-size:var(--fs-md);cursor:pointer;text-align:left;background:0 0;border:none;width:100%;font-family:inherit;display:flex}.sb-item:hover{background:var(--panel-sunken);color:var(--text)}.sb-item-on,.sb-item-on:hover{background:var(--accent-tint);color:var(--accent);font-weight:600}.sb-item-icon{color:var(--text-icon);flex:none;display:inline-flex}.sb-item-icon-on{color:var(--accent)}.sb-item-locked,.sb-item-locked:hover{color:var(--text-soft);opacity:.55;cursor:not-allowed;background:0 0}.sb-item-lock{opacity:.9;margin-left:auto;font-size:.8em}.sb-group-projects{min-height:0}.sb-projects{flex-direction:column;gap:1px;display:flex;overflow-y:auto}.sb-bullet{border-radius:var(--r-pill);background:var(--rule);flex:none;width:6px;height:6px}.sb-bullet-on{background:var(--accent)}.sb-project-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.sb-project-count{color:var(--text-soft);flex:none;font-size:11px}.sb-foot{padding-top:var(--s-3);gap:var(--s-3);flex-direction:column;margin-top:auto;display:flex}.sb-credits{border:1px solid var(--border);border-radius:var(--r-3xl);background:var(--panel);color:var(--text);padding:var(--s-6) var(--s-6);gap:var(--s-3);flex-direction:column;display:flex}.sb-credits-blocked{border-color:var(--danger-border);background:var(--danger-bg);color:var(--danger)}.sb-credits-head{justify-content:space-between;align-items:center;gap:var(--s-2);font-size:var(--fs-xs);color:var(--text-soft);display:flex}.sb-credits-blocked .sb-credits-head{color:var(--danger)}.sb-credits-head strong{color:inherit;font-weight:600}.sb-credits-cap{color:var(--text-soft);font-weight:400}.sb-credits-note{font-size:var(--fs-tiny);color:var(--text-soft);line-height:1.35}.sb-credits-blocked .sb-credits-note{color:var(--danger)}.sb-account{padding:7px var(--s-3);border-radius:var(--r-lg);color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:9px;width:100%;font-family:inherit;display:flex}.sb-account:hover{background:var(--panel-sunken);color:var(--text)}.sb-avatar{border-radius:var(--r-pill);background:var(--accent-tint);width:32px;height:32px;color:var(--accent);font-size:var(--fs-xs);flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.sb-account-email{min-width:0;font-size:var(--fs-sm);text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:500;overflow:hidden}.sb-account-more{color:var(--text-soft);font-size:var(--fs-xs);flex:none}.sb-signin{width:100%}.account-widget-sidebar{display:block}.tb{height:var(--topbar-h);justify-content:space-between;align-items:center;gap:var(--s-7);padding:0 var(--s-9);border-bottom:1px solid var(--border);background:var(--panel);color:var(--text);flex:none;display:flex}.tb-head{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.tb-title-row{align-items:center;gap:var(--s-3);min-width:0;display:flex}.tb-title{letter-spacing:var(--track-tight);color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:20px;font-weight:700;overflow:hidden}.tb-picker{min-width:0;position:relative}.tb-picker-btn{align-items:center;gap:var(--s-2);padding:4px var(--s-3);border-radius:var(--r-xl);color:var(--text);font:inherit;letter-spacing:var(--track-tight);cursor:pointer;background:0 0;border:1px solid #0000;min-width:0;max-width:100%;font-size:20px;font-weight:700;display:inline-flex}.tb-picker-btn:hover,.tb-picker-btn[aria-expanded=true]{background:var(--panel-sunken);border-color:var(--border)}.tb-picker-icon{border-radius:var(--r-lg);background:var(--accent-tint);width:24px;height:24px;color:var(--accent);flex:none;justify-content:center;align-items:center;display:inline-flex}.tb-picker-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.tb-picker-caret{color:var(--text-soft);margin-left:var(--s-1);flex:none;font-size:12px}.tb-picker-menu{min-width:280px;max-width:360px;padding:var(--s-2);left:0;right:auto}.tb-picker-head{padding:var(--s-2) var(--s-3);font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:var(--track-caps);color:var(--text-soft);font-weight:600}.tb-picker-list{flex-direction:column;gap:1px;max-height:320px;display:flex;overflow-y:auto}.tb-picker-item{align-items:center;gap:var(--s-3);padding:var(--s-2) var(--s-3);color:var(--text);font:inherit;font-size:var(--fs-sm);border-radius:var(--r-lg);cursor:pointer;text-align:left;background:0 0;border:0;width:100%;font-weight:500;display:flex}.tb-picker-item:hover{background:var(--panel-sunken)}.tb-picker-item-on{background:var(--accent-tint);color:var(--text)}.tb-picker-item-on:hover{background:var(--accent-tint)}.tb-picker-dot{border-radius:var(--r-pill);background:var(--border-strong);flex:none;width:8px;height:8px}.tb-picker-dot-on{background:var(--accent)}.tb-picker-item-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.tb-picker-item-count{color:var(--text-soft);font-size:var(--fs-tiny);flex:none}.tb-picker-new{color:var(--accent);font-weight:600}.tb-crumbs{align-items:center;gap:var(--s-3);min-width:0;font-size:var(--fs-base);color:var(--text-soft);display:flex}.tb-crumb{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tb-crumb-current{color:var(--text);font-weight:500}.tb-crumb-sep{color:var(--text-soft);flex:none}.tb-crumb-link{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;flex:none;padding:0;font-weight:500}.tb-crumb-link:hover{color:var(--accent-dark);text-decoration:underline}.tb-crumbs .pill{margin-left:var(--s-2);flex:none}.tb-actions{align-items:center;gap:var(--s-3);flex:none;display:flex}.menu-wrap{position:relative}.menu{z-index:30;min-width:232px;padding:var(--s-1);border:1px solid var(--border);border-radius:var(--r-2xl);background:var(--panel);color:var(--text);box-shadow:var(--sh-float);flex-direction:column;gap:1px;display:flex;position:absolute;top:calc(100% + 6px);right:0}.menu-item{align-items:center;gap:var(--s-3);width:100%;min-height:32px;padding:0 var(--s-4);border-radius:var(--r-md);color:var(--text);font-family:inherit;font-size:var(--fs-base);text-align:left;cursor:pointer;background:0 0;border:none;display:flex}.menu-item:hover{background:var(--panel-sunken);color:var(--text)}.menu-item-danger{color:var(--danger)}.menu-item-danger:hover{background:var(--danger-bg);color:var(--danger)}.menu-sep{height:1px;margin:var(--s-1) var(--s-2);background:var(--border)}.main{flex-direction:column;flex:1;min-width:0;display:flex}.main-scroll{flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.page{padding:var(--s-10) var(--s-9) var(--s-12);gap:var(--s-8);flex-direction:column;flex:1;min-width:0;display:flex}.page-bar{padding-bottom:96px}.sticky-wrap{padding:0 var(--s-9) var(--s-8);pointer-events:none;z-index:20;justify-content:center;margin-top:-76px;display:flex;position:sticky;bottom:0}.sticky-bar{pointer-events:auto;align-items:center;gap:var(--s-6);padding:9px 9px 9px var(--s-7);border:1px solid var(--border);border-radius:var(--r-3xl);color:var(--text);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:var(--sh-float);background:#ffffffeb;flex-wrap:wrap;justify-content:center;display:flex}.sticky-status{align-items:center;gap:var(--s-3);font-size:var(--fs-base);color:var(--text-soft);display:inline-flex}.sticky-dot-ok{background:var(--ok);width:7px;height:7px}.sticky-dot-warn{background:var(--warn-strong);width:7px;height:7px}.sticky-total{font-size:var(--fs-base);color:var(--text)}.sticky-chips{align-items:center;gap:var(--s-2);flex-wrap:wrap;display:inline-flex}.page-head{justify-content:space-between;align-items:flex-start;gap:var(--s-12);flex-wrap:wrap;display:flex}.page-head-main{flex-direction:column;gap:7px;min-width:0;display:flex}.page-title{font-size:var(--fs-h1);letter-spacing:var(--track-tighter);margin:0;font-weight:600}.page-chips{align-items:center;gap:var(--s-2);flex-wrap:wrap;display:flex}.page-head-actions{align-items:center;gap:var(--s-3);flex:none;display:flex}.chip-input{gap:var(--s-1)}.chip-num{width:34px;min-width:0;color:var(--text);font-size:var(--fs-sm);text-align:right;appearance:textfield;background:0 0;border:none;outline:none;font-weight:500}.chip-num::-webkit-outer-spin-button{appearance:none;margin:0}.chip-num::-webkit-inner-spin-button{appearance:none;margin:0}.chip-select{color:var(--text-soft);font-size:var(--fs-sm);cursor:pointer;background:0 0;border:none;outline:none;max-width:190px}.chip-x{color:var(--text-soft);cursor:pointer;background:0 0;border:none;padding:2px;font-family:inherit;font-size:11px;line-height:1}.chip-x:hover{color:var(--danger)}.chip-dot{background:var(--accent)}.chip-locked{color:var(--warn);background:var(--warn-bg);border-color:var(--warn-border)}.error,.notice{padding:var(--s-4) var(--s-5);border-radius:var(--r-2xl);font-size:var(--fs-base);line-height:var(--lh-normal);align-items:center;gap:var(--s-4);margin:0;display:flex}.error{border:1px solid var(--danger-border);background:var(--danger-bg);color:var(--danger)}.notice{border:1px solid var(--ok-border);background:var(--ok-tint);color:var(--ok)}.row-added td{background:var(--ok-tint);box-shadow:inset 2px 0 0 var(--ok)}.notice-x{color:inherit;cursor:pointer;font-size:var(--fs-xs);background:0 0;border:none;margin-left:auto;padding:2px 4px;font-family:inherit}.warning{border:1px solid var(--warn-border);background:var(--warn-strip);color:var(--warn-deep);border-radius:var(--r-2xl);padding:var(--s-4) var(--s-5);font-size:var(--fs-base);line-height:var(--lh-normal)}.input-grid{gap:var(--s-7);grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);align-items:start;display:grid}.card-empty{padding:var(--s-6) var(--s-6) var(--s-8);font-size:var(--fs-base);color:var(--text-soft);line-height:var(--lh-normal);border-top:1px solid var(--border);background:var(--panel-alt);margin:0}.card-foot-note{padding:var(--s-4) var(--s-6);border-top:1px solid var(--border);background:var(--panel-alt);color:var(--text-soft);font-size:var(--fs-sm);margin:0}.th-num,.td-num,.td-num .inp-num,.td-num .inp-qty{text-align:center}.td-actions{text-align:right;white-space:nowrap;width:1%}.pieces-table td{height:44px;padding-top:0;padding-bottom:0}.inp-flush{padding:4px var(--s-2);background:0 0;border-color:#0000}.inp-flush:hover{border-color:var(--border);background:var(--panel)}.inp-flush:focus{border-color:var(--accent);background:var(--panel)}.rep-cell{align-items:center;gap:var(--s-4);display:flex}.rep-swatch{border-radius:var(--r-pill);flex:none;width:3px;height:20px}.rep-input{width:92px;font-size:var(--fs-lg);font-weight:600}.profile-cell{align-items:center;gap:7px;min-width:0;display:inline-flex}.input-profile{width:108px;font-family:var(--font-mono);font-size:var(--fs-sm)}.profile-picker-btn{min-width:18px;color:var(--muted);padding:0 4px;line-height:1}.profile-picker-btn:hover{color:var(--text)}.profile-picker-panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-md);width:380px;max-height:60vh;font-size:var(--fs-sm);padding:8px;overflow:auto;box-shadow:0 8px 24px #0000002e}.profile-picker-panel .ppp-head{margin-bottom:6px}.profile-picker-panel .ppp-family{color:var(--muted);font-size:var(--fs-xs);flex-direction:column;gap:4px;display:flex}.profile-picker-panel .ppp-family select{font-size:var(--fs-sm);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--panel-sunken);color:var(--text);padding:4px 6px}.profile-picker-panel .ppp-sizes{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;display:grid}.profile-picker-panel .ppp-sizes-hollow{flex-direction:column;gap:4px;display:flex}.profile-picker-panel .ppp-size-row{border-radius:var(--r-sm);border:1px solid #0000;flex-direction:column;align-items:stretch;gap:3px;padding:4px 6px;display:flex}.profile-picker-panel .ppp-size-row:hover{background:color-mix(in srgb, var(--panel-sunken) 60%, transparent)}.profile-picker-panel .ppp-size{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--panel);color:var(--text);text-align:left;cursor:pointer;font-family:var(--font-mono);font-size:var(--fs-xs);align-items:center;gap:6px;padding:4px 6px;display:flex}.profile-picker-panel .ppp-size:hover{background:var(--panel-sunken)}.profile-picker-panel .ppp-size-active{border-color:var(--accent);background:var(--panel-sunken)}.profile-picker-panel .ppp-size-bare{justify-content:flex-start;width:100%}.profile-picker-panel .ppp-thicks{flex-wrap:wrap;gap:4px;padding-left:26px;display:flex}.profile-picker-panel .ppp-thick{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--panel);color:var(--muted);cursor:pointer;font-family:var(--font-mono);font-size:var(--fs-xs);padding:3px 6px;line-height:1}.profile-picker-panel .ppp-thick:hover{background:var(--panel-sunken);color:var(--text)}.profile-picker-panel .ppp-thick-active{border-color:var(--accent);color:var(--text);background:var(--panel-sunken)}.profile-picker-panel .ppp-free{flex-direction:column;gap:8px;display:flex}.profile-picker-panel .ppp-free label{color:var(--muted);font-size:var(--fs-xs);flex-direction:column;gap:4px;display:flex}.profile-picker-panel .ppp-free input{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--panel-sunken);color:var(--text);font-size:var(--fs-sm);padding:4px 6px}.inp-qty{width:62px}.td-num .inp-num{width:84px}.cuts-cell{flex-wrap:wrap;align-items:center;gap:7px;display:inline-flex}.cuts-angles{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--panel);color:var(--text);font-family:var(--font-mono);font-size:var(--fs-sm);white-space:nowrap;align-items:center;gap:0;padding:2px 6px;display:inline-flex}.cuts-angles:hover{border-color:var(--border-strong)}.cuts-angles:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint)}.cuts-angles-mitre{background:var(--warn-bg);border-color:var(--warn-border);color:var(--warn);font-weight:600}.cuts-angle{width:30px;font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:inherit;text-align:right;color:inherit;background:0 0;border:none;padding:0}.cuts-angle:hover,.cuts-angle:focus{box-shadow:none;background:0 0;border:none}.cuts-deg{color:inherit}.cuts-sep{color:inherit;opacity:.55;padding:0 4px}.cuts-bevels{border:1px dashed var(--border);border-radius:var(--r-sm);background:var(--panel);color:var(--text-dim,var(--text));font-family:var(--font-mono);font-size:var(--fs-sm);white-space:nowrap;opacity:.75;align-items:center;gap:0;padding:2px 6px;display:inline-flex}.cuts-bevels:hover,.cuts-bevels:focus-within{opacity:1;border-color:var(--border-strong)}.cuts-bevels:focus-within{border-style:solid;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint)}.cuts-bevels-on{opacity:1;background:var(--warn-bg);border-color:var(--warn-border);color:var(--warn);border-style:solid;font-weight:600}.cuts-bevel-tag{opacity:.8;padding-right:4px}.cuts-dir{width:auto;font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:inherit;color:inherit;cursor:pointer;background:0 0;border:none;margin:0 1px;padding:0 1px}.cutp{flex:none;overflow:visible}.cutp-face{stroke:var(--border-strong,var(--border));stroke-width:.75px;stroke-linejoin:round}.cutp-front{fill:var(--accent-tint,color-mix(in srgb, var(--accent) 18%, transparent))}.cutp-top{fill:color-mix(in srgb, var(--accent,#6b7cff) 30%, var(--panel))}.cutp-end{fill:color-mix(in srgb, var(--accent,#6b7cff) 46%, var(--panel))}.cutp-side{fill:color-mix(in srgb, var(--accent,#6b7cff) 12%, var(--panel))}.cutp-void{fill:var(--panel,#fff)}.cutp-dir{fill:var(--warn-strong,var(--warn));font-size:9px;font-weight:700}.cutp-dim-line{stroke:var(--border,#cfd3da);stroke-width:.5px}.cutp-dim-text{fill:var(--text-2,var(--text));font-size:7px;font-weight:500}.cutp-btn{color:inherit;border-radius:var(--r-sm);cursor:pointer;background:0 0;border:1px solid #0000;padding:1px;display:inline-flex}.cutp-btn:hover{background:var(--panel-sunken);border-color:var(--border-strong)}.cutp-btn.is-open{background:var(--accent-tint);border-color:var(--accent-border)}.cutp-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.cutov-row>td{padding:0 var(--s-6) var(--s-5);background:var(--panel)}.cutov-panel{gap:var(--s-2);max-width:620px;padding:var(--s-4) var(--s-5) var(--s-3);color:var(--text);background:var(--accent-tint);border:1px solid var(--accent-border);border-radius:var(--r-lg);flex-direction:column;margin:0;display:flex}.cutov{width:100%;height:auto;display:block}.cutov-body>polygon{fill:color-mix(in srgb, #fff 76%, var(--accent-tint));stroke:none}.cutov-void{fill:var(--accent-tint);stroke:none}.cutov-rail{fill:none;stroke:var(--text);stroke-width:.9px;stroke-linecap:round}.cutov-cut{fill:none;stroke:#e0489f;stroke-width:1px;stroke-linecap:round}.cutov-hidden{stroke-width:.6px;stroke-dasharray:3 2.2;opacity:.75}.cutov-break-gap{fill:var(--accent-tint);stroke:none}.cutov-break-edge{fill:none;stroke:var(--text-soft);stroke-width:.7px;stroke-linejoin:round}.cutov-label>text{fill:var(--text-soft);font-size:9.5px;font-weight:500}.cutov-dim{fill:var(--text);font-family:var(--font-mono);font-size:9px;font-weight:600}.cutov-dim-far{fill:var(--text-icon);font-weight:500}.cutov-panel-plan{margin:var(--s-3) 0 var(--s-4)}.legend-item-btn{gap:var(--s-1);padding:1px var(--s-2) 1px var(--s-1);font:inherit;color:inherit;border-radius:var(--r-pill);cursor:pointer;background:0 0;border:1px solid #0000}.legend-item-btn:hover{background:var(--panel-sunken);border-color:var(--border-strong)}.legend-item-btn.is-open{color:var(--accent);background:var(--accent-tint);border-color:var(--accent-border)}.legend-item-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.legend-item-caret{opacity:.6;font-size:9px}.legend-item-btn.is-open .legend-item-caret{transform:rotate(180deg)}.cutov-caption{gap:var(--s-1) var(--s-4);font-size:var(--fs-xs);color:var(--text-soft);flex-wrap:wrap;align-items:baseline;display:flex}.cutov-legend{align-items:baseline;gap:3px;display:inline-flex}.cutov-legend em{font-style:normal;font-weight:600}.cutov-legend-near{color:var(--text)}.cutov-legend-far{color:var(--text-icon)}.cutov-legend-warn{color:var(--warn-strong)}.cuts-hint{align-items:center;gap:var(--s-1);font-size:var(--fs-xs);white-space:nowrap;display:inline-flex}.cuts-hint-ok{color:var(--ok)}.cuts-hint-warn{color:var(--warn-strong)}.stock-list{flex-direction:column;display:flex}.stock-row{padding:var(--s-4) var(--s-6);border-top:1px solid var(--divider);align-items:flex-start;gap:11px;display:flex}.stock-row:hover{background:var(--panel-alt)}.stock-fields{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.stock-line{align-items:center;gap:var(--s-2);min-width:0;display:flex}.stock-name{min-width:0;font-size:var(--fs-md);flex:1;font-weight:500}.stock-qty{align-items:center;gap:var(--s-1);flex:none;display:inline-flex}.stock-qty-input{width:52px}.stock-inf{font-size:var(--fs-xs);color:var(--text-soft);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:3px;display:inline-flex}.stock-line-sub{gap:var(--s-1)}.stock-profile{width:104px;font-size:var(--fs-xs)}.stock-measure{font-family:var(--font-mono);color:var(--text-soft);align-items:baseline;gap:2px;display:inline-flex}.stock-len{width:62px;font-size:var(--fs-xs)}.stock-next-length{text-align:right;width:82px}.stock-price{width:62px;font-size:var(--fs-xs)}.stock-kerf{width:44px;font-size:var(--fs-xs)}.chutes-block{padding:11px var(--s-6) var(--s-5);border-top:1px solid var(--border);background:var(--panel-alt);gap:var(--s-3);flex-direction:column;display:flex}.chutes-head{justify-content:space-between;align-items:center;gap:var(--s-3);display:flex}.chutes-total{letter-spacing:0;text-transform:none;color:var(--ok)}.chutes-empty{font-size:var(--fs-sm);color:var(--text-soft);line-height:var(--lh-normal);margin:0}.chute-row{padding:var(--s-3) var(--s-4);border:1px solid var(--ok-border);border-radius:var(--r-xl);background:var(--panel);color:var(--text);align-items:center;gap:9px;display:flex}.chute-icon{color:var(--ok);font-size:var(--fs-base);flex:none}.chute-text{min-width:0;font-size:var(--fs-sm);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.chute-mult{color:var(--text-soft)}.settings-bar{align-items:center;gap:var(--s-6);padding:var(--s-5) var(--s-7);flex-wrap:wrap;display:flex}.settings-label{flex:none}.settings-fields{gap:var(--s-3);flex-wrap:wrap;display:flex}.plan-empty{padding:var(--s-9) var(--s-7);text-align:center}.plan-empty p{color:var(--text-soft);font-size:var(--fs-md);line-height:var(--lh-normal);margin:0}.plan-head{border-bottom:1px solid var(--border);padding:var(--s-6) var(--s-7)}.plan-when{font-size:var(--fs-sm);color:var(--text-soft)}.plan-stats{grid-template-columns:repeat(auto-fit,minmax(168px,1fr));display:grid}.plan-stat{padding:15px var(--s-7);border-right:1px solid var(--divider);flex-direction:column;gap:3px;min-width:0;display:flex}.plan-stat:last-child{border-right:none}.plan-stat-value{font-size:var(--fs-stat);letter-spacing:-.02em;white-space:nowrap;color:var(--text);font-weight:500}.plan-stat-value-ok{color:var(--ok)}.plan-stat-unit{font-size:var(--fs-lg);color:var(--text-soft)}.plan-stat-note{font-size:var(--fs-tiny);color:var(--text-soft);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.plan-stat-note-ok{color:var(--ok)}.plan-body{padding:var(--s-7);border-top:1px solid var(--border);background:var(--panel-alt);color:var(--text);gap:var(--s-9);flex-direction:column;display:flex}.plan-group{gap:var(--s-4);flex-direction:column;display:flex}.plan-group-head{align-items:center;gap:var(--s-4);flex-wrap:wrap;display:flex}.plan-group-title{font-size:var(--fs-md);margin:0;font-weight:600}.plan-group-meta{font-size:var(--fs-xs);color:var(--text-soft)}.plan-group-badges{align-items:center;gap:var(--s-3);flex-wrap:wrap;margin-left:auto;display:inline-flex}.legend-item{font-size:var(--fs-tiny);color:var(--text-soft);align-items:center;gap:5px;display:inline-flex}.legend-swatch{border-radius:3px;flex:none;width:9px;height:9px}.plan-ruler{align-items:flex-end;gap:var(--s-5);display:flex}.plan-ruler-track{border-bottom:1px solid var(--rule);flex:1;height:22px;position:relative}.plan-tick{background:var(--rule);width:1px;height:6px;position:absolute;bottom:0}.plan-tick-label{bottom:var(--s-3);color:var(--text-soft);white-space:nowrap;font-size:9.5px;position:absolute;left:0}.plan-tick-end{left:auto;right:0}.bars{flex-direction:column;gap:7px;display:flex}.bar-row-block{display:block}.bar-row{align-items:center;gap:var(--s-5);display:flex}.bar-num{width:54px;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-soft);text-align:center;flex-direction:column;flex:none;align-items:center;gap:2px;display:flex}.bar-num strong{color:var(--text);font-size:12px}.bar-visual{border-radius:var(--r-md);background:var(--bar-bed);border:1px solid var(--border-strong);flex:1;gap:1px;min-width:0;height:46px;display:flex;overflow:hidden}.bar-visual-3d{background:0 0;border:none;border-radius:0;align-items:center;height:84px;overflow:visible}.barp{display:block;overflow:visible}.barp-label{fill:var(--bar-ink,#1a1a1a);font-size:9px;font-weight:600;font-family:var(--font-mono);pointer-events:none}.barp-cut{fill:var(--bar-ink,#1a1a1a);font-size:7.5px;font-weight:500;font-family:var(--font-mono);pointer-events:none;opacity:.85}.barp-waste-top{fill:color-mix(in srgb, var(--bar-bed,#e9e9ee) 70%, transparent);stroke:var(--border-strong);stroke-width:.5px;stroke-dasharray:3 2}.barp-waste-front{fill:color-mix(in srgb, var(--bar-bed,#e9e9ee) 55%, transparent);stroke:var(--border-strong);stroke-width:.5px;stroke-dasharray:3 2}.barp-void{fill:var(--bar-bed,#e9e9ee);stroke:var(--border-strong);stroke-width:.5px;stroke-linejoin:round}.barp-saw{fill:none;stroke:#e0489f;stroke-width:1.1px;stroke-linecap:round}.bar-visual-ortho{background:0 0;border:none;border-radius:0;align-items:center;height:106px;overflow:visible}.bar-visual-face,.bar-visual-dessus{border:1px solid color-mix(in srgb, var(--border-strong) 72%, transparent);border-radius:var(--r-sm)}.bar-visual-face{background:color-mix(in srgb, var(--bar-bed,#e9e9ee) 65%, #f8fafc)}.bar-visual-dessus{background:color-mix(in srgb, var(--accent,#0ea5e9) 6%, #f8fbff)}.barortho{display:block;overflow:visible}.ortho-label{fill:var(--bar-ink,#1a1a1a);font-size:8.5px;font-weight:600;font-family:var(--font-mono);paint-order:stroke;stroke:#ffffffd9;stroke-width:1.6px;stroke-linejoin:round;stroke-linecap:round;pointer-events:none}.ortho-angle{fill:var(--text-secondary,#555);font-size:7.5px;font-weight:600;font-family:var(--font-mono);paint-order:stroke;stroke:#ffffffe6;stroke-width:2px;stroke-linejoin:round;stroke-linecap:round;pointer-events:none}.ortho-dim-tick,.ortho-dim-line{stroke:var(--border-strong);stroke-width:.5px}.ortho-dim-text{fill:var(--text-secondary,#555);font-size:7.5px;font-family:var(--font-mono);pointer-events:none;paint-order:stroke;stroke:var(--panel,#fff);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round;paint-order:stroke;stroke-width:2.4px;stroke-linejoin:round}.ortho-dim-waste{opacity:.8;font-style:italic}.ortho-dim-total{fill:var(--text-soft,#777)}.ortho-legend{color:var(--text-soft,#666);margin:4px 0 0;font-size:11px;line-height:1.35}.ortho-legend strong{color:var(--text,#222);font-weight:600}.ortho-waste-rect{fill:color-mix(in srgb, var(--bar-bed,#e9e9ee) 60%, transparent);stroke:var(--border-strong);stroke-width:.5px;stroke-dasharray:3 2}.ortho-trim-rect{fill:color-mix(in srgb, var(--border,#cfcfd6) 25%, transparent);stroke:var(--border);stroke-width:.4px;stroke-dasharray:2 2}.ortho-kerf-rect{fill:color-mix(in srgb, var(--fg,#0f172a) 60%, transparent);stroke:none}.ortho-views{flex-direction:column;gap:2px;margin-top:2px;display:flex}.bar-row-ortho{opacity:.92}.ortho-view-tag{text-transform:uppercase;letter-spacing:.02em;font-size:8px;font-weight:700}.bar-view-tag-primary{color:var(--accent,#0284c7);font-size:6.5px;line-height:1}.plan-card-atelier .bar-aside,.plan-card-atelier .ortho-legend{display:none}.plan-card-atelier .bar-visual-3d{height:98px}.plan-card-atelier .bar-visual-ortho{height:122px}.plan-card-atelier .barp-label,.plan-card-atelier .ortho-label{font-size:10px;font-weight:700}.plan-card-atelier .barp-cut,.plan-card-atelier .ortho-angle,.plan-card-atelier .ortho-dim-text{font-size:8.5px;font-weight:700}.plan-card-atelier .ortho-dim-tick,.plan-card-atelier .ortho-dim-line{stroke-width:.75px}.btn-active{background:var(--accent-tint,color-mix(in srgb, var(--accent) 16%, transparent));border-color:var(--accent);color:var(--accent)}.seg{min-width:0;color:var(--text-on-dark);flex-direction:column;flex-basis:0;justify-content:center;align-items:center;gap:1px;display:flex;position:relative;overflow:hidden}.seg-ink-light{color:var(--text-on-dark)}.seg-ink-light>span{text-shadow:0 1px 2px #00000073}.seg-ink-dark{color:var(--text)}.seg-ink-dark>span{text-shadow:0 1px 2px #fff9}.seg:not(.seg-waste):not(.seg-trim):not(.seg-kerf):after{content:"";pointer-events:none;background:linear-gradient(#ffffff24,#0000000f);position:absolute;inset:0}.seg>span{z-index:1;position:relative}.seg-label{font-size:var(--fs-sm);font-weight:600;line-height:1}.seg-len{font-family:var(--font-mono);font-size:11px;line-height:1}.seg-angle{font-family:var(--font-mono);opacity:.85;font-size:9.5px;line-height:1}.seg-waste{background:var(--hatch);color:var(--text-soft);justify-content:center}.seg-waste-reusable{background:var(--ok-bg);color:var(--ok);border-left:1px dashed var(--ok-dash)}.seg-waste-len{color:var(--ok);font-size:11px;font-weight:500}.seg-trim{background:var(--bar-trim);color:var(--text-soft)}.seg-kerf{background:color-mix(in srgb, var(--fg,#0f172a) 55%, transparent);min-width:1px}.bar-aside{flex-direction:column;flex:none;align-items:flex-end;gap:1px;width:132px;display:flex}.bar-aside-count{font-size:var(--fs-sm);color:var(--text);font-weight:500}.bar-aside-note{color:var(--text-soft);font-size:11px}.bar-aside-note-ok{color:var(--ok)}.bar-aside-yield{color:var(--text-faint,var(--text-soft));letter-spacing:.02em;font-size:10px}.angle-group{flex-direction:column;gap:7px;display:flex}.angle-group-head{font-size:var(--fs-xs);color:var(--warn);background:var(--warn-bg);border-radius:var(--r-sm);padding:3px var(--s-3);align-self:flex-start;margin-left:42px;font-weight:600}.plan-note,.offcuts{font-size:var(--fs-sm);text-wrap:pretty;max-width:720px;margin:0 0 0 42px;line-height:1.5}.plan-note{color:var(--text-soft)}.offcuts{color:var(--ok)}.recap-details{border:1px solid var(--border);border-radius:var(--r-2xl);background:var(--panel);color:var(--text);overflow:hidden}.recap-details>summary{cursor:pointer;padding:11px var(--s-6);font-size:var(--fs-base);color:var(--text);justify-content:space-between;align-items:center;gap:var(--s-5);font-weight:500;list-style:none;display:flex}.recap-details>summary::-webkit-details-marker{content:"";display:none}.recap-details>summary::marker{content:"";display:none}.recap-details>summary:hover{background:var(--panel-alt)}.recap-count{font-size:var(--fs-xs);color:var(--text-soft);font-weight:400}.recap{border-top:1px solid var(--border)}.recap td{font-size:var(--fs-base);padding-top:9px;padding-bottom:9px}.recap-num,.recap-cuts{color:var(--text-soft);font-size:var(--fs-sm)}.recap-waste-ok{color:var(--ok)}.panels{gap:var(--s-7);grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-items:start;display:grid}.panel{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:var(--r-3xl);box-shadow:var(--sh-card);padding:var(--s-6);gap:var(--s-4);flex-direction:column;min-width:0;display:flex}.panel h2{justify-content:space-between;align-items:center;gap:var(--s-4);font-size:var(--fs-xl);letter-spacing:var(--track-tight);font-weight:600;display:flex}.panel h3{font-size:var(--fs-md);font-weight:600}.panel table{border-collapse:collapse;width:100%}.panel th{text-align:left;font-size:var(--fs-micro);letter-spacing:var(--track-caps);text-transform:uppercase;color:var(--text-soft);background:var(--panel-alt);padding:7px var(--s-3);border-top:1px solid var(--border);border-bottom:1px solid var(--border);font-weight:600}.panel td{padding:var(--s-2) var(--s-3);border-bottom:1px solid var(--divider);color:var(--text)}.panel input:not([type=checkbox]):not([type=radio]):not([type=file]),.panel select{width:100%;min-width:0;padding:5px var(--s-3);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--panel);color:var(--text);font-size:var(--fs-md)}.panel input:focus,.panel select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint);outline:none}.panel-total{font-size:var(--fs-sm);color:var(--text-soft);margin:0}.panel-params label,.input-label{justify-content:space-between;align-items:center;gap:var(--s-3);font-size:var(--fs-base);color:var(--text-soft);display:flex}.qty-cell{align-items:center;gap:var(--s-2);display:flex}.qty-cell input[type=number]{width:62px}.inline-check,.check-row{align-items:center;gap:var(--s-2);font-size:var(--fs-base);color:var(--text-soft);cursor:pointer;-webkit-user-select:none;user-select:none;display:inline-flex}.check-row{margin:var(--s-1) 0 var(--s-3)}.swatch{border-radius:3px;flex:none;width:12px;height:12px;display:inline-block}.input-angle{width:58px}.results{gap:var(--s-6);flex-direction:column;display:flex}.results-header{justify-content:space-between;align-items:center;gap:var(--s-7);flex-wrap:wrap;display:flex}.results-header h2{font-size:var(--fs-2xl);font-weight:600}.results-project{color:var(--text-soft);font-weight:400}.results-actions{align-items:center;gap:var(--s-2);flex-wrap:wrap;display:flex}.results-actions button,.btn-pdf{align-items:center;gap:var(--s-2);border:1px solid var(--border);border-radius:var(--r-lg);background:var(--panel);min-height:30px;color:var(--text);font-family:inherit;font-size:var(--fs-sm);cursor:pointer;padding:0 11px;display:inline-flex}.results-actions button:hover,.btn-pdf:hover{border-color:var(--border-strong);background:var(--panel-alt);color:var(--text)}.stats{gap:var(--s-4);grid-template-columns:repeat(auto-fit,minmax(152px,1fr));display:grid}.stat{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:var(--r-2xl);box-shadow:var(--sh-card);padding:var(--s-5) var(--s-6);flex-direction:column;gap:2px;display:flex}.stat-value{font-family:var(--font-mono);letter-spacing:-.02em;color:var(--text);font-size:21px;font-weight:500}.stat-label{font-size:var(--fs-tiny);color:var(--text-soft);line-height:1.35}.bar-title{align-items:center;gap:var(--s-3);font-size:var(--fs-base);color:var(--text-soft);flex-wrap:wrap;display:flex}.bar-title strong{color:var(--text)}.bar-count,.bar-waste{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-soft)}.bar-settings{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--warn);background:var(--warn-bg);border-radius:var(--r-pill);padding:2px var(--s-3)}.bar-marriage{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--ok);background:var(--ok-bg);border-radius:var(--r-pill);padding:2px var(--s-3)}.bar-block{gap:var(--s-2);flex-direction:column;display:flex}.btn-primary{justify-content:center;align-items:center;gap:var(--s-2);min-height:40px;padding:0 var(--s-7);border-radius:var(--r-btn);background:var(--accent);color:var(--text-on-dark);font-family:inherit;font-size:var(--fs-md);cursor:pointer;box-shadow:var(--sh-accent);border:none;font-weight:600;display:inline-flex}.btn-primary:hover:not(:disabled){background:var(--accent-dark);color:var(--text-on-dark)}.btn-primary:disabled{opacity:.55;cursor:not-allowed}.btn-add{align-self:flex-start;align-items:center;gap:var(--s-2);min-height:32px;padding:0 var(--s-5);border:1px dashed var(--border-strong);border-radius:var(--r-lg);background:var(--panel);color:var(--text-soft);font-family:inherit;font-size:var(--fs-base);cursor:pointer;display:inline-flex}.btn-add:hover{border-color:var(--accent);background:var(--accent-tint);color:var(--accent)}.btn-icon{justify-content:center;align-items:center;gap:var(--s-1);min-height:28px;padding:0 var(--s-2);border-radius:var(--r-sm);color:var(--text-soft);font-family:inherit;font-size:var(--fs-xs);cursor:pointer;background:0 0;border:1px solid #0000;display:inline-flex}.btn-icon:hover{border-color:var(--border);background:var(--panel-sunken);color:var(--text)}.btn-clear,.btn-reset{color:var(--text-soft);font-family:inherit;font-size:var(--fs-xs);cursor:pointer;padding:2px var(--s-2);border-radius:var(--r-sm);background:0 0;border:none}.btn-clear:hover,.btn-reset:hover{background:var(--panel-sunken);color:var(--text)}.input-label{font-weight:600;width:70px!important}.nav-hint{color:var(--text-soft);font-size:12px}.viewer{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-3xl);box-shadow:var(--sh-card);padding:var(--s-7)}.drop-zone{border:2px dashed var(--border);border-radius:var(--r-2xl);text-align:center;padding:18px;transition:border-color .15s,background .15s}.drop-zone.drag-over{border-color:var(--accent);background:var(--accent-tint)}.drop-zone p{margin:4px 0}.drop-hint{color:var(--text-soft);font-size:13px}.file-label{color:var(--accent);cursor:pointer;text-decoration:underline}.link-btn{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px;text-decoration:underline}.viewer-status{color:var(--text-soft);margin:12px 0 8px;font-size:14px}.viewer-canvas-wrap{position:relative}.viewer-sticky{z-index:10;background:var(--bg,#fff);position:sticky;top:8px}.viewer-split{grid-template-columns:minmax(220px,280px) 1fr;align-items:stretch;gap:12px;display:grid}.viewer-split .viewer-canvas-wrap{min-width:0}@media (width<=900px){.viewer-split{grid-template-columns:1fr}.viewer-tree{max-height:260px}}.viewer-split-big{grid-template-columns:minmax(220px,260px) 1fr}.viewer-tree{border:1px solid var(--border);border-radius:var(--r-2xl);background:var(--card-bg,transparent);flex-direction:column;display:flex;overflow:hidden}.viewer-tree-head{border-bottom:1px solid var(--border);font-size:var(--fs-sm);justify-content:space-between;align-items:baseline;padding:8px 12px;display:flex}.viewer-tree-count{color:var(--text-soft);font-size:var(--fs-xs)}.viewer-tree-list{flex:auto;margin:0;padding:0;list-style:none;overflow-y:auto}.viewer-tree-row{border:0;border-bottom:1px solid var(--border);text-align:left;cursor:pointer;width:100%;font:inherit;color:inherit;background:0 0;align-items:center;gap:8px;padding:6px 10px;display:flex}.viewer-tree-row:last-child{border-bottom:0}.viewer-tree-row:hover,.viewer-tree-row-hover{background:var(--hover-bg,#ffd54a29)}.viewer-tree-row-selected{background:var(--selected-bg,#f28e2b26)}.viewer-tree-row-selected.viewer-tree-row-hover{background:#f28e2b47}.viewer-tree-row-non-profile{opacity:.75}.viewer-tree-row-hidden{opacity:.5;background:repeating-linear-gradient(45deg,#0000,#0000 6px,#0000000a 6px 8px)}.viewer-tree-row-eye{cursor:pointer;opacity:.55;border-radius:4px;flex:none;padding:2px 4px;font-size:14px;line-height:1}.viewer-tree-row-eye:hover{opacity:1;background:#0000000f}.radial-backdrop{z-index:14;position:absolute;inset:0}.radial{z-index:15;pointer-events:none;position:absolute;transform:translate(-50%,-50%)}.radial-hub{color:#fff;white-space:nowrap;pointer-events:none;background:#14161cf0;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:600;position:absolute;top:0;left:0;transform:translate(-50%,-50%);box-shadow:0 2px 6px #00000047}.radial-btn{color:#fff;cursor:pointer;pointer-events:auto;background:#14161cf0;border:1px solid #ffffff26;border-radius:8px;align-items:center;gap:6px;width:108px;padding:6px 8px;font-size:11px;line-height:1.2;display:flex;position:absolute;top:0;left:0;box-shadow:0 4px 10px #00000047}.radial-btn:hover{background:#2d323cfa;border-color:#ffffff4d}.radial-btn-icon{font-size:15px}.radial-btn-label{text-align:left;flex:auto}.radial-btn-danger{border-color:#ffb26680}.radial-btn-danger:hover{background:#783c14e6}.radial-btn-disabled,.radial-btn:disabled{opacity:.4;cursor:not-allowed}.viewer-tree-row-body{flex:auto;min-width:0}.viewer-tree-row-title{font-size:var(--fs-sm);text-overflow:ellipsis;white-space:nowrap;align-items:baseline;gap:6px;font-weight:600;display:flex;overflow:hidden}.viewer-tree-row-qty{color:var(--text-soft);font-weight:400;font-size:var(--fs-xs)}.viewer-tree-row-sub{color:var(--text-soft);font-size:var(--fs-xs);justify-content:space-between;gap:6px;display:flex}.viewer-hover-tip{z-index:12;pointer-events:none;color:#fff;background:#14161cf0;border-radius:6px;max-width:260px;padding:8px 10px;font-size:12px;line-height:1.4;position:absolute;box-shadow:0 4px 12px #00000038}.viewer-hover-tip-head{align-items:baseline;gap:6px;margin-bottom:4px;font-size:13px;display:flex}.viewer-hover-tip-tag{color:#ffd54a;font-size:10px;font-weight:400}.viewer-hover-tip-body>div{color:#ffffffd9}.viewer-hover-tip-body>div strong{color:#fff}.viewer-hover-tip-warn{color:#ffb266;margin-top:4px;font-size:11px}.viewer-canvas{border:1px solid var(--border);border-radius:var(--r-2xl);height:100%;overflow:hidden}.viewer-canvas canvas{display:block}.viewer-tools{flex-direction:column;gap:6px;display:flex;position:absolute;top:10px;right:10px}.viewer-tools button{border:1px solid var(--border);cursor:pointer;background:#ffffffeb;border-radius:8px;width:36px;height:36px;font-size:17px;line-height:1;box-shadow:0 1px 4px #0000001f}.viewer-tools button:hover{border-color:var(--accent);color:var(--accent-dark)}.file-chip{background:var(--accent-tint-strong);color:var(--accent-dark);border:1px solid var(--accent-border);border-radius:999px;margin-right:6px;padding:1px 10px;font-size:12px;font-weight:600;display:inline-block}.part-file{color:var(--text-soft);font-size:11px}.parts-table{border-collapse:collapse;width:100%;margin-top:14px;font-size:14px}.parts-table th,.parts-table td{border-bottom:1px solid var(--border);text-align:left;padding:6px 10px}.parts-table th{text-transform:uppercase;letter-spacing:.04em;color:var(--text-soft);font-size:12px}.parts-table .row-selected{background:var(--warn-bg)}.parts-table tbody tr:hover{background:var(--panel-sunken)}.badge-profile{background:var(--ok-bg);color:var(--ok);border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600}.badge-other{background:var(--panel-sunken);color:var(--text-soft);border-radius:999px;padding:2px 10px;font-size:12px}.btn-inline{margin-top:14px;width:auto!important}.profile-icon{vertical-align:middle;flex:none}.pi-front{fill:var(--panel-inset);stroke:var(--text-soft);stroke-width:1.3px;stroke-linejoin:round}.pi-back,.pi-edge{fill:none;stroke:var(--rule-soft);stroke-width:.9px}.pi-hole{fill:#fff;stroke:var(--text-soft);stroke-width:1.1px;stroke-linejoin:round}.profile-cell{align-items:center;gap:4px;display:flex}.bar-title .profile-icon,.profile-heading .profile-icon{align-self:center}.account-widget{align-items:center;gap:10px;display:flex}.account-email{color:var(--text);font-size:var(--fs-base);text-overflow:ellipsis;white-space:nowrap;max-width:160px;overflow:hidden}.plan-badge{padding:2px var(--s-3);border-radius:var(--r-pill);text-transform:uppercase;letter-spacing:.03em;background:var(--panel-inset);color:var(--text-soft);font-size:11px;font-weight:700}.plan-badge.plan-pro{background:var(--accent);color:var(--text-on-dark)}.plan-badge.plan-atelier{background:var(--ok);color:var(--text-on-dark)}.account-modal{width:min(420px,100vw - 32px);color:var(--text);position:relative}.account-modal.account-modal-wide{width:min(820px,100vw - 32px)}.account-modal-close{color:var(--text-soft);cursor:pointer;background:0 0;border:none;padding:4px;font-size:16px;line-height:1;position:absolute;top:14px;right:14px}.account-modal-close:hover{color:var(--danger)}.account-tabs{gap:4px;margin:4px 0 14px;display:flex}.account-tabs button{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:6px;flex:1;padding:6px 8px;font-size:12px}.account-tabs button.active{background:var(--accent);color:#fff;border-color:var(--accent)}.account-field{color:var(--text-soft);flex-direction:column;gap:4px;margin-bottom:12px;font-size:13px;display:flex}.account-field input{border:1px solid var(--border);color:var(--text);border-radius:6px;padding:8px 10px;font-size:14px}.account-error{color:var(--danger);margin:0 0 10px;font-size:12px}.account-hint{color:var(--text-soft);margin:10px 0 0;font-size:12px;line-height:1.4}.account-summary{align-items:center;gap:10px;margin:4px 0 14px;display:flex}.account-summary .account-email{color:var(--text);max-width:none;font-size:14px}.account-summary .plan-badge{background:var(--panel-inset);color:var(--text-soft)}.account-summary .plan-badge.plan-pro{background:var(--accent);color:var(--text-on-dark)}.account-summary .plan-badge.plan-atelier{background:var(--ok);color:#fff}.account-credits{color:var(--text-soft);margin:-6px 0 14px;font-size:13px}.account-modal-actions{margin-top:16px}.account-admin-link{margin-top:6px;display:block}.admin-panel{max-height:60vh;overflow-y:auto}.admin-table{border-collapse:collapse;width:100%;font-size:13px}.admin-table th,.admin-table td{border-bottom:1px solid var(--border);text-align:left;padding:8px 10px}.admin-table th{text-transform:uppercase;letter-spacing:.04em;color:var(--text-soft);font-size:11px}.admin-table select,.admin-table input[type=number]{border:1px solid var(--border);border-radius:6px;width:100px;padding:5px 7px}.admin-table .badge-other{margin-left:8px}.admin-credits-cell{white-space:nowrap;align-items:center;gap:6px;display:flex}.admin-search{border:1px solid var(--border);width:100%;max-width:260px;color:var(--text);background:0 0;border-radius:6px;margin-bottom:10px;padding:6px 10px}.tolerie-flat-thumb{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:6px;width:84px;height:56px;padding:2px;display:block}.tolerie-flat-thumb:hover{border-color:var(--accent)}.tolerie-flat-cell{white-space:nowrap;align-items:center;gap:8px;display:flex}.thickness-measured{color:var(--ok);font-weight:600}.tolerie-part-cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin-bottom:8px;display:grid}.tolerie-part-card{border:1px solid var(--border);background:var(--panel,#fff);border-radius:10px;flex-direction:column;gap:8px;padding:10px;display:flex}.tolerie-part-thumbs{grid-template-columns:1fr 1fr;gap:8px;display:grid}.tolerie-part-thumb{border:1px solid var(--border);aspect-ratio:4/3;background:#fff;border-radius:8px;justify-content:center;align-items:center;padding:3px;display:flex;overflow:hidden}.tolerie-part-thumb img{object-fit:contain;width:100%;height:100%;display:block}.tolerie-part-thumb-empty{color:var(--text-soft);text-align:center;padding:6px;font-size:11px}.tolerie-part-thumb-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-soft);margin:0 0 2px;font-size:10px}.tolerie-part-name{color:var(--text);overflow-wrap:anywhere;font-size:13px;font-weight:600}.tolerie-part-meta{color:var(--text-soft);font-size:12px;line-height:1.5}.tolerie-part-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.tolerie-part-actions input[type=number]{border:1px solid var(--border);border-radius:6px;width:62px;padding:4px 6px}.analytics-range{gap:6px;margin-bottom:14px;display:flex}.analytics-range button{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:999px;padding:5px 12px;font-size:12px}.analytics-cards{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:18px;display:grid}.analytics-card{border:1px solid var(--border);background:var(--panel-soft,#00000005);border-radius:8px;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.analytics-card-value{color:var(--text);font-size:20px;font-weight:700}.analytics-card-label{color:var(--text-soft);text-transform:uppercase;letter-spacing:.03em;font-size:11px}.analytics-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin-top:18px;display:grid}.analytics-breakdown h4{color:var(--text);margin:0 0 6px;font-size:13px}.pricing-grid{grid-template-columns:repeat(3,1fr);gap:14px;width:100%;display:grid}.pricing-card{border:1px solid var(--border);border-radius:var(--r-3xl);background:var(--panel);flex-direction:column;padding:18px 16px;display:flex;position:relative}.pricing-card.pricing-highlight{border-color:var(--accent);box-shadow:0 4px 16px #175fa924}.pricing-card.pricing-current{border-color:var(--ok)}.pricing-badge{background:var(--accent);color:#fff;text-transform:uppercase;letter-spacing:.03em;border-radius:999px;padding:3px 10px;font-size:11px;font-weight:700;position:absolute;top:-10px;left:16px}.pricing-badge.pricing-badge-current{background:var(--ok)}.pricing-card h3{margin:6px 0 2px;font-size:17px}.pricing-price{color:var(--ink);margin:0 0 6px;font-size:26px;font-weight:700}.pricing-note{color:var(--text-soft);font-size:12px;font-weight:400;display:block}.pricing-tagline{color:var(--text-soft);min-height:34px;margin:0 0 12px;font-size:13px}.pricing-features{flex-direction:column;flex:1;gap:7px;margin:0 0 16px;padding:0;font-size:13px;list-style:none;display:flex}.pricing-features li{padding-left:20px;position:relative}.pricing-features li:before{content:"✓";color:var(--ok);font-weight:700;position:absolute;left:0}.pricing-cta{text-align:center;text-decoration:none;display:block}.pricing-footnote{color:var(--text-soft);text-align:center;grid-column:1/-1;margin:4px 0 0;font-size:12px}@media (width<=720px){.pricing-grid{grid-template-columns:1fr}}.combine-locked{color:var(--text-soft);cursor:help;font-size:12px;font-style:italic}.chutes-stock{border-top:1px dashed var(--border);margin-top:14px;padding-top:10px}.chutes-stock h3{text-transform:uppercase;letter-spacing:.05em;color:var(--text-soft);margin:0 0 8px;font-size:12px}.chutes-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.chutes-list li{background:var(--panel-alt);border:1px solid var(--border);border-radius:6px;align-items:center;gap:8px;padding:5px 8px;font-size:13px;display:flex}.chutes-list li span:first-child{font-weight:600}.chutes-list li .part-file{flex:1}.btn-clear{color:var(--text-soft);letter-spacing:normal;text-transform:none;cursor:pointer;background:0 0;border:none;margin-left:10px;padding:0;font-size:11px;font-weight:400}.btn-clear:hover{color:var(--danger);text-decoration:underline}.combine{border-top:1px dashed var(--border);flex-direction:column;gap:8px;margin-top:12px;padding-top:10px;font-size:13px;display:flex}.combine-mult{color:var(--text-soft);align-items:center;gap:8px;font-weight:600;display:flex}.combine-mult input,.include-chip input{border:1px solid var(--border);background:#fff;border-radius:6px;width:62px;padding:4px 6px}.combine-includes{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.combine-title{color:var(--text-soft)}.include-chip{background:var(--accent-tint-strong);border:1px solid var(--accent-border);color:var(--accent-dark);border-radius:999px;align-items:center;gap:5px;padding:3px 6px 3px 12px;font-weight:600;display:inline-flex}.combine-includes select{border:1px solid var(--border);color:var(--text-soft);background:#fff;border-radius:6px;padding:4px 8px}.combine-total{color:var(--accent-dark);margin:0;font-size:13px;font-weight:700}.stock-missing{color:var(--text-soft);margin:10px 0 0;font-size:13px;line-height:1.5}.panel-total{color:var(--text-soft);margin:8px 0 0;font-size:12px}.profile-pick{border:1px solid var(--border);cursor:pointer;white-space:nowrap;background:#fff;border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-size:13px;display:inline-flex}.profile-pick:hover{border-color:var(--accent)}.profile-pick-empty{color:var(--text-soft);border-style:dashed;font-style:italic}.picker-backdrop{z-index:50;background:#14181f73;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.picker{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-3xl);width:min(440px,100vw - 32px);box-shadow:var(--sh-modal);padding:20px}.picker h3{margin:0 0 6px;font-size:16px}.picker-info{color:var(--text-soft);margin:0 0 14px;font-size:13px}.picker-fields{grid-template-columns:1fr 1fr;gap:12px;display:grid}.picker-fields label{color:var(--text-soft);flex-direction:column;gap:4px;font-size:13px;display:flex}.picker-fields select,.picker-fields input{border:1px solid var(--border);color:var(--text,#222);background:#fff;border-radius:6px;padding:7px 8px;font-size:14px}.pick-profile{width:min(560px,100vw - 32px)}.pick-propose{align-items:center;gap:var(--s-5);margin:var(--s-6) 0 var(--s-7);padding:var(--s-5) var(--s-6);border:1px solid var(--accent-border);border-radius:var(--r-2xl);background:var(--accent-tint);color:var(--text);display:flex}.pick-propose-edited{border-color:var(--ok-border);background:var(--ok-tint)}.pick-propose-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.pick-origin{font-size:var(--fs-tiny);color:var(--text-soft)}.pick-propose-name{font-family:var(--font-mono);font-size:var(--fs-2xl);color:var(--text);font-weight:600}.pick-accept{padding:var(--s-3) var(--s-6);flex-direction:column;flex:none;gap:1px;line-height:1.15}.pick-accept-sub{font-size:var(--fs-tiny);color:#ffffffeb;font-weight:400}.pick-alt-title{margin:0 0 var(--s-3);font-size:var(--fs-base);color:var(--text);font-weight:600}.pick-tolerie{align-items:center;gap:var(--s-5);margin-top:var(--s-7);padding:var(--s-5) var(--s-6);border:1px solid var(--border);border-top:1px solid var(--border);border-radius:var(--r-2xl);background:var(--panel-alt);color:var(--text);display:flex}.pick-tolerie-text{min-width:0;font-size:var(--fs-sm);color:var(--text-soft);line-height:var(--lh-normal);flex-direction:column;flex:1;gap:2px;display:flex}.pick-tolerie-text strong{color:var(--text);font-size:var(--fs-base)}.pick-tolerie .btn-ai{flex:none}.pick-foot{margin-top:var(--s-5);justify-content:flex-end;display:flex}.pick-cancel{color:var(--text-soft);font-family:inherit;font-size:var(--fs-base);cursor:pointer;padding:var(--s-2) var(--s-3);border-radius:var(--r-sm);background:0 0;border:none}.pick-cancel:hover{background:var(--panel-sunken);color:var(--text)}@media (width<=620px){.pick-propose,.pick-tolerie{flex-direction:column;align-items:stretch}}.picker-preview{align-items:center;gap:8px;margin:14px 0 12px;font-size:14px;display:flex}.dxf-modal{width:min(560px,100vw - 32px)}.dxf-meta{color:var(--text-soft);margin:0 0 10px;font-size:13px}.dxf-canvas{border:1px solid var(--border);background:linear-gradient(var(--border) 1px, transparent 1px) 0 0 / 20px 20px, linear-gradient(90deg, var(--border) 1px, transparent 1px) 0 0 / 20px 20px, #fff;border-radius:8px;margin-bottom:10px;padding:8px}.dxf-canvas svg{display:block}.dxf-legend{color:var(--text-soft);margin:0 0 14px;font-size:12px}.dev-toggle{color:var(--text-soft);cursor:pointer;align-items:center;gap:5px;margin-left:8px;font-size:12px;display:inline-flex}.proc-overlay{z-index:60;background:#14181f59;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.proc-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-3xl);min-width:min(420px,90vw);box-shadow:var(--sh-modal);padding:18px 22px}.proc-bar{background:var(--panel-inset);border-radius:4px;height:8px;overflow:hidden}.proc-bar-fill{background:var(--accent);border-radius:4px;width:40%;height:100%;animation:1.1s ease-in-out infinite proc-slide}@keyframes proc-slide{0%{margin-left:-40%}to{margin-left:100%}}.proc-bar-determined .proc-bar-fill{margin-left:0;transition:width .28s ease-out;animation:none}.proc-label{margin-top:10px;font-size:14px}.proc-stats{color:var(--text-soft);font-variant-numeric:tabular-nums;margin-top:6px;font-size:12px}.kfactor-row{color:var(--text-soft);flex-wrap:wrap;align-items:center;gap:8px;margin:4px 0 12px;font-size:13px;display:flex}.kfactor-row input{border:1px solid var(--border);border-radius:6px;padding:4px 6px}.tolerie-list{border:1px solid var(--border);background:var(--panel-alt);border-radius:10px;margin:18px 0 8px;padding:14px}.tolerie-list h4{margin:0 0 4px;font-size:15px}.batch-unfold{border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:8px;flex-direction:column;gap:6px;margin:8px 0 12px;padding:10px 12px;display:flex}.batch-unfold-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.batch-unfold-bar{border-radius:var(--r-pill);background:var(--panel-inset);height:6px;overflow:hidden}.batch-unfold-fill{background:var(--accent);height:100%;transition:width .2s ease-out;display:block}.batch-unfold-summary{font-size:var(--fs-sm);color:var(--text-soft);margin:0}.batch-unfold-errors{font-size:var(--fs-tiny);color:var(--danger);margin:0;padding-left:18px}.badge-tolerie{color:#075985;background:#e0f2fe;border-radius:6px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.row-tolerie{opacity:.7}.post-choice{border:1px solid var(--border);border-radius:6px;gap:0;display:inline-flex;overflow:hidden}.post-choice .seg{background:var(--panel);color:var(--text);cursor:pointer;border:none;padding:5px 10px;font-size:13px}.post-choice .seg.on{background:var(--accent);color:var(--text-on-dark)}.post-detail{color:var(--text-soft);margin-top:5px;font-size:12px}.tolerie-actions{white-space:nowrap;align-items:center;gap:8px;display:flex}.dxf-develop{color:#065f46;background:#ecfdf5;border-radius:8px;margin:4px 0 8px;padding:8px 10px;font-size:14px}.sheet-bends{border-collapse:collapse;width:100%;margin:4px 0 14px;font-size:13px}.sheet-bends th,.sheet-bends td{border:1px solid var(--border);text-align:left;padding:6px 10px}.sheet-bends th{background:var(--panel-alt);font-weight:600}.dxf-key{font-weight:700}.dxf-key.contour{color:#111827}.dxf-key.percage{color:#e11d48}.picker-actions{gap:10px;display:flex}.picker-actions .btn-primary{width:auto;margin-top:0}.picker-actions button:not(.btn-primary):not(.btn-ai){border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:8px;padding:10px 16px}.panel h2{justify-content:space-between;align-items:center;gap:10px;display:flex}.tolerie-cols{grid-template-columns:1fr 1fr}.tolerie-sheet{grid-template-columns:1fr 1fr;gap:10px;display:grid}.tolerie-sheet label,.panel-params label{color:var(--text-soft);flex-direction:column;gap:4px;font-size:13px;display:flex}.tolerie-import{letter-spacing:normal;text-transform:none;border:1px solid var(--border);border-radius:6px;padding:4px 10px;font-size:12px;font-weight:400}.nest-bins{flex-direction:column;gap:18px;margin-top:12px;display:flex}.nest-svg{border:1px solid var(--border);background:#fff;border-radius:8px;width:100%;height:auto;max-height:62vh;margin-top:6px;display:block}.nest-sheet{fill:var(--panel-alt);stroke:var(--text-soft);stroke-width:2px}.nest-margin{fill:none;stroke:var(--accent-border);stroke-dasharray:10 7;stroke-width:1.5px}.contour-badge{color:var(--accent-dark);background:var(--accent-tint-strong);border:1px solid var(--accent-border);white-space:nowrap;border-radius:999px;margin-left:6px;padding:1px 7px;font-size:11px;display:inline-block}.fence-sheet{page-break-before:always;margin-top:22px}.fence-sheet h3{margin:0 0 4px}.fence-sheet-bin{margin-top:14px}.fence-sheet-bin h4{margin:6px 0 4px;font-size:14px}.fence-sheet table{border-collapse:collapse;width:100%;font-size:13px}.fence-sheet th,.fence-sheet td{border:1px solid var(--border);text-align:left;vertical-align:top;padding:4px 8px}.fence-sheet th{background:var(--panel-alt);font-weight:600}.fence-sheet td.mono{text-align:right;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,monospace}.viewer-canvas canvas{touch-action:none}.btn-icon{min-width:32px;min-height:32px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (width<=760px){.app{padding:12px 10px 32px}.header{flex-direction:column;align-items:flex-start}.header-actions{flex-wrap:wrap;gap:10px}.project-bar{gap:6px}.project-sep{display:none}.panel{overflow-x:auto}.panel table{min-width:460px}.tolerie-sheet{grid-template-columns:1fr}.results-actions{flex-wrap:wrap}.stat{flex-basis:45%}.btn-icon{min-width:40px;min-height:40px}}.step-ai{flex-wrap:wrap;align-items:center;gap:10px;margin:8px 0 4px;display:flex}.btn-ai{background:var(--ink);color:var(--text-on-dark);border-radius:var(--r-btn);cursor:pointer;border:none;padding:8px 14px;font-weight:600}.btn-ai:disabled{opacity:.5;cursor:default}.step-ai-result{background:var(--panel-alt);border:1px solid var(--border);border-radius:var(--r-2xl);color:var(--text);flex-basis:100%;margin-top:4px;padding:10px 12px}.step-ai-facts{color:var(--text);flex-direction:column;gap:4px;margin-top:6px;font-size:13px;display:flex}.step-ai-facts strong{font-family:var(--font-mono);font-weight:500}.step-ai-facts small{color:var(--text-soft)}.step-ai-line{margin:0 0 6px;font-size:14px}.step-ai-report{white-space:pre-wrap;color:var(--text-soft);margin:0;font-family:inherit;font-size:13px}.step-ai-comment{background:var(--accent-tint);border-left:3px solid var(--accent);border-radius:var(--r-sm);margin:8px 0 0;padding:6px 10px;font-size:13px;font-style:italic}.angle-group{margin-bottom:14px}.angle-group-head{color:var(--ink);background:var(--panel-inset);border-left:3px solid var(--accent);border-radius:6px;margin-bottom:8px;padding:6px 12px;font-size:13px;font-weight:700}.print-only{display:none}@media (width<=1180px){.input-grid{grid-template-columns:minmax(0,1fr)}}@media (width<=1000px){.app{flex-direction:column;height:auto;overflow:visible}.sb{align-items:center;gap:var(--s-3);width:auto;padding:var(--s-3) var(--s-4);border-right:none;border-bottom:1px solid var(--border);flex-direction:row;overflow:auto hidden}.sb-atelier{flex:none;margin-bottom:0}.sb-group,.sb-group+.sb-group,.sb-item+.sb-group{align-items:center;gap:var(--s-1);flex-direction:row;flex:none;margin-top:0}.sb-group-title{display:none}.sb-projects{gap:var(--s-1);flex-direction:row;overflow:visible}.sb-item{white-space:nowrap;width:auto}.sb-foot{align-items:center;gap:var(--s-3);flex-direction:row;flex:none;margin:0 0 0 auto;padding-top:0}.sb-credits{display:none}.sb-account-email{max-width:160px}.main-scroll{overflow:visible}.tb{height:auto;min-height:var(--topbar-h);padding:var(--s-3) var(--s-4);flex-wrap:wrap}.page{padding:var(--s-7) var(--s-4) var(--s-9)}.page-bar{padding-bottom:96px}.sticky-wrap{padding-inline:var(--s-4)}.segmented button{min-height:34px;padding:0 var(--s-6)}.account-modal-close{width:34px;height:34px}}@media (width<=720px){.page-title{font-size:20px}.page-head-actions{width:100%}.page-head-actions .btn{flex:1}.pieces-table,.recap{white-space:nowrap;display:block;overflow-x:auto}.bar-aside{width:88px}.plan-note,.offcuts,.angle-group-head{margin-left:0}.plan-body,.plan-head,.plan-stat{padding:var(--s-5)}}@media print{.no-print{display:none!important}.print-only{display:block}.print-head{border-bottom:2px solid #000;margin-bottom:14px;padding-bottom:8px}.print-head h1{margin:0 0 4px;font-size:20px}.print-head p{color:#444;margin:0;font-size:12px}.results-header h2{display:none}body{background:#fff}.app{max-width:none;height:auto;max-height:none;padding:0;display:block;overflow:visible}.main,.main-scroll{height:auto;min-height:0;display:block;overflow:visible}.page,.page-bar{padding:0;display:block}.results{border:none;padding:0}.plan-card,.recap-details{box-shadow:none;border:none;border-radius:0}.plan-head,.plan-body{background:#fff;border-top:none;border-bottom:none;padding:0}.recap-details>summary{display:none}.recap-details{display:block}.bar-row,.plan-group-head,.plan-stats,.plan-stat,.stats,.recap tr{break-inside:avoid}.seg-label,.seg-len,.seg-angle,.seg-waste-len{color:#000;text-shadow:0 0 2px #fff,0 0 3px #fff}.seg,.bar-num,.profile-icon,.legend-swatch,.rep-swatch{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.asst-page{color:#1f2933;max-width:960px;margin:0 auto;padding:32px 24px 48px}.asst-page-center{flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:60vh;display:flex}.asst-head{justify-content:space-between;align-items:baseline;margin-bottom:24px;display:flex}.asst-head h1{margin:0;font-size:24px;font-weight:600}.asst-count{color:#6b7684;font-size:14px}.asst-sub{color:#52606d;max-width:620px;margin:0 0 24px;line-height:1.5}.asst-tip{color:#6b7684;margin-top:16px;font-size:13px;line-height:1.5}.asst-error{color:#a63a3a;white-space:pre-line;background:#fff4f4;border:1px solid #f0b8b8;border-radius:6px;margin:12px 0;padding:12px 14px}.asst-drop{text-align:center;cursor:pointer;background:#fafbfc;border:2px dashed #cbd2d9;border-radius:12px;padding:48px 24px;transition:background .15s,border-color .15s}.asst-drop:hover,.asst-drop-hot{background:#eef7ff;border-color:#5b8fc4}.asst-drop-icon{margin-bottom:12px;font-size:48px;line-height:1}.asst-drop-title{margin:0 0 6px;font-size:18px;font-weight:500}.asst-drop-hint{color:#6b7684;margin:0;font-size:14px}.asst-spinner{border:3px solid #e4e7eb;border-top-color:#5b8fc4;border-radius:50%;width:36px;height:36px;animation:.9s linear infinite asst-spin}@keyframes asst-spin{to{transform:rotate(360deg)}}.asst-progress{color:#52606d;text-align:center;font-size:14px}.asst-bar{background:#e4e7eb;border-radius:3px;width:280px;height:6px;overflow:hidden}.asst-bar-fill{background:#5b8fc4;height:100%;transition:width .3s}.asst-wizard{grid-template-columns:minmax(0,1fr);gap:20px;display:grid}@media (width>=900px){.asst-wizard{grid-template-columns:1.2fr 1fr}}.asst-view3d{background:#f7f8fa;border:1px solid #e4e7eb;border-radius:8px;overflow:hidden}.asst-question{flex-direction:column;gap:16px;display:flex}.asst-piece{background:#f7f8fa;border:1px solid #e4e7eb;border-radius:6px;flex-direction:column;gap:2px;padding:12px 14px;display:flex}.asst-piece-name{font-weight:500}.asst-piece-dims{color:#6b7684;font-size:13px}.asst-piece-wall{color:#5b8fc4;margin-top:2px;font-size:13px}.asst-q{margin:0;font-size:16px;line-height:1.4}.asst-fields{flex-direction:column;gap:12px;display:flex}.asst-fields label{color:#52606d;flex-direction:column;gap:4px;font-size:13px;display:flex}.asst-fields select,.asst-fields input{background:#fff;border:1px solid #cbd2d9;border-radius:6px;padding:8px 10px;font-size:14px}.asst-choice{grid-template-columns:1fr 1fr;gap:12px;display:grid}.asst-choice-card{cursor:pointer;text-align:left;font:inherit;background:#fff;border:1px solid #cbd2d9;border-radius:8px;flex-direction:column;align-items:flex-start;gap:6px;padding:16px;transition:border-color .15s,background .15s;display:flex}.asst-choice-card:hover{background:#f5faff;border-color:#5b8fc4}.asst-choice-hint{background:#fff8f0;border-color:#f28e2b}.asst-choice-icon{font-size:24px}.asst-choice-title{font-size:15px;font-weight:600}.asst-choice-sub{color:#6b7684;font-size:13px;line-height:1.4}.asst-actions,.asst-nav{gap:8px;margin-top:8px;display:flex}.asst-nav{justify-content:space-between}.asst-btn{color:#1f2933;font:inherit;cursor:pointer;background:#fff;border:1px solid #0000;border-radius:6px;padding:8px 14px;font-size:14px;transition:background .15s,border-color .15s}.asst-btn-primary{color:#fff;background:#5b8fc4;border-color:#5b8fc4}.asst-btn-primary:hover{background:#4a7db0}.asst-btn-ghost{border-color:#cbd2d9}.asst-btn-ghost:hover:not(:disabled){background:#f5f6f8}.asst-btn:disabled{opacity:.5;cursor:not-allowed}.asst-summary{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin:20px 0;display:grid}.asst-summary-card{background:#f7f8fa;border:1px solid #e4e7eb;border-radius:8px;flex-direction:column;gap:4px;padding:16px;display:flex}.asst-summary-muted{opacity:.7}.asst-summary-count{color:#1f2933;font-size:28px;font-weight:600;line-height:1}.asst-summary-label{color:#52606d;font-size:14px}.asst-summary-hint{color:#6b7684;font-size:12px}.acc{min-width:0;padding:var(--s-10) var(--s-9) var(--s-12);gap:var(--s-8);flex-direction:column;flex:1;display:flex}.acc-head{align-items:center;gap:var(--s-5);flex-wrap:wrap;justify-content:space-between;display:flex}.acc-head-thumb{object-fit:cover;border-radius:var(--r-2xl);border:1px solid var(--border);background:var(--panel-alt);width:120px;height:90px;box-shadow:var(--sh-card);flex:none}.acc-head-main{gap:var(--s-1);flex-direction:column;min-width:0;display:flex}.acc-title{font-size:var(--fs-h1);letter-spacing:var(--track-tighter);margin:0;font-weight:600}.acc-sub{font-size:var(--fs-lg);color:var(--text-soft);line-height:var(--lh-normal);margin:0}.acc-sub-sep{margin:0 var(--s-2);color:var(--text-icon)}.acc-head-atelier{font-size:var(--fs-sm);color:var(--text-soft);padding:4px var(--s-3);border-radius:var(--r-pill);background:var(--panel-alt);border:1px solid var(--border);white-space:nowrap}.acc-progress{padding:var(--s-4) var(--s-5);align-items:center;gap:var(--s-3);background:var(--panel-alt);border:1px solid var(--border);border-radius:var(--r-2xl);flex-wrap:wrap;margin:0;list-style:none;display:flex}.acc-progress-step{align-items:center;gap:var(--s-2);font-size:var(--fs-sm);color:var(--text-soft);display:inline-flex}.acc-progress-mark{border-radius:var(--r-pill);background:var(--status-idle-bg);width:20px;height:20px;color:var(--status-idle);flex:none;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:inline-flex}.acc-progress-label{font-weight:500}.acc-progress-arrow{color:var(--text-icon);margin:0 var(--s-1);font-size:14px}.acc-progress-done .acc-progress-mark{background:var(--status-done-bg);color:var(--status-done)}.acc-progress-done .acc-progress-label{color:var(--text-soft)}.acc-progress-current .acc-progress-mark{background:var(--accent);color:var(--text-on-dark)}.acc-progress-current .acc-progress-label{color:var(--text);font-weight:700}.acc-progress-todo .acc-progress-mark{background:var(--status-idle-bg);color:var(--status-idle)}.acc-next{justify-content:space-between;align-items:center;gap:var(--s-6);padding:var(--s-9) var(--s-10);border:1px solid var(--border);border-radius:var(--r-3xl);background:var(--panel);color:var(--text);box-shadow:var(--sh-raised);flex-wrap:wrap;display:flex}.acc-next-info{border-color:var(--accent-border);background:linear-gradient(to right, var(--accent-tint), var(--panel) 60%)}.acc-next-attn{border-color:var(--warn-border);background:linear-gradient(to right, var(--warn-bg), var(--panel) 60%)}.acc-next-done{border-color:var(--ok-border);background:linear-gradient(to right, var(--ok-bg), var(--panel) 60%)}.acc-next-body{gap:var(--s-2);flex-direction:column;flex:320px;min-width:0;display:flex}.acc-next-head{align-items:center;gap:var(--s-3);display:flex}.acc-next-icon{border-radius:var(--r-2xl);background:var(--panel);border:1px solid var(--border);width:44px;height:44px;color:var(--accent);flex:none;justify-content:center;align-items:center;display:inline-flex}.acc-next-attn .acc-next-icon{color:var(--warn);border-color:var(--warn-border)}.acc-next-done .acc-next-icon{color:var(--ok);border-color:var(--ok-border)}.acc-next-title{font-size:var(--fs-2xl);letter-spacing:var(--track-tight);color:var(--text);margin:0;font-weight:700}.acc-next-detail{font-size:var(--fs-lg);color:var(--text-soft);line-height:var(--lh-normal);max-width:60ch;margin:0}.acc-next-cta{min-width:220px;font-size:var(--fs-lg);flex:none}.acc-summary{gap:var(--s-4);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.acc-summary-item{gap:var(--s-1);padding:var(--s-5) var(--s-6);background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:var(--r-2xl);box-shadow:var(--sh-card);flex-direction:column;display:flex}.acc-summary-value{font-size:var(--fs-2xl);color:var(--text);font-weight:700;line-height:1}.acc-summary-label{font-size:var(--fs-sm);color:var(--text-soft)}.acc-summary-ok .acc-summary-value{color:var(--ok)}.acc-summary-attn{border-color:var(--warn-border);background:var(--warn-bg);color:var(--text)}.acc-summary-attn .acc-summary-value{color:var(--warn)}.acc-summary-step{gap:var(--s-2)}.acc-summary-step .acc-summary-label{text-transform:uppercase;letter-spacing:var(--track-caps);font-size:var(--fs-micro);order:-1;font-weight:600}.acc-summary-step-value{font-size:var(--fs-lg);color:var(--text);font-weight:600}.acc-block-head{justify-content:space-between;align-items:baseline;gap:var(--s-4);flex-wrap:wrap;display:flex}.acc-block-title{font-size:var(--fs-xl);letter-spacing:var(--track-tight);margin:0;font-weight:600}.acc-block-title-soft{color:var(--text-soft);font-weight:500}.acc-block-meta{font-size:var(--fs-sm);color:var(--text-soft)}.acc-pieces{gap:var(--s-4);flex-direction:column;display:flex}.acc-filters{gap:var(--s-1);background:var(--panel-alt);border:1px solid var(--border);border-radius:var(--r-pill);padding:3px;display:inline-flex}.acc-filter{align-items:center;gap:var(--s-2);padding:5px var(--s-4);font-size:var(--fs-sm);color:var(--text-soft);border-radius:var(--r-pill);cursor:pointer;background:0 0;border:0;font-family:inherit;font-weight:500;display:inline-flex}.acc-filter:hover:not(:disabled){color:var(--text)}.acc-filter:disabled{opacity:.5;cursor:not-allowed}.acc-filter-on{background:var(--panel);color:var(--text);box-shadow:var(--sh-hairline)}.acc-filter-attn.acc-filter-on{background:var(--warn-bg);color:var(--warn)}.acc-table-wrap{border:1px solid var(--border);border-radius:var(--r-2xl);background:var(--panel);overflow:hidden}.acc-table{border-collapse:collapse;width:100%;font-size:var(--fs-sm);color:var(--text)}.acc-table thead th{text-align:left;padding:var(--s-3) var(--s-5);color:var(--text-soft);font-weight:600;font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:var(--track-caps);background:var(--panel-sunken);border-bottom:1px solid var(--border)}.acc-table tbody td{padding:var(--s-4) var(--s-5);border-bottom:1px solid var(--rule-soft);color:var(--text)}.acc-table tbody tr:last-child td{border-bottom:0}.acc-table tbody tr:hover td{background:var(--panel-sunken)}.acc-table-num{text-align:right;font-variant-numeric:tabular-nums}.acc-cell-profile{font-weight:500}.acc-row-attn td{background:var(--warn-bg);color:var(--text)}.acc-row-attn:hover td{background:var(--warn-bg);filter:brightness(.98)}.acc-table-empty{text-align:center;color:var(--text-soft);font-style:italic;padding:var(--s-8)!important}.acc-state{align-items:center;gap:var(--s-2);font-size:var(--fs-sm);font-weight:500;display:inline-flex}.acc-state-dot{border-radius:var(--r-pill);background:currentColor;flex:none;width:8px;height:8px}.acc-state-ok{color:var(--ok)}.acc-state-attn{color:var(--warn)}.acc-projects-block{gap:var(--s-4);padding-top:var(--s-4);border-top:1px solid var(--rule-soft);flex-direction:column;display:flex}.acc-projects{gap:var(--s-4);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.acc-proj{align-items:center;gap:var(--s-3);padding:var(--s-4) var(--s-5);border:1px solid var(--border);border-radius:var(--r-2xl);background:var(--panel);color:var(--text);box-shadow:var(--sh-card);cursor:pointer;text-align:left;font:inherit;min-width:0;display:flex}.acc-proj:hover{border-color:var(--border-strong);background:var(--panel-sunken)}.acc-proj-on,.acc-proj-on:hover{border-color:var(--accent-border);background:var(--accent-tint);box-shadow:var(--sh-card), 0 0 0 2px var(--accent-tint)}.acc-proj-icon{border-radius:var(--r-xl);background:var(--accent-tint);width:30px;height:30px;color:var(--accent);flex:none;justify-content:center;align-items:center;display:inline-flex}.acc-proj-text{flex-direction:column;flex:1;min-width:0;display:flex}.acc-proj-name{font-size:var(--fs-md);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.acc-proj-meta{font-size:var(--fs-tiny);color:var(--text-soft)}.acc-proj-badge{padding:2px var(--s-2);border-radius:var(--r-pill);background:var(--accent);color:var(--text-on-dark);font-size:var(--fs-micro);flex:none;font-weight:600}.acc-proj-new{justify-content:center;gap:var(--s-2);border-style:dashed;border-color:var(--border-strong);background:var(--panel-alt);color:var(--accent);box-shadow:none;font-weight:600}.acc-proj-new:hover{border-color:var(--accent);background:var(--accent-tint)}.acc-proj-plus{font-size:var(--fs-xl);line-height:1}@media (width<=900px){.acc-next{padding:var(--s-7);align-items:stretch}.acc-next-cta{width:100%}.acc-progress{gap:var(--s-2)}}.vp{min-width:0;padding:var(--s-10) var(--s-9) var(--s-12);gap:var(--s-9);flex-direction:column;flex:1;display:flex}.vp-head{gap:var(--s-6);align-items:flex-start;display:flex}.vp-head-text{gap:var(--s-3);flex-direction:column;flex:1;min-width:0;display:flex}.vp-thumb{object-fit:cover;border-radius:var(--r-2xl);border:1px solid var(--border);background:var(--panel-alt);width:180px;height:135px;box-shadow:var(--sh-card);flex:none}.vp-title{font-size:var(--fs-h1);letter-spacing:var(--track-tighter);margin:0;font-weight:600}.vp-sub{font-size:var(--fs-lg);color:var(--text-soft);margin:0}.vp-stats{gap:var(--s-3);margin-top:var(--s-1);flex-wrap:wrap;display:flex}.vp-stat{padding:5px var(--s-5);border-radius:var(--r-pill);background:var(--panel-inset);color:var(--text-soft);font-size:var(--fs-sm);align-items:baseline;gap:5px;display:inline-flex}.vp-stat strong{color:var(--text);font-weight:600}.vp-stat-ok{background:var(--status-done-bg);color:var(--status-done)}.vp-stat-ok strong{color:var(--status-done)}.vp-section{gap:var(--s-5);flex-direction:column;display:flex}.vp-section-head{align-items:center;gap:var(--s-3);display:flex}.vp-dot{border-radius:var(--r-pill);flex:none;width:10px;height:10px}.vp-section-title{font-size:var(--fs-xl);letter-spacing:var(--track-tight);margin:0;font-weight:600}.vp-section-meta{font-size:var(--fs-xs);color:var(--text-soft)}.vp-section-action{margin-left:auto}.vp-none{font-size:var(--fs-sm);color:var(--text-soft);margin:0}.vp-grid{gap:var(--s-5);grid-template-columns:repeat(auto-fill,minmax(210px,1fr));display:grid}.vp-grid-tole{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.vp-card{gap:var(--s-4);padding:var(--s-6);border:1px solid var(--border);border-radius:var(--r-3xl);background:var(--panel);color:var(--text);box-shadow:var(--sh-card);flex-direction:column;display:flex}.vp-card-fig{min-height:60px;color:var(--text-soft);justify-content:center;align-items:center;display:flex}.vp-card-body{flex-direction:column;gap:4px;min-width:0;display:flex}.vp-card-title{font-size:var(--fs-lg);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.vp-card-line{font-size:var(--fs-sm);color:var(--text-soft)}.vp-card-line strong{color:var(--text)}.vp-card-line-soft{font-size:var(--fs-tiny);color:var(--text-icon)}.vp-coupe-bar{border-radius:var(--r-sm);background:linear-gradient(#5f84b5,#496f9f);width:100%;height:30px}.vp-tole-fig{border:1px solid var(--border);border-radius:var(--r-2xl);padding:var(--s-3);background:#fff;justify-content:center;align-items:center;display:flex}.vp-empty{align-items:flex-start;gap:var(--s-5);padding:var(--s-9);border:1px dashed var(--border-strong);border-radius:var(--r-3xl);background:var(--panel);color:var(--text);flex-direction:column;display:flex}.vp-empty p{font-size:var(--fs-lg);color:var(--text-soft);max-width:60ch;margin:0}.vp-empty-actions{gap:var(--s-3);flex-wrap:wrap;display:flex}.ts{min-width:0;padding:var(--s-10) var(--s-9) var(--s-12);gap:var(--s-8);flex-direction:column;flex:1;display:flex}.ts-head{gap:var(--s-5);align-items:flex-start;display:flex}.ts-head-icon{border-radius:var(--r-2xl);background:var(--accent-tint);width:52px;height:52px;color:var(--accent);flex:none;justify-content:center;align-items:center;display:inline-flex}.ts-thumb{object-fit:cover;border-radius:var(--r-2xl);border:1px solid var(--border);background:var(--panel-alt);width:140px;height:105px;box-shadow:var(--sh-card);flex:none}.ts-title{margin:0 0 var(--s-2) 0;font-size:var(--fs-h1);letter-spacing:var(--track-tighter);font-weight:600}.ts-sub{color:var(--text-soft);font-size:var(--fs-md);line-height:var(--lh-normal);max-width:70ch;margin:0}.ts-params{gap:var(--s-5);padding:var(--s-5) var(--s-6);border:1px solid var(--border);border-radius:var(--r-2xl);background:var(--panel-alt);color:var(--text);flex-wrap:wrap;align-items:center;display:flex}.ts-toggle{align-items:center;gap:var(--s-2);font-size:var(--fs-sm);color:var(--text);cursor:pointer;display:inline-flex}.ts-toggle input{cursor:pointer;width:16px;height:16px;accent-color:var(--accent)}.ts-toggle-note{color:var(--text-soft);font-size:var(--fs-tiny)}.ts-price{align-items:center;gap:var(--s-3);font-size:var(--fs-sm);color:var(--text);margin-left:auto;display:inline-flex}.ts-price-input{align-items:center;gap:var(--s-1);padding:4px var(--s-3);border:1px solid var(--border);border-radius:var(--r-lg);background:var(--panel);display:inline-flex}.ts-price-input input{width:80px;font:inherit;font-family:var(--font-mono);color:var(--text);text-align:right;background:0 0;border:0;outline:none}.ts-price-input input:focus{outline:none}.ts-price-unit{color:var(--text-soft);font-size:var(--fs-tiny)}.ts-totals{gap:var(--s-4);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.ts-total{gap:var(--s-2);padding:var(--s-6) var(--s-7);background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:var(--r-2xl);box-shadow:var(--sh-card);flex-direction:column;display:flex}.ts-total-main{background:linear-gradient(to right, var(--accent-tint), var(--panel) 70%);border-color:var(--accent-border);grid-column:1/-1}.ts-totals-with-cost .ts-total-main{grid-column:auto}.ts-total-label{font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:var(--track-caps);color:var(--text-soft);font-weight:600}.ts-total-value{font-size:var(--fs-2xl);color:var(--text);font-weight:700;line-height:1}.ts-total-main .ts-total-value{color:var(--accent);font-size:32px}.ts-total-unit{font-size:var(--fs-md);color:var(--text-soft);font-weight:500}.ts-total-cost{background:var(--ok-bg);border-color:var(--ok-border);color:var(--text)}.ts-total-cost .ts-total-value{color:var(--ok)}.ts-section{gap:var(--s-3);flex-direction:column;display:flex}.ts-block-title{font-size:var(--fs-xl);letter-spacing:var(--track-tight);margin:0;font-weight:600}.ts-table-wrap{border:1px solid var(--border);border-radius:var(--r-2xl);background:var(--panel);overflow:hidden}.ts-table{border-collapse:collapse;width:100%;font-size:var(--fs-sm);color:var(--text)}.ts-table thead th{text-align:left;padding:var(--s-3) var(--s-5);color:var(--text-soft);font-weight:600;font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:var(--track-caps);background:var(--panel-sunken);border-bottom:1px solid var(--border)}.ts-table tbody td{padding:var(--s-3) var(--s-5);border-bottom:1px solid var(--rule-soft)}.ts-table tbody tr:last-child td{border-bottom:0}.ts-table tbody tr:hover td{background:var(--panel-sunken)}.ts-table tfoot td{padding:var(--s-3) var(--s-5);background:var(--panel-sunken);border-top:1px solid var(--border);color:var(--text);font-weight:600}.ts-num{text-align:right;font-variant-numeric:tabular-nums}.ts-profile{font-weight:500}.ts-cell-total{color:var(--text);font-weight:700}.ts-row-warn td{background:var(--warn-bg);color:var(--text)}.ts-row-warn:hover td{background:var(--warn-bg);filter:brightness(.98)}.ts-row-warn-msg{color:var(--warn);font-weight:500;font-size:var(--fs-tiny)}.ts-foot-label{text-align:right;color:var(--text-soft);text-transform:uppercase;letter-spacing:var(--track-caps);font-size:var(--fs-micro)}.ts-empty{padding:var(--s-9) var(--s-6);text-align:center;color:var(--text-soft);background:var(--panel-alt);border:1px dashed var(--border-strong);border-radius:var(--r-2xl);font-size:var(--fs-md)}.ts-alert{gap:var(--s-4);padding:var(--s-5) var(--s-6);border:1px solid var(--warn-border);border-radius:var(--r-2xl);background:var(--warn-bg);color:var(--text);box-shadow:var(--sh-card);display:flex}.ts-alert-icon{border-radius:var(--r-2xl);background:var(--panel);width:40px;height:40px;color:var(--warn);border:1px solid var(--warn-border);flex:none;justify-content:center;align-items:center;font-size:20px;font-weight:700;display:inline-flex}.ts-alert-body{gap:var(--s-3);flex-direction:column;flex:1;min-width:0;display:flex}.ts-alert-title{font-size:var(--fs-lg);color:var(--warn);margin:0;font-weight:600}.ts-alert-list{padding-left:var(--s-5);font-size:var(--fs-sm);color:var(--text);line-height:var(--lh-normal);margin:0}.ts-alert-list strong{color:var(--warn);font-weight:700}.ts-alert-cta{align-self:flex-start}
