*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: 'DM Sans', 'Helvetica Neue', sans-serif; transition: background 0.3s ease, color 0.3s ease; }
button { font-family: inherit; cursor: pointer; }
.mono { font-family: 'DM Mono', monospace; }

/* Theme variables */
:root {
  --bg: #0a0a0f; --header-bg: linear-gradient(135deg, #0f1a12 0%, #0a0a0f 40%, #1a0f0f 100%);
  --card: #111114; --tab-bg: #0c0c11; --border: #1a1a1a;
  --t1: #f0ede5; --t2: #e0ddd5; --t3: #888; --t4: #555;
  --row-even: #0f0f14; --row-odd: #111118;
  --accent: #6fcf6f; --accent-bg: #1a2e1a; --accent-border: #2d5a2d;
  --chevron: #444; --detail: #bbb; --label: #555; --value: #aaa;
  --filter-bg: #111; --filter-border: #222; --filter-text: #666; --dot: #2a2a2a;
  --hi-bg: #1a2e1a; --hi-border: #2d5a2d; --hi-text: #6fcf6f; --hi-glow: 0 0 20px rgba(111,207,111,0.15);
  --md-bg: #2e2a1a; --md-border: #5a4f2d; --md-text: #cfb86f; --md-glow: 0 0 20px rgba(207,184,111,0.15);
  --lo-bg: #1a1a2e; --lo-border: #2d2d5a; --lo-text: #6f8fcf; --lo-glow: 0 0 20px rgba(111,143,207,0.15);
  --cat-mining: #6fcf6f; --cat-infra: #cf6f6f; --cat-prop: #cfb86f; --cat-strat: #6fcfcf;
  --shadow: none;
}
.light {
  --bg: #f6f4ef; --header-bg: linear-gradient(135deg, #eaf0eb 0%, #f6f4ef 40%, #f0eaea 100%);
  --card: #ffffff; --tab-bg: #efede7; --border: #d8d3c7;
  --t1: #1a1a1a; --t2: #2a2a2a; --t3: #666; --t4: #999;
  --row-even: #faf8f4; --row-odd: #f4f2ec;
  --accent: #2a7a2a; --accent-bg: #e4f0e4; --accent-border: #a8cca8;
  --chevron: #aaa; --detail: #444; --label: #999; --value: #555;
  --filter-bg: #efede7; --filter-border: #d8d3c7; --filter-text: #888; --dot: #ccc;
  --hi-bg: #e4f0e4; --hi-border: #98c898; --hi-text: #1a6b1a; --hi-glow: 0 0 14px rgba(26,107,26,0.06);
  --md-bg: #f0ebdf; --md-border: #c8b880; --md-text: #7a6018; --md-glow: 0 0 14px rgba(122,96,24,0.06);
  --lo-bg: #e4e6f0; --lo-border: #9898c8; --lo-text: #3a4a80; --lo-glow: 0 0 14px rgba(58,74,128,0.06);
  --cat-mining: #1a6b1a; --cat-infra: #983030; --cat-prop: #7a6018; --cat-strat: #1a7070;
  --shadow: 0 1px 4px rgba(0,0,0,0.08);
}

body { background: var(--bg); color: var(--t2); min-height: 100vh; }

.header { background: var(--header-bg); border-bottom: 1px solid var(--border); padding: 24px 20px 20px; transition: all 0.3s ease; }
.header-row { display: flex; justify-content: space-between; align-items: flex-start; }
.header .meta { font-size: 11px; color: var(--t4); letter-spacing: 2px; text-transform: uppercase; }
.header .meta .dot { color: var(--dot); margin: 0 6px; }
.header h1 { font-size: 26px; font-weight: 700; margin: 6px 0 4px; letter-spacing: -0.5px; color: var(--t1); }
.header .sub { font-size: 13px; color: var(--t3); line-height: 1.5; }

.theme-btn { background: var(--card); border: 1px solid var(--border); border-radius: 10px; padding: 8px 12px; display: flex; align-items: center; gap: 6px; color: var(--t3); font-size: 12px; letter-spacing: 0.5px; transition: all 0.3s ease; box-shadow: var(--shadow); }
.theme-btn .icon { font-size: 16px; }

.tabs { display: flex; border-bottom: 1px solid var(--border); background: var(--tab-bg); position: sticky; top: 0; z-index: 10; transition: all 0.3s ease; }
.tab { flex: 1; padding: 14px 12px; background: none; border: none; border-bottom: 2px solid transparent; color: var(--t4); font-size: 12px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; transition: all 0.2s ease; }
.tab.active { border-bottom-color: var(--accent); color: var(--t2); }

.content { padding: 16px 16px 80px; }

.filters { display: flex; gap: 12px; margin-bottom: 16px; flex-wrap: wrap; }
.filter-btn { padding: 6px 14px; border-radius: 20px; border: 1px solid var(--filter-border); background: var(--filter-bg); color: var(--filter-text); font-size: 11px; font-weight: 600; letter-spacing: 1px; transition: all 0.2s ease; }
.filter-btn.active { border-color: var(--accent); background: var(--accent-bg); color: var(--accent); }

.opp-list { display: flex; flex-direction: column; gap: 10px; }
.opp-card { background: var(--card); border: 1px solid var(--border); border-radius: 12px; padding: 16px; cursor: pointer; transition: all 0.3s ease; }
.opp-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 8px; }
.opp-left { display: flex; align-items: center; gap: 10px; flex: 1; }
.opp-icon { font-size: 22px; }
.opp-title { font-size: 15px; font-weight: 700; color: var(--t1); line-height: 1.3; }
.opp-badges { display: flex; gap: 8px; margin-top: 4px; align-items: center; }
.opp-priority { font-size: 9px; font-weight: 700; letter-spacing: 1.5px; padding: 2px 8px; border-radius: 4px; }
.opp-category { font-size: 9px; letter-spacing: 1px; opacity: 0.8; }
.opp-chevron { color: var(--chevron); font-size: 18px; transition: transform 0.2s; }
.opp-chevron.open { transform: rotate(180deg); }
.opp-summary { font-size: 13px; color: var(--t3); line-height: 1.6; margin: 0 0 0 32px; }
.opp-expanded { margin: 16px 0 0 32px; padding-top: 14px; display: none; }
.opp-expanded.show { display: block; }
.opp-section-label { font-size: 10px; letter-spacing: 1.5px; margin-bottom: 8px; }
.opp-detail { display: flex; gap: 8px; margin-bottom: 6px; align-items: flex-start; }
.opp-dot { font-size: 8px; margin-top: 5px; }
.opp-detail-text { font-size: 12px; color: var(--detail); line-height: 1.5; }
.opp-field { margin-bottom: 10px; }
.opp-field-label { font-size: 9px; letter-spacing: 1.5px; margin-bottom: 3px; color: var(--label); }
.opp-field-value { font-size: 12px; color: var(--value); line-height: 1.5; }

.day-btns { display: flex; gap: 8px; margin-bottom: 16px; }
.day-btn { flex: 1; padding: 10px 8px; border-radius: 10px; border: 1px solid var(--border); background: var(--card); color: var(--t3); font-size: 11px; font-weight: 600; text-align: center; transition: all 0.2s ease; }
.day-btn.active { border-color: var(--accent-border); background: var(--accent-bg); color: var(--accent); }
.day-btn .loc { font-size: 9px; opacity: 0.6; margin-top: 2px; }

.meeting-list { display: flex; flex-direction: column; gap: 10px; }
.meeting-card { background: var(--card); border: 1px solid var(--border); border-radius: 12px; padding: 16px; transition: all 0.3s ease; }
.meeting-name { font-size: 15px; font-weight: 700; color: var(--t1); margin-bottom: 2px; }
.meeting-role { font-size: 11px; color: var(--accent); letter-spacing: 0.5px; margin-bottom: 10px; }
.meeting-notes { font-size: 13px; color: var(--t3); line-height: 1.6; }

.facts-table { display: flex; flex-direction: column; gap: 1px; border-radius: 12px; overflow: hidden; border: 1px solid var(--border); }
.fact-row { display: flex; justify-content: space-between; align-items: center; padding: 14px 16px; transition: all 0.3s ease; }
.fact-row:nth-child(odd) { background: var(--row-even); }
.fact-row:nth-child(even) { background: var(--row-odd); }
.fact-label { font-size: 12px; color: var(--t3); }
.fact-value { font-size: 13px; font-weight: 700; color: var(--t1); }
.fact-value.good { color: var(--accent); }
.fact-value.bad { color: #cf6f6f; }

.info-card { background: var(--card); border: 1px solid var(--border); border-radius: 12px; padding: 16px; transition: all 0.3s ease; }
.info-label { font-size: 10px; letter-spacing: 1.5px; margin-bottom: 10px; }
.info-text { font-size: 13px; color: var(--t3); line-height: 1.6; }

.filter-group { display: flex; gap: 8px; flex-wrap: wrap; }

.day-heading { display: flex; align-items: baseline; gap: 10px; padding: 20px 0 8px; }
.day-heading:first-child { padding-top: 0; }
.day-heading-day { font-size: 16px; font-weight: 700; color: var(--t1); }
.day-heading-meta { font-size: 11px; color: var(--t4); letter-spacing: 0.5px; }

.hidden { display: none; }
