/* MetaHub Glass System — one visual language for console and SaaS workbench. */
:root {
  color-scheme: dark;
  --glass-topbar:rgb(8 21 35 / 68%);
  --glass-sidebar:rgb(10 27 43 / 76%);
  --glass-sidebar-platform:rgb(10 27 43 / 78%);
  --glass-input:rgb(8 24 39 / 82%);
  --glass-input-solid:#0c2032;
  --glass-input-soft:rgb(8 24 39 / 58%);
  --glass-gate:rgb(8 24 39 / 84%);
  --glass-dialog:rgb(14 32 50 / 94%);
  --glass-dialog-soft:rgb(14 32 50 / 91%);
  --glass-backdrop:rgb(2 9 17 / 70%);
  --glass-option:#132639;
  --glass-button:rgb(255 255 255 / 8%);
  --glass-header:rgb(255 255 255 / 9%);
  --glass-header-strong:rgb(255 255 255 / 10%);
  --glass-row:rgb(9 28 45 / 52%);
  --glass-row-platform:rgb(9 28 45 / 70%);
  --glass-row-soft:rgb(7 22 37 / 34%);
  --glass-row-hover:rgb(39 100 124 / 42%);
  --glass-selected:rgb(57 161 184 / 28%);
  --glass-selected-strong:rgb(32 126 151 / 42%);
  --glass-accent-hover:#b7f2fb;
  --glass-bg:#091322; --glass-bg-2:#142c3b; --glass-surface:rgb(194 225 244 / 9%); --glass-surface-strong:rgb(19 38 57 / 88%);
  --glass-surface-soft:var(--glass-header); --glass-line:rgb(180 218 238 / 22%); --glass-line-strong:rgb(180 218 238 / 38%);
  --glass-text:#f2f8fc; --glass-muted:#c2d4e2; --glass-subtle:#a9c0d2; --glass-accent:#78d8e9; --glass-accent-strong:#38bcd5;
  --glass-success:#70e1a8; --glass-warning:#ffd27b; --glass-danger:#ff9b9b;
  --green:var(--glass-success); --green-soft:rgb(30 109 77 / 26%);
  --blue:var(--glass-accent);
  --amber:var(--glass-warning); --amber-soft:rgb(133 92 24 / 26%);
  --red:var(--glass-danger); --red-soft:rgb(131 37 52 / 26%);
  --glass-shadow:0 18px 60px rgb(0 0 0 / 28%); --glass-shadow-soft:0 8px 28px rgb(0 0 0 / 18%); --glass-focus:0 0 0 3px rgb(120 216 233 / 28%);
  --glass-radius-sm:10px; --glass-radius-md:16px; --glass-radius-lg:22px;
  --ds-ink:var(--glass-text); --ds-ink-muted:var(--glass-muted); --ds-accent:var(--glass-accent-strong); --ds-accent-strong:var(--glass-accent);
  --ds-surface:var(--glass-surface-strong); --ds-surface-soft:var(--glass-surface); --ds-surface-tint:var(--glass-surface-soft);
  --ds-border:var(--glass-line); --ds-border-strong:var(--glass-line-strong); --ds-success:var(--glass-success); --ds-warning:var(--glass-warning); --ds-danger:var(--glass-danger);
  --ds-radius-sm:var(--glass-radius-sm); --ds-radius-md:var(--glass-radius-md); --ds-shadow-dialog:var(--glass-shadow); --ds-focus:var(--glass-focus);
  --ink:var(--glass-text); --text:var(--glass-text); --muted:var(--glass-muted); --line:var(--glass-line); --line-strong:var(--glass-line-strong); --paper:var(--glass-surface); --bg:var(--glass-bg);
  --text-strong:var(--glass-text); --text-secondary:var(--glass-muted); --panel:var(--glass-surface);
  --surface-subtle:var(--glass-surface-soft); --surface-hover:rgb(120 216 233 / 16%);
  --accent:var(--glass-accent); --accent-dark:var(--glass-accent); --ok:var(--glass-success); --warning:var(--glass-warning); --danger:var(--glass-danger);
  --workspace-ink:var(--glass-text); --workspace-muted:var(--glass-muted); --workspace-line:var(--glass-line); --workspace-line-strong:var(--glass-line-strong); --workspace-accent:var(--glass-accent); --workspace-accent-dark:var(--glass-accent);
  --platform-ink:var(--glass-text); --platform-muted:var(--glass-muted); --platform-accent:var(--glass-accent); --platform-paper:var(--glass-bg);
  --ui-surface:rgb(18 39 57 / 78%); --ui-border:var(--glass-line);
  --ui-ink:var(--glass-text); --ui-muted:var(--glass-muted); --ui-accent:var(--glass-accent);
  --ui-success:var(--glass-success); --ui-warning:var(--glass-warning); --ui-danger:var(--glass-danger);
  --ui-danger-surface:rgb(131 37 52 / 25%); --ui-warning-surface:rgb(133 92 24 / 24%);
  --surface:var(--glass-surface); --text-muted:var(--glass-muted);
  font-family:Inter,"Segoe UI","Microsoft YaHei","PingFang SC",sans-serif; font-synthesis:none;
}

/* Light glass has its own foregrounds and surfaces, including native controls. */
:root[data-theme="light"] {
  color-scheme: light;
  --glass-bg:#edf5fa; --glass-bg-2:#e3eff6;
  --glass-surface:rgb(255 255 255 / 64%); --glass-surface-strong:rgb(247 252 255 / 92%);
  --glass-surface-soft:rgb(255 255 255 / 58%);
  --glass-line:rgb(43 77 103 / 19%); --glass-line-strong:rgb(43 77 103 / 34%);
  --glass-text:#172e43; --glass-muted:#405b70; --glass-subtle:#4c6578;
  --glass-accent:#08647c; --glass-accent-strong:#08758c;
  --glass-success:#176c49; --glass-warning:#885600; --glass-danger:#ac2e43;
  --green-soft:rgb(128 220 180 / 22%); --amber-soft:rgb(248 214 131 / 30%); --red-soft:rgb(247 162 176 / 24%);
  --glass-shadow:0 18px 60px rgb(35 68 92 / 12%); --glass-shadow-soft:0 8px 28px rgb(35 68 92 / 8%);
  --glass-focus:0 0 0 3px rgb(8 117 140 / 24%);
  --ui-surface:rgb(255 255 255 / 78%);
  --ui-danger-surface:rgb(247 162 176 / 24%); --ui-warning-surface:rgb(248 214 131 / 30%);
  --surface-hover:rgb(32 139 165 / 12%);
  --glass-topbar:rgb(255 255 255 / 72%);
  --glass-sidebar:rgb(255 255 255 / 65%);
  --glass-sidebar-platform:rgb(255 255 255 / 65%);
  --glass-input:rgb(255 255 255 / 86%);
  --glass-input-solid:#f7fcff;
  --glass-input-soft:rgb(255 255 255 / 80%);
  --glass-gate:rgb(255 255 255 / 78%);
  --glass-dialog:rgb(247 252 255 / 94%);
  --glass-dialog-soft:rgb(247 252 255 / 94%);
  --glass-backdrop:rgb(24 47 67 / 38%);
  --glass-option:#f5fbff;
  --glass-button:rgb(255 255 255 / 65%);
  --glass-header:rgb(209 229 242 / 62%);
  --glass-header-strong:rgb(209 229 242 / 62%);
  --glass-row:rgb(255 255 255 / 56%);
  --glass-row-platform:rgb(255 255 255 / 62%);
  --glass-row-soft:rgb(255 255 255 / 45%);
  --glass-row-hover:rgb(203 235 243 / 65%);
  --glass-selected:rgb(172 225 239 / 62%);
  --glass-selected-strong:rgb(172 225 239 / 62%);
  --glass-accent-hover:#06495d;
}

*,*::before,*::after{box-sizing:border-box}
html{min-width:320px;background:var(--glass-bg)}
body{min-width:320px;min-height:100dvh;margin:0;overflow-x:hidden;color:var(--glass-text);background:radial-gradient(circle at 12% 0%,rgb(46 143 178 / 28%),transparent 34rem),radial-gradient(circle at 88% 20%,rgb(101 79 173 / 20%),transparent 38rem),linear-gradient(145deg,var(--glass-bg),var(--glass-bg-2))}
button,input,select,textarea{font:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}button,[role=button],summary{cursor:pointer}
button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--glass-accent);outline-offset:2px;box-shadow:var(--glass-focus)}
[hidden]{display:none!important}
:is(.topbar,.console-topbar,.platform-topbar,.platform-gate-brand){border-bottom:1px solid var(--glass-line);background:var(--glass-topbar);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
:is(.panel,.panel-heading,.console-page-body>.panel-heading,.workspace-overview-panel,.workspace-overview-card,.providers-grid,.models-grid,.virtual-keys-grid,.usage-record-table,.request-log-table,.audit-log-table,.dlp-rule-table,.model-quality-table,.platform-band,.platform-table-wrap,.platform-metric,.platform-metric-card,.platform-customer-directory,.platform-customer-records article,.platform-customer-contact-list>div){border:1px solid var(--glass-line);border-radius:var(--glass-radius-md);background:var(--glass-surface);box-shadow:var(--glass-shadow-soft);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.app-shell:has(.console-shell){width:100%;max-width:none;margin:0;padding:0 0 48px;color:var(--glass-text);background:transparent}
.console-topbar{min-height:70px;padding:0 clamp(18px,4vw,56px)}
.console-shell{width:min(1680px,calc(100% - 32px));grid-template-columns:248px minmax(0,1fr);gap:24px;margin:0 auto;padding:24px 0 56px}
.console-sidebar{position:sticky;top:86px;align-self:start;max-height:calc(100dvh - 108px);overflow:auto;padding:14px 10px 16px;border:1px solid var(--glass-line);border-radius:var(--glass-radius-lg);color:var(--glass-muted);background:var(--glass-sidebar);box-shadow:var(--glass-shadow);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.sidebar-title{min-height:48px;padding:0 10px 14px;border-bottom:1px solid var(--glass-line)}.sidebar-title-copy strong{color:var(--glass-text);font-size:15px}
.sidebar-toggle{min-height:34px;border:1px solid var(--glass-line);border-radius:var(--glass-radius-sm);background:var(--glass-surface-soft);color:var(--glass-muted)}.sidebar-toggle:hover{color:var(--glass-text);border-color:var(--glass-accent);background:rgb(120 216 233 / 16%)}
.sidebar-group{margin-top:10px}.sidebar-group-toggle{min-height:38px;padding:7px 10px;border:0;border-radius:var(--glass-radius-sm);color:var(--glass-subtle);font-size:12px;font-weight:750}.sidebar-group-toggle:hover,.sidebar-group-toggle:focus-visible{color:var(--glass-text);background:var(--glass-surface-soft)}
.sidebar-group-items{display:grid;gap:3px;margin:2px 0 0 9px;padding-left:10px;border-left:1px solid var(--glass-line)}.sidebar-link{min-height:42px;padding:9px 11px;border:1px solid transparent;border-radius:var(--glass-radius-sm);background:transparent;color:var(--glass-muted);font-size:14px;text-align:left}.sidebar-link:hover:not(.active),.sidebar-link:focus-visible{color:var(--glass-text);background:var(--glass-surface-soft);border-color:var(--glass-line)}.sidebar-link.active{border-color:rgb(120 216 233 / 48%);border-left:3px solid var(--glass-accent);padding-left:9px;background:var(--glass-selected);color:#fff;box-shadow:inset 0 0 22px rgb(120 216 233 / 8%)}.sidebar-link small,.sidebar-link-short{display:none!important}
.console-main,.console-page-body{min-width:0;color:var(--glass-text)}.console-main-heading{min-height:64px;padding:0 0 18px;border-bottom:1px solid var(--glass-line)}.console-main-heading h2,.workspace-overview-name{color:var(--glass-text);font-size:clamp(24px,2.4vw,34px)}.console-main-heading p,.console-page-body p{color:var(--glass-muted)}
:is(.console-main,.platform-content) :is(input,select,textarea){min-width:0;min-height:42px;border:1px solid var(--glass-line-strong);border-radius:var(--glass-radius-sm);padding:9px 12px;color:var(--glass-text);background:var(--glass-input-soft)}:is(.console-main,.platform-content) textarea{min-height:92px}:is(.console-main,.platform-content) :is(input,select,textarea)::placeholder{color:var(--glass-subtle)}:is(.console-main,.platform-content) :is(input,select,textarea):focus{border-color:var(--glass-accent);outline:0;box-shadow:var(--glass-focus)}
:is(.console-main,.platform-content) :is(button,.primary-command,.platform-primary){min-height:42px;border:1px solid var(--glass-line-strong);border-radius:var(--glass-radius-sm);padding:9px 14px;color:var(--glass-text);background:var(--glass-button);font-weight:700}:is(.console-main,.platform-content) :is(button,.primary-command,.platform-primary):hover{border-color:var(--glass-accent);background:rgb(120 216 233 / 17%)}:is(.console-main,.platform-content) :is(button.primary,.primary-command,button[type=submit],.platform-primary){border-color:var(--glass-accent-strong);background:linear-gradient(135deg,rgb(37 159 187 / 86%),rgb(73 103 189 / 82%));color:#fff}:is(.console-main,.platform-content) button:disabled{cursor:not-allowed;opacity:.48}:is(.danger-button,button[data-danger],.provider-maintenance-actions .danger-button){border-color:rgb(255 155 155 / 55%)!important;background:rgb(160 47 67 / 24%)!important;color:var(--glass-danger)!important}:is(.status-mark,.platform-status,mark){border:1px solid currentColor;border-radius:999px;padding:4px 8px;background:var(--glass-button)}
:is(.providers-grid,.models-grid,.virtual-keys-grid,.usage-record-table,.request-log-table,.audit-log-table,.model-quality-table,.dlp-rule-table){width:100%;min-width:0;overflow-x:auto}:is(.provider-row,.model-row,.virtual-key-row,.usage-record-row,.request-log-row,.audit-log-row,.model-quality-row,.dlp-rule-row){min-width:0;border-color:var(--glass-line);background:var(--glass-row-soft)}:is(.provider-row,.model-row,.virtual-key-row,.usage-record-row,.request-log-row,.audit-log-row,.model-quality-row,.dlp-rule-row):hover{background:rgb(120 216 233 / 9%)}:is(.provider-head,.model-head,.virtual-key-head,.usage-record-head,.request-log-head,.audit-log-head,.model-quality-head,.dlp-rule-head){min-height:44px;background:var(--glass-header);color:var(--glass-muted);font-size:12px;font-weight:750}:is(.provider-row,.model-row,.virtual-key-row,.usage-record-row,.request-log-row,.audit-log-row,.model-quality-row,.dlp-rule-row)>*{min-width:0;overflow-wrap:anywhere}:is(.provider-row,.model-row,.virtual-key-row,.usage-record-row,.request-log-row,.audit-log-row,.model-quality-row,.dlp-rule-row) :is(strong,h3){color:var(--glass-text)}:is(.provider-row,.model-row,.virtual-key-row,.usage-record-row,.request-log-row,.audit-log-row,.model-quality-row,.dlp-rule-row) :is(em,small,code){color:var(--glass-muted)}
:is(.provider-row-actions,.model-row-actions,.virtual-key-row-actions,.users-row-actions,.project-row-actions,.routing-policy-action,.request-log-row-actions,.provider-primary-actions,.provider-maintenance-actions){display:flex;flex-wrap:wrap;align-items:center;gap:7px;min-width:0}:is(.provider-row-actions,.model-row-actions,.virtual-key-row-actions,.users-row-actions,.project-row-actions,.routing-policy-action,.request-log-row-actions) button{min-height:36px;padding:7px 10px;white-space:nowrap}
.provider-row{grid-template-columns:minmax(150px,1.05fr) minmax(180px,1.3fr) minmax(90px,.65fr) minmax(135px,.8fr) minmax(230px,1.5fr)!important;gap:12px;align-items:center}.provider-row-actions{justify-content:flex-end}.provider-url{overflow-wrap:anywhere;word-break:break-word}
.model-quality-row{grid-template-columns:minmax(135px,1.3fr) repeat(4,minmax(80px,.7fr)) minmax(125px,1fr) minmax(80px,.6fr) minmax(180px,1.2fr)!important}.request-log-row{grid-template-columns:minmax(66px,.6fr) minmax(110px,1fr) minmax(100px,.8fr) minmax(125px,1.1fr) minmax(70px,.6fr) minmax(120px,1fr) minmax(128px,1fr) minmax(90px,.7fr)!important}.audit-log-row{grid-template-columns:minmax(130px,.8fr) minmax(120px,1fr) minmax(150px,1.1fr) minmax(150px,1.1fr) minmax(130px,1fr) minmax(170px,1.3fr)!important}.dlp-rule-row{grid-template-columns:minmax(120px,1.1fr) 70px 70px 82px 70px 58px minmax(130px,1fr) minmax(160px,1.2fr)!important}
.workspace-overview{gap:28px;color:var(--glass-text)}.workspace-overview-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.workspace-overview-card{min-height:128px;padding:20px}.workspace-overview-card strong{color:var(--glass-text)}.workspace-overview-period,.workspace-overview-panel{border-color:var(--glass-line);background:var(--glass-surface)}
:is(dialog,.model-alias-dialog,.provider-edit-dialog,.provider-catalog-dialog,.provider-key-dialog,.consumer-key-dialog,.private-gateway-dialog,.tenant-data-dialog,.dlp-create-dialog,.platform-dialog){width:min(760px,calc(100vw - 32px));max-width:calc(100vw - 32px);max-height:min(88dvh,860px);margin:auto;padding:0;overflow:auto;border:1px solid var(--glass-line-strong);border-radius:var(--glass-radius-lg);color:var(--glass-text);background:var(--glass-dialog-soft);box-shadow:var(--glass-shadow);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}:is(dialog,.model-alias-dialog,.provider-edit-dialog,.provider-catalog-dialog,.provider-key-dialog,.consumer-key-dialog,.private-gateway-dialog,.tenant-data-dialog,.dlp-create-dialog,.platform-dialog)::backdrop{background:var(--glass-backdrop);backdrop-filter:blur(5px)}
:is(.model-create-dialog-content,.model-edit-dialog-content,.provider-catalog-dialog-content,.provider-key-dialog-content,.provider-edit-form,.provider-test-dialog-content,.virtual-key-dialog-content,.project-form,.model-alias-dialog-content,.dlp-create-dialog form){min-width:0;padding:24px;background:transparent}:is(.provider-catalog-dialog-heading,.provider-key-dialog-heading,.provider-edit-dialog-heading,.provider-test-dialog-heading,.virtual-key-dialog-heading,.model-alias-dialog-heading,.dlp-dialog-heading){display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:-24px -24px 20px;padding:18px 24px;border-bottom:1px solid var(--glass-line);background:rgb(255 255 255 / 7%)}:is(dialog h3,dialog h4){margin:0;color:var(--glass-text)}:is(.model-actions,.model-edit-actions,.provider-edit-actions,.provider-test-dialog-actions,.virtual-key-actions,.project-actions,.dlp-actions){display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px;margin-top:18px;padding-top:14px;border-top:1px solid var(--glass-line)}.icon-button{min-width:38px;min-height:38px;padding:5px 10px}
.dlp-heading-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.dlp-rule-form{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px;margin:0;padding:24px;border:0;background:transparent}.dlp-rule-form h3,.dlp-dialog-heading,.dlp-actions{grid-column:1/-1}.dlp-pattern-field,.dlp-description-field{grid-column:span 2}.dlp-rule-form label{min-width:0}.dlp-rule-form input,.dlp-rule-form select,.dlp-rule-form textarea{width:100%}.dlp-actions{justify-content:flex-start}
.platform-shell,.platform-app{min-width:0;min-height:100dvh;color:var(--glass-text);background:transparent}.platform-topbar{position:sticky;z-index:10;top:0}.platform-body{width:min(1720px,calc(100% - 32px));grid-template-columns:248px minmax(0,1fr);margin:0 auto}.platform-sidebar{position:sticky;top:70px;height:calc(100dvh - 70px);border:1px solid var(--glass-line);border-radius:0 0 var(--glass-radius-lg) var(--glass-radius-lg);background:var(--glass-sidebar-platform);box-shadow:var(--glass-shadow-soft);backdrop-filter:blur(20px)}.platform-sidebar button,.platform-nav-group>summary{color:var(--glass-muted);border-radius:var(--glass-radius-sm)}.platform-sidebar button:hover,.platform-nav-group>summary:hover{color:var(--glass-text);background:var(--glass-surface-soft)}.platform-sidebar button.is-active{border-left:3px solid var(--glass-accent);background:var(--glass-selected);color:#fff}.platform-content{min-width:0;padding:30px clamp(18px,4vw,52px) 58px}.platform-page-heading{min-width:0;margin-bottom:20px;padding-bottom:18px;border-bottom:1px solid var(--glass-line)}.platform-page-heading h1{color:var(--glass-text);font-size:clamp(24px,2.4vw,34px)}.platform-page-heading p,.platform-section-heading p{color:var(--glass-muted)}.platform-band{padding:20px}.platform-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;border:0}.platform-metrics>div,.platform-metric{min-width:0;padding:18px;border:1px solid var(--glass-line);border-radius:var(--glass-radius-md);background:var(--glass-surface)}.platform-metrics>div+div{padding-left:18px}.platform-metrics span,.platform-metrics small{color:var(--glass-muted)}.platform-metrics strong{color:var(--glass-text);font-size:28px}.platform-table-wrap{overflow-x:auto}:where(.platform-table-wrap table){width:100%;min-width:0;table-layout:fixed}.platform-table-wrap th,.platform-table-wrap td{min-width:0;padding:12px;border-color:var(--glass-line);color:var(--glass-text);overflow-wrap:anywhere}.platform-table-wrap th{background:var(--glass-header);color:var(--glass-muted)}.platform-table-wrap td small{color:var(--glass-muted)}.platform-filter-form{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.platform-customer-layout{grid-template-columns:minmax(270px,.75fr) minmax(0,1.25fr);gap:18px}.platform-customer-list{min-width:0;padding:0 18px 0 0;border-right:1px solid var(--glass-line)}.platform-customer-detail{min-width:0;padding:0 0 0 18px}.platform-customer-row{color:var(--glass-text);border-color:var(--glass-line)}.platform-customer-row:hover,.platform-customer-row.is-selected{background:rgb(120 216 233 / 12%)}.platform-customer-row strong,.platform-customer-detail h2{color:var(--glass-text)}.platform-customer-detail-actions button,.platform-customer-inline-actions button,.platform-customer-tabs button{border-color:var(--glass-line-strong);background:var(--glass-button);color:var(--glass-text)}.platform-customer-tabs button[aria-selected=true]{border-color:var(--glass-accent);background:var(--glass-selected);color:#fff}
@media (max-width:1150px){.console-shell,.platform-body{grid-template-columns:220px minmax(0,1fr)}.provider-row{grid-template-columns:minmax(140px,1fr) minmax(140px,1fr) minmax(80px,.7fr) minmax(190px,1.35fr)!important}.provider-row>:nth-child(4){display:none}.model-quality-row{grid-template-columns:minmax(125px,1.2fr) repeat(3,minmax(72px,.7fr)) minmax(115px,1fr) minmax(70px,.6fr) minmax(165px,1.2fr)!important}.model-quality-row>:nth-child(5){display:none}.platform-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:900px){.console-shell,.platform-body{width:calc(100% - 24px);grid-template-columns:1fr;gap:14px}.console-sidebar,.platform-sidebar{position:relative;top:auto;height:auto;max-height:42dvh;border-radius:var(--glass-radius-lg)}.console-main .request-log-row,.console-main .audit-log-row,.console-main .model-quality-row,.console-main .dlp-rule-row{grid-template-columns:repeat(2,minmax(0,1fr))!important}.console-main :is(.request-log-head,.audit-log-head,.model-quality-head,.dlp-rule-head){display:none}.console-main :is(.request-log-row,.audit-log-row,.model-quality-row,.dlp-rule-row){margin:8px;padding:13px;border:1px solid var(--glass-line);border-radius:var(--glass-radius-sm)}.console-main :is(.request-log-row,.audit-log-row,.model-quality-row,.dlp-rule-row) [data-label]::before{display:block;margin-bottom:3px;color:var(--glass-subtle);content:attr(data-label);font-size:11px;font-weight:700}.platform-customer-layout{grid-template-columns:1fr}.platform-customer-list{padding:0 0 16px;border-right:0;border-bottom:1px solid var(--glass-line)}.platform-customer-detail{padding:16px 0 0}}
@media (max-width:620px){.console-shell,.platform-body{width:calc(100% - 16px)}.console-topbar,.platform-topbar{padding-inline:14px}.workspace-overview-cards,.platform-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.dlp-rule-form{grid-template-columns:1fr!important}.dlp-pattern-field,.dlp-description-field,.dlp-rule-form h3,.dlp-dialog-heading,.dlp-actions{grid-column:auto}.platform-content{padding:20px 12px 40px}:is(.console-main,.platform-content) :is(button,input,select,textarea){min-height:44px}}
@media (max-width:430px){.workspace-overview-cards,.platform-metrics,.console-main :is(.request-log-row,.audit-log-row,.model-quality-row,.dlp-rule-row){grid-template-columns:1fr!important}.platform-band{padding:14px}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* Keep the shell inside the viewport. The legacy shell used negative margins to
   create a full-bleed header; with the glass surface and padded app shell that
   made every console page 24px wider than the viewport. */
.app-shell:has(.console-shell) .console-topbar {
  width: 100%;
  max-width: 100%;
  margin: 0 0 16px;
  box-sizing: border-box;
}

/* Legacy page styles still carry light table surfaces with higher specificity.
   Keep the whole console on the same glass surface and preserve readable text. */
.console-page-body :is(.providers-grid, .models-grid, .model-aliases-grid,
  .virtual-keys-grid, .users-grid, .usage-record-table, .usage-mini-table,
  .budget-rule-table, .budget-chain-table) {
  border-color: var(--glass-line) !important;
  border-radius: var(--glass-radius-md) !important;
  background: var(--glass-surface) !important;
}
.console-page-body :is(.provider-head, .model-head, .model-alias-head, .virtual-key-head,
  .users-head, .usage-record-head, .usage-mini-head, .budget-rule-head, .budget-chain-head) {
  border-color: var(--glass-line) !important;
  background: var(--glass-header-strong) !important;
  color: var(--glass-muted) !important;
}
.console-page-body :is(.provider-row, .model-row, .model-alias-row, .virtual-key-row,
  .users-row, .usage-record-row, .usage-mini-row, .budget-rule-row, .budget-chain-row) {
  border-color: var(--glass-line) !important;
  background: var(--glass-row) !important;
  color: var(--glass-text) !important;
}
.console-page-body :is(.provider-row, .model-row, .model-alias-row, .virtual-key-row,
  .users-row, .usage-record-row, .usage-mini-row, .budget-rule-row, .budget-chain-row):hover {
  background: var(--glass-row-hover) !important;
}
.console-page-body :is(.provider-row, .model-row, .model-alias-row, .virtual-key-row,
  .users-row, .usage-record-row, .usage-mini-row, .budget-rule-row, .budget-chain-row)
  :is(span, strong, small, code, em, label, a, p, h3, h4) {
  color: inherit;
}
.console-page-body :is(.provider-row, .model-row, .model-alias-row, .virtual-key-row,
  .users-row, .usage-record-row, .usage-mini-row, .budget-rule-row, .budget-chain-row)
  :is(small, em, code) { color: var(--glass-muted) !important; }
.console-page-body :is(.provider-row, .model-row, .model-alias-row, .virtual-key-row,
  .users-row, .usage-record-row, .usage-mini-row, .budget-rule-row, .budget-chain-row)
  :is(.status-mark, mark) { color: var(--glass-text) !important; }
.console-page-body :is(.provider-row.provider-head, .model-row.model-head,
  .model-alias-row.model-alias-head, .virtual-key-row.virtual-key-head,
  .users-row.users-head, .usage-record-row.usage-record-head,
  .usage-mini-row.usage-mini-head, .budget-rule-row.budget-rule-head,
  .budget-chain-row.budget-chain-head) {
  background: var(--glass-header-strong) !important;
  color: var(--glass-muted) !important;
}

/* Glass treatment for page-specific sections that were previously white. */
.console-page-body :is(.panel, .role-dashboard-panel, .workspace-task-home,
  .quickstart-panel, .developer-contracts-panel, .language-settings-panel,
  .workspace-console-experience-panel, .private-gateway-workspace,
  .usage-total-grid, .usage-summary-grid, .budget-status-grid,
  .policy-release-list, .policy-release-table, .policy-release-card) {
  border-color: var(--glass-line) !important;
  background: var(--glass-surface) !important;
  color: var(--glass-text);
}
.console-page-body :is(.panel-heading, .role-dashboard-heading, .workspace-task-heading,
  .workspace-navigation-heading, .quickstart-heading, .policy-release-heading) {
  border-color: var(--glass-line) !important;
  background: transparent !important;
  color: var(--glass-text);
}

/* The task home is a glass card in both standalone and embedded overview views. */
.console-page-body .workspace-task-home {
  padding: clamp(16px, 2vw, 24px);
  gap: 16px;
  border: 1px solid var(--glass-line);
  border-radius: var(--glass-radius-md);
}
.workspace-task-home .workspace-setup-progress-track {
  background: var(--glass-line-strong);
}

/* Platform workbench sections use the same glass language as the tenant console. */
.platform-content :is(.platform-section, .platform-card, .platform-band, .platform-table-wrap,
  .platform-customer-directory, .platform-customer-records, .platform-customer-contact-list,
  .platform-metric-card, .platform-empty-state) {
  border-color: var(--glass-line) !important;
  background: var(--glass-surface) !important;
  color: var(--glass-text);
}
.platform-content :is(table, th, td) { border-color: var(--glass-line) !important; }
.platform-content :is(th) { background: var(--glass-header-strong) !important; color: var(--glass-muted) !important; }
.platform-content :is(td) { background: var(--glass-row-platform) !important; color: var(--glass-text) !important; }

/* The legacy v3 stylesheet scopes the light canvas with :has(), so the final
   glass layer repeats that specificity to keep the page background consistent. */
body:has(.console-shell) {
  background: radial-gradient(ellipse at 25% 18%, rgb(42 177 175 / 36%), transparent 42%),
    radial-gradient(ellipse at 82% 62%, rgb(56 129 169 / 32%), transparent 48%),
    linear-gradient(145deg, var(--glass-bg), var(--glass-bg-2)) !important;
  background-attachment: fixed !important;
  color: var(--glass-text) !important;
}
body:has(.platform-body) {
  background: radial-gradient(ellipse at 25% 18%, rgb(42 177 175 / 36%), transparent 42%),
    radial-gradient(ellipse at 82% 62%, rgb(56 129 169 / 32%), transparent 48%),
    linear-gradient(145deg, var(--glass-bg), var(--glass-bg-2)) !important;
  background-attachment: fixed !important;
  color: var(--glass-text) !important;
}
.app-shell:has(.console-shell), .platform-shell, .platform-app {
  background: transparent !important;
  color: var(--glass-text) !important;
}

/* Frosted surfaces have a lit top edge and a translucent body, not an opaque canvas. */
:is(.console-sidebar, .workspace-overview-card, .workspace-overview-panel,
  .platform-band, .platform-metric, .platform-metrics > div) {
  border-color: var(--glass-line);
  border-top-color: rgb(220 244 255 / 45%);
  background-image: linear-gradient(135deg, rgb(230 246 255 / 10%), rgb(230 246 255 / 1%) 55%);
  box-shadow: inset 0 1px 0 rgb(255 255 255 / 12%), 0 12px 32px rgb(0 8 18 / 18%);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}
.console-page-body:has(.workspace-overview),
.console-page-body .workspace-console-experience-panel:has(.workspace-overview) {
  padding: 0;
  border: 0;
  background: transparent !important;
  box-shadow: none;
  backdrop-filter: none;
}
.console-topbar h1, .console-topbar .user-menu strong,
.platform-topbar .platform-wordmark { color: var(--glass-text); }
.console-topbar .user-menu span { color: var(--glass-muted); }
.console-topbar .user-menu :is(a, button) {
  color: var(--glass-text);
  background: var(--glass-button);
  border-color: var(--glass-line-strong);
}
.console-topbar .user-menu :is(a, button):hover { color: #fff; background: var(--surface-hover); }
.console-main :is(p, small, dt, legend, label),
.platform-content :is(p, small, dt, legend, label) { color: var(--glass-muted); }
.console-main a, .platform-content a, .platform-topbar-actions a { color: var(--glass-accent); }
.console-main a:hover, .platform-content a:hover { color: var(--glass-accent-hover); }
.console-main .workspace-overview-card :is(span, small),
.workspace-overview-header :is(span, small) { color: var(--glass-muted); }
.console-main .workspace-overview-card { color: var(--glass-text); }
.console-main .workspace-overview-card:hover {
  border-color: var(--glass-accent);
  background-color: rgb(194 225 244 / 15%);
  color: var(--glass-text);
}
.workspace-overview-period button[aria-pressed="true"] {
  border-color: var(--glass-accent);
  background: rgb(120 216 233 / 24%);
  color: #fff;
  box-shadow: inset 0 1px 0 rgb(255 255 255 / 15%);
}
.console-main .workspace-overview-links a {
  border: 1px solid var(--glass-line);
  background: rgb(255 255 255 / 7%);
  color: var(--glass-text);
}
.console-main .workspace-overview-links a:hover { border-color: var(--glass-accent); background: var(--surface-hover); }
.console-main .workspace-overview-links span { color: var(--glass-muted); }
.workspace-overview-header, .workspace-overview-attention li { border-color: var(--glass-line); }
.console-page-body :is(.policy-snapshot-workspace, .policy-snapshot-current,
  .policy-snapshot-candidate, .policy-snapshot-publish, .policy-snapshot-history,
  .policy-snapshot-table, .policy-snapshot-row, .policy-snapshot-rollback-form,
  .policy-snapshot-pending-notice, .policy-snapshot-feedback, .policy-snapshot-error) {
  border-color: var(--glass-line) !important;
  background: var(--glass-surface) !important;
  color: var(--glass-text) !important;
}
.console-page-body :is(.policy-snapshot-row-head, .policy-snapshot-summary-grid,
  .policy-snapshot-section-heading, .policy-snapshot-current-title) {
  background: var(--glass-header) !important;
  color: var(--glass-muted) !important;
}
.console-page-body :is(.policy-snapshot-workspace, .policy-snapshot-current,
  .policy-snapshot-candidate, .policy-snapshot-publish, .policy-snapshot-history)
  :is(h2, h3, h4, strong, span, p, dt, dd, time, button, label) { color: inherit; }
.console-page-body :is(.experiment-workspace, .experiment-list, .experiment-table,
  .experiment-row, .experiment-detail, .experiment-results, .experiment-result-grid,
  .experiment-result, .experiment-empty, .experiment-action-feedback) {
  border-color: var(--glass-line) !important;
  background: var(--glass-surface) !important;
  color: var(--glass-text) !important;
}
.console-page-body :is(.experiment-row.is-head, .experiment-section-heading,
  .experiment-detail-heading, .experiment-result-foot) {
  background: var(--glass-header) !important;
  color: var(--glass-muted) !important;
}
.console-page-body :is(.experiment-workspace, .experiment-list, .experiment-table,
  .experiment-row, .experiment-detail, .experiment-results, .experiment-result-grid,
  .experiment-result, .experiment-empty, .experiment-action-feedback)
  :is(h2, h3, h4, strong, b, span, p, dt, dd, time, button, label) { color: inherit; }

/* Shared controls and dialogs: the same tokens also drive the migrated feature sheets. */
.platform-gate { background: transparent; color: var(--glass-text); }
.platform-gate-brand { background: var(--glass-gate); color: var(--glass-text); backdrop-filter: blur(20px); }
.platform-gate-panel { background: var(--glass-surface); color: var(--glass-text); border-color: var(--glass-line-strong); border-radius: var(--glass-radius-lg); box-shadow: var(--glass-shadow); backdrop-filter: blur(24px); }
.platform-gate-panel :is(input,select) { background: var(--glass-input); color: var(--glass-text); border-color: var(--glass-line-strong); }
.platform-gate-panel :is(p,label,a) { color: var(--glass-muted); }
.platform-gate-panel button { color: #fff; background: #167e96; border-radius: var(--glass-radius-sm); }
body :is(.console-main,.platform-content) :is(table,[role="table"]) {
  border: 1px solid var(--glass-line);
  border-radius: var(--glass-radius-md);
  background: var(--ui-surface);
}
body :is(.console-main,.platform-content) :is(th,[role="columnheader"]) {
  background: var(--glass-header);
  color: var(--glass-muted);
  font-size: 12px;
  font-weight: 700;
}
body :is(.console-main,.platform-content) :is(th,td,[role="columnheader"],[role="cell"]) {
  padding: 12px 16px;
  border-color: var(--glass-line);
  vertical-align: middle;
  overflow-wrap: anywhere;
}
body :is(.console-main, .platform-content, dialog) {
  font-family: Inter, "Segoe UI", "Microsoft YaHei", "PingFang SC", sans-serif;
  font-size: 14px;
  line-height: 1.55;
}
body dialog[class] {
  color: var(--glass-text) !important;
  background: var(--glass-dialog) !important;
  border: 1px solid var(--glass-line-strong) !important;
  border-radius: var(--glass-radius-lg) !important;
  padding: 0;
  overflow-x: hidden;
  max-width: calc(100vw - 32px);
  max-height: calc(100dvh - 48px);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
}
body dialog[class]::backdrop { background: var(--glass-backdrop); backdrop-filter: blur(6px); }
body .request-logs-panel dialog.request-log-detail-dialog {
  inset: 0;
  margin: auto;
  width: min(980px, calc(100vw - 32px)) !important;
  height: auto;
  max-height: calc(100dvh - 48px);
  padding: 0;
  overflow: auto;
}
body .request-logs-panel dialog.request-log-detail-dialog:not([open]) { display: none; }
body .request-log-detail-dialog-card { width: 100%; max-height: none; overflow: visible; border: 0; background: transparent; }
body .request-log-detail-dialog .request-feedback-section form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
body .request-log-detail-dialog .request-feedback-section fieldset { min-width: 0; }
body .request-log-detail-dialog .request-feedback-section fieldset:last-of-type { grid-column: 1 / -1; }
@media (max-width:620px) { body .request-log-detail-dialog .request-feedback-section form { grid-template-columns: minmax(0, 1fr); } }
body :is(.console-main, .platform-content, dialog) :is(input, select, textarea) {
  background: var(--glass-input) !important;
  color: var(--glass-text) !important;
  border-color: var(--glass-line-strong) !important;
  max-width: 100%; min-width: 0;
}
body :is(.console-main, .platform-content, dialog) :is(input, select, textarea)::placeholder { color: var(--glass-subtle); opacity: 1; }
body :is(.console-main, .platform-content, dialog) option { color: var(--glass-text); background: var(--glass-option); }
body :is(.console-main, .platform-content, dialog) button {
  color: var(--glass-text); background: var(--glass-button);
  border-color: var(--glass-line-strong); min-height: 36px; white-space: nowrap;
}
body :is(.console-main, .platform-content, dialog) button:hover:not(:disabled) { background: rgb(120 216 233 / 16%); }
body :is(.console-main, .platform-content, dialog) button[type="submit"] {
  background: #167e96; color: #fff; border-color: #45bad1;
}
body :is(.console-main, .platform-content, dialog) button[type="submit"]:hover:not(:disabled) {
  background:#126d82;color:#fff;
}
body :is(.console-main, .platform-content) button[aria-selected="true"] {
  background: var(--glass-selected-strong);
  color: var(--glass-text);
  border-color: #78d8e9;
}
body .platform-mark { background: #167e96; color: #fff; }
body .platform-metrics > :is(article, div) {
  display: grid; align-content: start; gap: 8px; min-width: 0;
  padding: 18px; border: 1px solid var(--glass-line);
  border-radius: var(--glass-radius-md); background: var(--glass-surface);
}
body .platform-metrics > :is(article, div) > :is(span, strong, small) { display: block; margin: 0; }
body .platform-customer-row {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  white-space: normal; gap: 8px; border-radius: 12px; margin-bottom: 8px;
}
body .platform-customer-identity { grid-column: 1 / -1; }
body .platform-customer-qbr-table :is(th, td) { padding: 10px 8px; }
body .platform-customer-qbr-table :is(th, td):nth-child(6) { width: 26%; }
body .platform-customer-qbr-table :is(th, td):last-child { width: 24%; }
@media (min-width: 621px) and (max-width: 1350px) {
  body .platform-customer-layout { grid-template-columns: minmax(0, 1fr); }
  body .platform-customer-list { padding-right: 0; border-right: 0; }
  body .platform-customer-detail { padding-left: 0; }
}
@media (max-width: 620px) {
  body .platform-growth-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body .platform-customer-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body .platform-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body .platform-customer-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
body :is(.console-main, .platform-content, dialog) button:disabled { opacity: .65; }
body :is(.console-main, .platform-content, dialog) :is(summary, dt, label > span) { color: var(--glass-muted); }
body :is(.console-main, .platform-content, dialog) :is(hr, fieldset) { border-color: var(--glass-line); }
:where(body :is(.console-main, .platform-content) :is([role="table"], table)) { width: 100%; min-width: 0; }
body :is(.console-main, .platform-content) [role="row"] > :not(dialog) { min-width: 0; }
body :is(.console-main, .platform-content) :is([role="row"], tr) { border-color: var(--glass-line); }
.console-main .virtual-keys-grid { overflow-x: visible; }
.console-page-body .virtual-key-row {
  min-width: 0; padding: 14px 16px; gap: 16px;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.2fr) minmax(0, .7fr) minmax(0, 1fr) minmax(0, .8fr) minmax(164px, 1fr);
}
.console-main .virtual-key-row-actions { justify-content: flex-end; gap: 8px; }
.console-main .virtual-key-row-actions button { padding: 6px 10px; min-height: 36px; }
.console-main .virtual-key-name code { font-size: 12px; overflow-wrap: anywhere; }
.console-main .virtual-key-binding-dialog { width: min(680px, calc(100vw - 32px)); }
.virtual-key-binding-dialog-content { padding: 24px; gap: 16px; }
.virtual-key-edit-section { margin: 0; padding: 16px; border: 1px solid var(--glass-line); border-radius: 12px; display: grid; gap: 12px; }
.virtual-key-edit-section legend { padding: 0 6px; font-weight: 700; color: var(--glass-text); }
.virtual-key-edit-section p:empty { display: none; }
.virtual-key-binding-dialog-content label { min-width: 0; }
.virtual-key-binding-dialog-content :is(input,select) { width: 100%; }
.console-page-body .panel { padding: 24px; }
.console-page-body > .panel-heading { padding: 14px 18px; margin-bottom: 16px; }
.console-page-body > :is(form, .users-search-form) { padding: 16px; border-radius: var(--glass-radius-md); }
.console-main :is(.virtual-keys-count,.users-count,.projects-count) { color: var(--glass-muted); background: var(--glass-surface-soft); border: 1px solid var(--glass-line); }
@media (max-width: 900px) {
  .console-page-body .virtual-key-row:not(.virtual-key-head) { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .console-page-body .virtual-key-head { display: none; }
  .console-main .virtual-key-row-actions { justify-content: flex-start; }
}
@media (max-width: 620px) {
  .virtual-key-binding-dialog-content, .console-page-body .panel { padding: 20px; }
  .virtual-key-binding-dialog-content .virtual-key-dialog-heading { margin: -20px -20px 0; padding: 16px 20px; }
  .virtual-key-limit-fields { grid-template-columns: 1fr; }
}


/* Keep selected labels readable in both themes; primary commands stay white. */
:root[data-theme="light"] :is(.sidebar-link.active, .platform-sidebar button.is-active,
  .platform-customer-tabs button[aria-selected="true"], .workspace-overview-period button[aria-pressed="true"],
  .console-topbar .user-menu a:hover, .console-topbar .user-menu button:hover) { color:var(--glass-text); }
:root[data-theme="light"] body:has(:is(.console-shell,.platform-body)) {
  background:radial-gradient(ellipse at 25% 18%,rgb(107 210 212 / 24%),transparent 42%),
    radial-gradient(ellipse at 82% 62%,rgb(150 173 237 / 21%),transparent 48%),
    linear-gradient(145deg,var(--glass-bg),var(--glass-bg-2)) !important;
}
.theme-toggle {
  display:inline-flex; align-items:center; justify-content:center; flex-shrink:0;
  min-height:44px; padding:9px 14px; border:1px solid var(--glass-line-strong);
  border-radius:var(--glass-radius-sm); background:var(--glass-button);
  color:var(--glass-text); font-size:14px; font-weight:700; white-space:nowrap;
}
.theme-toggle:hover { background:var(--surface-hover); border-color:var(--glass-accent); }
.console-topbar .user-menu .theme-toggle { min-height:36px; }
.platform-gate-brand .theme-toggle { margin-left:auto; }
@media (max-width:820px) {
  .console-topbar .user-menu { flex-wrap:wrap; }
  .console-topbar .user-menu > div { flex-basis:100%; }
}

/* Compact desktop controls and explicit KEY columns share the glass tokens. */
.console-topbar .brand-mark-default {
  display:grid; place-items:center; grid-template-columns:1fr; padding:3px;
  width:36px; height:36px; flex:0 0 36px; background:#167e96; color:#fff;
  border:1px solid var(--glass-line-strong); border-radius:9px;
}
.console-topbar .brand-mark-default svg { display:block; width:28px; height:28px; }
.console-topbar .user-menu > :is(a,button) {
  display:inline-flex; align-items:center; justify-content:center;
  height:36px; min-height:36px; padding:6px 10px; margin:0;
  font-size:13px; line-height:1.2; border-radius:var(--glass-radius-sm);
}
.console-main .console-page-body .virtual-keys-heading {
  display:flex; flex-direction:row; align-items:center; gap:16px;
  padding:14px 18px; margin:0 0 16px; min-height:64px;
}
.console-main .virtual-keys-heading > div { min-width:0; flex:1; }
.console-main .virtual-keys-heading p { margin:0; line-height:1.6; }
.console-main .virtual-keys-heading .virtual-keys-count { flex-shrink:0; padding:5px 10px; font-size:12px; }
.console-main .virtual-keys-heading > button { width:auto; min-height:34px; padding:6px 12px; font-size:13px; flex-shrink:0; }
.console-main .console-page-body .virtual-key-row {
  grid-template-columns:minmax(0,1fr) minmax(130px,1.05fr) minmax(0,.55fr)
    minmax(0,.6fr) minmax(0,.8fr) minmax(0,.7fr) minmax(0,.65fr)
    minmax(115px,.9fr) minmax(0,.65fr) 142px;
  gap:10px; padding:12px 16px; min-height:72px; align-items:center; font-size:13px;
}
.console-main .console-page-body .virtual-key-head { min-height:44px; font-size:12px; }
.console-main .virtual-key-head > [role="columnheader"] { background:transparent; }
.console-main .virtual-key-row > :is([role="cell"],[role="columnheader"]) { padding:0; min-width:0; }
.console-main .virtual-key-name strong { font-size:14px; line-height:1.5; }
.console-main .virtual-key-row .virtual-key-owner { font-size:13px; font-style:normal; font-weight:400; }
.console-main .virtual-key-credential { display:grid; gap:3px; overflow:visible; }
.console-main .virtual-key-prefix-line { display:flex; align-items:center; gap:5px; overflow:visible; }
.console-main .virtual-key-prefix-line code { font-size:11px; flex:0 1 auto; }
.console-main .virtual-key-prefix-line .virtual-key-copy-saved {
  display:inline-flex; align-items:center; justify-content:center;
  flex:0 0 28px; width:28px; min-width:28px; height:28px; min-height:28px; padding:0; border-radius:7px;
}
.console-main .virtual-key-copy-saved svg { width:14px; height:14px; }
.console-main .virtual-key-copy-feedback { white-space:normal; font-size:12px; line-height:1.4; }
.console-main .virtual-key-copy-feedback:empty { display:none; }
.console-main .virtual-key-last-used { white-space:normal; line-height:1.5; }
.console-main .virtual-key-row .status-mark { display:inline-block; width:max-content; padding:3px 7px; font-size:12px; }
.console-main .virtual-key-row .virtual-key-row-actions { display:flex; flex-wrap:nowrap; justify-content:flex-start; gap:6px; overflow:visible; }
.console-main .virtual-key-row .virtual-key-row-actions form { display:flex; margin:0; width:auto; }
.console-main .virtual-key-row .virtual-key-row-actions button {
  display:inline-flex; align-items:center; justify-content:center;
  width:auto; min-width:0; height:32px; min-height:32px; padding:5px 8px;
  font-size:12px; line-height:1.2; border-radius:8px;
}
.console-main .virtual-key-row .virtual-key-row-actions [data-rotate-virtual-key] { width:32px; min-width:32px; padding:0; }
.console-main .virtual-key-row-actions svg { width:16px; height:16px; }
@media (max-width:1150px) {
  .console-main .console-page-body .virtual-key-head { display:none; }
  .console-main .console-page-body .virtual-key-row:not(.virtual-key-head) { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 20px; }
  .console-main .virtual-key-row .virtual-key-field-label { display:block; margin-bottom:4px; font-size:12px; color:var(--glass-muted); }
  .console-main .virtual-key-row > :first-child { grid-column:auto; }
  .console-main .virtual-key-row .virtual-key-row-actions { grid-column:auto; align-self:end; }
}
@media (max-width:620px) {
  .console-main .console-page-body .virtual-keys-heading { flex-wrap:wrap; gap:10px; padding:14px 16px; }
  .console-main .virtual-keys-heading > div { flex-basis:100%; }
  .console-main .virtual-keys-heading .virtual-keys-count { margin-right:auto; }
}
@media (pointer:coarse) {
  .console-topbar .user-menu > :is(a,button),
  .console-main .virtual-key-prefix-line .virtual-key-copy-saved,
  .console-main .virtual-key-row .virtual-key-row-actions button { min-height:44px; height:44px; }
  .console-main .virtual-key-prefix-line .virtual-key-copy-saved { min-width:44px; flex-basis:44px; }
  .console-main .virtual-key-row .virtual-key-row-actions [data-rotate-virtual-key] { width:44px; min-width:44px; }
}

/* Project and application rows share one column contract at every width. */
.console-main .projects-grid {
  --project-columns:minmax(140px,1.6fr) 66px minmax(110px,1fr) 64px 70px minmax(134px,1.2fr) 132px;
  container-type:inline-size;
  border-radius:var(--glass-radius-md);
}
.console-main .projects-grid[data-has-actions="false"] {
  --project-columns:minmax(140px,1.6fr) 66px minmax(110px,1fr) 64px 70px minmax(134px,1.2fr);
}
.console-main .projects-grid :is(.project-row,.application-child-row) {
  display:grid;grid-template-columns:var(--project-columns);gap:10px;
  align-items:center;min-height:58px;padding:10px 16px;
  color:var(--glass-text);font-size:13px;line-height:1.5;
  background:var(--glass-row);border-color:var(--glass-line);
}
.console-main .projects-grid .project-head {
  display:grid;min-height:44px;background:var(--glass-header);
  color:var(--glass-muted);font-size:12px;font-weight:700;
}
.console-main .projects-grid .project-children[hidden] { display:none; }
.console-main .projects-grid .application-child-row { background:var(--glass-row-soft); }
.console-main .projects-grid :is(.project-row,.application-child-row):not(.project-head):hover { background:var(--glass-row-hover); }
.console-main .projects-grid .project-name { display:block;overflow:hidden; }
.console-main .projects-grid .application-child-name { padding-left:32px; }
.console-main .projects-grid .project-expand-button {
  display:flex;align-items:center;gap:8px;width:100%;min-height:32px;
  padding:0;border:0;border-radius:6px;background:transparent;
  color:var(--glass-text);font:inherit;text-align:left;box-shadow:none;
}
.console-main .project-expand-button strong { display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.console-main .project-chevron { flex:0 0 16px;transition:transform 150ms ease; }
.console-main .project-expand-button[aria-expanded="true"] .project-chevron { transform:rotate(90deg); }
.console-main .projects-grid .application-member-count {
  min-height:32px;padding:3px 6px;margin-left:-6px;border:0;
  color:var(--glass-accent);background:transparent;font:inherit;white-space:nowrap;box-shadow:none;
}
.console-main .application-member-count:hover { text-decoration:underline; }
.console-main .projects-grid .project-row-actions { display:flex;flex-wrap:nowrap;justify-content:flex-start;gap:6px; }
.console-main .projects-grid .project-row-actions button { width:auto;min-width:0;min-height:32px;height:32px;padding:5px 10px;font-size:12px;line-height:1.2; }
.console-main .projects-grid .status-mark { display:inline-block;padding:3px 8px;font-size:12px;white-space:nowrap; }
.console-main .projects-grid time { color:var(--glass-muted);font-variant-numeric:tabular-nums;overflow-wrap:normal; }
.console-main .projects-grid :is(.project-empty,.application-child-empty) { display:block;padding:20px 16px; }
.project-owner-picker { display:grid;grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:end;min-width:0; }
.project-owner-hint { grid-column:1/-1;color:var(--glass-muted);font-size:12px; }
.project-owner-picker label { min-width:0; }
.project-members-form .application-members-help { margin:0;color:var(--glass-muted);font-size:13px;line-height:1.6; }
.project-members-form .application-members-meta { flex-wrap:wrap;gap:10px;align-items:center; }
.project-members-form .application-members-list { max-height:min(360px,45dvh); }
@container (max-width:800px) {
  .console-main .projects-grid .project-head { display:none; }
  .console-main .projects-grid :is(.project-row,.application-child-row):not(.project-head) { grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px; }
  .console-main .projects-grid [data-label]::before { display:block;content:attr(data-label);margin-bottom:4px;color:var(--glass-muted);font-size:12px;font-weight:400; }
  .console-main .projects-grid .application-project-count { display:none; }
  .console-main .projects-grid .project-name { grid-column:1/-1; }
  .console-main .projects-grid .project-row-actions { grid-column:1/-1; }
}
@media (max-width:620px) {
  .project-owner-picker { grid-template-columns:1fr; }
}
@media (pointer:coarse) {
  .console-main .projects-grid :is(.project-expand-button,.application-member-count,.project-row-actions button) { min-height:44px;height:auto; }
}

/* Surface insets belong to the component, including headings nested in panels. */
.console-main .console-page-body .panel-heading {
  min-width:0; min-height:64px; margin:0 0 16px; padding:14px 18px;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  border:1px solid var(--glass-line); border-radius:var(--glass-radius-md);
}
.console-main .panel-heading > div { min-width:0; }
.console-main .panel-heading :is(h2,h3,p) { margin:0; line-height:1.6; }
.console-main .panel-heading :is(h2,h3) { color:var(--glass-text); }
.console-main .panel-heading p { margin-top:4px; }
.console-main:not(:has(> .console-main-heading)) > .console-page-body > .panel > .panel-heading h2 {
  position:static; width:auto; height:auto; overflow:visible; clip-path:none; white-space:normal;
}
.console-main .console-page-body .panel-heading:has(> h2:only-child) {
  min-height:0; margin:0; padding:0; border:0; background:transparent;
  box-shadow:none; backdrop-filter:none;
}
.console-main .console-page-unavailable {
  padding:18px 20px; border:1px solid var(--glass-line); border-radius:var(--glass-radius-md);
  background:var(--glass-surface); color:var(--glass-muted); line-height:1.6;
}
.console-main [role="row"] > :only-child { grid-column:1/-1; }
.console-main .provider-row {
  grid-template-columns:minmax(130px,1fr) minmax(140px,1.15fr) 88px minmax(120px,.9fr) 292px !important;
}
.console-main .provider-row-actions { flex-wrap:nowrap; gap:5px; }
.console-main .provider-row-actions :is(button,summary) { min-height:32px; height:32px; padding:5px 8px; font-size:12px; line-height:1.4; }
.console-main .provider-primary-actions { flex-wrap:nowrap; gap:5px; flex:0 0 auto; }
.console-main .provider-row-actions :is(.provider-main-action,.provider-more-trigger) {
  width:max-content; min-width:max-content; flex:0 0 auto; box-sizing:border-box;
  white-space:nowrap; padding:5px 10px;
}
.console-main .provider-row-actions { align-items:center; }
.provider-action-menu[popover]:not(:popover-open) { display:none !important; }
.provider-action-menu[popover] {
  position:fixed; inset:auto; margin:0; width:180px; max-width:calc(100vw - 24px);
  max-height:calc(100dvh - 24px); overflow-y:auto; box-sizing:border-box;
  padding:6px; border:1px solid var(--glass-line-strong); border-radius:12px;
  background:var(--glass-dialog); color:var(--glass-text); box-shadow:var(--glass-shadow);
  backdrop-filter:blur(16px);
}
.provider-action-menu[popover]:popover-open { display:flex; flex-direction:column; gap:3px; }
.console-main .provider-action-menu :is(form,button) { width:100%; margin:0; box-sizing:border-box; }
.console-main .provider-action-menu button {
  display:block; min-width:0; min-height:36px; height:auto; padding:8px 12px;
  text-align:left; font-size:13px; line-height:1.5; white-space:nowrap;
}
.console-main .provider-action-menu button:hover { background:var(--glass-row-hover); }
.console-main .provider-row-actions .provider-action-menu button {
  width:100%; min-width:0; padding:8px 12px; background:transparent !important;
  border:0; box-shadow:none !important; text-align:left; color:var(--glass-text);
}
.console-main .provider-row-actions .provider-action-menu button:hover {
  background:var(--glass-row-hover) !important;
}
.console-main .provider-row-actions .provider-action-menu .danger-button { color:var(--glass-danger); }
@media(max-width:900px) {
  .console-main .provider-row-actions { flex-wrap:wrap; justify-content:flex-start; }
  .console-main .provider-row-actions :is(button,.provider-more-trigger) { min-height:44px; height:auto; }
}
.console-main .model-alias-row .model-alias-row-actions,
.console-main .finops-row-actions { display:flex; flex-wrap:nowrap; align-items:center; gap:6px; }
.console-main :is(.model-alias-row-actions,.finops-row-actions) button { min-height:32px; height:32px; padding:5px 8px; font-size:12px; }
.console-main .provider-more-actions { flex:0 0 auto; }
.console-main .provider-more-actions summary { white-space:nowrap; }
.console-main .usage-own-section { margin-top:24px; }
.console-main .usage-total-grid > div {
  display:flex; flex-direction:column; align-items:flex-start; justify-content:center;
  gap:6px; min-width:0; min-height:108px; padding:18px;
}
.console-main .usage-total-grid > div > strong {
  display:block; font-size:24px; line-height:1.3; color:var(--glass-accent);
  font-variant-numeric:tabular-nums;
}
.console-main .usage-total-grid > div > span { color:var(--glass-muted); font-size:13px; }
.console-main .usage-personal-days { margin-top:20px; }
.console-main .usage-personal-days > h3 { margin:0 0 12px; }
.console-main :is(.experiment-section-heading,.experiment-detail-heading,.experiment-empty,.experiment-result-foot) {
  padding:14px 16px; gap:12px; line-height:1.6;
}
.console-main :is(.policy-snapshot-current,.policy-snapshot-candidate,.policy-snapshot-publish) {
  padding:18px; border:1px solid var(--glass-line); border-radius:var(--glass-radius-md);
}
.console-main :is(.policy-snapshot-section-heading,.policy-snapshot-current-title,.policy-snapshot-summary-grid) {
  background:transparent !important; border:0; box-shadow:none;
}
.console-main .policy-snapshot-history { padding:18px; border-radius:var(--glass-radius-md); }
.console-main .policy-snapshot-section-heading { margin-bottom:14px; }

/* Keep operations in their own column instead of below the policy explanation. */
.console-main .budget-rule-table { overflow-x:auto; }
.console-main .budget-rules-section .budget-rule-row {
  grid-template-columns:minmax(180px,1.5fr) minmax(160px,1fr) minmax(190px,1.15fr) minmax(130px,.8fr);
  align-items:center; gap:16px; padding:14px 18px; min-height:84px;
}
.console-main .budget-rule-table[data-has-actions="true"] .budget-rule-row {
  grid-template-columns:minmax(180px,1.5fr) minmax(160px,1fr) minmax(190px,1.15fr) minmax(130px,.8fr) 64px;
}
.console-main .budget-rules-section .budget-rule-head { min-height:44px; }
.console-main .budget-rules-section .budget-rule-head { display:grid; }
.console-main .budget-rule-row:not(.budget-rule-head) > [data-label] {
  display:grid; grid-template-columns:minmax(0,1fr); gap:4px; padding:0;
}
.console-main .budget-rule-row:not(.budget-rule-head) > [data-label]::before { display:none; content:none; }
.console-main .budget-rule-operations button {
  min-height:32px; height:32px; padding:5px 10px; width:auto; font-size:12px;
}
.console-main .model-quality-action form { display:grid; gap:8px; margin:0; }
.console-main .model-quality-action input { min-height:34px; height:34px; padding:5px 9px; }
.console-main .model-quality-buttons { gap:5px; flex-wrap:nowrap; }
.console-main .model-quality-buttons button {
  min-height:30px; height:30px; padding:4px 7px; font-size:12px; line-height:1.2;
}
.console-main .model-quality-buttons:has([data-model-quality-rebase]) { flex-wrap:wrap; }

/* Native focus and browser autofill must retain the same foreground/surface pair. */
body :is(.console-main,.platform-content,.platform-gate-panel,.identity-app,dialog)
  :is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),select,textarea):focus {
  background:var(--glass-input) !important; color:var(--glass-text) !important;
  caret-color:var(--glass-text); border-color:var(--glass-accent) !important;
  box-shadow:var(--glass-focus); outline:2px solid var(--glass-accent); outline-offset:2px;
}
body :is(.console-main,.platform-content,.platform-gate-panel,.identity-app,dialog) input:-webkit-autofill {
  -webkit-text-fill-color:var(--glass-text); caret-color:var(--glass-text);
  -webkit-box-shadow:0 0 0 1000px var(--glass-input-solid) inset;
}
body :is(.console-main,.platform-content,.platform-gate-panel,.identity-app,dialog) input:autofill {
  color:var(--glass-text); background:var(--glass-input-solid);
}
@media (max-width:620px) {
  .console-main .console-page-body .panel-heading { flex-wrap:wrap; gap:10px; padding:14px 16px; }
  .console-main .budget-rule-table[data-has-actions] .budget-rule-row:not(.budget-rule-head) { grid-template-columns:1fr 1fr; }
  .console-main .budget-rules-section .budget-rule-head { display:none; }
  .console-main .budget-rule-row:not(.budget-rule-head) > [data-label]::before { content:attr(data-label); display:block; color:var(--glass-muted); font-size:12px; }
}
@media (min-width:1151px) {
  .console-main .model-quality-row { grid-template-columns:minmax(110px,1.2fr) repeat(4,minmax(65px,.7fr)) minmax(110px,1.1fr) 60px 180px !important; }
}
.platform-content :is(.platform-band,.platform-metrics) + :is(.platform-band,.platform-metrics),
.platform-content .platform-compliance-disclaimer + .platform-metrics {
  margin-block-start:20px;
}
.platform-commercial-accounting { display:grid; gap:20px; min-width:0; }
.platform-commercial-accounting > .platform-page-heading { margin-bottom:0; }
.platform-commercial-heading-actions,
.platform-commercial-pagination,
.platform-commercial-projection-status { display:flex; align-items:center; flex-wrap:wrap; gap:10px; }
.platform-commercial-heading-actions { flex:0 0 auto; }
.platform-commercial-pagination { justify-content:flex-end; margin-top:12px; }
.platform-commercial-empty { padding:24px 12px; text-align:center; color:var(--glass-muted); }
.platform-commercial-table td small { display:block; margin-top:4px; color:var(--glass-muted); }
.platform-commercial-accounting :is(.platform-commercial-command,.platform-commercial-row-actions) form {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr)); gap:12px; align-items:end;
}
.platform-commercial-accounting form label { display:grid; gap:6px; min-width:0; }
.platform-commercial-accounting :is(input,select) { width:100%; min-width:0; }
.platform-content .platform-commercial-filter-band form {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(155px,1fr)); gap:12px;
  align-items:end;
}
.platform-content .platform-commercial-filter-band button { width:auto; min-height:36px; justify-self:start; }
.platform-launch-boundary { width:auto; flex:0 0 auto; white-space:nowrap; }
.platform-content .platform-check { display:flex; align-items:center; gap:8px; }
.platform-content .platform-check input[type="checkbox"] { width:18px; height:18px; flex:0 0 18px; }
.platform-content .platform-collapsed-section > summary { justify-content:flex-start; }
.platform-content .platform-collapsed-section > summary::before { flex:0 0 20px; }
.platform-content .platform-collapsed-section > summary:has(> span:first-child)::before { display:none; }
.platform-content .platform-collapsed-section > summary > span:first-child {
  margin-left:0; color:var(--glass-text); font-size:15px; font-weight:700;
}
.platform-content .platform-collapsed-section > summary > small { margin-left:auto; color:var(--glass-muted); }

body:has(.identity-app) .identity-app :is(.identity-current-session,.identity-session-row) :is(span,small) { color:var(--glass-muted); }
body:has(.identity-app) .identity-app :is(.identity-error,.identity-form-error,.identity-feedback-error,[role="alert"]) {
  padding:12px 16px; line-height:1.6; overflow-wrap:anywhere;
}

/* Dialogs own an inset unless their direct content wrapper already supplies it. */
body dialog { padding:24px !important; }
body dialog:has(> :is(.model-create-dialog-content,.model-edit-dialog-content,
  .provider-catalog-dialog-content,.provider-key-dialog-content,.provider-edit-form,
  .provider-test-dialog-content,.virtual-key-dialog-content,.virtual-key-binding-dialog-content,
  .project-form,.model-alias-dialog-content,.dlp-rule-form)) { padding:0 !important; }
body dialog :is(.budget-dialog-header,.project-dialog-heading,.invitation-dialog-heading,
  .approval-dialog-heading,.finops-dialog-heading,.cost-anomaly-dialog-heading,
  .session-risk-dialog-heading,.experiment-dialog-heading) {
  display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;
}
body .virtual-key-binding-dialog-content .virtual-key-dialog-heading {
  position:sticky;top:-24px;z-index:2;background:var(--glass-dialog-soft);
}
body .virtual-key-binding-dialog-content .virtual-key-actions {
  position:sticky;bottom:0;z-index:2;margin:18px -24px 0;
  padding:14px 24px;background:var(--glass-dialog-soft);
}

/* Both modal families use the viewport, never a glass card's containing block. */
body [data-modal-viewport-layer] {
  position:fixed !important;inset:0 !important;margin:0 !important;
  width:100% !important;max-width:none !important;height:100dvh !important;
  max-height:none !important;box-sizing:border-box;padding:16px !important;
  border:0;border-radius:0;overflow:hidden;z-index:2000;
  color:var(--glass-text);background:var(--glass-backdrop);
  backdrop-filter:none;display:grid;place-items:center;
}
body [data-modal-viewport-layer][popover]:not(:popover-open),
body [data-modal-viewport-layer][hidden] { display:none !important; }
body [data-modal-viewport-layer][popover] { background:transparent; }
body [data-modal-viewport-layer]::backdrop {
  background:var(--glass-backdrop);backdrop-filter:blur(5px);
}
body [data-modal-surface] {
  box-sizing:border-box !important;min-height:0 !important;
  max-width:calc(100vw - 32px) !important;
  max-height:calc(100dvh - 32px) !important;overflow:auto !important;
  overscroll-behavior:contain;scroll-padding-block:90px 24px;
  transform:none !important;
  transition:none !important;animation:none !important;
  translate:var(--modal-offset-x,0px) var(--modal-offset-y,0px);
}
body dialog[data-modal-surface] {
  position:fixed !important;inset:16px !important;margin:auto !important;
  height:fit-content;animation:none !important;
}
body [data-modal-viewport-layer] > [data-modal-surface] {
  position:absolute !important;inset:16px !important;margin:auto !important;height:fit-content;
  background:var(--glass-dialog) !important;color:var(--glass-text) !important;
}
body [data-modal-drag-handle] {
  position:sticky;top:calc(-1 * var(--modal-header-inset,0px));z-index:5;
  background:var(--glass-option) !important;color:var(--glass-text);
  cursor:grab;touch-action:none;
}
body [data-modal-dragging] [data-modal-drag-handle] { cursor:grabbing;user-select:none; }
body [data-modal-drag-handle] :is(button,a,input,select,textarea) { touch-action:auto;cursor:pointer; }
/* Older browsers without the top-layer API must not anchor overlays to a blurred ancestor. */
@supports not selector(:popover-open) {
  body :has([data-modal-viewport-layer]) {
    backdrop-filter:none !important;filter:none !important;transform:none !important;
  }
}

/* Budget disclosure rows keep every period on the same column grid. */
.console-main .budget-scope-node { background:transparent !important; border:0; border-radius:0; margin:0; padding:0; }
.console-main .budget-scope-node > summary { display:flex; align-items:center; gap:12px; min-height:48px; padding:12px 18px; border-bottom:1px solid var(--glass-line); background:var(--glass-input); color:var(--glass-text); cursor:pointer; }
.console-main .budget-scope-node > summary::before { content:"▸"; flex:0 0 14px; color:var(--glass-accent); }
.console-main .budget-scope-node[open] > summary::before { content:"▾"; }
.console-main .budget-scope-title { display:flex; align-items:center; gap:10px; min-width:0; }
.console-main .budget-scope-title strong { overflow-wrap:anywhere; }
.console-main .budget-scope-title small, .console-main .budget-scope-count { color:var(--glass-muted); font-size:12px; }
.console-main .budget-scope-count { margin-left:auto; flex-shrink:0; }
.console-main .budget-scope-node[data-budget-depth="1"] > summary { padding-left:36px; }
.console-main .budget-scope-node[data-budget-depth="2"] > summary { padding-left:54px; }
.console-main .budget-scope-node[data-budget-depth="1"] > .budget-scope-content > .budget-rule-row .budget-rule-name { padding-left:18px; }
.console-main .budget-scope-node[data-budget-depth="2"] > .budget-scope-content > .budget-rule-row .budget-rule-name { padding-left:36px; }
.console-main .budget-tree-hint { padding:8px 2px 16px; color:var(--glass-muted); font-size:13px; }
.console-main .budget-visible-alerts { padding:18px; margin:16px 0; border:1px solid var(--glass-line); border-left:4px solid var(--glass-accent); border-radius:16px; background:var(--glass-input); }
.console-main .budget-visible-alerts ul { margin:12px 0 0; padding:0; list-style:none; }
.console-main .budget-visible-alerts li { display:grid; gap:6px; padding:12px 0; border-top:1px solid var(--glass-line); }
.console-main .budget-visible-alerts li span { color:var(--glass-muted); }
.console-main .policy-template-catalog__item { white-space:normal !important; }
.console-main .policy-template-catalog__description { white-space:normal; }
