/* NovaVisual Studio - presentation-mode polish card (opt-in "Make presentation-ready" result).
   Theme-aware via the same tokens novaai.css already defines per theme (Nova Blue/Dark/Light),
   so this never needs its own dark/light branching for text/background/border colours - only
   --nvs-neutral (the non-highlighted bar/slice colour) is new, since novaai.css has no existing
   token for "a visibly muted but still legible" fill on top of --card-bg in every theme. */
:root{--nvs-neutral:#3d5470;--nvs-report-neutral-accent:#5b6b7d;}
:root[data-theme="dark"]{--nvs-neutral:#43454b;--nvs-report-neutral-accent:#6b7280;}
:root[data-theme="light"]{--nvs-neutral:#c7d2de;--nvs-report-neutral-accent:#475569;}

.nvs-card{background:var(--card-bg);border:1px solid var(--line);border-radius:14px;padding:20px 22px;margin-top:4px;max-width:520px;box-shadow:var(--shadow);}
.nvs-eyebrow{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);margin-bottom:6px;}
.nvs-headline{font-size:19px;font-weight:700;line-height:1.3;color:var(--text);margin-bottom:6px;}
.nvs-sub{font-size:13.5px;color:var(--text-3);line-height:1.5;margin-bottom:16px;}
.nvs-body{margin:4px 0 14px;}
.nvs-source{font-size:11px;color:var(--text-faint);border-top:1px solid var(--line);padding-top:10px;margin-top:4px;}

.nvs-barchart{display:flex;flex-direction:column;gap:10px;}
.nvs-bar-row{display:grid;grid-template-columns:104px 1fr 64px;align-items:center;gap:10px;}
.nvs-bar-label{font-size:12.5px;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.nvs-bar-track{height:10px;background:var(--line);border-radius:6px;overflow:hidden;}
.nvs-bar-fill{height:100%;border-radius:6px;}
.nvs-bar-value{font-size:12.5px;color:var(--text-2);text-align:right;font-variant-numeric:tabular-nums;}
.nvs-bar-row-hi .nvs-bar-label{color:var(--text);font-weight:700;}
.nvs-bar-row-hi .nvs-bar-value{color:var(--text);font-weight:700;}

.nvs-donut-wrap{display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
.nvs-donut{width:118px;height:118px;border-radius:50%;position:relative;flex:0 0 auto;}
.nvs-donut-hole{position:absolute;inset:22px;border-radius:50%;background:var(--card-bg);}
.nvs-legend{display:flex;flex-direction:column;gap:6px;}
.nvs-legend-item{font-size:12.5px;color:var(--text-3);display:flex;align-items:center;gap:7px;}
.nvs-legend-swatch{width:9px;height:9px;border-radius:3px;display:inline-block;flex:0 0 auto;}
.nvs-legend-hi{color:var(--text);font-weight:700;}

.nvs-kpi{text-align:left;}
.nvs-kpi-value{font-size:38px;font-weight:800;color:var(--text);line-height:1.05;}
.nvs-kpi-label{font-size:13px;color:var(--text-3);margin-top:4px;}

.nvs-controls{display:flex;flex-direction:column;gap:6px;margin-top:14px;padding-top:12px;border-top:1px dashed var(--line);}
.nvs-ctrl-row{display:flex;flex-wrap:wrap;gap:6px;}
.nvs-ctrl-btn{font-size:10.5px;font-weight:600;padding:4px 9px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--text-faint);cursor:pointer;}
.nvs-ctrl-btn:hover{color:var(--text-2);border-color:var(--gold);}
.nvs-ctrl-btn-active{color:var(--on-accent,#07111d);background:var(--nvs-highlight);border-color:var(--nvs-highlight);}

/* ---- Report style presets (spec section 6): typography/spacing/chrome only - never a colour
   or data change, so these can never conflict with the NovaAI Style/Neutral Report colour-mode
   toggle above, which they share a card with. ---- */
.nvs-card[data-preset="executive"] .nvs-sub{display:none;}
.nvs-card[data-preset="executive"] .nvs-headline{font-size:22px;font-weight:800;letter-spacing:-.01em;}
.nvs-card[data-preset="executive"] .nvs-eyebrow{letter-spacing:.14em;}
.nvs-card[data-preset="executive"]{padding:24px 26px;}

.nvs-card[data-preset="consultancy"]{border-left:3px solid var(--nvs-highlight);padding-left:19px;}
.nvs-card[data-preset="consultancy"] .nvs-headline{font-family:Georgia,'Times New Roman',serif;font-weight:700;}
.nvs-card[data-preset="consultancy"] .nvs-eyebrow{color:var(--nvs-highlight);}

.nvs-card[data-preset="editorial"] .nvs-headline{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:21px;}
.nvs-card[data-preset="editorial"] .nvs-sub{font-style:italic;}
.nvs-card[data-preset="editorial"]{padding:26px 28px;}
.nvs-card[data-preset="editorial"] .nvs-body{margin-top:10px;}

.nvs-card[data-preset="minimal"]{box-shadow:none;border-color:transparent;padding:10px 2px;}
.nvs-card[data-preset="minimal"] .nvs-eyebrow{display:none;}
.nvs-card[data-preset="minimal"] .nvs-headline{font-size:15.5px;font-weight:600;}
.nvs-card[data-preset="minimal"] .nvs-source{border-top:none;padding-top:4px;}

@media(max-width:520px){
  .nvs-card{max-width:100%;padding:16px 16px;}
  .nvs-bar-row{grid-template-columns:78px 1fr 52px;gap:7px;}
}
