:root{--ink:#17202b;--ink-soft:#46515f;--ink-faint:#76808d;--line:#d9dee4;--line-soft:#e8ebef;--surface:#fff;--surface-sunk:#f4f6f8;--stage:#e7eaee;--accent:#0f5c63;--accent-strong:#0a4449;--accent-soft:#e2f0f0;--warn:#9a5b00;--warn-soft:#fdf3dc;--danger:#b42318;--danger-soft:#fdeceb;--ok:#18794e;--radius:8px;--radius-sm:5px;--shadow:0 1px 2px #17202b14, 0 4px 14px #17202b12;--font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);color:var(--ink);background:var(--stage);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.45}h1,h2,h3,p{margin:0}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app{grid-template-rows:auto minmax(0,1fr);height:100dvh;display:grid}.topbar{background:var(--surface);border-bottom:1px solid var(--line);align-items:center;gap:10px;min-height:52px;padding:8px 14px;display:flex}.topbar-spacer{flex:1}.topbar-group{align-items:center;gap:4px;display:flex}.topbar-divider{background:var(--line);align-self:stretch;width:1px;margin:6px 4px}.brand{letter-spacing:-.01em;align-items:center;gap:9px;margin-right:6px;font-size:15px;font-weight:650;display:flex}.brand-mark{background:var(--accent) url(/favicon.svg) center / cover;border-radius:6px;width:22px;height:22px}.workspace{grid-template-columns:296px minmax(0,1fr);min-height:0;display:grid}.workspace.with-inspector{grid-template-columns:296px minmax(0,1fr) 304px}.panel{background:var(--surface);min-height:0;overflow-y:auto}.panel-left{border-right:1px solid var(--line)}.panel-right{border-left:1px solid var(--line)}.panel-title{text-transform:uppercase;letter-spacing:.07em;color:var(--ink-faint);padding:14px 16px 6px;font-size:11px;font-weight:650}.stage{min-height:0;padding:24px;overflow:auto}.btn{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:6px;min-height:32px;padding:5px 12px;font-weight:550;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-sunk)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-strong)}.btn-quiet{color:var(--ink-soft);background:0 0;border-color:#0000}.btn-danger{color:var(--danger)}.btn-icon{min-width:32px;padding:5px}.btn svg{flex:none;width:16px;height:16px}.field{gap:4px;min-width:0;display:grid}.field>span{color:var(--ink-soft);font-size:12px;font-weight:600}.field small{color:var(--ink-faint);font-size:12px}input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],select,textarea{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);width:100%;min-height:32px;padding:5px 8px}textarea{resize:vertical;min-height:64px}input[type=color]{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);width:40px;height:32px;padding:2px}.check{align-items:center;gap:8px;min-height:28px;display:flex}.form-row{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:14px;display:grid}.form-error{color:var(--danger);margin-right:auto;font-size:13px}.tag{color:var(--ink-faint);border:1px solid var(--line);border-radius:999px;padding:0 7px;font-size:11px}.language select{width:auto;min-height:30px}.data-panel{grid-template-columns:minmax(0,1fr);gap:16px;padding:6px 16px 20px;display:grid}.privacy-note{border-radius:var(--radius);background:var(--accent-soft);color:var(--accent-strong);gap:8px;padding:9px 10px;font-size:12.5px;display:flex}.privacy-note svg{flex:none;width:18px;height:18px}.slot{gap:8px;display:grid}.slot-title{align-items:center;gap:8px;display:flex}.slot-title h3{font-size:13px;font-weight:650}.dropzone{border-radius:var(--radius);background:var(--surface-sunk);width:100%;color:var(--ink-soft);text-align:center;cursor:pointer;border:1.5px dashed #b9c2cc;justify-items:center;gap:6px;padding:18px 12px;display:grid}.dropzone:hover,.dropzone-over{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong)}.dropzone-icon{width:22px;height:22px}.slot-card{border:1px solid var(--line);border-radius:var(--radius);gap:8px;padding:12px;display:grid}.slot-project{overflow-wrap:anywhere;font-weight:650}.slot-file{color:var(--ink-soft);overflow-wrap:anywhere;font-size:12.5px}.slot-meta{color:var(--ink-faint);font-variant-numeric:tabular-nums;justify-content:space-between;font-size:12.5px;display:flex}.slot-hint{color:var(--ink-faint);font-size:12px}.slot-error{color:var(--danger);background:var(--danger-soft);border-radius:var(--radius-sm);padding:8px 10px;font-size:13px}.slot-actions{gap:4px;margin:0 -8px -4px;display:flex}.facts{grid-template-columns:1fr 1fr;gap:6px 12px;margin:0;display:grid}.facts dt{color:var(--ink-faint);font-size:11px}.facts dd{font-variant-numeric:tabular-nums;margin:0;font-weight:600}.notices{color:var(--warn);background:var(--warn-soft);border-radius:var(--radius-sm);padding:6px 10px;font-size:12.5px}.notices summary{cursor:pointer;font-weight:600}.notices ul{margin:6px 0 2px;padding-left:18px}.progress{background:var(--line-soft);border-radius:999px;height:8px;overflow:hidden}.progress-bar{background:var(--accent);border-radius:999px;height:100%;transition:width .12s linear}.example{gap:6px;display:grid}.example .btn{white-space:normal}.prose{gap:14px;max-width:68ch;display:grid}.prose h3{margin-bottom:3px;font-size:14px}.prose p{color:var(--ink-soft)}.prose a{color:var(--accent)}.privacy-note .link{color:inherit;font-weight:600}.modal{width:min(520px,100vw - 32px);max-height:calc(100dvh - 48px);color:var(--ink);border:0;border-radius:12px;padding:0;box-shadow:0 24px 60px #17202b47}.modal-wide{width:min(760px,100vw - 32px)}.modal::backdrop{background:#17202b73}.modal-body{grid-template-rows:auto minmax(0,1fr) auto;max-height:calc(100dvh - 48px);display:grid}.modal-header{padding:18px 20px 6px}.modal-header h2{letter-spacing:-.01em;font-size:17px}.modal-content{padding:8px 20px 16px;overflow-y:auto}.modal-hint{color:var(--ink-soft);margin-bottom:14px}.modal-footer{border-top:1px solid var(--line-soft);justify-content:flex-end;align-items:center;gap:8px;padding:12px 20px;display:flex}.choice-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.choice{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);text-align:left;cursor:pointer;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:12px 14px;display:flex}.choice:hover{border-color:var(--accent);background:var(--accent-soft)}.choice-main{gap:2px;min-width:0;display:grid}.choice-code,.choice-meta{color:var(--ink-faint);font-size:12.5px}.choice-meta{font-variant-numeric:tabular-nums;flex:none;justify-items:end;display:grid}.mapping{border-collapse:collapse;width:100%}.mapping th,.mapping td{text-align:left;vertical-align:middle;padding:5px 8px 5px 0;font-weight:500}.mapping thead th{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);border-bottom:1px solid var(--line-soft);font-size:11px}.mapping-sample{color:var(--ink-faint);text-overflow:ellipsis;white-space:nowrap;max-width:220px;font-size:12.5px;overflow:hidden}.required{color:var(--danger)}@media (width<=900px){.app{height:auto;min-height:100dvh}.workspace,.workspace.with-inspector{grid-template-columns:minmax(0,1fr)}.panel{border:0;border-bottom:1px solid var(--line);overflow:visible}.stage{padding:16px;overflow-x:auto}}.segmented{background:var(--surface-sunk);border:1px solid var(--line);border-radius:7px;padding:2px;display:inline-flex}.segment{min-height:26px;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:5px;padding:2px 12px;font-weight:550}.segment-on{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #17202b29}.account{align-items:center;gap:2px;min-width:0;display:flex}.account-email{text-overflow:ellipsis;white-space:nowrap;max-width:180px;color:var(--ink-soft);font-size:13px;overflow:hidden}.palette{padding:4px 16px 20px}.palette-hint{color:var(--ink-faint);margin-bottom:10px;font-size:12px}.palette ul{gap:6px;margin:0;padding:0;list-style:none;display:grid}.palette-item{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);text-align:left;cursor:grab;touch-action:none;align-items:center;gap:10px;width:100%;padding:9px 10px;display:flex}.palette-item:hover{border-color:var(--accent);background:var(--accent-soft)}.palette-item-dragging{opacity:.45}.palette-text{min-width:0;display:grid}.palette-text small{color:var(--ink-faint);font-size:12px}.block-icon{width:22px;height:22px;color:var(--accent);flex:none}.drag-chip{border-radius:var(--radius);background:var(--ink);color:#fff;cursor:grabbing;align-items:center;gap:8px;width:max-content;padding:8px 12px;font-weight:600;display:inline-flex;box-shadow:0 10px 28px #17202b4d}.drag-chip .block-icon{color:#fff}.inspector{padding-bottom:24px}.inspector-group{border:0;border-bottom:1px solid var(--line-soft);gap:11px;min-width:0;margin:0;padding:6px 16px 16px;display:grid}.inspector-group legend{padding:10px 0 2px;font-size:13px;font-weight:650}.inspector-hint{color:var(--ink-faint);font-size:12px}.color-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.logo-row{align-items:center;gap:8px;display:flex}.logo-preview{object-fit:contain;border:1px solid var(--line-soft);border-radius:4px;max-width:120px;max-height:44px;padding:3px}input[type=file]{max-width:100%;font-size:12px}.storage-note{border-radius:var(--radius-sm);background:var(--surface-sunk);color:var(--ink-soft);flex-wrap:wrap;gap:4px 10px;margin-bottom:14px;padding:8px 10px;font-size:13px;display:flex}.storage-account{background:var(--accent-soft);color:var(--accent-strong)}.link{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-weight:600;text-decoration:underline}.template-save{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;display:grid}.form-ok{color:var(--ok);margin-top:8px;font-size:13px}.modal-content>.form-error{margin-top:8px;display:block}.list-title{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);margin:18px 0 8px;font-size:12px}.muted{color:var(--ink-faint)}.template-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.template-list li{border:1px solid var(--line);border-radius:var(--radius);align-items:center;gap:6px;padding:8px 8px 8px 12px;display:flex}.template-name{flex:1;min-width:0;display:grid}.template-name small{color:var(--ink-faint);font-size:12px}.auth-form{gap:12px;display:grid}.auth-actions{justify-content:space-between;align-items:center;gap:8px;margin-top:4px;display:flex}.copilot{gap:11px;padding:12px 16px 16px;display:grid}.copilot h3{font-size:13px;font-weight:650}.copilot-fact{border-radius:var(--radius-sm);background:var(--surface-sunk);color:var(--ink-soft);font-variant-numeric:tabular-nums;padding:8px 10px;font-size:12.5px}.copilot-sends{color:var(--ink-faint);font-size:11.5px}.char-count{color:var(--ink-faint);font-variant-numeric:tabular-nums;justify-self:end;font-size:11px}@media (width<=900px){.topbar{flex-wrap:wrap}.topbar-spacer{display:none}}.canvas{align-content:start;justify-items:center;gap:10px;min-height:100%;display:grid}.canvas-status{color:var(--ink-faint);font-variant-numeric:tabular-nums;font-size:12px}.sheet-scaler{position:relative}.sheet{--brand-primary:#0f5c63;--brand-accent:#c2410c;--block-gap:7mm;--r-ink:#17202b;--r-soft:#46515f;--r-faint:#6b7583;--r-line:#d5dae0;--r-wash:#f3f5f7;width:var(--page-width);min-height:var(--page-min-height);padding:var(--page-margin-y) var(--page-margin-x);color:var(--r-ink);box-shadow:var(--shadow);gap:var(--block-gap);transform-origin:0 0;background:#fff;flex-direction:column;font-size:10pt;line-height:1.45;display:flex}.sheet-scaler>.sheet[style*=scale]{position:absolute;top:0;left:0}.sheet-empty{min-height:80mm;color:var(--ink-faint);text-align:center;border:1.5px dashed #c3cad3;border-radius:10px;flex:1;place-content:center;justify-items:center;gap:6px;padding:24px;font-size:14px;display:grid}.sheet-empty strong{color:var(--ink-soft);font-size:16px}.sheet-empty span{max-width:42ch}.sheet-empty-active{border-color:var(--accent);background:var(--accent-soft)}.block{outline-offset:6px;break-inside:avoid;border-radius:4px;outline:1px solid #0000;position:relative}.block:hover{outline-color:#c9d0d8}.block-selected,.block-selected:hover{outline:2px solid var(--accent)}.block-dragging{opacity:.35}.block-title{letter-spacing:-.01em;break-after:avoid;align-items:center;gap:8px;margin:0 0 3.5mm;font-size:13pt;font-weight:650;line-height:1.2;display:flex}.block-title:before{content:"";background:var(--brand-primary);border-radius:2px;flex:none;width:3px;height:1.1em}.block-note{break-before:avoid;color:var(--r-faint);margin-top:2.5mm;font-size:8pt;line-height:1.4}.block-placeholder{border:1px dashed var(--r-line);background:var(--r-wash);min-height:34mm;color:var(--r-faint);text-align:center;border-radius:6px;place-content:center;padding:6mm;font-size:9.5pt;display:grid}.block-tools{z-index:2;border:1px solid var(--line);background:var(--surface);font-family:var(--font);border-radius:7px;align-items:center;gap:1px;padding:2px;font-size:12px;line-height:1;display:none;position:absolute;top:-29px;right:-2px;box-shadow:0 2px 8px #17202b24}.block:hover>.block-tools,.block-selected>.block-tools,.block:focus-within>.block-tools{display:flex}.tool{min-width:24px;height:24px;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:5px;place-items:center;padding:0 6px;font-size:12px;display:inline-grid}.tool svg{width:16px;height:16px}.tool:hover:not(:disabled){background:var(--surface-sunk);color:var(--ink)}.tool:disabled{opacity:.35;cursor:default}.tool-on{background:var(--accent-soft);color:var(--accent-strong)}.tool-handle{cursor:grab;touch-action:none}.tool-danger:hover:not(:disabled){background:var(--danger-soft);color:var(--danger)}.tool-label{color:var(--ink-faint);white-space:nowrap;padding:0 6px 0 2px}.drop-line{height:0;position:relative}.drop-line:after{content:"";left:-6px;right:-6px;top:calc(var(--block-gap) / -2 - 1.5px);background:var(--accent);border-radius:2px;height:3px;position:absolute}.page-break{margin:0 calc(var(--page-margin-x) * -1);color:var(--ink-faint);font-family:var(--font);align-items:center;gap:8px;font-size:11px;display:flex}.page-break:before,.page-break:after{content:"";border-top:1px dashed #b4bcc6;flex:1}.page-break span{background:var(--stage);border-radius:999px;padding:1px 8px}.cover{border-top:2.5mm solid var(--brand-primary);border-bottom:1px solid var(--r-line);padding:9mm 0 8mm}.cover-top{align-items:center;gap:4mm;margin-bottom:10mm;display:flex}.cover-logo{object-fit:contain;max-width:50mm;max-height:16mm}.cover-company{color:var(--r-soft);text-transform:uppercase;letter-spacing:.08em;font-size:10pt;font-weight:600}.cover-title{letter-spacing:-.02em;text-wrap:balance;margin:0;font-size:28pt;font-weight:700;line-height:1.1}.cover-subtitle{color:var(--r-soft);margin-top:3mm;font-size:13pt}.cover-facts{grid-template-columns:repeat(auto-fit,minmax(42mm,1fr));gap:5mm 8mm;margin:12mm 0 0;display:grid}.cover-facts dt{text-transform:uppercase;letter-spacing:.08em;color:var(--r-faint);font-size:7.5pt}.cover-facts dd{margin:1mm 0 0;font-size:11pt;font-weight:600}.sheet-wide .cover{padding-top:6mm}.sheet-wide .cover-title{font-size:32pt}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(36mm,1fr));gap:4mm;display:grid}.kpi{border:1px solid var(--r-line);border-radius:6px;align-content:start;gap:1mm;padding:4mm;display:grid}.kpi-label{text-transform:uppercase;letter-spacing:.06em;color:var(--r-faint);font-size:8pt;font-weight:600}.kpi-value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:22pt;font-weight:700;line-height:1.1}.kpi-na{color:var(--r-soft);letter-spacing:0;font-size:12pt;font-weight:600;line-height:1.65}.kpi-missing{background:var(--r-wash);border-style:dashed}.kpi-note{color:var(--r-faint);font-size:8pt;line-height:1.35}.kpi-status{color:var(--r-ink);align-items:center;gap:1.5mm;font-size:8.5pt;font-weight:600;display:inline-flex}.kpi-status svg{flex:none;width:3.4mm;height:3.4mm}.kpi-status-good svg{color:#18794e}.kpi-status-watch svg{color:#b7791f}.kpi-status-bad svg{color:#b42318}.legend{color:var(--r-soft);flex-wrap:wrap;gap:2mm 7mm;margin:0 0 2mm;padding:0;font-size:8.5pt;list-style:none;display:flex}.legend li{align-items:center;gap:1.5mm;display:inline-flex}.legend strong{color:var(--r-ink);font-variant-numeric:tabular-nums}.legend-swatch{flex:none;width:7mm;height:2.2mm}.chart{width:100%}.chart svg{overflow:visible}.curve-table,.variance{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:8.5pt}.curve-table{margin-top:3mm}.curve-table th,.curve-table td,.variance th,.variance td{text-align:left;vertical-align:top;border-bottom:1px solid var(--r-line);padding:1.4mm 2mm}.curve-table thead th,.variance thead th{text-transform:uppercase;letter-spacing:.05em;color:var(--r-soft);border-bottom:1.5px solid var(--brand-primary);white-space:nowrap;font-size:7.5pt;font-weight:650}.curve-table tbody th{font-weight:500}.num{white-space:nowrap;text-align:right!important}.block-variance{break-inside:auto}.variance thead{display:table-header-group}.variance tr,.curve-table tr{break-inside:avoid}.variance .code{font-family:var(--font-mono);white-space:nowrap;color:var(--r-soft);font-size:8pt}.variance .muted{color:var(--r-faint)}.delta{font-weight:650}.delta-late{color:#a3261b}.delta-early{color:#14653f}.delta-same{color:var(--r-faint);font-weight:500}.chip{border:1px solid var(--r-line);white-space:nowrap;color:var(--r-soft);border-radius:999px;padding:.3mm 2mm;font-size:7.5pt;font-weight:600;display:inline-block}.chip-done{background:var(--r-wash)}.chip-new{color:#1f4f9c;border-color:#9db8e8}.chip-removed{color:var(--r-faint);border-style:dashed}tr[data-state=removed] td:nth-child(2){-webkit-text-decoration:line-through #9aa3ae;text-decoration:line-through #9aa3ae}.text-tools{z-index:2;border:1px solid var(--line);background:var(--surface);font-family:var(--font);border-radius:7px;gap:1px;padding:2px;line-height:1;display:flex;position:absolute;top:-29px;left:-2px;box-shadow:0 2px 8px #17202b24}.text-body{position:relative}.rich-text{overflow-wrap:anywhere;outline:none;min-height:12mm}.rich-text>*{margin:0}.rich-text>*+*{margin-top:2.5mm}.rich-text h3{font-size:11pt;font-weight:650}.rich-text ul,.rich-text ol{padding-left:6mm}.rich-text li>p{margin:0}.text-empty .rich-text:before{content:attr(data-placeholder);color:var(--r-faint);pointer-events:none;position:absolute;inset:0 auto auto 0}.ai-draft{background:#fff4d6;border-bottom:1.5px dashed #c98a00;box-shadow:0 0 0 2px #fff4d6}.draft-banner{background:var(--warn-soft);color:#6b4200;font-family:var(--font);border-radius:6px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:2.5mm;padding:7px 10px;font-size:12.5px;display:flex}.draft-banner span{flex:1;min-width:180px}.draft-banner .btn{min-height:28px;padding:3px 10px}@media print{html,body,#root{background:#fff;height:auto}.no-print,dialog{display:none!important}.app,.workspace,.workspace.with-inspector,.stage,.canvas{background:#fff;height:auto;min-height:0;margin:0;padding:0;display:block;overflow:visible}.canvas{justify-items:normal}.sheet-scaler{justify-self:stretch;width:auto!important;height:auto!important}.sheet{width:auto;min-height:0;box-shadow:none;-webkit-print-color-adjust:exact;print-color-adjust:exact;padding:0;display:block;position:static!important;transform:none!important}.block{margin:0 0 var(--block-gap);opacity:1!important;outline:none!important}.block:last-child{margin-bottom:0}.block[data-break-before=true]{break-before:page}.ai-draft{box-shadow:none;background:0 0;border:0}.text-empty{display:none}.rich-text{caret-color:#0000}.recharts-tooltip-wrapper{display:none!important}}
