:root {
  --ink: #152536;
  --ink-soft: #526476;
  --navy: #102b46;
  --navy-2: #173b5b;
  --blue: #1d6f8a;
  --blue-soft: #e5f2f6;
  --teal: #2b8a82;
  --amber: #d18235;
  --green: #4f7f5a;
  --red: #b44f4f;
  --purple: #6f5b8f;
  --canvas: #f3f6f8;
  --surface: #ffffff;
  --surface-2: #f8fafb;
  --line: #dfe6ea;
  --line-strong: #cbd6dc;
  --shadow: 0 16px 45px rgba(25, 45, 61, .08);
  --shadow-soft: 0 7px 22px rgba(25, 45, 61, .06);
  --radius: 18px;
  --radius-sm: 11px;
  --sidebar: 264px;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--canvas);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-height: 100vh; background: var(--canvas); color: var(--ink); }
button, input, select, textarea { font: inherit; }
a { color: inherit; }
button { cursor: pointer; }
svg { display: block; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: var(--sidebar) minmax(0, 1fr); }
.sidebar {
  position: sticky; top: 0; height: 100vh; padding: 26px 20px 20px; color: #eaf1f5;
  background:
    radial-gradient(circle at 10% 0, rgba(81, 140, 164, .23), transparent 25rem),
    linear-gradient(180deg, #102b46 0%, #0c233a 100%);
  display: flex; flex-direction: column; overflow-y: auto; z-index: 50;
}
.sidebar::after { content: ""; position: absolute; inset: auto 0 0; height: 160px; pointer-events: none; opacity: .14; background: repeating-radial-gradient(ellipse at 20% 120%, transparent 0 13px, rgba(255,255,255,.3) 14px 15px); }
.brand { display: inline-flex; align-items: center; gap: 11px; color: inherit; text-decoration: none; position: relative; z-index: 1; }
.brand-symbol { width: 42px; height: 42px; flex: 0 0 42px; border-radius: 13px; display: grid; place-items: center; background: linear-gradient(145deg, #edf7f8, #bddce3); color: var(--navy); box-shadow: 0 8px 24px rgba(0,0,0,.15); }
.brand-symbol svg { width: 27px; height: 27px; fill: none; stroke: currentColor; stroke-width: 2.1; stroke-linecap: round; stroke-linejoin: round; }
.brand-symbol.large { width: 72px; height: 72px; border-radius: 22px; }
.brand-symbol.large svg { width: 44px; height: 44px; }
.brand > span:last-child { display: grid; line-height: 1; }
.brand strong { font-size: 1.08rem; letter-spacing: .02em; }
.brand small { margin-top: 6px; color: #94abba; font-size: .68rem; letter-spacing: .13em; text-transform: uppercase; }

.club-identity { margin: 30px 0 24px; padding: 14px; border: 1px solid rgba(255,255,255,.1); background: rgba(255,255,255,.055); border-radius: 15px; display: flex; align-items: center; gap: 11px; position: relative; z-index: 1; }
.club-avatar { --club-accent: var(--blue); width: 40px; height: 40px; flex: 0 0 40px; border-radius: 12px; display: grid; place-items: center; color: white; font-weight: 850; font-size: .76rem; letter-spacing: .05em; background: var(--club-accent); box-shadow: inset 0 0 0 1px rgba(255,255,255,.2); text-transform: uppercase; }
.club-avatar.large { width: 54px; height: 54px; border-radius: 16px; font-size: .9rem; }
.club-identity > div { min-width: 0; display: grid; gap: 3px; }
.club-identity small { color: #89a1b2; font-size: .62rem; text-transform: uppercase; letter-spacing: .12em; }
.club-identity strong { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: .84rem; }
.club-identity span:not(.club-avatar) { color: #b8c9d3; font-size: .68rem; }

.sidebar-nav { display: grid; gap: 5px; position: relative; z-index: 1; }
.nav-link { min-height: 44px; padding: 0 12px; border-radius: 11px; display: flex; align-items: center; gap: 12px; color: #afc2cf; text-decoration: none; font-weight: 700; font-size: .86rem; transition: .18s ease; }
.nav-link:hover { background: rgba(255,255,255,.06); color: white; }
.nav-link.active { color: #102b46; background: #eef7f8; box-shadow: 0 8px 20px rgba(0,0,0,.12); }
.nav-icon { width: 19px; height: 19px; flex: 0 0 19px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.nav-heading { margin: 20px 12px 6px; color: #6f899b; font-size: .58rem; font-weight: 850; text-transform: uppercase; letter-spacing: .17em; }
.sidebar-footer { margin-top: auto; padding: 21px 12px 5px; display: grid; gap: 9px; position: relative; z-index: 1; border-top: 1px solid rgba(255,255,255,.1); }
.sidebar-footer a, .sidebar-logout button { color: #a9bdca; text-decoration: none; font-size: .73rem; }
.sidebar-footer a:hover, .sidebar-logout button:hover { color: white; }
.sidebar-logout { margin: 0; }
.sidebar-logout button { border: 0; padding: 0; background: transparent; font: inherit; cursor: pointer; }
.role-badge { width: max-content; border-radius: 999px; padding: 5px 9px; background: #e9eff2; color: #405363; font-size: .61rem; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; }
.role-badge.system { background: #fff2dd; color: #8d5621; }

.app-main { min-width: 0; }
.topbar { height: 78px; position: sticky; top: 0; z-index: 40; padding: 0 clamp(20px, 3vw, 42px); background: rgba(255,255,255,.9); backdrop-filter: blur(16px); border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.topbar-title { display: grid; gap: 3px; }
.topbar-title small { color: var(--ink-soft); text-transform: uppercase; letter-spacing: .12em; font-size: .6rem; font-weight: 800; }
.topbar-title strong { font-size: .94rem; }
.topbar-actions { display: flex; align-items: center; gap: 18px; }
.header-clocks { display: flex; align-items: stretch; overflow: hidden; border: 1px solid var(--line); border-radius: 11px; background: rgba(247,250,251,.9); }
.header-clock { min-width: 106px; padding: 7px 11px 6px; display: grid; grid-template-columns: 1fr auto; align-items: baseline; column-gap: 7px; }
.header-clock + .header-clock { border-left: 1px solid var(--line); }
.header-clock span { grid-column: 1 / -1; color: var(--ink-soft); font-size: .5rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.header-clock strong { color: var(--navy); font-size: .75rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
.header-clock small { color: var(--ink-soft); font-size: .51rem; font-weight: 750; white-space: nowrap; }
.club-switcher { min-width: 220px; display: grid; gap: 3px; }
.club-switcher label { color: var(--ink-soft); font-size: .55rem; text-transform: uppercase; letter-spacing: .1em; font-weight: 800; }
.club-switcher select { width: 100%; border: 0; background: transparent; color: var(--ink); font-weight: 750; outline: 0; padding: 0; }
.user-menu { display: flex; align-items: center; gap: 9px; padding-left: 17px; border-left: 1px solid var(--line); }
.user-initials { width: 35px; height: 35px; flex: 0 0 35px; border-radius: 50%; display: grid; place-items: center; background: #dcebf0; color: var(--navy); font-size: .68rem; font-weight: 850; }
.user-menu > div { display: grid; line-height: 1.15; }
.user-menu strong { font-size: .77rem; }
.user-menu small { color: var(--ink-soft); font-size: .65rem; margin-top: 4px; }
.icon-button { border: 0; background: transparent; color: inherit; }
.mobile-menu { display: none; font-size: 1.35rem; }

.content { width: 100%; max-width: 1500px; min-width: 0; padding: clamp(28px, 4vw, 48px); margin: 0 auto; }
.page-header { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 28px; }
.page-header h1 { margin: 7px 0 8px; font-size: clamp(2rem, 3.4vw, 3.15rem); line-height: 1; letter-spacing: -.045em; color: var(--navy); }
.page-header p { max-width: 720px; margin: 0; color: var(--ink-soft); line-height: 1.65; }
.eyebrow { color: var(--blue); font-size: .64rem; font-weight: 850; letter-spacing: .16em; text-transform: uppercase; }
.button-row { display: flex; gap: 9px; flex-wrap: wrap; align-items: center; }

.button { min-height: 41px; padding: 0 16px; border: 1px solid transparent; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; text-decoration: none; font-weight: 800; font-size: .76rem; transition: .16s ease; }
.button:hover { transform: translateY(-1px); box-shadow: var(--shadow-soft); }
.button-primary { color: white; background: var(--navy); border-color: var(--navy); }
.button-primary:hover { background: #163b5e; }
.button-outline { color: var(--navy); background: white; border-color: var(--line-strong); }
.button-quiet { color: #516273; background: #eef2f4; border-color: #eef2f4; }
.button-danger-outline { color: var(--red); background: white; border-color: #e8c2c2; }
.button-danger { color: white; background: var(--red); border-color: var(--red); }
.button-danger:hover { background: #993f3f; }
.button-disabled { color: #85939d; background: #edf1f3; border-color: #edf1f3; cursor: not-allowed; }
.button-small { min-height: 35px; padding: 0 12px; font-size: .7rem; border-radius: 9px; }
.button-large { min-height: 50px; font-size: .84rem; }
.text-link { color: var(--blue); font-weight: 750; font-size: .73rem; text-decoration: none; }

.panel { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 24px; box-shadow: var(--shadow-soft); }
.panel + .panel { margin-top: 24px; }
.panel-header { margin-bottom: 21px; display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.panel-header h2 { margin: 6px 0 0; color: var(--navy); font-size: 1.22rem; }
.panel-header p { margin: 6px 0 0; color: var(--ink-soft); font-size: .8rem; line-height: 1.5; }
.panel-header > a { color: var(--blue); text-decoration: none; font-size: .73rem; font-weight: 800; }
.narrow-panel { max-width: 650px; }

.platform-banner { margin-bottom: 22px; padding: 15px 18px; border-radius: 15px; color: #eaf3f8; background: linear-gradient(110deg, var(--navy), #1b4968); display: flex; align-items: center; gap: 24px; box-shadow: var(--shadow-soft); }
.platform-banner-copy { display: flex; align-items: center; gap: 11px; min-width: 270px; }
.platform-icon { width: 36px; height: 36px; border-radius: 11px; display: grid; place-items: center; background: rgba(255,255,255,.1); }
.platform-banner-copy > div { display: grid; }
.platform-banner-copy small { color: #9eb8c9; text-transform: uppercase; letter-spacing: .12em; font-size: .56rem; }
.platform-banner-copy strong { font-size: .78rem; margin-top: 3px; }
.platform-stats { display: flex; gap: 20px; flex: 1; }
.platform-stats span { color: #aac1cf; font-size: .68rem; }
.platform-stats strong { color: white; font-size: .9rem; margin-right: 3px; }
.platform-banner > a { color: white; white-space: nowrap; text-decoration: none; font-size: .73rem; font-weight: 800; }

.metric-grid { margin-bottom: 24px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 15px; }
.metric-card { min-height: 116px; padding: 19px; border: 1px solid var(--line); border-radius: 16px; background: white; display: flex; gap: 14px; align-items: center; box-shadow: var(--shadow-soft); }
.metric-mark { width: 43px; height: 43px; flex: 0 0 43px; border-radius: 13px; display: grid; place-items: center; font-size: .76rem; font-weight: 900; }
.metric-mark.blue { background: #e5f1f5; color: var(--blue); }
.metric-mark.teal { background: #e7f3f1; color: var(--teal); }
.metric-mark.amber { background: #fbf0e2; color: var(--amber); }
.metric-mark.green { background: #eaf2eb; color: var(--green); }
.metric-card > div { min-width: 0; display: grid; gap: 2px; }
.metric-card small { color: var(--ink-soft); font-size: .67rem; }
.metric-card strong { color: var(--navy); font-size: 1.65rem; line-height: 1.1; }
.metric-card strong.metric-role { font-size: 1rem; line-height: 1.3; }
.metric-card span:last-child { color: #84929d; font-size: .61rem; }

.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(280px, .65fr); gap: 20px; }
.event-list { display: grid; }
.event-row { padding: 18px 0; border-top: 1px solid var(--line); display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 16px; align-items: center; }
.event-row:first-child { border-top: 0; padding-top: 0; }
.event-date-block { height: 58px; border-radius: 12px; background: #eef4f6; display: grid; align-content: center; justify-items: center; line-height: 1; }
.event-date-block span { color: var(--blue); font-size: .6rem; font-weight: 850; text-transform: uppercase; }
.event-date-block strong { color: var(--navy); font-size: 1.4rem; margin-top: 4px; }
.event-row-main { min-width: 0; }
.event-row-title { display: flex; justify-content: space-between; gap: 15px; }
.event-row-title h3 { margin: 0; color: var(--navy); font-size: .92rem; }
.event-row-title p { margin: 5px 0 0; color: var(--ink-soft); font-size: .68rem; }
.coverage-row { margin-top: 12px; display: flex; align-items: center; gap: 11px; }
.progress { height: 6px; flex: 1; border-radius: 999px; overflow: hidden; background: #e7ecef; }
.progress span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--blue), #54a2a0); }
.progress.large { height: 8px; width: min(360px, 100%); }
.coverage-row small { color: var(--ink-soft); font-size: .62rem; white-space: nowrap; }
.event-row-actions { display: grid; justify-items: center; gap: 8px; }
.status-pill { width: max-content; padding: 5px 9px; border-radius: 999px; background: #edf1f3; color: #64737f; font-size: .57rem; font-weight: 850; text-transform: uppercase; letter-spacing: .06em; }
.status-pill.published { background: #e7f3ed; color: #397452; }
.status-pill.draft { background: #fbf0e1; color: #946026; }
.status-pill.closed { background: #edf0f2; color: #64717b; }
.shift-list { display: grid; gap: 9px; }
.shift-card { padding: 12px; border: 1px solid var(--line); border-radius: 12px; display: grid; grid-template-columns: 58px 1fr auto; align-items: center; gap: 10px; text-decoration: none; transition: .16s ease; }
.shift-card:hover { border-color: #aec4ce; transform: translateY(-1px); }
.shift-time { display: grid; color: var(--blue); font-size: .59rem; font-weight: 850; text-transform: uppercase; }
.shift-time strong { color: var(--navy); font-size: .67rem; margin-top: 3px; }
.shift-copy { min-width: 0; display: grid; }
.shift-copy strong { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: .75rem; }
.shift-copy small { color: var(--ink-soft); font-size: .62rem; margin-top: 3px; }

.club-card-grid, .event-card-grid, .station-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.club-card { padding: 19px; border: 1px solid var(--line); border-radius: 17px; background: white; box-shadow: var(--shadow-soft); }
.club-card.inactive { opacity: .68; }
.club-card-top { display: flex; justify-content: space-between; }
.club-card-copy h2 { margin: 18px 0 6px; color: var(--navy); font-size: 1rem; }
.club-card-copy p { margin: 0; color: var(--ink-soft); font-size: .7rem; }
.club-card-stats { margin: 19px 0; padding: 14px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); display: grid; grid-template-columns: repeat(3, 1fr); }
.club-card-stats span { color: var(--ink-soft); font-size: .62rem; display: grid; gap: 2px; }
.club-card-stats strong { color: var(--navy); font-size: 1rem; }
.club-card-actions { display: flex; gap: 8px; }

.event-card { overflow: hidden; border: 1px solid var(--line); border-radius: 17px; background: white; box-shadow: var(--shadow-soft); display: flex; flex-direction: column; }
.event-card-cover { --event-accent: var(--blue); min-height: 100px; padding: 17px; background: linear-gradient(135deg, color-mix(in srgb, var(--event-accent) 90%, #102b46), var(--navy)); color: white; display: flex; justify-content: space-between; align-items: flex-start; position: relative; overflow: hidden; }
.event-card-cover::after { content: ""; position: absolute; width: 180px; height: 180px; border: 28px solid rgba(255,255,255,.08); border-radius: 50%; right: -95px; bottom: -105px; }
.event-card-cover > div { display: grid; line-height: 1; position: relative; z-index: 1; }
.event-card-cover > div span { color: rgba(255,255,255,.75); font-size: .62rem; font-weight: 850; text-transform: uppercase; }
.event-card-cover > div strong { font-size: 2rem; margin-top: 5px; }
.event-card-cover .status-pill { position: relative; z-index: 1; }
.event-card-body { padding: 18px; flex: 1; }
.event-card-body > small { color: var(--blue); font-weight: 850; font-size: .6rem; letter-spacing: .08em; text-transform: uppercase; }
.event-card-body h2 { margin: 7px 0 7px; color: var(--navy); font-size: 1.08rem; }
.event-card-body > p { margin: 0; color: var(--ink-soft); font-size: .7rem; line-height: 1.5; }
.event-card-meta { margin-top: 14px; display: flex; gap: 15px; color: var(--ink-soft); font-size: .62rem; }
.event-card-actions { padding: 13px 18px 17px; display: flex; gap: 8px; }

.form-panel { margin-top: 24px; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.stack-form { display: grid; gap: 16px; }
.form-grid label, .stack-form label, .compact-form label { display: grid; gap: 7px; }
.form-grid label > span, .stack-form label > span, .compact-form label > span { color: #435565; font-size: .68rem; font-weight: 750; }
.form-grid input, .form-grid select, .form-grid textarea, .stack-form input, .stack-form select, .compact-form input, .compact-form select, .search-control input {
  width: 100%; min-height: 43px; border: 1px solid var(--line-strong); border-radius: 10px; background: white; color: var(--ink); padding: 9px 11px; outline: 0; transition: .15s ease;
}
.form-grid textarea { resize: vertical; }
.form-grid input:focus, .form-grid select:focus, .form-grid textarea:focus, .stack-form input:focus, .compact-form input:focus, .compact-form select:focus { border-color: #6fa2b5; box-shadow: 0 0 0 3px rgba(29,111,138,.11); }
.form-grid input[type="color"] { padding: 5px; }
.form-grid .span-2 { grid-column: span 2; }
.form-actions { display: flex; justify-content: flex-end; padding-top: 2px; }
.check-label { display: flex !important; align-items: center; gap: 9px !important; min-height: 43px; padding-top: 21px; }
.check-label input { width: 17px !important; min-height: 17px !important; }
.event-band-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(105px, 1fr)); gap: 10px; margin-bottom: 18px; }
.event-band-option { min-height: 58px; padding: 10px 12px; display: flex; align-items: center; gap: 10px; border: 1px solid var(--line); border-radius: 11px; background: #f8fafb; cursor: pointer; }
.event-band-option:has(input:checked) { border-color: #6fa2b5; background: #eaf4f6; box-shadow: 0 0 0 2px rgba(29,111,138,.08); }
.event-band-option.warc:has(input:checked) { border-color: #d3a14d; background: #fff7e8; }
.event-band-option input { width: 17px; height: 17px; accent-color: var(--blue); }
.event-band-option span { display: grid; gap: 2px; }
.event-band-option strong { color: var(--navy); font-size: .78rem; }
.event-band-option small { color: #9a651d; font-size: .52rem; font-weight: 850; letter-spacing: .1em; }
.band-mode-matrix { display: grid; gap: 10px; margin-bottom: 18px; }
.band-mode-row { padding: 12px 14px; display: grid; grid-template-columns: 75px 1fr; align-items: center; gap: 12px; border: 1px solid var(--line); border-radius: 11px; background: #f8fafb; }
.band-mode-row > strong { color: var(--navy); }
.band-mode-row > div { display: flex; flex-wrap: wrap; gap: 8px; }
.band-mode-row label { padding: 7px 9px; display: flex; align-items: center; gap: 6px; border-radius: 8px; background: white; border: 1px solid var(--line); cursor: pointer; font-size: .68rem; font-weight: 750; }
.band-mode-row label:has(input:checked) { background: #eaf4f6; border-color: #6fa2b5; }
.mode-choice-list { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.mode-choice-list .button small { color: rgba(255,255,255,.72); font-size: .55rem; }
.danger-check span { color: var(--red) !important; }

.table-panel { padding: 0; overflow: visible; }
.table-panel .panel-header { padding: 23px 23px 0; }
.responsive-table { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th { padding: 11px 18px; color: #71808c; background: #f6f8f9; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); text-align: left; text-transform: uppercase; letter-spacing: .08em; font-size: .56rem; }
td { padding: 14px 18px; border-bottom: 1px solid var(--line); color: #455868; font-size: .72rem; }
tbody tr:last-child td { border-bottom: 0; }
.person-cell { display: flex; align-items: center; gap: 10px; }
.person-cell > div { display: grid; }
.person-cell strong { color: var(--ink); }
.person-cell small { margin-top: 3px; color: var(--ink-soft); font-size: .62rem; }
.mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.status-dot { width: 7px; height: 7px; display: inline-block; border-radius: 50%; margin-right: 6px; background: #a8b2b9; }
.status-dot.good { background: #58a36f; box-shadow: 0 0 0 3px #e3f0e7; }
.status-dot.off { background: #a6afb6; }
.row-menu { position: relative; }
.row-menu summary { color: var(--blue); font-weight: 800; cursor: pointer; list-style: none; }
.row-menu summary::-webkit-details-marker { display: none; }
.popover { position: absolute; right: 0; top: 26px; width: 240px; padding: 14px; border: 1px solid var(--line); border-radius: 13px; background: white; box-shadow: var(--shadow); z-index: 20; }
.popover-wide { width: min(330px, calc(100vw - 36px)); }
.popover-divider { height: 1px; margin: 14px 0; background: var(--line); }
.danger-zone { display: grid; gap: 9px; }
.danger-zone > strong { color: var(--red); font-size: .72rem; }
.danger-zone > p, .muted-copy { margin: 0; color: var(--ink-soft); font-size: .64rem; line-height: 1.5; }
.callsign-lookup-status{display:block;min-height:1.1rem;margin-top:.28rem;color:var(--ink-soft);font-size:.68rem;font-weight:600;line-height:1.35}
.net-role-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem;margin:0;padding:0;border:0}.net-role-actions legend{grid-column:1/-1;margin:0 0 .15rem;font-size:.72rem;font-weight:800;color:var(--ink)}.net-role-submit{display:flex;align-items:center;justify-content:flex-start;gap:.55rem;min-height:3rem;padding:.7rem .8rem;border-color:var(--border);background:var(--surface);color:var(--ink);text-align:left}.net-role-submit strong{display:grid;place-items:center;min-width:2rem;height:2rem;border-radius:7px;background:var(--navy);color:#fff;font-size:.7rem}.net-role-submit span{font-size:.74rem;font-weight:800}.net-role-submit:hover,.net-role-submit:focus-visible{border-color:var(--navy);background:#eef5f9;color:var(--ink)}.net-role-submit:focus-visible{outline:3px solid rgba(29,111,138,.24);outline-offset:2px}.net-role-keyboard-help{grid-column:1/-1;color:var(--ink-soft);font-size:.66rem;font-weight:600}.round-update-status{color:var(--green);font-size:.7rem;font-weight:800}.round-update-status.error{color:var(--red)}
@media(max-width:900px){.net-role-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}
.club-chip-list { display: flex; flex-wrap: wrap; gap: 6px; }
.club-chip { padding: 5px 8px; border-radius: 999px; background: var(--blue-soft); color: #315e70; font-size: .58rem; font-weight: 800; }
.club-chip.disabled { background: #eef1f3; color: #7a8790; text-decoration: line-through; }
.compact-form { display: grid; gap: 10px; }
.compact-form input, .compact-form select { min-height: 37px; font-size: .7rem; }
.system-user-admin-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr); gap: 20px; align-items: start; }
.system-user-security { display: grid; gap: 20px; }
.security-state { margin: 0 0 15px; padding: 11px 13px; border: 1px solid var(--line); border-radius: 10px; background: #f7fafb; color: var(--ink-soft); font-size: .69rem; line-height: 1.45; }
.security-state strong { color: var(--ink); }
.security-state.required { border-color: #e8cf91; background: #fff8e7; color: #72561b; }
@media(max-width:900px){.system-user-admin-grid{grid-template-columns:1fr}}

.builder-steps { margin-bottom: 23px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.builder-steps a { padding: 14px; border: 1px solid var(--line); border-radius: 13px; background: white; text-decoration: none; display: flex; align-items: center; gap: 10px; }
.builder-steps a > span { width: 28px; height: 28px; flex: 0 0 28px; border-radius: 50%; display: grid; place-items: center; background: #eef2f4; color: #6e7d88; font-size: .7rem; font-weight: 850; }
.builder-steps a.complete > span { color: white; background: var(--blue); }
.builder-steps a > div { display: grid; }
.builder-steps strong { font-size: .73rem; color: var(--navy); }
.builder-steps small { color: var(--ink-soft); font-size: .59rem; margin-top: 3px; }
.station-grid { margin-bottom: 17px; }
.station-card { --station-accent: var(--blue); border: 1px solid var(--line); border-radius: 14px; padding: 17px; background: var(--surface-2); }
.station-card-heading { display: flex; align-items: center; gap: 10px; }
.station-swatch { width: 9px; height: 37px; border-radius: 999px; background: var(--station-accent); }
.station-card-heading > div { display: grid; }
.station-card-heading small { color: var(--ink-soft); font-size: .59rem; }
.station-card-heading h3 { margin: 3px 0 0; color: var(--navy); font-size: .9rem; }
.station-card > p { margin: 12px 0; color: var(--ink-soft); font-size: .67rem; line-height: 1.5; }
.position-list { display: grid; gap: 7px; margin: 14px 0; }
.position-list > span { padding: 9px 10px; border-radius: 9px; background: white; border: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; }
.position-list strong { font-size: .68rem; }
.position-list small { color: var(--ink-soft); font-size: .58rem; }
.station-card details summary { color: var(--blue); cursor: pointer; font-size: .67rem; font-weight: 800; }
.inset-form { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); }
.add-panel { margin-top: 8px; border: 1px dashed #aebfc8; border-radius: 14px; background: #f9fbfc; }
.add-panel > summary { padding: 16px; display: flex; align-items: center; gap: 11px; cursor: pointer; list-style: none; }
.add-panel > summary::-webkit-details-marker { display: none; }
.add-panel > summary > span { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; background: #e6f1f4; color: var(--blue); font-size: 1.1rem; }
.add-panel > summary > div { display: grid; }
.add-panel > summary strong { font-size: .76rem; }
.add-panel > summary small { color: var(--ink-soft); font-size: .63rem; margin-top: 3px; }
.details-form { padding: 0 17px 17px; }
.count-badges { display: flex; gap: 7px; }
.count-badges span { padding: 6px 9px; border-radius: 999px; background: #eef3f5; color: #536775; font-size: .6rem; font-weight: 750; }

.schedule-summary { margin-bottom: 19px; padding: 18px 21px; border: 1px solid var(--line); border-radius: 16px; background: white; display: grid; grid-template-columns: minmax(300px, 1fr) repeat(3, 120px); gap: 15px; align-items: center; box-shadow: var(--shadow-soft); }
.schedule-summary > div { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 5px 14px; }
.schedule-summary > div small { color: var(--ink-soft); font-size: .65rem; }
.schedule-summary > div strong { color: var(--navy); font-size: 1.2rem; }
.schedule-summary > div .progress { grid-column: span 2; }
.schedule-summary > span { min-height: 48px; border-left: 1px solid var(--line); display: grid; align-content: center; justify-items: center; }
.schedule-summary > span strong { color: var(--navy); font-size: 1.25rem; }
.schedule-summary > span small { color: var(--ink-soft); font-size: .59rem; }
.schedule-toolbar { margin-bottom: 18px; display: flex; justify-content: space-between; align-items: center; gap: 15px; }
.filter-chips { display: flex; gap: 7px; }
.filter-chips button { min-height: 36px; padding: 0 13px; border-radius: 999px; border: 1px solid var(--line); background: white; color: var(--ink-soft); font-size: .68rem; font-weight: 750; }
.filter-chips button.active { color: white; background: var(--navy); border-color: var(--navy); }
.search-control { width: min(340px, 100%); min-height: 40px; padding: 0 11px; border: 1px solid var(--line-strong); border-radius: 10px; background: white; display: flex; align-items: center; gap: 7px; color: #75848f; }
.search-control input { min-height: 38px; border: 0; padding: 0; background: transparent; }
.search-control input:focus { box-shadow: none; }
.schedule-board { display: grid; gap: 20px; }
.slot-section { border: 1px solid var(--line); border-radius: 17px; background: white; overflow: hidden; box-shadow: var(--shadow-soft); }
.slot-heading { padding: 16px 20px; border-bottom: 1px solid var(--line); background: #f8fafb; display: flex; align-items: center; gap: 14px; }
.slot-heading > div:first-child { width: 52px; min-height: 49px; border-radius: 11px; display: grid; place-items: center; align-content: center; background: var(--navy); color: white; line-height: 1; }
.slot-heading > div:first-child span { color: #aac0ce; font-size: .55rem; font-weight: 850; text-transform: uppercase; }
.slot-heading > div:first-child strong { font-size: .7rem; margin-top: 4px; }
.slot-heading h2 { margin: 0; color: var(--navy); font-size: .94rem; }
.slot-heading p { margin: 4px 0 0; color: var(--ink-soft); font-size: .61rem; }
.assignment-grid { padding: 17px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.assignment-card { --station-accent: var(--blue); position: relative; min-height: 220px; padding: 15px 15px 14px 19px; border: 1px solid var(--line); border-radius: 13px; background: white; display: flex; flex-direction: column; overflow: hidden; }
.assignment-card.mine { background: #f6fbfc; border-color: #a7ccd5; }
.assignment-card.full { background: #fafbfb; }
.assignment-accent { position: absolute; left: 0; top: 0; bottom: 0; width: 5px; background: var(--station-accent); }
.assignment-top { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.station-label { color: var(--station-accent); font-size: .58rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.availability { padding: 4px 7px; border-radius: 999px; font-size: .54rem; font-weight: 850; text-transform: uppercase; letter-spacing: .04em; }
.availability.open { background: #e7f3ed; color: #397452; }
.availability.full { background: #edf0f2; color: #6f7b84; }
.availability.mine { background: #e2f1f5; color: var(--blue); }
.assignment-card h3 { margin: 14px 0 5px; color: var(--navy); font-size: .9rem; }
.assignment-card > p { margin: 0; color: var(--ink-soft); font-size: .64rem; }
.tag-row { margin-top: 12px; display: flex; flex-wrap: wrap; gap: 6px; }
.tag-row span { padding: 4px 7px; border-radius: 6px; color: #566875; background: #eef2f4; font-size: .56rem; font-weight: 750; }
.operator-line { margin-top: 13px; padding-top: 11px; border-top: 1px solid var(--line); display: grid; gap: 3px; }
.operator-line span { color: var(--ink-soft); font-size: .53rem; text-transform: uppercase; letter-spacing: .07em; }
.operator-line strong { color: #415361; font-size: .62rem; line-height: 1.4; }
.assignment-actions { margin-top: auto; padding-top: 13px; }
.assignment-actions form, .assignment-actions .button { width: 100%; }
.assignment-card[hidden], .public-assignment[hidden] { display: none; }

.timeline { max-width: 950px; position: relative; }
.timeline::before { content: ""; position: absolute; left: 82px; top: 10px; bottom: 10px; width: 2px; background: #dce4e8; }
.timeline-item { --station-accent: var(--blue); display: grid; grid-template-columns: 61px 43px minmax(0,1fr); align-items: center; margin-bottom: 18px; }
.timeline-date { display: grid; justify-items: center; line-height: 1; }
.timeline-date span { color: var(--station-accent); font-size: .59rem; font-weight: 850; text-transform: uppercase; }
.timeline-date strong { color: var(--navy); font-size: 1.25rem; margin: 4px 0; }
.timeline-date small { color: var(--ink-soft); font-size: .58rem; }
.timeline-dot { position: relative; width: 13px; height: 13px; border: 3px solid white; border-radius: 50%; background: var(--station-accent); box-shadow: 0 0 0 2px #dce4e8; justify-self: center; z-index: 2; }
.timeline-card { padding: 19px; border: 1px solid var(--line); border-radius: 15px; background: white; box-shadow: var(--shadow-soft); }
.timeline-card-top { display: flex; justify-content: space-between; gap: 15px; }
.timeline-card-top small { color: var(--station-accent); font-size: .59rem; font-weight: 850; text-transform: uppercase; }
.timeline-card-top h2 { margin: 5px 0 0; color: var(--navy); font-size: .94rem; }
.timeline-card > p { color: var(--ink-soft); font-size: .68rem; }
.timeline-actions { margin-top: 14px; display: flex; gap: 8px; }

.empty-state { min-height: 220px; display: grid; place-items: center; align-content: center; text-align: center; padding: 25px; color: var(--ink-soft); }
.empty-state > span { width: 45px; height: 45px; display: grid; place-items: center; border-radius: 50%; background: #edf3f5; color: var(--blue); font-size: 1.2rem; }
.empty-state h2, .empty-state h3 { margin: 13px 0 5px; color: var(--navy); }
.empty-state p { max-width: 420px; margin: 0 0 15px; font-size: .74rem; line-height: 1.55; }
.empty-state.compact { min-height: 195px; }
.large-empty { grid-column: 1 / -1; min-height: 350px; border: 1px dashed var(--line-strong); border-radius: var(--radius); background: white; }
.empty-code { width: auto !important; height: auto !important; background: transparent !important; font-size: 4rem !important; font-weight: 900; color: #d3dde2 !important; }

.flash { width: min(720px, calc(100% - 32px)); position: fixed; top: 90px; right: 25px; z-index: 100; padding: 13px 14px; border: 1px solid var(--line); border-radius: 12px; background: white; box-shadow: var(--shadow); display: grid; grid-template-columns: 25px 1fr auto; align-items: center; gap: 8px; font-size: .74rem; }
.flash > span { width: 25px; height: 25px; border-radius: 50%; display: grid; place-items: center; background: #e7f3ed; color: #397452; font-weight: 850; }
.flash-warning > span { background: #fbf0e1; color: #946026; }
.flash-error > span { background: #f8e7e7; color: var(--red); }
.flash button { border: 0; background: transparent; color: #7c8992; font-size: 1.1rem; }
.inline-alert { margin-bottom: 17px; padding: 12px 14px; border-radius: 10px; font-size: .72rem; }
.inline-alert.error { color: #8a3838; background: #faeaea; border: 1px solid #efcccc; }

.auth-page { background: #eef3f5; }
.auth-shell { min-height: calc(100vh - 54px); display: grid; place-items: center; padding: 35px; position: relative; overflow: hidden; }
.auth-shell::before, .auth-shell::after { content: ""; position: absolute; border-radius: 50%; border: 45px solid rgba(29,111,138,.07); width: 460px; height: 460px; }
.auth-shell::before { left: -260px; bottom: -260px; }
.auth-shell::after { right: -280px; top: -280px; }
.auth-card { width: min(980px, 100%); min-height: 590px; border: 1px solid var(--line); border-radius: 24px; background: white; box-shadow: var(--shadow); overflow: hidden; display: grid; grid-template-columns: 1.05fr .95fr; position: relative; z-index: 1; }
.auth-brand-block { padding: clamp(35px, 5vw, 65px); color: white; background:
  linear-gradient(rgba(16,43,70,.86), rgba(12,35,58,.96)),
  repeating-radial-gradient(ellipse at 20% 120%, transparent 0 24px, rgba(255,255,255,.35) 25px 26px),
  #102b46;
  display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start;
}
.auth-brand-block .eyebrow { color: #a6d0d8; }
.auth-brand-block h1 { margin: 12px 0; font-size: clamp(2.5rem, 5vw, 4.5rem); line-height: .95; letter-spacing: -.055em; }
.auth-brand-block p { max-width: 430px; color: #b7c9d4; line-height: 1.7; }
.auth-form-panel { padding: clamp(34px, 5vw, 62px); display: grid; align-content: center; }
.auth-heading h2 { margin: 8px 0 7px; color: var(--navy); font-size: 2rem; }
.auth-heading p { margin: 0 0 25px; color: var(--ink-soft); font-size: .78rem; line-height: 1.5; }
.auth-note { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line); display: grid; gap: 5px; }
.auth-note strong { font-size: .72rem; }
.auth-note span { color: var(--ink-soft); font-size: .67rem; line-height: 1.5; }

.public-page { background: #f3f6f8; }
.public-header { height: 76px; padding: 0 clamp(20px, 5vw, 70px); display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.93); backdrop-filter: blur(15px); position: sticky; top: 0; z-index: 30; }
.public-header-actions { display: flex; align-items: center; gap: 16px; }
.public-brand { color: var(--navy); }
.public-brand .brand-symbol { width: 38px; height: 38px; flex-basis: 38px; box-shadow: none; background: #e5f1f5; }
.public-content { width: min(1360px, calc(100% - 40px)); margin: 0 auto; padding: 44px 0 70px; }
.public-landing-hero { max-width: 790px; margin: 35px auto 50px; text-align: center; }
.public-landing-hero h1 { margin: 10px 0 14px; color: var(--navy); font-size: clamp(2.5rem, 6vw, 5rem); line-height: .98; letter-spacing: -.06em; }
.public-landing-hero p { color: var(--ink-soft); line-height: 1.7; }
.public-event-grid { max-width: 980px; margin: auto; display: grid; gap: 13px; }
.public-event-card { --club-accent: var(--blue); padding: 17px 19px; border: 1px solid var(--line); border-radius: 15px; background: white; display: grid; grid-template-columns: 73px 1fr auto; align-items: center; gap: 16px; text-decoration: none; box-shadow: var(--shadow-soft); transition: .18s ease; }
.public-event-card:hover { transform: translateY(-2px); border-color: #b4c8d1; }
.public-event-date { height: 65px; border-radius: 12px; display: grid; place-items: center; align-content: center; background: color-mix(in srgb, var(--club-accent) 12%, white); color: var(--club-accent); }
.public-event-date strong { font-size: .83rem; }
.public-event-date small { font-size: .58rem; margin-top: 3px; }
.public-event-card > div small { color: var(--club-accent); font-size: .58rem; font-weight: 850; text-transform: uppercase; }
.public-event-card h2 { margin: 5px 0; color: var(--navy); font-size: 1rem; }
.public-event-card p { margin: 0; color: var(--ink-soft); font-size: .67rem; }
.public-arrow { color: var(--club-accent); font-size: 1.4rem; }
.public-event-hero { --club-accent: var(--blue); min-height: 410px; border-radius: 25px; padding: clamp(28px, 5vw, 62px); color: white; background:
  linear-gradient(115deg, color-mix(in srgb, var(--club-accent) 88%, #102b46), #102b46 70%),
  #102b46;
  display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(270px, .55fr); gap: 50px; align-items: center; position: relative; overflow: hidden; box-shadow: var(--shadow);
}
.public-event-hero::before { content: ""; position: absolute; width: 500px; height: 500px; border-radius: 50%; border: 60px solid rgba(255,255,255,.05); right: -230px; top: -260px; }
.public-event-hero::after { content: ""; position: absolute; left: -100px; right: -100px; bottom: -125px; height: 260px; opacity: .18; background: repeating-radial-gradient(ellipse at 50% 100%, transparent 0 24px, rgba(255,255,255,.5) 25px 26px); }
.public-event-hero-copy, .public-coverage-card { position: relative; z-index: 1; }
.public-event-hero .eyebrow { color: #b4d8df; }
.public-event-hero h1 { margin: 13px 0 16px; font-size: clamp(3rem, 7vw, 6.5rem); line-height: .85; letter-spacing: -.07em; }
.public-event-hero-copy > p { max-width: 660px; color: #c4d4de; line-height: 1.7; }
.public-event-meta { margin-top: 28px; display: flex; flex-wrap: wrap; gap: 24px; }
.public-event-meta span { display: grid; }
.public-event-meta small { color: #9eb8c9; font-size: .55rem; text-transform: uppercase; letter-spacing: .1em; }
.public-event-meta strong { margin-top: 5px; font-size: .76rem; }
.public-coverage-card { padding: 25px; border: 1px solid rgba(255,255,255,.14); border-radius: 20px; background: rgba(255,255,255,.08); backdrop-filter: blur(10px); display: grid; justify-items: center; }
.coverage-ring { --coverage: 0; width: 145px; height: 145px; border-radius: 50%; display: grid; place-items: center; align-content: center; background: radial-gradient(circle at center, #16344e 60%, transparent 62%), conic-gradient(#b4dfe3 calc(var(--coverage) * 1%), rgba(255,255,255,.14) 0); }
.coverage-ring strong { font-size: 2rem; }
.coverage-ring small { color: #afc4d0; font-size: .63rem; }
.public-coverage-card > div { width: 100%; margin: 22px 0; display: grid; grid-template-columns: 1fr 1fr; }
.public-coverage-card > div span { display: grid; text-align: center; color: #b6c9d4; font-size: .63rem; }
.public-coverage-card > div span + span { border-left: 1px solid rgba(255,255,255,.15); }
.public-coverage-card > div strong { color: white; font-size: 1.1rem; }
.public-coverage-card .button { width: 100%; background: white; color: var(--navy); border-color: white; }
.public-schedule-intro { margin: 45px 0 20px; display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; }
.public-schedule-intro h2 { margin: 6px 0 0; color: var(--navy); font-size: 1.5rem; }
.public-schedule { display: grid; gap: 18px; }
.public-slot { overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: white; box-shadow: var(--shadow-soft); }
.public-slot > header { padding: 16px 19px; background: #f8fafb; border-bottom: 1px solid var(--line); display: flex; align-items: center; gap: 13px; }
.public-slot > header > div { width: 52px; height: 49px; border-radius: 11px; background: var(--navy); color: white; display: grid; place-items: center; align-content: center; }
.public-slot > header span { color: #aac0ce; font-size: .54rem; font-weight: 850; }
.public-slot > header strong { font-size: .67rem; margin-top: 3px; }
.public-slot > header h3 { color: var(--navy); font-size: .91rem; }
.public-assignment-grid { padding: 17px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.public-assignment { --station-accent: var(--blue); min-height: 184px; padding: 15px 15px 14px 19px; border: 1px solid var(--line); border-radius: 12px; position: relative; overflow: hidden; }
.public-assignment-line { position: absolute; left: 0; top: 0; bottom: 0; width: 5px; background: var(--station-accent); }
.public-assignment-heading { display: flex; justify-content: space-between; gap: 8px; }
.public-assignment-heading small { color: var(--station-accent); font-size: .56rem; font-weight: 850; text-transform: uppercase; }
.public-assignment h4 { margin: 13px 0 4px; color: var(--navy); font-size: .86rem; }
.public-assignment > p { margin: 0; color: var(--ink-soft); font-size: .62rem; }

.site-footer { min-height: 54px; padding: 0 30px; color: #87959f; display: flex; justify-content: center; align-items: center; gap: 12px; font-size: .59rem; }
.site-footer span + span::before { content: "·"; margin-right: 12px; }
.app-page .site-footer { margin-left: var(--sidebar); }

@media (max-width: 1250px) {
  .assignment-grid, .public-assignment-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .club-card-grid, .event-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .station-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .metric-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .platform-stats { display: none; }
}

@media (max-width: 980px) {
  :root { --sidebar: 0px; }
  .app-shell { display: block; }
  .sidebar { width: 270px; position: fixed; transform: translateX(-105%); transition: transform .22s ease; box-shadow: var(--shadow); }
  body.sidebar-open .sidebar { transform: translateX(0); }
  body.sidebar-open::after { content: ""; position: fixed; inset: 0; background: rgba(10,25,38,.42); z-index: 45; }
  .mobile-menu { display: block; }
  .content { width: 100%; }
  .app-page .site-footer { margin-left: 0; }
  .dashboard-grid { grid-template-columns: 1fr; }
  .builder-steps { grid-template-columns: repeat(2, 1fr); }
  .assignment-grid, .public-assignment-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .schedule-summary { grid-template-columns: minmax(260px, 1fr) repeat(3, 90px); }
  .public-event-hero { grid-template-columns: 1fr; }
  .public-coverage-card { max-width: 360px; }
  .auth-card { grid-template-columns: 1fr; }
  .auth-brand-block { min-height: 330px; }
}

@media (max-width: 720px) {
  .topbar { height: 68px; padding: 0 15px; }
  .topbar-title small, .club-switcher label, .user-menu > div { display: none; }
  .topbar .header-clock { min-width: 82px; padding: 6px 8px; }
  .topbar .header-clock strong { font-size: .67rem; }
  .topbar .header-clock small { display: none; }
  .club-switcher { min-width: 150px; }
  .user-menu { padding-left: 8px; }
  .content { padding: 25px 16px 45px; }
  .page-header, .public-schedule-intro, .schedule-toolbar { align-items: stretch; flex-direction: column; }
  .page-header h1 { font-size: 2.35rem; }
  .button-row { width: 100%; }
  .button-row .button { flex: 1; }
  .platform-banner { align-items: flex-start; flex-direction: column; gap: 12px; }
  .metric-grid, .club-card-grid, .event-card-grid, .station-grid, .assignment-grid, .public-assignment-grid { grid-template-columns: 1fr; }
  .metric-card { min-height: 95px; }
  .event-row { grid-template-columns: 50px minmax(0,1fr); }
  .event-row-actions { grid-column: 2; display: flex; justify-content: flex-start; }
  .event-row-title { align-items: flex-start; }
  .form-grid { grid-template-columns: 1fr; }
  .form-grid .span-2 { grid-column: auto; }
  .check-label { padding-top: 0; }
  .builder-steps { grid-template-columns: 1fr; }
  .schedule-summary { grid-template-columns: repeat(3, 1fr); }
  .schedule-summary > div { grid-column: span 3; }
  .schedule-summary > span { border-left: 0; border-top: 1px solid var(--line); padding-top: 10px; }
  .filter-chips { overflow-x: auto; }
  .filter-chips button { white-space: nowrap; }
  .search-control { width: 100%; }
  .assignment-card { min-height: 0; }
  .timeline::before { left: 70px; }
  .timeline-item { grid-template-columns: 50px 39px minmax(0,1fr); }
  .timeline-card-top { flex-direction: column; }
  .timeline-actions { flex-wrap: wrap; }
  .auth-shell { padding: 15px; }
  .auth-brand-block { min-height: 280px; padding: 30px; }
  .auth-form-panel { padding: 30px; }
  .public-header { padding: 0 16px; }
  .public-header .button { min-height: 36px; padding: 0 11px; }
  .public-header { height: auto; min-height: 76px; padding-top: 10px; padding-bottom: 10px; }
  .public-header-actions { gap: 9px; }
  .public-header .header-clock { min-width: 82px; padding: 6px 8px; }
  .public-header .header-clock strong { font-size: .67rem; }
  .public-header .header-clock small { display: none; }
  .public-content { width: calc(100% - 24px); padding-top: 20px; }
  .public-event-hero { min-height: auto; padding: 30px 23px; border-radius: 19px; gap: 28px; }
  .public-event-hero h1 { font-size: 3.25rem; }
  .public-event-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
  .public-event-meta span:first-child { grid-column: span 2; }
  .public-event-card { grid-template-columns: 61px 1fr; }
  .public-arrow { display: none; }
  .flash { top: 76px; right: 16px; }
  .site-footer { flex-direction: column; gap: 3px; padding: 15px; }
  .site-footer span + span::before { display: none; }
}

@media (max-width: 520px) {
  .topbar-title, .topbar .user-menu { display: none; }
  .topbar-actions { gap: 8px; }
  .club-switcher { min-width: 92px; max-width: 112px; }
  .public-header { align-items: flex-start; flex-wrap: wrap; }
  .public-header-actions { width: 100%; justify-content: space-between; }
  .public-header .header-clocks { flex: 1; }
  .public-header .header-clock { min-width: 0; flex: 1; }
}

/* HamOps 3.1: event-wide band schedule */
.band-selector-panel {
  margin-bottom: 20px;
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: linear-gradient(180deg, #ffffff 0%, #f8fbfc 100%);
  box-shadow: var(--shadow-soft);
}
.band-selector-heading {
  margin-bottom: 16px;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
}
.band-selector-heading h2 {
  margin: 5px 0 0;
  color: var(--navy);
  font-size: 1.35rem;
  letter-spacing: -.025em;
}
.band-selector {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(92px, 1fr));
  gap: 9px;
}
.band-selector-item {
  min-height: 66px;
  padding: 11px 12px;
  border: 1px solid #d9e3e8;
  border-radius: 12px;
  background: white;
  color: var(--navy);
  display: grid;
  align-content: center;
  text-decoration: none;
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease, background .16s ease;
}
.band-selector-item:hover {
  transform: translateY(-1px);
  border-color: #8fb5c2;
  box-shadow: 0 8px 22px rgba(16, 43, 70, .08);
}
.band-selector-item strong { font-size: .86rem; }
.band-selector-item small { margin-top: 4px; color: var(--ink-soft); font-size: .68rem; }
.band-selector-item.active {
  border-color: var(--navy);
  background: var(--navy);
  color: white;
  box-shadow: 0 10px 24px rgba(16, 43, 70, .18);
}
.band-selector-item.active small { color: #bdd0db; }
.compact-schedule-toolbar { margin-bottom: 20px; }
.schedule-view-note {
  color: #536875;
  font-size: .78rem;
  line-height: 1.5;
}
.schedule-view-note strong { color: var(--navy); }
.event-days { display: grid; gap: 28px; }
.event-day-section {
  border: 1px solid var(--line);
  border-radius: 20px;
  background: white;
  overflow: hidden;
  box-shadow: var(--shadow-soft);
}
.event-day-heading {
  padding: 20px 22px;
  border-bottom: 1px solid var(--line);
  background: linear-gradient(135deg, #f7fafb, #eef5f7);
  display: flex;
  align-items: center;
  gap: 15px;
}
.event-day-date {
  width: 58px;
  height: 62px;
  flex: 0 0 58px;
  border-radius: 13px;
  background: var(--navy);
  color: white;
  display: grid;
  place-items: center;
  align-content: center;
  line-height: 1;
}
.event-day-date span {
  color: #abc1cf;
  font-size: .62rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.event-day-date strong { margin-top: 5px; font-size: 1.25rem; }
.event-day-heading h2 {
  margin: 4px 0 3px;
  color: var(--navy);
  font-size: 1.18rem;
  letter-spacing: -.02em;
}
.event-day-heading p { margin: 0; color: var(--ink-soft); font-size: .72rem; }
.band-overview-list { display: grid; }
.band-overview-row {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  border-bottom: 1px solid var(--line);
}
.band-overview-row:last-child { border-bottom: 0; }
.band-overview-row[hidden], .selected-band-slot[hidden] { display: none; }
.band-overview-time {
  padding: 19px 18px;
  border-right: 1px solid var(--line);
  background: #fbfcfd;
  display: grid;
  align-content: start;
}
.band-overview-time strong { color: var(--navy); font-size: .92rem; }
.band-overview-time span { margin-top: 3px; color: var(--ink-soft); font-size: .7rem; }
.band-overview-time small {
  margin-top: 12px;
  color: #3f7658;
  font-size: .65rem;
  font-weight: 750;
}
.band-overview-grid {
  padding: 13px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(105px, 1fr));
  gap: 8px;
}
.band-overview-form { margin: 0; min-width: 0; display: flex; text-decoration: none; }
.band-overview-form .band-overview-card {
  width: 100%;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.band-overview-card {
  min-height: 94px;
  padding: 11px;
  border: 1px solid #dce5e9;
  border-radius: 11px;
  background: white;
  color: var(--navy);
  display: flex;
  flex-direction: column;
  text-decoration: none;
  transition: transform .15s ease, border-color .15s ease, background .15s ease;
}
.band-overview-card:hover { transform: translateY(-1px); border-color: #88afbc; }
.band-overview-card.occupied { border-color: #abcbd4; background: #f5fbfc; }
.band-overview-card.mine { border-color: #5b99aa; background: #eaf6f8; box-shadow: inset 0 0 0 1px rgba(29,111,138,.08); }
.band-overview-card.unavailable { background: #f8f9fa; opacity: .68; }
.band-overview-name {
  color: var(--blue);
  font-size: .68rem;
  font-weight: 900;
  letter-spacing: .045em;
  text-transform: uppercase;
}
.band-operator-stack { margin-top: 8px; display: grid; gap: 2px; }
.band-operator-stack strong { color: var(--navy); font-size: .69rem; line-height: 1.25; }
.band-operator-stack em { color: var(--ink-soft); font-size: .61rem; font-style: normal; }
.band-overview-card small { margin-top: auto; padding-top: 7px; color: var(--ink-soft); font-size: .61rem; }
.band-open-label { margin-top: 11px; color: #397452; font-size: .79rem; }
.band-full-label { margin-top: 11px; color: #73808a; font-size: .79rem; }
.selected-band-slot-list { display: grid; }
.selected-band-slot { border-bottom: 1px solid var(--line); }
.selected-band-slot:last-child { border-bottom: 0; }
.selected-band-slot-heading {
  padding: 16px 20px;
  background: #fbfcfd;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.selected-band-slot-heading > div:first-child { display: grid; }
.selected-band-slot-heading strong { color: var(--navy); font-size: 1rem; }
.selected-band-slot-heading span { color: var(--ink-soft); font-size: .7rem; }
.slot-band-status { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.slot-band-status span {
  padding: 6px 9px;
  border-radius: 999px;
  background: #edf3f5;
  color: #536875;
  font-size: .64rem;
  font-weight: 750;
}
.selected-band-slot-body {
  padding: 18px 20px 21px;
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: 18px;
}
.band-operators-panel, .band-openings-panel {
  min-width: 0;
  padding: 16px;
  border: 1px solid #e0e7ea;
  border-radius: 14px;
  background: #fff;
}
.band-openings-panel { background: #f9fbfc; }
.mini-section-heading { margin-bottom: 12px; }
.mini-section-heading h3 { margin: 0; color: var(--navy); font-size: .86rem; }
.mini-section-heading small { display: block; margin-top: 4px; color: var(--ink-soft); font-size: .65rem; }
.band-operator-list, .band-position-list { display: grid; gap: 9px; }
.band-operator-card, .band-position-card {
  --station-accent: var(--blue);
  position: relative;
  min-width: 0;
  padding: 12px 12px 12px 16px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: white;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  overflow: hidden;
}
.band-operator-card.mine { border-color: #8ebbc8; background: #f3fafc; }
.band-operator-accent {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  background: var(--station-accent);
}
.band-operator-card > div, .band-position-copy { min-width: 0; display: grid; }
.band-operator-card strong, .band-position-card strong {
  color: var(--navy);
  font-size: .74rem;
  overflow-wrap: anywhere;
}
.band-operator-card small, .band-position-card small { margin-top: 3px; color: #526674; font-size: .66rem; }
.band-operator-card > div > span, .band-position-card .band-position-copy > span { margin-top: 3px; color: var(--ink-soft); font-size: .62rem; }
.band-position-card { grid-template-columns: 7px minmax(0, 1fr); align-items: start; padding-left: 11px; }
.band-position-swatch { width: 7px; height: 43px; border-radius: 999px; background: var(--station-accent); }
.band-position-card form, .band-operator-card form { margin: 0; }
.band-position-card .band-position-swatch { grid-row: 1 / span 2; }
.band-position-card .mode-choice-list { grid-column: 2; width: 100%; margin-top: 3px; justify-content: flex-start; }
.band-position-card .mode-choice-list form { flex: 0 0 auto; }
.band-empty-note, .already-booked-note {
  min-height: 92px;
  padding: 16px;
  border: 1px dashed #b9cbd2;
  border-radius: 11px;
  background: #f8fbfc;
  display: grid;
  align-content: center;
}
.band-empty-note.full { background: #fafafa; }
.band-empty-note strong, .already-booked-note strong { color: var(--navy); font-size: .74rem; }
.band-empty-note span, .already-booked-note span { margin-top: 5px; color: var(--ink-soft); font-size: .66rem; line-height: 1.45; }
.already-booked-note { border-style: solid; border-color: #b5d1da; background: #f2f9fb; }
.schedule-footnote { margin: 16px 0 0; color: var(--ink-soft); font-size: .68rem; }

@media (max-width: 1050px) {
  .band-overview-row { grid-template-columns: 125px minmax(0, 1fr); }
  .band-overview-grid { grid-template-columns: repeat(4, minmax(100px, 1fr)); overflow-x: auto; }
  .selected-band-slot-body { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  .band-selector-panel { padding: 16px; border-radius: 15px; }
  .band-selector-heading { align-items: stretch; flex-direction: column; }
  .band-selector { display: flex; overflow-x: auto; padding-bottom: 4px; scroll-snap-type: x proximity; }
  .band-selector-item { min-width: 92px; flex: 0 0 92px; scroll-snap-align: start; }
  .event-day-heading { padding: 16px; }
  .event-day-heading h2 { font-size: 1rem; }
  .band-overview-row { grid-template-columns: 1fr; }
  .band-overview-time { padding: 13px 15px; border-right: 0; border-bottom: 1px solid var(--line); grid-template-columns: auto auto 1fr; align-items: baseline; gap: 7px; }
  .band-overview-time small { margin: 0 0 0 auto; }
  .band-overview-grid { padding: 11px; display: flex; overflow-x: auto; }
  .band-overview-card { min-width: 112px; flex: 0 0 112px; }
  .selected-band-slot-heading { align-items: flex-start; flex-direction: column; }
  .slot-band-status { justify-content: flex-start; }
  .selected-band-slot-body { padding: 13px; }
  .band-operators-panel, .band-openings-panel { padding: 13px; }
  .band-position-card, .band-operator-card { grid-template-columns: minmax(0, 1fr); }
  .band-position-card { padding-left: 16px; }
  .band-position-swatch { position: absolute; left: 0; top: 0; bottom: 0; width: 4px; height: auto; border-radius: 0; }
  .band-position-card form .button, .band-operator-card form .button { width: 100%; }
  .band-position-card .mode-choice-list { grid-column: auto; }
  .band-position-card .mode-choice-list form { flex: 1 1 105px; }
}

/* Event logs */
.event-log-summary { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.event-log-upload-panel { margin-top: 22px; }
.event-log-upload-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 16px; }
.event-log-file-control { min-width: 0; display: grid; gap: 7px; }
.event-log-file-control > span { color: var(--ink); font-size: .72rem; font-weight: 800; }
.event-log-file-control input[type="file"] { width: 100%; min-height: 48px; padding: 9px; border: 1px dashed #9db6c0; border-radius: 12px; background: #f8fbfc; color: var(--ink); }
.event-log-file-control small { color: var(--ink-soft); font-size: .64rem; }
.event-log-table-panel { margin-top: 22px; }
.event-log-empty { padding: 44px 22px; }
.event-log-filename { display: block; max-width: 340px; color: var(--navy); overflow-wrap: anywhere; }
.event-log-size { display: block; margin-top: 4px; color: var(--ink-soft); font-size: .62rem; }
.event-log-contact-count { min-width: 42px; padding: 6px 9px; display: inline-flex; justify-content: center; border-radius: 999px; background: var(--blue-soft); color: #315e70; font-weight: 850; }
.compact-actions { flex-wrap: nowrap; }
.compact-actions form { margin: 0; }
.user-initials.small { width: 32px; height: 32px; font-size: .62rem; }
.inline-alert code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }

@media (max-width: 720px) {
  .event-log-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .event-log-upload-form { grid-template-columns: 1fr; }
  .event-log-upload-form .button { width: 100%; }
  .compact-actions { flex-wrap: wrap; }
}

/* HamOps 4.0 public-service foundation */
.event-card-type-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.event-card-type-row > small { color: var(--blue); font-weight: 850; font-size: .6rem; letter-spacing: .08em; text-transform: uppercase; }
.event-type-badge { display: inline-flex; align-items: center; width: fit-content; padding: 5px 8px; border: 1px solid #cfd9de; border-radius: 999px; background: #f5f7f8; color: #526674; font-size: .55rem; font-weight: 850; letter-spacing: .05em; text-transform: uppercase; }
.event-type-badge.public-service { border-color: #b5d1da; background: #eef7f9; color: #315e70; }
.event-type-badge.special-event { border-color: #d7cfb6; background: #faf7ed; color: #6f5c2b; }
.event-type-inline { font-weight: 800; color: #526674; }

.public-service-summary { margin-bottom: 22px; display: grid; grid-template-columns: 1.35fr repeat(3, minmax(0, 1fr)); gap: 12px; }
.public-service-summary article { min-width: 0; padding: 18px; border: 1px solid var(--line); border-radius: 15px; background: white; box-shadow: var(--shadow-soft); display: grid; gap: 5px; }
.public-service-summary article > small { color: #71808c; font-size: .58rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.public-service-summary article > strong { color: var(--navy); font-size: 1.55rem; }
.public-service-summary article > span { color: var(--ink-soft); font-size: .64rem; }
.public-service-summary .progress { margin: 3px 0; }
.public-service-foundation { margin-bottom: 22px; }
.foundation-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.foundation-step { min-width: 0; padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: #fafbfc; display: grid; gap: 5px; }
.foundation-step.active { border-color: #9fc2ce; background: #f0f8fa; }
.foundation-step strong { color: var(--navy); font-size: .72rem; }
.foundation-step span { color: var(--ink-soft); font-size: .63rem; line-height: 1.45; }
.ps-position-list { display: grid; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.ps-position-list > div { min-width: 0; padding: 12px 14px; display: grid; grid-template-columns: 1.4fr 1fr auto; gap: 14px; align-items: center; border-bottom: 1px solid var(--line); color: #455868; font-size: .7rem; }
.ps-position-list > div:last-child { border-bottom: 0; }
.ps-position-list span:first-child { display: grid; gap: 2px; }
.ps-position-list strong { color: var(--navy); }
.ps-position-list small { color: var(--ink-soft); font-size: .6rem; }
.table-wrap { overflow-x: auto; }
.ps-channel-table td:nth-child(2) { min-width: 150px; }
.ps-channel-table td:nth-child(2) strong, .ps-channel-table td:nth-child(2) small { display: block; }
.ps-channel-table td:nth-child(2) small { margin-top: 3px; color: var(--ink-soft); font-size: .6rem; }
.inline-form-details { margin-top: 17px; border-top: 1px solid var(--line); padding-top: 15px; }
.inline-form-details > summary { width: fit-content; color: var(--blue); cursor: pointer; font-size: .7rem; font-weight: 850; }
.inline-form-details > .form-grid { margin-top: 15px; }
.public-service-public-note { margin-top: 20px; display: flex; gap: 16px; align-items: flex-start; }
.public-service-public-note h2 { margin: 0 0 5px; color: var(--navy); font-size: 1rem; }
.public-service-public-note p { margin: 0; color: var(--ink-soft); font-size: .7rem; line-height: 1.55; }

@media (max-width: 920px) {
  .public-service-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .foundation-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
  .public-service-summary, .foundation-grid { grid-template-columns: 1fr; }
  .ps-position-list > div { grid-template-columns: 1fr; gap: 5px; }
  .event-card-type-row { align-items: flex-start; flex-direction: column; }
  .public-service-public-note { flex-direction: column; }
}

/* HamOps 4.1 volunteer and ICS channel workflows */
.honeypot-field{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.volunteer-signin-choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.volunteer-signin-choice>div{border:1px solid var(--border,#d8dee5);border-radius:12px;padding:1rem;background:var(--panel,#fff)}
.volunteer-signin-choice h3{margin:.1rem 0 .4rem}.volunteer-signin-choice p{margin:0 0 1rem;color:var(--muted,#667085)}
.volunteer-account-strip{display:flex;align-items:center;gap:.75rem;padding:.8rem 0 1rem;border-bottom:1px solid var(--border,#d8dee5);margin-bottom:1rem}
.volunteer-account-strip>div{min-width:0;flex:1}.volunteer-account-strip strong,.volunteer-account-strip small{display:block}.volunteer-account-strip small{color:var(--muted,#667085)}
.equipment-fieldset{border:1px solid var(--border,#d8dee5);border-radius:10px;padding:.8rem 1rem}.equipment-fieldset legend{font-weight:700;padding:0 .35rem}.equipment-fieldset .check-label{display:inline-flex;margin-right:1rem}
.volunteer-cancel-form{margin-top:1rem;display:flex;justify-content:flex-end}
.signup-link-box{display:flex;gap:1rem;align-items:center;justify-content:space-between;padding:1rem;border:1px solid var(--border,#d8dee5);border-radius:12px;margin-bottom:1rem;background:var(--surface,#f8fafc)}
.signup-link-box>div{min-width:0;flex:1}.signup-link-box small,.signup-link-box code{display:block}.signup-link-box code{margin-top:.35rem;overflow-wrap:anywhere;white-space:normal}
.compact-inline-form{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap}.compact-inline-form select{min-width:8rem}
[data-channel-form] [hidden]{display:none!important}
.ps-channel-table td small{display:block;margin-top:.25rem;color:var(--muted,#667085)}
@media(max-width:700px){.volunteer-signin-choice{grid-template-columns:1fr}.signup-link-box{align-items:stretch;flex-direction:column}.compact-inline-form{align-items:stretch}.compact-inline-form select,.compact-inline-form button{width:100%}}
.staffing-count{font-weight:700}.staffing-count.good{color:#137333}.staffing-count.warn{color:#9a6700}.staffing-count.bad{color:#b42318}.assigned-duty{padding:.35rem 0;border-bottom:1px solid var(--border,#e5e7eb)}.assigned-duty:last-child{border-bottom:0}.assigned-duty strong,.assigned-duty small{display:block}.assigned-duty form{margin-top:.15rem}.danger-link{color:#b42318;background:none;border:0;padding:0;cursor:pointer}.volunteer-assign-form{min-width:18rem;margin-bottom:.55rem}

/* HamOps 4.3 shared communications channel library */
.channel-library-picker{display:flex;gap:.75rem;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;padding:1rem;margin:0 0 1rem;border:1px solid var(--border);border-radius:12px;background:var(--panel-soft,#f7f9fb)}
.channel-library-picker .compact-inline-form{flex:1 1 28rem}.channel-library-picker label{min-width:min(100%,24rem)}
.library-save-options{padding:.75rem 1rem;border:1px dashed var(--border);border-radius:10px;background:rgba(29,111,138,.04)}
@media(max-width:700px){.channel-library-picker{align-items:stretch}.channel-library-picker .compact-inline-form{flex-basis:100%}.channel-library-picker label{min-width:0;width:100%}}

/* HamOps 4.4 communications and notifications */
.inline-action-form{display:inline-flex;margin-left:.75rem;vertical-align:middle}
.communications-compose textarea{font-family:inherit;line-height:1.5}
.communications-recipient-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem .9rem;max-height:18rem;overflow:auto}
.communications-recipient-picker .check-label{align-items:flex-start}
.communications-recipient-picker small{display:block;color:var(--ink-soft)}
.reminder-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:1rem 0}
.reminder-list .check-label{padding:.8rem;border:1px solid var(--line);border-radius:10px;background:#fafbfc;align-items:flex-start}
.reminder-list strong,.reminder-list small{display:block}.reminder-list small{margin-top:.2rem;color:var(--ink-soft)}
.message-recipient-details{margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--line)}
.message-preview-text{white-space:normal;line-height:1.6;color:var(--ink);overflow-wrap:anywhere}
.acknowledgement-card{max-width:780px;margin:0 auto}
.settings-list{display:grid;gap:.55rem;margin:0}.settings-list>div{display:grid;grid-template-columns:minmax(10rem,.7fr) 1.3fr;gap:1rem;padding:.65rem 0;border-bottom:1px solid var(--line)}.settings-list>div:last-child{border-bottom:0}.settings-list dt{font-weight:800;color:var(--ink-soft)}.settings-list dd{margin:0;color:var(--navy);overflow-wrap:anywhere}
.metric-grid.compact{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.metric-grid.compact article{padding:.8rem 1rem;border:1px solid var(--line);border-radius:10px;background:#fafbfc;display:grid;gap:.2rem}.metric-grid.compact span{font-size:.62rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em;font-weight:800}.metric-grid.compact strong{font-size:1.15rem;color:var(--navy)}.metric-grid.compact small{font-size:.62rem;color:var(--ink-soft)}
@media(max-width:760px){.communications-recipient-picker,.reminder-list,.metric-grid.compact{grid-template-columns:1fr}.settings-list>div{grid-template-columns:1fr;gap:.2rem}.inline-action-form{display:flex;margin:.6rem 0 0}.inline-action-form .button{width:100%}}

/* HamOps 4.5 event documents and email attachments */
.attachment-picker{border:1px solid var(--line);border-radius:12px;padding:1rem;display:grid;gap:1rem}.attachment-picker legend{font-weight:850;color:var(--navy);padding:0 .35rem}.attachment-generated,.event-document-choices{display:grid;gap:.55rem}.attachment-generated .check-label,.event-document-choices .check-label{padding:.65rem .75rem;border:1px solid var(--line);border-radius:10px;background:#fafbfc;align-items:flex-start}.attachment-generated strong,.attachment-generated small,.event-document-choices strong,.event-document-choices small{display:block}.attachment-generated small,.event-document-choices small{margin-top:.18rem;color:var(--ink-soft)}.sensitive-option{border-color:#e3c39b!important;background:#fffaf2!important}.sensitive-confirm{margin-left:1.6rem}.event-document-choices h3{margin:.15rem 0 .25rem;font-size:.75rem;color:var(--navy)}
.send-review-panel{border-color:#a9c7d2}.send-review-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:1.25rem}.send-review-grid h3{margin:.2rem 0 .65rem;color:var(--navy)}.attachment-list{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}.attachment-list li,.attachment-list>a{padding:.65rem .75rem;border:1px solid var(--line);border-radius:9px;background:#fafbfc;text-decoration:none;color:inherit;display:grid;gap:.15rem}.attachment-list strong,.attachment-list span{display:block}.attachment-list span{font-size:.62rem;color:var(--ink-soft)}.recipient-review-list{display:grid;gap:.35rem;max-height:18rem;overflow:auto}.recipient-review-list>div{padding:.5rem .65rem;border-bottom:1px solid var(--line);display:grid;gap:.1rem}.recipient-review-list span{font-size:.62rem;color:var(--ink-soft)}.history-attachments{margin:.6rem 0 1rem;grid-template-columns:repeat(2,minmax(0,1fr))}
.event-document-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.event-document-card{border:1px solid var(--line);border-radius:12px;padding:.9rem;background:#fafbfc;display:grid;grid-template-columns:50px minmax(0,1fr);gap:.8rem;align-items:start}.event-document-icon{width:50px;height:50px;border-radius:10px;background:var(--blue-soft);color:#315e70;display:grid;place-items:center;font-size:.58rem;font-weight:900}.event-document-main{min-width:0;display:grid;gap:.2rem}.event-document-main strong{color:var(--navy)}.event-document-main span,.event-document-main small{color:var(--ink-soft);font-size:.63rem;overflow-wrap:anywhere}.event-document-card details{grid-column:1/-1;border-top:1px solid var(--line);padding-top:.55rem}.event-document-card summary{cursor:pointer;color:var(--blue);font-size:.67rem;font-weight:850}.compact-document-form{display:grid;grid-template-columns:1fr 1fr auto;gap:.5rem;align-items:end;margin-top:.65rem}.compact-document-form label{display:grid;gap:.2rem}.compact-document-form label span{font-size:.58rem;font-weight:800;color:var(--ink-soft)}.compact-document-delete{margin-top:.55rem}.personal-documents{margin-top:.5rem}
@media(max-width:800px){.send-review-grid,.event-document-grid{grid-template-columns:1fr}.history-attachments{grid-template-columns:1fr}.compact-document-form{grid-template-columns:1fr}.sensitive-confirm{margin-left:0}}

/* HamOps 4.6 custom volunteer signup questions and agreements */
.signup-question-fieldset{border:1px solid var(--border,#d8dee5);border-radius:12px;padding:1rem;display:grid;gap:1rem}
.signup-question-fieldset>legend{font-weight:750;padding:0 .4rem}
.signup-question-item{padding:1rem;border:1px solid var(--border,#d8dee5);border-radius:10px;background:var(--surface,#f8fafc)}
.signup-question-item>label{display:grid;gap:.4rem;margin:0}.signup-question-item label>small{display:block;color:var(--muted,#667085);font-weight:400;line-height:1.45}
.signup-question-item.agreement-item{background:var(--panel,#fff);border-width:2px}
.agreement-copy strong{display:block;font-size:1rem}.agreement-copy p{margin:.55rem 0 0;white-space:normal;line-height:1.55;color:var(--text,#1f2937)}
.agreement-check{margin-top:.8rem;font-weight:700}
.signup-checkbox-options{display:flex;flex-wrap:wrap;gap:.55rem 1rem;padding:.35rem 0}.signup-checkbox-options .check-label{margin:0}
.signup-question-admin-list{display:grid;gap:.75rem}.signup-question-admin{border:1px solid var(--border,#d8dee5);border-radius:12px;background:var(--panel,#fff);overflow:hidden}
.signup-question-admin>summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;cursor:pointer;list-style:none}.signup-question-admin>summary::-webkit-details-marker{display:none}.signup-question-admin>summary span:first-child{min-width:0;flex:1}.signup-question-admin>summary strong,.signup-question-admin>summary small{display:block}.signup-question-admin>summary small{margin-top:.25rem;color:var(--muted,#667085);font-weight:400}
.signup-question-edit-form{padding:1rem;border-top:1px solid var(--border,#d8dee5);background:var(--surface,#f8fafc)}.signup-question-actions{padding:0 1rem 1rem}
.equipment-answer-badges{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.45rem}.equipment-answer{display:inline-flex;padding:.18rem .42rem;border-radius:999px;font-size:.72rem;font-weight:750;background:#eef2f6;color:#475467}.equipment-answer.yes{background:#e7f6ec;color:#137333}.equipment-answer.no{background:#fdecec;color:#b42318}.equipment-answer.missing{background:#fff3cd;color:#7a5a00}
.volunteer-answer-details summary{cursor:pointer;font-weight:700;white-space:nowrap}.volunteer-answer-details dl{margin:.6rem 0 0;min-width:18rem;display:grid;gap:.6rem}.volunteer-answer-details dl>div{border-top:1px solid var(--border,#e5e7eb);padding-top:.5rem}.volunteer-answer-details dt{font-size:.78rem;font-weight:700;line-height:1.35}.volunteer-answer-details dd{margin:.15rem 0 0;color:var(--muted,#667085);font-size:.8rem}.volunteer-answer-details em{font-size:.72rem;color:#9a6700}
@media(max-width:700px){.signup-question-admin>summary{align-items:flex-start;flex-direction:column}.signup-checkbox-options{display:grid}.volunteer-answer-details dl{min-width:0}}

/* HamOps 4.7.1 integrated ICS-205 / ICS-205A duty mapping */
.channel-duty-mapping{border:1px solid var(--line);border-radius:12px;padding:1rem;background:#fafbfc;display:grid;gap:.8rem}
.channel-duty-mapping>legend{padding:0 .4rem;font-weight:850;color:var(--navy)}
.channel-duty-mapping>.muted-copy{margin:0}
.channel-duty-area-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}
.channel-duty-area{min-width:0;padding:.7rem .8rem;border:1px solid var(--line);border-radius:9px;background:#fff;display:grid;gap:.35rem}
.channel-duty-area>span{font-weight:800;color:var(--navy)}
.channel-duty-area>span small{display:block;margin-top:.12rem;color:var(--ink-soft);font-size:.6rem;font-weight:600}
.channel-duty-area>small{color:var(--ink-soft);font-size:.59rem;line-height:1.4}
.channel-position-overrides{border-top:1px solid var(--line);padding-top:.7rem}
.channel-position-overrides>summary{cursor:pointer;color:var(--blue);font-size:.68rem;font-weight:850}
.channel-position-overrides>.muted-copy{margin:.6rem 0}
@media(max-width:760px){.channel-duty-area-grid{grid-template-columns:1fr}}

/* HamOps 4.7.3: readable ICS-205 channel assignment inside Areas & duty positions */
.position-list > .position-radio-row{
  padding:11px;
  border-radius:9px;
  background:#fff;
  border:1px solid var(--line);
  display:grid;
  gap:10px;
  min-width:0;
}
.position-radio-heading{
  display:grid;
  gap:2px;
  min-width:0;
}
.position-radio-heading strong{font-size:.69rem;color:var(--navy);line-height:1.25}
.position-radio-heading small,.position-radio-note{color:var(--ink-soft);font-size:.58rem}
.position-channel-form{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:9px;
  min-width:0;
}
.position-channel-form label{display:grid;gap:4px;min-width:0}
.position-channel-form label>span{color:#435565;font-size:.59rem;font-weight:800}
.position-channel-form select{
  display:block;
  width:100%;
  max-width:100%;
  min-width:0;
  min-height:36px;
  box-sizing:border-box;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
  padding:7px 30px 7px 9px;
  color:var(--ink);
  font:inherit;
  font-size:.63rem;
}
.position-channel-form .button{justify-self:start;white-space:nowrap}
.position-radio-fallback,
.position-radio-detail{
  display:block;
  margin-top:1px;
  color:var(--ink-soft);
  font-size:.56rem;
  line-height:1.35;
  overflow-wrap:anywhere;
}
.position-radio-fallback::before{content:"↳ ";color:var(--blue);font-weight:900}
@media(max-width:760px){.position-channel-form .button{width:100%;justify-content:center}}

/* HamOps 4.8.0 public site landing page */
.public-nav{display:flex;align-items:center;gap:18px}
.public-nav a{color:var(--ink-soft);text-decoration:none;font-size:.7rem;font-weight:800}
.public-nav a:hover{color:var(--blue)}
.home-hero{min-height:610px;padding:clamp(34px,6vw,78px);border-radius:28px;background:linear-gradient(125deg,#0e2943 0%,#153f5d 55%,#1d6f8a 100%);color:#fff;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(380px,.92fr);gap:clamp(35px,6vw,90px);align-items:center;position:relative;overflow:hidden;box-shadow:var(--shadow)}
.home-hero::before{content:"";position:absolute;width:760px;height:760px;border:75px solid rgba(255,255,255,.045);border-radius:50%;right:-380px;top:-410px}
.home-hero::after{content:"";position:absolute;left:-120px;right:-120px;bottom:-180px;height:320px;opacity:.14;background:repeating-radial-gradient(ellipse at 50% 100%,transparent 0 27px,rgba(255,255,255,.55) 28px 29px)}
.home-hero-copy,.home-hero-visual{position:relative;z-index:1}
.home-hero .eyebrow{color:#add7df}
.home-hero h1{margin:14px 0 20px;max-width:790px;font-size:clamp(3rem,6.4vw,6rem);line-height:.91;letter-spacing:-.065em}
.home-hero h1 span{color:#bfe4e7}
.home-hero-copy>p{max-width:720px;margin:0;color:#c5d7e1;font-size:clamp(.9rem,1.5vw,1.08rem);line-height:1.75}
.home-hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}.home-hero-actions .button-primary{background:#fff;color:var(--navy);border-color:#fff}.home-hero-actions .button-outline{background:rgba(255,255,255,.06);color:#fff;border-color:rgba(255,255,255,.28)}
.home-public-note{margin-top:24px;display:flex;gap:8px;flex-wrap:wrap;color:#9eb8c9;font-size:.67rem;line-height:1.5}.home-public-note strong{color:#d8e8ee}
.home-hero-visual{min-height:455px;display:grid;align-content:center}
.home-radio-mark{width:230px;height:230px;margin:auto;position:relative;display:grid;place-items:center}.home-radio-mark>span{position:absolute;border:1px solid rgba(190,226,232,.2);border-radius:50%}.home-radio-mark>span:nth-child(1){inset:0}.home-radio-mark>span:nth-child(2){inset:34px}.home-radio-mark>span:nth-child(3){inset:69px}.home-radio-mark svg{width:85px;height:85px;fill:none;stroke:#d9f0f2;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.home-workflow-card{position:absolute;width:min(260px,64%);padding:15px 17px;border:1px solid rgba(255,255,255,.15);border-radius:14px;background:rgba(255,255,255,.09);backdrop-filter:blur(10px);box-shadow:0 14px 36px rgba(0,0,0,.13);display:grid;gap:4px}.home-workflow-card small{color:#98c3ce;font-size:.55rem;text-transform:uppercase;letter-spacing:.1em;font-weight:850}.home-workflow-card strong{font-size:.78rem}.home-workflow-card span{color:#afc6d2;font-size:.59rem}.home-workflow-card.one{top:16px;left:0}.home-workflow-card.two{top:50%;right:0;transform:translateY(-50%)}.home-workflow-card.three{bottom:15px;left:6%}
.home-ad-slot{margin:24px auto 0;max-width:1180px;padding:18px 20px;border:1px solid #d7dee2;border-radius:16px;background:#fff;display:grid;grid-template-columns:1fr minmax(190px,280px);gap:20px;align-items:center;box-shadow:var(--shadow-soft)}.home-ad-copy>span{color:#8c98a1;font-size:.52rem;font-weight:850;text-transform:uppercase;letter-spacing:.14em}.home-ad-copy h2{margin:6px 0 4px;color:var(--navy);font-size:1rem}.home-ad-copy p{max-width:720px;margin:0 0 5px;color:var(--ink-soft);font-size:.69rem;line-height:1.55}.home-ad-placeholder{min-height:80px;border:1px dashed #b9c5cb;border-radius:11px;background:#f8fafb;color:#80909b;display:grid;place-items:center;align-content:center}.home-ad-placeholder strong{font-size:.72rem}.home-ad-placeholder span{font-size:.57rem;margin-top:3px}.home-ad-image{height:90px;overflow:hidden;border-radius:11px;background:#f5f7f8}.home-ad-image img{width:100%;height:100%;object-fit:contain}
.home-section{padding:clamp(62px,8vw,100px) 0}.home-section-heading{max-width:810px;margin-bottom:34px}.home-section-heading.inline{max-width:none;display:flex;justify-content:space-between;align-items:end;gap:20px}.home-section-heading h2{margin:9px 0 12px;color:var(--navy);font-size:clamp(2rem,4vw,3.5rem);line-height:1.02;letter-spacing:-.045em}.home-section-heading p{margin:0;color:var(--ink-soft);line-height:1.75;font-size:.85rem}
.home-feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.home-feature-card{min-height:270px;padding:25px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:var(--shadow-soft);display:flex;flex-direction:column}.home-feature-number{width:38px;height:38px;border-radius:11px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;font-size:.61rem;font-weight:900}.home-feature-card h3{margin:22px 0 10px;color:var(--navy);font-size:1.05rem}.home-feature-card p{margin:0;color:var(--ink-soft);font-size:.72rem;line-height:1.65}.home-feature-card small{margin-top:auto;padding-top:22px;color:#71818c;font-size:.57rem;font-weight:750;line-height:1.45}
.home-audience-band{padding:clamp(34px,5vw,58px);border-radius:24px;background:#102b46;color:#fff;display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:50px;align-items:center}.home-audience-band .eyebrow{color:#9dcbd4}.home-audience-band h2{margin:10px 0 0;font-size:clamp(1.8rem,3.5vw,3rem);line-height:1.06;letter-spacing:-.04em}.home-audience-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.home-audience-grid article{padding:17px;border:1px solid rgba(255,255,255,.12);border-radius:13px;background:rgba(255,255,255,.055);display:grid;gap:5px}.home-audience-grid strong{font-size:.75rem}.home-audience-grid span{color:#afc3cf;font-size:.62rem;line-height:1.5}
.home-public-access{padding-bottom:55px}.home-public-access-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.home-public-access-grid>div{padding:21px;border-left:4px solid var(--blue);border-radius:10px;background:#fff;box-shadow:var(--shadow-soft);display:grid;gap:7px}.home-public-access-grid strong{color:var(--navy);font-size:.82rem}.home-public-access-grid span{color:var(--ink-soft);font-size:.67rem;line-height:1.55}
.home-upcoming{padding-top:35px}.home-event-grid{max-width:none}
.home-final-cta{margin-top:18px;padding:clamp(30px,5vw,55px);border:1px solid #cbdbe1;border-radius:22px;background:linear-gradient(135deg,#edf6f8,#fff);display:flex;align-items:center;justify-content:space-between;gap:35px}.home-final-cta h2{margin:8px 0 9px;color:var(--navy);font-size:clamp(1.65rem,3vw,2.55rem);letter-spacing:-.035em}.home-final-cta p{max-width:700px;margin:0;color:var(--ink-soft);font-size:.73rem;line-height:1.6}.home-final-cta .button-row{flex:0 0 auto;justify-content:flex-end;max-width:390px}.home-club-contact{width:100%;text-align:right;margin-top:2px}
.public-site-footer{min-height:88px;padding:20px clamp(20px,5vw,70px);justify-content:space-between}.public-site-footer>div{display:grid;gap:3px}.public-site-footer>div strong{color:var(--navy);font-size:.82rem}.public-site-footer>div span{color:var(--ink-soft);font-size:.6rem}.public-site-footer nav{display:flex;flex-wrap:wrap;gap:18px}.public-site-footer nav a{color:var(--ink-soft);text-decoration:none;font-size:.64rem;font-weight:750}.public-site-footer nav a:hover{color:var(--blue)}
@media(max-width:1050px){.home-hero{grid-template-columns:1fr;min-height:0}.home-hero-visual{min-height:400px;max-width:650px;width:100%;margin:auto}.home-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-audience-band{grid-template-columns:1fr}.public-nav{display:none}}
@media(max-width:760px){.home-hero{padding:34px 23px;border-radius:20px}.home-hero h1{font-size:clamp(2.75rem,13vw,4.2rem)}.home-hero-actions{display:grid}.home-hero-actions .button{width:100%}.home-hero-visual{min-height:330px}.home-radio-mark{width:185px;height:185px}.home-workflow-card{width:68%;padding:12px}.home-feature-grid,.home-public-access-grid,.home-audience-grid{grid-template-columns:1fr}.home-feature-card{min-height:230px}.home-ad-slot{grid-template-columns:1fr}.home-section-heading.inline{align-items:flex-start;flex-direction:column}.home-final-cta{align-items:stretch;flex-direction:column}.home-final-cta .button-row{display:grid;max-width:none}.home-club-contact{text-align:left}.public-site-footer{align-items:flex-start!important}.public-site-footer nav{gap:11px 16px}}
@media(max-width:520px){.home-hero-visual{display:none}.home-section{padding:52px 0}.home-audience-band{padding:27px 20px}.public-site-footer nav{display:grid;grid-template-columns:1fr 1fr}.public-header .public-nav{display:none}}

/* 4.8.1 event visibility and unlisted-signup controls */
.event-access-fieldset{border:1px solid var(--line);border-radius:14px;padding:1rem 1.05rem 1.05rem;background:#fafcfd}.event-access-fieldset legend{font-weight:850;color:var(--navy);padding:0 .4rem}.event-access-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.event-access-option{display:flex;align-items:flex-start;gap:.7rem;padding:.85rem .9rem;border:1px solid var(--line);border-radius:11px;background:#fff;cursor:pointer}.event-access-option input{width:18px!important;height:18px!important;min-height:18px!important;margin-top:.12rem;flex:0 0 auto}.event-access-option span,.event-access-option strong,.event-access-option small{display:block}.event-access-option strong{color:var(--navy);font-size:.92rem}.event-access-option small{margin-top:.25rem;color:var(--ink-soft);line-height:1.4}.event-access-state{margin-top:.75rem;padding:.7rem .8rem;border-radius:9px;background:#eef7fb;color:var(--ink-soft);font-size:.85rem}.event-access-state strong{color:var(--navy)}.signup-link-note{display:block;margin-top:.35rem;max-width:760px;color:var(--ink-soft);font-size:.78rem;line-height:1.4}.signup-link-box>div{min-width:0}.signup-link-box code{word-break:break-all}
@media(max-width:760px){.event-access-grid{grid-template-columns:1fr}}

/* HamOps 4.8.2: rename areas/positions and edit capacity after creation */
.station-edit-details,
.position-edit-details{min-width:0}
.station-edit-details{margin:10px 0 2px}
.station-edit-details>summary,
.position-edit-details>summary{list-style:none;display:inline-flex;align-items:center;gap:5px;color:var(--blue);cursor:pointer;font-size:.6rem;font-weight:850}
.station-edit-details>summary::-webkit-details-marker,
.position-edit-details>summary::-webkit-details-marker{display:none}
.station-edit-details>summary::before,
.position-edit-details>summary::before{content:"✎";font-size:.65rem}
.station-edit-form{margin-top:9px;padding:10px;border:1px solid var(--line);border-radius:9px;background:#f8fafb;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.station-edit-form .span-2{grid-column:1/-1}
.station-edit-form textarea{width:100%;box-sizing:border-box;resize:vertical;border:1px solid var(--line);border-radius:8px;background:#fff;padding:8px 9px;color:var(--ink);font:inherit;font-size:.66rem}
.station-edit-form input[type="color"]{width:100%;min-height:37px;padding:4px}
.position-edit-details{margin-top:-2px}
.position-edit-form{margin-top:7px;padding:9px;border:1px dashed var(--line);border-radius:8px;background:#fafbfc;grid-template-columns:minmax(0,1fr) 90px}
.position-edit-form .edit-note{grid-column:1/-1;color:var(--ink-soft);font-size:.56rem;line-height:1.4}
.position-edit-form .button{grid-column:1/-1;justify-self:start}
.edit-warning{display:block;color:#8a5a00;font-size:.56rem;line-height:1.4}
.position-basic-row{padding:9px 10px;border-radius:9px;background:#fff;border:1px solid var(--line);display:grid;gap:7px;min-width:0}
.position-basic-row>div{display:flex;align-items:center;justify-content:space-between;gap:10px}
.position-basic-row strong{font-size:.68rem}.position-basic-row small{color:var(--ink-soft);font-size:.58rem}
@media(max-width:760px){.station-edit-form,.position-edit-form{grid-template-columns:1fr}.station-edit-form .span-2,.position-edit-form .edit-note,.position-edit-form .button{grid-column:1}.position-edit-form .button{width:100%;justify-content:center}}

/* HamOps 4.9 Net Operations and attendance */
.net-request{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:12px 0;border-top:1px solid var(--line)}.net-request>div{display:grid;gap:3px}.net-request small{color:var(--ink-soft)}
.attendance-token-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:14px}.attendance-token-card{padding:18px;border:1px solid var(--line);border-radius:14px;background:#fafcfd;display:grid;justify-items:start;gap:14px}.attendance-token-card>div{min-width:0;display:grid;gap:5px}.attendance-token-card small{color:var(--ink-soft)}.attendance-token-card code{max-width:100%;font-size:.61rem;overflow-wrap:anywhere}.attendance-token-card img{border:10px solid #fff;border-radius:10px}
.attendance-public-card{width:min(620px,calc(100% - 32px));margin:clamp(35px,8vw,90px) auto;padding:clamp(25px,5vw,46px);border:1px solid var(--line);border-radius:22px;background:#fff;box-shadow:var(--shadow)}.attendance-public-card h1{margin:10px 0;color:var(--navy);font-size:clamp(2rem,6vw,3.4rem);line-height:1}.attendance-public-card>p{color:var(--ink-soft);line-height:1.6}.attendance-duty{margin:18px 0;padding:14px;border-radius:11px;background:var(--blue-soft);display:grid;gap:4px}.attendance-duty small{color:var(--ink-soft)}.attendance-public-form{margin-top:22px;display:grid;gap:16px}.attendance-public-form label{display:grid;gap:7px;font-weight:800}.attendance-public-form input{min-height:52px;padding:10px 13px;border:1px solid var(--line);border-radius:10px;font:inherit;font-size:1.15rem;text-transform:uppercase}.attendance-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.attendance-actions .button{min-height:48px}.privacy-note{display:block;margin-top:20px;color:var(--ink-soft);line-height:1.5}
@media(max-width:650px){.attendance-actions{grid-template-columns:1fr}.net-request{align-items:flex-start;flex-direction:column}}
.attendance-edit{position:relative}.attendance-edit>summary{cursor:pointer;color:var(--blue);font-size:.65rem;font-weight:850}.attendance-edit form{position:absolute;right:0;z-index:5;width:300px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:var(--shadow)}
.net-message-thread{display:grid;gap:10px;margin-bottom:16px}.net-message-thread article{max-width:78%;padding:11px 13px;border-radius:12px;background:#edf3f6}.net-message-thread article.listener{justify-self:start}.net-message-thread article.ncs{justify-self:end;background:var(--blue-soft)}.net-message-thread p{margin:4px 0;font-size:.72rem;line-height:1.45}.net-message-thread small{color:var(--ink-soft);font-size:.55rem}.net-reply-form{display:flex;gap:6px;margin-top:8px}.net-reply-form input{min-width:220px;border:1px solid var(--line);border-radius:7px;padding:7px 9px}
@media(max-width:650px){.attendance-edit form{position:fixed;left:16px;right:16px;bottom:16px;width:auto;max-height:80vh;overflow:auto}}

/* HamOps 4.9.5 readability fixes for net and volunteer identity data */
.net-checkin-table{min-width:860px}
.net-checkin-table th:nth-child(2),.net-checkin-table td:nth-child(2){width:30%;min-width:250px}
.net-station-cell{vertical-align:top;line-height:1.35}
.net-station-callsign,.net-station-name,.net-station-location{display:block}
.net-station-callsign{color:var(--navy);font-size:.78rem;font-weight:900;letter-spacing:.015em}
.net-station-name{margin-top:4px;color:var(--ink);font-size:.72rem;font-weight:700}
.net-station-location{margin-top:3px;color:var(--ink-soft);font-size:.62rem;line-height:1.4}

.volunteer-roster-wrap{width:100%;max-width:100%;min-width:0;padding-bottom:8px;overflow-x:auto;overscroll-behavior-inline:contain}
.volunteer-roster-table{width:100%;min-width:1250px;table-layout:fixed}
.volunteer-roster-table th:nth-child(1),.volunteer-roster-table td:nth-child(1){width:16%}
.volunteer-roster-table th:nth-child(2),.volunteer-roster-table td:nth-child(2){width:12%}
.volunteer-roster-table th:nth-child(3),.volunteer-roster-table td:nth-child(3){width:14%}
.volunteer-roster-table th:nth-child(4),.volunteer-roster-table td:nth-child(4){width:12%}
.volunteer-roster-table th:nth-child(5),.volunteer-roster-table td:nth-child(5){width:20%}
.volunteer-roster-table th:nth-child(6),.volunteer-roster-table td:nth-child(6){width:8%}
.volunteer-roster-table th:nth-child(7),.volunteer-roster-table td:nth-child(7){width:18%}
.volunteer-roster-table th,.volunteer-roster-table td{vertical-align:top;word-break:normal;overflow-wrap:normal}
.volunteer-identity{display:grid;justify-items:start;gap:4px;min-width:0}
.volunteer-identity strong{color:var(--navy);font-size:.8rem;line-height:1.25}
.volunteer-callsign{display:inline-flex;margin-top:1px;padding:3px 7px;border-radius:999px;background:var(--blue-soft);color:#315e70;font-size:.63rem;font-weight:900;letter-spacing:.035em;white-space:nowrap}
.volunteer-identity small{display:block;color:var(--ink-soft);font-size:.63rem;line-height:1.4}
.volunteer-identity-cell .equipment-answer-badges{margin-top:9px}
.volunteer-roster-table .assigned-duty{line-height:1.45}
.volunteer-roster-table .assigned-duty>strong{font-size:.7rem;line-height:1.35}
.volunteer-roster-table .volunteer-assign-form{min-width:0;width:100%;justify-items:start}
.volunteer-roster-table .volunteer-assign-form label{width:100%}
.volunteer-roster-table .volunteer-assign-form>.button{width:auto;min-width:88px;justify-self:start;padding-inline:14px}
.volunteer-roster-table .compact-inline-form{align-items:center;flex-wrap:wrap}
@media(max-width:700px){.net-checkin-table{min-width:760px}.net-checkin-table th:nth-child(2),.net-checkin-table td:nth-child(2){min-width:220px}}

/* HamOps 4.9.6: contain wide workspace content inside the application viewport */
.app-main,.content,.panel{min-width:0;max-width:100%}

/* HamOps 4.9.8: private HTTP 500 monitoring */
.error-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}.error-summary-grid article{padding:18px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:var(--shadow-soft);display:grid;gap:3px}.error-summary-grid strong{color:var(--navy);font-size:1.5rem}.error-summary-grid span{color:var(--ink-soft);font-size:.65rem;font-weight:750}.error-log-header{align-items:flex-end;gap:18px}.error-search-form{display:flex;align-items:center;gap:7px}.error-search-form input{width:min(330px,38vw);min-height:38px;border:1px solid var(--line);border-radius:9px;padding:8px 11px;color:var(--ink);font:inherit;font-size:.68rem}.system-error-list{display:grid}.system-error-card{border-top:1px solid var(--line)}.system-error-card:first-child{border-top:0}.system-error-card>summary{list-style:none;display:grid;grid-template-columns:180px 150px minmax(160px,.7fr) minmax(220px,1fr);gap:6px 14px;align-items:center;padding:15px 4px;cursor:pointer}.system-error-card>summary::-webkit-details-marker{display:none}.system-error-card>summary::before{content:"›";grid-column:1;position:absolute;margin-left:-14px;color:var(--blue);font-size:1rem;font-weight:900}.system-error-card[open]>summary::before{transform:rotate(90deg)}.error-reference{color:var(--navy);font-size:.67rem;font-weight:900}.error-time,.error-user,.error-request{color:var(--ink-soft);font-size:.62rem;overflow-wrap:anywhere}.error-request{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.error-message{grid-column:1/-1;color:#a52a22;font-size:.64rem;line-height:1.45;overflow-wrap:anywhere}.system-error-detail{margin:0 0 16px;padding:16px;border:1px solid var(--line);border-radius:11px;background:#f8fafb;display:grid;gap:16px}.system-error-detail dl{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px}.system-error-detail dl>div{min-width:0}.system-error-detail dt{margin-bottom:3px;color:var(--ink-soft);font-size:.54rem;font-weight:850;text-transform:uppercase;letter-spacing:.08em}.system-error-detail dd{margin:0;color:var(--ink);font-size:.65rem;overflow-wrap:anywhere}.system-error-detail code{white-space:normal;overflow-wrap:anywhere}.error-detail-message strong,.error-detail-trace>strong{display:block;margin-bottom:6px;color:var(--navy);font-size:.65rem}.error-detail-message pre{margin:0;padding:12px;border-radius:8px;background:#fff;color:#8d241f;font:600 .62rem/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere}.error-detail-trace ol{margin:0;padding:0;list-style:none;display:grid;gap:6px}.error-detail-trace li{padding:8px 10px;border-radius:7px;background:#fff;display:grid;gap:2px}.error-detail-trace li code{font-size:.61rem}.error-detail-trace li span{color:var(--ink-soft);font-size:.56rem;overflow-wrap:anywhere}.compact-panel>p{margin:0;color:var(--ink-soft);font-size:.68rem;line-height:1.55}.compact-panel code{overflow-wrap:anywhere}
@media(max-width:900px){.error-log-header{align-items:stretch;flex-direction:column}.error-search-form{width:100%}.error-search-form label{flex:1}.error-search-form input{width:100%}.system-error-card>summary{grid-template-columns:1fr 1fr}.error-message{grid-column:1/-1}}
@media(max-width:620px){.error-summary-grid{grid-template-columns:1fr}.error-search-form{align-items:stretch;flex-direction:column}.system-error-card>summary,.system-error-detail dl{grid-template-columns:1fr}.error-message{grid-column:1}.system-error-card>summary::before{display:none}}

/* HamOps 4.9.9: volunteer emergency contacts */
.emergency-contact-fieldset{border:1px solid #d8e2e7;border-radius:14px;padding:16px;background:#f8fbfc}.emergency-contact-fieldset legend{padding:0 7px;color:var(--navy);font-weight:900}.emergency-contact-fieldset>p{margin:0 0 13px;color:var(--ink-soft);font-size:.68rem;line-height:1.55}.emergency-contact-fieldset>small{display:block;margin-top:10px;color:#805c12;font-size:.61rem;font-weight:750}.emergency-contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.emergency-contact-grid label{display:grid;gap:6px}.emergency-contact-grid label>span{color:var(--ink);font-size:.64rem;font-weight:800}.emergency-contact-grid input{width:100%;box-sizing:border-box}.emergency-contact-details{margin-top:9px;width:100%}.emergency-contact-details>summary{list-style:none;cursor:pointer;color:#a14820;font-size:.62rem;font-weight:900}.emergency-contact-details>summary::-webkit-details-marker{display:none}.emergency-contact-details>summary::before{content:"+";display:inline-grid;width:15px;height:15px;margin-right:5px;border-radius:50%;background:#fff0e8;place-items:center}.emergency-contact-details[open]>summary::before{content:"−"}.emergency-contact-details dl{margin:7px 0 0;padding:9px;border:1px solid #f0d6c8;border-radius:8px;background:#fffaf7;display:grid;gap:6px}.emergency-contact-details dl>div{display:grid;gap:1px}.emergency-contact-details dt{color:var(--ink-soft);font-size:.51rem;font-weight:850;text-transform:uppercase;letter-spacing:.07em}.emergency-contact-details dd{margin:0;color:var(--ink);font-size:.62rem;line-height:1.35;overflow-wrap:anywhere}.emergency-contact-details a{color:var(--blue);font-weight:850}.emergency-contact-missing{display:inline-flex;margin-top:9px;padding:4px 7px;border-radius:999px;background:#fff0e8;color:#a14820;font-size:.57rem;font-weight:900}
@media(max-width:650px){.emergency-contact-grid{grid-template-columns:1fr}.emergency-contact-grid .span-2{grid-column:1}}

/* HamOps 5.0: live collaboration, queue workflow, and selectable color theme */
.theme-toggle{min-width:62px;padding:5px 8px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);color:var(--navy);display:grid;grid-template-columns:auto auto;align-items:center;gap:5px}.theme-toggle span{font-size:.85rem}.theme-toggle small{font-size:.54rem;font-weight:850;text-transform:uppercase;letter-spacing:.05em}
.connection-badge{min-height:35px;padding:0 11px;border:1px solid var(--line);border-radius:999px;background:var(--surface);display:inline-flex;align-items:center;gap:7px;font-size:.62rem;font-weight:850}.connection-badge i,.operator-chip i{width:7px;height:7px;border-radius:50%;background:#a7b3bb}.connection-badge.is-connected i,.operator-chip.online i{background:#42a765;box-shadow:0 0 0 3px rgba(66,167,101,.14)}.connection-badge.is-reconnecting i,.connection-badge.is-connecting i{background:#d69736;animation:presence-pulse 1.2s infinite}.connection-badge.is-offline i,.operator-chip.offline i{background:#a7b3bb}@keyframes presence-pulse{50%{opacity:.35}}
.net-team-panel .panel-header>div:last-child{display:grid;justify-items:end;gap:3px}.net-team-panel .panel-header>div:last-child small{color:var(--ink-soft);font-size:.55rem;text-transform:uppercase;font-weight:850;letter-spacing:.08em}.net-team-panel .panel-header>div:last-child strong{color:var(--navy)}.net-team-grid{display:grid;grid-template-columns:minmax(240px,.7fr) minmax(300px,1.3fr);gap:18px;align-items:end}.net-operator-presence{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px}.operator-chip{padding:7px 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);display:grid;grid-template-columns:auto auto;gap:0 6px;align-items:center}.operator-chip i{grid-row:1/3}.operator-chip strong{color:var(--navy);font-size:.65rem}.operator-chip small{color:var(--ink-soft);font-size:.53rem}.operator-chip.offline{opacity:.58}.net-handoff-form{justify-self:end}.net-team-grid .compact-inline-form label{min-width:190px}
.net-workflow-table{min-width:1120px}.net-status-form{min-width:150px;display:grid;gap:6px}.net-status-form select{min-height:33px;padding:5px 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink)}.raised-hand-toggle{display:flex!important;align-items:center;gap:6px;color:var(--ink-soft);font-size:.58rem;font-weight:800}.raised-hand-toggle input{width:16px!important;height:16px!important;min-height:16px!important}.net-workflow-table tr{transition:background .2s}.net-workflow-table tr.workflow-next{background:#eef7fb}.net-workflow-table tr.workflow-speaking{background:#eaf6ed}.net-workflow-table tr.workflow-priority{background:#fff0ed}.net-workflow-table tr.workflow-follow_up{background:#fff8e8}.net-workflow-table tr.workflow-completed{opacity:.66}.net-workflow-table tr.has-raised-hand td:first-child{border-left:4px solid #d18235}.workflow-badge,.raised-hand-label{display:inline-flex;margin:2px 4px 2px 0;padding:4px 7px;border-radius:999px;background:var(--surface-2);font-size:.56rem;font-weight:850}.status-priority{background:#ffe2dd;color:#a7352e}.status-speaking{background:#dff1e4;color:#2e7041}.status-next{background:#dceef5;color:#24657a}.status-follow_up{background:#fff0c9;color:#8a6016}.status-completed{background:#e8edf0;color:#667680}.raised-hand-label{background:#fff0c9;color:#8a6016}
.net-audit-list{display:grid}.net-audit-list article{padding:14px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:180px minmax(260px,1fr) auto;gap:16px;align-items:center}.net-audit-list article:first-child{border-top:0}.net-audit-list time{color:var(--ink-soft);font-size:.62rem;font-variant-numeric:tabular-nums}.net-audit-list article>div{display:grid;gap:4px}.net-audit-list strong{color:var(--navy);font-size:.7rem}.net-audit-list small{color:var(--ink-soft);font-size:.58rem}

[data-theme="dark"]{--ink:#d9e5ec;--ink-soft:#9fb2bf;--navy:#e9f4f8;--navy-2:#bcd5df;--blue:#64bad2;--blue-soft:#183b4a;--teal:#63c5ba;--amber:#e5aa62;--green:#7fc38d;--red:#ef8585;--purple:#b8a4dc;--canvas:#081725;--surface:#102536;--surface-2:#142c3e;--line:#284255;--line-strong:#3a586b;--shadow:0 16px 45px rgba(0,0,0,.28);--shadow-soft:0 7px 22px rgba(0,0,0,.2);color-scheme:dark}
[data-theme="dark"] body,[data-theme="dark"] .content{background:var(--canvas);color:var(--ink)}
[data-theme="dark"] .topbar,[data-theme="dark"] .public-header{background:rgba(9,25,38,.94)}
[data-theme="dark"] .panel,[data-theme="dark"] .metric-card,[data-theme="dark"] .home-feature-card,[data-theme="dark"] .home-public-access-grid>div,[data-theme="dark"] .attendance-public-card,[data-theme="dark"] .attendance-edit form,[data-theme="dark"] .system-error-detail pre,[data-theme="dark"] .system-error-detail li,[data-theme="dark"] .event-access-option,[data-theme="dark"] .position-basic-row{background:var(--surface);color:var(--ink)}
[data-theme="dark"] input,[data-theme="dark"] select,[data-theme="dark"] textarea,[data-theme="dark"] .button-outline,[data-theme="dark"] .button-danger-outline,[data-theme="dark"] .header-clocks,[data-theme="dark"] .signup-link-box,[data-theme="dark"] .event-access-fieldset,[data-theme="dark"] .station-edit-form,[data-theme="dark"] .position-edit-form,[data-theme="dark"] .system-error-detail,[data-theme="dark"] .emergency-contact-fieldset{background:var(--surface-2);color:var(--ink);border-color:var(--line)}
[data-theme="dark"] .button-primary{background:#24637f;border-color:#24637f;color:#fff}
[data-theme="dark"] .data-table th{background:#142b3c;color:#a8bdc9}
[data-theme="dark"] .data-table td,[data-theme="dark"] .data-table th{border-color:var(--line)}
[data-theme="dark"] .net-workflow-table tr.workflow-next{background:#133243}[data-theme="dark"] .net-workflow-table tr.workflow-speaking{background:#153528}[data-theme="dark"] .net-workflow-table tr.workflow-priority{background:#402626}[data-theme="dark"] .net-workflow-table tr.workflow-follow_up{background:#3b321d}
[data-theme="dark"] .status-priority{background:#57302d;color:#ffc0ba}[data-theme="dark"] .status-speaking{background:#214632;color:#a7e8b7}[data-theme="dark"] .status-next{background:#214657;color:#a9dff0}[data-theme="dark"] .status-follow_up,[data-theme="dark"] .raised-hand-label{background:#4a3c1f;color:#f5d283}
[data-theme="dark"] .public-site-footer,[data-theme="dark"] .public-schedule-hero,[data-theme="dark"] .home-final-cta{background:var(--surface)}
[data-theme="dark"] .security-state{background:var(--surface-2);color:var(--ink-soft);border-color:var(--line)}
[data-theme="dark"] .security-state.required{background:#3b321d;color:#f5d283;border-color:#66552b}
[data-theme="dark"] .event-date-block{background:#eef4f6}
[data-theme="dark"] .event-date-block span{color:#1d6f8a}
[data-theme="dark"] .event-date-block strong{color:#102b46}
@media(max-width:900px){.net-team-grid{grid-template-columns:1fr}.net-handoff-form{justify-self:start}.net-audit-list article{grid-template-columns:1fr}.net-team-panel .panel-header>div:last-child{justify-items:start}}

/* HamOps 5.0 RC3: compact, keyboard-first live net console */
.net-console-header{align-items:center;margin-bottom:12px}
.net-console-header h1{margin:4px 0 5px;font-size:clamp(1.7rem,2.5vw,2.35rem)}
.net-console-header .button-row{justify-content:flex-end;gap:6px}
.net-console-header .button{min-height:35px;padding-inline:12px;font-size:.68rem}
.net-team-details{padding:0;overflow:hidden}
.net-team-details>summary{list-style:none;cursor:pointer}
.net-team-details>summary::-webkit-details-marker{display:none}
.net-team-summary{min-height:60px;padding:12px 18px;display:flex;align-items:center;justify-content:space-between;gap:18px}
.net-team-summary>span:first-child{display:grid;gap:3px}
.net-team-summary>span:first-child>strong{color:var(--navy);font-size:1rem}
.net-team-summary-status{display:grid;grid-template-columns:auto auto;align-items:center;gap:2px 8px;text-align:right}
.net-team-summary-status small{grid-column:1/-1;color:var(--ink-soft);font-size:.52rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.net-team-summary-status strong{color:var(--navy);font-size:.73rem}
.net-team-summary-status::after{content:"Show controls";color:var(--blue);font-size:.58rem;font-weight:850}
.net-team-details[open] .net-team-summary-status::after{content:"Hide controls"}
.net-team-details-body{padding:0 18px 16px;border-top:1px solid var(--line)}
.net-team-details-body>p{margin:10px 0;color:var(--ink-soft);font-size:.64rem}
.net-team-details .net-team-grid{gap:10px 16px}
.net-team-details .operator-chip{padding:5px 8px}
.net-checkin-panel{padding:15px 18px}
.net-checkin-panel .panel-header{align-items:center;margin-bottom:10px}
.net-checkin-panel .panel-header h2{margin:0;font-size:1.05rem}
.net-checkin-panel .panel-header p{margin-top:3px;font-size:.66rem}
.net-checkin-compact{grid-template-columns:minmax(150px,1.25fr) minmax(170px,1.35fr) minmax(120px,.9fr) minmax(75px,.52fr) minmax(100px,.7fr) minmax(150px,1.15fr);gap:8px 10px}
.net-checkin-compact>label{gap:3px}
.net-checkin-compact>label>span{font-size:.58rem}
.net-checkin-compact input{min-height:35px;padding:6px 9px;font-size:.7rem}
.net-checkin-compact .callsign-lookup-status{min-height:.8rem;margin-top:1px;font-size:.58rem}
.net-checkin-panel .net-role-actions{grid-column:1/-1;gap:6px}
.net-checkin-panel .net-role-actions legend{margin:0;font-size:.62rem}
.net-checkin-panel .net-role-submit{min-height:36px;padding:4px 9px;gap:7px}
.net-checkin-panel .net-role-submit strong{min-width:26px;height:26px;font-size:.62rem}
.net-checkin-panel .net-role-submit span{font-size:.68rem}
.net-checkin-panel .net-role-keyboard-help{font-size:.58rem}
.net-role-keyboard-help kbd{padding:1px 4px;border:1px solid var(--line-strong);border-bottom-width:2px;border-radius:4px;background:var(--surface-2);color:var(--ink);font:700 .56rem ui-monospace,SFMono-Regular,Consolas,monospace}
.net-checkin-list:focus{outline:3px solid rgba(29,111,138,.25);outline-offset:3px}
.net-queue-header{align-items:center}
.net-queue-controls{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.net-queue-controls form{margin:0}
.net-queue-controls .button{white-space:nowrap}
.net-queue-controls .button kbd{padding:2px 5px;border:1px solid rgba(255,255,255,.45);border-radius:4px;background:rgba(255,255,255,.12);color:inherit;font:800 .55rem ui-monospace,SFMono-Regular,Consolas,monospace}
.active-round-badge{display:inline-flex;align-items:center;min-height:29px;padding:4px 9px;border-radius:999px;background:var(--blue-soft);color:var(--blue);font-size:.6rem;font-weight:900;white-space:nowrap}
.net-round-button.is-active-round{outline:2px solid var(--amber);outline-offset:2px}
@media(max-width:1200px){.net-checkin-compact{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.net-console-header{align-items:stretch}.net-console-header .button-row{justify-content:flex-start}.net-team-summary{align-items:flex-start}.net-checkin-compact{grid-template-columns:repeat(2,minmax(0,1fr))}.net-queue-header{align-items:flex-start}.net-queue-controls{justify-content:flex-start}}
@media(max-width:620px){.net-team-summary{flex-direction:column}.net-team-summary-status{text-align:left}.net-checkin-compact{grid-template-columns:1fr}.net-checkin-panel .net-role-actions{grid-template-columns:1fr 1fr}}

/* HamOps 5.0 RC7: station skipping and recurring-net participation */
.net-workflow-table tr.workflow-skipped{background:#f3f5f6;opacity:.78}
.status-skipped{background:#e7ecef;color:#596b76}
.net-return-form{display:none;margin-top:6px}
.workflow-skipped .net-return-form{display:block}
.net-return-form .button{width:100%}
.participation-badge{display:inline-flex;width:max-content;margin-top:7px;padding:3px 7px;border-radius:999px;font-size:.54rem;font-weight:900;letter-spacing:.025em}
.participation-badge.is-newcomer{background:#e7f1ff;color:#285d91}
.participation-badge.is-regular{background:#e3f3e7;color:#2c7040}
.participation-badge.is-veteran{background:#f5ead0;color:#805b12}
.net-participation-summary{display:block;margin-top:3px;color:var(--ink-soft);font-size:.55rem;line-height:1.35}
.participation-filter-panel{display:flex;align-items:end;justify-content:space-between;gap:18px}
.participation-filter-panel>p{max-width:620px;margin:0;color:var(--ink-soft);font-size:.64rem;line-height:1.5}
.participation-metrics{grid-template-columns:repeat(5,minmax(0,1fr))}
.net-growth-list{display:grid}
.net-growth-list article{display:grid;grid-template-columns:minmax(175px,.8fr) minmax(220px,2fr) 55px 75px 95px;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--line)}
.net-growth-list article:first-child{border-top:0}
.net-growth-list article>div:first-child{display:grid;gap:2px}
.net-growth-list article>div:first-child strong{color:var(--navy);font-size:.7rem}
.net-growth-list article>div:first-child small,.net-growth-list article>span{color:var(--ink-soft);font-size:.58rem}
.net-growth-bar{height:12px;overflow:hidden;border-radius:999px;background:var(--surface-2)}
.net-growth-bar span{display:block;height:100%;min-width:3px;border-radius:inherit;background:linear-gradient(90deg,var(--blue),var(--teal))}
.participation-table{min-width:980px}
.participation-table td{vertical-align:top}
.participation-table td>small{display:block;margin-top:3px;line-height:1.45}
[data-theme="dark"] .net-workflow-table tr.workflow-skipped{background:#202d36}
[data-theme="dark"] .status-skipped{background:#293945;color:#b3c2cb}
[data-theme="dark"] .participation-badge.is-newcomer{background:#1e3d59;color:#a9d7ff}
[data-theme="dark"] .participation-badge.is-regular{background:#214631;color:#afe8bd}
[data-theme="dark"] .participation-badge.is-veteran{background:#493b1f;color:#f3d58a}
@media(max-width:1100px){.participation-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.net-growth-list article{grid-template-columns:minmax(160px,.8fr) minmax(180px,2fr) 48px 68px 85px}}
@media(max-width:760px){.participation-filter-panel{align-items:stretch;flex-direction:column}.participation-metrics{grid-template-columns:1fr 1fr}.net-growth-list article{grid-template-columns:1fr auto auto}.net-growth-list article>div:first-child,.net-growth-bar{grid-column:1/-1}}
@media(max-width:520px){.participation-metrics{grid-template-columns:1fr}}
/* HamOps 5.0 volunteer roster: keep duty actions in view at every width. */
.volunteer-roster-wrap.responsive-table {
  overflow-x: visible;
  padding-bottom: 0;
}
.volunteer-roster-table,
.volunteer-roster-table tbody {
  display: block;
  width: 100%;
  min-width: 0;
  table-layout: auto;
}
.volunteer-roster-table thead {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
.volunteer-roster-table tbody tr {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.2fr);
  grid-template-areas:
    "person duty actions"
    "answers preference actions"
    "availability status actions";
  gap: 14px 20px;
  margin-bottom: 14px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface-2);
}
.volunteer-roster-table tbody tr:last-child { margin-bottom: 0; }
.volunteer-roster-table tbody tr > td:nth-child(n) {
  display: block;
  width: auto;
  min-width: 0;
  padding: 0;
  border: 0;
  color: var(--ink);
  overflow-wrap: anywhere;
}
.volunteer-roster-table tbody tr > td:nth-child(1) { grid-area: person; }
.volunteer-roster-table tbody tr > td:nth-child(2) { grid-area: answers; }
.volunteer-roster-table tbody tr > td:nth-child(3) { grid-area: preference; }
.volunteer-roster-table tbody tr > td:nth-child(4) { grid-area: availability; }
.volunteer-roster-table tbody tr > td:nth-child(5) { grid-area: duty; }
.volunteer-roster-table tbody tr > td:nth-child(6) { grid-area: status; }
.volunteer-roster-table tbody tr > td:nth-child(7) {
  grid-area: actions;
  padding-left: 18px;
  border-left: 1px solid var(--line);
}
.volunteer-roster-table tbody tr > td:nth-child(2)::before { content: "Signup answers"; }
.volunteer-roster-table tbody tr > td:nth-child(3)::before { content: "Preference"; }
.volunteer-roster-table tbody tr > td:nth-child(4)::before { content: "Availability"; }
.volunteer-roster-table tbody tr > td:nth-child(5)::before { content: "Assigned duty"; }
.volunteer-roster-table tbody tr > td:nth-child(6)::before { content: "Status"; }
.volunteer-roster-table tbody tr > td:nth-child(7)::before { content: "Roster actions"; }
.volunteer-roster-table tbody tr > td::before {
  display: block;
  margin-bottom: 6px;
  color: var(--ink-soft);
  font-size: .58rem;
  font-weight: 850;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.volunteer-roster-table .volunteer-assign-form,
.volunteer-roster-table .volunteer-assign-form label,
.volunteer-roster-table .compact-inline-form,
.volunteer-roster-table .compact-inline-form select,
.volunteer-roster-table .inline-form-details select {
  min-width: 0;
  max-width: 100%;
}
.volunteer-roster-table .volunteer-assign-form select { width: 100%; }
.volunteer-roster-table .compact-inline-form { margin-top: 10px; }
.volunteer-roster-table .volunteer-assign-form + .compact-inline-form { margin-top: 14px; }

@media (max-width: 1200px) {
  .volunteer-roster-table tbody tr {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
    grid-template-areas:
      "person actions"
      "duty actions"
      "status actions"
      "answers preference"
      "availability availability";
  }
}
@media (max-width: 760px) {
  .volunteer-roster-table tbody tr {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "person"
      "status"
      "actions"
      "duty"
      "preference"
      "availability"
      "answers";
    gap: 12px;
    padding: 14px;
  }
  .volunteer-roster-table tbody tr > td:nth-child(7) {
    padding: 12px 0;
    border-left: 0;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
  }
}
/* HamOps 5.0: readable Public Service summary cards in dark mode. */
[data-theme="dark"] .public-service-summary article {
  background: var(--surface);
  color: var(--ink);
  border-color: var(--line);
}
[data-theme="dark"] .public-service-summary article > small,
[data-theme="dark"] .public-service-summary article > span {
  color: var(--ink-soft);
}
[data-theme="dark"] .public-service-summary article > strong {
  color: var(--navy);
}
/* HamOps 5.0: restore contrast on the dashboard and header in dark mode. */
[data-theme="dark"] .platform-banner {
  background: linear-gradient(110deg, #17364c, #225675);
  color: #f3f9fc;
}
[data-theme="dark"] .platform-banner-copy small,
[data-theme="dark"] .platform-stats span {
  color: #c9deea;
}
[data-theme="dark"] .platform-stats strong,
[data-theme="dark"] .platform-banner > a,
[data-theme="dark"] .platform-icon {
  color: #ffffff;
}
[data-theme="dark"] .brand-symbol,
[data-theme="dark"] .user-initials {
  color: #102b46;
}
/* HamOps 5.0: readable Events and event builder cards in dark mode. */
[data-theme="dark"] .event-card,
[data-theme="dark"] .builder-steps a,
[data-theme="dark"] .event-band-option,
[data-theme="dark"] .position-list > span,
[data-theme="dark"] .add-panel {
  background: var(--surface);
  color: var(--ink);
  border-color: var(--line);
}
[data-theme="dark"] .event-card-body h2,
[data-theme="dark"] .builder-steps strong,
[data-theme="dark"] .event-band-option strong,
[data-theme="dark"] .add-panel > summary strong {
  color: var(--navy);
}
[data-theme="dark"] .event-card-body > p,
[data-theme="dark"] .event-card-meta,
[data-theme="dark"] .builder-steps small,
[data-theme="dark"] .add-panel > summary small {
  color: var(--ink-soft);
}
[data-theme="dark"] .event-card-cover,
[data-theme="dark"] .event-card-cover > div span,
[data-theme="dark"] .event-card-cover > div strong {
  color: #ffffff;
}
[data-theme="dark"] .event-card-cover {
  background: linear-gradient(135deg, color-mix(in srgb, var(--event-accent) 55%, #102b46), #102b46);
}
[data-theme="dark"] .event-type-badge {
  background: #244153;
  border-color: #49697b;
  color: #deebf1;
}
[data-theme="dark"] .event-type-badge.public-service {
  background: #193d4c;
  border-color: #407b91;
  color: #bce5f0;
}
[data-theme="dark"] .event-type-badge.special-event {
  background: #413620;
  border-color: #81683c;
  color: #f4dfa9;
}
[data-theme="dark"] .event-band-option:has(input:checked) {
  background: #1b3d4e;
  border-color: #64bad2;
}
[data-theme="dark"] .event-band-option.warc:has(input:checked) {
  background: #3b321f;
  border-color: #c19451;
}
[data-theme="dark"] .event-band-option small { color: #f1c17a; }
[data-theme="dark"] .builder-steps a > span {
  background: #254255;
  color: #d9e9f1;
}
[data-theme="dark"] .builder-steps a.complete > span {
  background: #24637f;
  color: #ffffff;
}
[data-theme="dark"] .add-panel > summary > span {
  background: #214356;
  color: #bce5f0;
}
[data-theme="dark"] .count-badges span {
  background: #254255;
  color: #d9e9f1;
}
/* HamOps 5.0: readable event schedule in dark mode. */
[data-theme="dark"] .schedule-summary,
[data-theme="dark"] .band-selector-panel,
[data-theme="dark"] .event-day-section {
  background: var(--surface);
  color: var(--ink);
  border-color: var(--line);
}
[data-theme="dark"] .band-selector-heading h2,
[data-theme="dark"] .schedule-summary strong,
[data-theme="dark"] .event-day-heading h2,
[data-theme="dark"] .band-overview-time strong,
[data-theme="dark"] .selected-band-slot-heading strong,
[data-theme="dark"] .mini-section-heading h3,
[data-theme="dark"] .band-operator-card strong,
[data-theme="dark"] .band-position-card strong,
[data-theme="dark"] .band-empty-note strong,
[data-theme="dark"] .already-booked-note strong {
  color: var(--navy);
}
[data-theme="dark"] .band-selector-item,
[data-theme="dark"] .band-overview-card,
[data-theme="dark"] .band-operators-panel,
[data-theme="dark"] .band-openings-panel,
[data-theme="dark"] .band-operator-card,
[data-theme="dark"] .band-position-card,
[data-theme="dark"] .band-empty-note,
[data-theme="dark"] .already-booked-note {
  background: var(--surface-2);
  border-color: var(--line);
  color: var(--ink);
}
[data-theme="dark"] .band-selector-item.active {
  background: #24637f;
  border-color: #64bad2;
  color: #ffffff;
}
[data-theme="dark"] .band-selector-item.active small { color: #d4ecf6; }
[data-theme="dark"] .band-overview-card.occupied,
[data-theme="dark"] .band-operator-card.mine {
  background: #183746;
  border-color: #39758a;
}
[data-theme="dark"] .band-overview-card.mine,
[data-theme="dark"] .already-booked-note {
  background: #1b4050;
  border-color: #549bb2;
}
[data-theme="dark"] .band-overview-card.unavailable { background: #1a2a35; }
[data-theme="dark"] .event-day-heading {
  background: #173348;
  border-color: var(--line);
}
[data-theme="dark"] .event-day-date {
  background: #24637f;
  color: #ffffff;
}
[data-theme="dark"] .event-day-date span { color: #d5edf6; }
[data-theme="dark"] .band-overview-time,
[data-theme="dark"] .selected-band-slot-heading {
  background: var(--surface-2);
  border-color: var(--line);
}
[data-theme="dark"] .band-overview-time small,
[data-theme="dark"] .band-open-label { color: #a7ddb7; }
[data-theme="dark"] .band-full-label,
[data-theme="dark"] .band-operator-card small,
[data-theme="dark"] .band-position-card small,
[data-theme="dark"] .schedule-view-note { color: var(--ink-soft); }
[data-theme="dark"] .slot-band-status span {
  background: #254255;
  color: #d5e6ef;
}
[data-theme="dark"] .schedule-toolbar .search-control {
  background: var(--surface-2);
  color: var(--ink-soft);
  border-color: var(--line);
}
[data-theme="dark"] .schedule-toolbar .search-control input {
  background: transparent;
  color: var(--ink);
}
/* HamOps 5.0: readable event editor in dark mode. */
[data-theme="dark"] .builder-steps a,
[data-theme="dark"] .event-band-option,
[data-theme="dark"] .band-mode-row,
[data-theme="dark"] .band-mode-row label,
[data-theme="dark"] .position-list > span,
[data-theme="dark"] .add-panel {
  background: var(--surface-2);
  border-color: var(--line);
  color: var(--ink);
}
[data-theme="dark"] .builder-steps strong,
[data-theme="dark"] .event-band-option strong,
[data-theme="dark"] .band-mode-row > strong,
[data-theme="dark"] .add-panel > summary strong {
  color: var(--navy);
}
[data-theme="dark"] .builder-steps small,
[data-theme="dark"] .add-panel > summary small {
  color: var(--ink-soft);
}
[data-theme="dark"] .builder-steps a > span,
[data-theme="dark"] .count-badges span {
  background: #254255;
  color: #d9e9f1;
}
[data-theme="dark"] .builder-steps a.complete > span {
  background: #24637f;
  color: #ffffff;
}
[data-theme="dark"] .event-band-option:has(input:checked),
[data-theme="dark"] .band-mode-row label:has(input:checked) {
  background: #1b3d4e;
  border-color: #64bad2;
}
[data-theme="dark"] .event-band-option.warc:has(input:checked) {
  background: #3b321f;
  border-color: #c19451;
}
[data-theme="dark"] .event-band-option small { color: #f1c17a; }
[data-theme="dark"] .add-panel > summary > span {
  background: #214356;
  color: #bce5f0;
}
[data-theme="dark"] .form-panel .form-grid label > span,
[data-theme="dark"] .add-panel .form-grid label > span,
[data-theme="dark"] .station-card .compact-form label > span,
[data-theme="dark"] .position-channel-form label > span {
  color: var(--ink);
}
[data-theme="dark"] .station-edit-form textarea,
[data-theme="dark"] .position-channel-form select {
  background: var(--surface-2);
  color: var(--ink);
  border-color: var(--line);
}
[data-theme="dark"] .event-access-state {
  background: #1b3d4e;
  color: var(--ink-soft);
}
[data-theme="dark"] .event-access-state strong { color: var(--navy); }
/* Compact day grid for the special-event schedule. */
.compact-view-switch { display: flex; gap: 8px; flex-wrap: wrap; margin: -9px 0 14px; }
.compact-grid-summary { padding-block: 12px; margin-bottom: 12px; }
.compact-grid-band-selector { padding: 13px 16px; margin-bottom: 12px; }
.compact-grid-band-selector .band-selector-heading { margin-bottom: 9px; }
.compact-grid-band-selector .band-selector-heading h2 { font-size: 1rem; }
.compact-grid-band-selector .band-selector { display: flex; overflow-x: auto; gap: 6px; padding-bottom: 3px; }
.compact-grid-band-selector .band-selector-item { min-height: 42px; min-width: 70px; flex: 0 0 auto; padding: 6px 10px; }
.compact-grid-band-selector .band-selector-item strong { font-size: .72rem; }
.compact-grid-band-selector .band-selector-item small { font-size: .57rem; }
.compact-day-nav { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 12px; }
.compact-day-link { padding: 8px 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); color: var(--ink); font-size: .7rem; font-weight: 800; text-decoration: none; }
.compact-day-link:hover, .compact-day-link:focus-visible { border-color: var(--blue); }
.compact-day-link.active { background: #24637f; border-color: #24637f; color: #fff; }
.compact-grid-panel { overflow: hidden; border: 1px solid var(--line); border-radius: 15px; background: var(--surface); }
.compact-grid-heading { display: flex; align-items: end; justify-content: space-between; gap: 12px; padding: 12px 16px; }
.compact-grid-heading h2 { color: var(--navy); font-size: 1.15rem; margin: 3px 0 0; }
.compact-grid-heading p { color: var(--ink-soft); font-size: .66rem; margin: 0; }
.compact-grid-scroll { max-width: 100%; max-height: 70vh; overflow: auto; }
.compact-grid-table { width: 100%; min-width: max-content; border-collapse: separate; border-spacing: 0; font-size: .66rem; }
.compact-grid-table th, .compact-grid-table td { border-top: 1px solid var(--line); border-right: 1px solid var(--line); }
.compact-grid-table th:last-child, .compact-grid-table td:last-child { border-right: 0; }
.compact-grid-table thead th { position: sticky; top: 0; z-index: 3; min-width: 96px; padding: 8px 5px; background: #1e5072; color: #fff; text-align: center; white-space: nowrap; }
.compact-grid-table thead th:first-child { left: 0; z-index: 5; min-width: 75px; }
.compact-grid-table thead th:nth-child(2) { left: 75px; z-index: 5; min-width: 90px; }
.compact-grid-table thead small { display: block; margin-top: 3px; color: #d4e8f3; font-size: .58rem; }
.compact-grid-table .compact-grid-band { position: sticky; left: 0; z-index: 2; min-width: 75px; padding: 8px; background: #e1ecf3; color: #183c58; vertical-align: middle; text-align: center; }
.compact-grid-table .compact-grid-mode { position: sticky; left: 75px; z-index: 2; min-width: 90px; padding: 7px; background: #eef4f7; color: #243e52; text-align: left; }
.compact-grid-cell { min-width: 96px; max-width: 130px; height: 43px; padding: 0; background: var(--surface); }
.compact-grid-cell.has-openings { background: #e9f4f7; }
.compact-grid-cell.has-operators { background: #d8e6f0; }
.compact-grid-cell.unavailable { background: var(--surface-2); }
.compact-grid-cell a { display: grid; align-content: center; gap: 2px; min-height: 43px; padding: 5px 7px; color: var(--ink); text-decoration: none; }
.compact-grid-cell a:hover, .compact-grid-cell a:focus-visible { outline: 2px solid var(--blue); outline-offset: -2px; }
.compact-grid-cell strong { font-size: .63rem; overflow-wrap: anywhere; }
.compact-grid-cell span, .compact-grid-cell small { font-size: .57rem; color: var(--ink-soft); }
.compact-grid-cell.has-openings span { color: #24657a; font-weight: 850; }
[data-theme="dark"] .compact-grid-table .compact-grid-band { background: #20435a; color: #eef8fc; }
[data-theme="dark"] .compact-grid-table .compact-grid-mode { background: #183447; color: #d9e9f1; }
[data-theme="dark"] .compact-grid-cell.has-openings { background: #173b48; }
[data-theme="dark"] .compact-grid-cell.has-operators { background: #235069; }
[data-theme="dark"] .compact-grid-cell.has-openings span { color: #a6e0ee; }
[data-theme="dark"] .compact-grid-summary,
[data-theme="dark"] .compact-grid-band-selector { background: var(--surface); color: var(--ink); border-color: var(--line); }
[data-theme="dark"] .compact-grid-summary strong,
[data-theme="dark"] .compact-grid-band-selector h2 { color: var(--navy); }
[data-theme="dark"] .compact-grid-band-selector .band-selector-item { background: var(--surface-2); color: var(--ink); border-color: var(--line); }
[data-theme="dark"] .compact-grid-band-selector .band-selector-item.active { background: #24637f; color: #fff; border-color: #64bad2; }
[data-theme="dark"] .compact-grid-band-selector .band-selector-item.active small { color: #d4ecf6; }
@media (max-width: 760px) {
  .compact-grid-heading { align-items: start; flex-direction: column; }
  .compact-grid-table thead th { min-width: 86px; }
  .compact-grid-table thead th:first-child, .compact-grid-table .compact-grid-band { min-width: 62px; }
  .compact-grid-table thead th:nth-child(2), .compact-grid-table .compact-grid-mode { left: 62px; min-width: 72px; }
  .compact-grid-cell { min-width: 86px; }
}
/* HamOps compact grid band boundaries: band-lines1. */
.compact-grid-table .compact-grid-band {
  border-top: 4px solid #416f87;
}
.compact-grid-table tbody tr:has(> .compact-grid-band) > * {
  border-top: 4px solid #416f87;
}
[data-theme="dark"] .compact-grid-table .compact-grid-band,
[data-theme="dark"] .compact-grid-table tbody tr:has(> .compact-grid-band) > * {
  border-top-color: #80cce5;
}

/* HamOps dark public cards: publicsignup1 */
[data-theme="dark"] .public-event-card,
[data-theme="dark"] .volunteer-signin-choice > div {
  background: #122838;
  color: #e7f2f7;
  border-color: #466579;
}
[data-theme="dark"] .public-event-card h2,
[data-theme="dark"] .volunteer-signin-choice h3 { color: #e7f2f7; }
[data-theme="dark"] .public-event-card p,
[data-theme="dark"] .volunteer-signin-choice p { color: #b8cedc; }
[data-theme="dark"] .public-event-card > div small,
[data-theme="dark"] .public-event-card .public-arrow { color: #82d5ee; }
[data-theme="dark"] .public-event-card .public-event-date {
  background: #21485f;
  color: #e7f2f7;
}
[data-theme="dark"] .public-event-date strong,
[data-theme="dark"] .public-event-date small { color: #e7f2f7; }
[data-theme="dark"] .public-event-card:hover { background: #19384b; border-color: #82d5ee; }
[data-theme="dark"] .volunteer-signin-choice .button {
  background: #21485f;
  color: #ffffff;
  border-color: #82b8cc;
}
[data-theme="dark"] .volunteer-signin-choice .button:hover { background: #305e76; }
[data-theme="dark"] .public-event-card:focus-visible,
[data-theme="dark"] .volunteer-signin-choice .button:focus-visible {
  outline: 3px solid #82d5ee;
  outline-offset: 3px;
}

/* HamOps dark registration: authcontrast1 */
[data-theme="dark"] .auth-page { background: #081925; }
[data-theme="dark"] .auth-card,
[data-theme="dark"] .auth-form-panel {
  background: #122838;
  color: #e7f2f7;
  border-color: #466579;
}
[data-theme="dark"] .auth-brand-block { background: #102f43; color: #e7f2f7; }
[data-theme="dark"] .auth-brand-block h1,
[data-theme="dark"] .auth-heading h2,
[data-theme="dark"] .auth-note strong,
[data-theme="dark"] .auth-form-panel label,
[data-theme="dark"] .auth-form-panel label > span { color: #e7f2f7; }
[data-theme="dark"] .auth-brand-block p,
[data-theme="dark"] .auth-heading p,
[data-theme="dark"] .auth-note span,
[data-theme="dark"] .auth-form-panel label small { color: #b8cedc; }
[data-theme="dark"] .auth-card .eyebrow,
[data-theme="dark"] .auth-note a { color: #82d5ee; }
[data-theme="dark"] .auth-note { border-color: #466579; }
[data-theme="dark"] .auth-form-panel input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]) {
  background: #091e2c; color: #e7f2f7; border-color: #7695a8; color-scheme: dark;
}
[data-theme="dark"] .auth-form-panel input::placeholder { color: #b8cedc; opacity: 1; }
[data-theme="dark"] .auth-form-panel .button {
  background: #21485f; color: #ffffff; border-color: #82b8cc;
}
[data-theme="dark"] .auth-form-panel .button:hover { background: #305e76; }
[data-theme="dark"] .auth-form-panel :is(input,button,a):focus-visible {
  outline: 3px solid #82d5ee; outline-offset: 3px;
}
[data-theme="dark"] .auth-card .brand-symbol { background: #dceef3; color: #102f43; }
[data-theme="dark"] .auth-form-panel .inline-alert.error {
  background: #47212b; color: #ffe1e6; border-color: #d48797;
}
