/* Authenticated workspace. The public shell and authentication forms keep their own styles. */
html[data-theme] body.route-customer-portal .portal-section.portal-app {
  --portal-rail:240px;
  --portal-toolbar:64px;
  --portal-good:#34d399;
  --portal-bad:#fb7185;
  width:100%; max-width:none; min-height:calc(100dvh - 72px);
  display:block; gap:0; margin:0; padding:0; border:0; border-radius:0; background:var(--bg);
  color:var(--text); box-shadow:none; overflow:visible; opacity:1; transform:none;
  font:14px/1.7 var(--font-body);

  &::before, &::after { display:none; }
  .portal-shell { position:relative; z-index:auto; isolation:auto; transform:none; filter:none; contain:none; display:grid; grid-template-columns:var(--portal-rail) minmax(0,1fr); gap:0; align-items:start; min-height:calc(100dvh - 136px); margin:0; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; overflow:visible; }
  :is(.portal-shell,.portal-content,.portal-card,.portal-form,.portal-form-panel,.portal-license-card-title,.portal-runner-card-head > div) { min-width:0; max-width:100%; }
  .portal-app-toolbar { position:sticky; top:72px; z-index:30; display:flex; align-items:center; justify-content:space-between; gap:20px; height:var(--portal-toolbar); min-height:var(--portal-toolbar); padding:8px 28px; border-bottom:1px solid var(--line); background:var(--bg); color:var(--muted); }
  .portal-app-toolbar > div { min-width:0; }
  .portal-page-context { flex:1; }
  .portal-breadcrumb { display:flex; flex-wrap:wrap; align-items:center; gap:4px 8px; color:var(--muted); font-size:11px; line-height:1.6; }
  .portal-app-toolbar .portal-current-page { font-size:14px; }
  .portal-reset-link { display:inline-flex; flex:none; align-items:center; min-height:44px; color:var(--accent-text); font-size:12px; }
  .portal-app-toolbar h1, .portal-current-page { margin:0; color:var(--text); font-size:16px; font-weight:500; line-height:1.6; letter-spacing:-.015em; overflow-wrap:normal; word-break:normal; }
  .portal-app-toolbar :is(p,a) { margin:0; font-size:12px; line-height:1.7; }
  .portal-tabs { position:sticky; top:calc(72px + var(--portal-toolbar)); width:var(--portal-rail); height:calc(100dvh - 72px - var(--portal-toolbar)); max-height:none; display:flex; flex-direction:column; gap:0; align-self:start; margin:0; padding:24px 16px; border:0; border-right:1px solid var(--line); border-radius:0; background:var(--bg); box-shadow:none; overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:var(--line) transparent; }
  .portal-tabs-intro { padding:0 8px 20px; margin:0 0 8px; border:0; border-bottom:1px solid var(--line); background:transparent; }
  .portal-tabs-intro strong { display:block; margin:8px 0 4px; color:var(--text); font-size:14px; font-weight:550; line-height:1.5; overflow-wrap:anywhere; }
  .portal-tabs-intro p { margin:0; color:var(--muted); font-size:12px; line-height:1.7; overflow-wrap:anywhere; }
  .portal-tab-heading { color:var(--muted); font:500 10px/1.7 var(--font-mono); letter-spacing:.06em; text-transform:uppercase; }
  .portal-tabs nav { display:grid; grid-template-columns:minmax(0,1fr); gap:8px; min-width:0; }
  .portal-nav-group { display:block; margin:0; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; overflow:visible; }
  .portal-nav-group > summary { display:list-item; list-style:disclosure-closed inside; min-height:44px; padding:12px 8px; border:0; color:var(--muted); font:500 11px/1.7 var(--font-mono); letter-spacing:.03em; text-transform:none; cursor:pointer; }
  .portal-nav-group[open] > summary { list-style-type:disclosure-open; color:var(--text); }
  .portal-nav-group > summary::marker { color:var(--accent-text); font-size:10px; }
  .portal-nav-group > summary::-webkit-details-marker { display:inline; }
  .portal-tabs a { display:flex; align-items:center; min-height:40px; width:100%; padding:10px 12px; border:0; border-radius:5px; background:transparent; box-shadow:none; color:var(--muted); font:400 13px/1.55 var(--font-body); text-align:left; text-decoration:none; white-space:normal; overflow-wrap:normal; word-break:normal; transform:none; }
  .portal-tabs a:hover { background:var(--surface); color:var(--text); transform:none; }
  .portal-tabs a:is(.is-active,[aria-current="page"]) { background:color-mix(in srgb,var(--accent) 9%,transparent); color:var(--accent-text); box-shadow:inset 2px 0 var(--accent); font-weight:500; }
  .portal-tab-sublist { display:grid; grid-template-columns:minmax(0,1fr); gap:3px; margin:0; padding:0; border:0; }
  .portal-tab-group { display:block; margin:0; padding:0; border:0; }
  .portal-logout-form { margin:24px 0 0; padding:16px 8px 0; border-top:1px solid var(--line); }
  .portal-logout-form .link-btn { width:100%; justify-content:flex-start; }
  .portal-content { display:grid; align-content:start; gap:24px; width:100%; min-height:calc(100dvh - 136px); max-height:none; padding:32px clamp(24px,3vw,48px) 64px; overflow:visible; background:var(--bg); }
  .portal-content > .portal-card { min-width:0; margin:0; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; overflow:visible; }
  .portal-content > .portal-card > h2 { margin:0 0 8px; font-size:28px; font-weight:550; line-height:1.3; letter-spacing:-.035em; }
  .portal-content > .portal-card > p { max-width:76ch; margin:0 0 28px; color:var(--muted); font-size:14px; line-height:1.8; }
  :is(h2,h3,h4) { color:var(--text); font-family:var(--font-body); font-weight:550; letter-spacing:-.02em; overflow-wrap:normal; word-break:normal; }
  h3 { margin:0 0 16px; font-size:17px; line-height:1.45; }
  h4 { margin:0 0 12px; font-size:14px; line-height:1.6; }
  p { color:var(--muted); font-size:14px; line-height:1.8; overflow-wrap:anywhere; }
  :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible { outline:2px solid var(--accent-text); outline-offset:3px; }
  :is(.solid-btn,.link-btn,.portal-copy-button,.portal-nav-close,[data-portal-nav-toggle]) { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; max-width:100%; padding:10px 14px; border:1px solid var(--line); border-radius:5px; background:transparent; color:var(--text); box-shadow:none; text-shadow:none; transform:none; font:500 13px/1.6 var(--font-body); letter-spacing:0; cursor:pointer; }
  .solid-btn { width:fit-content; border-color:transparent; background:var(--button-bg,#4f46e5); color:#fff; }
  .solid-btn:hover { background:#4338ca; color:#fff; transform:none; box-shadow:none; }
  .link-btn { width:fit-content; background:transparent; color:var(--text); }
  :is(.link-btn,.portal-copy-button,.portal-nav-close,[data-portal-nav-toggle]):hover { background:color-mix(in srgb,var(--accent) 7%,transparent); border-color:var(--accent); color:var(--text); transform:none; box-shadow:none; }
  :is(.solid-btn,.link-btn)::before, :is(.solid-btn,.link-btn)::after { display:none; }
  [data-portal-nav-toggle], .portal-nav-close { display:none; }
  :is(button,input,select,textarea):disabled { opacity:.6; cursor:not-allowed; }
  :is(.portal-form,.portal-inline-form) { display:grid; gap:8px; min-width:0; margin:0; }
  :is(.portal-form,.portal-inline-form) label { color:var(--text); font-size:13px; font-weight:500; line-height:1.6; letter-spacing:0; text-transform:none; }
  .portal-form > label { margin-top:8px; }
  :is(input,select,textarea) { width:100%; min-width:0; max-width:100%; min-height:44px; padding:10px 12px; border:1px solid var(--line); border-radius:5px; background:var(--bg); color:var(--text); box-shadow:none; font:400 14px/1.6 var(--font-body); }
  :is(input,select,textarea):focus { border-color:var(--accent); box-shadow:none; }
  textarea { min-height:120px; resize:vertical; }
  select :is(option,optgroup) { background:var(--surface); color:var(--text); }
  :is(input[readonly],input:disabled,select:disabled,textarea:disabled) { background:var(--bg); color:var(--muted); }
  input:is([type="checkbox"],[type="radio"]) { position:static; width:18px; height:18px; min-width:18px; min-height:18px; flex:0 0 18px; margin:3px 0 0; padding:0; accent-color:var(--accent); opacity:1; }
  :is(.portal-checkbox-inline,.portal-terms-checkbox) { display:flex; align-items:flex-start; gap:10px; min-height:44px; padding:8px 0; font-size:13px; font-weight:400; line-height:1.8; }
  :is(.portal-form-help,.portal-runner-meta,.portal-license-card-meta) { margin:4px 0; color:var(--muted); font-size:12px; font-weight:400; line-height:1.8; letter-spacing:0; text-transform:none; overflow-wrap:anywhere; }
  :is(.portal-form-panel,.portal-profile-group) { padding:24px; border:1px solid var(--line); border-radius:8px; background:var(--surface); box-shadow:none; }
  .portal-form-panel { margin-block:24px; }
  .portal-action-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin:24px 0; align-items:start; }
  .portal-action-grid > .portal-form-panel { margin:0; }
  .portal-form-panel > h3 { margin:0 0 12px; font-size:16px; }
  .portal-form-panel .solid-btn { margin-top:12px; }
  .portal-customer-action-form { max-width:780px; }
  .portal-profile-layout { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin:28px 0; }
  .portal-profile-group > h3 { margin-bottom:20px; font-size:16px; }
  .portal-grid-2 { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 16px; }
  .portal-grid-2 > div { display:grid; align-content:start; gap:8px; min-width:0; }
  .portal-span-2 { grid-column:1/-1; }
  :is(.portal-admin-license-card-list,.portal-license-detail-rows,.portal-offer-grid) { display:grid; grid-template-columns:minmax(0,1fr); gap:20px; margin-top:24px; }
  :is(.portal-admin-license-card,.portal-license-detail-card,.portal-enterprise-offer-card) { min-width:0; padding:24px; border:1px solid var(--line); border-radius:8px; background:var(--surface); box-shadow:none; overflow:visible; }
  .portal-license-card-head { display:flex; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; gap:16px; }
  .portal-license-card-title { flex:1 1 240px; min-width:0; }
  .portal-license-card-title :is(h2,h3) { margin:8px 0 12px; font-size:23px; line-height:1.35; font-weight:550; }
  .portal-license-card-title > p:not(.portal-section-kicker) { max-width:74ch; font-size:14px; line-height:1.8; }
  .portal-section-kicker { margin:0; color:var(--accent-text); font:500 10px/1.7 var(--font-mono); letter-spacing:.1em; text-transform:uppercase; }
  .portal-license-summary-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px 28px; margin:24px 0; }
  .portal-license-summary-item { min-width:0; padding:12px 0; border:0; border-bottom:1px solid var(--line); border-radius:0; background:transparent; box-shadow:none; }
  .portal-license-summary-label { display:block; color:var(--muted); font:400 12px/1.7 var(--font-body); letter-spacing:0; text-transform:none; }
  .portal-license-summary-value { display:block; margin-top:8px; color:var(--text); font-size:14px; font-weight:500; line-height:1.7; overflow-wrap:anywhere; }
  :is(.pill,.portal-status-pill) { display:inline-flex; align-items:center; width:fit-content; max-width:100%; padding:4px 8px; border:1px solid var(--line); border-radius:4px; background:transparent; color:var(--muted); font:400 11px/1.6 var(--font-mono); letter-spacing:0; text-transform:none; overflow-wrap:anywhere; }
  .portal-status-pill { border-color:color-mix(in srgb,var(--accent) 35%,var(--line)); background:color-mix(in srgb,var(--accent) 7%,transparent); color:var(--accent-text); }
  .portal-runner-meta { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
  .portal-license-management { margin-top:16px; padding-top:8px; border-top:1px solid var(--line); }
  .portal-license-management > summary { display:list-item; list-style:disclosure-closed inside; min-height:44px; padding:12px 0; color:var(--accent-text); font-size:13px; font-weight:500; line-height:1.7; cursor:pointer; }
  .portal-license-management[open] > summary { list-style-type:disclosure-open; margin-bottom:12px; padding-bottom:20px; border-bottom:1px solid var(--line); }
  .portal-license-management > summary span { margin-left:12px; color:var(--muted); font:11px/1.8 var(--font-mono); overflow-wrap:anywhere; }
  .portal-license-card-section { padding:24px 0 0; margin-top:20px; border:0; border-top:1px solid var(--line); border-radius:0; background:transparent; box-shadow:none; }
  .portal-license-management > .portal-license-card-section:first-of-type { margin-top:0; padding-top:8px; border:0; }
  .portal-runner-card { padding:20px 0; margin:16px 0 0; border:0; border-top:1px solid var(--line); border-radius:0; background:transparent; box-shadow:none; }
  .portal-runner-card-head { display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:16px; }
  .portal-machine-card { padding:16px; border:1px solid var(--line); border-radius:6px; background:var(--bg); box-shadow:none; }
  .portal-machine-list { display:grid; gap:12px; margin-top:16px; }
  .portal-inline-code { display:inline-block; max-width:100%; min-width:0; padding:4px 7px; border:1px solid var(--line); border-radius:4px; background:var(--bg); color:var(--accent-text); font:12px/1.8 var(--font-mono); white-space:normal; word-break:normal; overflow-wrap:anywhere; }
  .portal-copy-field { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:6px 8px; align-items:start; max-width:100%; margin-top:8px; }
  .portal-copy-field .portal-inline-code { display:block; width:100%; margin:0; }
  .portal-copy-button { min-height:36px; padding:6px 10px; background:var(--bg); font-size:11px; }
  .portal-copy-feedback { grid-column:1/-1; min-height:0; margin:0; color:var(--muted); font-size:12px; line-height:1.7; }
  .portal-copy-feedback:empty { display:none; }
  .portal-copy-manual { grid-column:1/-1; width:100%; font-family:var(--font-mono); }
  :is(.portal-inline-actions,.portal-form-inline) { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
  .portal-admin-license-limit-form { display:grid; grid-template-columns:minmax(0,1fr); gap:8px; max-width:640px; margin-top:16px; }
  .portal-admin-license-ownership-form { max-width:640px; margin-top:20px; }
  .portal-price-preview { padding:16px; border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line)); border-left:2px solid var(--accent); border-radius:5px; background:color-mix(in srgb,var(--accent) 5%,transparent); color:var(--text); font-size:14px; line-height:1.8; }
  .portal-alert { margin:0; padding:14px 24px; border:0; border-bottom:1px solid var(--line); border-radius:0; background:color-mix(in srgb,var(--accent) 7%,var(--bg)); color:var(--text); font-size:13px; line-height:1.8; }
  .portal-alert-error { border-left:3px solid var(--portal-bad); background:color-mix(in srgb,var(--portal-bad) 7%,var(--bg)); }
  .portal-alert-success { border-left:3px solid var(--portal-good); background:color-mix(in srgb,var(--portal-good) 6%,var(--bg)); }
  :is(.portal-license-table,.portal-table-scroll) { display:block; width:100%; min-width:0; max-width:100%; max-height:none; margin:24px 0; padding:0; border:1px solid var(--line); border-radius:8px; background:var(--surface); box-shadow:none; overflow-x:auto; overflow-y:visible; overscroll-behavior-x:contain; scrollbar-width:thin; scrollbar-color:var(--line) transparent; -webkit-overflow-scrolling:touch; }
  table { display:table; width:100%; min-width:640px; max-width:none; margin:0; padding:0; border-collapse:collapse; table-layout:auto; overflow:visible; color:var(--text); font-size:13px; line-height:1.75; }
  table:has(th:nth-child(n+6)) { min-width:960px; }
  table:has(th:nth-child(n+9)) { min-width:1280px; }
  table:not(:has(thead)) { min-width:0; }
  thead { display:table-header-group; position:static; width:auto; height:auto; max-height:none; margin:0; padding:0; clip:auto; clip-path:none; overflow:visible; visibility:visible; white-space:normal; }
  tbody { display:table-row-group; width:auto; margin:0; padding:0; }
  tr { display:table-row; width:auto; margin:0; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
  :is(th,td) { display:table-cell; position:static; width:auto; min-width:128px; max-width:none; height:auto; padding:14px 16px; border:0; border-bottom:1px solid var(--line); border-radius:0; background:transparent; box-shadow:none; color:var(--text); font:400 13px/1.75 var(--font-body); text-align:left; vertical-align:middle; white-space:normal; overflow-wrap:normal; word-break:normal; letter-spacing:0; text-transform:none; }
  :is(th,td)::before { display:none; }
  thead th { background:var(--bg); color:var(--muted); font-size:12px; font-weight:500; white-space:nowrap; }
  :is(th,td):first-child { min-width:240px; }
  :is(th,td):last-child { min-width:140px; }
  tbody tr:last-child :is(th,td) { border-bottom:0; }
  tbody tr:hover { background:color-mix(in srgb,var(--accent) 4%,transparent); }
  td :is(.solid-btn,.link-btn) { width:fit-content; min-height:40px; margin:0; padding:8px 12px; white-space:nowrap; font-size:12px; }
  td :is(.portal-inline-form,.portal-inline-actions) { display:flex; flex-wrap:wrap; gap:8px; min-width:0; width:auto; align-items:center; }
  td :is(input:not([type="hidden"]),select) { min-width:150px; max-width:260px; }
  .portal-search-results { min-height:180px; width:100%; padding:8px; background:var(--surface); font-size:14px; }

  /* Reporting keeps the full query, plot, table, drilldown and export surfaces. */
  .portal-observability-head { display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:16px; margin-bottom:24px; padding-bottom:24px; border-bottom:1px solid var(--line); }
  .portal-observability-head h2 { margin:0 0 10px; font-size:28px; line-height:1.3; font-weight:550; letter-spacing:-.035em; }
  .portal-observability-head p { max-width:78ch; margin:0; font-size:14px; line-height:1.8; }
  .portal-report-filters { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); align-items:end; gap:20px; margin:24px 0; padding:24px; border:1px solid var(--line); border-radius:8px; background:var(--surface); }
  .portal-report-filters > div { min-width:0; }
  .portal-report-filters > div > label { display:block; margin-bottom:8px; color:var(--muted); font-size:12px; }
  .portal-report-query-field { grid-column:1/-1; }
  .portal-report-query-field p { margin:8px 0 0; color:var(--muted); font-size:12px; line-height:1.7; }
  :is([data-report-run-field],[data-report-scenario-field]) { grid-column:span 2; }
  .portal-report-mode-toggle { display:flex; gap:6px; min-height:44px; }
  .portal-report-mode-toggle label { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:44px; margin:0; padding:8px 10px; border:1px solid var(--line); border-radius:5px; background:var(--bg); font-size:12px; font-weight:400; line-height:1.5; cursor:pointer; }
  .portal-report-mode-toggle label:has(input:checked) { border-color:var(--accent); background:color-mix(in srgb,var(--accent) 7%,transparent); color:var(--accent-text); }
  .portal-report-mode-toggle input { position:static; width:14px; height:14px; min-width:14px; min-height:14px; flex-basis:14px; margin:0; opacity:1; }
  :is(.portal-report-multiselect-trigger,.portal-searchable-trigger,.portal-report-tool-trigger) { min-height:44px; padding:10px 12px; border:1px solid var(--line); border-radius:5px; background:var(--bg); color:var(--text); box-shadow:none; font-size:13px; font-weight:400; line-height:1.6; }
  .portal-searchable-trigger-meta { color:var(--muted); font-size:11px; line-height:1.6; }
  :is(.portal-searchable-trigger-text,.portal-searchable-trigger-meta,.portal-report-multiselect-trigger > span) { overflow:visible; text-overflow:clip; white-space:normal; overflow-wrap:anywhere; word-break:normal; }
  :is(.portal-report-multiselect-panel,.portal-searchable-panel,.portal-report-tool-menu-panel) { z-index:50; max-width:100%; padding:14px; border:1px solid var(--line); border-radius:6px; background:var(--surface); color:var(--text); box-shadow:0 16px 40px #03071226; }
  :is(.portal-searchable-option,.portal-report-multiselect-option) { min-height:44px; padding:10px; border:1px solid transparent; border-radius:4px; background:transparent; color:var(--text); font-size:13px; line-height:1.6; }
  :is(.portal-searchable-option,.portal-report-multiselect-option):is(:hover,:focus-visible,:focus-within,.is-selected,:has(input:checked)) { border-color:color-mix(in srgb,var(--accent) 30%,var(--line)); background:color-mix(in srgb,var(--accent) 8%,transparent); color:var(--text); }
  .portal-searchable-option[aria-disabled="true"] { opacity:.55; cursor:not-allowed; }
  .portal-report-workspace-tools { position:static; display:flex; flex-wrap:wrap; align-items:flex-start; gap:10px; margin:16px 0 24px; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
  .portal-report-tool-menu { position:relative; min-width:0; width:auto; }
  .portal-report-tool-trigger { display:inline-flex; align-items:center; justify-content:space-between; gap:14px; min-height:44px; cursor:pointer; }
  .portal-report-tool-menu[open] .portal-report-tool-trigger { border-color:var(--accent); background:color-mix(in srgb,var(--accent) 7%,transparent); color:var(--accent-text); }
  .portal-report-tool-menu-panel { width:380px; max-width:min(480px,calc(100vw - 40px)); min-width:0; }
  .portal-report-inline-controls { display:flex; flex-wrap:wrap; gap:10px; min-width:0; }
  .portal-report-inline-controls > :is(input,select) { flex:1 1 160px; min-width:0; }
  .portal-report-density-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .portal-report-density-grid label { min-width:0; min-height:44px; color:var(--text); font-size:13px; font-weight:400; }
  .portal-report-toggle { display:flex; gap:10px; align-items:center; padding:10px; border:1px solid var(--line); border-radius:5px; background:var(--bg); }
  .portal-report-toggle span { white-space:normal; }
  .portal-report-status { flex:1 1 220px; margin:0; padding:10px 0; color:var(--muted); font-size:12px; line-height:1.8; }
  .portal-report-summary-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:0; margin:24px 0; border:1px solid var(--line); border-radius:8px; background:var(--surface); }
  .portal-report-summary-grid article { min-width:0; padding:20px; border:0; border-right:1px solid var(--line); border-radius:0; background:transparent; box-shadow:none; }
  .portal-report-summary-grid article:last-child { border-right:0; }
  :is(.portal-report-summary-grid,.portal-report-detail-metrics,.portal-report-threshold-grid) span { display:block; color:var(--muted); font-size:12px; font-weight:400; line-height:1.7; text-transform:none; letter-spacing:0; }
  :is(.portal-report-summary-grid,.portal-report-detail-metrics,.portal-report-threshold-grid) strong { display:block; margin-top:10px; color:var(--text); font:400 24px/1.35 var(--font-mono); letter-spacing:-.045em; overflow-wrap:anywhere; }
  :is(.portal-report-chart-panel,.portal-report-threshold-panel,.portal-report-drilldown-panel,.portal-report-mini-chart,.portal-report-comparison-panel) { min-width:0; padding:24px; border:1px solid var(--line); border-radius:8px; background:var(--surface); box-shadow:none; }
  :is(.portal-report-chart-head,.portal-report-panel-head) { display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:16px; min-width:0; margin-bottom:20px; }
  :is(.portal-report-chart-head,.portal-report-panel-head) :is(h3,h4) { margin:0 0 6px; font-size:16px; }
  :is(.portal-report-chart-head,.portal-report-panel-head) p { margin:0; color:var(--muted); font-size:12px; line-height:1.8; }
  .portal-report-threshold-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
  .portal-report-threshold-grid article { min-width:0; padding:20px; border:1px solid var(--line); border-top:2px solid var(--line); border-radius:5px; background:var(--bg); }
  .portal-report-threshold-grid article.is-pass { border-top-color:var(--portal-good); }
  .portal-report-threshold-grid article.is-breach { border-top-color:var(--portal-bad); }
  .portal-report-threshold-grid p { margin:10px 0 0; font-size:12px; }
  .portal-report-chart { position:relative; width:100%; min-width:0; max-width:100%; min-height:320px; margin-top:16px; overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:thin; scrollbar-color:var(--line) transparent; }
  .portal-report-chart svg { display:block; width:100%; min-width:760px; max-width:none; height:auto; overflow:visible; }
  .portal-report-chart svg:focus-visible { outline-offset:-2px; }
  :is(.portal-report-chart-label,.portal-report-chart-threshold-label) { font-size:12px; fill:var(--muted); font-family:var(--font-mono); font-weight:400; }
  :is(.portal-report-chart-grid,.portal-report-chart-axis) { stroke:var(--line); }
  .portal-report-chart-crosshair { stroke:var(--accent-text); }
  .portal-report-chart-threshold-line { stroke:var(--portal-bad); }
  .portal-report-chart-threshold-band { fill:color-mix(in srgb,var(--portal-bad) 8%,transparent); }
  .portal-report-chart-tooltip { max-width:calc(100% - 20px); padding:14px; border:1px solid var(--line); border-radius:6px; background:var(--surface); color:var(--text); box-shadow:0 12px 36px #03071233; }
  .portal-report-chart-tooltip-title { color:var(--text); font-size:13px; font-weight:500; line-height:1.6; }
  :is(.portal-report-chart-tooltip-meta,.portal-report-chart-tooltip-more) { color:var(--muted); font-size:12px; line-height:1.7; }
  .portal-report-chart-tooltip-row { font-size:13px; line-height:1.7; }
  .portal-report-chart-legend { display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
  .portal-report-chart-legend :is(span,button) { max-width:100%; min-height:36px; padding:7px 10px; border:1px solid var(--line); border-radius:4px; background:transparent; color:var(--muted); font-size:12px; font-weight:400; white-space:normal; overflow-wrap:anywhere; }
  .portal-report-chart-data-table { min-width:760px; max-width:none; margin-top:20px; overflow:visible; }
  .portal-report-chart-data-table table { min-width:760px; }
  .portal-report-mini-chart-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
  .portal-report-detail-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; margin-bottom:24px; padding:0; border:0; border-radius:0; background:transparent; }
  .portal-report-detail-metrics article { min-width:0; padding:16px 0; border:0; border-bottom:1px solid var(--line); border-radius:0; background:transparent; }
  .portal-report-drilldown-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:24px; }
  .portal-report-drilldown-grid > section { min-width:0; padding:0; border:0; border-radius:0; background:transparent; }
  .portal-report-drilldown-grid > section:first-child { grid-column:1/-1; }
  .portal-report-sections { display:grid; grid-template-columns:minmax(0,1fr); gap:24px; margin-top:24px; }
  .portal-report-delta-row { display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:12px; padding:12px 0; border-top:1px solid var(--line); font-size:13px; line-height:1.7; }
  .portal-report-delta-row em { font-size:12px; font-style:normal; }
  .portal-report-delta-row .is-up { color:var(--portal-bad); }
  .portal-report-delta-row .is-down { color:var(--portal-good); }
  :is(.portal-report-empty-state,.portal-report-error-state) { padding:28px; margin-top:24px; border:1px dashed var(--line); border-radius:8px; background:var(--surface); color:var(--muted); }
  :is(.portal-report-empty,.portal-report-query-warnings,.notice) { padding:16px; border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line)); border-left:2px solid var(--accent); border-radius:5px; background:color-mix(in srgb,var(--accent) 5%,transparent); color:var(--text); font-size:13px; line-height:1.8; }
  .portal-report-error-state { border-style:solid; border-left:3px solid var(--portal-bad); }
  .portal-report-chart-empty { padding:24px; color:var(--muted); font-size:13px; line-height:1.8; }
  .portal-admin-free-usage-chart { max-width:100%; overflow-x:auto; }
  .portal-admin-free-usage-line-chart { display:block; width:100%; min-width:760px; max-width:none; height:auto; }
  :is(.portal-admin-free-usage-axis,.portal-admin-free-usage-grid) { stroke:var(--line); }
  .portal-admin-free-usage-line { stroke:var(--accent); fill:none; }
  .portal-admin-free-usage-point { fill:var(--accent-text); }
  :is(.portal-admin-free-usage-scale,.portal-admin-free-usage-label,.portal-admin-free-usage-value) { fill:var(--muted); font:12px var(--font-mono); }
  .portal-run-star-toggle { min-width:36px; min-height:36px; border:1px solid var(--line); border-radius:4px; background:var(--bg); color:var(--muted); }
  .portal-run-star-toggle:is(:hover,:focus-visible,.is-starred) { border-color:var(--accent); background:color-mix(in srgb,var(--accent) 8%,transparent); color:var(--accent-text); }
}
html[data-theme="light"] body.route-customer-portal .portal-section.portal-app { --portal-good:#047857; --portal-bad:#be123c; }
body.route-customer-portal:has(.portal-app) .site-main { margin:0; padding:0; max-width:none; background:var(--bg); }

/* The single license filter is a toolbar; publishing and account forms keep their panels. */
@media (min-width:1024px) {
  html[data-theme] body.route-customer-portal .portal-section.portal-app {
    .portal-action-grid:has(> form[method="get"] > input[name="admin_page"][value="licenses"]) { grid-template-columns:minmax(0,1fr); }
    form[method="get"]:has(> input[name="admin_page"][value="licenses"]) {
      display:grid; grid-template-columns:minmax(100px,.5fr) minmax(140px,.65fr) minmax(220px,1.8fr) auto;
      align-items:end; gap:8px 16px; padding:20px;
      > h3 { grid-column:1; grid-row:1/span 3; align-self:center; margin:0; }
      > label:has(+ select[name="license_status"]) { grid-column:2; grid-row:1; margin:0; }
      > select[name="license_status"] { grid-column:2; grid-row:2; }
      > label:has(+ input[name="admin_email"]) { grid-column:3; grid-row:1; margin:0; }
      > input[name="admin_email"] { grid-column:3; grid-row:2; }
      > .portal-form-help { grid-column:3; grid-row:3; margin:0; }
      > .portal-search-results-wrap { grid-column:3; grid-row:4; }
      > .solid-btn { grid-column:4; grid-row:2; margin:0; }
    }
  }
}

@media (max-width:1279px) {
  html[data-theme] body.route-customer-portal .portal-section.portal-app {
    .portal-profile-layout, .portal-report-mini-chart-grid { grid-template-columns:minmax(0,1fr); }
  }
}
@media (max-width:1023px) {
  html[data-theme] body.route-customer-portal .portal-section.portal-app {
    .portal-shell { grid-template-columns:minmax(0,1fr); }
    .portal-app-toolbar { height:auto; padding:12px 20px; gap:12px; }
    .portal-content { min-height:calc(100dvh - 136px); padding:28px 20px 48px; }
    .portal-tabs { position:static; width:100%; height:auto; max-height:none; padding:20px; border-right:0; border-bottom:1px solid var(--line); overflow:visible; }
    .portal-nav-close { margin:0 0 20px auto; }
    &.portal-nav-enhanced :is([data-portal-nav-toggle],.portal-nav-close) { display:inline-flex; flex:none; }
    .portal-tabs a { min-height:44px; font-size:14px; }
    .portal-report-filters, .portal-report-summary-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .portal-report-summary-grid article { border-bottom:1px solid var(--line); }
    &.portal-nav-enhanced .portal-tabs { position:fixed; z-index:90; top:72px; bottom:0; left:0; width:min(280px,calc(100vw - 32px)); height:calc(100dvh - 72px); margin:0; padding:20px 16px; border-right:1px solid var(--line); background:var(--surface); overflow-x:hidden; overflow-y:auto; visibility:hidden; transform:translateX(-100%); }
    &.portal-nav-enhanced.portal-nav-open .portal-tabs { visibility:visible; transform:none; }
    [data-portal-nav-backdrop] { position:fixed; z-index:80; inset:72px 0 0; width:auto; height:auto; margin:0; padding:0; border:0; border-radius:0; background:#03071299; backdrop-filter:blur(2px); }
  }
  body:has(.portal-app.portal-nav-open) { overflow:hidden; }
}
@media (max-width:760px) {
  html[data-theme] body.route-customer-portal .portal-section.portal-app {
    .portal-app-toolbar { padding-inline:16px; }
    .portal-content { padding:24px 16px 40px; }
    :is(.portal-content > .portal-card > h2,.portal-observability-head h2) { font-size:25px; }
    :is(.portal-action-grid,.portal-profile-layout,.portal-report-drilldown-grid) { grid-template-columns:minmax(0,1fr); gap:20px; }
    :is(.portal-form-panel,.portal-profile-group,.portal-admin-license-card,.portal-license-detail-card,.portal-enterprise-offer-card,.portal-report-chart-panel,.portal-report-threshold-panel,.portal-report-drilldown-panel,.portal-report-mini-chart) { padding:20px; }
    .portal-license-summary-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 20px; }
    .portal-license-card-title :is(h2,h3) { font-size:21px; }
    :is(input,select,textarea) { font-size:16px; }
    .portal-report-filters { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; padding:20px; }
    :is([data-report-run-field],[data-report-scenario-field],.portal-report-query-field,.portal-report-mode-field,.portal-report-filter-action) { grid-column:1/-1; }
    .portal-report-filters > div:has(> input[type="datetime-local"]) { grid-column:1/-1; }
    .portal-report-filter-action .solid-btn { width:100%; }
    .portal-report-workspace-tools { display:grid; grid-template-columns:minmax(0,1fr); gap:10px; }
    .portal-report-tool-menu { width:100%; }
    .portal-report-tool-trigger { width:100%; justify-content:space-between; }
    .portal-report-tool-menu-panel, .portal-report-density-controls .portal-report-tool-menu-panel { position:static; width:100%; max-width:none; min-width:0; margin-top:8px; }
    .portal-report-summary-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .portal-report-summary-grid article { padding:16px; }
    .portal-report-summary-grid article:last-child { grid-column:1/-1; }
    .portal-report-threshold-grid, .portal-report-detail-metrics { grid-template-columns:minmax(0,1fr); gap:16px; }
    .portal-report-detail-metrics article { padding-block:12px; }
    .portal-license-management > summary span { display:block; margin:4px 0 0 16px; }
    .portal-copy-button, td :is(.solid-btn,.link-btn), .portal-report-chart-legend :is(span,button) { min-height:44px; }
    .portal-form > .solid-btn { width:100%; }
  }
}
@media (max-width:520px) {
  html[data-theme] body.route-customer-portal .portal-section.portal-app {
    .portal-grid-2, .portal-license-summary-grid, .portal-report-density-grid { grid-template-columns:minmax(0,1fr); }
    .portal-span-2 { grid-column:auto; }
    .portal-report-inline-controls > :is(input,select) { flex-basis:100%; }
  }
}
@media (prefers-reduced-motion:reduce) {
  html[data-theme] body.route-customer-portal .portal-section.portal-app * { scroll-behavior:auto; animation:none; transition:none; }
}
