.report-shell{background:#e7e9ee;min-height:100%;padding:32px 0}.report-toolbar{align-items:center;gap:10px;max-width:210mm;margin:0 auto 16px;display:flex}.report-toolbar .spacer{margin-inline-start:auto}.report-paper{color:#1a1a1a;width:100%;max-width:210mm;min-height:297mm;font-family:var(--font-ui);direction:rtl;background:#fff;margin:0 auto;padding:15mm;box-shadow:0 8px 28px #14141e29}.report-header{border-bottom:3px solid var(--report-accent,#e11d2a);justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:14px;display:flex}.report-brand{align-items:center;gap:10px;display:flex}.report-brand-name{font-family:var(--font-heading);font-size:20px;font-weight:800}.report-brand-source{color:#6b7280;font-size:11px}.report-meta{text-align:end}.report-title{font-family:var(--font-heading);color:var(--report-accent,#e11d2a);font-size:16px;font-weight:800}.report-ref{color:var(--report-accent,#e11d2a);font-family:var(--font-num);background:#0000000f;border-radius:999px;margin-top:4px;padding:3px 10px;font-size:11px;font-weight:700;display:inline-block}.report-date{color:#6b7280;margin-top:6px;font-size:11px}.report-section{break-inside:avoid;page-break-inside:avoid;margin-top:18px}.report-section-title{font-family:var(--font-heading);color:#374151;border-bottom:1px solid #e5e7eb;margin-bottom:8px;padding-bottom:4px;font-size:13px;font-weight:800}.report-info-grid{grid-template-columns:repeat(3,1fr);gap:10px 20px;font-size:12px;display:grid}.report-info-grid dt{color:#6b7280;margin-bottom:2px}.report-info-grid dd{margin:0;font-weight:700}.report-table{border-collapse:collapse;width:100%;font-size:11.5px}.report-table th{color:#374151;text-align:start;background:#f3f4f6;border:1px solid #e5e7eb;padding:6px 8px;font-weight:700}.report-table td{border:1px solid #e5e7eb;padding:6px 8px}.report-table tr{break-inside:avoid;page-break-inside:avoid}.report-table .cell-num{text-align:end;font-family:var(--font-num);font-variant-numeric:tabular-nums}.report-table tfoot td{background:#f9fafb;font-weight:800}.report-total-block{color:#fff;break-inside:avoid;page-break-inside:avoid;background:#111827;border-radius:6px;justify-content:space-between;align-items:center;margin-top:12px;padding:12px 16px;display:flex}.report-total-label{opacity:.75;font-size:12px}.report-total-value{font-family:var(--font-num);font-size:20px;font-weight:800}.report-note{color:#6b7280;margin-top:8px;font-size:11px}.report-footer{break-inside:avoid;page-break-inside:avoid;border-top:1px solid #e5e7eb;justify-content:space-between;align-items:flex-end;margin-top:28px;padding-top:12px;display:flex}.report-signature{text-align:center;color:#6b7280;width:200px;font-size:11px}.report-signature-line{background:#9ca3af;height:1px;margin-bottom:6px}.report-generated{color:#9ca3af;font-size:10px}@media print{.report-shell{background:#fff;padding:0}.report-toolbar{display:none!important}.report-paper{box-shadow:none;width:auto;min-height:auto;margin:0}@page{size:A4;margin:15mm}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-base:#f4f6fa;--bg-surface:#fff;--bg-overlay:#fff;--bg-subtle:#f9fafc;--bg-emphasis:#eef2f7;--bg-ink:#0f172a;--bg-ink-raised:#172033;--border-light:#e5e9f0;--border-strong:#cfd5e0;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#64748b;--text-onink:#f8fafc;--text-onaccent:#fff;--brand:#e11d2a;--brand-deep:#b91c1c;--brand-subtle:#feecee;--accent:#f97316;--accent-highlight:#fb7f24;--accent-light:#fdba74;--accent-pale:#fed7aa;--accent-hover:#ea580c;--accent-strong:#c2410c;--accent-subtle:#fff1e6;--accent-ring:#f973163d;--hero-ember:#2b1a1d;--login-ink:#1b2438;--login-ember:#331b1d;--border-hover:#aeb8c7;--danger-border:#f5a3a3;--success:#047857;--success-bright:#10b981;--success-onink:#6ee7b7;--success-subtle:#e7f8f1;--warning:#b45309;--warning-subtle:#fff7e6;--danger:#dc2626;--danger-onink:#fca5a5;--danger-subtle:#feecec;--info:#2563eb;--info-subtle:#eaf2ff;--grp-sides:#ea580c;--grp-sides-bg:#fff1e6;--grp-rear:#2563eb;--grp-rear-bg:#dbeafe;--grp-front:#047857;--grp-front-bg:#ecfdf5;--grp-roof:#0891b2;--grp-roof-bg:#cffafe;--grp-custom:#7e22ce;--grp-custom-bg:#f3e8ff;--font-ui:"Tajawal", "Segoe UI", system-ui, sans-serif;--font-heading:"Cairo", "Segoe UI", system-ui, sans-serif;--font-num:"JetBrains Mono", ui-monospace, monospace;--text-xs:11px;--text-sm:12px;--text-base:14px;--text-md:15px;--text-lg:19px;--text-xl:24px;--text-2xl:32px;--text-3xl:40px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-6:24px;--sp-8:32px;--sp-12:48px;--radius-xs:6px;--radius-sm:8px;--radius:10px;--radius-lg:14px;--shadow-sm:0 1px 2px #0f172a0a, 0 1px 3px #0f172a0f;--shadow-md:0 2px 4px #0f172a0a, 0 8px 16px #0f172a0f;--shadow-lg:0 16px 36px #0f172a24, 0 4px 10px #0f172a0f;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.7, 0, .84, 0);--duration-fast:80ms;--duration-interaction:.14s;--duration-panel:.22s;--z-sticky:20;--z-backdrop:40;--z-drawer:50;--z-toast:70}*,:before,:after{box-sizing:border-box}html,body,#root{min-width:320px;height:100%}body{background:var(--bg-base);color:var(--text-primary);font-family:var(--font-ui);font-size:var(--text-base);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;line-height:1.6}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{font-family:var(--font-heading);letter-spacing:0;text-wrap:balance}p{text-wrap:pretty}button,input,select,textarea{font:inherit;color:inherit;letter-spacing:0}button{-webkit-tap-highlight-color:transparent}svg{display:block}a{color:inherit;text-decoration:none}.num{font-family:var(--font-num);font-variant-numeric:tabular-nums}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}:focus-visible{outline:3px solid var(--accent-ring);outline-offset:2px}::selection{background:var(--accent-subtle)}.page-title{font-size:var(--text-md);font-weight:800;line-height:1.3}.section-title{font-size:var(--text-md);font-weight:800}.section-heading{font-size:var(--text-lg);font-weight:800}.section-subtitle{color:var(--text-muted);font-size:var(--text-sm);margin-top:2px}.label{font-size:var(--text-sm);color:var(--text-secondary);font-weight:700}.caption{font-size:var(--text-xs);color:var(--text-muted);line-height:1.55}.eyebrow{font-size:var(--text-xs);letter-spacing:0;color:var(--text-muted);font-weight:800}.shell{isolation:isolate;height:100%;display:flex;position:relative;overflow:hidden}.sidebar{z-index:var(--z-drawer);background:linear-gradient(180deg, var(--bg-ink) 0%, var(--bg-ink-raised) 100%);width:252px;min-width:252px;height:100%;color:var(--text-onink);box-shadow:-12px 0 32px color-mix(in srgb, var(--bg-ink) 8%, transparent);transition:transform var(--duration-panel) var(--ease-out);flex-direction:column;display:flex;position:relative}.sidebar:before{content:"";background:linear-gradient(90deg, var(--brand), var(--accent));height:3px;position:absolute;inset:0 0 auto}.sidebar[data-collapsed=true]{width:72px;min-width:72px}.sidebar-head{align-items:center;gap:var(--sp-3);height:72px;padding-inline:var(--sp-4);border-bottom:1px solid color-mix(in srgb, var(--text-onaccent) 8%, transparent);display:flex}.brand-mark{border-radius:var(--radius-lg);background:linear-gradient(145deg, var(--brand), var(--brand-deep));width:40px;height:40px;box-shadow:0 6px 16px color-mix(in srgb, var(--brand) 28%, transparent);color:var(--text-onaccent);font-family:var(--font-heading);flex:none;place-items:center;font-size:17px;font-weight:900;display:grid}.brand-copy{min-width:0}.brand-text{font-family:var(--font-heading);font-weight:800;font-size:var(--text-md);letter-spacing:0;white-space:nowrap;display:block}.brand-sub{font-size:var(--text-xs);color:color-mix(in srgb, var(--text-onink) 56%, transparent);white-space:nowrap;margin-top:-2px}.sidebar-close{border-radius:var(--radius-sm);background:color-mix(in srgb, var(--text-onaccent) 6%, transparent);width:34px;height:34px;color:var(--text-onink);cursor:pointer;border:0;place-items:center;margin-inline-start:auto;display:none}.sidebar-nav{padding:var(--sp-4) var(--sp-3);flex:1;overflow-y:auto}.nav-group+.nav-group{margin-top:var(--sp-6)}.nav-group-label{padding:0 var(--sp-2) var(--sp-2);font-size:var(--text-xs);letter-spacing:0;color:color-mix(in srgb, var(--text-onink) 42%, transparent);white-space:nowrap;font-weight:700;display:block}.nav-item{align-items:center;gap:var(--sp-3);border-radius:var(--radius);min-height:42px;font-size:var(--text-base);color:color-mix(in srgb, var(--text-onink) 66%, transparent);cursor:pointer;white-space:nowrap;transition:background var(--duration-fast) linear, color var(--duration-fast) linear, transform var(--duration-interaction) var(--ease-out);padding-inline:10px;font-weight:500;display:flex}.nav-item:hover{background:color-mix(in srgb, var(--text-onaccent) 7%, transparent);color:var(--text-onink);transform:translate(-2px)}.nav-item[aria-current=page]{background:color-mix(in srgb, var(--text-onaccent) 11%, transparent);color:var(--text-onink);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--text-onaccent) 7%, transparent);font-weight:700}.nav-item[aria-current=page] .nav-icon{color:var(--accent-light)}.nav-icon{flex:none;place-items:center;width:20px;display:grid}.nav-arrow{opacity:0;transition:opacity var(--duration-fast) linear, transform var(--duration-interaction) var(--ease-out);margin-inline-start:auto;transform:translate(4px)}.nav-item:hover .nav-arrow,.nav-item[aria-current=page] .nav-arrow{opacity:.7;transform:none}.sidebar[data-collapsed=true] .nav-label-text,.sidebar[data-collapsed=true] .nav-group-label,.sidebar[data-collapsed=true] .brand-copy,.sidebar[data-collapsed=true] .user-copy,.sidebar[data-collapsed=true] .nav-arrow{display:none}.sidebar[data-collapsed=true] .sidebar-head,.sidebar[data-collapsed=true] .user-chip{justify-content:center}.sidebar[data-collapsed=true] .nav-item{justify-content:center;padding-inline:0}.sidebar-foot{padding:var(--sp-4);border-top:1px solid color-mix(in srgb, var(--text-onaccent) 8%, transparent)}.user-chip{align-items:center;gap:var(--sp-3);display:flex}.avatar{background:color-mix(in srgb, var(--text-onaccent) 10%, transparent);border:1px solid color-mix(in srgb, var(--text-onaccent) 10%, transparent);width:34px;height:34px;color:var(--text-onink);font-family:var(--font-heading);border-radius:50%;flex:none;place-items:center;font-weight:800;display:grid}.user-name{font-size:var(--text-base);font-weight:600}.role-pill{border-radius:var(--radius-xs);height:19px;font-size:var(--text-xs);align-items:center;padding-inline:7px;font-weight:700;display:inline-flex}.shell-backdrop{display:none}.main{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.topbar{align-items:center;gap:var(--sp-4);height:72px;padding-inline:var(--sp-6);background:color-mix(in srgb, var(--bg-surface) 94%, transparent);border-bottom:1px solid var(--border-light);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:var(--z-sticky);flex:none;display:flex}.topbar-copy{gap:1px;display:grid}.topbar-kicker{color:var(--text-muted);font-size:var(--text-xs);font-weight:600}.topbar-actions{align-items:center;gap:var(--sp-2);margin-inline-start:auto;display:flex}.connection-chip{border-radius:var(--radius-sm);background:var(--success-subtle);height:28px;color:var(--success);font-size:var(--text-xs);align-items:center;gap:5px;padding-inline:9px;font-weight:700;display:inline-flex}.connection-chip svg{color:var(--success-bright)}.content{padding:var(--sp-6);background-color:var(--bg-base);background-image:linear-gradient(color-mix(in srgb, var(--text-secondary) 3.5%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--text-secondary) 3.5%, transparent) 1px, transparent 1px);background-size:24px 24px;flex:1;overflow-y:auto}.content-narrow{width:100%;max-width:1420px;margin-inline:auto}.content-view{animation:content-in var(--duration-panel) var(--ease-out) both}.btn{height:36px;padding-inline:var(--sp-3);border-radius:var(--radius-sm);font-family:var(--font-heading);cursor:pointer;white-space:nowrap;transition:background var(--duration-fast) linear, border-color var(--duration-fast) linear, color var(--duration-fast) linear, transform var(--duration-interaction) var(--ease-out), box-shadow var(--duration-interaction) var(--ease-out);border:1px solid #0000;justify-content:center;align-items:center;gap:6px;font-size:13px;font-weight:700;display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--accent), var(--accent-hover));color:var(--text-onaccent);box-shadow:0 4px 12px color-mix(in srgb, var(--accent) 24%, transparent)}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg, var(--accent-highlight), var(--accent-hover));box-shadow:0 7px 18px color-mix(in srgb, var(--accent) 30%, transparent);transform:translateY(-1px)}.btn-secondary{background:var(--bg-surface);border-color:var(--border-strong);color:var(--text-primary);box-shadow:var(--shadow-sm)}.btn-secondary:hover:not(:disabled){background:var(--bg-subtle);border-color:var(--border-hover);transform:translateY(-1px)}.btn-ghost{color:var(--text-secondary);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--bg-subtle);color:var(--text-primary)}.btn-danger{border-color:var(--border-strong);color:var(--danger);background:0 0}.btn-danger:hover:not(:disabled){background:var(--danger-subtle)}.btn-lg{height:44px;padding-inline:var(--sp-4);font-size:var(--text-base);border-radius:var(--radius)}.btn-icon{width:36px;padding:0}.btn:active:not(:disabled){transform:translateY(0)scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.input,.select{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-surface);height:38px;color:var(--text-primary);font-size:var(--text-base);width:100%;padding-inline:10px;transition:border-color .12s linear,box-shadow .12s linear,background .12s linear}.input:hover,.select:hover{border-color:var(--border-hover)}.input:focus,.select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring);outline:none}.input[aria-invalid=true]{border-color:var(--danger)}.input::placeholder{color:var(--text-muted)}.input-num{font-family:var(--font-num);font-variant-numeric:tabular-nums;text-align:start}.field-error{font-size:var(--text-sm);color:var(--danger);font-weight:600}.field-hint{font-size:var(--text-sm);color:var(--text-muted)}.input-shell{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg-surface);min-height:42px;color:var(--text-muted);align-items:center;padding-inline:11px;transition:border-color .12s linear,box-shadow .12s linear;display:flex}.input-shell:hover{border-color:var(--border-hover)}.input-shell:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring);color:var(--accent-strong)}.input-shell:has(.input[aria-invalid=true]){border-color:var(--danger)}.input-shell .input{height:40px;box-shadow:none;background:0 0;border:0;border-radius:0}.input-shell .input:focus{box-shadow:none}.field-action{border-radius:var(--radius-xs);width:30px;height:30px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;flex:none;place-items:center;display:grid}.field-action:hover{background:var(--bg-emphasis);color:var(--text-primary)}.stepper{direction:ltr;align-items:center;gap:0;display:flex}.stepper .input{text-align:center;direction:ltr;border-radius:0;min-width:0}.stepper-btn{background:var(--bg-subtle);border:1px solid var(--border-light);width:34px;height:38px;color:var(--text-secondary);cursor:pointer;transition:background var(--duration-fast) linear, color var(--duration-fast) linear, transform var(--duration-fast) linear;flex:none;place-items:center;display:grid}.stepper-btn:hover{background:var(--accent-subtle);color:var(--accent-strong)}.stepper-btn:active{transform:scale(.94)}.stepper-btn:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.stepper-btn:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0}.stepper-unit{font-size:var(--text-xs);color:var(--text-muted);background:var(--bg-subtle);border-block:1px solid var(--border-light);flex:none;align-self:stretch;place-items:center;padding-inline:6px;display:grid}.card{background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);min-width:0}.card-head{align-items:center;gap:var(--sp-3);min-height:52px;padding:10px var(--sp-4);border-bottom:1px solid var(--border-light);display:flex}.card-head .spacer{margin-inline-start:auto}.card-title-icon{align-items:center;gap:7px;display:inline-flex}.card-title-icon svg{color:var(--accent)}.card-body{padding:18px var(--sp-4)}.card-body-tight{padding:var(--sp-3)}.grid-2{gap:var(--sp-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.grid-3{gap:var(--sp-4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.calc-layout{grid-template-columns:minmax(0,1fr) minmax(330px,380px);align-items:start;gap:20px;display:grid}.stack{flex-direction:column;gap:20px;display:flex}.stack-sm{gap:var(--sp-2);flex-direction:column;display:flex}.row{align-items:center;gap:var(--sp-2);display:flex}.sticky-side{top:var(--sp-4);position:sticky}.section-heading-row{justify-content:space-between;align-items:center;gap:var(--sp-4);margin-bottom:var(--sp-3);display:flex}.badge{border-radius:var(--radius-xs);min-height:22px;font-size:var(--text-xs);align-items:center;gap:4px;padding-inline:8px;font-weight:700;display:inline-flex}.badge-success{background:var(--success-subtle);color:var(--success)}.badge-warning{background:var(--warning-subtle);color:var(--warning)}.badge-danger{background:var(--danger-subtle);color:var(--danger)}.badge-info{background:var(--info-subtle);color:var(--info)}.badge-neutral{background:var(--bg-emphasis);color:var(--text-secondary)}.roll-chip{background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius);cursor:pointer;min-width:66px;transition:border-color .1s linear, background .1s linear, transform var(--duration-interaction) var(--ease-out), box-shadow var(--duration-interaction) var(--ease-out);flex-direction:column;align-items:center;gap:1px;padding:8px 11px;display:flex;position:relative}.roll-chip:hover{border-color:var(--danger-border);background:var(--danger-subtle);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.roll-chip:hover .roll-chip-x{opacity:1}.roll-chip-val{font-family:var(--font-num);font-size:var(--text-md);font-weight:700;line-height:1.1}.roll-chip-unit{font-size:var(--text-xs);color:var(--text-muted)}.roll-chip-x{color:var(--danger);opacity:0;transition:opacity .1s linear;position:absolute;inset-block-start:3px;inset-inline-end:3px}.chip-row{gap:var(--sp-2);flex-wrap:wrap;display:flex}.switch{border:1px solid var(--border-strong);background:var(--bg-subtle);height:32px;color:var(--text-secondary);font-size:var(--text-sm);cursor:pointer;white-space:nowrap;border-radius:999px;flex:none;align-items:center;gap:7px;padding-inline:11px;font-weight:700;transition:background .12s linear,border-color .12s linear,color .12s linear;display:inline-flex}.switch:hover{border-color:var(--border-hover)}.switch-thumb{background:var(--text-muted);border-radius:50%;flex:none;width:8px;height:8px;transition:background .12s linear}.switch.switch-on{background:var(--success-subtle);color:var(--success);border-color:#0000}.switch.switch-on .switch-thumb{background:var(--success)}.piece{border:0;border-bottom:1px solid var(--border-light);padding:var(--sp-3) 0 var(--sp-4);background:0 0;border-radius:0;transition:background .12s linear}.piece:last-child{border-bottom:0;padding-bottom:0}.piece:first-child{padding-top:0}.piece-head{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3);display:flex}.piece-head:before{content:"";background:var(--piece-color,var(--border-strong));width:8px;height:8px;box-shadow:0 0 0 4px color-mix(in srgb, var(--piece-color,var(--border-strong)) 12%, transparent);border-radius:50%;flex:none}.piece-name{border-radius:var(--radius-sm);min-width:0;height:32px;font-family:var(--font-heading);font-weight:700;font-size:var(--text-base);background:0 0;border:1px solid #0000;flex:1;padding-inline:7px}.piece-name:hover{border-color:var(--border-light)}.piece-name:focus{border-color:var(--accent);background:var(--bg-surface);outline:none}.grp-tag{border-radius:var(--radius-xs);min-height:22px;font-size:var(--text-xs);background:var(--grp-bg);color:var(--grp-fg);flex:none;align-items:center;padding-inline:8px;font-weight:700;display:inline-flex}.linked-piece{color:var(--info);place-items:center;display:grid}.piece-x{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex:none;place-items:center;display:grid}.piece-x:hover{background:var(--danger-subtle);color:var(--danger)}.mounting-note{margin-top:var(--sp-3);background:var(--bg-subtle);border:1px solid var(--border-light);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--text-secondary);padding:7px 9px}.mounting-note b{font-family:var(--font-num);color:var(--text-primary)}.result-group{border:1px solid var(--border-light);border-radius:var(--radius-lg);background:var(--bg-surface);box-shadow:var(--shadow-sm);overflow:hidden}.result-group-head{align-items:center;gap:var(--sp-2);min-height:40px;padding:var(--sp-2) var(--sp-4);background:var(--grp-bg);color:var(--grp-fg);font-family:var(--font-heading);font-weight:800;font-size:var(--text-sm);display:flex}.result-best{align-items:baseline;gap:var(--sp-2);padding:var(--sp-4);border-bottom:1px solid var(--border-light);background:linear-gradient(180deg, var(--bg-surface), var(--bg-subtle));display:flex}.result-kicker{color:var(--grp-fg);font-size:var(--text-xs);align-items:center;gap:5px;margin-bottom:5px;font-weight:800;display:inline-flex}.result-best-num{font-family:var(--font-num);font-size:var(--text-2xl);color:var(--grp-fg);font-weight:700;line-height:1}.result-value-live{animation:result-update var(--duration-panel) var(--ease-out)}.table-scroll{width:100%;overflow-x:auto}.table{border-collapse:collapse;width:100%;min-width:680px}.table th{z-index:1;padding:var(--sp-2) var(--sp-3);text-align:start;background:var(--bg-subtle);color:var(--text-secondary);font-size:var(--text-xs);letter-spacing:0;border-bottom:1px solid var(--border-light);white-space:nowrap;font-weight:800;position:sticky;top:0}.table td{padding:0 var(--sp-3);border-bottom:1px solid var(--border-light);height:40px;font-size:var(--text-base)}.table tbody tr{transition:background var(--duration-fast) linear}.table tbody tr:hover{background:var(--bg-subtle)}.table tfoot td{background:var(--bg-subtle);font-weight:700}.cell-num{text-align:end;font-family:var(--font-num);font-variant-numeric:tabular-nums}.metric{padding:var(--sp-4)}.metric-value{font-family:var(--font-num);font-size:22px;font-weight:700;line-height:1.2}.metric-label{font-size:var(--text-sm);color:var(--text-muted);margin-top:4px}.metric-strong{background:var(--bg-ink);color:var(--text-onink);border-color:var(--bg-ink)}.metric-strong .metric-label{color:color-mix(in srgb, var(--text-onink) 66%, transparent)}.hero{isolation:isolate;align-items:center;gap:var(--sp-8);min-height:272px;padding:var(--sp-8);border-radius:var(--radius-lg);border:1px solid var(--border-light);background:linear-gradient(150deg, var(--bg-surface) 0%, var(--bg-subtle) 62%, var(--accent-subtle) 100%);color:var(--text-primary);box-shadow:var(--shadow-md);grid-template-columns:minmax(0,1fr) 340px;display:grid;position:relative;overflow:hidden}.hero:before{content:"";z-index:-1;background:radial-gradient(closest-side, color-mix(in srgb, var(--brand) 10%, transparent), transparent 72%);width:58%;height:82%;position:absolute;inset:auto -8% -46% auto;transform:rotate(-8deg)}.hero:after{content:"";z-index:-1;background:radial-gradient(closest-side, color-mix(in srgb, var(--accent) 12%, transparent), transparent 72%);width:40%;height:60%;position:absolute;inset:-30% auto auto -6%}.hero-copy{z-index:1;position:relative}.hero-brand-line{margin-bottom:var(--sp-3);border-radius:var(--radius-sm);background:var(--accent-subtle);color:var(--accent-strong);font-size:var(--text-sm);align-items:center;gap:6px;padding:5px 10px;font-weight:800;display:inline-flex}.hero h1{color:var(--text-primary);font-size:36px;font-weight:900;line-height:1.2}.hero-copy>p:not(.hero-brand-line){margin-top:var(--sp-2);color:var(--text-secondary);font-size:var(--text-md);max-width:48ch}.hero-cta{margin-top:var(--sp-6)}.hero-scene{aspect-ratio:16/10;border:1px solid var(--border-light);border-radius:var(--radius-lg);background:repeating-linear-gradient(0deg, transparent 0 27px, color-mix(in srgb, var(--border-light) 80%, transparent) 27px 28px), repeating-linear-gradient(90deg, transparent 0 27px, color-mix(in srgb, var(--border-light) 80%, transparent) 27px 28px), repeating-linear-gradient(45deg, transparent 0 38px, color-mix(in srgb, var(--accent) 6%, transparent) 38px 39px), var(--bg-subtle);width:100%;max-width:330px;box-shadow:var(--shadow-sm);transition:transform var(--duration-panel) var(--ease-out), border-color var(--duration-panel) linear;justify-self:end;position:relative;overflow:hidden}.hero:has(.hero-cta:hover) .hero-scene{border-color:color-mix(in srgb, var(--accent) 45%, transparent);transform:translateY(-3px)rotate(-1deg)}.hero-scene svg{width:100%;height:100%;display:block;position:absolute;inset:0}.home-section{padding-top:var(--sp-1)}.calc-tile-grid{gap:var(--sp-3);grid-template-columns:repeat(2,minmax(0,1fr))}.calc-launch-tile{align-items:center;gap:2px var(--sp-3);min-height:96px;padding:var(--sp-4);text-align:start;background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);cursor:pointer;width:100%;transition:transform var(--duration-interaction) var(--ease-out), box-shadow var(--duration-interaction) var(--ease-out), border-color var(--duration-interaction) linear;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"icon title arrow""icon desc arrow";display:grid;position:relative;overflow:hidden}.calc-launch-tile:after{content:"";background:var(--tile-fg,var(--accent));opacity:.76;height:2px;position:absolute;inset:auto 0 0}.calc-launch-tile:first-child{grid-column:1/-1;min-height:112px}.calc-launch-tile:hover{box-shadow:var(--shadow-md);border-color:color-mix(in srgb, var(--tile-fg,var(--accent)) 42%, var(--border-light));transform:translateY(-2px)}.calc-tile-icon{border-radius:var(--radius);background:var(--tile-bg);width:44px;height:44px;color:var(--tile-fg);transition:transform var(--duration-interaction) var(--ease-out);grid-area:icon;place-items:center;display:grid}.calc-launch-tile:hover .calc-tile-icon{transform:rotate(-3deg)scale(1.04)}.calc-tile-arrow{border-radius:var(--radius-sm);width:30px;height:30px;color:var(--text-muted);transition:transform var(--duration-interaction) var(--ease-out), color var(--duration-fast) linear, background var(--duration-fast) linear;grid-area:arrow;place-items:center;display:grid}.calc-launch-tile:hover .calc-tile-arrow{color:var(--tile-fg);background:var(--tile-bg);transform:translate(-3px)}.calc-launch-tile h3{font-size:var(--text-md);grid-area:title;align-self:end;font-weight:800}.calc-launch-tile p{font-size:var(--text-sm);color:var(--text-muted);grid-area:desc;align-self:start;max-width:56ch}.calc-tile{width:100%;min-height:82px;padding:var(--sp-4);text-align:start;border:1px solid var(--border-light);border-radius:var(--radius);background:var(--bg-surface);box-shadow:var(--shadow-sm);cursor:pointer;transition:border-color var(--duration-interaction) linear, box-shadow var(--duration-interaction) var(--ease-out), transform var(--duration-interaction) var(--ease-out);display:block}.calc-tile:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:translateY(-1px)}.calc-tile[aria-checked=true]{background:linear-gradient(180deg, var(--bg-surface), var(--accent-subtle))}.calc-tile h3{font-size:var(--text-md);font-weight:800}.calc-tile p{color:var(--text-muted);font-size:var(--text-sm);margin-top:4px}.price-overview{overflow:hidden}.price-overview>.grid-3{background:var(--bg-subtle)}.price-overview .metric{background:var(--bg-surface)}.login-page{grid-template-columns:minmax(420px,.9fr) minmax(460px,1.1fr);min-height:100%;display:grid}.login-aside{isolation:isolate;background:linear-gradient(145deg, var(--bg-ink), var(--login-ink) 68%, var(--login-ember));color:var(--text-onink);flex-direction:column;justify-content:space-between;padding:40px 48px;display:flex;position:relative;overflow:hidden}.login-aside:before{content:"";z-index:-2;opacity:.3;background-image:linear-gradient(color-mix(in srgb, var(--text-onaccent) 7%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--text-onaccent) 7%, transparent) 1px, transparent 1px);background-size:32px 32px;position:absolute;inset:0}.login-aside:after{content:"";z-index:-1;background:linear-gradient(135deg, color-mix(in srgb, var(--brand) 23%, transparent), color-mix(in srgb, var(--accent) 12%, transparent));width:80%;height:48%;position:absolute;inset:auto -12% -22% auto;transform:rotate(-10deg)}.login-brand{align-items:center;gap:var(--sp-3);display:flex}.login-brand small{color:color-mix(in srgb, var(--text-onink) 55%, transparent);font-size:var(--text-xs);margin-top:-2px;display:block}.login-promise{z-index:1;max-width:520px;position:relative}.login-aside h2{max-width:20ch;font-size:32px;font-weight:900;line-height:1.3}.login-points{margin:var(--sp-6) 0 0;border-top:1px solid color-mix(in srgb, var(--text-onink) 10%, transparent);padding:0;list-style:none}.login-points li{align-items:center;gap:var(--sp-3);border-bottom:1px solid color-mix(in srgb, var(--text-onink) 10%, transparent);color:color-mix(in srgb, var(--text-onink) 84%, transparent);font-size:var(--text-base);padding:10px 0;display:flex}.login-point-icon{border-radius:var(--radius-sm);background:color-mix(in srgb, var(--accent) 16%, transparent);width:30px;height:30px;color:var(--accent-light);flex:none;place-items:center;display:grid}.login-credit{color:color-mix(in srgb, var(--text-onink) 50%, transparent);font-size:var(--text-xs)}.login-scene{width:100%;max-width:520px;height:auto;margin-bottom:var(--sp-6);display:block;overflow:visible}.lws-strip{transform-box:fill-box;transform-origin:50% 0;animation:lws-unroll .38s var(--ease-out) both;animation-delay:var(--lws-delay,0s)}.lws-flap,.lws-tool{animation:lws-settle .32s var(--ease-out) both;animation-delay:var(--lws-delay,0s)}@keyframes lws-unroll{0%{opacity:0;transform:scaleY(.04)}to{opacity:1;transform:none}}@keyframes lws-settle{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.lws-strip,.lws-flap,.lws-tool{animation:none}}.login-main{padding:var(--sp-8);background-color:var(--bg-base);background-image:linear-gradient(color-mix(in srgb, var(--text-secondary) 3.5%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--text-secondary) 3.5%, transparent) 1px, transparent 1px);background-size:24px 24px;place-items:center;display:grid}.login-form{border:1px solid var(--border-light);border-radius:var(--radius-lg);background:var(--bg-surface);width:100%;max-width:390px;box-shadow:var(--shadow-md);padding:30px}.login-mobile-brand{font-family:var(--font-heading);align-items:center;gap:10px;display:none}.login-heading{grid-template-columns:auto 1fr;align-items:center;gap:2px 10px;display:grid}.login-heading-icon{border-radius:var(--radius);background:var(--accent-subtle);width:38px;height:38px;color:var(--accent-strong);grid-row:1/3;place-items:center;display:grid}.login-heading h1{font-size:var(--text-xl);font-weight:900}.login-heading p{color:var(--text-muted);font-size:var(--text-sm)}.login-error{border-radius:var(--radius-sm);background:var(--danger-subtle);padding:9px 10px}.toast-stack{gap:var(--sp-2);z-index:var(--z-toast);flex-direction:column;display:flex;position:fixed;inset-block-end:var(--sp-6);inset-inline-start:var(--sp-6)}.toast{align-items:center;gap:var(--sp-2);border:1px solid color-mix(in srgb, var(--text-onaccent) 10%, transparent);border-radius:var(--radius);background:var(--bg-ink);min-width:240px;color:var(--text-onink);box-shadow:var(--shadow-lg);font-size:var(--text-base);animation:toast-in .18s var(--ease-out);padding:10px 12px;font-weight:500;display:flex}.toast-icon{border-radius:var(--radius-sm);flex:none;place-items:center;width:28px;height:28px;display:grid}.toast-ok .toast-icon{background:color-mix(in srgb, var(--success-bright) 16%, transparent);color:var(--success-onink)}.toast-err .toast-icon{background:color-mix(in srgb, var(--danger) 16%, transparent);color:var(--danger-onink)}.empty{align-items:center;gap:var(--sp-2);padding:var(--sp-12) var(--sp-6);text-align:center;flex-direction:column;display:flex}.empty-icon{border-radius:var(--radius);background:var(--accent-subtle);width:52px;height:52px;color:var(--accent-strong);place-items:center;display:grid}.empty-title{font-size:var(--text-md);font-weight:800}.empty-desc{font-size:var(--text-base);color:var(--text-muted);max-width:44ch}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--bg-subtle) 25%, var(--bg-emphasis) 37%, var(--bg-subtle) 63%);background-size:400% 100%;animation:1.2s ease-in-out infinite shimmer}@keyframes content-in{0%{opacity:.7;transform:translateY(5px)}to{opacity:1;transform:none}}@keyframes result-update{0%{opacity:.45;filter:blur(2px);transform:translateY(4px)}to{opacity:1;filter:none;transform:none}}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:none}}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:.7s linear infinite spin}@media (width<=1180px){.calc-layout{grid-template-columns:minmax(0,1fr)}.sticky-side{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;display:grid;position:static}.sticky-side>:last-child{grid-column:1/-1}}@media (width<=900px){.login-page{grid-template-columns:1fr}.login-aside{display:none}.login-mobile-brand{display:flex}}@media (width<=820px){.shell{display:block}.sidebar,.sidebar[data-collapsed=true]{visibility:hidden;width:min(300px,86vw);min-width:0;box-shadow:-24px 0 50px color-mix(in srgb, var(--bg-ink) 24%, transparent);transition:transform var(--duration-panel) var(--ease-out), visibility 0s linear var(--duration-panel);position:fixed;inset:0 0 0 auto;transform:translate(104%)}.sidebar[data-mobile-open=true]{visibility:visible;transition-delay:0s;transform:translate(0)}.sidebar[data-collapsed=true] .nav-label-text{display:inline}.sidebar[data-collapsed=true] .nav-group-label,.sidebar[data-collapsed=true] .brand-copy,.sidebar[data-collapsed=true] .user-copy,.sidebar[data-collapsed=true] .nav-arrow{display:block}.sidebar[data-collapsed=true] .sidebar-head,.sidebar[data-collapsed=true] .user-chip,.sidebar[data-collapsed=true] .nav-item{justify-content:initial}.sidebar[data-collapsed=true] .nav-item{padding-inline:10px}.sidebar-close{display:grid}.shell-backdrop{z-index:var(--z-backdrop);background:color-mix(in srgb, var(--bg-ink) 48%, transparent);opacity:0;pointer-events:none;transition:opacity var(--duration-panel) var(--ease-out);border:0;display:block;position:fixed;inset:0}.shell[data-nav-open=true] .shell-backdrop{opacity:1;pointer-events:auto}.main{width:100%;height:100%}.topbar{height:64px;padding-inline:var(--sp-4)}.content{padding:var(--sp-4)}}@media (width<=720px){.hero{min-height:auto;padding:var(--sp-6);grid-template-columns:1fr}.hero h1{font-size:30px}.hero-scene{aspect-ratio:auto;justify-self:stretch;max-width:none;height:150px}.calc-tile-grid{grid-template-columns:1fr}.calc-launch-tile:first-child{grid-column:auto;min-height:96px}.grid-3,.sticky-side{grid-template-columns:1fr}.sticky-side>:last-child{grid-column:auto}.result-best{flex-direction:column;align-items:flex-start}.result-best .grid-3{grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:var(--sp-3)!important;text-align:start!important}.price-overview>.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.metric{padding:var(--sp-3)}.metric-value{font-size:18px}}@media (width<=520px){.topbar{gap:var(--sp-2)}.topbar-kicker,.connection-chip,.signout-btn span{display:none}.signout-btn{width:36px;padding:0}.content{padding:var(--sp-3)}.hero{padding:20px}.hero-scene{height:126px}.grid-2,.price-overview>.grid-3{grid-template-columns:1fr}.card-head,.piece-head{flex-wrap:wrap}.piece-name{flex-basis:calc(100% - 16px)}.result-best .grid-3{grid-template-columns:1fr}.login-main{padding:var(--sp-4)}.login-form{padding:var(--sp-6) var(--sp-4)}.toast-stack{inset-inline:var(--sp-3);inset-block-end:var(--sp-3)}.toast{width:100%;min-width:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
