:root {
    --primary: #1a1a1a;
    --secondary: #f5f5f0;
    --accent: #cfac45;
    --text: #2a2a2a;
    --border: #e0e0d8;
    --hover: #ae913d;
    --red: #D94452;
    --green: #27ae60;
    --orange: #f39c12;
    --qbo-green: #2CA01C;
    --qbo-blue: #0077C5;
    --scenario-blue: #1a4a8a;
    --scenario-light: #e8f0fb;
}

.main-nav { background: var(--secondary); }

* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: 'Work Sans', sans-serif; background: var(--secondary); color: var(--text); line-height: 1.6; }
h1,h2,h3,h4,h5 { font-family: 'Crimson Pro', serif; font-weight: 300; letter-spacing: 0.02em; }

/* ── Login ── */
#login-overlay { position:fixed;inset:0;background:var(--secondary);display:flex;align-items:center;justify-content:center;z-index:9999; }
#login-overlay.hidden { display:none; }
.login-card { background:white;border:1px solid var(--border);padding:3rem 2.5rem 2.5rem;width:100%;max-width:400px;box-shadow:0 8px 40px rgba(0,0,0,0.08); }
.login-logo { font-family:'Crimson Pro',serif;font-weight:300;font-size:2.75rem;color:var(--red);line-height:1;margin-bottom:0.2rem; }
.login-byline { font-size:0.8rem;color:#aaa;margin-bottom:2.5rem; }
.login-card h3 { font-family:'Crimson Pro',serif;font-weight:300;font-size:1.5rem;color:var(--primary);margin-bottom:1.75rem; }
.login-field { margin-bottom:1.25rem; }
.login-field label { display:block;font-size:0.72rem;font-weight:600;text-transform:uppercase;letter-spacing:0.08em;color:#888;margin-bottom:0.45rem; }
.login-field input { width:100%;padding:0.75rem 1rem;border:1px solid var(--border)!important;background:var(--secondary);font-family:'Work Sans',sans-serif;font-size:0.95rem;color:var(--primary);outline:none;box-sizing:border-box;height:auto!important;margin:0!important;box-shadow:none!important;transition:border-color 0.2s,background 0.2s; }
.login-field input:focus { border-color:var(--accent)!important;background:white; }
.login-btn { width:100%;padding:0.85rem;background:var(--accent);color:white;border:none;font-family:'Work Sans',sans-serif;font-weight:600;font-size:0.9rem;letter-spacing:0.08em;text-transform:uppercase;cursor:pointer;margin-top:0.5rem;transition:background 0.2s; }
.login-btn:hover { background:var(--hover); }
.login-error { background:#fef1f0;border-left:3px solid var(--red);color:#721c24;padding:0.6rem 0.9rem;font-size:0.85rem;margin-bottom:1rem;display:none; }
.login-error.show { display:block; }
.login-footer { margin-top:2rem;padding-top:1.25rem;border-top:1px solid var(--border);font-size:0.75rem;color:#bbb;text-align:center; }
.user-pill { display:none;align-items:center;gap:0.4rem;background:rgba(207,172,69,0.12);border:1px solid rgba(207,172,69,0.3);border-radius:20px;padding:0.2rem 0.65rem 0.2rem 0.4rem;font-size:0.75rem;color:var(--accent);font-weight:600;margin-top:0.6rem;cursor:pointer;width:fit-content;transition:background 0.2s; }
.user-pill:hover { background:rgba(207,172,69,0.22); }
.user-pill i { font-size:0.9rem; }

/* ── Layout ── */
.app-container { display:flex;min-height:100vh; }
.sidebar { width:250px;background:white;color:var(--text);display:flex;flex-direction:column;position:fixed;height:100vh;overflow-y:auto;border-right:1px solid var(--border); }
.sidebar-header { padding:2rem 1.5rem;border-bottom:1px solid var(--border); }
.sidebar-header h1 { font-size:2rem;color:var(--red);margin-bottom:0.5rem; }
.sidebar-header p { font-size:0.85rem;color:#999;line-height:1.4; }
.main-nav { flex:1;padding:1rem 0; }
.main-nav-item { display:block;padding:1rem 1.5rem;color:var(--text);text-decoration:none;font-weight:500;letter-spacing:0.05em;text-transform:uppercase;font-size:0.85rem;transition:all 0.3s ease;cursor:pointer;border-left:3px solid transparent; }
.main-nav-item:hover { background:var(--secondary);color:var(--hover); }
.main-nav-item.active { background:rgba(207,172,69,0.1);color:var(--accent);border-left-color:var(--accent); }
.main-nav-item i { margin-right:0.75rem;vertical-align:middle; }
.main-content { margin-left:250px;flex:1;padding:2rem;width:calc(100% - 250px); }
.content-header { padding:1rem 0 2rem;border-bottom:1px solid var(--border);margin-bottom:2rem;display:flex;justify-content:space-between;align-items:center; }
.content-header h2 { font-size:2rem;color:var(--primary); }
.content-subtitle { color:#666;font-size:0.95rem;margin-top:0.5rem; }
.main-tab-content { display:none; }
.main-tab-content.active { display:block;animation:fadeIn 0.4s ease; }
@keyframes fadeIn { from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);} }

/* ── Client table ── */
.client-controls { display:flex;gap:1rem;margin-bottom:2rem;align-items:center; }
.search-box { flex:1;position:relative; }
.search-box input { width:100%;padding:0.75rem 1rem 0.75rem 3rem;border:1px solid var(--border);background:white;font-family:'Work Sans',sans-serif;font-size:0.95rem; }
.search-box i { position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:#999; }
.filter-select { padding:0.75rem 1rem;border:1px solid var(--border);background:white;font-family:'Work Sans',sans-serif;font-size:0.9rem;min-width:150px; }
.btn-primary { background:var(--accent);color:white;padding:0.75rem 2rem;border:none;font-family:'Work Sans',sans-serif;font-weight:500;letter-spacing:0.05em;text-transform:uppercase;font-size:0.85rem;cursor:pointer;transition:all 0.3s ease; }
.btn-primary:hover { background:var(--hover); }
.client-table { background:white;border:1px solid var(--border); }
.client-table table { width:100%;border-collapse:collapse; }
.client-table thead { background:var(--secondary);border-bottom:2px solid var(--border); }
.client-table th { padding:1rem;text-align:left;font-weight:600;font-size:0.75rem;text-transform:uppercase;letter-spacing:0.05em;color:#666; }
.client-table td { padding:1.5rem 1rem;border-bottom:1px solid var(--border); }
.client-table tbody tr { cursor:pointer;transition:background 0.2s ease; }
.client-table tbody tr:hover { background:var(--secondary); }
.business-info { display:flex;align-items:center;gap:1rem; }
.business-icon { width:40px;height:40px;background:var(--secondary);border-radius:4px;display:flex;align-items:center;justify-content:center;color:var(--accent); }
.business-name { font-weight:600;font-size:0.95rem;color:var(--primary); }
.business-type { font-size:0.85rem;color:#999; }
.status-badge { padding:0.35rem 0.75rem;border-radius:4px;font-size:0.75rem;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;display:inline-flex;align-items:center;gap:0.5rem; }
.status-healthy { background:#d4edda;color:#155724; }
.status-at-risk { background:#fff3cd;color:#856404; }
.status-overdue { background:#f8d7da;color:#721c24; }
.connection-badges { display:flex;gap:0.5rem;flex-wrap:wrap; }
.connection-badge { padding:0.25rem 0.6rem;border-radius:3px;font-size:0.7rem;font-weight:600;background:var(--accent);color:white; }
.connection-badge.qbo { background:var(--qbo-green); }
.revenue-info { font-weight:600;font-size:1rem; }
.revenue-note { font-size:0.8rem;color:#999;margin-top:0.25rem; }

/* ── Stats ── */
.stats-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:2rem; }
.stat-card { background:white;padding:1.5rem;border:1px solid var(--border);transition:all 0.3s ease; }
.stat-card:hover { box-shadow:0 4px 20px rgba(0,0,0,0.08); }
.stat-header { display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem; }
.stat-label { color:#666;font-size:0.85rem;text-transform:uppercase;letter-spacing:0.05em;font-weight:500; }
.stat-icon { font-size:1.5rem; }
.stat-icon.green { color:var(--green); }
.stat-icon.orange { color:var(--orange); }
.stat-icon.red { color:var(--red); }
.stat-number { font-size:2.5rem;font-weight:300;color:var(--primary);font-family:'Crimson Pro',serif;line-height:1;margin-bottom:0.5rem; }
.stat-detail { color:#999;font-size:0.85rem; }

/* ── Client detail nav ── */
#client-subnav { background:var(--secondary);border-top:1px solid var(--border);border-bottom:1px solid var(--border);}
.client-nav-back { display:flex;align-items:center;gap:0.45rem;padding:0.6rem 1.25rem;color:var(--accent);font-weight:600;font-size:0.78rem;text-transform:uppercase;letter-spacing:0.05em;cursor:pointer;transition:color 0.2s; }
.client-nav-back:hover { color:var(--hover); }
.client-nav-back i { font-size:0.95rem; }
.client-nav-viewing { padding:0.7rem 1.25rem;border-bottom:1px solid var(--border);background:var(--secondary); }
.client-nav-viewing-label { font-size:0.65rem;font-weight:600;text-transform:uppercase;letter-spacing:0.1em;color:#999;margin-bottom:0.15rem; }
.client-nav-viewing-name { font-family:'Crimson Pro',serif;font-weight:600;font-size:1.1rem;color:var(--primary);line-height:1.05; }
.client-nav-viewing-owner { font-size:0.74rem;color:#999;margin-top:0.05rem; }
.client-nav-item { display:flex;align-items:center;gap:0.65rem;padding:0.55rem 1.25rem;color:var(--text);text-decoration:none;font-weight:500;font-size:0.88rem;cursor:pointer;transition:background 0.2s,color 0.2s;border-left:3px solid transparent; }
.client-nav-item:hover { background:rgba(0,0,0,0.03); }
.client-nav-item i { font-size:1.05rem;color:#555;flex-shrink:0; }
.client-nav-item span { flex:1; }
.client-nav-item.active { background:rgba(207,172,69,0.14);color:var(--accent);border-left-color:var(--accent);font-weight:600; }
.client-nav-item.active i { color:var(--accent); }
.client-nav-badge { display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--red);color:white;font-size:0.7rem;font-weight:700;flex-shrink:0; }

.back-button { display:inline-flex;align-items:center;gap:0.5rem;color:var(--accent);text-decoration:none;font-weight:500;font-size:0.9rem;margin-bottom:1.5rem;transition:all 0.3s ease; }
.back-button:hover { color:var(--hover); }
.back-button i { font-size:1.2rem; }
.client-tab-content { display:none; }
.client-tab-content.active { display:block;animation:fadeIn 0.4s ease; }

/* ── Connections tab ── */
.connection-card { background:white;border:1px solid var(--border);padding:2rem;margin-bottom:1.5rem; }
.connection-card-header { display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem; }
.connection-card h3 { font-size:1.25rem;font-weight:600;margin:0; }
.conn-status-badge { padding:0.35rem 0.75rem;border-radius:4px;font-size:0.75rem;font-weight:600;text-transform:uppercase;letter-spacing:0.05em; }
.conn-status-badge.not-connected { background:#e8e8e8;color:#666; }
.conn-status-badge.connected { background:#d4edda;color:#155724; }

/* ── QBO Data Display ── */
.qbo-data-section { background:white;border:1px solid var(--border);padding:1.5rem;margin-bottom:1.5rem; }
.qbo-data-header { display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:0.75rem;border-bottom:1px solid var(--border); }
.qbo-data-header h4 { font-family:'Crimson Pro',serif;font-weight:300;font-size:1.3rem;margin:0; }
.qbo-fetch-btn { display:inline-flex;align-items:center;gap:0.4rem;background:var(--qbo-green);color:white;border:none;padding:0.5rem 1.25rem;cursor:pointer;font-family:'Work Sans',sans-serif;font-size:0.82rem;font-weight:500;text-transform:uppercase;letter-spacing:0.05em;transition:background 0.2s; }
.qbo-fetch-btn:hover { background:#1f8012; }
.qbo-date-row { display:flex;gap:1rem;align-items:flex-end;flex-wrap:wrap;margin-bottom:1.25rem; }
.qbo-date-row label { display:block;font-size:0.72rem;font-weight:600;text-transform:uppercase;letter-spacing:0.08em;color:#888;margin-bottom:0.4rem; }
.qbo-date-row input[type=date], .qbo-date-row select { padding:0.55rem 0.75rem;border:1px solid var(--border);font-family:'Work Sans',sans-serif;font-size:0.88rem;background:white;color:var(--primary); }
.qbo-spinner { width:28px;height:28px;border:3px solid var(--border);border-top-color:var(--qbo-green);border-radius:50%;animation:spin 0.75s linear infinite;display:inline-block;vertical-align:middle; }
@keyframes spin { to{transform:rotate(360deg);} }
.qbo-table { width:100%;border-collapse:collapse;font-size:0.85rem; }
.qbo-table th { background:var(--primary);color:white;padding:0.65rem 1rem;text-align:left;font-size:0.75rem;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;white-space:nowrap; }
.qbo-table td { padding:0.55rem 1rem;border-bottom:1px solid var(--border); }
.qbo-table tbody tr:hover td { background:var(--secondary); }
.qbo-table .num { text-align:right;font-variant-numeric:tabular-nums; }
.qbo-table .bold { font-weight:700; }
.qbo-table .indent { padding-left:2rem; }
.qbo-table .section-header { background:#f0f0ea;font-weight:700;font-size:0.8rem;text-transform:uppercase;letter-spacing:0.06em;color:#555; }
.qbo-error { padding:1rem;background:#fef1f0;border-left:3px solid var(--red);color:#721c24;font-size:0.88rem; }
.qbo-empty { color:#aaa;font-style:italic;font-size:0.9rem;padding:1.5rem;text-align:center; }
.pnl-upload-panel { margin-top:1.25rem;border-top:1px solid var(--border);padding-top:1rem; }
.pnl-upload-header { display:flex;justify-content:space-between;align-items:center;margin-bottom:0.75rem; }
.pnl-upload-title { font-size:0.75rem;font-weight:600;text-transform:uppercase;letter-spacing:0.08em;color:#888; }
.pnl-upload-btn { cursor:pointer; }
.pnl-source-list { display:flex;flex-direction:column;gap:0.35rem;margin-bottom:0.5rem; }
.pnl-source-row { display:flex;align-items:center;gap:0.6rem;padding:0.45rem 0.6rem;border:1px solid var(--border);cursor:pointer;font-size:0.84rem;transition:background 0.15s; }
.pnl-source-row:hover { background:var(--secondary); }
.pnl-source-row.pnl-source-active { border-color:var(--qbo-green);background:#f0fdf4; }
.pnl-source-row span { flex:1; }
.pnl-delete-btn { background:none;border:none;cursor:pointer;color:#aaa;font-size:0.8rem;padding:0 0.25rem;line-height:1;transition:color 0.15s; }
.pnl-delete-btn:hover { color:var(--red); }
.pnl-csv-prompt { font-size:0.84rem;color:#888;font-style:italic;padding:0.5rem 0;margin-bottom:0.5rem; }
.pnl-upload-status { font-size:0.82rem;color:var(--accent);min-height:1.2em; }

/* ── P&L table in dashboard ── */
.pnl-table { width:100%;border-collapse:collapse;font-size:0.85rem;margin-top:1rem; }
.pnl-table th { background:var(--primary);color:white;padding:0.65rem 1rem;text-align:left;font-size:0.75rem;font-weight:600;text-transform:uppercase;letter-spacing:0.05em; }
.pnl-table th:last-child { text-align:right; }
.pnl-table td { padding:0.5rem 1rem;border-bottom:1px solid var(--border); }
.pnl-table td:last-child { text-align:right;font-variant-numeric:tabular-nums; }
.pnl-table tr.section { background:#f0f0ea;font-weight:700;font-size:0.78rem;text-transform:uppercase;letter-spacing:0.06em;color:#555; }
.pnl-table tr.total { background:#fafaf5;font-weight:700;border-top:2px solid var(--border); }
.pnl-table tr.indent td:first-child { padding-left:2rem; }
.pnl-table tbody tr:hover td { background:var(--secondary); }

/* ── Model / Forecast tab ── */
.model-section { background:white;border:1px solid var(--border);padding:2rem;margin-bottom:1.5rem; }
.model-section h3 { font-family:'Crimson Pro',serif;font-weight:300;font-size:1.5rem;margin-bottom:1rem;padding-bottom:0.75rem;border-bottom:1px solid var(--border); }
.chart-container { position:relative;height:400px;margin-top:1.5rem; }
.pf-table { width:100%;border-collapse:collapse;font-size:0.84rem;margin-top:1.25rem; }
.pf-table th { background:var(--primary);color:white;padding:0.6rem 0.85rem;text-align:right;font-size:0.72rem;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;white-space:nowrap; }
.pf-table th:first-child { text-align:left; }
.pf-table td { padding:0.5rem 0.85rem;border-bottom:1px solid var(--border);text-align:right;font-variant-numeric:tabular-nums; }
.pf-table td:first-child { text-align:left;font-weight:600; }
.pf-table tbody tr:hover td { background:var(--secondary); }
.pf-table tr.total-row td { background:#fafaf5;font-weight:700;border-top:2px solid var(--border); }

/* ── QBO Status card ── */
.status-row { display:flex;align-items:center;gap:0.75rem;padding:0.85rem 1rem;border-radius:4px;margin-bottom:1.25rem;font-size:0.9rem;font-weight:500; }
.status-row.connected { background:#f0fdf0;color:#155724;border-left:3px solid var(--qbo-green); }
.status-row.disconnected { background:#f8f9fa;color:#666;border-left:3px solid #ccc; }
.company-info { display:none;padding:0.75rem 1rem;background:white;border:1px solid var(--border);margin-bottom:1.25rem;font-size:0.85rem; }
.company-info .label { font-size:0.72rem;color:#888;text-transform:uppercase;letter-spacing:0.07em;margin-top:0.5rem; }
.company-info .value { font-weight:600;margin-top:0.15rem; }
.env-badge { display:inline-block;padding:0.15rem 0.5rem;border-radius:3px;font-size:0.72rem;font-weight:700;text-transform:uppercase;letter-spacing:0.05em; }
.env-badge.env-sandbox { background:#fff3cd;color:#856404; }
.env-badge.env-production { background:#d4edda;color:#155724; }
.btn-connect { display:inline-flex;align-items:center;gap:0.5rem;background:var(--qbo-green);color:white;border:none;padding:0.75rem 1.5rem;cursor:pointer;font-family:'Work Sans',sans-serif;font-weight:500;font-size:0.88rem;text-transform:uppercase;letter-spacing:0.06em;transition:background 0.2s;margin-bottom:0.75rem; }
.btn-connect:hover { background:#1f8012; }
.btn-connect:disabled { background:#aaa;cursor:not-allowed; }
.btn-disconnect { display:none;background:none;border:1px solid #e74c3c;color:#e74c3c;padding:0.45rem 1.1rem;font-family:'Work Sans',sans-serif;font-size:0.8rem;font-weight:500;text-transform:uppercase;letter-spacing:0.05em;cursor:pointer;transition:all 0.2s;margin-left:0.5rem; }

/* ── PnL fetch banner ── */
.qbo-ingested-banner { padding:0.75rem 1rem;background:#f0fdf0;border-left:3px solid var(--qbo-green);font-size:0.85rem;color:#155724;margin-bottom:1.25rem;display:none; }
.qbo-ingested-banner strong { font-weight:700; }

#connected-accounts { display:none;margin-top:auto;padding:1.5rem;border-top:1px solid var(--border);background:white; }

/* ── SCENARIO PLANNING ─────────────────────────────── */
.scenario-section { background:white;border:2px solid var(--scenario-blue);padding:2rem;margin-bottom:1.5rem;position:relative;overflow:hidden; }
.scenario-section::before { content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg, var(--scenario-blue), var(--accent)); }
.scenario-header { display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border); }
.scenario-header-left h3 { font-family:'Crimson Pro',serif;font-weight:300;font-size:1.6rem;color:var(--scenario-blue);margin:0; }
.scenario-header-left p { font-size:0.85rem;color:#666;margin-top:0.3rem; }
.scenario-badge { background:var(--scenario-blue);color:white;font-size:0.7rem;font-weight:700;text-transform:uppercase;letter-spacing:0.1em;padding:0.25rem 0.6rem;border-radius:3px; }

.hire-controls { display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end;margin-bottom:1.5rem; }
.hire-controls .hire-field { flex:1 1 200px;min-width:180px; }
.hire-controls .btn-add-hire,
.hire-controls .btn-reset-scenario { flex:0 0 auto;align-self:flex-end; }
.hire-field label { display:block;font-size:0.72rem;font-weight:600;text-transform:uppercase;letter-spacing:0.08em;color:#888;margin-bottom:0.4rem; }
.hire-field select, .hire-field input { width:100%;padding:0.65rem 0.85rem;border:1px solid var(--border);background:white;font-family:'Work Sans',sans-serif;font-size:0.9rem;color:var(--primary); }

.btn-add-hire { display:inline-flex;align-items:center;gap:0.5rem;background:var(--scenario-blue);color:white;border:none;padding:0.65rem 1.5rem;cursor:pointer;font-family:'Work Sans',sans-serif;font-weight:600;font-size:0.85rem;text-transform:uppercase;letter-spacing:0.06em;transition:background 0.2s;white-space:nowrap; }
.btn-add-hire:hover { background:#0f3366; }

.btn-reset-scenario { display:inline-flex;align-items:center;gap:0.4rem;background:white;color:#888;border:1px solid var(--border);padding:0.65rem 1.25rem;cursor:pointer;font-family:'Work Sans',sans-serif;font-size:0.8rem;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;transition:all 0.2s; }
.btn-reset-scenario:hover { border-color:#999;color:#555; }

.hire-chips { display:flex;flex-wrap:wrap;gap:0.6rem;margin-bottom:1.25rem; }
.hire-chip { display:inline-flex;align-items:center;gap:0.5rem;background:var(--scenario-light);border:1px solid #b8cef0;border-radius:4px;padding:0.35rem 0.75rem;font-size:0.8rem;color:var(--scenario-blue);font-weight:600; }
.hire-chip .chip-boost { background:var(--scenario-blue);color:white;border-radius:3px;padding:0.1rem 0.35rem;font-size:0.72rem; }
.hire-chip .chip-remove { cursor:pointer;color:#999;font-size:1rem;line-height:1;transition:color 0.15s; }
.hire-chip .chip-remove:hover { color:var(--red); }

.scenario-impact { margin-top:1rem; }
.scenario-impact-header { display:flex;align-items:center;gap:0.75rem;margin-bottom:1rem; }
.scenario-impact-header h4 { font-family:'Crimson Pro',serif;font-weight:300;font-size:1.2rem;margin:0; }
.impact-delta { display:inline-flex;align-items:center;gap:0.3rem;font-size:0.8rem;font-weight:700;padding:0.2rem 0.6rem;border-radius:3px; }
.impact-delta.positive { background:#d4edda;color:#155724; }
.impact-delta.neutral { background:#e8e8e8;color:#555; }

.scenario-coeff-table { width:100%;border-collapse:collapse;font-size:0.82rem;margin-bottom:1rem; }
.scenario-coeff-table th { background:var(--scenario-blue);color:white;padding:0.55rem 0.85rem;text-align:center;font-size:0.72rem;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;white-space:nowrap; }
.scenario-coeff-table th:first-child { text-align:left; }
.scenario-coeff-table td { padding:0.6rem 0.85rem;border-bottom:1px solid var(--border);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap; }
.scenario-coeff-table td:first-child { text-align:left;font-weight:600;color:#444; }
.scenario-coeff-table .coeff-base { color:#aaa; }
.scenario-coeff-table .coeff-boosted { color:var(--scenario-blue);font-weight:700; }
.scenario-coeff-table .coeff-boost-pct { font-size:0.7rem;color:var(--green);font-weight:700; }
.scenario-coeff-table tr.revenue-row td { background:#f0f4fb; }
.scenario-chart-container { position:relative;height:320px;margin-top:1rem; }

/* ── COLLATERAL PREVIEW ─────────────────────────────── */
.collateral-bar { display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;padding:1rem 1.5rem;background:white;border:1px solid var(--border); }
.collateral-bar-label { font-size:0.75rem;font-weight:700;text-transform:uppercase;letter-spacing:0.1em;color:#888;white-space:nowrap; }
.btn-collateral { display:inline-flex;align-items:center;gap:0.5rem;border:1px solid var(--border);background:white;padding:0.55rem 1.1rem;cursor:pointer;font-family:'Work Sans',sans-serif;font-size:0.82rem;font-weight:600;text-transform:uppercase;letter-spacing:0.06em;color:var(--primary);transition:all 0.2s;white-space:nowrap; }
.btn-collateral:hover { border-color:var(--accent);color:var(--accent); }
.btn-collateral.active { background:var(--accent);color:white;border-color:var(--accent); }
.btn-collateral i { font-size:1rem; }
.btn-collateral-excel i { color:#1f7244; }
.btn-collateral-excel.active i { color:white; }
.btn-collateral-doc i { color:#2b5eb5; }
.btn-collateral-doc.active i { color:white; }
.collateral-preview-pane { display:none;background:white;border:1px solid var(--border);border-top:3px solid var(--accent);margin-bottom:1.5rem;animation:fadeIn 0.3s ease; }
.collateral-preview-pane.active { display:block; }
.collateral-preview-header { display:flex;justify-content:space-between;align-items:center;padding:0.85rem 1.25rem;border-bottom:1px solid var(--border);background:var(--secondary); }
.collateral-preview-header-left { display:flex;align-items:center;gap:0.75rem; }
.collateral-preview-header h4 { font-family:'Work Sans',sans-serif;font-weight:600;font-size:0.9rem;color:var(--primary);margin:0; }
.collateral-file-badge { font-size:0.7rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;padding:0.15rem 0.5rem;border-radius:3px; }
.badge-xlsx { background:#d4edda;color:#155724; }
.badge-docx { background:#dce8fb;color:#1a4a8a; }
.btn-close-preview { background:none;border:none;cursor:pointer;color:#999;display:flex;align-items:center;transition:color 0.15s; }
.btn-close-preview:hover { color:var(--primary); }
.collateral-content-wrapper { background:white;max-height:700px;overflow-y:auto;overflow-x:auto; }
.collateral-fallback { padding:3rem;text-align:center; }
.collateral-fallback i { font-size:3rem;color:#ccc;display:block;margin-bottom:1rem; }
.collateral-fallback p { color:#888;font-size:0.9rem;margin-bottom:1.25rem; }
.collateral-fallback a { display:inline-flex;align-items:center;gap:0.5rem;background:var(--accent);color:white;padding:0.7rem 1.5rem;text-decoration:none;font-family:'Work Sans',sans-serif;font-weight:600;font-size:0.85rem;text-transform:uppercase;letter-spacing:0.06em;transition:background 0.2s; }
.collateral-fallback a:hover { background:var(--hover); }

/* Force native selects visible — overrides Materialize's default `select{display:none}` */
.hire-field select,
.qbo-date-row select,
select.browser-default { display:block !important; }

@media(max-width:992px){ .sidebar{width:200px;} .main-content{margin-left:200px;width:calc(100% - 200px);} }
@media(max-width:768px){ .app-container{flex-direction:column;} .sidebar{width:100%;position:relative;height:auto;} .main-content{margin-left:0;width:100%;} }