:root{color:#162033;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f5f7fb;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400;line-height:1.5}html,body,#root{min-height:100%;margin:0}body{min-width:320px}:root{--bg:#0f172a;--bg-soft:#111827;--panel:#fff;--border:#e5e7eb;--border-strong:#d1d5db;--text:#111827;--text-soft:#6b7280;--primary:#6366f1;--surface-soft:#f9fafb;--surface-muted:#f3f4f6}*{box-sizing:border-box}body{color:var(--text);background:#f5f7fb;margin:0;font-family:Inter,system-ui,-apple-system,sans-serif}.app-shell{min-width:0;height:100vh;display:flex}.sidebar{color:#fff;background:linear-gradient(#0f172a,#020617);flex-direction:column;flex:0 0 240px;width:240px;padding:24px 16px;display:flex}.brand-block{align-items:center;gap:12px;margin-bottom:32px;display:flex}.brand-badge{background:var(--primary);border-radius:12px;justify-content:center;align-items:center;width:40px;height:40px;font-weight:600;display:flex}.brand-title{font-weight:600}.brand-subtitle{color:#94a3b8;font-size:12px}.nav-menu{flex-direction:column;gap:6px;display:flex}.nav-item{color:#cbd5f5;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:10px 12px}.nav-item.active{color:#fff;background:#1e293b}.main-content{flex:1;min-width:0;padding:24px;overflow:auto}.page-header h1{margin:4px 0 16px}.eyebrow{color:var(--text-soft);margin:0;font-size:12px}.content-panel{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:20px}.dashboard-intro{margin-bottom:20px}.dashboard-intro h2{margin:0 0 6px}.dashboard-intro p{color:var(--text-soft);margin:0}.dashboard-scroll{width:100%;max-width:100%;padding-bottom:6px;overflow:auto}.dashboard-grid{border-top:1px solid var(--border);border-left:1px solid var(--border);width:max-content;min-width:max-content;display:grid}.dashboard-corner{border-right:1px solid var(--border);border-bottom:1px solid var(--border);z-index:2;background:#fafafa;padding:12px;position:sticky;left:0}.corner-title{font-weight:600}.corner-subtitle{color:var(--text-soft);font-size:12px}.month-block{border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:#fafafa;padding:10px 12px}.month-title{white-space:nowrap;margin-bottom:8px;font-weight:600}.month-subcolumns{color:var(--text-soft);grid-template-columns:repeat(3,106px);gap:8px;font-size:12px;display:grid}.summary-label,.summary-data{border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.summary-label{background:var(--surface-muted);z-index:1;align-items:center;padding:12px;font-weight:600;display:flex;position:sticky;left:0}.summary-label.top{border-top:1px solid var(--border-strong)}.summary-label.bottom{background:#eef2ff}.summary-data{background:#fcfcfd;padding:8px 10px}.summary-data.top{border-top:1px solid var(--border-strong)}.summary-data.bottom{background:#f8faff}.summary-cells{grid-template-columns:repeat(3,106px);gap:8px;display:grid}.row-label-group{border-right:1px solid var(--border);border-bottom:1px solid var(--border);z-index:1;background:#fff;padding:12px;position:sticky;left:0}.section-title{margin-bottom:10px;font-weight:600}.section-rows{flex-direction:column;gap:6px;display:flex}.row-label{white-space:nowrap;align-items:center;min-height:38px;font-size:13px;display:flex}.month-data-group{border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:#fff;padding:8px 10px}.data-row{grid-template-columns:repeat(3,106px);gap:8px;margin-bottom:6px;display:grid}.data-row:last-child{margin-bottom:0}.data-cell{background:var(--surface-soft);border:1px solid var(--border);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;border-radius:6px;min-height:38px;padding:0;font-size:13px;line-height:20px;overflow:hidden}.data-input{text-align:right;width:100%;height:100%;min-height:38px;color:var(--text);font-variant-numeric:tabular-nums;background:0 0;border:none;outline:none;padding:8px 10px;font-size:13px}.data-input::placeholder{color:#9ca3af}.dashboard-expense-label,.dashboard-expense-row{box-sizing:border-box;align-items:center;height:30px;min-height:30px;display:flex}.dashboard-expense-label.group,.dashboard-expense-row.group .dashboard-expense-input{background:#eef3f0;font-weight:700}.dashboard-expense-label,.dashboard-expense-row{box-sizing:border-box;align-items:center;height:30px;min-height:30px;display:flex}.dashboard-expense-input{box-sizing:border-box;height:24px;min-height:24px;padding:2px 6px;font-size:12px}.dashboard-expense-label.section-total,.dashboard-expense-row.section-total .dashboard-expense-input{background:#e8eeea;font-weight:700}.dashboard-expense-label.group,.dashboard-expense-row.group .dashboard-expense-input{background:#f1f5f3;font-weight:700}.dashboard-expense-label.item{padding-top:0;padding-bottom:0}.dashboard-expense-row.item{margin-top:0;margin-bottom:0}.actuals-workspace{gap:12px;display:grid}.actuals-shell-header{margin-bottom:0}.actuals-shell-tabs{border:1px solid var(--border);background:var(--surface-soft);border-radius:12px;align-items:center;gap:8px;width:fit-content;padding:6px;display:inline-flex}.actuals-shell-tab{color:var(--text-soft);cursor:pointer;background:0 0;border:none;border-radius:10px;align-items:center;gap:8px;padding:10px 14px;font-weight:600;display:inline-flex}.actuals-shell-tab.active{color:var(--text);background:#fff;box-shadow:0 1px 2px #1018280f}.actuals-shell-tab-badge{color:#4338ca;background:#eef2ff;border-radius:999px;justify-content:center;align-items:center;min-width:24px;height:24px;padding:0 8px;font-size:12px;display:inline-flex}.actuals-ghost-button,.actuals-primary-button{cursor:pointer;border-radius:10px;padding:10px 14px;font-weight:600}.actuals-ghost-button{background:#fff;border:1px solid #d0d5dd}.actuals-primary-button{color:#fff;background:#111827;border:1px solid #111827}.actuals-import-layout{grid-template-columns:minmax(0,1.45fr) minmax(320px,.85fr);align-items:start;gap:20px;display:grid}.actuals-import-main-card,.actuals-side-card{border:1px solid var(--border);background:#fff;border-radius:16px}.actuals-import-main-card{gap:12px;padding:20px;display:grid}.actuals-side-card{gap:16px;padding:18px;display:grid}.actuals-import-side-stack{gap:16px;display:grid}.actuals-section-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.actuals-section-head.compact h3,.actuals-section-head h2{margin:0 0 6px}.actuals-section-head p{color:var(--text-soft);margin:0}.actuals-upload-dropzone{cursor:pointer;background:#f8fafc;border:1.5px dashed #cbd5e1;border-radius:16px;gap:8px;padding:24px;display:grid}.actuals-upload-dropzone input{display:none}.actuals-upload-title{font-size:16px;font-weight:700}.actuals-upload-copy,.actuals-upload-hint{color:var(--text-soft)}.actuals-import-summary-grid,.actuals-queue-mini-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;display:grid}.actuals-import-summary-card,.actuals-queue-mini-grid>div,.actuals-fx-card{border:1px solid var(--border);background:#fff;border-radius:12px;gap:4px;padding:10px;display:grid}.actuals-import-summary-card span,.actuals-queue-mini-grid span,.actuals-fx-card span,.actuals-fx-card small{color:var(--text-soft)}.actuals-import-summary-card strong,.actuals-queue-mini-grid strong,.actuals-fx-card strong{font-size:16px}.actuals-import-rules-card{border:1px solid var(--border);background:var(--surface-soft);border-radius:16px;padding:18px}.actuals-import-rules-card h3{margin:0 0 10px}.actuals-import-rules-card ul{color:var(--text-soft);gap:8px;margin:0;padding-left:18px;display:grid}.actuals-fx-list,.actuals-batch-list{gap:12px;display:grid}.actuals-batch-card{border:1px solid var(--border);border-radius:12px;gap:8px;padding:14px;display:grid}.actuals-batch-topline,.actuals-batch-metrics{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.actuals-batch-topline span,.actuals-batch-metrics span{color:var(--text-soft);font-size:13px}.actuals-review-embedded{gap:16px;display:grid}.actuals-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.actuals-stat-card{border:1px solid var(--border);background:#fff;border-radius:12px;gap:4px;min-width:120px;padding:10px 12px;display:grid}.actuals-stat-label{color:var(--text-soft);font-size:12px}.actuals-shortcuts{color:var(--text-soft);flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.actuals-shortcuts kbd{border:1px solid var(--border-strong);min-width:26px;height:26px;color:var(--text);background:#fff;border-radius:8px;justify-content:center;align-items:center;padding:0 8px;font-size:12px;font-weight:700;display:inline-flex}.actuals-shortcut-separator{color:#d0d5dd}.actuals-grid-shell{border:1px solid var(--border);background:#fff;border-radius:16px;overflow:auto}.actuals-grid{grid-template-columns:96px 112px 144px minmax(240px,1.1fr) minmax(230px,1fr) 150px minmax(260px,1fr);min-width:1240px;display:grid}.actuals-grid-header{z-index:2;border-bottom:1px solid var(--border);color:var(--text-soft);text-transform:uppercase;letter-spacing:.02em;background:#f8fafc;padding:8px 10px;font-size:12px;font-weight:700;position:sticky;top:0}.actuals-grid-cell{color:#344054;background:#fff;border-bottom:1px solid #eef2f6;outline:none;align-items:center;min-height:40px;padding:6px 10px;font-size:13px;font-weight:400;display:flex}.actuals-grid-cell-primary{background:#fbfdff}.actuals-grid-cell-secondary{background:#f7f7f8}.actuals-grid-cell.active{background:#fbfdff;box-shadow:inset 0 0 0 2px #111827}.actuals-status-badge{border-radius:999px;justify-content:center;align-items:center;min-width:64px;height:28px;padding:0 10px;font-size:12px;font-weight:700;display:inline-flex}.actuals-status-badge.new{color:#027a48;background:#ecfdf3}.actuals-status-badge.changed{color:#b54708;background:#fffaeb}.actuals-description-cell{color:#475467;font-size:13px;font-weight:400;line-height:1.35}.actuals-amount-cell{align-items:center;display:flex}.actuals-amount-inline{flex-wrap:wrap;align-items:baseline;gap:8px;line-height:1.2;display:flex}.actuals-amount-cell strong,.actuals-amount-inline strong{color:#101828;font-size:14px;font-weight:700}.actuals-amount-cell span,.actuals-amount-inline span,.actuals-inline-meta{color:var(--text-soft);font-size:12px}.actuals-inline-error{color:#b42318;font-size:12px}.actuals-type-button{color:#64748b;cursor:pointer;background:#fff;border:1px dashed #cbd5e1;border-radius:10px;width:100%;min-height:42px;font-weight:600}.actuals-type-button.filled{color:#101828;border-style:solid;border-color:#d0d5dd}.actuals-target-editor{width:100%;position:relative}.actuals-target-input{text-align:left;background:#fff;border:1px solid #d0d5dd;border-radius:10px;outline:none;width:100%;min-height:42px;padding:0 12px;font-size:14px}.actuals-target-input:focus{border-color:#111827;box-shadow:0 0 0 3px #11182714}.actuals-target-input:disabled{color:#98a2b3;background:#f8fafc}.actuals-target-display{color:#98a2b3;font-size:13px;font-weight:400}.actuals-target-display.filled{color:var(--text)}.actuals-target-menu{border:1px solid var(--border);z-index:40;background:#fff;border-radius:12px;overflow:auto;box-shadow:0 10px 24px #0f172a1f}.actuals-target-menu-floating{position:fixed}.actuals-target-search-meta{min-height:36px;color:var(--text-soft);background:#fcfcfd;border-bottom:1px solid #eef2f6;padding:10px 12px;font-size:12px}.actuals-target-option,.actuals-target-empty{text-align:left;background:#fff;border:none;align-items:center;width:100%;min-height:40px;padding:0 12px;font-size:14px;display:flex}.actuals-target-option{cursor:pointer}.actuals-target-option:hover,.actuals-target-option.active{background:#eff6ff}.actuals-target-empty{color:var(--text-soft)}@media (width<=1200px){.actuals-toolbar{align-items:stretch}.actuals-shortcuts{width:100%}.actuals-import-layout{grid-template-columns:1fr}}.actuals-trx-toolbar{border:1px solid var(--border);background:#f8fafc;border-radius:10px;flex-wrap:wrap;align-items:center;gap:12px;padding:10px 14px;display:flex}.actuals-trx-month-select{flex-shrink:0;width:160px}.actuals-trx-stats{color:var(--text);flex-wrap:wrap;flex:1;align-items:center;gap:16px;font-size:13px;display:flex}.actuals-trx-stats em{color:var(--text-soft);margin-right:4px;font-style:normal}.actuals-trx-published{color:var(--text-soft);margin-left:auto;font-size:12px}.actuals-empty-state{color:var(--text-soft);background:#fff;border:1px dashed #d0d5dd;border-radius:12px;padding:20px}.actuals-import-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.actuals-import-result,.actuals-inline-note{color:var(--text-soft);margin:0}.actuals-control-stack{gap:12px;display:grid}.actuals-filters-row{flex-wrap:wrap;gap:10px;display:flex}.actuals-select{color:#344054;background:#fff;border:1px solid #d0d5dd;border-radius:10px;width:100%;min-width:0;height:30px;min-height:30px;padding:0 8px;font-size:12px;font-weight:400}.actuals-grid-workspace{grid-template-columns:120px 160px minmax(260px,1.2fr) minmax(200px,.9fr) 160px minmax(240px,1fr) 150px 110px;min-width:1440px}.actuals-status-chip{border-radius:999px;justify-content:center;align-items:center;min-width:104px;height:28px;padding:0 10px;font-size:12px;font-weight:700;display:inline-flex}.actuals-status-chip.pending{color:#b54708;background:#fffaeb}.actuals-status-chip.done{color:#027a48;background:#ecfdf3}.actuals-row-save-button{width:100%}.actuals-published-list{gap:10px;display:grid}.actuals-published-item{border:1px solid var(--border);border-radius:12px;gap:4px;padding:12px;display:grid}.actuals-published-item span{color:var(--text-soft);font-size:12px}.actuals-grid-workspace-lite{grid-template-columns:120px 160px minmax(280px,1.25fr) minmax(220px,.9fr) 170px minmax(260px,1fr) 150px;min-width:1460px}.actuals-grid-workspace-lite .actuals-grid-cell{min-height:64px}.actuals-grid-section{border-bottom:1px solid #e6ebf2;grid-column:1/-1;padding:10px 14px;font-size:13px;font-weight:700}.actuals-grid-section-primary{color:#0f172a;background:#eef4ff}.actuals-grid-section-secondary{color:#475467;background:#f3f4f6}.actuals-grid-cell-dimmed{background:#f7f7f8}.actuals-grid-cell-dimmed .actuals-amount-inline strong,.actuals-grid-cell-dimmed .actuals-description-cell,.actuals-grid-cell-dimmed .actuals-target-display.filled{color:#344054}
