:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#172033;background:#f5f7fa}*{box-sizing:border-box}body{margin:0}.shell{display:grid;grid-template-columns:230px 1fr;min-height:100vh}.sidebar{background:#14243a;color:white;padding:26px 18px}.brand{display:flex;flex-direction:column;letter-spacing:.08em;margin-bottom:30px}.brand span{font-weight:800;font-size:27px}.brand small{font-size:11px;opacity:.72}.brand-dark{color:#14243a}.sidebar nav{display:flex;flex-direction:column;gap:7px}.sidebar a{color:#e8eef6;text-decoration:none;padding:10px 12px;border-radius:8px}.sidebar a:hover{background:#213854}.sidebar a.muted{opacity:.45}.content{min-width:0}.topbar{height:64px;background:white;border-bottom:1px solid #e2e7ee;display:flex;justify-content:space-between;align-items:center;padding:0 28px}.userbox{display:flex;gap:12px;align-items:center;font-size:13px}.userbox a{color:#3366aa;text-decoration:none}.userbox form{margin:0}.link-button{border:0;background:transparent;color:#3366aa;cursor:pointer}.page-head{padding:28px 30px 10px}.page-head h1{margin:0;font-size:28px}.page-head p{margin:6px 0;color:#687385}.cards{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:16px;padding:14px 30px}.card,.panel{background:white;border:1px solid #e1e6ed;border-radius:12px;box-shadow:0 1px 2px rgba(0,0,0,.03)}.card{padding:18px;display:flex;flex-direction:column;gap:8px}.card span{font-size:12px;color:#687385}.card strong{font-size:21px}.card small{color:#687385}.panel{margin:16px 30px;padding:20px}.details{display:grid;grid-template-columns:220px 1fr;gap:9px 18px}.details dt{color:#687385}.details dd{margin:0;font-weight:600;overflow-wrap:anywhere}.table-panel{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th,td{padding:10px 12px;border-bottom:1px solid #edf0f4;text-align:left;white-space:nowrap}th{color:#687385;font-weight:600;background:#fafbfc}.num{text-align:right;font-variant-numeric:tabular-nums}.login-page{min-height:100vh;display:grid;place-items:center;background:#eef2f7}.login-card{width:min(420px,92vw);background:white;border:1px solid #dfe5ec;border-radius:14px;padding:34px;box-shadow:0 12px 36px rgba(20,36,58,.08)}.stack{display:flex;flex-direction:column;gap:18px}.stack label{font-size:13px;font-weight:600}.stack input{display:block;width:100%;margin-top:7px;padding:11px;border:1px solid #cfd7e2;border-radius:8px}.primary{padding:12px;border:0;border-radius:8px;background:#19385b;color:white;font-weight:700;cursor:pointer}.alert{background:#fff2f1;color:#8b2b23;border:1px solid #ffd3cf;padding:10px;border-radius:8px;margin-bottom:16px}@media(max-width:900px){.shell{grid-template-columns:1fr}.sidebar{position:static}.sidebar nav{display:grid;grid-template-columns:repeat(2,1fr)}.cards{grid-template-columns:repeat(2,1fr)}.details{grid-template-columns:1fr}.topbar{padding:0 16px}}@media(max-width:560px){.cards{grid-template-columns:1fr;padding:12px 16px}.panel{margin:12px 16px}.page-head{padding:22px 16px 8px}.userbox span{display:none}}
.panel-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:16px}.panel-head h2{margin:0 0 6px}.panel-head p{margin:0;color:#687385;max-width:900px;line-height:1.45}.settings-form{display:grid;gap:16px;margin:14px 0}.settings-form label{font-size:13px;font-weight:600}.settings-form input{display:block;width:100%;margin-top:7px;padding:11px 12px;border:1px solid #cfd7e2;border-radius:8px;background:#fff;color:#172033}.settings-form small{display:block;margin-top:6px;color:#687385;font-weight:400}.form-actions{display:flex;gap:10px}.inline-form{display:inline-block;margin:0 0 16px}.secondary{padding:10px 13px;border:1px solid #b8c5d5;border-radius:8px;background:#fff;color:#19385b;font-weight:700;cursor:pointer}.secondary:hover{background:#f5f8fb}.compact-details{margin-top:8px;padding-top:14px;border-top:1px solid #edf0f4}.help-text{font-size:12px;color:#687385;line-height:1.45}.notice{margin:12px 30px;padding:12px 14px;border-radius:9px;border:1px solid}.notice.success{background:#eef9f2;border-color:#b9e3c8;color:#24643a}.notice.error{background:#fff2f1;border-color:#ffd3cf;color:#8b2b23}@media(max-width:560px){.notice{margin:12px 16px}.settings-form input{font-size:16px}}
.mini-grid{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:12px}.mini-grid>div{border:1px solid #edf0f4;border-radius:9px;padding:14px;background:#fafbfc;display:flex;flex-direction:column;gap:6px}.mini-grid span{font-size:12px;color:#687385}.mini-grid strong{font-size:20px}.compact-cards{padding-top:4px}.company-details{margin-top:18px}.company-details summary{cursor:pointer;font-weight:700;color:#19385b}.company-details table{margin-top:12px}.wide-button{min-width:260px}.sync-panel form{margin:0}.status-pill{display:inline-block;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:700;background:#eef2f7}.status-pill.completed{background:#eaf8ef;color:#24643a}.status-pill.completed_with_warnings{background:#fff7e6;color:#805d16}.status-pill.failed{background:#fff2f1;color:#8b2b23}.batch-notes td{background:#fafbfc;white-space:normal}.batch-notes pre{white-space:pre-wrap;font:12px/1.45 Consolas,monospace;color:#4b5563}@media(max-width:900px){.mini-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.mini-grid{grid-template-columns:1fr}}

.action-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.company-form{display:grid;gap:26px}.form-section{border-top:1px solid #edf0f4;padding-top:18px}.form-section:first-child{border-top:0;padding-top:0}.form-section h2{font-size:17px;margin:0 0 14px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid label,.company-form>div>label{font-size:13px;font-weight:600}.form-grid input,.company-form textarea{display:block;width:100%;margin-top:7px;padding:11px 12px;border:1px solid #cfd7e2;border-radius:8px;background:#fff;color:#172033;font:inherit}.form-grid small{display:block;margin-top:5px;color:#687385;font-weight:400}.span-2{grid-column:span 2}.check-row{display:flex;gap:8px;align-items:center;margin-bottom:16px}.check-row input{width:auto;margin:0}@media(max-width:700px){.form-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}}
.status-pill.actual{background:#eaf8ef;color:#24643a}.status-pill.projected{background:#eef3fb;color:#315a8d}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px}.page-head .inline-form{margin:0}@media(max-width:700px){.page-head{align-items:flex-start;flex-direction:column}}
.notice.warning{background:#fff8e8;border-color:#f1d899;color:#72551a}.status-pill.overdue{background:#fff0ee;color:#9a332b}.status-pill.manual{background:#f3ecff;color:#6441a5}.status-pill.source{background:#eaf3ff;color:#315a8d}.status-pill.warning-pill{background:#fff7e6;color:#805d16}.embedded-table{margin:0;overflow:auto}.date-inline-form{margin:0}.date-inline-form input[type=date]{padding:7px 9px;border:1px solid #cfd7e2;border-radius:7px;background:#fff;color:#172033;font:inherit}.small-button{padding:7px 10px}.card span{line-height:1.25}

.company-selector-form{display:flex;align-items:flex-end;gap:12px;margin:4px 0 8px}.company-selector-form label{font-size:13px;font-weight:700;min-width:min(620px,100%)}.company-selector-form select,.table-toolbar input,.table-toolbar select{display:block;width:100%;margin-top:6px;padding:9px 10px;border:1px solid #cfd7e2;border-radius:8px;background:#fff;color:#172033;font:inherit}.table-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;margin:10px 0 14px}.table-toolbar label{font-size:12px;font-weight:600;color:#4b5563;min-width:150px;flex:1 1 150px}.compact-toolbar label{flex:0 1 220px}.toolbar-button{margin:0;height:38px}.table-count{font-size:12px;color:#687385;margin-left:auto;padding:10px 0}.sortable{cursor:pointer;user-select:none}.sortable::after{content:" ↕";opacity:.35;font-size:11px}.sortable.sort-asc::after{content:" ↑";opacity:1}.sortable.sort-desc::after{content:" ↓";opacity:1}tr[hidden]{display:none}.company-source-panel strong{font-weight:700}@media(max-width:700px){.company-selector-form{align-items:stretch;flex-direction:column}.table-toolbar{align-items:stretch}.table-toolbar label{flex-basis:100%}.table-count{margin-left:0}}

/* v0.3.3 cash-flow tabs, accounting display and planning controls */
.cash-tabs{display:flex;gap:6px;margin:16px 30px 0;border-bottom:1px solid #dfe5ec;padding:0 4px}.cash-tab{appearance:none;border:0;border-bottom:3px solid transparent;background:transparent;color:#667085;font-weight:800;font-size:12px;letter-spacing:.02em;padding:12px 16px;cursor:pointer}.cash-tab:hover{color:#19385b}.cash-tab.active{color:#19385b;border-bottom-color:#19385b}.tab-panel-wrap{margin-top:0}.negative-number{color:#b42318!important}.source-date-note{display:block;color:#687385;font-size:10px;margin-top:3px}.row-actions{display:flex;gap:6px;align-items:center}.bulk-planner{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin:12px 0;padding:12px;border:1px solid #e4e9ef;border-radius:10px;background:#fafbfc}.bulk-planner label{font-size:12px;font-weight:700;color:#4b5563}.bulk-planner input[type=date]{display:block;margin-top:6px;padding:9px 10px;border:1px solid #cfd7e2;border-radius:8px;background:#fff}.bulk-preview{margin:8px 0 14px;padding:10px 12px;border-radius:8px;background:#eef3fb;color:#315a8d;font-size:12px}.bulk-preview strong{font-variant-numeric:tabular-nums}.table-check{width:34px;text-align:center}.table-check input{width:16px;height:16px}.status-pill.golden{background:#e8f7f4;color:#176b5b}.status-pill.conflict{background:#fff0ee;color:#9a332b}.status-pill.powerbi{background:#eef3fb;color:#315a8d}.status-pill.missing{background:#fff7e6;color:#805d16}.sheet-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.sheet-grid label{font-size:12px;font-weight:700;color:#4b5563}.sheet-grid input{display:block;width:100%;margin-top:6px;padding:9px 10px;border:1px solid #cfd7e2;border-radius:8px;background:#fff;color:#172033}.source-separator{border-top:1px solid #edf0f4;margin:16px 0;padding-top:14px}.muted-inline{color:#687385;font-size:12px}@media(max-width:700px){.cash-tabs{margin-left:16px;margin-right:16px;overflow:auto}.sheet-grid{grid-template-columns:1fr}.bulk-planner{align-items:stretch}.bulk-planner>*{flex:1 1 100%}}

/* v0.3.4 categorical filters + compact table pagination */
.table-scroll{max-width:100%;overflow-x:auto;overflow-y:visible;border-radius:8px}
.table-pagination{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-left:auto;font-size:12px;color:#687385}
.table-pagination label{display:flex;align-items:center;gap:6px;min-width:auto!important;flex:0 0 auto!important;margin:0}
.table-pagination label select{width:auto;min-width:68px;margin-top:0;padding:7px 8px}
.pager-button{height:34px;padding:7px 10px}
.pager-button:disabled{opacity:.45;cursor:not-allowed}
.page-info,.page-range{white-space:nowrap;font-variant-numeric:tabular-nums}
.page-range{color:#4b5563;font-weight:600}
.table-toolbar .table-pagination{flex:0 1 auto}
@media(max-width:900px){.table-pagination{width:100%;margin-left:0}.table-count{margin-left:0}}
:root { --overlap-warning: #805400; }
.possible-overlap { background: #fff0be; color: var(--overlap-warning); }
.superseded { background: #e5e7eb; color: #374151; }
.overlap-review details { padding: 12px; margin: 8px 0; border: 1px solid #cbd5e1; border-radius: 6px; }
.overlap-review summary { cursor: pointer; font-weight: 600; }
.overlap-review form { display: grid; gap: 10px; max-width: 680px; }
