:root{--bg: #f4f6fb;--bg-accent: #eef2fb;--surface: #ffffff;--surface-2: #f8fafc;--surface-3: #f1f5fb;--ink: #0f172a;--ink-2: #334155;--muted: #64748b;--muted-2: #94a3b8;--line: #e4e9f2;--line-strong: #cbd5e1;--accent: #2456d6;--accent-hover: #1c46b0;--accent-soft: #e9eefc;--accent-ink: #1b3f9e;--ok: #0f7a4d;--ok-soft: #e7f6ee;--warn: #a35a06;--warn-soft: #fdf1e2;--err: #b42318;--err-soft: #fdecea;--radius-sm: 7px;--radius: 10px;--radius-lg: 14px;--radius-xl: 18px;--shadow-xs: 0 1px 2px rgba(15, 23, 42, .06);--shadow-sm: 0 1px 2px rgba(15, 23, 42, .05), 0 1px 3px rgba(15, 23, 42, .05);--shadow: 0 1px 3px rgba(15, 23, 42, .06), 0 8px 24px rgba(15, 23, 42, .06);--shadow-lg: 0 24px 60px rgba(15, 23, 42, .22);--ring: 0 0 0 3px rgba(36, 86, 214, .18);--font: "Segoe UI", Inter, system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;--mono: "SFMono-Regular", ui-monospace, Menlo, Consolas, monospace}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font);font-size:14px;line-height:1.45;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4{margin:0;font-weight:650;letter-spacing:-.01em;color:var(--ink)}p{margin:0}a{color:var(--accent)}::selection{background:#3b82f6;color:#fff}::-moz-selection{background:#3b82f6;color:#fff}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.app{min-height:100vh;display:flex;flex-direction:column;overflow-x:clip}.topbar{position:sticky;top:0;z-index:100;display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;padding:12px 28px;background:#ffffffeb;-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;min-width:0}.brand h1{font-size:16px;line-height:1.2}.brand p{margin-top:1px}.logo{width:38px;height:38px;flex:none;border-radius:11px;background:linear-gradient(140deg,#2f63e6,#1c46b0);color:#fff;display:grid;place-items:center;font-size:19px;font-weight:700;box-shadow:0 4px 12px #2456d652}.tabs{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.tabs button{display:inline-flex;align-items:center;gap:7px;border:1px solid transparent;background:transparent;color:var(--muted);padding:8px 12px;border-radius:9px;cursor:pointer;font:inherit;font-size:13.5px;font-weight:600;transition:background .14s ease,color .14s ease}.tabs button:hover{background:var(--surface-3);color:var(--ink-2)}.tabs button.active{background:var(--accent-soft);color:var(--accent-ink)}.tabs button.active svg{color:var(--accent)}.nav-icon{width:16px;height:16px;flex:none;color:var(--muted-2)}.tabs button:hover .nav-icon{color:var(--ink-2)}.navmenu{min-width:0}.navmenu-list{display:flex;flex-wrap:wrap;align-items:center;gap:4px;list-style:none;margin:0;padding:0}.navmenu-item{position:relative}.navmenu-trigger{display:inline-flex;align-items:center;gap:7px;border:1px solid transparent;background:transparent;color:var(--muted);padding:8px 12px;border-radius:9px;cursor:pointer;font:inherit;font-size:13.5px;font-weight:600;transition:background .14s ease,color .14s ease}.navmenu-trigger:hover{background:var(--surface-3);color:var(--ink-2)}.navmenu-trigger.active{background:var(--accent-soft);color:var(--accent-ink)}.navmenu-trigger.active .nav-icon{color:var(--accent)}.navmenu-caret{width:12px;height:12px;color:var(--muted);transition:transform .18s ease}.navmenu-item.open .navmenu-caret{transform:rotate(180deg)}.navmenu-panel{position:absolute;left:0;top:100%;z-index:120;min-width:330px;padding:6px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);animation:navmenu-in .14s ease}.navmenu-panel>ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}.navmenu-link{display:flex;align-items:flex-start;gap:10px;width:100%;text-align:left;border:none;background:transparent;border-radius:8px;padding:9px 10px;cursor:pointer;transition:background .14s ease}.navmenu-link:hover{background:var(--surface-2)}.navmenu-link.active{background:var(--accent-soft)}.navmenu-link-icon{color:var(--muted);margin-top:1px}.navmenu-link-icon .nav-icon{width:16px;height:16px}.navmenu-link.active .navmenu-link-icon{color:var(--accent)}.navmenu-link-text{display:flex;flex-direction:column;gap:1px;min-width:0}.navmenu-link-title{font-size:13.5px;font-weight:650;color:var(--ink)}.navmenu-link.active .navmenu-link-title{color:var(--accent-ink)}.navmenu-link-desc{font-size:12px;color:var(--muted)}@keyframes navmenu-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.navmenu-panel{animation:none}.navmenu-caret{transition:none}}.topbar-right{display:flex;align-items:center;gap:14px;margin-left:auto}.basis{display:flex;flex-direction:column;gap:3px}.basis>label{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-2)}.basis-toggle{display:inline-flex;padding:2px;gap:2px;background:var(--surface-3);border-radius:8px}.basis-toggle button{border:none;background:transparent;color:var(--muted);padding:5px 12px;border-radius:6px;cursor:pointer;font:inherit;font-size:12.5px;font-weight:600}.basis-toggle button:hover{color:var(--ink-2)}.basis-toggle button.active{background:var(--surface);color:var(--accent-ink);box-shadow:var(--shadow-xs)}.hist-subtabs{display:inline-flex;padding:4px;gap:4px;background:var(--surface-3);border-radius:12px;margin-bottom:16px}.hist-subtabs button{border:none;background:transparent;color:var(--muted);padding:9px 20px;border-radius:9px;cursor:pointer;font:inherit;font-size:13.5px;font-weight:600}.hist-subtabs button:hover{color:var(--ink-2)}.hist-subtabs button.active{background:var(--surface);color:var(--accent-ink);box-shadow:var(--shadow-xs)}.cell-tip{position:fixed;z-index:1000;max-width:380px;background:#111827;color:#f9fafb;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;line-height:1.4;letter-spacing:.01em;padding:6px 9px;border-radius:7px;pointer-events:none;white-space:pre-wrap;word-break:break-word;box-shadow:0 8px 24px #0000004d}.cell-tip-top{transform:translateY(-100%)}.period{display:flex;flex-direction:column;gap:3px}.period>label,.period .muted.small{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-2)}.period-controls{display:flex;gap:6px;align-items:center}.period select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:7px 30px 7px 11px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>") no-repeat right 10px center;font:inherit;font-size:13.5px;font-weight:600;color:var(--ink);min-width:138px;cursor:pointer}.period select:hover{border-color:var(--muted-2)}.month-picker{border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:6px 8px;font:inherit;font-size:13px;background:var(--surface);color:var(--ink-2)}.avatar{width:34px;height:34px;flex:none;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-ink);font-size:12.5px;font-weight:700;letter-spacing:.02em}.profile{position:relative}.profile-trigger{display:inline-flex;align-items:center;gap:9px;border:1px solid transparent;background:transparent;border-radius:999px;padding:3px 8px 3px 3px;cursor:pointer;color:var(--ink);transition:background .14s ease}.profile-trigger:hover,.profile.open .profile-trigger{background:var(--surface-3)}.profile-name{font-size:13px;font-weight:600;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-caret{width:14px;height:14px;color:var(--muted)}.profile-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:60;width:264px;max-width:calc(100vw - 24px);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:6px;animation:select-in .12s ease}.profile-head{display:flex;align-items:flex-start;gap:11px;padding:10px 10px 12px}.avatar-lg{width:40px;height:40px;font-size:14px}.profile-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.profile-full{font-size:13.5px;font-weight:650}.profile-email{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.role-badge{margin-top:5px;align-self:flex-start;text-transform:capitalize}.profile-sep{height:1px;background:var(--line);margin:4px 2px}.profile-item{display:flex;align-items:center;gap:9px;width:100%;border:none;background:transparent;border-radius:7px;padding:9px 10px;font:inherit;font-size:13.5px;font-weight:600;color:var(--ink-2);cursor:pointer;text-align:left}.profile-item:hover{background:var(--err-soft);color:var(--err)}.profile-item .nav-icon{width:16px;height:16px}.profile-settings{display:flex;flex-direction:column;gap:7px;padding:8px 10px 4px}.profile-settings-title{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.profile-toggle{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--ink-2);cursor:pointer}.profile-toggle input{width:15px;height:15px;accent-color:var(--brand, #2563eb);cursor:pointer}.setting-row{display:flex;align-items:flex-start;gap:11px;padding:13px 4px;border-top:1px solid var(--line);cursor:pointer}.setting-row input{width:16px;height:16px;margin-top:2px;accent-color:#2563eb;cursor:pointer}.setting-row span{display:flex;flex-direction:column;gap:3px}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:0 28px}.setting-field{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 4px;border-top:1px solid var(--line)}.setting-field-label{display:flex;flex-direction:column;gap:2px;font-size:13px;font-weight:600;color:var(--ink-2)}.setting-field input[type=number]{width:84px;padding:6px 8px;text-align:right;border:1px solid var(--line-strong);border-radius:var(--radius-sm);font:inherit;font-size:13px;background:var(--surface);color:var(--ink)}.setting-field select{padding:6px 8px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);font:inherit;font-size:13px;background:var(--surface);color:var(--ink);cursor:pointer}.setting-field input[type=checkbox]{width:16px;height:16px;accent-color:#2563eb;cursor:pointer}td.cell-row-active,td.cell-col-active{background-color:#dbeafe!important}td.cell-active{background-color:#93c5fd!important;box-shadow:inset 0 0 0 2px #1d4ed8}td.cell-selected{background-color:#dbeafe!important}td.cell-selected.cell-active{background-color:#93c5fd!important}body.cell-dragging,body.cell-dragging *{-webkit-user-select:none!important;user-select:none!important}body.cell-dragging{cursor:cell}td.cell-failed{background-color:#fdecea!important}td.cell-failed .cell-input{color:#b42318!important;font-weight:700}td.cell-manual{background-color:#fff3bf!important}td.cell-manual .cell-input{color:#8a6d00!important;font-weight:700}.tabs-inline{display:flex;gap:6px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:6px}.tabs-inline button{border:none;background:transparent;color:var(--muted);font-weight:600;font-size:12.5px;padding:5px 10px;border-radius:7px;cursor:pointer}.tabs-inline button.active{background:var(--accent-soft);color:var(--accent-ink)}.comment-panel{position:fixed;right:18px;bottom:72px;z-index:300;width:340px;max-width:calc(100vw - 36px);max-height:min(70vh,calc(100vh - 120px));overflow-y:auto;display:flex;flex-direction:column;gap:8px;background:var(--surface);border:1px solid var(--line-strong);border-radius:12px;box-shadow:0 16px 48px #0f172a40;padding:12px}.comment-head{display:flex;align-items:baseline;gap:6px;font-size:13px}.comment-head .link{margin-left:auto}.comment-panel textarea{min-height:84px;resize:vertical;font:inherit;font-size:13px;border:1px solid var(--line-strong);border-radius:8px;padding:8px}.comment-actions{display:flex;gap:8px;justify-content:flex-end}.formula-panel{position:fixed;left:18px;bottom:18px;z-index:300;width:560px;max-width:calc(100vw - 36px);max-height:min(84vh,calc(100vh - 96px));display:flex;flex-direction:column;gap:10px;overflow-y:auto;overflow-x:hidden;background:var(--surface);border:1px solid var(--line-strong);border-radius:12px;box-shadow:0 16px 48px #0f172a40;padding:12px 14px 14px;overflow-wrap:anywhere;word-break:break-word}.formula-panel .comment-head{position:sticky;top:-1px;z-index:3;margin:-12px -14px 0;padding:12px 14px 6px;background:var(--surface);border-bottom:1px solid var(--line)}.formula-panel .tabs-inline{position:sticky;top:30px;z-index:2;background:var(--surface)}.formula-panel .comment-actions{position:sticky;bottom:-1px;background:var(--surface);padding-top:6px}.formula-block{display:flex;flex-direction:column;gap:3px;min-width:0}.formula-block .k{font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.formula-block code{display:block;background:var(--surface-3);border:1px solid var(--line);border-radius:7px;padding:8px;font-family:var(--mono);font-size:12px;white-space:pre-wrap;word-break:break-word}.analyze-tree{list-style:none;padding-left:0;margin:0}.analyze-tree ul{list-style:none;padding-left:14px;margin:0;border-left:1px dashed var(--line-strong)}.analyze-tree li{margin:2px 0;min-width:0}.analyze-tree .muted,.formula-panel .muted.small{overflow-wrap:anywhere}.ai-explain{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--surface-3);border:1px solid var(--line);border-radius:8px;padding:10px;font-size:12.5px;line-height:1.5;max-height:340px;overflow-y:auto}.row-linked td{background:#fff3bf!important;box-shadow:inset 0 0 0 1px #f0c000}.row-linked td .cell-input{color:#8a6d00;font-weight:700}.select.combo{position:relative;width:100%}.select-combo-input{width:100%;border:1px solid var(--line-strong);border-radius:7px;padding:6px 9px;font:inherit;font-size:12.5px;background:var(--surface)}.select-option.create{color:var(--accent-ink);font-style:italic}.copy-toast{position:fixed;left:50%;transform:translate(-50%);bottom:74px;z-index:400;background:#111827f2;color:#f9fafb;padding:8px 14px;border-radius:999px;font-size:12.5px;box-shadow:0 8px 24px #00000052}.cell-status{position:fixed;right:18px;bottom:18px;z-index:200;display:flex;align-items:center;gap:18px;background:#111827f0;color:#f9fafb;padding:8px 14px;border-radius:10px;font-size:12.5px;box-shadow:0 8px 24px #00000052;pointer-events:none}.cell-status button.cellst{pointer-events:auto}.cellst{display:inline-flex;align-items:baseline;gap:6px}.cellst .k{color:#9ca3af;font-weight:600}.cellst b{font-variant-numeric:tabular-nums;font-weight:700}main{flex:1;width:100%;padding:24px 28px 56px;max-width:100%}.page-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 24px;margin-bottom:20px}.page-title{font-size:21px;font-weight:700;letter-spacing:-.02em}.page-sub{color:var(--muted);font-size:13.5px;margin-top:3px}.page-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.grid-1{display:grid;gap:18px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.grid-1>*,.grid-2>*{min-width:0}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:18px 20px;box-shadow:var(--shadow-sm);min-width:0}.card h2{font-size:15px}.card+.card{margin-top:0}.bs-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:14px}.bs-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end}.bs-actions input.search{max-width:280px}.muted{color:var(--muted)}.small{font-size:12px}button{font-family:inherit}button:disabled{cursor:default}button.primary,button.ghost,button.danger{display:inline-flex;align-items:center;justify-content:center;gap:7px}button.ghost .nav-icon,button.primary .nav-icon,button.danger .nav-icon{width:15px;height:15px}button.primary{background:var(--accent);color:#fff;border:1px solid transparent;border-radius:var(--radius-sm);padding:9px 16px;font-size:13.5px;font-weight:600;cursor:pointer;box-shadow:0 1px 2px #2456d64d;transition:background .14s ease}button.primary:hover{background:var(--accent-hover)}button.primary:disabled{opacity:.55;box-shadow:none}button.ghost{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-2);border-radius:var(--radius-sm);padding:7px 13px;font-size:13.5px;font-weight:600;cursor:pointer;transition:background .14s ease,border-color .14s ease,color .14s ease}button.ghost:hover{background:var(--surface-3);border-color:var(--muted-2);color:var(--ink)}button.ghost:disabled{opacity:.55}button.ghost.small{padding:4px 10px;font-size:12px}button.danger{border:1px solid #f1c7c2;background:var(--err-soft);color:var(--err);border-radius:var(--radius-sm);padding:7px 13px;font-size:13.5px;font-weight:600;cursor:pointer;transition:background .14s ease,border-color .14s ease}button.danger:hover{background:#fbdbd6;border-color:#e7a79f}button.danger:disabled{opacity:.5}button.danger.small{padding:4px 10px;font-size:12px;border-radius:var(--radius-sm)}button.link{border:none;background:none;color:var(--err);font-size:11.5px;font-weight:600;cursor:pointer;padding:0 2px;text-decoration:underline;text-underline-offset:2px}button.link:hover{color:#8e2b20}button.link:disabled{color:var(--muted-2);text-decoration:none;cursor:default}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}.field span{font-size:12px;color:var(--ink-2);font-weight:650}.field input,.field select{border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:9px 11px;font:inherit;font-size:14px;background:var(--surface);color:var(--ink);transition:border-color .14s ease,box-shadow .14s ease}.field input:focus,.field select:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}.check-field{display:flex;align-items:flex-start;gap:10px;margin:2px 0 16px;cursor:pointer}.check-field input{margin-top:2px;width:16px;height:16px;flex:none;accent-color:var(--accent);cursor:pointer}.check-field>span{display:flex;flex-direction:column;gap:2px;font-size:13px;font-weight:600;color:var(--ink-2)}.check-field small{font-size:12px;font-weight:400;color:var(--muted)}input.search,input.inline{border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:7px 11px;font:inherit;font-size:13px;background:var(--surface);color:var(--ink);width:100%}input.search::placeholder,input.inline::placeholder{color:var(--muted-2)}input.search:focus,input.inline:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}input.search{max-width:260px}.select{position:relative;display:inline-block;min-width:0;vertical-align:middle}.select.disabled{opacity:.6}.select-trigger{display:inline-flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-width:0;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);padding:7px 10px;font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;text-align:left;transition:border-color .14s ease,box-shadow .14s ease}.select-trigger:hover{border-color:var(--muted-2)}.select.open .select-trigger{border-color:var(--accent);box-shadow:var(--ring)}.select-trigger:disabled{cursor:default}.select-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-value.placeholder{color:var(--muted-2);font-weight:500}.select-caret{width:15px;height:15px;flex:none;color:var(--muted);transition:transform .16s ease}.select.open .select-caret{transform:rotate(180deg)}.select-menu{position:absolute;z-index:60;top:calc(100% + 5px);left:0;min-width:100%;max-height:300px;overflow:auto;margin:0;padding:5px;list-style:none;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);animation:select-in .12s ease}@keyframes select-in{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}.select-option{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 10px;border-radius:7px;font-size:13.5px;cursor:pointer;white-space:nowrap}.select-option.active{background:var(--surface-3)}.select-option.selected{color:var(--accent-ink);font-weight:650}.select-option.disabled{opacity:.45;cursor:default}.select-check{width:15px;height:15px;flex:none;color:var(--accent)}.select-empty{padding:8px 10px}.select-sm .select-trigger{padding:5px 9px;font-size:13px}.select-period .select-trigger{min-width:138px}.field .select{display:block;width:100%}.field .select-trigger{padding:9px 11px;font-size:14px;font-weight:500}.badge{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;font-size:12px;font-weight:700;background:var(--surface-3);color:var(--muted)}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.pill{padding:6px 12px;border-radius:8px;font-size:12.5px;font-weight:600}.pill.ok{background:var(--ok-soft);color:var(--ok)}.pill.err{background:var(--err-soft);color:var(--err)}.upload-result{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.banner{margin:14px 28px 0;padding:11px 15px;border-radius:var(--radius);font-weight:550;font-size:13.5px;border:1px solid transparent}.banner.err{background:var(--err-soft);color:var(--err);border-color:#f3cbc6}.banner.warn{background:var(--warn-soft);color:var(--warn);border-color:#f1ddba}.banner.ok{background:var(--ok-soft);color:var(--ok);border-color:#cdeedb}.banner.inline{margin:12px 0 0;font-size:13px}.dropzone{border:1.5px dashed var(--line-strong);border-radius:var(--radius-lg);padding:32px;text-align:center;cursor:pointer;background:var(--surface-2);transition:border-color .15s ease,background .15s ease}.dropzone:hover,.dropzone.dragging{border-color:var(--accent);background:var(--accent-soft)}.dropzone .big{font-size:15.5px;font-weight:650;margin:0 0 4px}.table-scroll{overflow:auto;max-height:70vh;max-width:100%;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.table-scroll.short{max-height:52vh}table{border-collapse:separate;border-spacing:0;width:100%;font-size:13px}th,td{text-align:left}.list-table th,.list-table td{padding:10px 14px;border-bottom:1px solid var(--line)}.list-table tbody tr:last-child td{border-bottom:none}.list-table thead th{background:var(--surface-3);font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);position:sticky;top:0;z-index:3;border-bottom:1px solid var(--line)}.list-table tbody tr{transition:background .1s ease}.list-table tbody tr:hover td{background:var(--surface-2)}.list-table .num,.bs-table .num{text-align:right;font-variant-numeric:tabular-nums}.check-col{width:1%;white-space:nowrap;text-align:center}.check-col input{width:15px;height:15px;cursor:pointer;accent-color:var(--accent)}.list-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.list-table th.sortable:hover{color:var(--accent)}.row-selected td{background:var(--accent-soft)!important}.actions-col{width:1%;white-space:nowrap;text-align:right}.file-cell{max-width:340px;overflow-wrap:anywhere}.entity-ref{display:inline-flex;align-items:center;gap:8px}.entity-name{font-weight:600}.entity-code{font-size:10.5px;font-weight:700;letter-spacing:.04em;color:var(--muted);background:var(--surface-3);padding:1px 6px;border-radius:5px}.bs-table th,.bs-table td{padding:7px 12px;white-space:nowrap;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.bs-table thead th{position:sticky;top:0;background:var(--surface-3);z-index:3;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-bottom:1px solid var(--line-strong);text-align:center}.bs-table tbody tr:hover td{background:var(--surface-2)}.sticky-col{position:sticky;left:0;z-index:2;background:var(--surface-3);font-weight:550;border-right:1px solid var(--line);box-shadow:8px 0 8px -8px #0f172a47}.bs-table thead .sticky-col{background:var(--surface-3);z-index:4}.section-row td{background:var(--surface-3)!important;font-weight:700;color:var(--ink-2);text-transform:none;font-size:12.5px}.total-row td{font-weight:650;background:#fbfcff}.total-row .sticky-col{background:#fbfcff}.grand-total td{font-weight:800;background:#e9eefc}.grand-total .sticky-col{background:#e9eefc}.consolidated-col{background:#f2f7ff!important;font-weight:700}.prior-col{background:#f5f7f2!important}.adj-col{width:120px;background:#fffdf4!important}.sheet-row{display:flex;align-items:flex-start}.sheet-gap{flex:0 0 36px}.bridge-table{flex:0 0 auto}.bridge-label{background:var(--surface);font-weight:550;white-space:nowrap;text-align:left;position:sticky;left:0;z-index:2;border-right:1px solid var(--line)}.bridge-table thead .bridge-label{background:var(--surface-3);z-index:4}.bridge-table .group-head{text-align:center;border-left:2px solid var(--line-strong);background:var(--surface-3);text-transform:none;color:var(--ink-2);font-weight:700}.bridge-table .sub-head{font-size:10px;color:var(--muted);border-left:1px solid var(--line)}.bridge-table td{border-left:1px solid var(--line)}.bridge-table tr.bridge-empty td{height:16px}.bs-table .sheet-title th{text-align:left;font-size:14px;font-weight:700;color:var(--ink-2);background:var(--surface);text-transform:none;letter-spacing:0;padding:7px 12px}.bs-table .sheet-title+.sheet-title th{font-weight:600;color:var(--muted);font-size:12.5px}.cell-input{width:100%;border:1px solid transparent;background:transparent;text-align:right;font:inherit;font-size:13px;color:inherit;padding:3px 6px;border-radius:0;font-variant-numeric:tabular-nums}.cell-input:hover{border-color:var(--line-strong);background:var(--surface)}.cell-input:focus{outline:none;border-color:var(--accent);background:var(--surface);box-shadow:var(--ring)}.overridden .cell-input{background:#fff7dd;border-color:#ecd08a;font-weight:700}.bs-table td{padding:2px 6px}.cell-input[readonly]{cursor:default}.cell-input[readonly]:hover{border-color:transparent;background:transparent}.bs-table td.future{background:#f5f6fa}.bs-table td.future .cell-input{color:var(--muted-2)}.adj-input{width:84px;text-align:right;border:1px solid var(--line-strong);border-radius:6px;padding:3px 7px;font:inherit;font-size:12.5px;background:var(--surface);font-variant-numeric:tabular-nums}.adj-input:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}.hist-table th.num{min-width:96px}.hist-table .adj-input{width:88px}.row-warn{background:var(--warn-soft)}.period-chips{display:flex;flex-wrap:wrap;gap:8px}.period-chip{display:inline-flex;align-items:center;gap:4px;padding:5px 6px 5px 12px;border-radius:999px;font-size:12.5px;font-weight:600;background:var(--accent-soft);color:var(--accent-ink)}.chip-x{border:none;background:transparent;color:inherit;font-size:15px;line-height:1;cursor:pointer;padding:0 4px;border-radius:50%}.chip-x:hover{background:#00000014}.chip-x:disabled{opacity:.35;cursor:default}.stmt-tabs{display:flex;flex-wrap:wrap;gap:8px}.stmt-tabs button{border:1px solid var(--line-strong);background:var(--surface);border-radius:999px;padding:8px 17px;cursor:pointer;font:inherit;font-size:13px;font-weight:600;color:var(--muted);transition:border-color .14s ease,color .14s ease,background .14s ease}.stmt-tabs button:hover{border-color:var(--accent);color:var(--accent)}.stmt-tabs button.active{background:var(--accent);border-color:var(--accent);color:#fff}.stmt-tabs.wrap button{padding:6px 12px;font-size:12.5px}.split-ic-toggle{display:inline-flex;align-items:center;gap:6px;margin-left:auto;padding:6px 12px;font-size:12.5px;font-weight:600;color:var(--muted);border:1px solid var(--line-strong);border-radius:999px;cursor:pointer;background:var(--surface);-webkit-user-select:none;user-select:none}.split-ic-toggle input{accent-color:var(--accent);cursor:pointer}.split-ic-toggle:hover{border-color:var(--accent);color:var(--accent)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;z-index:200;padding:20px}.modal{background:var(--surface);border-radius:var(--radius-lg);padding:22px 24px;width:460px;max-width:94vw;box-shadow:var(--shadow-lg)}.modal h2{margin-bottom:6px;font-size:16px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:10px}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(1200px 500px at 50% -10%,#e6edfd,#e6edfd00 60%),var(--bg)}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-xl);padding:32px 32px 28px;width:400px;max-width:94vw;box-shadow:var(--shadow);display:flex;flex-direction:column}.login-card .brand{margin-bottom:4px}.login-card h1{font-size:17px}.login-card .primary{margin-top:10px;padding:11px 16px}.login-foot{margin-top:18px;text-align:center}.spinner{width:18px;height:18px;border-radius:50%;border:2px solid var(--accent-soft);border-top-color:var(--accent);animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-card{display:flex;align-items:center;justify-content:center;gap:10px;padding:40px;color:var(--muted);font-size:13.5px}.empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:40px 20px;text-align:center;color:var(--muted)}.empty svg{color:var(--muted-2)}.empty strong{color:var(--ink-2);font-size:14px;font-weight:650}.footer{padding:18px 28px 26px;color:var(--muted-2);font-size:12px;display:flex;flex-wrap:wrap;gap:6px 16px;justify-content:space-between}@media (max-width: 1100px){.grid-2{grid-template-columns:1fr}}@media (max-width: 1000px){.topbar{gap:10px 16px;padding:12px 16px}.brand{flex:1 1 100%}.tabs{order:3;flex:1 1 100%}.topbar-right{order:2;margin-left:auto}main{padding:18px 16px 44px}.banner{margin:12px 16px 0}.card{padding:16px}.table-scroll{max-height:62vh}.page-head{margin-bottom:16px}.page-title{font-size:19px}}@media (max-width: 640px){.topbar{position:static;gap:8px 12px;padding:10px 12px}.brand h1{font-size:15px}.brand p{display:none}.logo{width:32px;height:32px;font-size:17px;border-radius:9px}.tabs{gap:4px}.tabs button{padding:6px 10px;font-size:13px}.topbar-right{flex:1 1 100%;flex-wrap:wrap;margin-left:0}.period{flex:1 1 100%}.period-controls{flex-wrap:wrap}.period select{flex:1 1 140px;min-width:0}.profile{flex:1 1 100%}.profile-name{display:none}.profile-menu{right:auto;left:0}main{padding:14px 12px 40px}.banner{margin:12px 12px 0;padding:10px 12px}.card{padding:14px}.dropzone{padding:22px 14px}.stmt-tabs.wrap button{padding:6px 11px;font-size:12px}.modal{padding:18px 16px}.login-card{padding:24px 20px}.table-scroll{max-height:56vh}.hist-table th.num{min-width:84px}.page-title{font-size:18px}}@media (prefers-reduced-motion: reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}@media print{.topbar,.footer,.banner,.stmt-tabs,.bs-actions,button{display:none!important}body{background:#fff}.card{box-shadow:none;border:none;padding:0}.table-scroll{max-height:none;overflow:visible;border:none}}
