/* App Store Connect: restrained surfaces, clear data hierarchy, native SVG charts. */
.asc-page {
  --ink: var(--text); --ink-2: var(--text-2); --ink-3: var(--text-3);
  --line: var(--border); --line-strong: var(--border-strong);
  --neutral-bg: var(--surface-2); --danger-bg: var(--danger-soft);
  --shadow-card: var(--shadow-sm); --shadow-pop: var(--shadow-lg); --shadow-xs: var(--shadow-sm);
  --asc-accent: var(--accent);
  --asc-accent-ink: var(--on-accent);
  --asc-accent-soft: var(--soft);
  --asc-accent-line: var(--positive-border);
  --asc-gold: var(--help-icon);
  display: flex;
  flex-direction: column;
  gap: 28px;
  min-width: 0;
}
.asc-page * { box-sizing: border-box; }
.asc-page [hidden] { display: none !important; }
.asc-page p { margin: 0; }
.asc-page h3 { margin: 0; font-size: 17px; font-weight: 650; letter-spacing: -.025em; line-height: 1.4; }
.asc-page-head .page-title { font-family: var(--font-heading); font-size: 37px; font-weight: 400; letter-spacing: -1.25px; line-height: 1.16; }
.asc-page-head { display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.asc-muted { color: var(--ink-2); font-size: 13px; line-height: 1.7; }
.asc-caption { color: var(--ink-2); font-size: 11px; line-height: 1.65; overflow-wrap: anywhere; }
.asc-label { color: var(--ink-2); font-size: 12px; font-weight: 550; line-height: 1.5; }
.asc-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.asc-between { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.asc-grow { flex: 1; min-width: 0; }
.asc-spaced { margin-top: 18px !important; }
.asc-page .button { font-size: 12px; min-height: 38px; }
.asc-page .button--primary { color: var(--asc-accent-ink); background: var(--asc-accent); border-color: transparent; }
.asc-page .button--primary:hover { background: var(--accent-hover); }
.asc-page .button:disabled { opacity: .5; cursor: not-allowed; filter: none; }
.asc-page .button .icon { width: 15px; height: 15px; }

.asc-tabs { display: flex; gap: 6px; overflow-x: auto; border-bottom: 1px solid var(--line); margin-top: -5px; padding: 3px 3px 12px; scrollbar-width: thin; }
.asc-tab { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; min-height: 44px; padding: 10px 14px; border: 1px solid transparent; border-radius: 10px; background: transparent; color: var(--ink-2); font-size: 12px; font-weight: 600; line-height: 1.4; white-space: nowrap; transition: background 150ms, color 150ms, border-color 150ms; touch-action: manipulation; }
@media (hover: hover) {
  .asc-tab:hover { color: var(--ink); background: var(--surface-hover); }
}
.asc-tab[aria-selected="true"], .asc-tab:active { color: var(--asc-accent); background: var(--asc-accent-soft); border-color: var(--asc-accent-line); }
.asc-tab:focus-visible { outline: 3px solid var(--focus); outline-offset: 1px; box-shadow: none; }
.asc-tab-body { min-width: 0; outline: none; }
.asc-tab-body:focus-visible { outline: 3px solid var(--focus); outline-offset: 6px; }
.asc-section-stack { display: flex; flex-direction: column; gap: 22px; min-width: 0; }
.asc-panel { padding: 24px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow-card); min-width: 0; }
.asc-panel-head { display: flex; flex-direction: column; gap: 5px; margin-bottom: 20px; }
.asc-panel > .button--quiet:last-child { margin-top: 12px; padding-left: 0; color: var(--asc-accent); }
.asc-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.asc-metric { display: flex; flex-direction: column; gap: 15px; padding: 21px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); min-width: 0; }
.asc-metric--accent { background: var(--asc-accent-soft); border-color: var(--asc-accent-line); }
.asc-metric--accent .asc-label, .asc-metric--accent .asc-metric-value { color: var(--asc-accent); }
.asc-metric-value { display: block; font-size: clamp(25px, 2.4vw, 34px); font-weight: 650; letter-spacing: -.05em; line-height: 1.2; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.asc-metric .asc-caption { margin-top: auto; font-size: 10px; }
.asc-overview-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.asc-release-row { display: flex; align-items: center; gap: 12px; padding: 16px 0; border-bottom: 1px solid var(--line); font-size: 13px; }
.asc-release-row:last-of-type { border-bottom: 0; }
.asc-release-row .pill { font-size: 10px; white-space: normal; text-align: center; }
.asc-release-row strong { font-weight: 600; }
.asc-platform-mark { display: grid; place-items: center; width: 48px; height: 38px; flex: 0 0 48px; padding: 0 4px; border: 1px solid var(--line); border-radius: 11px; color: var(--ink-2); background: var(--bg); font-weight: 600; font-size: 10px; line-height: 1; white-space: nowrap; }

.asc-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.asc-field { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.asc-input { width: 100%; min-height: 41px; padding: 10px 12px; background: var(--bg); border: 1px solid var(--line-strong); border-radius: 9px; color: var(--ink); font: inherit; font-size: 12px; line-height: 1.4; transition: border-color 150ms, box-shadow 150ms; }
select.asc-input { padding-right: 26px; text-overflow: ellipsis; }
.asc-input::placeholder { color: var(--ink-3); }
.asc-input:focus-visible { outline: none; border-color: var(--asc-accent); box-shadow: 0 0 0 3px var(--asc-accent-line); }
.asc-input[type="date"], .asc-input[type="month"] { min-width: 0; max-width: 100%; }
.asc-toolbar { display: flex; align-items: flex-end; gap: 14px; flex-wrap: wrap; }
.asc-toolbar .asc-field { flex: 1; min-width: 130px; }
.asc-chart-controls { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 14px; margin: 18px 0; }
.asc-notice { display: flex; align-items: flex-start; gap: 10px; padding: 14px 16px; color: var(--ink-2); background: var(--asc-accent-soft); border: 1px solid var(--asc-accent-line); border-radius: 10px; font-size: 12px; line-height: 1.65; }
.asc-notice .icon { width: 16px; height: 16px; flex: 0 0 16px; margin-top: 2px; color: var(--asc-accent); }
.asc-notice p { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.asc-notice--error { color: var(--danger); border-color: color-mix(in srgb, var(--danger) 20%, transparent); background: var(--danger-bg); flex-wrap: wrap; }
.asc-notice--error .icon { color: var(--danger); }
.asc-panel > .asc-notice, .asc-panel > div[aria-live] > .asc-notice { margin-top: 18px; }
.asc-empty { display: flex; align-items: center; flex-direction: column; gap: 9px; text-align: center; padding: 36px 20px; }
.asc-empty > .icon { display: grid; place-items: center; width: 38px; height: 38px; padding: 9px; border-radius: 12px; background: var(--asc-accent-soft); color: var(--asc-accent); margin-bottom: 4px; }
.asc-empty > .asc-muted { max-width: 460px; font-size: 12px; }
.asc-empty > .button { margin-top: 12px; }
.asc-loading { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 90px; padding: 24px 12px; font-size: 12px; color: var(--ink-2); }
.asc-spinner { height: 16px; width: 16px; border: 2px solid var(--line-strong); border-top-color: var(--asc-accent); border-radius: 50%; animation: asc-spin .8s linear infinite; }
@keyframes asc-spin { to { transform: rotate(360deg); } }

.asc-chart-summary { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; margin: 24px 0 14px; }
.asc-chart-total { display: block; font-size: 36px; font-weight: 600; letter-spacing: -.045em; line-height: 1.3; font-variant-numeric: tabular-nums; }
.asc-chart { width: 100%; min-width: 0; overflow: hidden; }
.asc-chart > svg { display: block; width: 100%; height: auto; min-height: 170px; overflow: visible; }
.asc-chart-grid { stroke: var(--line); stroke-width: 1; stroke-dasharray: 3 4; }
.asc-chart-label { fill: var(--ink-2); font-family: var(--font-sans); font-size: 10px; font-variant-numeric: tabular-nums; }
.asc-analytics-trends .asc-chart-label { font-size: 12px; }
.asc-chart-area { fill: var(--asc-accent); fill-opacity: .07; }
.asc-chart-line { fill: none; stroke: var(--asc-accent); stroke-width: 2.5; stroke-linejoin: round; stroke-linecap: round; }
.asc-chart-point { fill: var(--surface); stroke: var(--asc-accent); stroke-width: 2; }
.asc-chart-point:hover, .asc-chart-point:focus { fill: var(--asc-accent); stroke-width: 4; }
.asc-bars { display: flex; flex-direction: column; gap: 15px; padding: 12px 0; min-width: 0; }
.asc-bar-row { display: flex; flex-direction: column; gap: 7px; font-size: 11px; min-width: 0; }
.asc-bar-row .asc-between > span { overflow-wrap: anywhere; }
.asc-bar-row strong { font-weight: 550; font-variant-numeric: tabular-nums; white-space: nowrap; }
.asc-bar-row svg { width: 100%; height: 7px; display: block; }
.asc-bar-track { fill: var(--neutral-bg); }
.asc-bar-fill { fill: var(--asc-accent); }
.asc-bar-negative { fill: var(--danger); }
.asc-details { border-top: 1px solid var(--line); margin-top: 18px; padding-top: 13px; min-width: 0; }
.asc-details[open] > summary { margin-bottom: 14px; }
.asc-table-wrap { overflow: auto; max-height: 500px; border: 1px solid var(--line); border-radius: 10px; scrollbar-width: thin; }
.asc-table { border-collapse: collapse; width: 100%; font-size: 11px; white-space: nowrap; text-align: left; }
.asc-table th { position: sticky; top: 0; z-index: 1; background: var(--bg); color: var(--ink-2); font-weight: 550; }
.asc-table th, .asc-table td { padding: 12px 14px; border-bottom: 1px solid var(--line); vertical-align: top; }
.asc-table tr:last-child td { border-bottom: 0; }
.asc-table tbody tr:hover { background: var(--surface-hover); }
.asc-table code { font-family: var(--font-mono); font-size: 10px; }
.asc-json { max-width: 100%; overflow: auto; max-height: 380px; background: var(--bg); padding: 15px; border: 1px solid var(--line); border-radius: 8px; font-family: var(--font-mono); font-size: 10px; line-height: 1.7; text-align: left; }
.asc-pagination { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 16px; }
.asc-review-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.asc-review { padding: 23px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); display: flex; flex-direction: column; gap: 13px; min-width: 0; }
.asc-review h3 { font-size: 15px; overflow-wrap: anywhere; }
.asc-review-body { font-size: 13px; line-height: 1.8; white-space: pre-wrap; overflow-wrap: anywhere; }
.asc-review > .asc-caption { margin-top: auto; padding-top: 5px; }
.asc-stars { color: var(--asc-gold); letter-spacing: 2px; font-size: 15px; }
.asc-review-reply { background: var(--bg); border-left: 2px solid var(--asc-accent-line); padding: 12px 14px; border-radius: 0 7px 7px 0; font-size: 12px; line-height: 1.75; overflow-wrap: anywhere; }
.asc-review-reply strong { font-size: 11px; }
.asc-rating-summary { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 40px; align-items: center; }
.asc-rating-score { display: flex; flex-direction: column; gap: 8px; align-items: center; }
.asc-rating-score > strong { font-size: 54px; font-weight: 600; letter-spacing: -.06em; line-height: 1.1; }
.asc-rating-score .asc-muted { font-size: 11px; }

@media (max-width: 1200px) {
  .asc-metric { padding: 17px; }
  .asc-panel { padding: 20px; }
}
@media (max-width: 720px) {
  .asc-page-head .page-title { font-size: 30px; }
  .asc-page { gap: 22px; }
  .asc-page-head { flex-direction: column; align-items: flex-start; }
  .asc-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .asc-metric { gap: 12px; }
  .asc-overview-grid, .asc-review-list { grid-template-columns: minmax(0, 1fr); }
  .asc-analytics-trends .asc-chart-label { font-size: 16px; }
  .asc-panel { padding: 18px; }
  .asc-rating-summary { grid-template-columns: 120px minmax(0, 1fr); gap: 20px; }
  .asc-chart-total { font-size: 30px; }
  .asc-chart-summary { align-items: flex-start; flex-direction: column; gap: 6px; }
  .asc-chart-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 420px) {
  .asc-chart-controls { grid-template-columns: minmax(0, 1fr); }
  .asc-rating-summary { grid-template-columns: 95px minmax(0, 1fr); gap: 12px; }
  .asc-rating-score > strong { font-size: 44px; }
}
@media (prefers-reduced-motion: reduce) {
  .asc-spinner { animation: none; }
  .asc-page * { transition: none; }
}

.asc-analytics-toolbar { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.asc-analytics-toolbar .asc-field { min-width: 180px; }
.asc-sync-status:empty { display: none; }
.asc-sync-status .asc-loading { justify-content: flex-start; min-height: 28px; padding: 0; }

/* Exploratory dashboards: quiet chrome, consistent scales, direct manipulation. */
.asc-page {
  --asc-series-1: var(--asc-accent);
  --asc-series-2: var(--help-icon);
  --asc-series-3: var(--nav-ink);
  --asc-series-4: var(--danger);
  gap: 26px;
}
.asc-panel { border-radius: var(--radius-lg); box-shadow: none; }
.asc-panel-head .asc-muted { font-size: 12px; }
.asc-section-heading { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
.asc-section-heading > div { min-width: 0; }
.asc-section-heading .asc-muted { margin-top: 4px; font-size: 12px; }
.asc-section-heading > .button { color: var(--asc-accent); }
.asc-metric { position: relative; gap: 9px; padding: 20px; border-radius: var(--radius-lg); }
.asc-metric--accent { background: var(--surface); border-color: var(--line); }
.asc-metric--accent .asc-label { color: var(--ink-2); }
.asc-metric--accent .asc-metric-value { color: var(--ink); }
.asc-metric .asc-caption { font-size: 11px; }
.asc-sparkline { height: 36px; width: 100%; margin-top: 8px; overflow: visible; }
.asc-sparkline .asc-chart-line { stroke-width: 2; vector-effect: non-scaling-stroke; }
.asc-master-detail { display: grid; grid-template-columns: minmax(250px,.85fr) minmax(0,1.55fr); gap: 22px; align-items: start; }
.asc-version-list { display: grid; gap: 12px; }
.asc-version-card, .asc-build-row, .asc-row-link, .asc-performance-choice {
  appearance: none; font: inherit; color: var(--ink); text-align: left; cursor: pointer; min-width: 0; width: 100%;
}
.asc-version-card { display: grid; gap: 12px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 20px; transition: background 150ms, border-color 150ms; }
.asc-version-card:hover { background: var(--surface-hover); }
.asc-version-card[aria-pressed="true"] { background: var(--asc-accent-soft); border-color: var(--asc-accent); }
.asc-version-card strong { font-size: 23px; font-weight: 600; letter-spacing: -.04em; }
.asc-version-card .asc-between { flex-wrap: wrap; gap: 9px; }
.asc-version-card .asc-caption + .asc-caption { margin-top: -6px; }
.asc-page .pill { font-size: 11px; max-width: 100%; }
.asc-detail { min-height: 320px; }
.asc-detail-title { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.asc-detail-title > .asc-label { flex-basis: 100%; }
.asc-detail-title h3 { font-size: 27px; letter-spacing: -.035em; margin-right: auto; }
.asc-detail-section { border-top: 1px solid var(--line); margin-top: 24px; padding-top: 23px; min-width: 0; }
.asc-detail-section > .asc-between { flex-wrap: wrap; }
.asc-detail-section .asc-segments { margin-bottom: 22px; }
.asc-detail-section > h3 + .asc-segments { margin: 14px 0 0; }
.asc-localized-copy h3 { margin-bottom: 10px; }
.asc-prose { white-space: pre-wrap; overflow-wrap: anywhere; color: var(--ink-2); line-height: 1.85; font-size: 13px; }
.asc-details h4 { font-size: 12px; margin: 18px 0 8px; font-weight: 600; }
.asc-facts { display: grid; grid-template-columns: minmax(80px,1fr) minmax(0,1.4fr); gap: 13px 18px; margin: 24px 0 0; font-size: 12px; }
.asc-facts dt { color: var(--ink-2); }
.asc-facts dd { margin: 0; text-align: right; overflow-wrap: anywhere; }
.asc-facts .pill { white-space: normal; text-align: right; }
.asc-rollout { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 7px; margin: 24px 0 9px; }
.asc-rollout-day { text-align: center; font-size: 11px; color: var(--ink-2); }
.asc-rollout-mark { display: block; height: 7px; border-radius: 3px; background: var(--neutral-bg); margin-bottom: 9px; }
.asc-rollout-day.is-complete .asc-rollout-mark { background: var(--asc-accent); }
.asc-rollout-day.is-current { color: var(--asc-accent); font-weight: 650; }
.asc-segments { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; width: fit-content; max-width: 100%; padding: 4px; background: var(--neutral-bg); border-radius: 10px; }
.asc-segments .button { padding: 8px 13px; border: 0; border-radius: 7px; min-height: 34px; color: var(--ink-2); white-space: normal; }
.asc-segments .button[aria-pressed="true"] { color: var(--ink); background: var(--surface); box-shadow: var(--shadow-xs); }
.asc-segments .button:hover { color: var(--ink); }
.asc-row-link { background: transparent; border: 0; border-bottom: 1px solid var(--line); }
.asc-row-link:hover { color: var(--asc-accent); }
.asc-row-link > .pill { flex-shrink: 0; }
.asc-build-list { display: grid; border-top: 1px solid var(--line); margin-top: 22px; }
.asc-build-row { display: flex; align-items: center; gap: 10px; padding: 17px 0; background: transparent; border: 0; border-bottom: 1px solid var(--line); font-size: 13px; }
.asc-build-row:last-child { border-bottom: 0; }
.asc-build-row strong { font-weight: 600; }
.asc-build-row .asc-caption { display: block; margin-top: 4px; }
.asc-build-row[aria-pressed="true"] strong { color: var(--asc-accent); }
.asc-build-row[aria-pressed="true"]::before { content: ""; width: 3px; align-self: stretch; background: var(--asc-accent); border-radius: 2px; }
.asc-build-row .pill { white-space: normal; text-align: right; }
.asc-tester-groups > summary { cursor: pointer; font-size: 13px; font-weight: 600; overflow-wrap: anywhere; }
.asc-tester-groups[open] > summary { margin-bottom: 22px; }
.asc-tester-groups .asc-bars { display: grid; grid-template-columns: repeat(auto-fit,minmax(180px,1fr)); gap: 20px; }
.asc-testers > .asc-caption { margin-top: 14px; }
.asc-testers > .asc-input { margin-top: 20px; max-width: 360px; }
.asc-tester-metrics-status .asc-loading { justify-content: flex-start; padding: 16px 0; min-height: 56px; }
.asc-tester-list { margin-top: 18px; }
.asc-tester-table { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 12px; text-align: left; }
.asc-tester-table th, .asc-tester-table td { padding: 17px 10px; border-bottom: 1px solid var(--line); vertical-align: top; overflow-wrap: anywhere; }
.asc-tester-table th { font-size: 11px; font-weight: 550; color: var(--ink-2); }
.asc-tester-table th:first-child, .asc-tester-table td:first-child { padding-left: 0; }
.asc-tester-table th:last-child, .asc-tester-table td:last-child { padding-right: 0; }
.asc-tester-table th:first-child { width: 25%; }
.asc-tester-table th:nth-child(2) { width: 16%; }
.asc-tester-table th:nth-child(3), .asc-tester-table th:nth-child(4), .asc-tester-table th:nth-child(5) { width: 10%; text-align: right; }
.asc-tester-table th:last-child { width: 29%; }
.asc-tester-table tbody tr:last-child td { border-bottom: 0; }
.asc-tester-identity > strong { font-weight: 600; }
.asc-tester-identity > .asc-caption { margin-top: 4px; }
.asc-tester-state .pill { white-space: normal; }
.asc-tester-count { font-variant-numeric: tabular-nums; text-align: right; }
.asc-tester-mobile-label { display: none; }
.asc-tester-more-devices { margin-top: 8px; }
.asc-tester-more-devices > summary { cursor: pointer; color: var(--asc-accent); font-size: 11px; }
.asc-tester-more-devices .asc-tester-device { margin-top: 12px; }
.asc-tester-list + .button, .asc-master-detail > .asc-panel > .button { margin-top: 20px; }
.asc-master-detail .asc-input + .asc-caption { margin-top: 14px; }
.asc-feedback-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.asc-feedback-card { display: flex; flex-direction: column; align-items: stretch; gap: 16px; }
.asc-feedback-card .asc-details { margin-top: auto; }
.asc-text-link { color: var(--asc-accent); font-size: 12px; text-underline-offset: 3px; }
.asc-review-layout { display: grid; grid-template-columns: minmax(230px,.8fr) minmax(0,1.8fr); gap: 24px; align-items: start; }
.asc-review-sidebar .asc-rating-score { align-items: flex-start; margin: 24px 0; }
.asc-review-sidebar .asc-rating-score > strong { font-size: 50px; }
.asc-review-layout .asc-review-list { grid-template-columns: minmax(0,1fr); }
.asc-country-filters { margin-top: 18px; }
.asc-review-response { font-size: 12px; }
.asc-review-response summary { color: var(--asc-accent); cursor: pointer; padding: 5px 0; }
.asc-review-reply { margin-top: 12px; }
.asc-review-response .asc-review-reply { border-left-color: var(--asc-accent); }
.asc-performance-metrics { display: flex; gap: 10px; flex-wrap: wrap; }
.asc-performance-choice { display: grid; gap: 6px; flex: 1 1 170px; max-width: 270px; padding: 16px 18px; background: var(--surface); border: 1px solid var(--line); border-radius: 12px; }
.asc-performance-choice[aria-pressed="true"] { background: var(--asc-accent-soft); border-color: var(--asc-accent); }
.asc-performance-choice strong { font-size: 14px; overflow-wrap: anywhere; }
.asc-performance-result > .asc-section-heading { margin-bottom: 20px; }
.asc-performance-result > .asc-segments { margin: 14px 0; }
.asc-performance-summary { display: flex; gap: 18px; justify-content: space-between; align-items: center; flex-wrap: wrap; margin: 24px 0; }
.asc-performance-summary .asc-chart-total { font-size: 34px; }
.asc-device-legend { display: flex; flex-wrap: wrap; gap: 6px 15px; margin-top: 14px; }
.asc-device-legend .button { padding: 6px 0; border: 0; background: transparent; color: var(--ink-2); }
.asc-device-legend .button[aria-pressed="true"] { color: var(--ink); }
.asc-device-legend .button[aria-pressed="false"] { opacity: .65; }
.asc-series-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--series); flex: 0 0 8px; display: inline-block; }
.asc-insight { display: flex; gap: 16px; align-items: flex-start; border-top: 1px solid var(--line); padding: 16px 0; font-size: 13px; }
.asc-insight .pill { flex-shrink: 0; }
.asc-insight p { color: var(--ink-2); line-height: 1.7; }
.asc-chart { position: relative; overflow: visible; border-radius: 8px; min-width: 0; }
.asc-chart > svg { display: block; min-height: 0; overflow: visible; touch-action: pan-y; }
.asc-chart:focus-visible { outline: 3px solid var(--focus); outline-offset: 5px; }
.asc-chart-grid { stroke-dasharray: none; opacity: .65; }
.asc-chart-line { stroke-width: 2.25; }
.asc-chart-point { stroke-width: 1.7; pointer-events: none; }
.asc-chart-area { fill-opacity: .045; }
.asc-chart-label, .asc-analytics-trends .asc-chart-label { font-size: 11px; }
.asc-chart-guide { stroke: var(--ink-3); stroke-width: 1; stroke-dasharray: 3 3; pointer-events: none; }
.asc-chart-goal { stroke: var(--ink-3); stroke-width: 1; stroke-dasharray: 5 4; }
.asc-chart-tooltip { position: absolute; z-index: 3; max-width: calc(100% - 8px); width: max-content; pointer-events: none; padding: 12px 14px; background: var(--surface); color: var(--ink); border: 1px solid var(--line-strong); border-radius: 10px; box-shadow: var(--shadow-pop); font-size: 11px; }
.asc-chart-tooltip > strong { display: block; margin-bottom: 9px; font-weight: 550; color: var(--ink-2); }
.asc-tooltip-row { display: flex; align-items: center; gap: 9px; margin-top: 6px; }
.asc-tooltip-row > span:nth-child(2) { overflow-wrap: anywhere; min-width: 0; }
.asc-tooltip-row > strong { margin-left: auto; white-space: nowrap; font-weight: 600; }
.asc-chart-hint { font-size: 11px; color: var(--ink-2); min-height: 19px; margin: 5px 0 0; font-variant-numeric: tabular-nums; }
.asc-chart-tooltip + .asc-chart-hint { pointer-events: none; }
.asc-bars { gap: 3px; padding: 4px 0; }
.asc-bar-row { padding: 10px 0; font-size: 12px; }
button.asc-bar-row { background: transparent; border: 0; border-radius: 5px; color: var(--ink); text-align: left; font: inherit; font-size: 12px; cursor: pointer; width: 100%; }
button.asc-bar-row:hover .asc-bar-fill { opacity: .75; }
button.asc-bar-row[aria-pressed="true"] .asc-between > span { color: var(--asc-accent); font-weight: 600; }
button.asc-bar-row[aria-pressed="true"] .asc-bar-fill { fill: var(--asc-accent); }
.asc-bar-row svg { height: 6px; }
.asc-breakdown-detail:empty { display: none; }
.asc-breakdown-detail { margin-top: 22px; border-top: 1px solid var(--line); padding-top: 20px; }
.asc-breakdown-detail .asc-section-heading { margin-bottom: 18px; }
.asc-analytics-trends .asc-panel-head { margin-bottom: 20px; }
.asc-analytics-toolbar { align-items: center; }
@media (max-width: 1100px) {
  .asc-master-detail { grid-template-columns: minmax(210px,.85fr) minmax(0,1.35fr); gap: 18px; }
  .asc-review-layout { grid-template-columns: minmax(210px,.8fr) minmax(0,1.5fr); gap: 18px; }
}
@media (max-width: 760px) {
  .asc-master-detail, .asc-review-layout { grid-template-columns: minmax(0,1fr); }
  .asc-version-list { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
  .asc-version-list > .asc-caption { grid-column: 1/-1; }
  .asc-version-card { padding: 16px; }
  .asc-version-card .asc-between { align-items: flex-start; flex-direction: column; }
  .asc-review-sidebar .asc-rating-score { align-items: center; }
  .asc-feedback-list { grid-template-columns: minmax(0,1fr); }
  .asc-section-heading .button { padding-left: 0; }
  .asc-chart-tooltip { font-size: 11px; }
  .asc-detail-title h3 { font-size: 25px; }
  .asc-tester-table, .asc-tester-table tbody { display: block; }
  .asc-tester-table thead { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .asc-tester-table tbody tr { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px 10px; padding: 20px 0; border-top: 1px solid var(--line); }
  .asc-tester-table td { display: block; padding: 0; border: 0; }
  .asc-tester-identity, .asc-tester-state, .asc-tester-devices { grid-column: 1/-1; }
  .asc-tester-count { text-align: left; font-size: 17px; }
  .asc-tester-mobile-label { display: block; margin-bottom: 4px; font-size: 11px; color: var(--ink-2); }
  .asc-tester-table td.asc-tester-devices { border-top: 1px solid var(--line); padding-top: 14px; }
}
@media (max-width: 420px) {
  .asc-page-head { flex-direction: row; align-items: center; gap: 8px; }
  .asc-page-head .button { padding: 9px; }
  .asc-page-head .button .icon { display: none; }
  .asc-version-list { grid-template-columns: minmax(0,1fr); }
  .asc-version-card .asc-between { flex-direction: row; align-items: center; }
  .asc-performance-choice { max-width: none; flex-basis: 130px; }
  .asc-chart-tooltip { padding: 10px; }
  .asc-facts { gap: 12px; }
}
@media (pointer: coarse) {
  .asc-page .button, .asc-page button.asc-bar-row, .asc-page summary { min-height: 44px; }
  .asc-page .asc-input { font-size: 16px; }
}
.asc-release-progress { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 6px; list-style: none; margin: 24px 0 0; padding: 0; }
.asc-release-progress li { padding-top: 9px; border-top: 3px solid var(--line); color: var(--ink-2); font-size: 11px; overflow-wrap: anywhere; }
.asc-release-progress li[aria-current] { border-color: var(--asc-accent); color: var(--asc-accent); font-weight: 600; }
@media (prefers-reduced-motion: reduce) { .asc-page * { transition: none !important; } }
.asc-master-detail.is-empty, .asc-review-layout.is-empty { grid-template-columns: minmax(0,1fr); }
.asc-master-detail.is-empty > .asc-version-list:empty { display: none; }
.asc-chart > svg { cursor: crosshair; }

/* Classly shell integration. */
.asc-page .page-title { margin: 0; }
.asc-page .button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 8px 12px; border: 1px solid var(--line-strong); border-radius: 9px; background: var(--surface); color: var(--ink); font: inherit; font-size: 12px; text-decoration: none; cursor: pointer; }
.asc-page .button--quiet { border-color: transparent; background: transparent; color: var(--asc-accent); }
.asc-page .button--primary { color: var(--asc-accent-ink); background: var(--asc-accent); }
.asc-page .icon { display: inline-flex; width: 18px; height: 18px; flex-shrink: 0; }
.asc-page .icon svg { width: 100%; height: 100%; }
.asc-page .pill { display: inline-flex; align-items: center; padding: 4px 8px; border-radius: 6px; background: var(--neutral-bg); color: var(--ink-2); font-size: 11px; font-weight: 600; white-space: nowrap; }
.asc-page .pill--ok { background: var(--success-soft); color: var(--success); }
.asc-page .pill--warn { background: var(--warning-soft); color: var(--warning); }
.asc-page .pill--danger { background: var(--danger-soft); color: var(--danger); }
.asc-page .asc-actions > select { width: auto; }
@media (max-width: 760px) {
  .asc-page-head { flex-direction: column; align-items: flex-start; gap: 16px; }
  .asc-page-head .asc-actions { width: 100%; }
}
