/* ============================================================
   AlgoWave — "graphite terminal"
   A calm, information-dense dark research surface.
   Display: Fraunces (editorial serif) · Body: IBM Plex Sans · Mono: IBM Plex Mono
   ============================================================ */

:root {
    --aw-bg:       #0d1014;
    --aw-bg-soft:  #11151b;
    --aw-panel:    #141a22;
    --aw-panel-2:  #1a212b;
    --aw-line:     #232c38;
    --aw-line-2:   #2e3a48;
    --aw-ink:      #e9e7df;   /* warm paper */
    --aw-muted:    #8a97a6;
    --aw-faint:    #5d6b7a;
    --aw-accent:   #3fe0a8;   /* signal green */
    --aw-accent-2: #1f7d63;

    --sev1: #6b7a8c; --sev2: #4c9bf5; --sev3: #f2c14e; --sev4: #f0883c; --sev5: #ef4d6b;

    --aw-sans: 'IBM Plex Sans', system-ui, sans-serif;
    --aw-mono: 'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;
    --aw-display: 'Fraunces', Georgia, serif;
}

/* ---- Light theme: warm-paper surface, ink-on-cream. Same editorial palette inverted.
   Applied by theme-init.js (data-theme="light") before paint, toggled in the nav. ---- */
html[data-theme="light"] {
    --aw-bg:       #f5f2ec;
    --aw-bg-soft:  #efeae0;
    --aw-panel:    #ffffff;
    --aw-panel-2:  #f3efe7;
    --aw-line:     #e4ded1;
    --aw-line-2:   #d3ccbd;
    --aw-ink:      #1c2530;
    --aw-muted:    #5c6a79;
    --aw-faint:    #8a97a6;
    --aw-accent:   #138a63;   /* darker green so it stays legible on white */
    --aw-accent-2: #0e6e4f;

    --sev1: #6b7a8c; --sev2: #2f7fdc; --sev3: #b9881a; --sev4: #d9701f; --sev5: #d8324f;
}
/* Overrides for the few colors hardcoded for the dark surface. */
html[data-theme="light"] body {
    background-image:
        radial-gradient(900px 500px at 12% -8%, rgba(19, 138, 99, 0.06), transparent 60%),
        radial-gradient(1100px 700px at 110% 0%, rgba(47, 127, 220, 0.05), transparent 55%);
}
html[data-theme="light"] .aw-topbar { background: rgba(245, 242, 236, .9); }
html[data-theme="light"] .aw-nav-link:hover { background: rgba(0, 0, 0, .05); }
html[data-theme="light"] ::selection { background: rgba(19, 138, 99, .22); color: #08251b; }
html[data-theme="light"] .btn-primary { color: #fff; }
html[data-theme="light"] .btn-primary:hover { color: #fff; background-color: #16a074; border-color: #16a074; }
html[data-theme="light"] .btn-primary:disabled { color: #eafff7; }

html, body {
    font-family: var(--aw-sans);
    background-color: var(--aw-bg);
    color: var(--aw-ink);
    -webkit-font-smoothing: antialiased;
}

/* Quiet atmosphere: a single soft accent bloom + faint vignette. */
body {
    background-image:
        radial-gradient(900px 500px at 12% -8%, rgba(63, 224, 168, 0.07), transparent 60%),
        radial-gradient(1100px 700px at 110% 0%, rgba(76, 155, 245, 0.05), transparent 55%);
    background-attachment: fixed;
}

a, .btn-link { color: var(--aw-accent); text-decoration: none; }
a:hover { color: #6cf0c0; }

h1, h2, h3 { font-family: var(--aw-display); font-weight: 600; letter-spacing: -.01em; }

.content { padding-top: 1.1rem; }
h1:focus { outline: none; }

/* ---- App shell: horizontal top nav + centered content ---- */
.aw-shell { min-height: 100vh; }
.aw-topbar {
    position: sticky; top: 0; z-index: 30;
    background: rgba(11, 14, 18, .92); backdrop-filter: blur(8px);
    border-bottom: 1px solid var(--aw-line);
}
.aw-nav {
    display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap;
    max-width: 1180px; margin: 0 auto; padding: .55rem 1.5rem;
}
.aw-brand {
    font-family: var(--aw-display); font-weight: 600; font-size: 1.3rem;
    color: var(--aw-ink); text-decoration: none; white-space: nowrap;
}
.aw-brand:hover { color: var(--aw-ink); }
.aw-nav-links { display: flex; gap: .35rem; flex-wrap: wrap; }
/* text-width links — no full-width invisible hit areas */
.aw-nav-link {
    padding: .35rem .85rem; border-radius: 8px; color: var(--aw-muted);
    text-decoration: none; font-size: .9rem; font-weight: 500; line-height: 1.4;
    white-space: nowrap; transition: color .12s, background .12s;
}
.aw-nav-link:hover { color: var(--aw-ink); background: rgba(255, 255, 255, .05); }
.aw-nav-link.active { color: var(--aw-accent); background: rgba(63, 224, 168, .12); }
.aw-main { max-width: 1180px; margin: 0 auto; padding: 0 1.5rem 3rem; }
.aw-main .content { padding-top: 1.25rem; }

::selection { background: rgba(63, 224, 168, 0.25); color: #fff; }

/* Scrollbars */
* { scrollbar-width: thin; scrollbar-color: var(--aw-line-2) transparent; }
*::-webkit-scrollbar { width: 10px; height: 10px; }
*::-webkit-scrollbar-thumb { background: var(--aw-line-2); border-radius: 6px; }

/* --- Buttons (override Bootstrap for the dark surface) --- */
.btn-primary {
    color: #06231a; background-color: var(--aw-accent); border-color: var(--aw-accent);
    font-weight: 600;
}
.btn-primary:hover { color: #06231a; background-color: #58ecbb; border-color: #58ecbb; }
.btn-primary:disabled { background-color: var(--aw-accent-2); border-color: var(--aw-accent-2); }

.btn-outline-secondary { color: var(--aw-ink); border-color: var(--aw-line-2); }
.btn-outline-secondary:hover { background: var(--aw-panel-2); color: var(--aw-ink); border-color: var(--aw-faint); }
.btn-outline-primary { color: var(--aw-accent); border-color: var(--aw-accent-2); }
.btn-outline-primary:hover { background: rgba(63,224,168,.12); color: var(--aw-accent); border-color: var(--aw-accent); }
.btn-outline-success { color: var(--aw-accent); border-color: var(--aw-accent-2); }

.form-control {
    background: var(--aw-panel); border: 1px solid var(--aw-line-2); color: var(--aw-ink);
    border-radius: 8px;
}
.form-control:focus {
    background: var(--aw-panel); color: var(--aw-ink);
    border-color: var(--aw-accent-2); box-shadow: 0 0 0 .18rem rgba(63,224,168,.16);
}
.form-control::placeholder { color: var(--aw-faint); }

.btn:focus, .btn:active:focus, .form-control:focus, .form-check-input:focus {
    box-shadow: 0 0 0 .18rem rgba(63,224,168,.18);
}

/* ---------------- AlgoWave components ---------------- */
.brand-tick { color: var(--aw-accent); font-size: .7rem; vertical-align: middle; }

.aw-header {
    display: flex; justify-content: space-between; align-items: flex-start;
    gap: 1rem; flex-wrap: wrap; margin-bottom: .25rem;
    border-bottom: 1px solid var(--aw-line); padding-bottom: 1rem;
}
.aw-header h1 { margin: 0; font-size: 2.1rem; color: var(--aw-ink); line-height: 1.05; }
.aw-name { font-family: var(--aw-sans); font-weight: 400; color: var(--aw-muted); font-size: 1.2rem; }
.aw-sub { color: var(--aw-muted); margin: .3rem 0 0; font-size: .92rem; }
.aw-actions { display: flex; gap: .5rem; }

.aw-banner {
    background: linear-gradient(180deg, rgba(240,136,60,.10), rgba(240,136,60,.04));
    border: 1px solid rgba(240,136,60,.30); color: #f3b483;
    padding: .65rem .9rem; border-radius: 10px; margin: 1rem 0; font-size: .88rem;
}
.aw-banner code, .aw-detail code { font-family: var(--aw-mono); color: var(--aw-accent); }
.aw-status {
    background: rgba(63,224,168,.08); border: 1px solid rgba(63,224,168,.22); color: #9ff0d2;
    padding: .55rem .85rem; border-radius: 10px; margin: .8rem 0; font-size: .88rem;
}
.aw-empty { color: var(--aw-muted); padding: .6rem 0; }

.aw-stats { display: flex; gap: .6rem; margin: 1.1rem 0 1.3rem; flex-wrap: wrap; }
.aw-stat {
    display: flex; flex-direction: column; gap: .1rem; min-width: 104px;
    padding: .7rem .95rem; border: 1px solid var(--aw-line); border-radius: 12px;
    background: linear-gradient(180deg, var(--aw-panel), var(--aw-bg-soft));
}
.aw-stat-num { font-family: var(--aw-mono); font-size: 1.5rem; font-weight: 600; color: var(--aw-ink); }
.aw-stat span:last-child { font-size: .68rem; color: var(--aw-faint); text-transform: uppercase; letter-spacing: .12em; }

/* Feed cards — severity encoded on the left rail, calm staggered reveal on load. */
.aw-card {
    position: relative; border: 1px solid var(--aw-line); border-left: 3px solid var(--sev1);
    border-radius: 12px; padding: .8rem 1rem .85rem; margin-bottom: .7rem;
    background: linear-gradient(180deg, var(--aw-panel), var(--aw-bg-soft));
    animation: awRise .45s cubic-bezier(.2,.7,.2,1) both;
}
.aw-card:hover { border-color: var(--aw-line-2); }
.aw-card.sev-2 { border-left-color: var(--sev2); }
.aw-card.sev-3 { border-left-color: var(--sev3); }
.aw-card.sev-4 { border-left-color: var(--sev4); }
.aw-card.sev-5 { border-left-color: var(--sev5); box-shadow: 0 0 0 1px rgba(239,77,107,.18), 0 8px 30px -18px rgba(239,77,107,.5); }

.aw-card:nth-child(1) { animation-delay: .02s; }
.aw-card:nth-child(2) { animation-delay: .06s; }
.aw-card:nth-child(3) { animation-delay: .10s; }
.aw-card:nth-child(4) { animation-delay: .14s; }
.aw-card:nth-child(5) { animation-delay: .18s; }
.aw-card:nth-child(6) { animation-delay: .22s; }
@keyframes awRise { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

.aw-card-top { display: flex; align-items: center; gap: .55rem; flex-wrap: wrap; font-size: .78rem; }
.aw-sev {
    display: inline-flex; align-items: center; justify-content: center;
    width: 22px; height: 22px; border-radius: 6px; font-family: var(--aw-mono);
    font-weight: 600; font-size: .82rem; color: #06121b; background: var(--sev1);
}
.sev-2 .aw-sev { background: var(--sev2); } .sev-3 .aw-sev { background: var(--sev3); }
.sev-4 .aw-sev { background: var(--sev4); } .sev-5 .aw-sev { background: var(--sev5); color: #fff; }

.aw-ticker, .aw-ticker-sm {
    font-family: var(--aw-mono); font-weight: 600; letter-spacing: .02em; color: var(--aw-ink);
}
.aw-ticker:hover, .aw-ticker-sm:hover { color: var(--aw-accent); }
.aw-type { color: var(--aw-muted); }
a.aw-form-link { text-decoration: none; }
a.aw-form-link:hover { color: var(--aw-accent); border-color: var(--aw-accent-2); background: var(--aw-panel); }
.aw-form {
    font-family: var(--aw-mono); background: var(--aw-panel-2); border: 1px solid var(--aw-line);
    border-radius: 5px; padding: .02rem .4rem; font-size: .72rem; color: #b9c4d0;
}
.aw-date { margin-left: auto; color: var(--aw-faint); font-family: var(--aw-mono); font-size: .72rem; }
.aw-headline { font-weight: 600; color: var(--aw-ink); margin: .45rem 0 .3rem; font-size: 1.02rem; }
.aw-detail { color: #c6cdd6; line-height: 1.55; font-size: .92rem; }
.aw-detail > :first-child { margin-top: 0; }
.aw-detail > :last-child { margin-bottom: 0; }
.aw-detail p { margin: .4rem 0; }
.aw-detail ul, .aw-detail ol { margin: .3rem 0 .45rem 1.15rem; padding: 0; }
.aw-detail li { margin: .15rem 0; }
.aw-detail li::marker { color: var(--aw-accent); }
.aw-detail strong { color: var(--aw-ink); font-weight: 600; }
.aw-detail em { color: #cdd4dc; }
.aw-detail h1, .aw-detail h2, .aw-detail h3, .aw-detail h4 {
    font-family: var(--aw-display); color: var(--aw-ink); font-size: 1rem; margin: .5rem 0 .3rem;
}
.aw-tags { margin-top: .45rem; font-family: var(--aw-mono); font-size: .74rem; color: var(--aw-accent); }
.aw-source { margin-top: .4rem; font-size: .7rem; color: var(--aw-faint); letter-spacing: .02em; }

.aw-add { display: flex; gap: .5rem; margin: .9rem 0 1.1rem; max-width: 760px; }
.aw-add .form-control { flex: 1; }
.aw-add textarea { resize: vertical; }

.aw-table { width: 100%; border-collapse: collapse; }
.aw-table th, .aw-table td { text-align: left; padding: .55rem .65rem; border-bottom: 1px solid var(--aw-line); font-size: .9rem; }
.aw-table th { color: var(--aw-faint); font-weight: 600; text-transform: uppercase; font-size: .68rem; letter-spacing: .1em; }
.aw-table td.num, .aw-table th.num { text-align: right; font-family: var(--aw-mono); }
.aw-table tr.inactive { opacity: .45; }
.aw-table tbody tr:hover { background: rgba(255,255,255,.02); }
.aw-row-actions { display: flex; gap: .35rem; justify-content: flex-end; }

.aw-section { margin-top: 1.9rem; }
.aw-section h2 { font-size: 1.2rem; color: var(--aw-ink); margin-bottom: .15rem; }
.aw-thesis {
    border-left: 2px solid var(--aw-accent-2); padding: .4rem .8rem; margin-bottom: .5rem;
    background: var(--aw-bg-soft); border-radius: 0 8px 8px 0;
}

/* Thesis-break alerts — the discipline layer */
.aw-breaks { display: flex; flex-direction: column; gap: .6rem; margin: .25rem 0 1rem; }
.aw-break {
    border: 1px solid rgba(239,77,107,.28); border-left: 3px solid var(--sev4);
    background: rgba(239,77,107,.06); border-radius: 0 10px 10px 0; padding: .6rem .85rem;
}
.aw-break.sev-5 { border-left-color: var(--sev5); box-shadow: 0 0 0 1px rgba(239,77,107,.18); }
.aw-break.sev-3 { border-left-color: var(--sev3); }
.aw-break-head { display: flex; align-items: center; gap: .5rem; margin-bottom: .35rem; }
.aw-break-head strong { flex: 1; color: #f3dde1; }
.aw-break-head .aw-date { color: var(--aw-muted); font-size: .8rem; }

/* Break → finding evidence trail */
.aw-break-evidence { display: flex; align-items: center; flex-wrap: wrap; gap: .45rem; margin-top: .6rem; }
.aw-break-ev-label { font-size: .68rem; text-transform: uppercase; letter-spacing: .06em; color: var(--aw-muted); }
.aw-ev-chip { display: inline-flex; align-items: center; gap: .4rem; background: var(--aw-panel); border: 1px solid var(--aw-line-2);
    border-radius: 999px; padding: .2rem .6rem; cursor: pointer; color: var(--aw-ink); font-size: .76rem; text-align: left; }
.aw-ev-chip:hover { border-color: var(--aw-accent); }
.aw-ev-type { color: var(--aw-accent); font-weight: 600; }
.aw-ev-head { color: var(--aw-muted); }
.aw-ev-src { color: var(--aw-faint); font-family: var(--aw-mono); font-size: .68rem; }
.aw-ev-src:hover { color: var(--aw-accent); }

.aw-card-hl { outline: 2px solid var(--aw-accent); outline-offset: 2px; animation: aw-hl-fade 2.4s ease-out; }
@keyframes aw-hl-fade { 0% { background: rgba(63,224,168,.12); } 100% { background: transparent; } }

.aw-tab-alert { background: rgba(239,77,107,.18); color: #ff9bab; font-size: .68rem; padding: .05rem .4rem; border-radius: 6px; margin-left: .3rem; }

/* Dashboard alert strip — the elevated discipline layer */
.aw-alertstrip { border: 1px solid rgba(239,77,107,.3); border-left: 3px solid var(--sev5);
    background: rgba(239,77,107,.06); border-radius: 12px; padding: .75rem 1rem; margin: 1.1rem 0; }
.aw-alertstrip-head { display: flex; align-items: center; gap: .5rem; margin-bottom: .5rem; }
.aw-alertstrip-icon { color: var(--sev5); }
.aw-alertstrip-head strong { color: #f3dde1; }
.aw-alertstrip-head .aw-muted { font-size: .8rem; }
.aw-alertstrip-items { display: flex; flex-direction: column; gap: .35rem; }
.aw-alert-item { display: flex; align-items: center; gap: .6rem; padding: .35rem .5rem; border-radius: 8px;
    text-decoration: none; color: inherit; border-left: 2px solid var(--sev4); background: var(--aw-bg-soft); }
.aw-alert-item.sev-5 { border-left-color: var(--sev5); }
.aw-alert-item:hover { background: var(--aw-panel-2); }
.aw-alert-head { flex: 1; color: var(--aw-ink); font-size: .88rem; }

/* Ranking page — the decision layer */
.aw-rank-head, .aw-rank-row {
    display: grid;
    grid-template-columns: 1.8rem minmax(110px, 1.4fr) 5rem 2.8rem 3rem 3rem 3rem 3rem 4rem 5.2rem 1.5rem;
    gap: .55rem; align-items: center; padding: .5rem .65rem;
}
.aw-rank-col-c { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; text-align: center; }
.aw-rank-col-price { display: flex; flex-direction: column; line-height: 1.15; }
.aw-px { font-family: var(--aw-mono); font-size: .84rem; color: var(--aw-text); }
.aw-px-fv { font-size: .68rem; }
.aw-px-fv.pos { color: #4ade80; } .aw-px-fv.neg { color: var(--sev5); }
.aw-comp { display: flex; flex-direction: column; align-items: center; gap: 3px; width: 100%; }
.aw-comp-num { font-family: var(--aw-mono); font-size: .78rem; font-weight: 600; line-height: 1; }
.aw-comp-num.tier-3 { color: #4ade80; } .aw-comp-num.tier-2 { color: var(--sev3); }
.aw-comp-num.tier-1 { color: var(--sev4); } .aw-comp-num.tier-0 { color: var(--sev5); }
.aw-rank-item { border-bottom: 1px solid var(--aw-line); }
.aw-rank-item .aw-rank-row { border-bottom: none; }
.aw-rank-row.open { background: var(--aw-bg-soft); }
.aw-why-btn { background: none; border: none; color: var(--aw-muted); cursor: pointer; font-size: .9rem; padding: .1rem .3rem; }
.aw-why-btn:hover { color: var(--aw-text); }

.aw-rank-detail { padding: .5rem .9rem .85rem 3rem; background: var(--aw-bg-soft); border-radius: 0 0 8px 8px; }
.aw-why-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: .35rem .9rem; }
.aw-why-row { display: flex; gap: .5rem; font-size: .82rem; }
.aw-why-k { min-width: 7.5rem; color: var(--aw-muted); }
.aw-why-k b { color: var(--aw-text); font-family: var(--aw-mono); }
.aw-why-v { color: #c6cdd6; }
.aw-why-note { margin-top: .5rem; font-size: .78rem; color: var(--sev3); }
.aw-why-asof { margin-top: .35rem; font-size: .75rem; }
.aw-rank-head { color: var(--aw-muted); font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; border-bottom: 1px solid var(--aw-line); }
.aw-rank-row {
    text-decoration: none; color: inherit; border-bottom: 1px solid var(--aw-line);
    border-radius: 8px; transition: background .12s;
}
.aw-rank-row:hover { background: var(--aw-bg-soft); }
.aw-rank-col-rank { color: var(--aw-muted); font-variant-numeric: tabular-nums; }
.aw-rank-ticker { font-family: var(--aw-mono); font-weight: 600; color: var(--aw-text); }
.aw-rank-sector { display: block; color: var(--aw-muted); font-size: .72rem; margin-top: .1rem; }
.aw-score-num { font-family: var(--aw-mono); font-size: 1.15rem; font-weight: 700; }
.aw-score-num.tier-3 { color: #4ade80; } .aw-score-num.tier-2 { color: var(--sev3); }
.aw-score-num.tier-1 { color: var(--sev4); } .aw-score-num.tier-0 { color: var(--sev5); }

.aw-mbar { width: 100%; height: 5px; background: rgba(255,255,255,.10); border-radius: 3px; overflow: hidden; }
.aw-mbar-fill { display: block; height: 100%; border-radius: 3px; }
.aw-mbar-fill.tier-3 { background: #4ade80; } .aw-mbar-fill.tier-2 { background: var(--sev3); }
.aw-mbar-fill.tier-1 { background: var(--sev4); } .aw-mbar-fill.tier-0 { background: var(--sev5); }

.aw-conv { color: #f2c14e; letter-spacing: 1px; font-size: .85rem; }
.aw-conv-dim { color: var(--aw-line); }

.aw-pill { font-size: .62rem; text-transform: uppercase; letter-spacing: .04em; padding: .05rem .35rem; border-radius: 6px; margin-left: .35rem; }
.aw-pill.held { background: rgba(76,155,245,.18); color: #8cc2ff; }
.aw-pill.broke { background: rgba(239,77,107,.18); color: #ff9bab; }

.aw-action { font-size: .74rem; font-weight: 600; padding: .15rem .5rem; border-radius: 6px; white-space: nowrap; }
.aw-action.act-good { background: rgba(74,222,128,.16); color: #6ee7a0; }
.aw-action.act-warn { background: rgba(239,77,107,.16); color: #ff9bab; }
.aw-action.act-bad { background: rgba(240,136,60,.16); color: #f6ab6e; }
.aw-action.act-neutral { background: var(--aw-bg-soft); color: var(--aw-muted); }
.aw-rank-foot { margin-top: 1rem; font-size: .78rem; }

/* Position / stance editor on the company page */
.aw-position { display: flex; align-items: center; gap: .9rem; flex-wrap: wrap; margin: .25rem 0 1rem; padding: .55rem .75rem; background: var(--aw-bg-soft); border: 1px solid var(--aw-line); border-radius: 10px; }
.aw-position label { display: flex; align-items: center; gap: .35rem; font-size: .82rem; color: var(--aw-muted); }
.aw-position select { background: var(--aw-bg); color: var(--aw-text); border: 1px solid var(--aw-line); border-radius: 6px; padding: .15rem .4rem; }
.aw-position .aw-wt { width: 5rem; display: inline-block; }

/* Stop button + live ingestion activity log */
.btn-outline-danger { color: #ff9bab; border-color: rgba(239,77,107,.45); }
.btn-outline-danger:hover { background: rgba(239,77,107,.14); color: #ffb3bf; border-color: #ef4d6b; }

.aw-log {
    border: 1px solid var(--aw-line); border-radius: 12px; background: var(--aw-bg-soft);
    margin: 1rem 0 1.25rem; overflow: hidden;
}
.aw-log-head {
    display: flex; align-items: center; gap: .5rem; padding: .5rem .85rem;
    border-bottom: 1px solid var(--aw-line); font-size: .85rem;
}
.aw-log-head .aw-muted { color: var(--aw-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.aw-log-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--aw-faint); flex: none; }
.aw-log.live .aw-log-dot { background: var(--aw-accent); animation: awPulse 1.4s infinite; }
@keyframes awPulse {
    0% { box-shadow: 0 0 0 0 rgba(63,224,168,.5); }
    70% { box-shadow: 0 0 0 7px rgba(63,224,168,0); }
    100% { box-shadow: 0 0 0 0 rgba(63,224,168,0); }
}
.aw-log-body { max-height: 220px; overflow-y: auto; padding: .4rem .5rem; font-family: var(--aw-mono); font-size: .78rem; }
.aw-log-line { display: flex; gap: .6rem; padding: .12rem .35rem; color: #c6cdd6; }
.aw-log-time { color: var(--aw-faint); flex: none; }
.aw-log-line.lvl-warn { color: #f3c879; }
.aw-log-line.lvl-error { color: #ff9bab; }

/* Layer 3 — brief panel */
.aw-brief {
    border: 1px solid var(--aw-line); border-radius: 14px; margin: 1.25rem 0;
    background: linear-gradient(180deg, var(--aw-panel-2), var(--aw-bg-soft)); padding: 1rem 1.15rem 1.15rem;
}
.aw-brief-head { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; }
.aw-brief-head h2 { margin: 0; }
.aw-brief-meta { font-size: .74rem; }
.aw-brief-toggle { display: flex; align-items: center; gap: .55rem; cursor: pointer; flex-wrap: wrap; }
.aw-brief-toggle:hover h2 { color: var(--aw-accent); }
.aw-chevron { color: var(--aw-muted); font-size: .8rem; width: .9rem; }
.aw-brief-collapsed { margin: .5rem 0 0; font-size: .85rem; cursor: pointer; }
.aw-brief-collapsed:hover { color: var(--aw-ink); }
.aw-brief-body {
    margin-top: .8rem; line-height: 1.6; color: var(--aw-ink); font-size: .95rem;
    border-left: 2px solid var(--aw-accent-2); padding-left: 1rem;
}
.aw-brief-body > :first-child { margin-top: 0; }
.aw-brief-body h1, .aw-brief-body h2, .aw-brief-body h3, .aw-brief-body h4 {
    font-family: var(--aw-display); color: var(--aw-ink); line-height: 1.2; margin: 1rem 0 .4rem;
}
.aw-brief-body h1 { font-size: 1.2rem; }
.aw-brief-body h2 { font-size: 1.06rem; }
.aw-brief-body h3, .aw-brief-body h4 { font-size: .96rem; }
.aw-brief-body p { margin: .45rem 0; }
.aw-brief-body ul, .aw-brief-body ol { margin: .35rem 0 .6rem 1.15rem; padding: 0; }
.aw-brief-body li { margin: .25rem 0; }
.aw-brief-body li::marker { color: var(--aw-accent); }
.aw-brief-body strong { color: var(--aw-ink); font-weight: 600; }
.aw-brief-body em { color: var(--aw-ink); }
.aw-brief-body code { font-family: var(--aw-mono); color: var(--aw-accent); font-size: .88em; }
.aw-brief-body a { color: var(--aw-accent); }
.aw-brief-body hr { border: none; border-top: 1px solid var(--aw-line); margin: .7rem 0; }
.aw-brief-body blockquote {
    margin: .5rem 0; padding: .1rem .8rem; border-left: 2px solid var(--aw-line-2); color: var(--aw-muted);
}
.aw-brief-body table { border-collapse: collapse; margin: .5rem 0; font-size: .88rem; }
.aw-brief-body th, .aw-brief-body td { border: 1px solid var(--aw-line); padding: .3rem .55rem; }

/* compact "top signals" rows on the dashboard */
.aw-signals { display: flex; flex-direction: column; gap: 1px; margin-top: .5rem; }
.aw-signal {
    display: flex; align-items: center; gap: .6rem; padding: .5rem .65rem; text-decoration: none;
    border: 1px solid var(--aw-line); border-left: 3px solid var(--sev1); border-radius: 9px;
    background: var(--aw-panel); transition: border-color .12s, background .12s;
}
.aw-signal:hover { border-color: var(--aw-line-2); background: var(--aw-panel-2); }
.aw-signal.sev-2 { border-left-color: var(--sev2); }
.aw-signal.sev-3 { border-left-color: var(--sev3); }
.aw-signal.sev-4 { border-left-color: var(--sev4); }
.aw-signal.sev-5 { border-left-color: var(--sev5); }
.aw-signal .aw-ticker-sm { flex: none; min-width: 52px; }
.aw-signal-head { color: var(--aw-ink); font-size: .9rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex: 1; }
.aw-signal .aw-date { flex: none; }

/* Toasts / snackbar */
.aw-toasts {
    position: fixed; right: 1rem; bottom: 1rem; z-index: 1000;
    display: flex; flex-direction: column; gap: .5rem; max-width: min(380px, 92vw);
}
.aw-toast {
    display: flex; align-items: flex-start; gap: .6rem; padding: .6rem .8rem; border-radius: 10px;
    border: 1px solid var(--aw-line-2); border-left: 3px solid var(--aw-faint);
    background: var(--aw-panel-2); color: var(--aw-ink); font-size: .88rem;
    box-shadow: 0 12px 32px -14px rgba(0, 0, 0, .7); animation: awToastIn .25s cubic-bezier(.2, .7, .2, 1);
}
.aw-toast.lvl-success { border-left-color: var(--aw-accent); }
.aw-toast.lvl-info { border-left-color: var(--sev2); }
.aw-toast.lvl-warning { border-left-color: var(--sev3); }
.aw-toast.lvl-error { border-left-color: var(--sev5); }
.aw-toast-msg { flex: 1; line-height: 1.45; }
.aw-toast-x { background: transparent; border: none; color: var(--aw-faint); cursor: pointer; font-size: .85rem; line-height: 1; padding: .1rem .2rem; }
.aw-toast-x:hover { color: var(--aw-ink); }
@keyframes awToastIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* ErrorBoundary inline message */
.aw-errorbox {
    border: 1px solid rgba(239, 77, 107, .4); background: rgba(239, 77, 107, .08);
    color: #ffc2cc; border-radius: 12px; padding: 1rem 1.15rem; margin: 1rem 0;
}
.aw-errorbox strong { color: #fff; display: block; margin-bottom: .3rem; }
.aw-errorbox p { color: #e7b0ba; font-size: .9rem; margin: .2rem 0 .7rem; word-break: break-word; }

/* Framework connection bar — dark, and only shown by Blazor on a real circuit error */
#blazor-error-ui { background: #2a1116 !important; color: #ffb3bf !important; border-top: 1px solid #5a2230; }
#blazor-error-ui .reload { color: var(--aw-accent); }
#blazor-error-ui .dismiss { color: #ffb3bf; }

/* Reconnect overlay — hidden unless Blazor is actively reconnecting; auto-hides on success */
#components-reconnect-modal { display: none; }
#components-reconnect-modal.components-reconnect-show,
#components-reconnect-modal.components-reconnect-failed,
#components-reconnect-modal.components-reconnect-rejected {
    display: flex; position: fixed; inset: 0; z-index: 1100; align-items: center; justify-content: center;
    background: rgba(8, 10, 13, .55); backdrop-filter: blur(2px);
}
.aw-reconnect-card {
    display: flex; align-items: center; gap: .7rem; padding: .8rem 1.1rem; font-size: .9rem;
    background: var(--aw-panel-2); border: 1px solid var(--aw-line-2); border-radius: 12px;
    color: var(--aw-ink); box-shadow: 0 16px 40px -16px rgba(0, 0, 0, .7);
}
.aw-reconnect-spinner {
    width: 16px; height: 16px; border-radius: 50%;
    border: 2px solid var(--aw-line-2); border-top-color: var(--aw-accent); animation: awSpin .8s linear infinite;
}
@keyframes awSpin { to { transform: rotate(360deg); } }
.aw-reconnect-reload { color: var(--aw-accent); margin-left: .3rem; }
#components-reconnect-modal.components-reconnect-show .aw-reconnect-reload { display: none; }

/* Assistant — Explain + Ask */
.aw-explain-btn {
    margin-left: .4rem; background: transparent; border: 1px solid var(--aw-line-2); color: var(--aw-muted);
    border-radius: 5px; padding: .04rem .45rem; font-size: .72rem; cursor: pointer; line-height: 1.5;
}
.aw-explain-btn:hover:not(:disabled) { color: var(--aw-accent); border-color: var(--aw-accent); }
.aw-explain-btn:disabled { opacity: .6; cursor: default; }
.aw-explain {
    margin-top: .6rem; padding: .6rem .85rem; border-radius: 9px; font-size: .9rem; line-height: 1.55;
    background: rgba(63, 224, 168, .06); border: 1px solid rgba(63, 224, 168, .18); color: #d4ded8;
}
.aw-explain > :first-child { margin-top: 0; }
.aw-explain p { margin: .35rem 0; }
.aw-explain ul, .aw-explain ol { margin: .3rem 0 .4rem 1.1rem; padding: 0; }
.aw-explain li::marker { color: var(--aw-accent); }
.aw-explain strong { color: var(--aw-ink); }
.aw-explain code { font-family: var(--aw-mono); color: var(--aw-accent); }

.aw-chat { display: flex; flex-direction: column; gap: .5rem; margin: .6rem 0 .9rem; }
.aw-bubble { padding: .55rem .8rem; border-radius: 12px; max-width: 90%; font-size: .92rem; line-height: 1.55; }
.aw-bubble.user {
    align-self: flex-end; background: var(--aw-panel-2); border: 1px solid var(--aw-line-2);
    color: var(--aw-ink); border-bottom-right-radius: 4px;
}
.aw-bubble.assistant {
    align-self: flex-start; background: var(--aw-bg-soft); border: 1px solid var(--aw-line);
    border-left: 2px solid var(--aw-accent-2); color: #d4ded8; border-bottom-left-radius: 4px;
}
.aw-bubble.assistant > :first-child { margin-top: 0; }
.aw-bubble.assistant p { margin: .35rem 0; }
.aw-bubble.assistant ul, .aw-bubble.assistant ol { margin: .3rem 0 .4rem 1.1rem; padding: 0; }
.aw-bubble.assistant strong { color: var(--aw-ink); }
.aw-bubble.assistant code { font-family: var(--aw-mono); color: var(--aw-accent); }

.aw-explain-loading { display: flex; align-items: center; gap: .5rem; color: var(--aw-muted); font-style: italic; }
.aw-explain-loading .aw-reconnect-spinner { width: 14px; height: 14px; }

/* Company deep-dive tabs */
.aw-tabs {
    display: flex; gap: .25rem; flex-wrap: wrap; margin: 1.1rem 0 .25rem;
    border-bottom: 1px solid var(--aw-line);
}
.aw-tab {
    background: transparent; border: none; border-bottom: 2px solid transparent;
    color: var(--aw-muted); font-size: .92rem; font-weight: 600; cursor: pointer;
    padding: .5rem .85rem; margin-bottom: -1px; display: inline-flex; align-items: center; gap: .4rem;
}
.aw-tab:hover { color: var(--aw-ink); }
.aw-tab.active { color: var(--aw-accent); border-bottom-color: var(--aw-accent); }
.aw-tab-n {
    font-family: var(--aw-mono); font-size: .72rem; color: var(--aw-faint);
    background: var(--aw-panel-2); border-radius: 999px; padding: .02rem .42rem;
}
.aw-tab.active .aw-tab-n { color: var(--aw-accent); }
.aw-tabpanel { margin-top: 1rem; }

/* ---- Confirm modal ---- */
.aw-modal-backdrop {
    position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center;
    background: rgba(6, 8, 12, .62); backdrop-filter: blur(2px); padding: 1rem;
}
.aw-modal {
    width: min(460px, 92vw); background: var(--aw-panel); border: 1px solid var(--aw-line-2);
    border-radius: 12px; padding: 1.4rem 1.5rem; box-shadow: 0 24px 60px rgba(0,0,0,.5);
}
.aw-modal h3 { margin: 0 0 .6rem; font-family: var(--aw-display); font-size: 1.2rem; color: var(--aw-ink); }
.aw-modal p { margin: 0 0 .6rem; font-size: .92rem; line-height: 1.5; color: var(--aw-ink-2, var(--aw-ink)); }
.aw-modal-actions { display: flex; justify-content: flex-end; gap: .6rem; margin-top: 1.1rem; }

/* ---- News tab ---- */
.aw-news { list-style: none; margin: .75rem 0 0; padding: 0; display: flex; flex-direction: column; gap: .1rem; }
.aw-news-item { padding: .85rem 0; border-bottom: 1px solid var(--aw-line); }
.aw-news-item:last-child { border-bottom: none; }
.aw-news-item.has-img { display: grid; grid-template-columns: 116px 1fr; gap: 1rem; align-items: start; }
.aw-news-thumb {
    display: block; width: 116px; height: 78px; border-radius: 8px; overflow: hidden;
    background: var(--aw-panel); border: 1px solid var(--aw-line); flex: none;
}
.aw-news-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.aw-news-body { min-width: 0; }
.aw-news-title {
    font-family: var(--aw-display); font-size: 1.02rem; font-weight: 600; line-height: 1.35;
    color: var(--aw-ink); text-decoration: none; display: inline-block;
}
.aw-news-title:hover { color: var(--aw-accent); text-decoration: underline; }
.aw-news-meta { margin-top: .25rem; font-size: .78rem; color: var(--aw-muted); display: flex; gap: .5rem; align-items: center; }
.aw-news-source { font-weight: 600; color: var(--aw-ink-2, var(--aw-muted)); }
.aw-news-source + .aw-news-date::before { content: "·"; margin-right: .5rem; color: var(--aw-muted); }
.aw-news-summary { margin: .4rem 0 0; font-size: .9rem; line-height: 1.5; color: var(--aw-ink-2, var(--aw-muted)); }
.aw-tabhead { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: .5rem; }
.aw-tabhead h3 { margin: 0; font-family: var(--aw-display); font-size: 1.15rem; color: var(--aw-ink); }
.aw-sevfilter { font-size: .8rem; color: var(--aw-muted); display: flex; align-items: center; gap: .4rem; }
.aw-sevfilter select {
    background: var(--aw-panel); color: var(--aw-ink); border: 1px solid var(--aw-line-2);
    border-radius: 6px; padding: .2rem .4rem; font-size: .82rem;
}

/* Findings filter bar: search + source + severity */
.aw-find-filters { display: flex; align-items: center; gap: .8rem; flex-wrap: wrap; }
.aw-find-search {
    width: 220px; max-width: 46vw; padding: .3rem .6rem; font-size: .85rem;
    background: var(--aw-panel); color: var(--aw-ink); border: 1px solid var(--aw-line-2); border-radius: 6px;
}
.aw-find-search::placeholder { color: var(--aw-muted); }
.aw-find-search:focus { outline: none; border-color: var(--aw-accent); }

/* Valuation bar (Tier B) */
.aw-valbar {
    display: flex; flex-wrap: wrap; gap: .55rem 1.25rem; align-items: baseline;
    padding: .7rem .95rem; margin-bottom: .9rem; border: 1px solid var(--aw-line); border-radius: 10px;
    background: linear-gradient(180deg, var(--aw-panel), var(--aw-bg-soft)); font-size: .85rem; color: var(--aw-muted);
}
.aw-valbar strong { color: var(--aw-ink); font-family: var(--aw-mono); font-weight: 600; margin-left: .2rem; }
.aw-valbar-as { margin-left: auto; font-size: .76rem; }

/* Fair value (hybrid DCF) */
.aw-fv-card {
    border: 1px solid var(--aw-line); border-left: 3px solid var(--aw-faint); border-radius: 12px;
    padding: 1rem 1.1rem; margin: .6rem 0 .9rem;
    background: linear-gradient(180deg, var(--aw-panel), var(--aw-bg-soft));
}
.aw-fv-card.under { border-left-color: var(--aw-accent); }
.aw-fv-card.over { border-left-color: var(--sev5); }
.aw-fv-card.fair { border-left-color: var(--sev3); }
.aw-fv-nums { display: flex; gap: 2rem; flex-wrap: wrap; }
.aw-fv-nums > div { display: flex; flex-direction: column; gap: .1rem; }
.aw-fv-label { font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; color: var(--aw-faint); }
.aw-fv-big { font-family: var(--aw-mono); font-size: 1.5rem; font-weight: 600; color: var(--aw-ink); }
.aw-fv-card.under .aw-fv-up { color: var(--aw-accent); }
.aw-fv-card.over .aw-fv-up { color: var(--sev5); }
.aw-fv-card.fair .aw-fv-up { color: var(--sev3); }
.aw-fv-meta {
    display: flex; flex-wrap: wrap; gap: .4rem .9rem; margin-top: .8rem; padding-top: .7rem;
    border-top: 1px solid var(--aw-line); font-size: .78rem; color: var(--aw-muted);
}
.aw-moat { font-weight: 600; padding: .05rem .45rem; border-radius: 5px; }
.aw-moat.moat-wide { color: var(--aw-accent); background: rgba(63, 224, 168, .12); }
.aw-moat.moat-narrow { color: var(--sev3); background: rgba(242, 193, 78, .12); }
.aw-moat.moat-none { color: var(--aw-faint); background: var(--aw-panel-2); }
.aw-fv-rationale { margin-top: .4rem; }

/* Scenario range bar + reverse-DCF implied growth */
.aw-fv-range { margin-top: .9rem; }
.aw-fv-range-labels { display: flex; justify-content: space-between; font-size: .76rem; color: #c6cdd6; margin-bottom: .35rem; }
.aw-fv-track {
    position: relative; height: 8px; border-radius: 5px;
    background: linear-gradient(90deg, rgba(239,77,107,.5), rgba(242,193,78,.5), rgba(63,224,168,.5));
}
.aw-fv-fv { position: absolute; top: -3px; width: 3px; height: 14px; background: #fff; border-radius: 2px; transform: translateX(-50%); }
.aw-fv-px { position: absolute; top: 9px; transform: translateX(-50%); font-size: .7rem; color: var(--aw-text); }
.aw-fv-implied {
    margin-top: .85rem; padding: .5rem .7rem; background: var(--aw-bg-soft); border-radius: 8px;
    display: flex; flex-direction: column; gap: .15rem; font-size: .85rem;
}
.aw-fv-implied .aw-muted { font-size: .76rem; }
.aw-fv-legacy { margin-bottom: .6rem; font-size: .82rem; }

/* Fair value — structured breakdown (scenario table, growth chart, assumptions) */
.aw-fv-block { margin-top: 1.2rem; }
.aw-fv-block > h4 { font-family: var(--aw-display); font-size: 1rem; margin: 0 0 .5rem; color: var(--aw-ink); }
.aw-fv-scen th, .aw-fv-scen td { padding: .4rem .6rem; }
.aw-fv-scen td.num, .aw-fv-scen th.num { text-align: right; font-family: var(--aw-mono); }
.aw-fv-scen td.pos { color: #4ade80; } .aw-fv-scen td.neg { color: var(--sev5); }
.aw-fv-scen-wtd { border-top: 2px solid var(--aw-line-2); }
.aw-fv-scen-wtd td { background: var(--aw-bg-soft); }

.aw-fv-grid2 { display: grid; grid-template-columns: 1.4fr 1fr; gap: 1.2rem; align-items: start; }
@media (max-width: 720px) { .aw-fv-grid2 { grid-template-columns: 1fr; } }

.aw-fv-chart { display: flex; align-items: flex-end; gap: .35rem; height: 120px; padding: .3rem .2rem 0; border-bottom: 1px solid var(--aw-line); }
.aw-fv-bar { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; gap: 3px; }
.aw-fv-bar-val { font-family: var(--aw-mono); font-size: .62rem; color: var(--aw-muted); }
.aw-fv-bar-fill { width: 100%; max-width: 22px; border-radius: 3px 3px 0 0;
    background: linear-gradient(180deg, var(--aw-accent), var(--aw-accent-2)); }
.aw-fv-bar-x { font-size: .62rem; color: var(--aw-faint); }
.aw-fv-chart-note { font-size: .74rem; color: var(--aw-muted); margin-top: .4rem; }

.aw-fv-kv td { padding: .35rem .6rem; font-size: .85rem; }
.aw-fv-kv td:first-child { color: var(--aw-muted); width: 45%; }

.aw-fv-implied2 { margin-top: 1.2rem; padding: .9rem 1.1rem; background: var(--aw-bg-soft); border: 1px solid var(--aw-line); border-radius: 12px;
    display: flex; align-items: center; gap: 2rem; flex-wrap: wrap; }
.aw-fv-imp { display: flex; flex-direction: column; }
.aw-fv-imp-num { font-family: var(--aw-display); font-size: 1.6rem; color: var(--aw-ink); line-height: 1; }
.aw-fv-imp-lbl { font-size: .72rem; color: var(--aw-muted); text-transform: uppercase; letter-spacing: .04em; margin-top: .2rem; }
.aw-fv-imp-read { flex: 1; min-width: 200px; margin: 0; font-size: .82rem; }

/* Show the math — the DCF walk */
.aw-fv-math td, .aw-fv-math th { padding: .3rem .55rem; font-size: .82rem; }
.aw-fv-math td.num, .aw-fv-math th.num { text-align: right; font-family: var(--aw-mono); }
.aw-fv-walk { margin-top: .7rem; max-width: 460px; }
.aw-fv-walk > div { display: flex; justify-content: space-between; gap: 1rem; padding: .3rem 0; border-bottom: 1px solid var(--aw-line); font-size: .85rem; }
.aw-fv-walk .num { font-family: var(--aw-mono); }
.aw-fv-walk-strong { border-bottom: none !important; }
.aw-fv-walk-strong span { color: var(--aw-ink); font-weight: 600; }

/* Learning layer — inline term tooltips + the /learn hub */
.aw-term { border-bottom: 1px dotted var(--aw-faint); cursor: help; }
.aw-term-q { font-size: .6em; color: var(--aw-accent); margin-left: 1px; vertical-align: super; }
.aw-learn-filters { display: flex; gap: .5rem; flex-wrap: wrap; margin: .5rem 0 1.2rem; }
.aw-chip-btn { background: var(--aw-bg-soft); border: 1px solid var(--aw-line); color: var(--aw-muted);
    border-radius: 999px; padding: .25rem .8rem; cursor: pointer; font-size: .82rem; }
.aw-chip-btn.active { background: rgba(63,224,168,.12); border-color: var(--aw-accent); color: var(--aw-accent); }
.aw-learn-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 1rem; }
.aw-learn-card { border: 1px solid var(--aw-line); border-radius: 12px; padding: 1rem 1.1rem; background: var(--aw-bg-soft); }
.aw-learn-head { display: flex; justify-content: space-between; align-items: baseline; }
.aw-learn-head h3 { margin: 0; font-size: 1.1rem; }
.aw-learn-cat { font-size: .68rem; text-transform: uppercase; letter-spacing: .05em; color: var(--aw-faint); }
.aw-learn-short { color: var(--aw-ink); font-size: .92rem; margin: .4rem 0 .5rem; }
.aw-learn-long { color: var(--aw-muted); font-size: .84rem; line-height: 1.55; margin: 0; }

/* Auth pages + per-user nav */
.aw-auth { display: flex; justify-content: center; padding: 4rem 1rem; }
.aw-auth-card { width: 100%; max-width: 380px; background: var(--aw-bg-soft); border: 1px solid var(--aw-line); border-radius: 14px; padding: 1.6rem 1.5rem; }
.aw-auth-card h1 { margin: 0 0 .2rem; }
.aw-auth-card label { display: block; margin: .7rem 0 0; font-size: .82rem; color: var(--aw-muted); }
.aw-auth-card .form-control { margin-top: .25rem; }
.aw-auth-card .btn-primary { margin-top: 1rem; width: 100%; }
.aw-auth-alt { margin-top: 1rem; font-size: .85rem; color: var(--aw-muted); text-align: center; }
.aw-nav-user { margin-left: auto; display: flex; align-items: center; gap: 1rem; }
.aw-nav-who { color: var(--aw-muted); font-size: .82rem; }
.aw-theme-toggle {
    background: none; border: 1px solid var(--aw-line-2); color: var(--aw-muted);
    width: 32px; height: 32px; border-radius: 8px; cursor: pointer; font-size: .95rem;
    display: inline-flex; align-items: center; justify-content: center; line-height: 1;
    transition: color .12s, background .12s, border-color .12s;
}
.aw-theme-toggle:hover { color: var(--aw-ink); border-color: var(--aw-faint); background: var(--aw-panel-2); }
/* Icon follows the active theme: sun in dark mode, moon in light mode. */
.aw-theme-icon::before { content: "\2600"; }                         /* ☀ */
html[data-theme="light"] .aw-theme-icon::before { content: "\1F319"; } /* 🌙 */

/* Settings → Appearance chooser */
.aw-theme-choice { display: flex; gap: .75rem; margin-top: .5rem; }
.aw-theme-opt {
    display: inline-flex; align-items: center; gap: .55rem; cursor: pointer;
    padding: .55rem .9rem; border-radius: 10px; font-size: .9rem; font-weight: 500;
    background: var(--aw-panel); color: var(--aw-ink); border: 1px solid var(--aw-line-2);
    transition: border-color .12s, background .12s;
}
.aw-theme-opt:hover { border-color: var(--aw-faint); }
.aw-theme-opt.active { border-color: var(--aw-accent); background: rgba(63, 224, 168, .1); }
.aw-theme-swatch { width: 18px; height: 18px; border-radius: 50%; border: 1px solid var(--aw-line-2); }
.aw-theme-swatch.dark { background: #0d1014; }
.aw-theme-swatch.light { background: #f5f2ec; }
.aw-kv { display: flex; gap: 1rem; padding: .3rem 0; border-bottom: 1px solid var(--aw-line); font-size: .9rem; }
.aw-kv > span:first-child { min-width: 6rem; }
.aw-status.ok { color: #6ee7a0; }

/* ============================================================
   Company Overview — editorial research-note cover
   ============================================================ */
.aw-ov { display: flex; flex-direction: column; gap: 1.4rem; }

/* Hero: a focal score paired with a plain-English verdict */
.aw-ov-hero {
    display: grid; grid-template-columns: auto 1fr; gap: 1.6rem; align-items: center;
    padding: 1.5rem 1.7rem; border: 1px solid var(--aw-line); border-radius: 16px;
    background:
        radial-gradient(640px 240px at 0% 0%, rgba(63,224,168,.06), transparent 70%),
        var(--aw-bg-soft);
    position: relative; overflow: hidden;
}
.aw-ov-score {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    width: 132px; height: 132px; border-radius: 50%; flex-shrink: 0;
    border: 2px solid var(--aw-line-2); background: var(--aw-panel);
}
.aw-ov-score.tier-3 { border-color: #4ade80; box-shadow: 0 0 0 6px rgba(74,222,128,.07); }
.aw-ov-score.tier-2 { border-color: var(--sev3); box-shadow: 0 0 0 6px rgba(242,193,78,.06); }
.aw-ov-score.tier-1 { border-color: var(--sev4); }
.aw-ov-score.tier-0 { border-color: var(--sev5); }
.aw-ov-score-num { font-family: var(--aw-display); font-size: 3rem; line-height: 1; font-weight: 600; color: var(--aw-ink); }
.aw-ov-score-label { font-size: .9rem; font-weight: 600; margin-top: .1rem; }
.aw-ov-score.tier-3 .aw-ov-score-label { color: #4ade80; } .aw-ov-score.tier-2 .aw-ov-score-label { color: var(--sev3); }
.aw-ov-score.tier-1 .aw-ov-score-label { color: var(--sev4); } .aw-ov-score.tier-0 .aw-ov-score-label { color: var(--sev5); }
.aw-ov-score-cap { font-size: .62rem; text-transform: uppercase; letter-spacing: .12em; color: var(--aw-faint); margin-top: .25rem; }

.aw-ov-verdict { font-family: var(--aw-display); font-size: 1.32rem; line-height: 1.45; color: var(--aw-ink); margin: 0 0 .7rem; }
.aw-ov-meta { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; font-size: .85rem; }
.aw-ov-price { font-family: var(--aw-mono); font-size: 1.15rem; color: var(--aw-ink); }

/* Verdict chips */
.aw-ov-chips { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: .8rem; }
.aw-ov-chip {
    border: 1px solid var(--aw-line); border-top: 3px solid var(--aw-line-2);
    border-radius: 12px; padding: .8rem .9rem; background: var(--aw-bg-soft);
}
.aw-ov-chip.tier-3 { border-top-color: #4ade80; } .aw-ov-chip.tier-2 { border-top-color: var(--sev3); }
.aw-ov-chip.tier-1 { border-top-color: var(--sev4); } .aw-ov-chip.tier-0 { border-top-color: var(--sev5); }
.aw-ov-chip-top { display: flex; justify-content: space-between; align-items: baseline; }
.aw-ov-chip-title { font-size: .68rem; text-transform: uppercase; letter-spacing: .08em; color: var(--aw-muted); }
.aw-ov-chip-score { font-family: var(--aw-mono); font-size: .85rem; color: var(--aw-faint); }
.aw-ov-chip-word { font-family: var(--aw-display); font-size: 1.4rem; margin: .15rem 0 .2rem; color: var(--aw-ink); }
.aw-ov-chip-why { font-size: .76rem; color: var(--aw-muted); }

/* Two-up panels */
.aw-ov-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem; }
@media (max-width: 760px) { .aw-ov-grid { grid-template-columns: 1fr; } .aw-ov-hero { grid-template-columns: 1fr; text-align: center; justify-items: center; } }
.aw-ov-panel { border: 1px solid var(--aw-line); border-radius: 14px; padding: 1.1rem 1.2rem; background: var(--aw-bg-soft); }
.aw-ov-panel-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: .7rem; }
.aw-ov-panel-head h3 { margin: 0; font-size: 1.05rem; }
.aw-link-btn { background: none; border: none; color: var(--aw-accent); font-size: .82rem; cursor: pointer; padding: 0; }
.aw-link-btn:hover { color: #6cf0c0; }

.aw-ov-finding { display: flex; gap: .6rem; padding: .5rem 0; border-bottom: 1px solid var(--aw-line); }
.aw-ov-finding:last-child { border-bottom: none; }
.aw-ov-finding-head { color: var(--aw-ink); font-size: .9rem; line-height: 1.35; }

.aw-ov-fv { display: flex; gap: 1.6rem; flex-wrap: wrap; }
.aw-ov-fv > div { display: flex; flex-direction: column; gap: .1rem; }
.aw-ov-fv.under .aw-fv-up { color: var(--aw-accent); } .aw-ov-fv.over .aw-fv-up { color: var(--sev5); } .aw-ov-fv.fair .aw-fv-up { color: var(--sev3); }
.aw-ov-implied { margin: .7rem 0 0; font-size: .8rem; }

.aw-ov-stance { }
.aw-ov-actionbig { margin-top: .6rem; font-family: var(--aw-display); font-size: 1.3rem; display: flex; align-items: baseline; gap: .6rem; }
.aw-ov-actionbig.act-good { color: #6ee7a0; } .aw-ov-actionbig.act-warn { color: #ff9bab; }
.aw-ov-actionbig.act-bad { color: #f6ab6e; } .aw-ov-actionbig.act-neutral { color: var(--aw-muted); }
.aw-ov-actionwhy { font-family: var(--aw-sans); font-size: .8rem; color: var(--aw-muted); }

/* Price chart vs fair-value band */
.aw-chart-panel { margin-top: 0; }
.aw-pricechart { width: 100%; height: 180px; display: block; overflow: visible; }
.aw-pc-line { fill: none; stroke: var(--aw-accent); stroke-width: 1.4; vector-effect: non-scaling-stroke; }
.aw-pc-fvband { fill: rgba(63,224,168,.08); }
.aw-pc-fvline { stroke: var(--sev3); stroke-width: 1; stroke-dasharray: 5 4; vector-effect: non-scaling-stroke; }
.aw-pc-legend { display: flex; gap: 1rem; flex-wrap: wrap; margin-top: .5rem; font-size: .74rem; }
.aw-pc-leg { display: inline-flex; align-items: center; gap: .35rem; color: var(--aw-muted); }
.aw-pc-leg::before { content: ""; width: 14px; height: 0; border-top: 2px solid currentColor; display: inline-block; }
.aw-pc-leg.price { color: var(--aw-accent); }
.aw-pc-leg.fv { color: var(--sev3); }
.aw-pc-leg.fv::before { border-top-style: dashed; }
.aw-pc-leg.band { color: var(--aw-accent-2); }
.aw-pc-leg.band::before { border-top-width: 8px; border-top-style: solid; opacity: .4; }

/* ============================================================
   Ask AlgoWave — floating orb + slide-out tray
   ============================================================ */
.aw-orb-root { position: fixed; right: 1.4rem; bottom: 1.4rem; z-index: 50; }
.aw-orb {
    width: 58px; height: 58px; border-radius: 50%; border: none; cursor: pointer;
    background: radial-gradient(circle at 35% 30%, #6cf0c0, var(--aw-accent) 55%, var(--aw-accent-2) 100%);
    box-shadow: 0 0 0 1px rgba(63,224,168,.4), 0 6px 26px -6px rgba(63,224,168,.65), 0 10px 30px -10px rgba(0,0,0,.6);
    display: grid; place-items: center; margin-left: auto;
    animation: aw-orb-pulse 3.4s ease-in-out infinite;
    transition: transform .15s ease;
}
.aw-orb:hover { transform: translateY(-2px) scale(1.04); }
.aw-orb-core { width: 16px; height: 16px; border-radius: 50%; background: #06170f; box-shadow: inset 0 0 8px rgba(0,0,0,.6); }
.aw-orb.busy { animation: aw-orb-spin 1s linear infinite, aw-orb-pulse 3.4s ease-in-out infinite; }
@keyframes aw-orb-pulse {
    0%, 100% { box-shadow: 0 0 0 1px rgba(63,224,168,.4), 0 6px 26px -6px rgba(63,224,168,.55), 0 10px 30px -10px rgba(0,0,0,.6); }
    50% { box-shadow: 0 0 0 1px rgba(63,224,168,.7), 0 6px 40px -2px rgba(63,224,168,.85), 0 10px 30px -10px rgba(0,0,0,.6); }
}
@keyframes aw-orb-spin { to { transform: rotate(360deg); } }

.aw-orb-tray {
    position: fixed; right: 0; top: 0; bottom: 0; width: min(400px, 92vw);
    background: var(--aw-panel); border-left: 1px solid var(--aw-line-2);
    box-shadow: -20px 0 50px -20px rgba(0,0,0,.7);
    display: flex; flex-direction: column;
    animation: aw-tray-in .22s cubic-bezier(.2,.8,.2,1);
}
@keyframes aw-tray-in { from { transform: translateX(100%); } to { transform: translateX(0); } }
.aw-orb-head {
    display: flex; align-items: center; justify-content: space-between;
    padding: .85rem 1rem; border-bottom: 1px solid var(--aw-line);
}
.aw-orb-head strong { font-family: var(--aw-display); font-size: 1.05rem; }
.aw-orb-ctx { display: block; font-size: .7rem; color: var(--aw-accent); text-transform: uppercase; letter-spacing: .05em; margin-top: .1rem; }
.aw-orb-x { background: none; border: none; color: var(--aw-muted); cursor: pointer; font-size: 1rem; }
.aw-orb-x:hover { color: var(--aw-ink); }
.aw-orb-body { flex: 1; overflow-y: auto; padding: 1rem; display: flex; flex-direction: column; gap: .7rem; }
.aw-orb-hint { color: var(--aw-muted); font-size: .85rem; line-height: 1.5; }
.aw-orb-msg { font-size: .88rem; line-height: 1.5; border-radius: 12px; padding: .55rem .75rem; max-width: 92%; }
.aw-orb-msg.me { align-self: flex-end; background: var(--aw-accent-2); color: #eafff6; border-bottom-right-radius: 4px; }
.aw-orb-msg.ai { align-self: flex-start; background: var(--aw-bg-soft); border: 1px solid var(--aw-line); border-bottom-left-radius: 4px; }
.aw-orb-msg.ai :first-child { margin-top: 0; } .aw-orb-msg.ai :last-child { margin-bottom: 0; }
.aw-orb-input { display: flex; gap: .4rem; padding: .7rem; border-top: 1px solid var(--aw-line); }
.aw-orb-input .form-control { flex: 1; }
.aw-orb-input .btn { padding: .25rem .7rem; }

/* Layer 2 — pulse grid */
.aw-h2-sub { font-family: var(--aw-sans); font-weight: 400; font-size: .85rem; }
.aw-pulse { display: grid; grid-template-columns: repeat(auto-fill, minmax(94px, 1fr)); gap: .5rem; margin-top: .6rem; }
.aw-tile {
    display: flex; flex-direction: column; gap: .25rem; padding: .5rem .6rem;
    border: 1px solid var(--aw-line); border-left: 3px solid var(--sev1); border-radius: 10px;
    background: var(--aw-panel); text-decoration: none; transition: transform .08s ease, border-color .12s;
}
.aw-tile:hover { transform: translateY(-1px); border-color: var(--aw-line-2); }
.aw-tile.pulse-0 { border-left-color: #2a3340; opacity: .65; }
.aw-tile.pulse-2 { border-left-color: var(--sev2); }
.aw-tile.pulse-3 { border-left-color: var(--sev3); }
.aw-tile.pulse-4 { border-left-color: var(--sev4); }
.aw-tile.pulse-5 { border-left-color: var(--sev5); }
.aw-tile-ticker { font-family: var(--aw-mono); font-weight: 600; color: var(--aw-ink); font-size: .92rem; }
.aw-tile-meta { font-size: .7rem; }
.aw-tile-high { color: var(--sev5); font-weight: 600; }
.aw-tile-quiet { color: var(--aw-faint); font-family: var(--aw-mono); }

/* Layer 1 — filters + read state */
.aw-filters {
    display: flex; gap: .75rem; align-items: center; flex-wrap: wrap; margin: .4rem 0 1rem;
    padding: .6rem .75rem; border: 1px solid var(--aw-line); border-radius: 10px; background: var(--aw-bg-soft);
}
.aw-filters label { font-size: .78rem; color: var(--aw-muted); display: flex; align-items: center; gap: .35rem; }
.aw-filters select {
    background: var(--aw-panel); color: var(--aw-ink); border: 1px solid var(--aw-line-2);
    border-radius: 6px; padding: .2rem .4rem; font-size: .82rem;
}
.aw-filters-clear { margin-left: auto; }

.aw-pager { display: flex; align-items: center; justify-content: center; gap: 1rem; margin: 1rem 0; font-size: .85rem; }

.aw-card.read { opacity: .5; }
.aw-read-btn {
    margin-left: .4rem; background: transparent; border: 1px solid var(--aw-line-2); color: var(--aw-muted);
    border-radius: 5px; width: 20px; height: 20px; line-height: 1; cursor: pointer; font-size: .7rem; padding: 0;
}
.aw-read-btn:hover { color: var(--aw-accent); border-color: var(--aw-accent); }

@media (prefers-reduced-motion: reduce) {
    .aw-card { animation: none; }
    .aw-log.live .aw-log-dot { animation: none; }
}

/* --- Framework bits adapted to dark --- */
.valid.modified:not([type=checkbox]) { outline: 1px solid var(--aw-accent-2); }
.invalid { outline: 1px solid var(--sev5); }
.validation-message { color: var(--sev5); }

.blazor-error-boundary {
    background: #7a1b2c; padding: 1rem 1rem 1rem 1rem; color: white; border-radius: 8px;
}
.blazor-error-boundary::after { content: "An error has occurred."; }
