/* AlphaPilot — Ledger Light theme (v1) */
/* Loaded after auto-invest.css (+ chat.css/reports.css + any inline <style>) so these rules win the cascade. */

:root{
  --bg:#ECEAE2;--panel:#F8F7F2;--line:#D7D3C6;
  --text:#2A2820;--muted:#75705F;--faint:#A39D89;
  --accent:#2B3A67;--accent-dark:#1F2A4B;--accent2:#E4E1D4;
  --good:#5F6E33;--goodbg:#E9EBDA;
  --amber:#8A6A1E;--amberbg:#F3ECD6;
  --danger:#A8432E;--dangerbg:#F3E1DA;
  --shadow:none;
  --chat-border:#D7D3C6;--chat-muted:#75705F;--chat-blue:#2B3A67;--chat-bg:#ECEAE2;
}
html,body{background:var(--bg);color:var(--text);font-family:-apple-system,'Segoe UI',sans-serif}
body{background:var(--bg)!important}
html,body{height:100vh;overflow:hidden}

h1,h2,h3,.hero-card h2,.panel-head h3,.chat-hero h2,.chat-side h3,.chat-card-head strong,
.reports-intro h2,.ai-brand strong,.home-brand strong,.auth-brand strong,.section-intro h2{
  font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:0
}

/* ---- app shell: fixed frame, no page-level scroll ---- */
.ai-shell{height:100vh;min-height:0}
.ai-sidebar{
  height:100vh;background:var(--panel);backdrop-filter:none;box-shadow:none;
  border-right:1px solid var(--line)
}
.ai-main{height:100vh;overflow-y:auto;padding:20px 26px}
.ai-topbar{border-bottom:1px solid var(--line);padding-bottom:14px}
.ai-topbar h1{font-size:24px}
.ai-logo,.home-logo,.auth-logo{
  border-radius:0;background:var(--accent);box-shadow:none
}
.ai-nav{border-radius:0;color:var(--muted)}
.ai-nav:hover{background:var(--accent2);color:var(--text);transform:none}
.ai-nav.active{
  background:var(--accent2);color:var(--accent);font-weight:600;
  box-shadow:none;border-left:2px solid var(--accent)
}
.ai-nav.active::before{display:none}
.settings-subnav .subpage-link.active{background:var(--accent2);color:var(--accent)}
.sidebar-section-title{color:var(--faint)}
.mode-pill{border-radius:0;background:var(--accent2);border-color:var(--line);color:var(--accent)}
.dot{background:var(--good)}
.dot.grey{background:var(--faint)}

/* ---- surfaces: flat hairline panels, no shadow/gradient/radius ---- */
.panel,.metric-card,.hero-card,.modal,.chat-side,.chat-card,.report-summary-card,
.home-card,.auth-card,.email-verify-box,.tax-grid .tax-item,.connection-badge{
  border-radius:0;box-shadow:none;background:var(--panel);border:1px solid var(--line)
}
.hero-card{background:var(--panel)}
.panel-head{border-bottom:1px solid var(--line)}
.status-chip{border-radius:0;background:var(--goodbg);color:var(--good)}
.metric-card strong,.big-number{font-family:Georgia,serif;font-weight:400}

/* ---- buttons ---- */
.ghost-btn,.primary-btn{border-radius:0;box-shadow:none;transition:none}
.ghost-btn{background:var(--panel);border-color:var(--line);color:var(--text)}
.ghost-btn:hover:not(:disabled){transform:none;box-shadow:none;border-color:var(--accent)}
.primary-btn{background:var(--accent);border-color:var(--accent);color:var(--bg)}
.primary-btn:hover{filter:none;background:var(--accent-dark)}
.home-actions a,.auth-actions a{border-radius:0}
.auth-link{color:var(--accent)}

/* ---- tables ---- */
table,.report-table,.audit-table{background:var(--panel)}
th,td,.report-table th,.report-table td,.audit-table th,.audit-table td{border-bottom:1px solid var(--line)}
th,.report-table th,.audit-table th{background:var(--panel);border-bottom:1px solid var(--text);color:var(--muted)}

/* ---- badges / tags ---- */
.signal-badge,.audit-result,.verification-badge,.tag,.envbadge{border-radius:0}
.signal-badge{background:var(--accent2);color:var(--accent)}
.audit-result.success,.verification-badge.verified{background:var(--goodbg);color:var(--good)}
.audit-result.failure{background:var(--dangerbg);color:var(--danger)}
.verification-badge.verify{background:var(--amberbg);color:var(--amber)}
.delayed-badge{background:var(--amberbg);color:var(--amber);border-color:var(--line)}
.amber-dot{background:var(--amber)}
.pos-number{color:var(--good)}
.neg-number{color:var(--danger)}

/* ---- allocation bar ---- */
.allocation-bar span:nth-child(1){background:var(--accent)}
.allocation-bar span:nth-child(2){background:#5B6A98}
.allocation-bar span:nth-child(3){background:#8D98BC}
.allocation-bar .cash-bar{background:var(--line)}
.swatch.a{background:var(--accent)}.swatch.b{background:#5B6A98}.swatch.c{background:#8D98BC}.swatch.d{background:var(--line)}

/* ---- home / auth pages ---- */
.home,.auth-page{background:var(--bg)}
.home h1 span{color:var(--accent)}
.home-note,.otp-note,.report-note{background:var(--accent2);border-color:var(--line);color:var(--muted)}
.home-feature{border-radius:0;border-color:var(--line)}

/* ---- chat ---- */
.chat-status .dot{box-shadow:none;background:var(--good)}
.prompt-btn{border-radius:0;background:var(--panel);border-color:var(--line);color:var(--text)}
.prompt-btn:hover{border-color:var(--accent);background:var(--accent2)}
.chat-messages{background:var(--bg)}
.chat-empty .ai-orb{border-radius:0;background:var(--accent2);color:var(--accent)}
.bubble{border-radius:0;background:var(--panel);border-color:var(--line);color:var(--text)}
.msg.user .bubble{background:var(--accent2);border-color:var(--line);color:var(--text)}
.composer textarea{border-radius:0;border-color:var(--line)}
.composer textarea:focus{border-color:var(--accent);box-shadow:none}
.send-btn{border-radius:0;background:var(--accent)}
.typing{border-radius:0;background:var(--panel);border-color:var(--line)}

/* ---- reports ---- */
.report-disclaimer{background:var(--amberbg);border-color:var(--line)}
.report-disclaimer p{color:var(--amber)}
.tax-card{border-left:3px solid var(--amber)}

/* ---- keep the app fully within the viewport: internal scroll only, never the page ---- */
.chat-card,.chat-side{max-height:calc(100vh - 116px)}
.table-panel,.report-body{max-height:60vh}

/* ================= structural layout: no page scroll, dense grid per view ================= */
.ai-main{display:flex;flex-direction:column;height:100vh;overflow:hidden;padding:16px 22px}
.ai-topbar{flex:0 0 auto;margin-bottom:10px}
.view{flex:1 1 auto;min-height:0}
.view:not(.hidden){display:flex;flex-direction:column;overflow:hidden}

/* Overview: pack all 8 dashboard cards into the remaining height, 3 rows */
#view-overview .overview-dashboard{
  flex:1;min-height:0;display:grid;
  grid-template-columns:1.05fr 1.05fr .9fr;
  grid-template-rows:repeat(3,minmax(0,1fr));
  gap:10px
}
#view-overview .dashboard-card{padding:10px 14px;overflow:hidden;display:flex;flex-direction:column}
#view-overview .dashboard-card-head{margin-bottom:6px;padding-bottom:6px}
#view-overview .dashboard-card-head h3{font-size:13px}
#view-overview .dashboard-card-head p{font-size:10px;margin:2px 0 0}
#view-overview .indices-dashboard-card{grid-column:1;grid-row:1}
#view-overview .portfolio-dashboard-card{grid-column:1;grid-row:2}
#view-overview .signals-dashboard-card{grid-column:1;grid-row:3}
#view-overview .watchlist-dashboard-card{grid-column:2;grid-row:1}
#view-overview .overview-side-stack{grid-column:3;grid-row:1/3;display:grid;grid-template-rows:1fr 1fr;gap:10px}
#view-overview .recent-orders-card{grid-column:2;grid-row:2}
#view-overview .performance-card{grid-column:2;grid-row:3}
#view-overview .ai-dashboard-card{grid-column:3;grid-row:3}
#view-overview .dashboard-card > *:last-child{overflow:auto;min-height:0}
#view-overview .indices-grid,#view-overview .opportunity-list,#view-overview .recent-orders-list,
#view-overview .watchlist-table-wrap,#view-overview .market-status-list{overflow:auto;flex:1;min-height:0}

/* Portfolio / Signals / About: let the one big content block absorb remaining height */
#view-portfolio,#view-signals,#view-about{gap:10px}
#view-portfolio .table-panel{flex:1;min-height:0;overflow:auto}
#view-portfolio .sandbox-orders-panel{flex:0 1 auto;max-height:34vh;overflow:auto}
#view-signals .signal-grid{flex:1;min-height:0;overflow:auto;align-content:start}
#view-about{overflow:auto}

/* Settings: 4 stacked rows share the height evenly, each scrolls internally if needed */
#view-settings .settings-v26{flex:1;min-height:0;display:flex;flex-direction:column;gap:8px;overflow:hidden}
#view-settings .settings-v26 > *{flex:1 1 0;min-height:0;overflow:auto}
#view-settings .settings-section-head{margin-bottom:6px;padding-bottom:6px}
#view-settings .settings-card,#view-settings .panel{padding:10px 14px}
#view-settings .settings-input-grid,#view-settings .settings-kpi-strip{gap:8px}

/* Backtest: CSS-only tabs, each pane takes the remaining height */
#view-backtest .tab-radio{position:absolute;opacity:0;pointer-events:none}
#view-backtest .tab-bar{flex:0 0 auto;display:flex;gap:6px;margin-bottom:10px;border-bottom:1px solid var(--line)}
#view-backtest .tab-bar label{padding:8px 14px;font-size:12px;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent}
#view-backtest .tab-pane{display:none;flex:1;min-height:0;overflow:auto;flex-direction:column;gap:10px}
#btTabBasic:checked ~ .tab-bar label[for="btTabBasic"],
#btTabPhase2:checked ~ .tab-bar label[for="btTabPhase2"]{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}
#btTabBasic:checked ~ #btPaneBasic{display:flex}
#btTabPhase2:checked ~ #btPanePhase2{display:flex}

@media(max-width:1180px){
  #view-overview .overview-dashboard{grid-template-columns:1fr 1fr;grid-template-rows:repeat(4,minmax(0,1fr))}
  #view-overview .overview-side-stack{grid-column:1/3;grid-row:4;grid-template-columns:1fr 1fr;grid-template-rows:1fr}
}
