:root {
  --fg: #16181b; --bg: #fff; --panel: #f4f5f7; --muted: #555b63; --line: #c9cdd2;
  --accent: #0b5394; --accent-fg: #fff; --bad: #a3221b; --bad-bg: #fbe9e7; --ok: #1e6b34; --ok-bg: #e5f4e9;
  --warn: #7a4d00; --warn-bg: #fdf1d8;
}
@media (prefers-color-scheme: dark) {
  :root {
    --fg: #e6e8eb; --bg: #141619; --panel: #1d2024; --muted: #a9afb7; --line: #3c4148;
    --accent: #8ab4f8; --accent-fg: #0d1b2e; --bad: #f2a29b; --bad-bg: #3a1d1b; --ok: #9bd8a9; --ok-bg: #18301f;
    --warn: #f1c46b; --warn-bg: #3a2c10;
  }
}
* { box-sizing: border-box; }
body { margin: 0; font: 16px/1.5 system-ui, sans-serif; color: var(--fg); background: var(--bg); }
a { color: var(--accent); }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
.skip { position: absolute; left: -999px; }
.skip:focus { left: 1rem; top: 1rem; background: var(--bg); padding: .5rem; z-index: 1; }
.top { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; justify-content: space-between; padding: .75rem 1rem; border-bottom: 1px solid var(--line); background: var(--panel); }
.top form { display: flex; gap: .75rem; align-items: center; }
.brand { font-weight: 700; font-size: 1.15rem; color: var(--fg); text-decoration: none; }
.brand span { font-weight: 400; font-size: .9rem; color: var(--muted); margin-left: .25rem; }
main { max-width: 64rem; margin: 0 auto; padding: 1rem; }
h1 { font-size: 1.6rem; margin: .5rem 0 1rem; }
h2 { font-size: 1.2rem; margin: 2rem 0 .75rem; }
.head { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; justify-content: space-between; }
.muted, .hint { color: var(--muted); }
.hint { font-size: .9rem; margin: .25rem 0 .75rem; }
code { font-size: .9em; overflow-wrap: anywhere; }
label { display: block; font-weight: 600; margin-top: .75rem; }
input { font: inherit; width: 100%; min-height: 2.5rem; padding: .25rem .5rem; border: 1px solid var(--muted); border-radius: 6px; background: var(--bg); color: var(--fg); }
fieldset { border: 1px solid var(--line); border-radius: 6px; margin: 1.25rem 0 0; padding: .25rem 1rem 1rem; }
legend { font-weight: 600; padding: 0 .25rem; }
button, .button { font: inherit; font-weight: 600; display: inline-flex; align-items: center; min-height: 2.5rem; padding: .25rem 1rem; border: 1px solid var(--accent); border-radius: 6px; background: var(--accent); color: var(--accent-fg); text-decoration: none; cursor: pointer; }
.secondary { background: transparent; color: var(--accent); }
.narrow { max-width: 28rem; }
.stack button { margin-top: 1.25rem; }
.row { display: flex; flex-wrap: wrap; gap: .75rem; align-items: flex-end; }
.row label { margin-top: 0; }
.actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.actions form { margin: 0; }
table { width: 100%; border-collapse: collapse; display: block; overflow-x: auto; }
th, td { text-align: left; padding: .5rem .75rem .5rem 0; border-bottom: 1px solid var(--line); vertical-align: top; }
th { font-size: .85rem; color: var(--muted); }
.facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: .75rem 1.5rem; margin: 0; }
.facts dt { font-size: .85rem; color: var(--muted); }
.facts dd { margin: 0; }
.pill { display: inline-block; padding: 0 .5rem; border-radius: 999px; font-size: .85rem; font-weight: 600; background: var(--panel); border: 1px solid var(--line); }
.s-active, .s-done { color: var(--ok); background: var(--ok-bg); border-color: transparent; }
.s-failed { color: var(--bad); background: var(--bad-bg); border-color: transparent; }
.s-provisioning, .s-running, .s-activating, .s-deactivating { color: var(--warn); background: var(--warn-bg); border-color: transparent; }
.error { color: var(--bad); background: var(--bad-bg); padding: .75rem 1rem; border-radius: 6px; }
.output { background: var(--panel); border: 1px solid var(--line); border-radius: 6px; padding: 1rem; overflow-x: auto; white-space: pre-wrap; overflow-wrap: anywhere; font-size: .85rem; }
