:root {
  --bg: #1a1f25;
  --panel: #252b32;
  --panel2: #2c333b;
  --line: #3a434d;
  --text: #eef1f4;
  --muted: #a4adb6;
}

body { background: linear-gradient(135deg, #1a1f25, #20262d); }
.sidebar { background: #171c21; }
.app-shell { grid-template-columns: 290px minmax(0, 1fr); }
.sidebar { padding-left: 18px; padding-right: 18px; }
.sidebar { overflow: hidden; }
.sidebar nav { flex: 1 1 auto; min-height: 0; overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; scrollbar-width: thin; }
.strategy-nav em, .candidate-nav em, .date-heading span, .date-parent-label { white-space: nowrap; }
.date-heading span { min-width: 0; }
.panel, .metric, .status-card, .stock-dialog { background: #222a33; }
.status-card { background: linear-gradient(90deg, #202b36, #252d36); }
.stock-list, .list-panel { background: #222a33; }
.nav-item:hover, .nav-item.active, .date-item:hover, .date-item.active { background: #2c3b4b; }
.table-tools, .signal-table thead { background: #27313c; }
.signal-table tbody tr:hover { background: #2a3541; }
.nav-item { padding: 16px 14px; font-size: 17px; min-height: 54px; }
.nav-item span { font-size: 20px; }
.nav-item b { padding: 4px 10px; font-size: 14px; }
.nav-label { font-size: 13px; margin-top: 30px; }
.date-item { padding: 9px 12px; font-size: 14px; min-height: 38px; }
.date-item b { font-size: 13px; }
.brand strong { font-size: 21px; }
.brand small { font-size: 10px; }
.market-energy { margin-bottom: 16px; }
.metric-grid { grid-template-columns: repeat(2, 1fr); }
.split-grid { grid-template-columns: 1fr; }
.risk-notice { color: #d6e4df; font-size: 15px; font-weight: 600; letter-spacing: .3px; padding-top: 34px; }
.energy-head { display: flex; align-items: center; gap: 14px; padding: 18px 22px; border-bottom: 1px solid var(--line); }
.energy-title-mark { width: 6px; height: 44px; background: #3f9be8; }
.energy-head p { margin: 0 0 6px; color: var(--mint); font-size: 10px; letter-spacing: 2px; }
.energy-head h2 { margin: 0; font-size: 20px; }
.energy-head h2 span { color: #91a9d1; font-weight: 500; }
.energy-head small { color: var(--muted); font-size: 12px; }
.energy-head-actions { display: flex; align-items: center; gap: 12px; margin-left: auto; }
.energy-scan-button { height: 36px; padding: 0 14px; border: 1px solid var(--mint); border-radius: 4px; background: transparent; color: var(--mint); font-weight: 700; cursor: pointer; }
.energy-scan-button:hover:not(:disabled) { background: rgba(98,230,177,.1); }
.energy-scan-button:disabled { opacity: .45; cursor: wait; }
.stop-scan-button { height: 40px; padding: 0 15px; border: 1px solid #b64d54; border-radius: 4px; background: transparent; color: #ff777d; font-weight: 700; cursor: pointer; }
.stop-scan-button:hover:not(:disabled) { background: rgba(255,108,114,.1); }
.stop-scan-button:disabled { opacity: .35; cursor: default; }
.energy-facts { padding: 14px 22px 4px; }
.energy-fact { display: grid; grid-template-columns: 38px auto 1fr; align-items: center; gap: 14px; min-height: 54px; }
.energy-fact i { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid #64717d; border-radius: 4px; color: #9aa7b2; font-style: normal; }
.energy-fact.today i { border: 0; background: #2cae58; }
.energy-fact span { color: #d4dae0; font-size: 17px; }.energy-fact strong { margin-left: 18px; font-size: 21px; }
.energy-fact.today strong { color: var(--mint); }
.energy-fact.previous i { border: 0; background: #71879a; }
.energy-fact.previous span small { margin-left: 10px; color: #82909c; font-size: 12px; }
.energy-fact.previous strong { color: #d5dce2; }
.energy-up { color: var(--red) !important; }.energy-down { color: var(--mint) !important; }
.view.list-panel.active { display: flex; }
main { min-height: 0; }
.overview-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start}.overview-main{min-width:0}.overview-tools{display:grid;gap:16px}.time-card,.calendar-card{padding:20px}.time-card p{margin:0;color:var(--muted);font-size:13px}.time-card strong{display:block;margin:8px 0;font-size:36px;letter-spacing:1px;color:var(--text)}.time-card div{display:flex;justify-content:space-between;color:var(--muted);font-size:14px}.calendar-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.calendar-head h2{margin:0;font-size:19px}.calendar-head button{width:34px;height:34px;border:1px solid var(--line);background:transparent;color:var(--text);font-size:23px;cursor:pointer}.calendar-head div{display:flex;gap:4px}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}.calendar-weekdays{margin:16px 0 8px;color:var(--muted);font-size:12px}.calendar-day{aspect-ratio:1;border:1px solid transparent;background:transparent;color:var(--text);cursor:pointer;font-size:14px}.calendar-day:disabled{cursor:default}.calendar-day.weekend,.calendar-day:not(.recorded){color:#68737e}.calendar-day.recorded{color:var(--mint);font-weight:700}.calendar-day.today{border-color:#3f9be8}.calendar-day.selected{background:#2c3b4b;border-color:var(--mint)}.calendar-empty{aspect-ratio:1}
@media(max-width:900px){.app-shell{grid-template-columns:76px 1fr}.nav-item{min-height:54px}.nav-item span{font-size:22px}}
.calendar-day.weekend,.calendar-day.holiday{color:#e39a9f!important;background:rgba(190,70,80,.14);border-color:rgba(190,70,80,.2)}
.overview-tools{align-self:start}.calendar-card{min-height:0;height:auto;padding-bottom:16px}.calendar-grid{grid-template-rows:none;grid-auto-rows:38px;min-height:0}.calendar-day.past{color:#68737e!important}.calendar-day.future{color:#eef1f4!important}.calendar-day.today{border:1px solid var(--mint);box-shadow:inset 0 0 0 1px rgba(98,230,177,.2)}
.calendar-day.weekend,.calendar-day.holiday{color:#e39a9f!important;background:rgba(190,70,80,.14)}
.overview-tools{transform:translateY(-72px)}
@media(min-width:901px){.status-card{width:calc(100% - 350px);margin-right:350px}.overview-tools{transform:translateY(-78px)}}
@media(min-width:901px){.metric-grid .status-card{width:auto;margin-right:0;grid-column:auto;min-width:0}.metric-grid{align-items:stretch}}
@media(min-width:901px){.metric-grid>.status-card,.metric-grid>.metric{height:138px;min-height:138px;box-sizing:border-box}.overview-tools{transform:translateY(-4px)}.time-card{height:138px;box-sizing:border-box}}
@media(min-width:901px){.metric-grid>.status-card,.metric-grid>.metric,.time-card{height:112px;min-height:112px}.metric-grid>.status-card{margin-bottom:0;padding:12px 16px}.metric-grid>.metric{padding:16px 20px}.metric-grid>.metric strong{margin:6px 0;font-size:34px}.time-card{padding:14px 18px}.time-card strong{margin:4px 0;font-size:32px}.metric-grid{margin-bottom:16px}}
@media(min-width:901px){.overview-tools{transform:translateY(2px);margin-top:0}}
@media(max-width:620px){.overview-tools{transform:none}}
.calendar-day.selected{border-color:#ff3b43!important;box-shadow:inset 0 0 0 1px rgba(255,59,67,.35)}.calendar-day.today{border-color:#ff3b43!important}
.energy-fact.today.volume-up i{background:#ff626b}.energy-fact.today.volume-down i{background:#2cae58}.index-chart-controls{display:flex;gap:28px;padding:4px 20px 16px;color:var(--muted)}.index-chart-controls label{display:flex;align-items:center;gap:10px;flex:1}.index-chart-controls input{flex:1;accent-color:var(--mint)}.index-chart-controls output{min-width:58px;color:var(--text)}
.status-card{min-height:54px;padding:10px 18px}.overview-tools{margin-top:-2px}
.index-chart{margin-top:16px;padding:0 0 16px}.index-chart .energy-head small{margin-left:auto;color:var(--muted)}.index-chart-stage{position:relative;height:260px;padding:12px 20px}.index-chart-stage canvas{width:100%;height:100%;display:block}.index-chart-hover{position:absolute;inset:12px 20px;pointer-events:none;z-index:2}.index-chart-hover>i{position:absolute;top:20px;bottom:20px;width:1px;background:rgba(238,241,244,.45)}.index-chart-hover>div{position:absolute;top:10px;min-width:225px;padding:8px 10px;border:1px solid rgba(98,230,177,.55);border-radius:4px;background:transparent;color:var(--muted);font-size:12px;line-height:1.65;white-space:nowrap;box-shadow:none}.index-chart-hover strong{display:block;color:var(--text);font-size:13px}.index-chart-hover b{color:var(--text)}.index-chart-hover .up-text{color:var(--red)}.index-chart-hover .down-text{color:var(--mint)}
.auth-button:disabled,.login-dialog button:disabled{opacity:.55;cursor:wait}
.overview-main{display:flex;flex-direction:column}.overview-main>.metric-grid{order:1}.overview-main>.market-energy{order:2}.overview-main>.index-chart{order:3}

/* Keep overview cards evenly spaced and center the notice across the viewport. */
.status-card{width:auto!important;margin-right:0!important;min-width:0;overflow:hidden}
.status-copy{min-width:0;overflow:hidden}
.status-copy strong,.status-copy small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.status-copy small{white-space:nowrap}
.status-copy .next-task{display:inline}
.progress-wrap{min-width:0;max-width:100%}
.overview-main>.index-chart{margin-top:0}
.index-chart-hover>i{position:absolute;background:rgba(238,241,244,.45);pointer-events:none}
.index-chart-hover>.index-crosshair-v{top:0;bottom:0;right:auto;width:1px;height:auto}
.index-chart-hover>.index-crosshair-h{left:0;right:0;bottom:auto;width:auto!important;height:1px;display:block!important;background:rgba(238,241,244,.55);z-index:3}
.index-chart-stage canvas{cursor:default}
.index-chart-hover>div{min-width:260px;white-space:normal}
.index-chart-hover>div>strong,.index-chart-hover>div>span{display:block;white-space:nowrap}
@media(min-width:901px){.risk-notice{position:relative;left:-28px;width:calc(100% + 56px);margin-left:0;text-align:center}}
@media(max-width:900px){.risk-notice{width:100%;margin-left:0;text-align:center}}

@media(min-width:901px) and (max-width:1250px){
  .metric-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .status-card{width:100%;margin-right:0;min-width:0}
  .status-copy{min-width:0;overflow:hidden}
  .status-copy strong,.status-copy small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .progress-wrap{width:min(220px,32%)}
}
@media(min-width:621px) and (max-width:900px){
  .metric-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .status-card{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;min-width:0}
  .status-copy{min-width:0;overflow:hidden}
  .status-copy strong,.status-copy small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .progress-wrap{grid-column:1 / -1;width:100%;min-width:0}
}
@media(max-width:900px){
  .status-card{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;padding:14px 16px}
  .status-copy{min-width:0;overflow:hidden}
  .status-copy strong,.status-copy small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .progress-wrap{grid-column:1 / -1;width:100%;min-width:0}
}

.index-chart-stage{height:360px!important}
