/* NewsWatch 3.2 – dashboard styled after the selected professional dark mockup.
   Original views remain available. Explicit light/dark both supported. */
:root[data-theme="dark"] {
  --nw32-bg:#0b101b;--nw32-panel:#131c2b;--nw32-card:#182234;--nw32-line:#29334c;
  --nw32-soft:#1b2741;--nw32-text:#f0f3fc;--nw32-muted:#a7b2cb;--nw32-purple:#a77af9;
  --nw32-purple-bg:#3c255f;--nw32-green:#3de49c;--nw32-red:#ff757c;--nw32-yellow:#f9c45f;
  --bg:#0b101b;--panel:#131c2b;--line:#29334c;--soft:#1b2741;--hover:#202b44;
  --accent:#b994ff;--accent-soft:#32244b;--ink:#f0f3fc;--muted:#a7b2cb;--up:#3de49c;--down:#ff757c;
  color-scheme:dark;
}
:root[data-theme="light"] {
  --nw32-bg:#f2f4fa;--nw32-panel:#ffffff;--nw32-card:#f9faff;--nw32-line:#dfe3ef;
  --nw32-soft:#edf0fc;--nw32-text:#192239;--nw32-muted:#596781;--nw32-purple:#653eb6;
  --nw32-purple-bg:#eee7fc;--nw32-green:#08794d;--nw32-red:#ba3645;--nw32-yellow:#8b5b10;
  --bg:#f2f4fa;--panel:#ffffff;--line:#dfe3ef;--soft:#edf0fc;--hover:#f4f2fc;
  --accent:#653eb6;--accent-soft:#eee7fc;--ink:#192239;--muted:#596781;--up:#08794d;--down:#ba3645;
  color-scheme:light;
}
@media (prefers-color-scheme:dark) {
  :root:not([data-theme]) {
    --nw32-bg:#0b101b;--nw32-panel:#131c2b;--nw32-card:#182234;--nw32-line:#29334c;
    --nw32-soft:#1b2741;--nw32-text:#f0f3fc;--nw32-muted:#a7b2cb;--nw32-purple:#a77af9;
    --nw32-purple-bg:#3c255f;--nw32-green:#3de49c;--nw32-red:#ff757c;--nw32-yellow:#f9c45f;
  }
}
@media (prefers-color-scheme:light) {
  :root:not([data-theme]) {
    --nw32-bg:#f2f4fa;--nw32-panel:#ffffff;--nw32-card:#f9faff;--nw32-line:#dfe3ef;
    --nw32-soft:#edf0fc;--nw32-text:#192239;--nw32-muted:#596781;--nw32-purple:#653eb6;
    --nw32-purple-bg:#eee7fc;--nw32-green:#08794d;--nw32-red:#ba3645;--nw32-yellow:#8b5b10;
  }
}
body.nw31-open {background:var(--nw32-bg);color:var(--nw32-text)}
body.nw31-open .content {padding:0;max-width:none;margin:0;}
body.nw31-open #nw31-workspace {display:block;min-height:100vh}
body.nw31-open #nw31-workspace>.nw32-layout {display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh}
.nw32-layout {min-width:0}
.nw32-sidebar {position:sticky;top:0;height:100vh;overflow-y:auto;background:var(--nw32-panel);border-right:1px solid var(--nw32-line);padding:24px 13px;display:flex;flex-direction:column;gap:26px;z-index:30}
.nw32-brand {display:flex;align-items:center;gap:10px;padding:0 9px;}
.nw32-brand-icon {font-size:27px;line-height:1;color:var(--nw32-purple)}
.nw32-brand-copy {display:grid;gap:0}
.nw32-brand-copy strong {font-size:20px;line-height:1.1;letter-spacing:-.04em}
.nw32-brand-copy .nw32-caption {font-size:10px}
.nw32-rail {display:grid;gap:6px;}
.nw32-nav-item {display:flex;align-items:center;gap:12px;min-height:42px;padding:10px 12px;background:transparent;border:1px solid transparent;border-radius:9px;color:var(--nw32-muted);font-weight:650;text-align:left;cursor:pointer;font-size:13px}
.nw32-nav-item:hover {background:var(--nw32-soft);color:var(--nw32-text)}
.nw32-nav-item.selected {background:var(--nw32-purple-bg);border-color:color-mix(in srgb,var(--nw32-purple) 38%,transparent);color:var(--nw32-text)}
.nw32-nav-icon {font-size:21px;line-height:1;min-width:23px;text-align:center;color:var(--nw32-purple)}
.nw32-sidebar-foot {margin-top:auto;background:var(--nw32-soft);border:1px solid var(--nw32-line);border-radius:12px;padding:15px;display:grid;gap:8px;font-size:13px}
.nw32-main {min-width:0;padding:91px clamp(14px,2vw,34px) 60px}
body.nw31-open .topbar {position:fixed;top:0;left:232px;right:0;min-height:70px;height:70px;z-index:38;background:var(--nw32-panel);border-bottom:1px solid var(--nw32-line);padding:10px 22px;gap:12px}
body.nw31-open .topbar>.brand,body.nw31-open .topbar>.tabs,body.nw31-open .topbar>.tb-status,body.nw31-open #mstrip {display:none!important}
body.nw31-open .topbar .tb-actions {margin-left:auto}
body.nw31-open .topbar .tb-actions>.user {display:flex;align-items:center;gap:6px}
body.nw31-open .topbar .tb-actions #runNow {min-height:35px}
.nw32-theme-label {display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border:1px solid var(--nw32-line);border-radius:8px;background:var(--nw32-soft);color:var(--nw32-text);font-size:13px;white-space:nowrap}
.nw32-theme {background:transparent;border:0;color:inherit;font-size:13px;min-height:25px;cursor:pointer;max-width:90px}
.nw32-theme option {color:var(--nw32-text);background:var(--nw32-panel)}
.nw32-searchbox {display:flex;align-items:center;gap:8px;min-width:180px;max-width:760px;width:100%;flex:1;background:var(--nw32-soft);border:1px solid var(--nw32-line);border-radius:10px;padding:0 13px;color:var(--nw32-purple)}
.nw32-search {background:transparent;color:var(--nw32-text);width:100%;border:0;outline:0;padding:9px 0;min-width:0;font-size:13px}
.nw32-search::placeholder {color:var(--nw32-muted)}
.nw32-menu {display:none}
body.nw31-open .nw31-header,body.nw31-open .nw31-subnav {display:none}
body.nw31-open #nw31-body {display:grid;gap:18px;min-width:0}
body.nw31-open .nw31-workspace .nw31-body {display:grid;gap:20px}
.nw32-page-head {display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.nw32-page-head h1 {font-size:clamp(22px,2.25vw,30px);line-height:1.15;letter-spacing:-.035em;color:var(--nw32-text)}
.nw32-caption,.nw32-muted {font-size:12px;color:var(--nw32-muted);line-height:1.45}
.nw32-muted {padding:12px 2px;margin:0}
.nw32-refresh-meta {display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.nw32-btn,.nw32-action,.nw32-textbutton,.nw32-filter {cursor:pointer;border:1px solid var(--nw32-line);border-radius:8px;color:var(--nw32-text);background:var(--nw32-soft);padding:7px 11px;font-size:12px;font-weight:650}
.nw32-btn:hover,.nw32-action:hover,.nw32-filter:hover {border-color:var(--nw32-purple)}
.nw32-textbutton {border:0;background:transparent;color:var(--nw32-purple)}
.nw32-link {color:var(--nw32-purple);font-size:12px;text-decoration:none}
.nw32-panel {border:1px solid var(--nw32-line);background:var(--nw32-panel);border-radius:13px;padding:17px;min-width:0;box-shadow:0 10px 28px rgba(0,0,0,.05)}
.nw32-panel-title {font-size:16px;font-weight:800;letter-spacing:-.02em;line-height:1.3;margin-bottom:13px;color:var(--nw32-text)}
.nw32-between {display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.nw32-between>.nw32-panel-title {margin-bottom:0}
.nw32-market-grid {display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.nw32-market-card {border:1px solid var(--nw32-line);background:var(--nw32-card);border-radius:10px;padding:12px;min-width:0;overflow:hidden}
.nw32-market-label {display:flex;justify-content:space-between;align-items:center;gap:5px;min-width:0}
.nw32-market-label strong {font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nw32-market-label .nw32-caption {font-size:10px}
.nw32-market-price {display:flex;justify-content:space-between;align-items:center;gap:3px;margin-top:8px}
.nw32-market-price strong {font-size:16px;font-variant-numeric:tabular-nums}
.nw32-spark {width:100%;height:180px;color:var(--nw32-green);margin-top:4px;display:block}
.nw32-spark.falling {color:var(--nw32-red)}
.nw32-spark.small {height:39px}
.nw32-nochart {display:inline-block;color:var(--nw32-muted);font-size:11px;margin-top:12px}
.nw32-stats {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.nw32-stat {display:grid;grid-template-columns:40px 1fr;grid-template-rows:auto auto;align-items:center;gap:1px 10px;padding:14px;background:var(--nw32-panel);border:1px solid var(--nw32-line);border-radius:12px}
.nw32-stat-icon {grid-row:1 / 3;font-size:26px;color:var(--nw32-purple);background:var(--nw32-purple-bg);border-radius:9px;width:39px;height:39px;display:grid;place-items:center}
.nw32-stat-value {font-size:23px;line-height:1.1}
.nw32-stat>span:last-child {font-size:12px;color:var(--nw32-muted)}
.nw32-dash-grid {display:grid;grid-template-columns:minmax(0,1.8fr) minmax(295px,.9fr);align-items:start;gap:16px}
.nw32-dash-left,.nw32-dash-right {display:grid;gap:15px;min-width:0}
.nw32-news {padding:13px}
.nw32-news>.nw32-between {padding:4px 4px 12px}
.nw32-filter-row {display:flex;gap:6px;overflow-x:auto;flex-wrap:wrap;padding:0 4px 9px}
.nw32-filter {white-space:nowrap;background:transparent;color:var(--nw32-muted)}
.nw32-filter.active {background:var(--nw32-purple-bg);border-color:var(--nw32-purple);color:var(--nw32-text)}
.nw32-method {font-size:11px;color:var(--nw32-muted);padding:0 4px;margin:0 0 8px}
.nw32-news-list {display:grid;gap:7px}
.nw32-news-row {display:grid;grid-template-columns:42px minmax(0,1.05fr) minmax(190px,.95fr) 32px;gap:12px;align-items:center;padding:11px;border-radius:9px;border:1px solid var(--nw32-line);background:var(--nw32-card)}
.nw32-stockavatar {width:40px;height:40px;border-radius:9px;display:grid;place-items:center;background:var(--nw32-purple-bg);color:var(--nw32-purple);font-size:13px;font-weight:900}
.nw32-event-info {display:grid;gap:3px;min-width:0}
.nw32-ticker {font-size:11px;color:var(--nw32-purple)}
.nw32-news-title {font-size:13px;line-height:1.35;color:var(--nw32-text);font-weight:800;text-decoration:none;overflow-wrap:anywhere}
.nw32-news-title:hover {text-decoration:underline}
.nw32-news-meta {font-size:11px;color:var(--nw32-muted)}
.nw32-tags {display:flex;gap:4px;flex-wrap:wrap;margin-top:2px}
.nw32-pill {font-size:11px;padding:3px 7px;border:1px solid var(--nw32-line);background:var(--nw32-soft);border-radius:7px;display:inline-flex;gap:4px;align-items:center;white-space:nowrap;font-weight:700}
.nw32-pill.up,.nw32-pill.dir-up {background:color-mix(in srgb,var(--nw32-green) 12%,transparent);color:var(--nw32-green)}
.nw32-pill.down,.nw32-pill.dir-down {background:color-mix(in srgb,var(--nw32-red) 12%,transparent);color:var(--nw32-red)}
.nw32-pill.dir-mixed {color:var(--nw32-yellow)}
.nw32-impact {min-width:0;padding:9px 10px;border-radius:9px;border:1px solid var(--nw32-line);background:var(--nw32-soft)}
.nw32-impact.dir-up {border-color:color-mix(in srgb,var(--nw32-green) 24%,var(--nw32-line));background:color-mix(in srgb,var(--nw32-green) 6%,var(--nw32-panel))}
.nw32-impact.dir-down {border-color:color-mix(in srgb,var(--nw32-red) 24%,var(--nw32-line));background:color-mix(in srgb,var(--nw32-red) 6%,var(--nw32-panel))}
.nw32-impact-head {display:flex;align-items:center;justify-content:space-between;gap:6px;flex-wrap:wrap}
.nw32-impact-reason {font-size:11px;line-height:1.4;margin:6px 0;}
.nw32-impact>.nw32-caption {font-size:10px}
.nw32-save {color:var(--nw32-purple);background:transparent;border:0;font-size:21px;cursor:pointer;align-self:start}
.nw32-news-row.is-read {opacity:.8}
.nw32-heat-row {display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px;border-radius:8px;margin-top:6px;border-left:3px solid var(--nw32-muted);background:var(--nw32-card);cursor:pointer}
.nw32-heat-row.dir-up {border-left-color:var(--nw32-green)}
.nw32-heat-row.dir-down {border-left-color:var(--nw32-red)}
.nw32-heat-row.dir-mixed {border-left-color:var(--nw32-yellow)}
.nw32-heat-label {font-size:12px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nw32-digest-text {font-size:13px;line-height:1.55;margin:0 0 12px}
.nw32-ai .nw32-action,.nw32-alerts .nw32-action {margin-top:10px}
.nw32-alert-item {display:flex;align-items:center;gap:9px;border-bottom:1px solid var(--nw32-line);padding:9px 0}
.nw32-alert-item strong {font-size:12px;line-height:1.4;font-weight:650;display:block}
.nw32-alert-dot {color:var(--nw32-purple)}
.nw32-watch-table {display:grid;margin-top:12px}
.nw32-wrow {display:grid;grid-template-columns:minmax(100px,1.8fr) minmax(80px,1fr) minmax(75px,1fr) minmax(75px,.8fr);align-items:center;gap:8px;border-bottom:1px solid var(--nw32-line);padding:10px 5px;text-decoration:none;color:var(--nw32-text);font-size:12px}
.nw32-wrow:hover {background:var(--nw32-soft)}
.nw32-whead {color:var(--nw32-muted);font-size:11px;font-weight:750}
.nw32-wticker {display:grid;gap:1px;min-width:0}
.nw32-wticker .nw32-caption {overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.nw32-numeric {font-variant-numeric:tabular-nums}
.nw32-chart .nw32-spark {height:190px}
.nw32-panel:focus-within {outline-offset:2px}
body.nw31-open #bottomnav {display:none}
@media (max-width:1480px) {
 .nw32-market-grid {grid-template-columns:repeat(3,minmax(0,1fr))}
 .nw32-dash-grid {grid-template-columns:minmax(0,1.6fr) minmax(270px,1fr)}
 .nw32-news-row {grid-template-columns:40px minmax(0,1fr) minmax(160px,.85fr) 30px;gap:8px}
}
@media (max-width:1150px) {
 .nw32-dash-grid {grid-template-columns:1fr}
 .nw32-dash-right {grid-template-columns:repeat(2,minmax(0,1fr))}
 .nw32-dash-right>.nw32-panel:last-child {grid-column:1/-1}
}
@media (max-width:900px) {
 body.nw31-open #nw31-workspace>.nw32-layout {grid-template-columns:minmax(0,1fr)}
 .nw32-sidebar {position:fixed;left:0;top:0;bottom:0;width:260px;height:auto;transform:translateX(-105%);transition:transform .18s ease;box-shadow:0 10px 40px rgba(0,0,0,.23);z-index:70}
 body.nw32-mobile-menu .nw32-sidebar {transform:translateX(0)}
 body.nw31-open .topbar {left:0;height:auto;min-height:60px;gap:7px;padding:8px 12px}
 .nw32-main {padding:76px 12px 38px}
 .nw32-menu {display:inline-flex;align-items:center;justify-content:center;min-width:38px;min-height:38px;cursor:pointer;background:var(--nw32-soft);border:1px solid var(--nw32-line);color:var(--nw32-text);border-radius:9px}
 .nw32-searchbox {min-width:80px}
 body.nw31-open .topbar .tb-actions .user,body.nw31-open .topbar .tb-actions #runNow {display:none}
 .nw32-news-row {grid-template-columns:38px minmax(0,1fr) 32px}
 .nw32-news-row .nw32-impact {grid-column:2 / 4}
}
@media (max-width:620px) {
 .nw32-market-grid {grid-template-columns:repeat(2,minmax(0,1fr))}
 .nw32-stats {grid-template-columns:repeat(2,minmax(0,1fr))}
 .nw32-dash-right {grid-template-columns:1fr}
 .nw32-dash-right>.nw32-panel:last-child {grid-column:auto}
 .nw32-stat {padding:12px}
 .nw32-panel {padding:12px}
 .nw32-market-card {padding:10px}
 .nw32-page-head h1 {font-size:22px}
 .nw32-theme-label {padding:4px}
 .nw32-searchbox {flex:1 1 140px;width:auto}
 body.nw31-open .topbar .tb-actions {gap:4px}
 body.nw31-open .topbar .langbox {display:none}
 .nw32-wrow {grid-template-columns:minmax(84px,1.25fr) minmax(58px,1fr) minmax(72px,1fr) 42px;gap:5px}
 .nw32-watch .nw32-whead {font-size:10px}
}
body:not(.nw31-open) .nw32-searchbox,body:not(.nw31-open) .nw32-menu {display:none!important}

/* NewsWatch 3.3: AI impact and token metering */
.nw33-budget {display:grid;gap:10px;}
.nw33-budget .nw32-panel-title {margin-bottom:0;}
.nw33-budget-metric {font-size:19px;font-weight:800;letter-spacing:-.025em;color:var(--nw32-text);margin:2px 0;}
.nw33-budget progress {width:100%;height:10px;accent-color:var(--nw32-purple);}
.nw33-budget button:disabled {opacity:.4;cursor:not-allowed;}
.nw33-ai-ready {border-left:3px solid var(--nw32-purple);}
.nw33-ai-pending {border-style:dashed;}
.nw33-waiting {color:var(--nw32-muted);}
.nw33-counter {font-size:11px;line-height:1.45;color:var(--nw32-muted);margin:4px 0;}
