@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap');

/* ==========================================================================
   IRP portal — NXR design language, IRP teal/navy palette.
   Light neutral content surface + a dark navy sidebar & navy topbar gradient;
   teal is the single interactive accent. Signatures: 3px colored left rails
   (active nav, KPI tiles), uppercase letter-spaced eyebrows, a 3px accent
   focus halo, soft-tint status pills with a leading dot, hover-lift buttons.
   ========================================================================== */
:root{
  --font-ui:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --teal:#006f68;--teal-strong:#00544e;--teal-soft:#e3f1ef;
  --navy:#142840;--navy-2:#1e3a57;--navy-3:#0f1e30;
  --accent:var(--teal);--accent-on-dark:#5ccbbd;
  --page-bg:#eef2f6;--surface:#fff;--surface-2:#f5f8fb;--surface-3:#e9eef4;
  --border:rgba(16,32,52,.09);--border-strong:rgba(16,32,52,.15);
  --text:#17273b;--text-2:#485a70;--muted:#7a8a9d;
  --line:var(--border);--white:#fff;
  --ok:#16a34a;--ok-bg:#e9f6ee;--warn:#c2740a;--warn-bg:#fbf1e2;--err:#c62d24;--err-bg:#fdecea;--info:var(--teal);
  --r-sm:6px;--r-md:10px;--r-lg:14px;
  --shadow:0 2px 12px rgba(16,32,52,.08);--shadow-lg:0 8px 32px rgba(16,32,52,.14);
  --sidebar-w:240px;--topbar-h:70px;
  font-family:var(--font-ui);color:var(--text);background:var(--page-bg);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased
}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{color:var(--teal-strong);text-decoration:none}a:hover{text-decoration:underline}[hidden]{display:none!important}
h1,h2,h3,p{margin-top:0}h1{font-size:1.42rem;line-height:1.2;letter-spacing:-.01em;font-weight:700;margin-bottom:6px}h2{font-size:1rem;font-weight:700;letter-spacing:-.01em;margin-bottom:4px}h3{font-size:.9rem;font-weight:700}p{margin-bottom:14px}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(0,111,104,.28);border-radius:var(--r-sm)}
.muted,.field-help{color:var(--muted);font-size:.85rem}.field-help{margin:4px 0 0}
.eyebrow{font-size:.68rem;letter-spacing:.09em;text-transform:uppercase;font-weight:700;color:var(--muted);margin-bottom:10px}
.numeric,.metric-value,code,.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}

/* ---- buttons ---- */
.primary,.secondary,.text-button{border-radius:var(--r-md);padding:8px 16px;font-weight:600;font-size:.83rem;letter-spacing:.01em;white-space:nowrap;border:1px solid transparent;transition:.15s ease}
.primary{background:var(--teal);color:#fff;box-shadow:0 4px 12px rgba(0,111,104,.28)}.primary:hover{background:#00807860;background:#008077;transform:translateY(-1px);box-shadow:0 6px 20px rgba(0,111,104,.36)}.primary:active{background:var(--teal-strong);transform:none}
.secondary{background:var(--surface-3);border-color:var(--border-strong);color:var(--text-2)}.secondary:hover{background:#dde5ee;color:var(--text)}.secondary:active{background:var(--teal);border-color:var(--teal);color:#fff}
.text-button{background:rgba(16,32,52,.05);border-color:var(--border-strong);color:var(--text-2)}.text-button:hover{background:rgba(16,32,52,.09);color:var(--text)}
.full{width:100%;margin-top:20px}.full span{float:right}

/* ---- notices / alerts ---- */
.notice{padding:12px 16px;background:var(--teal-soft);border:1px solid rgba(0,111,104,.28);border-left:4px solid var(--teal);border-radius:var(--r-md);color:#215b56;margin:0 0 22px;font-size:.86rem;overflow-wrap:anywhere}
.notice.error{background:var(--err-bg);border-color:rgba(198,45,36,.3);border-left-color:var(--err);color:#8f2820}
.notice.success{background:var(--ok-bg);border-color:rgba(22,163,74,.3);border-left-color:var(--ok);color:#1c6b3f}

/* ---- badges / status pills ---- */
.badge{display:inline-flex;align-items:center;gap:5px;border-radius:99px;background:var(--teal-soft);padding:3px 10px;font-size:.7rem;color:var(--teal-strong);font-weight:700;letter-spacing:.03em}
.badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.7}

/* ---- forms ---- */
input,select,textarea{border:1px solid var(--border-strong);background:var(--surface);border-radius:var(--r-md);color:var(--text);padding:8px 14px;max-width:100%;transition:.15s ease}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(0,111,104,.16)}
input::placeholder,textarea::placeholder{color:var(--muted)}select{padding:8px 30px 8px 12px}
label{font-size:.78rem;font-weight:600;color:var(--text-2)}

.skip-link{position:absolute;left:20px;top:-100px;z-index:40;background:#fff;padding:10px;border-radius:var(--r-sm)}.skip-link:focus{top:10px}
.startup{padding:70px;text-align:center;color:var(--muted)}

/* ---- auth ---- */
.auth-layout{min-height:100vh;display:grid;grid-template-columns:44% 56%}
.auth-story{background:linear-gradient(150deg,var(--navy-3),var(--navy) 55%,var(--navy-2));padding:48px 12%;color:#eff6fa;display:flex;flex-direction:column;justify-content:space-between;min-height:100vh;position:relative;overflow:hidden}
.auth-story:after{content:"";position:absolute;width:420px;height:420px;border:1px solid #ffffff1f;border-radius:50%;right:-220px;bottom:100px;box-shadow:0 0 0 65px #ffffff05,0 0 0 130px #ffffff05;pointer-events:none}
.auth-story h1{font-size:3rem;line-height:1.14;max-width:420px;letter-spacing:-.03em}.auth-story .eyebrow{color:var(--accent-on-dark)}.auth-story p:not(.eyebrow){color:#b6c7d6;max-width:360px}.story-footer{font-size:.72rem;letter-spacing:.05em;color:#8fa6ba}
.wordmark{display:flex;align-items:center;gap:10px;font-size:1.5rem;letter-spacing:-.01em;font-weight:800;color:inherit;text-decoration:none}
.brand-symbol{font-family:Georgia,serif;font-style:italic;color:#fff;background:var(--teal);width:32px;height:32px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;font-size:1.6rem;font-weight:bold;box-shadow:0 4px 12px rgba(0,111,104,.4)}
.auth-panel{display:flex;justify-content:center;align-items:center;padding:50px 30px;background:var(--surface)}.auth-card{max-width:395px;width:100%}.auth-card h2{font-size:1.7rem;line-height:1.2;margin-bottom:12px}.auth-card form{margin-top:28px}.auth-card label{display:block;font-weight:600;font-size:.82rem;margin:20px 0 8px}.auth-card input{width:100%;padding:12px 14px}.auth-footnote{font-size:.76rem;color:var(--muted);border-top:1px solid var(--border);padding-top:22px;margin-top:32px}.captcha{margin-top:18px;min-height:0}.captcha iframe{border:0;width:100%;height:110px}

/* ==========================================================================
   Shell: fixed full-width navy topbar + navy sidebar docked below + main
   ========================================================================== */
.workspace{min-height:100vh;background:var(--page-bg)}
.topbar{position:fixed;top:0;left:0;right:0;height:var(--topbar-h);z-index:1030;display:flex;align-items:center;gap:16px;padding:0 24px;
  background:linear-gradient(135deg,var(--navy-3),var(--navy) 55%,var(--navy-2));color:#fff;box-shadow:0 3px 20px rgba(15,23,42,.4)}
.topbar-title{font-size:1.02rem;font-weight:700;color:#fff;letter-spacing:-.01em}
.topbar .divider{color:#ffffff59;margin:0 4px;font-weight:300}
.topbar #session-context{margin-left:auto;color:#ffffffbf}
.topbar button{background:#ffffff14;border:1px solid #ffffff1f;color:#fff;padding:7px 13px;font-size:.78rem;border-radius:var(--r-md)}
.topbar button:hover{background:#ffffff29;color:#fff}
.topbar #refresh{margin-left:8px}

.sidebar{position:fixed;top:var(--topbar-h);left:0;bottom:0;width:var(--sidebar-w);background:var(--navy);color:#e6eefa;padding:16px 12px;display:flex;flex-direction:column;overflow-y:auto;
  --muted:#8ba0b8;--line:#ffffff14;border-right:1px solid #ffffff12}
.sidebar-brand{padding:8px 10px 14px;font-size:1.25rem}
.workspace-label{font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:#8ba0b8;padding:0 10px 4px;font-weight:700}
.sidebar-search{margin:12px 8px 6px}
.sidebar-search input{width:100%;background:#ffffff0a;border:1px solid #ffffff1c;color:#fff;border-radius:var(--r-sm);padding:8px 12px;font-size:.82rem}
.sidebar-search input::placeholder{color:#8ba0b8}
.sidebar-search input:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(0,111,104,.25);background:#ffffff12}
.sidebar nav{display:flex;flex-direction:column;gap:1px;margin-top:8px}
/* Accordion groups: collapsed by default (native <details>), click the summary to reveal. */
.nav-group{border-radius:var(--r-md)}
.nav-group>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;padding:11px 12px;margin:2px 4px 0;border-radius:var(--r-md);
  font-size:.62rem;letter-spacing:.09em;text-transform:uppercase;color:#8ba7c4;font-weight:700;transition:.15s ease;user-select:none;-webkit-user-select:none}
.nav-group>summary::-webkit-details-marker{display:none}
.nav-group>summary::after{content:"";width:6px;height:6px;margin-left:auto;border-right:2px solid currentColor;border-bottom:2px solid currentColor;
  transform:rotate(-45deg);transition:transform .18s ease;opacity:.7}
.nav-group>summary:hover{background:#ffffff10;color:#d7e3f1}
.nav-group>summary:focus-visible{outline:2px solid var(--accent-on-dark);outline-offset:1px}
.nav-group[open]>summary{color:#d7e3f1}
.nav-group[open]>summary::after{transform:rotate(45deg)}
.nav-group-items{display:flex;flex-direction:column;gap:1px;padding:2px 0 6px}
.sidebar nav a{border-radius:var(--r-md);text-decoration:none;color:#b6c6da;padding:9px 12px;margin:1px 4px;font-weight:500;font-size:.85rem;display:flex;align-items:center;gap:11px;transition:.15s ease}
.nav-top{margin-bottom:2px}
.nav-group-items a{margin-left:12px;padding-left:14px}
.sidebar nav a:hover{background:#ffffff14;color:#fff;text-decoration:none}
.sidebar nav a[aria-current=page]{background:#ffffff16;color:#fff;font-weight:600;box-shadow:0 4px 12px rgba(0,0,0,.2),inset 3px 0 var(--accent-on-dark)}
.sidebar nav a span{font-size:1rem;width:18px;text-align:center;flex-shrink:0}
.sidebar-bottom{margin-top:auto;font-size:.7rem;color:#a9bdd2;padding:22px 12px 6px}.sidebar-bottom p{font-size:.66rem;color:#7f96b0;margin:8px 0 0}
.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent-on-dark);margin-right:6px}

main{margin:var(--topbar-h) 0 0 var(--sidebar-w);padding:32px 34px 22px;max-width:1560px}
.page-heading{display:flex;align-items:center;gap:16px;margin-bottom:24px}
.page-icon{width:44px;height:44px;border-radius:12px;background:var(--navy);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0;box-shadow:0 4px 12px rgba(20,40,64,.28)}
.page-heading .eyebrow{margin-bottom:6px}.page-heading h1{margin-bottom:3px}.page-heading p{margin-bottom:0}.page-heading .heading-text{flex:1;min-width:0}.page-heading .secondary{font-size:.8rem;margin-left:auto}

.section-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:12px;flex-wrap:wrap}.section-toolbar label,.panel-heading label{color:var(--muted);font-weight:500;font-size:.8rem}.section-toolbar select,.panel-heading select{margin-left:8px}
.content-stack{display:grid;gap:22px;margin-bottom:22px}

/* ---- cards / panels ---- */
.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:22px;min-width:0;box-shadow:var(--shadow)}
.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.panel-heading p{margin-bottom:0}
.panel-dark-head{position:relative;margin:-22px -22px 18px;padding:14px 20px;background:var(--navy-2);color:#fff;border-radius:var(--r-lg) var(--r-lg) 0 0;overflow:hidden}
.panel-dark-head:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at top right,#ffffff14 0%,transparent 70%);pointer-events:none}
.panel-dark-head h2{color:#fff;margin:0}

/* ---- KPI / metric tiles ---- */
.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.metric{position:relative;padding:18px 20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow);overflow:hidden;transition:.15s ease}
.metric:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}
.metric:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--teal)}
.metric-label{font-size:.66rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700}
.metric-value{display:block;font-size:1.9rem;letter-spacing:-.02em;font-weight:800;color:var(--text);margin:8px 0 4px;line-height:1}
.metric-foot{font-size:.7rem;color:var(--muted)}.metric-foot.positive{color:var(--teal)}

.health-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.health-item{padding:12px 14px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);display:flex;justify-content:space-between;gap:14px;font-size:.82rem}.health-item strong{font-weight:700;font-family:var(--font-mono)}

/* ---- tables ---- */
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse;text-align:left;font-size:.82rem}
th{font-size:.66rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-2);font-weight:700;background:var(--surface-2);border-bottom:1px solid var(--border-strong);padding:10px 12px;white-space:nowrap}
td{padding:11px 12px;border-bottom:1px solid var(--border);vertical-align:middle;color:var(--text)}
tbody tr:hover td{background:rgba(0,111,104,.05)}tr:last-child td{border-bottom:0}
td .badge{font-size:.66rem;margin:2px}
.table-link{background:none;border:0;padding:0;color:var(--teal-strong);font-weight:600;text-align:left;font-family:var(--font-mono)}.table-link:hover{text-decoration:underline}
.numeric{text-align:right}

.empty-state{text-align:center;padding:44px 18px;color:var(--muted);font-size:.86rem}.empty-state strong{display:block;color:var(--text);margin-bottom:7px;font-size:1rem}

/* ---- lookups / detail grids / tabs ---- */
.lookup{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:22px}.lookup label{font-size:.95rem;font-weight:700}.input-action{display:flex;gap:10px;flex:1;max-width:560px}.input-action input{flex:1;min-width:130px}
.details-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.details-grid dt{font-size:.66rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:5px;font-weight:700}.details-grid dd{margin:0;font-size:.85rem;overflow-wrap:anywhere}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border-strong);margin:18px 0}.tabs button{padding:9px 15px;border:0;background:transparent;color:var(--text-2);border-bottom:2px solid transparent;font-size:.82rem;font-weight:600;transition:.15s ease}.tabs button:hover{color:var(--text);background:rgba(0,111,104,.05)}.tabs button[aria-pressed=true]{color:var(--teal-strong);border-color:var(--teal);font-weight:700}
.tag-list{display:flex;flex-wrap:wrap;gap:5px}
.statement-filter{margin-bottom:20px}.date-fields{display:flex;align-items:flex-end;gap:14px;margin-top:18px;flex-wrap:wrap}.date-fields input{display:block;margin-top:6px}
.page-footer{border-top:1px solid var(--border);display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:.68rem;padding-top:20px;margin-top:36px}

/* ---- responsive ---- */
@media(max-width:1080px){main{margin-left:200px;padding:26px 22px}.sidebar{width:200px}.metrics{grid-template-columns:repeat(2,1fr)}.lookup{align-items:flex-start;flex-direction:column}.input-action{max-width:none;width:100%}.auth-story h1{font-size:2.6rem}.health-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.auth-layout{grid-template-columns:1fr}.auth-story{min-height:0;padding:24px}.auth-story>div:nth-child(2),.auth-story .story-footer{display:none}.auth-panel{padding:36px 24px;align-items:flex-start}
  .topbar{padding:0 16px;gap:10px}.topbar-title{font-size:.92rem}
  .sidebar{position:static;top:0;width:100%;height:auto;padding:12px 16px}.sidebar-brand,.workspace-label,.sidebar-bottom{display:none}.sidebar-search{margin:0 0 8px}.sidebar nav{flex-direction:row;flex-wrap:wrap;gap:5px}.nav-section{display:none}.sidebar nav a{font-size:.8rem;padding:8px 11px;margin:0}.sidebar nav a span{display:none}
  main{margin:var(--topbar-h) 0 0;padding:22px 16px}.page-heading h1{font-size:1.25rem}.panel{padding:16px}.metrics{gap:10px}.metric-value{font-size:1.6rem}.health-grid,.details-grid{grid-template-columns:repeat(2,1fr)}.page-footer{flex-direction:column}.input-action{flex-direction:column}.date-fields label{flex:1}.date-fields input{width:100%}}

/* ==========================================================================
   Preserved feature styles below (charts / portfolio / contacts / assist /
   session-context / scope-pill / reporting / domain subresource).
   ========================================================================== */
.tabs{overflow-x:auto;flex-wrap:nowrap}.tabs button{flex-shrink:0}.domain-subresource td{max-width:34rem;overflow-wrap:anywhere;white-space:pre-wrap}
.domain-subresource[data-section="dnssec"] td:last-child{min-width:16rem}.domain-subresource[data-section="dnssec"] td:not(:last-child){white-space:nowrap}

.portfolio-filters{display:grid;grid-template-columns:minmax(180px,2fr) repeat(2,minmax(130px,1fr)) auto;gap:12px;align-items:end;margin-bottom:12px}.portfolio-filters label{display:block}.portfolio-filters input,.portfolio-filters select{display:block;width:100%;margin-top:6px}.portfolio-actions{display:flex;gap:8px;grid-column:1/-1}.pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px}.pagination span{color:var(--muted);font-size:.85rem;text-align:center}.pagination button:disabled{cursor:default}.pagination .secondary{white-space:normal}
@media(max-width:1080px){.portfolio-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:500px){.portfolio-filters{grid-template-columns:1fr}.pagination{gap:6px}.pagination .secondary{padding:8px}.portfolio-actions{flex-wrap:wrap}}

.contacts-filters,.hosts-filters{display:grid;grid-template-columns:minmax(0,3fr) minmax(90px,1fr);gap:12px;align-items:end;margin-bottom:20px}.contacts-filters input,.contacts-filters select,.hosts-filters input,.hosts-filters select{display:block;width:100%;margin-top:6px}#contact-detail dd,#host-detail dd{white-space:pre-wrap}#contacts-content td,#hosts-content td,#host-detail td{overflow-wrap:anywhere}
@media(max-width:500px){.contacts-filters,.hosts-filters{grid-template-columns:1fr}.sidebar nav a{flex-shrink:0}}

.assist-form{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.assist-form label{margin-bottom:2px}.assist-form textarea{width:100%;resize:vertical;min-height:52px}.assist-epp{display:flex;gap:8px;flex-wrap:wrap}.assist-epp input{flex:1;min-width:120px;font-size:.85rem}.assist-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.assist-actions label{color:var(--muted);font-weight:400;font-size:.82rem}.assist-actions .primary{margin-left:auto}.assist-answer{border:1px solid var(--border);background:var(--surface-2);border-radius:var(--r-md);padding:16px 18px}.assist-text{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;color:var(--text);font-size:.9rem}.assist-text[dir=rtl]{text-align:right}.assist-citations{margin:12px 0 0;padding-inline-start:1.1rem;color:var(--muted);font-size:.8rem}
@media(max-width:500px){.assist-actions .primary{margin-left:0;width:100%}}

.session-context{color:#ffffffbf;font-size:.73rem;font-family:var(--font-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:46ch}
@media(max-width:820px){.session-context{display:none}}

.scope-pill{display:inline-block;margin:8px 10px 0;font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;padding:3px 10px;border-radius:20px;background:#ffffff14;color:#cfe0ee}
body[data-scope=registrar] .scope-pill{background:#0f5a4d40;color:var(--accent-on-dark)}
body[data-scope=registrar] .status-dot{background:var(--accent-on-dark)}
body[data-scope=registry] .scope-pill{background:#2a4a6a66;color:#bcd7ef}
@media(max-width:760px){.scope-pill{display:none}}

/* Operator reporting */
body:not([data-scope="registry"]) .nav-operator{display:none}
.reporting-filter{margin-bottom:20px}
.reporting-fields{display:flex;align-items:flex-end;gap:14px;margin-top:18px;flex-wrap:wrap}
.reporting-fields label{display:flex;flex-direction:column;gap:6px}
.reporting-fields input,.reporting-fields select{display:block}
@media(max-width:760px){.reporting-fields label{flex:1 1 auto}.reporting-fields input,.reporting-fields select{width:100%}}

/* Create-registrar wizard */
.wizard-steps{display:flex;gap:8px;list-style:none;margin:0 0 20px;padding:0 0 16px;border-bottom:1px solid var(--border-strong);flex-wrap:wrap}
.wizard-step{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.8rem;font-weight:600}
.wizard-step:not(:last-child):after{content:"";width:22px;height:1px;background:var(--border-strong);margin-left:6px}
.wizard-step-num{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--surface-3);color:var(--muted);font-size:.78rem;font-weight:700;flex-shrink:0}
.wizard-step.current{color:var(--text)}.wizard-step.current .wizard-step-num{background:var(--teal);color:#fff}
.wizard-step.done{color:var(--text-2)}.wizard-step.done .wizard-step-num{background:var(--ok);color:#fff}
.wizard-body{margin-bottom:8px}.wizard-body h2{margin-bottom:14px}
.wizard-field{display:flex;flex-direction:column;gap:6px;max-width:460px;margin-bottom:6px}.wizard-field>span:first-child{font-weight:600;font-size:.82rem}
.wizard-ops{display:flex;flex-direction:column;gap:10px;margin:6px 0 12px}
.wizard-op-row{display:flex;gap:10px;align-items:center}.wizard-op-row input{flex:1;min-width:0}
.wizard-actions{display:flex;align-items:center;gap:10px;margin-top:20px;padding-top:18px;border-top:1px solid var(--border)}
.wizard-spacer{flex:1}
.wizard-staged{margin-top:18px;padding:16px 18px;background:var(--surface-2);border:1px dashed var(--border-strong);border-radius:var(--r-md)}.wizard-staged .eyebrow{margin-bottom:6px;color:var(--warn)}
.wizard-user{border:1px solid var(--border);border-radius:var(--r-md);padding:14px 16px;margin-top:12px;background:var(--surface-2)}
.wizard-user-head{font-weight:600;margin-bottom:8px;font-family:var(--font-mono);font-size:.85rem}
.wizard-link{width:100%;font-family:var(--font-mono);font-size:.78rem}
@media(max-width:760px){.wizard-op-row{flex-wrap:wrap}.wizard-steps{gap:6px}.wizard-step:not(:last-child):after{display:none}}

/* Staged menu entry — the shared page every not-yet-migrated route lands on. */
.stub-message{padding:14px 16px;margin:0 0 20px;background:var(--surface-2);border:1px solid var(--border-strong);border-left:4px solid var(--accent);border-radius:var(--r-md);color:var(--text-2);font-size:.86rem;line-height:1.5;overflow-wrap:anywhere}

/* Domain management (operator/registrar write controls on the domain record). */
.dm-section{padding:16px 0;border-top:1px solid var(--border)}
.dm-section:first-of-type{border-top:0;padding-top:6px}
.dm-title{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-2);font-weight:700;margin:0 0 6px}
.dm-locks{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:6px 16px;margin:12px 0 14px}
.dm-lock{display:flex;align-items:center;gap:8px;font-size:.82rem;font-family:var(--font-mono);color:var(--text);cursor:pointer}
.dm-lock input{width:auto;margin:0}
.dm-reason{width:100%;margin:14px 0 0;font-size:.85rem}

/* ==========================================================================
   Overview charts (overview-charts.mjs) — .chart / .oc-* namespace only.
   ========================================================================== */
.chart{
  --oc-surface:#fff;--oc-ink:#17273b;--oc-ink-2:#7a8a9d;
  --oc-grid:#e7edf3;--oc-baseline:#c9d3de;
  --oc-s1:#2a78d6;--oc-s2:#eb6834;--oc-s3:#1baf7a;--oc-s4:#eda100;
  --oc-expired:#ec835a;--oc-tip-bg:#142840;--oc-tip-ink:#eff6fa;--oc-tip-line:#ffffff2e
}
:root[data-theme=dark] .chart{
  --oc-surface:#142840;--oc-ink:#eff6fa;--oc-ink-2:#aebfd0;
  --oc-grid:#284161;--oc-baseline:#3f5c7d;
  --oc-s1:#3987e5;--oc-s2:#d95926;--oc-s3:#199e70;--oc-s4:#c98500;
  --oc-expired:#ec835a;--oc-tip-bg:#0b1727;--oc-tip-ink:#eff6fa;--oc-tip-line:#ffffff26
}
.chart .oc-subtitle{margin:-2px 0 16px}
.oc-plot{position:relative}
.oc-scroll{overflow-x:auto}
.oc-svg{display:block;width:100%;height:auto;font-family:inherit}
.oc-legend{display:flex;flex-wrap:wrap;gap:8px 16px;margin:0 0 15px}
.oc-legend-item{display:inline-flex;align-items:center;gap:7px;font-size:.8rem;color:var(--oc-ink-2)}
.oc-swatch{width:11px;height:11px;border-radius:3px;flex-shrink:0;display:inline-block}
.oc-swatch-status{border-radius:2px;box-shadow:inset 0 0 0 1px #ffffff40}
.oc-sm-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.oc-sm-cell{border:1px solid var(--oc-grid);border-radius:9px;padding:12px 12px 6px;background:var(--oc-surface);min-width:0}
.oc-sm-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:2px}
.oc-sm-name{display:inline-flex;align-items:center;gap:7px;font-size:.82rem;font-weight:650;color:var(--oc-ink);overflow-wrap:anywhere}
.oc-sm-total{font-size:1.05rem;font-weight:700;letter-spacing:-.02em;color:var(--oc-ink);font-variant-numeric:tabular-nums}
.oc-mark{stroke:none}
.oc-grid{stroke:var(--oc-grid);stroke-width:1}
.oc-baseline{stroke:var(--oc-baseline);stroke-width:1}
.oc-axis-x,.oc-axis-y{fill:var(--oc-ink-2);font-size:11px;font-variant-numeric:tabular-nums}
.oc-zone-name{fill:var(--oc-ink);font-size:12px;font-weight:600}
.oc-zone-total{fill:var(--oc-ink-2);font-size:12px;font-variant-numeric:tabular-nums}
.oc-cap-total{fill:var(--oc-ink);font-size:11px;font-weight:650;font-variant-numeric:tabular-nums}
.oc-hit{cursor:pointer;fill:var(--oc-ink);fill-opacity:0;transition:fill-opacity .12s ease}
.oc-hit:hover{fill-opacity:.05}
.oc-hit:focus-visible{fill-opacity:.08;outline:3px solid #53b9d6;outline-offset:-2px}
.oc-caption{color:var(--oc-ink-2);font-size:.82rem;margin:14px 0 0}
.oc-net{font-weight:700;font-variant-numeric:tabular-nums}
.oc-net-up{color:var(--teal)}
.oc-net-down{color:#b0472f}
.oc-tooltip{position:absolute;transform:translate(-50%,-100%);pointer-events:none;background:var(--oc-tip-bg);color:var(--oc-tip-ink);border-radius:7px;padding:8px 10px;font-size:.78rem;line-height:1.42;box-shadow:0 6px 20px rgba(11,20,32,.24);z-index:5;white-space:nowrap;max-width:260px}
.oc-tooltip strong{display:block;font-size:.8rem;margin-bottom:4px;font-weight:650}
.oc-tt-row,.oc-tt-total{display:flex;align-items:center;gap:6px}
.oc-tt-row b,.oc-tt-total b{margin-left:auto;padding-left:14px;font-variant-numeric:tabular-nums}
.oc-tt-total{margin-top:4px;padding-top:4px;border-top:1px solid var(--oc-tip-line);font-weight:650}
.oc-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
@media(prefers-reduced-motion:reduce){.chart .oc-hit,.metric,.primary,.sidebar nav a{transition:none}.metric:hover,.primary:hover{transform:none}}
@media(max-width:560px){.oc-sm-grid{grid-template-columns:1fr}}

#tokens-form>label{display:block;margin-bottom:14px}#tokens-form>label input{display:block;margin-top:6px;max-width:360px}#token-ttl{width:120px}.token-scopes{border:1px solid var(--line);border-radius:8px;padding:12px 16px;margin:0 0 16px}.token-scopes legend{font-size:.7rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);padding:0 6px}.token-scope{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;align-items:start;margin:10px 0;font-weight:400}.token-scope input{margin-top:3px}.token-scope-label{font-weight:650;color:#263950}.token-scope .field-help{grid-column:2;font-size:.75rem;color:var(--muted)}.token-reveal-card{border-color:#c8e6d5;background:#f4fbf6;margin-bottom:22px}.token-secret{width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9rem;margin:8px 0 14px;background:white}

/* ---- roles & permissions: grant checklist + template picker ---- */
.field-label{display:block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:16px 0 6px}
.grant-checklist{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;margin:0 0 6px}
.grant-group{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);padding:8px 12px 12px;margin:0;min-inline-size:0}
.grant-group legend{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--teal);padding:0 4px}
.grant-option{display:flex;gap:9px;align-items:flex-start;padding:6px 5px;border-radius:var(--r-sm);cursor:pointer;transition:background .12s ease}
.grant-option:hover{background:var(--teal-soft)}
.grant-option input{margin:2px 0 0;flex:none;width:15px;height:15px;accent-color:var(--teal)}
.grant-text{display:flex;flex-direction:column;min-inline-size:0}
.grant-label{font-size:.85rem;font-weight:600;color:var(--text);line-height:1.25}
.grant-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.7rem;color:var(--muted)}
.grant-desc{font-size:.76rem;color:var(--muted);margin-top:2px;line-height:1.3}
.grant-option.disabled{opacity:.48;cursor:not-allowed}
.grant-option.disabled:hover{background:transparent}
@media(max-width:560px){.grant-checklist{grid-template-columns:1fr}}

/* ---- audit trail ---- */
.a-act{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;color:var(--text)}
.a-out{display:inline-block;font-size:.72rem;font-weight:700;padding:2px 9px;border-radius:20px;white-space:nowrap}
.a-out.ok{background:var(--ok-bg);color:#1c6b3f}
.a-out.deny{background:var(--err-bg);color:#8f2820}
.mono-amt{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-variant-numeric:tabular-nums;font-weight:600;color:var(--text)}
