/* ============================================================================
   Southport Signal — application stylesheet
   ----------------------------------------------------------------------------
   PART 1 (below, through the "END APPROVED MOCKUP SYSTEM" marker) is the
   client-approved design system copied VERBATIM from reference/mockup.css.
   Per CONVENTIONS.md §9 these surface rules are approved and must not regress,
   so they are reproduced rather than re-authored. Do not edit Part 1 — put new
   rules in PART 2 (APP ADDITIONS) at the bottom of this file.

   Tokens: navy #002B47 · blue #00619F · page #F4F6F8 · hairline #E2E7EC
   Panels: 1px border, 6px radius, NO shadows, 34px header bar in #FAFBFC
   Type:   Rajdhani (headings + numerals, tabular-nums) · Inter (body, 14px)
   Metrics: 34px buttons · 38px table rows · mobile breakpoint 820px
   ========================================================================== */

:root{
  --navy:#002B47;--navyink:#9FBACE;--blue:#00619F;--bluedk:#004E80;--bluetint:#F1F6FA;
  --green:#1A7A4C;--amber:#A9711A;--hot:#C1611A;--red:#B93A2F;--violet:#5F4B93;--teal:#0E6E7A;
  --page:#F4F6F8;--card:#fff;--surf2:#FAFBFC;--sand:#FBFAF7;--line:#E2E7EC;--line2:#EDF1F4;
  --ink:#101C26;--ink2:#3B4A55;--mute:#6C7B86;--faint:#9AA7B1;--rule:#E6EBEF;--rule2:#D5DDE3;
  --raj:'Rajdhani',system-ui,sans-serif;--ui:'Inter',-apple-system,"Segoe UI",Roboto,sans-serif;
  --lift:none;--lift2:none;--pop:0 1px 2px rgba(16,28,38,.05),0 18px 44px -16px rgba(16,28,38,.28);
}
*{box-sizing:border-box}html,body{margin:0}
body{background:var(--page);color:var(--ink);font-family:var(--ui);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--raj);font-weight:700;margin:0;letter-spacing:-.012em}
.num{font-family:var(--raj);font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.lbl{font-size:10px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--mute)}
.app{display:grid;grid-template-columns:224px 1fr;min-height:100vh}
.side{background:var(--navy);color:var(--navyink);display:flex;flex-direction:column;padding:16px 12px}
.side .brand img{width:140px;display:block;margin:0 6px 14px}
.who{background:rgba(255,255,255,.06);border-radius:8px;padding:10px 11px}
.who .lb{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#7195AE;font-weight:600}
.who .rowf{display:flex;align-items:center;gap:11px;margin-top:9px}
.who .av{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;color:#fff;font-family:var(--raj);font-weight:700;font-size:11.5px;flex:none}
.who b{color:#fff;font-size:13.5px;display:block;font-weight:600;letter-spacing:-.005em}
.who small{color:#7E9DB4;font-size:11.5px}
.swap{width:100%;margin-top:9px;border:1px solid rgba(255,255,255,.18);background:transparent;color:#CBDCE7;
 font-family:var(--raj);font-weight:600;font-size:12.5px;padding:7px;border-radius:6px;cursor:pointer;text-align:center}
.swap:hover{background:rgba(255,255,255,.09);color:#fff}
.picker{margin-top:8px;background:rgba(0,0,0,.22);border-radius:9px;padding:6px;display:none}
.picker.on{display:block}
.picker button{width:100%;display:flex;align-items:center;gap:10px;background:transparent;border:0;color:#CBDCE7;
 padding:8px 9px;border-radius:7px;cursor:pointer;font-family:var(--ui);font-size:13.5px;text-align:left}
.picker button:hover{background:rgba(255,255,255,.09);color:#fff}
.picker button .ini{width:22px;height:22px;border-radius:50%;color:#fff;font-size:9.5px;font-weight:700;display:grid;place-items:center;flex:none}
.picker button small{margin-left:auto;color:#7E9DB4;font-size:11.5px}
.side .grp{font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:#5B7B92;padding:0 8px 6px;margin-top:14px;font-weight:600}
.side nav{display:flex;flex-direction:column;gap:2px}
.side nav a{display:flex;align-items:center;gap:10px;padding:0 10px;height:34px;border-radius:6px;color:#CBDCE7;
 font-family:var(--raj);font-size:14.5px;font-weight:600;cursor:pointer}
.side nav a svg{width:15px;height:15px;flex:none;opacity:.72}
.side nav a .c{margin-left:auto;font-family:var(--ui);font-size:11px;font-weight:600;color:#8FAEC4;font-variant-numeric:tabular-nums}
.side nav a:hover{background:rgba(255,255,255,.06);color:#fff}
.side nav a.on{background:var(--blue);color:#fff}.side nav a.on svg{opacity:1}.side nav a.on .c{color:rgba(255,255,255,.8)}
.side .grow{flex:1}
.side .stat{padding:0 10px;margin-top:16px}
.side .stat .n{font-family:var(--raj);font-weight:700;font-size:19px;color:#fff;line-height:1}
.side .stat .l{font-size:11px;color:#7D9EB5;margin-top:3px;line-height:1.4}
.main{min-width:0;display:flex;flex-direction:column}
.top{display:flex;align-items:center;gap:16px;padding:0 22px;height:54px;background:var(--card);border-bottom:1px solid var(--rule);position:sticky;top:0;z-index:6}
.top h1{font-size:17px;line-height:1.2}.top .sub{font-size:12.5px;color:var(--mute);margin-top:1px}.top .grow{flex:1}
.srch{display:flex;align-items:center;gap:8px;background:var(--page);border:1px solid var(--rule);border-radius:6px;padding:0 11px;height:32px;min-width:250px;cursor:pointer}
.srch svg{width:16px;height:16px;color:var(--faint);flex:none}
.srch input{border:0;background:transparent;outline:none;font:inherit;font-size:12.5px;width:100%;cursor:pointer;color:var(--ink)}
.wrap{padding:18px 22px 40px;max-width:1560px}
.foot{font-size:11.5px;color:var(--faint);text-align:center;padding:18px 0 0}
.hello{display:flex;align-items:center;gap:13px;margin-bottom:4px}
.hello .av{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:#fff;font-family:var(--raj);font-weight:700;font-size:13px;flex:none}
.hello h2{font-size:19px}.hello .d{font-size:13px;color:var(--mute);margin-top:1px}
.hello .rt{margin-left:auto;text-align:right}.hello .rt .n{font-size:19px}.hello .rt .l{font-size:11.5px;color:var(--mute)}
.shead{display:flex;align-items:baseline;gap:10px;margin:22px 0 10px;flex-wrap:wrap}
.shead h2{font-size:16px}.shead .c{font-size:12.5px;color:var(--mute)}
.shead .rt{margin-left:auto;font-size:12px;color:var(--faint)}
.st{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;white-space:nowrap;font-family:var(--ui)}
.st i{width:7px;height:7px;border-radius:50%;flex:none}
.st.new{color:var(--blue)}.st.new i{background:var(--blue)}
.st.working{color:var(--green)}.st.working i{background:var(--green)}
.st.hot{color:var(--hot)}.st.hot i{background:var(--hot)}
.st.quiet{color:var(--red)}.st.quiet i{background:var(--red)}
.tag{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:500;color:var(--mute);white-space:nowrap;flex:none}
.tag i{width:7px;height:7px;border-radius:50%;flex:none}
.tag.new{color:var(--blue)}.tag.new i{background:var(--blue)}
.tag.hold{color:var(--green)}.tag.hold i{background:var(--green)}
.tag.hot{color:var(--hot)}.tag.hot i{background:var(--hot)}
.tag.late{color:var(--red)}.tag.late i{background:var(--red)}
.dept{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;padding:3px 8px;border-radius:20px;letter-spacing:.02em;white-space:nowrap}
.dept.sales{background:#EAF2F8;color:var(--blue)}
.dept.service{background:#EFF4EE;color:var(--green)}
.dept.both{background:#F1EEF6;color:var(--violet)}
.dept.none{background:var(--page);color:var(--faint)}
.card{background:var(--card);border:1px solid var(--line);border-radius:6px;margin-bottom:12px;overflow:hidden}
.blk{padding:12px 16px;border-top:1px solid var(--rule)}
.blk .lbl{display:block;margin-bottom:5px}.blk p{margin:0;font-size:13.5px;line-height:1.55}
.chead{display:flex;align-items:flex-start;gap:12px;padding:14px 16px 12px;flex-wrap:wrap}
.chead .idx{width:22px;height:22px;border-radius:50%;background:var(--page);color:var(--mute);display:grid;place-items:center;font-family:var(--raj);font-weight:700;font-size:12px;flex:none;margin-top:2px}
.chead .t{flex:1;min-width:170px}.chead h3{font-size:17px;line-height:1.2}
.chead h3 span{cursor:pointer}.chead h3 span:hover{color:var(--blue)}
.chead .sub{font-size:12.5px;color:var(--mute);margin-top:2px;font-variant-numeric:tabular-nums}
.ev{display:flex;flex-wrap:wrap;margin:10px 0 0;padding-top:10px;border-top:1px solid var(--rule);list-style:none;padding-left:0}
.ev li{padding-right:22px;font-size:12px;color:var(--mute)}
.ev li b{display:block;font-family:var(--raj);font-weight:700;font-size:15.5px;color:var(--ink);font-variant-numeric:tabular-nums}
.blk.script{background:var(--sand);box-shadow:inset 3px 0 0 var(--amber)}
.panel>.blk.script{padding-left:14px;padding-right:14px}
.blk.script .lbl{color:var(--amber)}.blk.script p{color:#3A2E19}
.pers{display:flex;align-items:flex-end;gap:20px;flex-wrap:wrap}
.pers .p{flex:1;min-width:170px}.pers .p b{display:block;font-family:var(--raj);font-weight:700;font-size:16px;line-height:1.2}
.pers .p span{font-size:12px;color:var(--mute)}
.pers .tel{text-align:right}
.pers .tel .k{font-size:9.5px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:var(--faint);display:block}
.pers .tel .n{font-size:20px;color:var(--navy);line-height:1.05}
.acts{display:flex;gap:8px;padding:12px 16px 14px;flex-wrap:wrap;border-top:1px solid var(--rule)}
.btn{border:0;border-radius:6px;padding:0 14px;height:34px;font-family:var(--raj);font-weight:700;font-size:14px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:9px}
.btn svg{width:15px;height:15px}
.btn.go{background:var(--blue);color:#fff;flex:1;min-width:150px}.btn.go:hover{background:var(--bluedk)}
.btn.alt{background:var(--card);color:var(--ink2);border:1px solid var(--rule2)}.btn.alt:hover{background:var(--page)}
.btn.sm{height:30px;font-size:13px;padding:0 12px}
.board{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;align-items:start}
@media(max-width:1180px){.board{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.board{grid-template-columns:1fr}}
.col{background:#ECF0F3;border:1px solid var(--line);border-radius:6px;padding:4px 4px 6px}
.colh{display:flex;align-items:center;gap:7px;padding:9px 9px 3px}
.colh b{font-family:var(--raj);font-size:14.5px}
.colh .n{margin-left:auto;font-family:var(--raj);font-weight:700;font-size:13.5px;color:var(--mute);font-variant-numeric:tabular-nums}
.colh i{width:7px;height:7px;border-radius:50%;flex:none}
.colsub{padding:0 9px 8px;font-size:11px;color:var(--mute)}
.pc{background:var(--card);border:1px solid var(--line);border-radius:5px;padding:10px 11px;margin-bottom:5px}
.pc b{font-weight:600;font-size:13px;cursor:pointer;display:block;line-height:1.3;letter-spacing:-.005em}
.pc b:hover{color:var(--blue)}
.pc .m{font-size:11.5px;color:var(--mute);margin-top:2px;font-variant-numeric:tabular-nums}
.pc .nt{font-size:12px;color:var(--ink2);margin-top:7px;padding-top:7px;border-top:1px solid var(--rule);line-height:1.45}
.pc .mv{display:flex;gap:4px;margin-top:8px;flex-wrap:wrap}
.pc .mv button{border:1px solid var(--rule2);background:var(--card);border-radius:5px;height:25px;padding:0 8px;
 font-family:var(--ui);font-size:11.5px;font-weight:600;color:var(--mute);cursor:pointer}
.pc .mv button:hover{border-color:var(--blue);color:var(--blue);background:var(--bluetint)}
.colempty{padding:14px 10px;color:var(--faint);font-size:12px;text-align:center}
.colmore{padding:9px 10px;border-top:1px solid var(--line);text-align:center}
.colmore a{font-size:12px;color:var(--blue);text-decoration:none}
.colmore a:hover{text-decoration:underline}
.tbl{background:var(--card);border:1px solid var(--line);border-radius:6px;overflow:hidden}
.tbl .th,.tbl .tr{display:grid;grid-template-columns:2.1fr .7fr 1.1fr 1.2fr 1.5fr;gap:12px;padding:0 14px;min-height:38px;align-items:center}
.tbl.n4 .th,.tbl.n4 .tr{grid-template-columns:2.1fr .7fr 1.1fr 1.2fr}
.tbl .th{background:#FAFBFC;border-bottom:1px solid var(--rule);min-height:32px}
.tbl .th div{font-size:9.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--faint)}
.tbl .tr{border-top:1px solid var(--rule)}.tbl .tr:first-of-type{border-top:0}.tbl .tr:hover{background:#FAFCFD}
.tbl .co{font-weight:600;font-size:13px;cursor:pointer;line-height:1.3;padding:6px 0;letter-spacing:-.005em}.tbl .co:hover{color:var(--blue)}
.tbl .co span{display:block;font-family:var(--ui);font-weight:400;font-size:11.5px;color:var(--mute)}
.tbl .cell{font-size:12.5px;color:var(--ink2);font-variant-numeric:tabular-nums}
.owncell{display:flex;align-items:center;gap:8px}
.owncell .ini{width:20px;height:20px;border-radius:50%;color:#fff;font-size:9px;font-weight:700;display:grid;place-items:center;flex:none}
.owncell select{border:1px solid transparent;background:transparent;font:inherit;font-size:12.5px;color:var(--ink2);
 border-radius:5px;padding:3px 4px;cursor:pointer;max-width:150px}
.owncell select:hover{border-color:var(--rule2);background:var(--card)}
.filters{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.filters button{border:1px solid var(--rule2);background:var(--card);border-radius:6px;height:30px;padding:0 11px;
 font-family:var(--ui);font-size:12.5px;font-weight:500;color:var(--ink2);cursor:pointer}
.filters button:hover{border-color:var(--blue)}
.filters button.on{background:var(--navy);border-color:var(--navy);color:#fff;font-weight:600}
.strip{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:6px;overflow:hidden}
.strip .s{background:var(--card);padding:12px 15px}
.strip .s .n{font-size:22px;line-height:1}.strip .s.key .n{color:var(--blue)}
.strip .s .l{font-size:11.5px;color:var(--mute);margin-top:5px;line-height:1.35}
@media(max-width:900px){.strip{grid-template-columns:repeat(2,1fr)}}
.brief{background:var(--card);border-radius:9px;box-shadow:var(--lift2);overflow:hidden;margin-bottom:12px}
.briefh{background:var(--navy);color:#fff;padding:22px 28px}
.briefh h2{font-size:24px;color:#fff}
.briefh .d{color:var(--navyink);font-size:14.5px;margin-top:3px}
.bsum{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,.14);margin:18px -28px -22px;padding-top:1px}
.bsum div{background:var(--navy);padding:14px 28px}
.bsum .n{font-family:var(--raj);font-weight:700;font-size:25px;color:#fff;line-height:1}
.bsum .l{font-size:12.5px;color:var(--navyink);margin-top:4px;line-height:1.35}
@media(max-width:900px){.bsum{grid-template-columns:repeat(2,1fr)}}
.bsec{padding:22px 28px;border-top:1px solid var(--rule)}
.bsec h3{font-size:18px;margin-bottom:4px}
.bsec .lead{font-size:14.5px;color:var(--mute);margin:0 0 15px}
.act{display:grid;grid-template-columns:24px 1fr;gap:10px;padding:10px 0;border-top:1px solid var(--rule)}
.act:first-of-type{border-top:0;padding-top:2px}
.act .ini{width:24px;height:24px;border-radius:50%;color:#fff;font-size:9.5px;font-weight:700;display:grid;place-items:center;font-family:var(--ui);margin-top:1px}
.act .ah{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}
.act .ah b{font-weight:600;font-size:13px;cursor:pointer;letter-spacing:-.005em}.act .ah b:hover{color:var(--blue)}
.act .ah .w{font-size:11.5px;color:var(--mute)}
.act .q{font-size:12.5px;color:var(--ink2);line-height:1.5;margin-top:4px;padding-left:9px;box-shadow:inset 2px 0 0 var(--rule2)}
.act .cx{font-size:11.5px;color:var(--mute);margin-top:5px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.act .cx svg{width:12px;height:12px;color:var(--blue);flex:none}
.flagbit{color:var(--amber);font-weight:600}
.mini{display:flex;align-items:center;gap:10px;min-height:34px;padding:5px 0;border-top:1px solid var(--rule);flex-wrap:wrap}
.mini:first-of-type{border-top:0}
.mini b{font-weight:600;font-size:12.8px;cursor:pointer;flex:1;min-width:120px;line-height:1.3;letter-spacing:-.005em}
.mini b:hover{color:var(--blue)}
.mini .m{font-size:11.5px;color:var(--mute);font-variant-numeric:tabular-nums}
.team{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:10px}
.tcard{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:13px 14px;cursor:pointer}
.tcard:hover{border-color:#C4D0DA;background:#FCFDFE}
.tcard .h{display:flex;align-items:center;gap:12px}
.tcard .av{width:32px;height:32px;border-radius:50%;color:#fff;display:grid;place-items:center;font-family:var(--raj);font-weight:700;font-size:12px;flex:none}
.tcard b{font-family:var(--raj);font-size:15px;display:block;line-height:1.2}
.tcard small{font-size:11px;color:var(--mute)}
.tcard .bars{display:flex;gap:2px;margin-top:11px;height:5px;border-radius:4px;overflow:hidden;background:var(--page)}
.tcard .bars span{display:block}
.tcard .st2{display:flex;gap:12px;margin-top:9px;flex-wrap:wrap}
.tcard .st2 div .n{font-family:var(--raj);font-weight:700;font-size:16px;font-variant-numeric:tabular-nums;line-height:1}
.tcard .st2 div .l{font-size:10.5px;color:var(--mute);margin-top:1px}
.tcard .warn{margin-top:9px;padding-top:8px;border-top:1px solid var(--rule);font-size:11.5px;color:var(--red);font-weight:500;line-height:1.45}
.tcard .ok{margin-top:9px;padding-top:8px;border-top:1px solid var(--rule);font-size:11.5px;color:var(--mute);line-height:1.45}
.back{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--rule2);background:var(--card);color:var(--mute);
 font-family:var(--raj);font-weight:700;font-size:13px;padding:0 11px;height:28px;border-radius:6px;cursor:pointer}
.back:hover{background:var(--page)}
.cobar{display:flex;align-items:center;gap:12px;margin-bottom:11px;flex-wrap:wrap}
.cohead{background:var(--navy);color:#fff;border-radius:6px;padding:0 16px;min-height:54px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.cohead h2{font-size:19px;color:#fff;line-height:1.15}
.cohead .meta{font-size:12px;color:var(--navyink);margin-top:2px;font-variant-numeric:tabular-nums}
.cohead .rtc{margin-left:auto;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cohead .tag{color:#fff;background:rgba(255,255,255,.1);padding:5px 11px;border-radius:20px}
.cohead .tag i{background:currentColor}
.cohead .own{font-size:12px;color:var(--navyink);display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.cohead .own .ini{width:19px;height:19px;border-radius:50%;color:#fff;font-size:9px;font-weight:700;display:grid;place-items:center;font-family:var(--ui)}
.cohead select{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);color:#fff;border-radius:5px;padding:3px 6px;font:inherit;font-size:12px;cursor:pointer}
.cohead select option{color:var(--ink)}
.cols{display:grid;grid-template-columns:1.35fr 1fr;gap:12px;margin-top:12px;align-items:start}
@media(max-width:1080px){.cols{grid-template-columns:1fr}}
.panel{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:0;margin-bottom:12px}
.panel>h3{padding:0 14px;height:34px;display:flex;align-items:center;background:var(--surf2);border-bottom:1px solid var(--line);margin:0;font-size:12px;letter-spacing:.02em}
.panel>*:not(h3){padding-left:14px;padding-right:14px}
.panel>*:nth-child(2){padding-top:12px}
.panel>*:last-child{padding-bottom:13px}
.panel h3{font-size:14.5px;margin-bottom:10px}
.panel h3 .sm2{font-family:var(--ui);font-size:11.5px;font-weight:400;color:var(--faint);margin-left:7px;letter-spacing:0}
.stagerow{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:10px}
.stagerow button{border:1px solid var(--rule2);background:var(--card);border-radius:6px;height:30px;padding:0 9px;
 font-family:var(--raj);font-weight:600;font-size:13px;color:var(--ink2);cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.stagerow button i{width:7px;height:7px;border-radius:50%}
.stagerow{gap:6px}
.stagerow button:hover{border-color:var(--blue)}
.stagerow button.on{background:var(--navy);border-color:var(--navy);color:#fff}
.pl{display:flex;align-items:flex-end;gap:12px;padding:9px 0;border-top:1px solid var(--rule);flex-wrap:wrap}
.pl.first{border-top:0;padding-top:0}
.pl .pi{flex:1;min-width:110px}.pl .pi b{font-family:var(--raj);font-weight:700;font-size:15px;display:block;line-height:1.25}
.pl .pi span{font-size:11.5px;color:var(--mute)}
.pl .pn{text-align:right}.pl .pn small{display:block;font-size:9.5px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:var(--faint)}
.pl .pn b{font-family:var(--raj);font-weight:700;font-size:17px;color:var(--navy);font-variant-numeric:tabular-nums}
.rsn2{display:flex;gap:9px;align-items:flex-start;padding:9px 0;border-top:1px solid var(--rule)}
.rsn2.first{border-top:0;padding-top:0}
.rsn2 .tk{width:17px;height:17px;border-radius:50%;background:#EAF5EE;color:var(--green);display:grid;place-items:center;flex:none;margin-top:2px}
.rsn2 .tk svg{width:10px;height:10px}
.rsn2 b{font-size:13px;font-weight:600;display:block}.rsn2 span{font-size:12px;color:var(--mute);line-height:1.45}
.lede{font-size:13px;line-height:1.55;margin:0 0 10px}.lede b{font-family:var(--raj);font-size:14.5px}
.agebar{height:22px;background:var(--page);border-radius:5px;position:relative;overflow:hidden;margin-bottom:6px}
.agebar .zone{position:absolute;top:0;bottom:0;background:#E7F2EA}
.agebar .mk{position:absolute;top:0;bottom:0;width:3px;background:var(--blue)}
.agescale{display:flex;justify-content:space-between;font-size:11px;color:var(--faint)}
.mix{display:flex;height:22px;border-radius:5px;overflow:hidden}
.mix span{display:grid;place-items:center;font-family:var(--raj);font-weight:700;font-size:11.5px;color:#fff}
.mixkey{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px}
.mixkey i{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink2);font-style:normal}
.mixkey i b{width:9px;height:9px;border-radius:2px}
.eq{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-top:1px solid var(--rule);font-size:12.5px;color:var(--ink2)}
.eq.first{border-top:0;padding-top:0}.eq b{font-family:var(--raj);font-size:14px;color:var(--ink);text-align:right}
.src{display:flex;gap:8px;align-items:flex-start;padding:6px 0;border-top:1px solid var(--rule);font-size:12px;color:var(--ink2);line-height:1.45}
.src.first{border-top:0;padding-top:0}
.src i{width:5px;height:5px;border-radius:50%;background:var(--rule2);flex:none;margin-top:6px}
.addnote{background:var(--bluetint);border-radius:7px;padding:10px 11px;margin-bottom:10px}
.addnote .kinds{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:7px}
.kind{border:1px solid var(--rule2);background:var(--card);border-radius:6px;height:29px;padding:0 10px;
 font-family:var(--raj);font-weight:600;font-size:13px;cursor:pointer;color:var(--ink);display:inline-flex;align-items:center;gap:6px}
.kind:hover{border-color:var(--blue)}.kind.on{background:var(--blue);border-color:var(--blue);color:#fff}
.addnote textarea{width:100%;min-height:58px;resize:vertical;border:1px solid var(--rule2);border-radius:6px;padding:8px 10px;
 font-family:var(--ui);font-size:13px;line-height:1.5;outline:none;color:var(--ink);background:var(--card)}
.addnote textarea:focus{border-color:var(--blue)}
.addnote .brow{display:flex;gap:8px;align-items:center;margin-top:7px;flex-wrap:wrap}
.addnote .hint{font-size:11.5px;color:var(--mute)}
.notefilt{display:flex;gap:7px;margin-bottom:4px;flex-wrap:wrap}
.notefilt button{border:0;background:transparent;color:var(--mute);font:inherit;font-size:12px;font-weight:500;
 padding:4px 8px;border-radius:5px;cursor:pointer}
.notefilt button:hover{background:var(--page)}
.notefilt button.on{background:var(--page);color:var(--ink);font-weight:600}
.note{display:grid;grid-template-columns:18px 1fr;gap:9px;padding:10px 0;border-top:1px solid var(--rule)}
.note.first{border-top:0}
.note .dot{width:8px;height:8px;border-radius:50%;margin:6px 0 0 5px}
.note .nh{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap}
.note .nk{font-family:var(--raj);font-weight:700;font-size:13px}
.note .nw{font-size:11.5px;color:var(--mute)}
.note .badge{font-size:9px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:1px 5px;border-radius:4px}
.note .badge.sales{background:#EAF2F8;color:var(--blue)}
.note .badge.service{background:#EFF4EE;color:var(--green)}
.note .nt{font-size:12.5px;color:var(--ink2);line-height:1.55;margin-top:3px}
.note.fresh{background:#F4FBF6;border-radius:6px;padding:10px 9px;margin:4px 0}
.ov{position:fixed;inset:0;z-index:60;display:none}.ov.on{display:block}
.ov .bg{position:absolute;inset:0;background:rgba(16,28,38,.42)}
.ov .box{position:relative;max-width:720px;margin:56px auto 0;background:var(--card);border-radius:8px;box-shadow:var(--pop);overflow:hidden}
.ov .oh{display:flex;align-items:center;gap:13px;padding:18px 20px;border-bottom:1px solid var(--rule)}
.ov .oh svg{width:19px;height:19px;color:var(--faint);flex:none}
.ov .oh input{flex:1;border:0;outline:none;font-family:var(--raj);font-weight:600;font-size:20px;color:var(--ink)}
.ov .oh .esc{border:1px solid var(--rule2);background:var(--page);color:var(--mute);font-size:12.5px;padding:7px 12px;border-radius:7px;cursor:pointer}
.ov .res{max-height:60vh;overflow-y:auto}
.ov .hint{padding:36px 24px;text-align:center;color:var(--mute);font-size:15.5px;line-height:1.6}
.ov .r{display:flex;gap:16px;align-items:center;padding:15px 20px;border-top:1px solid var(--rule)}
.ov .r:hover{background:#FAFCFD}
.ov .rn{flex:1;min-width:0}.ov .rn b{font-family:var(--raj);font-weight:700;font-size:17px;display:block}
.ov .rn span{font-size:13.5px;color:var(--mute);font-variant-numeric:tabular-nums}
.ov .ru{text-align:right}.ov .ru b{font-family:var(--raj);font-weight:700;font-size:19px;color:var(--blue);display:block;line-height:1}
.ov .ru span{font-size:12px;color:var(--faint)}
.ov .sfoot{padding:12px 20px;border-top:1px solid var(--rule);font-size:13px;color:var(--faint);background:#FAFBFC}
.toast{position:fixed;bottom:26px;left:50%;transform:translate(-50%,190%);background:var(--navy);color:#fff;padding:15px 22px;border-radius:11px;
 box-shadow:0 20px 44px -14px rgba(16,28,38,.55);display:flex;align-items:center;gap:13px;font-size:15.5px;z-index:80;transition:transform .3s cubic-bezier(.2,.9,.3,1.15)}
.toast.show{transform:translate(-50%,0)}
.toast .tk{width:27px;height:27px;border-radius:50%;background:var(--green);display:grid;place-items:center;flex:none}
.toast .tk svg{width:15px;height:15px;color:#fff}
.toast b{font-family:var(--raj)}.toast small{display:block;color:var(--navyink);font-size:13px}
@media(max-width:820px){.app{grid-template-columns:1fr}.side{display:none}.wrap{padding:18px}}

/* ---- layout grids ---- */
.g2{display:grid;grid-template-columns:1.55fr 1fr;gap:12px;align-items:start}
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;align-items:start}
.gc2{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;align-items:start}
@media(max-width:1240px){.g3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:1080px){.g2,.gc2{grid-template-columns:1fr}.g3{grid-template-columns:1fr}}
.pane{background:var(--card);border:1px solid var(--line);border-radius:6px;overflow:hidden}
.pane .ph{padding:0 14px;height:34px;background:var(--surf2);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px}
.pane .ph h3{font-size:12px;letter-spacing:.02em}
.pane .ph svg{width:13px;height:13px;flex:none;color:var(--violet)}
.pane .ph .n{white-space:nowrap}
.pane .ph .n{margin-left:auto;font-family:var(--raj);font-weight:700;font-size:13.5px;color:var(--mute);font-variant-numeric:tabular-nums}
.pane .pb{padding:3px 14px 11px}
.summary{padding:14px 16px;border-bottom:1px solid var(--line);font-size:14.5px;line-height:1.62;color:var(--ink2)}
.summary b{color:var(--ink);font-weight:600}
.pane .pnote{padding:8px 14px 9px;font-size:11.5px;color:var(--mute);line-height:1.5;border-bottom:1px solid var(--rule);background:#FBFCFD}

/* ---- AI summary ---- */
.ai{background:var(--card);border:1px solid var(--line);border-radius:6px;overflow:hidden;margin-bottom:12px}
.ai .ah2{display:flex;align-items:center;gap:8px;padding:0 16px;height:34px;border-bottom:1px solid var(--rule);background:#FAFBFD}
.ai .ah2 svg{width:13px;height:13px;color:var(--violet);flex:none}
.ai .ah2 .k{font-size:9.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--violet)}
.ai .ah2 .src2{margin-left:auto;font-size:11px;color:var(--faint)}
.ai .ab{padding:13px 16px 14px}
.ai h4{font-size:15.5px;line-height:1.35;margin-bottom:8px;max-width:80ch}
.ai p{margin:0 0 8px;font-size:13px;line-height:1.55;color:var(--ink2);max-width:96ch}
.ai p:last-child{margin-bottom:0}
.ai p b{color:var(--ink);font-weight:600}
.ai.sm2x .ab{padding:11px 14px 12px}.ai.sm2x h4{font-size:14px;margin-bottom:6px}.ai.sm2x p{font-size:12.5px}
.nextup{margin-top:10px;padding-top:9px;border-top:1px solid var(--rule);display:flex;gap:8px;align-items:flex-start}
.nextup svg{width:13px;height:13px;color:var(--blue);flex:none;margin-top:2px}
.nextup .l2{font-size:9.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--blue);display:block;margin-bottom:1px}
.nextup p{font-size:13px;color:var(--ink);margin:0;max-width:90ch}


.sbar{display:flex;gap:2px;height:16px;border-radius:4px;overflow:hidden;background:var(--page)}
.sbar span{display:grid;place-items:center;font-family:var(--raj);font-weight:700;font-size:10px;color:#fff;min-width:0}

.mic{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--rule2);background:var(--card);
 border-radius:6px;height:29px;padding:0 12px;font-family:var(--raj);font-weight:600;font-size:13px;
 color:var(--ink);cursor:pointer;position:relative}
.mic svg{width:14px;height:14px;flex:none}
.mic:hover{border-color:var(--blue);color:var(--blue)}
.mic.rec{background:#B93A2F;border-color:#B93A2F;color:#fff}
.mic.rec svg{color:#fff}
.mic.rec:before{content:"";position:absolute;inset:-3px;border-radius:8px;border:2px solid #B93A2F;
 opacity:.5;animation:mp 1.3s ease-out infinite}
@keyframes mp{0%{transform:scale(1);opacity:.5}100%{transform:scale(1.14);opacity:0}}
.mic[disabled]{opacity:.45;cursor:not-allowed}
.dict{display:flex;align-items:center;gap:9px;margin-top:8px;font-size:12px;color:var(--mute);min-height:17px}
.dict .lv{display:inline-flex;gap:2px;align-items:flex-end;height:12px}
.dict .lv i{width:2.5px;background:#B93A2F;border-radius:2px;animation:lv .9s ease-in-out infinite}
.dict .lv i:nth-child(2){animation-delay:.15s}.dict .lv i:nth-child(3){animation-delay:.3s}
.dict .lv i:nth-child(4){animation-delay:.45s}
@keyframes lv{0%,100%{height:3px}50%{height:12px}}
#noteBox.live{border-color:#B93A2F;background:#FFFBFA}


/* ---------------- phone ---------------- */
a.tel{text-decoration:none}
.callbar{display:none}
@media(max-width:820px){
 .app{grid-template-columns:1fr}
 .side{display:none}
 .wrap{padding:12px 12px 92px;max-width:100%}
 .top{padding:0 13px;height:50px;gap:10px}
 .top h1{font-size:16px}.top .sub{display:none}
 .srch{min-width:0;flex:1;max-width:180px}
 .g2,.g3,.gc2,.cols,.board,.team,.strip,.metrics,.split,.hon,.cards,.c2,.c3,.c4{grid-template-columns:1fr!important}
 .alert{grid-template-columns:1fr!important;gap:7px;padding:13px 14px}
 .alert .mx{text-align:left;display:flex;align-items:baseline;gap:7px}
 .alert .mx b{font-size:19px}
 .alert .ac{width:100%;height:36px;margin-top:2px}
 .cohead{padding:13px 14px;min-height:0;gap:9px}
 .cohead h2{font-size:19px}.cohead .rtc{margin-left:0;width:100%}
 .clockrow{flex-wrap:wrap}.clockrow .cg{width:140px}
 .donutrow{flex-wrap:wrap}
 .tbl .th{display:none}
 .tbl .tr{grid-template-columns:1fr auto!important;gap:4px 10px;padding:11px 13px;min-height:0}
 .tbl .tr .cell{font-size:12px}
 .addnote textarea{min-height:86px;font-size:16px}
 .kind,.mic{height:38px;font-size:14.5px}
 .btn{height:44px}
 .callbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:50;gap:8px;
   padding:9px 12px calc(9px + env(safe-area-inset-bottom));background:rgba(255,255,255,.97);
   border-top:1px solid var(--line);backdrop-filter:blur(8px)}
 .callbar a,.callbar button{flex:1;height:46px;border-radius:9px;border:0;display:inline-flex;align-items:center;
   justify-content:center;gap:8px;font-family:var(--raj);font-weight:700;font-size:16px;text-decoration:none;cursor:pointer}
 .callbar .c1{background:var(--green);color:#fff}
 .callbar .c2{background:var(--blue);color:#fff}
 .callbar svg{width:17px;height:17px}
}


.buys{width:100%;border-collapse:collapse}
.buys th{font-size:9.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);
 text-align:left;padding:0 0 7px;border-bottom:1px solid var(--rule)}
.buys td{padding:7px 0;border-bottom:1px solid var(--line2);font-size:12.5px;color:var(--ink2);font-variant-numeric:tabular-nums}
.buys tr:last-child td{border-bottom:0}
.buys td.m{font-weight:600;color:var(--ink)}
.buys td.r{text-align:right;color:var(--mute);font-size:11.5px}
.buys .nw{font-size:9.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:1px 5px;border-radius:4px;
 background:#EAF2F8;color:var(--blue)}
.buys .us{background:var(--page);color:var(--mute)}
.buyhead{display:flex;gap:16px;flex-wrap:wrap;padding-bottom:11px;margin-bottom:3px;border-bottom:1px solid var(--rule)}
.buyhead div .n{font-family:var(--raj);font-weight:700;font-size:19px;line-height:1;font-variant-numeric:tabular-nums}
.buyhead div .l{font-size:10.5px;color:var(--mute);margin-top:3px}
.buymore{font-size:11.5px;color:var(--faint);padding-top:8px}


/* ---- deliberate colour on panel headers ---- */
.pane .ph{background:var(--surf2)}
.ph.nv{background:var(--navy);border-bottom-color:var(--navy)}
.ph.nv h3,.ph.nv .n{color:#fff}.ph.nv svg{color:#8FC7E8}
.ph.nv .n{font-family:var(--ui);font-weight:500;font-size:11px;color:#9FBACE}
.ph.bl{background:#EAF2F8;border-bottom-color:#CFE0EE}.ph.bl h3{color:var(--blue)}.ph.bl .n{color:var(--blue)}
.ph.gr{background:#EAF5EE;border-bottom-color:#CDE7D8}.ph.gr h3{color:var(--green)}.ph.gr .n{color:var(--green)}
.ph.am{background:#FDF4E6;border-bottom-color:#F0E0C4}.ph.am h3{color:var(--amber)}.ph.am .n{color:var(--amber)}
.ph.rd{background:#FBEDEC;border-bottom-color:#F2D5D2}.ph.rd h3{color:var(--red)}.ph.rd .n{color:var(--red)}
.ph.vi{background:#F2EFF7;border-bottom-color:#DFD7EC}.ph.vi h3{color:var(--violet)}.ph.vi .n{color:var(--violet)}
.srule h2{color:var(--navy)}
.srule .ln{background:linear-gradient(90deg,var(--rule2),var(--rule))}

/* ---- digest ---- */
.digest{padding:16px 20px;font-size:15.5px;line-height:1.7;color:var(--ink2);max-width:104ch}
.digest b{color:var(--ink);font-weight:600}
.dayline{display:flex;align-items:center;gap:10px;padding:9px 18px;background:var(--navy);color:#fff}
.dayline .d{font-family:var(--raj);font-weight:700;font-size:15px}
.dayline .s{margin-left:auto;font-size:11.5px;color:#9FBACE;font-variant-numeric:tabular-nums}

/* ---- activity feed ---- */
.feedwrap{max-height:none;overflow:visible;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line)}
@media(max-width:1080px){.feedwrap{grid-template-columns:1fr}}
.fday{grid-column:1/-1;background:#EDF1F4;padding:6px 16px;font-size:10px;font-weight:700;
 letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}
.fit{display:grid;grid-template-columns:3px 1fr;gap:11px;padding:12px 16px 12px 0;background:var(--card)}
.fit:hover{background:#FAFCFD}
.fit .bar{border-radius:0 2px 2px 0}
.fit .h{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.fit .h b{font-size:13px;font-weight:600;cursor:pointer;letter-spacing:-.005em}
.fit .h b:hover{color:var(--blue)}
.fit .h .w{font-size:11.5px;color:var(--mute)}
.fit .tm{font-size:9.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:1px 6px;border-radius:4px}
.fit .tm.sales{background:#EAF2F8;color:var(--blue)}
.fit .tm.service{background:#EAF5EE;color:var(--green)}
.fit .tx{font-size:12.5px;color:var(--ink2);line-height:1.5;margin-top:4px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.fit .mt{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-top:5px}
.fit .mt .c{font-size:11px;color:var(--faint);font-variant-numeric:tabular-nums}
.fit .tg{font-size:9.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:1px 6px;border-radius:4px;
 background:var(--page);color:var(--mute)}
.fit .tg.assigned{background:#EAF2F8;color:var(--blue)}
.fit .tg.followup{background:#FDF4E6;color:var(--amber)}
.fit .tg.asked{background:#FBEDEC;color:var(--red)}


/* ---- command bar ---- */
.srch{position:relative}
.srch kbd{font-family:var(--ui);font-size:10.5px;font-weight:600;color:var(--faint);background:var(--card);
 border:1px solid var(--rule2);border-radius:4px;padding:1px 5px;margin-left:auto;flex:none}
.ov .box{max-width:640px}
.ov .oh input{font-family:var(--ui);font-weight:400;font-size:16px}
.ov .grp{padding:7px 20px 5px;font-size:9.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
 color:var(--faint);background:#FAFBFC;border-top:1px solid var(--rule)}
.ov .grp:first-child{border-top:0}
.ov .r{display:grid;grid-template-columns:9px 1fr auto;gap:12px;align-items:center;padding:10px 20px;cursor:pointer;border-top:0}
.ov .r.sel{background:var(--bluetint)}
.ov .r .dt{width:8px;height:8px;border-radius:50%}
.ov .r .rn b{font-weight:600;font-size:14px;display:block;letter-spacing:-.005em;font-family:var(--ui)}
.ov .r .rn span{font-size:11.5px;color:var(--mute);font-variant-numeric:tabular-nums}
.ov .r .rt2{text-align:right;font-size:11px;color:var(--faint);white-space:nowrap}
.ov .r .rt2 b{display:block;font-family:var(--raj);font-size:15px;color:var(--ink2)}
.ov .sfoot{padding:9px 20px;border-top:1px solid var(--rule);font-size:11.5px;color:var(--faint);background:#FAFBFC;
 display:flex;gap:14px;align-items:center}
.ov .sfoot kbd{font-size:10px;border:1px solid var(--rule2);border-radius:3px;padding:0 4px;color:var(--mute)}

/* ---- section spine ---- */
.spine{position:sticky;top:54px;z-index:5;display:flex;gap:2px;background:var(--card);border-bottom:1px solid var(--line);
 padding:0 22px;margin:-18px -22px 16px}
.spine a{padding:11px 12px;font-size:12.5px;font-weight:500;color:var(--mute);cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap}
.spine a:hover{color:var(--ink)}
.spine a.on{color:var(--navy);font-weight:600;border-bottom-color:var(--or2,var(--blue))}
.spine .ct{margin-left:5px;font-size:11px;color:var(--faint);font-variant-numeric:tabular-nums}

/* ---- filter bar ---- */
.fbar{display:flex;gap:14px;flex-wrap:wrap;align-items:center;padding:11px 14px;background:var(--card);
 border:1px solid var(--line);border-radius:6px;margin-bottom:10px}
.fgrp{display:flex;align-items:center;gap:6px}
.fgrp .fl{font-size:9.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);margin-right:2px}
.fgrp button{border:1px solid var(--rule2);background:var(--card);border-radius:5px;height:26px;padding:0 9px;
 font-family:var(--ui);font-size:12px;font-weight:500;color:var(--ink2);cursor:pointer}
.fgrp button:hover{border-color:var(--blue);color:var(--blue)}
.fgrp button.on{background:var(--navy);border-color:var(--navy);color:#fff;font-weight:600}
.fbar .res{margin-left:auto;font-size:12px;color:var(--mute);font-variant-numeric:tabular-nums}
.fbar .res b{color:var(--ink);font-weight:600}

/* ---- company pager ---- */
.pager{display:flex;align-items:center;gap:5px;margin-left:auto}
.pager button{border:1px solid var(--rule2);background:var(--card);border-radius:5px;height:28px;width:28px;
 display:grid;place-items:center;cursor:pointer;color:var(--mute)}
.pager button:hover:not([disabled]){border-color:var(--blue);color:var(--blue)}
.pager button[disabled]{opacity:.35;cursor:default}
.pager svg{width:13px;height:13px}
.pager .pc2{font-size:11.5px;color:var(--faint);padding:0 6px;font-variant-numeric:tabular-nums;white-space:nowrap}

.chartpad{padding:10px 14px 12px}
.ph svg,.srule svg{flex:none}
svg.ch{display:block;width:100%;height:auto}
.donutrow svg{flex:none}
.spark{width:100%;margin-top:9px}
.spk{display:flex;align-items:flex-end;gap:9px;margin-top:10px;padding-top:9px;border-top:1px solid var(--rule)}
.spk .sv{flex:1;min-width:0}
.spk .sl{font-size:9.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);white-space:nowrap}
.clockrow{display:flex;align-items:center;gap:14px}
.clockrow .cg{width:168px;flex:none}
.clockrow .ct{flex:1;min-width:0;font-size:12.5px;line-height:1.5;color:var(--ink2)}
.clockrow .ct b{font-family:var(--raj);font-size:14.5px;color:var(--ink)}
.donutrow{display:flex;align-items:center;gap:14px}
.donutrow .dk{flex:1;min-width:0}
.tlnote{font-size:11.5px;color:var(--mute);margin-top:6px;line-height:1.5}
.pc{position:relative;padding-left:13px}
.pc:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:2px;background:var(--acc,transparent)}
.card.acc{position:relative}
.card.acc:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--acc,transparent)}


/* ---- metrics band ---- */
.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);
 border:1px solid var(--line);border-radius:6px;overflow:hidden;margin-bottom:12px}
.metrics .m{background:var(--card);padding:11px 15px 12px}
.metrics .k{font-size:9.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--faint)}
.metrics .v{font-family:var(--raj);font-weight:700;font-size:27px;line-height:1.02;margin-top:6px;font-variant-numeric:tabular-nums;letter-spacing:-.015em}
.metrics .c{font-size:11.5px;color:var(--mute);margin-top:4px;line-height:1.35}
@media(max-width:900px){.metrics{grid-template-columns:repeat(2,1fr)}}
/* ---- prioritised action list ---- */
.alertgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
@media(max-width:1080px){.alertgrid{grid-template-columns:1fr}}
.alert{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"chip metric" "body body" "meta action";
 gap:8px 12px;align-items:start;padding:14px 16px;border:1px solid var(--line);border-radius:8px;
 background:var(--card);box-shadow:inset 3px 0 0 var(--sv)}
.alert .sevchip{grid-area:chip}
.alert .mx{grid-area:metric}
.alert>div:not(.mx){grid-area:body}
.alert .ac{grid-area:action;justify-self:end}
.alert:hover{border-color:#C4D0DA}
.sevchip{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:700;letter-spacing:.07em;
 text-transform:uppercase;color:var(--sv);white-space:nowrap;padding-top:2px}
.sevchip i{width:6px;height:6px;border-radius:50%;background:var(--sv);flex:none}
.alert .ti{font-weight:600;font-size:13.5px;letter-spacing:-.005em;cursor:pointer;line-height:1.3}
.alert .ti:hover{color:var(--blue)}
.alert .de{font-size:12.5px;color:var(--ink2);line-height:1.5;margin-top:4px}
.alert .me{grid-area:meta;font-size:11px;color:var(--faint);font-variant-numeric:tabular-nums;align-self:center;margin:0}
.alert .mx{text-align:right;padding-top:1px}
.alert .mx b{display:block;font-family:var(--raj);font-weight:700;font-size:23px;line-height:1;color:var(--sv);font-variant-numeric:tabular-nums}
.alert .mx span{display:block;font-size:10.5px;color:var(--mute);margin-top:2px}
.alert .ac{border:1px solid var(--rule2);background:var(--card);border-radius:5px;height:29px;padding:0 12px;
 font-size:12px;font-weight:600;color:var(--ink2);cursor:pointer;white-space:nowrap}
.alert .ac:hover{border-color:var(--blue);color:var(--blue);background:var(--bluetint)}

/* ---- section rule ---- */
.srule{display:flex;align-items:center;gap:10px;margin:18px 0 9px}
.srule h2{font-size:12px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--mute);font-family:var(--ui)}
.srule .ln{flex:1;height:1px;background:var(--line)}
.srule .ct{font-size:11.5px;color:var(--faint);font-variant-numeric:tabular-nums}
/* ---- toolbar ---- */
.top{border-bottom:1px solid var(--line)}
.ctxbar{display:flex;align-items:center;gap:9px;font-size:11.5px;color:var(--mute);padding:10px 0 0}
.ctxbar b{color:var(--ink2);font-weight:600}
.ctxbar .dot{width:3px;height:3px;border-radius:50%;background:var(--rule2)}

button:focus-visible,a:focus-visible,select:focus-visible{outline:2px solid var(--blue);outline-offset:3px}

/* ===================== END APPROVED MOCKUP SYSTEM ========================= */

/* ============================================================================
   PART 2 — APP ADDITIONS
   Rules the mockup did not need (login, routing shell, mobile tab bar, table
   sorting/pagination, team rows, company record layout). Everything here obeys
   the same §9 metrics: 1px hairlines, 6px radius, no shadows on panels, 34px
   panel headers, 34px buttons, 38px table rows, tabular-nums on figures.
   ========================================================================== */

/* ---- boot / loading / error / empty --------------------------------------- */
#root.booting{min-height:100vh;background:var(--navy);display:grid;place-items:center}
.bootpane{text-align:center;color:#fff}
.bootmark{font-family:var(--raj);font-weight:700;font-size:30px;letter-spacing:.08em;display:block}
.bootnote{font-size:13px;color:var(--navyink);margin-top:6px;display:block}
.loadingpane{padding:40px 0;color:var(--faint);font-size:13px}
.errpane{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:26px 22px;
 display:flex;flex-direction:column;align-items:flex-start;gap:8px;max-width:520px}
.errpane b{font-family:var(--raj);font-size:17px}
.errpane span{font-size:13px;color:var(--mute)}
.errpane .btn{margin-top:6px}
a.btn{text-decoration:none}
.emptyst{padding:26px 4px;color:var(--mute)}
.emptyst b{display:block;font-family:var(--raj);font-size:15.5px;color:var(--ink);margin-bottom:3px}
.emptyst span{font-size:12.5px}
.nojs{padding:20px;font-family:system-ui,sans-serif}
.fixflag{position:fixed;left:8px;bottom:8px;z-index:90;background:#5F4B93;color:#fff;
 font-family:var(--raj);font-weight:700;font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;
 padding:4px 9px;border-radius:5px;opacity:.85;pointer-events:none}

/* ---- login ---------------------------------------------------------------- */
.loginwrap{min-height:100vh;background:var(--navy);display:grid;place-items:center;padding:24px 16px}
.logincard{background:var(--card);border-radius:10px;width:100%;max-width:394px;padding:28px 28px 22px}
.loginbrand{display:flex;align-items:center;gap:10px;background:var(--navy);margin:-28px -28px 0;
 padding:22px 28px;border-radius:10px 10px 0 0}
.loginbrand img{width:132px;display:block}
.wordmark{font-family:var(--raj);font-weight:700;font-size:19px;color:#fff;letter-spacing:.02em;
 padding-left:10px;margin-left:2px;border-left:1px solid rgba(255,255,255,.28);line-height:1}
.loginlede{font-size:13px;color:var(--mute);margin:16px 0 18px}
.lf{margin-bottom:13px}
.lf label{display:block;font-size:10px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;
 color:var(--mute);margin-bottom:5px}
.lf input{width:100%;height:42px;border:1px solid var(--rule2);border-radius:6px;padding:0 11px;
 font-family:var(--ui);font-size:16px;color:var(--ink);background:var(--card);outline:none}
.lf input:focus{border-color:var(--blue)}
.lerr{background:#FBEDEC;border:1px solid #F2D5D2;color:var(--red);border-radius:6px;padding:9px 11px;
 font-size:12.5px;margin-bottom:12px}
.loginbtn{width:100%;height:44px;margin-top:4px}
.loginbtn[disabled]{opacity:.6;cursor:default}
.loginfoot{font-size:11px;color:var(--faint);text-align:center;margin:16px 0 0}

/* ---- rail + top bar ------------------------------------------------------- */
.side .brand{display:flex;align-items:center;margin:0 6px 14px;text-decoration:none}
.side .brand img{width:118px;display:block;margin:0}
.side .brand .wordmark{font-size:16px}
.side .who .swap{display:inline-flex;align-items:center;justify-content:center;gap:7px}
.side .who .swap svg{width:13px;height:13px}
.side nav a{text-decoration:none}
.srch{border:1px solid var(--rule);background:var(--page);border-radius:7px;height:34px;padding:0 10px;
 display:flex;align-items:center;gap:8px;cursor:pointer;color:var(--faint);min-width:0;max-width:330px;
 font:inherit;text-align:left}
.srch:hover{border-color:var(--rule2);background:var(--card)}
.srch .srchtxt{font-size:12.5px;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tophd{min-width:0}
.wrap{width:100%}

/* ---- mobile tab bar ------------------------------------------------------- */
.tabbar{display:none}
@media(max-width:820px){
 .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:48;
  background:rgba(255,255,255,.97);border-top:1px solid var(--line);backdrop-filter:blur(8px);
  padding-bottom:env(safe-area-inset-bottom)}
 .tabbar a,.tabbar button{flex:1;min-width:0;min-height:56px;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:3px;text-decoration:none;color:var(--mute);
  background:transparent;border:0;cursor:pointer;font:inherit;padding:6px 2px}
 .tabbar svg{width:19px;height:19px}
 .tabbar span{font-size:10px;font-weight:600;letter-spacing:.01em;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;max-width:100%}
 .tabbar a.on{color:var(--blue)}
 body.on-company .tabbar{display:none}
}

/* ---- KPI strip (clickable figures) --------------------------------------- */
.metrics.kpi7{grid-template-columns:repeat(7,minmax(0,1fr))}
@media(max-width:1400px){.metrics.kpi7{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:900px){.metrics.kpi7{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Wave 2 adds a "New signals" figure — the band becomes an 8-up. minmax(0,1fr)
   is what stops a long label from pushing the track wider than its share. */
.metrics.kpi8{grid-template-columns:repeat(8,minmax(0,1fr))}
@media(max-width:1400px){.metrics.kpi8{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:900px){.metrics.kpi8{grid-template-columns:repeat(2,minmax(0,1fr))}}
.metrics a.m{text-decoration:none;color:inherit;display:block}
.metrics a.m:hover{background:#FAFCFD}
.metrics a.m:hover .v{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}

/* ---- alerts: inline assign + resolve ------------------------------------- */
.alert .acs{grid-area:action;justify-self:end;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.alert .asg{border:1px solid var(--rule2);background:var(--card);border-radius:5px;height:29px;
 padding:0 7px;font:inherit;font-size:12px;color:var(--ink2);cursor:pointer;max-width:150px}
.alert .asg:hover{border-color:var(--blue);color:var(--blue)}
.alert.gone{opacity:0;transform:translateY(-4px);transition:opacity .2s,transform .2s}
.alert .ti.nolink{cursor:default}
.alert .ti.nolink:hover{color:inherit}
.coalerts{margin:11px 0 0}

/* ---- digest --------------------------------------------------------------- */
.digestpane .digest p{margin:0 0 11px}
.digestpane .digest p:last-child{margin-bottom:0}

/* ---- rep call cards ------------------------------------------------------- */
.toplede{color:var(--mute);font-size:13px;max-width:78ch;margin:0 0 12px}
.callstack{display:grid;gap:10px}
.callcard{margin-bottom:0}
.callcard .chead h3 span{cursor:pointer}
.callcard .callnum{background:var(--surf2)}
.callcard .pers{align-items:center}
.callcard .tel{text-align:right}
.callcard .tel .k{font-size:9.5px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;
 color:var(--faint);display:block;margin-bottom:1px}
/* §9: the phone number is the largest thing on a call card.
   Selector is deliberately specific — the mockup's `.pers .tel .n` is 20px and
   would otherwise win on specificity. */
.callcard .pers .tel .callphone,
.callcard .pers .tel a.callphone{font-family:var(--raj);font-weight:700;font-size:27px;line-height:1.05;
 color:var(--navy);font-variant-numeric:tabular-nums;letter-spacing:-.01em;display:block;text-decoration:none}
.callcard .pers .tel a.callphone:hover{color:var(--blue)}
.callcard .why p{margin:0;font-size:13.5px;line-height:1.55;color:var(--ink2)}
.callcard .acts .btn.go{min-width:0}
.endline{font-family:var(--raj);font-weight:700;font-size:15px;color:var(--mute);
 text-align:center;padding:16px 0 2px;margin:0}
.endline.sm{font-size:13px;padding:12px 0}

/* ---- pipeline ------------------------------------------------------------- */
.reppick{display:flex;align-items:center;gap:9px;margin-bottom:11px}
.reppick label{font-size:9.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--faint)}
.reppick select{border:1px solid var(--rule2);background:var(--card);border-radius:6px;height:32px;
 padding:0 9px;font:inherit;font-size:13px;color:var(--ink);cursor:pointer}
.reppick select:hover{border-color:var(--blue)}
.pc{cursor:pointer}
.pc:hover{border-color:#C4D0DA;background:#FCFDFE}
.pcfoot{display:flex;align-items:center;gap:8px;margin-top:7px;padding-top:7px;border-top:1px solid var(--rule)}
.pcfoot .ago{font-size:11.5px;color:var(--mute);font-variant-numeric:tabular-nums}
.pcfoot .ago.late{color:var(--red);font-weight:500}
.sdot{margin-left:auto;display:inline-flex;align-items:center;gap:5px;font-family:var(--raj);
 font-weight:700;font-size:12.5px;color:var(--mute);font-variant-numeric:tabular-nums}
.sdot i{width:7px;height:7px;border-radius:50%;flex:none}

/* ---- companies table ------------------------------------------------------ */
.fbar .fsearch{display:flex;align-items:center;gap:7px;border:1px solid var(--rule2);background:var(--card);
 border-radius:6px;height:32px;padding:0 10px;flex:1;min-width:210px;max-width:340px}
.fbar .fsearch svg{width:14px;height:14px;color:var(--faint);flex:none}
.fbar .fsearch input{border:0;outline:none;background:transparent;font:inherit;font-size:13px;
 width:100%;min-width:0;color:var(--ink)}
.tbl.co7 .th,.tbl.co7 .tr{grid-template-columns:2.4fr .9fr 1.25fr .6fr .75fr .9fr .7fr}
.tbl .tr{cursor:pointer}
.tbl.busy{opacity:.55;transition:opacity .12s}
.tbl .co .stwrap{display:flex;align-items:center;gap:7px}
.dt2{width:8px;height:8px;border-radius:50%;flex:none;display:inline-block}
.tbl .co span{padding-left:15px}
.tbl .cell.num2{font-variant-numeric:tabular-nums;font-family:var(--raj);font-weight:600;font-size:13.5px;color:var(--ink)}
.tbl .owncell .onm{font-size:12.5px;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tbl .unass{color:var(--faint)}
.custchip{font-size:9.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:2px 6px;
 border-radius:4px;background:#F1EEF6;color:var(--violet);white-space:nowrap}
.tbl .th .sortbtn{border:0;background:transparent;padding:0;cursor:pointer;font:inherit;font-size:9.5px;
 font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--faint);display:inline-flex;
 align-items:center;gap:4px}
.tbl .th .sortbtn:hover{color:var(--blue)}
.tbl .th .sortbtn.on{color:var(--navy)}
.tbl .th .sortbtn .arw{font-size:11px;line-height:1}
.tbl .tr.norows{grid-template-columns:1fr!important;cursor:default}
.tbl .tr.norows .cell{color:var(--faint);padding:10px 0}
.tblpager{display:flex;align-items:center;gap:10px;justify-content:center;padding:12px 0 0}
.tblpager .btn{text-decoration:none}
.tblpager .btn[disabled]{opacity:.4;cursor:default}
.tblpager .btn svg{width:12px;height:12px}
.tblpager .pc2{font-size:12px;color:var(--mute);font-variant-numeric:tabular-nums}

/* ---- feed ----------------------------------------------------------------- */
/* Sticky day headers. Two things fight this:
   1. `.pane{overflow:hidden}` (approved mockup) is a scroll container, which
      neutralises sticky — so the feed's own pane opts out and re-declares the
      corner radii the overflow was clipping.
   2. The top bar is sticky at 54px, so headers park below it, not under it. */
.feedpane{overflow:visible}
.feedpane>.ph{border-radius:6px 6px 0 0}
.feedpane>.feedmore{border-radius:0 0 6px 6px;background:var(--card)}
.feedpane .fday{position:sticky;top:54px;z-index:3}
@media(max-width:820px){.feedpane .fday{top:50px}}
.feedmore{padding:11px 16px;border-top:1px solid var(--line);display:flex;align-items:center;gap:12px}
.feedmore .btn{text-decoration:none}
.fit .h b.nolink{cursor:default}
.fit .h b.nolink:hover{color:inherit}

/* ---- team ----------------------------------------------------------------- */
.treps{display:flex;flex-direction:column}
.treprow{display:grid;grid-template-columns:1.5fr repeat(5,.62fr) .8fr 1.15fr 1.5fr;gap:12px;
 align-items:center;padding:12px 16px;border-top:1px solid var(--rule);cursor:pointer}
.treprow:first-child{border-top:0}
.treprow:hover{background:#FAFCFD}
.trep-who{display:flex;align-items:center;gap:10px;min-width:0}
.trep-who .av{width:30px;height:30px;border-radius:50%;color:#fff;display:grid;place-items:center;
 font-family:var(--raj);font-weight:700;font-size:11.5px;flex:none}
.trep-who b{font-family:var(--raj);font-size:14.5px;display:block;line-height:1.2}
.trep-who small{font-size:11px;color:var(--mute)}
.trep-fig,.trep-last{min-width:0}
.trep-fig .n,.trep-last .n2{font-family:var(--raj);font-weight:700;font-size:17px;line-height:1;
 font-variant-numeric:tabular-nums;display:block}
.trep-last .n2{font-size:13px;color:var(--ink2)}
.trep-fig .l,.trep-last .l{font-size:10px;color:var(--mute);margin-top:3px;display:block;line-height:1.25}
.treprow .spk{margin-top:0;padding-top:0;border-top:0;gap:8px}
.treprow .spk .sl{line-height:1.2}
.sparkempty{font-size:11px;color:var(--faint)}
.trep-say{font-size:11.5px;line-height:1.45}
.trep-say .warn{color:var(--red);font-weight:500}
.trep-say .ok{color:var(--mute)}
@media(max-width:1240px){
 .treprow{grid-template-columns:1.4fr repeat(3,.7fr) 1fr;row-gap:10px}
 .treprow .trep-fig:nth-of-type(n+4){display:none}
 .treprow .spk,.treprow .trep-say,.treprow .trep-last{grid-column:1/-1}
}

/* ---- company record ------------------------------------------------------- */
/* Multi-column flow, not a grid: panels keep their §9 document order (who to
   call → why → what they run → what they bought → what happened) reading down
   column one then column two, and the columns balance instead of leaving the
   ragged row gaps a grid would. Collapses to one column on mobile, where the
   reading order is exactly the §9 sequence. */
.corec{columns:2;column-gap:12px;margin-top:12px;max-width:1320px}
.corec>*{break-inside:avoid;-webkit-column-break-inside:avoid;page-break-inside:avoid;
 margin-bottom:12px;display:block;width:100%}
@media(max-width:1080px){.corec{columns:1;max-width:none}}
.cohead .cohd{min-width:220px;flex:1}
.cohead .tag{max-width:100%;white-space:normal;line-height:1.35;text-align:left}
.cohead .btn.claim{background:var(--sky);color:var(--navy);height:30px;font-size:13px}
.cohead .btn.claim:hover{background:#4FC8F4}
.cobar .back{cursor:pointer}
.cobar .back svg{width:12px;height:12px}

/* Who to call — the number is the point of the panel. */
.pl .pn{display:flex;flex-direction:column;align-items:flex-end;text-decoration:none}
.pl a.tel.pn b{font-size:23px;color:var(--navy);line-height:1.1}
.pl a.tel.pn:hover b{color:var(--blue)}
.pl .pn small{display:block;font-size:9.5px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;
 color:var(--faint)}
.pl .pn.nophone b{font-size:19px;color:var(--faint)}

.winline{display:flex;align-items:baseline;gap:10px;margin-top:11px;padding-top:10px;
 border-top:1px solid var(--rule);flex-wrap:wrap}
.winline b{font-family:var(--raj);font-weight:700;font-size:14px;color:var(--ink);
 font-variant-numeric:tabular-nums}
.rsn2 b{line-height:1.35}

.mixwrap{margin:11px 0 4px}
.mixwrap .lbl{display:block;margin-bottom:5px}
.unitwrap{margin-top:12px;overflow-x:auto}
.buys.units{min-width:320px}
.buys td.vin{font-family:var(--raj);font-weight:600;letter-spacing:.02em;color:var(--ink)}
.buyhead div .n.sm3{font-size:13px;padding-top:4px}
.pane .pb>table.buys{margin-top:4px}

.flagrow{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.fchip{border:1px solid var(--rule2);background:var(--card);border-radius:6px;height:29px;padding:0 10px;
 font-family:var(--ui);font-size:12.5px;font-weight:500;color:var(--ink2);cursor:pointer}
.fchip:hover{border-color:var(--amber);color:var(--amber)}
.fchip.on{background:#FDF4E6;border-color:#F0E0C4;color:var(--amber);font-weight:600}
.addnote .brow .hint{color:var(--mute)}
#noteList .note:first-child{border-top:0}
.note.fresh{animation:freshin .5s ease-out}
@keyframes freshin{0%{background:#DFF3E6}100%{background:#F4FBF6}}
.note .badge,.note .tm{margin-right:2px}
.note .tg{font-size:9.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:1px 6px;
 border-radius:4px;background:var(--page);color:var(--mute)}
.note .tg.followup{background:#FDF4E6;color:var(--amber)}
.note .tg.asked{background:#FBEDEC;color:var(--red)}
.note .tg.assigned{background:#EAF2F8;color:var(--blue)}

.callbar .c1.off{background:var(--rule2);color:var(--mute);cursor:default}

/* ---- signals (wave 2) ----------------------------------------------------- */
/* The row borrows the alert row's language on purpose: a 3px inset severity
   stripe, a coloured dot, then a plain sentence. Strength drives both, through
   --sg set inline from ui.js's STRENGTH table (strong red-amber, medium blue,
   weak grey). The panel body is NOT .pb — the rows run edge to edge so the
   stripe sits flush against the panel's own hairline. */
.sigpane .ph svg{color:var(--amber)}
.sigwrap{display:flex;flex-direction:column}
.sigwrap.isempty{padding:0 14px}
.sigrow{display:grid;grid-template-columns:9px minmax(0,1fr) auto;gap:11px;align-items:start;
 padding:11px 14px 11px 15px;border-top:1px solid var(--rule);background:var(--card);
 box-shadow:inset 3px 0 0 var(--sg,var(--rule2))}
.sigrow:first-child{border-top:0}
.sigrow:hover{background:#FAFCFD}
.sgdot{width:9px;height:9px;border-radius:50%;background:var(--sg,var(--faint));margin-top:5px;flex:none}
.sgb{min-width:0}
.sgt{font-size:13.5px;font-weight:600;line-height:1.4;letter-spacing:-.005em;color:var(--ink)}
/* §9 has no italic tradition — a quote is quotation marks, a hairline rule and
   a quieter ink, never slanted type. */
.sgq{margin-top:5px;padding-left:10px;box-shadow:inset 2px 0 0 var(--rule2);
 font-size:12.5px;color:var(--ink2);line-height:1.5;font-style:normal}
.sgd{margin-top:4px;font-size:12px;color:var(--mute);line-height:1.45}
.sgm{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;margin-top:6px;font-size:11px;color:var(--faint)}
.sgm b{font-family:var(--ui);font-weight:600;font-size:12px;color:var(--ink2);cursor:pointer;letter-spacing:-.005em}
.sgm b:hover{color:var(--blue)}
.sgk{font-size:9.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:1px 6px;
 border-radius:4px;background:var(--page);color:var(--mute)}
.sgst{font-size:9.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:1px 6px;
 border-radius:4px;background:#EAF2F8;color:var(--blue)}
.sgs,.sgw{font-variant-numeric:tabular-nums}
.sgacts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.sgac{border:1px solid var(--rule2);background:var(--card);border-radius:5px;height:29px;padding:0 10px;
 font-family:var(--ui);font-size:12px;font-weight:600;color:var(--ink2);cursor:pointer;white-space:nowrap;
 display:inline-flex;align-items:center;justify-content:center;gap:6px}
.sgac svg{width:12px;height:12px;flex:none}
.sgac:hover{border-color:var(--blue);color:var(--blue);background:var(--bluetint)}
.sgac.drop:hover{border-color:var(--red);color:var(--red);background:#FBEDEC}
.sgac[disabled]{opacity:.5;cursor:default}
.sigfoot{justify-content:flex-start}
.sigfoot .sgnote{font-size:11.5px;color:var(--faint);line-height:1.4}
.sigpane .pnote{border-bottom:1px solid var(--rule)}

/* Federal record — the amber inset-rule treatment §9 uses for anything the
   salesperson should read before dialling. Loud enough to see, quiet enough
   not to shout. */
.fmwarn{margin:11px 0 2px;padding:9px 11px;background:var(--sand);border-radius:0 5px 5px 0;
 box-shadow:inset 3px 0 0 var(--amber)}
.fmwarn b{display:block;font-size:12.5px;font-weight:600;color:#3A2E19;line-height:1.45}
.fmwarn span{display:block;font-size:11.5px;color:var(--mute);margin-top:3px;line-height:1.45}

/* ---- search overlay additions -------------------------------------------- */
.ov .r{align-items:center}
.ov .r .addbtn{border:1px solid var(--rule2);background:var(--card);border-radius:5px;height:27px;
 padding:0 9px;font:inherit;font-size:11.5px;font-weight:600;color:var(--faint);cursor:not-allowed;
 white-space:nowrap;opacity:.75}
.ov .fedrow{grid-template-columns:9px 1fr auto auto}
.ov .sfoot kbd{margin-right:4px}
.ov .hint b{color:var(--ink2)}

/* ---- phone ---------------------------------------------------------------- */
@media(max-width:820px){
 .wrap{padding:12px 12px 96px}
 body.on-company .wrap{padding-bottom:86px}
 .corec{grid-template-columns:1fr;margin-top:10px}
 .metrics.kpi7{grid-template-columns:repeat(2,minmax(0,1fr))}
 .metrics.kpi8{grid-template-columns:repeat(2,minmax(0,1fr))}
 .srch{max-width:none;flex:1;height:38px}
 .srch .srchtxt,.srch kbd{display:none}
 /* Signals stack: dot + sentence on one row, the controls get their own line
    as full-width 52px targets rather than three squeezed buttons. */
 .sigrow{grid-template-columns:9px minmax(0,1fr);gap:10px;padding:13px 13px 13px 15px}
 .sgacts{grid-column:1/-1;justify-content:stretch;gap:8px;margin-top:2px}
 .sgac{height:52px;min-width:0;flex:1 1 30%;padding:0 10px;font-size:14px}
 .sgac svg{width:15px;height:15px}
 .sgt{font-size:14px}
 .sgq,.sgd{font-size:13px}
 .sigfoot{flex-wrap:wrap}
 /* Ten kind chips wrap to five rows on a phone and push the list off the
    screen. Nothing is hidden — the row swipes sideways instead, which is the
    only way to keep every kind reachable AND the first signal above the fold. */
 .fgrp.kindgrp{flex:1 1 100%;min-width:0;flex-wrap:nowrap;overflow-x:auto;
   scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:2px}
 .fgrp.kindgrp::-webkit-scrollbar{display:none}
 .fgrp.kindgrp>*{flex:none}
 .callstack{gap:12px}
 /* Touch targets ≥52px and 16px inputs (no iOS zoom) — §9. */
 .btn,.btn.go,.btn.alt{height:52px;font-size:16px}
 .btn.sm{height:44px;font-size:14.5px}
 .kind,.mic,.fchip{height:46px;font-size:15px;padding:0 14px}
 .filters button,.fgrp button,.stagerow button,.notefilt button{height:44px;font-size:14px;padding:0 13px}
 .fbar{gap:10px;padding:10px 11px}
 .fbar .fsearch{height:46px;max-width:none;flex:1 1 100%}
 .fbar .fsearch input{font-size:16px}
 .fgrp{flex-wrap:wrap;gap:5px}
 /* Picking a named rep is a desk affordance — those chips wrapped to three
    rows and pushed the table below the fold. Any/Unassigned/Mine remain. */
 .fgrp button.deskonly{display:none}
 /* The header row is hidden on phones, so figures would lose their meaning.
    Put the column name back in front of each one. */
 .tbl .cell[data-l]::before{content:attr(data-l);font-size:9.5px;font-weight:700;letter-spacing:.07em;
  text-transform:uppercase;color:var(--faint);margin-right:6px}
 .addnote textarea{font-size:16px;min-height:96px}
 .lf input{height:48px;font-size:16px}
 .ov .box{margin:10px auto 0;max-width:calc(100% - 16px)}
 .ov .oh input{font-size:16px}
 .ov .res{max-height:72vh}
 .ov .r{padding:14px 16px;min-height:56px}
 .tabbar a,.tabbar button{min-height:56px}
 .treprow{grid-template-columns:1fr 1fr;row-gap:10px;padding:14px 13px}
 .treprow .trep-who{grid-column:1/-1}
 .tblpager .btn{height:46px}
 .callphone{font-size:27px}
 .pl a.tel.pn b{font-size:24px}
 .callcard .pers{gap:12px}
 .reppick select{height:46px;font-size:16px}
 .metrics a.m{padding:13px 14px}
 .endline{padding:18px 0 4px}
}
@media(max-width:420px){
 .callcard .pers{flex-direction:column;align-items:flex-start}
 .callcard .tel{text-align:left}
 .pl{gap:6px}
 .pl .pn{align-items:flex-start}
}
