/* ===== legacy styles (pages not yet rebuilt to the new design) ===== */
:root{
  --bg:#0a0c10; --surface:#11141b; --surface2:#161a23; --border:#222835;
  --text:#e7ebf2; --muted:#8b94a6; --tertiary:#5c6677;
  --blue:#5b9eff; --green:#30d158; --orange:#ff9f0a; --red:#ff453a; --purple:#bf5af2;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif;
  font-size:14px;}
.shell{display:flex;min-height:100vh}
.sidebar{width:220px;background:#0c0e13;border-right:1px solid var(--border);
  padding:22px 14px;display:flex;flex-direction:column;gap:18px}
.brand{font-size:16px;font-weight:700;display:flex;align-items:center;gap:8px}
.brand .logo{color:var(--purple)}
.sidebar nav{display:flex;flex-direction:column;gap:4px}
.sidebar nav a{color:var(--muted);text-decoration:none;padding:9px 12px;
  border-radius:8px;font-weight:500}
.sidebar nav a:hover{background:var(--surface)}
.sidebar nav a.active{background:var(--surface2);color:var(--text)}
.sidebar-foot{margin-top:auto;color:var(--tertiary);font-size:12px}
.content{flex:1;padding:30px 36px;max-width:1200px}
.page-head{margin-bottom:22px}
.page-head h1{margin:0 0 4px;font-size:26px}
.sub{color:var(--muted);margin:0}
.back{color:var(--blue);text-decoration:none;font-size:13px}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}
.kpi{background:var(--surface);border:1px solid var(--border);border-radius:14px;
  padding:16px 18px}
.kpi-label{color:var(--tertiary);font-size:12px;margin-bottom:6px}
.kpi-value{font-size:24px;font-weight:600}
.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;
  padding:20px 22px;margin-bottom:18px}
.card h2{margin:0 0 14px;font-size:15px;font-weight:600}
table{width:100%;border-collapse:collapse}
th{text-align:left;color:var(--tertiary);font-weight:600;font-size:11px;
  text-transform:uppercase;letter-spacing:.05em;padding:0 10px 10px}
td{padding:11px 10px;border-top:1px solid var(--border);vertical-align:middle}
tbody tr[onclick]{cursor:pointer}
tbody tr[onclick]:hover{background:var(--surface2)}
.name{font-weight:600}
.muted{color:var(--muted)}
.tertiary{color:var(--tertiary)}
.mono{font-family:"SF Mono",ui-monospace,Menlo,monospace;font-size:12px}
.empty{color:var(--muted)}
.pill{padding:3px 10px;border-radius:9px;font-size:11px;font-weight:600;
  border:1px solid var(--border);background:var(--surface2);color:var(--muted)}
.pill.online,.pill.completed{color:var(--green);
  background:rgba(48,209,88,.12);border-color:rgba(48,209,88,.34)}
.pill.stale,.pill.pending,.pill.scheduled{color:var(--blue);
  background:rgba(91,158,255,.12);border-color:rgba(91,158,255,.34)}
.pill.offline,.pill.overdue{color:var(--red);
  background:rgba(255,69,58,.12);border-color:rgba(255,69,58,.34)}
.sev{font-size:11px;font-weight:600;text-transform:capitalize}
.sev.info{color:var(--blue)} .sev.success{color:var(--green)}
.sev.warning{color:var(--orange)} .sev.error,.sev.critical{color:var(--red)}
.task-form{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.task-form label{display:flex;flex-direction:column;gap:5px;font-size:12px;
  color:var(--muted)}
.task-form input,.task-form select{background:var(--surface2);
  border:1px solid var(--border);border-radius:8px;color:var(--text);
  padding:8px 10px;font-size:13px;min-width:150px}
.btn{background:linear-gradient(180deg,#2150e6,#1043d6);color:#fff;border:none;
  border-radius:9px;padding:9px 16px;font-weight:600;cursor:pointer}
.btn-link{background:none;border:none;color:var(--red);cursor:pointer;
  font-size:12px;padding:0}

/* login */
.login-body{display:flex;align-items:center;justify-content:center;min-height:100vh;
  background:radial-gradient(1200px 600px at 50% -10%,#141a26,#0a0c10)}
.login-card{background:var(--surface);border:1px solid var(--border);
  border-radius:18px;padding:34px 30px;width:340px;display:flex;flex-direction:column;
  gap:14px;box-shadow:0 24px 60px rgba(0,0,0,.45)}
.login-brand{font-size:22px;font-weight:700;display:flex;align-items:center;gap:9px}
.login-brand .logo{color:var(--purple)}
.login-sub{color:var(--muted);margin-top:-8px;margin-bottom:6px;font-size:13px}
.login-error{background:rgba(255,69,58,.12);border:1px solid rgba(255,69,58,.34);
  color:#ff6b61;border-radius:9px;padding:9px 12px;font-size:13px}
.login-card label{display:flex;flex-direction:column;gap:6px;font-size:12px;
  color:var(--muted)}
.login-card input{background:var(--surface2);border:1px solid var(--border);
  border-radius:9px;color:var(--text);padding:11px 12px;font-size:14px}
.login-card input:focus{outline:none;border-color:var(--blue)}
.login-btn{width:100%;padding:11px;font-size:14px;margin-top:6px}
.sidebar-foot .logout{color:var(--muted);text-decoration:none;font-size:13px;
  display:block;padding:9px 12px;border-radius:8px}
.sidebar-foot .logout:hover{background:var(--surface);color:var(--text)}
.sidebar-foot .ver{color:var(--tertiary);font-size:11px;padding:8px 12px 0}

/* ===== Overview / shared components (stage 0) ===== */
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px}
.head-meta{color:var(--tertiary);font-size:12px;font-family:"SF Mono",ui-monospace,Menlo,monospace;white-space:nowrap}

/* sidebar nav with icons */
.sidebar nav a{display:flex;align-items:center;gap:11px}
.sidebar nav a svg{flex:none;opacity:.8}
.sidebar nav a.active svg{opacity:1;color:var(--blue)}

/* KPI tiles */
.kpis{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.kpi-top{display:flex;align-items:center;gap:9px;margin-bottom:10px}
.kpi-ico{width:26px;height:26px;border-radius:8px;display:flex;align-items:center;
  justify-content:center;font-size:13px;font-weight:700}
.kpi-ico.blue{background:rgba(91,158,255,.14);color:var(--blue)}
.kpi-ico.purple{background:rgba(191,90,242,.14);color:var(--purple)}
.kpi-ico.amber{background:rgba(255,159,10,.14);color:var(--orange)}
.kpi-ico.red{background:rgba(255,69,58,.14);color:var(--red)}
.kpi-ico.green{background:rgba(48,209,88,.14);color:var(--green)}
.kpi-ico.cyan{background:rgba(50,210,230,.14);color:#32d2e6}
.kpi-ico.mint{background:rgba(48,209,160,.14);color:#30d1a0}
.kpi .kpi-label{color:var(--tertiary);font-size:12px}

/* 3-column section grid */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:18px}
@media(max-width:1100px){.grid-3{grid-template-columns:1fr}}
.card-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}
.card-head h2{margin:0}
.card-head a{color:var(--blue);text-decoration:none;font-size:12px}
.small{font-size:12px}

/* event rows */
.ev-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--border)}
.ev-row:first-of-type{border-top:none}
.sev-dot{width:8px;height:8px;border-radius:50%;flex:none;background:var(--muted)}
.sev-dot.info{background:var(--blue)} .sev-dot.success{background:var(--green)}
.sev-dot.warning{background:var(--orange)} .sev-dot.error,.sev-dot.critical{background:var(--red)}
.ev-body{flex:1;min-width:0}
.ev-msg{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* top tools rows */
.tt-row,.ch-row{display:flex;align-items:center;gap:10px;padding:10px 0;
  border-top:1px solid var(--border);text-decoration:none;color:var(--text)}
.tt-row:first-of-type,.ch-row:first-of-type{border-top:none}
.tt-row:hover{background:var(--surface2);border-radius:8px;margin:0 -8px;padding:10px 8px}
.tt-body,.ch-body{flex:1;min-width:0}
.tt-nums{font-size:12px;color:var(--muted);white-space:nowrap}
.tt-nums b,.ch-nums{color:var(--text)}
.ch-nums{font-size:13px;white-space:nowrap}

/* production pipeline */
.pl-bar{display:flex;gap:3px;height:10px;margin:6px 0 16px}
.pl-seg{border-radius:3px}
.pl-seg.green{background:var(--green)} .pl-seg.blue{background:var(--blue)}
.pl-seg.purple{background:var(--purple)} .pl-seg.amber{background:var(--orange)}
.pl-seg.red{background:var(--red)} .pl-seg.empty{background:var(--border)}
.pl-legend{display:flex;flex-wrap:wrap;gap:8px 18px}
.pl-item{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:6px}
.pl-item b{color:var(--text)}
.dot{width:8px;height:8px;border-radius:50%;display:inline-block}
.dot.green{background:var(--green)} .dot.blue{background:var(--blue)}
.dot.purple{background:var(--purple)} .dot.amber{background:var(--orange)}
.dot.red{background:var(--red)}

/* health / report rows */
.hl-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;
  border-top:1px solid var(--border);font-size:13px}
.hl-row:first-of-type{border-top:none}
.hl-row .ok{color:var(--green);font-size:12px;font-weight:600}
.hl-row .warn{color:var(--orange);font-size:12px;font-weight:600}
.pill.stale{color:var(--orange);background:rgba(255,159,10,.12);border-color:rgba(255,159,10,.34)}

/* placeholder */
.ph{display:flex;flex-direction:column;align-items:center;text-align:center;
  padding:50px 20px;gap:10px}
.ph-title{font-size:16px;font-weight:600}
.ph-sub{color:var(--muted);max-width:440px;font-size:13px}

/* tools detail + list extras */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}
@media(max-width:1100px){.grid-2{grid-template-columns:1fr}}
.eyebrow{color:var(--blue);font-size:11px;font-weight:700;letter-spacing:.08em;margin-bottom:4px}
.ap-title{font-size:18px;font-weight:600;margin-bottom:2px}
.tag{font-size:11px;font-weight:600;padding:3px 9px;border-radius:8px}
.tag.ok{color:var(--green);background:rgba(48,209,88,.12)}
.tag.warn{color:var(--orange);background:rgba(255,159,10,.12)}
.hl-row .mono{color:var(--text)}

/* projects board */
.board{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
@media(max-width:1100px){.board{grid-template-columns:repeat(2,1fr)}}
.board-col{background:var(--bg);border:1px solid var(--border);border-radius:12px;
  padding:12px;min-height:90px}
.board-head{font-size:12px;font-weight:600;display:flex;align-items:center;gap:7px;
  margin-bottom:10px}
.board-head .muted{margin-left:auto}
.proj-card{background:var(--surface2);border:1px solid var(--border);border-radius:9px;
  padding:9px 10px;margin-bottom:8px}
.proj-title{font-size:13px;font-weight:500;margin:2px 0}
.board-empty{color:var(--tertiary);text-align:center;padding:6px;font-size:13px}

/* events split layout */
.split{display:grid;grid-template-columns:1fr 300px;gap:18px;margin-bottom:18px}
@media(max-width:1100px){.split{grid-template-columns:1fr}}
.split .side{align-self:start}

/* banner + calendar */
.banner{padding:11px 16px;border-radius:10px;margin-bottom:16px;font-size:13px;font-weight:500}
.banner.ok{background:rgba(48,209,88,.12);border:1px solid rgba(48,209,88,.34);color:var(--green)}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.cal-head{margin-bottom:8px}
.cal-wd{color:var(--tertiary);font-size:11px;font-weight:600;text-transform:uppercase;
  letter-spacing:.05em;padding:0 4px}
.cal-cell{background:var(--bg);border:1px solid var(--border);border-radius:9px;
  min-height:78px;padding:6px;margin-bottom:6px}
.cal-out{opacity:.4}
.cal-today .cal-day{background:var(--blue);color:#fff;border-radius:50%;
  width:22px;height:22px;display:flex;align-items:center;justify-content:center}
.cal-day{font-size:12px;color:var(--muted);margin-bottom:4px}
.cal-task{font-size:10px;background:var(--surface2);border:1px solid var(--border);
  border-radius:5px;padding:2px 5px;margin-bottom:3px;white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis;font-family:"SF Mono",ui-monospace,Menlo,monospace;color:var(--blue)}

/* ===== Overview v2 (reference-matched) ===== */
.head-right{display:flex;align-items:center;gap:14px}
.btn-ghost{background:var(--surface);border:1px solid var(--border);color:var(--text);
  border-radius:10px;padding:8px 14px;font-size:13px;font-weight:600;text-decoration:none;
  white-space:nowrap}
.btn-ghost:hover{background:var(--surface2)}
.head-date{color:var(--tertiary);font-size:12px;font-family:"SF Mono",ui-monospace,Menlo,monospace;white-space:nowrap}
.icon-btn{position:relative;width:36px;height:36px;border-radius:10px;background:var(--surface);
  border:1px solid var(--border);display:flex;align-items:center;justify-content:center;
  text-decoration:none;font-size:15px}
.icon-btn .badge{position:absolute;top:-5px;right:-5px;background:var(--red);color:#fff;
  font-size:10px;font-weight:700;border-radius:9px;min-width:17px;height:17px;
  display:flex;align-items:center;justify-content:center;padding:0 4px}
.user-chip{display:flex;align-items:center;gap:6px;background:var(--surface);
  border:1px solid var(--border);border-radius:20px;padding:5px 10px 5px 6px;
  text-decoration:none;color:var(--text);font-size:12px;font-weight:700}
.user-chip:before{content:"";width:24px;height:24px;border-radius:50%;
  background:linear-gradient(135deg,#5b9eff,#bf5af2)}
.user-chip .chev{color:var(--muted);font-weight:400}

/* 7-up KPI tiles + sparkline */
.kpis-7{grid-template-columns:repeat(7,minmax(0,1fr))}
@media(max-width:1300px){.kpis-7{grid-template-columns:repeat(4,1fr)}}
.kpi-sub{color:var(--tertiary);font-size:11.5px;margin-top:3px}
.kpi-spark{margin-top:10px;height:34px}
.spark{display:block}

.pill-link{background:var(--surface2);border:1px solid var(--border);color:var(--blue);
  text-decoration:none;font-size:11px;font-weight:600;padding:4px 10px;border-radius:8px}
.pill-link:hover{background:var(--bg)}

/* event chips */
.ev-chip{width:26px;height:26px;border-radius:8px;display:flex;align-items:center;
  justify-content:center;font-size:9px;flex:none}

/* top tools rows */
.tool-row{display:flex;align-items:center;gap:10px;padding:11px 0;
  border-top:1px solid var(--border);text-decoration:none;color:var(--text)}
.tool-row:first-of-type{border-top:none}
.tool-row:hover{background:var(--surface2);border-radius:9px;margin:0 -8px;padding:11px 8px}
.tool-ico{width:30px;height:30px;border-radius:8px;background:var(--surface2);
  border:1px solid var(--border);display:flex;align-items:center;justify-content:center;
  color:var(--muted);flex:none}
.tool-id{flex:1;min-width:0}
.status-dot{width:8px;height:8px;border-radius:50%;background:var(--muted)}
.status-dot.online{background:var(--green)} .status-dot.stale{background:var(--orange)}
.status-dot.offline{background:var(--red)}
.status-tx{text-transform:capitalize;margin-right:6px}
.tool-stat{display:flex;flex-direction:column;align-items:center;min-width:32px}
.tool-stat b{font-size:14px} .tool-stat span{font-size:10px;color:var(--tertiary)}

/* channel performance rows */
.chp-row{display:flex;align-items:center;gap:11px;padding:11px 0;
  border-top:1px solid var(--border);text-decoration:none;color:var(--text)}
.chp-row:first-of-type{border-top:none}
.chp-row:hover{background:var(--surface2);border-radius:9px;margin:0 -8px;padding:11px 8px}
.avatar{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;
  justify-content:center;font-size:11px;font-weight:700;border:1px solid;flex:none}
.chp-id{flex:1;min-width:0}
.chp-col{display:flex;flex-direction:column;align-items:flex-end;min-width:50px}
.chp-col b{font-size:13px} .chp-col span{font-size:10px;color:var(--tertiary)}
.chp-spark{width:56px;flex:none}

/* production pipeline stepper */
.stepper{display:flex;justify-content:space-between;margin:8px 0 18px;position:relative}
.step{display:flex;flex-direction:column;align-items:center;gap:6px;flex:1;position:relative}
.step:not(:last-child):after{content:"";position:absolute;top:14px;left:50%;width:100%;
  height:2px;background:var(--border);z-index:0}
.step-c{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;
  justify-content:center;font-size:12px;font-weight:700;background:var(--surface2);
  border:1px solid var(--border);color:var(--tertiary);z-index:1}
.step-c.on.green{background:rgba(48,209,88,.15);color:var(--green);border-color:rgba(48,209,88,.4)}
.step-c.on.blue{background:rgba(91,158,255,.15);color:var(--blue);border-color:rgba(91,158,255,.4)}
.step-c.on.purple{background:rgba(191,90,242,.15);color:var(--purple);border-color:rgba(191,90,242,.4)}
.step-c.on.amber{background:rgba(255,159,10,.15);color:var(--orange);border-color:rgba(255,159,10,.4)}
.step-l{font-size:11px;color:var(--muted)}
.pipe-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}
.pipe-stats div{display:flex;flex-direction:column}
.pipe-stats b{font-size:22px} .pipe-stats span{font-size:11px;color:var(--tertiary)}
.pipe-stats b.blue{color:var(--blue)} .pipe-stats b.amber{color:var(--orange)}
.pipe-stats b.green{color:var(--green)} .pipe-stats b.red{color:var(--red)}

/* system health */
.hl-l{display:flex;align-items:center;gap:9px}
.health-foot{display:flex;align-items:center;gap:8px;color:var(--green);font-size:12px;
  font-weight:600;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}

/* reports & sync donut */
.sync-wrap{display:flex;align-items:center;gap:20px;margin-bottom:14px}
.donut{width:108px;height:108px;border-radius:50%;flex:none;display:flex;
  align-items:center;justify-content:center}
.donut-hole{width:74px;height:74px;border-radius:50%;background:var(--surface);
  display:flex;flex-direction:column;align-items:center;justify-content:center}
.donut-hole b{font-size:22px} .donut-hole span{font-size:10px;color:var(--tertiary)}
.sync-legend{display:flex;flex-direction:column;gap:8px;font-size:12px;color:var(--muted)}
.sync-legend div{display:flex;align-items:center;gap:8px}
.sync-legend b{color:var(--text);margin-left:auto}

/* ===== NEW DESIGN SYSTEM (Claude Design) — wins on shared classes ===== */
/* ---------- TOKENS ---------- */
  :root {
    --bg:            #0a0d12;
    --bg-2:          #0d1117;
    --panel:         #11161e;
    --panel-2:       #141a23;
    --panel-hover:   #1a212c;
    --border:        #1f2630;
    --border-2:      #262d39;

    --text:          #e7ecf3;
    --text-2:        #a3acba;
    --text-3:        #6b7585;
    --text-4:        #4a525e;

    --brand:         #3b82f6;
    --brand-2:       #60a5fa;
    --brand-bg:      rgba(59,130,246,.12);

    --green:         #22c55e;
    --green-2:       #4ade80;
    --yellow:        #f59e0b;
    --orange:        #f97316;
    --red:           #ef4444;
    --purple:        #a855f7;
    --cyan:          #06b6d4;

    --radius:        14px;
    --radius-sm:     10px;

    --shadow:        0 1px 0 rgba(255,255,255,.02) inset, 0 1px 2px rgba(0,0,0,.4);
  }

  * { box-sizing: border-box; }
  html, body { margin: 0; padding: 0; background: #000; }
  body {
    font-family: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
    color: var(--text);
    font-size: 14px;
    -webkit-font-smoothing: antialiased;
    line-height: 1.4;
  }
  .mono { font-family: 'JetBrains Mono', ui-monospace, Menlo, monospace; }

  /* ---------- macOS WINDOW ---------- */
  .window {
    width: 1536px;
    margin: 0 auto;
    background: var(--bg);
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 30px 80px rgba(0,0,0,.6);
  }
  .titlebar {
    height: 36px;
    background: var(--bg-2);
    display: flex;
    align-items: center;
    padding: 0 16px;
    border-bottom: 1px solid var(--border);
  }
  .traffic { display: flex; gap: 8px; }
  .traffic span {
    width: 12px; height: 12px; border-radius: 50%; display: block;
  }
  .traffic .c1 { background: #ff5f57; }
  .traffic .c2 { background: #febc2e; }
  .traffic .c3 { background: #28c840; }

  /* ---------- APP SHELL ---------- */
  .app {
    display: grid;
    grid-template-columns: 220px 1fr;
    min-height: 980px;
  }

  /* ---------- SIDEBAR ---------- */
  .sidebar {
    background: var(--bg-2);
    border-right: 1px solid var(--border);
    padding: 20px 14px 16px;
    display: flex;
    flex-direction: column;
  }
  .brand {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 4px 8px 24px;
  }
  .brand-logo {
    width: 30px; height: 30px;
    border-radius: 8px;
    background: linear-gradient(135deg, #3b82f6, #2563eb);
    display: grid; place-items: center;
    box-shadow: 0 4px 14px rgba(59,130,246,.35);
  }
  .brand-name {
    font-weight: 700;
    font-size: 17px;
    letter-spacing: -.01em;
  }

  .nav { display: flex; flex-direction: column; gap: 2px; }
  .nav a {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    border-radius: 10px;
    color: var(--text-2);
    text-decoration: none;
    font-size: 14px;
    font-weight: 500;
    transition: background .15s, color .15s;
  }
  .nav a:hover { background: var(--panel); color: var(--text); }
  .nav a.active {
    background: var(--brand-bg);
    color: var(--brand-2);
  }
  .nav svg { width: 18px; height: 18px; stroke-width: 1.8; flex-shrink: 0; }

  .sidebar-foot { margin-top: auto; }
  .status-pill {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 12px 14px;
  }
  .status-pill .row {
    display: flex; align-items: center; gap: 8px;
  }
  .status-pill .dot {
    width: 8px; height: 8px; border-radius: 50%;
    background: var(--green);
    box-shadow: 0 0 10px rgba(34,197,94,.7);
  }
  .status-pill .label {
    color: var(--text);
    font-weight: 600;
    font-size: 13px;
    line-height: 1.25;
  }
  .status-pill .sub {
    margin-top: 10px;
    border-top: 1px solid var(--border);
    padding-top: 10px;
    font-size: 12px;
  }
  .status-pill .sub .k { color: var(--text-2); }
  .status-pill .sub .v { color: var(--green); font-weight: 600; margin-top: 2px; }

  .version {
    margin-top: 10px;
    display: flex; align-items: center; justify-content: space-between;
    padding: 6px 8px;
    font-size: 12px;
    color: var(--text-3);
  }
  .version .collapse {
    width: 22px; height: 22px; display: grid; place-items: center;
    border-radius: 6px; color: var(--text-3);
  }

  /* ---------- MAIN ---------- */
  main {
    padding: 26px 30px 32px;
    display: flex;
    flex-direction: column;
    gap: 18px;
    background: var(--bg);
  }

  /* ---------- HEADER ---------- */
  .page-head {
    display: flex; align-items: flex-start; justify-content: space-between;
    gap: 24px;
  }
  .page-title h1 {
    margin: 0;
    font-size: 30px;
    font-weight: 700;
    letter-spacing: -.02em;
  }
  .page-title p {
    margin: 6px 0 0;
    color: var(--text-3);
    font-size: 14px;
  }
  .page-head .right {
    display: flex; align-items: center; gap: 20px;
  }
  .btn {
    display: inline-flex; align-items: center; gap: 8px;
    background: var(--panel);
    border: 1px solid var(--border);
    color: var(--text);
    padding: 9px 14px;
    border-radius: 10px;
    font-size: 13.5px;
    font-weight: 500;
    cursor: pointer;
    font-family: inherit;
  }
  .btn:hover { background: var(--panel-hover); }
  .btn svg { width: 14px; height: 14px; }

  .clock {
    color: var(--text-3);
    font-size: 13px;
    display: flex; align-items: center; gap: 10px;
    letter-spacing: .01em;
  }
  .clock .sep { color: var(--text-4); }

  .icon-btn {
    position: relative;
    width: 38px; height: 38px;
    display: grid; place-items: center;
    border-radius: 10px;
    background: var(--panel);
    border: 1px solid var(--border);
    color: var(--text-2);
    cursor: pointer;
  }
  .icon-btn .badge {
    position: absolute; top: -4px; right: -4px;
    min-width: 16px; height: 16px; padding: 0 4px;
    border-radius: 8px;
    background: var(--red);
    color: white; font-size: 10px; font-weight: 700;
    display: grid; place-items: center;
    border: 2px solid var(--bg);
  }

  .avatar {
    display: flex; align-items: center; gap: 8px;
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 4px 10px 4px 4px;
    cursor: pointer;
  }
  .avatar .bubble {
    width: 30px; height: 30px;
    border-radius: 50%;
    background: linear-gradient(135deg, #8b5cf6, #6366f1);
    color: white;
    display: grid; place-items: center;
    font-weight: 700;
    font-size: 12px;
    letter-spacing: .04em;
  }
  .avatar svg { width: 14px; height: 14px; color: var(--text-3); }

  /* ---------- STAT CARDS (TOP ROW) ---------- */
  .stats {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 12px;
  }
  .stat-card {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 14px 16px 6px;
    position: relative;
    overflow: hidden;
    min-height: 140px;
    display: flex; flex-direction: column;
  }
  .stat-card .head {
    display: flex; align-items: center; gap: 10px;
  }
  .stat-card .icon {
    width: 32px; height: 32px;
    border-radius: 8px;
    display: grid; place-items: center;
    flex-shrink: 0;
  }
  .stat-card .icon svg { width: 18px; height: 18px; }
  .stat-card .label {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .08em;
    color: var(--text-3);
    text-transform: uppercase;
  }
  .stat-card .value {
    font-size: 28px;
    font-weight: 700;
    letter-spacing: -.02em;
    margin-top: 8px;
    line-height: 1.1;
  }
  .stat-card .sub {
    font-size: 12px;
    color: var(--text-3);
    margin-top: 2px;
  }
  .stat-card .delta {
    font-size: 12px;
    color: var(--green-2);
    margin-top: 4px;
    font-weight: 500;
    display: inline-flex; align-items: center; gap: 4px;
  }
  .stat-card .delta .muted { color: var(--text-3); font-weight: 400; }
  .stat-card .spark {
    margin-top: auto;
    margin-left: -16px;
    margin-right: -16px;
    margin-bottom: -6px;
    height: 38px;
  }
  .stat-card .spark svg { width: 100%; height: 100%; display: block; }

  .ic-blue   { background: rgba(59,130,246,.14);  color: #60a5fa; }
  .ic-purple { background: rgba(168,85,247,.14);  color: #c084fc; }
  .ic-orange { background: rgba(249,115,22,.14);  color: #fb923c; }
  .ic-red    { background: rgba(239,68,68,.14);   color: #f87171; }
  .ic-green  { background: rgba(34,197,94,.14);   color: #4ade80; }
  .ic-cyan   { background: rgba(6,182,212,.14);   color: #22d3ee; }
  .ic-emerald{ background: rgba(16,185,129,.14);  color: #34d399; }

  /* ---------- PANEL (generic card) ---------- */
  .panel {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 18px 20px;
    display: flex;
    flex-direction: column;
  }
  .panel-head {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 14px;
  }
  .panel-head h2 {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: -.005em;
  }
  .link-btn {
    background: var(--panel-2);
    border: 1px solid var(--border-2);
    color: var(--text-2);
    border-radius: 8px;
    padding: 6px 10px;
    font-size: 12.5px;
    cursor: pointer;
    display: inline-flex; align-items: center; gap: 6px;
    font-family: inherit;
  }
  .link-btn:hover { background: var(--panel-hover); color: var(--text); }

  .link-foot {
    color: var(--brand-2);
    font-size: 13px;
    font-weight: 500;
    margin-top: auto;
    padding-top: 14px;
    text-decoration: none;
  }
  .link-foot:hover { text-decoration: underline; }

  /* ---------- MID GRID ---------- */
  .mid-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1.15fr;
    gap: 14px;
  }

  /* Latest Events */
  .events { display: flex; flex-direction: column; gap: 2px; }
  .event {
    display: grid;
    grid-template-columns: 32px 1fr auto;
    gap: 12px;
    align-items: center;
    padding: 10px 4px;
  }
  .event .ev-icon {
    width: 32px; height: 32px; border-radius: 8px;
    display: grid; place-items: center;
  }
  .event .ev-icon svg { width: 16px; height: 16px; }
  .event .ev-title { font-size: 13.5px; font-weight: 500; color: var(--text); }
  .event .ev-sub { font-size: 12px; color: var(--text-3); margin-top: 2px; }
  .event .ev-time { font-size: 12px; color: var(--text-3); font-variant-numeric: tabular-nums; }

  /* Top Active Tools */
  .tools-list { display: flex; flex-direction: column; gap: 0; }
  .tool {
    display: grid;
    grid-template-columns: 40px 1fr 90px repeat(3, 50px);
    gap: 12px;
    align-items: center;
    padding: 10px 4px;
  }
  .tool .t-icon {
    width: 36px; height: 36px; border-radius: 8px;
    background: var(--panel-2);
    border: 1px solid var(--border-2);
    display: grid; place-items: center; color: var(--text-2);
  }
  .tool .t-icon svg { width: 18px; height: 18px; }
  .tool .name { font-size: 13.5px; font-weight: 600; }
  .tool .id { font-family: 'JetBrains Mono', monospace; font-size: 11.5px; color: var(--text-3); margin-top: 2px; }
  .tool .status { display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--text-2); }
  .tool .status .dot { width: 8px; height: 8px; border-radius: 50%; }
  .tool .status.online .dot { background: var(--green); box-shadow: 0 0 8px rgba(34,197,94,.6); }
  .tool .status.offline .dot { background: var(--red); box-shadow: 0 0 8px rgba(239,68,68,.6); }
  .tool .ago { font-size: 11.5px; color: var(--text-3); margin-top: 2px; }
  .tool .num { text-align: center; }
  .tool .num .n { font-size: 14px; font-weight: 600; }
  .tool .num .l { font-size: 11px; color: var(--text-3); margin-top: 2px; }

  /* Channel Performance */
  .channels-table { display: flex; flex-direction: column; }
  .channel {
    display: grid;
    grid-template-columns: 40px 1fr 70px 60px 80px 60px;
    gap: 14px;
    align-items: center;
    padding: 10px 4px;
  }
  .channel .av {
    width: 36px; height: 36px; border-radius: 50%;
    display: grid; place-items: center;
    font-weight: 700; font-size: 11.5px; letter-spacing: .04em;
    color: white;
  }
  .av.av1 { background: linear-gradient(135deg,#8b5cf6,#6366f1); }
  .av.av2 { background: linear-gradient(135deg,#ec4899,#db2777); }
  .av.av3 { background: linear-gradient(135deg,#f59e0b,#d97706); }
  .av.av4 { background: linear-gradient(135deg,#06b6d4,#0891b2); }
  .av.av5 { background: linear-gradient(135deg,#84cc16,#65a30d); }
  .channel .ch-name { font-weight: 600; font-size: 13.5px; }
  .channel .ch-handle { font-size: 11.5px; color: var(--text-3); margin-top: 2px; }
  .channel .num { text-align: left; }
  .channel .num .n { font-size: 13px; font-weight: 600; }
  .channel .num .l { font-size: 11px; color: var(--text-3); margin-top: 2px; }
  .channel .delta {
    font-size: 12px; color: var(--green-2);
    font-weight: 600;
    display: inline-flex; align-items: center; gap: 2px;
  }
  .channel .spark { width: 70px; height: 28px; }
  .channel .spark svg { width: 100%; height: 100%; }

  /* ---------- BOTTOM GRID ---------- */
  .bot-grid {
    display: grid;
    grid-template-columns: 1.05fr 1fr 1.15fr;
    gap: 14px;
  }

  /* Production Pipeline */
  .pipeline-steps {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    align-items: start;
    margin: 8px 0 24px;
    position: relative;
  }
  .step {
    display: flex; flex-direction: column; align-items: center;
    gap: 10px;
    position: relative;
  }
  .step .circle {
    width: 44px; height: 44px;
    border-radius: 50%;
    border: 2px solid var(--border-2);
    background: var(--panel-2);
    display: grid; place-items: center;
    color: var(--text-3);
    font-weight: 600; font-size: 14px;
    position: relative; z-index: 1;
  }
  .step.done .circle {
    background: rgba(34,197,94,.12);
    border-color: rgba(34,197,94,.5);
    color: var(--green-2);
  }
  .step.active .circle {
    background: rgba(59,130,246,.15);
    border-color: var(--brand);
    color: var(--brand-2);
    box-shadow: 0 0 0 4px rgba(59,130,246,.12);
  }
  .step .label {
    font-size: 12.5px;
    color: var(--text-2);
    font-weight: 500;
  }
  .step.active .label { color: var(--text); }
  .step.todo .label { color: var(--text-3); }
  /* connector lines */
  .pipeline-steps .step::before {
    content: ""; position: absolute;
    top: 21px; left: -50%; right: 50%;
    height: 2px; background: var(--border-2);
    z-index: 0;
  }
  .pipeline-steps .step:first-child::before { display: none; }
  .pipeline-steps .step.done::before,
  .pipeline-steps .step.active::before {
    background: rgba(34,197,94,.5);
  }

  .pipeline-metrics {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
    margin-top: 6px;
  }
  .pmetric { text-align: center; }
  .pmetric .n { font-size: 26px; font-weight: 700; letter-spacing: -.02em; line-height: 1; }
  .pmetric .l { font-size: 11.5px; color: var(--text-3); margin-top: 6px; }

  .pbar {
    display: flex; gap: 4px;
    margin: 18px 0 10px;
    height: 8px;
    border-radius: 4px;
    overflow: hidden;
  }
  .pbar > span { height: 100%; border-radius: 3px; }
  .pbar .s1 { background: var(--green);  flex: 13; }
  .pbar .s2 { background: var(--brand);  flex: 48; }
  .pbar .s3 { background: var(--orange); flex: 27; }
  .pbar .s4 { background: var(--red);    flex: 2;  }
  .pbar .s5 { background: var(--border-2); flex: 10; }
  .pbar-foot {
    font-size: 12px;
    color: var(--text-3);
  }

  /* System Health */
  .sh-row {
    display: grid;
    grid-template-columns: 22px 1fr auto auto;
    align-items: center;
    gap: 14px;
    padding: 12px 0;
    border-top: 1px solid var(--border);
  }
  .sh-row:first-of-type { border-top: none; }
  .sh-row .ic { color: var(--green-2); display: grid; place-items: center; }
  .sh-row .ic svg { width: 18px; height: 18px; }
  .sh-row .name { font-size: 13.5px; font-weight: 500; }
  .sh-row .val { font-size: 12.5px; color: var(--text-2); display: flex; gap: 14px; align-items: center; font-variant-numeric: tabular-nums; }
  .sh-row .val .pct { color: var(--text-3); }
  .sh-row .ok {
    color: var(--green-2);
    font-size: 12.5px;
    font-weight: 600;
  }

  .sh-foot {
    margin-top: 16px;
    padding: 14px;
    border-radius: 10px;
    background: rgba(34,197,94,.08);
    border: 1px solid rgba(34,197,94,.18);
    display: flex; align-items: center; gap: 10px;
    color: var(--green-2);
    font-size: 13px;
    font-weight: 500;
  }
  .sh-foot svg { width: 18px; height: 18px; }

  /* Reports & Sync */
  .reports-grid {
    display: grid;
    grid-template-columns: 1fr 1.1fr;
    gap: 20px;
    align-items: start;
  }
  .reports-grid h3 {
    margin: 0 0 10px;
    font-size: 13px;
    color: var(--text-2);
    font-weight: 500;
  }
  .today {
    font-size: 36px;
    font-weight: 700;
    letter-spacing: -.02em;
    line-height: 1;
  }
  .today-label { font-size: 12px; color: var(--text-3); margin-top: 4px; }
  .today-delta {
    font-size: 12.5px; color: var(--green-2);
    margin-top: 8px;
    font-weight: 500;
  }
  .bars {
    display: flex; align-items: flex-end; gap: 3px;
    height: 80px;
    margin-top: 18px;
  }
  .bars > span {
    flex: 1;
    background: var(--brand);
    border-radius: 2px;
    opacity: .85;
  }
  .bars-axis {
    display: flex; justify-content: space-between;
    margin-top: 6px;
    font-size: 10.5px; color: var(--text-3);
    font-family: 'JetBrains Mono', monospace;
  }

  .donut-wrap {
    display: grid;
    grid-template-columns: 130px 1fr;
    gap: 18px;
    align-items: center;
  }
  .donut {
    width: 130px; height: 130px;
    position: relative;
  }
  .donut svg { width: 100%; height: 100%; transform: rotate(-90deg); }
  .donut .total {
    position: absolute; inset: 0;
    display: grid; place-items: center;
    text-align: center;
  }
  .donut .total .n { font-size: 26px; font-weight: 700; letter-spacing: -.02em; }
  .donut .total .l { font-size: 11px; color: var(--text-3); margin-top: 2px; }

  .legend { display: flex; flex-direction: column; gap: 10px; }
  .legend .lr {
    display: grid;
    grid-template-columns: 14px 1fr auto;
    gap: 10px;
    align-items: center;
    font-size: 13px;
  }
  .legend .sw { width: 10px; height: 10px; border-radius: 50%; }
  .legend .val { color: var(--text-2); font-variant-numeric: tabular-nums; }

  .sync-foot {
    margin-top: 18px;
    display: flex; justify-content: space-between;
    font-size: 12.5px;
    color: var(--text-3);
  }
  .sync-foot .next { color: var(--brand-2); font-weight: 500; }
/* ---------- web-app shell overrides (no fixed mac window) ---------- */
html, body { height: 100%; }
.app { min-height: 100vh; }
.sidebar { position: sticky; top: 0; height: 100vh; }
a { color: inherit; }
.nav a.active svg { color: var(--brand-2); }

/* brand mark = our solid white hexagon (no colored container) */
.brand-logo{background:none!important;box-shadow:none!important;width:28px;height:28px}
.brand-logo svg{width:26px;height:26px}

/* ===== page: Tools ===== */
.page-tools .nav a {
    display: flex; align-items: center; gap: 12px;
    padding: 10px 12px; border-radius: 10px;
    color: var(--text-2); text-decoration: none;
    font-size: 14px; font-weight: 500;
    transition: background .15s, color .15s;
    position: relative;
  }
.page-tools .nav .pill {
    margin-left: auto;
    min-width: 20px; height: 18px; padding: 0 6px;
    border-radius: 9px;
    background: var(--red); color: white;
    font-size: 11px; font-weight: 700;
    display: grid; place-items: center;
  }
.page-tools .page-head {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 24px;
    align-items: center;
  }
.page-tools .search {
    position: relative;
    max-width: 380px;
    justify-self: end;
  }
.page-tools .search input {
    width: 380px;
    background: var(--panel);
    border: 1px solid var(--border);
    color: var(--text);
    border-radius: 10px;
    padding: 10px 56px 10px 36px;
    font-size: 13.5px;
    font-family: inherit;
    outline: none;
  }
.page-tools .search input::placeholder { color: var(--text-3); }
.page-tools .search .sicon {
    position: absolute; left: 12px; top: 50%;
    transform: translateY(-50%);
    color: var(--text-3);
  }
.page-tools .search .kbd {
    position: absolute; right: 10px; top: 50%;
    transform: translateY(-50%);
    background: var(--panel-2);
    border: 1px solid var(--border-2);
    color: var(--text-3);
    font-size: 11px; padding: 2px 6px; border-radius: 5px;
    font-family: 'JetBrains Mono', monospace;
  }
.page-tools .head-right {
    display: flex; align-items: center; gap: 18px;
  }
.page-tools .clock {
    color: var(--text-3);
    font-size: 13px;
    display: flex; align-items: center; gap: 10px;
  }
.page-tools .stats-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr) auto;
    gap: 14px;
    align-items: stretch;
  }
.page-tools .stat-card {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 14px 18px 6px;
    position: relative;
    overflow: hidden;
    min-height: 124px;
    display: flex; flex-direction: column;
  }
.page-tools .stat-card .icon {
    width: 38px; height: 38px; border-radius: 9px;
    display: grid; place-items: center; flex-shrink: 0;
  }
.page-tools .stat-card .icon svg { width: 20px; height: 20px; }
.page-tools .stat-card .value {
    font-size: 28px; font-weight: 700;
    letter-spacing: -.02em; margin-top: 6px; line-height: 1.1;
  }
.page-tools .stat-card .spark {
    margin-top: auto;
    margin-left: -18px; margin-right: -18px; margin-bottom: -6px;
    height: 38px;
  }
.page-tools .ic-yellow { background: rgba(234,179,8,.14);   color: #facc15; }
.page-tools .filters-block {
    display: flex; flex-direction: column; gap: 10px;
    justify-content: center;
    padding-left: 6px;
  }
.page-tools .btn {
    display: inline-flex; align-items: center; justify-content: space-between;
    gap: 10px;
    background: var(--panel);
    border: 1px solid var(--border);
    color: var(--text);
    padding: 10px 14px;
    border-radius: 10px;
    font-size: 13.5px;
    font-weight: 500;
    cursor: pointer;
    font-family: inherit;
    min-width: 170px;
  }
.page-tools .btn svg { width: 14px; height: 14px; color: var(--text-3); }
.page-tools .btn .left { display: inline-flex; align-items: center; gap: 8px; }
.page-tools .main-grid {
    display: grid;
    grid-template-columns: 1.05fr 1.55fr;
    gap: 14px;
    align-items: start;
  }
.page-tools .link-btn svg { width: 11px; height: 11px; }
.page-tools .tools-table {
    margin: 0 -8px;
  }
.page-tools .th-row {
    display: grid;
    grid-template-columns: 28px minmax(160px, 1.6fr) 80px 60px 70px 80px 70px;
    gap: 10px;
    padding: 0 8px 12px;
    border-bottom: 1px solid var(--border);
    font-size: 11px;
    color: var(--text-3);
    font-weight: 600;
    text-transform: capitalize;
    letter-spacing: .01em;
  }
.page-tools .th-row .th-i { color: var(--text-4); }
.page-tools .tools-rows { display: flex; flex-direction: column; }
.page-tools .trow {
    display: grid;
    grid-template-columns: 28px minmax(160px, 1.6fr) 80px 60px 70px 80px 70px;
    gap: 10px;
    align-items: center;
    padding: 12px 8px;
    border-radius: 10px;
    border: 1px solid transparent;
    position: relative;
  }
.page-tools .trow .idx { color: var(--text-3); font-size: 13px; }
.page-tools .trow.selected {
    background: rgba(59,130,246,.07);
    border-color: rgba(59,130,246,.55);
  }
.page-tools .trow + .trow { margin-top: 2px; }
.page-tools .tool-cell { display: flex; align-items: center; gap: 10px; min-width: 0; }
.page-tools .tool-cell .ti {
    width: 32px; height: 32px; border-radius: 8px;
    background: var(--panel-2);
    border: 1px solid var(--border-2);
    display: grid; place-items: center;
    color: var(--text-2);
    flex-shrink: 0;
  }
.page-tools .tool-cell .ti svg { width: 16px; height: 16px; }
.page-tools .tool-cell .tn { font-size: 13.5px; font-weight: 600; line-height: 1.2; }
.page-tools .tool-cell .tid { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--text-3); margin-top: 2px; }
.page-tools .stcell { display: flex; align-items: center; gap: 8px; font-size: 12.5px; }
.page-tools .stcell .dot { width: 8px; height: 8px; border-radius: 50%; }
.page-tools .stcell.online { color: var(--text); }
.page-tools .stcell.online .dot { background: var(--green); box-shadow: 0 0 8px rgba(34,197,94,.6); }
.page-tools .stcell.offline { color: var(--text-2); }
.page-tools .stcell.offline .dot { background: var(--red); box-shadow: 0 0 8px rgba(239,68,68,.6); }
.page-tools .stcell.stale { color: var(--text); }
.page-tools .stcell.stale .dot { background: var(--yellow); box-shadow: 0 0 8px rgba(234,179,8,.6); }
.page-tools .numcell { font-size: 13.5px; color: var(--text); font-variant-numeric: tabular-nums; }
.page-tools .timecell { font-size: 12.5px; color: var(--text-2); font-variant-numeric: tabular-nums; }
.page-tools .badge-health {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 12px; font-weight: 600;
  }
.page-tools .bh-healthy { background: rgba(34,197,94,.12);  color: var(--green-2); border: 1px solid rgba(34,197,94,.25); }
.page-tools .bh-offline { background: rgba(239,68,68,.12);  color: #fca5a5;        border: 1px solid rgba(239,68,68,.25); }
.page-tools .bh-stale { background: rgba(234,179,8,.12);  color: #facc15;        border: 1px solid rgba(234,179,8,.25); }
/* Stalled = SILENT past budget (stuck, maybe slow) → amber/orange, distinct
   from offline-red so "slow/stuck" no longer looks like "no connection". */
.page-tools .bh-stalled { background: rgba(249,115,22,.14); color: #fdba74; border: 1px solid rgba(249,115,22,.30); }
/* Blocked = a hard, actionable failure to even start (disk full, missing
   creds/ffmpeg/assets) → strong red, the loudest device state. */
.page-tools .bh-blocked { background: rgba(239,68,68,.20); color: #fca5a5; border: 1px solid rgba(239,68,68,.45); font-weight:600; }
.page-tools .bh-err     { background: rgba(239,68,68,.14); color: #fca5a5; border: 1px solid rgba(239,68,68,.30); }
/* Dynamic nav fleet-health pill (base.html) — now an <a>, recolours by state */
a.status-pill { display:block; }
.status-pill.sp-err .dot  { background:#ef4444; box-shadow:0 0 10px rgba(239,68,68,.7); }
.status-pill.sp-err .label,
.status-pill.sp-err .sub .v  { color:#fca5a5; }
.status-pill.sp-warn .dot { background:#f59e0b; box-shadow:0 0 10px rgba(245,158,11,.7); }
.status-pill.sp-warn .label,
.status-pill.sp-warn .sub .v { color:#fbbf24; }
.page-tools .table-foot {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--border);
    color: var(--text-3);
    font-size: 12.5px;
  }
.page-tools .detail-head {
    display: flex; align-items: flex-start; justify-content: space-between;
    gap: 16px;
  }
.page-tools .detail-head .left {
    display: flex; gap: 14px;
  }
.page-tools .apple-tile {
    width: 52px; height: 52px;
    border-radius: 12px;
    background: var(--panel-2);
    border: 1px solid var(--border-2);
    display: grid; place-items: center;
    color: var(--text);
  }
.page-tools .apple-tile svg { width: 24px; height: 24px; }
.page-tools .detail-head h2 {
    margin: 0;
    font-size: 22px; font-weight: 700;
    letter-spacing: -.01em;
  }
.page-tools .device-id {
    display: flex; align-items: center; gap: 6px;
    margin-top: 4px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px; color: var(--text-3);
  }
.page-tools .device-id .copy {
    cursor: pointer; color: var(--text-3);
    display: inline-flex;
  }
.page-tools .detail-head .right {
    text-align: right;
  }
.page-tools .online-row {
    display: inline-flex; align-items: center; gap: 8px;
    font-size: 13px; color: var(--text);
  }
.page-tools .online-row .dot {
    width: 8px; height: 8px; border-radius: 50%;
    background: var(--green);
    box-shadow: 0 0 10px rgba(34,197,94,.6);
  }
.page-tools .last-report {
    color: var(--text-3); font-size: 12px; margin-top: 4px;
  }
.page-tools .pri-btn {
    display: inline-flex; align-items: center; gap: 8px;
    background: var(--brand);
    color: white;
    border: none;
    border-radius: 10px;
    padding: 9px 16px;
    font-size: 13.5px; font-weight: 600;
    margin-top: 10px;
    cursor: pointer;
    font-family: inherit;
  }
.page-tools .pri-btn:hover { background: #2563eb; }
.page-tools .specs {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 12px;
    margin: 20px 0 4px;
    padding: 14px 0;
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
  }
.page-tools .spec .l {
    font-size: 11px;
    color: var(--text-3);
    text-transform: uppercase;
    letter-spacing: .08em;
    font-weight: 500;
  }
.page-tools .spec .v {
    font-size: 15px; font-weight: 600;
    margin-top: 4px;
    letter-spacing: -.01em;
  }
.page-tools .detail-grid {
    display: grid;
    grid-template-columns: 0.85fr 1.4fr;
    gap: 20px;
    margin-top: 18px;
  }
.page-tools .section-title {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 10px;
  }
.page-tools .section-title .t {
    font-size: 13px;
    color: var(--text-2);
    font-weight: 500;
  }
.page-tools .section-title .t::before {
    content: ""; display: inline-block;
    width: 6px; height: 6px; border-radius: 50%;
    background: var(--brand);
    margin-right: 8px;
    vertical-align: middle;
  }
.page-tools .section-title .t.count::before { display: none; }
.page-tools .section-title .view-all {
    color: var(--brand-2);
    font-size: 12.5px;
    text-decoration: none;
    display: inline-flex; align-items: center; gap: 4px;
  }
.page-tools .channel-row {
    display: grid;
    grid-template-columns: 36px 1fr;
    gap: 10px;
    align-items: center;
    padding: 8px 0;
  }
.page-tools .ch-av {
    width: 36px; height: 36px;
    border-radius: 50%;
    color: white; font-weight: 700; font-size: 11.5px;
    display: grid; place-items: center;
    letter-spacing: .04em;
  }
.page-tools .ch-av.lu { background: linear-gradient(135deg,#8b5cf6,#6366f1); }
.page-tools .ch-av.pl { background: linear-gradient(135deg,#ec4899,#db2777); }
.page-tools .ch-av.tba { background: linear-gradient(135deg,#f59e0b,#d97706); }
.page-tools .channel-row .nm { font-size: 13.5px; font-weight: 600; }
.page-tools .channel-row .hd { font-size: 11.5px; color: var(--text-3); margin-top: 2px; }
.page-tools .live-badge {
    background: rgba(34,197,94,.12);
    color: var(--green-2);
    border: 1px solid rgba(34,197,94,.3);
    border-radius: 999px;
    padding: 2px 10px;
    font-size: 11px; font-weight: 600;
    display: inline-flex; align-items: center; gap: 6px;
  }
.page-tools .live-badge::before {
    content: ""; width: 6px; height: 6px; border-radius: 50%;
    background: var(--green);
    box-shadow: 0 0 8px rgba(34,197,94,.7);
  }
.page-tools .process-card {
    background: var(--panel-2);
    border: 1px solid var(--border-2);
    border-radius: 12px;
    padding: 16px;
  }
.page-tools .process-card .ptitle {
    font-size: 15px; font-weight: 700;
    letter-spacing: -.01em;
  }
.page-tools .process-card .psub {
    color: var(--text-3); font-size: 12.5px; margin-top: 2px;
  }
.page-tools .progress-row {
    display: flex; align-items: center; justify-content: space-between;
    margin-top: 16px;
  }
.page-tools .progress-row .l { font-size: 13px; font-weight: 600; }
.page-tools .progress-row .pct { font-size: 18px; font-weight: 700; }
.page-tools .progress-sub { font-size: 11.5px; color: var(--text-3); margin-top: 4px; }
.page-tools .progress-bar {
    margin-top: 10px;
    height: 6px;
    background: var(--border-2);
    border-radius: 3px;
    overflow: hidden;
    position: relative;
  }
.page-tools .progress-bar .fill {
    height: 100%;
    background: linear-gradient(90deg, #3b82f6, #60a5fa);
    border-radius: 3px;
    width: 62%;
    position: relative;
  }
.page-tools .progress-bar .fill::after {
    content: "";
    position: absolute;
    right: -4px; top: 50%; transform: translateY(-50%);
    width: 10px; height: 10px;
    border-radius: 50%;
    background: white;
    box-shadow: 0 0 0 3px rgba(59,130,246,.3);
  }
.page-tools .pstats {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 8px;
    margin-top: 16px;
  }
.page-tools .pstat .l {
    font-size: 11px;
    color: var(--text-3);
    text-transform: capitalize;
  }
.page-tools .pstat .v {
    font-size: 14px; font-weight: 600;
    margin-top: 4px;
    font-variant-numeric: tabular-nums;
  }
.page-tools .bot-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 14px;
  }
.page-tools .q-row {
    display: grid;
    grid-template-columns: 18px minmax(60px, auto) 1fr auto;
    gap: 12px;
    align-items: center;
    padding: 10px 0;
    border-top: 1px solid var(--border);
  }
.page-tools .q-row:first-of-type { border-top: none; padding-top: 8px; }
.page-tools .q-row .qi { color: var(--text-3); font-size: 12.5px; font-variant-numeric: tabular-nums; }
.page-tools .q-row .qid {
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    color: var(--text-2);
  }
.page-tools .q-row .qt {
    font-size: 13px; color: var(--text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
.page-tools .qbadge {
    background: var(--panel-2);
    border: 1px solid var(--border-2);
    color: var(--text-3);
    border-radius: 999px;
    padding: 3px 10px;
    font-size: 11px;
    font-weight: 500;
  }
.page-tools .q-more {
    margin-top: 8px;
    color: var(--brand-2);
    font-size: 12.5px;
    font-weight: 500;
  }
.page-tools .ct-row {
    display: grid;
    grid-template-columns: 22px 1fr auto;
    gap: 12px;
    align-items: center;
    padding: 10px 0;
    border-top: 1px solid var(--border);
  }
.page-tools .ct-row:first-of-type { border-top: none; padding-top: 8px; }
.page-tools .ct-row .ic { color: var(--green-2); display: grid; place-items: center; }
.page-tools .ct-row .ic svg { width: 18px; height: 18px; }
.page-tools .ct-row .nm { font-size: 13.5px; }
.page-tools .ct-row .ct { font-size: 14px; font-weight: 700; }
.page-tools .ct-foot {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--border);
    font-size: 12.5px;
    color: var(--text-3);
  }
.page-tools .sh-row {
    display: grid;
    grid-template-columns: 22px 1fr auto auto;
    align-items: center;
    gap: 14px;
    padding: 10px 0;
    border-top: 1px solid var(--border);
  }
.page-tools .sh-row:first-of-type { border-top: none; padding-top: 8px; }
.page-tools .sh-row .val { font-size: 12.5px; color: var(--text-2); display: flex; gap: 10px; align-items: center; font-variant-numeric: tabular-nums; }
.page-tools .sh-row .ok-icon {
    width: 18px; height: 18px;
    color: var(--green-2);
    display: grid; place-items: center;
  }
.page-tools .sh-foot {
    margin-top: 12px;
    padding-top: 14px;
    border-top: 1px solid var(--border);
    display: flex; align-items: center; gap: 10px;
    color: var(--green-2);
    font-size: 13px;
    font-weight: 500;
  }
.page-tools .events-bar {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 16px 20px;
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 20px;
    align-items: center;
  }
.page-tools .events-bar .ttl { font-size: 16px; font-weight: 600; }
.page-tools .events-strip {
    display: flex;
    gap: 28px;
    align-items: center;
    overflow: hidden;
  }
.page-tools .ev {
    display: flex; align-items: center; gap: 10px;
    min-width: 0;
  }
.page-tools .ev .tm {
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    color: var(--text-3);
  }
.page-tools .ev .dt {
    width: 8px; height: 8px; border-radius: 50%;
  }
.page-tools .ev .dt.green { background: var(--green); }
.page-tools .ev .dt.cyan { background: var(--cyan); }
.page-tools .ev .dt.yellow { background: var(--yellow); }
.page-tools .ev .dt.blue { background: var(--brand); }
.page-tools .ev .et { font-size: 13px; font-weight: 500; }
.page-tools .ev .es { font-size: 11.5px; color: var(--text-3); margin-top: 2px; }

/* ===== page: channels ===== */
.page-channels .nav a {
    display: flex; align-items: center; gap: 12px;
    padding: 10px 12px; border-radius: 10px;
    color: var(--text-2); text-decoration: none;
    font-size: 14px; font-weight: 500;
  }
.page-channels .nav .pill {
    margin-left: auto;
    min-width: 20px; height: 18px; padding: 0 6px;
    border-radius: 9px;
    background: var(--red); color: white;
    font-size: 11px; font-weight: 700;
    display: grid; place-items: center;
  }
.page-channels main {
    padding: 26px 30px 30px;
    display: flex; flex-direction: column; gap: 16px;
    background: var(--bg);
  }
.page-channels .page-head {
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: 24px;
    align-items: center;
  }
.page-channels .sync-banner {
    display: flex; align-items: center; gap: 12px;
    padding-right: 18px;
  }
.page-channels .sync-banner .ic {
    width: 36px; height: 36px;
    border-radius: 50%;
    background: rgba(34,197,94,.12);
    color: var(--green-2);
    display: grid; place-items: center;
    flex-shrink: 0;
  }
.page-channels .sync-banner .ic svg { width: 18px; height: 18px; }
.page-channels .sync-banner .tt { font-size: 13.5px; font-weight: 600; }
.page-channels .sync-banner .sb { font-size: 12px; color: var(--text-3); margin-top: 2px; }
.page-channels .head-right {
    display: flex; align-items: center; gap: 18px;
  }
.page-channels .clock {
    color: var(--text-3);
    font-size: 13px;
    display: flex; align-items: center; gap: 10px;
  }
.page-channels .stats {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 12px;
  }
.page-channels .stat-card {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 14px 18px 6px;
    overflow: hidden;
    min-height: 138px;
    display: flex; flex-direction: column;
  }
.page-channels .stat-card .head { display: flex; align-items: center; gap: 12px; }
.page-channels .stat-card .icon {
    width: 36px; height: 36px; border-radius: 9px;
    display: grid; place-items: center; flex-shrink: 0;
  }
.page-channels .stat-card .icon svg { width: 19px; height: 19px; }
.page-channels .stat-card .value {
    font-size: 28px; font-weight: 700;
    letter-spacing: -.02em; margin-top: 6px; line-height: 1.1;
  }
.page-channels .stat-card .sub { font-size: 12px; color: var(--text-3); margin-top: 4px; }
.page-channels .stat-card .delta {
    font-size: 12px; color: var(--green-2);
    margin-top: 4px;
    font-weight: 500;
  }
.page-channels .stat-card .spark {
    margin-top: auto;
    margin-left: -18px; margin-right: -18px; margin-bottom: -6px;
    height: 38px;
  }
.page-channels .ic-teal { background: rgba(20,184,166,.14);  color: #2dd4bf; }
.page-channels .ic-pink { background: rgba(236,72,153,.14);  color: #f472b6; }
.page-channels .main-grid {
    display: grid;
    grid-template-columns: 1fr 340px;
    gap: 14px;
    align-items: start;
  }
.page-channels .panel {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 16px 18px 18px;
    display: flex; flex-direction: column;
  }
.page-channels .panel-head h2 {
    margin: 0;
    font-size: 15px; font-weight: 600;
    letter-spacing: -.005em;
  }
.page-channels .link-btn {
    background: var(--panel-2);
    border: 1px solid var(--border-2);
    color: var(--text-2);
    border-radius: 8px;
    padding: 5px 10px;
    font-size: 12.5px;
    cursor: pointer;
    display: inline-flex; align-items: center; gap: 6px;
    font-family: inherit;
  }
.page-channels .link-btn svg { width: 11px; height: 11px; }
.page-channels .filters {
    display: grid;
    grid-template-columns: 1fr 160px 150px 150px auto auto;
    gap: 10px;
    align-items: center;
    margin-bottom: 14px;
  }
.page-channels .search {
    position: relative;
  }
.page-channels .search input {
    width: 100%;
    background: var(--panel-2);
    border: 1px solid var(--border-2);
    color: var(--text);
    border-radius: 10px;
    padding: 9px 14px 9px 36px;
    font-size: 13px;
    font-family: inherit;
    outline: none;
  }
.page-channels .search input::placeholder { color: var(--text-3); }
.page-channels .search .sicon {
    position: absolute; left: 12px; top: 50%;
    transform: translateY(-50%);
    color: var(--text-3);
    display: grid; place-items: center;
  }
.page-channels .select {
    background: var(--panel-2);
    border: 1px solid var(--border-2);
    color: var(--text);
    border-radius: 10px;
    padding: 9px 12px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    display: flex; align-items: center; justify-content: space-between;
    gap: 8px;
    font-family: inherit;
  }
.page-channels .select svg { width: 14px; height: 14px; color: var(--text-3); }
.page-channels .sync-btn {
    background: rgba(59,130,246,.12);
    border: 1px solid rgba(59,130,246,.5);
    color: var(--brand-2);
    border-radius: 10px;
    padding: 9px 14px;
    font-size: 13px; font-weight: 600;
    cursor: pointer;
    font-family: inherit;
    display: inline-flex; align-items: center; gap: 8px;
  }
.page-channels .sync-btn svg { width: 13px; height: 13px; }
.page-channels .filter-icon-btn {
    width: 40px; height: 40px;
    border-radius: 10px;
    background: var(--panel-2);
    border: 1px solid var(--border-2);
    color: var(--text-2);
    display: grid; place-items: center;
    cursor: pointer;
  }
.page-channels .filter-icon-btn svg { width: 16px; height: 16px; }
.page-channels .ch-table {
    display: flex; flex-direction: column;
  }
.page-channels .th-row {
    display: grid;
    grid-template-columns: minmax(170px, 1.3fr) minmax(120px, 1fr) repeat(5, 80px) 110px 90px 90px 36px;
    gap: 10px;
    padding: 0 8px 12px;
    border-bottom: 1px solid var(--border);
    font-size: 11px;
    color: var(--text-3);
    font-weight: 500;
  }
.page-channels .trow {
    display: grid;
    grid-template-columns: minmax(170px, 1.3fr) minmax(120px, 1fr) repeat(5, 80px) 110px 90px 90px 36px;
    gap: 10px;
    padding: 14px 8px;
    align-items: center;
    border-bottom: 1px solid var(--border);
  }
.page-channels .trow:last-child { border-bottom: none; }
.page-channels .chan-cell { display: flex; align-items: center; gap: 12px; min-width: 0; }
.page-channels .chan-av {
    width: 36px; height: 36px;
    border-radius: 50%;
    color: white; font-weight: 700; font-size: 11.5px;
    display: grid; place-items: center;
    letter-spacing: .04em;
    flex-shrink: 0;
  }
.page-channels .av-lu { background: linear-gradient(135deg,#8b5cf6,#6366f1); }
.page-channels .av-pl { background: linear-gradient(135deg,#ec4899,#db2777); }
.page-channels .av-tba { background: linear-gradient(135deg,#f59e0b,#d97706); }
.page-channels .av-soe { background: linear-gradient(135deg,#06b6d4,#0891b2); }
.page-channels .av-hc { background: linear-gradient(135deg,#84cc16,#65a30d); }
.page-channels .av-nww { background: linear-gradient(135deg,#10b981,#059669); }
.page-channels .av-de { background: linear-gradient(135deg,#475569,#334155); }
.page-channels .av-ml { background: linear-gradient(135deg,#a855f7,#7c3aed); }
.page-channels .chan-cell .nm { font-size: 13.5px; font-weight: 600; }
.page-channels .chan-cell .hd { font-size: 11.5px; color: var(--text-3); margin-top: 2px; }
.page-channels .tool-cell { font-size: 13px; }
.page-channels .tool-cell .nm { display: flex; align-items: center; gap: 6px; color: var(--text); }
.page-channels .tool-cell .nm .dot {
    width: 7px; height: 7px; border-radius: 50%;
    background: var(--green); box-shadow: 0 0 6px rgba(34,197,94,.6);
  }
.page-channels .tool-cell .sb { font-size: 11.5px; color: var(--text-3); margin-top: 2px; display: flex; align-items: center; gap: 6px; }
.page-channels .tool-cell .sb .dot {
    width: 6px; height: 6px; border-radius: 50%;
    background: var(--green);
  }
.page-channels .tool-cell .sb.idle .dot { background: var(--yellow); box-shadow: 0 0 6px rgba(234,179,8,.6); }
.page-channels .metric .n { font-size: 13.5px; font-weight: 600; font-variant-numeric: tabular-nums; }
.page-channels .metric .d {
    font-size: 11.5px; margin-top: 2px;
    color: var(--green-2);
    font-weight: 500;
  }
.page-channels .metric.muted-up .n { color: var(--text); }
.page-channels .est .n { font-size: 13.5px; font-weight: 600; font-variant-numeric: tabular-nums; }
.page-channels .est .d { font-size: 11.5px; color: var(--green-2); margin-top: 2px; font-weight: 500; }
.page-channels .pub .when { font-size: 13px; color: var(--text); }
.page-channels .pub .date { font-size: 11.5px; color: var(--text-3); margin-top: 2px; font-variant-numeric: tabular-nums; }
.page-channels .sync { font-size: 12.5px; }
.page-channels .sync.green { color: var(--green-2); }
.page-channels .sync.yellow { color: var(--yellow); }
.page-channels .sync.orange { color: var(--orange); }
.page-channels .badge-pill {
    display: inline-flex; align-items: center;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 12px; font-weight: 600;
  }
.page-channels .bp-healthy { background: rgba(34,197,94,.12);  color: var(--green-2); border: 1px solid rgba(34,197,94,.25); }
.page-channels .bp-stale { background: rgba(234,179,8,.12);  color: #facc15;        border: 1px solid rgba(234,179,8,.25); }
.page-channels .bp-error { background: rgba(239,68,68,.12);  color: #fca5a5;        border: 1px solid rgba(239,68,68,.25); }
.page-channels .menu-btn {
    width: 28px; height: 28px;
    display: grid; place-items: center;
    border-radius: 7px;
    color: var(--text-3);
    cursor: pointer;
  }
.page-channels .menu-btn:hover { background: var(--panel-hover); color: var(--text); }
.page-channels .tfoot {
    display: flex; justify-content: space-between; align-items: center;
    margin-top: 14px;
  }
.page-channels .tfoot .ct { color: var(--text-3); font-size: 13px; }
.page-channels .pager { display: flex; gap: 6px; }
.page-channels .pgbtn {
    width: 32px; height: 32px;
    border-radius: 8px;
    background: var(--panel-2);
    border: 1px solid var(--border-2);
    color: var(--text-2);
    cursor: pointer;
    display: grid; place-items: center;
    font-size: 13px; font-weight: 500;
    font-family: inherit;
  }
.page-channels .pgbtn.active {
    background: rgba(59,130,246,.12);
    border-color: rgba(59,130,246,.5);
    color: var(--brand-2);
  }
.page-channels .pgbtn svg { width: 13px; height: 13px; }
.page-channels .right-col { display: flex; flex-direction: column; gap: 14px; }
.page-channels .top-row {
    display: grid;
    grid-template-columns: 18px 28px 1fr auto;
    gap: 10px;
    align-items: center;
    padding: 9px 0;
  }
.page-channels .top-row .idx { color: var(--text-3); font-size: 12.5px; }
.page-channels .top-row .av {
    width: 22px; height: 22px; border-radius: 50%;
    display: grid; place-items: center;
    color: white; font-weight: 700; font-size: 9px;
    letter-spacing: .04em;
  }
.page-channels .top-row .nm { font-size: 13px; font-weight: 500; }
.page-channels .top-row .v { font-size: 12.5px; color: var(--text-2); font-variant-numeric: tabular-nums; font-weight: 500; }
.page-channels .top-bar {
    grid-column: 3 / 4;
    height: 4px;
    background: var(--border-2);
    border-radius: 2px;
    margin-top: 6px;
    position: relative;
    overflow: hidden;
  }
.page-channels .top-bar .f { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 2px; }
.page-channels .pub-row {
    display: grid;
    grid-template-columns: 56px 1fr;
    gap: 10px;
    align-items: center;
    padding: 9px 0;
  }
.page-channels .thumb {
    width: 56px; height: 36px;
    border-radius: 6px;
    background: var(--panel-3);
    position: relative;
    overflow: hidden;
  }
.page-channels .thumb::after {
    content: ""; position: absolute; inset: 0;
    background: linear-gradient(135deg, var(--ta, #312e81), var(--tb, #1e1b4b));
  }
.page-channels .thumb.t1 { --ta: #4338ca; --tb: #1e1b4b; }
.page-channels .thumb.t2 { --ta: #b45309; --tb: #78350f; }
.page-channels .thumb.t3 { --ta: #075985; --tb: #0c4a6e; }
.page-channels .thumb.t4 { --ta: #b91c1c; --tb: #7f1d1d; }
.page-channels .thumb.t5 { --ta: #134e4a; --tb: #042f2e; }
.page-channels .pub-row .ti { font-size: 12.5px; font-weight: 500; line-height: 1.3; }
.page-channels .pub-row .sb { font-size: 11px; color: var(--text-3); margin-top: 3px; display: flex; gap: 6px; }
.page-channels .pub-row .sb .ch { color: var(--text-2); }
.page-channels .sync-health-wrap {
    display: grid;
    grid-template-columns: 130px 1fr;
    gap: 16px;
    align-items: center;
    margin-top: 4px;
  }
.page-channels .sh-legend { display: flex; flex-direction: column; gap: 10px; }
.page-channels .sh-legend .lr {
    display: grid;
    grid-template-columns: 14px 1fr auto;
    gap: 10px;
    align-items: center;
    font-size: 13px;
  }
.page-channels .sh-legend .sw { width: 10px; height: 10px; border-radius: 50%; }
.page-channels .sh-legend .val { color: var(--text-2); font-variant-numeric: tabular-nums; }

/* ===== page: projects ===== */
.page-projects .nav a {
    display: flex; align-items: center; gap: 12px;
    padding: 10px 12px; border-radius: 10px;
    color: var(--text-2); text-decoration: none;
    font-size: 14px; font-weight: 500;
  }
.page-projects .nav .pill {
    margin-left: auto;
    min-width: 20px; height: 18px; padding: 0 6px;
    border-radius: 9px;
    background: var(--red); color: white;
    font-size: 11px; font-weight: 700;
    display: grid; place-items: center;
  }
.page-projects main {
    padding: 26px 30px 30px;
    display: flex; flex-direction: column; gap: 16px;
    background: var(--bg);
  }
.page-projects .page-head {
    display: flex; align-items: center; justify-content: space-between;
    gap: 24px;
  }
.page-projects .head-right { display: flex; align-items: center; gap: 18px; }
.page-projects .clock { color: var(--text-3); font-size: 13px; display: flex; align-items: center; gap: 10px; }
.page-projects .stats {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 12px;
  }
.page-projects .stat-card {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 14px 18px 6px;
    overflow: hidden;
    min-height: 138px;
    display: flex; flex-direction: column;
  }
.page-projects .stat-card .head { display: flex; align-items: center; gap: 12px; }
.page-projects .stat-card .icon {
    width: 36px; height: 36px; border-radius: 9px;
    display: grid; place-items: center; flex-shrink: 0;
  }
.page-projects .stat-card .icon svg { width: 19px; height: 19px; }
.page-projects .stat-card .value {
    font-size: 28px; font-weight: 700;
    letter-spacing: -.02em; margin-top: 6px; line-height: 1.1;
  }
.page-projects .stat-card .sub { font-size: 12px; color: var(--text-3); margin-top: 4px; }
.page-projects .stat-card .delta {
    font-size: 12px;
    margin-top: 4px;
    font-weight: 500;
  }
.page-projects .stat-card .delta.green { color: var(--green-2); }
.page-projects .stat-card .delta.green::before { content: "+"; }
.page-projects .stat-card .delta.red { color: #f87171; }
.page-projects .stat-card .spark {
    margin-top: auto;
    margin-left: -18px; margin-right: -18px; margin-bottom: -6px;
    height: 36px;
  }
.page-projects .panel {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 16px 20px;
    display: flex; flex-direction: column;
  }
.page-projects .link-btn svg { width: 11px; height: 11px; }
.page-projects .pipeline-grid {
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    gap: 8px;
    margin-top: 4px;
  }
.page-projects .pstage {
    display: flex; flex-direction: column; gap: 8px;
  }
.page-projects .pstage .head-row {
    display: flex; align-items: center; gap: 8px;
  }
.page-projects .pstage .ic {
    width: 18px; height: 18px;
    border-radius: 50%;
    display: grid; place-items: center;
  }
.page-projects .pstage .ic svg { width: 12px; height: 12px; }
.page-projects .pstage .nm { font-size: 13px; font-weight: 600; }
.page-projects .pstage .ct { font-size: 11.5px; color: var(--text-3); margin-left: 26px; }
.page-projects .pstage .bar {
    height: 4px;
    border-radius: 2px;
    margin-top: 4px;
  }
.page-projects .ic-pp-green { background: rgba(34,197,94,.18);  color: var(--green-2); }
.page-projects .ic-pp-emerald { background: rgba(16,185,129,.18); color: #34d399; }
.page-projects .ic-pp-blue { background: rgba(59,130,246,.18); color: var(--brand-2); }
.page-projects .ic-pp-purple { background: rgba(168,85,247,.18); color: var(--purple-2); }
.page-projects .ic-pp-orange { background: rgba(249,115,22,.18); color: var(--orange-2); }
.page-projects .ic-pp-green2 { background: rgba(34,197,94,.18);  color: var(--green-2); }
.page-projects .ic-pp-red { background: rgba(239,68,68,.18);  color: #f87171; }
.page-projects .ic-pp-slate { background: rgba(100,116,139,.18); color: #94a3b8; }
.page-projects .board-head {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 14px;
  }
.page-projects .board-head h2 {
    margin: 0;
    font-size: 16px; font-weight: 600;
  }
.page-projects .view-toggle {
    display: inline-flex; background: var(--panel-2);
    border: 1px solid var(--border-2);
    border-radius: 10px;
    padding: 3px;
  }
.page-projects .view-toggle button {
    background: none; border: none; color: var(--text-3);
    padding: 6px 12px; font-size: 12.5px; cursor: pointer;
    border-radius: 7px; font-family: inherit; font-weight: 500;
  }
.page-projects .view-toggle button.active {
    background: rgba(59,130,246,.18);
    color: var(--brand-2);
    box-shadow: 0 0 0 1px rgba(59,130,246,.3);
  }
.page-projects .filters-btn {
    background: var(--panel-2);
    border: 1px solid var(--border-2);
    color: var(--text);
    border-radius: 10px;
    padding: 8px 14px;
    font-size: 13px; font-weight: 500;
    cursor: pointer;
    display: inline-flex; align-items: center; gap: 8px;
    font-family: inherit;
  }
.page-projects .filters-btn svg { width: 14px; height: 14px; color: var(--text-3); }
.page-projects .board-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 12px;
  }
.page-projects .column {
    background: var(--panel-2);
    border: 1px solid var(--border-2);
    border-radius: 12px;
    padding: 14px;
    display: flex; flex-direction: column;
    min-height: 320px;
  }
.page-projects .column .col-head {
    display: flex; align-items: center; gap: 8px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--border);
    margin-bottom: 12px;
  }
.page-projects .col-head .ch-dot { width: 8px; height: 8px; border-radius: 50%; }
.page-projects .col-head .ch-name {
    font-size: 13.5px; font-weight: 600;
  }
.page-projects .col-head .ch-count { font-size: 12px; color: var(--text-3); }
.page-projects .col-head .menu { margin-left: auto; color: var(--text-3); cursor: pointer; }
.page-projects .col-head .menu svg { width: 14px; height: 14px; }
.page-projects .pcard {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 12px 12px 10px;
    display: grid;
    grid-template-columns: 1fr 44px;
    gap: 10px;
    align-items: center;
  }
.page-projects .pcard + .pcard { margin-top: 8px; }
.page-projects .pcard .code { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--text-3); }
.page-projects .pcard .ttl { font-size: 13px; font-weight: 600; line-height: 1.3; margin-top: 4px; }
.page-projects .pcard .meta { font-size: 11px; color: var(--text-3); margin-top: 6px; line-height: 1.5; }
.page-projects .pcard .meta .ch { color: var(--text-2); display: block; }
.page-projects .pcard .gauge {
    width: 44px; height: 44px;
    position: relative;
  }
.page-projects .pcard .gauge svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.page-projects .pcard .gauge .pct {
    position: absolute; inset: 0;
    display: grid; place-items: center;
    font-size: 11px; font-weight: 700;
  }
.page-projects .col-foot {
    margin-top: auto;
    padding-top: 12px;
    color: var(--brand-2);
    font-size: 12.5px;
    font-weight: 500;
    cursor: pointer;
  }
.page-projects .col-foot:hover { text-decoration: underline; }
.page-projects .bot-grid {
    display: grid;
    grid-template-columns: 1.2fr 0.95fr 0.85fr;
    gap: 12px;
    align-items: start;
  }
.page-projects .q-th {
    display: grid;
    grid-template-columns: 24px 70px minmax(0,1fr) minmax(100px,1fr) 110px 70px 70px;
    gap: 10px;
    padding: 0 4px 10px;
    font-size: 11.5px;
    color: var(--text-3);
    font-weight: 500;
    border-bottom: 1px solid var(--border);
  }
.page-projects .q-row {
    display: grid;
    grid-template-columns: 24px 70px minmax(0,1fr) minmax(100px,1fr) 110px 70px 70px;
    gap: 10px;
    padding: 11px 4px;
    align-items: center;
    font-size: 13px;
    border-bottom: 1px solid var(--border);
  }
.page-projects .q-row:last-of-type { border-bottom: none; }
.page-projects .q-row .ix { color: var(--text-3); }
.page-projects .q-row .code { font-family: 'JetBrains Mono', monospace; font-size: 12.5px; color: var(--text); }
.page-projects .q-row .ttl { color: var(--text); }
.page-projects .q-row .ch { color: var(--text-2); }
.page-projects .q-row .tool { color: var(--text-2); }
.page-projects .q-row .when { color: var(--text-3); font-size: 12.5px; font-variant-numeric: tabular-nums; }
.page-projects .prio {
    display: inline-flex; align-items: center;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 11px; font-weight: 600;
  }
.page-projects .prio-high { background: rgba(34,197,94,.14);  color: var(--green-2); border: 1px solid rgba(34,197,94,.3); }
.page-projects .prio-medium { background: rgba(234,179,8,.14);  color: #facc15;       border: 1px solid rgba(234,179,8,.3); }
.page-projects .prio-low { background: rgba(100,116,139,.16); color: #94a3b8;      border: 1px solid rgba(100,116,139,.3); }
.page-projects .more-q { margin-top: 14px; color: var(--brand-2); font-size: 13px; font-weight: 500; }
.page-projects .rc-row {
    display: grid;
    grid-template-columns: 22px 80px 1fr auto;
    gap: 12px;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid var(--border);
  }
.page-projects .rc-row:last-of-type { border-bottom: none; }
.page-projects .rc-row .ck { color: var(--green-2); display: grid; place-items: center; }
.page-projects .rc-row .ck svg { width: 20px; height: 20px; }
.page-projects .rc-row .code { font-family: 'JetBrains Mono', monospace; font-size: 12.5px; color: var(--text); }
.page-projects .rc-row .ttl { font-size: 13.5px; color: var(--text); font-weight: 500; }
.page-projects .rc-row .ch { font-size: 11.5px; color: var(--text-3); margin-top: 2px; }
.page-projects .rc-row .when { font-size: 12px; color: var(--text-3); font-variant-numeric: tabular-nums; }
.page-projects .status-wrap {
    display: grid;
    grid-template-columns: 130px 1fr;
    gap: 16px;
    align-items: center;
  }
.page-projects .donut .total .n { font-size: 24px; font-weight: 700; letter-spacing: -.02em; }
.page-projects .legend { display: flex; flex-direction: column; gap: 9px; }
.page-projects .legend .lr {
    display: grid;
    grid-template-columns: 14px 1fr auto;
    gap: 10px;
    align-items: center;
    font-size: 12.5px;
  }
.page-projects .na-row {
    display: grid;
    grid-template-columns: 28px 1fr auto auto;
    gap: 12px;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid var(--border);
  }
.page-projects .na-row:last-of-type { border-bottom: none; }
.page-projects .na-row .ic {
    color: #f87171; display: grid; place-items: center;
    width: 28px; height: 28px; border-radius: 7px;
    background: rgba(239,68,68,.12);
  }
.page-projects .na-row .ic svg { width: 15px; height: 15px; }
.page-projects .na-row .code { font-family: 'JetBrains Mono', monospace; font-size: 12.5px; color: var(--text); }
.page-projects .na-row .ttl { font-size: 13px; color: var(--text); margin-left: 4px; }
.page-projects .na-row .sb { font-size: 11.5px; color: var(--text-3); margin-top: 3px; }
.page-projects .na-row .tool { font-size: 12px; color: var(--text-2); }
.page-projects .na-row .when { font-size: 12px; color: var(--text-3); font-variant-numeric: tabular-nums; }
.page-projects .bot-secondary {
    display: flex; flex-direction: column; gap: 12px;
  }

/* ===== page: events ===== */
.page-events .nav a {
    display: flex; align-items: center; gap: 12px;
    padding: 10px 12px; border-radius: 10px;
    color: var(--text-2); text-decoration: none;
    font-size: 14px; font-weight: 500;
  }
.page-events .nav .pill {
    margin-left: auto;
    min-width: 20px; height: 18px; padding: 0 6px;
    border-radius: 9px;
    background: var(--red); color: white;
    font-size: 11px; font-weight: 700;
    display: grid; place-items: center;
  }
.page-events main {
    padding: 24px 30px 30px;
    display: flex; flex-direction: column; gap: 16px;
    background: var(--bg);
  }
.page-events .page-head {
    display: grid;
    grid-template-columns: 1fr auto auto auto auto;
    gap: 16px;
    align-items: center;
  }
.page-events .search {
    position: relative;
  }
.page-events .search input {
    width: 340px;
    background: var(--panel);
    border: 1px solid var(--border);
    color: var(--text);
    border-radius: 10px;
    padding: 10px 56px 10px 36px;
    font-size: 13px;
    font-family: inherit;
    outline: none;
  }
.page-events .search input::placeholder { color: var(--text-3); }
.page-events .search .sicon {
    position: absolute; left: 12px; top: 50%;
    transform: translateY(-50%); color: var(--text-3);
  }
.page-events .search .kbd {
    position: absolute; right: 10px; top: 50%;
    transform: translateY(-50%);
    background: var(--panel-2);
    border: 1px solid var(--border-2);
    color: var(--text-3);
    font-size: 11px; padding: 2px 6px; border-radius: 5px;
    font-family: 'JetBrains Mono', monospace;
  }
.page-events .date-range {
    display: inline-flex; align-items: center; gap: 10px;
    background: var(--panel);
    border: 1px solid var(--border);
    color: var(--text);
    border-radius: 10px;
    padding: 10px 14px;
    font-size: 13px;
    cursor: pointer;
    font-family: 'JetBrains Mono', monospace;
  }
.page-events .date-range svg { width: 14px; height: 14px; color: var(--text-3); }
.page-events .stats {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 12px;
  }
.page-events .stat-card {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 14px 18px 6px;
    overflow: hidden;
    min-height: 132px;
    display: flex; flex-direction: column;
  }
.page-events .stat-card .head { display: flex; align-items: center; gap: 12px; }
.page-events .stat-card .icon {
    width: 36px; height: 36px; border-radius: 9px;
    display: grid; place-items: center; flex-shrink: 0;
  }
.page-events .stat-card .icon svg { width: 19px; height: 19px; }
.page-events .stat-card .value {
    font-size: 28px; font-weight: 700;
    letter-spacing: -.02em; margin-top: 6px; line-height: 1.1;
  }
.page-events .stat-card .sub {
    font-size: 12px;
    margin-top: 4px;
    font-weight: 500;
  }
.page-events .stat-card.tone-blue .sub { color: var(--brand-2); }
.page-events .stat-card.tone-green .sub { color: var(--green-2); }
.page-events .stat-card.tone-yellow .sub { color: #facc15; }
.page-events .stat-card.tone-red .sub { color: #f87171; }
.page-events .stat-card.tone-purple .sub { color: #c084fc; }
.page-events .stat-card.tone-blue .sub.muted { color: var(--green-2); }
.page-events .stat-card .spark {
    margin-top: auto;
    margin-left: -18px; margin-right: -18px; margin-bottom: -6px;
    height: 38px;
  }
.page-events .ic-blue { background: rgba(59,130,246,.16);  color: #60a5fa; }
.page-events .ic-green { background: rgba(34,197,94,.16);   color: #4ade80; }
.page-events .ic-yellow { background: rgba(234,179,8,.16);   color: #facc15; }
.page-events .ic-red { background: rgba(239,68,68,.16);   color: #f87171; }
.page-events .ic-purple { background: rgba(168,85,247,.16);  color: #c084fc; }
.page-events .ic-cyan { background: rgba(6,182,212,.16);   color: #22d3ee; }
.page-events .main-grid {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 14px;
    align-items: start;
  }
.page-events .panel {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 16px 20px;
    display: flex; flex-direction: column;
  }
.page-events .link-btn svg { width: 11px; height: 11px; }
.page-events .reset-btn {
    background: none; border: none;
    color: var(--text-3);
    font-size: 12.5px;
    cursor: pointer;
    display: inline-flex; align-items: center; gap: 6px;
    font-family: inherit;
  }
.page-events .reset-btn svg { width: 12px; height: 12px; }
.page-events .reset-btn:hover { color: var(--text); }
.page-events .events-toolbar {
    display: flex; align-items: center; gap: 10px;
  }
.page-events .export-btn {
    display: inline-flex; align-items: center; gap: 10px;
    background: var(--panel-2);
    border: 1px solid var(--border-2);
    color: var(--text);
    padding: 7px 14px;
    border-radius: 8px;
    font-size: 13px; font-weight: 500;
    cursor: pointer;
    font-family: inherit;
  }
.page-events .export-btn svg { width: 13px; height: 13px; color: var(--text-3); }
.page-events .view-toggle { display: inline-flex; gap: 4px; }
.page-events .view-toggle button {
    width: 34px; height: 32px;
    background: var(--panel-2);
    border: 1px solid var(--border-2);
    color: var(--text-3);
    border-radius: 8px;
    cursor: pointer;
    display: grid; place-items: center;
  }
.page-events .view-toggle button.active {
    background: rgba(59,130,246,.18);
    border-color: rgba(59,130,246,.45);
    color: var(--brand-2);
  }
.page-events .view-toggle button svg { width: 14px; height: 14px; }
.page-events .e-th {
    display: grid;
    grid-template-columns: 130px 90px minmax(160px, 1.3fr) minmax(180px, 1.5fr) minmax(170px, 1.2fr) minmax(140px, 1fr) 110px 28px;
    gap: 14px;
    padding: 0 8px 12px;
    border-bottom: 1px solid var(--border);
    font-size: 11.5px;
    color: var(--text-3);
    font-weight: 500;
  }
.page-events .e-th .with-arrow {
    display: inline-flex; align-items: center; gap: 4px;
    color: var(--text);
    background: var(--panel-2);
    border: 1px solid var(--border-2);
    padding: 4px 10px;
    border-radius: 7px;
    font-size: 11.5px; font-weight: 500;
  }
.page-events .e-th .with-arrow svg { width: 12px; height: 12px; }
.page-events .e-row {
    display: grid;
    grid-template-columns: 130px 90px minmax(160px, 1.3fr) minmax(180px, 1.5fr) minmax(170px, 1.2fr) minmax(140px, 1fr) 110px 28px;
    gap: 14px;
    padding: 13px 8px;
    align-items: center;
    border-bottom: 1px solid var(--border);
  }
.page-events .e-row:last-of-type { border-bottom: none; }
.page-events .e-time { font-size: 12.5px; color: var(--text-2); font-family: 'JetBrains Mono', monospace; font-variant-numeric: tabular-nums; }
.page-events .sev {
    display: inline-flex; align-items: center;
    padding: 3px 10px;
    border-radius: 6px;
    font-size: 11px; font-weight: 700;
    letter-spacing: .02em;
  }
.page-events .sev-success { background: rgba(34,197,94,.14);  color: var(--green-2); border: 1px solid rgba(34,197,94,.3); }
.page-events .sev-info { background: rgba(59,130,246,.14); color: var(--brand-2); border: 1px solid rgba(59,130,246,.3); }
.page-events .sev-warning { background: rgba(234,179,8,.14);  color: #facc15;        border: 1px solid rgba(234,179,8,.3); }
.page-events .sev-error { background: rgba(239,68,68,.14);  color: #fca5a5;        border: 1px solid rgba(239,68,68,.3); }
.page-events .sev-critical { background: rgba(168,85,247,.14); color: #c084fc;        border: 1px solid rgba(168,85,247,.3); }
.page-events .ev-title { font-size: 13.5px; color: var(--text); font-weight: 500; }
.page-events .ev-proj { font-size: 13px; color: var(--text); }
.page-events .ev-proj .code { font-family: 'JetBrains Mono', monospace; color: var(--text); }
.page-events .ev-proj .ttl { color: var(--text-3); margin-left: 6px; }
.page-events .tool-cell {
    display: flex; align-items: center; gap: 10px;
    min-width: 0;
  }
.page-events .tool-cell .ti {
    width: 28px; height: 28px;
    border-radius: 7px;
    background: var(--panel-2);
    border: 1px solid var(--border-2);
    display: grid; place-items: center;
    color: var(--text-2);
    flex-shrink: 0;
  }
.page-events .tool-cell .ti svg { width: 14px; height: 14px; }
.page-events .tool-cell .nm { font-size: 13px; color: var(--text); font-weight: 500; }
.page-events .tool-cell .ch { font-size: 11.5px; color: var(--text-3); margin-top: 2px; }
.page-events .type-cell { display: inline-flex; align-items: center; gap: 10px; }
.page-events .type-cell .ti {
    width: 24px; height: 24px;
    border-radius: 6px;
    display: grid; place-items: center;
    flex-shrink: 0;
  }
.page-events .type-cell .ti svg { width: 14px; height: 14px; }
.page-events .type-cell .lbl { font-size: 13px; color: var(--text); }
.page-events .user-cell { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--text); }
.page-events .user-cell .uic {
    width: 22px; height: 22px; border-radius: 50%;
    background: var(--panel-2);
    border: 1px solid var(--border-2);
    color: var(--text-3);
    display: grid; place-items: center;
    font-size: 9px; font-weight: 700;
    letter-spacing: .04em;
  }
.page-events .menu-btn {
    width: 28px; height: 28px;
    display: grid; place-items: center;
    border-radius: 7px;
    color: var(--text-3);
    cursor: pointer;
  }
.page-events .menu-btn:hover { background: var(--panel-hover); color: var(--text); }
.page-events .menu-btn svg { width: 14px; height: 14px; }
.page-events .tfoot {
    display: flex; justify-content: space-between; align-items: center;
    margin-top: 14px;
  }
.page-events .tfoot .ct { color: var(--text-3); font-size: 13px; }
.page-events .pager { display: flex; gap: 6px; }
.page-events .pgbtn {
    min-width: 34px; height: 34px; padding: 0 8px;
    border-radius: 8px;
    background: var(--panel-2);
    border: 1px solid var(--border-2);
    color: var(--text-2);
    cursor: pointer;
    display: grid; place-items: center;
    font-size: 13px; font-weight: 500;
    font-family: inherit;
  }
.page-events .pgbtn.active {
    background: rgba(59,130,246,.14);
    border-color: rgba(59,130,246,.5);
    color: var(--brand-2);
  }
.page-events .pgbtn svg { width: 13px; height: 13px; }
.page-events .right-col { display: flex; flex-direction: column; gap: 14px; }
.page-events .filters .field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 12px; }
.page-events .filters .field:last-child { margin-bottom: 0; }
.page-events .filters .lbl {
    font-size: 11.5px;
    color: var(--text-2);
    font-weight: 500;
  }
.page-events .filters .input {
    background: var(--panel-2);
    border: 1px solid var(--border-2);
    border-radius: 9px;
    padding: 9px 12px;
    font-size: 13px;
    color: var(--text);
    width: 100%;
    font-family: inherit;
    outline: none;
  }
.page-events .filters .input::placeholder { color: var(--text-3); }
.page-events .filters .select {
    background: var(--panel-2);
    border: 1px solid var(--border-2);
    border-radius: 9px;
    padding: 9px 12px;
    font-size: 13px;
    color: var(--text);
    width: 100%;
    cursor: pointer;
    display: flex; align-items: center; justify-content: space-between;
    font-family: inherit;
  }
.page-events .filters .select svg { width: 13px; height: 13px; color: var(--text-3); }
.page-events .filter-pair {
    display: grid; grid-template-columns: 1fr 1fr; gap: 10px;
    margin-bottom: 12px;
  }
.page-events .filter-pair .field { margin-bottom: 0; }
.page-events .qs-wrap {
    display: grid; grid-template-columns: 120px 1fr; gap: 14px;
    align-items: center;
  }
.page-events .donut {
    width: 120px; height: 120px;
    position: relative;
  }
.page-events .donut .total .n { font-size: 22px; font-weight: 700; letter-spacing: -.02em; }
.page-events .qs-legend { display: flex; flex-direction: column; gap: 8px; }
.page-events .qs-legend .lr {
    display: grid; grid-template-columns: 12px 60px 1fr;
    gap: 8px;
    align-items: center;
    font-size: 12.5px;
  }
.page-events .qs-legend .sw { width: 9px; height: 9px; border-radius: 50%; }
.page-events .qs-legend .val { color: var(--text-2); font-variant-numeric: tabular-nums; text-align: right; }
.page-events .tet-row {
    display: grid;
    grid-template-columns: 28px 1fr auto;
    gap: 12px;
    align-items: center;
    padding: 9px 0;
  }
.page-events .tet-row + .tet-row { border-top: 1px solid var(--border); }
.page-events .tet-row .ic { display: grid; place-items: center; }
.page-events .tet-row .ic svg { width: 18px; height: 18px; }
.page-events .tet-row .nm { font-size: 13px; color: var(--text); font-weight: 500; }
.page-events .tet-row .ct { font-size: 13.5px; color: var(--text); font-weight: 600; font-variant-numeric: tabular-nums; }
/* events: 5-col table (we don't track project/user per event) */
.page-events .e-th, .page-events .e-row{grid-template-columns:160px 110px 2fr 1.3fr 1.2fr !important}

/* ===== page: revenue ===== */
.page-revenue .nav a {
    display: flex; align-items: center; gap: 12px;
    padding: 10px 12px; border-radius: 10px;
    color: var(--text-2); text-decoration: none;
    font-size: 14px; font-weight: 500;
  }
.page-revenue .nav .pill {
    margin-left: auto;
    min-width: 20px; height: 18px; padding: 0 6px;
    border-radius: 9px;
    background: var(--red); color: white;
    font-size: 11px; font-weight: 700;
    display: grid; place-items: center;
  }
.page-revenue main {
    padding: 24px 30px 24px;
    display: flex; flex-direction: column; gap: 14px;
    background: var(--bg);
  }
.page-revenue .page-head {
    display: flex; align-items: center; justify-content: space-between;
    gap: 16px;
  }
.page-revenue .head-right { display: flex; align-items: center; gap: 12px; }
.page-revenue .date-pick {
    display: inline-flex; align-items: center; gap: 10px;
    background: var(--panel);
    border: 1px solid var(--border);
    color: var(--text);
    border-radius: 10px;
    padding: 10px 14px;
    font-size: 13px;
    cursor: pointer;
    font-family: 'JetBrains Mono', monospace;
  }
.page-revenue .date-pick svg { width: 14px; height: 14px; color: var(--text-3); }
.page-revenue .stats {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 12px;
  }
.page-revenue .stat-card {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 14px 18px 6px;
    overflow: hidden;
    min-height: 134px;
    display: flex; flex-direction: column;
  }
.page-revenue .stat-card .icon {
    width: 36px; height: 36px; border-radius: 9px;
    display: grid; place-items: center; flex-shrink: 0;
  }
.page-revenue .stat-card .icon svg { width: 19px; height: 19px; }
.page-revenue .stat-card .label {
    font-size: 10.5px; font-weight: 600;
    letter-spacing: .08em; color: var(--text-3);
    text-transform: uppercase;
  }
.page-revenue .stat-card .value {
    font-size: 22px; font-weight: 700;
    letter-spacing: -.01em; margin-top: 6px; line-height: 1.1;
    font-variant-numeric: tabular-nums;
  }
.page-revenue .stat-card .sub {
    font-size: 11.5px;
    margin-top: 4px;
    font-weight: 500;
  }
.page-revenue .stat-card .sub .lab { color: var(--text-3); font-weight: 400; }
.page-revenue .stat-card .sub.green { color: var(--green-2); }
.page-revenue .stat-card .sub.muted { color: var(--text-3); }
.page-revenue .stat-card .spark {
    margin-top: auto;
    margin-left: -18px; margin-right: -18px; margin-bottom: -6px;
    height: 38px;
  }
.page-revenue .ic-green { background: rgba(34,197,94,.16);   color: #4ade80; }
.page-revenue .ic-purple { background: rgba(168,85,247,.16);  color: #c084fc; }
.page-revenue .ic-emerald { background: rgba(16,185,129,.16);  color: #34d399; }
.page-revenue .ic-orange { background: rgba(249,115,22,.16);  color: #fb923c; }
.page-revenue .ic-blue { background: rgba(59,130,246,.16);  color: #60a5fa; }
.page-revenue .ic-pink { background: rgba(236,72,153,.16);  color: #f472b6; }
.page-revenue .mid-grid {
    display: grid;
    grid-template-columns: 1.45fr 1fr 1fr;
    gap: 12px;
    align-items: start;
  }
.page-revenue .panel {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 16px 18px;
    display: flex; flex-direction: column;
  }
.page-revenue .panel-head h2 {
    margin: 0;
    font-size: 15.5px; font-weight: 600;
    letter-spacing: -.005em;
  }
.page-revenue .link-btn svg { width: 11px; height: 11px; }
.page-revenue .ph-tools {
    display: inline-flex; align-items: center; gap: 6px;
  }
.page-revenue .ph-select {
    background: var(--panel-2);
    border: 1px solid var(--border-2);
    color: var(--text);
    border-radius: 8px;
    padding: 5px 10px;
    font-size: 12.5px;
    cursor: pointer;
    display: inline-flex; align-items: center; gap: 6px;
    font-family: inherit;
  }
.page-revenue .ph-select svg { width: 11px; height: 11px; color: var(--text-3); }
.page-revenue .ph-icon {
    width: 28px; height: 28px;
    background: var(--panel-2);
    border: 1px solid var(--border-2);
    color: var(--text-3);
    border-radius: 8px;
    display: grid; place-items: center;
    cursor: pointer;
  }
.page-revenue .ph-icon svg { width: 13px; height: 13px; }
.page-revenue .ph-icon.active { background: rgba(59,130,246,.18); border-color: rgba(59,130,246,.45); color: var(--brand-2); }
.page-revenue .chart-wrap {
    position: relative;
    margin-top: 4px;
  }
.page-revenue .chart-wrap svg.main-chart { width: 100%; display: block; height: 230px; }
.page-revenue .y-axis {
    position: absolute; left: 0; top: 0; bottom: 24px;
    display: flex; flex-direction: column; justify-content: space-between;
    font-size: 11px; color: var(--text-3);
    font-variant-numeric: tabular-nums;
  }
.page-revenue .x-axis {
    display: flex; justify-content: space-between;
    margin-top: 6px;
    font-size: 11.5px; color: var(--text-3);
    padding: 0 8px 0 32px;
  }
.page-revenue .tooltip {
    position: absolute;
    background: var(--panel-3);
    border: 1px solid var(--border-2);
    border-radius: 8px;
    padding: 8px 12px;
    font-size: 12px;
    box-shadow: 0 4px 16px rgba(0,0,0,.4);
    white-space: nowrap;
    z-index: 2;
  }
.page-revenue .tooltip .tdate { color: var(--text-3); font-size: 11.5px; }
.page-revenue .tooltip .tval { color: var(--text); font-weight: 700; font-size: 14px; margin-top: 2px; font-variant-numeric: tabular-nums; }
.page-revenue .chart-foot {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 10px;
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid var(--border);
  }
.page-revenue .cf-item .v {
    font-size: 17px; font-weight: 700;
    letter-spacing: -.01em;
    font-variant-numeric: tabular-nums;
  }
.page-revenue .cf-item .v.green { color: var(--green-2); }
.page-revenue .cf-item .l { font-size: 11.5px; color: var(--text-3); margin-top: 4px; }
.page-revenue .donut-row {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 18px;
    align-items: center;
  }
.page-revenue .donut {
    width: 200px; height: 200px;
    position: relative;
  }
.page-revenue .donut.sm { width: 170px; height: 170px; }
.page-revenue .donut .total .n { font-size: 22px; font-weight: 700; letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
.page-revenue .donut.sm .total .n { font-size: 20px; }
.page-revenue .ch-legend { display: flex; flex-direction: column; gap: 7px; }
.page-revenue .ch-legend .lr {
    display: grid;
    grid-template-columns: 10px 1fr auto auto;
    gap: 10px;
    align-items: center;
    font-size: 12.5px;
  }
.page-revenue .ch-legend .sw { width: 8px; height: 8px; border-radius: 50%; }
.page-revenue .ch-legend .nm { color: var(--text); }
.page-revenue .ch-legend .val { color: var(--text-2); font-variant-numeric: tabular-nums; font-weight: 600; }
.page-revenue .ch-legend .pct { color: var(--text-3); font-size: 11.5px; min-width: 42px; text-align: right; font-variant-numeric: tabular-nums; }
.page-revenue .channel-foot {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid var(--border);
    color: var(--brand-2);
    font-size: 13px;
    font-weight: 500;
    text-align: center;
  }
.page-revenue .source-legend { display: flex; flex-direction: column; gap: 12px; }
.page-revenue .src-row {
    display: grid;
    grid-template-columns: 12px 1fr auto;
    gap: 10px;
    align-items: start;
  }
.page-revenue .src-row .sw { width: 8px; height: 8px; border-radius: 50%; margin-top: 6px; }
.page-revenue .src-row .nm { font-size: 13px; color: var(--text); font-weight: 500; }
.page-revenue .src-row .amt { font-size: 12px; color: var(--text-3); margin-top: 2px; font-variant-numeric: tabular-nums; }
.page-revenue .src-row .pct { font-size: 12.5px; color: var(--text-2); font-variant-numeric: tabular-nums; font-weight: 600; }
.page-revenue .bot-grid {
    display: grid;
    grid-template-columns: 1.45fr 1fr 1fr;
    gap: 12px;
    align-items: start;
  }
.page-revenue .v-th {
    display: grid;
    grid-template-columns: 24px minmax(180px, 1.4fr) minmax(140px, 1fr) 100px 70px 70px 90px;
    gap: 14px;
    padding: 0 4px 12px;
    border-bottom: 1px solid var(--border);
    font-size: 11.5px;
    color: var(--text-3);
    font-weight: 500;
  }
.page-revenue .v-row {
    display: grid;
    grid-template-columns: 24px minmax(180px, 1.4fr) minmax(140px, 1fr) 100px 70px 70px 90px;
    gap: 14px;
    padding: 11px 4px;
    align-items: center;
    border-bottom: 1px solid var(--border);
  }
.page-revenue .v-row:last-of-type { border-bottom: none; }
.page-revenue .v-row .ix { color: var(--text-3); font-size: 13px; font-variant-numeric: tabular-nums; }
.page-revenue .v-vid { display: flex; align-items: center; gap: 12px; min-width: 0; }
.page-revenue .v-thumb {
    width: 56px; height: 36px; border-radius: 6px;
    background: linear-gradient(135deg, #1e3a8a, #1e1b4b);
    position: relative;
    overflow: hidden;
    flex-shrink: 0;
  }
.page-revenue .v-thumb.t1 { background: linear-gradient(135deg, #0c4a6e, #082f49); }
.page-revenue .v-thumb.t2 { background: linear-gradient(135deg, #134e4a, #042f2e); }
.page-revenue .v-thumb.t3 { background: linear-gradient(135deg, #78350f, #451a03); }
.page-revenue .v-thumb.t4 { background: linear-gradient(135deg, #075985, #0c4a6e); }
.page-revenue .v-thumb.t5 { background: linear-gradient(135deg, #92400e, #78350f); }
.page-revenue .v-thumb .dur {
    position: absolute; bottom: 3px; right: 3px;
    background: rgba(0,0,0,.7);
    color: white;
    font-size: 9.5px; font-weight: 500;
    padding: 1px 4px;
    border-radius: 3px;
    font-variant-numeric: tabular-nums;
  }
.page-revenue .v-vid .t { font-size: 13px; font-weight: 500; line-height: 1.3; }
.page-revenue .v-ch { display: flex; align-items: center; gap: 8px; font-size: 13px; }
.page-revenue .ch-av {
    width: 26px; height: 26px; border-radius: 50%;
    display: grid; place-items: center;
    color: white; font-size: 9.5px; font-weight: 700; letter-spacing: .04em;
    flex-shrink: 0;
  }
.page-revenue .ch-av.pl { background: linear-gradient(135deg,#ec4899,#db2777); }
.page-revenue .ch-av.soe { background: linear-gradient(135deg,#06b6d4,#0891b2); }
.page-revenue .ch-av.lu { background: linear-gradient(135deg,#8b5cf6,#6366f1); }
.page-revenue .ch-av.hc { background: linear-gradient(135deg,#84cc16,#65a30d); }
.page-revenue .ch-av.tba { background: linear-gradient(135deg,#f59e0b,#d97706); }
.page-revenue .v-pub .d { font-size: 12.5px; }
.page-revenue .v-pub .a { font-size: 11.5px; color: var(--text-3); margin-top: 2px; }
.page-revenue .v-num { font-size: 12.5px; font-variant-numeric: tabular-nums; }
.page-revenue .v-rev { font-size: 13px; font-weight: 600; color: var(--green-2); font-variant-numeric: tabular-nums; }
.page-revenue .v-foot {
    margin-top: 14px;
    color: var(--brand-2);
    font-size: 13px;
    font-weight: 500;
  }
.page-revenue .tool-row {
    display: grid;
    grid-template-columns: 110px 90px 1fr 40px;
    gap: 12px;
    align-items: center;
    padding: 10px 0;
  }
.page-revenue .tool-row + .tool-row { border-top: 1px solid var(--border); }
.page-revenue .tool-row .nm { font-size: 13px; font-weight: 500; }
.page-revenue .tool-row .amt { font-size: 13px; font-weight: 600; font-variant-numeric: tabular-nums; }
.page-revenue .tool-row .bar {
    height: 6px;
    background: var(--border-2);
    border-radius: 3px;
    overflow: hidden;
  }
.page-revenue .tool-row .bar .f { height: 100%; background: var(--brand); border-radius: 3px; }
.page-revenue .tool-row .pct { font-size: 11.5px; color: var(--text-3); text-align: right; font-variant-numeric: tabular-nums; }
.page-revenue .rpm-card {
    margin-top: 16px;
    background: var(--panel-2);
    border: 1px solid var(--border-2);
    border-radius: 12px;
    padding: 14px 16px;
  }
.page-revenue .rpm-head {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 12px;
  }
.page-revenue .rpm-head .nm {
    display: inline-flex; align-items: center; gap: 8px;
    font-size: 13.5px; font-weight: 600;
  }
.page-revenue .rpm-head .nm svg { width: 16px; height: 16px; color: var(--text-3); }
.page-revenue .rpm-row {
    display: flex; justify-content: space-between; align-items: center;
    padding: 6px 0;
    font-size: 12.5px;
  }
.page-revenue .rpm-row .k { color: var(--text-3); }
.page-revenue .rpm-row .v { color: var(--text); font-weight: 600; font-variant-numeric: tabular-nums; }
.page-revenue .rp-head { display: flex; align-items: center; justify-content: space-between; }
.page-revenue .rp-sub {
    font-size: 11.5px;
    color: var(--text-3);
    margin-top: 2px;
  }
.page-revenue .rp-value {
    font-size: 24px;
    font-weight: 700;
    letter-spacing: -.01em;
    margin-top: 8px;
    font-variant-numeric: tabular-nums;
  }
.page-revenue .rp-note {
    font-size: 11.5px;
    color: var(--text-3);
    margin-top: 4px;
  }
.page-revenue .rp-chart { margin-top: 16px; position: relative; }
.page-revenue .rp-chart svg { width: 100%; height: 130px; display: block; }
.page-revenue .rp-y {
    position: absolute; left: 0; top: 0; bottom: 24px;
    display: flex; flex-direction: column; justify-content: space-between;
    font-size: 10.5px; color: var(--text-3);
    font-variant-numeric: tabular-nums;
  }
.page-revenue .rp-x {
    display: flex; justify-content: space-between;
    margin-top: 6px;
    font-size: 11px; color: var(--text-3);
    padding: 0 4px 0 28px;
  }
.page-revenue .rp-legend {
    display: flex; gap: 18px; justify-content: center;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--border);
    font-size: 12px;
  }
.page-revenue .rp-legend .item { display: inline-flex; align-items: center; gap: 8px; color: var(--text-2); }
.page-revenue .rp-legend .sw {
    width: 14px; height: 3px; border-radius: 2px;
  }
.page-revenue .rp-legend .sw.actual { background: var(--brand); }
.page-revenue .rp-legend .sw.proj {
    background: linear-gradient(to right, var(--green-2) 0 4px, transparent 4px 8px, var(--green-2) 8px 12px);
  }
.page-revenue .ri-row {
    display: grid;
    grid-template-columns: 32px 1fr;
    gap: 12px;
    padding: 12px 0;
  }
.page-revenue .ri-row + .ri-row { border-top: 1px solid var(--border); }
.page-revenue .ri-row .ic {
    width: 32px; height: 32px;
    border-radius: 9px;
    display: grid; place-items: center;
  }
.page-revenue .ri-row .ic svg { width: 16px; height: 16px; }
.page-revenue .ri-row .t { font-size: 13px; font-weight: 600; line-height: 1.3; }
.page-revenue .ri-row .s { font-size: 11.5px; color: var(--text-3); margin-top: 3px; line-height: 1.4; }
.page-revenue .page-foot {
    display: flex; justify-content: space-between;
    color: var(--text-4);
    font-size: 12px;
    padding-top: 8px;
  }
/* revenue: simplified video table (no thumb/published in our data) */
.page-revenue .v-th, .page-revenue .v-row{grid-template-columns:34px 2fr 1.3fr 90px 80px 110px !important}
.page-revenue .rev-bars{display:flex;align-items:flex-end;gap:6px;height:120px;padding:10px 0}
.page-revenue .rev-bars .b{flex:1;background:linear-gradient(180deg,#22c55e,#22c55e55);border-radius:4px 4px 0 0;min-height:3px}
.page-revenue .rev-bars-axis{display:flex;justify-content:space-between;font-size:10px;color:var(--text-3);margin-top:4px}

/* ===== page: reports ===== */
.page-reports .nav a {
    display: flex; align-items: center; gap: 12px;
    padding: 10px 12px; border-radius: 10px;
    color: var(--text-2); text-decoration: none;
    font-size: 14px; font-weight: 500;
  }
.page-reports .nav .pill {
    margin-left: auto;
    min-width: 20px; height: 18px; padding: 0 6px;
    border-radius: 9px;
    background: var(--red); color: white;
    font-size: 11px; font-weight: 700;
    display: grid; place-items: center;
  }
.page-reports main {
    padding: 22px 26px 22px;
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 14px;
    background: var(--bg);
    align-items: start;
  }
.page-reports .content { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.page-reports .rail { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.page-reports .page-head {
    grid-column: 1 / -1;
    display: flex; align-items: center; justify-content: space-between;
    gap: 16px;
  }
.page-reports .head-right { display: flex; align-items: center; gap: 12px; }
.page-reports .date-pick {
    display: inline-flex; align-items: center; gap: 10px;
    background: var(--panel);
    border: 1px solid var(--border);
    color: var(--text);
    border-radius: 10px;
    padding: 9px 14px;
    font-size: 13px;
    cursor: pointer;
    font-family: 'JetBrains Mono', monospace;
  }
.page-reports .date-pick svg { width: 14px; height: 14px; color: var(--text-3); }
.page-reports .btn-line {
    display: inline-flex; align-items: center; gap: 8px;
    background: var(--panel);
    border: 1px solid var(--border);
    color: var(--text);
    padding: 9px 14px;
    border-radius: 10px;
    font-size: 13.5px; font-weight: 500;
    cursor: pointer;
    font-family: inherit;
  }
.page-reports .btn-line svg { width: 13px; height: 13px; color: var(--text-3); }
.page-reports .btn-pri {
    display: inline-flex; align-items: center; gap: 8px;
    background: linear-gradient(135deg, #6366f1, #8b5cf6);
    border: none;
    color: white;
    padding: 9px 16px;
    border-radius: 10px;
    font-size: 13.5px; font-weight: 600;
    cursor: pointer;
    font-family: inherit;
    box-shadow: 0 4px 14px rgba(99,102,241,.35);
  }
.page-reports .btn-pri svg { width: 14px; height: 14px; }
.page-reports .avatar .bubble {
    width: 30px; height: 30px; border-radius: 50%;
    background: linear-gradient(135deg, #06b6d4, #0891b2);
    color: white;
    display: grid; place-items: center;
    font-weight: 700; font-size: 12px;
    letter-spacing: .04em;
  }
.page-reports .tabs {
    grid-column: 1 / -1;
    display: flex; gap: 30px;
    border-bottom: 1px solid var(--border);
    padding: 0 4px;
  }
.page-reports .tabs a {
    color: var(--text-3);
    text-decoration: none;
    font-size: 14.5px;
    font-weight: 500;
    padding: 12px 0 14px;
    position: relative;
  }
.page-reports .tabs a:hover { color: var(--text-2); }
.page-reports .tabs a.active { color: var(--brand-2); font-weight: 600; }
.page-reports .tabs a.active::after {
    content: ""; position: absolute; bottom: -1px; left: 0; right: 0;
    height: 2px; background: var(--brand); border-radius: 2px;
  }
.page-reports .stats {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 12px;
  }
.page-reports .stat-card {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 14px 18px 6px;
    overflow: hidden;
    min-height: 138px;
    display: flex; flex-direction: column;
  }
.page-reports .stat-card .icon {
    width: 36px; height: 36px; border-radius: 9px;
    display: grid; place-items: center; flex-shrink: 0;
  }
.page-reports .stat-card .icon svg { width: 19px; height: 19px; }
.page-reports .stat-card .value {
    font-size: 26px; font-weight: 700;
    letter-spacing: -.02em; margin-top: 6px; line-height: 1.1;
    font-variant-numeric: tabular-nums;
  }
.page-reports .stat-card .delta {
    font-size: 12px;
    margin-top: 4px;
    font-weight: 500;
    color: var(--text-3);
  }
.page-reports .stat-card .delta.green { color: var(--green-2); }
.page-reports .stat-card .delta.red { color: #f87171; }
.page-reports .stat-card .spark {
    margin-top: auto;
    margin-left: -18px; margin-right: -18px; margin-bottom: -6px;
    height: 38px;
  }
.page-reports .ic-blue { background: rgba(59,130,246,.16);  color: #60a5fa; }
.page-reports .ic-purple { background: rgba(168,85,247,.16);  color: #c084fc; }
.page-reports .ic-green { background: rgba(34,197,94,.16);   color: #4ade80; }
.page-reports .ic-orange { background: rgba(249,115,22,.16);  color: #fb923c; }
.page-reports .ic-cyan { background: rgba(6,182,212,.16);   color: #22d3ee; }
.page-reports .ic-red { background: rgba(239,68,68,.16);   color: #f87171; }
.page-reports .filter-row {
    display: grid;
    grid-template-columns: 240px 240px 240px 1fr auto;
    gap: 12px;
    align-items: end;
  }
.page-reports .field { display: flex; flex-direction: column; gap: 6px; }
.page-reports .field .l { font-size: 11.5px; color: var(--text-3); font-weight: 500; }
.page-reports .select {
    background: var(--panel);
    border: 1px solid var(--border);
    color: var(--text);
    border-radius: 10px;
    padding: 9px 12px;
    font-size: 13px;
    cursor: pointer;
    display: flex; align-items: center; justify-content: space-between;
    font-family: inherit;
  }
.page-reports .select svg { width: 13px; height: 13px; color: var(--text-3); }
.page-reports .add-filter-btn {
    background: var(--panel);
    border: 1px solid var(--border);
    color: var(--text);
    border-radius: 10px;
    padding: 9px 14px;
    font-size: 13px; font-weight: 500;
    cursor: pointer;
    display: inline-flex; align-items: center; gap: 8px;
    font-family: inherit;
    justify-self: end;
  }
.page-reports .add-filter-btn svg { width: 13px; height: 13px; color: var(--text-3); }
.page-reports .panel {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 16px 18px;
    display: flex; flex-direction: column;
  }
.page-reports .panel-head h2 {
    margin: 0;
    font-size: 15.5px; font-weight: 600;
    display: inline-flex; align-items: center; gap: 6px;
  }
.page-reports .panel-head h2 .info {
    color: var(--text-4);
    cursor: help;
  }
.page-reports .panel-head h2 .info svg { width: 13px; height: 13px; }
.page-reports .link-btn svg { width: 11px; height: 11px; }
.page-reports .top-row {
    display: grid;
    grid-template-columns: 1.55fr 1fr;
    gap: 12px;
  }
.page-reports .chart-legend { display: flex; gap: 18px; align-items: center; }
.page-reports .chart-legend .item { display: inline-flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--text-2); }
.page-reports .chart-legend .sw { width: 8px; height: 8px; border-radius: 50%; }
.page-reports .chart-tools { display: inline-flex; align-items: center; gap: 8px; }
.page-reports .ph-select {
    background: var(--panel-2);
    border: 1px solid var(--border-2);
    color: var(--text);
    border-radius: 8px;
    padding: 6px 10px;
    font-size: 12.5px;
    cursor: pointer;
    display: inline-flex; align-items: center; gap: 6px;
    font-family: inherit;
  }
.page-reports .ph-select svg { width: 11px; height: 11px; color: var(--text-3); }
.page-reports .more-btn {
    width: 28px; height: 28px;
    border-radius: 7px;
    background: var(--panel-2);
    border: 1px solid var(--border-2);
    color: var(--text-3);
    display: grid; place-items: center;
    cursor: pointer;
  }
.page-reports .more-btn svg { width: 13px; height: 13px; }
.page-reports .chart-wrap {
    position: relative;
    margin-top: 12px;
  }
.page-reports .chart-wrap svg.cm { width: 100%; height: 210px; display: block; }
.page-reports .y-axis-l {
    position: absolute; left: 0; top: 0; bottom: 24px;
    display: flex; flex-direction: column; justify-content: space-between;
    font-size: 11px; color: var(--text-3);
    font-variant-numeric: tabular-nums;
  }
.page-reports .y-axis-r {
    position: absolute; right: 0; top: 0; bottom: 24px;
    display: flex; flex-direction: column; justify-content: space-between;
    font-size: 11px; color: var(--text-3);
    font-variant-numeric: tabular-nums;
    text-align: right;
  }
.page-reports .y-cap-l { position: absolute; left: 0; top: -16px; font-size: 11px; color: var(--text-3); }
.page-reports .y-cap-r { position: absolute; right: 0; top: -16px; font-size: 11px; color: var(--text-3); }
.page-reports .x-axis {
    display: flex; justify-content: space-between;
    margin-top: 6px;
    padding: 0 36px;
    font-size: 11.5px; color: var(--text-3);
  }
.page-reports .chart-stats {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 10px;
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--border);
    text-align: center;
  }
.page-reports .cs-item .v { font-size: 17px; font-weight: 700; font-variant-numeric: tabular-nums; }
.page-reports .cs-item .l { font-size: 11.5px; color: var(--text-3); margin-top: 4px; }
.page-reports .cs-item .d { font-size: 11.5px; color: var(--green-2); margin-top: 3px; font-weight: 500; }
.page-reports .cs-item .d::before { content: "↑ "; }
.page-reports .tc-th {
    display: grid;
    grid-template-columns: 1fr 80px 80px;
    gap: 10px;
    padding: 0 4px 10px;
    border-bottom: 1px solid var(--border);
    font-size: 11.5px;
    color: var(--text-3);
    font-weight: 500;
  }
.page-reports .tc-row {
    display: grid;
    grid-template-columns: 1fr 80px 80px;
    gap: 10px;
    padding: 14px 4px;
    align-items: center;
    border-bottom: 1px solid var(--border);
  }
.page-reports .tc-row:last-of-type { border-bottom: none; }
.page-reports .tc-ch { display: flex; align-items: center; gap: 10px; }
.page-reports .ch-av {
    width: 30px; height: 30px; border-radius: 50%;
    display: grid; place-items: center;
    color: white; font-size: 10px; font-weight: 700; letter-spacing: .04em;
  }
.page-reports .ch-av.pl { background: linear-gradient(135deg,#ec4899,#db2777); }
.page-reports .ch-av.soe { background: linear-gradient(135deg,#06b6d4,#0891b2); }
.page-reports .ch-av.hc { background: linear-gradient(135deg,#84cc16,#65a30d); }
.page-reports .ch-av.lu { background: linear-gradient(135deg,#8b5cf6,#6366f1); }
.page-reports .ch-av.de { background: linear-gradient(135deg,#475569,#334155); }
.page-reports .tc-ch .nm { font-size: 13.5px; font-weight: 500; }
.page-reports .tc-v { font-size: 13px; font-weight: 600; font-variant-numeric: tabular-nums; }
.page-reports .tc-d { font-size: 12px; color: var(--green-2); font-weight: 500; }
.page-reports .tc-d::before { content: "↑ "; }
.page-reports .tc-foot {
    margin-top: 14px;
    color: var(--brand-2);
    font-size: 13px;
    font-weight: 500;
    text-align: center;
  }
.page-reports .bot-grid {
    display: grid;
    grid-template-columns: 1.05fr 1.05fr 1fr;
    gap: 12px;
    align-items: start;
  }
.page-reports .pipe-bar {
    display: grid;
    grid-template-columns: 80px 1fr 30px 90px;
    gap: 12px;
    align-items: center;
    padding: 8px 0;
  }
.page-reports .pipe-bar .nm { font-size: 12.5px; color: var(--text); font-weight: 500; }
.page-reports .pipe-bar .bar {
    height: 18px;
    border-radius: 4px;
    overflow: hidden;
    position: relative;
    background: var(--panel-2);
  }
.page-reports .pipe-bar .f { height: 100%; border-radius: 4px; position: absolute; left: 0; top: 0; }
.page-reports .pipe-bar .ct { font-size: 13px; font-weight: 600; font-variant-numeric: tabular-nums; text-align: right; }
.page-reports .pipe-bar .av { font-size: 11.5px; color: var(--text-3); text-align: right; }
.page-reports .pipe-tiles {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--border);
  }
.page-reports .pt {
    background: var(--panel-2);
    border: 1px solid var(--border-2);
    border-radius: 10px;
    padding: 10px 12px;
  }
.page-reports .pt .l { font-size: 11.5px; color: var(--text-3); }
.page-reports .pt .v { font-size: 22px; font-weight: 700; margin-top: 4px; letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
.page-reports .pt .d { font-size: 11px; margin-top: 2px; font-weight: 500; }
.page-reports .pt .d.green { color: var(--green-2); }
.page-reports .pt .d.green::before { content: "↑ "; }
.page-reports .pt .d.red { color: #f87171; }
.page-reports .pt .d.red::before { content: "↓ "; }
.page-reports .tp-th {
    display: grid;
    grid-template-columns: 1.1fr 70px 70px 70px 70px;
    gap: 10px;
    padding: 0 4px 10px;
    border-bottom: 1px solid var(--border);
    font-size: 11.5px;
    color: var(--text-3);
    font-weight: 500;
  }
.page-reports .tp-row {
    display: grid;
    grid-template-columns: 1.1fr 70px 70px 70px 70px;
    gap: 10px;
    padding: 11px 4px;
    align-items: center;
    font-size: 13px;
    border-bottom: 1px solid var(--border);
    font-variant-numeric: tabular-nums;
  }
.page-reports .tp-row:last-of-type { border-bottom: none; }
.page-reports .tp-row .nm { color: var(--text); font-weight: 500; }
.page-reports .tp-row .up { font-weight: 600; }
.page-reports .tp-row .up.green { color: var(--green-2); }
.page-reports .tp-row .up.yellow { color: #facc15; }
.page-reports .tp-row .err { font-weight: 600; }
.page-reports .tp-row .err.green { color: var(--green-2); }
.page-reports .tp-row .err.yellow { color: #facc15; }
.page-reports .tp-row .err.red { color: #f87171; }
.page-reports .tp-foot {
    margin-top: 14px;
    color: var(--brand-2);
    font-size: 13px;
    font-weight: 500;
  }
.page-reports .alerts-wrap {
    display: flex; flex-direction: column;
    align-items: center; gap: 14px;
  }
.page-reports .alerts-legend {
    display: flex; flex-direction: column; gap: 10px;
    width: 100%;
    padding: 0 12px;
  }
.page-reports .alerts-legend .lr {
    display: grid; grid-template-columns: 12px 1fr auto;
    gap: 10px; align-items: center;
    font-size: 12.5px;
  }
.page-reports .alerts-legend .sw { width: 9px; height: 9px; border-radius: 50%; }
.page-reports .alerts-legend .val { color: var(--text-2); font-variant-numeric: tabular-nums; font-weight: 500; }
.page-reports .alerts-foot {
    margin-top: 14px;
    color: var(--brand-2);
    font-size: 13px;
    font-weight: 500;
    text-align: center;
    width: 100%;
  }
.page-reports .rail .panel-head h2 { font-size: 15px; }
.page-reports .sr-row {
    display: grid;
    grid-template-columns: 36px 1fr auto;
    gap: 10px;
    align-items: center;
    padding: 11px 0;
    border-bottom: 1px solid var(--border);
  }
.page-reports .sr-row:first-of-type { padding-top: 4px; }
.page-reports .sr-row:last-of-type { border-bottom: none; }
.page-reports .sr-ic {
    width: 36px; height: 36px;
    border-radius: 9px;
    display: grid; place-items: center;
  }
.page-reports .sr-ic svg { width: 18px; height: 18px; }
.page-reports .sr-row .nm { font-size: 13px; font-weight: 600; }
.page-reports .sr-row .sb { font-size: 11.5px; color: var(--text-3); margin-top: 2px; }
.page-reports .sr-row .next { font-size: 11px; color: var(--text-3); }
.page-reports .sr-pill {
    display: inline-flex;
    background: rgba(34,197,94,.12);
    border: 1px solid rgba(34,197,94,.3);
    color: var(--green-2);
    padding: 3px 10px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 600;
  }
.page-reports .sr-row .right { text-align: right; display: flex; flex-direction: column; gap: 4px; align-items: flex-end; }
.page-reports .create-sched {
    margin-top: 14px;
    background: var(--panel-2);
    border: 1px dashed var(--border-2);
    color: var(--brand-2);
    border-radius: 10px;
    padding: 11px;
    font-size: 13px; font-weight: 500;
    cursor: pointer;
    display: flex; align-items: center; justify-content: center; gap: 8px;
    font-family: inherit;
    width: 100%;
  }
.page-reports .create-sched svg { width: 14px; height: 14px; }
.page-reports .rh-wrap {
    display: grid;
    grid-template-columns: 1fr 60px;
    gap: 14px;
    align-items: center;
  }
.page-reports .rh-list { display: flex; flex-direction: column; gap: 10px; }
.page-reports .rh-row {
    display: grid;
    grid-template-columns: 22px 1fr auto;
    gap: 10px;
    align-items: center;
    font-size: 12.5px;
  }
.page-reports .rh-row .ic { color: var(--green-2); display: grid; place-items: center; }
.page-reports .rh-row .ic svg { width: 16px; height: 16px; }
.page-reports .rh-row .nm { font-size: 12.5px; color: var(--text); font-weight: 500; }
.page-reports .rh-row .st { font-size: 12px; color: var(--green-2); font-weight: 600; }
.page-reports .rh-shield {
    width: 60px; height: 60px;
    border-radius: 50%;
    background: rgba(34,197,94,.10);
    border: 2px solid rgba(34,197,94,.4);
    display: grid; place-items: center;
    color: var(--green-2);
  }
.page-reports .rh-shield svg { width: 28px; height: 28px; }
.page-reports .re-row {
    display: grid;
    grid-template-columns: 22px 1fr 36px 80px 22px;
    gap: 10px;
    align-items: center;
    padding: 10px 0;
    border-bottom: 1px solid var(--border);
  }
.page-reports .re-row:last-of-type { border-bottom: none; }
.page-reports .re-row .ic { color: var(--text-3); display: grid; place-items: center; }
.page-reports .re-row .ic svg { width: 16px; height: 16px; }
.page-reports .re-row .nm { font-size: 12.5px; font-weight: 500; }
.page-reports .re-row .ext {
    font-size: 10.5px; color: var(--text-3); font-weight: 600;
    background: var(--panel-2);
    border: 1px solid var(--border-2);
    padding: 2px 5px;
    border-radius: 4px;
    text-align: center;
    letter-spacing: .03em;
  }
.page-reports .re-row .when { font-size: 11px; color: var(--text-3); text-align: right; font-variant-numeric: tabular-nums; }
.page-reports .re-row .dl { color: var(--text-3); cursor: pointer; display: grid; place-items: center; }
.page-reports .re-row .dl svg { width: 14px; height: 14px; }
.page-reports .page-foot {
    grid-column: 1 / -1;
    display: flex; justify-content: space-between;
    color: var(--text-4);
    font-size: 12px;
    padding-top: 4px;
  }
.page-reports .page-foot .refresh { display: inline-flex; align-items: center; gap: 6px; }
.page-reports .page-foot .refresh svg { width: 12px; height: 12px; }
/* reports: tool perf 4-col (we track active/queued/health, not uptime/error) */
.page-reports .tp-th, .page-reports .tp-row{grid-template-columns:1.6fr 80px 80px 100px !important}
.page-reports .pipe-bar{display:grid;grid-template-columns:90px 1fr 40px;gap:10px;align-items:center;margin-bottom:10px}
.page-reports .pipe-bar .bar{height:8px;background:var(--panel-2);border-radius:5px;overflow:hidden}
.page-reports .pipe-bar .bar .f{height:100%;border-radius:5px}
.page-reports .pipe-bar .nm{font-size:13px;color:var(--text-2)} .page-reports .pipe-bar .ct{font-size:13px;font-weight:600;text-align:right}

/* ===== page: channeldetail ===== */
.page-channeldetail .nav a {
    display: flex; align-items: center; gap: 12px;
    padding: 10px 12px; border-radius: 10px;
    color: var(--text-2); text-decoration: none;
    font-size: 14px; font-weight: 500;
  }
.page-channeldetail .nav .pill {
    margin-left: auto;
    min-width: 20px; height: 18px; padding: 0 6px;
    border-radius: 9px;
    background: var(--red); color: white;
    font-size: 11px; font-weight: 700;
    display: grid; place-items: center;
  }
.page-channeldetail main {
    padding: 22px 30px 30px;
    display: flex; flex-direction: column; gap: 16px;
    background: var(--bg);
  }
.page-channeldetail .topbar {
    display: flex; align-items: center; justify-content: space-between;
    gap: 24px;
  }
.page-channeldetail .back-link {
    display: inline-flex; align-items: center; gap: 8px;
    color: var(--text-2);
    background: none; border: none; cursor: pointer;
    font-size: 14px; font-family: inherit;
    text-decoration: none;
    font-weight: 500;
  }
.page-channeldetail .back-link svg { width: 14px; height: 14px; }
.page-channeldetail .back-link:hover { color: var(--text); }
.page-channeldetail .top-meta {
    display: flex; align-items: center; gap: 18px;
  }
.page-channeldetail .sync-banner {
    display: flex; align-items: center; gap: 12px;
  }
.page-channeldetail .sync-banner .ic {
    width: 36px; height: 36px;
    border-radius: 50%;
    background: rgba(34,197,94,.12);
    color: var(--green-2);
    display: grid; place-items: center;
    flex-shrink: 0;
  }
.page-channeldetail .sync-banner .ic svg { width: 17px; height: 17px; }
.page-channeldetail .sync-banner .tt { font-size: 13.5px; font-weight: 600; }
.page-channeldetail .sync-banner .sb { font-size: 12px; color: var(--text-3); margin-top: 2px; }
.page-channeldetail .clock {
    color: var(--text-3);
    font-size: 13px;
    display: flex; align-items: center; gap: 14px;
  }
.page-channeldetail .hero {
    display: flex; align-items: flex-start; justify-content: space-between;
    gap: 16px;
  }
.page-channeldetail .hero h1 {
    margin: 0;
    font-size: 36px; font-weight: 700; letter-spacing: -.02em;
    display: inline-flex; align-items: center; gap: 12px;
  }
.page-channeldetail .verified {
    width: 22px; height: 22px;
    display: inline-grid; place-items: center;
    color: var(--brand-2);
  }
.page-channeldetail .verified svg { width: 22px; height: 22px; }
.page-channeldetail .hero h1 .handle {
    font-size: 18px;
    color: var(--text-3);
    font-weight: 500;
    letter-spacing: 0;
    display: inline-flex; align-items: center; gap: 8px;
    margin-left: 4px;
  }
.page-channeldetail .hero h1 .handle svg { width: 14px; height: 14px; cursor: pointer; }
.page-channeldetail .hero-meta {
    display: flex; align-items: center; gap: 10px;
    margin-top: 10px;
    font-size: 13px;
    color: var(--text-3);
  }
.page-channeldetail .hero-meta .sep { color: var(--text-4); }
.page-channeldetail .hero-meta .mono { color: var(--text-3); }
.page-channeldetail .hero-actions { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; }
.page-channeldetail .hero-buttons { display: flex; gap: 10px; }
.page-channeldetail .pri-btn {
    display: inline-flex; align-items: center; gap: 8px;
    background: rgba(59,130,246,.14);
    border: 1px solid rgba(59,130,246,.6);
    color: var(--brand-2);
    padding: 10px 16px;
    border-radius: 10px;
    font-size: 13.5px; font-weight: 600;
    cursor: pointer;
    font-family: inherit;
  }
.page-channeldetail .pri-btn svg { width: 14px; height: 14px; }
.page-channeldetail .actions-btn {
    display: inline-flex; align-items: center; gap: 8px;
    background: var(--panel);
    border: 1px solid var(--border-2);
    color: var(--text);
    padding: 10px 16px;
    border-radius: 10px;
    font-size: 13.5px; font-weight: 600;
    cursor: pointer;
    font-family: inherit;
  }
.page-channeldetail .actions-btn svg { width: 14px; height: 14px; }
.page-channeldetail .tabs {
    display: flex; gap: 30px;
    border-bottom: 1px solid var(--border);
    margin: 0 -4px;
    padding: 0 4px;
  }
.page-channeldetail .tabs a {
    color: var(--text-3);
    text-decoration: none;
    font-size: 14.5px;
    font-weight: 500;
    padding: 12px 0 14px;
    position: relative;
  }
.page-channeldetail .tabs a:hover { color: var(--text-2); }
.page-channeldetail .tabs a.active {
    color: var(--brand-2);
    font-weight: 600;
  }
.page-channeldetail .tabs a.active::after {
    content: "";
    position: absolute; bottom: -1px; left: 0; right: 0;
    height: 2px;
    background: var(--brand);
    border-radius: 2px;
  }
.page-channeldetail .stats {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 12px;
  }
.page-channeldetail .stat-card {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 14px 18px 6px;
    overflow: hidden;
    min-height: 142px;
    display: flex; flex-direction: column;
  }
.page-channeldetail .stat-card .head { display: flex; align-items: center; gap: 12px; }
.page-channeldetail .stat-card .icon {
    width: 36px; height: 36px; border-radius: 9px;
    display: grid; place-items: center; flex-shrink: 0;
  }
.page-channeldetail .stat-card .icon svg { width: 19px; height: 19px; }
.page-channeldetail .stat-card .value {
    font-size: 28px; font-weight: 700;
    letter-spacing: -.02em; margin-top: 6px; line-height: 1.1;
  }
.page-channeldetail .stat-card .sub { font-size: 12px; color: var(--text-3); margin-top: 4px; }
.page-channeldetail .stat-card .delta::before {
    content: "↑"; font-size: 10px;
  }
.page-channeldetail .stat-card .spark {
    margin-top: auto;
    margin-left: -18px; margin-right: -18px; margin-bottom: -6px;
    height: 38px;
  }
.page-channeldetail .ic-teal { background: rgba(20,184,166,.14);  color: #2dd4bf; }
.page-channeldetail .ic-pink { background: rgba(236,72,153,.14);  color: #f472b6; }
.page-channeldetail .mid-grid {
    display: grid;
    grid-template-columns: 1.05fr 0.95fr 320px;
    gap: 14px;
    align-items: start;
  }
.page-channeldetail .link-btn svg { width: 11px; height: 11px; }
.page-channeldetail .chart-legend { display: flex; gap: 18px; margin-bottom: 8px; }
.page-channeldetail .chart-legend .item {
    display: inline-flex; align-items: center; gap: 8px;
    font-size: 12.5px; color: var(--text-2);
  }
.page-channeldetail .chart-legend .sw { width: 8px; height: 8px; border-radius: 50%; }
.page-channeldetail .chart-wrap { position: relative; margin-top: 4px; }
.page-channeldetail .chart-wrap svg { width: 100%; display: block; }
.page-channeldetail .y-axis {
    position: absolute; left: 0; top: 0; bottom: 24px;
    display: flex; flex-direction: column; justify-content: space-between;
    font-size: 11px; color: var(--text-3);
    font-variant-numeric: tabular-nums;
  }
.page-channeldetail .x-axis {
    display: flex; justify-content: space-between;
    margin-top: 6px;
    font-size: 11.5px; color: var(--text-3);
    padding: 0 28px 0 32px;
  }
.page-channeldetail .perf-stats {
    display: grid; grid-template-columns: repeat(4, 1fr);
    gap: 12px; margin-top: 16px;
    padding: 14px 16px;
    background: var(--panel-2);
    border: 1px solid var(--border-2);
    border-radius: 10px;
  }
.page-channeldetail .perf-stats .pl { font-size: 11.5px; color: var(--text-3); }
.page-channeldetail .perf-stats .pv { font-size: 18px; font-weight: 700; margin-top: 4px; letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
.page-channeldetail .perf-stats .pd { font-size: 11.5px; color: var(--green-2); margin-top: 2px; font-weight: 500; }
.page-channeldetail .latest-grid {
    display: grid;
    grid-template-columns: 200px 1fr;
    gap: 16px;
    align-items: start;
  }
.page-channeldetail .vthumb {
    width: 200px; height: 130px;
    border-radius: 10px;
    background: linear-gradient(135deg, #075985, #0c4a6e);
    position: relative;
    overflow: hidden;
  }
.page-channeldetail .vthumb::after {
    content: "";
    position: absolute; inset: 0;
    background:
      radial-gradient(ellipse at 40% 60%, rgba(56,189,248,.4) 0%, transparent 60%),
      radial-gradient(ellipse at 70% 40%, rgba(14,116,144,.35) 0%, transparent 60%);
  }
.page-channeldetail .vthumb .dur {
    position: absolute; bottom: 8px; right: 8px;
    background: rgba(0,0,0,.7);
    color: white;
    font-size: 11px; font-weight: 500;
    padding: 2px 6px;
    border-radius: 4px;
    font-variant-numeric: tabular-nums;
    z-index: 1;
  }
.page-channeldetail .vtitle { font-size: 18px; font-weight: 700; letter-spacing: -.005em; line-height: 1.25; }
.page-channeldetail .vmeta {
    font-size: 12px;
    color: var(--text-3);
    margin-top: 8px;
    display: flex; align-items: center; gap: 8px;
  }
.page-channeldetail .vmeta .sep { color: var(--text-4); }
.page-channeldetail .vpub {
    margin-top: 10px;
    display: inline-flex; align-items: center;
    background: rgba(34,197,94,.12);
    border: 1px solid rgba(34,197,94,.25);
    color: var(--green-2);
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 11.5px; font-weight: 600;
  }
.page-channeldetail .vstats {
    grid-column: 1 / 3;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-top: 8px;
    padding-top: 14px;
    border-top: 1px solid var(--border);
  }
.page-channeldetail .vstats .l { font-size: 11.5px; color: var(--text-3); }
.page-channeldetail .vstats .v { font-size: 17px; font-weight: 700; margin-top: 4px; font-variant-numeric: tabular-nums; }
.page-channeldetail .vstats .d { font-size: 11.5px; color: var(--green-2); margin-top: 2px; font-weight: 500; display: inline-flex; align-items: center; gap: 3px; }
.page-channeldetail .vstats .d::before { content: "↑"; font-size: 10px; }
.page-channeldetail .ci-head { display: flex; align-items: center; gap: 14px; padding: 8px 0 14px; }
.page-channeldetail .ci-av {
    width: 64px; height: 64px;
    border-radius: 50%;
    color: white; font-weight: 700; font-size: 18px;
    display: grid; place-items: center;
    letter-spacing: .04em;
    background: linear-gradient(135deg,#ec4899,#db2777);
    border: 2px solid #f97316;
  }
.page-channeldetail .ci-name {
    display: flex; align-items: center; gap: 8px;
    font-size: 18px; font-weight: 700;
    letter-spacing: -.005em;
  }
.page-channeldetail .ci-name .verified { width: 16px; height: 16px; }
.page-channeldetail .ci-name .verified svg { width: 16px; height: 16px; }
.page-channeldetail .ci-handle { font-size: 13px; color: var(--text-3); margin-top: 2px; }
.page-channeldetail .ci-subs { font-size: 12px; color: var(--text-3); margin-top: 6px; }
.page-channeldetail .ci-desc {
    font-size: 13px;
    color: var(--text-2);
    line-height: 1.55;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--border);
  }
.page-channeldetail .ci-fields { display: flex; flex-direction: column; }
.page-channeldetail .ci-row {
    display: flex; justify-content: space-between; align-items: center;
    padding: 10px 0;
    border-bottom: 1px solid var(--border);
    font-size: 12.5px;
  }
.page-channeldetail .ci-row:last-child { border-bottom: none; }
.page-channeldetail .ci-row .k { color: var(--text-3); }
.page-channeldetail .ci-row .v { color: var(--text); display: inline-flex; align-items: center; gap: 6px; }
.page-channeldetail .ci-row .v .copy { color: var(--text-3); cursor: pointer; }
.page-channeldetail .ci-row .v.code { font-family: 'JetBrains Mono', monospace; }
.page-channeldetail .ci-row .v .dot {
    width: 7px; height: 7px; border-radius: 50%;
    background: var(--green); box-shadow: 0 0 6px rgba(34,197,94,.6);
  }
.page-channeldetail .ci-row .v .more {
    background: var(--panel-2);
    border: 1px solid var(--border-2);
    color: var(--text-3);
    border-radius: 6px;
    padding: 1px 6px;
    font-size: 11px;
  }
.page-channeldetail .flag-us {
    width: 16px; height: 11px;
    background:
      linear-gradient(to bottom,
        #b22234 0, #b22234 8%, white 8%, white 16%, #b22234 16%, #b22234 24%,
        white 24%, white 32%, #b22234 32%, #b22234 40%,
        white 40%, white 48%, #b22234 48%, #b22234 56%,
        white 56%, white 64%, #b22234 64%, #b22234 72%,
        white 72%, white 80%, #b22234 80%, #b22234 88%,
        white 88%, white 100%);
    border-radius: 1px;
    position: relative;
    overflow: hidden;
  }
.page-channeldetail .flag-us::before {
    content: "";
    position: absolute; left: 0; top: 0;
    width: 7px; height: 5.5px;
    background: #3c3b6e;
  }
.page-channeldetail .edit-btn {
    background: var(--panel-2);
    border: 1px solid var(--border-2);
    color: var(--text-2);
    border-radius: 8px;
    padding: 5px 10px;
    font-size: 12.5px;
    cursor: pointer;
    display: inline-flex; align-items: center; gap: 6px;
    font-family: inherit;
  }
.page-channeldetail .edit-btn svg { width: 12px; height: 12px; }
.page-channeldetail .bot-grid {
    display: grid;
    grid-template-columns: 1fr 488px;
    gap: 14px;
    align-items: start;
  }
.page-channeldetail .rv-table { display: flex; flex-direction: column; }
.page-channeldetail .rv-th {
    display: grid;
    grid-template-columns: minmax(220px, 1.5fr) 120px 90px 80px 90px 100px 90px;
    gap: 14px;
    padding: 0 8px 12px;
    border-bottom: 1px solid var(--border);
    font-size: 11.5px;
    color: var(--text-3);
    font-weight: 500;
  }
.page-channeldetail .rv-row {
    display: grid;
    grid-template-columns: minmax(220px, 1.5fr) 120px 90px 80px 90px 100px 90px;
    gap: 14px;
    padding: 14px 8px;
    align-items: center;
    border-bottom: 1px solid var(--border);
  }
.page-channeldetail .rv-row:last-child { border-bottom: none; }
.page-channeldetail .rv-vid { display: flex; align-items: center; gap: 12px; min-width: 0; }
.page-channeldetail .rv-thumb {
    width: 64px; height: 40px;
    border-radius: 6px;
    background: linear-gradient(135deg, #075985, #0c4a6e);
    position: relative;
    overflow: hidden;
    flex-shrink: 0;
  }
.page-channeldetail .rv-thumb.t1 { background: linear-gradient(135deg, #1e40af, #1e3a8a); }
.page-channeldetail .rv-thumb.t2 { background: linear-gradient(135deg, #134e4a, #042f2e); }
.page-channeldetail .rv-thumb.t3 { background: linear-gradient(135deg, #b45309, #78350f); }
.page-channeldetail .rv-thumb.t4 { background: linear-gradient(135deg, #9f1239, #500724); }
.page-channeldetail .rv-thumb.t5 { background: linear-gradient(135deg, #b45309, #92400e); }
.page-channeldetail .rv-thumb .dur {
    position: absolute; bottom: 3px; right: 3px;
    background: rgba(0,0,0,.7);
    color: white;
    font-size: 9.5px; font-weight: 500;
    padding: 1px 4px;
    border-radius: 3px;
    font-variant-numeric: tabular-nums;
  }
.page-channeldetail .rv-vid .t { font-size: 13.5px; font-weight: 500; line-height: 1.3; }
.page-channeldetail .pub-col .d { font-size: 13px; }
.page-channeldetail .pub-col .a { font-size: 11.5px; color: var(--text-3); margin-top: 2px; }
.page-channeldetail .m-col .v { font-size: 13px; font-weight: 600; font-variant-numeric: tabular-nums; }
.page-channeldetail .m-col .d { font-size: 11.5px; color: var(--green-2); margin-top: 2px; font-weight: 500; }
.page-channeldetail .m-col .d::before { content: "↑ "; font-size: 10px; }
.page-channeldetail .status-pill-pub {
    display: inline-flex;
    background: rgba(34,197,94,.12);
    border: 1px solid rgba(34,197,94,.25);
    color: var(--green-2);
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 11.5px; font-weight: 600;
  }
.page-channeldetail .rv-foot {
    margin-top: 14px;
    color: var(--brand-2);
    font-size: 13px;
    font-weight: 500;
  }
.page-channeldetail .po-row {
    display: grid;
    grid-template-columns: 44px 90px 1fr;
    gap: 14px;
    padding: 14px 0;
    border-bottom: 1px solid var(--border);
  }
.page-channeldetail .po-row:last-of-type { border-bottom: none; }
.page-channeldetail .po-ic {
    width: 44px; height: 44px;
    border-radius: 10px;
    display: grid; place-items: center;
  }
.page-channeldetail .po-ic svg { width: 20px; height: 20px; }
.page-channeldetail .po-count { font-size: 32px; font-weight: 700; letter-spacing: -.02em; line-height: 1; }
.page-channeldetail .po-label { font-size: 12px; color: var(--text-3); margin-top: 6px; }
.page-channeldetail .po-list { display: flex; flex-direction: column; gap: 6px; }
.page-channeldetail .po-item { display: flex; gap: 10px; font-size: 12.5px; align-items: baseline; }
.page-channeldetail .po-item .code { font-family: 'JetBrains Mono', monospace; color: var(--text-2); min-width: 56px; }
.page-channeldetail .po-item .ttl { color: var(--text); }
.page-channeldetail .po-progress {
    display: flex; align-items: center; gap: 10px;
    margin-top: 2px;
    grid-column: 1 / -1;
  }
.page-channeldetail .po-progress .l { font-size: 11.5px; color: var(--text-3); min-width: 110px; }
.page-channeldetail .po-progress .bar {
    flex: 1;
    height: 4px;
    background: var(--border-2);
    border-radius: 2px;
    overflow: hidden;
  }
.page-channeldetail .po-progress .bar .f {
    height: 100%; background: var(--brand);
    border-radius: 2px;
  }
.page-channeldetail .po-progress .pct { font-size: 11.5px; color: var(--brand-2); font-weight: 600; font-variant-numeric: tabular-nums; }
.page-channeldetail .po-foot {
    margin-top: 14px;
    color: var(--text-3);
    font-size: 12.5px;
  }

/* ===== page: devicedetail ===== */
.page-devicedetail .nav a {
    display: flex; align-items: center; gap: 12px;
    padding: 10px 12px; border-radius: 10px;
    color: var(--text-2); text-decoration: none;
    font-size: 14px; font-weight: 500;
  }
.page-devicedetail .nav .pill {
    margin-left: auto;
    min-width: 20px; height: 18px; padding: 0 6px;
    border-radius: 9px;
    background: var(--red); color: white;
    font-size: 11px; font-weight: 700;
    display: grid; place-items: center;
  }
.page-devicedetail main {
    padding: 22px 30px 30px;
    display: flex; flex-direction: column; gap: 18px;
    background: var(--bg);
  }
.page-devicedetail .topbar {
    display: flex; align-items: center; justify-content: space-between;
    gap: 24px;
  }
.page-devicedetail .back-link {
    display: inline-flex; align-items: center; gap: 8px;
    color: var(--text-2);
    background: none; border: none; cursor: pointer;
    font-size: 14px; font-family: inherit;
    text-decoration: none;
    font-weight: 500;
  }
.page-devicedetail .back-link svg { width: 14px; height: 14px; }
.page-devicedetail .back-link:hover { color: var(--text); }
.page-devicedetail .top-meta {
    display: flex; align-items: center; gap: 18px;
  }
.page-devicedetail .clock {
    color: var(--text-3);
    font-size: 13px;
    display: flex; align-items: center; gap: 14px;
  }
.page-devicedetail .hero {
    display: flex; align-items: flex-start; justify-content: space-between;
    gap: 16px;
  }
.page-devicedetail .hero h1 {
    margin: 0;
    font-size: 36px; font-weight: 700; letter-spacing: -.02em;
    display: inline-flex; align-items: center; gap: 14px;
  }
.page-devicedetail .hero h1 .status-inline {
    display: inline-flex; align-items: center; gap: 8px;
    font-size: 14px;
    color: var(--text);
    font-weight: 500;
    margin-left: 4px;
  }
.page-devicedetail .hero h1 .status-inline .dot {
    width: 8px; height: 8px; border-radius: 50%;
    background: var(--green); box-shadow: 0 0 10px rgba(34,197,94,.6);
  }
.page-devicedetail .hero-id {
    display: inline-flex; align-items: center; gap: 8px;
    margin-top: 8px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 13px;
    color: var(--text-3);
  }
.page-devicedetail .hero-id svg { width: 13px; height: 13px; cursor: pointer; }
.page-devicedetail .hero-meta {
    display: flex; align-items: center; gap: 10px;
    margin-top: 10px;
    font-size: 13px;
    color: var(--text-3);
  }
.page-devicedetail .hero-meta .sep { color: var(--text-4); }
.page-devicedetail .actions-btn {
    display: inline-flex; align-items: center; gap: 8px;
    background: var(--panel);
    border: 1px solid rgba(59,130,246,.6);
    color: var(--brand-2);
    padding: 10px 16px;
    border-radius: 10px;
    font-size: 13.5px; font-weight: 600;
    cursor: pointer;
    font-family: inherit;
  }
.page-devicedetail .actions-btn svg { width: 14px; height: 14px; }
.page-devicedetail .tabs {
    display: flex; gap: 30px;
    border-bottom: 1px solid var(--border);
    margin: 0 -4px;
    padding: 0 4px;
  }
.page-devicedetail .tabs a {
    color: var(--text-3);
    text-decoration: none;
    font-size: 14.5px;
    font-weight: 500;
    padding: 12px 0 14px;
    position: relative;
  }
.page-devicedetail .tabs a:hover { color: var(--text-2); }
.page-devicedetail .tabs a.active {
    color: var(--brand-2);
    font-weight: 600;
  }
.page-devicedetail .tabs a.active::after {
    content: "";
    position: absolute; bottom: -1px; left: 0; right: 0;
    height: 2px;
    background: var(--brand);
    border-radius: 2px;
  }
.page-devicedetail .panel {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 18px 22px;
    display: flex; flex-direction: column;
  }
.page-devicedetail .link-btn svg { width: 11px; height: 11px; }
.page-devicedetail .out-btn {
    background: var(--panel-2);
    border: 1px solid var(--border-2);
    color: var(--text);
    border-radius: 10px;
    padding: 8px 14px;
    font-size: 13px;
    cursor: pointer;
    display: inline-flex; align-items: center; gap: 8px;
    font-family: inherit;
    font-weight: 500;
  }
.page-devicedetail .out-btn:hover { background: var(--panel-hover); }
.page-devicedetail .out-btn svg { width: 12px; height: 12px; }
.page-devicedetail .mid-grid {
    display: grid;
    grid-template-columns: 1fr 1.3fr;
    gap: 14px;
  }
.page-devicedetail .cap-head {
    display: grid;
    grid-template-columns: 44px 1fr;
    gap: 12px;
  }
.page-devicedetail .cap-icon {
    width: 44px; height: 44px;
    border-radius: 10px;
    background: rgba(168,85,247,.14);
    color: #c084fc;
    display: grid; place-items: center;
  }
.page-devicedetail .cap-icon svg { width: 22px; height: 22px; }
.page-devicedetail .cap-label {
    font-size: 11px;
    color: #c084fc;
    text-transform: uppercase;
    letter-spacing: .12em;
    font-weight: 700;
  }
.page-devicedetail .cap-title {
    font-size: 19px;
    font-weight: 700;
    margin-top: 4px;
    letter-spacing: -.01em;
  }
.page-devicedetail .cap-sub {
    font-size: 13px;
    color: var(--text-3);
    margin-top: 2px;
  }
.page-devicedetail .cap-progress-row {
    display: flex; align-items: center; justify-content: space-between;
    margin-top: 18px;
  }
.page-devicedetail .cap-progress-row .lbl {
    font-size: 13.5px;
    color: var(--text-2);
  }
.page-devicedetail .cap-progress-row .pct {
    font-size: 22px; font-weight: 700;
    letter-spacing: -.01em;
  }
.page-devicedetail .progress-bar {
    margin-top: 10px;
    height: 6px;
    background: var(--border-2);
    border-radius: 3px;
    overflow: hidden;
    position: relative;
  }
.page-devicedetail .progress-bar .fill {
    height: 100%;
    background: linear-gradient(90deg, #3b82f6, #60a5fa);
    border-radius: 3px;
    width: 62%;
    position: relative;
  }
.page-devicedetail .progress-bar .fill::after {
    content: "";
    position: absolute;
    right: -4px; top: 50%; transform: translateY(-50%);
    width: 12px; height: 12px;
    border-radius: 50%;
    background: white;
    box-shadow: 0 0 0 3px rgba(59,130,246,.3);
  }
.page-devicedetail .pstats {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 10px;
    margin-top: 18px;
  }
.page-devicedetail .pstat .l {
    font-size: 11.5px;
    color: var(--text-3);
  }
.page-devicedetail .pstat .v {
    font-size: 15px; font-weight: 700;
    margin-top: 4px;
    font-variant-numeric: tabular-nums;
    letter-spacing: -.01em;
  }
.page-devicedetail .log-line {
    margin-top: 16px;
    padding: 10px 14px;
    background: var(--panel-2);
    border: 1px solid var(--border-2);
    border-radius: 10px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    color: var(--text-2);
    display: flex; align-items: center; justify-content: space-between;
    gap: 14px;
  }
.page-devicedetail .log-line .ts { color: var(--text-3); }
.page-devicedetail .ch-row {
    display: grid;
    grid-template-columns: 44px minmax(170px,1.2fr) repeat(4, minmax(72px, 1fr)) 70px;
    gap: 16px;
    align-items: center;
    padding: 12px 0;
  }
.page-devicedetail .ch-row + .ch-row { border-top: 1px solid var(--border); }
.page-devicedetail .ch-av {
    width: 40px; height: 40px;
    border-radius: 50%;
    color: white; font-weight: 700; font-size: 12px;
    display: grid; place-items: center;
    letter-spacing: .04em;
  }
.page-devicedetail .ch-av.lu { background: linear-gradient(135deg,#8b5cf6,#6366f1); }
.page-devicedetail .ch-av.pl { background: linear-gradient(135deg,#ec4899,#db2777); }
.page-devicedetail .ch-av.tba { background: linear-gradient(135deg,#f59e0b,#d97706); }
.page-devicedetail .ch-name { font-size: 14px; font-weight: 600; }
.page-devicedetail .ch-handle { font-size: 12px; color: var(--text-3); margin-top: 2px; }
.page-devicedetail .ch-stat .n { font-size: 14px; font-weight: 600; font-variant-numeric: tabular-nums; }
.page-devicedetail .ch-stat .l { font-size: 11px; color: var(--text-3); margin-top: 2px; }
.page-devicedetail .ch-spark svg { width: 70px; height: 28px; display: block; }
.page-devicedetail .bot-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1.05fr;
    gap: 14px;
    align-items: start;
  }
.page-devicedetail .qrow {
    display: grid;
    grid-template-columns: 18px 70px 1fr auto 60px;
    gap: 12px;
    align-items: center;
    padding: 11px 0;
    border-top: 1px solid var(--border);
  }
.page-devicedetail .qrow:first-of-type { border-top: none; padding-top: 8px; }
.page-devicedetail .qrow .qi { color: var(--text-3); font-size: 12.5px; font-variant-numeric: tabular-nums; }
.page-devicedetail .qrow .qid {
    font-family: 'JetBrains Mono', monospace;
    font-size: 12.5px;
    color: var(--text);
  }
.page-devicedetail .qrow .qt {
    font-size: 13px; color: var(--text-2);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
.page-devicedetail .qbadge {
    background: rgba(59,130,246,.12);
    border: 1px solid rgba(59,130,246,.25);
    color: var(--brand-2);
    border-radius: 999px;
    padding: 3px 12px;
    font-size: 11.5px;
    font-weight: 500;
  }
.page-devicedetail .qprice {
    text-align: right;
    font-size: 13px;
    color: var(--green-2);
    font-weight: 600;
    font-variant-numeric: tabular-nums;
  }
.page-devicedetail .q-more {
    margin-top: 14px;
    color: var(--brand-2);
    font-size: 13px;
    font-weight: 500;
  }
.page-devicedetail .crow {
    display: grid;
    grid-template-columns: 22px 1fr auto;
    gap: 12px;
    align-items: flex-start;
    padding: 11px 0;
    border-top: 1px solid var(--border);
  }
.page-devicedetail .crow:first-of-type { border-top: none; padding-top: 8px; }
.page-devicedetail .crow .ic { color: var(--green-2); display: grid; place-items: center; margin-top: 2px; }
.page-devicedetail .crow .ic svg { width: 18px; height: 18px; }
.page-devicedetail .crow .nm { font-size: 13.5px; font-weight: 600; }
.page-devicedetail .crow .sb { font-size: 11.5px; color: var(--text-3); margin-top: 2px; }
.page-devicedetail .crow .tm { font-size: 12px; color: var(--text-3); font-variant-numeric: tabular-nums; }
.page-devicedetail .c-foot {
    margin-top: 14px;
    color: var(--brand-2);
    font-size: 13px;
    font-weight: 500;
  }
.page-devicedetail .sh-row {
    display: grid;
    grid-template-columns: 22px 1fr auto auto;
    align-items: center;
    gap: 14px;
    padding: 11px 0;
    border-top: 1px solid var(--border);
  }
.page-devicedetail .sh-row:first-of-type { border-top: none; padding-top: 8px; }
.page-devicedetail .sh-row .val { font-size: 12.5px; color: var(--text-2); display: flex; gap: 10px; align-items: center; font-variant-numeric: tabular-nums; }
.page-devicedetail .sh-row .ok-icon {
    width: 18px; height: 18px;
    color: var(--green-2);
    display: grid; place-items: center;
  }
.page-devicedetail .sh-mini {
    width: 50px; height: 4px;
    background: var(--border-2);
    border-radius: 2px;
    position: relative;
    overflow: hidden;
  }
.page-devicedetail .sh-mini .f { position: absolute; left: 0; top: 0; bottom: 0; background: var(--green-2); border-radius: 2px; }
.page-devicedetail .sh-foot {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid var(--border);
    display: flex; align-items: center; gap: 10px;
    color: var(--text);
    font-size: 13px;
    font-weight: 500;
  }
.page-devicedetail .sh-foot svg { width: 18px; height: 18px; color: var(--green-2); }
.page-devicedetail .events-strip {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 14px;
    margin-top: 8px;
  }
.page-devicedetail .ev-card {
    background: var(--panel-2);
    border: 1px solid var(--border-2);
    border-radius: 12px;
    padding: 14px 16px;
    display: flex; flex-direction: column; gap: 6px;
  }
.page-devicedetail .ev-card .ic-row {
    display: flex; align-items: center; gap: 10px;
    margin-bottom: 4px;
  }
.page-devicedetail .ev-card .ic-sq {
    width: 32px; height: 32px; border-radius: 8px;
    display: grid; place-items: center;
    flex-shrink: 0;
  }
.page-devicedetail .ev-card .ic-sq svg { width: 17px; height: 17px; }
.page-devicedetail .ev-card .et { font-size: 13px; font-weight: 600; line-height: 1.25; }
.page-devicedetail .ev-card .es { font-size: 12px; color: var(--text-2); font-family: 'JetBrains Mono', monospace; }
.page-devicedetail .ev-card .esub { font-size: 12px; color: var(--text-3); line-height: 1.3; }
.page-devicedetail .ev-card .etm { font-size: 11.5px; color: var(--text-3); margin-top: auto; padding-top: 6px; }

/* ===== page: tasks ===== */
.page-tasks .nav a {
    display: flex; align-items: center; gap: 12px;
    padding: 10px 12px; border-radius: 10px;
    color: var(--text-2); text-decoration: none;
    font-size: 14px; font-weight: 500;
  }
.page-tasks .nav .pill {
    margin-left: auto;
    min-width: 20px; height: 18px; padding: 0 6px;
    border-radius: 9px;
    background: var(--red); color: white;
    font-size: 11px; font-weight: 700;
    display: grid; place-items: center;
  }
.page-tasks main {
    padding: 22px 24px 24px;
    display: flex; flex-direction: column; gap: 14px;
    background: var(--bg);
  }
.page-tasks .page-head {
    display: flex; align-items: center; justify-content: space-between;
    gap: 16px;
  }
.page-tasks .head-right { display: flex; align-items: center; gap: 12px; }
.page-tasks .btn-line {
    display: inline-flex; align-items: center; gap: 8px;
    background: var(--panel);
    border: 1px solid var(--border);
    color: var(--text);
    padding: 9px 14px;
    border-radius: 10px;
    font-size: 13.5px;
    font-weight: 500;
    cursor: pointer;
    font-family: inherit;
  }
.page-tasks .btn-line svg { width: 13px; height: 13px; color: var(--text-3); }
.page-tasks .btn-pri {
    display: inline-flex; align-items: center; gap: 8px;
    background: linear-gradient(135deg, #6366f1, #8b5cf6);
    border: none;
    color: white;
    padding: 9px 16px;
    border-radius: 10px;
    font-size: 13.5px;
    font-weight: 600;
    cursor: pointer;
    font-family: inherit;
    box-shadow: 0 4px 14px rgba(99,102,241,.35);
  }
.page-tasks .btn-pri svg { width: 14px; height: 14px; }
.page-tasks .toolbar {
    display: grid;
    grid-template-columns: 220px 1fr auto auto;
    gap: 14px;
    align-items: center;
  }
.page-tasks .select-pill {
    background: var(--panel);
    border: 1px solid var(--border);
    color: var(--text);
    border-radius: 10px;
    padding: 9px 12px;
    font-size: 13px;
    cursor: pointer;
    display: flex; align-items: center; gap: 10px;
    font-family: inherit;
  }
.page-tasks .select-pill svg { width: 13px; height: 13px; color: var(--text-3); }
.page-tasks .select-pill .badge-ic {
    width: 20px; height: 20px;
    border-radius: 5px;
    background: var(--panel-2);
    display: grid; place-items: center;
    color: var(--text-2);
  }
.page-tasks .select-pill .badge-ic svg { width: 12px; height: 12px; }
.page-tasks .vtabs {
    display: inline-flex; gap: 4px;
    justify-self: start;
  }
.page-tasks .vtabs a {
    color: var(--text-3);
    text-decoration: none;
    font-size: 14px; font-weight: 500;
    padding: 9px 16px;
    border-radius: 8px;
    position: relative;
  }
.page-tasks .vtabs a:hover { color: var(--text-2); }
.page-tasks .vtabs a.active {
    color: var(--brand-2);
    font-weight: 600;
  }
.page-tasks .vtabs a.active::after {
    content: "";
    position: absolute; bottom: 1px; left: 16px; right: 16px;
    height: 2px;
    background: var(--brand);
    border-radius: 2px;
  }
.page-tasks .week-nav { display: inline-flex; align-items: center; gap: 8px; }
.page-tasks .arrow-btn {
    width: 36px; height: 36px;
    border-radius: 9px;
    background: var(--panel);
    border: 1px solid var(--border);
    color: var(--text-2);
    cursor: pointer;
    display: grid; place-items: center;
  }
.page-tasks .arrow-btn svg { width: 13px; height: 13px; }
.page-tasks .week-label {
    background: var(--panel);
    border: 1px solid var(--border);
    color: var(--text);
    border-radius: 9px;
    padding: 8px 16px;
    font-size: 13.5px; font-weight: 500;
    min-width: 230px;
    text-align: center;
  }
.page-tasks .today-btn {
    background: var(--panel);
    border: 1px solid var(--border);
    color: var(--text);
    border-radius: 9px;
    padding: 8px 18px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    font-family: inherit;
  }
.page-tasks .main-grid {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 14px;
    align-items: start;
  }
.page-tasks .panel {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 16px 18px;
    display: flex; flex-direction: column;
  }
.page-tasks .panel-head h2 {
    margin: 0;
    font-size: 15.5px; font-weight: 600;
  }
.page-tasks .link-btn svg { width: 11px; height: 11px; }
.page-tasks .sched-head {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 14px;
  }
.page-tasks .sched-head .ttl { display: flex; align-items: baseline; gap: 12px; }
.page-tasks .sched-head h2 {
    margin: 0;
    font-size: 16px; font-weight: 600;
  }
.page-tasks .sched-head .when {
    font-size: 13px; color: var(--text-3);
  }
.page-tasks .bulk-btn {
    background: var(--panel-2);
    border: 1px solid var(--border-2);
    color: var(--text);
    border-radius: 9px;
    padding: 7px 14px;
    font-size: 12.5px;
    cursor: pointer;
    display: inline-flex; align-items: center; gap: 8px;
    font-family: inherit;
  }
.page-tasks .bulk-btn svg { width: 11px; height: 11px; color: var(--text-3); }
.page-tasks .grid-headers {
    display: grid;
    grid-template-columns: 200px repeat(7, 1fr);
    gap: 6px;
    padding: 8px 0 12px;
    border-bottom: 1px solid var(--border);
  }
.page-tasks .grid-headers .col-h {
    font-size: 11.5px;
    color: var(--text-3);
    font-weight: 500;
    text-align: center;
    padding: 0 4px;
  }
.page-tasks .grid-headers .col-h .day {
    font-size: 13px;
    color: var(--text);
    font-weight: 600;
    display: block;
  }
.page-tasks .grid-headers .col-h.row-label {
    text-align: left;
    padding-left: 4px;
    display: flex; align-items: center;
  }
.page-tasks .sched-row {
    display: grid;
    grid-template-columns: 200px repeat(7, 1fr);
    gap: 6px;
    padding: 10px 0;
    border-bottom: 1px solid var(--border);
  }
.page-tasks .sched-row:last-of-type { border-bottom: none; }
.page-tasks .device {
    display: grid;
    grid-template-columns: 56px 1fr;
    gap: 10px;
    align-items: center;
    padding: 4px 4px;
  }
.page-tasks .device .di {
    width: 56px; height: 40px;
    border-radius: 8px;
    background: linear-gradient(135deg,#1e293b,#0f172a);
    display: grid; place-items: center;
    color: var(--text-2);
    flex-shrink: 0;
  }
.page-tasks .device .di svg { width: 22px; height: 22px; }
.page-tasks .device .di.mbp { background: linear-gradient(135deg,#1e3a8a,#1e1b4b); }
.page-tasks .device .di.mbair { background: linear-gradient(135deg,#3730a3,#1e1b4b); }
.page-tasks .device .nm { font-size: 13.5px; font-weight: 600; }
.page-tasks .device .sub { font-size: 11.5px; color: var(--text-3); margin-top: 2px; }
.page-tasks .device .meta {
    display: flex; align-items: center; gap: 6px;
    margin-top: 4px;
  }
.page-tasks .device .meta .av {
    width: 18px; height: 18px;
    border-radius: 50%;
    background: linear-gradient(135deg,#6366f1,#4f46e5);
    color: white;
    display: grid; place-items: center;
    font-size: 8.5px; font-weight: 700; letter-spacing: .02em;
  }
.page-tasks .device .meta .dot {
    width: 6px; height: 6px; border-radius: 50%;
    background: var(--green);
    box-shadow: 0 0 6px rgba(34,197,94,.6);
  }
.page-tasks .cell {
    background: var(--panel-2);
    border: 1px dashed var(--border-2);
    border-radius: 8px;
    min-height: 78px;
    display: grid; place-items: center;
    color: var(--text-4);
    cursor: pointer;
  }
.page-tasks .cell:hover { color: var(--text-3); border-color: var(--border-2); }
.page-tasks .cell svg { width: 16px; height: 16px; }
.page-tasks .tcard {
    border-radius: 9px;
    padding: 9px 10px 8px;
    min-height: 78px;
    display: flex; flex-direction: column;
    cursor: pointer;
    border: 1px solid transparent;
  }
.page-tasks .tcard.completed { background: rgba(34,197,94,.10); border-color: rgba(34,197,94,.3); }
.page-tasks .tcard.scheduled { background: rgba(59,130,246,.10); border-color: rgba(59,130,246,.3); }
.page-tasks .tcard.pending { background: rgba(234,179,8,.10);  border-color: rgba(234,179,8,.35); }
.page-tasks .tcard .head {
    display: flex; align-items: center; gap: 6px;
    font-size: 12px;
    font-family: 'JetBrains Mono', monospace;
    color: var(--text);
    font-weight: 600;
  }
.page-tasks .tcard .head svg { width: 12px; height: 12px; flex-shrink: 0; }
.page-tasks .tcard.completed .head svg { color: var(--green-2); }
.page-tasks .tcard.scheduled .head svg { color: var(--brand-2); }
.page-tasks .tcard.pending .head svg { color: #facc15; }
.page-tasks .tcard .nm {
    font-size: 12px;
    color: var(--text-2);
    margin-top: 3px;
    font-weight: 500;
  }
.page-tasks .tcard .stat {
    margin-top: auto;
    display: inline-flex; align-items: center; gap: 5px;
    font-size: 11px; font-weight: 600;
    padding-top: 6px;
  }
.page-tasks .tcard .stat svg { width: 11px; height: 11px; }
.page-tasks .tcard.completed .stat { color: var(--green-2); }
.page-tasks .tcard.scheduled .stat { color: var(--brand-2); }
.page-tasks .tcard.pending .stat { color: #facc15; }
.page-tasks .nw-row {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr) 90px 28px;
    gap: 10px;
    align-items: center;
    padding: 14px 4px;
    border-bottom: 1px solid var(--border);
  }
.page-tasks .nw-row:first-of-type { border-top: 1px solid var(--border); margin-top: 6px; }
.page-tasks .nw-row:last-of-type { border-bottom: none; }
.page-tasks .nw-row .ttl {
    display: flex; align-items: center; gap: 8px;
    font-size: 13.5px; color: var(--text); font-weight: 500;
  }
.page-tasks .nw-row .ttl .ar {
    width: 14px; height: 14px;
    color: var(--text-3);
  }
.page-tasks .nw-row .ttl .ar svg { width: 14px; height: 14px; }
.page-tasks .nw-row .range { font-size: 12.5px; color: var(--text-3); font-variant-numeric: tabular-nums; }
.page-tasks .nw-dots {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 6px;
  }
.page-tasks .nw-dot {
    display: inline-flex; align-items: center; justify-content: center; gap: 5px;
    font-size: 12px; color: var(--text-2);
    font-variant-numeric: tabular-nums;
  }
.page-tasks .nw-dot .d {
    width: 7px; height: 7px; border-radius: 50%;
  }
.page-tasks .nw-tasks { font-size: 13px; color: var(--text); font-variant-numeric: tabular-nums; font-weight: 500; text-align: right; }
.page-tasks .nw-arrow { color: var(--text-3); display: grid; place-items: center; }
.page-tasks .nw-arrow svg { width: 14px; height: 14px; }
.page-tasks .load-more {
    text-align: center;
    padding: 16px 0 4px;
    color: var(--brand-2);
    font-size: 13.5px;
    font-weight: 500;
    cursor: pointer;
    display: flex; align-items: center; justify-content: center; gap: 8px;
  }
.page-tasks .load-more svg { width: 14px; height: 14px; }
.page-tasks .right-col { display: flex; flex-direction: column; gap: 12px; }
.page-tasks .to-wrap {
    display: grid;
    grid-template-columns: 130px 1fr;
    gap: 14px;
    align-items: center;
  }
.page-tasks .donut .total .n { font-size: 24px; font-weight: 700; letter-spacing: -.02em; }
.page-tasks .to-legend { display: flex; flex-direction: column; gap: 8px; }
.page-tasks .to-legend .lr {
    display: grid;
    grid-template-columns: 10px 1fr auto;
    gap: 10px;
    align-items: center;
    font-size: 12.5px;
  }
.page-tasks .to-legend .sw { width: 8px; height: 8px; border-radius: 50%; }
.page-tasks .to-legend .val { color: var(--text-2); font-variant-numeric: tabular-nums; font-weight: 500; }
.page-tasks .cal-head {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 14px;
  }
.page-tasks .cal-head h2 { margin: 0; font-size: 15.5px; font-weight: 600; }
.page-tasks .cal-arrows { display: inline-flex; gap: 4px; }
.page-tasks .cal-arrows button {
    width: 28px; height: 28px;
    border-radius: 7px;
    background: var(--panel-2);
    border: 1px solid var(--border-2);
    color: var(--text-2);
    cursor: pointer;
    display: grid; place-items: center;
  }
.page-tasks .cal-arrows button svg { width: 12px; height: 12px; }
.page-tasks .cal-month {
    font-size: 12px;
    color: var(--text-3);
    margin-bottom: 10px;
  }
.page-tasks .cal-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 2px;
  }
.page-tasks .cal-grid .dh {
    text-align: center;
    font-size: 11.5px;
    color: var(--text-3);
    font-weight: 500;
    padding: 6px 0;
  }
.page-tasks .cal-grid .d {
    text-align: center;
    font-size: 13px;
    color: var(--text);
    padding: 7px 0;
    border-radius: 50%;
    width: 32px; height: 32px;
    margin: 0 auto;
    display: grid; place-items: center;
    font-variant-numeric: tabular-nums;
    cursor: pointer;
  }
.page-tasks .cal-grid .d.muted { color: var(--text-4); }
.page-tasks .cal-grid .d.today {
    background: var(--indigo);
    color: white;
    font-weight: 600;
  }
.page-tasks .filters-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }
.page-tasks .select {
    background: var(--panel-2);
    border: 1px solid var(--border-2);
    color: var(--text);
    border-radius: 9px;
    padding: 9px 12px;
    font-size: 12.5px;
    cursor: pointer;
    display: flex; align-items: center; justify-content: space-between;
    font-family: inherit;
  }
.page-tasks .select svg { width: 12px; height: 12px; color: var(--text-3); }
.page-tasks .clear-btn {
    background: none; border: none;
    color: var(--brand-2);
    font-size: 12.5px;
    font-weight: 500;
    cursor: pointer;
    font-family: inherit;
  }
.page-tasks .un-row {
    display: grid;
    grid-template-columns: 28px 1fr auto auto;
    gap: 10px;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid var(--border);
  }
.page-tasks .un-row:last-of-type { border-bottom: none; }
.page-tasks .un-row .ic {
    width: 28px; height: 28px;
    border-radius: 7px;
    background: var(--panel-2);
    border: 1px solid var(--border-2);
    color: var(--text-2);
    display: grid; place-items: center;
  }
.page-tasks .un-row .ic svg { width: 14px; height: 14px; }
.page-tasks .un-row .code { font-family: 'JetBrains Mono', monospace; font-size: 12.5px; color: var(--text); font-weight: 500; }
.page-tasks .un-row .ch { font-size: 11.5px; color: var(--text-3); margin-top: 2px; }
.page-tasks .un-row .dt { font-size: 12px; color: var(--text-3); font-variant-numeric: tabular-nums; display: inline-flex; align-items: center; gap: 6px; }
.page-tasks .un-row .dt svg { width: 12px; height: 12px; }
.page-tasks .un-pill {
    display: inline-flex;
    padding: 3px 10px;
    border-radius: 6px;
    font-size: 11px; font-weight: 600;
  }
.page-tasks .un-pill.pending { background: rgba(234,179,8,.14); color: #facc15; border: 1px solid rgba(234,179,8,.3); }
.page-tasks .un-pill.scheduled { background: rgba(59,130,246,.14); color: var(--brand-2); border: 1px solid rgba(59,130,246,.3); }
.page-tasks .page-foot {
    margin-top: 6px;
    color: var(--text-4);
    font-size: 12px;
    text-align: right;
  }

/* ===== page: Calendar (no design file — built in the same language) ===== */
.page-calendar .cal-wrap{display:grid;grid-template-columns:1fr 300px;gap:18px}
@media(max-width:1100px){.page-calendar .cal-wrap{grid-template-columns:1fr}}
.page-calendar .calhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.page-calendar .cgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.page-calendar .cwd{color:var(--text-3);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:0 4px 6px}
.page-calendar .ccell{background:var(--bg-2);border:1px solid var(--border);border-radius:9px;min-height:84px;padding:7px}
.page-calendar .ccell.out{opacity:.4}
.page-calendar .cday{font-size:12px;color:var(--text-2);margin-bottom:5px}
.page-calendar .ccell.today .cday{background:var(--brand);color:#fff;border-radius:50%;width:22px;height:22px;display:flex;align-items:center;justify-content:center}
.page-calendar .cchip{font-size:10px;background:var(--panel-2);border:1px solid var(--border);border-radius:5px;padding:2px 5px;margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--brand-2);font-family:'JetBrains Mono',ui-monospace,monospace}
/* calendar upcoming rows (reuse the tasks un-row look) */
.page-calendar .un-row{display:flex;align-items:center;gap:10px;padding:11px 0;border-top:1px solid var(--border)}
.page-calendar .un-row:first-of-type{border-top:none}
.page-calendar .un-row .ic{width:30px;height:30px;flex:none;border-radius:8px;background:var(--panel-2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--text-3)}
.page-calendar .un-row .ic svg{width:15px;height:15px}
.page-calendar .un-row>div:nth-child(2){flex:1;min-width:0}
.page-calendar .un-row .code{font-size:13px;font-weight:600;font-family:'JetBrains Mono',monospace}
.page-calendar .un-row .ch{font-size:11px;color:var(--text-3)}
.page-calendar .un-row .dt{font-size:11px;color:var(--text-3)}

/* global primary button (used across rebuilt pages) */
.pri-btn{display:inline-flex;align-items:center;gap:8px;background:var(--brand,#3b82f6);
  color:#fff;border:none;border-radius:10px;padding:9px 16px;font-size:13.5px;font-weight:600;
  cursor:pointer;font-family:inherit;white-space:nowrap}
.pri-btn:hover{filter:brightness(1.08)}
.pri-btn svg{width:15px;height:15px}

/* ============================================================
   GLOBAL FIT + SCALE  (shrink proportionally, pin the sidebar)
   ============================================================ */
/* shrink the whole site proportionally */
body { zoom: 0.85; }

/* sidebar always visible — never scrolls away horizontally */
.app { display: block; }
.sidebar { position: fixed; left: 0; top: 0; width: 220px; height: 100vh;
           z-index: 50; overflow-y: auto; }
main { margin-left: 220px; max-width: calc(100% - 220px); }

/* let flexible grids shrink to fit instead of pushing the page wide */
.stats, .mid-grid, .bot-grid, .top-row, .main-grid, .grid-2, .grid-3, .cal-wrap,
.stats > *, .mid-grid > *, .bot-grid > *, .top-row > *, .main-grid > *,
.cal-wrap > *, .panel, .stat-card { min-width: 0; }

/* wide data tables scroll inside their card rather than overflowing the page */
.panel { overflow-x: auto; }
/* devices: disabled row dim */
.trow.disabled-row{opacity:.55}

/* ============================================================
   GLOBAL POLISH PASS (header consistency, donut centering)
   ============================================================ */
/* --- consistent top-right header across every page --- */
.head-right{display:flex;align-items:center;gap:16px}
.head-right .clock{white-space:nowrap;color:var(--text-3,#6b7585);font-size:12px;
  font-family:'JetBrains Mono',ui-monospace,Menlo,monospace}
.head-right .icon-btn{position:relative;width:38px;height:38px;border-radius:11px;
  display:flex;align-items:center;justify-content:center;background:var(--panel,#11161e);
  border:1px solid var(--border,#1f2630);color:var(--text-2,#a3acba);flex:none}
.head-right .icon-btn .badge{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;
  background:#ef4444;color:#fff;font-size:10px;font-weight:700;border-radius:9px;
  display:flex;align-items:center;justify-content:center;padding:0 4px;border:2px solid var(--bg,#0a0d12)}
.head-right .avatar{display:flex;align-items:center;gap:7px;text-decoration:none;
  background:transparent;border:none;padding:0}
.head-right .avatar .bubble{width:34px;height:34px;border-radius:50%;
  background:linear-gradient(135deg,#5b9eff,#bf5af2);color:#fff;display:flex;
  align-items:center;justify-content:center;font-size:12px;font-weight:700;letter-spacing:.02em}
.head-right .avatar::after{content:"";width:8px;height:8px;border-right:2px solid var(--text-3,#6b7585);
  border-bottom:2px solid var(--text-3,#6b7585);transform:rotate(45deg) translateY(-2px);margin-left:1px}

/* --- donut center text: always perfectly centered --- */
.donut{position:relative}
.donut .total{position:absolute!important;inset:0!important;display:flex!important;
  flex-direction:column;align-items:center!important;justify-content:center!important;
  text-align:center;gap:0;pointer-events:none}
.donut .total .n{line-height:1.05}
.donut .total .l{line-height:1.1}

/* real video thumbnails (object-fit so YouTube images fill the box) */
img.thumb, img.rv-thumb, img.v-thumb, img.vthumb-img{object-fit:cover;display:block}
.vthumb-img{width:100%;height:100%;border-radius:10px;object-fit:cover}

/* revenue top-videos as cards w/ thumbnails (overrides earlier 6-col rule) */
.page-revenue .v-th, .page-revenue .v-row{grid-template-columns:30px 2.2fr 1.2fr 110px 78px 64px 96px !important;align-items:center}
.page-revenue .v-vid{display:flex;align-items:center;gap:10px;min-width:0}
.page-revenue .v-vid img.v-thumb{width:64px;height:38px;border-radius:7px;flex:none}
.page-revenue .v-vid .t{font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.page-revenue .v-ch{display:flex;align-items:center;gap:7px;font-size:13px;min-width:0}
.page-revenue .v-ch .av{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;flex:none}
.page-revenue .v-pub .d{font-size:12px} .page-revenue .v-pub .a{font-size:11px;color:var(--text-3)}

/* projects: queued table — consistent columns + truncation (fix cramped text) */
.page-projects .q-th, .page-projects .q-row{grid-template-columns:28px 86px 1.7fr 1fr 1fr !important;gap:12px;align-items:center}
.page-projects .q-th{padding:0 0 8px;font-size:11px;color:var(--text-3);text-transform:uppercase;letter-spacing:.04em}
.page-projects .q-row{padding:9px 0;border-top:1px solid var(--border)}
.page-projects .q-row .code{font-family:'JetBrains Mono',monospace;font-size:12px}
.page-projects .q-row .ttl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.page-projects .q-row .ch,.page-projects .q-row .tool{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:var(--text-3)}

/* tasks: new-task form + delete + week-grid breathing room */
.page-tasks .nt-form{display:grid;gap:11px}
.page-tasks .nt-form label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--text-3,#6b7585)}
.page-tasks .nt-form .opt{color:var(--text-4,#4a525e);font-weight:400}
.page-tasks .nt-form select,.page-tasks .nt-form input{padding:9px 11px;border-radius:9px;
  background:var(--panel-2,#141a23);border:1px solid var(--border,#1f2630);color:var(--text,#e7ecf3);font-size:13px;font-family:inherit}
.page-tasks .nt-form .pri-btn{justify-content:center;margin-top:4px}
.page-tasks .un-row .task-del{background:transparent;border:none;color:var(--text-4,#4a525e);
  cursor:pointer;font-size:13px;padding:4px 6px;border-radius:6px;margin-left:6px}
.page-tasks .un-row .task-del:hover{background:rgba(239,68,68,.14);color:#f87171}
.page-tasks #newtask{scroll-margin-top:20px}
/* tighten empty week cells so rows aren't overly tall */
.page-tasks .sched-row .cell{min-height:0}

/* reports: recent exports */
.exp-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.exp-btn{background:var(--panel-2,#141a23);border:1px solid var(--border,#1f2630);
  color:var(--text,#e7ecf3);border-radius:9px;padding:8px 12px;font-size:12.5px;
  font-weight:600;text-decoration:none}
.exp-btn:hover{background:var(--panel-hover,#1a212c)}
.exp-row{display:flex;align-items:center;gap:11px;padding:10px 0;border-top:1px solid var(--border,#1f2630)}
.exp-row:first-of-type{border-top:none}
.exp-ic{width:34px;height:34px;border-radius:8px;background:rgba(34,197,94,.14);color:#4ade80;
  display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;flex:none}
.exp-body{flex:1;min-width:0}.exp-name{font-size:13px;font-weight:500}
.exp-dl{color:var(--text-2,#a3acba);text-decoration:none;font-size:16px;padding:4px 8px;border-radius:7px}
.exp-dl:hover{background:var(--panel-2,#141a23)}
/* channel detail production overview */
.page-channeldetail .po-stat{font-size:13px;color:var(--text-2,#a3acba);margin-bottom:10px}
.page-channeldetail .po-stat .po-n{font-size:22px;font-weight:700;margin-right:6px}

/* overview Reports & Sync — activity bars */
.today-n{font-size:30px;font-weight:700;line-height:1}
.act-bars{display:flex;align-items:flex-end;gap:4px;height:70px;margin-top:6px}
.act-bars span{flex:1;background:linear-gradient(180deg,#3b82f6,#3b82f655);border-radius:3px 3px 0 0;min-height:3px}
.act-axis{display:flex;justify-content:space-between;font-size:10px;color:var(--text-3,#6b7585);margin-top:5px}

/* channel detail — performance chart fills the card (no empty space) */
.page-channeldetail .cperf-legend{display:flex;gap:16px;font-size:12px;color:var(--text-2,#a3acba);margin:4px 0 10px}
.page-channeldetail .cperf-legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;vertical-align:middle}
.page-channeldetail .cperf-chart{margin-bottom:14px}
.page-channeldetail .cperf-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;
  border-top:1px solid var(--border,#1f2630);padding-top:14px}
.page-channeldetail .cperf-stats .l{font-size:11px;color:var(--text-3,#6b7585);text-transform:uppercase;letter-spacing:.04em}
.page-channeldetail .cperf-stats .v{font-size:17px;font-weight:600;margin-top:2px}

/* revenue by channel — donut + side legend */
.page-revenue .rbc-wrap{display:flex;align-items:center;gap:26px}
.page-revenue .rbc-donut{width:150px;height:150px;flex:none}
.page-revenue .rbc-donut svg{width:150px;height:150px}
.page-revenue .rbc-legend{flex:1;min-width:0;display:flex;flex-direction:column;gap:9px}
.page-revenue .rbc-row{display:grid;grid-template-columns:14px 1fr auto auto;gap:10px;align-items:center;font-size:13px}
.page-revenue .rbc-row .sw{width:10px;height:10px;border-radius:50%}
.page-revenue .rbc-row .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-2,#a3acba)}
.page-revenue .rbc-row .amt{font-weight:600}
.page-revenue .rbc-row .pc{color:var(--text-3,#6b7585);min-width:38px;text-align:right}

/* reports: views & revenue chart */
.page-reports .rep-legend{display:flex;gap:16px;font-size:12px;color:var(--text-2,#a3acba);margin:2px 0 8px}
.page-reports .rep-legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px}
.page-reports .rep-axis{display:flex;justify-content:space-between;font-size:10px;color:var(--text-3,#6b7585);margin-top:4px}
.exp-btn.primary{background:var(--brand,#3b82f6);border-color:transparent;color:#fff}

/* ===== Tasks redesign: create (top) + this week + upcoming ===== */
.page-tasks .create-wrap{margin-bottom:18px}
.page-tasks .create-card{padding:22px 24px}
.page-tasks .create-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:16px}
.page-tasks .create-head h2{font-size:17px}
.page-tasks .create-form{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap}
.page-tasks .create-form label{display:flex;flex-direction:column;gap:6px;flex:1;min-width:160px;
  font-size:12px;color:var(--text-3,#6b7585)}
.page-tasks .create-form select,.page-tasks .create-form input,.page-tasks .create-form textarea{padding:11px 12px;border-radius:10px;
  background:var(--panel-2,#141a23);border:1px solid var(--border,#1f2630);color:var(--text,#e7ecf3);
  font-size:13.5px;font-family:inherit}
.page-tasks .create-form select:focus,.page-tasks .create-form input:focus,.page-tasks .create-form textarea:focus{outline:none;border-color:var(--brand,#3b82f6)}
.page-tasks .create-form textarea{resize:vertical;min-height:46px}
.page-tasks .create-form .cf-wide{flex:1 1 100%;min-width:100%}
.page-tasks .create-form .cf-actions{flex:1 1 100%;display:flex;justify-content:flex-end}
.page-tasks .create-form .pri-btn{padding:11px 22px;white-space:nowrap}
/* upcoming table */
.page-tasks .up-th,.page-tasks .up-row{display:grid;
  grid-template-columns:110px 1.3fr 1.1fr 120px 96px minmax(230px,auto);gap:14px;align-items:center}
.page-tasks .up-th{font-size:11px;color:var(--text-3,#6b7585);text-transform:uppercase;
  letter-spacing:.04em;padding:0 0 10px;border-bottom:1px solid var(--border,#1f2630)}
.page-tasks .up-row{padding:12px 0;border-bottom:1px solid var(--border,#1f2630);font-size:13.5px}
.page-tasks .up-row .muted{color:var(--text-3,#6b7585)}
.page-tasks .up-code{font-family:'JetBrains Mono',monospace;font-weight:600;font-size:13px}
.page-tasks .cancel-btn{background:transparent;border:1px solid var(--border-2,#262d39);
  color:var(--text-2,#a3acba);border-radius:8px;padding:6px 14px;font-size:12.5px;font-weight:600;
  cursor:pointer;font-family:inherit}
.page-tasks .cancel-btn:hover{background:rgba(239,68,68,.12);border-color:rgba(239,68,68,.4);color:#f87171}

/* tasks top supporting widgets (calendar + overview) */
.page-tasks .tk-top-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}
@media(max-width:1100px){.page-tasks .tk-top-grid{grid-template-columns:1fr}}
.page-tasks .cal-grid .d.has{color:var(--brand-2,#60a5fa);font-weight:700}
.page-tasks .to-wrap{display:flex;align-items:center;gap:22px}
.page-tasks .to-wrap .donut{width:120px;height:120px;flex:none}
.page-tasks .to-wrap .donut svg{width:120px;height:120px}
.page-tasks .to-legend{flex:1;display:flex;flex-direction:column;gap:8px;font-size:13px;color:var(--text-2,#a3acba)}
.page-tasks .to-legend .lr{display:flex;align-items:center;gap:8px}
.page-tasks .to-legend .sw{width:10px;height:10px;border-radius:50%}
.page-tasks .to-legend .val{margin-left:auto;color:var(--text,#e7ecf3);font-weight:600}

/* ============================================================
   POLISH PASS 2 — sidebar height, equal-height cards, spacing
   ============================================================ */
/* sidebar: fill the viewport even with body zoom (top/bottom anchors) */
.sidebar{top:0;bottom:0;height:auto}

/* equal-height cards across grid rows (so columns line up neatly) */
.page-devicedetail .bot-grid,.page-projects .bot-grid,.page-revenue .mid-grid,
.page-channeldetail .mid-grid,.page-reports .bot-grid,.page-reports .top-row{align-items:stretch}
.page-devicedetail .bot-grid>.panel,.page-projects .bot-grid>.panel,
.page-revenue .mid-grid>.panel,.page-channeldetail .mid-grid>.panel,
.page-reports .bot-grid>.panel,.page-reports .top-row>.panel{height:100%}
/* projects board: all stage columns equal height */
.page-projects .board-grid{align-items:stretch}
.page-projects .board-grid>.column{height:100%;min-height:340px}
/* channel info: clamp long description so the row isn't oversized */
.page-channeldetail .ci-desc{display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
/* revenue over-time bars fill the card height */
.page-revenue .rev-bars{height:200px}
/* events: separate the two side panels + tidy the quick-stats donut */
.page-events .main-grid{align-items:start}
.page-events .main-grid>div:last-child{display:flex;flex-direction:column;gap:18px}
.page-events .qs-wrap{display:flex;align-items:center;gap:20px}
.page-events .qs-wrap .donut{width:112px;height:112px;flex:none}
.page-events .qs-wrap .donut svg{width:112px;height:112px}
.page-events .qs-legend{flex:1;min-width:0;display:flex;flex-direction:column;gap:7px;font-size:13px;color:var(--text-2,#a3acba)}
.page-events .qs-legend .lr{display:flex;align-items:center;gap:8px}
.page-events .qs-legend .sw{width:9px;height:9px;border-radius:50%}
.page-events .qs-legend .val{margin-left:auto;color:var(--text,#e7ecf3);font-weight:600}

/* reports: report builder (horizontal) */
.page-reports .report-builder{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap}
.page-reports .report-builder label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--text-3,#6b7585);flex:1;min-width:130px}
.page-reports .report-builder select,.page-reports .report-builder input{padding:10px 11px;border-radius:9px;background:var(--panel-2,#141a23);border:1px solid var(--border,#1f2630);color:var(--text,#e7ecf3);font-size:13px;font-family:inherit}
.page-reports .report-builder .pri-btn{white-space:nowrap}

/* ============================================================
   POLISH PASS 3 — header avatar, back button, horizontal KPIs
   ============================================================ */
/* avatar: clean perfect circle (was rendering as an oval) */
.head-right .avatar{align-items:center}
.head-right .avatar .bubble{flex:none;width:34px;height:34px;min-width:34px;
  aspect-ratio:1/1;border-radius:50%}

/* modern, centered back button in detail hero */
.back-btn{width:38px;height:38px;border-radius:11px;background:var(--panel,#11161e);
  border:1px solid var(--border,#1f2630);color:var(--text-2,#a3acba);display:flex;
  align-items:center;justify-content:center;text-decoration:none;font-size:17px;flex:none}
.back-btn:hover{background:var(--panel-hover,#1a212c);color:var(--text,#e7ecf3)}
.hero .hero-left{display:flex;align-items:center;gap:16px}

/* horizontal KPI card: big icon left, data right (fills the card) */
.hcard{display:flex;align-items:center;gap:16px;padding:20px 22px}
.hcard .hc-icon{width:52px;height:52px;border-radius:14px;flex:none;display:flex;
  align-items:center;justify-content:center}
.hcard .hc-icon svg{width:24px;height:24px}
.hcard .hc-body{min-width:0}
.hcard .hc-body .label{font-size:11px;color:var(--text-3,#6b7585);text-transform:uppercase;letter-spacing:.05em}
.hcard .hc-body .value{font-size:26px;font-weight:800;line-height:1.1;margin:3px 0 1px}
.hcard .hc-body .sub{font-size:12px;color:var(--text-3,#6b7585)}

/* hcard must be a ROW (override .stat-card's column direction) */
.stat-card.hcard{flex-direction:row!important;text-align:left}
.stat-card.hcard .hc-icon{margin:0}

/* ===== POLISH PASS 4 ===== */
/* header avatar: don't let the legacy .avatar{width:34px} squish it into an oval */
.head-right .avatar{width:auto!important;height:auto!important;flex:none}
.head-right .avatar .bubble{flex:none;width:34px!important;height:34px!important;
  min-width:34px;aspect-ratio:1/1;border-radius:50%}

/* channel detail: Latest Published Video stats in a 2×2 grid, a bit bigger,
   filling the card */
.page-channeldetail .latest-grid{align-items:start}
.page-channeldetail .vstats{display:grid!important;grid-template-columns:1fr 1fr;
  gap:18px 28px;align-content:center}
.page-channeldetail .vstats .l{font-size:12px;color:var(--text-3,#6b7585)}
.page-channeldetail .vstats .v{font-size:26px;font-weight:800;margin-top:3px}

/* ===== references editor + new channel ===== */
.ref-form{display:flex;flex-direction:column;gap:18px}
.ref-head{display:flex;align-items:baseline;gap:10px;margin-bottom:10px}
.ref-head h2{font-size:15px}
.ref-area{width:100%;min-height:240px;resize:vertical;padding:14px 16px;border-radius:10px;
  background:var(--bg-2,#0d1117);border:1px solid var(--border,#1f2630);color:var(--text,#e7ecf3);
  font-family:'JetBrains Mono',ui-monospace,Menlo,monospace;font-size:12.5px;line-height:1.6}
.ref-area:focus{outline:none;border-color:var(--brand,#3b82f6)}
.ref-select{padding:10px 12px;border-radius:9px;background:var(--panel-2,#141a23);
  border:1px solid var(--border,#1f2630);color:var(--text,#e7ecf3);font-size:13px;min-width:240px}
.ref-actions{display:flex;justify-content:flex-end;gap:10px;align-items:center}
.ref-actions .exp-btn{padding:10px 18px}
/* new-channel form on Channels page */
.newch-form{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}
.newch-form label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--text-3,#6b7585);flex:1;min-width:150px}
.newch-form input,.newch-form select{padding:10px 11px;border-radius:9px;background:var(--panel-2,#141a23);border:1px solid var(--border,#1f2630);color:var(--text,#e7ecf3);font-size:13px;font-family:inherit}
/* references chip on channel rows */
.ref-chip{font-size:10px;font-weight:700;padding:2px 7px;border-radius:6px}
.ref-chip.has{background:rgba(34,197,94,.14);color:#4ade80}
.ref-chip.no{background:rgba(148,163,184,.12);color:#94a3b8}

/* channels: bulk import by URL */
.page-channels .bulk-form{display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.page-channels .bulk-area{width:100%;min-height:96px;resize:vertical;padding:12px 14px;border-radius:10px;background:var(--panel-2,#141a23);border:1px solid var(--border,#1f2630);color:var(--text,#e7ecf3);font-family:'JetBrains Mono',ui-monospace,monospace;font-size:12.5px;line-height:1.6}
.page-channels .bulk-area:focus{outline:none;border-color:var(--brand,#3b82f6)}

/* channel settings form */
.page-channeldetail .set-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.page-channeldetail .set-grid label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--text-3,#6b7585)}
.page-channeldetail .set-grid input,.page-channeldetail .set-grid select{padding:10px 11px;border-radius:9px;background:var(--panel-2,#141a23);border:1px solid var(--border,#1f2630);color:var(--text,#e7ecf3);font-size:13px;font-family:inherit}
.page-channeldetail .set-grid input:focus,.page-channeldetail .set-grid select:focus{outline:none;border-color:var(--brand,#3b82f6)}
.page-channeldetail .set-check{flex-direction:row!important;align-items:center;gap:9px!important;font-size:13px!important;color:var(--text-2,#a3acba)!important;align-self:end;padding-bottom:8px}
.page-channeldetail .set-check input{width:auto}
.page-channeldetail .set-wide{grid-column:1/-1}
.page-channeldetail .adv-panel summary{list-style:none;margin-bottom:10px}
.page-channeldetail .adv-panel summary::-webkit-details-marker{display:none}

/* channel detail: in-page tab buttons, back-btn alignment, revenue table */
.page-channeldetail .tabs button{background:none;border:none;cursor:pointer;font-family:inherit;color:var(--text-3,#6b7585);font-size:14.5px;font-weight:500;padding:12px 0 14px;position:relative}
.page-channeldetail .tabs button:hover{color:var(--text-2,#a3acba)}
.page-channeldetail .tabs button.active{color:var(--brand-2,#60a5fa);font-weight:600}
.page-channeldetail .tabs button.active::after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--brand,#3b82f6);border-radius:2px}
/* align the back button with the title's first line (not the title+meta centre) */
.page-channeldetail .hero .hero-left{align-items:flex-start}
.page-channeldetail .hero .back-btn{margin-top:6px}
/* revenue tab: 5-column table */
.page-channeldetail .tabpane[data-pane="revenue"] .rv-th,.page-channeldetail .rev-row5{grid-template-columns:2.4fr 1fr 1fr .8fr 1.1fr!important}

/* references: upload .md button */
.ref-upload{margin-left:auto;font-size:12px;font-weight:600;color:var(--brand-2,#60a5fa);background:rgba(59,130,246,.12);border:1px solid rgba(59,130,246,.32);padding:6px 12px;border-radius:8px;cursor:pointer;white-space:nowrap}
.ref-upload:hover{background:rgba(59,130,246,.2)}

/* channel detail: YouTube-style video grid */
.page-channeldetail .vid-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:22px}
.page-channeldetail .vid-card{display:block;text-decoration:none;color:inherit;background:var(--panel-2,#141a23);border:1px solid var(--border,#1f2630);border-radius:14px;overflow:hidden;transition:border-color .15s,transform .15s}
.page-channeldetail .vid-card:hover{border-color:var(--brand,#3b82f6);transform:translateY(-3px)}
.page-channeldetail .vc-thumb{position:relative;aspect-ratio:16/9;background:#000;overflow:hidden}
.page-channeldetail .vc-thumb img,.page-channeldetail .vc-ph{width:100%;height:100%;object-fit:cover;display:block}
.page-channeldetail .vc-body{padding:13px 15px 16px}
.page-channeldetail .vc-title{font-size:14px;font-weight:600;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:38px}
.page-channeldetail .vc-meta{font-size:12.5px;color:var(--text-3,#6b7585);margin-top:8px}
.page-channeldetail .vc-stats{display:flex;align-items:center;gap:14px;font-size:12px;color:var(--text-3,#6b7585);margin-top:11px}
.page-channeldetail .vc-stats span{display:inline-flex;align-items:center;gap:4px}
.page-channeldetail .vc-stats svg{width:13px;height:13px}
.page-channeldetail .vc-rev{margin-left:auto;color:var(--green-2,#4ade80);font-weight:700}

/* overview: Latest Videos row + shared video card */
.lv-head{display:flex;align-items:center;justify-content:space-between;margin:6px 0 14px}
.lv-head h2{font-size:17px;font-weight:700}
.lv-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:26px}
.vid-card{display:block;text-decoration:none;color:inherit;background:var(--panel-2,#141a23);border:1px solid var(--border,#1f2630);border-radius:14px;overflow:hidden;transition:border-color .15s,transform .15s}
.vid-card:hover{border-color:var(--brand,#3b82f6);transform:translateY(-3px)}
.vc-thumb{position:relative;aspect-ratio:16/9;background:#000;overflow:hidden}
.vc-thumb img,.vc-ph{width:100%;height:100%;object-fit:cover;display:block}
.vc-body{padding:12px 14px 14px}
.vc-title{font-size:13.5px;font-weight:600;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:36px}
.vc-chan{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--text-3,#6b7585);margin-top:9px}
.vc-av{width:18px;height:18px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;flex:none}
.lv-grid .vc-meta{font-size:12px;color:var(--text-3,#6b7585);margin-top:8px;display:flex;align-items:center}
.lv-grid .vc-rev{margin-left:auto;color:var(--green-2,#4ade80);font-weight:700}

/* channel detail: Latest Published Video — vertical card (big thumb, title + stats below) */
.page-channeldetail .latest-card{display:block;text-decoration:none;color:inherit}
.page-channeldetail .lc-thumb{aspect-ratio:16/9;border-radius:12px;overflow:hidden;background:#000}
.page-channeldetail .lc-thumb img,.page-channeldetail .lc-thumb .vc-ph{width:100%;height:100%;object-fit:cover;display:block}
.page-channeldetail .lc-title{font-size:16px;font-weight:700;line-height:1.35;margin-top:14px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.page-channeldetail .lc-meta{font-size:12.5px;color:var(--text-3,#6b7585);margin-top:6px}
.page-channeldetail .lc-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:18px}
.page-channeldetail .lc-stats .l{font-size:11px;color:var(--text-3,#6b7585);text-transform:uppercase;letter-spacing:.03em}
.page-channeldetail .lc-stats .v{font-size:18px;font-weight:700;margin-top:3px}

/* overview: Latest Videos panel spacing */
.lv-panel{margin-bottom:18px}
.lv-panel .lv-grid{margin-bottom:0;margin-top:4px}

/* tighter horizontal KPI cards (less vertical empty space, symmetric) */
.hcard{padding:13px 20px}
.hcard .hc-icon{width:46px;height:46px}
.hcard .hc-body .value{font-size:23px;margin:2px 0 0}

/* overview KPI cards: horizontal (big icon left, text+data right) + sparkline footer */
.ov-stat{display:flex;flex-direction:column}
.ov-stat .ov-row{display:flex;align-items:center;gap:14px}
.ov-stat .ov-row .icon{width:48px;height:48px;flex:none;border-radius:13px;display:flex;align-items:center;justify-content:center}
.ov-stat .ov-row .icon svg{width:22px;height:22px}
.ov-stat .ov-body{min-width:0}
.ov-stat .ov-body .label{font-size:11px;color:var(--text-3,#6b7585);text-transform:uppercase;letter-spacing:.05em;font-weight:600}
.ov-stat .ov-body .value{font-size:24px;font-weight:800;line-height:1.1;margin:3px 0 1px;color:var(--text,#e7ecf3)}
.ov-stat .ov-body .sub{font-size:12px;color:var(--text-3,#6b7585)}
.ov-stat .spark{margin-top:12px}

/* === KPI card height fixes === */
/* horizontal hcards (channel detail + channels): fit content, no forced 140px */
.stat-card.hcard{min-height:0}
/* overview KPI: bigger icons + equal heights (constrain sparkline, pin to bottom) */
.ov-stat .ov-row .icon{width:54px;height:54px}
.ov-stat .ov-row .icon svg{width:26px;height:26px}
.ov-stat .spark{margin-top:auto;height:34px}
.ov-stat .spark svg{width:100%;height:34px;display:block}

/* videos page */
.page-videos .all-vid-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px}
.page-videos .vid-filter{display:flex;align-items:flex-end;gap:16px}
.page-videos .vid-filter label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--text-3,#6b7585)}
.page-videos .vid-filter select{padding:9px 12px;border-radius:9px;background:var(--panel-2,#141a23);border:1px solid var(--border,#1f2630);color:var(--text,#e7ecf3);font-size:13px;font-family:inherit;min-width:180px}
.all-vid-grid .vc-meta{font-size:12px;color:var(--text-3,#6b7585);margin-top:8px;display:flex;align-items:center}
.all-vid-grid .vc-rev{margin-left:auto;color:var(--green-2,#4ade80);font-weight:700}

/* overview KPI: top-align the icon so it stays aligned regardless of 1- vs 2-line labels */
.ov-stat .ov-row{align-items:flex-start}
.ov-stat .ov-body .label{min-height:2.2em;display:flex;align-items:flex-start}

/* ===== desktop resilience (different monitor sizes + split-screen windows) ===== */
/* never let card/panel content force horizontal overflow */
.stat-card,.panel{min-width:0}
/* in small / split-screen desktop windows, reflow dense grids gracefully */
@media (max-width:980px){
  .stats,.page-channeldetail .stats,.page-channels .stats,.page-events .stats,
  .page-tools .stats,.page-reports .stats,.page-revenue .stats,.page-projects .stats,
  .page-videos .stats{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .mid-grid,.bot-grid,.top-row{grid-template-columns:1fr!important}
}
@media (max-width:760px){
  .stats,.page-channeldetail .stats,.page-channels .stats,.page-events .stats,
  .page-tools .stats,.page-reports .stats,.page-revenue .stats,.page-projects .stats,
  .page-videos .stats{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* device licensing: pending status + management-mode chip */
.page-tools .stcell.pending{color:#fbbf24}
.page-tools .stcell.pending .dot{background:#f59e0b}
.badge-health.bh-pending{background:rgba(245,158,11,.14);color:#fbbf24}
.mode-chip{display:inline-block;font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:6px;margin-left:8px}
.mode-chip.full{background:rgba(34,197,94,.14);color:#4ade80}
.mode-chip.managed{background:rgba(96,165,250,.14);color:#60a5fa}

/* device control panel (device detail) */
.page-devicedetail .dc-row{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.page-devicedetail .dc-label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3,#6b7585);font-weight:600;margin-bottom:9px}
.page-devicedetail .seg-toggle{display:inline-flex;border:1px solid var(--border,#1f2630);border-radius:10px;overflow:hidden}
.page-devicedetail .seg{background:var(--panel-2,#141a23);color:var(--text-2,#a3acba);border:none;padding:9px 18px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit}
.page-devicedetail .seg.on{background:var(--brand,#3b82f6);color:#fff}
.page-devicedetail .seg:not(.on):hover{background:var(--panel-hover,#1a212c)}
.page-devicedetail .dc-status{font-size:15px;font-weight:600}
.page-devicedetail .dc-hint{font-size:12px;color:var(--text-3,#6b7585);margin-top:9px;line-height:1.5;max-width:420px}

/* device control: proxy input */
.page-devicedetail .dc-proxy{display:flex;gap:10px;align-items:center;max-width:640px}
.page-devicedetail .dc-proxy input{flex:1;padding:10px 12px;border-radius:9px;background:var(--panel-2,#141a23);border:1px solid var(--border,#1f2630);color:var(--text,#e7ecf3);font-size:13px;font-family:'JetBrains Mono',ui-monospace,monospace}
.page-devicedetail .dc-proxy input:focus{outline:none;border-color:var(--brand,#3b82f6)}
.page-devicedetail .dc-hint code{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:11.5px;background:var(--panel-2,#141a23);padding:1px 5px;border-radius:4px}

/* device control: magnific account fields */
.page-devicedetail .dc-magnific{display:flex;flex-direction:column;gap:12px;max-width:640px}
.page-devicedetail .dc-magnific label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--text-3,#6b7585)}
.page-devicedetail .dc-magnific input,.page-devicedetail .dc-magnific textarea{padding:10px 12px;border-radius:9px;background:var(--panel-2,#141a23);border:1px solid var(--border,#1f2630);color:var(--text,#e7ecf3);font-size:12.5px;font-family:'JetBrains Mono',ui-monospace,monospace;resize:vertical}
.page-devicedetail .dc-magnific input:focus,.page-devicedetail .dc-magnific textarea:focus{outline:none;border-color:var(--brand,#3b82f6)}
.page-devicedetail .dc-mag-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}

/* device control: test results + proxy-only switch + magnific actions */
.page-devicedetail .dc-proxy .exp-btn,.page-devicedetail .dc-mag-actions .exp-btn{padding:10px 16px}
.page-devicedetail .dc-mag-actions{display:flex;gap:10px;align-items:center}
.page-devicedetail .dc-result{font-size:12.5px;margin:8px 0 0;min-height:1em}
.page-devicedetail .dc-result.ok{color:#4ade80}
.page-devicedetail .dc-result.err{color:#f87171}
.page-devicedetail .dc-result.testing{color:var(--text-3,#6b7585)}
.page-devicedetail .dc-only{margin-top:12px}
.page-devicedetail .dc-switch{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--text-2,#a3acba);cursor:pointer}
.page-devicedetail .dc-switch input{width:auto}

/* tasks: start-on-device action */
.page-tasks .up-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end}
.page-tasks .start-btn{background:rgba(34,197,94,.14);color:#4ade80;border:1px solid rgba(34,197,94,.34);border-radius:8px;padding:6px 12px;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}
.page-tasks .start-btn:hover{background:rgba(34,197,94,.22)}

/* ===== Device control — premium redesign ===== */
.page-devicedetail .dc-card{padding:0}
.page-devicedetail .dc-card-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border,#1f2630)}
.page-devicedetail .dc-card-head h2{font-size:15px;font-weight:700;margin:0}
.page-devicedetail .dc-badge{font-size:12px;font-weight:600;padding:5px 12px;border-radius:999px}
.page-devicedetail .dc-badge.active{color:#4ade80;background:rgba(34,197,94,.12)}
.page-devicedetail .dc-badge.pending{color:#fbbf24;background:rgba(245,158,11,.12)}
.page-devicedetail .dc-badge.off{color:#f87171;background:rgba(239,68,68,.12)}
.page-devicedetail .dc-grid2{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:18px 20px}
.page-devicedetail .dc-block{min-width:0}
.page-devicedetail .dc-label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3,#6b7585);font-weight:600;margin-bottom:9px}
.page-devicedetail .dc-sublabel{font-size:11px;color:var(--text-3,#6b7585);margin-bottom:5px}
.page-devicedetail .dc-row-between{display:flex;align-items:center;justify-content:space-between;gap:14px}
.page-devicedetail .dc-hint{font-size:12px;color:var(--text-3,#6b7585);margin-top:9px;line-height:1.5}
.page-devicedetail .dc-hint code{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:11px;background:var(--panel-2,#141a23);padding:1px 5px;border-radius:4px}
.page-devicedetail .dc-mode{display:flex;align-items:center;gap:10px}
.page-devicedetail .seg-toggle{display:inline-flex;border:1px solid var(--border,#1f2630);border-radius:9px;overflow:hidden}
.page-devicedetail .seg{background:var(--panel-2,#141a23);color:var(--text-2,#a3acba);border:none;padding:8px 16px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit}
.page-devicedetail .seg.on{background:var(--brand,#3b82f6);color:#fff}
.page-devicedetail .seg:not(.on):hover{background:var(--panel-hover,#1a212c)}
.page-devicedetail .dc-save{background:transparent;color:var(--brand-2,#60a5fa);border:1px solid var(--border,#1f2630);border-radius:9px;padding:8px 14px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit}
.page-devicedetail .dc-save:enabled:hover{background:rgba(59,130,246,.12);border-color:rgba(59,130,246,.4)}
.page-devicedetail .dc-save:disabled{opacity:.4;cursor:default}
.page-devicedetail .dc-sep{height:1px;background:var(--border,#1f2630)}
.page-devicedetail .dc-section-title{font-size:13px;font-weight:700;padding:16px 20px 4px}
.page-devicedetail .dc-conn{padding:12px 20px 16px;border-top:1px solid var(--border-faint,rgba(255,255,255,.04))}
.page-devicedetail .dc-conn:first-of-type{border-top:none}
.page-devicedetail .dc-inline{display:flex;gap:10px;align-items:center}
.page-devicedetail .dc-conn-form{display:flex;flex-direction:column;gap:10px}
.page-devicedetail .dc-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.page-devicedetail .dc-field{flex:1;width:100%;padding:10px 12px;border-radius:9px;background:var(--bg-2,#0d1117);border:1px solid var(--border,#1f2630);color:var(--text,#e7ecf3);font-size:13px;font-family:inherit;resize:vertical}
.page-devicedetail .dc-field.mono{font-family:'JetBrains Mono',ui-monospace,Menlo,monospace;font-size:12px;line-height:1.55}
.page-devicedetail .dc-field:focus{outline:none;border-color:var(--brand,#3b82f6)}
.page-devicedetail .dc-actions{display:flex;align-items:center;gap:10px}
.page-devicedetail .dc-btn{background:var(--brand,#3b82f6);color:#fff;border:none;border-radius:9px;padding:9px 16px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;white-space:nowrap}
.page-devicedetail .dc-btn:hover{background:var(--brand-strong,#2563eb)}
.page-devicedetail .dc-btn.ghost{background:var(--panel-2,#141a23);color:var(--text-2,#a3acba);border:1px solid var(--border,#1f2630)}
.page-devicedetail .dc-btn.ghost:hover{background:var(--panel-hover,#1a212c);color:var(--text,#e7ecf3)}
.page-devicedetail .dc-btn.green{background:#22c55e}
.page-devicedetail .dc-btn.green:hover{background:#16a34a}
.page-devicedetail .dc-btn.red{background:#ef4444}
.page-devicedetail .dc-btn.red:hover{background:#dc2626}
.page-devicedetail .dc-result{font-size:12.5px}
.page-devicedetail .dc-result.ok{color:#4ade80}
.page-devicedetail .dc-result.err{color:#f87171}
.page-devicedetail .dc-result.testing{color:var(--text-3,#6b7585)}
.page-devicedetail .dc-switch{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--text-2,#a3acba);cursor:pointer}
.page-devicedetail .dc-switch input{width:auto}
@media (max-width:980px){.page-devicedetail .dc-grid2,.page-devicedetail .dc-two{grid-template-columns:1fr}}

/* device control: neon action buttons (Disable / Approve) */
.page-devicedetail .dc-btn.neon-red{
  background:qlineargradient(x1:0,y1:0,x2:0,y2:1,stop:0 #ff5b52,stop:1 #e23b32);
  background:linear-gradient(180deg,#ff5b52,#e23b32);
  box-shadow:0 0 0 1px rgba(239,68,68,.5) inset, 0 6px 18px -6px rgba(239,68,68,.7);
  color:#fff}
.page-devicedetail .dc-btn.neon-red:hover{
  background:linear-gradient(180deg,#ff6b62,#ef4444);
  box-shadow:0 0 0 1px rgba(239,68,68,.7) inset, 0 8px 22px -6px rgba(239,68,68,.85)}
.page-devicedetail .dc-btn.neon-green{
  background:linear-gradient(180deg,#34e07a,#16a34a);
  box-shadow:0 0 0 1px rgba(34,197,94,.5) inset, 0 6px 18px -6px rgba(34,197,94,.7);
  color:#062314}
.page-devicedetail .dc-btn.neon-green:hover{
  background:linear-gradient(180deg,#4aee8c,#22c55e);
  box-shadow:0 0 0 1px rgba(34,197,94,.7) inset, 0 8px 22px -6px rgba(34,197,94,.85)}

/* ===== Device control — connections refinement + live status ===== */
/* live pulsing status dot */
.page-devicedetail .dc-status-live{display:flex;align-items:center;gap:9px}
.page-devicedetail .live-text{font-size:15px;font-weight:600}
.page-devicedetail .live-dot{width:9px;height:9px;border-radius:50%;position:relative;flex:none}
.page-devicedetail .live-dot.green{background:#4ade80;box-shadow:0 0 0 0 rgba(74,222,128,.6);animation:dcpulse 2s infinite}
.page-devicedetail .live-dot.red{background:#f87171}
.page-devicedetail .live-dot.amber{background:#fbbf24;box-shadow:0 0 0 0 rgba(251,191,36,.6);animation:dcpulse 2s infinite}
@keyframes dcpulse{0%{box-shadow:0 0 0 0 rgba(74,222,128,.55)}70%{box-shadow:0 0 0 7px rgba(74,222,128,0)}100%{box-shadow:0 0 0 0 rgba(74,222,128,0)}}

/* connections — uniform blocks with generous spacing */
.page-devicedetail .dc-section{padding:16px 20px 20px}
.page-devicedetail .dc-section-title{font-size:14px;font-weight:700;padding:0}
.page-devicedetail .dc-section-sub{font-size:12px;color:var(--text-3,#6b7585);margin-top:3px}
.page-devicedetail .dc-conn{border:1px solid var(--border,#1f2630);background:var(--panel-2,#141a23);border-radius:12px;padding:16px;margin-top:16px}
.page-devicedetail .dc-conn-label{font-size:12px;font-weight:600;color:var(--text-2,#a3acba);margin-bottom:11px;display:flex;align-items:center;gap:9px}
.page-devicedetail .dc-tag{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--brand-2,#60a5fa);background:rgba(91,158,255,.12);padding:2px 8px;border-radius:6px}
.page-devicedetail .dc-conn-form{display:flex;flex-direction:column;gap:12px}
.page-devicedetail .dc-field{width:100%;padding:11px 13px;border-radius:10px;background:var(--bg-2,#0d1117);border:1px solid var(--border,#1f2630);color:var(--text,#e7ecf3);font-size:13px;font-family:inherit}
.page-devicedetail .dc-field.mono{font-family:'JetBrains Mono',ui-monospace,Menlo,monospace;font-size:12px;line-height:1.6}
.page-devicedetail .dc-field:focus{outline:none;border-color:var(--brand,#3b82f6)}
.page-devicedetail .dc-cookie{min-height:120px;resize:vertical}
.page-devicedetail .dc-cookie::-webkit-scrollbar{width:10px}
.page-devicedetail .dc-cookie::-webkit-scrollbar-track{background:transparent}
.page-devicedetail .dc-cookie::-webkit-scrollbar-thumb{background:var(--border-strong,rgba(255,255,255,.14));border-radius:6px;border:3px solid var(--bg-2,#0d1117)}
.page-devicedetail .dc-two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.page-devicedetail .dc-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.page-devicedetail .dc-onlyform{margin-top:14px}
@media (max-width:980px){.page-devicedetail .dc-two{grid-template-columns:1fr}}

/* upcoming tasks: actions column tidy (no overlap) */
.page-tasks .up-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:nowrap}
.page-tasks .up-actions .un-pill{white-space:nowrap}
.page-tasks .start-btn{white-space:nowrap}

/* device detail hero: title + status + mode chip on one tidy row */
.page-devicedetail .dev-title-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.page-devicedetail .dev-title-row h1{margin:0}
.page-devicedetail .dev-title-row .status-inline{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600}
.page-devicedetail .dev-title-row .status-inline .dot{width:8px;height:8px;border-radius:50%}
.page-devicedetail .dev-title-row .mode-chip{margin-left:0}

/* upcoming task status pills + remote stop */
.page-tasks .un-pill.running{background:rgba(59,130,246,.16);color:#60a5fa;border:1px solid rgba(59,130,246,.34)}
.page-tasks .un-pill.failed{background:rgba(239,68,68,.14);color:#f87171;border:1px solid rgba(239,68,68,.3)}
.page-tasks .un-pill.completed{background:rgba(34,197,94,.14);color:#4ade80;border:1px solid rgba(34,197,94,.3)}
.page-tasks .stop-btn{background:rgba(239,68,68,.14);color:#f87171;border:1px solid rgba(239,68,68,.34);border-radius:8px;padding:6px 12px;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}
.page-tasks .stop-btn:hover{background:rgba(239,68,68,.24)}

/* channel detail: profile photo + devices pane */
.page-channeldetail .ch-avatar{width:56px;height:56px;border-radius:50%;object-fit:cover;flex:none;border:1px solid var(--border,#1f2630)}
.page-channeldetail .ch-avatar.ph{display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700}
.page-channeldetail .dev-line{display:flex;align-items:center;gap:13px;padding:12px 4px;border-bottom:1px solid var(--border-faint,rgba(255,255,255,.04));text-decoration:none;color:inherit}
.page-channeldetail .dev-line:hover{background:var(--panel-2,#141a23)}
.page-channeldetail .dev-line-ic{width:38px;height:38px;border-radius:10px;background:var(--panel-2,#141a23);display:flex;align-items:center;justify-content:center;color:var(--text-2,#a3acba);flex:none}
.page-channeldetail .dev-line-ic svg{width:18px;height:18px}
.page-channeldetail .dev-line-body{flex:1;min-width:0}
.page-channeldetail .dev-line-name{font-size:14px;font-weight:600}
.page-channeldetail .dev-line-sub{font-size:12px;color:var(--text-3,#6b7585);margin-top:2px}
.page-channeldetail .dev-assign{display:flex;flex-direction:column;gap:11px}
.page-channeldetail .dev-check{display:flex;align-items:center;gap:9px;font-size:13.5px;color:var(--text-2,#a3acba);cursor:pointer}
.page-channeldetail .dev-check input{width:auto}

/* channel settings: voice picker — premium field + button */
.page-channeldetail .voice-pick{display:flex;align-items:stretch;gap:10px;width:100%}
.page-channeldetail .voice-current{flex:1;display:flex;align-items:center;gap:10px;
  padding:10px 14px;border-radius:10px;background:var(--bg-2,#0d1117);
  border:1px solid var(--border,#1f2630)}
.page-channeldetail .voice-ic{width:30px;height:30px;border-radius:8px;flex:none;
  display:flex;align-items:center;justify-content:center;
  background:rgba(191,90,242,.14);color:#bf5af2}
.page-channeldetail .voice-ic svg{width:16px;height:16px}
.page-channeldetail .voice-name{font-size:14px;color:var(--text,#e7ecf3);font-weight:600}
.page-channeldetail .voice-browse{flex:none;background:var(--brand,#3b82f6);color:#fff;
  border:none;border-radius:10px;padding:0 18px;font-size:13px;font-weight:600;
  cursor:pointer;font-family:inherit;white-space:nowrap}
.page-channeldetail .voice-browse:hover{background:var(--brand-strong,#2563eb)}
/* voice modal */
.vp-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:200;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(3px)}
.vp-modal{width:520px;max-width:92vw;max-height:80vh;background:var(--panel,#11161e);border:1px solid var(--border,#1f2630);border-radius:16px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 60px -20px rgba(0,0,0,.7)}
.vp-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--border,#1f2630)}
.vp-head h2{font-size:15px;font-weight:700;margin:0}
.vp-x{background:none;border:none;color:var(--text-3,#6b7585);font-size:16px;cursor:pointer}
.vp-x:hover{color:var(--text,#e7ecf3)}
.vp-search{margin:14px 18px 6px;padding:10px 12px;border-radius:9px;background:var(--bg-2,#0d1117);border:1px solid var(--border,#1f2630);color:var(--text,#e7ecf3);font-size:13px}
.vp-search:focus{outline:none;border-color:var(--brand,#3b82f6)}
.vp-list{overflow-y:auto;padding:6px 12px 14px}
.vp-row{display:flex;align-items:center;gap:12px;padding:9px 8px;border-radius:10px}
.vp-row:hover{background:var(--panel-2,#141a23)}
.vp-row.on{background:rgba(91,158,255,.12)}
.vp-play{width:34px;height:34px;border-radius:50%;flex:none;background:var(--panel-2,#141a23);border:1px solid var(--border,#1f2630);color:var(--text,#e7ecf3);cursor:pointer;font-size:12px}
.vp-play:hover{background:var(--brand,#3b82f6);color:#fff}
.vp-play:disabled{opacity:.4;cursor:default}
.vp-meta{flex:1;min-width:0}
.vp-name{font-size:14px;font-weight:600}
.vp-cat{font-size:11px;color:var(--text-3,#6b7585);text-transform:capitalize}
.vp-use{background:var(--panel-2,#141a23);border:1px solid var(--border,#1f2630);color:var(--brand-2,#60a5fa);border-radius:8px;padding:6px 14px;font-size:12.5px;font-weight:600;cursor:pointer;white-space:nowrap}
.vp-use:hover{background:rgba(91,158,255,.14)}

/* paused task pill (resumable) */
.page-tasks .un-pill.paused{background:rgba(255,159,10,.14);color:#f5a623;border:1px solid rgba(255,159,10,.34)}

/* ===== Device detail: tabs + profile avatar + backup connection blocks ===== */
.page-devicedetail .dev-avatar{width:54px;height:54px;border-radius:14px;flex:none;
  display:flex;align-items:center;justify-content:center;
  background:rgba(91,158,255,.12);color:var(--brand-2,#60a5fa);border:1px solid var(--border,#1f2630);margin-right:4px}
.page-devicedetail .dev-avatar svg{width:26px;height:26px}
.page-devicedetail .tabs{display:flex;gap:24px;border-bottom:1px solid var(--border,#1f2630);
  margin:6px 0 20px;padding:0}
.page-devicedetail .tabs button{background:none;border:none;cursor:pointer;
  color:var(--text-3,#6b7585);font-size:14px;font-weight:600;padding:0 0 12px;position:relative;font-family:inherit}
.page-devicedetail .tabs button:hover{color:var(--text-2,#a3acba)}
.page-devicedetail .tabs button.active{color:var(--brand-2,#60a5fa)}
.page-devicedetail .tabs button.active::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--brand-2,#60a5fa);border-radius:2px}
.page-devicedetail .dc-set-label{font-size:11px;font-weight:700;letter-spacing:.04em;
  text-transform:uppercase;color:var(--text-3,#6b7585);margin:2px 0 8px}
.page-devicedetail .dc-backup{margin-top:18px;padding-top:16px;border-top:1px dashed var(--border,#1f2630)}
.page-devicedetail .dc-tag.amber{color:#f5a623;background:rgba(255,159,10,.12)}

/* ===== Channel detail: danger zone (delete channel) ===== */
.page-channeldetail .danger-zone{margin-top:28px;border:1px solid rgba(255,69,58,.3);
  border-radius:14px;background:rgba(255,69,58,.05);padding:18px 20px}
.page-channeldetail .dz-head{font-size:12px;font-weight:700;text-transform:uppercase;
  letter-spacing:.05em;color:#ff7b72;margin-bottom:12px}
.page-channeldetail .dz-row{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.page-channeldetail .dz-title{font-size:14.5px;font-weight:600;color:var(--text-1,#f3f5f8)}
.page-channeldetail .dz-sub{font-size:12.5px;color:var(--text-3,#6b7585);margin-top:3px;max-width:520px}
.page-channeldetail .dz-btn{font-family:inherit;font-size:13.5px;font-weight:600;cursor:pointer;
  padding:10px 18px;border-radius:10px;white-space:nowrap;
  background:rgba(255,69,58,.14);border:1px solid rgba(255,69,58,.45);color:#ff7b72}
.page-channeldetail .dz-btn:hover{background:rgba(255,69,58,.22)}

/* ===== Custom audio player (dark, used in Audio library + task pickers) ===== */
.hv-ap{display:flex;align-items:center;gap:12px;background:var(--panel-2,#141a23);
  border:1px solid var(--border,#1f2630);border-radius:12px;padding:8px 16px 8px 8px;min-width:240px}
.hv-ap--empty{opacity:.4;pointer-events:none}
.hv-ap__a{display:none}
.hv-ap__btn{flex:none;width:34px;height:34px;border-radius:50%;border:none;cursor:pointer;
  background:var(--brand,#3b82f6);color:#fff;display:flex;align-items:center;justify-content:center;
  transition:background .15s,transform .12s}
.hv-ap__btn:hover{background:var(--brand-2,#60a5fa);transform:scale(1.06)}
.hv-ap__btn:active{transform:scale(.94)}
.hv-ap__btn svg{width:13px;height:13px;fill:currentColor;display:block}
.hv-ap__btn .ic-pause{display:none}
.hv-ap.playing .hv-ap__btn .ic-play{display:none}
.hv-ap.playing .hv-ap__btn .ic-pause{display:block}
.hv-ap__bar{flex:1;height:6px;border-radius:6px;background:var(--border-2,#262d39);cursor:pointer;position:relative}
.hv-ap__fill{position:absolute;left:0;top:0;height:100%;width:0;background:var(--brand,#3b82f6);border-radius:6px;transition:width .1s linear}
.hv-ap.playing .hv-ap__fill{background:var(--green,#22c55e)}
.hv-ap__thumb{position:absolute;top:50%;left:0;width:12px;height:12px;border-radius:50%;background:#fff;
  transform:translate(-50%,-50%);opacity:0;transition:opacity .15s;box-shadow:0 1px 4px rgba(0,0,0,.45);pointer-events:none}
.hv-ap:hover .hv-ap__thumb,.hv-ap.playing .hv-ap__thumb{opacity:1}
.hv-ap__t{flex:none;font-size:12px;color:var(--text-2,#a3acba);font-variant-numeric:tabular-nums;min-width:78px;text-align:right}

/* ===== Drag & drop file upload zone (centered) ===== */
/* high specificity so it beats `.page-audio .au-up label` */
.page-audio .au-up .hv-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;gap:10px;width:100%;padding:28px 20px;border-radius:12px;
  border:1.5px dashed var(--border-2,#262d39);background:var(--panel,#11161e);cursor:pointer;
  transition:border-color .15s,background .15s}
.page-audio .au-up .hv-drop:hover,.page-audio .au-up .hv-drop.drag{
  border-color:var(--brand,#3b82f6);background:var(--brand-bg,rgba(59,130,246,.12))}
.hv-drop__ic{flex:none;width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;
  background:var(--brand-bg,rgba(59,130,246,.12));color:var(--brand-2,#60a5fa)}
.hv-drop__ic svg{width:23px;height:23px}
.hv-drop__main{display:flex;flex-direction:column;gap:3px;text-align:center}
.hv-drop__main b{font-size:14px;color:var(--text,#e7ecf3);font-weight:600}
.hv-drop__main span{font-size:12px;color:var(--text-3,#6b7585);font-weight:400}
.hv-drop__file{font-size:12.5px;font-weight:500;color:var(--brand-2,#60a5fa);
  max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hv-drop__file:empty::before{content:"No file selected";color:var(--text-4,#4a525e);font-weight:400}

/* ===== Audio library page ===== */
.page-audio .au-up{display:grid;grid-template-columns:180px 200px 1fr;gap:16px 18px;align-items:end}
.page-audio .au-up label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:500;color:var(--text-2,#a3acba)}
.page-audio .au-up label .sub{font-weight:400;color:var(--text-3,#6b7585)}
.page-audio .au-up .full{grid-column:1 / -1}
.page-audio .au-up input,.page-audio .au-up select{padding:11px 12px;border-radius:10px;background:var(--panel,#11161e);
  border:1px solid var(--border,#1f2630);color:var(--text,#e7ecf3);font-size:13px;font-family:inherit}
.page-audio .au-up input[type=file]{padding:9px 12px;color:var(--text-2,#a3acba)}
.page-audio .au-up input:focus,.page-audio .au-up select:focus{outline:none;border-color:var(--brand,#3b82f6)}
.page-audio .au-up .actions{grid-column:1 / -1;display:flex;justify-content:flex-end}
.page-audio .au-sec{margin-bottom:18px}
.page-audio .au-sec .panel-head{display:flex;align-items:baseline;justify-content:space-between}
.page-audio .au-count{font-size:12px;color:var(--text-3,#6b7585)}
.page-audio .au-row{display:flex;align-items:center;gap:14px;padding:12px 4px;border-top:1px solid var(--border,#1f2630)}
.page-audio .au-row:first-of-type{border-top:none}
.page-audio .au-edit{display:flex;align-items:center;gap:8px;flex:1.2;min-width:0}
.page-audio .au-edit input{padding:8px 10px;border-radius:8px;background:var(--panel,#11161e);
  border:1px solid var(--border,#1f2630);color:var(--text,#e7ecf3);font-size:13px;font-family:inherit;width:100%}
.page-audio .au-edit input.nm{font-weight:600;flex:1.5;min-width:90px}
.page-audio .au-edit input.cat{flex:1;min-width:80px}
.page-audio .au-edit input:focus{outline:none;border-color:var(--brand,#3b82f6)}
.page-audio .au-row .hv-ap{flex:1.1;min-width:200px}
.page-audio .au-save{background:transparent;border:1px solid var(--border-2,#262d39);color:var(--text-2,#a3acba);
  padding:7px 13px;border-radius:8px;cursor:pointer;font-size:12px;font-weight:500;font-family:inherit}
.page-audio .au-save:hover{border-color:var(--brand,#3b82f6);color:var(--brand-2,#60a5fa)}
.page-audio .au-del{background:transparent;border:none;color:var(--text-3,#6b7585);cursor:pointer;font-size:12px;padding:7px 8px;font-family:inherit}
.page-audio .au-del:hover{color:var(--red,#ef4444)}
.page-audio .au-empty{padding:18px 4px;color:var(--text-3,#6b7585);font-size:13px}

/* ===== Task form audio picker: stacked Music + Sound FX groups ===== */
.page-tasks .hv-audio-group{flex:1 1 100% !important;min-width:100% !important;display:flex;flex-direction:column;
  gap:11px;padding:16px 18px;border:1px solid var(--border,#1f2630);border-radius:12px;
  background:var(--panel-2,#141a23);margin-top:6px}
.page-tasks .hv-audio-group .hv-ag-h{font-size:11px;font-weight:700;text-transform:uppercase;
  letter-spacing:.05em;color:var(--text-3,#6b7585)}
.page-tasks .hv-audio-group label{display:flex !important;flex-direction:column;gap:6px;
  font-size:12px;color:var(--text-2,#a3acba);flex:none !important;min-width:0 !important;width:100%}
.page-tasks .hv-audio-group select,.page-tasks .hv-audio-group input{padding:11px 12px;border-radius:10px;
  background:var(--panel,#11161e);border:1px solid var(--border,#1f2630);color:var(--text,#e7ecf3);
  font-size:13px;font-family:inherit;width:100%}
.page-tasks .hv-audio-group select:focus,.page-tasks .hv-audio-group input:focus{outline:none;border-color:var(--brand,#3b82f6)}
.page-tasks .hv-audio-group .hv-ap{width:100%}
.page-tasks .hv-audio-group #sfxFileRow{display:flex;flex-direction:column;gap:11px}

/* ===== Volume slider (dB) ===== */
.hv-vol{display:flex;align-items:center;gap:12px}
.hv-vol input[type=range]{flex:1;-webkit-appearance:none;appearance:none;height:6px;border-radius:6px;
  cursor:pointer;border:none;padding:0;background:var(--border-2,#262d39)}
.hv-vol input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;
  border-radius:50%;background:#fff;cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.45)}
.hv-vol input[type=range]::-moz-range-thumb{width:16px;height:16px;border:none;border-radius:50%;
  background:#fff;cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.45)}
.hv-vol__val{flex:none;min-width:58px;text-align:right;font-size:12.5px;font-variant-numeric:tabular-nums;
  color:var(--text-2,#a3acba);font-weight:500}
