:root {
  color-scheme: dark;
  --black: #000;
  --green: #00ed45;
  --green-bright: #71ff8a;
  --green-dim: #008d31;
  --red: #ff3237;
  --red-dim: #7b1118;
  --cyan: #00d8cf;
  --magenta: #d829be;
  --amber: #e6a431;
  --grey: #8b8b86;
  --white: #d8d8cf;
  --mono: "Lucida Console", "Cascadia Mono", "Courier New", monospace;
  --text-xs: .68rem;
  font-family: var(--mono);
  font-size: 17px;
}

* { box-sizing: border-box; }
html { min-height: 100%; background: var(--black); }
body { margin: 0; min-height: 100vh; color: var(--green); background: #000; line-height: 1.6; }
body::after { content: ""; position: fixed; inset: 0; z-index: 20; pointer-events: none; opacity: .045; background: repeating-linear-gradient(0deg, transparent 0 2px, #fff 2px 3px); }
::selection { color: #000; background: var(--green); }
a { color: var(--cyan); text-underline-offset: .2em; }
a:hover { color: var(--magenta); }

.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 30; padding: .6rem .85rem; color: #000; background: var(--green); }
.skip-link:focus { top: 1rem; }

.station-shell { width: min(940px, 100%); min-height: 100vh; margin: 0 auto; padding: .8rem 1.1rem 1rem; display: grid; grid-template-rows: auto auto 1fr auto auto; }
.system-line { display: flex; justify-content: space-between; gap: 1rem; color: var(--grey); font-family: "Courier New", monospace; font-size: .72rem; }
.station-brand { display: grid; justify-items: center; margin: 1.5rem 0 1.2rem; color: var(--cyan); text-decoration: none; }
.station-brand:hover { color: var(--cyan); }
.ansi-logo { max-width: 100%; margin: 0; overflow-x: auto; color: currentColor; font-family: var(--mono); font-size: clamp(.4rem, 1.55vw, .88rem); font-weight: 700; line-height: 1.08; letter-spacing: .02em; text-shadow: .13em .1em 0 var(--magenta); white-space: pre; }
.brand-tag { margin-top: .7rem; color: var(--amber); font-size: .68rem; letter-spacing: .08em; text-align: center; }
.brand-tag i { color: var(--green-bright); font-style: normal; }

.node-line { display: flex; justify-content: center; flex-wrap: wrap; gap: .5rem 1.6rem; margin: 0 0 1rem; color: var(--grey); font-size: .69rem; text-transform: uppercase; }
.node-line b { color: var(--red); font-weight: 400; }
.sfx-toggle { justify-self: center; min-height: auto; padding: .08rem .35rem; color: var(--cyan); border-color: var(--green-dim); background: transparent; font-size: .62rem; line-height: 1.35; }
.sfx-toggle:hover { color: #000; background: var(--cyan); }
.sfx-toggle[aria-pressed="false"] { color: var(--grey); border-color: #454540; }
.service-nav { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: .6rem; padding: .55rem .2rem; border-top: 1px solid var(--green-dim); border-bottom: 1px solid var(--green-dim); outline: none; }
.service-nav a { color: var(--green); font-size: .77rem; font-weight: 700; letter-spacing: .03em; text-decoration: none; }
.service-nav a:hover, .service-nav a[aria-current="page"] { color: var(--white); text-shadow: 0 0 .55rem var(--green); }
.service-nav i { color: var(--cyan); font-style: normal; }
.main-panel { padding: 1.5rem 0; }

h1, h2, p { margin-top: 0; }
h1, h2 { color: var(--green-bright); font-weight: 400; }
h1 { margin-bottom: .8rem; font-size: clamp(1.45rem, 4vw, 2.25rem); line-height: 1.15; letter-spacing: .08em; text-transform: uppercase; }
h2 { font-size: 1rem; letter-spacing: .07em; }
p { max-width: 72ch; }
.eyebrow { margin-bottom: .55rem; color: var(--grey); font-size: .7rem; letter-spacing: .09em; }
.muted { color: var(--grey); }
.positive { color: var(--green-bright) !important; }
.warning-text { color: var(--amber) !important; }

.splash { width: min(690px, 100%); margin: 0 auto; display: grid; gap: .75rem; }
.gateway-splash { padding: .45rem; border: 1px solid var(--green-dim); outline: 1px solid rgba(0,216,207,.22); outline-offset: .35rem; }
.gateway-marker { display: grid; grid-template-columns: 4.5rem minmax(0,1fr); gap: 1rem; align-items: center; padding: .8rem 1rem; color: var(--cyan); border: 1px solid var(--cyan); background: linear-gradient(90deg,rgba(0,216,207,.08),transparent); }
.gateway-marker .gateway-symbol { display: grid; place-items: center; width: 3.5rem; height: 3.5rem; color: var(--green-bright); border: 1px solid var(--green-dim); border-radius: 50%; font-size: 2.25rem; text-shadow: 0 0 .6rem var(--green); }
.gateway-marker div { display: grid; gap: .16rem; }
.gateway-marker p, .gateway-marker small { margin: 0; color: var(--grey); font-size: var(--text-xs); letter-spacing: .12em; }
.gateway-marker strong { color: var(--cyan); font-size: clamp(1rem,4vw,1.5rem); font-weight: 400; letter-spacing: .14em; text-transform: uppercase; }
.gateway-splash.mode-private { border-color: var(--amber); outline-color: rgba(230,164,49,.34); }
.gateway-splash.mode-private .gateway-marker { color: var(--amber); border-color: var(--amber); background: linear-gradient(90deg,rgba(230,164,49,.16),rgba(72,45,5,.1),transparent); }
.gateway-splash.mode-private .gateway-symbol { color: var(--amber); border-color: var(--amber); border-radius: 0; text-shadow: 0 0 .65rem rgba(230,164,49,.7); }
.gateway-splash.mode-private .gateway-marker p, .gateway-splash.mode-private .gateway-marker small { color: #c9943b; }
.gateway-splash.mode-private .gateway-marker strong { color: #ffd27a; text-shadow: .08em .08em 0 #6d4300; }
.gateway-splash.mode-private .station-profile { border-color: var(--amber); }
.gateway-splash.mode-private .profile-heading .kicker, .gateway-splash.mode-private .profile-ident strong { color: var(--amber); }
.gateway-splash.mode-private .profile-heading h1 { color: #ffd27a; text-shadow: .08em .08em 0 #6d4300; }
.gateway-splash.mode-private .profile-ident { border-color: #6d4300; }
.gateway-splash.mode-private .station-board { border-color: var(--amber); }
.gateway-splash.mode-private .station-board h2 { color: #ffd27a; border-color: #6d4300; }
.gateway-splash.mode-private .station-board h2 span { color: var(--amber); }
.gateway-splash.mode-private .access-actions > p { color: #c9943b; }
.gateway-splash.mode-private .enter-button:not(.secondary) { color: #ffd27a; border-color: var(--amber); background: #241700; }
.gateway-splash.mode-private .enter-button:not(.secondary):hover { color: #000; background: var(--amber); }

.gateway-splash.mode-disabled { border-color: var(--red); outline-color: rgba(255,50,55,.42); }
.gateway-splash.mode-disabled .gateway-marker { color: var(--red); border-color: var(--red); background: linear-gradient(90deg,rgba(123,17,24,.32),rgba(20,0,2,.4)); }
.gateway-splash.mode-disabled .gateway-symbol { color: var(--red); border-color: var(--red); border-radius: 0; text-shadow: 0 0 .8rem rgba(255,50,55,.75); }
.gateway-splash.mode-disabled .gateway-marker p, .gateway-splash.mode-disabled .gateway-marker small { color: #c56f72; }
.gateway-splash.mode-disabled .gateway-marker strong { color: var(--red); text-shadow: .08em .08em 0 var(--red-dim); }
.gateway-splash.mode-disabled .station-profile { border-color: var(--red-dim); }
.gateway-splash.mode-disabled .profile-ident { border-color: var(--red-dim); }
.gateway-splash.mode-disabled .profile-ident strong { color: var(--red); }
.gateway-splash.mode-disabled .station-board { border-color: var(--red); }
.gateway-splash.mode-disabled .station-board h2 { color: var(--red); border-color: var(--red-dim); }
.gateway-splash.mode-disabled .station-board h2 span { color: var(--red); }
.gateway-splash.mode-disabled .access-actions > p { color: #c56f72; }
.gateway-splash.mode-disabled .enter-button.secondary { color: var(--white); border-color: var(--red); background: #250307; }
.gateway-splash.mode-disabled .enter-button.secondary:hover { color: #000; background: var(--red); }
.station-profile { display: grid; grid-template-columns: minmax(0,1fr) 13rem; gap: 1.5rem; align-items: stretch; padding: 1rem; border: 1px solid var(--cyan); }
.profile-heading { padding: .35rem .5rem; }
.profile-heading .kicker { margin-bottom: .5rem; color: var(--cyan); font-size: .68rem; letter-spacing: .14em; }
.profile-heading h1 { margin-bottom: .7rem; color: var(--green-bright); font-size: clamp(1.5rem,4vw,2.4rem); text-shadow: .08em .08em 0 var(--green-dim); }
.station-description { margin: 0; color: var(--white); font-size: .78rem; line-height: 1.65; }
.profile-ident { display: grid; align-content: center; justify-items: center; gap: .4rem; padding: 1rem .6rem; border-left: 1px dotted var(--cyan); text-align: center; }
.profile-ident span, .profile-ident small { color: var(--grey); font-size: var(--text-xs); letter-spacing: .08em; }
.profile-ident strong { color: var(--cyan); font-size: 1.25rem; font-weight: 400; letter-spacing: .08em; }

.station-board { padding: .75rem 1rem 1rem; border: 1px solid var(--green); }
.station-board h2, .operator-block h2, .activity-panel h2 { margin: 0; padding-bottom: .35rem; border-bottom: 1px solid var(--green-dim); font-size: 1rem; font-weight: 700; letter-spacing: .08em; }
.station-board h2 span, .operator-block h2::first-letter, .activity-panel h2::first-letter { color: var(--cyan); }
.landing-copy .markdown-body { padding-top: .7rem; color: var(--white); font-size: .76rem; overflow-wrap: anywhere; }
.landing-copy .markdown-body > :last-child { margin-bottom: 0; }
.landing-copy .markdown-body h3, .landing-copy .markdown-body h4, .landing-copy .markdown-body h5 { margin: .9rem 0 .35rem; color: var(--green-bright); font-size: .82rem; letter-spacing: .04em; }
.landing-copy .markdown-body ul, .landing-copy .markdown-body ol { margin: .5rem 0 .8rem; padding-left: 1.6rem; }
.landing-copy .markdown-body li { padding: .12rem 0; }
.landing-copy .markdown-body blockquote { margin: .65rem 0; padding-left: .8rem; color: var(--grey); border-left: 2px solid var(--cyan); }
.landing-copy .markdown-body code { color: var(--amber); }
.landing-copy .markdown-body pre { max-width: 100%; padding: .6rem; overflow-x: auto; border: 1px dotted var(--green-dim); }

.access-actions { text-align: center; }
.access-actions p { max-width: none; margin: .65rem 0; color: var(--grey); font-size: .68rem; letter-spacing: .06em; }
.access-actions strong { color: var(--green-bright); }
.access-buttons { display: grid; grid-template-columns: repeat(auto-fit,minmax(15rem,1fr)); gap: .7rem; }
.enter-button { width: 100%; justify-content: center; min-height: 4.2rem; font-size: clamp(1rem, 3vw, 1.5rem); letter-spacing: .13em; }
.access-links { display: flex; justify-content: center; flex-wrap: wrap; gap: .6rem 1.4rem; padding-top: .8rem; }
.access-links a { color: var(--red); font-size: .68rem; text-decoration: none; }
.access-links a:hover { color: var(--white); }

.directory-screen { display: grid; grid-template-columns: minmax(0,1fr) 17rem; gap: 2.5rem; }
.screen-heading { grid-column: 1 / -1; padding-bottom: 1rem; border-bottom: 1px solid var(--green-dim); }
.screen-heading p:last-child { margin-bottom: 0; color: var(--grey); }
.service-list { border-top: 1px solid var(--green-dim); }
.service-list > * { display: grid; grid-template-columns: 3.5rem minmax(0,1fr) auto; gap: .8rem; align-items: center; min-height: 5.15rem; padding: .8rem .4rem; border-bottom: 1px solid var(--green-dim); text-decoration: none; }
.service-list > a { color: var(--green); }
.service-list > a:hover { color: var(--green-bright); background: rgba(0,237,69,.05); }
.service-number { color: var(--cyan); }
.service-copy { display: grid; gap: .2rem; }
.service-copy strong { font-size: .8rem; letter-spacing: .05em; }
.service-copy small { color: var(--grey); font-size: var(--text-xs); line-height: 1.5; }
.service-state { color: var(--green-bright); font-size: var(--text-xs); }
.service-list .offline { opacity: .42; }
.directory-sidebar { display: grid; align-self: start; gap: 1rem; min-width: 0; }
.operator-block { align-self: start; padding: .75rem; border: 1px solid var(--green); }
.operator-summary { display: grid; gap: .08rem; padding: .6rem 0 .45rem; }
.operator-summary strong { color: var(--white); font-size: .78rem; overflow-wrap: anywhere; }
.operator-summary span, .operator-summary small { color: var(--grey); font-size: var(--text-xs); }
.operator-actions { display: flex; align-items: center; justify-content: space-between; gap: .45rem; padding-top: .45rem; border-top: 1px dotted var(--green-dim); font-size: var(--text-xs); }
.operator-actions form { margin: 0; }
.operator-actions .text-button { font-size: var(--text-xs); }
.compact-button { min-height: 2.15rem; margin-top: .25rem; padding: .45rem .6rem; font-size: var(--text-xs); }
.activity-panel { min-width: 0; padding: .75rem; border: 1px solid var(--green); }
.activity-list { display: grid; }
.activity-item { display: grid; gap: .18rem; min-width: 0; padding: .7rem 0; border-bottom: 1px dotted var(--green-dim); color: var(--white); text-decoration: none; }
.activity-item:last-child { border-bottom: 0; padding-bottom: .1rem; }
.activity-item:hover { padding-inline: .3rem; color: var(--white); background: rgba(0,237,69,.05); }
.activity-item > span { color: var(--cyan); font-size: var(--text-xs); letter-spacing: .06em; }
.activity-item strong { color: var(--green-bright); font-size: .68rem; font-weight: 400; overflow-wrap: anywhere; }
.activity-item small, .activity-item time, .activity-item em { color: var(--grey); font-size: var(--text-xs); font-style: normal; overflow-wrap: anywhere; }
.activity-item p { display: -webkit-box; margin: .1rem 0; overflow: hidden; color: var(--white); font-size: var(--text-xs); line-height: 1.5; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.activity-count { grid-template-columns: 1fr auto; align-items: end; }
.activity-count > span, .activity-count > small { grid-column: 1; }
.activity-count > strong { grid-column: 2; grid-row: 1 / 3; color: var(--amber); font-size: 1.35rem; }
.activity-broadcasts { gap: .35rem; }
.activity-broadcast { display: grid; gap: .08rem; padding-left: .5rem; border-left: 1px solid var(--cyan); }
.activity-broadcast + .activity-broadcast { margin-top: .25rem; }
.activity-broadcast p { margin: 0; }
.activity-broadcast em { color: var(--amber); }
dt { color: var(--grey); font-size: var(--text-xs); }
dd { margin: 0; color: var(--white); font-size: var(--text-xs); text-align: right; overflow-wrap: anywhere; }

.board-head { display: flex; justify-content: space-between; align-items: end; gap: 1.2rem; padding: .8rem 0 1.25rem; border-bottom: 1px solid var(--green); }
.board-head h1 { margin-bottom: .35rem; }
.board-head p { margin-bottom: 0; }
.bulletin-columns, .bulletin-row { display: grid; grid-template-columns: 9.5rem minmax(0,1fr) 4.5rem; gap: 1.2rem; }
.bulletin-columns { padding: .55rem .35rem; color: var(--green-dim); border-bottom: 1px dotted var(--green-dim); font-size: var(--text-xs); }
.bulletin-columns span:last-child { text-align: right; }
.bulletin-row { padding: 1rem .35rem; border-bottom: 1px dotted var(--green-dim); }
.bulletin-row:hover { background: rgba(0,237,69,.035); }
.bulletin-meta { display: grid; align-content: start; gap: .2rem; color: var(--grey); font-size: var(--text-xs); }
.bulletin-meta span:first-child { color: var(--magenta); }
.bulletin-meta strong { color: var(--cyan); font-weight: 400; }
.bulletin-content h2 { margin: 0 0 .3rem; }
.bulletin-content h2 a { color: var(--green-bright); text-decoration: none; }
.bulletin-content h2 a:hover { color: var(--white); }
.bulletin-content p { margin: 0; color: var(--grey); font-size: .72rem; }
.reply-count { display: grid; justify-items: end; align-content: start; color: var(--grey); font-size: var(--text-xs); text-decoration: none; text-transform: uppercase; }
.reply-count strong { color: var(--green-bright); font-size: 1rem; font-weight: 400; }
.empty-state { padding: 5rem 1rem; text-align: center; }
.empty-state p { margin-inline: auto; color: var(--grey); }
.empty-signal { color: var(--cyan); font-size: 3rem; }

.terminal-card { width: min(720px,100%); margin-inline: auto; padding: 1.25rem; border: 1px solid var(--green); background: #000; }
.narrow { width: min(680px,100%); }
.terminal-card > .eyebrow { padding-bottom: .4rem; border-bottom: 1px solid var(--green-dim); color: var(--cyan); }
.terminal-card h1 { font-size: clamp(1.25rem,4vw,2rem); }
.form-grid { display: grid; gap: 1rem; margin-top: 1.3rem; }
label { display: grid; gap: .35rem; color: var(--green); font-size: .68rem; letter-spacing: .04em; text-transform: uppercase; }
label small { color: var(--grey); font-size: var(--text-xs); letter-spacing: .02em; line-height: 1.5; text-transform: none; }
input, textarea, select { width: 100%; padding: .65rem .7rem; border: 1px solid var(--green-dim); border-radius: 0; color: var(--green-bright); background: #030703; font: inherit; font-size: .8rem; caret-color: var(--green-bright); }
input:focus, textarea:focus, select:focus { border-color: var(--green-bright); outline: none; box-shadow: 0 0 0 1px var(--green-bright); }
textarea { resize: vertical; line-height: 1.55; }
fieldset { padding: .8rem; border: 1px dotted var(--green-dim); }
legend { color: var(--cyan); font-size: var(--text-xs); }
.radio, .switch { display: flex; align-items: center; gap: .6rem; margin: .45rem 0; text-transform: none; }
.radio input, .switch input { width: auto; accent-color: var(--green); }
.divider { margin-top: .5rem; padding: .55rem 0; color: var(--red); border-bottom: 1px solid var(--red-dim); font-size: .68rem; letter-spacing: .08em; }

button, .button { display: inline-flex; justify-content: space-between; align-items: center; gap: .8rem; min-height: 2.5rem; padding: .65rem .9rem; border: 1px solid var(--green); border-radius: 0; color: var(--green-bright); background: #001b08; font: inherit; font-size: .7rem; font-weight: 700; letter-spacing: .06em; text-decoration: none; cursor: pointer; }
button:hover, .button:hover { color: #000; background: var(--green); }
.secondary { color: var(--cyan); background: #000; border-color: var(--cyan); }
.text-button { min-height: auto; padding: .35rem; color: var(--red); background: transparent; border: 0; }
.text-button:hover { color: var(--white); background: transparent; }
.danger { margin-top: 1rem; color: var(--red); background: #100; border-color: var(--red); }
.button-row { display: flex; flex-wrap: wrap; gap: .65rem; }

.auth-screen { width: min(700px,100%); margin: 0 auto; }
.access-status-strip { display: grid; grid-template-columns: auto 1fr auto; gap: .65rem; align-items: center; margin-bottom: .8rem; padding: .6rem .8rem; color: var(--cyan); border: 1px solid var(--cyan); font-size: var(--text-xs); letter-spacing: .08em; }
.access-status-strip > span { color: var(--green-bright); text-shadow: 0 0 .45rem currentColor; }
.access-status-strip strong { font-weight: 400; }
.access-status-strip small { color: var(--grey); font-size: var(--text-xs); }
.access-status-strip.mode-private { border-color: var(--amber); }
.access-status-strip.mode-private > span { color: var(--amber); }
.access-status-strip.mode-disabled { border-color: var(--green-dim); }
.access-status-strip.mode-disabled > span { color: var(--grey); text-shadow: none; }
.auth-heading { margin-bottom: 1.5rem; padding-left: 1rem; border-left: 3px solid var(--cyan); }
.auth-heading .eyebrow { color: var(--cyan); }
.auth-heading h1 { margin-bottom: .6rem; font-size: clamp(1.45rem,4vw,2.25rem); }
.auth-heading p:last-child { margin-bottom: 0; color: var(--grey); font-size: .76rem; }
.auth-form { border: 1px solid var(--green); }
.form-title { padding: .65rem .8rem; color: var(--green-bright); border-bottom: 1px solid var(--green-dim); background: #001506; font-size: .72rem; font-weight: 700; letter-spacing: .08em; }
.form-title span { color: var(--cyan); }
.auth-form .form-grid { margin: 0; padding: 1.2rem; }
.auth-form input { min-height: 2.8rem; font-size: .9rem; }
.auth-submit { justify-content: space-between; width: 100%; min-height: 3.25rem; margin-top: .35rem; color: #000; background: var(--green); font-size: .78rem; }
.auth-submit:hover { background: var(--green-bright); }
.auth-alternatives { display: flex; justify-content: space-between; gap: 1rem; padding: .9rem .2rem; font-size: var(--text-xs); }
.auth-alternatives a { color: var(--cyan); text-decoration: none; }
.auth-alternatives a:hover { color: var(--white); }
.invite-code-label { padding: .8rem; color: var(--cyan); border: 1px solid var(--cyan); background: rgba(0,216,207,.05); }
.invite-code-label input { border-color: var(--cyan); }

.invite-admin { margin-top: 1.25rem; }
.invite-list { display: grid; margin-top: .85rem; border-top: 1px dotted var(--green-dim); }
.invite-row { display: grid; grid-template-columns: minmax(0,1fr) auto auto; gap: .8rem; align-items: center; padding: .75rem .2rem; border-bottom: 1px dotted var(--green-dim); }
.invite-row > div { display: grid; gap: .2rem; min-width: 0; }
.invite-row strong { color: var(--cyan); font-size: .7rem; overflow-wrap: anywhere; }
.invite-row small { color: var(--grey); font-size: var(--text-xs); }
.invite-row form { margin: 0; }
.invite-row button { min-height: 2rem; padding: .35rem .55rem; }
.invite-state { color: var(--grey); font-size: var(--text-xs); }
.invite-state.active { color: var(--green-bright); }
.invite-state.revoked { color: var(--amber); }
.invitation-created { display: grid; gap: 1rem; }
.invitation-created h1, .invitation-created p { margin-bottom: 0; }
.copy-field { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .5rem; }
.copy-field input { text-transform: none; }

.flash-stack { display: grid; gap: .35rem; margin-top: .7rem; }
.flash { padding: .6rem .75rem; color: var(--green-bright); border-left: 3px solid var(--green); background: #001505; font-size: .72rem; }
.flash span { color: var(--cyan); }
.flash.error { color: var(--red); border-color: var(--red); background: #160002; }
.flash.error span, .flash.warning span { color: var(--red); }
.flash.warning { color: var(--amber); border-color: var(--amber); background: #130d00; }

.message { width: 100%; }
.message > .bulletin-meta { display: flex; flex-wrap: wrap; gap: .6rem 1.2rem; margin-bottom: 1rem; }
.message-body { white-space: pre-wrap; overflow-wrap: anywhere; color: var(--white); font-size: .82rem; line-height: 1.7; }
.replies { width: min(800px,100%); margin: 2rem auto 0; }
.replies > h2 { padding-bottom: .4rem; border-bottom: 1px solid var(--green-dim); color: var(--cyan); }
.reply { width: auto; margin: 0 0 .75rem clamp(0rem,4vw,2.5rem); border-style: dotted; }
.reply-box { margin-top: 1.5rem; }
.mail-thread-head { display: flex; justify-content: space-between; align-items: end; gap: 1rem; width: min(800px,100%); margin: 0 auto 1rem; }
.mail-thread-head h1 { margin-bottom: .35rem; }
.mail-thread-head p { margin-bottom: 0; }
.mail-thread { display: grid; gap: .75rem; width: min(800px,100%); margin-inline: auto; }
.mail-message { position: relative; margin: 0; padding-bottom: 2.5rem; border-color: var(--green-dim); }
.mail-message.outgoing { margin-left: clamp(0rem,4vw,2.5rem); border-color: var(--cyan); }
.mail-message.outgoing > .bulletin-meta span:first-child { color: var(--cyan); }
.mail-message-delete { position: absolute; right: .75rem; bottom: .55rem; margin: 0; }
.mail-message-delete .text-button { font-size: var(--text-xs); }

.statusbar { display: flex; justify-content: space-between; gap: 1rem; padding: .5rem .7rem; color: var(--green-dim); border: 1px solid var(--green-dim); font-size: var(--text-xs); letter-spacing: .04em; }
.carrier { color: var(--green); }
.carrier i { display: inline-block; width: .38rem; height: .38rem; margin-right: .3rem; border-radius: 50%; background: currentColor; box-shadow: 0 0 .45rem currentColor; }

.subnav { display: flex; flex-wrap: wrap; gap: .45rem 1rem; padding: .7rem .35rem; border-bottom: 1px dotted var(--green-dim); }
.subnav a { color: var(--grey); font-size: var(--text-xs); text-decoration: none; }
.subnav a:hover, .subnav a[aria-current="page"] { color: var(--green-bright); }
.traffic-list, .file-list, .announcement-list, .user-grid { display: grid; gap: .7rem; margin-top: 1rem; }
.traffic-row { display: grid; grid-template-columns: 8rem minmax(0,1fr) auto; gap: 1rem; padding: .85rem .5rem; color: var(--grey); border-bottom: 1px dotted var(--green-dim); font-size: .68rem; text-decoration: none; }
.traffic-row strong { color: var(--green); font-weight: 400; }
.traffic-row.unread strong { color: var(--green-bright); font-weight: 700; }
.traffic-row:hover { background: rgba(0,237,69,.04); }
.file-row, .user-card { display: flex; justify-content: space-between; gap: 1.25rem; padding: 1rem; border: 1px solid var(--green-dim); }
.file-details { flex: 1 1 auto; min-width: 0; }
.file-preview { display: grid; place-items: center; flex: 0 0 160px; width: 160px; height: 112px; border: 1px solid var(--cyan); background: #020702; overflow: hidden; }
.file-preview img { display: block; width: 100%; height: 100%; object-fit: contain; }
.file-row h2, .user-card h2 { margin: .2rem 0; }
.file-row p, .user-card p { margin: .2rem 0; color: var(--grey); font-size: .72rem; }
.file-row span, .file-row small, .user-card small { color: var(--grey); font-size: var(--text-xs); }
.file-row .button-row, .user-card .button-row { align-content: start; justify-content: end; }
.user-card-identity { display: flex; align-items: center; gap: .9rem; min-width: 0; }
.user-card-identity > div:last-child { min-width: 0; }
.user-last-seen { display: block; margin-top: .35rem; }
.user-avatar { display: grid; place-items: center; flex: 0 0 56px; width: 56px; height: 56px; border: 1px solid var(--cyan); background: #020702; overflow: hidden; }
.user-avatar img { display: block; width: 100%; height: 100%; object-fit: cover; }
.user-avatar.empty { color: var(--green-dim); border-color: var(--green-dim); font-size: var(--text-xs); }
.file-row form, .announcement form { margin: 0; }
.file-row .danger, .announcement .danger, .message .danger { margin-top: 0; }
.announcement { width: 100%; }
.announcement h2 { margin-top: .6rem; color: var(--green-bright); font-size: 1.25rem; }
.profile-page { display: grid; gap: 1rem; }
.profile-header { display: flex; justify-content: space-between; align-items: end; gap: 1rem; }
.profile-header > div { min-width: 0; }
.profile-photo { display: block; flex: none; width: 128px; height: 128px; border: 1px solid var(--cyan); outline: 1px dotted var(--green-dim); outline-offset: 4px; background: #020702; object-fit: cover; }
.profile-photo-preview { margin: .25rem 0 .5rem .3rem; }
.profile-data { margin: 0 0 1.5rem; }
.profile-data div { display: grid; grid-template-columns: 8rem minmax(0,1fr); gap: 1rem; padding: .5rem 0; border-bottom: 1px dotted var(--green-dim); }
.profile-data dd { text-align: left; }
.presence { color: var(--grey); font-size: var(--text-xs); }
.presence.online { color: var(--green-bright); text-shadow: 0 0 .45rem var(--green); }

.application-category { margin-top: 1.5rem; }
.application-category-heading { display: flex; align-items: baseline; gap: .8rem; padding-bottom: .35rem; border-bottom: 1px solid var(--green-dim); }
.application-category-heading .eyebrow, .application-category-heading h2 { margin: 0; }
.application-category-heading h2 { color: var(--cyan); text-transform: uppercase; }
.application-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .7rem; margin-top: .7rem; }
.application-card { display: flex; flex-direction: column; justify-content: space-between; gap: 1rem; min-height: 13rem; padding: 1rem; border: 1px solid var(--green-dim); background: linear-gradient(135deg,rgba(0,237,69,.04),transparent 55%); }
.application-card:hover { border-color: var(--green); }
.application-copy > span, .application-copy > small { color: var(--grey); font-size: var(--text-xs); }
.application-copy > small { display: block; }
.application-requirements { margin-bottom: .25rem; color: var(--cyan) !important; }
.application-copy h3 { margin: .4rem 0; color: var(--green-bright); font-size: .9rem; font-weight: 400; letter-spacing: .06em; text-transform: uppercase; }
.application-copy p { margin: 0 0 .7rem; color: var(--grey); font-size: .72rem; }
.application-card .button { align-self: start; }
.application-admin-list { display: grid; gap: .75rem; margin-top: 1rem; }
.application-admin-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 1rem; padding: 1rem; border: 1px solid var(--green-dim); }
.application-admin-actions { display: grid; justify-items: end; align-content: start; gap: .65rem; min-width: 12rem; }
.application-admin-actions form { margin: 0; }
.uninstall-form { display: grid; justify-items: end; gap: .45rem; padding-top: .55rem; border-top: 1px dotted var(--green-dim); }
.application-display { border: 1px solid var(--cyan); background: #000; }
.application-display-header { display: flex; justify-content: space-between; align-items: end; gap: 1rem; padding: 1rem; border-bottom: 1px solid var(--cyan); }
.application-display-header h1, .application-display-header p { margin-bottom: 0; }
.application-display-actions { display: flex; justify-content: flex-end; gap: .55rem; flex-wrap: wrap; }
.application-compatibility { display: flex; justify-content: space-between; gap: .75rem; padding: .45rem .55rem; color: var(--green-bright); border-bottom: 1px dotted var(--green-dim); font-size: var(--text-xs); }
.application-compatibility small { color: var(--grey); }
.application-compatibility.warning { color: var(--amber); border-color: var(--amber); }
.application-launch-warning { margin: 1rem; padding: 1rem; color: var(--amber); border: 1px solid var(--amber); background: #130d00; }
.application-launch-warning p { max-width: none; margin-bottom: .75rem; }
.application-launch-warning .button { margin-left: .45rem; }
.application-pointer-prompt { padding: .75rem 1rem; color: var(--amber); border-bottom: 1px solid var(--amber); background: #130d00; }
.application-pointer-prompt p { display: inline; margin: 0 .8rem 0 0; }
.application-pointer-prompt button { margin-right: .45rem; }
.application-viewport { min-height: 24rem; margin: 1rem; border: 1px solid var(--green-dim); }
.application-status { padding: .4rem .55rem; color: var(--amber); border-bottom: 1px dotted var(--green-dim); font-size: var(--text-xs); letter-spacing: .08em; }
.application-runtime { position: absolute; width: 1px; height: 1px; border: 0; opacity: 0; pointer-events: none; }
.application-surface { display: grid; align-content: start; gap: .85rem; min-height: 21rem; padding: clamp(1rem,3vw,2rem); }
.application-surface:focus { outline: 1px dotted var(--cyan); outline-offset: -4px; }
.application-surface > * { max-width: 100%; margin: 0; }
.app-title { padding-bottom: .45rem; color: var(--green-bright); border-bottom: 1px solid var(--green-dim); font-size: clamp(1.25rem,4vw,2rem); }
.app-heading { color: var(--cyan); }
.app-text { color: var(--white); white-space: pre-wrap; overflow-wrap: anywhere; }
.app-muted { color: var(--grey); }
.app-warning, .app-error { color: var(--red); }
.app-accent { color: var(--cyan); }
.app-emphasis { color: var(--green-bright); font-weight: 700; }
.app-menu { display: flex; flex-wrap: wrap; gap: .55rem; }
.application-surface > [data-app-component="game-controls"],
.application-surface > [data-app-component="pause"] { justify-self: center; }
.app-menu legend { width: 100%; margin-bottom: .35rem; }
.app-menu.app-dpad { display: grid; grid-template-columns: repeat(3,minmax(3.25rem,4.25rem)); grid-template-rows: auto repeat(2,3rem); width: fit-content; gap: .35rem; }
.app-dpad legend { grid-column: 1 / -1; }
.app-dpad button { display: grid; place-items: center; width: 100%; min-width: 0; margin: 0; padding: .55rem; font-size: 1rem; touch-action: manipulation; }
.app-dpad button:nth-of-type(1) { grid-column: 2; grid-row: 2; }
.app-dpad button:nth-of-type(2) { grid-column: 1; grid-row: 3; }
.app-dpad button:nth-of-type(3) { grid-column: 2; grid-row: 3; }
.app-dpad button:nth-of-type(4) { grid-column: 3; grid-row: 3; }
.app-checkbox { display: flex; align-items: center; gap: .55rem; }
.application-surface textarea { min-height: 6rem; resize: vertical; }
.app-list { padding-left: 1.5rem; color: var(--white); font-size: .76rem; line-height: 1.7; }
.app-pre, .app-grid { padding: .75rem; overflow: auto; color: var(--green-bright); border: 1px dotted var(--green-dim); background: #010401; font: inherit; font-size: .75rem; line-height: 1.35; white-space: pre; }
.app-grid { width: fit-content; letter-spacing: .04em; }
.app-cell-grid { display: grid; grid-template-columns: repeat(var(--app-grid-columns),1.35rem); width: fit-content; max-width: 100%; max-height: 34rem; overflow: auto; padding: .55rem; border: 1px dotted var(--green-dim); background: #000; touch-action: none; }
.app-cell { display: grid; place-items: center; width: 1.35rem; min-width: 1.35rem; height: 1.55rem; min-height: 1.55rem; margin: 0; padding: 0; border: 0; border-radius: 0; font: 400 .82rem/1 var(--mono); text-transform: none; box-shadow: none; }
.app-cell:hover { outline: 1px solid var(--cyan); outline-offset: -1px; filter: brightness(1.25); }
.app-cell:focus, .app-cell-cursor { z-index: 1; outline: 2px solid var(--cyan); outline-offset: -2px; }
.app-canvas-wrap { position: relative; width: min(100%,52rem); }
.app-canvas { display: block; width: 100%; height: auto; max-height: 70vh; border: 1px solid var(--green-dim); background: #010401; image-rendering: pixelated; touch-action: none; }
.app-canvas:focus { outline: 2px solid var(--cyan); outline-offset: 2px; }
.app-canvas-controls { position: absolute; inset: 0; display: grid; place-items: center; pointer-events: none; background: rgba(0,0,0,.28); }
.app-canvas-controls button { min-width: 8rem; padding: .8rem 1.2rem; pointer-events: auto; border-width: 2px; background: rgba(0,12,3,.94); font-size: .85rem; }
.app-fg-0 { color: #000; } .app-fg-1 { color: #aa0000; } .app-fg-2 { color: #00aa00; } .app-fg-3 { color: #aa5500; }
.app-fg-4 { color: #0000aa; } .app-fg-5 { color: #aa00aa; } .app-fg-6 { color: #00aaaa; } .app-fg-7 { color: #aaaaaa; }
.app-fg-8 { color: #555555; } .app-fg-9 { color: #ff5555; } .app-fg-10 { color: #55ff55; } .app-fg-11 { color: #ffff55; }
.app-fg-12 { color: #5555ff; } .app-fg-13 { color: #ff55ff; } .app-fg-14 { color: #55ffff; } .app-fg-15 { color: #ffffff; }
.app-bg-0 { background: #000; } .app-bg-1 { background: #aa0000; } .app-bg-2 { background: #00aa00; } .app-bg-3 { background: #aa5500; }
.app-bg-4 { background: #0000aa; } .app-bg-5 { background: #aa00aa; } .app-bg-6 { background: #00aaaa; } .app-bg-7 { background: #aaaaaa; }
.app-bg-8 { background: #555555; } .app-bg-9 { background: #ff5555; } .app-bg-10 { background: #55ff55; } .app-bg-11 { background: #ffff55; }
.app-bg-12 { background: #5555ff; } .app-bg-13 { background: #ff55ff; } .app-bg-14 { background: #55ffff; } .app-bg-15 { background: #ffffff; }
.app-table-wrap { overflow-x: auto; }
.app-table-wrap table { width: 100%; border-collapse: collapse; color: var(--white); font-size: .7rem; }
.app-table-wrap th, .app-table-wrap td { padding: .5rem; border: 1px dotted var(--green-dim); text-align: left; }
.app-table-wrap th { color: var(--cyan); font-weight: 400; }
.application-placeholder { display: grid; justify-items: center; align-content: center; min-height: 21rem; padding: 2rem 1rem; text-align: center; }
.application-placeholder > span { color: var(--cyan); font-size: 2rem; }
.application-placeholder h2 { margin: .5rem 0; }
.application-placeholder > p { margin-inline: auto; color: var(--grey); }
.application-metadata { width: min(28rem,100%); margin: .5rem 0 1.25rem; }
.application-metadata div { display: grid; grid-template-columns: 7rem minmax(0,1fr); gap: 1rem; padding: .4rem 0; border-bottom: 1px dotted var(--green-dim); }
.application-metadata dd { color: var(--green-bright); text-align: left; }
.application-return { margin: 0 1rem 1rem; }
.application-immersive-exit { position: fixed; top: .65rem; right: .65rem; z-index: 40; color: #000; border-color: var(--amber); background: var(--amber); }

body.application-immersive { overflow: hidden; }
body.application-immersive .station-shell { width: 100%; height: 100dvh; padding: 0; grid-template-rows: 1fr; }
body.application-immersive .station-header,
body.application-immersive .flash-stack,
body.application-immersive .radio-player,
body.application-immersive .statusbar { display: none; }
body.application-immersive .main-panel { min-height: 0; padding: 0; }
body.application-immersive .application-display { display: flex; flex-direction: column; height: 100dvh; border: 0; }
body.application-immersive .application-display-header { padding: .55rem 7.5rem .55rem .75rem; }
body.application-immersive .application-display-header .application-display-actions { display: none; }
body.application-immersive .application-compatibility { display: none; }
body.application-immersive .application-viewport { display: flex; flex: 1 1 auto; flex-direction: column; min-height: 0; margin: 0; border: 0; }
body.application-immersive .application-surface { flex: 1 1 auto; min-height: 0; overflow: auto; padding: clamp(.75rem,2vw,1.5rem); }
body.application-immersive .application-return { display: none; }
body.application-immersive .app-canvas-wrap { width: min(100%,75rem); }
body.application-immersive .app-canvas { max-height: calc(100dvh - 9rem); }

.live-chat { width: min(820px,100%); }
.chat-log { height: min(52vh,30rem); margin: 1rem 0; padding: .7rem; overflow-y: auto; border: 1px solid var(--green-dim); background: #010401; }
.chat-message { padding: .55rem .3rem; border-bottom: 1px dotted #064d1d; }
.chat-message span { color: var(--cyan); font-size: var(--text-xs); }
.chat-message.mine span { color: var(--magenta); }
.chat-message p { margin: .15rem 0 0; color: var(--white); font-size: .78rem; white-space: pre-wrap; overflow-wrap: anywhere; }
.chat-compose { display: grid; gap: .6rem; }
.chat-error { color: var(--red); font-size: var(--text-xs); }
button:disabled { opacity: .5; cursor: not-allowed; }

.mud-shell { width: min(100%, 920px); margin-inline: auto; }
.mud-header { display: flex; align-items: end; justify-content: space-between; gap: 1rem; padding: .7rem .9rem; border: 1px solid var(--cyan); border-bottom: 0; }
.mud-header h1, .mud-header .eyebrow { margin-bottom: 0; }
.mud-header-actions { display: flex; align-items: center; justify-content: flex-end; gap: .65rem; flex-wrap: wrap; }
.mud-link-state { color: var(--green-bright); font-size: var(--text-xs); letter-spacing: .08em; white-space: nowrap; }
.mud-layout { display: grid; grid-template-columns: minmax(0, 1fr) 15rem; min-height: 34rem; border: 1px solid var(--green); }
.mud-main { display: grid; grid-template-rows: auto minmax(16rem, 1fr) auto auto; min-width: 0; border-right: 1px solid var(--green-dim); }
.mud-room { padding: .8rem 1rem; border-bottom: 1px solid var(--green-dim); background: rgba(0,237,69,.035); }
.mud-room .eyebrow { margin: 0 0 .3rem; }
.mud-room h2 { margin: 0 0 .45rem; color: var(--green-bright); font-size: 1.15rem; }
.mud-room > p:not(.eyebrow):not(.mud-room-exits) { margin: 0; color: var(--white); font-size: .76rem; white-space: pre-wrap; }
.mud-room > .mud-room-instructions { margin-top: .65rem; padding: .55rem .65rem; border-left: 2px solid var(--cyan); color: var(--cyan); background: rgba(0,229,255,.045); }
.mud-room-exits { margin: .65rem 0 0; color: var(--grey); font-size: var(--text-xs); }
.mud-room-exits > span:first-child { margin-right: .35rem; color: var(--cyan); letter-spacing: .07em; }
.mud-occupants { display: flex; align-items: center; flex-wrap: wrap; gap: .35rem .55rem; margin-top: .55rem; color: var(--grey); font-size: var(--text-xs); }
.mud-occupants > span { color: var(--cyan); letter-spacing: .07em; }
.mud-occupants > div { display: flex; flex-wrap: wrap; gap: .35rem; }
.mud-entity { padding: .18rem .4rem; color: var(--green-bright); border: 1px solid var(--green-dim); background: rgba(0,237,69,.055); letter-spacing: .05em; }
.mud-combat-status { display: grid; gap: .4rem; margin-top: .6rem; }
.mud-enemy { display: grid; grid-template-columns: minmax(7rem,1fr) minmax(6rem,1fr) auto; align-items: center; gap: .55rem; padding: .4rem .5rem; border: 1px solid var(--red-dim); background: rgba(255,40,40,.05); }
.mud-enemy > span { display: flex; justify-content: space-between; gap: .4rem; }
.mud-enemy strong { color: var(--red); font-size: .7rem; }
.mud-enemy small, .mud-enemy output { color: var(--grey); font-size: var(--text-xs); }
.mud-enemy progress { width: 100%; height: .5rem; accent-color: var(--red); }
.mud-enemy.defeated { opacity: .62; }
.mud-events { min-height: 16rem; max-height: 52vh; padding: .8rem; overflow-y: auto; background: #010401; scrollbar-color: var(--green-dim) #000; }
.mud-event { display: grid; grid-template-columns: 4.5rem minmax(0,1fr); gap: .65rem; padding: .5rem .25rem; border-bottom: 1px dotted #064d1d; }
.mud-event span { color: var(--cyan); font-size: var(--text-xs); letter-spacing: .06em; }
.mud-event p { margin: 0; color: var(--white); font-size: .76rem; white-space: pre-wrap; overflow-wrap: anywhere; }
.mud-event-system p { color: var(--green-bright); }
.mud-event-chat span { color: var(--magenta); }
.mud-event-arrival p { color: var(--green-bright); }
.mud-event-departure p { color: var(--grey); }
.mud-context { padding: .65rem .8rem; border-top: 1px solid var(--green-dim); background: rgba(0,237,69,.025); }
.mud-section-heading { display: flex; justify-content: space-between; gap: .75rem; margin-bottom: .55rem; color: var(--cyan); font-size: var(--text-xs); letter-spacing: .07em; }
.mud-section-heading small { color: var(--grey); font-size: var(--text-xs); letter-spacing: 0; }
.mud-action-groups { display: grid; gap: .55rem; }
.mud-action-group > span { display: block; margin-bottom: .35rem; color: var(--grey); font-size: var(--text-xs); letter-spacing: .08em; }
.mud-action-group > div { display: flex; flex-wrap: wrap; gap: .45rem; }
.mud-action-group button { min-height: 2.65rem; }
.mud-command { padding: .7rem .8rem .8rem; border-top: 1px solid var(--green-dim); }
.mud-command > div { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .5rem; }
.mud-command label { margin-bottom: .3rem; color: var(--cyan); }
.mud-command small { display: block; margin-top: .35rem; color: var(--grey); font-size: var(--text-xs); }
.mud-command button { min-width: 7rem; justify-content: center; }
.mud-error { display: block; min-height: 1em; margin-top: .35rem; color: var(--red); font-size: var(--text-xs); }
.mud-sidebar { min-width: 0; background: #000; }
.mud-panel { padding: .8rem; border-bottom: 1px solid var(--green-dim); }
.mud-panel .collapsible-panel-title { font-size: .82rem; text-transform: uppercase; }
.mud-panel [data-panel-content] p { margin: 0; font-size: var(--text-xs); }
.mud-character-heading { display: flex; align-items: baseline; justify-content: space-between; gap: .5rem; margin-bottom: .2rem; }
.mud-character-heading strong { min-width: 0; overflow-wrap: anywhere; color: var(--green-bright); font-size: .85rem; }
.mud-character-heading span { flex: none; color: var(--cyan); font-size: var(--text-xs); letter-spacing: .06em; }
.mud-panel [data-panel-content] .mud-character-track { margin-bottom: .8rem; color: var(--grey); font-size: var(--text-xs); }
.mud-character-meter { margin-top: .65rem; }
.mud-character-meter > span { display: flex; justify-content: space-between; gap: .5rem; margin-bottom: .25rem; color: var(--cyan); font-size: var(--text-xs); letter-spacing: .05em; }
.mud-character-meter output { color: var(--white); font-size: var(--text-xs); }
.mud-character-meter progress { display: block; width: 100%; height: .5rem; border: 1px solid var(--green-dim); background: #010401; accent-color: var(--green-bright); }
.mud-character-meter progress::-webkit-progress-bar { background: #010401; }
.mud-character-meter progress::-webkit-progress-value { background: var(--green-bright); }
.mud-character-meter progress::-moz-progress-bar { background: var(--green-bright); }
.mud-character-meter small { display: block; margin-top: .25rem; color: var(--grey); font-size: var(--text-xs); text-align: right; }
.mud-attributes { display: grid; grid-template-columns: 1fr 1fr; gap: .35rem; margin: .85rem 0 0; }
.mud-attributes div { display: flex; align-items: center; justify-content: space-between; padding: .35rem .45rem; border: 1px solid var(--green-dim); }
.mud-attributes dt { color: var(--grey); font-size: var(--text-xs); }
.mud-attributes dd { margin: 0; color: var(--green-bright); font-size: .7rem; }
.mud-quest-list { display: grid; gap: .75rem; }
.mud-quest-list article { padding-bottom: .65rem; border-bottom: 1px dotted var(--green-dim); }
.mud-quest-list article:last-child { border-bottom: 0; }
.mud-quest-list strong { color: var(--green-bright); font-size: .72rem; }
.mud-quest-list article > p { margin: .25rem 0 .4rem !important; color: var(--grey); }
.mud-quest-list ul { display: grid; gap: .25rem; margin: 0; padding: 0; list-style: none; }
.mud-quest-list li { display: flex; justify-content: space-between; gap: .4rem; color: var(--white); font-size: var(--text-xs); }
.mud-quest-list li.complete { color: var(--green-bright); }
.mud-quest-list li span { flex: none; color: var(--cyan); }

.builder-shell { display: grid; gap: 1rem; }
.builder-head { margin-bottom: .25rem; }
.builder-settings, .builder-create, .builder-room { width: 100%; }
.builder-inline-form { display: grid; grid-template-columns: minmax(12rem,1fr) minmax(12rem,1fr) auto; align-items: end; gap: .65rem; }
.builder-inline-form > label { grid-column: 1 / -1; }
.builder-room-list { display: grid; gap: 1rem; }
.builder-room { scroll-margin-top: 1rem; }
.builder-room-heading { display: flex; justify-content: space-between; align-items: start; gap: 1rem; padding-bottom: .7rem; border-bottom: 1px solid var(--green-dim); }
.builder-room-heading h2 { margin-bottom: .25rem; }
.builder-room-heading small { color: var(--grey); font-size: var(--text-xs); }
.mud-builder-badge { flex: none; padding: .25rem .45rem; color: var(--amber); border: 1px solid var(--amber); font-size: var(--text-xs); letter-spacing: .06em; }
.builder-permission-list { display: grid; margin-top: .7rem; }
.builder-permission-list form { display: flex; align-items: center; justify-content: space-between; gap: .7rem; padding: .55rem 0; border-bottom: 1px dotted var(--green-dim); }
.builder-permission-list form > span:first-of-type { display: grid; }
.builder-permission-list small { color: var(--grey); }
.builder-permission-list button { min-height: 2rem; margin: 0; padding: .35rem .55rem; }
.builder-exits { margin-top: 1.25rem; padding-top: 1rem; border-top: 1px dotted var(--cyan); }
.builder-exits h3 { color: var(--cyan); font-size: .75rem; font-weight: 400; letter-spacing: .06em; }
.builder-exit-row { display: grid; grid-template-columns: minmax(7rem,.8fr) minmax(7rem,.7fr) minmax(9rem,1fr) minmax(9rem,1fr) auto; align-items: end; gap: .55rem; padding: .75rem 0; border-top: 1px dotted var(--green-dim); }
.builder-exit-row label { min-width: 0; }
.builder-exit-row input, .builder-exit-row select { padding: .5rem; font-size: .7rem; }
.builder-exit-row .button-row button, .builder-exit-row > button { min-height: 2.35rem; white-space: nowrap; }
.builder-delete-exit { margin: -.45rem 0 .55rem; text-align: right; }
.builder-delete-exit button { min-height: 2rem; margin: 0; padding: .3rem .5rem; font-size: var(--text-xs); }
.builder-add-exit { grid-template-columns: minmax(8rem,1fr) minmax(8rem,.8fr) minmax(10rem,1fr) auto; margin-top: .6rem; padding: .8rem; border: 1px dotted var(--cyan); }
.builder-dialogue-node { margin: .7rem 0; padding: .65rem; border: 1px solid var(--green-dim); }
.builder-subform { margin-top: .75rem; padding: .75rem; border: 1px dotted var(--cyan); }
.builder-child-list { display: grid; margin-top: .55rem; }
.builder-child-list form { display: flex; align-items: center; justify-content: space-between; gap: .7rem; padding: .45rem 0; border-bottom: 1px dotted var(--green-dim); }
.builder-child-list button { min-height: 2rem; margin: 0; padding: .3rem .5rem; }
.builder-subform fieldset { display: flex; flex-wrap: wrap; gap: .55rem 1rem; grid-column: 1 / -1; }
.builder-danger-zone { margin-top: 1.25rem; padding-top: .75rem; border-top: 1px solid var(--red-dim); color: var(--red); font-size: var(--text-xs); }
.builder-danger-zone summary { cursor: pointer; letter-spacing: .05em; text-transform: uppercase; }
.builder-danger-zone p { margin: .7rem 0; color: var(--grey); }
.builder-danger-zone form { display: grid; grid-template-columns: minmax(12rem,1fr) auto; align-items: end; gap: .65rem; }
.builder-danger-zone button { margin: 0; }

.settings-section { margin-top: 1.5rem; }
.collapsible-panel-toggle { width: 100%; min-height: 0; padding: 0 0 .55rem; color: inherit; border: 0; border-bottom: 1px solid var(--green-dim); background: transparent; text-align: left; }
.collapsible-panel-toggle:hover { color: inherit; background: rgba(0,237,69,.045); }
.collapsible-panel-toggle:focus-visible { outline: 1px solid var(--green-bright); outline-offset: .25rem; }
.collapsible-panel-heading { display: grid; min-width: 0; gap: .2rem; }
.collapsible-panel-heading .eyebrow { margin: 0; color: var(--cyan); font-size: .7rem; font-weight: 400; letter-spacing: .09em; }
.collapsible-panel-title { color: var(--green-bright); font-size: 1rem; font-weight: 400; letter-spacing: .07em; text-transform: none; }
.collapsible-panel-title.page-title { font-size: clamp(1.25rem,4vw,2rem); line-height: 1.15; letter-spacing: .08em; text-transform: uppercase; }
.collapsible-panel-chevron { flex: 0 0 auto; width: .65rem; height: .65rem; margin-right: .25rem; border-right: 2px solid var(--cyan); border-bottom: 2px solid var(--cyan); transform: rotate(45deg); transition: transform .12s ease; }
.collapsible-panel-toggle[aria-expanded="false"] .collapsible-panel-chevron { transform: rotate(-45deg); }
.collapsible-panel [data-panel-content] { padding-top: .8rem; }
.collapsible-panel [data-panel-content][hidden] { display: none; }
.band-settings { display: grid; gap: .75rem; }
.frequency-fields { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.radio-group-settings { margin-top: 1rem; }
.split-heading, .permission-rule, .permission-summary { display: flex; align-items: center; gap: .65rem; flex-wrap: wrap; }
.split-heading { justify-content: space-between; }
.split-heading h3 { margin-bottom: .1rem; }
.permission-rules { margin: .7rem 0; }
.permission-rule { justify-content: space-between; padding: .35rem .45rem; border-top: 1px dotted var(--green-dim); }
.permission-rule form { margin: 0; }
.permission-summary { margin-top: .7rem; color: var(--grey); font-size: var(--text-xs); }
.permission-summary span { padding: .25rem .4rem; border: 1px dotted var(--green-dim); }
.radio-rule-form { margin-top: .75rem; }

.radio-player { position: sticky; bottom: 1.65rem; z-index: 12; display: grid; grid-template-columns: 1fr; gap: .35rem; align-items: center; width: 100%; padding: .38rem .5rem; border: 1px solid var(--cyan); background: rgba(0,10,8,.98); box-shadow: 0 -.2rem .65rem #000; }
.radio-player-state, .radio-player-controls { display: flex; align-items: center; justify-content: center; gap: .4rem; flex-wrap: wrap; }
.radio-player.minimized { width: 2.5rem; height: 2.5rem; min-height: 0; justify-self: end; grid-template-columns: 1fr; padding: .18rem; }
.radio-player.minimized .radio-player-controls, .radio-player.minimized .radio-player-error { display: none; }
.radio-player.minimized .radio-player-state { display: block; width: 100%; height: 100%; }
.radio-player.minimized .radio-player-state > :not(.radio-player-toggle) { display: none; }
.radio-player.minimized .radio-player-toggle { width: 100%; height: 100%; min-height: 0; padding: 0; color: var(--cyan); border: 0; font-size: .78rem; font-weight: 700; }
.radio-player-state output { min-width: 4.2rem; color: var(--green-bright); font-size: .82rem; letter-spacing: .08em; text-align: right; }
.radio-player-state > span { color: var(--grey); font-size: var(--text-xs); }
.radio-player-state .radio-player-status { min-width: 4.5rem; color: var(--amber); text-align: center; }
.radio-player-state .radio-broadcast-status { color: var(--cyan); }
.radio-player-state .radio-now-playing, .radio-player-state .radio-now-playing-artist { min-width: 0; max-width: 14rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: left; }
.radio-player-state .radio-now-playing { color: var(--green-bright); }
.radio-player-state .radio-now-playing-artist { color: var(--grey); }
.radio-marquee { display: block; min-width: 0; overflow: hidden; white-space: nowrap; }
.radio-marquee > span { display: inline-block; padding-right: 1.75rem; }
.radio-marquee.is-overflowing > span { animation: radio-marquee var(--radio-marquee-duration, 8s) linear infinite alternate; }
.radio-marquee.is-overflowing:hover > span { animation-play-state: paused; }
@keyframes radio-marquee { to { transform: translateX(calc(-1 * var(--radio-marquee-distance))); } }
@media (prefers-reduced-motion: reduce) { .radio-marquee.is-overflowing > span { animation: none; } }
.radio-player button, .radio-player .button { min-height: 2rem; padding: .3rem .48rem; font-size: var(--text-xs); white-space: nowrap; }
.radio-player .radio-power.active { color: #000; border-color: var(--green); background: var(--green); }
.radio-player-controls { justify-content: flex-end; }
.radio-player-controls label { display: flex; align-items: center; gap: .35rem; min-width: 7rem; }
.radio-player-controls .radio-frequency-entry { min-width: 6.3rem; }
.radio-player-controls .radio-frequency-entry input { width: 4.9rem; padding: .4rem .45rem; font-size: var(--text-xs); text-align: right; }
.radio-player-controls input[type="range"] { height: 1.4rem; padding: 0; }
.radio-player-error { grid-column: 1 / -1; min-height: 0; margin: 0; font-size: var(--text-xs); }
.radio-player-error:empty { display: none; }
.signal-lamp { display: inline-block; width: .48rem; height: .48rem; margin-right: .35rem; border: 1px solid var(--green-dim); border-radius: 50%; background: #001005; }
.signal-lamp.active { border-color: var(--green-bright); background: var(--green); box-shadow: 0 0 .55rem var(--green); }
.radio-console-page { padding: .8rem; border: 1px solid var(--cyan); background: #000; }
.radio-console-head { margin-bottom: .8rem; padding-top: 0; }
.radio-console-access { color: var(--amber); font-size: var(--text-xs); white-space: nowrap; }
.radio-console-power { display: flex; align-items: center; gap: .65rem; }
.radio-console-actions { display: grid; justify-items: end; gap: .55rem; }
.radio-receiver { display: grid; grid-template-columns: 11rem 1fr; gap: .75rem; }
.radio-display { display: grid; align-content: center; padding: .4rem .65rem; border: 1px solid var(--green-dim); background: #000; }
.radio-display span, .radio-display small { color: var(--grey); font-size: var(--text-xs); letter-spacing: .06em; }
.radio-display output { color: var(--green-bright); font-size: 1.45rem; line-height: 1.2; letter-spacing: .1em; text-shadow: 0 0 .55rem var(--green-dim); }
.radio-display > strong { color: var(--cyan); font-size: .7rem; letter-spacing: .05em; }
.radio-display small { color: var(--amber); }
.radio-now-playing-block { display: grid; min-width: 0; margin: .25rem 0; padding: .25rem 0; border-block: 1px dotted var(--green-dim); }
.radio-now-playing-block[hidden] { display: none; }
.radio-now-playing-block span { color: var(--cyan); }
.radio-now-playing-block b { color: var(--green-bright); font-size: .72rem; font-weight: 400; }
.radio-now-playing-block small { color: var(--grey); }
.radio-controls { display: grid; grid-template-columns: auto minmax(8rem,1fr) auto auto auto; gap: .45rem; align-items: end; }
.radio-controls button { min-height: 2.35rem; padding-inline: .6rem; white-space: nowrap; }
.radio-controls button, .radio-player-controls [data-radio-step] { touch-action: manipulation; }
.radio-controls input { padding-block: .45rem; }
.radio-monitor { position: relative; height: 8.5rem; margin: .65rem 0; border: 1px solid var(--green-dim); background: #000; overflow: hidden; }
.radio-monitor canvas { display: block; width: 100%; height: 100%; }
.radio-monitor-label, .radio-monitor strong { position: absolute; top: .35rem; z-index: 1; padding: .2rem .35rem; background: #000c; font-size: var(--text-xs); letter-spacing: .08em; }
.radio-monitor-label { left: .4rem; color: var(--green-dim); }
.radio-monitor strong { right: .4rem; color: var(--amber); font-weight: 400; }
.radio-operation { display: grid; grid-template-columns: minmax(8rem,1fr) auto minmax(12rem,auto); gap: .5rem; align-items: end; }
.radio-operation input, .radio-operation select, .radio-mode-panel input { padding-block: .45rem; }
.radio-occupancy { align-self: center; color: var(--cyan); font-size: var(--text-xs); text-align: right; }
.radio-mode-selector { display: grid; grid-template-columns: minmax(12rem,20rem) minmax(0,1fr); gap: .75rem; align-items: end; margin-top: .75rem; padding: .65rem .75rem; border: 1px solid var(--cyan); background: rgba(0,216,207,.035); }
.radio-mode-selector[hidden] { display: none; }
.radio-mode-selector select { padding-block: .45rem; }
.radio-mode-selector small { align-self: center; color: var(--grey); }
.radio-mode-panel { margin-top: .55rem; padding-top: .55rem; border-top: 1px dotted var(--green-dim); }
.radio-mode-panel[hidden] { display: none; }
.radio-voice-controls { display: grid; grid-template-columns: minmax(12rem, 18rem) 1fr; gap: .8rem; align-items: center; }
.radio-voice-controls div { display: grid; gap: .3rem; }
.radio-voice-controls small { color: var(--green-dim); }
.radio-ptt { min-height: 3.2rem; touch-action: none; user-select: none; }
.radio-ptt.active { color: #000; background: var(--amber); border-color: var(--amber); box-shadow: 0 0 1rem color-mix(in srgb, var(--amber) 45%, transparent); }
.radio-cw-controls { display: grid; grid-template-columns: auto minmax(9rem,1fr) 7rem 7rem auto; gap: .5rem; align-items: end; }
.radio-key { touch-action: none; user-select: none; }
.radio-key.active { color: #000; background: var(--amber); border-color: var(--amber); }
.radio-decoder { display: block; min-height: 1.7rem; margin-top: .45rem; padding: .35rem .5rem; color: var(--amber); border: 1px dotted var(--green-dim); background: #000; font-size: .7rem; }
.morse-reference { margin-top: .4rem; color: var(--grey); font-size: var(--text-xs); }
.morse-reference p { margin: .4rem 0 0; line-height: 1.7; }
.radio-sstv-controls { display: grid; grid-template-columns: minmax(12rem,1fr) auto auto; gap: .5rem; align-items: end; }
.radio-pictures { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; margin-top: .55rem; }
.radio-pictures figure { margin: 0; padding: .4rem; border: 1px dotted var(--green-dim); background: #000; }
.radio-pictures figcaption { margin-bottom: .35rem; color: var(--grey); font-size: var(--text-xs); }
.radio-pictures canvas { display: block; width: 100%; height: 7rem; image-rendering: pixelated; object-fit: contain; background: #000; }
.radio-error { min-height: 1em; margin: .35rem 0 0; }

.broadcast-section { width: 100%; margin-top: 1.5rem; }
.radio-broadcast-directory { display: grid; grid-template-columns: minmax(12rem,.4fr) minmax(0,1fr); gap: .75rem 1.25rem; align-items: start; margin-top: .75rem; padding: .65rem .75rem; border: 1px dotted var(--cyan); background: rgba(0,216,207,.035); }
.radio-broadcast-directory .eyebrow { margin-bottom: .2rem; color: var(--cyan); font-size: var(--text-xs); }
.radio-broadcast-directory h2 { margin: 0; font-size: .75rem; }
.radio-broadcast-directory ul { display: grid; grid-template-columns: repeat(auto-fit,minmax(13rem,1fr)); gap: .25rem .75rem; margin: 0; padding: 0; list-style: none; }
.radio-broadcast-directory li { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: .5rem; align-items: baseline; min-width: 0; padding: .3rem 0; border-bottom: 1px dotted var(--green-dim); font-size: var(--text-xs); }
.radio-broadcast-directory li > * { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.radio-broadcast-directory .broadcast-frequency { color: var(--cyan); }
.radio-broadcast-directory .broadcast-name { color: var(--green-bright); }
.radio-broadcast-directory .broadcast-state { color: var(--grey); text-align: right; }
.radio-broadcast-directory .broadcast-state.on-air { color: var(--amber); }
.quota-readout { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 1rem; color: var(--grey); font-size: var(--text-xs); }
.quota-meter { height: .6rem; margin: .45rem 0 1rem; border: 1px solid var(--green-dim); background: #020702; }
.quota-meter i { display: block; height: 100%; background: var(--cyan); }
.empty-state.small { padding: 2rem 1rem; }
.compact-files .file-row { align-items: center; }
.compact-files .danger, .playlist-editor .danger { margin-top: 0; }
.playlist-editor { margin-top: 1rem; padding: 1rem; border: 1px dotted var(--green-dim); }
.playlist-settings { display: grid; grid-template-columns: minmax(12rem,1fr) auto auto; align-items: end; gap: .75rem; }
.track-list { margin: 1rem 0; padding: 0; list-style: none; border-top: 1px dotted var(--green-dim); }
.track-row { display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding: .55rem .25rem; border-bottom: 1px dotted var(--green-dim); font-size: .7rem; }
.track-row b { color: var(--cyan); font-weight: 400; }
.track-row em { color: var(--red); font-size: var(--text-xs); font-style: normal; }
.track-row form { margin: 0; }
.track-row button { min-height: 2rem; padding: .3rem .5rem; font-size: var(--text-xs); }
.add-track { margin: .8rem 0; }
.quota-admin-list { display: grid; gap: .75rem; margin-top: 1rem; }
.quota-admin-list form { padding-top: .75rem; border-top: 1px dotted var(--green-dim); }

@media (max-width: 700px) {
  .station-shell { padding-inline: .65rem; }
  .system-line span:nth-child(2) { display: none; }
  .directory-screen { grid-template-columns: 1fr; gap: 1.2rem; }
  .screen-heading { grid-column: 1; }
  .board-head { align-items: stretch; flex-direction: column; }
  .board-head .button { align-self: start; }
  .bulletin-columns { display: none; }
  .bulletin-row { grid-template-columns: minmax(0,1fr) 3.5rem; }
  .bulletin-meta { grid-column: 1 / -1; grid-template-columns: auto auto 1fr; }
  .bulletin-meta time { text-align: right; }
  .station-profile { grid-template-columns: 1fr; }
  .profile-ident { border-top: 1px dotted var(--cyan); border-left: 0; }
  .auth-alternatives { align-items: flex-start; flex-direction: column; }
  .invite-row { grid-template-columns: minmax(0,1fr) auto; }
  .invite-row form { grid-column: 1 / -1; }
  .copy-field { grid-template-columns: 1fr; }
  .traffic-row { grid-template-columns: 1fr; gap: .2rem; }
  .file-row, .user-card { flex-direction: column; }
  .file-preview { width: min(100%,320px); height: 180px; }
  .application-list { grid-template-columns: 1fr; }
  .application-display-header { align-items: stretch; flex-direction: column; }
  .application-admin-row { grid-template-columns: 1fr; }
  .application-admin-actions, .uninstall-form { justify-items: start; }
  .application-display-header .button { align-self: start; }
  .file-row .button-row, .user-card .button-row { justify-content: start; }
  .radio-receiver { grid-template-columns: 1fr; }
  .radio-controls { grid-template-columns: auto minmax(7rem,1fr) auto; }
  .radio-controls [data-radio-scan] { grid-column: 1 / -1; justify-content: center; }
  .radio-operation { grid-template-columns: 1fr 1fr; }
  .radio-mode-selector { grid-template-columns: 1fr; }
  .radio-cw-controls { grid-template-columns: 1fr 1fr; }
  .radio-sstv-controls { grid-template-columns: 1fr; }
  .radio-player { grid-template-columns: 1fr; }
  .radio-player-state { justify-content: center; }
  .radio-player-controls { justify-content: center; flex-wrap: wrap; }
  .mud-layout { grid-template-columns: 1fr; }
  .mud-main { border-right: 0; }
  .mud-sidebar { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--green-dim); }
  .mud-panel { border-right: 1px solid var(--green-dim); }
  .builder-inline-form, .builder-exit-row, .builder-add-exit { grid-template-columns: 1fr 1fr; }
  .builder-exit-row .button-row, .builder-exit-row > button { align-self: stretch; }
  .builder-exit-row .button-row button, .builder-exit-row > button { width: 100%; justify-content: center; }
}

@media (max-width: 430px) {
  .system-line span:last-child { display: none; }
  .system-line { justify-content: center; }
  .station-brand { margin-top: 1rem; }
  .brand-tag { font-size: var(--text-xs); }
  .node-line { display: grid; justify-content: center; text-align: center; }
  .gateway-marker { grid-template-columns: 1fr; justify-items: center; text-align: center; }
  .profile-header { align-items: start; }
  .access-status-strip { grid-template-columns: auto 1fr; }
  .access-status-strip small { grid-column: 2; }
  .service-nav { gap: .35rem; }
  .service-nav a { font-size: var(--text-xs); }
  .service-list > * { grid-template-columns: 3rem minmax(0,1fr); }
  .service-state { display: none; }
  .bulletin-meta { grid-template-columns: auto 1fr; }
  .bulletin-meta time { grid-column: 1 / -1; text-align: left; }
  .terminal-card { padding: .8rem; }
  .statusbar span:nth-child(2) { display: none; }
  .frequency-fields { grid-template-columns: 1fr; }
  .radio-player { bottom: 1.65rem; padding: .3rem; }
  .radio-player-state .radio-player-status, .radio-player-state > span { display: none; }
  .radio-player-controls label { order: 5; width: 100%; }
  .radio-player .radio-open { flex: 1; justify-content: center; }
  .radio-console-page { padding: .5rem; }
  .radio-broadcast-directory { grid-template-columns: 1fr; }
  .radio-controls { grid-template-columns: 1fr 1fr; }
  .radio-controls label { grid-column: 1 / -1; grid-row: 1; }
  .radio-controls [data-radio-scan] { grid-column: 1 / -1; }
  .radio-operation, .radio-cw-controls, .radio-pictures, .radio-voice-controls { grid-template-columns: 1fr; }
  .playlist-settings { grid-template-columns: 1fr; }
  .track-row { align-items: flex-start; flex-direction: column; }
  .mud-header { align-items: start; flex-direction: column; }
  .mud-events { max-height: 45vh; }
  .mud-event { grid-template-columns: 1fr; gap: .2rem; }
  .mud-section-heading { align-items: flex-start; flex-direction: column; }
  .mud-action-group > div { display: grid; grid-template-columns: 1fr; }
  .mud-command > div { grid-template-columns: 1fr; }
  .mud-command button { width: 100%; }
  .mud-enemy { grid-template-columns: 1fr; }
  .mud-sidebar { grid-template-columns: 1fr; }
  .mud-header-actions { align-items: flex-start; justify-content: flex-start; }
  .builder-inline-form, .builder-exit-row, .builder-add-exit, .builder-danger-zone form { grid-template-columns: 1fr; }
  .builder-permission-list form, .builder-room-heading { align-items: flex-start; flex-direction: column; }
}
