
:root{
  --bg:#EEF2F1; --surface:#FFFFFF; --surface-2:#F6F8F8; --sunk:#E6ECEA;
  --ink:#13201C; --ink-2:#465752; --ink-3:#7A8A85; --line:#D9E1DE; --line-2:#E8EDEB;
  --accent:#0D6B5B; --accent-2:#0A5549; --accent-ink:#FFFFFF; --accent-soft:#DCEEE9;
  --side:#10231F; --side-ink:#D5E4DF; --side-ink-2:#8FA8A1; --side-hi:#1C3832;
  --good:#1E8A4F; --good-soft:#DDF1E4; --warn:#B26A00; --warn-soft:#FBEBD1;
  --bad:#B8322A; --bad-soft:#F8DEDB; --info:#2F5FB8; --info-soft:#DEE7F8; --muted-soft:#E9EEEC;
  --t-call:#1F9D7A; --t-email:#4467CF; --t-meeting:#D2821F; --t-linkedin:#7A57C6; --t-update:#8C9894;
  --sg1:#C3E3DA; --sg2:#93CDBE; --sg3:#5FB2A0; --sg4:#2F917E; --sg5:#136F5E; --sg6:#094A3F;
  --shadow:0 1px 2px rgba(16,35,31,.06),0 8px 24px rgba(16,35,31,.08);
  --f-display:"Bricolage Grotesque","Segoe UI",system-ui,sans-serif;
  --f-body:"Instrument Sans","Segoe UI",system-ui,-apple-system,sans-serif;
  --f-mono:"JetBrains Mono",ui-monospace,"Cascadia Mono",Consolas,monospace;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --bg:#0D1412; --surface:#151E1B; --surface-2:#1A2522; --sunk:#111917;
    --ink:#E4EDEA; --ink-2:#A7B7B2; --ink-3:#71827D; --line:#27352F; --line-2:#1F2B28;
    --accent:#3DB39B; --accent-2:#55C7B0; --accent-ink:#06201A; --accent-soft:#163630;
    --side:#0A100E; --side-ink:#D5E4DF; --side-ink-2:#7D948D; --side-hi:#183029;
    --good:#4CC486; --good-soft:#15342A; --warn:#E9A64A; --warn-soft:#3A2A12; --bad:#EE766B; --bad-soft:#3D1D1A; --info:#7EA2EE; --info-soft:#1C2A45; --muted-soft:#1E2926;
    --t-call:#3CC39C; --t-email:#7B97EC; --t-meeting:#E9A24A; --t-linkedin:#A488E6; --t-update:#8FA09B;
    --sg1:#1C463D; --sg2:#205B4F; --sg3:#28786A; --sg4:#379783; --sg5:#58B9A3; --sg6:#8ADCC8;
    --shadow:0 1px 2px rgba(0,0,0,.3),0 10px 30px rgba(0,0,0,.35);
  }
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#0D1412; --surface:#151E1B; --surface-2:#1A2522; --sunk:#111917;
  --ink:#E4EDEA; --ink-2:#A7B7B2; --ink-3:#71827D; --line:#27352F; --line-2:#1F2B28;
  --accent:#3DB39B; --accent-2:#55C7B0; --accent-ink:#06201A; --accent-soft:#163630;
  --side:#0A100E; --side-ink:#D5E4DF; --side-ink-2:#7D948D; --side-hi:#183029;
  --good:#4CC486; --good-soft:#15342A; --warn:#E9A64A; --warn-soft:#3A2A12; --bad:#EE766B; --bad-soft:#3D1D1A; --info:#7EA2EE; --info-soft:#1C2A45; --muted-soft:#1E2926;
  --t-call:#3CC39C; --t-email:#7B97EC; --t-meeting:#E9A24A; --t-linkedin:#A488E6; --t-update:#8FA09B;
  --sg1:#1C463D; --sg2:#205B4F; --sg3:#28786A; --sg4:#379783; --sg5:#58B9A3; --sg6:#8ADCC8;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 10px 30px rgba(0,0,0,.35);
}
*{box-sizing:border-box}
html,body{height:100%}
body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--accent)}
.num,.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
h1,h2,h3{font-family:var(--f-display);margin:0;text-wrap:balance;letter-spacing:-.01em}
h1{font-size:26px;font-weight:700}
h2{font-size:17px;font-weight:700}
h3{font-size:14px;font-weight:600;font-family:var(--f-body)}
.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);font-weight:600}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* Shell */
.app{display:grid;grid-template-columns:236px minmax(0,1fr);min-height:100%}
.side{background:var(--side);color:var(--side-ink);padding:20px 12px;display:flex;flex-direction:column;gap:18px;position:sticky;top:env(safe-area-inset-top,0px);height:100vh;height:100dvh}
.brand{display:flex;align-items:center;gap:10px;padding:0 8px}
.mark{width:34px;height:34px;border-radius:9px;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font-family:var(--f-display);font-weight:700;font-size:17px;flex:none}
.brand b{font-family:var(--f-display);font-size:16px;font-weight:700;line-height:1.1;display:block;color:#fff}
.brand small{color:var(--side-ink-2);font-size:11.5px}
.nav{display:flex;flex-direction:column;gap:2px}
.nav button{all:unset;cursor:pointer;display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;color:var(--side-ink);font-weight:500}
.nav button:hover{background:var(--side-hi)}
.nav button[aria-current="page"]{background:var(--side-hi);color:#fff;box-shadow:inset 3px 0 0 var(--accent)}
.nav button:focus-visible{outline:2px solid var(--accent)}
.nav svg{width:17px;height:17px;flex:none;opacity:.9}
.nav .badge{margin-left:auto}
.side-foot{margin-top:auto;display:flex;flex-direction:column;gap:8px;padding:0 8px;font-size:12px;color:var(--side-ink-2)}
.side-foot button{all:unset;cursor:pointer;color:var(--side-ink);display:flex;align-items:center;gap:8px;padding:6px 0}
.side-foot button:hover{color:#fff}
.side-foot svg{width:15px;height:15px}
.sync{display:flex;align-items:center;gap:6px}
.sync i{width:7px;height:7px;border-radius:50%;background:var(--side-ink-2)}
.sync.on i{background:#4CC486}
.badge{font-family:var(--f-mono);font-size:11px;min-width:20px;height:19px;padding:0 6px;border-radius:10px;display:inline-grid;place-items:center;background:var(--bad);color:#fff;font-weight:500}
.badge.soft{background:var(--side-hi);color:var(--side-ink)}

main{padding-block:26px 60px;padding-inline:32px;min-width:0}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px}
.page-head p{margin:4px 0 0;color:var(--ink-2)}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.grow{flex:1}

/* Controls */
.btn{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 13px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;font-weight:500;white-space:nowrap}
.btn:hover{border-color:var(--ink-3)}
.btn svg{width:15px;height:15px}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn.primary:hover{background:var(--accent-2);border-color:var(--accent-2)}
.btn.ghost{background:transparent;border-color:transparent;color:var(--ink-2)}
.btn.ghost:hover{background:var(--muted-soft)}
.btn.danger{color:var(--bad);border-color:var(--bad-soft);background:transparent}
.btn.danger.armed{background:var(--bad);color:#fff;border-color:var(--bad)}
.btn.sm{height:28px;padding:0 9px;font-size:12.5px}
.icon-btn{all:unset;cursor:pointer;width:28px;height:28px;border-radius:7px;display:inline-grid;place-items:center;color:var(--ink-3)}
.icon-btn:hover{background:var(--muted-soft);color:var(--ink)}
.icon-btn:focus-visible{outline:2px solid var(--accent)}
.icon-btn svg{width:15px;height:15px}
.icon-btn.t-call:hover{color:var(--t-call)} .icon-btn.t-email:hover{color:var(--t-email)} .icon-btn.t-linkedin:hover{color:var(--t-linkedin)}
.field{display:flex;flex-direction:column;gap:5px}
.field label{font-size:12px;font-weight:600;color:var(--ink-2)}
.input,select.input,textarea.input{height:34px;border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:0 10px;min-width:0;width:100%}
textarea.input{height:auto;min-height:90px;padding:8px 10px;resize:vertical;line-height:1.5}
.input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.search{position:relative;flex:1 1 220px;max-width:340px}
.search svg{position:absolute;left:10px;top:9px;width:16px;height:16px;color:var(--ink-3)}
.search .input{padding-left:32px}
.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
.toolbar select.input{width:auto}

/* Segments */
.segbar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin-bottom:14px}
.segbtn{all:unset;cursor:pointer;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:6px;min-width:0}
.segbtn:hover{border-color:var(--ink-3)}
.segbtn[aria-pressed="true"]{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft) inset}
.segbtn:focus-visible{outline:2px solid var(--accent)}
.segbtn .top{display:flex;justify-content:space-between;align-items:baseline;gap:6px}
.segbtn b{font-family:var(--f-mono);font-size:18px;font-weight:500}
.segbtn span{font-size:12px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bars{display:inline-flex;align-items:flex-end;gap:2px;height:12px}
.bars i{width:3px;border-radius:1px;background:var(--line)}
.bars i:nth-child(1){height:4px}.bars i:nth-child(2){height:5.5px}.bars i:nth-child(3){height:7px}.bars i:nth-child(4){height:8.5px}.bars i:nth-child(5){height:10px}.bars i:nth-child(6){height:12px}
.bars i.on{background:var(--accent)}
.seg{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-2);white-space:nowrap}
.seg .num{font-size:11.5px}

/* Pills */
.pill{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 8px;border-radius:11px;font-size:12px;font-weight:500;background:var(--muted-soft);color:var(--ink-2);white-space:nowrap}
.pill.good{background:var(--good-soft);color:var(--good)} .pill.warn{background:var(--warn-soft);color:var(--warn)} .pill.bad{background:var(--bad-soft);color:var(--bad)} .pill.info{background:var(--info-soft);color:var(--info)} .pill.accent{background:var(--accent-soft);color:var(--accent)}
.dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none}
.tdot-call{background:var(--t-call)}.tdot-email{background:var(--t-email)}.tdot-meeting{background:var(--t-meeting)}.tdot-linkedin{background:var(--t-linkedin)}.tdot-update{background:var(--t-update)}
.sample-tag{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);border:1px dashed var(--line);border-radius:4px;padding:0 4px;margin-left:6px;font-weight:600}

/* Panels & tables */
.panel{background:var(--surface);border:1px solid var(--line);border-radius:12px}
.panel-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px 10px}
.panel-body{padding:0 16px 14px}
.table-wrap{overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-radius:12px}
table{border-collapse:collapse;width:100%;min-width:760px}
th{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);text-align:left;font-weight:600;padding:10px 12px;border-bottom:1px solid var(--line);background:var(--surface-2);white-space:nowrap}
td{padding:10px 12px;border-bottom:1px solid var(--line-2);vertical-align:middle}
tr:last-child td{border-bottom:0}
tbody tr.click{cursor:pointer}
tbody tr.click:hover td{background:var(--surface-2)}
.cell-main{font-weight:600;color:var(--ink)}
.cell-sub{font-size:12.5px;color:var(--ink-3)}
.copyable{display:inline-flex;align-items:center;gap:2px;max-width:100%}
.copyable span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}
.muted{color:var(--ink-3)}
.empty{padding:34px 16px;text-align:center;color:var(--ink-3)}
.empty b{display:block;color:var(--ink-2);font-size:15px;margin-bottom:4px}
.li-link{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:5px;background:#0A66C2;color:#fff;font-weight:700;font-size:11.5px;text-decoration:none;font-family:var(--f-body)}
.li-link:hover{filter:brightness(1.1)}

/* Today */
.goals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}
.goal{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:10px}
.goal .top{display:flex;justify-content:space-between;align-items:center}
.goal .val{font-family:var(--f-mono);font-size:26px;font-weight:500;line-height:1}
.goal .val small{font-size:14px;color:var(--ink-3)}
.meter{height:6px;border-radius:3px;background:var(--sunk);overflow:hidden}
.meter i{display:block;height:100%;border-radius:3px}
.goal .log{align-self:flex-start}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.list{display:flex;flex-direction:column}
.item{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-top:1px solid var(--line-2)}
.item:first-child{border-top:0}
.item .body{flex:1;min-width:0}
.item .title{font-weight:500}
.item .meta{font-size:12.5px;color:var(--ink-3);display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.item.done .title{text-decoration:line-through;color:var(--ink-3)}
.linkish{all:unset;cursor:pointer;color:var(--accent);font-weight:500}
.linkish:hover{text-decoration:underline}
.linkish:focus-visible{outline:2px solid var(--accent)}
.check{appearance:none;width:18px;height:18px;border:1.5px solid var(--ink-3);border-radius:5px;margin:1px 0 0;cursor:pointer;flex:none;display:grid;place-items:center;background:var(--surface)}
.check:checked{background:var(--accent);border-color:var(--accent)}
.check:checked::after{content:"";width:9px;height:5px;border-left:2px solid var(--accent-ink);border-bottom:2px solid var(--accent-ink);transform:rotate(-45deg) translate(1px,-1px)}
.prio{width:4px;align-self:stretch;border-radius:2px;flex:none}
.prio.High{background:var(--bad)} .prio.Medium{background:var(--warn)} .prio.Low{background:var(--line)}
.type-ic{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;flex:none;color:#fff}
.type-ic svg{width:14px;height:14px}
.type-ic.call{background:var(--t-call)}.type-ic.email{background:var(--t-email)}.type-ic.meeting{background:var(--t-meeting)}.type-ic.linkedin{background:var(--t-linkedin)}.type-ic.update{background:var(--t-update)}
.type-ic b{font-size:12px}

/* Feed */
.day-group{margin-bottom:18px}
.day-group>h3{margin:0 0 8px;color:var(--ink-2);display:flex;gap:8px;align-items:baseline}
.feed .item{padding:12px 16px;border-top:1px solid var(--line-2)}
.feed .item:first-child{border-top:0}
.feed .note{margin-top:4px;color:var(--ink-2);font-size:13px;white-space:pre-wrap}

/* Notes */
.notes{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.note-card{all:unset;cursor:pointer;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:8px;min-width:0}
.note-card:hover{border-color:var(--ink-3)}
.note-card:focus-visible{outline:2px solid var(--accent)}
.note-card.pinned{border-color:var(--accent);background:linear-gradient(var(--accent-soft),var(--accent-soft)) top/100% 3px no-repeat,var(--surface)}
.note-card p{margin:0;color:var(--ink-2);white-space:pre-wrap;display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}
.note-card .meta{font-size:12px;color:var(--ink-3);margin-top:auto;display:flex;gap:6px;flex-wrap:wrap}

/* Analytics */
.kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:14px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.kpi .v{font-family:var(--f-mono);font-size:22px;margin-top:4px}
.kpi .s{font-size:12px;color:var(--ink-3)}
.chart{position:relative;height:220px;display:flex;align-items:flex-end;gap:4px;padding:0 0 22px 30px}
.chart .gl{position:absolute;left:30px;right:0;border-top:1px dashed var(--line);font-size:10.5px;color:var(--ink-3)}
.chart .gl span{position:absolute;left:-30px;top:-8px;width:24px;text-align:right;font-family:var(--f-mono)}
.chart .col{flex:1;display:flex;flex-direction:column-reverse;height:100%;position:relative;min-width:0}
.chart .col .stk{display:flex;flex-direction:column-reverse;width:100%;max-width:34px;margin:0 auto;border-radius:4px 4px 0 0;overflow:hidden}
.chart .col .stk i{display:block;width:100%}
.chart .col .lb{position:absolute;bottom:-20px;left:50%;transform:translateX(-50%);font-size:10.5px;color:var(--ink-3);white-space:nowrap;font-family:var(--f-mono)}
.chart .col.today .lb{color:var(--ink);font-weight:600}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--ink-2);margin-top:6px}
.legend span{display:inline-flex;align-items:center;gap:6px}
.hbars{display:flex;flex-direction:column;gap:9px}
.hbar{display:grid;grid-template-columns:130px minmax(0,1fr) 70px;gap:10px;align-items:center;font-size:13px}
.hbar .track{height:14px;background:var(--sunk);border-radius:4px;overflow:hidden}
.hbar .track i{display:block;height:100%;border-radius:4px}
.hbar .n{font-family:var(--f-mono);text-align:right;font-size:12.5px;color:var(--ink-2)}

/* Drawer & modal */
.scrim{position:fixed;inset:0;background:rgba(8,18,15,.42);z-index:40}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(560px,100%);background:var(--bg);z-index:41;box-shadow:var(--shadow);display:flex;flex-direction:column;border-left:1px solid var(--line)}
.drawer-head{padding:calc(18px + env(safe-area-inset-top,0px)) 20px 14px;background:var(--surface);border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:10px}
.drawer-body{overflow-y:auto;padding:16px 20px 40px;display:flex;flex-direction:column;gap:14px}
.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px}
.facts div{min-width:0}
.facts dt{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);font-weight:600}
.facts dd{margin:2px 0 0;overflow-wrap:anywhere}
.modal{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:16px;background:rgba(8,18,15,.46)}
.modal-card{background:var(--surface);border-radius:14px;box-shadow:var(--shadow);width:min(620px,100%);max-height:calc(100dvh - 32px);display:flex;flex-direction:column;border:1px solid var(--line)}
.modal-card header{padding:18px 20px 6px;display:flex;justify-content:space-between;align-items:center}
.modal-card form{display:flex;flex-direction:column;min-height:0}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px;padding:12px 20px;overflow-y:auto}
.form-grid .full{grid-column:1/-1}
.modal-card footer{padding:12px 20px 18px;display:flex;gap:8px;justify-content:flex-end;border-top:1px solid var(--line-2)}
.modal-card footer .left{margin-right:auto}
.hint{font-size:12px;color:var(--ink-3)}
.err{color:var(--bad);font-size:12.5px}
.cbx{display:flex;align-items:center;gap:8px;font-weight:500}
.modal-card.wide{width:min(900px,100%)}
.notice{display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:var(--warn-soft);border:1px solid var(--warn);border-radius:10px;padding:10px 14px;margin-bottom:14px;color:var(--ink)}
.pick{position:relative}
.pick .pick-q{padding-left:31px;padding-right:32px}
.pick-ic{position:absolute;left:10px;top:9px;color:var(--ink-3);pointer-events:none;display:flex}
.pick-ic svg{width:15px;height:15px}
.pick-x{all:unset;position:absolute;right:6px;top:6px;width:22px;height:22px;display:grid;place-items:center;border-radius:5px;color:var(--ink-3);cursor:pointer}
.pick-x:hover{background:var(--muted-soft);color:var(--ink)}
.pick-x:focus-visible{outline:2px solid var(--accent)}
.pick-x svg{width:13px;height:13px}
.pick-list{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:5;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);max-height:280px;overflow-y:auto;padding:4px}
.pick-hint{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);font-weight:600;padding:6px 10px 4px}
.pick-opt{padding:7px 10px;border-radius:7px;cursor:pointer;display:flex;flex-direction:column;gap:1px}
.pick-opt b{font-weight:600}
.pick-opt span{font-size:12px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pick-opt.on,.pick-opt:hover{background:var(--accent-soft)}
.pick-empty{padding:10px;color:var(--ink-3);font-size:13px}
.pick-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.pick-chips:empty{display:none}
.pick-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 4px 3px 10px;border-radius:999px;background:var(--accent-soft);color:var(--ink);font-size:12.5px;font-weight:500}
.pick-chip-x{all:unset;width:18px;height:18px;display:grid;place-items:center;border-radius:50%;color:var(--ink-3);cursor:pointer}
.pick-chip-x:hover{background:var(--muted-soft);color:var(--ink)}
.pick-chip-x:focus-visible{outline:2px solid var(--accent)}
.pick-chip-x svg{width:11px;height:11px}
/* Account owner */
.owner-chip{all:unset;cursor:pointer;display:flex;align-items:center;gap:10px;margin-top:4px;padding:9px 10px;border-radius:10px;background:var(--side-hi);color:var(--side-ink);min-width:0}
.owner-chip:hover{background:color-mix(in srgb,var(--side-hi) 70%,#fff 10%)}
.owner-chip:focus-visible{outline:2px solid var(--accent)}
.own-txt{display:flex;flex-direction:column;min-width:0;flex:1}
.own-txt b{color:#fff;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.own-txt small{color:var(--side-ink-2);font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.own-chev{width:15px;height:15px;flex:none;opacity:.7}
.own-av{border-radius:50%;flex:none;object-fit:cover;display:inline-grid;place-items:center}
.own-av-i{background:var(--accent);color:var(--accent-ink);font-family:var(--f-display);font-weight:700}
.own-hero{background:linear-gradient(180deg,var(--accent-soft),var(--surface) 70%)}
.own-line{display:flex;align-items:center;gap:10px;min-height:30px}
.own-line svg{width:15px;height:15px;color:var(--ink-3);flex:none}
.own-line .hint{width:62px;flex:none}
.own-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.own-tile{background:var(--surface-2);border:1px solid var(--line-2);border-radius:10px;padding:10px 12px;min-width:0}
.own-tile .v{font-size:22px;margin-top:2px}
.own-photo{position:relative;cursor:pointer;border-radius:50%;flex:none;display:inline-flex}
.own-photo .own-photo-cta{position:absolute;right:-2px;bottom:-2px;width:26px;height:26px;border-radius:50%;background:var(--surface);border:1px solid var(--line);display:grid;place-items:center;color:var(--accent);box-shadow:var(--shadow)}
.own-photo .own-photo-cta svg{width:13px;height:13px}
.own-photo:hover .own-av{filter:brightness(.92)}
.team-row{align-items:center;flex-wrap:wrap}
.team-row .row{gap:6px}
.tm-feats{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px 14px}
.src-list{display:flex;flex-direction:column}
.src-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line-2);flex-wrap:wrap}
.src-row:first-child{border-top:0}
@media (max-width:520px){.own-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Contact Radar */
.radar-search{display:flex;gap:8px;align-items:center;margin-bottom:12px;flex-wrap:wrap}
.radar-search .btn{height:38px}
.radar-search .input{height:38px}
.radar-history{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.chip.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.chip.on .muted{color:inherit;opacity:.75}
.chip.dm:not(.on){border-color:var(--accent);color:var(--accent)}
.chip.rv{display:inline-flex;align-items:center;gap:6px}
.chip.rv svg{width:13px;height:13px}
.chip.rv:not(.on){border-color:var(--good);color:var(--good)}
.radar-co{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;flex-wrap:wrap;padding:16px;margin-bottom:10px}
.radar-co-main{display:flex;gap:12px;align-items:flex-start;min-width:0;flex:1}
.radar-sum{margin:2px 0 10px}
.radar-pq{display:flex;gap:8px;align-items:center;margin:4px 0 12px}
.radar-pq .search{flex:1}
.radar-pq .input{height:38px}
.radar-list{overflow:hidden}
.radar-row{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border-top:1px solid var(--line-2)}
.radar-row:first-child{border-top:0}
.radar-who{min-width:0}
.radar-who b{font-weight:600}
.radar-reveals{display:flex;gap:10px;flex-wrap:wrap}
.radar-reveals:empty{display:none}
.reveal-group{display:inline-flex;align-items:stretch;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--surface)}
.reveal-label{display:inline-flex;align-items:center;gap:6px;padding:0 10px;font-size:12.5px;font-weight:600;color:var(--ink-2);background:var(--surface-2);border-right:1px solid var(--line)}
.reveal-label svg{width:14px;height:14px}
.seg-opt{all:unset;cursor:pointer;padding:6px 11px;font-size:12.5px;font-weight:500;color:var(--accent);white-space:nowrap}
.seg-opt+.seg-opt{border-left:1px solid var(--line)}
.seg-opt:hover:not(:disabled){background:var(--accent-soft)}
.seg-opt:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.seg-opt:disabled{cursor:not-allowed;color:var(--ink-3)}
.radar-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.radar-actions a.btn{text-decoration:none}
.radar-draft{grid-column:1/-1;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:10px}
.radar-draft pre{margin:0;white-space:pre-wrap;font-family:var(--f-body);font-size:13.5px;line-height:1.55;color:var(--ink)}
@media (max-width:520px){.reveal-group{flex-wrap:wrap;width:100%}.reveal-label{width:100%;padding:6px 10px;border-right:0;border-bottom:1px solid var(--line)}}
.fix-sec{display:flex;flex-direction:column;gap:8px}
.ct-actions{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:none}
.copy-ct{color:var(--accent);border-color:var(--accent-soft)}
.copy-ct:hover{border-color:var(--accent);background:var(--accent-soft)}
.fix-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.fix-list{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:10px;background:var(--surface);max-height:360px;overflow-y:auto}
.fix-row{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-top:1px solid var(--line-2)}
.fix-row:first-child{border-top:0}
.fix-row .check{margin-top:8px}
/* AI assistant */
.ai-wrap{max-width:880px}
.chat{display:flex;flex-direction:column;gap:16px;padding-bottom:12px}
.msg{display:flex;gap:10px;align-items:flex-start;max-width:100%}
.msg.user{justify-content:flex-end}
.msg.user .bubble{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);white-space:pre-wrap;max-width:min(620px,85%);border-bottom-right-radius:4px}
.bubble{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:11px 15px;min-width:0;overflow-wrap:anywhere;line-height:1.55}
.msg.ai .bubble{flex:1;border-top-left-radius:4px}
.bubble p{margin:0 0 8px}.bubble p:last-child{margin-bottom:0}
.bubble ul,.bubble ol{margin:4px 0 8px;padding-left:20px}.bubble li{margin:2px 0}
.bubble h4{margin:10px 0 4px;font-family:var(--f-display);font-size:15px}
.bubble code{font-family:var(--f-mono);font-size:12.5px;background:var(--sunk);padding:1px 5px;border-radius:4px}
.bubble hr{border:0;border-top:1px solid var(--line);margin:10px 0}
.ai-av{width:32px;height:32px;border-radius:10px;background:var(--side);color:#fff;display:grid;place-items:center;flex:none}
.ai-av svg{width:17px;height:17px}
.ai-av.big{width:46px;height:46px;border-radius:13px;background:var(--accent);color:var(--accent-ink)}
.ai-av.big svg{width:24px;height:24px}
.ai-intro{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:24px;display:flex;flex-direction:column;gap:12px}
.ai-intro p{margin:0}
.chip-group{display:flex;flex-direction:column;gap:6px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{all:unset;cursor:pointer;border:1px solid var(--line);background:var(--surface-2);border-radius:18px;padding:7px 13px;font-size:13px;line-height:1.35}
.chip:hover{border-color:var(--accent);color:var(--accent)}
.chip:focus-visible{outline:2px solid var(--accent)}
.thinking{color:var(--ink-3);display:flex;gap:9px;align-items:center;font-size:13px;margin-top:4px}
.pulse{width:9px;height:9px;border-radius:50%;background:var(--accent);flex:none}
@media (prefers-reduced-motion:no-preference){.pulse{animation:pulse 1s ease-in-out infinite}@keyframes pulse{50%{opacity:.25;transform:scale(.7)}}}
.changes{margin-top:10px;border-top:1px dashed var(--line);padding-top:8px;display:flex;flex-direction:column;gap:4px}
.change{display:flex;gap:8px;align-items:center;font-size:13px;min-height:28px}
.change.undone .grow{text-decoration:line-through;color:var(--ink-3)}
.change .kind{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;font-weight:600;border-radius:4px;padding:1px 6px;flex:none}
.k-created{background:var(--good-soft);color:var(--good)}.k-updated{background:var(--info-soft);color:var(--info)}.k-deleted{background:var(--bad-soft);color:var(--bad)}
.confirm{margin-top:10px;border:1px solid var(--bad-soft);background:var(--surface-2);border-radius:10px;padding:10px 12px;display:flex;gap:10px;justify-content:space-between;align-items:center;flex-wrap:wrap;font-size:13px}
.confirm.pending{border-color:var(--bad)}
.composer{position:sticky;bottom:0;padding-block:14px calc(10px + env(safe-area-inset-bottom,0px));background:linear-gradient(to bottom,transparent,var(--bg) 26%)}
.composer-in{display:flex;gap:8px;align-items:flex-end;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:8px;box-shadow:var(--shadow)}
.composer-in:focus-within{border-color:var(--accent)}
.composer textarea{flex:1;border:0;background:transparent;resize:none;min-height:38px;max-height:200px;padding:8px;outline:none;line-height:1.45;font:inherit;color:var(--ink)}
.composer-hint{margin-top:6px;padding-left:4px}
.imp-box{display:flex;flex-direction:column;gap:12px;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:14px}
.map-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.map-grid select.mapped{border-color:var(--accent);background:var(--accent-soft)}
.radios{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.radios legend{margin-bottom:6px}
.radio{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:10px;cursor:pointer}
.radio:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
.radio input{margin-top:3px;accent-color:var(--accent)}
.radio>span{display:flex;flex-direction:column;gap:2px}

#toasts{position:fixed;bottom:calc(18px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);display:flex;flex-direction:column;gap:8px;z-index:60;align-items:center;width:min(460px,calc(100% - 32px))}
.toast{background:var(--ink);color:var(--bg);padding:10px 14px;border-radius:10px;box-shadow:var(--shadow);display:flex;gap:10px;align-items:center;font-weight:500;width:100%}
.toast.alert{background:var(--warn);color:#fff}
.toast button{all:unset;cursor:pointer;text-decoration:underline;margin-left:auto;white-space:nowrap}

.welcome{max-width:720px;margin:40px auto;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:32px}
.welcome h1{font-size:30px}
.welcome ul{margin:16px 0 22px;padding-left:18px;color:var(--ink-2);display:grid;gap:6px}
.loading{padding:80px 0;text-align:center;color:var(--ink-3)}

@media (max-width:1180px){ .segbar{grid-template-columns:repeat(4,minmax(0,1fr))} .kpis{grid-template-columns:repeat(3,minmax(0,1fr))} .grid-3{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:860px){
  .app{grid-template-columns:minmax(0,1fr)}
  .side{position:sticky;top:env(safe-area-inset-top,0px);height:auto;flex-direction:column;gap:10px;padding:12px 16px 8px;z-index:30}
  .nav{flex-direction:row;overflow-x:auto;gap:4px;padding-bottom:4px;scrollbar-width:none}
  .nav button{white-space:nowrap;padding:7px 10px}
  .nav button[aria-current="page"]{box-shadow:inset 0 -2px 0 var(--accent)}
  .side-foot{display:none}
  main{padding-inline:16px;padding-block:18px 60px}
  .goals{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid-3,.grid-2{grid-template-columns:minmax(0,1fr)}
  .segbar{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .form-grid{grid-template-columns:minmax(0,1fr)}
  .map-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hbar{grid-template-columns:96px minmax(0,1fr) 56px}
  .search{max-width:none}
  .facts{grid-template-columns:minmax(0,1fr)}
}
@media (prefers-reduced-motion:no-preference){ .drawer{animation:slidein .18s ease-out} @keyframes slidein{from{transform:translateX(24px);opacity:.6}} }
/* Use Cases */
.uc[lang=ar],.uc[lang=ar] h1,.uc[lang=ar] h2,.uc[lang=ar] h3,.uc[lang=ar] .btn,.uc[lang=ar] .input,.uc-ar{font-family:"IBM Plex Sans Arabic",var(--f-body)}
.uc[lang=ar] .eyebrow,.uc[lang=ar] .uc-blk h4,.uc[lang=ar] .facts dt{letter-spacing:0;text-transform:none;font-size:12px}
.uc[dir=rtl] .search svg{left:auto;right:10px}
.uc[dir=rtl] .search .input{padding-left:10px;padding-right:32px}
.uc[dir=rtl] .drawer,.drawer.uc[dir=rtl]{border-left:1px solid var(--line)}
.uc-tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:16px;overflow-x:auto;scrollbar-width:none}
.uc-sub{display:flex;gap:2px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none;padding:0 8px}
.uc-tab{all:unset;cursor:pointer;padding:9px 14px;color:var(--ink-2);font-weight:500;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.uc-tab:hover{color:var(--ink)}
.uc-tab[aria-selected="true"]{color:var(--ink);border-color:var(--accent)}
.uc-tab:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.uc-form{padding:16px;display:flex;flex-direction:column;gap:12px;margin-bottom:16px}
.uc-formrow{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.uc-formrow .search{max-width:none;flex:1 1 260px}
.uc-formrow .input,.uc-formrow .btn{height:38px}
.uc-formrow .search svg{top:11px}
.uc-svc{position:relative}
.uc-svc>summary{list-style:none}
.uc-svc>summary::-webkit-details-marker{display:none}
.uc-svcmenu{position:absolute;inset-inline-start:0;top:calc(100% + 4px);z-index:6;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);width:min(340px,calc(100vw - 32px));max-height:340px;overflow:auto;padding:6px}
.uc-svcmenu label{display:flex;gap:10px;align-items:flex-start;padding:8px;border-radius:7px;cursor:pointer}
.uc-svcmenu label:hover{background:var(--accent-soft)}
.uc-svcmenu small{display:block;color:var(--ink-3);font-size:12px}
.uc-svcmenu hr{border:0;border-top:1px solid var(--line-2);margin:4px 0}
.uc-check{display:flex;gap:10px;align-items:flex-start;cursor:pointer}
.uc-check>span{display:flex;flex-direction:column;gap:1px}
.uc-more>summary{cursor:pointer;color:var(--accent);font-weight:500;font-size:13px}
.uc-grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-top:10px}
.uc-steps{display:flex;flex-direction:column;gap:7px;font-size:13px}
.uc-step{display:flex;gap:9px;align-items:center;color:var(--ink-3)}
.uc-step i{width:9px;height:9px;border-radius:50%;background:var(--line);flex:none}
.uc-step.on{color:var(--ink)}.uc-step.on i{background:var(--accent)}
.uc-step.done{color:var(--ink-2)}.uc-step.done i{background:var(--good)}
@media (prefers-reduced-motion:no-preference){.uc-step.on i{animation:pulse 1s ease-in-out infinite}}
.uc-layout{display:grid;grid-template-columns:minmax(260px,320px) minmax(0,1fr);gap:16px;align-items:start}
.uc-side{padding:16px;display:flex;flex-direction:column;gap:12px;position:sticky;top:16px}
.uc-main{display:flex;flex-direction:column;gap:14px;min-width:0}
.uc-side .facts{grid-template-columns:minmax(0,1fr)}
.uc-ident{display:flex;gap:12px;align-items:center;min-width:0}
.uc-ident h2{overflow-wrap:anywhere}
.uc-av{width:44px;height:44px;border-radius:10px;flex:none;object-fit:contain;background:#fff;border:1px solid var(--line)}
.uc-blk{display:flex;flex-direction:column;gap:4px;min-width:0}
.uc-blk h4{margin:0;font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);font-weight:600}
.uc-blk p{margin:0}
.uc-blk ul{margin:0;padding-inline-start:18px;display:grid;gap:3px}
.uc-tag{font-size:11px;font-weight:600;border-radius:5px;padding:3px 7px;background:var(--warn-soft);color:var(--warn);white-space:nowrap}
.uc-tag.ok{background:var(--accent-soft);color:var(--accent)}
.uc-stat{display:flex;gap:24px;flex-wrap:wrap}
.uc-stat div{display:flex;flex-direction:column}
.uc-stat b{font-family:var(--f-mono);font-size:22px;font-weight:500}
.uc-stat span{font-size:12px;color:var(--ink-3)}
.uc-link{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:10px 14px}
.uc-pane{padding:16px;display:flex;flex-direction:column;gap:16px}
.uc-wave{display:flex;flex-direction:column;gap:8px}
.uc-wavehead{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.uc-wavehead i{width:10px;height:10px;border-radius:3px;display:inline-block;align-self:center}
.uc-wavehead.w1 i{background:var(--accent)}.uc-wavehead.w2 i{background:var(--info)}.uc-wavehead.w3 i{background:var(--ink-3)}
.uc-card{all:unset;box-sizing:border-box;cursor:pointer;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 14px;align-items:start;width:100%}
.uc-card:hover{border-color:var(--accent)}
.uc-card:focus-visible{outline:2px solid var(--accent)}
.uc-card .t{font-weight:600}
.uc-card .why{grid-column:1/-1;color:var(--ink-2);font-size:13px}
.uc-card .meta{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap;align-items:center;font-size:12.5px;color:var(--ink-3)}
.uc-card .go{margin-inline-start:auto;color:var(--accent);font-weight:500}
.uc-fit{display:inline-flex;gap:6px;align-items:center;font-size:12px;color:var(--ink-2);white-space:nowrap}
.uc-bars{display:inline-flex;align-items:flex-end;gap:2px;height:16px}
.uc-bars i{width:4px;border-radius:1px;background:var(--line)}
.uc-bars i.on{background:var(--accent)}
.uc-mail{white-space:pre-wrap;background:var(--surface-2);border:1px solid var(--line-2);border-radius:8px;padding:12px 14px;font-size:13.5px;line-height:1.6;overflow-wrap:anywhere}
.uc-line{background:var(--accent-soft);border-radius:10px;padding:10px 12px;line-height:1.55}
.uc-call{display:flex;flex-direction:column;gap:12px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line-2)}
.uc-obj{display:flex;flex-direction:column;gap:3px;padding:8px 0;border-top:1px solid var(--line-2)}
.uc-obj:first-of-type{border-top:0;padding-top:0}
.uc-chat{display:flex;flex-direction:column;gap:10px;max-height:460px;overflow:auto;padding:2px}
.uc-msg{padding:9px 12px;border-radius:10px;max-width:85%;white-space:pre-wrap;font-size:13.5px;line-height:1.55;overflow-wrap:anywhere}
.uc-msg.u{background:var(--accent);color:var(--accent-ink);align-self:flex-end}
.uc-msg.a{background:var(--surface-2);border:1px solid var(--line-2);align-self:flex-start}
.uc-person{display:flex;gap:10px;align-items:center;padding:8px 10px;background:var(--surface);border:1px solid var(--line-2);border-radius:8px;flex-wrap:wrap}
.uc-person .who{flex:1;min-width:160px}
.uc-pacts{display:flex;flex-direction:column;align-items:stretch;gap:6px;flex:none}
.uc-pacts .btn{justify-content:center}
.uc-reveal{flex-basis:100%;display:flex;flex-direction:column;gap:6px;padding-top:8px;border-top:1px dashed var(--line-2)}
@media (max-width:520px){.uc-pacts{flex-direction:row;flex-wrap:wrap;width:100%}}
.uc-person small{display:block;color:var(--ink-3);font-size:12px}
.uc-ini{width:30px;height:30px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-weight:600;font-size:12px;flex:none}
.uc-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.uc-uc{all:unset;box-sizing:border-box;cursor:pointer;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:6px;min-width:0}
.uc-uc:hover{border-color:var(--accent)}.uc-uc:focus-visible{outline:2px solid var(--accent)}
.uc-uc .t{font-weight:600}.uc-uc .d{font-size:13px;color:var(--ink-2)}
.uc-stage{display:flex;flex-direction:column;gap:10px}
.uc-stagehead{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.uc-drop{display:flex;flex-direction:column;align-items:center;gap:4px;border:1.5px dashed var(--line);border-radius:12px;padding:20px;text-align:center;cursor:pointer;background:var(--surface-2)}
.uc-drop:hover,.uc-drop.over{border-color:var(--accent);background:var(--accent-soft)}
.uc-drop svg{width:26px;height:26px;color:var(--accent)}
.uc-file{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:6px 0;border-top:1px solid var(--line-2);font-size:13px;flex-wrap:wrap}
.uc-saved{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 14px;border-top:1px solid var(--line-2)}
.uc-saved:first-child{border-top:0}
@media (max-width:860px){.uc-layout{grid-template-columns:minmax(0,1fr)}.uc-side{position:static}}
@media (max-width:520px){.uc-saved{grid-template-columns:auto minmax(0,1fr)}.uc-saved>.row{grid-column:1/-1}.uc-card{grid-template-columns:minmax(0,1fr)}.uc-formrow>.btn,.uc-svc,.uc-svc>summary{width:100%;justify-content:center}}
/* ===== Look and feel: floating top bar, pill navigation, soft cards ===== */
:root{
  --bg:#ECEDF1; --surface:#FFFFFF; --surface-2:#F5F5F7; --sunk:#E8E9ED;
  --ink:#111214; --ink-2:#55585F; --ink-3:#8B8E96; --line:#E2E3E8; --line-2:#EFEFF2;
  --accent:#EF5A2A; --accent-2:#D8481B; --accent-ink:#FFFFFF; --accent-soft:#FDECE4;
  --primary:#111214; --primary-2:#2B2C30; --primary-ink:#FFFFFF;
  --good:#1F9254; --good-soft:#E0F3E8; --warn:#B86E00; --warn-soft:#FCEFD6; --bad:#C8372D; --bad-soft:#FBE3E0; --info:#3463D1; --info-soft:#E3EBFB; --muted-soft:#EEEFF2;
  --sg1:#FCD9CA; --sg2:#F9BBA2; --sg3:#F5946E; --sg4:#EF5A2A; --sg5:#C6431A; --sg6:#8C2E10;
  --shadow:0 1px 2px rgba(17,18,20,.04),0 10px 30px rgba(17,18,20,.06);
  --f-display:"Inter","Segoe UI",system-ui,-apple-system,sans-serif;
  --f-body:"Inter","Segoe UI",system-ui,-apple-system,sans-serif;
  --r-card:22px;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0D0E10; --surface:#17181B; --surface-2:#1F2024; --sunk:#121316;
    --ink:#F2F2F4; --ink-2:#B2B5BC; --ink-3:#7D8089; --line:#2A2C31; --line-2:#222328;
    --accent:#FF7445; --accent-2:#FF8C63; --accent-ink:#1A0B05; --accent-soft:#3A1E14;
    --primary:#F2F2F4; --primary-2:#D9D9DD; --primary-ink:#111214;
    --good:#4CC486; --good-soft:#15342A; --warn:#E9A64A; --warn-soft:#3A2A12; --bad:#EE766B; --bad-soft:#3D1D1A; --info:#7EA2EE; --info-soft:#1C2A45; --muted-soft:#222328;
    --sg1:#3A1E14; --sg2:#5C2A18; --sg3:#8A391C; --sg4:#C84D22; --sg5:#FF7445; --sg6:#FFA885;
    --shadow:0 1px 2px rgba(0,0,0,.35),0 12px 32px rgba(0,0,0,.35);
  }
}
:root[data-theme="dark"]{
  --bg:#0D0E10; --surface:#17181B; --surface-2:#1F2024; --sunk:#121316;
  --ink:#F2F2F4; --ink-2:#B2B5BC; --ink-3:#7D8089; --line:#2A2C31; --line-2:#222328;
  --accent:#FF7445; --accent-2:#FF8C63; --accent-ink:#1A0B05; --accent-soft:#3A1E14;
  --primary:#F2F2F4; --primary-2:#D9D9DD; --primary-ink:#111214;
  --good:#4CC486; --good-soft:#15342A; --warn:#E9A64A; --warn-soft:#3A2A12; --bad:#EE766B; --bad-soft:#3D1D1A; --info:#7EA2EE; --info-soft:#1C2A45; --muted-soft:#222328;
  --sg1:#3A1E14; --sg2:#5C2A18; --sg3:#8A391C; --sg4:#C84D22; --sg5:#FF7445; --sg6:#FFA885;
  --shadow:0 1px 2px rgba(0,0,0,.35),0 12px 32px rgba(0,0,0,.35);
}
:root[data-theme="light"]{color-scheme:light}
body{font-size:14px;letter-spacing:-.003em}
.num{font-family:var(--f-body);font-variant-numeric:tabular-nums}
h1{font-size:32px;font-weight:600;letter-spacing:-.025em}
h2{font-size:16px;font-weight:600;letter-spacing:-.012em}
h3{font-weight:600}
.eyebrow{text-transform:none;letter-spacing:0;font-size:12.5px;font-weight:500;color:var(--ink-3)}

/* shell */
.app{display:block;min-height:100%;padding:14px 20px 0}
.topbar{position:sticky;top:12px;z-index:30;display:flex;align-items:center;gap:12px;padding:8px;border-radius:24px;background:color-mix(in srgb,var(--surface) 86%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--line);box-shadow:var(--shadow)}
.brand{display:flex;align-items:center;gap:10px;padding:4px 16px 4px 4px;background:var(--surface-2);border-radius:999px;flex:none}
.brand .mark{width:32px;height:32px;border-radius:50%;background:var(--accent);color:#fff;font-size:15px;font-family:var(--f-body);font-weight:700}
.brand b{color:var(--ink);font-size:14px;font-family:var(--f-body);font-weight:600;white-space:nowrap}
.brand small{display:none}
.topbar .nav{display:flex;flex-direction:row;gap:2px;padding:4px;margin:0 auto;background:var(--surface-2);border-radius:999px;overflow-x:auto;scrollbar-width:none;min-width:0}
.topbar .nav::-webkit-scrollbar{display:none}
.topbar .nav button{all:unset;cursor:pointer;display:flex;align-items:center;gap:6px;padding:8px 15px;border-radius:999px;color:var(--ink-2);font-weight:500;font-size:13.5px;white-space:nowrap;box-shadow:none}
.topbar .nav button svg{display:none}
.topbar .nav button:hover{color:var(--ink);background:var(--surface)}
.topbar .nav button[aria-current="page"]{background:var(--primary);color:var(--primary-ink);box-shadow:none}
.topbar .nav button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.topbar .nav .sec{display:none}
.topbar .nav .badge{margin-left:2px}
.topbar .side-foot{display:flex;flex-direction:row;align-items:center;gap:6px;margin:0;padding:0;flex:none;font-size:12px;color:var(--ink-3)}
.top-right .tb-ic{all:unset;cursor:pointer;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);color:var(--ink-2)}
.top-right .tb-ic:hover{background:var(--sunk);color:var(--ink)}
.top-right .tb-ic:focus-visible{outline:2px solid var(--accent)}
.top-right .tb-ic svg{width:16px;height:16px}
.top-right .tb-ic[hidden]{display:none}
.tb-theme{display:none!important}
.topbar .sync{width:38px;height:38px;justify-content:center;border-radius:50%;background:var(--surface-2)}
.topbar .sync i{width:8px;height:8px;background:var(--ink-3)}
.topbar .sync.on i{background:var(--good)}
.topbar .sync span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.topbar .owner-chip{margin:0;padding:4px 14px 4px 4px;border-radius:999px;background:var(--surface-2);color:var(--ink);max-width:230px}
.topbar .owner-chip:hover{background:var(--sunk)}
.topbar .own-txt b{color:var(--ink);font-size:13px}
.topbar .own-txt small{color:var(--ink-3);font-size:11.5px}
.topbar .own-chev{display:none}
.shell{display:grid;grid-template-columns:52px minmax(0,1fr);gap:20px;padding-top:20px}
.rail{position:sticky;top:96px;align-self:start;display:flex;flex-direction:column;gap:12px}
.rail-grp{display:flex;flex-direction:column;align-items:center;gap:4px;padding:5px;background:var(--surface);border:1px solid var(--line);border-radius:999px;box-shadow:var(--shadow)}
.rail-grp[hidden]{display:none}
.rail button{all:unset;cursor:pointer;position:relative;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:var(--ink-2)}
.rail button:hover{background:var(--surface-2);color:var(--ink)}
.rail button:focus-visible{outline:2px solid var(--accent)}
.rail button[aria-current="page"],.rail button[aria-pressed="true"]{background:var(--primary);color:var(--primary-ink)}
.rail svg{width:17px;height:17px}
.rail .badge{position:absolute;top:-3px;right:-5px;min-width:17px;height:17px;font-size:10px;padding:0 4px}
main{padding:4px 2px 64px;min-width:0}
.page-head{margin-bottom:22px}
.page-head p{color:var(--ink-3)}

/* controls */
.btn{height:38px;padding:0 16px;border-radius:999px;border-color:var(--line);background:var(--surface);font-weight:500}
.btn.sm{height:30px;padding:0 12px;font-size:12.5px}
.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}
.btn.primary:hover{background:var(--primary-2);border-color:var(--primary-2)}
.btn.ghost{background:transparent;border-color:transparent}
.btn.ghost:hover{background:var(--surface-2)}
.page-head .btn.ghost{background:var(--surface);border-color:var(--line)}
.input,select.input{height:38px;border-radius:12px;border-color:var(--line);background:var(--surface)}
textarea.input{border-radius:14px}
.icon-btn{border-radius:50%}
.pill{border-radius:999px;height:24px;padding:0 10px}
.badge{border-radius:999px}
.chip{border-radius:999px;background:var(--surface)}
.chip.on{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}
.seg-pills{display:inline-flex;gap:2px;padding:4px;background:var(--surface);border:1px solid var(--line);border-radius:999px;max-width:100%;overflow-x:auto;scrollbar-width:none}
.seg-pills button{all:unset;cursor:pointer;padding:7px 14px;border-radius:999px;font-weight:500;font-size:13px;color:var(--ink-2);white-space:nowrap}
.seg-pills button:hover{color:var(--ink);background:var(--surface-2)}
.seg-pills button[aria-selected="true"]{background:var(--primary);color:var(--primary-ink)}
.seg-pills button:focus-visible{outline:2px solid var(--accent)}

/* surfaces */
.panel,.table-wrap,.kpi,.goal,.segbtn,.note-card,.welcome,.ai-intro,.radar-co,.own-tile{border-radius:var(--r-card);border-color:transparent;box-shadow:var(--shadow)}
.panel-head{padding:18px 20px 10px}
.panel-body{padding:0 20px 18px}
.kpi{padding:16px 18px;display:flex;flex-direction:column;gap:4px}
.kpi .v{font-family:var(--f-display);font-weight:600;font-size:24px;letter-spacing:-.02em;margin-top:2px;overflow-wrap:anywhere}
.goal .val,.segbtn b{font-family:var(--f-display);font-weight:600}
.goal{padding:18px}
.segbtn[aria-pressed="true"]{border-color:var(--primary);box-shadow:0 0 0 1.5px var(--primary) inset}
.table-wrap{background:var(--surface)}
th{background:transparent;text-transform:none;letter-spacing:0;font-size:12px;font-weight:500}
td{border-bottom-color:var(--line-2)}
.modal-card{border-radius:26px}
.drawer{border-left:0;border-radius:24px 0 0 24px}
.drawer-head{border-radius:24px 0 0 0}
.notice{border-radius:16px;border-color:transparent;background:var(--warn-soft)}
.toast{border-radius:14px}
.welcome{border:0}
.seg-opt:hover:not(:disabled){background:var(--accent-soft)}
.composer-in{border-radius:22px}
.bubble{border-radius:18px}

/* pipeline */
.pl-tools{gap:10px}
.pl-tools .search{max-width:300px}
.pl-tools select.input{width:auto}
.pl-quota .panel-head{align-items:flex-start;flex-wrap:wrap}
.pl-call{display:flex;flex-direction:column;align-items:flex-end}
.pl-call b{font-size:22px;font-weight:600;letter-spacing:-.02em}
.pl-qbar{position:relative;display:flex;height:14px;border-radius:999px;background:var(--sunk);overflow:visible;margin:18px 0 10px}
.pl-qbar i{display:block;height:100%}
.pl-qbar i:first-child{border-radius:999px 0 0 999px}
.won{background:var(--good)}.commit{background:var(--accent)}.best{background:var(--sg2)}.pipe{background:var(--line)}
.pl-qline{position:absolute;top:-8px;bottom:-8px;width:2px;background:var(--ink);transform:translateX(-1px)}
.pl-qline span{position:absolute;top:-16px;left:50%;transform:translateX(-50%);font-size:11px;font-weight:600;white-space:nowrap}
.pl-legend{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:12.5px;color:var(--ink-2)}
.pl-legend span{display:inline-flex;align-items:center;gap:6px}
.pl-legend i{width:10px;height:10px;border-radius:3px;display:inline-block}
.pl-legend b{color:var(--ink)}
.bad-t b,.bad-t{color:var(--bad)}.good-t{color:var(--good)}
.pl-board{display:grid;grid-template-columns:repeat(6,minmax(220px,1fr));gap:12px;overflow-x:auto;padding:12px 2px 6px;margin-top:6px}
.pl-col{display:flex;flex-direction:column;gap:8px;background:var(--surface-2);border-radius:20px;padding:12px;min-height:200px;border:1.5px dashed transparent}
.pl-col.over{border-color:var(--accent);background:var(--accent-soft)}
.pl-col.won .pl-col-head b{color:var(--good)}.pl-col.lost .pl-col-head b{color:var(--bad)}
.pl-col-head{display:flex;justify-content:space-between;align-items:center;gap:6px}
.pl-col-sum{font-size:12px;color:var(--ink-3)}
.pl-drop{display:flex;flex-direction:column;gap:8px;flex:1}
.pl-empty{font-size:12.5px;color:var(--ink-3);text-align:center;padding:22px 6px;border:1px dashed var(--line);border-radius:14px}
.pl-card{background:var(--surface);border-radius:16px;padding:12px 13px;display:flex;flex-direction:column;gap:5px;cursor:grab;box-shadow:var(--shadow);border:1px solid transparent}
.pl-card:hover{border-color:var(--line)}
.pl-card:focus-visible{outline:2px solid var(--accent)}
.pl-card.dragging{opacity:.5;cursor:grabbing}
.pl-card-top b{font-weight:600;font-size:13.5px;line-height:1.3}
.pl-card-val{font-size:16px;font-weight:600;letter-spacing:-.01em}
.pl-card-meta{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.pl-card .pill{height:21px;font-size:11.5px;padding:0 8px}
.pl-next{display:flex;gap:5px;align-items:center;font-size:12px;color:var(--ink-2)}
.pl-next svg{width:12px;height:12px;flex:none;color:var(--ink-3)}
.pl-months{display:flex;align-items:flex-end;gap:14px;height:180px;padding:10px 4px 0}
.pl-mcol{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;justify-content:flex-end;min-width:0}
.pl-mstack{width:100%;max-width:56px;display:flex;flex-direction:column;border-radius:10px;overflow:hidden;min-height:2px}
.pl-mstack i{display:block;min-height:0}
.pl-mcol .lb{font-size:12px;font-weight:500}
.pl-mini{width:100%;min-width:0;margin-top:14px;font-size:13px}
.pl-mini th,.pl-mini td{padding:7px 6px}
.pl-mini td.num{text-align:right}.pl-mini th:not(:first-child){text-align:right}
.pl-dval{font-size:22px;font-weight:600;letter-spacing:-.02em}
.pl-steps{display:flex;gap:4px;flex-wrap:wrap}
.pl-steps button{all:unset;cursor:pointer;font-size:12px;font-weight:500;padding:6px 11px;border-radius:999px;background:var(--surface-2);color:var(--ink-2)}
.pl-steps button:hover{color:var(--ink);background:var(--sunk)}
.pl-steps button.on{background:var(--primary);color:var(--primary-ink)}
.pl-steps button.on.won{background:var(--good);color:#fff}.pl-steps button.on.lost{background:var(--bad);color:#fff}
.pl-steps button:focus-visible{outline:2px solid var(--accent)}

/* reports */
.rep-tabs{margin-bottom:16px}
.hb-l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hbar{grid-template-columns:150px minmax(0,1fr) 84px}
.rep-log{display:flex;flex-direction:column;max-height:420px;overflow-y:auto}
.rep-ev{display:flex;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line-2);font-size:13px}
.rep-ev:first-child{border-top:0}
.rep-ev>i{width:8px;height:8px;border-radius:50%;flex:none}
.rep-ev .grow{min-width:0;overflow:hidden;text-overflow:ellipsis}

@media (max-width:1180px){.kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:1100px){.brand b{display:none}.brand{padding:4px}}
@media (max-width:860px){
  .app{padding:8px 10px 0}
  .topbar{flex-wrap:wrap;top:6px;border-radius:22px;gap:8px}
  .brand b{display:block}.brand{padding:4px 14px 4px 4px}
  .topbar .nav{order:3;flex:1 1 100%;margin:0}
  .topbar .nav .sec{display:flex}
  .topbar .side-foot{display:flex;margin-left:auto}
  .top-right .tb-ic:not(.tb-theme){display:none}
  .tb-theme{display:grid!important}
  .topbar .sync{display:none}
  .topbar .own-txt{display:none}
  .topbar .owner-chip{padding:3px}
  .shell{grid-template-columns:minmax(0,1fr);padding-top:16px}
  .rail{display:none}
  main{padding:0 4px 64px}
  h1{font-size:26px}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pl-tools .search{max-width:none}
  .pl-call{align-items:flex-start}
  .hbar{grid-template-columns:104px minmax(0,1fr) 70px}
  .drawer{border-radius:0}.drawer-head{border-radius:0}
}
.kpi-click,.hb-click,.col-click,.leg-click{cursor:pointer}
.kpi-click:hover{box-shadow:0 0 0 1.5px var(--primary) inset,var(--shadow)}
.hb-click{border-radius:8px;margin:-3px -6px;padding:3px 6px}
.hb-click:hover{background:var(--surface-2)}
.hb-click:hover .hb-l{color:var(--ink);text-decoration:underline}
.col-click:hover .stk{filter:brightness(1.12);outline:2px solid var(--primary);outline-offset:1px}
.leg-click{border-radius:999px;padding:2px 8px;margin:-2px -4px}
.leg-click:hover{background:var(--surface-2)}
.kpi-click:focus-visible,.hb-click:focus-visible,.col-click:focus-visible,.leg-click:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.drill-back{align-self:flex-start;margin:-6px 0 2px -8px}/* ===== Motion ===== */
.topbar .nav{position:relative;isolation:isolate}
.nav-ind{position:absolute;left:0;top:4px;bottom:4px;width:0;border-radius:999px;background:var(--primary);z-index:-1;pointer-events:none;transition:transform .5s cubic-bezier(.2,.8,.2,1),width .5s cubic-bezier(.2,.8,.2,1),opacity .2s}
.topbar .nav button{position:relative}
.topbar .nav button[aria-current="page"]{background:transparent}
.topbar .nav button[aria-current="page"]:hover{background:transparent}
.hbar .track i,.meter i,.pl-qbar i{transform-origin:left center}
.chart .stk,.pl-mstack{transform-origin:center bottom}
.gauge{width:150px;flex:none;display:flex;flex-direction:column;align-items:center}
.gauge svg{width:100%;display:block;overflow:visible}
.gauge-track,.gauge-val{fill:none;stroke-width:12;stroke-linecap:round}
.gauge-track{stroke:var(--sunk)}
.gauge-val{stroke:var(--accent)}
.gauge-ticks line{stroke:var(--line);stroke-width:1.5;stroke-linecap:round}
.gauge-needle{transform-box:view-box;transform-origin:70px 72px}
.gauge-needle line{stroke:var(--ink);stroke-width:3;stroke-linecap:round}
.gauge-needle circle{fill:var(--ink)}
.gauge-txt{display:flex;flex-direction:column;align-items:center;margin-top:2px;line-height:1.15}
.gauge-txt b{font-size:18px;font-weight:600;letter-spacing:-.02em}
.gauge-txt span{font-size:11.5px;color:var(--ink-3)}
.pl-call{flex-direction:row!important;align-items:center!important;gap:16px}
.pl-call-t{display:flex;flex-direction:column;align-items:flex-end}
.today-gauge{background:var(--surface);border-radius:20px;padding:10px 14px 8px;box-shadow:var(--shadow)}
.today-gauge .gauge{width:132px}
.tip{position:fixed;left:0;top:0;z-index:80;pointer-events:none;max-width:280px;background:#16171A;color:#fff;font-size:12.5px;line-height:1.4;padding:9px 12px;border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.25);display:flex;flex-direction:column;gap:2px;opacity:0;transition:opacity .15s}
.tip b{font-weight:600}.tip span{color:rgba(255,255,255,.78)}
.tip.on{opacity:1}
:root[data-theme="dark"] .tip{background:#F2F2F4;color:#111214}:root[data-theme="dark"] .tip span{color:#55585F}
.skel-page{padding:6px 2px}
.skel{border-radius:20px;height:110px;background:linear-gradient(90deg,var(--sunk) 0%,var(--surface-2) 45%,var(--sunk) 90%);background-size:220% 100%}
.skel-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
@media (max-width:860px){.skel-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pl-call{flex-direction:column!important;align-items:flex-start!important}.pl-call-t{align-items:flex-start}}
@media (prefers-reduced-motion:no-preference){
  .skel{animation:shimmer 1.3s linear infinite}
  .kpi,.goal,.segbtn,.pl-card,.uc-card,.uc-uc,.note-card,.own-tile,.panel,.table-wrap{transition:transform .28s cubic-bezier(.2,.8,.2,1),box-shadow .28s,border-color .2s}
  .kpi:hover,.goal:hover,.segbtn:hover,.uc-card:hover,.uc-uc:hover,.note-card:hover,.own-tile:hover{transform:translateY(-3px);box-shadow:0 2px 4px rgba(17,18,20,.05),0 18px 40px rgba(17,18,20,.10)}
  .pl-card:hover{transform:translateY(-2px);box-shadow:0 2px 4px rgba(17,18,20,.05),0 14px 30px rgba(17,18,20,.10)}
  .pl-col{transition:background-color .2s,border-color .2s,transform .2s}
  .pl-col.over{transform:scale(1.015)}
  .btn,.tb-ic,.rail button,.chip,.seg-pills button,.pl-steps button,.owner-chip,.icon-btn,.seg-opt,.uc-tab{transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s,transform .16s cubic-bezier(.2,.8,.2,1)}
  .btn:active,.tb-ic:active,.rail button:active,.chip:active,.seg-pills button:active,.pl-steps button:active,.icon-btn:active,.owner-chip:active{transform:scale(.94)}
  .btn.primary:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(17,18,20,.18)}
  .rail button svg,.tb-ic svg{transition:transform .35s cubic-bezier(.2,.8,.2,1)}
  .rail button:hover svg,.tb-ic:hover svg{transform:scale(1.12)}
  #th-light:hover svg{transform:rotate(60deg) scale(1.1)}
  #th-dark:hover svg{transform:rotate(-24deg) scale(1.1)}
  .scrim.enter{animation:fadeIn .25s ease-out}
  .drawer.enter{animation:drawerIn .42s cubic-bezier(.2,.8,.2,1)}
  .modal{animation:fadeIn .2s ease-out}
  .modal-card{animation:popIn .34s cubic-bezier(.2,.8,.2,1)}
  .toast{animation:toastIn .38s cubic-bezier(.2,.8,.2,1)}
  .pick-list,.uc-svcmenu{animation:popIn .18s ease-out;transform-origin:top center}
  tbody tr.click td{transition:background-color .15s}
  .hb-click .track i{transition:filter .2s}.hb-click:hover .track i{filter:brightness(1.1) saturate(1.1)}
  .col-click .stk{transition:filter .2s,outline-color .2s}
  .tip{transition:opacity .15s}
  .pl-card.dragging{transform:rotate(2deg) scale(1.02)}
  .check{transition:background-color .15s,border-color .15s}
  ::view-transition-old(root),::view-transition-new(root){animation-duration:.4s}
}
@keyframes shimmer{to{background-position:-220% 0}}
@keyframes fadeIn{from{opacity:0}}
@keyframes popIn{from{opacity:0;transform:translateY(8px) scale(.96)}}
@keyframes drawerIn{from{opacity:0;transform:translateX(48px)}}
@keyframes toastIn{from{opacity:0;transform:translateY(18px) scale(.95)}}
@keyframes railPop{0%{transform:scale(.8)}100%{transform:scale(1)}}
@keyframes checkPop{50%{transform:scale(1.2)}}

.drawer{animation:none}
/* merge */
.mg-list{display:flex;flex-direction:column;gap:6px;max-height:min(52vh,460px);overflow-y:auto;padding:2px}
.mg-opt{all:unset;box-sizing:border-box;cursor:pointer;display:flex;gap:10px;align-items:center;padding:10px 14px;border-radius:14px;background:var(--surface-2);border:1px solid transparent}
.mg-opt:hover{border-color:var(--line);background:var(--surface)}
.mg-opt:focus-visible{outline:2px solid var(--accent)}
.mg-opt small,.mg-card small{display:block;color:var(--ink-3);font-size:12px;margin-top:2px;overflow-wrap:anywhere}
.mg-cards{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:10px;align-items:stretch}
.mg-card{position:relative;cursor:pointer;display:flex;flex-direction:column;gap:2px;padding:14px 16px;border-radius:18px;border:1.5px solid var(--line);background:var(--surface)}
.mg-card input{position:absolute;opacity:0;pointer-events:none}
.mg-card.keep{border-color:var(--good);background:var(--good-soft)}
.mg-card.remove{border-style:dashed;opacity:.85}
.mg-card:focus-within{outline:2px solid var(--accent);outline-offset:2px}
.mg-card b{font-size:15px}
.mg-tag{align-self:flex-start;font-size:11.5px;font-weight:600;border-radius:999px;padding:2px 9px;margin-bottom:6px}
.mg-tag.good{background:var(--good);color:#fff}.mg-tag.bad{background:var(--bad-soft);color:var(--bad)}
.mg-arrow{display:grid;place-items:center;color:var(--ink-3)}
.mg-arrow svg{width:20px;height:20px}
.mg-table-wrap{overflow-x:auto;border-radius:16px;border:1px solid var(--line-2)}
.mg-table{width:100%;min-width:560px;border-collapse:collapse}
.mg-table th,.mg-table td{padding:8px 12px;border-bottom:1px solid var(--line-2);text-align:left;vertical-align:top;font-size:13px}
.mg-table tbody th{width:140px;color:var(--ink-2);font-weight:500;text-transform:none;letter-spacing:0;background:transparent}
.mg-table thead th{font-size:12px;color:var(--ink-3)}
.mg-both td{padding-top:0}
.mg-val{display:flex;gap:8px;align-items:flex-start;cursor:pointer;padding:6px 8px;border-radius:10px;border:1px solid transparent}
.mg-val input{margin-top:3px;accent-color:var(--primary)}
.mg-val span{white-space:pre-wrap;overflow-wrap:anywhere}
.mg-val.on{background:var(--surface-2);border-color:var(--line)}
.mg-same{color:var(--ink)}
@media (max-width:640px){.mg-cards{grid-template-columns:minmax(0,1fr)}.mg-arrow{transform:rotate(90deg)}}
/* settings */
.set-card{width:min(980px,100%)}
.set-wrap{display:grid;grid-template-columns:200px minmax(0,1fr);gap:0;min-height:0;flex:1;overflow:hidden;border-top:1px solid var(--line-2)}
.set-nav{display:flex;flex-direction:column;gap:2px;padding:12px;border-right:1px solid var(--line-2);overflow-y:auto}
.set-nav button{all:unset;cursor:pointer;padding:9px 12px;border-radius:12px;font-weight:500;color:var(--ink-2)}
.set-nav button:hover{background:var(--surface-2);color:var(--ink)}
.set-nav button[aria-current="page"]{background:var(--primary);color:var(--primary-ink)}
.set-nav button:focus-visible{outline:2px solid var(--accent)}
.set-body{padding:18px 22px 24px;overflow-y:auto;display:flex;flex-direction:column;gap:14px;max-height:calc(100dvh - 140px)}
.set-row{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:12px 0;border-bottom:1px solid var(--line-2)}
.set-l{display:flex;flex-direction:column;gap:2px;min-width:200px;flex:1}
.set-c{display:flex;gap:8px;flex-wrap:wrap}
.set-h{font-size:14px;margin:6px 0 0}
.set-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.set-dup{display:flex;flex-direction:column;gap:6px;padding:12px 14px;border-radius:16px;background:var(--surface-2)}
.set-dup-row{display:flex;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}
.set-dup-row small{display:block;color:var(--ink-3);font-size:12px}
.set-about{display:flex;gap:12px;align-items:center}
.set-about .mark{width:44px;height:44px;border-radius:50%;background:var(--accent);color:#fff;font-size:20px}
.set-stats{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
@media (max-width:720px){.set-wrap{grid-template-columns:minmax(0,1fr)}.set-nav{flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line-2);scrollbar-width:none}.set-nav button{white-space:nowrap}.set-body{max-height:none}}
/* device preferences */
:root[data-motion="off"] *,:root[data-motion="off"] *::before,:root[data-motion="off"] *::after{animation:none!important;transition:none!important}
:root[data-density="compact"] body{font-size:13px}
:root[data-density="compact"] h1{font-size:26px}
:root[data-density="compact"] .page-head{margin-bottom:14px}
:root[data-density="compact"] .panel-head{padding:12px 16px 8px}
:root[data-density="compact"] .panel-body{padding:0 16px 12px}
:root[data-density="compact"] .kpi{padding:11px 14px}
:root[data-density="compact"] .kpi .v{font-size:20px}
:root[data-density="compact"] .goal{padding:12px 14px}
:root[data-density="compact"] td{padding:7px 10px}
:root[data-density="compact"] .item{padding:6px 0}
:root[data-density="compact"] .kpis,:root[data-density="compact"] .goals,:root[data-density="compact"] .grid-2,:root[data-density="compact"] .grid-3{gap:10px}
:root[data-density="compact"] .btn{height:34px}
:root[data-density="compact"] .input{height:34px}
/* tab pills */
.nav-ind{transition:opacity .2s!important}
.topbar .nav button{transition:color .25s ease .1s,background-color .2s}
.seg-pills{position:relative;isolation:isolate}
.pill-ind{position:absolute;left:0;top:4px;bottom:4px;width:0;border-radius:999px;background:var(--primary);z-index:-1;pointer-events:none}
.seg-pills button{position:relative;transition:color .25s ease .08s,background-color .2s}
.seg-pills button[aria-selected="true"]{background:transparent}
.seg-pills button[aria-selected="true"]:hover{background:transparent}
.seg-pills:not(:has(.pill-ind)) button[aria-selected="true"]{background:var(--primary)}
.set-nav{position:relative;isolation:isolate}
.set-ind{position:absolute;left:12px;right:12px;top:0;height:0;border-radius:12px;background:var(--primary);z-index:-1;pointer-events:none}
.set-ind.h{left:0;right:auto;top:12px;bottom:12px;height:auto;border-radius:12px}
.set-nav button{position:relative;transition:color .25s ease .08s,background-color .2s}
.set-nav button[aria-current="page"]{background:transparent}
.set-body{scroll-behavior:smooth}
.set-row{transition:background-color .2s}
.set-row:hover{background:linear-gradient(90deg,transparent,var(--surface-2) 30%,var(--surface-2) 70%,transparent)}
.set-dup-row{transition:transform .2s cubic-bezier(.2,.8,.2,1)}
.set-dup-row:hover{transform:translateX(3px)}/* tabs: one pill only, labels change colour as the pill arrives */
.topbar .nav button[aria-current="page"],.topbar .nav button[aria-current="page"]:hover{background:transparent!important}
.topbar .nav button{transition:color .2s ease .16s,background-color .15s}
.seg-pills button[aria-selected="true"],.seg-pills button[aria-selected="true"]:hover{background:transparent!important}
.seg-pills:not(:has(.pill-ind)) button[aria-selected="true"]{background:var(--primary)!important}
.seg-pills button,.set-nav button{transition:color .2s ease .14s,background-color .15s}
.set-nav button[aria-current="page"],.set-nav button[aria-current="page"]:hover{background:transparent!important;color:var(--primary-ink)}
/* settings: one fixed size for every section */
.set-card{width:min(980px,100%);height:min(640px,calc(100dvh - 32px));max-height:none}
.set-wrap{flex:1 1 auto;min-height:0;grid-template-rows:minmax(0,1fr)}
.set-body{max-height:none!important;height:100%;min-height:0;overflow-y:auto;scrollbar-gutter:stable}
.set-nav{min-height:0}
@media (max-width:720px){.set-card{height:calc(100dvh - 32px)}.set-wrap{grid-template-rows:auto minmax(0,1fr)}}/* tab pill: no ghost of the old position */
.topbar .nav{isolation:isolate;contain:paint}
.nav-ind,.pill-ind,.set-ind{z-index:0!important;will-change:transform,width;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.topbar .nav button,.seg-pills button,.set-nav button{position:relative;z-index:1}
.seg-pills,.set-nav{contain:paint}
/* My connections */
.conn-card{display:flex;flex-direction:column;gap:12px;padding:16px 18px;border-radius:18px;background:var(--surface-2)}
.conn-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.conn-head>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.conn-row{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;font-size:13.5px}
.conn-form{display:flex;gap:8px;flex-wrap:wrap}
.conn-form .input{flex:1 1 200px;width:auto}
.conn-wide{grid-column:span 2}
@media (max-width:720px){.conn-wide{grid-column:auto}}.ct-editor{gap:14px}
.ct-adv,.ct-test{display:flex;flex-direction:column;gap:10px;padding:12px 14px;border-radius:14px;background:var(--surface)}
.ct-result{font-size:13px;padding:10px 12px;border-radius:12px;background:var(--warn-soft)}
.ct-result.ok{background:var(--good-soft)}
.ct-result pre{white-space:pre-wrap;word-break:break-all;font-family:var(--f-mono);font-size:11.5px;max-height:200px;overflow:auto;margin:6px 0 0}
/* phones: keep Settings reachable in the top bar */
@media (max-width:860px){.top-right .tb-ic[data-act="app-settings"]{display:grid}}

/* ---------- Layout: main menu on the left, quick icons on top ---------- */
button.brand{border:0;font:inherit;cursor:pointer;text-align:left;color:inherit}
button.brand:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.brand .mark{display:grid;place-items:center;flex:none}
.brand>span:last-child{display:flex;flex-direction:column;min-width:0}
.body-col{min-width:0;display:flex;flex-direction:column;gap:20px}
.topbar .rail{position:static;display:flex;flex-direction:row;align-items:center;gap:8px;flex:none}
.topbar .rail-grp{flex-direction:row;padding:4px;background:var(--surface-2);border:0;box-shadow:none}
.topbar .rail button{width:36px;height:36px}
.topbar .side-foot{margin-left:auto}
@media (min-width:861px){
  .app{display:grid;grid-template-columns:236px minmax(0,1fr);gap:20px;align-items:start;padding:14px 20px 0}
  .sidebar{position:sticky;top:14px;height:calc(100vh - 28px);display:flex;flex-direction:column;gap:16px;padding:10px;border-radius:24px;background:color-mix(in srgb,var(--surface) 86%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--line);box-shadow:var(--shadow)}
  .sidebar .brand{width:100%;box-sizing:border-box;padding:6px 12px 6px 6px;border-radius:18px}
  .sidebar .brand:hover{background:var(--sunk)}
  .sidebar .brand b{white-space:normal;display:block}
  .topbar{min-width:0}
  .topbar .rail{min-width:0;overflow-x:auto;scrollbar-width:none}
  .topbar .rail::-webkit-scrollbar{display:none}
  .sidebar .brand small{display:block;color:var(--ink-3);font-size:11.5px}
  .sidebar .nav{display:flex;flex-direction:column;gap:2px;position:relative;isolation:isolate;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;padding:0;background:none;margin:0}
  .sidebar .nav::-webkit-scrollbar{display:none}
  .sidebar .nav button{all:unset;box-sizing:border-box;cursor:pointer;position:relative;z-index:1;display:flex;align-items:center;gap:11px;padding:10px 14px;border-radius:14px;color:var(--ink-2);font-weight:500;font-size:13.5px;white-space:nowrap;transition:color .2s ease .12s,background-color .15s}
  .sidebar .nav button svg{display:block;width:17px;height:17px;flex:none;opacity:.85}
  .sidebar .nav button:hover{color:var(--ink);background:var(--surface-2)}
  .sidebar .nav button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
  .sidebar .nav button[aria-current="page"],.sidebar .nav button[aria-current="page"]:hover{color:var(--primary-ink);background:transparent;box-shadow:none}
  .sidebar .nav button[aria-current="page"] svg{opacity:1}
  .sidebar .nav .sec{display:none}
  .sidebar .nav .badge{margin-left:auto}
  .sidebar .nav-ind{left:0;right:0;top:0;bottom:auto;width:auto!important;height:0;border-radius:14px;background:var(--primary)}
  .top-right .tb-theme{display:none}
  .topbar{top:14px}
  /* collapse / expand */
  .app{transition:grid-template-columns .28s cubic-bezier(.2,.8,.2,1)}
  .side-toggle{all:unset;box-sizing:border-box;cursor:pointer;margin-top:auto;display:flex;align-items:center;gap:11px;padding:10px 14px;border-radius:14px;color:var(--ink-3);font-size:13px;font-weight:500;white-space:nowrap}
  .side-toggle:hover{background:var(--surface-2);color:var(--ink)}
  .side-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
  .side-toggle svg{width:17px;height:17px;flex:none;transition:transform .28s}
  .app.nav-min{grid-template-columns:76px minmax(0,1fr)}
  .nav-min .sidebar{padding:10px 8px;overflow:hidden}
  .nav-min .sidebar .brand{padding:6px;justify-content:center}
  .nav-min .sidebar .brand>span:last-child,.nav-min .sidebar .nav button span:not(.badge),.nav-min .side-toggle span{display:none}
  .nav-min .sidebar .nav button,.nav-min .side-toggle{justify-content:center;padding:11px 0}
  .nav-min .sidebar .nav .badge{position:absolute;top:3px;right:6px;margin:0;min-width:16px;height:16px;font-size:10px;padding:0 4px}
  .nav-min .side-toggle svg{transform:scaleX(-1)}
  /* Settings and the profile card sit at the bottom of the menu */
  .side-bottom{margin-top:auto;display:flex;flex-direction:column;gap:6px;padding-top:10px;border-top:1px solid var(--line)}
  .side-bottom+.side-toggle{margin-top:0}
  .side-set{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;gap:11px;padding:10px 14px;border-radius:14px;color:var(--ink-2);font-size:13.5px;font-weight:500;white-space:nowrap}
  .side-set:hover{background:var(--surface-2);color:var(--ink)}
  .side-set:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
  .side-set svg{width:17px;height:17px;flex:none;opacity:.85;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
  .side-set:hover svg{transform:rotate(60deg)}
  .sidebar .owner-chip{box-sizing:border-box;width:100%;margin:0;padding:6px 10px 6px 6px;border-radius:16px;background:var(--surface-2);color:var(--ink)}
  .sidebar .owner-chip:hover{background:var(--sunk)}
  .sidebar .own-txt b{color:var(--ink);font-size:13px}
  .sidebar .own-txt small{color:var(--ink-3);font-size:11.5px}
  .sidebar .own-chev{display:none}
  .nav-min .side-set{justify-content:center;padding:11px 0}
  .nav-min .side-set span,.nav-min .sidebar .own-txt{display:none}
  .nav-min .sidebar .owner-chip{justify-content:center;padding:4px;background:transparent}
}
@media (min-width:861px) and (max-width:1100px){.app.nav-min{grid-template-columns:76px minmax(0,1fr)}}
@media (max-width:860px){
  .side-toggle{display:none}
  .side-bottom{grid-area:sb;display:flex;align-items:center;gap:6px;align-self:center}
  .side-set{all:unset;cursor:pointer;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);color:var(--ink-2)}
  .side-set svg{width:16px;height:16px}.side-set span{display:none}
  .sidebar .owner-chip{margin:0;padding:3px;border-radius:999px;background:var(--surface-2)}
  .sidebar .own-txt,.sidebar .own-chev{display:none}
}
@media (max-width:860px){
  .app{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"brand foot sb" "nav nav nav" "main main main";gap:10px 8px;padding:8px 10px 0}
  .sidebar,.body-col,.topbar{display:contents}
  .sidebar .brand{grid-area:brand;align-self:center}
  .side-foot{grid-area:foot;justify-self:end;align-self:center}
  .topbar .rail{display:none}
  .sidebar .nav{grid-area:nav;display:flex;flex-direction:row;gap:2px;padding:4px;background:var(--surface-2);border-radius:999px;overflow-x:auto;scrollbar-width:none;position:relative;isolation:isolate;min-width:0}
  .sidebar .nav::-webkit-scrollbar{display:none}
  .sidebar .nav button{all:unset;cursor:pointer;position:relative;z-index:1;display:flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;color:var(--ink-2);font-weight:500;font-size:13.5px;white-space:nowrap}
  .sidebar .nav button svg{display:none}
  .sidebar .nav button[aria-current="page"]{color:var(--primary-ink);background:transparent;box-shadow:none}
  .sidebar .nav .sec{display:flex}
  main{grid-area:main}
}

/* ---------- Chart views (bars, columns, pie, lines, table) and per-chart export ---------- */
.cv-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin:-2px 0 12px}
.cv-views{display:inline-flex;gap:2px;padding:3px;border-radius:999px;background:var(--surface-2)}
.cv-views button{all:unset;cursor:pointer;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:500;color:var(--ink-3);transition:background-color .15s,color .15s}
.cv-views button:hover{color:var(--ink)}
.cv-views button[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.08)}
.cv-views button:focus-visible,.cv-exp button:focus-visible{outline:2px solid var(--accent)}
.cv-exp{position:relative}
.cv-exp summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;font-size:12px;color:var(--ink-3);border:1px solid var(--line)}
.cv-exp summary::-webkit-details-marker{display:none}
.cv-exp summary:hover,.cv-exp[open] summary{color:var(--ink);border-color:var(--ink-3)}
.cv-exp summary:focus-visible{outline:2px solid var(--accent)}
.cv-exp svg{width:12px;height:12px}
.cv-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:20;min-width:150px;display:flex;flex-direction:column;padding:5px;border-radius:12px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);animation:popIn .16s ease-out;transform-origin:top right}
.cv-menu button{all:unset;cursor:pointer;padding:7px 10px;border-radius:8px;font-size:13px;color:var(--ink)}
.cv-menu button:hover,.cv-menu button:focus-visible{background:var(--surface-2)}
.cv-3d{width:100%;height:auto;display:block}
.cv-3d .gl-l{stroke:var(--line);stroke-width:1}
.cv-3d .gl-t{fill:var(--ink-3);font-size:10px;font-family:var(--f-mono)}
.cv-3d .lb3d{font-family:var(--f-body);font-size:10.5px}
.cv-3d .v3d{fill:var(--ink-2);font-size:10.5px;font-weight:600;font-family:var(--f-mono)}
.cv-3d .floor3d{fill:var(--surface-2)}
.cv-3d .shadow3d{fill:color-mix(in srgb,var(--ink) 10%,transparent)}
.cv-3d .bar3d{transform-box:fill-box;transform-origin:50% 100%;transition:filter .15s}
.cv-3d .bar3d.col-click{cursor:pointer}
.cv-3d .bar3d.col-click:hover{filter:brightness(1.08) drop-shadow(0 4px 6px rgba(0,0,0,.18))}
@media (prefers-reduced-motion:no-preference){.cv-3d .bar3d{animation:grow3d .7s cubic-bezier(.2,.8,.2,1) backwards;animation-delay:var(--d)}}
.p3d-w{position:relative;width:min(340px,100%);flex:none}
.cv-p3d{width:100%;height:auto;display:block;overflow:visible}
.p3d-sh{fill:color-mix(in srgb,var(--ink) 9%,transparent);filter:blur(6px)}
.slice3d{transition:transform .25s cubic-bezier(.2,.8,.2,1),filter .2s}
.slice3d.col-click{cursor:pointer}
.slice3d:hover{transform:translate(var(--tx),var(--ty));filter:brightness(1.06)}
.p3d-l{fill:#fff;font-size:11px;font-weight:700;font-family:var(--f-mono);paint-order:stroke;stroke:rgba(0,0,0,.25);stroke-width:2px;pointer-events:none}
.p3d-c{position:absolute;right:0;top:0;display:flex;flex-direction:column;align-items:flex-end;pointer-events:none}
.p3d-c b{font-size:16px}.p3d-c span{font-size:11px;color:var(--ink-3)}
@media (prefers-reduced-motion:no-preference){.slice3d{animation:pop3d .6s cubic-bezier(.2,.8,.2,1) backwards;animation-delay:var(--d)}}
@keyframes pop3d{from{opacity:0;transform:translate(calc(var(--tx) * 3),calc(var(--ty) * 3))}to{opacity:1;transform:none}}
.snap-still,.snap-still *{animation:none!important;transition:none!important}
@keyframes grow3d{from{transform:scaleY(0);opacity:0}to{transform:none;opacity:1}}
.cv-pie{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.cv-donut-w{position:relative;width:170px;height:170px;flex:none}
.cv-donut{width:100%;height:100%;transform:none}
.cv-donut circle.pie-click{cursor:pointer;transition:stroke-width .15s}
.cv-donut circle.pie-click:hover{stroke-width:8}
.cv-donut-c{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;text-align:center}
.cv-donut-c b{font-size:17px}
.cv-donut-c span{font-size:11px;color:var(--ink-3)}
.cv-leg{flex:1;min-width:180px;display:flex;flex-direction:column;gap:2px}
.cv-leg-i{display:grid;grid-template-columns:10px minmax(0,1fr) auto 40px;align-items:center;gap:8px;padding:5px 6px;border-radius:8px;font-size:13px}
.cv-leg-i i{width:10px;height:10px;border-radius:3px}
.cv-leg-i .l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cv-leg-i .n{font-size:12.5px}
.cv-leg-i .hint{text-align:right}
.cv-leg-i.hb-click{cursor:pointer}
.cv-leg-i.hb-click:hover{background:var(--surface-2)}
.cv-cols-w{overflow-x:auto}
.cv-cols{display:flex;align-items:stretch;gap:6px;height:220px}
.cv-col{flex:1 0 48px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px;min-width:48px;padding:4px 2px;border-radius:8px}
.cv-col .bar{display:block;width:62%;max-width:44px;border-radius:6px 6px 2px 2px}
.cv-col .n{font-size:11px;color:var(--ink-2);white-space:nowrap}
.cv-col .lb{font-size:11px;color:var(--ink-3);text-align:center;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cv-col.col-click{cursor:pointer}
.cv-col.col-click:hover{background:var(--surface-2)}
.cv-tw{max-height:360px;overflow:auto;margin:0}
.cv-table{width:100%;font-size:13px}
.cv-table th.r,.cv-table td.r{text-align:right}
.cv-table tfoot td{font-weight:600;border-top:2px solid var(--line)}
.cv-table tr.click{cursor:pointer}
.cv-table tr.click:hover td{background:var(--surface-2)}
.cv-lines{width:100%;height:auto;display:block}
.cv-lines .gl-l{stroke:var(--line);stroke-width:1}
.cv-lines .gl-t{fill:var(--ink-3);font-size:10px;font-family:var(--f-mono)}
.cv-lines .cv-hit{fill:transparent}
.cv-lines .cv-hit.col-click{cursor:pointer}
.cv-lines .cv-hit.col-click:hover{fill:color-mix(in srgb,var(--ink) 5%,transparent)}
.rep-wide{margin-top:14px}
.hbars .hbar{grid-template-columns:minmax(90px,150px) minmax(40px,1fr) max-content}
.hbars .hbar .n{white-space:nowrap}
.rep-tools{flex-wrap:wrap;justify-content:flex-end}
.rep-exp{display:inline-flex;gap:4px}
.rep-checks{display:flex;flex-direction:column;gap:6px;margin-top:4px}
.notice.good-n{background:var(--good-soft);color:var(--good)}
.rep-ed{border-color:var(--accent)}

/* ---------- Dashboard ---------- */
.db-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
.db-alerts{grid-template-columns:repeat(6,minmax(0,1fr))}
@media (max-width:1400px){.db-alerts{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* email verification badges */
.ev-wrap{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;vertical-align:middle;margin-left:4px}
.ev{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:999px;font-size:11px;font-weight:600;line-height:18px;white-space:nowrap}
.ev-valid{background:var(--good-soft);color:var(--good)}
.ev-risky{background:var(--warn-soft);color:var(--warn)}
.ev-invalid{background:var(--bad-soft);color:var(--bad)}
.ev-unknown{background:var(--surface-2);color:var(--ink-3)}
.ev-busy{color:var(--ink-3);font-size:11px}
.ev-btn{all:unset;cursor:pointer;font-size:11px;font-weight:600;color:var(--accent);padding:1px 8px;border-radius:999px;border:1px dashed color-mix(in srgb,var(--accent) 45%,transparent);white-space:nowrap;line-height:18px}
.ev-btn:hover{background:var(--accent-soft)}
.ev-btn:focus-visible{outline:2px solid var(--accent)}
.snx-card{max-width:680px;width:min(680px,calc(100vw - 32px))}
.snx-card header{align-items:flex-start}
.snx-body{display:flex;flex-direction:column;gap:14px;max-height:min(68vh,640px);overflow:auto;padding:2px 2px 8px}
.snx-search{display:flex;gap:8px;flex-wrap:wrap}
.snx-search .input{flex:1 1 220px}
.snx-h{display:flex;align-items:baseline;gap:10px;margin:2px 0 4px}
.snx-p .meta a{margin-left:6px}
/* company page header: name with Edit on the right, Apollo refresh under the name, then quick actions */
.acc-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.acc-title h1{margin:0;min-width:0;overflow-wrap:anywhere}
.acc-title-acts{display:flex;gap:6px;flex:none;padding-top:2px}
.acc-enrich{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:-2px}
.acc-enrich .btn{background:transparent;border-style:dashed}
.acc-quick{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding-top:10px;border-top:1px solid var(--line)}
.acc-quick-sep{width:1px;height:20px;background:var(--line);margin:0 4px}
.sec-tools{display:flex;gap:6px;flex-wrap:wrap;padding:0 18px 4px}
.fetch-row{display:flex;gap:8px;align-items:stretch}
.fetch-row .input{flex:1;min-width:0}
.fetch-row .btn{white-space:nowrap;flex:none}
.fetch-msg{margin-top:6px;font-size:12.5px;line-height:1.45}
.fetch-warn{padding:9px 12px;border-radius:12px;background:var(--warn-soft);color:var(--ink);display:flex;flex-wrap:wrap;align-items:center;gap:4px}
.fetch-warn+.fetch-warn,.fetch-ok+.fetch-warn{margin-top:6px}
.fetch-ok{color:var(--good);display:block}
.fetch-err{color:var(--bad)}
.input.just-filled{animation:justFilled 1.6s ease}
@keyframes justFilled{0%,40%{background:var(--good-soft);border-color:var(--good)}}
@media (max-width:600px){.fetch-row{flex-direction:column}}
.ev-confirm{padding:10px 12px;border-radius:12px;background:var(--warn-soft)}
.db-kpi{display:flex;flex-direction:column;gap:2px;border-radius:16px;padding:14px 16px;position:relative;overflow:hidden}
.db-kpi-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.db-kpi-ic{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);color:var(--ink-2);flex:none}
.db-kpi-ic svg{width:15px;height:15px}
.db-kpi .v{font-size:26px}
.db-kpi.good .db-kpi-ic{background:var(--good-soft);color:var(--good)}
.db-kpi.bad{border-color:color-mix(in srgb,var(--bad) 35%,var(--line))}
.db-kpi.bad .v{color:var(--bad)}
.db-kpi.bad .db-kpi-ic{background:var(--bad-soft);color:var(--bad)}
.db-kpi.warn .v{color:var(--warn)}
.db-kpi.warn .db-kpi-ic{background:var(--warn-soft);color:var(--warn)}
.db-kpi.ok .db-kpi-ic{background:var(--good-soft);color:var(--good)}
.db-kpi.kpi-click{cursor:pointer;transition:transform .16s cubic-bezier(.2,.8,.2,1),box-shadow .2s,border-color .2s}
.db-kpi.kpi-click:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:var(--accent)}
.db-kpi.kpi-click:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.db-sec-t{display:flex;align-items:baseline;gap:10px;margin:6px 2px 10px;flex-wrap:wrap}
.db-sec-t h2{margin:0;font-size:16px}
.db-grid{margin-top:4px}
.db-grid .pl-quota{margin:0}
.db-months{min-height:170px}
.pl-mcol.col-click{cursor:pointer;border-radius:8px}
.pl-mcol.col-click:hover{background:var(--surface-2)}
.db-val{font-size:13px;font-weight:600;white-space:nowrap}
@media (max-width:1180px){.db-alerts{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:861px) and (max-width:1320px){.topbar .own-txt{display:none}.topbar .owner-chip{padding:3px}.topbar .sync{display:none}}
@media (min-width:861px) and (max-width:1100px){.app{grid-template-columns:200px minmax(0,1fr);gap:14px;padding:12px 12px 0}.sidebar .brand b{font-size:13px}}
@media (max-width:860px){.db-kpis,.db-alerts{grid-template-columns:repeat(2,minmax(0,1fr))}.db-grid{grid-template-columns:minmax(0,1fr)}}
