:root {
  --desktop: #36566a;
  --desktop-deep: #16333b;
  --ink: #141414;
  --muted: #565a56;
  --face: #d9d9d0;
  --paper: #f8f8f0;
  --mid: #92928b;
  --ok: #245d35;
  --danger: #8f2020;
  --green: #a5ffba;
  --terminal: Monaco, Menlo, Consolas, "Liberation Mono", "DejaVu Sans Mono", monospace;
  font-family: var(--terminal);
  color: var(--ink);
  background: var(--desktop);
  font-synthesis: none;
}

* { box-sizing: border-box; }
html, body, #app { min-width: 320px; min-height: 100%; margin: 0; }
body {
  min-height: 100vh;
  background: linear-gradient(90deg, rgba(255,255,255,.055) 1px, transparent 1px) 0 0 / 18px 18px, var(--desktop);
}
button, input, select, textarea { font: inherit; }
button {
  border: 2px solid var(--ink); background: var(--face); color: var(--ink);
  box-shadow: inset 2px 2px 0 var(--paper), inset -2px -2px 0 var(--mid); cursor: pointer;
}
button:hover, button:focus-visible, button.active { background: #111; color: var(--paper); box-shadow: none; }
button:disabled { cursor: not-allowed; opacity: .45; }
input, select, textarea { width: 100%; border: 2px solid var(--ink); border-radius: 0; background: var(--paper); color: var(--ink); padding: 8px; box-shadow: inset 2px 2px #aaa; }
textarea { resize: vertical; line-height: 1.45; }
label { display: grid; gap: 5px; font-size: .76rem; font-weight: 800; }
a { color: inherit; text-underline-offset: 2px; }

.bootstrap {
  display: grid; min-height: 100vh; place-items: center; padding: 24px; background: #030806; color: var(--green);
  font: 700 clamp(.8rem, 2.5vw, 1.05rem) var(--terminal); letter-spacing: .08em; text-shadow: 0 0 8px rgba(88,255,156,.45);
}
.blink { animation: blink .75s steps(1) infinite; }
@keyframes blink { 50% { opacity: 0; } }

.boot-screen {
  min-height: 100vh; overflow: auto; background:
    linear-gradient(rgba(255,255,255,.032) 50%, rgba(0,0,0,.1) 50%) 0 0 / 100% 4px,
    radial-gradient(circle at 48% 34%, #14251f 0, #07110d 54%, #020303 100%);
  color: var(--green); font-family: var(--terminal); text-shadow: 0 0 6px rgba(88,255,156,.46);
}
.boot-frame {
  display: grid; grid-template-rows: auto 1fr auto; gap: 18px; width: min(100%,1120px); min-height: 100vh;
  margin: 0 auto; padding: clamp(18px,4vw,42px);
}
.boot-brand {
  display: grid; gap: 4px 18px; align-items: center; justify-items: end; min-height: 86px; padding-bottom: 16px;
  border-bottom: 1px solid currentColor; text-align: right;
}
.boot-brand-copy { display: grid; gap: 4px; justify-items: end; min-width: 0; text-align: right; }
.boot-brand.with-logo {
  position: relative; grid-template-columns: minmax(0,1fr); justify-items: stretch; min-height: min(38vh,330px);
  transition: min-height var(--boot-logo-transition) cubic-bezier(.22,.61,.36,1);
}
.boot-brand-logo {
  position: absolute; z-index: 1; top: 50%; left: 50%; width: min(64vw,440px); max-height: min(34vh,290px);
  object-fit: contain; filter: drop-shadow(0 0 12px rgba(160,255,190,.28)); transform: translate(-50%,-50%);
  transform-origin: center; will-change: top,left,width,max-height,transform; transition:
    top var(--boot-logo-transition) cubic-bezier(.22,.61,.36,1),
    left var(--boot-logo-transition) cubic-bezier(.22,.61,.36,1),
    width var(--boot-logo-transition) cubic-bezier(.22,.61,.36,1),
    max-height var(--boot-logo-transition) cubic-bezier(.22,.61,.36,1),
    transform var(--boot-logo-transition) cubic-bezier(.22,.61,.36,1);
}
.boot-brand.with-logo .boot-brand-copy {
  max-height: 0; overflow: hidden; opacity: 0; transform: translateY(8px); transition:
    max-height var(--boot-logo-transition) ease, opacity var(--boot-logo-transition) ease, transform var(--boot-logo-transition) ease;
}
.boot-brand.with-logo.compact { min-height: 110px; }
.boot-brand.with-logo.compact .boot-brand-logo { top: 0; left: 100%; width: min(17vw,150px); max-height: 100px; transform: translate(-100%,0); }
.boot-brand.with-logo.compact .boot-brand-copy { max-height: 180px; align-self: center; padding-right: min(19vw,168px); overflow: visible; opacity: 1; transform: translateY(0); }
.boot-brand strong { font-size: clamp(1.35rem,4.2vw,3.2rem); letter-spacing: -.07em; }
.boot-brand span { max-width: 100%; font-size: clamp(.66rem,1.5vw,.9rem); letter-spacing: .04em; opacity: .78; }
.post-output { min-height: 390px; margin: 0; overflow: hidden; font-size: clamp(.72rem,1.65vw,1rem); line-height: 1.55; white-space: pre-wrap; }
.post-output .dim-line { color: #686868; text-shadow: none; }
.boot-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.boot-actions button { border-color: currentColor; background: transparent; color: inherit; box-shadow: none; }
.boot-hint { margin-right: auto; align-self: center; font-size: .72rem; opacity: .66; }

.bios-screen {
  min-height: 100vh; padding: clamp(10px,2.5vw,24px); overflow: auto;
  background: repeating-linear-gradient(0deg,rgba(255,255,255,.24) 0 1px,transparent 1px 3px),#bdbdb5;
}
.bios-panel {
  display: grid; grid-template-rows: auto 1fr auto; width: min(100%,1120px); min-height: calc(100vh - clamp(20px,5vw,48px));
  margin: 0 auto; border: 2px solid var(--ink); background: var(--face); box-shadow: inset -2px -2px 0 #85857e,inset 2px 2px 0 #fff;
}
.striped-title {
  display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 12px; align-items: center; min-height: 38px; padding: 5px 10px;
  border-bottom: 2px solid var(--ink); background: repeating-linear-gradient(0deg,#fafaf3 0 2px,var(--ink) 2px 3px);
}
.striped-title > * { min-width: 0; padding: 2px 8px; overflow: hidden; background: var(--face); text-overflow: ellipsis; white-space: nowrap; }
.striped-title span { font-size: .76rem; }
.bios-grid { display: grid; gap: 14px; align-content: start; padding: clamp(12px,2.5vw,24px); }
.bios-list,.bios-map { min-width: 0; padding: 12px; border: 2px solid var(--ink); background: #efefe7; box-shadow: inset -2px -2px 0 #999991,inset 2px 2px 0 #fff; }
.bios-list { display: grid; gap: 8px; }
.bios-row { display: grid; grid-template-columns: minmax(0,1fr) minmax(140px,auto); gap: 10px; padding: 8px; border: 1px solid var(--ink); background: #fafaf3; }
.bios-row b,.bios-row-value strong,.bios-row small { display: block; }
.bios-row-value { text-align: right; }
.bios-row small { margin-top: 2px; color: #65655f; font-size: .68rem; }
.bios-map h2 { margin: 0 0 12px; font-size: 1rem; }
.bios-map dl { display: grid; gap: 7px; margin: 0; }
.bios-map dl > div { display: grid; grid-template-columns: 120px minmax(0,1fr); gap: 8px; padding: 7px 0; border-bottom: 1px solid #77776f; }
dt { font-weight: 700; }
dd { margin: 0; overflow-wrap: anywhere; }
.vector-options { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 16px; }
.vector-options-label { grid-column: 1 / -1; font-size: .76rem; font-weight: 800; }
.vector-options.fixed-vector { grid-template-columns: 1fr; }
.vector-options.fixed-vector strong { min-height: 40px; padding: 10px 12px; background: var(--ink); color: var(--paper); font-size: .78rem; }
.bios-option { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 12px; align-items: center; margin-top: 16px; padding: 10px; border: 1px solid var(--ink); background: #fafaf3; }
.bios-option span { display: grid; gap: 3px; min-width: 0; }
.bios-option small { color: #65655f; font-size: .65rem; line-height: 1.35; }
.bios-option button { min-width: 100px; min-height: 38px; padding: 6px 9px; }
.bios-option button.selected { background: var(--ink); color: var(--paper); box-shadow: none; }
.bios-footer { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: flex-end; padding: 8px 12px; border-top: 2px solid var(--ink); }
.bios-help { margin-right: auto; font-size: .7rem; }

.handoff-screen {
  display: grid; min-height: 100vh; place-items: center; padding: 18px; background:
    radial-gradient(circle at 68% 28%,rgba(118,161,166,.18),transparent 34%),
    repeating-linear-gradient(90deg,transparent 0 31px,rgba(255,255,255,.025) 31px 32px),
    repeating-linear-gradient(0deg,transparent 0 31px,rgba(255,255,255,.025) 31px 32px),
    linear-gradient(145deg,var(--desktop),var(--desktop-deep));
}
.handoff-panel { display: grid; gap: 20px; width: min(92vw,760px); min-height: min(72vh,560px); padding: 0 18px 18px; border: 2px solid var(--ink); background: var(--face); box-shadow: 7px 7px rgba(0,0,0,.36),inset -2px -2px var(--mid),inset 2px 2px #fff; }
.handoff-mark { position: relative; display: grid; grid-template-rows: minmax(0,1fr) auto; gap: 10px; place-items: center; min-height: 330px; padding: 18px; border: 2px solid var(--ink); background: radial-gradient(circle at center,#f8f8f0,#d7d7cf 68%,#a4a49d); overflow: hidden; }
.handoff-mark::before { position: absolute; inset: 12px; content: ''; border: 1px dashed rgba(17,17,17,.42); pointer-events: none; }
.handoff-mark-logo { width: min(46vw,270px); max-width: 74%; max-height: 250px; opacity: .72; filter: grayscale(1) contrast(1.35) sepia(.18) hue-rotate(128deg) saturate(.7); }
.handoff-mark-label { z-index: 1; padding: 2px 8px; font-size: clamp(1.35rem,5vw,2.4rem); font-weight: 900; letter-spacing: -.06em; }
.handoff-status { display: grid; grid-template-columns: 90px minmax(0,1fr) auto; gap: 10px; align-items: center; padding: 9px; border: 2px solid var(--ink); background: #fafaf3; }
.handoff-skip { min-height: 32px; padding: 4px 8px; font-size: .72rem; }

.centered-screen { display: grid; min-height: 100vh; place-items: center; padding: 24px; }
.gem-dialog, .login-window { width: min(560px, 100%); border: 2px solid var(--ink); background: var(--face); box-shadow: 10px 10px rgba(0,0,0,.55); }
.gem-titlebar, .window-titlebar {
  display: grid; grid-template-columns: minmax(24px,1fr) auto minmax(24px,1fr); align-items: center; gap: 8px;
  min-height: 31px; padding: 4px 6px; border-bottom: 2px solid var(--ink);
  background: repeating-linear-gradient(0deg, transparent 0 2px, rgba(0,0,0,.2) 2px 3px), var(--paper);
}
.gem-titlebar strong, .window-titlebar strong { padding: 2px 9px; background: var(--face); font-size: .78rem; white-space: nowrap; }
.gem-titlebar > :last-child, .window-titlebar > :last-child { justify-self: end; }
.window-box { width: 20px; height: 20px; border: 2px solid var(--ink); background: var(--face); box-shadow: inset 1px 1px var(--paper), inset -1px -1px var(--mid); }
.window-close-control { display: grid; min-width: 20px; min-height: 20px; padding: 0; place-items: center; font-size: 1rem; font-weight: 900; line-height: 1; }
.window-title-spacer { width: 20px; height: 20px; }
.dialog-body { display: grid; gap: 16px; padding: 26px; line-height: 1.55; }
.dialog-body button { justify-self: end; padding: 8px 14px; }
.login-window .gem-titlebar > span:last-child { min-width: 0; overflow: hidden; font-size: .65rem; text-overflow: ellipsis; white-space: nowrap; }
.login-identity { display: grid; gap: 7px; padding: 28px 24px 22px; border-bottom: 3px double var(--ink); text-align: center; }
.wordmark { font-size: clamp(1.35rem, 5vw, 2.2rem); font-weight: 900; letter-spacing: -.06em; }
.login-identity p { margin: 0; color: var(--muted); font-size: .66rem; letter-spacing: .06em; }
.login-form { display: grid; gap: 14px; padding: 22px; }
.login-form label { font-size: .72rem; }
.login-form input { min-width: 0; min-height: 35px; padding: 6px 8px; }
.login-form button { min-height: 40px; font-weight: 800; letter-spacing: .04em; }
.login-form .error-message { min-height: 18px; }
.error-message { min-height: 1em; margin: 0; color: var(--danger); font-size: .75rem; font-weight: 800; }
.source-footer { min-height: 25px; padding: 5px 8px; border-top: 1px solid var(--ink); background: var(--paper); color: var(--muted); font-size: .65rem; }

.monitor-desktop { display: grid; grid-template-rows: auto minmax(0,1fr); min-height: 100vh; }
.taskbar { display: flex; align-items: center; gap: 4px; min-width: 0; min-height: 35px; padding: 3px 5px; border-bottom: 2px solid var(--ink); background: var(--face); }
.taskbar-launchers { display: flex; flex: 0 1 auto; align-items: center; gap: 4px; min-width: 0; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: thin; }
.taskbar-button { flex: 0 0 auto; min-height: 28px; padding: 4px 10px; font-size: .72rem; font-weight: 900; white-space: nowrap; }
.taskbar-separator { flex: 0 0 auto; width: 0; height: 24px; margin: 0 3px; border-left: 2px solid var(--ink); border-right: 2px solid var(--paper); }
.taskbar-spacer { flex: 1; }
.operator-id { align-self: center; padding: 0 8px; color: var(--muted); font-size: .68rem; text-transform: uppercase; }
.monitor-surface { display: grid; min-width: 0; min-height: 0; padding: clamp(10px, 2vw, 22px); overflow: hidden; }
.monitor-workspace { display: grid; grid-template-columns: var(--monitor-pane-columns,repeat(var(--monitor-pane-count,1),minmax(390px,1fr))); gap: 9px; width: 100%; min-width: 0; min-height: calc(100vh - 80px); overflow-x: auto; overflow-y: hidden; }
.monitor-shell { container-type: inline-size; display: grid; grid-template-rows: auto minmax(0,1fr); width: 100%; min-width: 0; min-height: calc(100vh - 80px); border: 2px solid var(--ink); background: var(--face); box-shadow: 9px 9px rgba(0,0,0,.45); overflow: hidden; }
.monitor-pane.focused { outline: 2px solid #8fc6e9; outline-offset: -2px; }
.monitor-pane-titlebar { position: relative; }
.pane-window-controls,.pane-count-controls,.pane-ratio-controls { display: flex; align-items: center; gap: 3px; min-width: 0; }
.pane-window-controls { gap: 6px; }
.pane-count-controls button,.pane-ratio-controls button { display: grid; min-width: 22px; height: 20px; min-height: 20px; place-items: center; padding: 0 3px; font-size: .62rem; }
.pane-ratio-controls button { min-width: 34px; }
.pane-count-controls button.active,.pane-ratio-controls button.active { background: var(--ink); color: var(--paper); box-shadow: none; }
.desktop-program-title { overflow: hidden; text-overflow: ellipsis; }
.desktop-release-label { overflow: hidden; font-size: .68rem; text-overflow: ellipsis; white-space: nowrap; }
.station-app-slot { min-width: 0; min-height: 0; overflow: hidden; }
.cherunet-workspace-app,.config-workspace-app { width: 100%; height: 100%; min-height: calc(100vh - 115px); background: var(--face); }
.cherunet-workspace-frame { display: block; width: 100%; height: 100%; min-height: calc(100vh - 115px); border: 0; background: #0b2731; }
.config-workspace-app { overflow: auto; }
.stations-app { display: grid; grid-template-rows: auto auto minmax(0, 1fr) auto; height: 100%; min-height: calc(100vh - 115px); background: #c7c7be; }
.hosts-app { display: grid; grid-template-rows: auto auto minmax(0,1fr) auto; height: 100%; min-height: calc(100vh - 115px); background: #c7c7be; }
.host-table { min-width: 980px; }
.host-editor-dialog { width: min(980px,100%); }
.host-editor-form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; min-height: 0; padding: 16px; overflow: auto; }
.host-editor-form > label:has(textarea),.host-editor-form > .error-message,.host-editor-form > .subdialog-actions { grid-column: 1 / -1; }
.host-editor-form textarea { min-height: 100px; }
.stations-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 10px 12px; background: var(--ink); color: var(--paper); }
.stations-heading > div { display: grid; gap: 3px; }
.stations-heading .stations-heading-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 6px; }
.stations-heading strong { letter-spacing: .08em; }
.stations-heading small { color: #cfcfc7; font-size: .67rem; }
.stations-heading button { min-height: 31px; padding: 4px 9px; }
.station-domain-filter { display: flex; align-items: center; gap: 6px; color: #cfcfc7; font-size: .67rem; white-space: nowrap; }
.station-domain-picker { position: relative; min-width: 210px; color: var(--ink); }
.station-domain-trigger { min-height: 31px; padding: 7px 28px 6px 9px; border: 2px solid var(--ink); background: var(--paper); box-shadow: inset 2px 2px #aaa; color: var(--ink); cursor: pointer; font-size: .72rem; font-weight: 900; list-style: none; }
.station-domain-trigger::-webkit-details-marker { display: none; }
.station-domain-trigger::after { position: absolute; top: 8px; right: 9px; content: '▼'; font-size: .65rem; }
.station-domain-picker[open] .station-domain-trigger { background: #4b83df; color: #fff; box-shadow: none; }
.station-domain-menu { position: absolute; z-index: 30; top: calc(100% + 2px); right: 0; display: grid; width: min(330px,80vw); max-height: 330px; padding: 5px; overflow: auto; border: 2px solid var(--ink); background: #4b4b48; box-shadow: 5px 5px rgba(0,0,0,.45); }
.station-domain-menu-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding-bottom: 5px; border-bottom: 1px solid #aaa; }
.station-domain-action { min-height: 30px; padding: 4px 7px; font-size: .65rem; font-weight: 900; }
.station-domain-option.editor-check { position: relative; display: grid; grid-template-columns: 18px minmax(0,1fr); gap: 7px; align-items: center; min-height: 34px; padding: 6px 8px; color: #f8f8f0; cursor: pointer; }
.station-domain-option:hover,.station-domain-option:focus-within { background: #696966; }
.station-domain-option .station-domain-checkbox { position: absolute; width: 1px; height: 1px; margin: 0; padding: 0; overflow: hidden; opacity: 0; pointer-events: none; }
.station-domain-checkmark { display: grid; width: 18px; height: 18px; place-items: center; border: 2px solid var(--ink); background: var(--paper); color: var(--paper); box-shadow: inset 1px 1px #fff,inset -1px -1px #777; }
.station-domain-checkbox:checked + .station-domain-checkmark { background: var(--ink); box-shadow: none; }
.station-domain-checkbox:checked + .station-domain-checkmark::after { content: '✓'; font-size: .8rem; font-weight: 900; line-height: 1; }
.station-domain-checkbox:focus-visible + .station-domain-checkmark { outline: 2px solid #f5cf59; outline-offset: 2px; }
.station-domain-option-label { min-width: 0; }
.status-strip { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 18px; padding: 6px 10px; border-bottom: 2px solid var(--ink); background: var(--paper); font-size: .68rem; font-weight: 800; }
.station-table-wrap, .access-table-wrap { min-width: 0; margin: 10px; overflow: auto; border: 2px solid var(--ink); background: #efefe7; }
.station-table, .access-table { width: 100%; min-width: 820px; border-collapse: collapse; font-size: .7rem; }
.station-table th, .station-table td, .access-table th, .access-table td { padding: 8px; border-right: 1px solid #77776f; border-bottom: 1px solid #77776f; text-align: left; vertical-align: middle; }
.station-table th, .access-table th { position: sticky; z-index: 1; top: 0; background: #b7b7ae; letter-spacing: .04em; }
.station-sort-control { display: block; width: 100%; min-height: 0; padding: 0; border: 0; background: transparent; color: inherit; box-shadow: none; font: inherit; font-weight: 900; letter-spacing: inherit; text-align: left; }
.station-sort-control:hover,.station-sort-control:focus-visible { background: var(--ink); color: var(--paper); outline: 2px solid #f5cf59; outline-offset: 2px; box-shadow: none; }
.station-table th:last-child, .station-table td:last-child, .access-table th:last-child, .access-table td:last-child { border-right: 0; }
.station-machine, .station-count { font-weight: 900; }
.station-table tbody tr { cursor: pointer; }
.station-table tbody tr.has-new-events { background: #fff0a8; box-shadow: inset 5px 0 #8a5a00; }
.station-table tbody tr:hover, .station-table tbody tr:focus-visible { background: var(--ink); color: var(--paper); outline: 0; }
.station-filter-empty { cursor: default !important; }
.station-filter-empty:hover { background: #efefe7 !important; color: var(--ink) !important; }
.station-filter-empty td { height: 160px; text-align: center; font-weight: 900; }
.station-description { line-height: 1.35; }
.station-host, .station-date, .ip-address { font-variant-numeric: tabular-nums; white-space: nowrap; }
.station-handler-cell { cursor: pointer; }
.station-handler-cell:hover,.station-handler-cell:focus-visible {
  background: #245467 !important; color: #fff; outline: 2px solid #f5cf59; outline-offset: -3px;
}
.station-handler-unavailable { color: #6b6b65; cursor: not-allowed; font-style: italic; opacity: .72; }
.station-handler-unavailable:hover,.station-handler-unavailable:focus-visible { opacity: 1; }
.station-action-cell { display: flex; justify-content: center; gap: 5px; text-align: center !important; }
.row-action { display: inline-grid; min-width: 64px; min-height: 30px; place-items: center; padding: 4px 7px; border: 2px solid var(--ink); background: var(--face); color: var(--ink); box-shadow: inset 2px 2px var(--paper),inset -2px -2px var(--mid); font-weight: 400; text-decoration: none; }
.row-action:hover,.row-action:focus-visible { background: var(--ink); color: var(--paper); box-shadow: none; }
.loading-message, .empty-state { display: grid; place-content: center; gap: 12px; min-height: 220px; padding: 24px; text-align: center; }
.empty-state.error { color: var(--danger); }
.empty-state button { justify-self: center; padding: 7px 10px; }

.modal-overlay { position: fixed; z-index: 1000; inset: 0; display: grid; width: 100vw; height: 100dvh; place-items: center; padding: 20px; overflow: hidden; background: rgba(0,0,0,.62); }
.access-dialog { display: grid; grid-template-rows: auto minmax(0, 1fr); width: min(1120px, 100%); max-height: calc(100dvh - 40px); border: 2px solid var(--ink); background: var(--face); box-shadow: 12px 12px rgba(0,0,0,.55); }
.access-dialog-body { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; min-height: 0; overflow: hidden; }
.access-table-wrap { min-height: 0; }
.access-table { min-width: 920px; }
.access-table .ignored-log-row { background: #deded5; color: #676760; }
.access-table .ignored-log-row .ip-address { text-decoration: line-through; text-decoration-thickness: 1px; }
.access-status-controls { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px 14px; }
.access-filter-toggle { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; white-space: nowrap; }
.access-filter-toggle input { width: 16px; height: 16px; margin: 0; box-shadow: none; accent-color: var(--ink); }
.ignored-action:disabled { opacity: 1; background: #686860; color: var(--paper); }
.location-unavailable { color: var(--danger); font-weight: 800; }
.pager { display: flex; align-items: center; justify-content: center; gap: 14px; padding: 8px; border-top: 2px solid var(--ink); background: var(--paper); font-size: .7rem; }
.pager button { padding: 5px 8px; }

.ignored-ip-dialog { width: min(1040px, 100%); }
.ignored-ip-dialog-body { display: grid; grid-template-rows: auto auto minmax(0,1fr); min-height: 0; overflow: hidden; }
.ignored-ip-add-form { display: grid; grid-template-columns: minmax(190px,.55fr) minmax(280px,1fr) auto; gap: 8px; align-items: end; padding: 10px; border-bottom: 2px solid var(--ink); background: var(--face); }
.ignored-ip-add-form button { min-height: 36px; padding: 5px 10px; font-weight: 900; }
.ignored-ip-form-error { grid-column: 1 / -1; }
.ignored-ip-list { min-height: 0; overflow: hidden; background: #c7c7be; }
.ignored-ip-table-wrap { height: 100%; margin: 10px; overflow: auto; border: 2px solid var(--ink); background: #efefe7; }
.ignored-ip-table { width: 100%; min-width: 780px; border-collapse: collapse; font-size: .7rem; }
.ignored-ip-table th,.ignored-ip-table td { padding: 8px; border-right: 1px solid #77776f; border-bottom: 1px solid #77776f; text-align: left; vertical-align: middle; }
.ignored-ip-table th { position: sticky; z-index: 1; top: 0; background: #b7b7ae; letter-spacing: .04em; }
.ignored-ip-table th:last-child,.ignored-ip-table td:last-child { border-right: 0; }
.ignored-ip-comment-editor { display: grid; grid-template-columns: minmax(220px,1fr) auto; gap: 6px; align-items: center; }
.ignored-ip-comment-editor input { min-height: 32px; padding: 5px 7px; }
.ignored-ip-comment-editor .row-action { min-height: 32px; }
.ignored-ip-inline-error { grid-column: 1 / -1; min-height: 1em; color: var(--danger); font-size: .62rem; font-weight: 800; }
.ignored-ip-empty { min-height: 260px; }

.config-dialog { width: min(720px, 100%); }
.config-dialog-body { display: grid; grid-template-rows: auto minmax(0,1fr); min-height: 0; overflow: auto; }
.config-form { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; padding: 22px; background: var(--face); }
.config-form label { display: grid; gap: 7px; font-size: .72rem; font-weight: 900; }
.config-form label small { color: var(--muted); font-size: .62rem; font-weight: 400; }
.config-form input { min-height: 38px; padding: 6px 8px; border: 2px solid var(--ink); background: var(--paper); }
.config-explanation,.config-security { grid-column: 1 / -1; margin: 0; padding: 10px; border: 1px solid var(--ink); background: var(--paper); font-size: .7rem; line-height: 1.5; }
.config-security { color: var(--muted); }
.config-form .error-message { grid-column: 1 / -1; }
.config-form button { grid-column: 1 / -1; justify-self: end; min-height: 38px; padding: 6px 12px; font-weight: 900; }
.config-local-boot { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 12px 22px; align-items: center; padding: 16px 22px; border-bottom: 4px double var(--ink); background: #b7b7ae; }
.config-local-boot h2 { margin: 0 0 5px; font-size: .8rem; letter-spacing: .06em; }
.config-local-boot p { max-width: 620px; margin: 0; font-size: .67rem; line-height: 1.45; }
.config-local-boot > small { grid-column: 1 / -1; color: var(--muted); font-size: .61rem; }
.config-fast-boot { min-width: 190px; padding: 9px 11px; border: 2px solid var(--ink); background: var(--paper); }
.config-fast-boot-state { margin-left: auto; }

.station-editor-dialog { position: relative; width: min(1320px,100%); height: min(860px,calc(100dvh - 40px)); max-height: calc(100dvh - 40px); min-height: 0; overflow: hidden; }
.station-editor-body { display: grid; grid-template-rows: auto auto minmax(0,1fr) auto; min-height: 0; overflow: hidden; }
.station-editor-status { border-bottom: 1px solid var(--ink); }
.editor-tabs { display: flex; gap: 4px; padding: 6px 8px; border-bottom: 2px solid var(--ink); background: #adada5; }
.editor-tab { min-width: 112px; min-height: 34px; padding: 5px 10px; font-size: .7rem; font-weight: 900; }
.editor-tab:disabled { background: #8f8f89; color: #54544f; cursor: not-allowed; box-shadow: inset 1px 1px #666; }
.station-editor-panel { min-height: 0; overflow: auto; background: #c7c7be; }
.station-editor-footer { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 5px 12px; align-items: center; padding: 8px 10px; border-top: 2px solid var(--ink); background: var(--face); }
.station-editor-footnote { color: var(--muted); font-size: .64rem; line-height: 1.4; }
.station-editor-error { grid-column: 1; }
.station-editor-actions { grid-column: 2; grid-row: 1 / span 2; display: flex; justify-content: flex-end; gap: 8px; }
.station-editor-actions button { min-height: 38px; padding: 6px 12px; font-weight: 900; }
.station-identity-editor { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; padding: 12px; }
.station-identity-editor .editor-group { height: 100%; }
.station-identity-editor .editor-field-grid { grid-template-columns: 1fr; }
.station-identity-editor textarea { min-height: 86px; }
.station-identity-note { grid-column: 1 / -1; margin: 0; padding: 10px 12px; border: 1px solid var(--ink); background: var(--paper); color: var(--muted); font-size: .66rem; line-height: 1.45; }
.hardware-editor { display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; padding: 12px; }
.editor-group { align-self: start; padding: 12px; border: 2px solid var(--ink); background: var(--face); box-shadow: inset 2px 2px var(--paper),inset -2px -2px var(--mid); }
.editor-group-wide { grid-column: 1 / -1; }
.editor-group h2,.session-editor h2,.mail-editor-form h2 { margin: 0 0 10px; font-size: .78rem; letter-spacing: .06em; }
.editor-group-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.editor-group-heading h2 { margin: 0; }
.compact-action { min-height: 30px; padding: 4px 10px; }
.editor-field-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.editor-field { min-width: 0; }
.editor-field small { color: var(--muted); font-size: .61rem; font-weight: 400; line-height: 1.35; }
.cherugem-multiselect { position: relative; display: grid; gap: 6px; min-width: 0; }
.cherugem-multiselect-trigger { position: relative; width: 100%; min-height: 40px; padding: 7px 34px 7px 10px; overflow: hidden; font-weight: 900; text-align: left; text-overflow: ellipsis; white-space: nowrap; }
.cherugem-multiselect-trigger::after { position: absolute; right: 11px; content: '▼'; }
.cherugem-multiselect-listbox { position: absolute; z-index: 8; top: 44px; left: 0; width: 100%; min-width: min(520px,calc(100vw - 56px)); max-height: min(430px,60dvh); overflow: auto; border: 2px solid var(--ink); background: var(--face); box-shadow: 8px 8px rgba(0,0,0,.5); outline: 0; }
.station-runtime-shortcuts .cherugem-multiselect-listbox { right: 0; left: auto; }
.cherugem-multiselect-listbox[hidden] { display: none; }
.cherugem-multiselect-option { display: grid; grid-template-columns: 28px minmax(0,1fr) auto; gap: 8px; align-items: center; min-height: 52px; padding: 7px 9px; border-bottom: 1px solid #77776f; cursor: default; }
.cherugem-multiselect-option:last-child { border-bottom: 0; }
.cherugem-option-mark { display: grid; width: 20px; height: 20px; place-items: center; border: 2px solid currentColor; font-weight: 1000; }
.cherugem-option-copy { display: grid; gap: 3px; min-width: 0; }
.cherugem-option-copy strong { font-size: .7rem; }
.cherugem-option-copy small,.cherugem-option-state { color: var(--muted); font-size: .58rem; line-height: 1.35; }
.cherugem-option-copy .cherugem-option-reason { color: var(--danger); font-weight: 700; }
.cherugem-option-state { white-space: nowrap; }
.cherugem-multiselect-option.is-selected,.cherugem-multiselect-option.is-mixed { background: #d5d5cc; }
.cherugem-multiselect-option.is-active { background: var(--ink); color: var(--paper); outline: 2px solid #f5cf59; outline-offset: -3px; }
.cherugem-multiselect-option.is-active small { color: inherit; }
.cherugem-multiselect-option.is-disabled:not(.is-selected):not(.is-mixed) { color: #686860; background: #d1d1c8; }
.cherugem-multiselect-selected { display: grid; gap: 5px; }
.cherugem-selected-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; align-items: center; padding: 6px 7px; border: 1px solid #77776f; background: var(--paper); }
.cherugem-selected-row > span:first-child { display: grid; gap: 2px; min-width: 0; }
.cherugem-selected-row strong { overflow: hidden; font-size: .66rem; text-overflow: ellipsis; white-space: nowrap; }
.cherugem-selected-actions { display: flex; gap: 4px; }
.cherugem-selected-actions button { min-width: 28px; min-height: 28px; padding: 2px 5px; box-shadow: none; font-weight: 1000; }
.editor-check { display: flex; align-items: center; gap: 8px; min-height: 34px; }
.editor-check input { width: 18px; height: 18px; flex: none; box-shadow: none; accent-color: var(--ink); }
.editor-check span { min-width: 0; }
.editor-unit-control { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: stretch; }
.editor-unit-control > span { display: grid; min-width: 52px; place-items: center; border: 2px solid var(--ink); border-left: 0; background: #b7b7ae; font-weight: 900; }
.station-value-field { align-self: start; }
.station-boolean-control { justify-content: flex-start; min-height: 36px; padding: 5px 8px; border: 2px solid var(--ink); background: var(--paper); }
.station-boolean-control input { min-width: 18px; min-height: 18px; padding: 0; }
.station-value-heading { display: flex; align-items: center; justify-content: space-between; gap: 6px; min-height: 23px; }
.station-value-field.is-overridden .station-value-heading > span,.hardware-list-editor.is-overridden .editor-group-heading h2 { font-weight: 1000; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 3px; }
.station-value-field.is-inherited > small { color: #696963; }
.station-value-reset { min-width: 22px; min-height: 21px; padding: 0; font-size: 1rem; font-weight: 1000; line-height: 1; }
.station-value-reset:disabled { color: #8a8a83; opacity: .45; box-shadow: inset 1px 1px #aaa; }
.hardware-core-fields { display: grid; gap: 12px; }
.hardware-spec-row { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; padding-bottom: 10px; border-bottom: 1px solid #77776f; }
.hardware-spec-row:last-child { padding-bottom: 0; border-bottom: 0; }
.hardware-memory-row { grid-template-columns: minmax(0,1fr); }
.hardware-editor .editor-field { display: grid; align-self: start; align-content: start; gap: 5px; font-size: .76rem; font-weight: 800; }
.hardware-editor .editor-field-heading { display: flex; align-items: center; min-height: 23px; }
.hardware-editor .editor-field > input,.hardware-editor .editor-field > select,.hardware-editor .station-boolean-control { height: 38px; min-height: 38px; }
.hardware-system-fields { grid-template-columns: repeat(4,minmax(0,1fr)); }
.hardware-system-fields > :first-child { grid-column: span 2; }
.hardware-list-editor { display: grid; gap: 8px; }
.hardware-list-card { display: grid; gap: 10px; padding: 10px; border: 1px solid var(--ink); background: #efefe7; }
.hardware-list-card-header { display: grid; grid-template-columns: minmax(0,1fr) auto; column-gap: 10px; row-gap: 5px; align-items: end; padding-bottom: 10px; border-bottom: 1px solid #77776f; }
.hardware-list-card-hint { grid-column: 1 / -1; color: var(--muted); font-size: .61rem; font-weight: 400; line-height: 1.35; }
.hardware-list-card-remove { align-self: end; height: 38px; min-height: 38px; }
.hardware-list-network .hardware-list-card-fields { grid-template-columns: repeat(4,minmax(0,1fr)); }
.hardware-list-extension .hardware-list-card-fields { grid-template-columns: repeat(3,minmax(0,1fr)); }
.editor-empty { margin: 0; padding: 12px; border: 1px dashed var(--muted); color: var(--muted); text-align: center; }
.danger-action { border-color: var(--danger); color: var(--danger); }
.danger-action:hover,.danger-action:focus-visible { background: var(--danger); color: #fff; }
.drive-hardware-list { display: grid; gap: 12px; }
.drive-hardware-block { padding: 10px; border: 2px solid var(--ink); background: var(--paper); }
.drive-hardware-block h3 { margin: 0 0 9px; font-size: .75rem; letter-spacing: .08em; }
.drive-hardware-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 9px; }
.drive-hardware-heading h3 { margin: 0; }
.drive-remove { min-width: 96px; font-size: .58rem; }
.drive-hardware-add { display: grid; align-content: center; justify-items: center; gap: 7px; min-height: 116px; border-style: dashed; }
.drive-hardware-add .drive-add { min-width: 150px; min-height: 38px; padding: 7px 10px; font-weight: 900; }
.drive-hardware-add small { color: var(--muted); font-size: .58rem; text-align: center; }
.drive-hardware-block > .station-value-field { margin-bottom: 10px; padding-bottom: 10px; border-bottom: 1px solid #77776f; }
.drive-hardware-fields { grid-template-columns: repeat(4,minmax(0,1fr)); }
.drive-derived-control { min-height: 38px; }

.filesystem-editor { display: grid; grid-template-rows: auto auto minmax(0,1fr); min-height: 100%; }
.filesystem-heading { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0,1fr) minmax(260px,.42fr); gap: 14px; align-items: end; padding: 12px; border-bottom: 2px solid var(--ink); background: var(--face); }
.filesystem-heading h2 { margin: 0 0 6px; font-size: .82rem; }
.filesystem-heading p { max-width: 780px; margin: 0; font-size: .68rem; line-height: 1.45; }
.cherugem-drive-chooser { position: relative; }
.drive-chooser-trigger { width: 100%; min-height: 40px; padding: 7px 34px 7px 10px; text-align: left; font-weight: 900; }
.drive-chooser-trigger::after { position: absolute; right: 11px; content: '▼'; }
.drive-chooser-listbox { position: absolute; z-index: 4; top: calc(100% + 4px); right: 0; width: min(430px,calc(100vw - 52px)); max-height: min(420px,60dvh); overflow: auto; border: 2px solid var(--ink); background: var(--face); box-shadow: 8px 8px rgba(0,0,0,.5); outline: 0; }
.drive-chooser-listbox[hidden] { display: none; }
.drive-chooser-option { display: grid; grid-template-columns: 34px minmax(0,1fr) auto; gap: 8px; align-items: center; min-height: 38px; padding: 6px 8px; border-bottom: 1px solid #77776f; cursor: default; }
.drive-chooser-option:last-child { border-bottom: 0; }
.drive-chooser-option small { color: var(--muted); font-size: .58rem; }
.drive-chooser-option.is-active { background: var(--ink); color: var(--paper); outline: 2px solid #f5cf59; outline-offset: -3px; }
.drive-chooser-option.is-active small { color: inherit; }
.drive-chooser-option.is-disabled { background: #d1d1c8; color: #686860; }
.drive-chooser-option.is-disabled.is-active { background: #686860; color: #fff; }
.filesystem-hidden-bar { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; min-height: 42px; padding: 6px 10px; border-bottom: 1px solid var(--ink); background: #b7b7ae; }
.filesystem-hidden-bar > small { color: var(--muted); font-size: .61rem; }
.filesystem-hidden-toggle { margin-right: auto; }
.hidden-system-folder { min-height: 30px; padding: 4px 8px; font-size: .64rem; }
.hidden-system-folder.active { background: var(--ink); color: var(--paper); }
.filesystem-body { min-height: 0; overflow: auto; }
.drive-table tr.is-hidden-node { background: #d5d5ca; font-style: italic; }

.drive-editor { display: grid; grid-template-rows: auto auto minmax(0,1fr) auto; min-height: 100%; }
.drive-os-release { display: grid; grid-template-columns: auto minmax(260px,1fr); gap: 14px; align-items: end; padding: 12px; border-bottom: 4px double var(--ink); background: #b7b7ae; }
.drive-os-release h2 { margin: 0 0 7px; font-size: .78rem; }
.drive-settings { display: grid; gap: 10px; padding: 12px; border-bottom: 2px solid var(--ink); background: var(--face); }
.drive-media-status { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-bottom: 8px; border-bottom: 1px solid #77776f; }
.drive-media-fields { display: grid; grid-template-columns: minmax(180px,.45fr) minmax(260px,1fr); gap: 10px; align-items: start; }
.drive-present { align-self: center; }
.drive-toolbar { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; padding: 8px 10px; border-bottom: 1px solid var(--ink); background: #b7b7ae; }
.drive-toolbar > button { min-height: 32px; padding: 4px 8px; font-size: .66rem; }
.drive-breadcrumbs { display: flex; align-items: center; gap: 4px; min-width: 180px; margin-right: auto; overflow-x: auto; }
.breadcrumb-button,.file-open-action { min-height: 28px; padding: 3px 6px; border: 0; background: transparent; box-shadow: none; font-weight: 900; text-decoration: underline; text-underline-offset: 3px; }
.drive-table-wrap { min-height: 260px; margin: 10px; overflow: auto; border: 2px solid var(--ink); background: #efefe7; }
.drive-table { width: 100%; min-width: 780px; border-collapse: collapse; font-size: .7rem; }
.drive-table th,.drive-table td { padding: 8px; border-right: 1px solid #77776f; border-bottom: 1px solid #77776f; text-align: left; vertical-align: middle; }
.drive-table th { position: sticky; z-index: 1; top: 0; background: #b7b7ae; }
.drive-table th:last-child,.drive-table td:last-child { border-right: 0; }
.drive-table-group th { position: static; padding: 6px 8px; background: #d0d0c7; font-size: .62rem; letter-spacing: .08em; }
.drive-file-name { font-weight: 900; }
.drive-empty { min-height: 230px; }
.drive-capabilities { padding: 7px 10px; border-top: 1px solid var(--ink); background: var(--paper); color: var(--muted); font-size: .61rem; line-height: 1.45; }

.editor-suboverlay { position: absolute; z-index: 3; inset: 31px 0 0; display: grid; min-height: 0; place-items: center; padding: 16px; overflow: hidden; background: rgba(0,0,0,.68); }
.editor-subdialog { display: grid; grid-template-rows: auto minmax(0,1fr); width: min(850px,100%); height: min(720px,calc(100dvh - 78px)); max-height: 100%; min-height: 0; overflow: hidden; border: 2px solid var(--ink); background: var(--face); box-shadow: 10px 10px rgba(0,0,0,.5); }
.editor-subdialog-body { min-height: 0; padding: 16px; overflow: auto; }
.editor-subdialog-body > p { line-height: 1.5; }
.cherugem-decision-copy > p { line-height: 1.5; }
.cherugem-dependency-list { display: grid; gap: 7px; margin: 12px 0; padding: 0; list-style: none; }
.cherugem-dependency-list li { display: grid; gap: 4px; padding: 9px; border: 2px solid var(--ink); background: var(--paper); }
.cherugem-dependency-list strong { font-size: .72rem; }
.cherugem-dependency-list span { font-size: .67rem; line-height: 1.45; }
.cherugem-dependency-list small { color: var(--danger); font-size: .61rem; line-height: 1.4; }
.cherugem-primary-action { background: var(--ink); color: var(--paper); }
.file-node-form { display: grid; min-height: 100%; gap: 14px; align-content: start; }
.file-node-form .editor-field-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.file-node-type-fields,.shortcut-target-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; padding: 10px; border: 2px solid var(--ink); background: var(--paper); }
.file-node-type-fields > .editor-field:only-child { grid-column: 1 / -1; }
.node-hidden-control { align-self: end; min-height: 38px; padding: 6px 8px; border: 2px solid var(--ink); background: var(--paper); }
.folder-mode-preview { margin: 0; padding: 10px; border: 1px solid var(--ink); background: var(--paper); color: var(--muted); font-size: .66rem; line-height: 1.45; }
.program-catalog-summary { border: 2px solid var(--ink); background: var(--paper); }
.program-catalog-summary > header { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; padding: 7px 9px; border-bottom: 1px solid var(--ink); background: #b7b7ae; font-size: .67rem; }
.program-catalog-summary > p { margin: 0; padding: 10px; color: var(--muted); font-size: .66rem; }
.program-catalog-summary dl { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0; margin: 0; }
.program-catalog-summary dl > div { display: grid; grid-template-columns: minmax(90px,.36fr) minmax(0,1fr); gap: 8px; padding: 7px 9px; border-right: 1px solid #77776f; border-bottom: 1px solid #77776f; font-size: .64rem; }
.program-catalog-summary dl > div:nth-child(even) { border-right: 0; }
.program-catalog-summary dt { font-weight: 900; }
.program-catalog-summary dd { overflow-wrap: anywhere; }
.subdialog-actions { position: sticky; z-index: 2; bottom: -16px; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; margin: 0 -16px -16px; padding: 10px 16px; border-top: 2px solid var(--ink); background: var(--face); }
.subdialog-actions button { min-height: 36px; padding: 5px 10px; font-weight: 900; }

.station-programs-editor,.startup-editor { display: grid; gap: 12px; min-height: 100%; padding: 14px; }
.station-programs-heading,.startup-heading { display: flex; align-items: start; justify-content: space-between; gap: 12px; padding: 12px; border: 2px solid var(--ink); background: var(--face); }
.station-programs-heading h2,.startup-heading h2 { margin: 0 0 6px; font-size: .82rem; }
.station-programs-heading p,.startup-heading p { margin: 0; max-width: 840px; font-size: .69rem; line-height: 1.45; }
.station-program-tier { display: grid; gap: 7px; }
.station-program-tier-heading { margin: 0; padding: 7px 9px; border: 2px solid var(--ink); background: #b7b7ae; font-size: .7rem; letter-spacing: .04em; }
.station-program-groups { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; align-items: start; }
.station-program-tier-domain .station-program-groups { grid-template-columns: 1fr; }
.station-program-group { display: grid; gap: 6px; padding: 9px; border: 2px solid var(--ink); background: var(--face); }
.station-program-group h3,.station-program-group h4 { margin: 0 0 3px; font-size: .71rem; }
.station-program-row { display: grid; gap: 8px; padding: 8px; border: 1px solid #77776f; background: var(--paper); }
.station-program-install { display: grid; grid-template-columns: auto minmax(0,1fr); gap: 8px; align-items: center; min-width: 0; }
.station-program-install > input { width: 18px; height: 18px; box-shadow: none; accent-color: var(--ink); }
.station-program-row.is-incompatible { color: #696963; background: #d1d1c8; }
.station-program-row.is-filesystem-managed { border-style: dashed; }
.station-program-copy { display: grid; gap: 3px; min-width: 0; }
.station-program-copy small { overflow-wrap: anywhere; color: var(--muted); font-size: .59rem; }
.station-program-presentation { display: flex; flex-wrap: wrap; gap: 4px 14px; padding-top: 7px; border-top: 1px solid #aaa; }
.station-program-presentation-control { min-height: 28px; font-size: .61rem; font-weight: 900; }
.station-program-presentation-note { flex-basis: 100%; color: var(--muted); font-size: .56rem; line-height: 1.35; }
.station-program-presentation-gate { margin: 0; padding: 8px 10px; border: 2px solid var(--ink); background: var(--paper); font-size: .64rem; line-height: 1.45; }
.station-program-presentation-gate.is-blocked { border-color: var(--danger); color: var(--danger); }
.station-connected-services { display: grid; gap: 8px; }
.station-connected-services-intro { margin: 0; color: var(--muted); font-size: .66rem; line-height: 1.45; }
.station-connected-services-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }
.station-connected-service { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 4px 10px; padding: 9px; border: 2px solid var(--ink); background: var(--paper); }
.station-connected-service.is-incomplete { border-color: var(--danger); }
.station-connected-service > strong { font-size: .7rem; }
.station-connected-service-status { color: #17611d; font-size: .59rem; font-weight: 900; text-align: right; }
.station-connected-service.is-incomplete .station-connected-service-status { color: var(--danger); }
.station-connected-service p,.station-connected-service small { grid-column: 1 / -1; margin: 0; line-height: 1.4; }
.station-connected-service p { font-size: .64rem; }
.station-connected-service small { color: var(--muted); font-size: .57rem; }
.station-connected-services-empty { margin: 0; }
.station-system-profiles { display: grid; gap: 8px; }
.system-profile-choices { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.system-profile-row { display: grid; grid-template-columns: auto minmax(0,1fr); gap: 8px; align-items: center; padding: 9px; border: 2px solid var(--ink); background: var(--face); }
.system-profile-row > input { width: 18px; height: 18px; box-shadow: none; accent-color: var(--ink); }
.system-profile-row > span { display: grid; gap: 3px; }
.system-profile-row small { color: var(--muted); font-size: .6rem; }
.system-profile-row.is-incompatible { color: #696963; background: #d1d1c8; }
.system-profile-preview { border: 2px solid var(--ink); background: var(--paper); }
.system-profile-preview h4 { margin: 0; padding: 7px 9px; border-bottom: 1px solid var(--ink); background: #b7b7ae; font-size: .68rem; }
.system-profile-preview > div { display: grid; grid-template-columns: 90px minmax(0,1fr); gap: 8px; padding: 6px 9px; border-bottom: 1px solid #aaa; font-size: .62rem; }
.system-profile-preview > div:last-child { border-bottom: 0; }
.startup-list { display: grid; align-content: start; gap: 7px; }
.startup-row { display: grid; grid-template-columns: 38px minmax(0,1fr) auto; gap: 10px; align-items: center; padding: 8px; border: 2px solid var(--ink); background: var(--face); }
.startup-row.is-missing { border-color: var(--danger); color: var(--danger); }
.startup-position { display: grid; width: 30px; height: 30px; place-items: center; border: 2px solid currentColor; }
.startup-copy { display: grid; gap: 3px; min-width: 0; }
.startup-copy small { color: var(--muted); font-size: .6rem; }
.startup-actions { display: flex; flex-wrap: wrap; gap: 5px; justify-content: flex-end; }
.startup-file-picker { display: grid; gap: 10px; }
.startup-file-picker > p { margin: 0; font-size: .69rem; }
.startup-picker-drive { border: 2px solid var(--ink); background: var(--paper); }
.startup-picker-drive h3 { margin: 0; padding: 7px 9px; border-bottom: 1px solid var(--ink); background: #b7b7ae; font-size: .72rem; }
.startup-picker-row { display: grid; grid-template-columns: minmax(0,1fr) auto auto; gap: 9px; align-items: center; padding: 7px 9px; border-bottom: 1px solid #77776f; font-size: .66rem; }
.startup-picker-row:last-child { border-bottom: 0; }
.startup-picker-row small { color: var(--muted); }

.session-editor { display: grid; gap: 14px; padding: 16px; }
.session-editor-intro { padding: 14px; border: 2px solid var(--ink); background: var(--face); }
.session-editor-intro p { margin: 0; max-width: 900px; font-size: .72rem; line-height: 1.55; }
.session-editor-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; padding: 14px; border: 2px solid var(--ink); background: var(--face); }
.session-preview { padding: 11px; border: 2px solid var(--ink); background: var(--ink); color: var(--paper); font-size: .76rem; font-weight: 900; }
.session-mail-preview { min-height: 190px; border: 2px solid var(--ink); background: #efefe7; }
.session-mail-heading { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; padding: 8px 10px; border-bottom: 2px solid var(--ink); background: #b7b7ae; font-size: .69rem; }
.session-mail-heading small { color: var(--muted); }
.session-mail-list { display: grid; }
.session-mail-row { display: grid; grid-template-columns: minmax(150px,.32fr) minmax(220px,1fr) minmax(180px,.45fr); gap: 10px; padding: 9px 10px; border-bottom: 1px solid #77776f; font-size: .68rem; }
.session-mail-row time { font-variant-numeric: tabular-nums; }
.session-mail-row span { color: var(--muted); }
.session-mail-loading,.session-mail-empty { min-height: 185px; }

.inventory-app {
  display: grid; grid-template-rows: auto auto auto auto minmax(0,1fr) auto auto;
  min-height: calc(100vh - 115px); background: #c7c7be;
}
.inventory-tabs { display: grid; grid-template-columns: repeat(4,minmax(110px,1fr)); border-bottom: 2px solid var(--ink); background: var(--face); }
.inventory-tab { min-height: 45px; border-width: 0 1px 0 0; box-shadow: none; font-size: .72rem; font-weight: 900; }
.inventory-tab:last-child { border-right: 0; }
.inventory-tab.active { background: var(--ink); color: var(--paper); }
.inventory-search-bar { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 12px; align-items: end; padding: 9px 10px 11px; border-bottom: 2px solid var(--ink); background: var(--face); }
.inventory-search-bar label { gap: 6px; }
.inventory-search-bar input { min-height: 35px; padding: 6px 8px; }
.inventory-search-bar .inventory-show-retired { align-self: end; min-height: 35px; padding: 0 8px; border: 1px solid #77776f; background: var(--paper); }
.inventory-search-bar .inventory-show-retired input { width: 18px; height: 18px; min-height: 0; padding: 0; }
.inventory-status[data-dirty="true"] { background: #fff0a8; color: #6b4100; }
.inventory-master-detail { display: grid; grid-template-columns: minmax(300px,.72fr) minmax(440px,1.28fr); min-height: 0; overflow: hidden; }
.inventory-master { min-height: 0; padding: 9px; overflow: auto; border-right: 2px solid var(--ink); background: #c0cdd2; }
.inventory-master-group { margin-bottom: 7px; border: 2px solid var(--ink); background: var(--face); }
.inventory-master-collapsible > summary { cursor: pointer; list-style-position: inside; }
.inventory-master-collapsible:not([open]) > summary { border-bottom: 0; }
.inventory-master-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 38px; padding: 6px 8px; border-bottom: 1px solid var(--ink); }
.inventory-master-heading strong { font-size: .78rem; }
.inventory-master-heading span { color: var(--muted); font-size: .61rem; }
.inventory-master-list { display: grid; gap: 5px; padding: 6px; }
.inventory-master-item {
  display: grid; grid-template-columns: auto minmax(0,1fr); gap: 3px 8px; width: 100%; min-height: 48px; padding: 6px 7px;
  border: 2px solid var(--ink); background: var(--face); box-shadow: none; text-align: left;
}
.inventory-master-item .inventory-item-kind { grid-row: 1 / span 2; align-self: center; }
.inventory-master-item strong { min-width: 0; overflow: hidden; font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.inventory-master-item small { color: var(--muted); font-size: .59rem; }
.inventory-master-item.active { background: var(--ink); color: var(--paper); }
.inventory-master-item.active small { color: #cfcfc7; }
.inventory-master-item.retired:not(.active) { color: #686860; background: #d1d1c8; text-decoration: line-through; }
.inventory-item-kind { align-self: start; padding: 3px 5px; border: 1px solid currentColor; font-size: .57rem; font-weight: 900; white-space: nowrap; }
.inventory-list-empty { min-height: 170px; }
.inventory-detail { min-height: 0; padding: 10px; overflow: auto; background: #efefe7; }
.inventory-detail-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px; border: 2px solid var(--ink); background: var(--face); }
.inventory-detail-heading > div { display: grid; grid-template-columns: auto minmax(0,1fr); gap: 4px 9px; align-items: center; min-width: 0; }
.inventory-detail-heading .inventory-item-kind { grid-row: 1 / span 2; }
.inventory-detail-heading strong { min-width: 0; overflow: hidden; font-size: .9rem; text-overflow: ellipsis; white-space: nowrap; }
.inventory-detail-heading small { color: var(--muted); font-size: .62rem; }
.inventory-delete { flex: none; min-height: 34px; padding: 5px 9px; }
.inventory-detail-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-top: 10px; padding: 10px; border: 2px solid var(--ink); background: var(--face); }
.inventory-detail-fields label { align-self: start; }
.cpu-detail-fields .cpu-field-clock { grid-column: 1 / -1; }
.inventory-system-defaults { grid-column: 1 / -1; padding: 10px; border: 2px solid var(--ink); background: var(--paper); }
.inventory-defaults-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.inventory-defaults-heading h3 { margin: 0; font-size: .75rem; }
.inventory-defaults-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.inventory-default-drive,.inventory-default-multiselect { display: grid; align-content: start; gap: 6px; min-width: 0; margin: 0; padding: 9px; border: 1px solid #77776f; }
.inventory-default-drive legend,.inventory-default-multiselect legend { padding: 0 5px; font-size: .65rem; font-weight: 900; }
.inventory-default-checkbox,.inventory-daughter-bootable,.inventory-program-menu { align-self: end !important; padding: 7px; border: 1px solid #77776f; background: var(--paper); }
.inventory-references { min-height: 120px; margin-top: 10px; padding: 10px; border: 2px solid var(--ink); background: var(--paper); }
.inventory-references h3 { margin: 0 0 10px; font-size: .74rem; }
.inventory-references p,.inventory-references ul { margin: 0; color: var(--muted); font-size: .67rem; line-height: 1.5; }
.inventory-footer { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 5px 12px; align-items: center; padding: 8px 10px; border-top: 2px solid var(--ink); background: var(--face); }
.inventory-save-error { grid-column: 1; }
.inventory-save { grid-column: 2; grid-row: 1 / span 2; min-height: 38px; padding: 6px 12px; font-weight: 900; }
.catalog-snapshot-field { background: #d5d5cc; color: #4e4e48; box-shadow: inset 1px 1px #aaa; }
.hardware-source-snapshot { padding: 0; overflow: hidden; }
.hardware-source-snapshot > summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 38px; padding: 8px 10px; cursor: pointer; list-style-position: inside; }
.hardware-source-snapshot > summary strong { margin-right: auto; font-size: .76rem; }
.hardware-source-snapshot > summary span { color: var(--muted); font-size: .58rem; }
.hardware-source-snapshot-body { max-height: 360px; padding: 8px; overflow: auto; border-top: 1px solid var(--ink); background: var(--paper); }
.hardware-source-snapshot-body > p { margin: 0 0 7px; color: var(--muted); font-size: .61rem; }
.hardware-source-snapshot table { width: 100%; border-collapse: collapse; font-size: .61rem; }
.hardware-source-snapshot th,.hardware-source-snapshot td { padding: 6px; border: 1px solid #77776f; text-align: left; vertical-align: top; }
.hardware-source-snapshot th { width: 42%; background: #d5d5cc; overflow-wrap: anywhere; }
.hardware-source-snapshot td { background: #f8f8f0; overflow-wrap: anywhere; }

.mail-app { display: grid; grid-template-rows: auto auto auto minmax(0,1fr) auto auto; min-height: calc(100vh - 115px); background: #c7c7be; }
.mail-filter-form { display: grid; grid-template-columns: repeat(2,minmax(260px,1.15fr)) minmax(180px,.7fr) auto; gap: 8px; align-items: end; padding: 10px; border-bottom: 2px solid var(--ink); background: var(--face); }
.mail-filter-form button { min-height: 37px; padding: 5px 12px; font-weight: 900; }
.mail-filter-identity { display: grid; grid-template-columns: minmax(130px,1fr) minmax(130px,.8fr); gap: 7px; min-width: 0; margin: 0; padding: 7px; border: 1px solid #77776f; }
.mail-filter-identity legend { padding: 0 5px; font-size: .66rem; font-weight: 900; }
.mail-filter-identity .editor-field { min-width: 0; }
.mail-filter-identity input,.mail-filter-identity select { width: 100%; min-width: 0; }
.mail-table-wrap { min-height: 0; margin: 10px; overflow: auto; border: 2px solid var(--ink); background: #efefe7; }
.mail-table { width: 100%; min-width: 900px; border-collapse: collapse; font-size: .68rem; }
.mail-table th,.mail-table td { padding: 8px; border-right: 1px solid #77776f; border-bottom: 1px solid #77776f; text-align: left; vertical-align: top; }
.mail-table th { position: sticky; z-index: 1; top: 0; background: #b7b7ae; }
.mail-date-sort { display: block; width: 100%; min-height: 0; padding: 0; border: 0; background: transparent; color: inherit; box-shadow: none; font: inherit; font-weight: 900; text-align: left; }
.mail-date-sort:hover,.mail-date-sort:focus-visible { background: var(--ink); color: var(--paper); outline: 2px solid #f5cf59; outline-offset: 2px; box-shadow: none; }
.mail-table th:last-child,.mail-table td:last-child { border-right: 0; }
.mail-row { cursor: pointer; }
.mail-row:hover,.mail-row:focus-within { background: var(--ink); color: var(--paper); outline: 2px solid #f5cf59; outline-offset: -3px; }
.mail-row:hover .mail-unread,.mail-row:focus-within .mail-unread { background: #245467; color: #fff; }
.mail-identity,.mail-subject { font-weight: 900; }
.mail-subject-edit { display: inline; min-height: 0; padding: 0; border: 0; background: transparent; color: inherit; box-shadow: none; font: inherit; font-weight: 900; text-align: left; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.mail-subject-edit:focus-visible { outline: 2px solid #f5cf59; outline-offset: 2px; }
.mail-recipients { white-space: pre-line; line-height: 1.5; }
.mail-unread { background: #fff0a8; color: #6b4100; font-weight: 900; }
.mail-editor-dialog { position: relative; width: min(960px,100%); }
.mail-create-dialog .mail-editor-form { align-content: start; }
.mail-editor-body { min-height: 0; overflow: auto; }
.mail-editor-form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; padding: 16px; }
.mail-editor-form > h2,.mail-editor-form > .recipient-editor,.mail-editor-form > fieldset,.mail-editor-form > .error-message,.mail-editor-form > .subdialog-actions { grid-column: 1 / -1; }
.mail-editor-form > .mail-identity-field { grid-column: auto; }
.mail-editor-form > label:has(textarea) { grid-column: 1 / -1; }
.recipient-editor { display: grid; gap: 7px; }
.recipient-editor-row { display: grid; grid-template-columns: 90px minmax(320px,1fr) auto auto; gap: 7px; align-items: end; }
.mail-identity-field { min-width: 0; margin: 0; padding: 8px; border: 2px solid var(--ink); background: var(--paper); }
.mail-identity-field legend { padding: 0 6px; font-size: .7rem; font-weight: 900; }
.mail-identity-field > small { display: block; margin-top: 6px; color: var(--muted); font-size: .64rem; }
.mail-identity-picker { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; min-width: 0; }
.mail-identity-picker .editor-field { min-width: 0; }
.mail-identity-picker select { width: 100%; min-width: 0; }
.recipient-unread { white-space: nowrap; }
.recipient-editor-actions { display: flex; flex-wrap: wrap; gap: 7px; justify-self: start; }
.recipient-add { min-height: 34px; padding: 5px 9px; }
.recipient-editor-more { margin: 0; padding: 7px 9px; border: 1px solid #77776f; background: #d5d5cc; font-size: .67rem; font-weight: 900; }
.recipient-selector-overlay { z-index: 1100; }
.recipient-selector-dialog { display: grid; grid-template-rows: auto minmax(0,1fr); width: min(850px,100%); height: min(720px,calc(100vh - 30px)); overflow: hidden; }
.recipient-selector-body { display: grid; grid-template-rows: auto auto auto auto minmax(100px,1fr) auto; min-height: 0; gap: 10px; padding: 14px; overflow: hidden; background: var(--face); }
.recipient-selector-intro,.recipient-selector-count { margin: 0; font-size: .68rem; }
.recipient-selector-count { font-weight: 900; }
.recipient-selector-chooser { display: grid; grid-template-columns: minmax(150px,.8fr) minmax(210px,1fr) 90px auto auto; gap: 8px; align-items: end; }
.recipient-selector-chooser button { min-height: 37px; }
.recipient-selector-unread { min-height: 37px; white-space: nowrap; }
.recipient-selector-list { display: grid; min-height: 0; align-content: start; gap: 6px; padding: 7px; overflow: auto; border: 2px solid var(--ink); background: var(--paper); }
.recipient-selector-row { display: grid; grid-template-columns: 80px minmax(180px,1fr) auto auto; gap: 8px; align-items: center; padding: 6px; border: 1px solid #77776f; background: #e1e1d8; }
.recipient-selector-row > strong { overflow-wrap: anywhere; font-size: .68rem; }
.recipient-selector-row-unread { white-space: nowrap; }
.recipient-selector-empty { min-height: 82px; }
.mail-editor-record-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-right: auto; }
.reply-recipient-picker { display: grid; gap: 8px; margin: 0; padding: 12px; border: 2px solid var(--ink); background: var(--paper); }
.reply-recipient-picker legend { padding: 0 7px; font-size: .7rem; font-weight: 900; }
.mail-delete-dialog .subdialog-actions { margin-top: 8px; }
.mail-timestamp-editor { display: grid; grid-template-columns: minmax(230px,1fr) auto; gap: 8px 12px; min-width: 0; margin: 0; padding: 9px; border: 2px solid var(--ink); background: var(--paper); }
.mail-timestamp-editor legend { padding: 0 6px; font-size: .7rem; font-weight: 900; }
.mail-timestamp-editor > small { grid-column: 1 / -1; color: var(--muted); font-size: .61rem; }
.mail-date-field { display: grid; grid-template-columns: minmax(150px,1fr) auto; gap: 7px; align-items: end; }
.mail-date-field > button { min-height: 37px; padding: 5px 9px; }
.mail-time-fields { display: grid; grid-template-columns: 72px auto 72px; gap: 4px; align-items: end; }
.mail-time-separator { align-self: center; padding-top: 14px; font-size: 1.1rem; font-weight: 900; }
.mail-time-fields input { text-align: center; font-variant-numeric: tabular-nums; }
.gem-date-picker { width: min(540px,100%); }
.gem-date-picker-body { overflow: auto; }
.gem-calendar { display: grid; gap: 10px; }
.gem-calendar-heading { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 8px; align-items: center; }
.gem-calendar-heading strong { padding: 7px; border: 2px solid var(--ink); background: var(--paper); text-align: center; }
.gem-calendar-grid { display: grid; grid-template-columns: repeat(7,minmax(34px,1fr)); gap: 4px; }
.gem-calendar-weekday { padding: 5px 2px; border-bottom: 2px solid var(--ink); font-size: .63rem; font-weight: 900; text-align: center; }
.gem-calendar-blank { min-height: 34px; }
.gem-calendar-day { min-width: 34px; min-height: 34px; padding: 3px; box-shadow: inset 1px 1px var(--paper),inset -1px -1px var(--mid); font-variant-numeric: tabular-nums; }
.gem-calendar-day.selected { background: var(--ink); color: var(--paper); box-shadow: none; }
.gem-calendar-shortcuts { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; padding-top: 9px; border-top: 2px solid var(--ink); }
.gem-calendar-shortcuts button { min-height: 34px; padding: 5px 9px; }

.logs-app { display: grid; grid-template-rows: auto auto auto minmax(0,1fr) auto auto auto; min-height: calc(100vh - 115px); background: #c7c7be; }
.logs-app .stations-heading button { min-height: 29px; padding: 3px 8px; font-size: .65rem; font-weight: 800; }
.logs-cards { display: grid; grid-template-columns: repeat(3,minmax(210px,1fr)); gap: 6px; padding: 7px; border-bottom: 2px solid var(--ink); background: #b8c6cb; }
.logs-card { min-width: 0; border: 1px solid var(--ink); background: var(--face); }
.logs-card h2 { margin: 0; padding: 5px 7px; border-bottom: 1px solid var(--ink); background: #b7b7ae; color: var(--ink); font-size: .65rem; letter-spacing: .07em; }
.logs-card-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 6px; padding: 4px 6px; border-bottom: 1px solid #77776f; font-size: .59rem; }
.logs-card-row:last-child { border-bottom: 0; }
.logs-card-row strong { font-variant-numeric: tabular-nums; }
.logs-filter-form { display: grid; grid-template-columns: minmax(140px,1fr) minmax(120px,.7fr) minmax(100px,.55fr) minmax(210px,1.15fr) minmax(92px,.42fr) auto auto auto; gap: 6px; align-items: end; padding: 7px 8px; border-bottom: 2px solid var(--ink); background: var(--face); }
.logs-filter-form label { gap: 3px; font-size: .63rem; }
.logs-filter-form input,.logs-filter-form select { min-height: 29px; padding: 3px 6px; font-size: .64rem; }
.logs-filter-form > button { min-height: 29px; padding: 3px 8px; font-size: .65rem; font-weight: 800; }
.logs-user-filter { display: grid; grid-template-columns: minmax(0,1fr) 29px; }
.logs-user-filter input { min-width: 0; }
.logs-user-clear { min-width: 29px; min-height: 29px; padding: 0; border-left: 0; font-size: .8rem; font-weight: 800; }
.logs-ignored-toggle { position: relative; display: grid; grid-template-columns: 18px auto; gap: 6px; align-items: center; align-self: end; min-height: 29px; padding: 3px 7px; border: 1px solid #77776f; background: var(--paper); cursor: pointer; white-space: nowrap; }
.logs-ignored-toggle .logs-ignored-checkbox { position: absolute; width: 1px; min-height: 1px; height: 1px; margin: 0; padding: 0; overflow: hidden; opacity: 0; pointer-events: none; }
.logs-ignored-checkmark { display: grid; width: 18px; height: 18px; place-items: center; border: 2px solid var(--ink); background: var(--paper); color: var(--paper); box-shadow: inset 1px 1px #fff,inset -1px -1px #777; }
.logs-ignored-checkbox:checked + .logs-ignored-checkmark { background: var(--ink); box-shadow: none; }
.logs-ignored-checkbox:checked + .logs-ignored-checkmark::after { content: '\2713'; font-size: .8rem; font-weight: 900; line-height: 1; }
.logs-ignored-checkbox:focus-visible + .logs-ignored-checkmark { outline: 2px solid #f5cf59; outline-offset: 2px; }
.logs-ignored-label { font-size: .61rem; font-weight: 800; }
.logs-table-wrap { min-height: 0; margin: 7px; overflow: auto; border: 2px solid var(--ink); background: #efefe7; }
.logs-table { width: 100%; min-width: 1260px; border-collapse: collapse; font-size: .65rem; }
.logs-table th,.logs-table td,.logs-events-table th,.logs-events-table td { padding: 5px 6px; border-right: 1px solid #77776f; border-bottom: 1px solid #77776f; text-align: left; vertical-align: top; }
.logs-table th,.logs-events-table th { position: sticky; z-index: 1; top: 0; background: #b7b7ae; letter-spacing: .04em; }
.logs-table th:last-child,.logs-table td:last-child,.logs-events-table th:last-child,.logs-events-table td:last-child { border-right: 0; }
.logs-session-row.logs-level-full { box-shadow: inset 4px 0 #245467; }
.logs-session-row:hover { background: #e6e6dd; }
.logs-session-row.logs-ignored-row { background: #d5d5cd; color: #66665f; box-shadow: inset 4px 0 #77776f; }
.logs-session-row.logs-ignored-row .ip-address { text-decoration: line-through; text-decoration-thickness: 1px; }
.logs-user-id { max-width: 275px; }
.logs-user-id code { display: block; margin-bottom: 3px; overflow-wrap: anywhere; font: inherit; }
.logs-user-agent { max-width: 340px; line-height: 1.35; overflow-wrap: anywhere; }
.logs-row-actions { display: flex; flex-wrap: wrap; gap: 3px; min-width: 128px; }
.logs-table .row-action { min-height: 25px; padding: 2px 7px; font-size: .59rem; font-weight: 800; }
.logs-app > .pager button,.logs-detail .pager button { min-height: 27px; padding: 3px 8px; font-size: .62rem; }
.logs-detail { display: grid; grid-template-rows: auto auto minmax(180px,1fr) auto; min-height: 320px; margin: 0 10px 10px; border: 2px solid var(--ink); background: var(--face); }
.logs-detail-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 6px 8px; border-bottom: 2px solid var(--ink); background: #b7b7ae; }
.logs-detail-heading > div { display: grid; gap: 3px; min-width: 0; }
.logs-detail-heading strong,.logs-detail-heading small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.logs-detail-heading small { color: var(--muted); font-size: .61rem; }
.logs-detail-heading button { flex: none; min-height: 27px; padding: 3px 8px; font-size: .62rem; }
.logs-event-picker { position: relative; width: min(340px,calc(100% - 20px)); margin: 8px 10px; }
.logs-event-picker > summary { min-height: 30px; padding: 6px 30px 5px 8px; border: 2px solid var(--ink); background: var(--paper); box-shadow: inset 2px 2px #aaa; cursor: pointer; font-size: .64rem; font-weight: 800; list-style: none; }
.logs-event-picker > summary::-webkit-details-marker { display: none; }
.logs-event-picker > summary::after { position: absolute; top: 10px; right: 10px; content: '▼'; font-size: .62rem; }
.logs-event-picker[open] > summary { background: #4b83df; color: #fff; box-shadow: none; }
.logs-event-picker-menu { position: absolute; z-index: 35; top: calc(100% + 2px); left: 0; display: grid; width: min(380px,80vw); padding: 5px; border: 2px solid var(--ink); background: #4b4b48; color: #fff; box-shadow: 5px 5px rgba(0,0,0,.45); }
.logs-event-picker-menu hr { width: 100%; margin: 4px 0; border: 0; border-top: 1px solid #aaa; }
.logs-event-picker-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; }
.logs-event-picker-actions button { min-height: 27px; padding: 3px 7px; font-size: .61rem; font-weight: 800; }
.logs-event-picker-option { display: grid; grid-template-columns: 20px minmax(0,1fr); gap: 7px; align-items: center; min-height: 34px; padding: 6px 8px; cursor: pointer; }
.logs-event-picker-option:hover,.logs-event-picker-option:focus-within { background: #696966; }
.logs-event-picker-option input { width: 18px; height: 18px; margin: 0; padding: 0; box-shadow: none; accent-color: var(--ink); }
.logs-events { min-height: 180px; margin: 0 10px 10px; overflow: auto; border: 2px solid var(--ink); background: var(--paper); }
.logs-events-table { width: 100%; min-width: 900px; border-collapse: collapse; font-size: .65rem; }
.logs-event-row { --event-color: #d9d9d0; background: var(--event-color); box-shadow: inset 5px 0 #555; }
.logs-event-session { --event-color: #e5e5dd; }
.logs-event-app { --event-color: #d8e8f2; box-shadow: inset 5px 0 #245467; }
.logs-event-file { --event-color: #e8e2c9; box-shadow: inset 5px 0 #7b641e; }
.logs-event-mail { --event-color: #e1d7eb; box-shadow: inset 5px 0 #61427d; }
.logs-event-special { --event-color: #f3d5cf; box-shadow: inset 5px 0 #8f2020; }
.logs-event-details,.logs-event-url { max-width: 410px; overflow-wrap: anywhere; line-height: 1.35; }
.logs-clear-dialog { width: min(650px,100%); }
.logs-clear-body { display: grid; gap: 12px; padding: 20px; }
.logs-clear-body p { margin: 0; font-size: .7rem; line-height: 1.5; }
.logs-clear-scope { padding: 9px; border: 1px solid var(--ink); background: var(--paper); font-weight: 900; overflow-wrap: anywhere; }
.logs-clear-body .editor-actions { display: flex; justify-content: flex-end; gap: 8px; }
.logs-clear-body .editor-actions button { min-height: 29px; padding: 3px 8px; font-size: .65rem; }
.logs-clear-body .danger { background: #8f2020; color: #fff; }

.directory-app { display: grid; grid-template-rows: auto auto auto auto auto minmax(0,1fr) auto; min-height: calc(100vh - 115px); background: #c7c7be; }
.directory-admin-notice { margin: 0; padding: 8px 11px; border-bottom: 2px solid var(--ink); background: #fff0a8; color: #5e4300; font-size: .67rem; font-weight: 800; line-height: 1.4; }
.directory-tabs { grid-template-columns: repeat(2,minmax(110px,1fr)); }
.directory-tabs button { min-height: 43px; border-width: 0 1px 0 0; box-shadow: none; font-size: .72rem; font-weight: 900; }
.directory-tabs button.active { background: var(--ink); color: var(--paper); }
.directory-search { display: grid; grid-template-columns: minmax(0,1fr) auto auto; gap: 7px; padding: 8px 10px; border-bottom: 2px solid var(--ink); background: var(--face); }
.directory-search input,.directory-search button { min-height: 35px; }
.directory-master-detail { display: grid; grid-template-columns: minmax(280px,.65fr) minmax(430px,1.35fr); min-height: 0; overflow: hidden; }
.directory-master { display: grid; align-content: start; gap: 6px; min-height: 0; padding: 9px; overflow: auto; border-right: 2px solid var(--ink); background: #c0cdd2; }
.directory-master-group { min-width: 0; border: 2px solid var(--ink); background: var(--face); }
.directory-master-group-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 38px; padding: 7px 8px; cursor: pointer; border-bottom: 1px solid var(--ink); }
.directory-master-group:not([open]) > .directory-master-group-heading { border-bottom: 0; }
.directory-master-group-heading strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.directory-master-group-heading span { flex: none; color: var(--muted); font-size: .58rem; }
.directory-master-group-list { display: grid; gap: 6px; padding: 6px; }
.directory-master-item { display: grid; gap: 4px; width: 100%; min-height: 49px; padding: 7px 8px; border: 2px solid var(--ink); background: var(--face); box-shadow: none; text-align: left; }
.directory-master-item strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.directory-master-item small { color: var(--muted); font-size: .59rem; }
.directory-master-item.active { background: var(--ink); color: var(--paper); }
.directory-master-item.active small { color: #cfcfc7; }
.directory-master-item.retired:not(.active) { background: #d1d1c8; color: #686860; text-decoration: line-through; }
.directory-detail { min-height: 0; padding: 10px; overflow: auto; background: #efefe7; }
.directory-detail-form,.directory-assignments { padding: 11px; border: 2px solid var(--ink); background: var(--face); }
.directory-detail-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.directory-detail-actions { margin-top: 12px; }
.directory-error { margin-top: 9px; }
.directory-assignments { display: grid; gap: 7px; margin-top: 10px; }
.directory-assignments h3 { margin: 0 0 4px; font-size: .72rem; }
.directory-assignment-list { display: grid; gap: 5px; }
.directory-assignment-row { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 10px; min-height: 40px; padding: 7px 8px; border: 1px solid #77776f; background: var(--paper); font-size: .66rem; }
.directory-assignment-row > span { display: grid; gap: 3px; min-width: 0; overflow-wrap: anywhere; }
.directory-assignment-row small { color: var(--muted); font-size: .58rem; }
.directory-assignment-row.retired { color: #686860; background: #d1d1c8; }
.directory-assignment-form { display: grid; grid-template-columns: minmax(160px,.8fr) minmax(180px,1.2fr) auto; gap: 8px; align-items: end; padding-top: 10px; border-top: 2px solid var(--ink); }
.directory-assignment-domain { grid-column: 1; }
.directory-assignment-who { grid-column: 2 / -1; }
.directory-assignment-id { grid-column: 1 / 3; }
.directory-assignment-submit { grid-column: 3; }
.directory-assignment-form button { min-height: 37px; }

@media (max-width: 1100px) {
  .modal-overlay { padding: 10px; }
  .station-editor-dialog { width: 100%; height: calc(100dvh - 20px); max-height: calc(100dvh - 20px); }
  .editor-tab { min-width: 102px; }
  .filesystem-heading { grid-template-columns: minmax(0,1fr) minmax(230px,.52fr); }
  .station-program-groups { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .drive-hardware-list { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .drive-hardware-fields { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .logs-filter-form { grid-template-columns: repeat(3,minmax(160px,1fr)); }
}

@media (max-height: 720px) {
  .modal-overlay { padding: 6px; }
  .station-editor-dialog { height: calc(100dvh - 12px); max-height: calc(100dvh - 12px); }
  .station-editor-status { padding-block: 3px; }
  .editor-tabs { padding-block: 4px; }
  .editor-tab { min-height: 30px; }
  .station-editor-footer { position: sticky; z-index: 2; bottom: 0; padding-block: 5px; }
  .station-editor-actions button { min-height: 34px; }
  .editor-suboverlay { padding: 6px; }
  .editor-subdialog { height: calc(100dvh - 49px); max-height: calc(100dvh - 49px); }
  .editor-subdialog-body { padding: 10px; }
  .subdialog-actions { bottom: -10px; margin: 0 -10px -10px; padding: 7px 10px; }
}

@media (max-width: 720px) {
  .boot-brand.with-logo.compact .boot-brand-logo { width: min(24vw,92px); max-height: 82px; }
  .boot-brand.with-logo.compact .boot-brand-copy { padding-right: min(28vw,104px); }
  .boot-hint { flex-basis: 100%; }
  .bios-row { grid-template-columns: 1fr; }
  .bios-row-value { text-align: left; }
  .handoff-status { grid-template-columns: 1fr auto; }
  .handoff-status > span { grid-column: 1 / -1; }
  .operator-id { display: none; }
  .taskbar-launchers { overflow-x: auto; }
  .monitor-surface { padding: 7px; }
  .monitor-workspace { grid-template-columns: var(--monitor-pane-columns,repeat(var(--monitor-pane-count,1),minmax(320px,1fr))); min-height: calc(100vh - 55px); }
  .monitor-shell { min-height: calc(100vh - 55px); box-shadow: 4px 4px rgba(0,0,0,.4); }
  .stations-heading { align-items: stretch; }
  .stations-heading .stations-heading-actions { align-items: stretch; justify-content: flex-start; }
  .station-domain-filter { flex: 1 1 100%; }
  .station-domain-picker { flex: 1; width: 100%; }
  .station-domain-menu { right: auto; left: 0; width: min(360px,calc(100vw - 34px)); }
  .ignored-ip-add-form { grid-template-columns: 1fr; }
  .ignored-ip-form-error { grid-column: 1; }
  .config-form { grid-template-columns: 1fr; padding: 14px; }
  .config-local-boot { grid-template-columns: 1fr; padding: 14px; }
  .config-local-boot > small { grid-column: 1; }
  .config-explanation,.config-security,.config-form .error-message,.config-form button { grid-column: 1; }
  .stations-app { min-height: calc(100vh - 90px); }
  .access-dialog { max-height: calc(100dvh - 14px); }
  .modal-overlay { padding: 7px; }
  .editor-tabs { overflow-x: auto; }
  .editor-tab { min-width: 96px; }
  .hardware-editor { grid-template-columns: 1fr; padding: 7px; }
  .station-identity-editor { grid-template-columns: 1fr; padding: 7px; }
  .station-identity-note { grid-column: 1; }
  .editor-group-wide { grid-column: 1; }
  .editor-field-grid,.file-node-form .editor-field-grid { grid-template-columns: 1fr; }
  .hardware-spec-row,.station-program-groups,.station-connected-services-list,.inventory-defaults-grid,.hardware-system-fields,.drive-hardware-fields,.hardware-list-network .hardware-list-card-fields,.hardware-list-extension .hardware-list-card-fields { grid-template-columns: 1fr; }
  .hardware-system-fields > :first-child { grid-column: 1; }
  .drive-os-release { grid-template-columns: 1fr; }
  .startup-row { grid-template-columns: 34px minmax(0,1fr); }
  .startup-actions { grid-column: 1 / -1; }
  .startup-picker-row { grid-template-columns: minmax(0,1fr) auto; }
  .startup-picker-row button { grid-column: 1 / -1; }
  .program-catalog-summary dl { grid-template-columns: 1fr; }
  .program-catalog-summary dl > div { border-right: 0; }
  .hardware-list-card-header,.drive-media-fields { grid-template-columns: 1fr; }
  .drive-media-status { align-items: flex-start; flex-direction: column; gap: 4px; }
  .drive-toolbar .drive-breadcrumbs { flex-basis: 100%; }
  .filesystem-heading { grid-template-columns: 1fr; }
  .drive-chooser-listbox { right: auto; left: 0; width: min(430px,calc(100vw - 28px)); }
  .drive-chooser-option { grid-template-columns: 30px minmax(0,1fr); }
  .drive-chooser-option small { grid-column: 2; }
  .cherugem-multiselect-listbox { min-width: min(520px,calc(100vw - 28px)); }
  .cherugem-multiselect-option { grid-template-columns: 26px minmax(0,1fr); }
  .cherugem-option-state { grid-column: 2; }
  .cherugem-selected-row { grid-template-columns: 1fr; }
  .cherugem-selected-actions { justify-content: flex-end; }
  .file-node-type-fields,.shortcut-target-fields,.system-profile-choices { grid-template-columns: 1fr; }
  .drive-hardware-list { grid-template-columns: 1fr; }
  .station-editor-footer { grid-template-columns: 1fr; }
  .station-editor-actions,.station-editor-error { grid-column: 1; grid-row: auto; }
  .station-editor-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .session-editor-fields,.mail-editor-form { grid-template-columns: 1fr; }
  .session-mail-row { grid-template-columns: 1fr; }
  .mail-filter-form { grid-template-columns: 1fr; }
  .logs-cards,.logs-filter-form { grid-template-columns: 1fr; }
  .logs-detail-heading { align-items: stretch; flex-direction: column; }
  .logs-event-picker { width: calc(100% - 20px); }
  .mail-filter-identity,.mail-timestamp-editor,.mail-date-field { grid-template-columns: 1fr; }
  .mail-time-fields { grid-template-columns: minmax(70px,1fr) auto minmax(70px,1fr); }
  .inventory-tabs { grid-template-columns: repeat(4,minmax(92px,1fr)); overflow-x: auto; }
  .inventory-master-detail { grid-template-columns: 1fr; overflow: visible; }
  .directory-master-detail { grid-template-columns: 1fr; overflow: visible; }
  .directory-master { max-height: 38vh; border-right: 0; border-bottom: 2px solid var(--ink); }
  .directory-detail-fields,.directory-assignment-form { grid-template-columns: 1fr; }
  .directory-assignment-domain,.directory-assignment-who,.directory-assignment-id,.directory-assignment-submit { grid-column: 1; }
  .inventory-master { max-height: 42vh; border-right: 0; border-bottom: 2px solid var(--ink); }
  .inventory-detail { min-height: 420px; }
  .inventory-detail-fields { grid-template-columns: 1fr; }
  .inventory-search-bar { grid-template-columns: 1fr; }
  .cpu-detail-fields .cpu-field-clock { grid-column: 1; }
  .inventory-footer { grid-template-columns: 1fr; }
  .inventory-save,.inventory-save-error { grid-column: 1; grid-row: auto; }
  .inventory-save { justify-self: stretch; }
  .mail-editor-form > * { grid-column: 1 !important; }
  .host-editor-form { grid-template-columns: 1fr; }
  .host-editor-form > * { grid-column: 1 !important; }
  .recipient-editor-row { grid-template-columns: 76px minmax(150px,1fr); align-items: end; }
  .recipient-editor-row .mail-identity-picker { grid-column: 2; }
  .mail-identity-picker { grid-template-columns: 1fr; }
  .recipient-unread { grid-column: 1 / -1; }
  .recipient-editor-row button { grid-column: 1 / -1; }
  .recipient-editor-actions { justify-self: stretch; }
  .recipient-editor-actions button { flex: 1 1 auto; }
  .recipient-selector-chooser,.recipient-selector-row { grid-template-columns: 1fr; }
  .recipient-selector-dialog { height: calc(100vh - 14px); max-height: calc(100vh - 14px); }
  .recipient-selector-body { overflow: auto; }
}
