:root {
  color-scheme: dark;
  --bg: #101523;
  --surface: #181f30;
  --line: #3b475e;
  --text: #f2f3f9;
  --muted: #b9c4d8;
  --accent: #b6eecf;
  --focus: #ffda91;
  font: 16px/1.55 system-ui, sans-serif;
}
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; background: var(--bg); color: var(--text); display: flex; flex-direction: column; overflow-wrap: anywhere; }
a { color: var(--accent); text-underline-offset: .22em; }
a:hover { color: #fff; }
button, input, select, summary, textarea { font: inherit; }
button, summary { cursor: pointer; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 4px; }
h1, h2 { line-height: 1.1; letter-spacing: -.035em; margin: 0 0 .75em; }
h1 { font-size: clamp(2rem, 5vw, 4rem); }
h2 { font-size: clamp(1.35rem, 2.5vw, 1.75rem); }
p { margin: 0 0 1rem; }
.shell { width: min(100% - 2rem, 72rem); margin-inline: auto; }
.top { border-bottom: 1px solid var(--line); background: #141a28; }
.bar, .footer { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; }
.bar { min-height: 4.4rem; padding-block: .65rem; }
.brand { display: inline-flex; align-items: center; gap: .65rem; color: var(--text); font-weight: 700; text-decoration: none; }
.mark { display: grid; width: 2rem; height: 2rem; place-items: center; border-radius: .65rem; background: var(--accent); color: var(--bg); }
.nav-links, .actions { display: flex; align-items: center; gap: .6rem 1.3rem; flex-wrap: wrap; }
.nav-links a, .link-button { color: var(--muted); font-size: .92rem; }
.nav-links [aria-current] { color: var(--text); text-decoration-thickness: .15em; }
.main { flex: 1; padding-block: clamp(2rem, 6vw, 4.7rem); }
.environment { color: #ffda91; font-size: .87rem; margin-bottom: 1.5rem; }
.notice { border-left: .2rem solid var(--accent); background: #213531; padding: .65rem 1rem; max-width: 44rem; }
.hero { display: grid; align-items: center; grid-template-columns: 1.45fr 1fr; gap: clamp(1.5rem, 7vw, 6rem); padding-block: clamp(1rem, 5vw, 4rem); }
.hero h1 { font-size: clamp(2.9rem, 7vw, 6.5rem); max-width: 14ch; margin-bottom: .33em; }
.intro { max-width: 44ch; font-size: clamp(1.1rem, 2.3vw, 1.3rem); color: var(--muted); margin-bottom: 2rem; }
.hero-status { background: var(--surface); border: 1px solid var(--line); border-radius: 1.25rem; padding: clamp(1.25rem, 4vw, 2.7rem); }
.hero-status ol { margin: 0; padding-left: 1.6rem; }
.hero-status li { padding: .7rem .35rem; border-bottom: 1px solid var(--line); }
.hero-status li:last-child { border: 0; }
.hero-status li::marker { color: var(--accent); font-weight: 700; }
.button, button { display: inline-flex; min-height: 2.75rem; align-items: center; justify-content: center; color: #11221a; background: var(--accent); border: 1px solid transparent; border-radius: .65rem; padding: .52rem 1rem; text-decoration: none; font-weight: 700; }
.button:hover, button:hover { color: #0d1713; background: #dcfbe9; }
.secondary { background: transparent; color: var(--text); border-color: var(--line); }
.danger { background: #ffc2c8; color: #44161e; }
.link-button { border: 0; background: transparent; padding: 0; min-height: auto; text-decoration: underline; text-underline-offset: .22em; font-weight: 400; }
.link-button:hover { color: white; background: transparent; }
.dashboard { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 1.5rem; }
.panel { border: 1px solid var(--line); border-radius: 1rem; background: var(--surface); padding: clamp(1rem, 3vw, 2rem); min-width: 0; }
.narrow { max-width: 33rem; }
.narrow h1, .policy h1 { font-size: clamp(1.9rem, 5vw, 3rem); }
.policy { max-width: 49rem; }
.guide-version { color: var(--muted); }
.policy li + li { margin-top: .6rem; }
.guide-image { margin: 1.25rem 0; }
.guide-image img { display: block; max-width: 100%; max-height: 35rem; width: auto; height: auto; border: 1px solid var(--line); border-radius: .65rem; }
.guide-image figcaption { margin-top: .4rem; color: var(--muted); font-size: .88rem; max-width: 58ch; }
.fields { display: grid; gap: .85rem; max-width: 28rem; margin-bottom: .9rem; }
.fields button { justify-self: start; }
label { display: grid; gap: .4rem; font-weight: 600; }
input:not([type=checkbox]), select, textarea { width: 100%; min-width: 0; min-height: 2.75rem; background: var(--bg); border: 1px solid #63728e; color: var(--text); border-radius: .55rem; padding: .4rem .65rem; }
textarea { resize: vertical; }
.check { display: flex; align-items: flex-start; gap: .55rem; font-weight: 400; }
.check input { width: 1.1rem; height: 1.1rem; accent-color: var(--accent); flex: 0 0 auto; margin-top: .2rem; }
.status { width: fit-content; padding: .12rem .62rem; border: 1px solid var(--line); border-radius: 1rem; color: var(--muted); }
.status.ready, .status.approved { color: var(--accent); border-color: #5b927c; }
.status.failed, .status.rejected, .status.suspended { color: #ffc2c8; border-color: #a46571; }
.status.queued, .status.provisioning, .status.pending_approval { color: #ffda91; border-color: #9a8051; }
.tools { margin-top: 1rem; }
details { border-top: 1px solid var(--line); padding: .65rem 0; }
summary { color: var(--accent); font-weight: 600; }
details[open] summary { margin-bottom: .75rem; }
.hint, small, .fineprint { color: var(--muted); }
.hint, small { font-size: .9rem; }
.fields .hint { margin: -.25rem 0 0; }
.address-status { min-height: 1.4em; }
.fineprint { margin-top: 1.5rem; }
.address, .audit { overflow-wrap: anywhere; }
.preline { white-space: pre-line; }
.secret, code { font-family: ui-monospace, monospace; }
.footer { border-top: 1px solid var(--line); padding-block: 1.35rem; }
.admin-row { display: grid; grid-template-columns: 1.15fr 1fr .7fr 1.2fr; gap: .85rem; border-top: 1px solid var(--line); padding: .85rem 0; }
.admin-row p { margin: .2rem 0; }
.admin-row details:first-child { border: 0; }
.count { color: var(--muted); font-size: .9em; }
hr { border: 0; border-top: 1px solid var(--line); margin: 1.2rem 0; }
.skip { position: absolute; left: .5rem; top: .5rem; transform: translateY(-150%); background: var(--bg); padding: .5rem; }
.skip:focus { transform: none; }
@media (max-width: 700px) {
  .hero, .dashboard { grid-template-columns: minmax(0, 1fr); }
  .admin-row { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 420px) {
  .admin-row { grid-template-columns: 1fr; }
}
