:root {
  color: #163344;
  background: #eef2ef;
  font-family: "Avenir Next", "SF Pro Text", -apple-system, BlinkMacSystemFont, sans-serif;
  font-synthesis: none;
  --ink: #0d2635;
  --ink-soft: #173c50;
  --tide: #176f87;
  --tide-light: #7fb7bd;
  --coral: #e6674f;
  --salt: #fbfcf8;
  --fog: #dfe7e3;
  --moss: #52766b;
  --line: rgba(13, 38, 53, .13);
  --shadow: 0 18px 50px rgba(19, 52, 66, .09);
}

* { box-sizing: border-box; }
body { margin: 0; min-width: 320px; min-height: 100vh; background: radial-gradient(circle at 70% 0%, #f8f7ef 0, transparent 34%), #eef2ef; }
[hidden] { display: none !important; }
.is-authenticating .shell, .is-authenticating .skip-link { visibility: hidden; }
.login-gate { position: fixed; z-index: 50; inset: 0; display: grid; place-items: center; padding: 20px; background: radial-gradient(circle at 70% 0%, #f8f7ef 0, transparent 38%), #e8efec; }
.login-card { width: min(430px, 100%); padding: 34px; border: 1px solid rgba(13,38,53,.12); border-radius: 18px; background: rgba(251,252,248,.95); box-shadow: 0 30px 90px rgba(13,38,53,.18); }
.login-card h1 { margin: 10px 0 14px; font-size: 34px; }
.login-brand { display: flex; gap: 11px; align-items: center; margin-bottom: 34px; color: var(--ink); }
.login-brand strong, .login-brand small { display: block; }.login-brand small { color: #7d9095; font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.login-brand .brand-mark { color: #fff; background: var(--ink); }
.login-copy { min-height: 42px; margin-bottom: 22px; color: #6f8288; font-size: 13px; line-height: 1.6; }
.login-card label { display: grid; gap: 7px; margin-bottom: 15px; color: #536d75; font-size: 12px; font-weight: 650; }
.login-card input { width: 100%; min-height: 44px; border: 1px solid #c7d4d1; border-radius: 9px; padding: 9px 11px; color: var(--ink); background: #fff; }
.login-error { margin-top: 15px; padding: 11px 13px; border-radius: 8px; color: #8b3226; background: #f8e5e0; font-size: 12px; }
button, input, select { font: inherit; }
button { cursor: pointer; }
button:focus-visible, input:focus-visible, select:focus-visible, a:focus-visible { outline: 3px solid rgba(230, 103, 79, .35); outline-offset: 2px; }
.skip-link { position: fixed; z-index: 20; left: 16px; top: -60px; padding: 10px 14px; background: var(--salt); color: var(--ink); border-radius: 8px; }
.skip-link:focus { top: 12px; }
.shell { min-height: 100vh; display: grid; grid-template-columns: 238px minmax(0, 1fr); }

.sidebar { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; padding: 30px 20px 24px; color: #f5f7f2; background: var(--ink); overflow: hidden; }
.sidebar::before { content: ""; position: absolute; width: 280px; height: 280px; left: -120px; bottom: -100px; border: 1px solid rgba(127, 183, 189, .18); border-radius: 50%; box-shadow: 0 0 0 35px rgba(127, 183, 189, .035), 0 0 0 70px rgba(127, 183, 189, .025); pointer-events: none; }
.brand { position: relative; display: flex; gap: 12px; align-items: center; padding: 0 10px 35px; }
.brand strong { display: block; font-size: 20px; letter-spacing: .03em; }
.brand small, .sidebar-foot small { display: block; margin-top: 1px; color: #93aab2; font-size: 10px; letter-spacing: .13em; text-transform: uppercase; }
.brand-mark { display: flex; align-items: end; gap: 3px; width: 28px; height: 28px; padding: 5px; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; }
.brand-mark i { display: block; width: 3px; background: var(--coral); border-radius: 4px; }
.brand-mark i:nth-child(1) { height: 9px; }.brand-mark i:nth-child(2) { height: 16px; }.brand-mark i:nth-child(3) { height: 12px; }
nav { display: grid; gap: 6px; }
.nav-item { width: 100%; display: flex; gap: 12px; align-items: center; padding: 12px 13px; border: 0; border-radius: 10px; color: #9eb0b7; background: transparent; text-align: left; transition: background .2s ease, color .2s ease; }
.nav-item:hover { color: #fff; background: rgba(255,255,255,.05); }
.nav-item.is-active { color: #fff; background: var(--ink-soft); box-shadow: inset 3px 0 var(--coral); }
.nav-item span { color: #64808b; font-family: "SF Mono", ui-monospace, monospace; font-size: 10px; }
.sidebar-foot { position: relative; margin-top: auto; display: flex; gap: 10px; align-items: center; padding: 15px 10px 0; border-top: 1px solid rgba(255,255,255,.1); font-size: 12px; }
.status-dot, .live-pill i { width: 8px; height: 8px; border-radius: 50%; background: #79c49e; box-shadow: 0 0 0 4px rgba(121,196,158,.12); }

main { min-width: 0; padding: 34px 42px 60px; }
.topbar { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 28px; }
.eyebrow { margin: 0 0 5px; color: var(--tide); font: 700 10px/1.3 "SF Mono", ui-monospace, monospace; letter-spacing: .17em; }
h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: 0; font-size: clamp(28px, 3vw, 42px); line-height: 1; letter-spacing: -.035em; }
h2 { margin-bottom: 0; font-size: 22px; letter-spacing: -.02em; }
h3 { margin-bottom: 18px; font-size: 18px; }
.top-actions { display: flex; align-items: center; gap: 10px; }
.audio-badge, .live-pill { display: inline-flex; gap: 8px; align-items: center; color: #6e7e82; font-size: 12px; }
.audio-badge { padding: 8px 11px; border: 1px solid var(--line); border-radius: 999px; background: rgba(251,252,248,.55); }
.audio-badge i { width: 7px; height: 7px; border-radius: 50%; background: #aab5b2; }
.primary-button, .secondary-button, .icon-button { min-height: 40px; border-radius: 9px; border: 1px solid transparent; padding: 9px 14px; font-weight: 650; font-size: 13px; }
.primary-button { color: #fff; background: var(--coral); box-shadow: 0 8px 18px rgba(230,103,79,.18); }
.primary-button:hover { background: #d95640; }
.secondary-button { color: var(--ink); border-color: var(--line); background: rgba(251,252,248,.7); }
.secondary-button:hover { background: #fff; }
.full { width: 100%; }
.notice { margin: -12px 0 22px; padding: 12px 15px; border-left: 3px solid var(--tide); border-radius: 6px; background: #e0edf0; font-size: 13px; }
.notice.is-error { color: #8b3226; border-left-color: var(--coral); background: #f8e5e0; }
.panel { display: none; }.panel.is-active { display: block; animation: panel-in .25s ease; }
@keyframes panel-in { from { opacity: 0; transform: translateY(4px); } }

.hero-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(270px, .75fr); gap: 18px; }
.signal-map, .guard-card, .card, .editor-card, .capability-card { border: 1px solid rgba(13,38,53,.1); border-radius: 16px; background: rgba(251,252,248,.83); box-shadow: var(--shadow); }
.signal-map { min-height: 290px; padding: 24px; overflow: hidden; }
.section-heading { display: flex; justify-content: space-between; gap: 18px; align-items: start; margin-bottom: 24px; }
.live-pill { color: var(--moss); }
.signal-rail { display: grid; gap: 13px; }
.rail-row { display: grid; grid-template-columns: 150px minmax(60px, 1fr) minmax(150px, .8fr); align-items: center; gap: 10px; }
.feature-node, .provider-node { display: flex; gap: 9px; align-items: center; min-height: 49px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.feature-node strong, .provider-node strong { display: block; font-size: 12px; }
.feature-node small, .provider-node small { display: block; overflow: hidden; color: #7b8c90; font-size: 10px; white-space: nowrap; text-overflow: ellipsis; }
.node-icon { display: grid; flex: 0 0 auto; width: 27px; height: 27px; place-items: center; border-radius: 7px; color: var(--tide); background: #e3eff0; font: 700 11px "SF Mono", monospace; }
.rail-line { position: relative; height: 1px; background: linear-gradient(90deg, var(--tide-light), var(--coral)); }
.rail-line::after { content: ""; position: absolute; right: -1px; top: -3px; width: 7px; height: 7px; border-radius: 50%; background: var(--coral); box-shadow: 0 0 0 5px rgba(230,103,79,.1); }
.rail-line.is-off { background: repeating-linear-gradient(90deg, #b9c3c1 0 5px, transparent 5px 10px); }.rail-line.is-off::after { background: #a8b2b0; }
.guard-card { position: relative; padding: 26px; color: #edf4f2; background: var(--ink-soft); overflow: hidden; }
.guard-card::after { content: ""; position: absolute; width: 180px; height: 180px; right: -80px; top: -70px; border: 1px solid rgba(255,255,255,.09); border-radius: 50%; box-shadow: 0 0 0 28px rgba(255,255,255,.025), 0 0 0 56px rgba(255,255,255,.018); }
.guard-card .eyebrow { color: #83bdc5; }.guard-card h2 { max-width: 260px; line-height: 1.2; }.guard-card > p:not(.eyebrow) { margin: 18px 0 25px; color: #abc0c5; font-size: 13px; line-height: 1.65; }
.guard-card dl { margin: 0; }.guard-card dl div { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-top: 1px solid rgba(255,255,255,.1); font-size: 11px; }.guard-card dt { color: #8ea8ae; }.guard-card dd { margin: 0; text-align: right; }
.metric-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-top: 18px; }
.metric-card { min-height: 125px; padding: 20px; border: 1px solid var(--line); border-radius: 14px; background: rgba(251,252,248,.72); }
.metric-card .metric-top { display: flex; justify-content: space-between; color: #708388; font-size: 11px; }.metric-card .delta { color: var(--moss); }
.metric-value { margin: 17px 0 5px; font-size: 27px; font-weight: 700; letter-spacing: -.04em; }.metric-note { color: #809095; font-size: 10px; }
.lower-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 18px; }.card { min-height: 270px; padding: 24px; }
.usage-chart { min-height: 170px; display: grid; align-content: center; gap: 12px; padding-top: 10px; }
.usage-column { display: grid; grid-template-columns: 42px minmax(0, 1fr) 56px; gap: 10px; align-items: center; color: #829195; font: 9px "SF Mono", monospace; }
.usage-column progress { width: 100%; height: 9px; border: 0; border-radius: 999px; overflow: hidden; background: #e3e9e6; }
.usage-column progress::-webkit-progress-bar { background: #e3e9e6; }
.usage-column progress::-webkit-progress-value { border-radius: 999px; background: linear-gradient(90deg, var(--coral), #ef9b7f); }
.usage-column progress::-moz-progress-bar { border-radius: 999px; background: linear-gradient(90deg, var(--coral), #ef9b7f); }
.usage-column small:last-child { text-align: right; }
.empty-state { display: grid; min-height: 120px; place-items: center; color: #849397; font-size: 12px; text-align: center; }
.audit-list { max-height: 180px; margin: 0; padding: 0; overflow: auto; list-style: none; }.audit-list li { display: grid; grid-template-columns: 8px 1fr auto; gap: 10px; align-items: start; padding: 10px 0; border-top: 1px solid var(--line); font-size: 11px; }.audit-list i { width: 7px; height: 7px; margin-top: 4px; border: 2px solid var(--tide); border-radius: 50%; }.audit-list small { color: #879599; }

.section-intro { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 24px; }.section-intro > button { flex: 0 0 auto; white-space: nowrap; }.section-intro p:not(.eyebrow) { max-width: 680px; margin: 9px 0 0; color: #74878c; font-size: 13px; }
.device-layout { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(290px, .55fr); gap: 18px; align-items: start; }.device-main { display: grid; gap: 18px; min-width: 0; }
.table-card { min-width: 0; padding: 22px; border: 1px solid var(--line); border-radius: 15px; background: rgba(251,252,248,.82); box-shadow: var(--shadow); }.table-card h3 { margin: 0; }
.table-toolbar { display: flex; justify-content: space-between; gap: 16px; align-items: center; margin-bottom: 18px; }.table-filters { display: flex; gap: 8px; }.table-filters input, .table-filters select { min-height: 37px; border: 1px solid #ccd7d4; border-radius: 8px; padding: 7px 9px; color: var(--ink); background: #fff; font-size: 11px; }.table-filters input { width: min(230px, 32vw); }
.table-scroll { width: 100%; overflow-x: auto; }.table-scroll table { width: 100%; min-width: 840px; border-collapse: collapse; }.compact-table table { min-width: 720px; }
th { padding: 10px 9px; border-bottom: 1px solid var(--line); color: #71858a; font: 700 9px "SF Mono", ui-monospace, monospace; letter-spacing: .08em; text-align: left; text-transform: uppercase; white-space: nowrap; }
td { padding: 12px 9px; border-bottom: 1px solid rgba(13,38,53,.08); color: #334f5b; font-size: 11px; vertical-align: top; white-space: nowrap; }td strong, td small { display: block; }td small { margin-top: 4px; color: #829296; font-size: 9px; }.empty-cell { padding: 35px 12px; color: #849397; text-align: center; }
.device-id { color: var(--ink); font: 650 10px "SF Mono", ui-monospace, monospace; }.status-select { min-height: 31px; border: 1px solid #cbd7d4; border-radius: 7px; padding: 5px 7px; color: var(--ink); background: #fff; font-size: 10px; }
.status-badge, .outcome-badge, .privacy-pill { display: inline-flex; align-items: center; min-height: 23px; padding: 4px 8px; border-radius: 999px; font-size: 9px; font-weight: 700; }.status-badge.is-active, .outcome-badge.is-success { color: #327050; background: #dfeee5; }.status-badge.is-limited, .outcome-badge.is-rate_limited { color: #8a5a20; background: #f5ead9; }.status-badge.is-blocked, .outcome-badge.is-failed { color: #963e32; background: #f6e1dd; }
.privacy-pill { color: #4f727a; background: #e2eeec; }.table-note, .form-note { margin: 13px 0 0; color: #819095; font-size: 9px; line-height: 1.55; }.plan-card { position: sticky; top: 24px; }
.upstream-list { display: grid; gap: 12px; }.upstream-card { display: grid; grid-template-columns: minmax(210px, 1.1fr) minmax(180px, .8fr) minmax(210px, .9fr) auto; align-items: center; gap: 20px; padding: 18px 20px; border: 1px solid var(--line); border-radius: 13px; background: rgba(251,252,248,.82); }
.experience-note { display: grid; grid-template-columns: minmax(210px, .7fr) minmax(260px, 1fr) minmax(260px, 1fr); gap: 22px; align-items: start; margin-bottom: 18px; padding: 21px 23px; border: 1px solid #d9cfae; border-radius: 14px; background: #f7f1dd; box-shadow: var(--shadow); }.experience-note h3 { margin: 0; }.experience-note p:not(.eyebrow) { margin: 0; color: #68767a; font-size: 11px; line-height: 1.7; }.experience-note a { color: #336f7a; font-weight: 700; }
.upstream-title { display: flex; gap: 11px; align-items: center; min-width: 0; }.provider-logo { display: grid; flex: 0 0 auto; width: 37px; height: 37px; place-items: center; border-radius: 9px; color: #fff; background: var(--ink-soft); font: 700 12px "SF Mono", monospace; }.upstream-title strong { display: block; }.upstream-title small, .upstream-meta small { display: block; overflow: hidden; margin-top: 3px; color: #7c8c91; font-size: 10px; white-space: nowrap; text-overflow: ellipsis; }.upstream-meta .health-error { color: #9b4135; }
.health-line { display: flex; gap: 8px; align-items: center; font-size: 11px; }.health-line i { width: 8px; height: 8px; border-radius: 50%; background: #b1bcba; }.health-line.is-healthy i { background: #61a982; }.health-line.is-degraded i { background: #d7934e; }.health-line.is-disabled i { background: #b35b4f; }
.tags { display: flex; flex-wrap: wrap; gap: 5px; }.tag { padding: 4px 7px; border-radius: 5px; color: #4e7079; background: #e4edeb; font-size: 9px; }
.row-actions { display: flex; flex-wrap: wrap; gap: 7px; }.small-button { min-height: 33px; padding: 6px 10px; border: 1px solid var(--line); border-radius: 7px; color: var(--ink); background: #fff; font-size: 11px; }.small-button.danger { color: #9c4236; }.small-button:disabled { cursor: wait; opacity: .55; }

.routing-layout, .identity-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(300px, .65fr); gap: 18px; align-items: start; }.route-board { display: grid; gap: 14px; }.route-group { padding: 20px; border: 1px solid var(--line); border-radius: 14px; background: rgba(251,252,248,.75); }.route-group h3 { margin: 0 0 13px; }.route-item { display: grid; grid-template-columns: 33px 1fr auto; gap: 10px; align-items: center; padding: 10px 0; border-top: 1px solid var(--line); font-size: 12px; }.route-priority { display: grid; width: 27px; height: 27px; place-items: center; border-radius: 50%; color: var(--tide); background: #e1eceb; font: 10px "SF Mono", monospace; }.route-item small { color: #819094; }
.editor-card, .capability-card { padding: 24px; }.editor-card label, dialog label { display: grid; gap: 6px; margin-bottom: 13px; color: #62777e; font-size: 11px; font-weight: 650; }.editor-card input, .editor-card select, dialog input, dialog select { width: 100%; min-height: 40px; border: 1px solid #ccd7d4; border-radius: 8px; padding: 8px 10px; color: var(--ink); background: #fff; }.split-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }.check-row { display: flex !important; grid-template-columns: none; flex-direction: row; align-items: center; gap: 8px !important; font-weight: 500 !important; }.check-row input { width: 16px !important; min-height: 16px !important; accent-color: var(--coral); }
.model-field { margin-bottom: 13px; }.model-field > label { margin-bottom: 6px; }.model-discovery-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }.model-discovery-row .secondary-button { min-width: 104px; }.model-field > select { margin-top: 8px; }.field-help { display: block; margin-top: 7px; color: #819095; font-size: 9px; line-height: 1.5; }.field-help.is-error { color: #9b4135; }
.identity-layout { grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr); }.editor-card.wide { padding: 28px; }.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }.span-two { grid-column: 1 / -1; }.capability-card { background: var(--ink-soft); color: #eef5f3; }.capability-card .eyebrow { color: var(--tide-light); }.capability-card ul { margin: 0; padding: 0; list-style: none; }.capability-card li { display: flex; gap: 12px; padding: 13px 0; border-top: 1px solid rgba(255,255,255,.1); }.capability-card li strong, .capability-card li small { display: block; }.capability-card li small { margin-top: 3px; color: #9db3b8; font-size: 10px; }.capability-card li.muted { opacity: .48; }.cap-icon { display: grid; flex: 0 0 auto; width: 25px; height: 25px; place-items: center; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; }.cap-icon.ok { color: #8ad0a9; border-color: rgba(138,208,169,.35); }

dialog { width: min(720px, calc(100vw - 30px)); max-height: calc(100vh - 30px); border: 0; border-radius: 17px; padding: 0; color: var(--ink); background: var(--salt); box-shadow: 0 35px 100px rgba(7,27,38,.32); }.dialog-heading { display: flex; justify-content: space-between; gap: 20px; align-items: start; margin-bottom: 22px; }dialog form { padding: 28px; }dialog::backdrop { background: rgba(7,28,39,.55); backdrop-filter: blur(3px); }.icon-button { width: 37px; min-height: 37px; padding: 0; border-color: var(--line); color: var(--ink); background: transparent; font-size: 24px; font-weight: 400; }fieldset { margin: 5px 0 15px; border: 1px solid var(--line); border-radius: 9px; padding: 12px; }legend { padding: 0 6px; color: #62777e; font-size: 11px; font-weight: 650; }.check-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 5px; }.dialog-actions { display: flex; justify-content: end; gap: 8px; margin-top: 22px; }

@media (max-width: 1050px) {
  .shell { grid-template-columns: 190px minmax(0, 1fr); }.sidebar { padding-inline: 13px; }main { padding-inline: 25px; }.metric-grid { grid-template-columns: repeat(2, 1fr); }.hero-grid, .routing-layout, .identity-layout, .device-layout { grid-template-columns: 1fr; }.plan-card { position: static; }.upstream-card { grid-template-columns: 1fr 1fr; }.experience-note { grid-template-columns: 1fr 1fr; }.experience-note > div { grid-column: 1 / -1; }.row-actions { justify-content: end; }
}
@media (max-width: 720px) {
  .shell { display: block; }.sidebar { position: static; width: 100%; height: auto; padding: 17px; }.brand { padding-bottom: 15px; }.sidebar nav { grid-template-columns: repeat(5, minmax(0, 1fr)); }.nav-item { display: grid; justify-items: center; gap: 3px; padding: 9px 3px; font-size: 9px; text-align: center; }.sidebar-foot { display: none; }main { padding: 23px 16px 45px; }.topbar { align-items: start; }.top-actions { flex-wrap: wrap; justify-content: end; }.audio-badge, #refresh-button { display: none; }.section-intro { align-items: flex-start; flex-direction: column; }.lower-grid { grid-template-columns: 1fr; }.rail-row { grid-template-columns: 115px minmax(35px, 1fr) 125px; }.upstream-card, .experience-note { grid-template-columns: 1fr; gap: 12px; }.experience-note > div { grid-column: auto; }.row-actions { justify-content: start; }.form-grid { grid-template-columns: 1fr; }.span-two { grid-column: auto; }.check-grid { grid-template-columns: 1fr; }.table-card { padding: 17px; }.table-toolbar { align-items: stretch; flex-direction: column; }.table-filters input { width: 100%; }.table-filters { display: grid; grid-template-columns: 1fr 120px; }
}
@media (max-width: 480px) {
  .login-card { padding: 27px 22px; }.sidebar nav { grid-template-columns: repeat(3, 1fr); }.topbar { display: block; }.top-actions { justify-content: start; margin-top: 17px; }.metric-grid { grid-template-columns: 1fr 1fr; gap: 9px; }.metric-card { padding: 14px; }.metric-value { font-size: 22px; }.rail-row { grid-template-columns: 1fr; }.rail-line { height: 18px; width: 1px; margin-left: 25px; }.rail-line::after { left: -3px; right: auto; top: auto; bottom: 0; }.split-fields, .model-discovery-row { grid-template-columns: 1fr; }.table-filters { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; } }
