:root{--font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--fw-light: 300;--fw-regular: 400;--fw-medium: 500;--fw-strong: 600;--radius-badge: 2px;--radius-btn: 6px;--radius-input: 6px;--radius-card: 12px;--radius-pill: 9999px}:root,[data-theme=dark]{--canvas: #08090a;--panel: #0f1011;--panel-2: #161718;--input-bg: #1c1d20;--border: #23252a;--border-2: #323334;--text: #f7f8f8;--text-dim: #8a8f98;--text-muted:#62666d;--fw-display: 300;--accent: #5e6ad2;--accent-2: #6f7ae0;--accent-rgb: 94, 106, 210;--ok: #27a644;--ok-rgb: 39, 166, 68;--warn: #c79a3a;--warn-rgb: 199, 154, 58;--err: #eb5757;--err-rgb: 235, 87, 87;--cyan: #02b8cc;--on-accent: #f7f8f8;--on-ok: #04130a;--fb-ok-bg: rgba(39, 166, 68, .12);--fb-err-bg: rgba(235, 87, 87, .12);--shadow-card: 0 2px 4px rgba(0, 0, 0, .4);--shadow-inset: inset 0 0 0 1px var(--border);--shadow-btn: 0 5px 2px rgba(0,0,0,.01), 0 3px 2px rgba(0,0,0,.04), 0 1px 1px rgba(0,0,0,.07), 0 0 1px rgba(0,0,0,.08);--shadow-overlay: 0 4px 32px rgba(8, 9, 10, .6);--focus-ring: 0 0 0 1px rgba(var(--accent-rgb), .55), 0 0 0 3px rgba(var(--accent-rgb), .18)}[data-theme=light]{--canvas: #ffffff;--panel: #faf9f8;--panel-2: #f4f2f0;--input-bg: #ffffff;--border: #d2cecb;--border-2: #b9b3ad;--text: #0c0a08;--text-dim: #5d606b;--text-muted:#999ba3;--fw-display: 400;--accent: #5683d2;--accent-2: #6f97de;--accent-rgb: 86, 131, 210;--ok: #1a9d4e;--ok-rgb: 26, 157, 78;--warn: #b45309;--warn-rgb: 180, 83, 9;--err: #dc2626;--err-rgb: 220, 38, 38;--cyan: #0891b2;--on-accent: #ffffff;--on-ok: #ffffff;--fb-ok-bg: #e7f6ec;--fb-err-bg: #fdeaea;--shadow-card: none;--shadow-inset: inset 0 0 0 1px var(--border);--shadow-btn: none;--shadow-overlay: 0 12px 32px rgba(12, 10, 8, .12);--focus-ring: 0 0 0 1px rgba(var(--accent-rgb), .45), 0 0 0 3px rgba(var(--accent-rgb), .16);--radius-btn: 4px;--radius-input: 4px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}html{background:var(--canvas)}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}*::-webkit-scrollbar{width:6px;height:6px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius-pill)}*::-webkit-scrollbar-thumb:hover{background:var(--border-2)}body{font-family:var(--font-sans);font-feature-settings:"cv01" 1,"ss03" 1;background:var(--canvas);color:var(--text);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button{font:inherit}::view-transition-old(root),::view-transition-new(root){animation:none;background:var(--canvas);mix-blend-mode:normal}::view-transition{background:var(--canvas)}.theme-transition-reveal::view-transition-old(root){z-index:1}.theme-transition-reveal::view-transition-new(root){z-index:2}.app{display:grid;grid-template-columns:232px 1fr 348px;height:100vh}@media (max-width: 1100px){.app{grid-template-columns:200px 1fr 312px}}@media (max-width: 900px){.app{grid-template-columns:1fr;height:auto;min-height:100vh}.nav{border-right:0;border-bottom:1px solid var(--border)}.chat{border-left:0;border-top:1px solid var(--border);height:70vh}}.nav{background:var(--panel);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.logo-block{padding:20px 14px 18px;border-bottom:1px solid var(--border)}.logo-stack{min-width:0;width:100%}.logo-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.brand{display:inline-flex;align-items:center;gap:9px;color:var(--text)}.brand-mark{flex-shrink:0;display:block}.brand-cell{transform-origin:center;animation:pulse-dot 2.8s ease-in-out infinite}.brand-word{font-family:var(--font-sans);font-weight:var(--fw-strong);font-size:20px;letter-spacing:-.3px;line-height:1;color:var(--text)}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.5}}.logo-tagline{font-family:var(--font-sans);font-size:12px;font-weight:var(--fw-regular);line-height:1.35;color:var(--text-muted);letter-spacing:0;text-transform:none;white-space:nowrap;margin-top:10px;text-align:left}.theme-toggle{background:var(--panel-2);border:1px solid var(--border);color:var(--text-dim);width:30px;height:30px;border-radius:var(--radius-btn);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:color .15s,border-color .15s,background .15s}.theme-toggle:hover{color:var(--accent);border-color:var(--accent)}.nav-section{padding:16px 14px 0}.nav h4{font-family:var(--font-mono);color:var(--text-muted);font-size:10px;text-transform:uppercase;letter-spacing:.8px;margin:0 0 8px;padding:0 4px;font-weight:500}.mode{display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:var(--radius-btn);cursor:pointer;color:var(--text-dim);font-family:var(--font-sans);font-size:14px;font-weight:var(--fw-regular);transition:background .13s,color .13s;margin-bottom:1px;position:relative}.mode:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:2px;height:15px;border-radius:var(--radius-pill);background:transparent;transition:background .13s}.mode:not(.disabled):hover{background:var(--panel-2);color:var(--text)}.mode.active{background:var(--panel-2);color:var(--text);font-weight:var(--fw-medium)}.mode.active:before{background:var(--accent)}.mode.disabled{opacity:.38;cursor:not-allowed}.mode-soon{margin-left:auto;font-family:var(--font-mono);font-size:9px;color:var(--text-muted);letter-spacing:.3px}.recent-item{padding:7px 10px;border-radius:var(--radius-btn);cursor:default;font-family:var(--font-sans);font-size:13px;color:var(--text-dim);display:flex;align-items:center;gap:6px;margin-bottom:1px;transition:background .13s}.recent-item:hover{background:var(--panel-2);color:var(--text)}.recent-item .title{color:var(--text);font-size:13px;font-weight:var(--fw-medium)}.recent-item .item-text{flex:1;min-width:0}.recent-item .item-text .title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-item .item-text>div:last-child{font-family:var(--font-mono);font-size:10px;color:var(--text-muted)}.recent-item .dl-btn{opacity:0;flex-shrink:0;background:var(--input-bg);border:1px solid var(--border);color:var(--text-dim);width:26px;height:26px;border-radius:var(--radius-btn);cursor:pointer;transition:opacity .15s,color .15s,border-color .15s;text-decoration:none;display:flex;align-items:center;justify-content:center}.recent-item:hover .dl-btn{opacity:1}.recent-item .dl-btn:hover{color:var(--accent);border-color:var(--accent)}.nav-recent{flex:1;min-height:0;display:flex;flex-direction:column}.nav-recent h4{flex-shrink:0}.recent-list{flex:1;min-height:0;overflow-y:auto;padding-bottom:8px}.nav-footer{flex-shrink:0;padding:10px 12px;border-top:1px solid var(--border)}.user-menu{position:relative}.user-chip{display:flex;align-items:center;gap:9px;width:100%;padding:7px 9px;background:none;border:1px solid transparent;border-radius:var(--radius-btn);cursor:pointer;text-align:left;transition:background .13s,border-color .13s}.user-chip:hover{background:var(--panel-2)}.user-chip.open{background:var(--panel-2);border-color:var(--border)}.up-avatar{flex-shrink:0;width:26px;height:26px;display:grid;place-items:center;border-radius:var(--radius-btn);background:var(--accent);color:var(--on-accent);font-family:var(--font-sans);font-size:12px;font-weight:var(--fw-strong);line-height:1}.up-avatar.lg{width:38px;height:38px;font-size:16px}.user-chip-id{display:flex;flex-direction:column;min-width:0;flex:1;gap:1px}.user-chip-name{font-family:var(--font-sans);font-size:13px;font-weight:var(--fw-medium);color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:grid;place-items:center;padding:24px;z-index:100;animation:overlay-in .12s ease-out}.user-modal{position:relative;width:100%;max-width:420px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-overlay);padding:24px;display:flex;flex-direction:column;gap:16px;animation:modal-in .14s ease-out}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(6px) scale(.99)}to{opacity:1;transform:none}}.user-modal-close{position:absolute;top:14px;right:14px;background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:15px;line-height:1;padding:4px;border-radius:var(--radius-btn);transition:color .13s,background .13s}.user-modal-close:hover{color:var(--text);background:var(--panel-2)}.up-head{display:flex;align-items:center;gap:12px}.up-id{display:flex;flex-direction:column;gap:2px;min-width:0}.up-name{font-family:var(--font-sans);font-size:16px;font-weight:var(--fw-medium);color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.up-status{font-family:var(--font-mono);font-size:11px;color:var(--text-muted)}.um-fields{display:flex;flex-direction:column;gap:14px}.um-field{display:flex;flex-direction:column;gap:6px}.um-label{font-family:var(--font-mono);font-size:9px;text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted)}.um-input{background:var(--input-bg);border:1px solid var(--border);color:var(--text);padding:8px 11px;border-radius:var(--radius-input);font-family:var(--font-sans);font-size:13px;width:100%;transition:border-color .13s,box-shadow .13s}.um-input:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring)}.um-locked{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:2px 0}.um-locked-value{font-family:var(--font-sans);font-size:14px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.um-change{flex-shrink:0;background:none;border:none;cursor:pointer;font-family:var(--font-sans);font-size:12px;color:var(--accent);padding:2px 4px}.um-change:hover{text-decoration:underline}.um-ttl{display:flex;align-items:center;gap:8px}.um-ttl .um-input{width:110px}.um-input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.um-input[type=number]::-webkit-outer-spin-button,.um-input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.um-suffix{font-family:var(--font-mono);font-size:12px;color:var(--text-dim)}.um-ttl-hint{font-family:var(--font-mono);font-size:12px;color:var(--text-muted)}.um-hint{font-family:var(--font-mono);font-size:10px;color:var(--text-muted)}.up-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:14px;border-top:1px solid var(--border)}.up-row-label{font-family:var(--font-sans);font-size:13px;color:var(--text-dim)}.up-row-control{display:flex;align-items:center;gap:8px}.up-row-value{font-family:var(--font-mono);font-size:11px;color:var(--text-muted)}.um-error{font-family:var(--font-mono);font-size:11px;color:var(--err);background:rgba(var(--err-rgb),.1);border:1px solid rgba(var(--err-rgb),.4);border-radius:var(--radius-btn);padding:7px 10px}.um-save,.up-logout,.up-confirm-yes,.up-confirm-no{font-family:var(--font-sans);font-size:13px;border-radius:var(--radius-btn);padding:9px 12px;cursor:pointer;transition:background .13s,border-color .13s,color .13s,filter .13s}.um-save{width:100%;background:var(--accent);border:1px solid var(--accent);color:var(--on-accent);font-weight:var(--fw-medium)}.um-save:hover:not(:disabled){filter:brightness(1.08)}.um-save:disabled{opacity:.6;cursor:default}.up-logout{width:100%;background:none;border:1px solid var(--border);color:var(--text-dim)}.up-logout:hover{border-color:var(--err);color:var(--err)}.up-confirm{display:flex;flex-direction:column;gap:8px}.up-confirm-q{font-family:var(--font-sans);font-size:13px;color:var(--text);text-align:center}.up-confirm-actions{display:flex;gap:8px}.up-confirm-yes{flex:1;background:var(--err);border:1px solid var(--err);color:#fff}.up-confirm-yes:hover{filter:brightness(1.08)}.up-confirm-no{flex:1;background:none;border:1px solid var(--border);color:var(--text-dim)}.up-confirm-no:hover{border-color:var(--border-2);color:var(--text)}.workspace{padding:28px 32px;overflow:auto;background:var(--canvas)}.workspace-header{margin-bottom:24px;padding-bottom:18px;border-bottom:1px solid var(--border)}.workspace h2{margin:0 0 4px;font-family:var(--font-sans);font-weight:var(--fw-display);font-size:32px;line-height:1.2;letter-spacing:-.384px;color:var(--text)}.workspace .sub{color:var(--text-dim);font-size:14px}.upload-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}.dropzone{border:1px solid var(--border);border-radius:var(--radius-card);padding:22px 18px;text-align:center;background:var(--panel-2);transition:border-color .16s,box-shadow .16s;cursor:pointer;position:relative}.dropzone:hover,.dropzone.drag{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.dropzone .label{font-family:var(--font-mono);color:var(--text-muted);font-size:9px;text-transform:uppercase;letter-spacing:.8px;margin-bottom:10px}.dropzone .dz-icon{font-size:22px;margin-bottom:8px;opacity:.4}.dropzone .title{font-weight:var(--fw-medium);margin-bottom:4px;font-size:14px}.dropzone.filled{border-color:var(--ok)}.dropzone.filled .dz-icon{opacity:.85;color:var(--ok)}.dropzone .file-meta{margin-top:6px;font-size:11px;font-family:var(--font-mono);color:var(--text-muted)}.settings{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-card);padding:18px;margin-bottom:16px;box-shadow:var(--shadow-card)}.settings h3{margin:0 0 14px;font-family:var(--font-sans);font-weight:var(--fw-medium);font-size:13px;letter-spacing:.3px;text-transform:uppercase;color:var(--text-dim)}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field{display:flex;flex-direction:column;gap:6px}.field label{font-family:var(--font-mono);color:var(--text-muted);font-size:9px;text-transform:uppercase;letter-spacing:.6px}.field input,.field select,.field textarea{background:var(--input-bg);border:1px solid var(--border);color:var(--text);padding:8px 11px;border-radius:var(--radius-input);font-family:var(--font-mono);font-size:13px;transition:border-color .13s,box-shadow .13s}.field input::placeholder,.field textarea::placeholder{color:var(--text-muted)}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring)}.field input[type=number]::-webkit-outer-spin-button,.field input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.field input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.group-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.group-col{border:1px solid var(--border);border-radius:var(--radius-btn);padding:14px;display:flex;flex-direction:column;gap:10px;background:var(--canvas)}.group-title{display:flex;align-items:baseline;gap:8px;font-family:var(--font-sans);font-weight:var(--fw-medium);font-size:14px;letter-spacing:-.1px;padding-bottom:10px;border-bottom:1px solid var(--border)}.group-title .tag{margin-left:auto;font-family:var(--font-mono);font-size:9px;color:var(--accent);text-transform:uppercase;letter-spacing:.5px}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.chip{background:var(--canvas);border:1px solid var(--border);padding:3px 8px 3px 10px;border-radius:var(--radius-btn);font-family:var(--font-mono);font-size:11px;display:flex;align-items:center;gap:6px}.chip button{background:transparent;color:var(--text-muted);border:0;cursor:pointer;padding:0;font-size:14px;line-height:1}.chip button:hover{color:var(--err)}.run-btn{width:100%;padding:12px;border-radius:var(--radius-btn);border:0;background:var(--accent);color:var(--on-accent);font-family:var(--font-sans);font-weight:var(--fw-strong);font-size:14px;letter-spacing:.2px;cursor:pointer;transition:background .15s,box-shadow .15s;box-shadow:var(--shadow-btn)}.run-btn:not(:disabled):hover{background:var(--accent-2)}.run-btn:disabled{opacity:.45;cursor:not-allowed}.analyze-btn{width:100%;padding:11px;border-radius:var(--radius-btn);border:1px solid var(--border-2);background:transparent;color:var(--text);font-family:var(--font-sans);font-weight:var(--fw-medium);font-size:14px;letter-spacing:.2px;cursor:pointer;margin-bottom:10px;transition:background .15s,border-color .15s}.analyze-btn:not(:disabled):hover{background:var(--panel-2);border-color:var(--accent)}.analyze-btn:disabled{opacity:.4;cursor:not-allowed}.reanalyze-btn{background:transparent;border:0;color:var(--text-muted);font-family:var(--font-mono);font-size:11px;cursor:pointer;padding:4px 0;margin-bottom:8px;display:block;transition:color .15s}.reanalyze-btn:hover{color:var(--accent)}.reanalyze-btn:disabled{opacity:.4;cursor:not-allowed}.download-btn{display:inline-flex;align-items:center;gap:6px;margin-top:12px;padding:10px 18px;border-radius:var(--radius-btn);background:var(--ok);color:var(--on-ok);text-decoration:none;font-family:var(--font-sans);font-weight:var(--fw-strong);font-size:13px;letter-spacing:.2px;transition:filter .15s;box-shadow:var(--shadow-btn)}.download-btn:hover{filter:brightness(1.08)}.progress{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-card);padding:16px;margin-top:16px;font-family:var(--font-mono);font-size:12px;box-shadow:var(--shadow-card)}.progress .step{display:flex;gap:10px;align-items:center;padding:4px 0;color:var(--text-muted)}.progress .step .ind{width:14px;flex-shrink:0;text-align:center}.progress .step.done{color:var(--ok)}.progress .step.active{color:var(--accent)}.progress .step.fail{color:var(--err)}.security-panel{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-card);padding:16px 18px;margin-bottom:16px;box-shadow:var(--shadow-card)}.security-panel-title{font-family:var(--font-sans);font-weight:var(--fw-medium);font-size:14px;letter-spacing:-.1px;color:var(--text);margin:0 0 11px;display:flex;align-items:center;gap:9px}.sensitive-item{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none}.sensitive-item:last-child{border-bottom:0}.sensitive-item input[type=checkbox]{width:15px;height:15px;accent-color:var(--accent);cursor:pointer;flex-shrink:0}.sensitive-tag{font-family:var(--font-mono);font-size:10px;background:rgba(var(--accent-rgb),.14);color:var(--accent);padding:2px 7px;border-radius:var(--radius-badge);white-space:nowrap}.sensitive-reason{font-family:var(--font-mono);font-size:9px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.sheet-stat{font-family:var(--font-mono);font-size:11px;color:var(--text-dim);margin-bottom:5px}.banner-warn{background:rgba(var(--warn-rgb),.1);border:1px solid rgba(var(--warn-rgb),.4);border-radius:var(--radius-btn);padding:12px 14px;margin-bottom:12px;color:var(--warn);font-size:13px;line-height:1.55}.banner-err{background:rgba(var(--err-rgb),.08);border:1px solid rgba(var(--err-rgb),.4);border-radius:var(--radius-btn);padding:12px 14px;margin-top:12px;color:var(--err);font-family:var(--font-mono);font-size:12px}.feedback-row{display:flex;align-items:center;gap:10px;margin-top:14px;padding-top:12px;border-top:1px solid var(--border);flex-wrap:wrap}.feedback-row .fb-label{font-family:var(--font-mono);color:var(--text-muted);font-size:9px;text-transform:uppercase;letter-spacing:.6px}.fb-btn{background:var(--canvas);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-btn);padding:5px 13px;cursor:pointer;font-size:15px;transition:border-color .15s,background .15s}.fb-btn:hover{border-color:var(--accent)}.fb-btn.positive.active{background:var(--fb-ok-bg);border-color:var(--ok)}.fb-btn.negative.active{background:var(--fb-err-bg);border-color:var(--err)}.fb-note{display:flex;gap:6px;width:100%;margin-top:4px}.fb-note input{flex:1;background:var(--input-bg);border:1px solid var(--border);color:var(--text);padding:8px 11px;border-radius:var(--radius-input);font-family:var(--font-mono);font-size:12px}.fb-note input::placeholder{color:var(--text-muted)}.fb-note input:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring)}.fb-note button{background:var(--accent);border:0;color:var(--on-accent);padding:0 14px;border-radius:var(--radius-input);cursor:pointer;font-family:var(--font-sans);font-weight:var(--fw-medium);font-size:12px}.preview-container{border:1px solid var(--border);border-radius:var(--radius-card);margin-top:14px;margin-bottom:6px;background:var(--canvas);overflow:hidden}.preview-header{padding:10px 14px;border-bottom:1px solid var(--border);background:var(--panel-2)}.preview-title{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted)}.preview-tabs{display:flex;gap:0;border-bottom:1px solid var(--border);background:var(--panel-2);overflow-x:auto}.preview-tab{background:transparent;border:0;border-bottom:2px solid transparent;color:var(--text-dim);padding:7px 14px;font-family:var(--font-mono);font-size:11px;cursor:pointer;white-space:nowrap;transition:color .13s,border-color .13s}.preview-tab:hover{color:var(--text)}.preview-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.preview-sheet-name{font-family:var(--font-mono);font-size:11px;color:var(--text-dim);padding:7px 14px;border-bottom:1px solid var(--border);background:var(--panel-2)}.preview-scroll{overflow-x:auto;max-height:320px;overflow-y:auto}.preview-table{border-collapse:collapse;font-family:var(--font-mono);font-size:11px;width:100%;min-width:max-content}.preview-table th{background:var(--panel-2);border:1px solid var(--border);padding:5px 10px;color:var(--text-dim);font-weight:600;text-align:left;white-space:nowrap;position:sticky;top:0;z-index:1}.preview-table td{border:1px solid var(--border);padding:4px 10px;color:var(--text);white-space:nowrap;max-width:200px;overflow:hidden;text-overflow:ellipsis}.preview-table tr:nth-child(2n) td{background:var(--panel-2)}.cell-formula{font-family:var(--font-mono);color:var(--accent);display:inline-flex;align-items:center;gap:3px;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:help}.cell-formula-icon{font-size:10px;opacity:.75;flex-shrink:0}.preview-note{font-family:var(--font-mono);font-size:10px;color:var(--text-muted);padding:6px 14px;border-top:1px solid var(--border)}.preview-empty{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);padding:14px;margin:0}.preflight-card{background:var(--panel-2);border:1px solid var(--accent);border-radius:var(--radius-card);padding:18px;margin-top:16px;box-shadow:var(--shadow-card);font-family:var(--font-sans)}.preflight-title{font-weight:var(--fw-medium);font-size:14px;letter-spacing:-.1px;color:var(--text);margin-bottom:10px}.preflight-summary{font-size:13.5px;color:var(--text);margin:0 0 12px;line-height:1.5}.preflight-section{margin-bottom:12px}.preflight-section-label{font-family:var(--font-mono);font-size:9px;text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);margin-bottom:5px}.preflight-list{margin:0;padding-left:18px;font-size:13px;color:var(--text-dim);line-height:1.6}.preflight-questions .preflight-list{color:var(--warn)}.preflight-badge{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-mono);font-size:10px;color:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-badge);padding:2px 8px;margin-bottom:12px;letter-spacing:.3px}.preflight-actions{display:flex;gap:8px;margin-top:14px}.preflight-confirm-btn{flex:1}.preflight-clarify-btn{padding:11px 18px;border-radius:var(--radius-btn);border:1px solid var(--border-2);background:transparent;color:var(--text);font-family:var(--font-sans);font-weight:var(--fw-medium);font-size:14px;cursor:pointer;transition:background .15s,border-color .15s;white-space:nowrap}.preflight-clarify-btn:not(:disabled):hover{background:var(--panel-2);border-color:var(--accent)}.preflight-clarify-btn:disabled{opacity:.4;cursor:not-allowed}.preflight-hint{font-family:var(--font-mono);font-size:10px;color:var(--text-muted);margin-top:8px;text-align:center}.preflight-recheck-btn{margin-top:10px}.recipe-expanded{border-top:1px solid var(--border);padding:10px 12px 8px;background:var(--canvas);display:flex;flex-direction:column;gap:8px}.recipe-hint{font-family:var(--font-mono);font-size:9px;text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted)}.recipe-chips{display:flex;flex-wrap:wrap;gap:6px}.recipe-chip{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:var(--radius-btn);border:1px solid var(--border);background:var(--panel-2);color:var(--text-dim);font-family:var(--font-sans);font-size:12px;font-weight:var(--fw-regular);cursor:pointer;transition:border-color .13s,color .13s,background .13s;white-space:nowrap}.recipe-chip:hover{border-color:var(--accent);color:var(--text);background:rgba(var(--accent-rgb),.06)}.recipe-chip-icon{font-size:13px;line-height:1}.recipe-bar{border-top:1px solid var(--border);padding:5px 10px;background:var(--canvas);display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}.recipe-bar::-webkit-scrollbar{display:none}.recipe-icon-chip{flex-shrink:0;width:28px;height:28px;border-radius:var(--radius-btn);border:1px solid var(--border);background:var(--panel-2);font-size:14px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .13s,background .13s}.recipe-icon-chip:hover{border-color:var(--accent);background:rgba(var(--accent-rgb),.06)}.chat{background:var(--panel);border-left:1px solid var(--border);display:flex;flex-direction:column}.chat-header{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:9px;background:var(--canvas)}.chat-header strong{font-family:var(--font-sans);font-weight:var(--fw-medium);font-size:14px;letter-spacing:.3px}.online-dot{width:7px;height:7px;border-radius:50%;background:var(--ok);flex-shrink:0;box-shadow:0 0 0 3px rgba(var(--ok-rgb),.18)}.chat-log{flex:1;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:10px}.msg{max-width:88%;padding:9px 13px;border-radius:10px;line-height:1.5;font-size:13.5px;white-space:pre-wrap}.msg.ai{background:var(--panel-2);border:1px solid var(--border);align-self:flex-start}.msg.me{background:var(--accent);color:var(--on-accent);align-self:flex-end}.msg.sys{background:transparent;color:var(--text-muted);font-style:italic;align-self:center;font-size:12.5px}.typing-cursor{display:inline-block;width:2px;height:13px;background:var(--accent);margin-left:2px;vertical-align:middle;border-radius:1px;animation:blink .7s step-end infinite}@keyframes blink{50%{opacity:0}}.chat-input{border-top:1px solid var(--border);padding:10px;display:flex;gap:8px;align-items:flex-end;background:var(--canvas)}.chat-input textarea{flex:1;background:var(--input-bg);border:1px solid var(--border);border-radius:var(--radius-input);color:var(--text);padding:9px 12px;font-family:var(--font-sans);font-size:13.5px;resize:none;line-height:1.45;min-height:40px;max-height:160px;overflow-y:auto;transition:border-color .13s,box-shadow .13s}.chat-input textarea::placeholder{color:var(--text-muted)}.chat-input textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring)}.chat-input button{background:var(--accent);border:0;color:var(--on-accent);width:40px;height:40px;border-radius:var(--radius-input);cursor:pointer;flex-shrink:0;font-size:17px;display:flex;align-items:center;justify-content:center;transition:background .15s}.chat-input button:hover{background:var(--accent-2)}.auth-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--canvas);position:relative;overflow:hidden}.auth-screen:before{content:"";position:absolute;width:560px;height:560px;top:-200px;border-radius:50%;background:radial-gradient(circle,rgba(var(--accent-rgb),.13),transparent 70%);pointer-events:none}.auth-theme-toggle{position:absolute;top:18px;right:18px;z-index:1}.auth-card{position:relative;width:380px;max-width:100%;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-card);padding:30px 28px 24px;box-shadow:var(--shadow-overlay)}.auth-head{margin-bottom:24px}.auth-head .brand-word{font-size:22px}.auth-sub{margin-top:9px;font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted)}.auth-fields{display:flex;flex-direction:column;gap:13px;margin-bottom:18px}.auth-field{display:flex;flex-direction:column;gap:6px}.auth-label{font-family:var(--font-mono);font-size:9px;text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted)}.auth-input{background:var(--input-bg);border:1px solid var(--border);color:var(--text);padding:10px 12px;border-radius:var(--radius-input);font-family:var(--font-sans);font-size:14px;transition:border-color .13s,box-shadow .13s}.auth-input::placeholder{color:var(--text-muted)}.auth-input:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring)}.auth-error{color:var(--err);font-family:var(--font-mono);font-size:12px;margin-bottom:14px}.auth-submit{width:100%;padding:12px;border:0;border-radius:var(--radius-btn);background:var(--accent);color:var(--on-accent);font-family:var(--font-sans);font-weight:var(--fw-strong);font-size:14px;letter-spacing:.2px;cursor:pointer;box-shadow:var(--shadow-btn);transition:background .15s}.auth-submit:not(:disabled):hover{background:var(--accent-2)}.auth-submit:disabled{opacity:.5;cursor:not-allowed}.auth-foot{margin-top:18px;text-align:center;font-family:var(--font-mono);font-size:10px;letter-spacing:.3px;color:var(--text-muted)}.admin-panel{grid-column:2 / -1;padding:28px 32px;overflow:auto;background:var(--canvas)}@media (max-width: 900px){.admin-panel{grid-column:1 / -1}}.admin-create{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-card);padding:18px;margin-bottom:24px;display:flex;flex-direction:column;gap:14px}.admin-create-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}@media (max-width: 720px){.admin-create-grid{grid-template-columns:1fr}}.admin-create-foot{display:flex;align-items:center;justify-content:space-between;gap:12px}.admin-check{display:flex;align-items:center;gap:7px;font-family:var(--font-sans);font-size:13px;color:var(--text-dim);cursor:pointer}.admin-check input{accent-color:var(--accent);cursor:pointer}.admin-create-btn{width:auto;padding:9px 18px}.admin-credentials{background:var(--panel-2);border:1px solid var(--accent);border-radius:var(--radius-btn);padding:12px 14px;display:flex;flex-direction:column;gap:6px;font-family:var(--font-sans);font-size:13px;color:var(--text)}.admin-cred-row{display:flex;align-items:center;gap:10px}.admin-cred-row span{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);width:56px}.admin-cred-row code{font-family:var(--font-mono);font-size:13px;color:var(--accent);background:var(--canvas);padding:2px 8px;border-radius:var(--radius-badge)}.admin-table-wrap{border:1px solid var(--border);border-radius:var(--radius-card);overflow:hidden}.admin-table{width:100%;border-collapse:collapse;font-size:13px}.admin-table th{text-align:left;font-family:var(--font-mono);font-size:9px;text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);font-weight:var(--fw-regular);padding:10px 14px;background:var(--panel-2);border-bottom:1px solid var(--border)}.admin-table td{padding:11px 14px;color:var(--text);border-bottom:1px solid var(--border);vertical-align:middle}.admin-table tr:last-child td{border-bottom:none}.admin-mono{font-family:var(--font-mono);color:var(--text-muted)}.admin-dim{color:var(--text-dim)}.admin-you{margin-left:8px;font-family:var(--font-mono);font-size:9px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.admin-badge{font-family:var(--font-mono);font-size:10px;color:var(--accent);background:rgba(var(--accent-rgb),.12);padding:2px 8px;border-radius:var(--radius-badge)}.admin-actions{text-align:right;white-space:nowrap}.admin-link{background:none;border:none;cursor:pointer;font-family:var(--font-sans);font-size:12px;color:var(--text-dim);padding:4px 6px;border-radius:var(--radius-btn);transition:color .13s,background .13s}.admin-link:hover:not(:disabled){color:var(--text);background:var(--panel-2)}.admin-link:disabled{opacity:.5;cursor:default}.admin-link-danger:hover:not(:disabled){color:var(--err)}.admin-reset{display:inline-flex;align-items:center;gap:6px}.admin-reset .um-input{width:150px;padding:5px 9px;font-size:12px}.admin-empty{padding:28px;text-align:center;font-family:var(--font-mono);font-size:12px;color:var(--text-muted)}
