
:root,
[data-theme="night"] {
  --bg: #0e1216;
  --panel: #161a20;
  --panel-2: #1d2329;
  --panel-soft: rgba(255, 255, 255, 0.025);
  --border: #333942;
  --border-soft: rgba(107, 112, 119, 0.38);
  --text: #f2f0e6;
  --muted: #9d9f9c;
  --accent: #e2712a;
  --on-accent: #ffffff;
  --ok: #3fc380;
  --warn: #ffb454;
  --bad: #ff5f6d;
  --info: #a7aaa8;
  --input-bg: var(--panel-2);
  --input-border: var(--border);
  --focus-ring: rgba(226, 113, 42, 0.45);
  --pill-ok-bg: #1c332e;
  --pill-warn-bg: #393128;
  --pill-bad-bg: #39242c;
  --pill-info-bg: #223441;
  --pill-muted-bg: #272c34;
  --shadow-card: 0 4px 24px rgba(0, 0, 0, 0.42);
  --overlay-bg: rgba(0, 0, 0, 0.6);
  --toggle-bg: rgba(255, 255, 255, 0.04);
  --toggle-text: var(--muted);
  --toggle-active-bg: var(--accent);
  --toggle-active-text: #ffffff;
  --toggle-border: var(--border);
  color-scheme: dark;
}
[data-theme="day"] {
  --bg: #f6f3ea;
  --panel: #fdfcf8;
  --panel-2: #f0ece2;
  --panel-soft: rgba(20, 15, 5, 0.035);
  --border: #d8d1c4;
  --border-soft: rgba(20, 15, 5, 0.10);
  --text: #111820;
  --muted: #59616b;
  --accent: #c9571e;
  --on-accent: #ffffff;
  --ok: #16784a;
  --warn: #9a6200;
  --bad: #b42318;
  --info: #59616b;
  --input-bg: #fbfaf5;
  --input-border: var(--border);
  --focus-ring: rgba(201, 87, 30, 0.35);
  --pill-ok-bg: #e2f6ec;
  --pill-warn-bg: #fff4e5;
  --pill-bad-bg: #ffe7e9;
  --pill-info-bg: #e8f6ff;
  --pill-muted-bg: #edeff2;
  --shadow-card: 0 4px 18px rgba(20, 15, 5, 0.10);
  --overlay-bg: rgba(20, 15, 5, 0.45);
  --toggle-bg: rgba(20, 15, 5, 0.04);
  --toggle-text: var(--muted);
  --toggle-active-bg: var(--accent);
  --toggle-active-text: #ffffff;
  --toggle-border: var(--border);
  --start-here-surface: #fffdf8;
  --start-here-surface-edge: #eee7da;
  --start-here-border: #c9bba9;
  --start-here-highlight: #fffaf0;
  --start-here-ink-soft: #3f4852;
  color-scheme: light;
}
:root {
  --tap-min: 44px;
  --topbar-h: 56px;
  --rail-w: 236px;
  --rail-row: 34px;
  --gutter-mobile: 12px;
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --safe-left: env(safe-area-inset-left, 0px);
  --safe-right: env(safe-area-inset-right, 0px);
  --fab-clearance: 88px;
  --z-raised: 1;
  --z-sticky-head: 3;
  --z-fab: 45;
  --z-topbar: 50;
  --z-popover: 60;
  --z-drawer: 70;
  --z-modal: 100;
  --z-print: 1200;
  --z-toast: 1210;
}
* { box-sizing: border-box; }
html, body {
  margin: 0;
  padding: 0;
  background: var(--bg);
  color: var(--text);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: 14px;
  line-height: 1.5;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
.hidden { display: none !important; }
a { color: var(--text); text-decoration: none; }
a:hover, a:focus-visible { color: var(--accent); text-decoration: underline; text-underline-offset: 2px; }
p a, li a, .small a, .muted a {
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-color: var(--border-soft);
}
p a:hover, li a:hover, .small a:hover, .muted a:hover { text-decoration-color: var(--accent); }
button {
  background: var(--accent);
  color: var(--on-accent);
  border: none;
  border-radius: 6px;
  padding: 8px 14px;
  font-size: 14px;
  cursor: pointer;
}
button:hover { filter: brightness(1.08); }
button:focus-visible { outline: none; box-shadow: 0 0 0 3px var(--focus-ring); }
button.secondary {
  background: transparent;
  border: 1px solid var(--border);
  color: var(--text);
}
button.danger { background: var(--bad); color: var(--on-accent); }
button.ghost { background: transparent; color: var(--accent); padding: 4px 8px; }
button.primary { background: var(--accent); color: var(--on-accent); }
input, select, textarea {
  width: 100%;
  background: var(--input-bg);
  color: var(--text);
  border: 1px solid var(--input-border);
  border-radius: 6px;
  padding: 8px 10px;
  font-size: 14px;
  font-family: inherit;
}
input:focus, select:focus, textarea:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--focus-ring);
}
textarea { resize: vertical; min-height: 60px; }
.large-textarea { min-height: 220px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
label {
  display: block;
  margin-bottom: 12px;
}
label > span {
  display: block;
  font-size: 12px;
  color: var(--muted);
  margin-bottom: 4px;
}
.date-format-helper,
.date-format-preview {
  display: block;
  margin-top: 5px;
  margin-bottom: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
}
.date-format-preview {
  color: var(--text);
}
.timezone-select {
  max-width: 100%;
  min-width: 0;
  overflow: visible;
}
.error {
  color: var(--bad);
  margin-top: 10px;
  min-height: 20px;
  font-size: 13px;
}
.success {
  color: var(--ok);
  margin-top: 10px;
  font-size: 13px;
}
.status-note {
  color: var(--muted);
  font-size: 12px;
  margin-top: 10px;
}
.field-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 6px;
}
.alerts {
  margin-top: 10px;
  font-size: 12px;
}
.alerts ul {
  margin: 6px 0 0 18px;
  padding: 0;
}
.role-requirements-panel {
  margin-top: 14px;
}
.role-requirement-grid {
  display: grid;
  gap: 10px;
  margin-top: 10px;
}
.role-requirement-row,
.role-coverage-row {
  display: grid;
  grid-template-columns: minmax(150px, 1.2fr) minmax(90px, 0.7fr) minmax(170px, 1fr) minmax(190px, 1.4fr);
  gap: 10px;
  align-items: end;
  background: rgba(255, 255, 255, 0.025);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 10px;
}
.role-coverage-row {
  grid-template-columns: minmax(150px, 1fr) minmax(220px, 2fr) auto;
  align-items: center;
  margin-top: 10px;
}
.role-coverage-summary {
  margin-top: 12px;
  display: grid;
  gap: 8px;
}
.role-coverage-select .option-grid {
  margin-top: 8px;
}
.login-shell {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background:
    radial-gradient(circle at 50% 28%, rgba(226, 113, 42, 0.09), transparent 26%),
    radial-gradient(circle at 72% 18%, rgba(107, 112, 119, 0.11), transparent 30%),
    var(--bg);
}
.login-card {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(22, 26, 32, 0.96), rgba(18, 22, 28, 0.94));
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 32px;
  width: 390px;
  max-width: 90vw;
  box-shadow: 0 28px 90px rgba(0, 0, 0, 0.28);
}
.login-card::before {
  content: "";
  position: absolute;
  top: -72px;
  right: -84px;
  width: 230px;
  aspect-ratio: 1;
  background: url("./assets/dispatchtalon-header-mark-transparent.png") center / contain no-repeat;
  opacity: 0.07;
  pointer-events: none;
}
.login-card > * {
  position: relative;
  z-index: var(--z-raised);
}
.login-card h1 {
  margin: 0;
  font-size: 28px;
  letter-spacing: 1px;
}
.login-brand {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 14px;
}
.login-brand-mark {
  width: 66px;
  height: 66px;
  flex: 0 0 auto;
  background: url("./assets/dispatchtalon-header-mark-transparent.png") center / contain no-repeat;
}
.login-brand-copy {
  display: grid;
  gap: 3px;
  min-width: 0;
  padding-left: 14px;
  border-left: 2px solid var(--accent);
}
.login-brand-copy strong {
  color: var(--text);
  font-size: 26px;
  font-weight: 800;
  letter-spacing: -0.06em;
  line-height: 0.95;
}
.login-brand-copy span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.15;
}
.login-card .subtitle {
  margin: 0 0 20px 0;
  color: var(--muted);
  font-size: 13px;
}
.security-banner {
  background: rgba(255, 180, 84, 0.08);
  border: 1px solid rgba(255, 180, 84, 0.3);
  color: var(--warn);
  padding: 10px 12px;
  border-radius: 8px;
  font-size: 12px;
  margin-bottom: 16px;
}
.login-card button { width: 100%; padding: 10px; }
.login-card button[disabled] {
  cursor: wait;
  filter: grayscale(0.2);
  opacity: 0.85;
}
[data-theme="day"] .login-card {
  background: linear-gradient(180deg, #ffffff 0%, #f6f3ea 100%);
  border-color: var(--border);
  box-shadow: 0 18px 48px rgba(17, 24, 32, 0.12);
}
[data-theme="day"] .login-card .security-banner {
  background: rgba(201, 87, 30, 0.08);
  border-color: rgba(201, 87, 30, 0.28);
  color: var(--text);
}
.app-shell {
  min-height: 100vh;
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  min-width: 0;
}
.topbar {
  position: sticky;
  top: 0;
  flex: 0 0 var(--rail-w);
  width: var(--rail-w);
  height: 100vh;
  height: 100dvh;
  box-sizing: border-box;
  background: var(--panel);
  border-right: 1px solid var(--border);
  padding: 14px 12px 12px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
}
.brand {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 0 0 auto;
  min-width: 0;
  margin: 0 4px 10px;
  font-weight: 700;
  letter-spacing: 0;
}
.topbar-brand-mark {
  width: 36px;
  height: 36px;
  flex: 0 0 auto;
  background: url("./assets/dispatchtalon-header-mark-transparent.png") center / contain no-repeat;
}
.topbar-brand-copy {
  display: grid;
  gap: 1px;
  min-width: 0;
  padding-left: 10px;
  border-left: 2px solid var(--accent);
}
.topbar-brand-copy strong {
  color: var(--text);
  font-size: 17px;
  font-weight: 800;
  letter-spacing: -0.055em;
  line-height: 0.95;
}
.topbar-brand-copy span {
  color: var(--muted);
  font-size: 10px;
  font-weight: 600;
  line-height: 1.1;
}
.brand .badge {
  background: var(--accent);
  color: var(--on-accent);
  font-size: 10px;
  padding: 2px 6px;
  border-radius: 4px;
  margin-left: 6px;
  vertical-align: middle;
}
nav#nav {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 160px;
  min-width: 0;
  gap: 0;
  margin: 0 -4px;
  padding: 0 4px 4px;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  border-bottom: 1px solid var(--border-soft);
}
.nav-group { display: flex; flex-direction: column; gap: 2px; }
.nav-group + .nav-group { margin-top: 12px; }
.nav-group:not(:has(a:not(.hidden))) { display: none; }
.nav-group-heading {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--muted);
  padding: 0 10px 3px;
}
nav#nav a {
  display: flex;
  align-items: center;
  min-height: var(--rail-row);
  padding: 6px 10px 6px 9px;
  border-radius: 6px;
  border-left: 3px solid transparent;
  color: var(--muted);
  font-size: 13.5px;
  line-height: 1.25;
}
nav#nav a.active {
  color: var(--text);
  background: var(--panel-soft);
  border-left-color: var(--accent);
}
nav#nav a:focus-visible, .internal-nav-toggle:focus-visible, #internal-nav-panel a.internal-nav-link:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: -2px;
  text-decoration: none;
  box-shadow: none;
}
@media (hover: hover) {
  nav#nav a:hover { color: var(--text); background: var(--panel-soft); text-decoration: none; }
}
.topbar-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 100%;
  min-height: 36px;
  margin-top: 10px;
  padding: 0 14px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: transparent;
  color: var(--text);
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
}
@media (hover: hover) {
  .topbar-cta:hover {
    text-decoration: none;
    border-color: var(--accent);
    background: var(--panel-soft);
  }
}
.internal-nav { display: block; width: 100%; margin-top: 14px; padding-top: 10px; border-top: 1px solid var(--border-soft); }
.internal-nav.hidden { display: none; }
.internal-nav-toggle {
  width: 100%;
  min-height: var(--rail-row);
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  padding: 6px 10px 6px 9px;
  border: 0;
  border-left: 3px solid transparent;
  border-radius: 6px;
  background: transparent;
  color: var(--muted);
  font-size: 13.5px;
  cursor: pointer;
}
.internal-nav-toggle:hover { filter: none; }
@media (hover: hover) {
  .internal-nav-toggle:hover { color: var(--text); background: var(--panel-soft); }
  #internal-nav-panel a.internal-nav-link:hover { background: var(--panel-soft); text-decoration: none; color: var(--text); }
}
.internal-nav-toggle.active { color: var(--text); background: var(--panel-soft); border-left-color: var(--accent); }
.internal-nav-toggle[aria-expanded="true"] { color: var(--text); }
.internal-nav-caret { font-size: 10px; line-height: 1; }
.internal-nav-panel {
  position: static;
  width: 100%;
  min-width: 0;
  margin: 2px 0 0;
  padding: 2px 0 4px 8px;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
  display: grid;
  gap: 1px;
}
.internal-nav-panel[hidden] { display: none; }
.internal-nav-group-heading {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
  padding: 8px 8px 4px;
}
#internal-nav-panel a.internal-nav-link {
  display: flex;
  align-items: center;
  min-height: 32px;
  padding: 5px 8px 5px 9px;
  border-radius: 6px;
  border-left: 3px solid transparent;
  color: var(--text);
  font-size: 13px;
}
#internal-nav-panel a.internal-nav-link.active { color: var(--text); background: var(--panel-soft); border-left-color: var(--accent); }
.visibility-toggle {
  display: flex;
  align-items: stretch;
  gap: 0;
  width: 100%;
  margin-top: 8px;
  padding: 2px;
  box-sizing: border-box;
  background: var(--toggle-bg);
  border: 1px solid var(--toggle-border);
  border-radius: 8px;
  flex: 0 0 auto;
}
.visibility-toggle .vt-btn {
  flex: 1 1 0;
  justify-content: center;
  background: transparent;
  color: var(--toggle-text);
  border: 0;
  border-radius: 6px;
  padding: 6px 10px;
  min-height: 32px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.2px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.visibility-toggle .vt-btn:hover {
  color: var(--text);
  background: var(--panel-soft);
  filter: none;
}
.visibility-toggle .vt-btn[aria-pressed="true"] {
  background: var(--toggle-active-bg);
  color: var(--toggle-active-text);
}
.visibility-toggle .vt-btn[aria-pressed="true"]:hover {
  background: var(--toggle-active-bg);
  color: var(--toggle-active-text);
}
.visibility-toggle .vt-btn:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px var(--focus-ring);
}
.visibility-toggle .vt-btn .vt-btn-text-short { display: none; }
.user-menu {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 6px;
  flex: 0 0 auto;
  min-width: 0;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--border);
  font-size: 12px;
  color: var(--muted);
}
#user-label {
  display: block;
  min-width: 0;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
.user-menu button { width: 100%; min-height: 36px; }
@media (pointer: coarse) {
  nav#nav a, .internal-nav-toggle, #internal-nav-panel a.internal-nav-link, .visibility-toggle .vt-btn, .user-menu button, .topbar-cta { min-height: var(--tap-min); }
}
main#view {
  flex: 1 1 auto;
  padding: 20px 24px 24px;
  max-width: 1200px;
  width: 100%;
  margin: 0 auto;
  min-width: 0;
}
@media screen and (min-width: 1680px) {
  main#view { max-width: 1400px; }
}
.panel {
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 20px;
  margin-bottom: 20px;
  min-width: 0;
  overflow-x: auto;
}
.panel h2 { margin-top: 0; }
.panel h3 { margin-top: 0; font-size: 15px; color: var(--muted); font-weight: 500; }
.sub-panel {
  background: var(--panel-soft);
  border-color: var(--border-soft);
  margin-top: 8px;
  margin-bottom: 12px;
}
.start-here-hero {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(270px, 0.75fr);
  gap: 22px;
  align-items: stretch;
  border-color: rgba(226, 113, 42, 0.28);
  background:
    radial-gradient(circle at 92% 10%, rgba(226, 113, 42, 0.16), transparent 260px),
    linear-gradient(135deg, rgba(29,35,41,0.98), rgba(10,13,17,0.94));
}
.start-here-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(255,255,255,0.04) 1px, transparent 1px),
    linear-gradient(180deg, rgba(255,255,255,0.035) 1px, transparent 1px);
  background-size: 64px 64px;
  opacity: 0.28;
  pointer-events: none;
}
.start-here-hero > * {
  position: relative;
  z-index: var(--z-raised);
}
.start-here-hero h2 {
  max-width: 700px;
  margin: 0;
  font-size: clamp(34px, 5vw, 62px);
  line-height: 0.94;
  letter-spacing: -0.06em;
}
.start-here-hero__copy {
  display: grid;
  align-content: space-between;
  gap: 20px;
}
.start-here-hero__copy > p,
.start-here-hero__copy div > p {
  max-width: 680px;
  color: var(--text);
  font-size: 17px;
}
.start-here-flow,
.start-here-grid {
  display: grid;
  gap: 12px;
}
.start-here-grid {
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  margin-top: 12px;
}
.start-here-grid.compact {
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
}
.start-here-signal,
.start-here-card {
  min-width: 0;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 16px;
  background: rgba(255, 255, 255, 0.035);
}
.start-here-signal.highlight,
.start-here-boundary {
  border-color: rgba(226, 113, 42, 0.3);
  background:
    linear-gradient(135deg, rgba(226, 113, 42, 0.12), transparent 58%),
    var(--panel);
}
.start-here-signal strong,
.start-here-card h3 {
  display: block;
  margin: 0 0 8px 0;
  color: var(--text);
  font-size: 15px;
  font-weight: 800;
}
.start-here-signal span,
.start-here-card p {
  color: var(--muted);
  font-size: 13px;
}
.start-here-card {
  display: grid;
  align-content: space-between;
  gap: 14px;
}
[data-theme="day"] .start-here-hero {
  border-color: rgba(201, 87, 30, 0.42);
  background:
    radial-gradient(circle at 92% 10%, rgba(201, 87, 30, 0.14), transparent 260px),
    linear-gradient(135deg, var(--start-here-surface), var(--start-here-surface-edge));
  box-shadow: var(--shadow-card);
}
[data-theme="day"] .start-here-hero::before {
  background:
    linear-gradient(90deg, rgba(17, 24, 32, 0.055) 1px, transparent 1px),
    linear-gradient(180deg, rgba(17, 24, 32, 0.045) 1px, transparent 1px);
  opacity: 0.55;
}
[data-theme="day"] .start-here-hero h2,
[data-theme="day"] .start-here-hero__copy > p,
[data-theme="day"] .start-here-hero__copy div > p {
  color: var(--text);
}
[data-theme="day"] .start-here-signal,
[data-theme="day"] .start-here-card {
  background: var(--start-here-surface);
  border-color: var(--start-here-border);
  box-shadow: 0 10px 26px rgba(20, 15, 5, 0.08);
}
[data-theme="day"] .start-here-signal.highlight,
[data-theme="day"] .start-here-boundary {
  border-color: rgba(201, 87, 30, 0.46);
  background:
    linear-gradient(135deg, rgba(201, 87, 30, 0.12), transparent 62%),
    var(--start-here-highlight);
}
[data-theme="day"] .start-here-signal strong,
[data-theme="day"] .start-here-card h3 {
  color: var(--text);
}
[data-theme="day"] .start-here-signal span,
[data-theme="day"] .start-here-card p {
  color: var(--start-here-ink-soft);
}
.help-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(240px, 0.8fr);
  gap: 22px;
  align-items: stretch;
  border-color: rgba(226, 113, 42, 0.28);
  background:
    radial-gradient(circle at 92% 8%, rgba(226, 113, 42, 0.14), transparent 240px),
    var(--panel);
}
.help-hero__copy { display: grid; align-content: start; gap: 16px; min-width: 0; }
.help-hero__copy h2 {
  margin: 0;
  font-size: clamp(24px, 3.4vw, 40px);
  line-height: 1.04;
  letter-spacing: -0.04em;
}
.help-hero__copy > p { max-width: 640px; color: var(--text); font-size: 15px; }
.help-hero__aside {
  display: grid;
  align-content: start;
  gap: 8px;
  min-width: 0;
  border: 1px solid rgba(226, 113, 42, 0.3);
  border-radius: 12px;
  padding: 16px;
  background: linear-gradient(135deg, rgba(226, 113, 42, 0.1), transparent 60%), var(--panel-2);
}
.help-hero__aside strong { color: var(--text); font-size: 14px; font-weight: 800; }
.help-hero__aside span { color: var(--muted); font-size: 13px; }
.help-method-headline {
  margin: 4px 0 16px;
  font-size: clamp(20px, 2.6vw, 30px);
  letter-spacing: -0.03em;
  color: var(--text);
}
.help-method-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 12px;
}
.help-method-step {
  display: flex;
  gap: 12px;
  min-width: 0;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 14px;
  background: var(--panel-soft);
}
.help-method-step h3 { margin: 0 0 4px; color: var(--text); font-size: 14px; font-weight: 800; }
.help-method-step p { margin: 0; }
.help-step-index {
  flex: 0 0 auto;
  width: 28px; height: 28px;
  display: grid; place-items: center;
  border-radius: 8px;
  background: var(--accent);
  color: var(--on-accent);
  font-weight: 800;
  font-size: 14px;
}
.help-grid,
.help-level-grid,
.help-iwy-grid,
.help-footer-grid {
  display: grid;
  gap: 12px;
}
.help-grid { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
.help-level-grid { grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); }
.help-iwy-grid { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.help-footer-grid { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.help-card,
.help-level-card,
.help-iwy {
  min-width: 0;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 16px;
  background: rgba(255, 255, 255, 0.035);
  display: grid;
  align-content: start;
  gap: 12px;
}
.help-card h3,
.help-level-card h3 { margin: 0; color: var(--text); font-size: 15px; font-weight: 800; }
.help-card p { margin: 0; color: var(--muted); font-size: 13px; }
.help-card a { justify-self: stretch; }
.help-card a button { width: 100%; }
.help-level-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.help-level-badge {
  flex: 0 0 auto;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--accent);
  border: 1px solid rgba(226, 113, 42, 0.4);
  border-radius: 999px;
  padding: 2px 10px;
}
.help-level-card p { margin: 0; }
.help-level-card .help-ready { color: var(--text); }
.help-trouble-link {
  justify-self: start;
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  min-height: 0;
  color: var(--accent);
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}
.help-trouble-link:hover { text-decoration: underline; }
.help-iwy__tag,
.help-loop__tag,
.help-remember__tag {
  display: inline-block;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--on-accent);
  background: var(--accent);
  border-radius: 6px;
  padding: 2px 8px;
}
.help-iwy p { margin: 0; color: var(--muted); font-size: 13px; }
.help-boundary {
  margin: 16px 0 0;
  border-color: rgba(226, 113, 42, 0.3);
  background: linear-gradient(135deg, rgba(226, 113, 42, 0.1), transparent 58%), var(--panel);
}
.help-boundary h3 { color: var(--text); font-weight: 800; }
.help-boundary p { margin: 0; }
.help-list { margin: 8px 0 0; padding-left: 18px; display: grid; gap: 6px; }
.help-list li { color: var(--muted); font-size: 13px; }
.help-remember {
  display: flex;
  gap: 10px;
  align-items: baseline;
  margin-top: 16px;
  border-left: 3px solid var(--accent);
  border-radius: 6px;
  padding: 10px 12px;
  background: var(--panel-soft);
}
.help-remember__text { color: var(--text); font-size: 13px; font-weight: 600; }
.help-table-scroll { overflow-x: auto; }
.help-status-table { min-width: 300px; }
.help-status-table td { color: var(--muted); }
.help-status-flow { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0; }
.help-loop { display: grid; gap: 8px; margin: 14px 0; }
.help-loop__row {
  display: grid;
  grid-template-columns: minmax(120px, max-content) 1fr;
  gap: 12px;
  align-items: baseline;
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 10px 12px;
  background: var(--panel-soft);
}
.help-loop__row > span:last-child { color: var(--muted); font-size: 13px; }
.help-footer-grid .help-remember { margin-top: 0; }
.help-nowline { color: var(--text); font-size: 14px; }
.help-hero-links { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 4px; }
.help-hero-links a { font-size: 13px; color: var(--accent); }
.help-jump { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: 12px; }
.help-jump a { font-size: 12px; color: var(--muted); }
.help-jump a:hover { color: var(--accent); }
.help-isnot-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 14px;
  margin: 14px 0;
}
.help-isnot-col {
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 12px 14px;
  background: var(--panel-soft);
}
.help-isnot-col h3 { margin: 0 0 6px; font-size: 14px; font-weight: 800; color: var(--text); }
.help-isnot-col--is { border-left: 3px solid var(--accent); }
.help-isnot-col--isnot { border-left: 3px solid var(--border); }
.help-journey { display: grid; gap: 10px; margin: 14px 0; }
.help-journey-step {
  display: flex;
  gap: 12px;
  align-items: baseline;
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 10px 12px;
  background: var(--panel-soft);
}
.help-journey-step h3 { margin: 0 0 4px; color: var(--text); font-size: 14px; font-weight: 800; }
.help-journey-step p { margin: 0; }
.help-subhead { margin: 18px 0 4px; font-size: 14px; font-weight: 800; color: var(--text); }
.help-nav-map-block { margin-top: 6px; }
.help-nav-map { min-width: 360px; }
.help-nav-map td { color: var(--muted); vertical-align: top; }
.help-nav-map td strong { color: var(--text); font-weight: 700; }
.help-internal-map { margin-top: 16px; }
.help-glossary { display: grid; gap: 10px; margin: 14px 0 0; }
.help-glossary-item {
  border-left: 3px solid var(--border);
  border-radius: 6px;
  padding: 8px 12px;
  background: var(--panel-soft);
}
.help-glossary-item dt { color: var(--text); font-size: 14px; font-weight: 800; margin: 0; }
.help-glossary-item dd { color: var(--muted); font-size: 13px; margin: 4px 0 0; }
.help-deeplink-row { margin: -4px 0 12px; }
.help-deeplink { font-size: 13px; color: var(--accent); }
.help-deeplink:hover { text-decoration: underline; }
.help-section--focus { animation: helpSectionFocus 2.4s ease-out; }
@keyframes helpSectionFocus {
  0% { box-shadow: 0 0 0 3px var(--focus-ring); }
  100% { box-shadow: 0 0 0 0 transparent; }
}
@media (max-width: 720px) {
  .help-hero { grid-template-columns: 1fr; }
  .help-loop__row { grid-template-columns: 1fr; gap: 4px; }
  .help-isnot-grid { grid-template-columns: 1fr; }
  .help-journey-step { flex-direction: column; gap: 6px; }
}
.access-blocked {
  border-color: rgba(255, 180, 84, 0.35);
}
.row {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}
.row > * { flex: 1; min-width: 200px; }
table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
th, td {
  text-align: left;
  padding: 10px 12px;
  border-bottom: 1px solid var(--border);
  vertical-align: top;
  font-variant-numeric: tabular-nums;
  font-feature-settings: 'tnum' 1;
}
td.num, th.num {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
th { color: var(--muted); font-weight: 500; font-size: 12px; text-transform: uppercase; letter-spacing: 0.5px; }
tr:hover td { background: rgba(255,255,255,0.02); }
.pill {
  display: inline-block;
  padding: 2px 8px;
  font-size: 11px;
  border-radius: 999px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.pill-ok { background: var(--pill-ok-bg); color: var(--ok); }
.pill-warn { background: var(--pill-warn-bg); color: var(--warn); }
.pill-bad { background: var(--pill-bad-bg); color: var(--bad); }
.pill-info { background: var(--pill-info-bg); color: var(--info); }
.pill-muted { background: var(--pill-muted-bg); color: var(--muted); }
.metrics-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 12px;
}
.compact-grid {
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
}
.metric-tile {
  background: var(--panel-2);
  border: 1px solid var(--border);
  padding: 16px;
  border-radius: 8px;
}
.metric-tile .label { color: var(--muted); font-size: 12px; }
.metric-tile .value { font-size: 28px; font-weight: 600; margin-top: 6px; }
.dashboard-schedule-cta {
  box-shadow: 0 0 0 1px rgba(226, 113, 42, 0.34), 0 10px 30px rgba(226, 113, 42, 0.18);
  font-weight: 700;
}
.today-schedule-widget {
  position: relative;
  overflow: hidden;
  border-color: rgba(226, 113, 42, 0.34);
  background:
    linear-gradient(135deg, rgba(226, 113, 42, 0.09), transparent 36%),
    linear-gradient(180deg, var(--panel), var(--panel-2));
}
.today-schedule-widget::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, transparent 0, transparent calc(100% - 1px), rgba(255, 255, 255, 0.035) calc(100% - 1px)),
    linear-gradient(180deg, transparent 0, transparent calc(100% - 1px), rgba(255, 255, 255, 0.025) calc(100% - 1px));
  background-size: 72px 72px;
  opacity: 0.45;
  pointer-events: none;
}
.today-schedule-widget > * {
  position: relative;
  z-index: var(--z-raised);
}
.today-schedule-widget__header,
.today-schedule-widget__summary,
.today-schedule-row,
.today-schedule-actions {
  display: flex;
  gap: 14px;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
}
.today-schedule-widget__header h3 {
  margin: 2px 0 2px;
  font-size: 22px;
}
.today-schedule-widget__primary button {
  min-width: 148px;
}
.today-schedule-widget__summary {
  align-items: stretch;
  margin: 16px 0;
}
.today-schedule-stat,
.today-schedule-load {
  background: rgba(0, 0, 0, 0.14);
  border: 1px solid var(--border-soft);
  border-radius: 10px;
  padding: 12px 14px;
}
.today-schedule-stat {
  min-width: 210px;
}
.today-schedule-stat__value {
  display: block;
  font-size: 34px;
  font-weight: 800;
  line-height: 1;
}
.today-schedule-stat__label {
  display: block;
  color: var(--muted);
  font-size: 12px;
  margin-top: 5px;
}
.today-schedule-load {
  flex: 1 1 260px;
  display: grid;
  gap: 8px;
  align-content: center;
}
.today-schedule-list {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}
.today-schedule-row {
  align-items: flex-start;
  background: rgba(255, 255, 255, 0.035);
  border: 1px solid var(--border-soft);
  border-radius: 10px;
  padding: 12px;
}
.today-schedule-time {
  min-width: 58px;
  color: var(--accent);
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-weight: 800;
  letter-spacing: 0.04em;
}
.today-schedule-main {
  flex: 1 1 220px;
  min-width: 0;
}
.today-schedule-status {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.today-schedule-empty {
  margin: 12px 0;
  background: rgba(0, 0, 0, 0.10);
  border: 1px dashed var(--border-soft);
}
.today-schedule-actions {
  justify-content: flex-start;
  margin-top: 14px;
}
.today-schedule-actions a,
.today-schedule-widget__primary {
  text-decoration: none;
}
[data-theme="day"] .today-schedule-widget {
  background:
    linear-gradient(135deg, rgba(201, 87, 30, 0.10), transparent 36%),
    linear-gradient(180deg, #fffdf8, var(--panel));
}
[data-theme="day"] .today-schedule-stat,
[data-theme="day"] .today-schedule-load,
[data-theme="day"] .today-schedule-row,
[data-theme="day"] .today-schedule-empty {
  background: rgba(20, 15, 5, 0.035);
}
.form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px;
}
.export-filter-panel {
  display: grid;
  gap: 12px;
}
.export-section h3 {
  margin-bottom: 12px;
}
.export-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 12px;
}
.export-card {
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 16px;
  display: grid;
  gap: 10px;
}
.export-card h4 {
  margin: 0;
  color: var(--text);
}
.export-card p {
  margin: 0;
}
.warning-panel {
  border-left: 4px solid var(--warn);
}
.rank-card {
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-left: 3px solid var(--border);
  border-radius: 8px;
  padding: 14px 16px;
  margin-bottom: 12px;
}
.rank-card.top { border-left-color: var(--ok); }
.rank-card.warn { border-left-color: var(--warn); }
.rank-card.blocked { border-left-color: var(--bad); opacity: 0.85; }
.rank-card .rank-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}
.rank-card .rank-name { font-weight: 600; }
.rank-card .rank-score { font-size: 18px; font-weight: 700; }
.rank-card .rank-meta { color: var(--muted); font-size: 12px; margin-top: 4px; }
.rank-card .breakdown {
  margin-top: 10px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 6px;
  font-size: 12px;
}
.rank-card .breakdown div { color: var(--muted); }
.rank-card .breakdown div strong { color: var(--text); margin-right: 4px; }
.rank-card .alerts { margin-top: 10px; font-size: 12px; }
.rank-card .alerts ul { margin: 4px 0 0 18px; padding: 0; }
.rank-card .actions { margin-top: 12px; display: flex; gap: 8px; flex-wrap: wrap; }
.review-factor-alerts {
  border-color: rgba(224,161,90,0.35);
}
.review-factor-list {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}
.review-factor-card {
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 12px;
}
.review-factor-card.is-archived {
  opacity: 0.72;
}
.review-factor-card__head {
  align-items: start;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(180px, 1fr) auto;
}
.review-factor-card p {
  margin: 8px 0 0;
}
.review-factor-form {
  border-top: 1px solid var(--border);
  margin-top: 14px;
  padding-top: 14px;
}
.asset-context-note,
.asset-register .status-note {
  margin: 10px 0 14px;
}
.asset-list-v1a,
.crew-slot-list {
  display: grid;
  gap: 12px;
  margin-top: 14px;
}
.job-asset-capability-panel {
  border-color: rgba(215, 123, 63, 0.34);
}
.job-asset-context-form,
.crew-slot-form,
.asset-edit-form {
  border: 1px solid var(--border);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.025);
  display: grid;
  gap: 12px;
  margin-top: 14px;
  padding: 14px;
}
.crew-slot-card {
  background: var(--panel-2);
}
.asset-source-pill {
  white-space: nowrap;
}
.setup-draft-boundary {
  border-color: rgba(215, 123, 63, 0.38);
  background:
    linear-gradient(135deg, rgba(215, 123, 63, 0.12), rgba(18, 24, 29, 0.08)),
    var(--panel);
}
.setup-draft-batch,
.setup-draft-internal-tools {
  display: grid;
  gap: 16px;
}
.setup-draft-batch__head,
.setup-draft-item__head {
  align-items: flex-start;
  display: flex;
  gap: 12px;
  justify-content: space-between;
}
.setup-draft-batch-snapshot {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
}
.setup-draft-batch-snapshot div,
.setup-draft-bulk-panel,
.setup-draft-live-effect {
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.025);
  padding: 12px;
}
.setup-draft-batch-snapshot strong {
  display: block;
  font-size: 1.3rem;
}
.setup-draft-batch-snapshot span {
  color: var(--muted);
  font-size: 0.84rem;
}
.setup-draft-bulk-panel {
  align-items: center;
  display: flex;
  gap: 14px;
  justify-content: space-between;
}
.setup-draft-item-list {
  display: grid;
  gap: 12px;
}
.setup-draft-item,
.setup-draft-item-form,
.setup-draft-confirm-form {
  border: 1px solid var(--border);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.025);
  padding: 16px;
}
.setup-draft-select-row {
  align-items: center;
  display: inline-flex;
  gap: 8px;
  margin: 10px 0 0;
}
.setup-draft-select-row input {
  width: auto;
}
.setup-draft-live-effect {
  margin: 12px 0 0;
}
.setup-draft-payload {
  display: grid;
  grid-template-columns: minmax(130px, 0.36fr) 1fr;
  gap: 8px 14px;
  margin: 12px 0 0;
}
.setup-draft-payload dt {
  color: var(--muted);
  font-size: 0.84rem;
}
.setup-draft-payload dd {
  margin: 0;
  overflow-wrap: anywhere;
}
.setup-draft-warning-list {
  border-left: 3px solid var(--accent);
  color: var(--text);
  margin: 12px 0 0;
  padding-left: 22px;
}
.setup-draft-modal-list {
  margin: 14px 0;
  padding-left: 22px;
}
.notification-snapshot { margin-top: 10px; }
.sms-preview {
  white-space: pre-wrap;
}
.sms-preview-textarea {
  min-height: 128px;
}
.notification-warning {
  margin: 12px 0;
}
.manual-contact-ack {
  margin: 10px 0;
}
.clipboard-fallback {
  position: fixed;
  left: -9999px;
  top: 0;
  width: 1px;
  height: 1px;
}
.modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: var(--z-modal);
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(5, 8, 12, 0.74);
  backdrop-filter: blur(10px);
}
.modal-card {
  width: min(680px, 100%);
  max-height: min(760px, calc(100vh - 40px));
  overflow: auto;
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 14px;
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.48);
  padding: 20px;
}
.modal-content {
  margin-top: 14px;
}
.modal-title {
  margin: 0 0 6px;
  font-size: 18px;
}
.modal-body-text {
  margin: 0 0 4px;
  white-space: pre-line;
}
.modal-reason-label {
  display: block;
  margin-top: 14px;
}
.modal-reason-label > span:first-child {
  display: block;
  margin-bottom: 6px;
  font-weight: 600;
}
.modal-reason {
  width: 100%;
  min-height: 84px;
}
.modal-reason-microcopy {
  margin-top: 6px;
}
.modal-error {
  margin-top: 10px;
}
.modal-error:empty {
  display: none;
}
.modal-actions {
  margin-top: 18px;
}
.draft-queue-panel {
  border-left: 3px solid var(--accent);
}
.draft-queue-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.draft-queue-head h3 { margin: 0 0 4px; }
.draft-queue-chips {
  display: flex;
  gap: 12px;
  margin-top: 14px;
  flex-wrap: wrap;
}
.draft-queue-chip-link,
.draft-queue-chip-link:hover { text-decoration: none; }
.draft-queue-chip {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 118px;
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--panel-soft);
}
.draft-queue-chip-link .draft-queue-chip:hover { border-color: var(--accent); }
.draft-queue-chip__count {
  font-size: 26px;
  font-weight: 700;
  line-height: 1;
  color: var(--text);
}
.draft-queue-chip__label {
  margin-top: 6px;
  font-size: 12px;
  color: var(--muted);
}
.draft-queue-chip--alert { border-color: var(--warn); }
.draft-queue-chip--alert .draft-queue-chip__count { color: var(--warn); }
.draft-queue-empty { margin-top: 12px; }
.draft-filter-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.restore-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  border-left: 3px solid var(--accent);
}
.qc-fab {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: var(--z-fab);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 18px;
  border-radius: 999px;
  font-size: 15px;
  font-weight: 600;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.42);
}
.qc-fab__plus { font-size: 20px; line-height: 1; font-weight: 700; }
.qc-drawer-backdrop {
  position: fixed;
  inset: 0;
  z-index: var(--z-drawer);
  display: flex;
  justify-content: flex-end;
  background: rgba(5, 8, 12, 0.74);
  backdrop-filter: blur(10px);
}
.qc-drawer {
  width: min(460px, 100%);
  height: 100%;
  overflow-y: auto;
  background: var(--panel);
  border-left: 1px solid var(--border);
  box-shadow: -24px 0 80px rgba(0, 0, 0, 0.48);
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.qc-drawer__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.qc-drawer__head h2 { margin: 0 0 4px; font-size: 18px; }
.qc-drawer__head p { margin: 0; font-size: 13px; }
.qc-drawer__body { display: flex; flex-direction: column; gap: 4px; }
.qc-drawer__body label { margin-bottom: 8px; }
.qc-field-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 12px;
}
.qc-more { margin: 4px 0 8px; }
.qc-more > summary {
  cursor: pointer;
  font-size: 13px;
  color: var(--accent);
  margin-bottom: 8px;
}
.qc-drawer__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 6px;
}
.qc-claim-note { margin-top: 4px; }
.job-brief-warnings {
  background: rgba(255, 180, 84, 0.08);
  border: 1px solid rgba(255, 180, 84, 0.3);
  border-radius: 8px;
  color: var(--warn);
  padding: 12px 14px;
  margin-bottom: 16px;
}
.job-brief-preview-form {
  display: grid;
  gap: 12px;
}
.crane-form-section {
  margin-top: 8px;
}
.requirement-form-section {
  margin-top: 8px;
}
.job-form-basics {
  margin-top: 2px;
}
.form-section-lead {
  margin: 2px 0 12px;
}
.section-toggle-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 4px 0 8px;
}
.section-toggle-btn {
  width: auto;
  background: transparent;
  border: none;
  padding: 2px 4px;
  color: var(--accent);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}
.section-toggle-btn:hover {
  filter: none;
  text-decoration: underline;
}
.section-toggle-sep {
  color: var(--muted);
  font-size: 12px;
}
.section-subhead {
  margin: 16px 0 8px;
  font-size: 13px;
  font-weight: 700;
  color: var(--text);
}
.section-subhead:first-child {
  margin-top: 0;
}
.requirement-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 12px;
  margin: 12px 0;
}
.requirement-group {
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 12px;
}
.requirement-group-head {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: flex-start;
  margin-bottom: 8px;
}
.check-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
  font-size: 13px;
}
.check-row input {
  width: auto;
}
.requirement-pill-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}
.requirement-pill {
  border: 1px solid var(--border);
  background: var(--panel-2);
  border-radius: 999px;
  padding: 4px 10px;
  font-size: 12px;
}
.requirement-pill.custom {
  border-color: rgba(255,180,84,0.45);
  color: var(--warn);
}
.option-picker {
  display: grid;
  gap: 12px;
}
.option-search {
  max-width: 360px;
}
.option-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 12px;
}
.option-group {
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 12px;
}
.option-group-head {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
  margin-bottom: 10px;
}
.option-row {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 0;
  padding: 7px 0;
  border-top: 1px solid rgba(255,255,255,0.04);
  font-size: 13px;
}
.option-row:first-of-type {
  border-top: 0;
}
.option-row input {
  width: auto;
  margin-top: 3px;
}
.chip-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.chip {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  border: 1px solid rgba(242,240,230,0.16);
  background: rgba(242,240,230,0.055);
  color: var(--text);
  border-radius: 999px;
  padding: 3px 10px;
  font-size: 12px;
  line-height: 1.2;
}
textarea.large-note {
  min-height: 140px;
}
.asset-register,
.asset-selector-panel {
  margin-top: 16px;
}
.asset-group {
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 12px;
  margin: 12px 0;
}
.asset-group summary {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) auto auto auto;
  gap: 10px;
  align-items: center;
  cursor: pointer;
}
.asset-list {
  display: grid;
  gap: 8px;
  margin: 12px 0;
}
.asset-empty {
  border: 1px dashed var(--border);
  border-radius: 8px;
  padding: 10px;
  margin: 12px 0;
}
.asset-row {
  display: grid;
  grid-template-columns: minmax(170px, 1fr) auto auto auto;
  gap: 10px;
  align-items: center;
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 10px;
  background: rgba(255,255,255,0.025);
}
details.asset-row.asset-tile {
  display: block;
}
.asset-tile summary,
.credential-tile summary {
  min-height: 44px;
}
.asset-row.asset-tile summary {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) auto auto;
  gap: 10px;
  align-items: center;
  cursor: pointer;
}
.asset-tile__title,
.credential-tile__title {
  display: grid;
  gap: 3px;
  min-width: 0;
}
.asset-tile__meta,
.credential-tile__meta {
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
}
.asset-tile__body,
.credential-tile__body {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--border);
}
.asset-tile__actions {
  margin-top: 12px;
}
.tile-disclosure-label {
  justify-self: end;
  border: 1px solid var(--border);
  border-radius: 999px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1;
  padding: 5px 8px;
  white-space: nowrap;
}
.asset-add-form {
  margin-top: 12px;
}
.asset-add-row {
  margin-top: 12px;
}
.asset-select-row {
  border: 1px dashed var(--border);
  border-radius: 8px;
  padding: 10px;
  margin: 8px 0;
}
.credential-list {
  display: grid;
  gap: 10px;
  margin: 12px 0;
}
.credential-tile {
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 10px;
}
.credential-type-manager {
  background: rgba(255,255,255,0.025);
  border: 1px solid var(--border);
  border-radius: 10px;
  margin-top: 14px;
  padding: 12px;
}
.credential-type-manager summary {
  cursor: pointer;
  font-weight: 700;
}
.credential-type-list {
  display: grid;
  gap: 8px;
  margin: 12px 0;
}
.credential-type-row {
  align-items: center;
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-radius: 8px;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(180px, 1fr) auto;
  padding: 10px;
}
.credential-type-form {
  border-top: 1px solid var(--border);
  margin-top: 12px;
  padding-top: 12px;
}
.credential-tile summary {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) auto auto;
  gap: 10px;
  align-items: center;
  cursor: pointer;
}
.daily-log-toolbar,
.daily-log-report-head,
.daily-log-card-head,
.daily-log-entry {
  align-items: center;
  display: flex;
  gap: 14px;
  justify-content: space-between;
}
.daily-log-filters,
.daily-log-create-panel,
.daily-log-report {
  border-left: 4px solid var(--accent);
}
.daily-log-report {
  display: grid;
  gap: 14px;
}
.daily-log-card {
  background: rgba(255,255,255,0.025);
}
.daily-log-entry-form {
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-radius: 10px;
  margin: 12px 0;
  padding: 12px;
}
.daily-log-entry-list {
  display: grid;
  gap: 10px;
}
.daily-log-entry {
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-left: 4px solid var(--border);
  border-radius: 10px;
  flex-wrap: wrap;
  padding: 12px;
}
.daily-log-entry--signed_in { border-left-color: var(--ok); }
.daily-log-entry--signed_out { border-left-color: var(--muted); }
.daily-log-entry--absent,
.daily-log-entry--manual_entry { border-left-color: var(--warn); }
.daily-log-entry--removed { border-left-color: var(--bad); opacity: 0.72; }
.daily-log-entry-main {
  display: grid;
  gap: 4px;
  min-width: 180px;
}
.daily-log-entry-times {
  color: var(--muted);
  display: grid;
  gap: 4px;
  font-size: 12px;
}
.daily-log-entry-edit {
  flex-basis: 100%;
  margin-top: 8px;
}
.daily-log-entry-edit summary {
  color: var(--muted);
  cursor: pointer;
  font-size: 12px;
}
.daily-log-print-footer {
  border-top: 1px solid var(--border);
  color: var(--muted);
  font-size: 12px;
  margin-top: 8px;
  padding-top: 10px;
}
.asset-group summary:focus-visible,
.asset-tile summary:focus-visible,
.credential-tile summary:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 4px;
  border-radius: 6px;
}
.job-edit-panel summary,
.reset-panel summary {
  color: var(--text);
  font-size: 15px;
  font-weight: 600;
  margin: 0 0 12px 0;
}
.job-edit-form {
  display: grid;
  gap: 12px;
}
.reset-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 12px;
  margin-top: 16px;
}
.reset-card {
  background: var(--panel-2);
  border: 1px solid rgba(255, 95, 109, 0.25);
  border-radius: 10px;
  padding: 14px;
}
.reset-card h4 {
  margin: 0 0 8px 0;
}
.reset-preview {
  margin: 12px 0;
}
.reset-count-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
  gap: 8px;
  margin: 12px 0;
}
.reset-count {
  background: rgba(255,255,255,0.025);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 9px 10px;
}
.reset-count strong {
  display: block;
  color: var(--text);
  font-size: 18px;
  line-height: 1;
}
.reset-count span {
  display: block;
  color: var(--muted);
  font-size: 11px;
  margin-top: 4px;
}
.mode-options {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}
.mode-card {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  border: 1px solid var(--border);
  background: rgba(255,255,255,0.03);
  border-radius: 14px;
  padding: 14px;
}
.mode-card input {
  margin-top: 4px;
}
.mode-card strong,
.mode-card span {
  display: block;
}
.mode-card-title {
  color: var(--text);
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-bottom: 4px;
}
.build-business-panel {
  border-left: 4px solid var(--info);
}
.business-builder-panel {
  border-left: 4px solid var(--accent);
}
.our-business-overview {
  border-left: 4px solid var(--info);
}
.our-business-controls {
  margin-top: 8px;
}
.our-business-section {
  padding: 0;
  overflow: hidden;
}
.our-business-section > summary {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto auto;
  gap: 12px;
  align-items: center;
  min-height: 58px;
  padding: 16px 18px;
  color: var(--text);
}
.our-business-section > summary:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: -4px;
}
.our-business-section__title {
  display: grid;
  gap: 3px;
  min-width: 0;
}
.our-business-section__meta {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}
.our-business-section__body {
  border-top: 1px solid var(--border);
  padding: 16px 18px 18px;
}
.our-business-section__embedded-panel {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}
.our-business-catalogue-sections {
  display: grid;
  gap: 10px;
  margin: 12px 0;
}
.catalogue-section summary {
  grid-template-columns: minmax(180px, 0.7fr) minmax(0, 1fr) auto;
}
.asset-register-controls {
  margin: -4px 0 12px 0;
}
.business-accordion {
  background: rgba(255,255,255,0.025);
  border: 1px solid var(--border);
  border-radius: 10px;
  margin-top: 12px;
  overflow: hidden;
}
.business-accordion summary {
  display: grid;
  grid-template-columns: minmax(180px, 0.8fr) minmax(0, 1.2fr);
  gap: 10px;
  align-items: center;
  min-height: 46px;
  padding: 12px 14px;
  color: var(--text);
}
.business-accordion summary:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.business-accordion-title {
  font-size: 13px;
  font-weight: 700;
}
.business-accordion-summary {
  color: var(--muted);
  font-size: 12px;
}
.business-accordion-body {
  border-top: 1px solid var(--border);
  padding: 14px;
}
.business-layer-grid,
.tower-category-grid,
.tower-model-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 12px;
}
.business-layer-card,
.tower-category-card,
.tower-model-card,
.business-preview-card,
.business-cta-block {
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 14px;
}
.business-preview-card h3,
.business-cta-block h4,
.tower-category-card h4,
.tower-model-card h4 {
  margin: 0 0 8px 0;
}
.eyebrow {
  color: var(--accent);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 8px;
}
.business-status-row,
.business-chip-row,
.tower-model-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}
.business-chip-row span,
.tower-model-meta span {
  border: 1px solid var(--border);
  border-radius: 999px;
  color: var(--muted);
  font-size: 12px;
  padding: 3px 8px;
}
.business-status {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  border-radius: 999px;
  border: 1px solid var(--border);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.2;
  padding: 4px 8px;
  text-transform: uppercase;
}
.business-status-draft {
  color: var(--info);
  background: rgba(167,170,168,0.1);
}
.business-status-warning {
  color: var(--warn);
  background: rgba(255,180,84,0.12);
  border-color: rgba(255,180,84,0.28);
}
.business-status-neutral {
  color: var(--muted);
  background: rgba(255,255,255,0.04);
}
.business-card-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
}
.business-preview-content {
  display: grid;
  gap: 14px;
  margin-top: 14px;
}
.business-action-list {
  margin: 0;
  padding-left: 20px;
}
.business-action-list li + li {
  margin-top: 6px;
}
.business-table-wrapper {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
}
.business-verification-table {
  min-width: 860px;
}
.business-table-wrapper table {
  min-width: 760px;
}
.business-nested-detail {
  margin-top: 14px;
}
.setup-steps {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 12px;
  margin: 12px 0;
}
.setup-step {
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 12px;
}
.setup-step p {
  min-height: 34px;
}
.source-upload-hero {
  border-left: 4px solid var(--accent);
}
.source-upload-hero h3 {
  color: var(--text);
  font-size: 22px;
  margin-bottom: 8px;
}
.source-upload-eyebrow {
  color: var(--accent);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  margin-bottom: 8px;
  text-transform: uppercase;
}
.source-upload-boundary {
  border-color: rgba(255, 180, 84, 0.35);
  background: rgba(255, 180, 84, 0.06);
}
.source-upload-form {
  display: grid;
  gap: 10px;
}
.source-upload-review-help {
  border-left: 3px solid var(--accent);
  margin: 0;
  padding: 8px 10px;
  background: var(--panel-soft);
  color: var(--text);
}
.source-upload-field-help {
  margin-top: 6px;
  color: var(--muted);
  line-height: 1.45;
}
.consent-row {
  align-items: flex-start;
  background: rgba(255,255,255,0.025);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 10px 12px;
}
.consent-row span {
  margin: 0;
  color: var(--text);
}
.source-upload-list {
  display: grid;
  gap: 10px;
}
.source-upload-card {
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 14px;
}
.source-upload-card__main {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
}
.source-upload-note {
  margin: 10px 0 0 0;
}
.source-upload-steps {
  margin: 10px 0 0 18px;
  padding: 0;
}
.source-upload-steps li + li {
  margin-top: 6px;
}
.source-upload-admin-table textarea {
  min-width: 220px;
  min-height: 70px;
}
.draft-job-form .sub-panel {
  margin-top: 14px;
}
.draft-actions .button-row,
.draft-upload-panel .button-row,
.draft-attachment-panel .button-row {
  flex-wrap: wrap;
}
.draft-attachment-panel .source-upload-card {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
}
.crane-form-alerts,
.crane-planning-alerts {
  background: rgba(101, 197, 255, 0.08);
  border: 1px solid rgba(101, 197, 255, 0.25);
  border-radius: 8px;
  padding: 12px 14px;
}
.crane-form-alerts ul,
.crane-planning-alerts ul {
  margin: 0;
  padding-left: 18px;
}
.crane-planning-panel.compact {
  margin-top: 16px;
}
.crane-transport-section {
  margin-top: 16px;
}
.crane-transport-section h4 {
  margin: 0 0 10px 0;
  font-size: 13px;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.crane-transport-list {
  display: grid;
  gap: 10px;
}
.preference-section {
  margin-top: 12px;
}
.signal-list {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: 6px;
}
.signal-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 4px 10px;
  font-size: 12px;
}
.signal-chip.manual {
  border-color: rgba(63,195,128,0.45);
  color: var(--ok);
}
.signal-chip.imported {
  border-color: rgba(101,197,255,0.45);
  color: var(--info);
}
.signal-chip.learned {
  border-color: rgba(255,180,84,0.45);
  color: var(--warn);
}
.toast {
  position: fixed;
  bottom: 20px;
  right: 20px;
  background: var(--panel);
  border: 1px solid var(--border);
  border-left: 4px solid var(--accent);
  padding: 12px 16px;
  border-radius: 8px;
  max-width: 360px;
  font-size: 13px;
  box-shadow: 0 6px 18px rgba(0,0,0,0.4);
  z-index: var(--z-toast);
}
.toast.error { border-left-color: var(--bad); }
.toast.success { border-left-color: var(--ok); }
.toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
  gap: 12px;
  flex-wrap: wrap;
}
.toolbar h2 { margin: 0; }
.muted { color: var(--muted); }
.small { font-size: 12px; }
.mono { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12px; }
details { margin-top: 8px; }
summary { cursor: pointer; color: var(--muted); font-size: 12px; }
details[open] summary { color: var(--text); }
.activity-status-cell {
  min-width: 160px;
}
.activity-detail {
  margin-top: 6px;
  line-height: 1.45;
}
.technical-details {
  max-width: 360px;
}
.technical-detail-grid {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  gap: 6px 10px;
  margin: 8px 0;
  word-break: break-word;
}
.technical-payload {
  max-height: 220px;
  overflow: auto;
  padding: 10px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: rgba(0,0,0,0.18);
}
.empty {
  padding: 30px;
  text-align: center;
  color: var(--muted);
  font-size: 13px;
}
.kv {
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 4px 12px;
  font-size: 13px;
}
.kv > div:nth-child(odd) { color: var(--muted); }
ul.tag-list { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 4px; }
ul.tag-list li {
  background: var(--panel-2);
  border: 1px solid var(--border);
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 12px;
}
.read-only-banner {
  background: rgba(101,197,255,0.08);
  border: 1px solid rgba(101,197,255,0.3);
  color: var(--info);
  padding: 8px 12px;
  border-radius: 6px;
  font-size: 12px;
  margin-bottom: 14px;
}
.editing-context-banner {
  background: rgba(101,197,255,0.08);
  border: 1px solid rgba(101,197,255,0.3);
  color: var(--info);
  padding: 8px 12px;
  border-radius: 6px;
  font-size: 12px;
  margin-bottom: 12px;
}
.editing-context-banner--draft {
  background: rgba(255,180,84,0.1);
  border-color: rgba(255,180,84,0.35);
  color: var(--warn);
}
.job-row-actions {
  gap: 8px;
}
.job-row-actions .job-edit-action button {
  white-space: nowrap;
}
.security-panel {
  border-left: 4px solid var(--warn);
}
.security-panel-compact {
  border-left-color: var(--info);
}
.danger-panel {
  border-left: 4px solid var(--bad);
}
.security-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(320px, 1fr);
  gap: 20px;
}
.security-copy p {
  margin: 0 0 10px 0;
}
.security-actions {
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 16px;
}
.security-actions h3 {
  color: var(--text);
  font-size: 14px;
  margin-bottom: 12px;
}
.button-row {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
}
.audit-summary {
  display: grid;
  gap: 6px;
}
.audit-summary .pill {
  width: fit-content;
}
.internal-monitor-hero {
  border-color: rgba(226, 113, 42, 0.28);
}
.internal-monitor-toggle {
  align-items: center;
  background: rgba(226, 113, 42, 0.08);
  border: 1px solid rgba(226, 113, 42, 0.24);
  border-radius: 999px;
  display: inline-flex;
  gap: 8px;
  margin: 0;
  padding: 8px 12px;
  white-space: nowrap;
}
.internal-monitor-toggle input {
  width: auto;
}
.internal-monitor-toggle span {
  color: var(--text);
  font-size: 12px;
  font-weight: 700;
  margin: 0;
}
.pilot-monitor-table-scroll {
  border: 1px solid var(--border);
  border-radius: 10px;
  max-height: min(68vh, 720px);
  overflow: auto;
}
.pilot-monitor-table-scroll table {
  min-width: 1120px;
}
.pilot-onboarding-stage + .pilot-onboarding-stage {
  margin-top: 18px;
}
.pilot-onboarding-stage h4 {
  margin: 0 0 8px;
}
.pilot-onboarding-stage .pilot-monitor-table {
  min-width: 0;
}
.pilot-monitor-table thead th {
  background: var(--panel-2);
  box-shadow: 0 1px 0 var(--border), 0 8px 18px rgba(0, 0, 0, 0.22);
  position: sticky;
  top: 0;
  z-index: var(--z-sticky-head);
}
.internal-cleanup-boundary {
  border-color: rgba(226, 113, 42, 0.28);
}
.internal-cleanup-filters {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.internal-cleanup-filters .checkbox-row {
  align-items: center;
  margin: 0;
}
.internal-cleanup-table-scroll {
  border: 1px solid var(--border);
  border-radius: 10px;
  max-height: min(70vh, 760px);
  overflow: auto;
}
.internal-cleanup-table {
  min-width: 1480px;
}
.internal-cleanup-table thead th {
  background: var(--panel-2);
  box-shadow: 0 1px 0 var(--border), 0 8px 18px rgba(0, 0, 0, 0.22);
  position: sticky;
  top: 0;
  z-index: var(--z-sticky-head);
}
.internal-cleanup-actions {
  min-width: 360px;
}
.internal-cleanup-actions .button-row {
  gap: 6px;
  margin-top: 8px;
}
.internal-cleanup-reason,
.internal-cleanup-note,
.internal-cleanup-purpose {
  min-width: 160px;
  margin-bottom: 6px;
}
.internal-cleanup-note {
  width: 100%;
}
.internal-onboarding-hero,
.internal-onboarding-panel {
  border-color: rgba(226, 113, 42, 0.22);
}
.internal-company-domain-group {
  border-top: 1px solid var(--border);
  margin-top: 16px;
  padding-top: 14px;
}
.internal-company-domain-heading h4 {
  margin: 0;
  font-size: 14px;
}
.internal-onboarding-table-scroll {
  border: 1px solid var(--border);
  border-radius: 10px;
  overflow: auto;
}
.internal-onboarding-table-scroll table {
  min-width: 980px;
}
.internal-domain-actions {
  gap: 6px;
}
.internal-enrollment-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.internal-domain-help,
.internal-enrollment-boundary,
.internal-enrollment-form .error,
.internal-enrollment-form .button-row {
  grid-column: 1 / -1;
}
.internal-enrollment-success {
  margin-top: 16px;
  border: 1px solid rgba(63,195,128,0.35);
  border-radius: 10px;
  padding: 14px;
  background: rgba(63,195,128,0.08);
}
.one-time-password {
  white-space: pre-wrap;
  word-break: break-all;
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-radius: 8px;
  color: var(--text);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 15px;
  margin: 8px 0 12px;
  padding: 12px;
}
.job-safety-pack-actions {
  justify-content: flex-end;
}
.job-pack-link-result {
  margin-top: 12px;
}
.job-pack-link-input {
  width: 100%;
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-radius: 8px;
  color: var(--text);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 14px;
  padding: 10px 12px;
}
.job-pack-boundary {
  margin-top: 4px;
}
.job-pack-panel .job-pack-counts { margin: 6px 0 4px; }
.job-pack-lifecycle { margin: 4px 0 10px; flex-wrap: wrap; }
.job-pack-section { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--border); }
.job-pack-section-title { margin: 0 0 8px; font-size: 15px; }
.job-pack-access-list { display: grid; gap: 6px; }
.job-pack-access-row { align-items: center; gap: 10px; flex-wrap: wrap; }
.job-pack-access-name { font-weight: 600; min-width: 0; overflow-wrap: anywhere; }
.job-pack-grant-row { display: grid; gap: 8px; margin-top: 10px; max-width: 420px; }
.job-pack-doc-row, .job-pack-dw-row { margin-bottom: 10px; }
.job-pack-ack-list { margin-top: 8px; display: grid; gap: 4px; }
.job-pack-ack-row { align-items: center; gap: 8px; flex-wrap: wrap; }
.job-pack-att-row { align-items: center; gap: 10px; flex-wrap: wrap; padding: 6px 0; border-top: 1px solid var(--border); }
.job-pack-att-row:first-of-type { border-top: none; }
.job-pack-att-name { font-weight: 600; }
.job-pack-dw-notes { white-space: pre-wrap; margin-top: 6px; }
.job-pack-event-row { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; padding: 5px 0; border-top: 1px solid var(--border); }
.job-pack-event-row:first-of-type { border-top: none; }
.job-pack-upload-section, .job-pack-audit-section { margin-top: 12px; }
.site-qr-panel .toolbar { align-items: flex-start; }
.site-qr-boundary { margin-top: 4px; }
.site-qr-create { margin: 4px 0 10px; }
.site-qr-card { border: 1px solid var(--border); border-radius: 10px; padding: 14px; margin-top: 12px; background: var(--panel-2); }
.site-qr-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.site-qr-card-title strong { font-size: 15px; }
.site-qr-context { display: grid; gap: 4px; margin: 10px 0 2px; }
.site-qr-ctx-row { display: flex; gap: 10px; align-items: baseline; }
.site-qr-ctx-k { flex: 0 0 110px; color: var(--muted); font-size: 12px; text-transform: uppercase; letter-spacing: 0.04em; }
.site-qr-ctx-v { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.site-qr-readiness {
  margin-top: 12px;
  padding: 12px;
  border: 1px solid var(--border);
  border-left-width: 4px;
  border-radius: 8px;
  background: var(--panel);
}
.site-qr-readiness-ready { border-left-color: var(--ok); }
.site-qr-readiness-warning { border-left-color: var(--warn); }
.site-qr-readiness-blocked { border-left-color: var(--bad); }
.site-qr-readiness-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}
.site-qr-readiness-action { margin: 6px 0 0; }
.site-qr-readiness-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 8px;
  margin-top: 10px;
}
.site-qr-readiness-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-width: 0;
  padding: 8px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--panel-2);
}
.site-qr-readiness-label {
  min-width: 0;
  color: var(--muted);
  font-size: 12px;
  overflow-wrap: anywhere;
}
.site-qr-section { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--border); }
.site-qr-section-title { margin: 0 0 8px; font-size: 14px; }
.site-qr-link-input { width: 100%; margin-bottom: 8px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12px; }
.site-qr-lifecycle { margin: 10px 0 2px; flex-wrap: wrap; }
.site-qr-doc-row, .site-qr-note-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; flex-wrap: wrap; padding: 8px 0; border-top: 1px solid var(--border); }
.site-qr-doc-row:first-of-type, .site-qr-note-row:first-of-type { border-top: none; }
.site-qr-doc-meta { min-width: 0; }
.site-qr-doc-name, .site-qr-note-title { font-weight: 600; overflow-wrap: anywhere; }
.site-qr-note-row { flex-direction: column; }
.site-qr-note-body { white-space: pre-wrap; margin: 4px 0; overflow-wrap: anywhere; }
.site-qr-att-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 6px 0; border-top: 1px solid var(--border); }
.site-qr-att-row:first-of-type { border-top: none; }
.site-qr-att-name { font-weight: 600; }
.site-qr-event-row { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; padding: 5px 0; border-top: 1px solid var(--border); }
.site-qr-event-row:first-of-type { border-top: none; }
.site-qr-add { margin-top: 12px; display: grid; gap: 12px; }
.site-qr-add-block { display: grid; gap: 8px; max-width: 460px; }
.site-qr-input { width: 100%; }
.site-qr-check { display: flex; align-items: center; gap: 8px; }
.site-qr-check input { width: auto; }
.site-qr-disabled { margin-top: 4px; }
.site-qr-link-ready { margin: 0 0 6px; font-weight: 600; }
.site-qr-link-details { margin-top: 8px; }
.site-qr-link-details summary { cursor: pointer; font-size: 12px; opacity: 0.75; }
.site-qr-link-details .site-qr-link-input { margin-top: 6px; }
.site-qr-link-warning { margin: 0 0 10px; padding: 10px 12px; border: 1px solid var(--warn); border-left-width: 4px; border-radius: 8px; background: var(--panel-2); }
.site-qr-link-warning strong { display: block; margin-bottom: 4px; color: var(--warn); }
.site-qr-link-warning p { margin: 0; font-size: 13px; color: var(--muted); }
.site-qr-link-warning.site-qr-link-blocked { border-color: var(--bad); }
.site-qr-link-warning.site-qr-link-blocked strong { color: var(--bad); }
body.site-qr-print-active { overflow: hidden; }
.site-qr-print-overlay { position: fixed; inset: 0; z-index: var(--z-print); background: rgba(15, 23, 42, 0.62); display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 18px 12px 32px; overflow-y: auto; }
.site-qr-print-bar { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; }
.site-qr-print-sheet { background: #ffffff; color: #0f172a; width: 100%; max-width: 700px; border-radius: 10px; padding: 28px 22px; text-align: center; box-shadow: 0 12px 40px rgba(2, 6, 23, 0.35); }
.site-qr-print-eyebrow { margin: 0 0 4px; font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; color: #64748b; }
.site-qr-print-title { margin: 0 0 6px; font-size: 26px; color: #0f172a; }
.site-qr-print-sub { margin: 0 0 14px; font-size: 16px; color: #334155; }
.site-qr-print-site { margin: 0 auto 14px; font-size: 15px; color: #475569; overflow-wrap: anywhere; }
.site-qr-print-qr { width: 420px; max-width: 92%; margin: 0 auto 8px; }
.site-qr-print-qr svg { width: 100%; height: auto; display: block; }
.site-qr-print-url { font-size: 11px; color: #64748b; word-break: break-all; margin: 0 0 18px; }
.site-qr-print-steps { text-align: left; max-width: 420px; margin: 0 auto 18px; font-size: 17px; line-height: 1.7; padding-left: 24px; color: #0f172a; }
.site-qr-print-footer { font-size: 13px; color: #475569; border-top: 1px solid #e2e8f0; padding-top: 12px; margin: 0 0 6px; }
.site-qr-print-boundary { font-size: 11px; color: #64748b; margin: 0 0 6px; }
.site-qr-print-brand { font-size: 12px; color: #94a3b8; margin: 0; }
.site-qr-print-sheet-dev { outline: 3px solid #b91c1c; outline-offset: -3px; }
.site-qr-print-devbanner { margin: 0 0 14px; padding: 8px 10px; border: 2px dashed #b91c1c; border-radius: 6px; background: #fef2f2; color: #b91c1c; font-size: 13px; font-weight: 700; letter-spacing: 0.03em; }
@media print {
  @page { size: A4 portrait; margin: 14mm; }
  body.site-qr-print-active { overflow: visible; }
  body.site-qr-print-active * { visibility: hidden; }
  body.site-qr-print-active .site-qr-print-sheet, body.site-qr-print-active .site-qr-print-sheet * { visibility: visible; }
  body.site-qr-print-active .site-qr-print-overlay { position: static; padding: 0; background: none; overflow: visible; }
  body.site-qr-print-active .site-qr-print-sheet { position: absolute; left: 0; top: 0; width: 100%; max-width: none; margin: 0; box-shadow: none; border-radius: 0; }
  body.site-qr-print-active .site-qr-print-bar { display: none; }
}
.pilot-score {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 58px;
  padding: 4px 8px;
  border-radius: 999px;
  border: 1px solid rgba(226, 113, 42, 0.35);
  color: var(--text);
  background: rgba(226, 113, 42, 0.12);
  font-weight: 700;
}
.schedule-controls {
  margin-bottom: 16px;
}
.schedule-list {
  display: grid;
  gap: 10px;
}
.schedule-card {
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 14px 16px;
}
.schedule-card-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
  flex-wrap: wrap;
}
@media (max-width: 840px) {
  button,
  .topbar-cta,
  .visibility-toggle .vt-btn {
    min-height: 44px;
  }
  
  .security-grid {
    grid-template-columns: 1fr;
  }
  .internal-cleanup-filters {
    grid-template-columns: 1fr;
  }
  .start-here-hero,
  .start-here-grid,
  .start-here-grid.compact {
    grid-template-columns: 1fr;
  }
  .start-here-hero h2 {
    font-size: clamp(30px, 10vw, 42px);
  }
  .our-business-section > summary,
  .catalogue-section summary {
    grid-template-columns: 1fr;
    gap: 6px;
  }
  .our-business-section__meta {
    justify-content: flex-start;
  }
  .business-accordion summary {
    grid-template-columns: 1fr;
    gap: 4px;
  }
  .asset-group summary,
  .asset-row.asset-tile summary,
  .credential-tile summary {
    grid-template-columns: 1fr;
    gap: 6px;
  }
  .asset-tile__meta,
  .credential-tile__meta {
    justify-content: flex-start;
  }
  .source-upload-card__main {
    display: grid;
  }
  .credential-type-row,
  .review-factor-card__head,
  .setup-draft-batch__head,
  .setup-draft-item__head,
  .today-schedule-widget__header,
  .today-schedule-widget__summary,
  .today-schedule-row,
  .daily-log-card-head,
  .daily-log-entry,
  .daily-log-report-head,
  .daily-log-toolbar {
    align-items: stretch;
    display: grid;
    grid-template-columns: 1fr;
  }
  .tile-disclosure-label {
    justify-self: start;
  }
  .asset-row {
    grid-template-columns: 1fr;
  }
  .business-card-head {
    display: grid;
  }
  .kv {
    grid-template-columns: 1fr;
  }
  .setup-draft-payload {
    grid-template-columns: 1fr;
  }
  .setup-draft-bulk-panel {
    align-items: stretch;
    display: grid;
    grid-template-columns: 1fr;
  }
  .today-schedule-stat,
  .today-schedule-load,
  .today-schedule-main {
    min-width: 0;
    width: 100%;
  }
  .today-schedule-status {
    justify-content: flex-start;
  }
  .today-schedule-widget__primary,
  .today-schedule-widget__primary button,
  .today-schedule-actions,
  .today-schedule-actions a,
  .today-schedule-actions button {
    width: 100%;
  }
  .role-requirement-row,
  .role-coverage-row {
    grid-template-columns: 1fr;
  }
  main#view {
    padding: 18px;
  }
  
  .qc-drawer-backdrop {
    justify-content: stretch;
    align-items: flex-end;
  }
  .qc-drawer {
    width: 100%;
    height: auto;
    max-height: 92vh;
    border-left: none;
    border-top: 1px solid var(--border);
    border-radius: 16px 16px 0 0;
    box-shadow: 0 -24px 80px rgba(0, 0, 0, 0.48);
  }
  .qc-field-grid {
    grid-template-columns: 1fr;
  }
  .qc-drawer__actions > button {
    flex: 1 1 100%;
  }
}
@media (max-width: 480px) {
  .start-here-hero .button-row a,
  .start-here-hero .button-row button,
  .start-here-card a,
  .start-here-card button {
    width: 100%;
  }
  .internal-enrollment-form {
    grid-template-columns: 1fr;
  }
  .internal-domain-actions button {
    width: 100%;
  }
}
@media print {
  .qc-fab,
  .qc-drawer-backdrop,
  .topbar,
  .toast,
  button,
  .daily-log-filters,
  .daily-log-create-panel,
  .daily-log-entry-actions,
  .daily-log-entry-edit,
  .daily-log-entry-form,
  .security-actions {
    display: none !important;
  }
  body,
  html,
  .app-shell,
  .panel,
  .metric-tile {
    background: #fff !important;
    color: #000 !important;
    box-shadow: none !important;
  }
  .panel,
  .metric-tile,
  .daily-log-card,
  .daily-log-entry,
  .daily-log-report,
  .read-only-banner,
  .security-banner {
    border-color: #c7ccd4 !important;
  }
  .daily-log-print-footer {
    color: #222 !important;
  }
  a {
    color: #000 !important;
    text-decoration: none !important;
  }
}
.messaging-not-live {
  border-left: 4px solid var(--info, #65c5ff);
  background: rgba(101, 197, 255, 0.08);
}
.messaging-account-list {
  display: grid;
  gap: 12px;
}
.messaging-section-heading {
  margin: 18px 0 8px;
}
.messaging-account-card .form-grid {
  margin-top: 10px;
}
.pill.is-active { background: var(--pill-ok-bg); color: var(--ok); }
.pill.is-pending { background: var(--pill-info-bg); color: var(--info); }
.pill.is-error { background: var(--pill-warn-bg); color: var(--warn); }
.pill.is-muted { background: var(--pill-muted-bg); color: var(--muted); }
.acct-billing-note { border-left: 4px solid var(--accent); }
.acct-form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; margin: 10px 0; }
.acct-field { display: flex; flex-direction: column; gap: 4px; margin-bottom: 8px; }
.acct-field-label { font-size: 0.85rem; color: var(--muted); }
.acct-field input, .acct-field select, .acct-field textarea { width: 100%; box-sizing: border-box; }
.acct-summary-block { margin: 10px 0; padding: 10px; border: 1px solid var(--border); border-radius: 8px; }
.acct-summary-head { display: flex; justify-content: space-between; gap: 8px; align-items: baseline; flex-wrap: wrap; }
.acct-summary-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; margin-top: 12px; }
.acct-summary-list { border: 1px solid var(--border); border-radius: 8px; padding: 10px; }
.acct-summary-item { display: flex; justify-content: space-between; gap: 10px; padding: 3px 0; border-bottom: 1px solid var(--border-soft); }
.acct-summary-item:last-child { border-bottom: none; }
.acct-review-actions { border-left: 4px solid var(--warn); margin-top: 12px; }
.acct-future-list { margin: 8px 0; padding-left: 18px; color: var(--muted); }
.acct-future-list li { margin: 2px 0; }
.acct-table { width: 100%; border-collapse: collapse; }
.acct-table th, .acct-table td { text-align: left; padding: 7px 10px; border-bottom: 1px solid var(--border); vertical-align: top; font-size: 0.92rem; }
.acct-table th { color: var(--muted); font-weight: 600; white-space: nowrap; }
.feature-access-boundary { border-left: 3px solid var(--accent); }
.boundary-card { display: grid; gap: 6px; }
.boundary-row { display: grid; grid-template-columns: 168px 1fr; gap: 12px; align-items: baseline; }
.boundary-label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--muted);
  font-weight: 700;
}
.boundary-value { font-size: 13px; color: var(--text); }
@media (max-width: 640px) {
  .boundary-row { grid-template-columns: 1fr; gap: 2px; }
}
.empty-teach { display: grid; gap: 6px; text-align: left; }
.empty-teach p { margin: 0; }
.empty-teach .empty-title { font-weight: 600; color: var(--text); }
.feature-access-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 14px 0 12px;
}
.fa-tab {
  background: var(--panel);
  border: 1px solid var(--border);
  color: var(--muted);
  border-radius: 999px;
  padding: 6px 14px;
  font-size: 13px;
  cursor: pointer;
}
.fa-tab.active { background: var(--panel-2); border-color: var(--accent); color: var(--accent); font-weight: 600; }
.feature-access-content { margin-top: 4px; }
.feature-access-card-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin-top: 12px;
}
@media (min-width: 760px) {
  .feature-access-card-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fa-feature-card, .fa-audit-card { grid-column: 1 / -1; }
}
.fa-tenant-card, .fa-feature-card, .fa-audit-card {
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 14px;
}
.fa-tenant-card { cursor: pointer; transition: border-color 0.15s ease; }
.fa-tenant-card:hover { border-color: var(--accent); }
.fa-tenant-card-head, .fa-feature-card-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
}
.fa-tenant-card-head h3, .fa-feature-card-head h4 { margin: 0 0 2px; }
.fa-feature-card-head p { margin: 0; }
.fa-tenant-card-foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  margin-top: 10px;
}
.fa-count-chips, .fa-package-feature-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.fa-chip {
  display: inline-block;
  padding: 2px 9px;
  font-size: 11px;
  border-radius: 999px;
  background: var(--panel-2);
  color: var(--muted);
  border: 1px solid var(--border-soft);
}
.fa-chip-enabled { color: var(--ok); }
.fa-chip-pilot { color: var(--info); }
.fa-chip-readonly { color: var(--warn); }
.fa-chip-expired { color: var(--bad); }
.fa-feature-badges { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.fa-feature-meta { margin: 10px 0 8px; }
.fa-badge {
  display: inline-block;
  padding: 2px 9px;
  font-size: 11px;
  border-radius: 999px;
  letter-spacing: 0.3px;
  background: var(--panel-2);
  color: var(--muted);
  border: 1px solid var(--border-soft);
}
.fa-badge-enabled { background: rgba(63,195,128,0.16); color: var(--ok); }
.fa-badge-disabled { background: rgba(255,95,109,0.16); color: var(--bad); }
.fa-badge-read_only { background: rgba(255,180,84,0.16); color: var(--warn); }
.fa-badge-pilot { background: rgba(101,197,255,0.16); color: var(--info); }
.fa-badge-internal_only { background: rgba(226,113,42,0.16); color: var(--accent); }
.fa-badge-planned { background: var(--panel-2); color: var(--muted); }
.fa-badge-deprecated { background: rgba(140,150,165,0.18); color: var(--muted); text-decoration: line-through; }
.fa-badge-override { background: rgba(226,113,42,0.12); color: var(--accent); border-color: var(--accent); }
.fa-badge-package, .fa-badge-verified { background: rgba(63,195,128,0.14); color: var(--ok); }
.fa-badge-audit { background: var(--panel-2); color: var(--text); }
.fa-product-live { color: var(--ok); }
.fa-product-pilot_ready { color: var(--info); }
.fa-product-internal_only { color: var(--accent); }
.fa-product-planned, .fa-product-deprecated { color: var(--muted); }
.fa-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.fa-action-btn {
  background: var(--panel-2);
  border: 1px solid var(--border);
  color: var(--text);
  border-radius: 8px;
  padding: 5px 11px;
  font-size: 12px;
  cursor: pointer;
}
.fa-action-btn:hover { border-color: var(--accent); }
.fa-action-btn.active { background: var(--accent); border-color: var(--accent); color: #fff; cursor: default; }
.fa-action-btn.danger:not(.active) { background: var(--panel-2); color: var(--bad); border-color: rgba(180,35,24,0.45); }
.fa-action-btn.danger.active { background: var(--bad); color: #fff; border-color: var(--bad); }
.fa-action-btn.link-button { background: transparent; border-color: transparent; color: var(--muted); text-decoration: underline; }
.link-button {
  background: transparent;
  border: none;
  color: var(--accent);
  cursor: pointer;
  padding: 0;
  font: inherit;
  text-decoration: underline;
}
.fa-detail-head { margin-bottom: 8px; }
.fa-detail-head h3 { margin: 8px 0 2px; }
.fa-package-panel { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; align-items: center; }
.fa-package-controls { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.fa-package-select, .fa-domain-set-form select, .feature-access-audit-filters select { min-width: 150px; }
.fa-domain-defaults { margin: 10px 0; display: flex; flex-direction: column; gap: 6px; }
.fa-domain-default-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.fa-domain-set-form { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 6px; }
.feature-access-audit-filters { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.fa-audit-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.fa-audit-card p { margin: 6px 0 0; }
.fa-pilot-date { width: 100%; }
.feature-locked { border-left: 3px solid var(--warn); }
.cp-tab {
  background: var(--panel);
  border: 1px solid var(--border);
  color: var(--muted);
  border-radius: 999px;
  padding: 6px 14px;
  font-size: 13px;
  cursor: pointer;
}
.cp-tab.active { background: var(--panel-2); border-color: var(--accent); color: var(--accent); font-weight: 600; }
.cp-chip {
  display: inline-block;
  padding: 2px 9px;
  font-size: 11px;
  border-radius: 999px;
  background: var(--panel-2);
  color: var(--muted);
  border: 1px solid var(--border-soft);
}
.cp-pack-card .cp-pack-detail { margin-top: 10px; border-top: 1px solid var(--border-soft); padding-top: 10px; }
.cp-pack-detail h5 { margin: 10px 0 4px; font-size: 12px; text-transform: uppercase; letter-spacing: 0.3px; color: var(--muted); }
.cp-family, .cp-alias-row, .cp-req-row { display: flex; gap: 8px; flex-wrap: wrap; align-items: baseline; margin: 3px 0; }
.cp-family-label { font-weight: 600; min-width: 110px; }
.cp-family-roles { color: var(--muted); font-size: 13px; }
.cp-req-list { display: flex; flex-direction: column; gap: 4px; }
.cp-req-row { font-size: 13px; }
.cp-assign-form { display: flex; flex-direction: column; gap: 8px; margin-top: 10px; border-top: 1px solid var(--border-soft); padding-top: 10px; }
.cp-assign-row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.cp-assign-row select { min-width: 180px; max-width: 100%; }
.cp-reason-input, .cp-note-input { width: 100%; box-sizing: border-box; }
.qc-pack-section { border-top: 1px solid var(--border-soft); margin-top: 12px; padding-top: 10px; }
.qc-pack-title { margin: 0 0 4px; font-size: 15px; }
.qc-pack-other { display: flex; flex-direction: column; gap: 8px; margin-top: 8px; padding: 10px; border: 1px dashed var(--border); border-radius: 10px; }
.qc-pack-review { display: flex; align-items: center; gap: 8px; }
.qc-pack-review input { width: auto; }
.job-pack-context { display: flex; flex-direction: column; gap: 4px; }
.job-pack-context-row { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.job-pack-review-warning {
  margin-top: 4px;
  font-size: 12px;
  color: var(--warn);
  background: rgba(255, 180, 84, 0.12);
  border-left: 3px solid var(--warn);
  padding: 4px 8px;
  border-radius: 4px;
}
.scope-role-suggestions { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 8px 0; }
.scope-role-chip {
  background: var(--panel-2);
  border: 1px solid var(--border);
  color: var(--text);
  border-radius: 999px;
  padding: 4px 12px;
  font-size: 12px;
  cursor: pointer;
}
.scope-role-chip:hover { border-color: var(--accent); }
.scope-provenance {
  background: var(--panel-2);
  border: 1px solid var(--border);
  border-left: 3px solid var(--accent);
  border-radius: 8px;
  padding: 10px 12px;
  margin: 10px 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.scope-field-tag { color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: 0.04em; }
.scope-field-value { white-space: pre-wrap; }
.scope-editor { margin-top: 10px; }
.scope-editor summary { cursor: pointer; color: var(--accent); }
.scope-editor-form { display: flex; flex-direction: column; gap: 8px; margin-top: 10px; }
.scope-actions { margin-top: 10px; }
.scope-boundary { margin-top: 10px; }
.asset-behaviour-note { margin: 4px 0 10px; }
.create-role-suggest-host { margin-bottom: 6px; }
.scope-suggest-modal .modal-content, .schedule-day-modal .modal-content { max-height: 70vh; overflow: auto; }
.scope-suggest-card {
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 12px;
  margin-bottom: 10px;
  background: var(--panel-2);
}
.scope-suggest-head { display: flex; justify-content: space-between; gap: 8px; align-items: center; flex-wrap: wrap; }
.scope-suggest-preview { margin: 8px 0; }
.scope-suggest-preview summary { cursor: pointer; color: var(--accent); }
.schedule-day-list { display: flex; flex-direction: column; gap: 8px; margin: 10px 0; }
.parent-schedule-summary { margin: 8px 0 0; }
.error-text { color: var(--bad); }
.schedule-day-row {
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 10px 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  background: var(--panel-2);
}
.schedule-day-today { border-color: var(--accent); }
.schedule-day-main { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.schedule-day-actions { flex-wrap: wrap; }
.schedule-day-more summary { cursor: pointer; color: var(--accent); margin: 6px 0; }
.schedule-add { margin-top: 10px; }
.schedule-add summary { cursor: pointer; color: var(--accent); }
.schedule-add-form, .schedule-day-form { display: flex; flex-direction: column; gap: 8px; margin-top: 10px; }
.schedule-weekdays { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 6px 0; }
.schedule-weekday { display: inline-flex; align-items: center; gap: 4px; font-size: 13px; }
.schedule-weekday input { width: auto; }
.schedule-custom-days { display: flex; flex-direction: column; gap: 6px; }
.qc-suggest-host { margin-bottom: 10px; }
.qc-suggest-card {
  border: 1px solid var(--border);
  border-left: 3px solid var(--accent);
  border-radius: 10px;
  padding: 10px 12px;
  background: var(--panel-2);
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.qc-suggest-head { display: flex; justify-content: space-between; gap: 8px; align-items: center; flex-wrap: wrap; }
.qc-suggest-preview summary { cursor: pointer; color: var(--accent); }
.qc-suggest-applied { color: var(--ok, #2e9e5b); font-size: 13px; margin: 0; }
.qc-role-hints { margin: 6px 0; }
.qc-schedule-extras { margin: 6px 0; display: flex; flex-direction: column; gap: 6px; }
@media (max-width: 640px) {
  .schedule-day-main { font-size: 13px; }
  .schedule-day-actions button { font-size: 13px; padding: 8px 12px; min-height: var(--tap-min); }
}
:root,
[data-theme="night"] {
  --asset-cyan-01: #4bb8c9;
  --asset-indigo-02: #7b8ce8;
  --asset-violet-03: #a97fd6;
  --asset-periwinkle-04: #8473de;
  --asset-magenta-05: #d074b0;
  --asset-azure-06: #5a9fe0;
  --asset-plum-07: #b58bb0;
  --asset-slate-08: #8d97a6;
}
[data-theme="day"] {
  --asset-cyan-01: #0f6f7d;
  --asset-indigo-02: #3f4fae;
  --asset-violet-03: #6f3f9c;
  --asset-periwinkle-04: #4430a6;
  --asset-magenta-05: #97377a;
  --asset-azure-06: #1f5f9c;
  --asset-plum-07: #7a4a74;
  --asset-slate-08: #4d5765;
}
.asset-cyan-01 { --asset-token: var(--asset-cyan-01); }
.asset-indigo-02 { --asset-token: var(--asset-indigo-02); }
.asset-violet-03 { --asset-token: var(--asset-violet-03); }
.asset-periwinkle-04 { --asset-token: var(--asset-periwinkle-04); }
.asset-magenta-05 { --asset-token: var(--asset-magenta-05); }
.asset-azure-06 { --asset-token: var(--asset-azure-06); }
.asset-plum-07 { --asset-token: var(--asset-plum-07); }
.asset-slate-08 { --asset-token: var(--asset-slate-08); }
.schedule-card.asset-accent {
  border-left: 4px solid var(--asset-token, var(--border));
  padding-left: 12px;
}
.schedule-card.asset-accent-none {
  border-left: 4px solid transparent;
  padding-left: 12px;
}
.asset-identity-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}
.asset-identity-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 2px 8px;
  border: 1px solid var(--asset-token, var(--border));
  border-radius: 999px;
  font-size: 12px;
  line-height: 1.6;
  color: var(--text);
}
.asset-identity-marker { color: var(--asset-token, var(--muted)); font-size: 10px; }
.asset-identity-label { font-weight: 600; }
.asset-identity-marker-lg {
  display: inline-block;
  width: 10px;
  align-self: stretch;
  min-height: 34px;
  border-radius: 3px;
  background: var(--asset-token, var(--border));
}
.asset-lens-row { border-left: 4px solid var(--asset-token, var(--border)); }
.asset-lens-heading { display: flex; gap: 10px; align-items: stretch; }
.asset-lens-heading h3 { margin: 0; }
.asset-lens-entries { display: flex; flex-direction: column; gap: 8px; margin-top: 10px; }
.asset-lens-entry {
  display: grid;
  grid-template-columns: minmax(120px, 180px) 1fr auto;
  gap: 12px;
  align-items: center;
  padding: 8px 10px;
  border: 1px solid var(--border-soft);
  border-radius: 8px;
  background: var(--panel-soft);
}
.asset-lens-entry-conflict { border-color: var(--warn); }
.asset-lens-entry-time { font-variant-numeric: tabular-nums; }
.asset-lens-entry-clock { font-weight: 600; }
.asset-lens-entry-date { margin: 0; }
.asset-lens-entry-time-unset .asset-lens-entry-clock { font-weight: 500; color: var(--muted); }
.asset-lens-search { display: flex; flex-direction: column; gap: 6px; }
.asset-lens-search .selector-filter { max-width: 420px; }
.schedule-conflict-notice { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.schedule-conflict-detail { color: var(--warn); margin-top: 8px; }
.lens-tabs { display: flex; gap: 6px; flex-wrap: wrap; margin: 12px 0; }
.lens-tab {
  padding: 7px 14px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--toggle-bg);
  color: var(--toggle-text);
  cursor: pointer;
  font-size: 13px;
}
.lens-tab-active {
  background: var(--toggle-active-bg);
  color: var(--toggle-active-text);
  border-color: var(--toggle-active-bg);
}
.lens-tab:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }
.selector-field { display: flex; flex-direction: column; gap: 6px; }
.selector-filter {
  background: var(--input-bg);
  border: 1px solid var(--input-border);
  border-radius: 6px;
  padding: 7px 10px;
  color: var(--text);
}
.selector-status:empty { display: none; }
.selector-empty { padding: 8px 0; }
.messaging-summary { display: flex; gap: 12px; flex-wrap: wrap; }
.messaging-controls { display: flex; flex-direction: column; gap: 10px; }
.messaging-pager { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.sms-event-list { display: flex; flex-direction: column; gap: 4px; }
.sms-event-head,
.sms-event-summary {
  display: grid;
  grid-template-columns: minmax(120px, 170px) minmax(140px, 1.2fr) minmax(140px, 1.4fr) minmax(90px, auto);
  gap: 12px;
  align-items: center;
}
.sms-event-head { padding: 6px 10px; border-bottom: 1px solid var(--border); }
.sms-event-row { border-bottom: 1px solid var(--border-soft); }
.sms-event-summary { padding: 9px 10px; cursor: pointer; }
.sms-event-summary:focus-visible { outline: 2px solid var(--focus-ring); outline-offset: -2px; }
.sms-event-time { font-variant-numeric: tabular-nums; color: var(--muted); font-size: 13px; }
.sms-event-status { display: flex; align-items: center; gap: 8px; justify-content: flex-end; }
.sms-event-summary { list-style: none; }
.sms-event-summary::-webkit-details-marker { display: none; }
.sms-event-caret { color: var(--muted); transition: transform 120ms ease; display: inline-block; }
.sms-event-row[open] .sms-event-caret { transform: rotate(90deg); }
.sms-event-summary:hover { background: var(--panel-soft); }
.sms-event-recipient { font-weight: 600; }
.sms-event-job { color: var(--muted); font-size: 13px; }
.sms-event-detail { padding: 10px 10px 16px; background: var(--panel-soft); }
.sms-detail-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 6px 18px;
  margin-top: 8px;
}
.sms-detail-row { display: flex; justify-content: space-between; gap: 10px; border-bottom: 1px dotted var(--border-soft); padding: 3px 0; }
.sms-event-body { margin-top: 12px; }
.sms-event-body-text {
  white-space: pre-wrap;
  word-break: break-word;
  background: var(--panel-2);
  border: 1px solid var(--border-soft);
  border-radius: 6px;
  padding: 8px 10px;
  font-size: 12px;
  margin: 4px 0 0;
}
@media (max-width: 720px) {
  .asset-lens-entry { grid-template-columns: 1fr; }
  .sms-event-head { display: none; }
  .sms-event-summary { grid-template-columns: 1fr; gap: 3px; }
  .messaging-summary .metric-tile { flex: 1 1 45%; }
}
.asset-lens-group-heading {
  margin: 18px 0 8px;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
}
.asset-lens-group-attention { color: var(--warn); }
.asset-attention-toggle { margin-top: 4px; }
.cj-flow {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.cj-stepper-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 6px;
  counter-reset: cj-step;
}
.cj-step-button {
  width: 100%;
  min-height: 44px; 
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 2px 8px;
  text-align: left;
  padding: 8px 10px;
  background: var(--panel-soft);
  color: var(--text);
  border: 1px solid var(--border-soft);
  border-radius: 8px;
  font-size: 13px;
  cursor: pointer;
}
.cj-step-button[disabled] {
  cursor: default;
  opacity: 0.55;
}
.cj-step-current .cj-step-button {
  border-color: var(--accent);
  background: var(--panel-2);
  font-weight: 600;
}
.cj-step-index {
  flex: 0 0 auto;
  min-width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--border);
  color: var(--text);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
}
.cj-step-current .cj-step-index {
  background: var(--accent);
  color: var(--on-accent);
}
.cj-step-name {
  grid-column: 2;
  overflow-wrap: anywhere;
}
.cj-step-state {
  grid-column: 2;
  display: block;
  overflow-wrap: anywhere;
  line-height: 1.3;
}
.cj-stage {
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 14px;
  background: var(--panel);
}
.cj-stage-title {
  margin: 0 0 2px;
  font-size: 18px;
}
.cj-stage-title:focus-visible,
.cj-step-button:focus-visible,
.cj-chip:focus-visible,
.cj-issue-link:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.cj-stage-lead { margin: 0 0 12px; }
.cj-field-row {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}
.cj-field-row > * { flex: 1 1 200px; min-width: 200px; }
.cj-field-row > datalist { display: none; }
.cj-nav {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--border-soft);
}
.cj-nav button { min-height: 44px; }
.cj-more {
  margin: 10px 0;
  border: 1px solid var(--border-soft);
  border-radius: 8px;
  padding: 8px 10px;
  background: var(--panel-soft);
}
.cj-more > summary {
  cursor: pointer;
  min-height: 32px;
  display: flex;
  align-items: center;
  font-size: 13px;
  color: var(--text);
}
.cj-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 8px 0;
}
.cj-chip {
  min-height: 36px;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: var(--panel-2);
  color: var(--text);
  font-size: 12px;
  cursor: pointer;
}
.cj-chip-on {
  border-color: var(--accent);
  border-width: 2px;
  font-weight: 600;
}
.cj-selected-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 6px 0;
}
.cj-inherited,
.cj-applied-template,
.cj-consequences {
  border: 1px solid var(--border-soft);
  border-left: 4px solid var(--info);
  border-radius: 8px;
  padding: 10px 12px;
  margin: 10px 0;
  background: var(--panel-soft);
}
.cj-consequence-list { margin: 6px 0 0 18px; padding: 0; }
.cj-consequence-list li { margin: 2px 0; }
.cj-source-chip {
  display: inline-block;
  margin-top: 4px;
  font-size: 11px;
  color: var(--muted);
}
.cj-new-record { color: var(--muted); }
.cj-warn-text { color: var(--warn); }
.cj-schedule-consequence {
  margin: 10px 0 0;
  padding: 8px 10px;
  border-radius: 8px;
  border: 1px solid var(--border-soft);
  font-size: 13px;
}
.cj-on-calendar { border-left: 4px solid var(--ok); }
.cj-off-calendar { border-left: 4px solid var(--warn); }
.cj-invalidation {
  border: 1px solid var(--warn);
  border-radius: 8px;
  padding: 10px 12px;
  background: var(--panel-soft);
}
.cj-invalidation-list { margin: 6px 0 6px 18px; padding: 0; }
.cj-suggestion {
  border: 1px solid var(--accent);
  border-radius: 8px;
  padding: 12px;
  margin: 12px 0;
  background: var(--panel-soft);
}
.cj-suggestion-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 4px;
}
.cj-preview-list { margin: 8px 0; }
.cj-preview-list dt { font-weight: 600; font-size: 12px; color: var(--muted); }
.cj-preview-list dd { margin: 0 0 8px; font-size: 13px; }
.cj-role-count-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  padding: 8px 0;
  border-bottom: 1px solid var(--border-soft);
}
.cj-role-count-row input[type="number"] { max-width: 90px; }
.cj-conflict { margin: 12px 0; }
.cj-review-table {
  width: 100%;
  border-collapse: collapse;
  margin: 12px 0;
  font-size: 13px;
}
.cj-review-table th,
.cj-review-table td {
  text-align: left;
  vertical-align: top;
  padding: 7px 10px;
  border-bottom: 1px solid var(--border-soft);
}
.cj-review-table thead th {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muted);
}
.cj-review-value { overflow-wrap: anywhere; white-space: pre-line; }
.cj-blockers { margin-bottom: 12px; }
.cj-issue-link {
  background: none;
  border: none;
  padding: 0;
  color: inherit;
  text-decoration: underline;
  cursor: pointer;
  font: inherit;
  text-align: left;
}
.cj-safety-note { margin-top: 12px; }
.cj-stepper-compact { display: none; }
@media (max-width: 720px) {
  .cj-stepper-compact {
    display: block;
    margin: 0 0 6px;
    font-size: 13px;
    font-weight: 600;
    color: var(--text);
  }
  .cj-stepper { border: 1px solid var(--border-soft); border-radius: 8px; padding: 8px 10px; }
  .cj-stepper-list {
    grid-template-columns: 1fr;
    max-height: 168px;
    overflow-y: auto;
  }
  .cj-field-row { flex-direction: column; gap: 10px; }
  .cj-field-row > * { min-width: 0; }
  .cj-stage { padding: 12px 10px; }
  .cj-nav { display: flex; gap: 8px; }
  .cj-nav button { flex: 1 1 auto; }
  .cj-review-table { display: block; overflow-x: auto; }
}
.pill-draft {
  background: var(--panel-soft);
  color: var(--text);
  border: 1px dashed var(--border);
  letter-spacing: 0.04em;
}
.schedule-card-draft {
  border-style: dashed;
  background: var(--panel-soft);
}
.schedule-draft-note {
  margin-top: 6px;
  font-style: italic;
}
.asset-lens-entry-draft {
  border-style: dashed;
  background: var(--panel-soft);
}
.cj-maturity { margin-top: 12px; }
.cj-maturity-options {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.cj-maturity-option {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  min-height: 44px;
  padding: 8px 10px;
  border: 1px solid var(--border-soft);
  border-radius: 8px;
  background: var(--panel-soft);
  cursor: pointer;
}
.cj-maturity-option-on {
  border-color: var(--accent);
  border-width: 2px;
}
.cj-maturity-hint { display: block; }
.cj-counterpart-pill { margin-left: 6px; }
.cj-severity { margin: 12px 0; }
.cj-severity-head {
  display: flex;
  gap: 6px;
  align-items: center;
  margin: 0 0 6px;
}
.cj-severity-line {
  margin: 0 0 6px;
  font-weight: 600;
}
.cj-severity-detail {
  margin: 0 0 8px 18px;
  padding: 0;
  font-size: 13px;
}
.schedule-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: flex-end;
  margin: 8px 0 12px;
}
.schedule-filter {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 180px;
}
.schedule-filter select { min-height: 36px; }
@media (max-width: 720px) {
  .schedule-filters { flex-direction: column; align-items: stretch; }
  .schedule-filter { min-width: 0; }
}
.topbar-drawer { display: contents; }
.nav-toggle { display: none; }
main#view:focus { outline: none; }
body:has(#quick-capture-fab) .toast { bottom: var(--fab-clearance); }
@media screen and (max-width: 1024px) {
  .topbar {
    position: sticky;
    top: 0;
    z-index: var(--z-topbar);
    flex: 0 0 auto;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    width: auto;
    height: auto;
    min-height: calc(var(--topbar-h) + var(--safe-top));
    padding: calc(6px + var(--safe-top)) max(var(--gutter-mobile), var(--safe-right)) 6px max(var(--gutter-mobile), var(--safe-left));
    border-right: 0;
    border-bottom: 1px solid var(--border);
    overflow: visible;
    overscroll-behavior: auto;
  }
  .brand { flex: 1 1 auto; min-width: 0; gap: 8px; margin: 0; overflow: hidden; }
  .topbar-brand-mark { width: 32px; height: 32px; }
  .topbar-brand-copy { white-space: nowrap; min-width: 0; }
  .topbar-brand-copy strong { font-size: 16px; overflow: hidden; text-overflow: ellipsis; display: block; }
  @media (max-width: 400px) {
    .topbar-brand-copy span, .brand .badge { display: none; }
  }
  .nav-toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
    min-height: var(--tap-min);
    min-width: var(--tap-min);
    padding: 0 12px;
    background: var(--panel);
    color: var(--text);
    border: 1px solid var(--border);
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
  }
  .nav-toggle:hover { filter: none; }
  .nav-toggle[aria-expanded="true"] { border-color: var(--accent); color: var(--text); }
  .nav-toggle:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; box-shadow: none; }
  @media (hover: hover) {
    .nav-toggle:hover { border-color: var(--accent); }
  }
  .nav-toggle-bars { display: inline-grid; gap: 4px; width: 18px; }
  .nav-toggle-bars span { display: block; height: 2px; border-radius: 2px; background: currentColor; }
  
  html:not(.js-shell) .topbar { flex-wrap: wrap; }
  .topbar-drawer {
    display: flex;
    flex: 1 1 100%;
    flex-direction: column;
    gap: 0;
    width: 100%;
    background: var(--panel);
    border-top: 1px solid var(--border);
    padding: 8px 0 8px;
  }
  html.js-shell .topbar-drawer {
    display: none;
    position: fixed;
    top: calc(var(--topbar-h) + var(--safe-top));
    left: 0;
    right: 0;
    bottom: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding: 8px max(var(--gutter-mobile), var(--safe-right)) calc(16px + var(--safe-bottom)) max(var(--gutter-mobile), var(--safe-left));
    z-index: var(--z-topbar);
  }
  html.js-shell.nav-open .topbar-drawer { display: flex; }
  html.nav-open, html.nav-open body { overflow: hidden; overscroll-behavior: none; }
  html.nav-open .qc-fab { display: none; }
  button, .topbar-cta { min-height: var(--tap-min); }
  
  nav#nav { display: flex; flex-direction: column; flex: 0 0 auto; width: 100%; min-height: 0; margin: 0; padding: 0; gap: 0; overflow: visible; border-bottom: 0; }
  .nav-group { gap: 0; }
  .nav-group + .nav-group { margin-top: 6px; }
  .nav-group-heading { padding: 14px 10px 6px; font-size: 11px; }
  nav#nav a {
    display: flex;
    align-items: center;
    min-height: 48px;
    padding: 12px 10px;
    border-radius: 0;
    font-size: 16px;
    line-height: 1.5;
    color: var(--text);
    border-bottom: 1px solid var(--border-soft);
    border-left: 3px solid transparent;
  }
  nav#nav a.active { border-bottom-color: var(--border-soft); border-left-color: var(--accent); background: var(--panel-soft); }
  nav#nav a:focus-visible, .internal-nav-toggle:focus-visible, #internal-nav-panel a.internal-nav-link:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: -2px;
    text-decoration: none;
    box-shadow: none;
  }
  @media (hover: hover) {
    nav#nav a:hover { text-decoration: none; background: var(--panel-soft); color: var(--text); }
  }
  
  .internal-nav { display: block; width: 100%; margin-top: 6px; padding-top: 0; border-top: 0; }
  .internal-nav-toggle {
    width: 100%;
    min-height: 48px;
    justify-content: space-between;
    padding: 12px 10px;
    border: none;
    border-bottom: 1px solid var(--border-soft);
    border-left: 3px solid transparent;
    border-radius: 0;
    background: transparent;
    font-size: 16px;
    color: var(--text);
  }
  .internal-nav-toggle.active { border-left-color: var(--accent); background: var(--panel-soft); }
  .internal-nav-panel {
    position: static;
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 4px 0 8px 12px;
    border: none;
    border-radius: 0;
    box-shadow: none;
    background: var(--panel-2);
  }
  #internal-nav-panel a.internal-nav-link { display: flex; align-items: center; min-height: var(--tap-min); padding: 10px; border-radius: 0; font-size: 15px; border-left: 3px solid transparent; }
  #internal-nav-panel a.internal-nav-link.active { color: var(--text); border-left-color: var(--accent); background: var(--panel-soft); }
  .internal-nav-group-heading { padding: 10px 10px 4px; font-size: 11px; }
  
  .topbar-cta { order: 0; width: 100%; min-height: 48px; margin-top: 14px; font-size: 15px; }
  .visibility-toggle { width: 100%; margin-top: 12px; }
  .visibility-toggle .vt-btn { flex: 1 1 0; justify-content: center; min-height: var(--tap-min); }
  .visibility-toggle .vt-btn .vt-btn-text { display: inline; }
  .visibility-toggle .vt-btn .vt-btn-text-short { display: none; }
  .user-menu {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    max-width: none;
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid var(--border);
    font-size: 13px;
  }
  #user-label { max-width: none; white-space: normal; text-align: left; overflow: visible; overflow-wrap: anywhere; line-height: 1.4; }
  .user-menu button { width: 100%; min-height: var(--tap-min); }
  
  .app-shell { overflow-x: clip; flex-direction: column; align-items: stretch; }
  main#view { flex: 1 1 auto; max-width: none; padding: 16px max(var(--gutter-mobile), var(--safe-right)) calc(24px + var(--safe-bottom)) max(var(--gutter-mobile), var(--safe-left)); }
  body:has(#quick-capture-fab) main#view { padding-bottom: calc(var(--fab-clearance) + var(--safe-bottom)); }
  .qc-fab { right: max(16px, var(--safe-right)); bottom: calc(16px + var(--safe-bottom)); padding: 12px 16px; min-height: var(--tap-min); }
  .toast { left: var(--gutter-mobile); right: var(--gutter-mobile); bottom: calc(12px + var(--safe-bottom)); max-width: none; }
  body:has(#quick-capture-fab) .toast { bottom: calc(var(--fab-clearance) + var(--safe-bottom)); }
  @supports not selector(:has(a)) {
    main#view { padding-bottom: calc(var(--fab-clearance) + var(--safe-bottom)); }
    .toast { bottom: calc(var(--fab-clearance) + var(--safe-bottom)); }
  }
  
  input:not([type="checkbox"]):not([type="radio"]), select, textarea { font-size: 16px; max-width: 100%; min-width: 0; }
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), select { min-height: var(--tap-min); }
  img, video, canvas, svg { max-width: 100%; }
  img { height: auto; }
  
  .qc-drawer { max-height: 92vh; max-height: 92dvh; }
  .modal-card { max-height: calc(100vh - 24px); max-height: calc(100dvh - 24px); }
  .modal-backdrop { padding: max(12px, var(--safe-top)) max(12px, var(--safe-right)) max(12px, var(--safe-bottom)) max(12px, var(--safe-left)); }
  body.qc-drawer-open, body:has(.modal-backdrop) { overflow: hidden; }
  .qc-drawer, .modal-card { overscroll-behavior: contain; }
  .modal-actions button, .qc-drawer__actions button, .qc-close, .site-qr-print-bar button { min-height: var(--tap-min); }
  .site-qr-print-overlay { padding: calc(18px + var(--safe-top)) max(12px, var(--safe-right)) calc(32px + var(--safe-bottom)) max(12px, var(--safe-left)); overscroll-behavior: contain; }
  .login-shell { min-height: 100vh; min-height: 100dvh; padding: 16px; }
  .login-card { width: 100%; max-width: 420px; padding: 24px 20px; }
  .login-brand-copy strong { font-size: clamp(20px, 6.5vw, 26px); }
  .qc-drawer { padding-bottom: calc(20px + var(--safe-bottom)); }
  .scope-suggest-modal .modal-content, .schedule-day-modal .modal-content { max-height: 60vh; max-height: 60dvh; }
  .panel { padding: 16px; }
  
  summary { min-height: var(--tap-min); padding-block: 10px; }
  .job-edit-panel summary, .reset-panel summary, .daily-log-entry-edit summary,
  .credential-type-manager summary, .cj-more > summary { display: flex; align-items: center; min-height: var(--tap-min); }
  .cj-chip, .lens-tab, .scope-role-chip, .fa-action-btn, .cp-tab, .fa-tab,
  .schedule-filter select, .internal-monitor-toggle { min-height: var(--tap-min); }
  .cj-chip, .lens-tab, .cp-tab, .fa-tab { padding: 10px 14px; }
  .scope-role-chip, .fa-action-btn { padding: 8px 12px; font-size: 13px; }
  .option-row, .check-row { min-height: var(--tap-min); align-items: center; padding: 6px 0; font-size: 14px; }
  .option-row input, .check-row input, .internal-monitor-toggle input { width: 22px; height: 22px; flex: 0 0 22px; margin: 0; }
  .link-button, .help-trouble-link, .help-jump a, .draft-filter-bar a {
    display: inline-flex;
    align-items: center;
    min-height: var(--tap-min);
    padding: 0 6px;
  }
  
  .draft-attachment-panel .source-upload-card { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; align-items: stretch; }
  .source-upload-card__main { min-width: 0; }
  .source-upload-card__main strong { overflow-wrap: anywhere; }
  .requirement-grid { grid-template-columns: minmax(0, 1fr); }
  .requirement-group-head { flex-wrap: wrap; }
  .requirement-group-head > * { min-width: 0; }
  .rank-card .rank-head { flex-wrap: wrap; }
  .rank-card .rank-head > * { min-width: 0; }
  .rank-card .rank-name { overflow-wrap: anywhere; }
  .draft-filter-bar { flex-wrap: wrap; }
  .sms-detail-row { flex-wrap: wrap; }
  .sms-detail-row > span:last-child { min-width: 0; overflow-wrap: anywhere; }
  .site-qr-ctx-row { flex-direction: column; gap: 2px; }
  .site-qr-ctx-k { flex-basis: auto; }
  .business-layer-grid, .tower-category-grid, .tower-model-grid { grid-template-columns: minmax(0, 1fr); }
  pre.mono { white-space: pre-wrap; overflow-wrap: anywhere; max-width: 100%; }
  
  input[type="checkbox"], input[type="radio"] { width: 22px; height: 22px; min-height: 0; flex: 0 0 22px; }
  .checkbox-row, .radio-row, .mode-card { min-height: var(--tap-min); }
  .checkbox-row { align-items: center; }
  th, td { padding: 12px; }
  td a, th a { display: inline-flex; align-items: center; min-height: var(--tap-min); }
  .button-row, .toolbar, .job-row-actions, .help-hero-links, .help-jump, .draft-filter-bar { row-gap: 10px; }
  .button-row > a, .job-row-actions > a, .toolbar > a { display: inline-flex; align-items: center; min-height: var(--tap-min); }
  .help-hero-links a, .help-deeplink {
    display: inline-flex;
    align-items: center;
    min-height: var(--tap-min);
    padding: 0 6px;
  }
}

