:root{--bg: #eef2f9;--surface: #ffffff;--text: #1a254f;--muted: #5c6b8a;--accent: #234a92;--accent-light: #3d68b8;--accent-pink: #f18cd9;--accent-orange: #ffa835;--accent-wash: #e7eef8;--secondary: #bdcce8;--debit: #b42318;--credit: #42773e;--border: #d5deee;--radius: 16px;--shadow: 0 10px 28px rgba(26, 37, 79, .08)}*{box-sizing:border-box}body{margin:0;font-family:Poppins,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);line-height:1.5}h1,h2,h3,h4{letter-spacing:-.02em}button,input,select,textarea{font-family:inherit}button{font-weight:600;font-size:.875rem;color:var(--accent);background:var(--surface);border:1px solid var(--secondary);border-radius:999px;padding:.45rem .95rem;cursor:pointer}button:hover:not(:disabled){border-color:var(--accent-pink)}button:disabled{opacity:.55;cursor:not-allowed}button.primary{background:var(--accent-pink);color:var(--accent);border-color:var(--accent-pink)}button.primary:hover:not(:disabled){box-shadow:0 0 0 3px #f18cd959}:focus-visible{outline:2px solid var(--accent-pink);outline-offset:2px}.app{min-height:100vh;display:flex;flex-direction:column}.header{background:var(--accent);color:#fff;padding:.55rem 1.25rem;display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.5rem;box-shadow:0 8px 24px #1a254f29}.brand{margin:0;font-size:1rem;font-weight:600}.brand a{display:flex;align-items:center;gap:.75rem;color:#fff;text-decoration:none}.brand img{height:64px;width:auto;display:block}.brand-app{font-size:.78rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#ffffffe0}.header nav{display:flex;gap:1.1rem;align-items:center;flex-wrap:wrap}.header-nav{display:flex;gap:1.1rem;align-items:center;flex-wrap:wrap}.header nav a{color:#ffffffeb;text-decoration:none;font-weight:600;font-size:.875rem}.header nav a:hover{color:var(--accent-pink)}.header-nav>a.active{color:#fff;box-shadow:inset 0 -2px 0 var(--accent-pink)}.nav-group{position:relative;color:#fffffff2}.nav-group summary{cursor:pointer;list-style:none;font-weight:600;font-size:.875rem}.nav-group summary::-webkit-details-marker{display:none}.nav-group summary:hover{color:var(--accent-pink)}.nav-group ul{list-style:none;position:absolute;top:calc(100% + .45rem);left:0;z-index:40;min-width:13.5rem;margin:0;padding:.4rem;display:flex;flex-direction:column;gap:.1rem;background:var(--surface);border-radius:16px;box-shadow:0 16px 40px #1a254f2e}.header .nav-group a{display:block;color:var(--text);font-weight:500;font-size:.875rem;padding:.45rem .7rem;border-radius:10px}.header .nav-group a:hover,.header .nav-group a.active{color:var(--accent);background:var(--accent-wash)}.banner{padding:.75rem 1rem;border-radius:6px;margin-bottom:1rem}.banner-info{background:#e8f4fd;color:#0c5460}.banner-warning{background:#fff3cd;color:#856404}.segment-list{display:flex;flex-wrap:wrap;gap:.75rem;list-style:none;padding:0}.bar-chart{display:flex;flex-direction:column;gap:.25rem}.bar-chart-row{display:flex;align-items:center;gap:.5rem}.bar-chart-label{width:2rem;font-size:.85rem;color:var(--muted)}.bar-chart-bar{height:.75rem;background:var(--accent);border-radius:2px;min-width:2px}.filter-row{display:flex;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.roster-pager{display:flex;align-items:center;gap:.75rem;margin:.75rem 0 1rem}.roster-pager p{margin:0}.muted{color:var(--muted);font-weight:400}.main{flex:1;padding:1.25rem 1.5rem 2rem;max-width:960px;margin:0 auto;width:100%}.main-wide{max-width:1200px}.main a{color:var(--accent)}.main a:hover{color:#1a366b}.hint{color:var(--muted);font-size:.9rem}.drop-zones{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin:1.5rem 0}.upload-drop-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;border:2px dashed var(--border);border-radius:var(--radius);padding:2rem 1.5rem;margin:1.5rem 0;text-align:center;cursor:pointer;background:var(--surface);max-width:420px}.upload-drop-zone:hover{border-color:var(--accent-light)}.upload-drop-zone input{display:none}.drop-hint{font-size:.85rem;color:var(--muted)}.drop-zone{border:2px dashed var(--border);border-radius:var(--radius);padding:1.5rem;text-align:center;cursor:pointer;background:var(--surface);display:block}.drop-zone:hover{border-color:var(--accent-light)}.drop-zone input{display:none}.drop-label{font-weight:600;display:block;margin-bottom:.5rem}.error{background:#fef2f2;color:var(--debit);padding:.75rem 1rem;border-radius:var(--radius);margin:1rem 0}.summary,.history{background:var(--surface);border-radius:var(--radius);padding:1rem;margin-top:1rem;box-shadow:var(--shadow)}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{text-align:left;padding:.5rem;border-bottom:1px solid var(--border)}.filter-bar{display:flex;flex-wrap:wrap;gap:.5rem;padding:.75rem;background:var(--surface);border-radius:var(--radius);position:sticky;top:0;z-index:10;margin-bottom:1rem}.filter-bar input:not([type=checkbox]):not([type=radio]),.filter-bar select{padding:.5rem;border:1px solid var(--border);border-radius:10px;font-size:.9rem;min-width:120px}.filter-bar-clear,.filter-bar-action{padding:.5rem .75rem;border:1px solid var(--border);border-radius:10px;background:var(--surface);font-size:.9rem;cursor:pointer;align-self:center}.filter-bar-clear:disabled,.filter-bar-action:disabled{opacity:.5;cursor:not-allowed}.filter-bar-mobile{display:block;margin-bottom:1rem}.filter-sheet-toggle{width:100%;padding:.65rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font-weight:600;cursor:pointer}.filter-sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:100;display:flex;align-items:flex-end}.filter-sheet{width:100%;max-height:85vh;background:var(--surface);border-radius:var(--radius) var(--radius) 0 0;padding:1rem;overflow-y:auto}.filter-sheet-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.filter-sheet-header h3{margin:0;font-size:1rem}.filter-sheet-body{display:flex;flex-direction:column;gap:.5rem}.filter-sheet-body input:not([type=checkbox]):not([type=radio]),.filter-sheet-body select{width:100%;padding:.5rem;border:1px solid var(--border);border-radius:10px}.filter-sheet-actions{display:flex;gap:.5rem;margin-top:1rem}.filter-sheet-actions button{flex:1;padding:.65rem;border:1px solid var(--border);border-radius:10px;background:var(--surface);cursor:pointer}.filter-sheet-actions button.primary{background:var(--accent-pink);color:var(--accent);border-color:var(--accent-pink)}.category-picker{position:relative;min-width:120px}.category-picker:focus-within{z-index:50}.category-picker-input{width:100%;padding:.45rem .5rem;border:1px solid var(--border);border-radius:10px;font-size:.85rem}.category-picker-list{position:absolute;top:calc(100% + 2px);left:0;right:auto;min-width:100%;width:max-content;max-width:min(320px,90vw);margin:0;padding:.25rem 0;list-style:none;background:var(--surface);border:1px solid var(--border);border-radius:10px;max-height:240px;overflow-y:auto;z-index:51;box-shadow:0 4px 12px #0000001f}.category-picker-list button{display:block;width:100%;text-align:left;padding:.4rem .6rem;border:none;border-radius:8px;background:transparent;cursor:pointer;font-size:.85rem;font-weight:500}.category-picker-list button:hover,.category-picker-list button.selected{background:var(--accent-wash)}.category-picker-empty{padding:.4rem .6rem;color:var(--muted);font-size:.85rem}.bulk-category-picker{min-width:160px}.category-filter{position:relative;min-width:200px;flex:0 0 auto}.category-filter:focus-within{z-index:50}.category-filter-toggle{width:100%;padding:.5rem 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);font-size:.85rem;text-align:left;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.category-filter-panel{position:absolute;top:calc(100% + 2px);left:0;right:auto;width:280px;max-width:min(320px,90vw);max-height:320px;overflow-y:auto;overflow-x:hidden;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 4px 12px #0000001f;z-index:51;padding:4px 0;box-sizing:border-box;--filter-row-x: 12px;--filter-checkbox-gap: 8px;--filter-child-label-indent: 12px}.category-filter-divider{margin:6px var(--filter-row-x);border-top:1px solid var(--border)}.category-filter-option{display:flex;flex-direction:row;align-items:flex-start;gap:var(--filter-checkbox-gap);padding:6px var(--filter-row-x);font-size:.85rem;cursor:pointer;margin:0;box-sizing:border-box}.category-filter-check{flex:0 0 16px;width:16px;min-width:16px;max-width:16px;height:16px;display:flex;align-items:center;justify-content:center;margin-top:2px}.category-filter-panel input[type=checkbox]{display:block;margin:0;padding:0;width:16px;height:16px;min-width:16px;max-width:16px;flex-shrink:0;box-sizing:border-box;accent-color:var(--accent)}.category-filter-label{flex:1 1 auto;display:block;line-height:1.3;word-break:break-word}.category-filter-option:hover{background:var(--accent-wash)}.category-filter-group{border-top:1px solid #ececec;padding-top:2px;margin-top:2px}.category-filter-group:first-of-type{margin-top:0}.category-filter-parent{font-weight:600;background:#f7f8fa}.category-filter-parent:hover{background:#eef3f8}.category-filter-children{margin:2px 0 6px;padding-bottom:2px}.category-filter-child{padding-top:3px;padding-bottom:3px}.category-filter-child .category-filter-label{padding-left:var(--filter-child-label-indent);border-left:2px solid #e4e8ee}.bulk-bar{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;align-items:center}.bulk-bar button,.bulk-bar select{padding:.5rem .75rem;border:1px solid var(--border);border-radius:10px;background:var(--surface);cursor:pointer}.txn-list{display:flex;flex-direction:column;gap:.75rem}.txn-card{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow);overflow:visible;transition:opacity .28s ease,transform .28s ease,max-height .28s ease;max-height:500px;position:relative}.txn-card-exiting{overflow:hidden;opacity:0;transform:translate(12px);max-height:0;margin:0;border-width:0;pointer-events:none}.txn-row{display:grid;grid-template-columns:auto 1fr auto auto;gap:.75rem;padding:.75rem;align-items:start}.suggestion-row{grid-column:2 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:.35rem}.suggestion-label{font-size:.75rem;color:var(--muted)}.suggestion-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.15rem .5rem;border:1px solid var(--border);border-radius:999px;background:#fff;font-size:.75rem;cursor:pointer;color:var(--text)}.suggestion-chip:hover{border-color:var(--accent);background:var(--accent-wash)}.suggestion-confidence{color:var(--muted);font-size:.7rem}.txn-info{cursor:pointer;min-width:0}.txn-date{font-size:.8rem;color:var(--muted);white-space:nowrap}.txn-date-desktop{display:none}.txn-desc{font-weight:500;word-break:break-word}.txn-meta{font-size:.8rem;color:var(--muted);display:flex;gap:.5rem;flex-wrap:wrap}.txn-amount{font-weight:600;white-space:nowrap}.txn-amount.debit{color:var(--debit)}.txn-amount.credit{color:var(--credit)}.category-select{min-width:140px;font-size:.85rem}@media(min-width:768px){.txn-list.table-mode .category-select .category-picker-list{left:0;right:auto}}.context-panel{padding:.75rem 1rem;background:#fafafa;border-top:1px solid var(--border);font-size:.9rem}.context-panel h4{margin:0 0 .5rem}.context-panel ul{margin:0;padding-left:1.25rem}.empty{text-align:center;color:var(--muted);padding:2rem}@media(max-width:640px){.txn-row{grid-template-columns:auto 1fr;grid-template-rows:auto auto}.txn-amount,.category-picker,.suggestion-row{grid-column:2}}@media(min-width:641px){.filter-bar-mobile{display:none}}@media(min-width:768px){.txn-list.table-mode .txn-header,.txn-list.table-mode .txn-row{grid-template-columns:auto 100px minmax(0,1fr) 100px 140px}.txn-list.table-mode .txn-header{display:grid;gap:.75rem;padding:.5rem .75rem;font-size:.75rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.txn-list.table-mode .txn-row{align-items:start}.txn-list.table-mode .txn-row>input[type=checkbox]{grid-column:1}.txn-list.table-mode .txn-row>.txn-date-desktop{grid-column:2}.txn-list.table-mode .txn-row>.txn-info{grid-column:3;min-width:0}.txn-list.table-mode .txn-row>.txn-amount{grid-column:4;align-self:center;white-space:nowrap}.txn-list.table-mode .txn-row>.category-select{grid-column:5;align-self:start;min-width:0;width:100%;max-width:140px}.txn-list.table-mode .txn-date-mobile{display:none}.txn-list.table-mode .txn-date-desktop{display:block}.txn-list.table-mode .suggestion-row{grid-column:3 / 5;grid-row:2}}.txn-category{background:var(--accent);color:#fff;padding:.1rem .4rem;border-radius:10px;font-size:.75rem}.txn-status{font-size:.75rem;color:var(--muted)}.budget-page h2{margin-top:0}.budget-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.months-select{display:flex;align-items:center;gap:.5rem;font-size:.9rem}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;margin-bottom:1.5rem}.summary-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;box-shadow:var(--shadow)}.summary-card.highlight{border-color:var(--accent-light);background:var(--accent-wash)}.summary-card.investment{border-style:dashed}.summary-card h3{margin:0 0 .5rem;font-size:.85rem;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.03em}.summary-amount{margin:0;font-size:1.35rem;font-weight:700}.summary-delta{margin:.35rem 0 0;font-size:.8rem;color:var(--muted)}.summary-note{margin:.35rem 0 0;font-size:.75rem;color:var(--muted)}.budget-section{margin-bottom:2rem}.budget-section-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.budget-section-header h3{margin:0}.display-mode-select{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--muted)}.display-mode-select select,.display-mode-toggle{padding:.35rem .75rem;border:1px solid var(--border);border-radius:10px;background:var(--surface);font-size:.85rem;cursor:pointer}.display-mode-toggle:hover{border-color:var(--accent-light)}.budget-section h3{margin:0 0 .75rem}.budget-table-wrap{overflow-x:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.budget-table{width:100%;border-collapse:collapse;font-size:.85rem;min-width:600px}.budget-table th,.budget-table td{padding:.6rem .75rem;text-align:right;border-bottom:1px solid var(--border);white-space:nowrap}.budget-table th:first-child,.budget-table td:first-child{text-align:left;position:sticky;left:0;background:var(--surface);font-weight:500}.budget-table .profit-row td{font-weight:600;background:#fafafa}.budget-table .expandable-row{cursor:pointer}.budget-table .expandable-row:hover td{background:#f8f8f8}.budget-table .expandable-row.expanded td{font-weight:600}.budget-table .expand-toggle{display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;margin-right:.35rem;padding:0;border:none;border-radius:999px;background:transparent;color:var(--muted);font-size:.65rem;cursor:pointer;vertical-align:middle}.budget-table .category-detail-row td{background:#fcfcfc;font-size:.8rem}.budget-table .category-detail-row td:first-child{padding-left:2rem}.budget-table .section-divider td{background:#f0f0f0;font-weight:600;font-size:.8rem;text-transform:uppercase;color:var(--muted);text-align:left}.budget-table .child-row td:first-child{padding-left:1.5rem;color:var(--muted)}.budget-table .parent-row td:first-child{font-weight:600}.budget-table td.credit{color:var(--credit)}.budget-table td.debit{color:var(--debit)}.budget-select-hint{margin:0 0 .75rem}.budget-table .selectable-row{cursor:pointer}.budget-table .selectable-row:hover td{background:var(--accent-wash)}.budget-table .selectable-row.selected-row td{background:#d5e3f6}.budget-table .selectable-row.selected-row td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.budget-chart-section{margin-bottom:1.5rem;padding:1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.chart-close-btn{padding:.35rem .75rem;border:1px solid var(--border);border-radius:10px;background:var(--surface);font-size:.85rem;cursor:pointer}.chart-close-btn:hover{border-color:var(--accent-light)}.chart-month-filters{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin-bottom:.75rem}.chart-month-filters-label{font-size:.85rem;color:var(--muted)}.chart-month-toggle-group{display:flex;flex-wrap:wrap;gap:.35rem}.chart-month-toggle{padding:.25rem .6rem;border:1px solid var(--border);border-radius:999px;background:var(--surface);font-size:.8rem;cursor:pointer}.chart-month-toggle.included{border-color:var(--accent-light);background:var(--accent-wash);color:var(--accent);font-weight:600}.chart-month-toggle.excluded{color:var(--muted);text-decoration:line-through;opacity:.7}.chart-month-toggle:hover:not(:disabled){border-color:var(--accent-light)}.chart-month-toggle:disabled{cursor:not-allowed;opacity:.85}.budget-line-chart svg{width:100%;max-width:100%;height:auto;display:block}.budget-chart-grid{stroke:#eee;stroke-width:1}.budget-chart-zero-line{stroke:var(--border);stroke-width:1;stroke-dasharray:4 4}.budget-chart-area{fill:#234a9224}.budget-chart-line{stroke:var(--accent);stroke-width:2}.budget-chart-point{fill:var(--accent);stroke:#fff;stroke-width:1.5}.budget-chart-axis-label,.budget-chart-month-label{fill:var(--muted);font-size:11px}.budget-chart-legend{list-style:none;margin:.75rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem 1rem;font-size:.8rem}.budget-chart-legend li{display:flex;align-items:baseline;gap:.35rem}.budget-chart-legend-month{color:var(--muted)}.budget-chart-change{font-size:.75rem}.budget-chart-change.credit{color:var(--credit)}.budget-chart-change.debit{color:var(--debit)}.role-investment td:first-child,.role-improvements td:first-child{font-style:italic}.accountant-page{max-width:900px}.accountant-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.accountant-toolbar h2{margin:0;font-size:1.1rem}.accountant-controls{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.accountant-warnings{margin-bottom:1rem}.warning-banner{background:#fffbeb;border:1px solid #fcd34d;border-radius:var(--radius);padding:.75rem 1rem;margin-bottom:.5rem;font-size:.9rem}.warning-banner a{color:var(--accent)}.accountant-section{background:var(--surface);border-radius:var(--radius);padding:1rem;margin-bottom:1rem}.accountant-section h3{margin:0 0 .75rem;font-size:1rem}.accountant-summary{border:1px solid var(--accent-light);background:var(--accent-wash)}.accountant-summary-amount{margin:0;font-size:1.75rem;font-weight:700}.accountant-summary-detail{margin:.5rem 0 0}.accountant-table .expense-total-row td{font-weight:600;border-bottom-width:2px}.accountant-table .amount-col,.accountant-table td.amount{text-align:right;white-space:nowrap}.line-note{font-size:.8rem;color:var(--muted);margin-top:.25rem}.line-toggle{background:none;border:none;border-radius:8px;padding:0;font:inherit;font-weight:500;color:inherit;cursor:pointer;text-align:left}.line-toggle:hover{color:var(--accent)}.category-breakdown .breakdown-label{padding-left:1.5rem;color:var(--muted);font-size:.85rem}.category-picker-group-label{padding:.35rem .75rem;font-size:.75rem;font-weight:600;text-transform:uppercase;color:var(--muted);background:#f5f5f5}.category-picker-group ul{list-style:none;margin:0;padding:0}.parent-option{font-style:italic;color:var(--muted)}.print-only{display:none}.connections-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;margin-top:1rem}.connection-panel,.csv-import-panel,.dead-letter-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.25rem;margin-bottom:1.25rem;box-shadow:var(--shadow)}.connection-panel h3,.csv-import-panel h3{margin-top:0}.connection-panel-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem}.connection-service-label{display:flex;flex-direction:column;gap:.35rem;font-size:.875rem;font-weight:600;min-width:220px}.connection-service-label select{font-weight:400;padding:.5rem .65rem;border:1px solid var(--border);border-radius:var(--radius);background:#fff}.connection-status span[data-status=ACTIVE]{color:var(--credit);font-weight:600}.connection-status span[data-status=REVOKED],.connection-status span[data-status=ERROR]{color:var(--debit);font-weight:600}button.secondary{background:#fff;color:var(--accent);border:1px solid var(--accent)}button.secondary:hover:not(:disabled){background:var(--accent-wash);border-color:var(--accent-pink)}.connection-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem}.conflict-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;margin-bottom:1rem}.conflict-diff{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.field-diff{background:#fef3c7;padding:.125rem .25rem;border-radius:10px}@media(max-width:640px){.conflict-diff{grid-template-columns:1fr}}.qbo-review-header{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:.75rem}.qbo-review-header h3{margin:0}.qbo-review-summary,.qbo-scan-message{font-size:.85rem;color:var(--muted)}.qbo-item-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.qbo-item-row .txn-desc{flex:1;min-width:12rem}.qbo-item-duplicate{opacity:.55}.qbo-badge{font-size:.75rem;padding:.1rem .45rem;border-radius:999px;border:1px solid var(--border);color:var(--muted);white-space:nowrap}.qbo-badge-duplicate{background:#fee2e2;border-color:#fecaca;color:#991b1b}.qbo-badge-match{background:#fef3c7;border-color:#fde68a;color:#92400e}.qbo-match-panel{margin-top:.6rem;margin-left:1.75rem;padding:.6rem .75rem;border:1px dashed var(--border);border-radius:var(--radius);background:color-mix(in srgb,var(--surface) 60%,transparent)}.qbo-match-meta{font-size:.78rem;color:var(--muted);margin-bottom:.4rem}.qbo-match-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.qbo-match-row .txn-desc{flex:1;min-width:12rem;font-weight:400}.qbo-match-actions{display:flex;gap:.5rem;margin-top:.5rem}@media print{.header,.no-print,.accountant-toolbar,.line-toggle{display:none!important}.print-only{display:inline}.main{max-width:none;padding:0}.accountant-section{break-inside:avoid;page-break-inside:avoid}}.prime-cost-page h2{margin-top:0}.prime-cost-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.prime-cost-toolbar-controls{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}.prime-cost-dirty{color:#b45309;font-size:.9rem;font-weight:600}.prime-cost-settings-row{display:flex;flex-wrap:wrap;gap:1.5rem}.prime-cost-section-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.prime-cost-section-header h3{margin:0}.prime-cost-grid{width:100%;border-collapse:collapse;font-size:.9rem}.prime-cost-grid th,.prime-cost-grid td{border:1px solid var(--border);padding:.4rem .5rem;text-align:right}.prime-cost-grid th[scope=row],.prime-cost-grid thead th:first-child{text-align:left}.prime-cost-grid .computed{background:var(--accent-wash);font-variant-numeric:tabular-nums}.prime-cost-grid .total-row th,.prime-cost-grid .total-row td{font-weight:600}.prime-cost-input{width:100%;min-width:5rem;padding:.25rem .35rem;border:1px solid var(--border);border-radius:10px;text-align:right;font-variant-numeric:tabular-nums}.prime-cost-input-narrow{max-width:6rem}.prime-cost-labor-grid{max-width:36rem}.prime-cost-benchmark{display:inline-block;margin-left:.35rem;padding:.1rem .4rem;border-radius:999px;font-size:.75rem;font-weight:600}.prime-cost-benchmark.in-range{background:#dcfce7;color:#166534}.prime-cost-benchmark.out-of-range{background:#fef3c7;color:#92400e}.prime-cost-health.on-target{color:var(--credit);font-weight:600}.prime-cost-health.review{color:#b45309;font-weight:600}.prime-cost-prefill-hint{color:var(--muted);font-size:.85rem}.prime-cost-prefill-hint .btn-link{margin-left:.5rem;background:none;border:none;color:var(--accent-light);cursor:pointer;text-decoration:underline;padding:0}.prime-cost-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:1rem;margin:0}.prime-cost-summary-grid dt{margin:0;color:var(--muted);font-size:.85rem}.prime-cost-summary-grid dd{margin:.25rem 0 0;font-size:1.1rem;font-weight:600}.prime-cost-actions{margin:1.5rem 0}.prime-cost-prefill-actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.inventory-counts-page h2,.purchases-log-page h2{margin-top:0}.inventory-toolbar,.purchases-toolbar,.inventory-header-fields,.inventory-new-item-form{display:flex;flex-wrap:wrap;gap:.75rem;align-items:end;margin-bottom:1rem}.inventory-toolbar label,.purchases-toolbar label,.inventory-header-fields label{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem}.inventory-dirty{color:#b45309;font-weight:600}.inventory-section-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}.inventory-category-section{margin-bottom:1.5rem}.inventory-category-section h4{margin:0 0 .5rem}.inventory-count-sheet{width:100%;border-collapse:collapse}.inventory-count-sheet th,.inventory-count-sheet td{padding:.35rem .5rem;border-bottom:1px solid var(--border);text-align:left}.inventory-count-sheet .subtotal-row th,.inventory-count-sheet .subtotal-row td{font-weight:600;border-top:2px solid var(--border)}.inventory-qty-input,.inventory-cost-input,.purchases-allocation-input{width:5rem;max-width:100%}.inventory-count-details{display:flex;flex-wrap:wrap;gap:.5rem 1rem;font-size:.85rem;padding:.5rem 0}.inventory-grand-total{margin-top:1rem;font-size:1.1rem}.inventory-catalog-toggle{margin-bottom:.75rem}.inactive-row{opacity:.55}.purchases-table-scroll{overflow-x:auto}.purchases-table{min-width:1200px}.purchases-table th,.purchases-table td{white-space:nowrap}.purchases-new-row{background:#00000008}.purchases-proof-balanced{color:var(--credit)}.purchases-proof-unbalanced{color:#b45309;font-weight:600}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;margin-bottom:1rem;box-shadow:var(--shadow)}.group-toggle{display:inline-flex;align-items:center;gap:.35rem;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:.2rem .4rem;font-size:.85rem}.group-toggle label{color:var(--muted);font-weight:500;margin-right:.25rem}.group-toggle button{border:none;background:transparent;padding:.2rem .5rem;border-radius:8px;cursor:pointer;font-size:.8rem}.group-toggle button.active{background:var(--surface);box-shadow:0 1px 2px #0000001a;font-weight:600}.line-meta{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.25rem;font-size:.75rem}.sku-tag{background:#f1f5f9;color:#475569;padding:.1rem .35rem;border-radius:999px;font-family:monospace}.source-category-tag{background:#fef3c7;color:#92400e;padding:.1rem .35rem;border-radius:999px}.order-tag{color:var(--muted)}.source-tag{display:inline-block;font-size:.75rem;color:var(--muted)}.kind-tag{display:inline-block;font-size:.75rem;text-transform:uppercase;font-weight:600;padding:.15rem .4rem;border-radius:999px}.kind-tag.kind-purchase{background:#fee2e2;color:#991b1b}.kind-tag.kind-sale{background:#dcfce7;color:#166534}.status-badge{display:inline-block;font-size:.7rem;padding:.15rem .4rem;border-radius:999px;text-transform:uppercase;font-weight:600}.status-badge.status-needs_review{background:#fef3c7;color:#92400e}.status-badge.status-auto_categorized{background:#e0f2fe;color:#0369a1}.status-badge.status-manually_approved{background:#dcfce7;color:#166534}.badge-derived{background:#ede9fe;color:#5b21b6;font-size:.75rem;padding:.15rem .45rem;border-radius:999px;font-weight:600;text-decoration:none}.badge-derived a{color:inherit;text-decoration:none}.badge-warning{background:#ffedd5;color:#c2410c;font-size:.75rem;padding:.15rem .45rem;border-radius:999px;margin-left:.35rem}.info-banner{background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af;padding:.5rem .75rem;border-radius:var(--radius);margin-bottom:1rem;display:flex;justify-content:space-between;align-items:center}.context-subtable{width:100%;border-collapse:collapse;font-size:.85rem;margin-top:.5rem}.context-subtable th,.context-subtable td{padding:.35rem .5rem;border-bottom:1px solid var(--border);text-align:left}.context-current-row td{background:#f8fafc;font-weight:500}.sku-breakdown-list{margin:.25rem 0 .5rem 1rem;padding:0;font-size:.85rem}.inventory-week-wrap{overflow:auto;max-height:calc(100vh - 8rem)}.inventory-week-table{border-collapse:separate;border-spacing:0;table-layout:fixed;width:max-content}.week-col-item{width:12rem}.week-col-sku{width:8rem}.week-col-source{width:9rem}.week-col-par{width:4rem}.week-col-unit{width:5rem}.week-col-count{width:4.5rem}.inventory-week-table th,.inventory-week-table td{padding:.35rem .5rem;border-bottom:1px solid var(--border);background:var(--surface);vertical-align:top}.inventory-week-table thead th{position:sticky;top:0;z-index:2}.inventory-week-table thead tr:nth-child(2) th{top:2.25rem}.inventory-week-table .sticky-col{position:sticky;z-index:1}.inventory-week-table thead .sticky-col{z-index:3}.inventory-week-table .sticky-0{left:0}.inventory-week-table .sticky-1{left:12rem}.inventory-week-table .sticky-2{left:20rem}.inventory-week-table .sticky-3{left:29rem}.inventory-week-table .sticky-4{left:33rem}.inventory-week-table .inventory-section-row th{background:var(--bg);text-align:left}.order-needed{background:#fff3bf;font-weight:600}.inventory-sheet-footer{position:sticky;bottom:0;display:flex;justify-content:space-between;gap:1rem;padding:.75rem 0;background:var(--surface);border-top:1px solid var(--border)}.inventory-today{margin:.25rem 0 .75rem}.sku-raw{white-space:pre-line;overflow-wrap:anywhere}.inventory-dialog{border:1px solid var(--border);background:var(--surface);padding:1rem;margin-top:1rem;max-height:70vh;overflow:auto}.order-list-card{break-inside:avoid;margin-bottom:1.5rem}@media print{.header,.no-print{display:none!important}.order-list-page{background:#fff}}.validation-badge{display:inline-block;padding:.1rem .45rem;border-radius:999px;font-size:.8rem;font-weight:600}.validation-badge.status-PASS,.validation-day.status-PASS{background:#dcfce7;color:#166534}.validation-badge.status-WARN,.validation-day.status-WARN,.money-delta.status-WARN{background:#fef3c7;color:#92400e}.validation-badge.status-FAIL,.validation-day.status-FAIL,.money-delta.status-FAIL{background:#fee2e2;color:#991b1b}.validation-badge.status-EXPLAINED,.validation-day.status-EXPLAINED{background:#e0e7ff;color:#3730a3}.validation-badge.status-NO_REFERENCE,.validation-day.status-NO_REFERENCE{background:#f3f4f6;color:#4b5563}.validation-badge.status-ERROR,.validation-day.status-ERROR{background:#fee2e2;color:#7f1d1d}.validation-calendar{display:grid;grid-template-columns:repeat(7,minmax(2.2rem,1fr));gap:.35rem;margin-top:1rem}.validation-calendar-label{font-size:.75rem;color:var(--muted);text-align:center}.validation-day{display:flex;align-items:center;justify-content:center;min-height:2.2rem;border-radius:10px;text-decoration:none;color:inherit}.validation-table-scroll{overflow-x:auto}.validation-table{border-collapse:collapse;min-width:960px;width:100%}.validation-table th,.validation-table td{border-bottom:1px solid var(--border);padding:.35rem .5rem;white-space:nowrap;vertical-align:top}.validation-table .sticky-date{position:sticky;left:0;background:var(--surface);z-index:1}.validation-table th.num,.validation-table td.num{text-align:right;font-variant-numeric:tabular-nums}.validation-table th.group-start,.validation-table td.group-start{border-left:1px solid var(--border)}.manual-chip{display:inline-block;margin-left:.35rem;padding:0 .35rem;border-radius:999px;background:var(--accent-wash);color:var(--accent);font-size:.7rem}.margin-bad{color:var(--debit)}.margin-warn{color:var(--accent-orange)}.margin-ok{color:var(--credit)}.recipe-drawer{position:sticky;bottom:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem;margin-top:1rem}.recipe-drawer header{display:flex;justify-content:space-between;align-items:center}.popularity-bars{display:grid;gap:.35rem;margin:1rem 0}.popularity-bar{display:grid;grid-template-columns:10rem 1fr 4rem;gap:.5rem;align-items:center}.bar-track{background:var(--accent-wash);border-radius:999px;height:.7rem}.bar-fill{display:block;height:100%;background:var(--accent);border-radius:999px}.scheduling-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem;margin:1rem 0}.scheduling-tabs{display:flex;gap:.5rem;margin:1rem 0;flex-wrap:wrap}.adjust-panel fieldset{border:1px solid var(--border);border-radius:8px;padding:.75rem 1rem 1rem;margin:0 0 1rem}.adjust-panel legend{font-weight:600;padding:0 .35rem}.adjust-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));gap:.75rem 1rem;align-items:end}.adjust-grid label{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;color:var(--muted)}.adjust-grid input,.adjust-grid select{width:100%;box-sizing:border-box}.adjust-grid .adjust-check{flex-direction:row;align-items:center;gap:.5rem}.adjust-grid .adjust-check input{width:auto}.adjust-actions{display:flex;gap:.5rem;margin-top:.75rem;flex-wrap:wrap}.adjust-list{margin:.75rem 0 0;padding-left:1.25rem;display:grid;gap:.35rem}.adjust-list li span{margin-right:.75rem}.scheduling-tabs button.active{font-weight:700;background:var(--accent);color:#fff;border-color:var(--accent)}.slot-grid-scroll{overflow-x:auto}.slot-grid{border-collapse:collapse;min-width:640px}.slot-grid th,.slot-grid td{border-bottom:1px solid var(--border);padding:.35rem .5rem;white-space:nowrap}.slot-grid .week-total-row td{font-weight:700;border-top:2px solid var(--border)}.slot-grid .slot-time{position:sticky;left:0;background:var(--surface);z-index:1}.day-timeline{display:grid;grid-template-columns:10rem minmax(18rem,1fr) max-content;gap:.35rem .75rem;align-items:center;overflow-x:auto}.day-timeline-label{font-size:.8rem;color:var(--muted);line-height:1.6}.legend-swatch{display:inline-block;width:.7rem;height:.7rem;border-radius:2px;vertical-align:middle}.legend-revenue,.bar-revenue{background:var(--secondary);fill:var(--secondary)}.legend-staff,.bar-staff{background:var(--accent);fill:var(--accent)}.shift-chart{display:block;width:100%;height:96px;border-bottom:1px solid var(--border)}.time-axis{position:relative;height:1.1rem;font-size:.7rem;color:var(--muted)}.time-axis-tick{position:absolute;top:0;transform:translate(-50%);white-space:nowrap}.time-axis-tick:first-child{transform:none}.shift-track{position:relative;height:1.1rem;background:var(--accent-wash);border-radius:999px}.shift-bar{position:absolute;top:0;bottom:0;min-width:2px;background:var(--accent);border-radius:999px;color:#fff;font-size:.7rem;line-height:1.1rem;text-align:center;overflow:hidden}.shift-bar-cover{background:var(--secondary)}.shift-break{position:absolute;top:.2rem;bottom:.2rem;min-width:2px;background:repeating-linear-gradient(45deg,#fff 0 2px,transparent 2px 4px);opacity:.85;pointer-events:none}.day-header{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.day-header h3{margin:0}.day-header button{margin-left:auto}.day-check{display:inline-flex;align-items:center;justify-content:center;width:1.4rem;height:1.4rem;border-radius:999px;color:#fff;font-size:.85rem;font-weight:700}.day-check-ok{background:var(--credit)}.day-check-bad{background:var(--debit)}.day-problems{margin:.5rem 0;padding-left:1.25rem;color:var(--debit);font-size:.9rem}.shift-editor{margin-top:.75rem}.shift-editor .slot-grid{min-width:0}.shift-break-edit{display:flex;align-items:center;gap:.35rem}.shift-break-edit+.shift-break-edit{margin-top:.25rem}.how-list{display:grid;gap:.35rem}.how-list div{display:flex;justify-content:space-between;gap:1rem}.how-list dt{color:var(--muted)}.how-list dd{margin:0;font-weight:600}
