:root{
  color-scheme:light;
  --canvas:#ffffff;
  --paper:#ffffff;
  --paper-raised:#f6f7f9;
  --ink:#111318;
  --muted:#667085;
  --line:#dde2ea;
  --accent:#155eef;
  --accent-strong:#1248b9;
  --accent-soft:#edf4ff;
  --green:#087a55;
  --green-soft:#e8f7f0;
  --orange:#9a6700;
  --orange-soft:#fff7e6;
  --danger:#b42318;
  --danger-soft:#fff0ee;
  --display:Inter,"Microsoft YaHei UI","Microsoft YaHei",Arial,sans-serif;
  --data:Inter,"Microsoft YaHei UI","Microsoft YaHei",Arial,sans-serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--canvas)}
body{margin:0;min-width:320px;background:var(--canvas);color:var(--ink);font:14px/1.5 var(--display)}
button,input,select{font:inherit}
button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid rgba(21,94,239,.24);outline-offset:2px}
.skip-link{position:fixed;z-index:100;top:8px;left:8px;padding:9px 12px;border-radius:7px;background:var(--ink);color:#fff;transform:translateY(-160%)}
.skip-link:focus{transform:translateY(0)}

.dashboard-app{display:grid;grid-template-columns:188px minmax(0,1fr);min-height:100vh}
.dashboard-sidebar{position:sticky;z-index:20;top:0;display:flex;flex-direction:column;height:100vh;padding:20px 14px;border-right:1px solid var(--line);background:var(--paper)}
.dashboard-brand{display:flex;align-items:center;gap:10px;padding:7px 8px 24px;font-size:15px;white-space:nowrap}
.brand-mark{display:grid;place-items:center;width:36px;height:32px;border-radius:9px;background:var(--ink);color:#fff;font:900 9px/1 var(--data);letter-spacing:-.02em}
.sidebar-nav{display:grid;gap:4px}
.sidebar-nav button{display:flex;align-items:center;width:100%;min-height:44px;padding:10px 12px;border:0;border-radius:8px;background:transparent;color:#5d6675;font-weight:750;text-align:left;cursor:pointer}
.sidebar-nav button:hover{background:var(--paper-raised);color:var(--ink)}
.sidebar-nav button.is-active{background:var(--ink);color:#fff}
.sidebar-note{margin-top:auto;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--paper)}
.sidebar-note strong{font-size:12px}
.sidebar-note p{margin:5px 0 0;color:var(--muted);font-size:11px;line-height:1.6}

.dashboard-main{min-width:0}
.dashboard-topbar{position:sticky;z-index:15;top:0;display:flex;align-items:center;justify-content:space-between;min-height:64px;padding:0 30px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.96);backdrop-filter:blur(10px);color:var(--muted);font-size:13px}
.sync-status{display:flex;align-items:center;gap:7px;color:#536174;font-size:12px}
.sync-status i{width:7px;height:7px;border-radius:50%;background:var(--orange)}
.dashboard-shell{position:relative;width:100%;max-width:1500px;margin:0 auto;padding:30px 30px 48px}

.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;padding:0 0 22px}
.page-header h1{margin:0 0 5px;font-size:30px;line-height:1.2;letter-spacing:-.04em}
.page-header p:not(.eyebrow){margin:0;color:var(--muted);font-size:13px}
.eyebrow,.section-kicker{margin:0 0 5px;color:var(--accent);font-size:10px;font-weight:900;letter-spacing:.1em}
.data-meta{display:grid;grid-template-columns:repeat(3,max-content);margin:0;align-self:center}
.data-meta div{padding:2px 10px;border-left:1px solid var(--line)}
.data-meta dt{color:var(--muted);font-size:10px}
.data-meta dd{margin:2px 0 0;color:var(--ink);font:800 11px var(--data)}

.filters{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:0 0 18px;padding:9px;border:1px solid var(--line);border-radius:10px;background:var(--paper-raised)}
.filters label{display:grid;gap:5px;padding:3px 5px;color:var(--muted);font-size:11px;font-weight:800}
.filters input,.filters select,.metric-switch select{width:100%;min-height:40px;padding:7px 9px;border:1px solid var(--line);border-radius:7px;background:var(--paper);color:var(--ink);outline:none}
.filters input:focus,.filters select:focus,.metric-switch select:focus{border-color:var(--accent)}

.layer-section{margin:0 0 20px;scroll-margin-top:78px}
.layer-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;margin:0 2px 12px}
.layer-heading>div{position:relative;padding-left:44px}
.layer-heading h2{margin:0;font-size:23px;letter-spacing:-.035em}
.layer-heading p:not(.section-kicker){margin:4px 0 0;color:var(--muted);font-size:12px}
.layer-index{position:absolute;left:0;top:1px;display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--line);border-radius:8px;color:var(--accent);font:900 11px var(--data)}
.layer-tag{padding:5px 9px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font:800 11px var(--data);white-space:nowrap}

.scope-counts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--line);border-bottom:0;border-radius:10px 10px 0 0;overflow:hidden}
.scope-counts article{display:grid;grid-template-columns:1fr auto;align-items:end;gap:3px 20px;padding:14px 16px;border-right:1px solid var(--line);background:var(--paper)}
.scope-counts article:last-child{border-right:0}
.scope-counts span{color:var(--muted);font-size:12px;font-weight:800}
.scope-counts strong{grid-row:1/3;grid-column:2;font:900 27px/1 var(--data);letter-spacing:-.04em}
.scope-counts small{color:var(--muted);font-size:10px}

.summary-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin-bottom:14px;border:1px solid var(--line);border-radius:0 0 10px 10px;overflow:hidden}
.summary-group{min-width:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper)}
.summary-group:nth-child(2n){border-right:0}
.summary-group:nth-last-child(-n+2){border-bottom:0}
.summary-group>header{display:flex;align-items:center;gap:9px;padding:11px 14px;border-bottom:1px solid var(--line);background:var(--paper-raised)}
.summary-group>header span{padding:3px 6px;border-radius:5px;background:var(--accent-soft);color:var(--accent-strong);font:900 9px var(--data);letter-spacing:.08em}
.summary-group h3{margin:0;font-size:15px}
.summary-group>header small{color:var(--muted);font-size:11px;font-weight:600}
.summary-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.summary-metric{min-width:0;min-height:112px;padding:14px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper)}
.summary-metric:nth-child(3n){border-right:0}
.summary-metric:nth-last-child(-n+3){border-bottom:0}
.summary-metric:hover{background:#f8faff}
.summary-metric span,.summary-metric small{display:block;color:var(--muted);font-size:11px}
.summary-metric strong{display:block;margin:12px 0 7px;font:900 22px/1.08 var(--data);letter-spacing:-.035em;overflow-wrap:anywhere}
.summary-metric.is-missing{background:#fafbfc}
.summary-metric.is-missing strong{color:#8a94a4}
.summary-metric.is-missing small{color:var(--orange)}

.lower-grid{display:grid;grid-template-columns:minmax(0,1.58fr) minmax(300px,.72fr);gap:14px}
.panel,.layer-section#teams,.layer-section#sessions{padding:17px;border:1px solid var(--line);border-radius:10px;background:var(--paper)}
.panel-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.panel h3{margin:0;font-size:18px;letter-spacing:-.02em}
.metric-switch{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px;font-weight:800}
.metric-switch select{width:136px;min-height:36px;background:var(--paper-raised)}
.trend-chart{display:block;width:100%;height:238px;overflow:visible}
.trend-grid-line{stroke:var(--line);stroke-width:1}
.trend-line{fill:none;stroke:var(--accent);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.trend-point circle{fill:var(--paper);stroke:var(--accent);stroke-width:3}
.trend-value-label{fill:var(--ink);font:800 11px var(--data);paint-order:stroke;stroke:var(--paper);stroke-width:4px;stroke-linejoin:round}
.trend-date{fill:var(--muted);font:700 11px var(--data)}
.quality-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.quality-grid>div{padding:11px 12px;border:1px solid var(--line);border-radius:8px;background:var(--paper-raised)}
.quality-grid span{display:block;color:var(--muted);font-size:11px}
.quality-grid strong{display:block;margin-top:5px;font:900 20px var(--data)}
.quality-note{margin:11px 0 0;padding:10px 11px;border-left:3px solid var(--accent);background:var(--accent-soft);color:var(--muted);font-size:11px}

.layer-section#teams,.layer-section#sessions{margin-bottom:20px}
.layer-section#teams .layer-heading,.layer-section#sessions .layer-heading{margin-bottom:14px}
.session-team-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 14px}
.session-team-card{position:relative;display:grid;gap:7px;min-height:106px;padding:14px;border:1px solid var(--line);border-radius:9px;background:var(--paper);color:var(--ink);text-align:left;cursor:pointer;transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease}
.session-team-card:hover{border-color:#a7c1f8;box-shadow:0 7px 16px rgba(21,94,239,.08);transform:translateY(-1px)}
.session-team-card.is-selected{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}
.session-team-card small{color:var(--muted);font-size:10px;font-weight:800}
.session-team-card strong{font-size:17px;letter-spacing:-.02em}
.session-team-card span{color:var(--accent);font:900 12px var(--data)}
.session-browser{margin:0 0 14px;padding:14px;border:1px solid var(--line);border-radius:9px;background:linear-gradient(180deg,#f8fbff,var(--paper))}
.session-browser-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.session-browser-heading h3{margin:0;font-size:17px;letter-spacing:-.02em}
.session-browser-heading p:not(.section-kicker){margin:3px 0 0;color:var(--muted);font-size:11px}
.text-action{padding:6px 8px;border:0;border-radius:6px;background:transparent;color:var(--accent);font-size:11px;font-weight:850;cursor:pointer}
.text-action:hover{background:var(--accent-soft)}
.session-list-filters{display:flex;gap:9px;margin:0 0 12px}
.session-list-filters label{display:grid;gap:4px;min-width:180px;color:var(--muted);font-size:10px;font-weight:800}
.session-list-filters select{width:100%;min-height:38px;padding:7px 9px;border:1px solid var(--line);border-radius:7px;background:var(--paper);color:var(--ink);outline:none}
.session-list-filters select:focus{border-color:var(--accent)}
.table-wrap{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;border:1px solid var(--line);border-radius:8px;background:var(--paper)}
.data-table{width:100%;min-width:1100px;border-collapse:separate;border-spacing:0;font-size:12px}
.data-table th,.data-table td{padding:11px 10px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;vertical-align:middle}
.data-table th{position:sticky;z-index:2;top:0;background:var(--paper-raised);color:#5f6b7b;font-weight:800}
.data-table tbody tr:last-child td{border-bottom:0}
.data-table tbody tr:hover>td{background:#f8faff}
.data-table tbody tr.is-selected>td{background:var(--accent-soft)}
.data-table td:not(:first-child){font-family:var(--data);font-variant-numeric:tabular-nums}
.data-table td small{display:block;margin-top:3px;color:var(--orange);font-size:9px}
.team-link,.session-link{display:flex;align-items:center;gap:8px;border:0;background:transparent;padding:0;color:var(--accent);font-weight:900;cursor:pointer}
.team-link span{padding:2px 5px;border-radius:4px;background:var(--accent-soft);font-size:9px}
.session-link{display:inline-flex}
.team-detail-row>td{padding:0!important;background:#f8faff!important}
.team-detail{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;border-left:3px solid var(--accent)}
.team-detail>div{min-width:0;padding:13px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.team-detail>div:nth-child(5n){border-right:0}
.team-detail>div:nth-last-child(-n+5){border-bottom:0}
.team-detail span,.team-detail small{display:block;color:var(--muted);font-size:10px;white-space:normal}
.team-detail strong{display:block;margin:6px 0 3px;font:900 15px var(--data);overflow-wrap:anywhere;white-space:normal}

.session-summary{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:14px 0 10px;padding:14px 15px;border:1px solid var(--line);border-radius:8px;background:var(--paper)}
.session-summary>header{display:flex;align-items:center;justify-content:space-between;gap:14px;min-width:280px}
.session-summary header>div{display:grid;gap:2px}
.session-summary header span:not(.status-pill),.session-summary small,.session-summary-grid span{color:var(--muted);font-size:10px}
.session-summary header strong{font-size:16px}
.session-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));gap:0;flex:1;max-width:660px}
.session-summary-grid>div{padding:3px 14px;border-left:1px solid var(--line)}
.session-summary-grid span,.session-summary-grid strong{display:block}
.session-summary-grid strong{margin-top:4px;font:900 16px var(--data)}
.secondary-action{min-height:38px;padding:8px 14px;border:1px solid var(--ink);border-radius:8px;background:var(--ink);color:#fff;font-weight:800;cursor:pointer}
.secondary-action:hover{background:#2c3038}
.secondary-action:disabled{cursor:not-allowed;opacity:.45}
.session-detail{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}
.session-metric-group{border:1px solid var(--line);border-radius:8px;overflow:hidden}
.session-metric-group>header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--line);background:var(--paper-raised)}
.session-metric-group>header span{font-weight:900}
.session-metric-group>header small{color:var(--muted)}
.session-metric-group>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.session-metric{min-width:0;min-height:104px;padding:12px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.session-metric:nth-child(3n){border-right:0}
.session-metric span,.session-metric small{display:block;color:var(--muted);font-size:10px}
.session-metric strong{display:block;margin:9px 0 5px;font:900 17px/1.15 var(--data);overflow-wrap:anywhere}
.session-metric.is-missing{background:#fafbfc}

.status-pill{display:inline-block;padding:5px 8px;border-radius:7px;font-size:11px;font-weight:900;white-space:nowrap}
.status-pill.neutral{background:var(--accent-soft);color:var(--accent-strong)}
.status-pill.ok{background:var(--green-soft);color:var(--green)}
.status-pill.warn{background:var(--orange-soft);color:var(--orange)}
.status-pill.bad{background:var(--danger-soft);color:var(--danger)}
.muted{color:var(--muted)}
.empty{margin:0;padding:28px;text-align:center;color:var(--muted)}
[hidden]{display:none!important}

@media(max-width:1279px){
  .filters{grid-template-columns:repeat(3,1fr)}
  .session-team-cards{grid-template-columns:repeat(3,minmax(0,1fr))}
  .summary-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .summary-metric:nth-child(3n){border-right:1px solid var(--line)}
  .summary-metric:nth-child(2n){border-right:0}
  .summary-metric:nth-last-child(-n+3){border-bottom:1px solid var(--line)}
  .summary-metric:nth-last-child(-n+2){border-bottom:0}
  .team-detail{grid-template-columns:repeat(2,minmax(0,1fr))}
  .team-detail>div:nth-child(5n){border-right:1px solid var(--line)}
  .team-detail>div:nth-child(2n){border-right:0}
  .team-detail>div:nth-last-child(-n+5){border-bottom:1px solid var(--line)}
  .team-detail>div:nth-last-child(-n+2){border-bottom:0}
}

@media(max-width:1020px){
  .dashboard-app{grid-template-columns:76px minmax(0,1fr)}
  .dashboard-sidebar{padding:18px 10px}
  .dashboard-brand{justify-content:center;padding-left:0;padding-right:0}
  .dashboard-brand strong,.sidebar-nav span,.sidebar-note{display:none}
  .sidebar-nav button{justify-content:center;padding:10px}
  .sidebar-nav button::before{content:attr(data-target);font:900 9px var(--data);text-transform:uppercase}
  .dashboard-topbar,.dashboard-shell{padding-left:22px;padding-right:22px}
  .page-header{align-items:flex-start;flex-direction:column}
  .lower-grid{grid-template-columns:1fr}
  .session-summary{align-items:flex-start;flex-direction:column}
  .session-summary-grid{width:100%;max-width:none}
}

@media(max-width:760px){
  html{scroll-behavior:auto}
  .dashboard-app{display:block}
  .dashboard-sidebar{position:static;display:block;width:100%;height:auto;padding:10px 16px;border-right:0;border-bottom:1px solid var(--line)}
  .dashboard-brand,.sidebar-note{display:none}
  .sidebar-nav{display:flex;overflow-x:auto}
  .sidebar-nav button{justify-content:center;min-width:max-content;min-height:38px;padding:8px 11px}
  .sidebar-nav button::before{display:none}
  .sidebar-nav span{display:inline}
  .dashboard-topbar{min-height:54px;padding:0 16px;font-size:12px}
  .dashboard-shell{padding:20px 16px 34px}
  .page-header{padding-bottom:15px}
  .page-header h1{font-size:26px}
  .data-meta{grid-template-columns:repeat(3,1fr);width:100%}
  .data-meta div{padding:6px 8px}
  .filters{grid-template-columns:1fr 1fr}
  .session-team-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .layer-heading{align-items:flex-start}
  .layer-heading h2{font-size:20px}
  .summary-groups{grid-template-columns:1fr}
  .summary-group{border-right:0}
  .summary-group:nth-last-child(-n+2){border-bottom:1px solid var(--line)}
  .summary-group:last-child{border-bottom:0}
  .summary-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .session-detail{grid-template-columns:1fr}
  .session-summary-grid{grid-template-columns:1fr}
  .session-summary-grid>div{padding:8px 0;border-left:0;border-top:1px solid var(--line)}
  .session-summary-grid>div:first-child{border-top:0}
}

@media(max-width:480px){
  .dashboard-topbar .sync-status{font-size:0}
  .filters{grid-template-columns:1fr}
  .session-team-cards{grid-template-columns:1fr}
  .session-list-filters{display:grid;grid-template-columns:1fr;gap:8px}
  .session-list-filters label{min-width:0}
  .data-meta{grid-template-columns:1fr 1fr}
  .data-meta div:last-child{grid-column:1/-1}
  .scope-counts{grid-template-columns:1fr}
  .scope-counts article{border-right:0;border-bottom:1px solid var(--line)}
  .scope-counts article:last-child{border-bottom:0}
  .summary-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .summary-metric{min-height:106px;padding:12px}
  .summary-metric strong{font-size:19px}
  .quality-grid{grid-template-columns:1fr}
  .panel-title-row{align-items:flex-start;flex-direction:column}
  .metric-switch{width:100%;justify-content:space-between}
  .team-detail{grid-template-columns:1fr}
  .team-detail>div{border-right:0!important;border-bottom:1px solid var(--line)!important}
  .team-detail>div:last-child{border-bottom:0!important}
}

@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
