:root{--font-size-base: 14px;--fs-xs: .786rem;--fs-sm: .893rem;--fs-md: 1rem;--fs-lg: 1.15rem;--fs-xl: 1.4rem;--fs-2xl: 1.8rem;--fs-3xl: 2.3rem;--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.5rem;--sp-6: 2rem;--sp-7: 3rem;--radius-sm: 3px;--radius: 5px;--radius-lg: 8px;--sidebar-width: 220px;--sidebar-width-collapsed: 52px;--topbar-height: 3.4rem;--font-sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, "Cascadia Mono", "Segoe UI Mono", Consolas, "Liberation Mono", monospace;--transition: .12s ease;--accent: #2563eb;--accent-hover: #1d4ed8;--accent-soft: #dbeafe;--accent-contrast: #ffffff}[data-accent=blue]{--accent: #2563eb;--accent-hover: #1d4ed8;--accent-soft: #dbeafe}[data-accent=orange]{--accent: #ea580c;--accent-hover: #c2410c;--accent-soft: #ffedd5}[data-accent=green]{--accent: #16a34a;--accent-hover: #15803d;--accent-soft: #dcfce7}[data-accent=purple]{--accent: #7c3aed;--accent-hover: #6d28d9;--accent-soft: #ede9fe}[data-accent=red]{--accent: #dc2626;--accent-hover: #b91c1c;--accent-soft: #fee2e2}[data-accent=teal]{--accent: #0d9488;--accent-hover: #0f766e;--accent-soft: #ccfbf1}:root,[data-theme=light]{--bg: #f1f3f6;--bg-raised: #ffffff;--bg-sunken: #e8ebf0;--bg-hover: #f4f6f9;--bg-active: var(--accent-soft);--sidebar-bg: #16202e;--sidebar-fg: #b9c4d2;--sidebar-fg-strong: #ffffff;--sidebar-hover: #223145;--sidebar-border: #24344a;--text: #16202e;--text-muted: #5c6a7d;--text-faint: #8896a8;--text-inverse: #ffffff;--border: #d5dbe4;--border-strong: #b6bfcc;--border-subtle: #e5e9ef;--success: #15803d;--success-bg: #dcfce7;--warning: #b45309;--warning-bg: #fef3c7;--danger: #b91c1c;--danger-bg: #fee2e2;--info: #1d4ed8;--info-bg: #dbeafe;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .06);--shadow: 0 2px 6px rgba(16, 24, 40, .09);--shadow-lg: 0 10px 32px rgba(16, 24, 40, .16);--diagram-bg: #ffffff;--diagram-sheet: #f7f9fc;--diagram-sheet-border: #334155;--diagram-waste: #eef1f6;--diagram-waste-hatch: #cbd5e1;--diagram-grid: #e2e8f0;--diagram-dimension: #475569;--diagram-cut: #dc2626;--diagram-margin: #94a3b8;--diagram-remnant: #16a34a;color-scheme:light}[data-theme=dark]{--bg: #0e141c;--bg-raised: #171f2b;--bg-sunken: #0a0f16;--bg-hover: #1e2836;--bg-active: #1e304a;--sidebar-bg: #0a0f16;--sidebar-fg: #94a3b8;--sidebar-fg-strong: #f1f5f9;--sidebar-hover: #1b2431;--sidebar-border: #1e2836;--text: #e8edf4;--text-muted: #9aa8ba;--text-faint: #6b7a8d;--text-inverse: #0e141c;--border: #2a3646;--border-strong: #3d4d61;--border-subtle: #202a37;--success: #4ade80;--success-bg: #052e16;--warning: #fbbf24;--warning-bg: #3a2606;--danger: #f87171;--danger-bg: #3f1212;--info: #60a5fa;--info-bg: #12244a;--accent-soft: #1e304a;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow: 0 2px 8px rgba(0, 0, 0, .5);--shadow-lg: 0 12px 36px rgba(0, 0, 0, .6);--diagram-bg: #171f2b;--diagram-sheet: #1c2634;--diagram-sheet-border: #8595a8;--diagram-waste: #141c26;--diagram-waste-hatch: #35435a;--diagram-grid: #263141;--diagram-dimension: #9aa8ba;--diagram-cut: #f87171;--diagram-margin: #5b6b81;--diagram-remnant: #4ade80;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{font-size:var(--font-size-base);-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font-sans);font-size:var(--fs-md);line-height:1.5;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5,h6{margin:0;font-weight:600;line-height:1.25;color:var(--text)}h1{font-size:var(--fs-xl)}h2{font-size:var(--fs-lg)}h3{font-size:var(--fs-md)}p{margin:0 0 var(--sp-3)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}code,kbd,pre,.mono{font-family:var(--font-mono);font-size:.92em}hr{border:0;border-top:1px solid var(--border);margin:var(--sp-4) 0}:focus{outline:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}.skip-link{position:absolute;left:-9999px;top:0;z-index:999;padding:var(--sp-2) var(--sp-4);background:var(--accent);color:var(--accent-contrast);border-radius:0 0 var(--radius) 0}.skip-link:focus{left:0}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--border-strong);border:2px solid var(--bg);border-radius:6px}*::-webkit-scrollbar-thumb:hover{background:var(--text-faint)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.stack{display:flex;flex-direction:column;gap:var(--sp-4)}.stack-2{display:flex;flex-direction:column;gap:var(--sp-2)}.row{display:flex;align-items:center;gap:var(--sp-3)}.row-2{display:flex;align-items:center;gap:var(--sp-2)}.wrap{flex-wrap:wrap}.spacer{flex:1 1 auto}.right{margin-left:auto}.text-muted{color:var(--text-muted)}.text-faint{color:var(--text-faint)}.text-sm{font-size:var(--fs-sm)}.text-xs{font-size:var(--fs-xs)}.text-right{text-align:right}.text-center{text-align:center}.nowrap{white-space:nowrap}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-4)}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-4)}.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-4)}@media (max-width: 1100px){.grid-4,.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 720px){.grid-2,.grid-3,.grid-4{grid-template-columns:minmax(0,1fr)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:.45rem .85rem;min-height:2.2rem;font-size:var(--fs-sm);font-weight:500;line-height:1.2;white-space:nowrap;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg-raised);color:var(--text);cursor:pointer;transition:background var(--transition),border-color var(--transition),color var(--transition);-webkit-user-select:none;user-select:none}.btn:hover:not(:disabled){background:var(--bg-hover);border-color:var(--text-faint)}.btn:active:not(:disabled){transform:translateY(.5px)}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){filter:brightness(.92)}.btn-ghost{background:transparent;border-color:transparent}.btn-ghost:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border)}.btn-subtle{background:var(--bg-sunken);border-color:transparent}.btn-subtle:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border)}.btn-sm{padding:.25rem .55rem;min-height:1.8rem;font-size:var(--fs-xs)}.btn-lg{padding:.7rem 1.4rem;min-height:2.9rem;font-size:var(--fs-md);font-weight:600}.btn-xl{padding:.95rem 2rem;min-height:3.4rem;font-size:var(--fs-lg);font-weight:600;letter-spacing:.02em}.btn-block{width:100%}.btn-icon{padding:0;width:2.2rem;min-height:2.2rem;flex:0 0 auto}.btn-icon.btn-sm{width:1.8rem;min-height:1.8rem}.btn.is-active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}[data-theme=dark] .btn.is-active{color:var(--text)}.btn-group{display:inline-flex;border:1px solid var(--border-strong);border-radius:var(--radius);overflow:hidden}.btn-group .btn{border:none;border-right:1px solid var(--border);border-radius:0;min-height:2.1rem}.btn-group .btn:last-child{border-right:none}.field{display:flex;flex-direction:column;gap:.3rem;min-width:0}.label{font-size:var(--fs-xs);font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.label .req{color:var(--danger);margin-left:.15rem}.input,.select,.textarea{width:100%;padding:.4rem .6rem;min-height:2.2rem;font-size:var(--fs-sm);color:var(--text);background:var(--bg-raised);border:1px solid var(--border-strong);border-radius:var(--radius);transition:border-color var(--transition),box-shadow var(--transition)}.input:hover:not(:disabled),.select:hover:not(:disabled){border-color:var(--text-faint)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}.input:disabled,.select:disabled,.textarea:disabled{background:var(--bg-sunken);color:var(--text-faint);cursor:not-allowed}.input.is-invalid,.select.is-invalid,.textarea.is-invalid{border-color:var(--danger)}.input.is-invalid:focus{box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 22%,transparent)}.textarea{min-height:5rem;resize:vertical;line-height:1.5}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:1.8rem;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - .85rem) 55%,calc(100% - .55rem) 55%;background-size:.3rem .3rem,.3rem .3rem;background-repeat:no-repeat}.field-error{font-size:var(--fs-xs);color:var(--danger)}.field-hint{font-size:var(--fs-xs);color:var(--text-faint)}.input-group .addon-btn{border-left:0;border-top-left-radius:0;border-bottom-left-radius:0;white-space:nowrap}.picker-list{display:flex;flex-direction:column;gap:6px;max-height:380px;overflow-y:auto;padding:6px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-sunken)}.picker-row{display:grid;grid-template-columns:1fr auto;grid-template-areas:"main price" "sub price";gap:2px 12px;align-items:center;width:100%;padding:10px 14px;text-align:left;font:inherit;color:var(--text);background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer}.picker-row:hover,.picker-row:focus-visible{border-color:var(--accent);outline:none}.picker-row.is-selected{border-color:var(--accent);background:var(--accent-soft)}.picker-main{grid-area:main;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.picker-sub{grid-area:sub;font-size:var(--fs-xs);color:var(--text-muted)}.picker-price{grid-area:price;display:flex;align-items:center;gap:6px;font-weight:600;white-space:nowrap}.card.unit-new{animation:unit-new-flash 2.4s ease-out}@keyframes unit-new-flash{0%,35%{box-shadow:0 0 0 3px var(--accent);border-color:var(--accent)}to{box-shadow:0 0 0 0 transparent}}@media (prefers-reduced-motion: reduce){.card.unit-new{animation:none;box-shadow:0 0 0 3px var(--accent)}}.cost-input{display:flex;align-items:center;gap:.35rem}.cost-input .input{min-height:1.9rem;padding:.2rem .45rem;max-width:7.5rem;text-align:right}.cost-input .input.is-edited{border-color:var(--warning);background:var(--warning-bg)}.cost-input .input.is-unpriced::placeholder{color:var(--warning)}.input-group{display:flex;align-items:stretch}.input-group .input{border-top-right-radius:0;border-bottom-right-radius:0}.input-group .select{width:auto;min-width:4.6rem;border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.input-group .addon{display:flex;align-items:center;padding:0 .55rem;font-size:var(--fs-xs);color:var(--text-muted);background:var(--bg-sunken);border:1px solid var(--border-strong);border-left:0;border-radius:0 var(--radius) var(--radius) 0;white-space:nowrap}.checkbox{display:inline-flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox input{width:.95rem;height:.95rem;accent-color:var(--accent);cursor:pointer;margin:0}.checkbox.is-disabled{opacity:.55;cursor:not-allowed}.switch{display:inline-flex;align-items:center;gap:var(--sp-2);cursor:pointer;font-size:var(--fs-sm)}.switch input{position:absolute;opacity:0;width:0;height:0}.switch .track{position:relative;width:2.2rem;height:1.2rem;flex:0 0 auto;background:var(--border-strong);border-radius:999px;transition:background var(--transition)}.switch .track:after{content:"";position:absolute;top:.15rem;left:.15rem;width:.9rem;height:.9rem;background:#fff;border-radius:50%;transition:transform var(--transition)}.switch input:checked+.track{background:var(--accent)}.switch input:checked+.track:after{transform:translate(1rem)}.switch input:focus-visible+.track{outline:2px solid var(--accent);outline-offset:2px}.card{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.card-header{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border-subtle)}.card-header h2,.card-header h3{font-size:var(--fs-md);font-weight:600}.card-body{padding:var(--sp-4)}.card-body.tight{padding:var(--sp-3)}.card-body.flush{padding:0}.card-footer{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--border-subtle);background:var(--bg-sunken);border-radius:0 0 var(--radius-lg) var(--radius-lg)}.stat{display:flex;flex-direction:column;gap:.15rem;padding:var(--sp-4);background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.stat-label{font-size:var(--fs-xs);font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.stat-value{font-size:var(--fs-2xl);font-weight:650;line-height:1.1;font-variant-numeric:tabular-nums}.stat-sub{font-size:var(--fs-xs);color:var(--text-faint)}.stat-accent .stat-value{color:var(--accent)}.stat-good .stat-value{color:var(--success)}.stat-warn .stat-value{color:var(--warning)}.stat-bad .stat-value{color:var(--danger)}.table-wrap{width:100%;overflow-x:auto;border-radius:var(--radius-lg)}.table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.table th,.table td{padding:.5rem .7rem;text-align:left;border-bottom:1px solid var(--border-subtle);vertical-align:middle}.table th{position:sticky;top:0;z-index:1;font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:var(--bg-sunken);border-bottom:1px solid var(--border);white-space:nowrap}.table tbody tr:hover{background:var(--bg-hover)}.table tbody tr:last-child td{border-bottom:none}.table td.num,.table th.num{text-align:right;font-variant-numeric:tabular-nums}.table td.actions{text-align:right;white-space:nowrap}.table .row-actions{display:inline-flex;gap:.2rem}.table-compact th,.table-compact td{padding:.3rem .5rem}.table-input{width:100%;padding:.25rem .4rem;min-height:1.85rem;font-size:var(--fs-sm);background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text)}.table-input:hover{border-color:var(--border);background:var(--bg-raised)}.table-input:focus{outline:none;background:var(--bg-raised);border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 22%,transparent)}.table-input.is-invalid{border-color:var(--danger);background:var(--danger-bg)}.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.1rem .45rem;font-size:var(--fs-xs);font-weight:600;line-height:1.5;border-radius:999px;background:var(--bg-sunken);color:var(--text-muted);white-space:nowrap}.badge-success{background:var(--success-bg);color:var(--success)}.badge-warning{background:var(--warning-bg);color:var(--warning)}.badge-danger{background:var(--danger-bg);color:var(--danger)}.badge-info{background:var(--info-bg);color:var(--info)}.badge-accent{background:var(--accent-soft);color:var(--accent)}[data-theme=dark] .badge-accent{color:var(--text)}.alert{display:flex;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);font-size:var(--fs-sm);border:1px solid transparent;border-radius:var(--radius);line-height:1.5}.alert-icon{flex:0 0 auto;margin-top:.1rem}.alert-body{min-width:0;flex:1}.alert-title{font-weight:600;margin-bottom:.15rem}.alert ul{margin:.35rem 0 0;padding-left:1.1rem}.alert li{margin-bottom:.2rem}.alert-info{background:var(--info-bg);color:var(--info);border-color:color-mix(in srgb,var(--info) 30%,transparent)}.alert-success{background:var(--success-bg);color:var(--success);border-color:color-mix(in srgb,var(--success) 30%,transparent)}.alert-warning{background:var(--warning-bg);color:var(--warning);border-color:color-mix(in srgb,var(--warning) 35%,transparent)}.alert-danger{background:var(--danger-bg);color:var(--danger);border-color:color-mix(in srgb,var(--danger) 30%,transparent)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:var(--sp-4);background:#0a0f168c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade-in .12s ease}.modal{width:100%;max-width:34rem;max-height:calc(100vh - 4rem);display:flex;flex-direction:column;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);animation:slide-up .14s ease}.modal-sm{max-width:24rem}.modal-lg{max-width:52rem}.modal-xl{max-width:72rem}.modal-header{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4);border-bottom:1px solid var(--border-subtle)}.modal-header h2{font-size:var(--fs-lg);flex:1}.modal-body{padding:var(--sp-4);overflow-y:auto;flex:1}.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--border-subtle);background:var(--bg-sunken);border-radius:0 0 var(--radius-lg) var(--radius-lg)}.toast-region{position:fixed;right:var(--sp-4);bottom:var(--sp-4);z-index:300;display:flex;flex-direction:column;gap:var(--sp-2);max-width:26rem;pointer-events:none}.toast{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);font-size:var(--fs-sm);background:var(--bg-raised);border:1px solid var(--border);border-left:3px solid var(--text-faint);border-radius:var(--radius);box-shadow:var(--shadow-lg);pointer-events:auto;animation:slide-up .14s ease}.toast-success{border-left-color:var(--success)}.toast-error{border-left-color:var(--danger)}.toast-warning{border-left-color:var(--warning)}.toast-info{border-left-color:var(--info)}.toast-body{flex:1;min-width:0}.toast-title{font-weight:600;margin-bottom:.1rem}.tip{position:relative;display:inline-flex}.tip>.tip-content{position:absolute;z-index:150;bottom:calc(100% + .4rem);left:50%;transform:translate(-50%);padding:.25rem .5rem;font-size:var(--fs-xs);font-weight:500;white-space:nowrap;color:#fff;background:#1f2937;border-radius:var(--radius-sm);box-shadow:var(--shadow);opacity:0;visibility:hidden;transition:opacity var(--transition)}.tip:hover>.tip-content,.tip:focus-within>.tip-content{opacity:1;visibility:visible}.tip[data-placement=bottom]>.tip-content{bottom:auto;top:calc(100% + .4rem)}.table td.actions .tip>.tip-content{left:auto;right:0;transform:none}.tabs{display:flex;gap:.15rem;border-bottom:1px solid var(--border);overflow-x:auto}.tab{padding:.5rem .9rem;font-size:var(--fs-sm);font-weight:500;color:var(--text-muted);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap;transition:color var(--transition),border-color var(--transition)}.tab:hover{color:var(--text);background:var(--bg-hover)}.tab[aria-selected=true]{color:var(--accent);border-bottom-color:var(--accent)}.empty{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);padding:var(--sp-7) var(--sp-4);text-align:center;color:var(--text-muted)}.empty-icon{color:var(--text-faint);opacity:.7}.empty h3{font-size:var(--fs-lg);color:var(--text)}.empty p{max-width:30rem;margin:0;font-size:var(--fs-sm)}.spinner{display:inline-block;border:2px solid color-mix(in srgb,currentColor 25%,transparent);border-top-color:currentColor;border-radius:50%;animation:spin .62s linear infinite}.progress-track{width:100%;height:.4rem;background:var(--bg-sunken);border-radius:999px;overflow:hidden}.progress-bar{height:100%;background:var(--accent);border-radius:999px;transition:width .18s ease}.progress-bar.is-indeterminate{width:35%!important;animation:indeterminate 1.1s ease-in-out infinite}@keyframes indeterminate{0%{margin-left:-35%}to{margin-left:100%}}.meter{height:.5rem;background:var(--bg-sunken);border-radius:999px;overflow:hidden}.meter-fill{height:100%;border-radius:999px;transition:width .2s ease}.meter-good{background:var(--success)}.meter-mid{background:var(--warning)}.meter-low{background:var(--danger)}.page{padding:var(--sp-5);max-width:1600px;margin:0 auto}.page-wide{max-width:none}.page-header{display:flex;align-items:flex-start;gap:var(--sp-4);flex-wrap:wrap;margin-bottom:var(--sp-5)}.page-header h1{font-size:var(--fs-2xl)}.page-header .subtitle{font-size:var(--fs-sm);color:var(--text-muted);margin-top:.15rem}.page-header .actions{margin-left:auto;display:flex;gap:var(--sp-2);flex-wrap:wrap}.toolbar{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;padding:var(--sp-3);background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:var(--sp-4)}.toolbar-sticky{position:sticky;top:0;z-index:40;border-radius:0;border-left:0;border-right:0;margin:0 calc(-1 * var(--sp-5));padding-left:var(--sp-5);padding-right:var(--sp-5);box-shadow:var(--shadow-sm)}.divider-v{width:1px;align-self:stretch;background:var(--border);margin:0 .2rem}.stepper{display:flex;align-items:center;gap:0;margin-bottom:var(--sp-5);overflow-x:auto;padding-bottom:.2rem}.step{display:flex;align-items:center;gap:var(--sp-2);padding:.4rem .75rem;font-size:var(--fs-sm);color:var(--text-muted);background:none;border:none;cursor:pointer;white-space:nowrap;border-radius:var(--radius)}.step:hover:not(:disabled){background:var(--bg-hover);color:var(--text)}.step:disabled{cursor:not-allowed;opacity:.55}.step-num{display:inline-flex;align-items:center;justify-content:center;width:1.55rem;height:1.55rem;flex:0 0 auto;font-size:var(--fs-xs);font-weight:600;border-radius:50%;border:1.5px solid var(--border-strong);color:var(--text-muted);background:var(--bg-raised)}.step.is-active{color:var(--text);font-weight:600}.step.is-active .step-num{border-color:var(--accent);background:var(--accent);color:var(--accent-contrast)}.step.is-done .step-num{border-color:var(--success);background:var(--success);color:#fff}.step.is-done{color:var(--text)}.step-line{flex:1 1 1.5rem;min-width:1rem;height:1.5px;background:var(--border)}.search{position:relative;display:flex;align-items:center;min-width:14rem;flex:0 1 22rem}.search-fill{width:100%}.search-fill .search{flex:none;width:100%}.search .search-icon{position:absolute;left:.55rem;color:var(--text-faint);pointer-events:none}.search .input{padding-left:2rem}@media (max-width: 900px){.page{padding:var(--sp-4)}.toolbar-sticky{margin:0 calc(-1 * var(--sp-4));padding-left:var(--sp-4);padding-right:var(--sp-4)}.page-header .actions{margin-left:0;width:100%}}.material-role-row{display:grid;grid-template-columns:minmax(130px,1.1fr) minmax(150px,1.8fr) 84px 150px 62px;gap:var(--sp-2);align-items:center}.material-role-row .role-parts{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding-top:4px;border-top:1px dashed var(--border-subtle, #e2e8f0)}.part-chip{font:inherit;font-size:var(--fs-xs, 11px);padding:2px 8px;border-radius:999px;border:1px solid var(--border, #cbd5e1);background:var(--bg-surface, #fff);color:var(--text-muted, #64748b);cursor:pointer}.part-chip.is-on{background:var(--accent, #3b82f6);border-color:var(--accent, #3b82f6);color:#fff}.part-chip:disabled{opacity:.4;cursor:not-allowed;text-decoration:line-through}.material-role-row .role-rate{display:flex;align-items:center;min-height:36px}.material-role-row .role-actions{display:flex;gap:2px;justify-content:flex-end}@media (max-width: 900px){.material-role-row{grid-template-columns:1fr 1fr}.material-role-row>:nth-child(1),.material-role-row>:nth-child(2){grid-column:1 / -1}}.edge-picker{display:inline-flex;gap:2px}.edge-toggle{width:1.6rem;height:1.6rem;padding:0;font:inherit;font-size:var(--fs-xs);font-weight:600;line-height:1;color:var(--text-faint);background:var(--bg-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius);cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease}.edge-toggle:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.edge-toggle.is-on{color:var(--accent-contrast);background:var(--accent);border-color:var(--accent)}.edge-toggle:disabled{cursor:not-allowed;opacity:.55}.edge-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.compartment-table{table-layout:fixed;width:100%;min-width:58rem}.compartment-table th.c,.compartment-table td.c,.compartment-table td.c .table-input{text-align:center}.compartment-table td:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compartment-table .size-cell{display:flex;align-items:center;justify-content:center;gap:4px}.compartment-table .size-cell .table-input{flex:none;width:5rem}.compartment-table .size-cell>span{flex:none;width:.9rem}.compartment-table .split-cell{display:flex;align-items:center;justify-content:center;gap:4px}.compartment-table .split-cell input{flex:none;width:3rem}.compartment-table .split-cell select{flex:none;width:6.5rem}.compartment-table td.c>.table-input{width:4.5rem}.lookup-item{display:flex;align-items:center;gap:.5rem;padding:0 .5rem 0 0;border-bottom:1px solid var(--border-subtle)}.lookup-item:hover{background:var(--bg-subtle)}.lookup-item.is-picked{background:var(--accent-subtle, rgba(59, 130, 246, .08))}.lookup-row{flex:1;min-width:0;display:block;width:100%;padding:.55rem .75rem;background:none;border:0;text-align:left;font:inherit;color:inherit;cursor:pointer}.lookup-row:hover{color:var(--accent)}.lookup-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.lookup-item .row-actions{display:inline-flex;gap:.2rem;flex-shrink:0}.preset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--sp-3);margin-top:var(--sp-3)}.preset-card{position:relative;border:1.5px solid var(--border);border-radius:var(--radius-md, 8px);background:var(--bg-raised);padding:var(--sp-3);cursor:pointer;display:flex;flex-direction:column;justify-content:space-between;gap:var(--sp-2);transition:border-color var(--transition),box-shadow var(--transition),transform var(--transition)}.preset-card:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 4px 14px #00000014}.preset-card.is-active{border-color:var(--accent);background:var(--accent-subtle, rgba(37, 99, 235, .06));box-shadow:0 0 0 1px var(--accent),0 4px 12px #2563eb1f}.preset-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-2)}.preset-card-title{font-weight:600;font-size:var(--fs-md, .95rem);color:var(--text);margin:0}.preset-card-desc{font-size:var(--fs-xs, .8rem);color:var(--text-muted);line-height:1.4;margin:2px 0 0}.preset-card-specs{display:flex;flex-direction:column;gap:4px;font-size:var(--fs-xs, .8rem);background:var(--bg-sunken);padding:var(--sp-2);border-radius:var(--radius-sm, 6px);border:1px solid var(--border-subtle)}.preset-card-actions{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);margin-top:auto;padding-top:var(--sp-2);border-top:1px solid var(--border-subtle)}.part-material-btn{display:flex;align-items:center;justify-content:space-between;width:100%;padding:6px 10px;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-sm, 6px);cursor:pointer;text-align:left;font-size:var(--fs-xs, .82rem);color:var(--text);transition:all var(--transition)}.part-material-btn:hover{border-color:var(--accent);background:var(--bg-hover);box-shadow:0 2px 6px #0000000d}.part-material-btn.has-override{border-color:var(--accent);background:var(--accent-subtle, rgba(37, 99, 235, .05));font-weight:500}.doc-preview-wrapper{background:var(--bg-sunken, #f8fafc);border:1px solid var(--border);border-radius:var(--radius-md, 8px);padding:var(--sp-4);margin-top:var(--sp-3);overflow-x:auto}.doc-paper{background:#fff;color:#111827;box-shadow:0 4px 20px #0000001f;border-radius:4px;max-width:860px;margin:0 auto;padding:18mm 14mm;min-height:297mm;box-sizing:border-box}.doc-paper .print-only{display:block!important}.sync-control-banner{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:12px 18px;background:var(--bg-sunken, #f8fafc);border:1px solid var(--border);border-radius:var(--radius-md, 8px);margin-top:var(--sp-4);margin-bottom:var(--sp-3);flex-wrap:wrap;transition:all var(--transition)}.sync-control-banner.is-active{background:var(--accent-subtle, rgba(37, 99, 235, .05));border-color:var(--accent)}.sync-indicator{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all var(--transition)}.sync-indicator.is-active{background:var(--accent, #2563eb);color:#fff}.sync-indicator.is-inactive{background:var(--border, #cbd5e1);color:var(--text-muted, #64748b)}.app-shell{display:flex;min-height:100vh}.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:60;width:var(--sidebar-width);display:flex;flex-direction:column;background:var(--sidebar-bg);color:var(--sidebar-fg);border-right:1px solid var(--sidebar-border);transition:width var(--transition),transform var(--transition)}.sidebar.is-collapsed{width:var(--sidebar-width-collapsed)}.sidebar-brand{display:flex;align-items:center;gap:var(--sp-3);min-height:var(--topbar-height);padding:var(--sp-2) var(--sp-3);flex:0 0 auto;border-bottom:1px solid var(--sidebar-border);overflow:hidden}.sidebar-mark{display:flex;align-items:center;justify-content:center;width:1.9rem;height:1.9rem;flex:0 0 auto;border-radius:var(--radius);background:var(--accent);color:#fff}.sidebar-name{font-size:var(--fs-sm);font-weight:650;line-height:1.15;color:var(--sidebar-fg-strong);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-name small{display:block;font-size:var(--fs-xs);font-weight:400;line-height:1.25;color:var(--sidebar-fg);opacity:.75;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.sidebar-nav{flex:1;overflow-y:auto;overflow-x:hidden;padding:var(--sp-3) var(--sp-2)}.nav-section{margin-top:var(--sp-4);margin-bottom:var(--sp-1);padding:0 var(--sp-2);font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--sidebar-fg);opacity:.55;white-space:nowrap}.nav-section:first-child{margin-top:0}.sidebar.is-collapsed .nav-section{height:1px;overflow:hidden;color:transparent;margin:var(--sp-3) var(--sp-2);background:var(--sidebar-border)}.nav-item{display:flex;align-items:center;gap:var(--sp-3);padding:.5rem var(--sp-2);margin-bottom:1px;font-size:var(--fs-sm);color:var(--sidebar-fg);border-radius:var(--radius);text-decoration:none;white-space:nowrap;overflow:hidden;transition:background var(--transition),color var(--transition)}.nav-item:hover{background:var(--sidebar-hover);color:var(--sidebar-fg-strong);text-decoration:none}.nav-item svg{flex:0 0 auto}.nav-item.is-active{background:var(--accent);color:#fff;font-weight:500}.nav-item.is-active:hover{background:var(--accent-hover)}.sidebar.is-collapsed .nav-item{justify-content:center;padding:.5rem 0}.sidebar.is-collapsed .nav-label{display:none}.sidebar-footer{flex:0 0 auto;padding:var(--sp-2);border-top:1px solid var(--sidebar-border)}.sidebar-toggle{display:flex;align-items:center;gap:var(--sp-3);width:100%;padding:.45rem var(--sp-2);font-size:var(--fs-sm);color:var(--sidebar-fg);background:none;border:none;border-radius:var(--radius);cursor:pointer;white-space:nowrap;overflow:hidden}.sidebar-toggle:hover{background:var(--sidebar-hover);color:var(--sidebar-fg-strong)}.sidebar.is-collapsed .sidebar-toggle{justify-content:center;padding:.45rem 0}.app-main{flex:1;min-width:0;margin-left:var(--sidebar-width);display:flex;flex-direction:column;transition:margin-left var(--transition)}.app-shell.is-collapsed .app-main{margin-left:var(--sidebar-width-collapsed)}.topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:var(--sp-3);height:var(--topbar-height);padding:0 var(--sp-5);flex:0 0 auto;background:var(--bg-raised);border-bottom:1px solid var(--border)}.topbar-title{font-size:var(--fs-md);font-weight:600}.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:var(--sp-2)}.app-content{flex:1;min-width:0}.mobile-only{display:none}.user-menu{position:relative}.user-chip{display:flex;align-items:center;gap:var(--sp-2);padding:.25rem .5rem .25rem .25rem;background:none;border:1px solid transparent;border-radius:999px;cursor:pointer;font-size:var(--fs-sm)}.user-chip:hover{background:var(--bg-hover);border-color:var(--border)}.avatar{display:flex;align-items:center;justify-content:center;width:1.8rem;height:1.8rem;flex:0 0 auto;font-size:var(--fs-xs);font-weight:600;color:#fff;background:var(--accent);border-radius:50%}.menu-popover{position:absolute;right:0;top:calc(100% + .4rem);z-index:90;min-width:13rem;padding:var(--sp-1);background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);animation:slide-up .11s ease}.menu-head{padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border-subtle);margin-bottom:var(--sp-1)}.menu-item{display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:.4rem var(--sp-3);font-size:var(--fs-sm);text-align:left;color:var(--text);background:none;border:none;border-radius:var(--radius-sm);cursor:pointer;text-decoration:none}.menu-item:hover{background:var(--bg-hover);text-decoration:none}.menu-item.is-danger{color:var(--danger)}.sidebar-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;background:#0a0f1680;animation:fade-in .12s ease}@media (max-width: 1000px){.sidebar,.sidebar.is-collapsed{width:var(--sidebar-width-collapsed)}.sidebar .nav-label,.sidebar .sidebar-name small,.sidebar .sidebar-toggle span{display:none}.sidebar .nav-item{justify-content:center;padding:.5rem 0}.sidebar .nav-section{height:1px;overflow:hidden;color:transparent;margin:var(--sp-3) var(--sp-2);background:var(--sidebar-border)}.app-main,.app-shell.is-collapsed .app-main{margin-left:var(--sidebar-width-collapsed)}}@media (max-width: 640px){.sidebar,.sidebar.is-collapsed{transform:translate(-100%);width:var(--sidebar-width)}.sidebar.is-open{transform:translate(0);box-shadow:var(--shadow-lg)}.sidebar.is-open .nav-label,.sidebar.is-open .sidebar-toggle span{display:inline}.sidebar.is-open .nav-item{justify-content:flex-start;padding:.5rem var(--sp-2)}.app-main,.app-shell.is-collapsed .app-main{margin-left:0}.topbar{padding:0 var(--sp-4)}.mobile-only{display:inline-flex}}.diagram-panel{display:flex;flex-direction:column;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.diagram-toolbar{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border-subtle);background:var(--bg-sunken)}.diagram-stage{position:relative;overflow:hidden;background:var(--diagram-bg);touch-action:none;min-height:22rem;height:62vh;cursor:grab}.diagram-stage.is-panning{cursor:grabbing}.diagram-stage.is-editing{cursor:default}.diagram-stage.is-fullscreen{height:calc(100vh - 12rem)}.diagram-stage svg{display:block;width:100%;height:100%}.diagram-hint{position:absolute;left:var(--sp-3);bottom:var(--sp-3);padding:.2rem .5rem;font-size:var(--fs-xs);color:var(--text-faint);background:color-mix(in srgb,var(--bg-raised) 88%,transparent);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);pointer-events:none}.zoom-readout{min-width:3.4rem;text-align:center;font-size:var(--fs-xs);font-variant-numeric:tabular-nums;color:var(--text-muted)}.svg-sheet{fill:var(--diagram-sheet);stroke:var(--diagram-sheet-border);stroke-width:1.5;vector-effect:non-scaling-stroke}.svg-usable{fill:none;stroke:var(--diagram-margin);stroke-width:1;stroke-dasharray:5 4;vector-effect:non-scaling-stroke}.svg-waste{fill:var(--diagram-waste);stroke:var(--diagram-waste-hatch);stroke-width:.5;vector-effect:non-scaling-stroke}.svg-piece{stroke:var(--diagram-sheet-border);stroke-width:1;vector-effect:non-scaling-stroke;transition:opacity .1s ease}.svg-piece.is-mono{fill:var(--bg-raised)}.svg-piece.is-selected{stroke:var(--accent);stroke-width:2.5}.svg-piece.is-locked{stroke-dasharray:4 2}.svg-piece.is-draggable{cursor:move}.svg-piece.is-invalid{stroke:var(--danger);stroke-width:2.5}.svg-piece-label{font-family:var(--font-sans);font-weight:600;fill:#0f172a;text-anchor:middle;dominant-baseline:middle;pointer-events:none;-webkit-user-select:none;user-select:none}.svg-piece-sub{font-family:var(--font-sans);font-weight:400;fill:#334155;text-anchor:middle;dominant-baseline:middle;pointer-events:none;-webkit-user-select:none;user-select:none}.svg-piece-label.on-dark{fill:#f8fafc}.svg-piece-sub.on-dark{fill:#e2e8f0}.svg-cut-line{stroke:var(--diagram-cut);stroke-width:1.2;stroke-dasharray:7 4;fill:none;vector-effect:non-scaling-stroke;pointer-events:none}.svg-kerf{fill:var(--diagram-cut);opacity:.16;pointer-events:none}.svg-dim-line{stroke:var(--diagram-dimension);stroke-width:1;fill:none;vector-effect:non-scaling-stroke;pointer-events:none}.svg-dim-text{font-family:var(--font-sans);fill:var(--diagram-dimension);text-anchor:middle;dominant-baseline:middle;pointer-events:none;-webkit-user-select:none;user-select:none}.svg-remnant{fill:none;stroke:var(--diagram-remnant);stroke-width:1.4;stroke-dasharray:6 3;vector-effect:non-scaling-stroke;pointer-events:none}.svg-remnant-text{font-family:var(--font-sans);font-weight:600;fill:var(--diagram-remnant);text-anchor:middle;dominant-baseline:middle;pointer-events:none;-webkit-user-select:none;user-select:none}.svg-grid{stroke:var(--diagram-grid);stroke-width:.5;vector-effect:non-scaling-stroke}.legend{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-4)}.legend-item{display:inline-flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-xs)}.legend-swatch{width:.85rem;height:.85rem;flex:0 0 auto;border:1px solid var(--border-strong);border-radius:2px}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 17rem;gap:var(--sp-4);align-items:start}@media (max-width: 1100px){.workspace{grid-template-columns:minmax(0,1fr)}}.inspector{position:sticky;top:calc(var(--topbar-height) + var(--sp-4))}.inspector .card-body{display:flex;flex-direction:column;gap:var(--sp-3)}.cut-list{list-style:none;margin:0;padding:0;font-size:var(--fs-sm)}.cut-list li{display:flex;align-items:baseline;gap:var(--sp-3);padding:.35rem .6rem;border-bottom:1px solid var(--border-subtle)}.cut-list li:last-child{border-bottom:none}.cut-list li:hover{background:var(--bg-hover)}.cut-step{flex:0 0 auto;min-width:2rem;font-size:var(--fs-xs);font-weight:600;font-variant-numeric:tabular-nums;color:var(--text-faint)}.cut-type{flex:0 0 auto;min-width:4.6rem;font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.03em}.cut-type-rip{color:var(--info)}.cut-type-crosscut{color:var(--accent)}.cut-type-trim{color:var(--text-faint)}.cut-type-piece{color:var(--success)}.cut-type-extract{color:var(--warning)}.print-only{display:none}@font-face{font-family:Quote Bank Gothic;src:local("BankGothic Md BT"),local("BankGothic Md BT Medium"),local("BankGothicMdBT-Medium"),local("Bank Gothic Medium BT"),url(/fonts/BankGothic%20Md%20BT.ttf) format("truetype"),url(/fonts/BankGothicMediumBT.ttf) format("truetype");font-display:swap}@media print{@page{size:A4 portrait;margin:0}@page diagram{size:A4 landscape;margin:0}.report,.quote{padding:12mm 10mm;box-sizing:border-box}.quote-page1,.quote-details,.quote-box,.report-sheet{padding-top:4mm}html{font-size:10pt}body{background:#fff!important;color:#000!important}:root,[data-theme=dark]{--bg: #ffffff;--bg-raised: #ffffff;--bg-sunken: #f4f4f4;--bg-hover: #ffffff;--text: #000000;--text-muted: #333333;--text-faint: #666666;--border: #999999;--border-strong: #666666;--border-subtle: #cccccc;--shadow-sm: none;--shadow: none;--shadow-lg: none;--diagram-bg: #ffffff;--diagram-sheet: #ffffff;--diagram-sheet-border: #000000;--diagram-waste: #f2f2f2;--diagram-waste-hatch: #b0b0b0;--diagram-dimension: #333333;--diagram-cut: #cc0000;--diagram-margin: #888888;--diagram-remnant: #007700;--diagram-grid: #e0e0e0}.no-print,.sidebar,.topbar,.toolbar,.diagram-toolbar,.toast-region,.modal-backdrop,.sidebar-scrim,.btn,.stepper,.tabs{display:none!important}.print-only{display:block}.app-main,.app-shell.is-collapsed .app-main{margin-left:0!important}.page{padding:0!important;max-width:none!important}.card,.stat{border:1px solid var(--border)!important;box-shadow:none!important;break-inside:avoid}a{color:#000!important;text-decoration:none!important}}.report{font-size:9.5pt;line-height:1.4}.report-header{display:flex;justify-content:space-between;align-items:flex-start;gap:8mm;padding-bottom:3mm;margin-bottom:5mm;border-bottom:1.5pt solid #000}.report-company{font-size:13pt;font-weight:700}.report-company .meta{font-size:8.5pt;font-weight:400;color:#444;line-height:1.35}.report-title{text-align:right}.report-title h1{font-size:15pt;margin-bottom:1mm}.report-title .meta{font-size:8.5pt;color:#444}.report-section{margin-bottom:6mm;break-inside:avoid}.report-section>h2{font-size:10.5pt;text-transform:uppercase;letter-spacing:.06em;padding-bottom:1mm;margin-bottom:2.5mm;border-bottom:.75pt solid #666}.report-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2mm 5mm}.report-grid.cols-3{grid-template-columns:repeat(3,1fr)}.report-field .k{font-size:7.5pt;text-transform:uppercase;letter-spacing:.05em;color:#555}.report-field .v{font-size:9.5pt;font-weight:600}.report table{width:100%;border-collapse:collapse;font-size:8.5pt}.report table th,.report table td{padding:1.2mm 2mm;border:.5pt solid #999;text-align:left}.report table th{background:#eee!important;font-weight:700;text-transform:uppercase;font-size:7.5pt;letter-spacing:.04em;-webkit-print-color-adjust:exact;print-color-adjust:exact}.report table td.num,.report table th.num{text-align:right;font-variant-numeric:tabular-nums}.report thead{display:table-header-group}.report tr,.report-box{break-inside:avoid}.report-box h3{font-size:9pt;text-transform:uppercase;letter-spacing:.05em;color:#333;margin:4mm 0 1.5mm}.report-box-top{display:grid;grid-template-columns:62mm 1fr;gap:6mm;align-items:start}.report-sketch{border:.5pt solid #999;padding:1mm}.report-sketch svg{width:100%;height:auto}.report table.report-box-price{width:72mm;margin:4mm 0 0 auto}.report-box-price tfoot th{font-size:9.5pt;text-transform:none;letter-spacing:0}.quote{--quote-red: #c00000;font-family:Calibri,Segoe UI,Arial,sans-serif}.quote-head{position:relative;padding-top:6mm}.quote-date{position:absolute;top:0;right:0;font-size:10pt}.quote-brand{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8mm;padding:4mm 0 2mm}.quote-logo{display:flex;align-items:center;gap:4mm}.quote-logo-img{height:26mm;width:auto;object-fit:contain}.quote-mark{font-family:Georgia,Times New Roman,serif;font-size:34pt;font-weight:700;letter-spacing:-.05em;line-height:1}.quote-company{text-align:center;font-size:11pt;line-height:1.5}.quote-name{font-family:Quote Bank Gothic,BankGothic Md BT,Bank Gothic Medium BT,Bank Gothic Medium,Bank Gothic,Copperplate Gothic Bold,Copperplate Gothic,Copperplate,sans-serif;color:var(--quote-red);font-size:16pt;font-weight:400;letter-spacing:.06em;text-transform:uppercase;margin-bottom:1mm}.quote-title{margin:8mm 0 5mm;padding:1.5mm 0;border-top:1pt solid var(--quote-red);border-bottom:1pt solid var(--quote-red);color:var(--quote-red);font-size:20pt;text-align:center}.quote-billto{font-size:10.5pt;line-height:1.5;margin-bottom:5mm}.quote-billname{font-weight:700;font-size:11.5pt}.quote table.quote-table{width:100%;border-collapse:collapse;font-size:9.5pt;border:1pt solid var(--quote-red);margin-bottom:5mm}.quote .quote-table th{background:var(--quote-red)!important;color:#fff;font-weight:400;text-transform:none;letter-spacing:0;font-size:10pt;text-align:center;border:1pt solid var(--quote-red);-webkit-print-color-adjust:exact;print-color-adjust:exact}.quote .quote-table td{border:0;border-left:1pt solid var(--quote-red);padding:1.4mm 2.5mm}.quote .quote-table tbody tr+tr td{border-top:.5pt solid #f0c8c8}.quote .quote-table tfoot td{border-top:1pt solid var(--quote-red);text-align:center}.quote-section{break-inside:avoid;margin-top:2mm}.quote-h{color:var(--quote-red);font-size:12pt;font-weight:700;margin:4mm 0 2mm}.quote-page1{break-after:page}.quote-details{break-before:page}.quote .quote-form .quote-col{width:20mm}.quote .quote-form tbody tr.quote-fill td{height:54mm;vertical-align:top;border-top:0}.quote .quote-form tfoot td{padding:1mm 2.5mm}.quote-uses{display:grid;grid-template-columns:1fr;gap:2.5mm;font-size:9pt;line-height:1.45}.quote-uses-title{font-weight:700;margin-bottom:.5mm}.quote-uses ul{margin:0;padding-left:4.5mm;list-style:disc}.quote .quote-form .quote-total-label{border-left:1pt solid var(--quote-red);text-align:center}.quote-box-top{display:grid;grid-template-columns:70mm 1fr;gap:6mm;align-items:start}.quote-box-top .quote-drawing{width:auto;margin:0}.quote-box{break-inside:avoid;margin-bottom:8mm}.quote-drawing{width:120mm;margin:4mm auto}.quote-drawing svg{width:100%!important;max-width:none!important;height:auto!important}.quote-schedule{margin:3mm 0 5mm;font-size:9pt;line-height:1.5}.quote .quote-form td.num,.quote .quote-form th.num{white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums}.quote .quote-form .quote-col{width:24mm}.quote-schedule>div{display:grid;grid-template-columns:38mm 32mm 1fr;column-gap:3mm}.quote-schedule-label{font-weight:700}.quote-schedule-amount{text-align:right;font-variant-numeric:tabular-nums}.quote-schedule-note{color:#333}.quote-close{break-inside:avoid;margin-top:6mm}.quote-terms-title{color:var(--quote-red);font-size:12pt;margin-bottom:1.5mm}.quote-terms{list-style:none;margin:0;padding:0;font-size:8.5pt;line-height:1.55}.quote-signs{display:flex;justify-content:space-between;margin-top:9mm;font-size:10.5pt}.print-credit{margin-top:6mm;text-align:center;font-size:8pt;color:#555}.report-sheet{page:diagram;break-before:page;break-inside:avoid}.report-sheet-head{display:flex;justify-content:space-between;align-items:baseline;gap:6mm;margin-bottom:2.5mm;padding-bottom:1.5mm;border-bottom:.75pt solid #666}.report-sheet-head h2{font-size:12pt}.report-sheet-head .meta{font-size:8.5pt;color:#444}.report-sheet svg{display:block;width:100%;height:auto;max-height:165mm}.report-scale{display:flex;align-items:center;gap:3mm;margin-top:2mm;font-size:8pt;color:#333}.report-scale .bar{height:2mm;border:.5pt solid #000;border-top:none;-webkit-print-color-adjust:exact;print-color-adjust:exact}.report tfoot th{text-transform:none;letter-spacing:0}.report .nowrap{white-space:nowrap}.report-note{margin:1.5mm 0 0;font-size:8pt;color:#444}.report-footer{margin-top:6mm;padding-top:2mm;border-top:.5pt solid #999;font-size:7.5pt;color:#555;display:flex;justify-content:space-between}.svg-piece,.svg-waste,.svg-sheet,.legend-swatch,.badge{-webkit-print-color-adjust:exact;print-color-adjust:exact}.voucher-print{padding:10mm}.vp-meta{display:flex;justify-content:space-between;margin:0 0 4mm;font-size:10.5pt}.vp-label{color:#555;margin-right:2mm;font-size:8.5pt;text-transform:uppercase}.vp-draft{margin:0 0 4mm;padding:1.5mm;text-align:center;font-weight:700;letter-spacing:1pt;border:1pt dashed #999;color:#666}.quote .vp-table tbody td{height:7mm;vertical-align:top}.quote .vp-table .num{text-align:right;white-space:nowrap}.quote .vp-table tfoot th{background:#f6f6f6!important;color:#000;font-weight:700;border-top:1pt solid var(--quote-red);-webkit-print-color-adjust:exact;print-color-adjust:exact}.vp-words,.vp-narration{margin-bottom:3mm;font-size:9.5pt}.vp-words strong{font-style:italic}.vp-narration div{margin-top:1mm;min-height:8mm}.vp-signs{display:flex;justify-content:space-between;gap:6mm;margin-top:14mm;font-size:8.5pt;text-align:center}.vp-sign{flex:1}.vp-sign-line{border-top:.5pt solid #000;margin-bottom:1.5mm}@media print{.quote-page1{break-after:page}.quote-details{break-before:page}.report-sheet{break-before:page;page:diagram}}@media print{.book-print{padding:12mm 10mm}.bk-facts{display:flex;flex-wrap:wrap;gap:2mm 8mm;margin:0 0 4mm;font-size:10pt}.book-print thead{display:table-header-group}.book-print tfoot{display:table-row-group}.book-print tr{break-inside:avoid}.book-print .bk-gap th{height:10mm;padding:0;border:none!important;background:#fff!important}.book-print .bk-foot td{height:8mm;padding:0;border:none!important}.quote table.bk-table{border:0}.quote .bk-table tbody td:last-child{border-right:1pt solid var(--quote-red)}.quote .bk-table tbody tr:last-child td{border-bottom:1pt solid var(--quote-red)}.quote .bk-table tbody td{height:6mm;vertical-align:top}.quote .bk-table .num{text-align:right;white-space:nowrap}.quote .bk-table tbody tr.is-total td{font-weight:700;background:#f6f6f6!important;border-top:1pt solid var(--quote-red);-webkit-print-color-adjust:exact;print-color-adjust:exact}.bk-note{margin-top:3mm;font-size:9pt;color:#555}.bk-signs{padding-top:14mm;margin-top:0;break-inside:avoid}}
