/* ═══════════════════════════════════════════════════════════════════
   Delivery Tracker 2.0 — Design System (PΔ.200)
   Generated from dashboard-v2-prototype.html (approved by owner 2026-07-11).
   Source of truth for tokens/components: DESIGN-SYSTEM.md.
   EVERYTHING is namespaced under .dt2 so it coexists with the Tailwind
   build used by legacy pages. Tokens (:root of the prototype) live on
   .dt2 itself. #chartTip is intentionally global (appended to <body>).
   Do not hand-edit colors outside the token table — see DESIGN-SYSTEM.md §1.
   ═══════════════════════════════════════════════════════════════════ */

  .dt2{
    --grab:#00B14F; --grab-dark:#008a3e; --grab-soft:#E6F7EE;
    --gojek:#EE2737; --gojek-dark:#C11225; --gojek-soft:#FDEDEE;
    --bg:#F4F6F5; --card:#FFFFFF; --ink:#101828; --muted:#667085; --line:#EAECF0;
    --amber:#F59E0B; --amber-soft:#FEF3E2; --red:#EF4444; --red-soft:#FDEBEB;
    --blue:#3B82F6; --blue-soft:#EBF2FE;
    --radius:16px; --shadow:0 1px 2px rgba(16,24,40,.05), 0 1px 3px rgba(16,24,40,.06);
  }
  .dt2 *, .dt2 *::before, .dt2 *::after{box-sizing:border-box; margin:0; padding:0;}
  .dt2{scroll-behavior:smooth;}
  .dt2{max-width:100%; overflow-x:hidden; overflow-x:clip;}
  .dt2{
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,"Helvetica Neue",Arial,sans-serif;
    background:var(--bg); color:var(--ink); font-size:14px; line-height:1.45;
    -webkit-font-smoothing:antialiased; overflow-wrap:break-word;
  }
  .dt2 .wrap{max-width:1180px; margin:0 auto; padding:0 20px 60px;}
  .dt2 .grid>*, .dt2 .ads-grid>*, .dt2 .ads-stats>*, .dt2 .ops-grid>*, .dt2 .actions-grid>*, .dt2 .prev-grid>*, .dt2 .mini-kpis>*, .dt2 .status-grid>*, .dt2 .flag-grid>*, .dt2 .soon-grid>*{min-width:0;}
  .dt2 svg{max-width:100%;}
  .dt2 .table-scroll{overflow-x:auto; -webkit-overflow-scrolling:touch; max-width:100%;}

  .dt2 .topbar{position:sticky; top:0; z-index:50; background:rgba(255,255,255,.94);
    backdrop-filter:blur(8px); border-bottom:1px solid var(--line);}
  .dt2 .topbar-in{max-width:1180px; margin:0 auto; padding:10px 20px 0; display:flex; align-items:center; gap:12px; flex-wrap:wrap;}
  .dt2 .brand{display:flex; align-items:center; gap:9px; font-weight:700; font-size:15px; letter-spacing:-.01em;}
  .dt2 .brand-mark{width:28px; height:28px; border-radius:8px; background:linear-gradient(135deg,var(--grab),#00D45F);
    display:flex; align-items:center; justify-content:center; color:#fff; font-size:13px; font-weight:800;}
  .dt2 .brand small{display:block; font-weight:500; color:var(--muted); font-size:11px; letter-spacing:0;}
  .dt2 .topbar .spacer{flex:1;}
  .dt2 .updated{color:var(--muted); font-size:12px;}
  .dt2 .updated .dot{display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--grab); margin-right:5px; animation:dt2-pulse 2.4s infinite;}
  @keyframes dt2-pulse{0%,100%{opacity:1}50%{opacity:.35}}

  .dt2 .rsel{position:relative; display:inline-flex; align-items:center;}
  .dt2 .rsel select{appearance:none; -webkit-appearance:none; border:1px solid var(--line); background:#fff; border-radius:12px;
    padding:8px 34px 8px 14px; font-size:13px; font-weight:700; color:var(--ink); font-family:inherit; cursor:pointer;
    box-shadow:var(--shadow); max-width:260px; text-overflow:ellipsis;}
  .dt2 .rsel select:hover{border-color:#CBD5E1;}
  .dt2 .rsel select:focus{outline:2px solid var(--grab-soft); border-color:var(--grab);}
  .dt2 .rsel::after{content:"▾"; position:absolute; right:12px; pointer-events:none; color:var(--muted); font-size:11px;}

  .dt2 .viewnav-row{max-width:1180px; margin:0 auto; padding:8px 20px 10px; overflow-x:auto; -webkit-overflow-scrolling:touch;}
  .dt2 .viewnav{display:inline-flex; background:#fff; border:1px solid var(--line); border-radius:12px; padding:4px; gap:2px; box-shadow:var(--shadow); white-space:nowrap;}
  /* PΔ.202 — the chrome renders tabs as <a> links (server routes), the
     prototype used <button>; style both so tabs are pills on every page */
  .dt2 .viewnav button, .dt2 .viewnav a{border:0; background:transparent; padding:8px 16px; border-radius:9px; font-size:13px; font-weight:700;
    color:var(--muted); cursor:pointer; font-family:inherit; transition:all .15s; display:inline-flex; align-items:center; gap:7px; text-decoration:none;}
  .dt2 .viewnav button:hover, .dt2 .viewnav a:hover{color:var(--ink);}
  .dt2 .viewnav button.active, .dt2 .viewnav a.active{background:var(--ink); color:#fff; box-shadow:0 1px 3px rgba(16,24,40,.35);}
  .dt2 .viewnav .nv-dot{width:8px; height:8px; border-radius:3px; flex:none;}
  .dt2 .viewnav .nv-dot.combined{background:linear-gradient(135deg,var(--grab) 50%,var(--gojek) 50%);}
  .dt2 .viewnav .nv-dot.grab{background:var(--grab);}
  .dt2 .viewnav .nv-dot.gojek{background:var(--gojek);}
  .dt2 .viewnav .nv-dot.ops{background:var(--amber);}

  /* PΔ.205 — topbar quick links (settings gear / org building) */
  .dt2 .top-links{display:inline-flex; gap:4px;}
  .dt2 .top-links a{display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; border-radius:10px;
    border:1px solid var(--line); background:#fff; box-shadow:var(--shadow); text-decoration:none; font-size:14px; transition:all .12s;}
  .dt2 .top-links a:hover{border-color:#CBD5E1; transform:translateY(-1px);}

  .dt2 .langs{display:inline-flex; background:#fff; border:1px solid var(--line); border-radius:99px; padding:3px; gap:2px; box-shadow:var(--shadow);}
  .dt2 .langs button, .dt2 .langs a{border:0; background:transparent; padding:4px 11px; border-radius:99px; font-size:11.5px; font-weight:700;
    color:var(--muted); cursor:pointer; font-family:inherit; letter-spacing:.03em; transition:all .15s; text-decoration:none; display:inline-flex; align-items:center;}
  .dt2 .langs button:hover, .dt2 .langs a:hover{color:var(--ink);}
  .dt2 .langs button.active, .dt2 .langs a.active{background:var(--grab); color:#fff;}

  .dt2 .hero{display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:24px 0 16px; flex-wrap:wrap;}
  .dt2 .hero h1{font-size:26px; font-weight:800; letter-spacing:-.02em;}
  .dt2 .hero .loc{color:var(--muted); margin-top:3px; font-size:13.5px;}
  .dt2 .badges{display:flex; gap:8px; margin-top:10px; flex-wrap:wrap;}
  .dt2 .badge{display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:600; padding:5px 11px; border-radius:99px;}
  .dt2 .badge.grab{background:var(--grab); color:#fff;}
  .dt2 .badge.gojek{background:var(--gojek); color:#fff;}
  .dt2 .badge.rating{background:#FFF8E6; color:#92600A; border:1px solid #FDE9BE;}
  .dt2 .badge.live{background:var(--grab-soft); color:var(--grab-dark); border:1px solid #C7EEDA;}
  .dt2 .badge.warnb{background:var(--amber-soft); color:#92600A; border:1px solid #FBE9C6;}
  .dt2 .health-card{background:linear-gradient(135deg,#101828,#1D2939 55%,#2B3B52); color:#fff; border-radius:var(--radius);
    padding:16px 20px; min-width:290px; max-width:360px; box-shadow:var(--shadow); position:relative; overflow:hidden;}
  .dt2 .health-card::after{content:""; position:absolute; right:-30px; top:-30px; width:130px; height:130px; border-radius:50%; background:rgba(255,255,255,.06);}
  .dt2 .h-label{font-size:11px; text-transform:uppercase; letter-spacing:.08em; opacity:.75; font-weight:600;}
  .dt2 .h-value{font-size:21px; font-weight:800; margin:3px 0 2px; display:flex; align-items:center; gap:8px; flex-wrap:wrap;}
  .dt2 .h-chip{font-size:10.5px; background:rgba(255,255,255,.16); padding:3px 8px; border-radius:99px; font-weight:600; letter-spacing:.02em;}
  .dt2 .h-sub{font-size:12.5px; opacity:.85;}
  .dt2 .h-sub b{color:#FFD98A;}
  .dt2 .h-bar{margin-top:11px; height:6px; border-radius:99px; background:rgba(255,255,255,.18); overflow:hidden;}
  .dt2 .h-bar i{display:block; height:100%; background:linear-gradient(90deg,#7CE7AB,#FFD98A); border-radius:99px;}
  .dt2 .h-bar-lbl{font-size:11px; opacity:.8; margin-top:5px;}

  .dt2 .period-row{display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:2px 0 18px;}
  .dt2 .periods{display:inline-flex; flex-wrap:wrap; max-width:100%; background:#fff; border:1px solid var(--line); border-radius:12px; padding:4px; gap:2px; box-shadow:var(--shadow);}
  .dt2 .periods button{border:0; background:transparent; padding:7px 15px; border-radius:9px; font-size:13px; font-weight:600;
    color:var(--muted); cursor:pointer; font-family:inherit; transition:all .15s;}
  .dt2 .periods button:hover{color:var(--ink);}
  .dt2 .periods button.active{background:var(--grab); color:#fff; box-shadow:0 1px 3px rgba(0,177,79,.4);}
  .dt2 .period-caption{color:var(--muted); font-size:12.5px;}

  .dt2 .card{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); padding:20px;}
  .dt2 .card h2{font-size:15px; font-weight:700; letter-spacing:-.01em; display:flex; align-items:center; gap:7px; flex-wrap:wrap;}
  .dt2 .card .sub{color:var(--muted); font-size:12.5px; margin-top:2px;}
  .dt2 .grid{display:grid; gap:16px;}
  .dt2 .kpis{grid-template-columns:repeat(6,1fr); margin-bottom:16px;}
  .dt2 .row-2-1{grid-template-columns:2fr 1fr; margin-bottom:16px;}
  .dt2 .row-1-1{grid-template-columns:1fr 1fr; margin-bottom:16px;}

  .dt2 .kpi{padding:16px 18px;}
  .dt2 .kpi .k-label{font-size:12px; color:var(--muted); font-weight:600; display:flex; align-items:center; gap:5px;}
  .dt2 .kpi .k-value{font-size:22px; font-weight:800; letter-spacing:-.02em; margin:6px 0 2px; white-space:nowrap;}
  .dt2 .kpi .k-split{font-size:11px; font-weight:600; margin-top:2px; display:flex; align-items:center; gap:5px; flex-wrap:wrap;}
  .dt2 .kpi .k-split .sdot{display:inline-block; width:7px; height:7px; border-radius:2.5px; flex:none;}
  .dt2 .kpi .k-trend{font-size:11.5px; font-weight:600; margin-top:3px;}
  .dt2 .kpi .k-trend.good{color:var(--grab-dark);}
  .dt2 .kpi .k-trend.bad{color:var(--red);}
  .dt2 .kpi .k-trend.flat{color:var(--muted);}
  .dt2 .kpi .k-sub{font-size:11px; color:var(--muted); margin-top:2px;}

  .dt2 .tip{position:relative; display:inline-flex; width:15px; height:15px; border-radius:50%; background:#EDF0EE; color:#8B939B;
    font-size:10px; align-items:center; justify-content:center; font-weight:700; cursor:help; flex:none;}
  .dt2 .tip::after{content:attr(data-tip); position:absolute; bottom:130%; left:50%; transform:translateX(-50%);
    background:#101828; color:#fff; font-size:11.5px; font-weight:500; line-height:1.45; padding:8px 11px; border-radius:8px;
    width:230px; text-align:left; opacity:0; pointer-events:none; transition:opacity .15s; z-index:40;}
  .dt2 .tip:hover::after{opacity:1;}

  .dt2 .chart-box{position:relative; height:300px; margin-top:14px; max-width:100%;}
  .dt2 .chart-box svg{display:block; width:100%; height:100%; max-width:100%;}
  .dt2 .chart-box .hov{cursor:crosshair;}
  .dt2 .chart-box .hov:hover{fill:rgba(16,24,40,.06);}
  .dt2 .chart-note{margin-top:10px; font-size:12px; color:var(--muted); display:flex; gap:14px; flex-wrap:wrap;}
  .dt2 .chart-note b{color:var(--ink);}
  .dt2 .legend-dot{display:inline-block; width:9px; height:9px; border-radius:3px; margin-right:5px; vertical-align:1px;}
  #chartTip{position:fixed; z-index:99; display:none; background:#101828; color:#fff; font-size:11.5px; line-height:1.55;
    padding:8px 11px; border-radius:8px; pointer-events:none; max-width:min(240px, calc(100vw - 16px)); box-shadow:0 6px 20px rgba(16,24,40,.25);}
  #chartTip b{font-weight:700;}

  .dt2 .split-wrap{display:flex; flex-direction:column; gap:14px; margin-top:14px; align-items:center;}
  .dt2 .donut-box{position:relative; width:190px; height:190px;}
  .dt2 .donut-box svg{width:100%; height:100%;}
  .dt2 .donut-center{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; pointer-events:none;}
  .dt2 .donut-center .dc-v{font-size:19px; font-weight:800; letter-spacing:-.02em;}
  .dt2 .donut-center .dc-l{font-size:10.5px; color:var(--muted); font-weight:600; text-transform:uppercase; letter-spacing:.05em;}
  .dt2 .split-legend{width:100%; display:flex; flex-direction:column; gap:7px;}
  .dt2 .sl-row{display:flex; align-items:center; gap:8px; font-size:12.5px;}
  .dt2 .sl-row .sdot{width:9px; height:9px; border-radius:3px; flex:none;}
  .dt2 .sl-row .sl-name{font-weight:700;}
  .dt2 .sl-row .sl-val{margin-left:auto; font-weight:600; color:var(--muted); white-space:nowrap;}
  .dt2 .split-sec-lbl{font-size:11px; font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:.05em; width:100%; margin-top:4px;}
  .dt2 .stackbar{width:100%; height:16px; border-radius:6px; overflow:hidden; display:flex; background:#F2F4F3;}
  .dt2 .stackbar i{display:block; height:100%;}
  .dt2 .split-note{font-size:11px; color:var(--muted); line-height:1.5; width:100%;}

  .dt2 .ads-grid{display:grid; grid-template-columns:1fr 1.25fr; gap:24px; margin-top:14px; align-items:start;}
  .dt2 .ads-stats{display:grid; grid-template-columns:1fr 1fr; gap:10px;}
  .dt2 .ads-stat{background:#FAFBFA; border:1px solid var(--line); border-radius:12px; padding:12px 14px;}
  .dt2 .ads-stat .a-lbl{font-size:11px; color:var(--muted); font-weight:600; display:flex; gap:5px; align-items:center;}
  .dt2 .ads-stat .a-val{font-size:17px; font-weight:800; margin-top:3px; letter-spacing:-.01em;}
  .dt2 .ads-stat .a-split{font-size:10.5px; color:var(--muted); font-weight:600; margin-top:2px;}
  .dt2 .ads-stat.hero-stat{grid-column:1/-1; background:var(--grab-soft); border-color:#C7EEDA;}
  .dt2 .ads-stat.hero-stat .a-val{font-size:23px; color:var(--grab-dark);}
  .dt2 .ads-stat.hero-stat .a-note{font-size:11.5px; color:#1B7A47; margin-top:3px; font-weight:500;}
  .dt2 .plat-table{width:100%; border-collapse:collapse; margin-top:6px; font-size:12.5px;}
  .dt2 .plat-table th{text-align:left; color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.05em; padding:7px 8px; border-bottom:1px solid var(--line); font-weight:700;}
  .dt2 .plat-table th.num, .dt2 .plat-table td.num{text-align:right;}
  .dt2 .plat-table td{padding:9px 8px; border-bottom:1px solid #F2F4F3; white-space:nowrap;}
  .dt2 .plat-table tr:last-child td{border-bottom:0;}
  .dt2 .plat-name{font-weight:700; display:inline-flex; align-items:center; gap:7px;}
  .dt2 .plat-name .sdot{width:9px; height:9px; border-radius:3px; flex:none;}
  .dt2 .ads-hint{margin-top:10px; background:var(--amber-soft); border:1px solid #FBE9C6; color:#7A4E07; border-radius:10px; padding:9px 12px; font-size:12px; line-height:1.5;}
  .dt2 .ads-hint b{color:#92400E;}

  .dt2 .prev-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:16px;}
  .dt2 .prev-card{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow);
    padding:16px 18px; cursor:pointer; transition:transform .12s, box-shadow .12s; border-top:4px solid var(--grab); position:relative;}
  .dt2 .prev-card:hover{transform:translateY(-2px); box-shadow:0 6px 18px rgba(16,24,40,.10);}
  .dt2 .prev-card.pc-gojek{border-top-color:var(--gojek);}
  .dt2 .prev-card.pc-ops{border-top-color:var(--amber);}
  .dt2 .pc-head{display:flex; align-items:center; justify-content:space-between; gap:8px;}
  .dt2 .pc-title{font-size:13.5px; font-weight:800; display:flex; align-items:center; gap:7px;}
  .dt2 .pc-arrow{font-size:16px; font-weight:800; color:var(--muted); transition:transform .12s;}
  .dt2 .prev-card:hover .pc-arrow{transform:translateX(3px); color:var(--ink);}
  .dt2 .pc-stats{margin-top:9px; display:flex; flex-direction:column; gap:4px; font-size:12px; color:#344054;}
  .dt2 .pc-stats b{color:var(--ink);}
  .dt2 .pc-flag{display:inline-flex; align-items:center; gap:5px; margin-top:9px; font-size:11px; font-weight:700; padding:4px 9px; border-radius:99px;}
  .dt2 .pc-flag.warn{background:var(--amber-soft); color:#92600A;}
  .dt2 .pc-flag.ok{background:var(--grab-soft); color:var(--grab-dark);}
  .dt2 .pc-flag.info{background:var(--blue-soft); color:#1D4ED8;}

  .dt2 .actions-grid{display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:16px;}
  .dt2 .action{border:1px solid var(--line); border-radius:14px; padding:16px 18px; border-top:4px solid var(--grab); position:relative; background:#fff;}
  .dt2 .action.p1{border-top-color:var(--red);}
  .dt2 .action.p2{border-top-color:var(--grab);}
  .dt2 .action.p3{border-top-color:var(--gojek);}
  .dt2 .action.p4{border-top-color:var(--blue);}
  .dt2 .a-pri{position:absolute; top:-12px; left:16px; font-size:10.5px; font-weight:800; letter-spacing:.06em; padding:3px 10px; border-radius:99px; color:#fff;}
  .dt2 .p1 .a-pri{background:var(--red);} .dt2 .p2 .a-pri{background:var(--grab);} .dt2 .p3 .a-pri{background:var(--gojek);} .dt2 .p4 .a-pri{background:var(--blue);}
  .dt2 .a-plat{position:absolute; top:-12px; right:14px; font-size:10px; font-weight:800; letter-spacing:.04em; padding:3px 9px; border-radius:99px; background:#fff; border:1px solid var(--line); color:var(--muted); box-shadow:var(--shadow);}
  .dt2 .a-title{font-size:14.5px; font-weight:750; margin-top:6px; letter-spacing:-.01em;}
  .dt2 .a-impact{font-size:12px; font-weight:600; margin:6px 0 8px; padding:6px 10px; border-radius:8px; display:inline-block;}
  .dt2 .p1 .a-impact{background:var(--red-soft); color:#B42318;}
  .dt2 .p2 .a-impact{background:var(--grab-soft); color:var(--grab-dark);}
  .dt2 .p3 .a-impact{background:var(--gojek-soft); color:var(--gojek-dark);}
  .dt2 .p4 .a-impact{background:var(--blue-soft); color:#1D4ED8;}
  .dt2 .action ul{margin:4px 0 0 16px; color:#344054; font-size:12.5px;}
  .dt2 .action li{margin-bottom:5px;}
  .dt2 .action li b{color:var(--ink);}

  .dt2 .view-head{display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin:4px 0 14px;}
  .dt2 .view-head h3{font-size:17px; font-weight:800; letter-spacing:-.015em; display:flex; align-items:center; gap:9px;}
  .dt2 .open-full{display:inline-flex; align-items:center; gap:6px; font-size:12.5px; font-weight:700; color:var(--grab-dark);
    background:var(--grab-soft); border:1px solid #C7EEDA; padding:7px 13px; border-radius:99px; text-decoration:none;}
  .dt2 .open-full.soon{color:var(--muted); background:#F2F4F5; border-color:var(--line); cursor:default;}
  .dt2 .mini-kpis{display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:16px;}
  .dt2 .mini-kpi{background:var(--card); border:1px solid var(--line); border-radius:12px; box-shadow:var(--shadow); padding:13px 15px;}
  .dt2 .mini-kpi .mk-l{font-size:11px; color:var(--muted); font-weight:600; display:flex; align-items:center; gap:5px;}
  .dt2 .mini-kpi .mk-v{font-size:18px; font-weight:800; letter-spacing:-.02em; margin-top:4px; white-space:nowrap;}
  .dt2 .mini-kpi .mk-s{font-size:10.5px; color:var(--muted); margin-top:2px;}
  .dt2 .mini-kpi .mk-t{font-size:10.5px; font-weight:700; margin-top:2px;}
  .dt2 .mini-kpi .mk-t.good{color:var(--grab-dark);} .dt2 .mini-kpi .mk-t.bad{color:var(--red);} .dt2 .mini-kpi .mk-t.flat{color:var(--muted);}

  .dt2 .ops-grid{display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:14px;}
  .dt2 .ops-tile{border:1px solid var(--line); border-radius:12px; padding:14px 15px; border-left-width:4px; background:#fff;}
  .dt2 .ops-tile.ok{border-left-color:var(--grab);}
  .dt2 .ops-tile.warn{border-left-color:var(--amber); background:linear-gradient(0deg,#fff, #FFFBF3);}
  .dt2 .ops-tile.crit{border-left-color:var(--red); background:linear-gradient(0deg,#fff,#FFF6F6);}
  .dt2 .ops-tile.na{border-left-color:#CBD5E1;}
  .dt2 .ops-lbl{font-size:12px; color:var(--muted); font-weight:600; display:flex; align-items:center; gap:5px;}
  .dt2 .ops-val{font-size:21px; font-weight:800; margin:4px 0 1px; letter-spacing:-.02em;}
  .dt2 .ops-target{font-size:11px; color:var(--muted);}
  /* A1/A2 — lost-revenue line inside ops tiles (cancellations) */
  .dt2 .ops-extra{font-size:11.5px; margin-top:5px; font-weight:700;}
  .dt2 .ops-extra.loss{color:var(--red);}
  .dt2 .ops-extra.zero{color:var(--muted); font-weight:600;}
  /* A3 — "All reviews →" link to the production reviews page */
  .dt2 .rev-link{margin-left:auto; font-size:12px; font-weight:700; color:var(--grab-dark); text-decoration:none;
    background:var(--grab-soft); border:1px solid #C7EEDA; padding:4px 11px; border-radius:99px; white-space:nowrap;}
  .dt2 .rev-link:hover{filter:brightness(.96);}
  .dt2 .rev-link.gojek{color:var(--gojek-dark); background:var(--gojek-soft); border-color:#F6C6CB;}
  .dt2 .ops-pill{display:inline-block; font-size:10px; font-weight:700; padding:2px 8px; border-radius:99px; margin-top:6px; letter-spacing:.03em;}
  .dt2 .ops-pill.ok{background:var(--grab-soft); color:var(--grab-dark);}
  .dt2 .ops-pill.warn{background:var(--amber-soft); color:#92600A;}
  .dt2 .ops-pill.crit{background:var(--red-soft); color:#B42318;}
  .dt2 .ops-pill.na{background:#F2F4F5; color:var(--muted);}

  .dt2 .callout{margin-top:14px; background:var(--amber-soft); border:1px solid #FBE9C6; color:#7A4E07; border-radius:10px; padding:10px 13px; font-size:12.5px; line-height:1.5;}
  .dt2 .callout b{color:#92400E;}
  .dt2 .callout.rose{background:var(--gojek-soft); border-color:#F6C8CD; color:#8E1B27;}
  .dt2 .callout.rose b{color:var(--gojek-dark);}
  .dt2 .callout.green{background:var(--grab-soft); border-color:#C7EEDA; color:#1B7A47;}
  .dt2 .callout.green b{color:var(--grab-dark);}
  .dt2 .callout.blue{background:var(--blue-soft); border-color:#D3E2FC; color:#1D4ED8;}

  .dt2 .status-grid{display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:14px;}
  .dt2 .status-tile{border:1px solid var(--line); border-radius:12px; padding:14px 16px; display:flex; align-items:center; gap:12px; background:#fff;}
  .dt2 .status-ind{width:12px; height:12px; border-radius:50%; flex:none;}
  .dt2 .status-ind.on{background:var(--grab); box-shadow:0 0 0 4px var(--grab-soft); animation:dt2-pulse 2.4s infinite;}
  .dt2 .status-ind.off{background:#CBD5E1; box-shadow:0 0 0 4px #F1F5F9;}
  .dt2 .status-name{font-weight:800; font-size:13.5px;}
  .dt2 .status-sub{font-size:11.5px; color:var(--muted); margin-top:1px;}
  .dt2 .oos-item{display:flex; gap:12px; align-items:flex-start; border:1px solid var(--line); border-radius:12px; padding:11px 14px; margin-bottom:8px; background:#FDFDFD; flex-wrap:wrap;}
  .dt2 .oos-item.mismatch{border-color:#FBE9C6; background:#FFFDF7;}
  .dt2 .oos-name{font-weight:700; font-size:13px; flex:1 1 160px;}
  .dt2 .oos-name small{display:block; color:var(--muted); font-weight:500; font-size:11px; margin-top:2px;}
  .dt2 .oos-plats{display:flex; flex-direction:column; gap:3px; font-size:11.5px; font-weight:600; flex:1 1 200px;}
  .dt2 .oos-plats .sell{color:var(--grab-dark);}
  .dt2 .oos-plats .out{color:#B42318;}
  .dt2 .pill{font-size:10.5px; font-weight:700; padding:3px 10px; border-radius:99px; flex:none; letter-spacing:.03em; margin-top:2px;}
  .dt2 .pill.removed{background:var(--grab-soft); color:var(--grab-dark); border:1px solid #C7EEDA;}
  .dt2 .pill.appealed{background:var(--amber-soft); color:#92600A; border:1px solid #FBE9C6;}
  .dt2 .pill.replied{background:var(--blue-soft); color:#1D4ED8; border:1px solid #D3E2FC;}
  .dt2 .pill.awaiting{background:#F2F4F5; color:var(--muted); border:1px solid var(--line);}
  .dt2 .pill.mismatch{background:var(--amber-soft); color:#92600A; border:1px solid #FBE9C6;}
  .dt2 .pill.both{background:var(--red-soft); color:#B42318; border:1px solid #F6C8CD;}
  .dt2 .review-item{display:flex; gap:12px; align-items:flex-start; border:1px solid var(--line); border-radius:12px; padding:11px 14px; margin-bottom:8px; background:#FDFDFD;}
  .dt2 .rv-stars{color:#F5A623; font-size:12px; white-space:nowrap; letter-spacing:1px; flex:none; margin-top:2px; font-weight:700;}
  .dt2 .rv-stars .off{color:#E3E6E4;}
  .dt2 .rv-body{flex:1; min-width:0;}
  .dt2 .rv-author{font-weight:700; font-size:12.5px;}
  .dt2 .rv-author small{color:var(--muted); font-weight:500; margin-left:6px;}
  .dt2 .rv-text{font-size:12.5px; color:#344054; margin-top:2px;}
  .dt2 .rv-meta{font-size:11px; color:var(--muted); margin-top:4px;}
  .dt2 .flag-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin-top:14px;}
  .dt2 .flag-tile{border:1px solid var(--line); border-radius:12px; padding:13px 15px; background:#fff;}
  .dt2 .flag-tile.rose{border-color:#F6C8CD; background:linear-gradient(0deg,#fff,#FFF8F8);}
  .dt2 .flag-tile.amber{border-color:#FBE9C6; background:linear-gradient(0deg,#fff,#FFFCF4);}
  .dt2 .flag-tile.blue{border-color:#D3E2FC; background:linear-gradient(0deg,#fff,#F8FAFF);}
  .dt2 .flag-tile.green{border-color:#C7EEDA; background:linear-gradient(0deg,#fff,#F5FBF7);}
  .dt2 .flag-n{font-size:22px; font-weight:800; letter-spacing:-.02em;}
  .dt2 .flag-tile.rose .flag-n{color:var(--gojek-dark);}
  .dt2 .flag-tile.amber .flag-n{color:#B45309;}
  .dt2 .flag-tile.blue .flag-n{color:#1D4ED8;}
  .dt2 .flag-tile.green .flag-n{color:var(--grab-dark);}
  .dt2 .flag-l{font-size:12px; font-weight:700; margin-top:2px;}
  .dt2 .flag-s{font-size:11px; color:var(--muted); margin-top:3px; line-height:1.45;}
  .dt2 .sec-lbl{font-size:11px; font-weight:700; color:var(--muted); margin:20px 0 9px; text-transform:uppercase; letter-spacing:.05em;}

  .dt2 footer{margin-top:34px; text-align:center; color:var(--muted); font-size:12px; line-height:1.7;}
  .dt2 footer b{color:var(--ink);}
  .dt2 .sec-h{display:flex; align-items:center; gap:8px; margin:26px 0 12px;}
  .dt2 .sec-h h3{font-size:16px; font-weight:800; letter-spacing:-.015em;}
  .dt2 .sec-h .line{flex:1; height:1px; background:var(--line);}

  /* ── Grab tab extras ── */
  .dt2 .tier-card{background:linear-gradient(135deg,#0B2B1B,#0E3D25 55%,#14532D); color:#fff; border-radius:var(--radius);
    padding:16px 20px; min-width:300px; max-width:430px; box-shadow:var(--shadow); position:relative; overflow:hidden; flex:1 1 320px;}
  .dt2 .tier-label{font-size:11px; text-transform:uppercase; letter-spacing:.08em; opacity:.75; font-weight:600;}
  .dt2 .tier-value{font-size:21px; font-weight:800; margin:4px 0 3px; display:flex; align-items:center; gap:8px; flex-wrap:wrap;}
  .dt2 .tier-chip{font-size:10.5px; background:rgba(255,255,255,.16); padding:3px 8px; border-radius:99px; font-weight:600;}
  .dt2 .tier-sub{font-size:11.5px; opacity:.8; margin-top:6px; line-height:1.5;}
  .dt2 .tier-crit{margin-top:9px; display:flex; flex-direction:column; gap:3px;}
  .dt2 .tc-row{display:flex; align-items:center; gap:7px; font-size:11.5px;}
  .dt2 .tc-row.fail{color:#FFD98A; font-weight:700;}
  .dt2 .tc-ic{width:14px; text-align:center; flex:none;}
  .dt2 .tc-name{flex:1; min-width:0;}
  .dt2 .tc-val{white-space:nowrap; font-weight:700;}
  .dt2 .tc-val small{opacity:.7; font-weight:500;}
  .dt2 .funnel{margin-top:14px;}
  .dt2 .f-stage{border-radius:10px; color:#fff; padding:10px 14px; margin:0 auto;}
  .dt2 .f-num{font-size:19px; font-weight:800;}
  .dt2 .f-lbl{font-size:11px; opacity:.9; font-weight:600;}
  .dt2 .f-conn{text-align:center; padding:4px 0; font-size:11px; color:var(--muted);}
  .dt2 .f-conv{font-weight:700; color:var(--ink);}
  .dt2 .f-flag{margin-top:9px; font-size:11.5px; font-weight:700; color:#B42318; background:var(--red-soft); border:1px solid #F6C8CD; border-radius:8px; padding:6px 10px;}
  .dt2 .f-note{font-size:11px; color:var(--muted); margin-top:8px; line-height:1.5;}
  .dt2 .side-block{background:#FAFBFA; border:1px solid var(--line); border-radius:12px; padding:13px 15px;}
  .dt2 .side-h{font-size:12.5px; font-weight:800; display:flex; align-items:center; gap:6px;}
  .dt2 .side-sub{font-size:11px; color:var(--muted); margin-top:2px;}
  .dt2 .kw-row{display:flex; align-items:center; gap:8px; margin-top:7px; font-size:12px;}
  .dt2 .kw-name{flex:0 0 42%; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:600;}
  .dt2 .kw-name .comp{color:#B45309;}
  .dt2 .kw-bar{flex:1; height:10px; border-radius:5px; background:#EDF0EE; overflow:hidden;}
  .dt2 .kw-bar i{display:block; height:100%; border-radius:5px; background:var(--grab);}
  .dt2 .kw-bar i.comp{background:var(--amber);}
  .dt2 .kw-val{flex:none; font-weight:700; font-size:11px; color:var(--muted); min-width:64px; text-align:right;}
  .dt2 .pf-row{display:flex; align-items:center; gap:8px; margin-top:7px; font-size:11.5px;}
  .dt2 .pf-name{flex:0 0 40%; font-weight:600; color:#344054;}
  .dt2 .pf-bar{flex:1; height:12px; border-radius:6px; background:#EDF0EE; overflow:hidden;}
  .dt2 .pf-bar i{display:block; height:100%; border-radius:6px; background:linear-gradient(90deg,#0E7A42,#00B14F);}
  .dt2 .pf-val{flex:none; font-weight:800; font-size:11.5px; min-width:56px; text-align:right;}
  .dt2 .fin-flow{margin-top:12px; display:flex; flex-direction:column; gap:8px;}
  .dt2 .fin-row{display:flex; align-items:center; justify-content:space-between; gap:10px; border:1px solid var(--line); border-radius:10px; padding:10px 13px; font-size:12.5px; background:#FDFDFD;}
  .dt2 .fin-row b{font-size:14px;}
  .dt2 .fin-row.total{background:var(--grab-soft); border-color:#C7EEDA;}
  .dt2 .fin-row.total b{color:var(--grab-dark); font-size:15px;}
  .dt2 .fin-row .fr-l{font-weight:600; color:#344054;}
  .dt2 .po-row{display:flex; justify-content:space-between; gap:8px; padding:7px 4px; border-bottom:1px solid #F2F4F3; font-size:12.5px;}
  .dt2 .po-row:last-child{border-bottom:0;}
  .dt2 .po-row b{white-space:nowrap;}
  .dt2 .tx-table{width:100%; border-collapse:collapse; margin-top:8px; font-size:12px;}
  .dt2 .tx-table th{text-align:left; color:var(--muted); font-size:10.5px; text-transform:uppercase; letter-spacing:.04em; padding:6px 8px; border-bottom:1px solid var(--line); font-weight:700;}
  .dt2 .tx-table td{padding:7px 8px; border-bottom:1px solid #F2F4F3; white-space:nowrap;}
  .dt2 .tx-table th.num, .dt2 .tx-table td.num{text-align:right;}
  .dt2 .tx-cat{font-size:10px; font-weight:700; padding:2px 7px; border-radius:99px; background:#F2F4F5; color:var(--muted);}
  .dt2 .tx-cat.payment{background:var(--grab-soft); color:var(--grab-dark);}
  .dt2 .tx-cat.advertisement{background:var(--blue-soft); color:#1D4ED8;}
  .dt2 .tx-cat.adjustment{background:var(--amber-soft); color:#92600A;}
  .dt2 .lc-seg{margin-top:10px;}
  .dt2 .lc-row{display:flex; align-items:center; gap:9px; margin-top:8px; font-size:12px;}
  .dt2 .lc-name{flex:0 0 34%; font-weight:600;}
  .dt2 .lc-bar{flex:1; height:12px; border-radius:6px; background:#EDF0EE; overflow:hidden;}
  .dt2 .lc-bar i{display:block; height:100%; border-radius:6px;}
  .dt2 .lc-val{flex:none; font-weight:700; font-size:11px; color:var(--muted); text-align:right; min-width:110px;}
  .dt2 .peak-wrap{display:flex; align-items:flex-end; gap:2px; height:120px; margin-top:16px;}
  .dt2 .peak-col{flex:1; display:flex; flex-direction:column; justify-content:flex-end; height:100%; position:relative;}
  .dt2 .peak-col i{display:block; background:linear-gradient(180deg,#00B14F,#7BE0A9); border-radius:3px 3px 0 0; min-height:2px;}
  .dt2 .peak-col.top i{background:linear-gradient(180deg,#0B5A32,#00B14F);}
  .dt2 .peak-lbls{display:flex; gap:2px; margin-top:4px;}
  .dt2 .peak-lbls span{flex:1; text-align:center; font-size:9px; color:#98A2B3;}
  .dt2 .ti-table{width:100%; border-collapse:collapse; margin-top:8px; font-size:12.5px;}
  .dt2 .ti-table th{text-align:left; color:var(--muted); font-size:10.5px; text-transform:uppercase; letter-spacing:.04em; padding:6px 8px; border-bottom:1px solid var(--line); font-weight:700;}
  .dt2 .ti-table td{padding:8px; border-bottom:1px solid #F2F4F3;}
  .dt2 .ti-table th.num, .dt2 .ti-table td.num{text-align:right; white-space:nowrap;}
  .dt2 .ti-share{display:inline-block; width:70px; height:8px; border-radius:4px; background:#EDF0EE; overflow:hidden; vertical-align:middle; margin-right:6px;}
  .dt2 .ti-share i{display:block; height:100%; background:var(--grab);}
  .dt2 .skor-table{width:100%; border-collapse:collapse; margin-top:10px; font-size:12px;}
  .dt2 .skor-table th{text-align:left; color:var(--muted); font-size:10.5px; text-transform:uppercase; letter-spacing:.04em; padding:6px 8px; border-bottom:1px solid var(--line); font-weight:700;}
  .dt2 .skor-table td{padding:7px 8px; border-bottom:1px solid #F2F4F3;}
  .dt2 .skor-table tr.blocker td{background:#FFF8F6;}
  .dt2 .skor-table .st-ok{color:var(--grab-dark); font-weight:700; white-space:nowrap;}
  .dt2 .skor-table .st-warn{color:#B42318; font-weight:700; white-space:nowrap;}
  .dt2 .rev-grid{display:grid; grid-template-columns:1fr 1.2fr; gap:20px; margin-top:14px; align-items:start;}
  .dt2 .rate-flex{display:flex; gap:18px; align-items:flex-start;}
  .dt2 .rate-big .r-num{font-size:40px; font-weight:800; letter-spacing:-.03em; line-height:1;}
  .dt2 .rate-big .r-stars{color:#F5A623; font-size:15px; margin-top:4px; letter-spacing:2px;}
  /* PΔ.208: незакрашенные звёзды starsHtml() — без этого правила «пустые»
     звёзды наследовали оранжевый и 0 оценок выглядели как 5★ */
  .dt2 .rate-big .r-stars .off{color:#E3E6E4;}
  .dt2 .rate-big .r-cnt{font-size:11.5px; color:var(--muted); margin-top:4px;}
  .dt2 .rate-rows{flex:1; display:flex; flex-direction:column; gap:5px; min-width:0;}
  .dt2 .rr{display:flex; align-items:center; gap:7px; font-size:11px; color:var(--muted);}
  .dt2 .rr .rr-bar{flex:1; height:8px; border-radius:4px; background:#EDF0EE; overflow:hidden;}
  .dt2 .rr .rr-bar i{display:block; height:100%; background:#F5A623; border-radius:4px;}
  .dt2 .rw-panel{border:1px solid #C7EEDA; background:#F5FBF7; border-radius:12px; padding:13px 15px; margin-top:12px;}
  .dt2 .rw-head{font-size:12.5px; font-weight:800; color:var(--grab-dark); display:flex; align-items:center; gap:7px; flex-wrap:wrap;}
  .dt2 .rw-chip{font-size:10px; font-weight:700; background:#fff; border:1px solid #C7EEDA; color:var(--grab-dark); padding:2px 8px; border-radius:99px;}
  .dt2 .rw-tiles{display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:10px;}
  .dt2 .rw-tile{background:#fff; border:1px solid #DBEEE3; border-radius:10px; padding:8px 10px; text-align:center;}
  .dt2 .rw-tile b{display:block; font-size:18px; color:var(--grab-dark);}
  .dt2 .rw-tile span{font-size:10px; color:var(--muted); font-weight:600;}
  .dt2 .rw-alltime{font-size:11px; color:#1B7A47; margin-top:8px;}
  .dt2 .soon-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:14px;}
  .dt2 .soon-tile{border:1px dashed #CBD5E1; border-radius:12px; padding:13px 15px; background:#FAFBFC;}
  .dt2 .soon-tile .sn-t{font-size:12.5px; font-weight:700; color:#475467;}
  .dt2 .soon-tile .sn-s{font-size:11px; color:var(--muted); margin-top:3px; line-height:1.45;}
  .dt2 .soon-badge{display:inline-block; font-size:9.5px; font-weight:800; letter-spacing:.05em; background:var(--blue-soft); color:#1D4ED8; padding:2px 8px; border-radius:99px; margin-bottom:6px;}
  .dt2 .fresh-banner{background:var(--blue-soft); border:1px solid #D3E2FC; color:#1E40AF; border-radius:12px; padding:11px 14px; font-size:12.5px; line-height:1.55; margin-bottom:16px;}
  .dt2 .fresh-banner b{color:#1D4ED8;}
  .dt2 .draft-chip{display:inline-block; font-size:9.5px; font-weight:800; letter-spacing:.05em; background:rgba(255,255,255,.2); padding:2px 7px; border-radius:99px; vertical-align:middle;}
  .dt2 .draft-chip.dark{background:var(--amber-soft); color:#92600A;}
  .dt2 .value-hero{background:linear-gradient(135deg,#101828,#1D2939); color:#fff; border-radius:var(--radius); padding:18px 20px; box-shadow:var(--shadow);}
  .dt2 .value-hero .vh-label{font-size:11px; text-transform:uppercase; letter-spacing:.08em; opacity:.75; font-weight:700;}
  .dt2 .value-hero .vh-num{font-size:30px; font-weight:800; letter-spacing:-.02em; margin:6px 0 2px; color:#FFD98A;}
  .dt2 .value-hero .vh-sub{font-size:12px; opacity:.85; line-height:1.5;}
  .dt2 .vh-break{display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:12px;}
  .dt2 .vh-cell{background:rgba(255,255,255,.08); border-radius:10px; padding:9px 11px;}
  .dt2 .vh-cell b{display:block; font-size:16px;}
  .dt2 .vh-cell span{font-size:10.5px; opacity:.8;}
  .dt2 .win-item{display:flex; gap:10px; align-items:flex-start; border:1px solid #DBEEE3; background:#F8FCFA; border-radius:12px; padding:10px 13px; margin-bottom:8px; font-size:12.5px;}
  .dt2 .win-ic{flex:none; font-size:15px;}
  .dt2 .win-item b{color:var(--ink);}
  .dt2 .win-item small{display:block; color:var(--muted); margin-top:1px; font-size:11px;}
  /* PΔ.259 п.35 — «горячая» плашка поимки закрытия: клиент должен заметить */
  .dt2 .win-item.win-hot{border-color:#F4C7C3; background:#FEF5F4; animation:dt2WinPulse 2s ease-out infinite;}
  @keyframes dt2WinPulse{0%{box-shadow:0 0 0 0 rgba(220,68,55,.35)}70%{box-shadow:0 0 0 8px rgba(220,68,55,0)}100%{box-shadow:0 0 0 0 rgba(220,68,55,0)}}

  /* ── PΔ.203 — client reviews page: full review cards + filter chips ── */
  .dt2 .rvc{border:1px solid var(--line); background:#fff; border-radius:var(--radius); box-shadow:var(--shadow); padding:16px 18px; margin-bottom:10px;}
  .dt2 .rvc.bad{border-color:#FBE9C6; background:linear-gradient(0deg,#fff,#FFFDF7);}
  .dt2 .rvc-head{display:flex; align-items:baseline; justify-content:space-between; gap:8px; margin-bottom:6px; flex-wrap:wrap;}
  .dt2 .rvc-meta{display:flex; align-items:center; gap:8px; flex-wrap:wrap;}
  .dt2 .rvc-author{font-weight:700; font-size:13px;}
  .dt2 .rvc-date{font-size:11.5px; color:var(--muted);}
  .dt2 .rvc-handled{font-size:11.5px; color:var(--grab-dark); font-weight:600;}
  .dt2 .rvc-body{font-size:13px; color:#344054; white-space:pre-line; margin-top:4px; line-height:1.5;}
  .dt2 .rvc-ordered{font-size:11.5px; color:var(--muted); margin-top:6px;}
  .dt2 .rvc-photos{display:flex; gap:8px; flex-wrap:wrap; margin-top:8px;}
  .dt2 .rvc-photos img{width:80px; height:80px; object-fit:cover; border-radius:10px; border:1px solid var(--line);}
  .dt2 .rvc-reply{margin-top:10px; margin-left:12px; padding:8px 12px; border-left:3px solid #7CE7AB; background:#F8FCFA; border-radius:0 10px 10px 0; font-size:12.5px; color:#344054;}
  .dt2 .rvc-reply .rvc-reply-l{font-size:11px; color:var(--grab-dark); font-weight:700; margin-bottom:2px;}
  .dt2 .rvc-actions{display:flex; justify-content:flex-end; align-items:center; gap:8px; margin-top:10px; flex-wrap:wrap;}
  .dt2 .btn-sm{display:inline-flex; align-items:center; border:0; border-radius:9px; padding:7px 13px; font-size:12px; font-weight:700; cursor:pointer;
    color:#fff; font-family:inherit; text-decoration:none; transition:filter .12s;}
  .dt2 .btn-sm:hover{filter:brightness(.92);}
  .dt2 .btn-sm.report{background:var(--red);}
  .dt2 .btn-sm.reply{background:var(--grab);}
  .dt2 .plat-chip{font-size:10px; font-weight:800; letter-spacing:.04em; padding:2px 8px; border-radius:6px;}
  .dt2 .plat-chip.grab{background:var(--grab-soft); color:var(--grab-dark);}
  .dt2 .plat-chip.gojek{background:var(--gojek-soft); color:var(--gojek-dark);}
  .dt2 .fchips{display:flex; flex-wrap:wrap; gap:6px; margin:0 0 16px; align-items:center;}
  .dt2 .fchips a{display:inline-flex; align-items:center; gap:5px; padding:6px 13px; border-radius:99px; border:1px solid var(--line); background:#fff;
    font-size:12px; font-weight:600; color:#344054; text-decoration:none; box-shadow:var(--shadow); transition:all .12s;}
  .dt2 .fchips a:hover{border-color:#CBD5E1;}
  .dt2 .fchips a.active{background:var(--ink); border-color:var(--ink); color:#fff;}
  .dt2 .fchips .cnt{opacity:.6; font-weight:700; font-size:11px;}
  .dt2 .fchips .sep{color:#CBD5E1; padding:0 3px;}

  /* ── colored trend spans (п.6) — trendHtml puts the class on the inner <span>,
     old CSS only targeted the container div, so all trends rendered gray ── */
  .dt2 .k-trend .good, .dt2 .mk-t .good, .dt2 .trendline .good{color:var(--grab-dark); font-weight:700;}
  .dt2 .k-trend .bad, .dt2 .mk-t .bad, .dt2 .trendline .bad{color:var(--red); font-weight:700;}
  .dt2 .k-trend .flat, .dt2 .mk-t .flat, .dt2 .trendline .flat{color:var(--muted);}
  .dt2 .trendline{font-size:10.5px; margin-top:4px; font-weight:600;}

  /* ── clickable hero badges (п.4) ── */
  .dt2 a.badge{text-decoration:none; cursor:pointer; transition:transform .12s, box-shadow .12s;}
  .dt2 a.badge:hover{transform:translateY(-1px); box-shadow:0 3px 10px rgba(16,24,40,.18);}
  .dt2 a.badge .ext{font-size:10px; opacity:.85; margin-left:2px;}

  /* ── chart granularity zoom (п.5) ── */
  .dt2 .zoomctl{display:inline-flex; background:#F4F6F5; border:1px solid var(--line); border-radius:9px; padding:2px; gap:1px; margin-left:auto;}
  .dt2 .zoomctl button{border:0; background:transparent; padding:4px 10px; border-radius:7px; font-size:11px; font-weight:700;
    color:var(--muted); cursor:pointer; font-family:inherit; transition:all .12s; letter-spacing:.02em;}
  .dt2 .zoomctl button:hover:not(:disabled){color:var(--ink);}
  .dt2 .zoomctl button.active{background:#fff; color:var(--ink); box-shadow:var(--shadow);}
  .dt2 .zoomctl button:disabled{opacity:.35; cursor:default;}

  /* ── list pagination (п.7) ── */
  .dt2 .pgnav{display:flex; align-items:center; justify-content:center; gap:10px; margin-top:10px;}
  .dt2 .pgnav button{border:1px solid var(--line); background:#fff; width:28px; height:28px; border-radius:9px; font-size:15px;
    font-weight:700; color:var(--ink); cursor:pointer; font-family:inherit; line-height:1; box-shadow:var(--shadow); transition:all .12s;}
  .dt2 .pgnav button:hover:not(:disabled){border-color:#CBD5E1; transform:translateY(-1px);}
  .dt2 .pgnav button:disabled{opacity:.3; cursor:default; box-shadow:none;}
  .dt2 .pgnav .pg-lbl{font-size:11.5px; font-weight:700; color:var(--muted); min-width:52px; text-align:center;}

  /* ── hero side slot + missed-revenue in hero (п.2/3/8) ── */
  .dt2 #heroSide{flex:0 1 360px; min-width:290px;}
  .dt2 #heroSide .health-card, .dt2 #heroSide .tier-card, .dt2 #heroSide .value-hero{min-width:0; max-width:none; width:100%;}
  .dt2 #heroSide .value-hero .vh-num{font-size:26px;}
  .dt2 .vh-note{font-size:10.5px; opacity:.7; margin-top:10px; line-height:1.5;}
  .dt2 .tier-card.tc-gojek{background:linear-gradient(135deg,#3B0A10,#7A1420 55%,#A31626);}
  .dt2 .tier-card.tc-gojek .tier-chip{background:rgba(255,255,255,.22);}

  /* ── PΔ.202 — chrome-only wrapper (grab tab): display:contents removes the
     wrapper box so the sticky topbar sticks to the page scroll, not inside a
     short div. Inheritance (fonts, CSS vars) still flows to the chrome. ── */
  .dt2.dt2-bare{display:contents;}

  /* ── custom date-range popover (fix 1) — same UX as the live grab dashboard ── */
  .dt2 .period-row{position:relative;}
  .dt2 .custom-pop{display:none; position:absolute; left:0; top:100%; margin-top:8px; background:#fff; border:1px solid var(--line);
    border-radius:12px; padding:12px; box-shadow:0 6px 24px rgba(16,24,40,.14); z-index:60;}
  .dt2 .custom-pop.open{display:flex; gap:8px; align-items:center; flex-wrap:wrap;}
  .dt2 .custom-pop input{border:1px solid var(--line); border-radius:8px; padding:7px 9px; font-family:inherit; font-size:13px; color:var(--ink);}
  .dt2 .custom-pop .apply{background:var(--grab); color:#fff; border:0; border-radius:8px; padding:8px 14px; font-weight:700; font-family:inherit; font-size:13px; cursor:pointer;}
  .dt2 .custom-pop .cp-err{flex-basis:100%; color:var(--red); font-size:11.5px; display:none;}
  .dt2 .custom-pop .cp-hint{flex-basis:100%; color:var(--muted); font-size:11px;}

  /* ── tier pager arrows in the hero Skor card (fix 4) ── */
  .dt2 .tier-pager{display:flex; align-items:center; gap:8px; margin-top:11px;}
  .dt2 .tier-pager button{border:0; background:rgba(255,255,255,.14); color:#fff; width:24px; height:24px; border-radius:8px;
    font-size:14px; font-weight:800; cursor:pointer; font-family:inherit; line-height:1; flex:none; transition:background .12s;}
  .dt2 .tier-pager button:hover{background:rgba(255,255,255,.28);}
  .dt2 .tier-pager .tp-name{font-size:13px; font-weight:800; min-width:74px; text-align:center;}
  .dt2 .tier-pager .tp-chip{font-size:10px; background:rgba(255,255,255,.16); padding:2px 7px; border-radius:99px; font-weight:600;}
  .dt2 .tier-pager .tp-chip.ok{background:rgba(124,231,171,.25); color:#B9F2D2;}
  .dt2 .tier-pager .tp-chip.short{background:rgba(255,217,138,.22); color:#FFD98A;}

  /* ── fix 2: Grab secondary KPI row fits the 5th tile (orders per bad rating) ── */
  @media (min-width:1021px){ .dt2 #gvKpis{grid-template-columns:repeat(5,1fr);} }

  @media (min-width:1021px){ .dt2 .kpis .k-value{font-size:19px;} }
  @media (max-width:1020px){
    .dt2 .kpis{grid-template-columns:repeat(3,1fr);}
    .dt2 .kpis .k-value{font-size:19px; white-space:normal; overflow-wrap:anywhere;}
    .dt2 .row-2-1{grid-template-columns:1fr;}
    .dt2 .row-1-1{grid-template-columns:1fr;}
    .dt2 .ads-grid{grid-template-columns:1fr;}
    .dt2 .actions-grid{grid-template-columns:1fr;}
    .dt2 .prev-grid{grid-template-columns:1fr;}
    .dt2 .mini-kpis{grid-template-columns:repeat(2,1fr);}
    .dt2 .soon-grid{grid-template-columns:repeat(2,1fr);}
    .dt2 .rev-grid{grid-template-columns:1fr;}
  }
  @media (max-width:640px){
    .dt2 .wrap{padding:0 14px 48px;}
    .dt2 .topbar-in{padding:8px 14px 0; gap:8px;}
    .dt2 .viewnav-row{padding:8px 14px 10px;}
    .dt2 .viewnav button, .dt2 .viewnav a{padding:7px 11px; font-size:12px;}
    .dt2 .updated{font-size:11px;}
    .dt2 .hero{padding:18px 0 12px;}
    .dt2 .card{padding:16px 14px;}
    .dt2 .kpis{grid-template-columns:repeat(2,1fr); gap:10px;}
    .dt2 .kpi{padding:12px;}
    .dt2 .kpi .k-value{font-size:17px; white-space:normal; overflow-wrap:anywhere;}
    .dt2 .hero h1{font-size:21px;}
    .dt2 .health-card, .dt2 .tier-card{min-width:100%;}
    .dt2 #heroSide{flex-basis:100%; min-width:100%;}
    .dt2 .rsel select{max-width:170px;}
    .dt2 .zoomctl{margin-left:0;}
    .dt2 .chart-box{height:240px;}
    .dt2 .periods button{padding:6px 10px; font-size:12px; flex:1 1 auto;}
    .dt2 .mini-kpis{grid-template-columns:repeat(2,1fr); gap:10px;}
    .dt2 .mini-kpi .mk-v{font-size:15.5px; white-space:normal; overflow-wrap:anywhere;}
    .dt2 .ops-grid{grid-template-columns:1fr;}
    .dt2 .status-grid{grid-template-columns:1fr;}
    .dt2 .flag-grid{grid-template-columns:1fr;}
    .dt2 .soon-grid{grid-template-columns:1fr;}
    .dt2 .tip::after{width:180px; max-width:70vw;}
    .dt2 .vh-break{grid-template-columns:1fr;}
  }