/* ===== Shared design system — loaded last on every page ===== */
:root{--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--r:12px;--r-sm:8px;--pad:16px;--gap:14px;
 --fs-xs:10.5px;--fs-sm:12px;--fs-md:13px;--fs-lg:15px;--fs-xl:20px;--fs-h1:22px}
main{padding:var(--s5) var(--s6);gap:var(--gap)}
/* page header pattern */
.ph-head{display:flex;align-items:center;gap:var(--s3);min-height:40px;margin-bottom:2px}
.ph-head h1{font-size:var(--fs-h1);font-weight:600;letter-spacing:.01em;white-space:nowrap}
.ph-head .sub{flex:1;color:var(--mut);font-size:var(--fs-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ph-head .user{color:var(--txt);font-size:var(--fs-sm);padding-left:var(--s2)}
/* cards */
.card{border-radius:var(--r);padding:14px var(--pad)}
.grid,.g12,.kpis,.accts,.rules,.aig,.strip{gap:var(--gap)}
.grid,.g12{align-items:stretch}
h3{font-size:var(--fs-xs);letter-spacing:.12em;margin-bottom:12px;min-height:16px}
h3 .mut{font-size:var(--fs-xs)}
.kpi .v{font-size:var(--fs-xl)}.kpi .s{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* tables */
table{font-size:var(--fs-sm)}th{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--mut);font-weight:500;padding:6px;border-bottom:1px solid var(--line)}
td{padding:7px 6px;border-top:1px solid var(--line)}tr:first-child td{border-top:0}
/* readable chart labels */
svg text[font-size="8"],svg text[font-size="8.5"],svg text[font-size="9"]{font-size:10px}
/* notes */
.note,.cap{font-size:11px}
/* dashboard: clock row fill */
.clock{align-items:stretch}.ck-sess{display:flex;flex-direction:column}
.nextblk{margin-top:auto;background:var(--bg);border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 12px}
.nextblk small{display:block;color:var(--mut);font-size:10px;letter-spacing:.1em}.nextblk b{display:block;font-size:var(--fs-md);margin:3px 0}.nextblk span{font-size:11px;color:var(--mut)}
/* NOW label below the track so it never collides with news labels */
.now::after{top:auto;bottom:-15px;left:-13px;background:var(--txt);color:var(--bg);padding:0 4px;border-radius:3px;font-weight:700}
.ticks{height:18px}.ticks span{top:6px}
/* sidebar density for 5 groups */
.side{gap:14px}.ngrp{padding:12px 12px 4px}nav a{height:36px;font-size:14px}
.s9{grid-column:span 9}.s10{grid-column:span 10}.s1{grid-column:span 1}
/* sidebar scroll */
.side{overflow:hidden}.side nav{overflow-y:auto;min-height:0;flex:1 1 auto;margin-right:-8px;padding-right:6px;scrollbar-width:thin;scrollbar-color:var(--line) transparent}
.side nav::-webkit-scrollbar{width:6px}.side nav::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}
nav a{height:34px;flex:0 0 34px}.ngrp{padding:10px 12px 3px}
/* ask bar */
.askbar{display:flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:0 12px;height:32px;width:320px;flex:0 0 auto}.askbar:focus-within{border-color:var(--ac)}
.askbar .ic{width:15px;height:15px;color:var(--mut);flex:0 0 15px}.askbar input{flex:1;min-width:0;background:none;border:0;color:var(--txt);font:inherit;font-size:12px;outline:0}
/* notes */
.nb-h{display:flex;gap:10px;align-items:center;margin-bottom:8px}.nb-h .seg-tog button{padding:4px 10px;font-size:11.5px}.nb-type{display:flex;gap:8px;align-items:flex-start}.nb-type .inp{flex:1}.nb-voice{display:flex;gap:10px;align-items:center}.nb-voice[hidden],.nb-type[hidden]{display:none}
.vrec.on{border-color:var(--neg);color:var(--neg)}.vstat{font-size:11px}
.vitem{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line);font-size:12px;margin-top:6px}.vitem audio{height:30px;width:170px}.vplay{background:var(--bg);border:1px solid var(--line);border-radius:16px;padding:4px 10px;font-size:11px;color:var(--ac);min-width:40px;text-align:center}.vtags{display:flex;gap:4px;margin-top:4px;flex-wrap:wrap}.vtags .tag{margin:0}
@media print{.side,.askbar,.noprint{display:none!important}main{padding:0}}
/* Proof brand */
.brand b{font-size:19px;font-weight:700;letter-spacing:-.01em;text-transform:none}.brand small{letter-spacing:.04em;font-size:10px;text-transform:none}
.logo{color:#041014;border-radius:10px}
/* Vera speaker label */
.msg.a::before{content:'Vera';display:block;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ac);margin-bottom:3px}
.msg.u::before{content:'You';display:block;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--mut);margin-bottom:3px;text-align:right}
.aih::before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--ac);margin-right:8px;box-shadow:0 0 8px var(--ac)}
/* text columns left */
table.dt td.txt,table.dt th.txt{text-align:left}
.brand small{font-style:italic;letter-spacing:.01em;font-size:10.5px}
.logo{background:none!important;width:40px;height:40px;padding:0}.logo img{width:40px;height:40px;display:block}
