/* ═══════════════════════════════════════════════════════════════════════════
   FLIGHTCASE — Design System v1.1
   Refined by Claude. Typography, spacing, and visual hierarchy overhaul.
═══════════════════════════════════════════════════════════════════════════ */

/* ── TOKENS ──────────────────────────────────────────────────────────────── */
:root {
  /* Tuned for better dark-mode legibility in bright environments. */
  --bg:       #06070b;
  --surface:  #0f1219;
  --surface2: #171b25;
  --surface3: #212738;
  --border:   #343c4f;
  --border2:  #46506a;
  --accent:   #e8ff47;
  --accent2:  #a8ff47;
  --text:     #f4f7ff;
  --text2:    #c2c8d9;
  --text3:    #959db3;
  --red:      #ff4757;
  --green:    #3de88a;
  --blue:     #47b4ff;
  --orange:   #ffb347;
  --purple:   #c882ff;
  --radius:   5px;
  --radius2:  9px;
  --radius3:  13px;
}

/* ── RESET ───────────────────────────────────────────────────────────────── */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
[hidden] { display: none !important; }
body {
  font-family: 'DM Sans', system-ui, sans-serif;
  background: var(--bg);
  color: var(--text);
  min-height: 100vh;
  font-size: 14px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
h1, h2, h3, h4, h5, h6 { font-family: 'Syne', sans-serif; font-weight: 700; color: var(--text); margin: 0; line-height: 1.2; }
::selection { background: rgba(232,255,71,.92); color: #06070b; -webkit-text-fill-color:#06070b; }
::-moz-selection { background: rgba(232,255,71,.92); color: #06070b; }

::-webkit-scrollbar { width: 5px; height: 5px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--border2); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: var(--text3); }

/* ══════════════════════════════════════════════════════════════════════════
   SHELL
══════════════════════════════════════════════════════════════════════════ */
.env-banner { position: fixed; top: 0; left: 0; right: 0; z-index: 300; display: flex; gap: 10px; align-items: center; padding: 10px 18px; background: linear-gradient(90deg, #ffcf5a 0%, #ff9e5a 100%); color: #241300; font-family: 'DM Mono', monospace; font-size: 12px; letter-spacing: .03em; border-bottom: 1px solid rgba(36,19,0,.18); }
.env-banner strong { font-family: 'Syne', sans-serif; font-size: 13px; letter-spacing: .08em; }
.app-shell { display: flex; height: 100vh; min-height: 100dvh; overflow: hidden; }
.env-banner-active .app-shell { padding-top: 44px; }
.mobile-nav-toggle,
.mobile-nav-launcher,
.mobile-nav-backdrop { display: none; }

.sidebar {
  width: 216px; min-width: 216px;
  background: var(--surface);
  border-right: 1px solid var(--border);
  display: flex; flex-direction: column;
  height: 100%; overflow: hidden;
}

.logo { padding: 20px 18px 16px; border-bottom: 1px solid var(--border); flex-shrink: 0; }
.logo-mark { font-family: 'Syne', sans-serif; font-weight: 800; font-size: 16px; letter-spacing: .1em; color: var(--accent); line-height: 1; }
.logo-sub { font-family: 'DM Mono', monospace; font-size: 9px; color: var(--text3); letter-spacing: .12em; text-transform: uppercase; margin-top: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.nav { flex: 1; padding: 10px 10px 4px; overflow-y: auto; overflow-x: hidden; }
.nav-section { margin-bottom: 4px; }
.nav-section + .nav-section { padding-top: 8px; border-top: 1px solid var(--border); margin-top: 4px; }
.nav-label { font-family: 'DM Mono', monospace; font-size: 8.5px; color: var(--text3); letter-spacing: .16em; text-transform: uppercase; padding: 8px 8px 4px; display: block; }
.nav-item {
  display: flex; align-items: center; gap: 9px;
  padding: 7px 8px; border-radius: var(--radius);
  font-size: 13px; color: var(--text2); font-weight: 400;
  transition: all .12s; border: 1px solid transparent;
  letter-spacing: .01em; cursor: pointer; white-space: nowrap;
}
.nav-item:hover { background: var(--surface2); color: var(--text); }
.nav-item.active { background: var(--surface3); color: var(--text); border-color: var(--border2); font-weight: 500; box-shadow: inset 2px 0 0 var(--accent); }
.nav-item--sub { padding-left: 38px; }
.nav-divider { height: 1px; background: var(--border); margin: 14px 0 12px; }
.nav-icon { font-size: 13px; width: 16px; text-align: center; flex-shrink: 0; color: var(--text3); transition: color .12s; }
.nav-item:hover .nav-icon { color: var(--text2); }
.nav-item.active .nav-icon { color: var(--accent); }
.nav-count {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  padding: 0 7px;
  border-radius: 999px;
  background: rgba(232,255,71,.16);
  border: 1px solid rgba(232,255,71,.32);
  color: #f6ffc8;
  font-family: 'DM Mono', monospace;
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .02em;
  box-shadow: 0 0 0 1px rgba(232,255,71,.06), 0 6px 14px rgba(0,0,0,.12);
}

.plan-card-wrap { padding: 10px 10px 4px; }
.plan-card { background: var(--surface2); border: 1px solid var(--border); border-left: 2px solid var(--accent); border-radius: var(--radius2); padding: 10px 12px; }
.plan-card__eyebrow { font-family: 'DM Mono', monospace; font-size: 8px; color: var(--accent); text-transform: uppercase; letter-spacing: .14em; margin-bottom: 4px; }
.plan-card__text { font-size: 11px; color: var(--text3); line-height: 1.5; margin-bottom: 8px; }
.plan-card__cta { display: block; text-align: center; border: 1px solid var(--border2); color: var(--text2); font-size: 11px; font-weight: 600; padding: 5px; border-radius: var(--radius); text-decoration: none; transition: all .15s; }
.plan-card__cta:hover { background: var(--surface3); border-color: var(--accent); color: var(--accent); }

.sidebar-footer { padding: 12px; border-top: 1px solid var(--border); flex-shrink: 0; }
.user-pill { display: flex; align-items: center; gap: 9px; }
.user-avatar { width: 28px; height: 28px; border-radius: 6px; background: var(--surface3); border: 1px solid var(--border2); display: flex; align-items: center; justify-content: center; font-family: 'Syne', sans-serif; font-weight: 700; font-size: 11px; color: var(--accent); flex-shrink: 0; }
.user-info { flex: 1; min-width: 0; }
.user-name { font-size: 12px; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--text); }
.user-role { font-family: 'DM Mono', monospace; font-size: 8.5px; color: var(--text3); text-transform: uppercase; letter-spacing: .1em; }
.logout-btn { color: var(--text3); font-size: 13px; transition: color .15s; flex-shrink: 0; padding: 3px; border-radius: 4px; }
.logout-btn:hover { color: var(--red); }

.main { flex: 1; display: flex; flex-direction: column; min-height: 0; overflow: hidden; }

.topbar { min-height: 52px; border-bottom: 1px solid var(--border); display: flex; align-items: center; padding: 0 24px; gap: 12px; background: var(--surface); flex-shrink: 0; }
.topbar { position: relative; z-index: 402; }
.topbar-title { font-family: 'Syne', sans-serif; font-weight: 700; font-size: 15px; flex: 1; color: var(--text); letter-spacing: .01em; }
.topbar-actions { display: flex; gap: 6px; align-items: center; min-width: 0; }
.topbar-actions > * { flex: 0 0 auto; }
.notification-bell { position: relative; flex: 0 0 auto; }
.notification-bell__button {
  position: relative;
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--surface2);
  color: var(--text2);
  cursor: pointer;
  list-style: none;
}
.notification-bell__button::-webkit-details-marker { display: none; }
.notification-bell__button:hover { border-color: var(--border2); color: var(--text); background: var(--surface3); }
.notification-bell__icon {
  width: 14px;
  height: 14px;
  border: 1.5px solid currentColor;
  border-radius: 8px 8px 5px 5px;
  display: inline-flex;
  align-items: flex-end;
  justify-content: center;
  font-size: 0;
  position: relative;
}
.notification-bell__icon::before {
  content: '';
  position: absolute;
  top: -4px;
  left: 4px;
  width: 4px;
  height: 4px;
  border-radius: 999px;
  background: currentColor;
}
.notification-bell__icon::after {
  content: '';
  position: absolute;
  bottom: -5px;
  left: 4px;
  width: 4px;
  height: 4px;
  border-radius: 999px;
  background: currentColor;
}
.notification-bell__count {
  position: absolute;
  top: -5px;
  right: -5px;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 999px;
  background: var(--accent);
  color: #111;
  border: 1px solid var(--surface);
  font-family: 'DM Mono', monospace;
  font-size: 9px;
  font-weight: 800;
  line-height: 17px;
  text-align: center;
}
.notification-bell__panel {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  width: min(360px, calc(100vw - 32px));
  border: 1px solid var(--border2);
  border-radius: var(--radius2);
  background: var(--surface);
  box-shadow: 0 18px 60px rgba(0,0,0,.48);
  z-index: 450;
  overflow: hidden;
}
.notification-bell__head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  padding: 12px 14px;
  border-bottom: 1px solid var(--border);
  font-family: 'DM Mono', monospace;
  font-size: 10px;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.notification-bell__head a { color: var(--accent); letter-spacing: 0; text-transform: none; font-family: 'DM Sans', sans-serif; font-size: 12px; }
.notification-bell__list { display: grid; max-height: 360px; overflow: auto; }
.notification-bell__item { display: grid; gap: 3px; padding: 12px 14px; border-bottom: 1px solid var(--border); color: var(--text2); }
.notification-bell__item:last-child { border-bottom: 0; }
.notification-bell__item:hover { background: var(--surface2); }
.notification-bell__item.is-unread { box-shadow: inset 3px 0 0 var(--accent); color: var(--text); }
.notification-bell__item-title { font-size: 13px; font-weight: 700; color: var(--text); }
.notification-bell__item-body { font-size: 12px; color: var(--text2); line-height: 1.45; }
.notification-bell__item-time,
.notification-bell__empty { font-family: 'DM Mono', monospace; font-size: 10px; color: var(--text3); }
.notification-bell__empty { padding: 18px 14px; }
.mobile-nav-toggle {
  width: 38px;
  height: 38px;
  padding: 0;
  border-radius: 12px;
  border: 1px solid var(--border2);
  background: var(--surface2);
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 4px;
  flex: 0 0 auto;
}
.mobile-nav-toggle span {
  width: 15px;
  height: 1.5px;
  border-radius: 999px;
  background: var(--text);
  display: block;
}
.mobile-nav-launcher {
  width: 38px;
  height: 38px;
  padding: 0;
  border-radius: 12px;
  border: 1px solid var(--border2);
  background: var(--surface2);
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 4px;
}
.mobile-nav-launcher span {
  width: 15px;
  height: 1.5px;
  border-radius: 999px;
  background: var(--text);
  display: block;
}

.content { flex: 1; min-height: 0; overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 24px; }
.content--flush { padding: 0; }
.content--sm { max-width: 620px; }
.content--md { max-width: 760px; }

/* ══════════════════════════════════════════════════════════════════════════
   BUTTONS
══════════════════════════════════════════════════════════════════════════ */
.btn { display: inline-flex; align-items: center; gap: 6px; padding: 7px 14px; border-radius: var(--radius); font-family: 'DM Sans', sans-serif; font-size: 13px; font-weight: 500; cursor: pointer; border: 1px solid transparent; transition: all .14s; white-space: nowrap; line-height: 1; letter-spacing: .01em; }
.btn-primary { background: var(--accent); color: #000; font-weight: 600; border-color: var(--accent); }
.btn-primary:hover { background: #f0ff5a; transform: translateY(-1px); box-shadow: 0 4px 14px rgba(232,255,71,.22); }
.btn:disabled,
.btn.is-loading {
  cursor: wait;
  opacity: .55;
  filter: grayscale(1);
  transform: none;
  box-shadow: none;
}
.btn-primary:disabled,
.btn-primary.is-loading,
.btn-primary:disabled:hover,
.btn-primary.is-loading:hover {
  background: var(--surface3);
  color: var(--text3);
  border-color: var(--border2);
  box-shadow: none;
  transform: none;
}
.btn.is-loading::before {
  content: '';
  width: 12px;
  height: 12px;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: btnSpin .75s linear infinite;
}
@keyframes btnSpin {
  to { transform: rotate(360deg); }
}
.btn-secondary { background: var(--surface3); color: var(--text); border-color: var(--border2); }
.btn-secondary:hover { background: var(--surface2); }
.btn-ghost { background: transparent; color: var(--text2); border-color: var(--border); }
.btn-ghost:hover { background: var(--surface2); color: var(--text); border-color: var(--border2); }
.btn-danger { background: transparent; color: var(--red); border-color: rgba(255,71,87,.25); }
.btn-danger:hover { background: rgba(255,71,87,.08); border-color: rgba(255,71,87,.4); }
.btn-sm  { padding: 5px 10px; font-size: 12px; }
.btn-xs  { padding: 3px 7px; font-size: 11px; }
.btn-icon { padding: 6px 7px; }

/* ══════════════════════════════════════════════════════════════════════════
   STAT CARDS
══════════════════════════════════════════════════════════════════════════ */
.stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 24px; }
.stat-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius2); padding: 18px 20px; }
.stat-card--link { display:flex; flex-direction:column; text-decoration:none; color:inherit; transition:border-color .15s ease, transform .15s ease, background .15s ease, box-shadow .15s ease; }
.stat-card--link:hover,
.stat-card--link:focus-visible { border-color:rgba(232,255,71,.28); background:rgba(255,255,255,.04); box-shadow:0 0 0 1px rgba(232,255,71,.12) inset; transform:translateY(-1px); }
.stat-card--link strong { display:block; font-family:'Syne',sans-serif; font-size:26px; font-weight:700; line-height:1; color:var(--text); margin-bottom:8px; }
.stat-card--link span { display:block; font-family:'DM Mono',monospace; font-size:9px; letter-spacing:.12em; text-transform:uppercase; color:var(--text3); }
.stat-card.highlight { background: var(--accent); border-color: var(--accent); }
.stat-card.highlight .stat-label, .stat-card.highlight .stat-value, .stat-card.highlight .stat-sub { color: #000; }
.stat-label { font-family: 'DM Mono', monospace; font-size: 9px; color: var(--text3); letter-spacing: .12em; text-transform: uppercase; margin-bottom: 10px; display: block; }
.stat-value { font-family: 'Syne', sans-serif; font-weight: 700; font-size: 26px; line-height: 1; color: var(--text); }
.stat-sub { font-size: 11px; color: var(--text3); margin-top: 6px; }

/* ══════════════════════════════════════════════════════════════════════════
   TABLES
══════════════════════════════════════════════════════════════════════════ */
.table-container { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius2); overflow: hidden; }
.table-container--flat { margin:0; border:none; background:transparent; }
.table-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; }
.table-header { display: flex; align-items: center; padding: 13px 18px; border-bottom: 1px solid var(--border); gap: 10px; flex-wrap: wrap; }
.table-title { font-family: 'Syne', sans-serif; font-weight: 600; font-size: 13px; flex: 1; color: var(--text); }
table { width: 100%; border-collapse: collapse; }
thead th { font-family: 'DM Mono', monospace; font-size: 9px; text-transform: uppercase; letter-spacing: .1em; color: var(--text3); padding: 9px 16px; text-align: left; border-bottom: 1px solid var(--border); font-weight: 500; background: var(--surface2); }
.table-sort { display:inline-flex; align-items:center; gap:6px; color:inherit; text-decoration:none; transition:color .14s ease; }
.table-sort:hover,
.table-sort:focus-visible { color:var(--text); }
.table-sort__arrow { display:inline-flex; align-items:center; justify-content:center; min-width:14px; color:var(--text3); font-size:13px; line-height:1; }
.table-sort.is-active { color:var(--text); }
.table-sort.is-active .table-sort__arrow { color:var(--accent); }
tbody tr { border-bottom: 1px solid var(--border); transition: background .1s; }
tbody tr:last-child { border-bottom: none; }
tbody tr:hover { background: var(--surface2); }
tbody td { padding: 11px 16px; font-size: 13px; color: var(--text); vertical-align: middle; }
.col-actions { text-align: right; white-space: nowrap; }
.col-actions .btn + .btn { margin-left: 3px; }

/* ══════════════════════════════════════════════════════════════════════════
   FORMS
══════════════════════════════════════════════════════════════════════════ */
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.form-full { grid-column: 1 / -1; }
.field { display: flex; flex-direction: column; gap: 5px; }
.field label { font-family: 'DM Mono', monospace; font-size: 9px; color: var(--text3); text-transform: uppercase; letter-spacing: .1em; }
.field input, .field select, .field textarea { background: var(--surface2); border: 1px solid var(--border); border-radius: var(--radius); padding: 8px 11px; color: var(--text); font-family: 'DM Sans', sans-serif; font-size: 13px; outline: none; transition: border-color .14s, background .14s; width: 100%; }
.field input[type="file"] { min-height:42px; color:var(--text2); }
.field input[type="file"]::file-selector-button {
  margin-right:10px;
  border:1px solid var(--border);
  border-radius:999px;
  padding:7px 11px;
  background:var(--surface2);
  color:var(--text);
  font:600 12px/1 'DM Sans',sans-serif;
  cursor:pointer;
  transition:border-color .14s, background .14s, color .14s;
}
.field input[type="file"]::file-selector-button:hover { border-color:rgba(232,255,71,.24); background:rgba(232,255,71,.08); color:var(--accent); }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--accent); background: var(--surface3); }
.field select option { background: var(--surface2); }
.warehouse-task-shell input[type="datetime-local"] { min-height: 48px; padding: 12px 14px; font-size: 16px; line-height: 1.2; color-scheme: dark; -webkit-appearance: none; appearance: none; }
.warehouse-task-shell input[type="datetime-local"]::-webkit-date-and-time-value { text-align: left; }
.warehouse-task-shell input[type="datetime-local"]::-webkit-calendar-picker-indicator { opacity: .9; }
.field textarea { resize: vertical; min-height: 72px; line-height: 1.6; }
.field-hint { font-size: 11px; color: var(--text3); }
.field-hint--error { color: var(--red); }
.form-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius2); padding: 22px 24px; margin-bottom: 16px; }
.form-card-title { font-family: 'Syne', sans-serif; font-weight: 600; font-size: 13px; margin-bottom: 18px; display: flex; align-items: center; gap: 8px; color: var(--text); }
.show-section-note { font-size: 13px; line-height: 1.55; color: var(--text2); margin-bottom: 12px; }
/* Show view linked documents panel */
.show-linked-docs { margin-top:14px; padding-top:14px; border-top:1px solid rgba(255,255,255,0.08); }
.show-linked-docs .crew-kicker { margin-bottom:8px; }
.show-linked-docs__list { display:grid; gap:8px; }
.show-linked-docs__cards { display:grid; gap:12px; }
.show-linked-docs__card { background:rgba(255,255,255,0.03); border:1px solid rgba(255,255,255,0.08); border-radius:18px; padding:16px; display:grid; gap:10px; }
.show-linked-docs__card-head { display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap; }
.show-linked-docs__card-title { font-family:'Syne',sans-serif; font-size:20px; line-height:1.15; color:var(--text); }
.show-linked-docs__card-summary { color:var(--text2); font-size:13px; line-height:1.5; }
.show-linked-docs__card-meta { display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap; color:var(--text3); font-size:12px; }
.show-linked-docs__row { display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap; }
.show-linked-docs__info { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.show-linked-docs__title { color:var(--text2); font-size:12px; }
.show-linked-docs__actions { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.show-linked-docs__create-form { background:rgba(255,255,255,0.02); border:1px solid rgba(255,255,255,0.06); border-radius:16px; padding:14px; }
.show-linked-docs__create-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.show-linked-docs__create-actions { display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap; margin-top:10px; }
.show-linked-docs__link-form { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.show-linked-docs__select { min-width:260px; flex:1; }
.show-linked-docs__make-primary { display:flex; align-items:center; gap:6px; color:var(--text2); font-size:12px; cursor:pointer; }
.show-linked-docs__hint { color:var(--text3); font-size:12px; }
@media (max-width:900px) {
  .show-linked-docs__create-grid { grid-template-columns:1fr; }
}
/* Show view contacts panel */
.show-contact-item { padding: 10px 0; border-bottom: 1px solid var(--border); }
.show-contact-item:last-child { border-bottom: 0; }
.show-contact-role { font-family: 'DM Mono', monospace; font-size: 11px; color: var(--text3); text-transform: uppercase; letter-spacing: .08em; }
.show-contact-name { font-weight: 600; font-size: 13px; margin: 2px 0; }
.show-contact-detail { font-size: 12px; color: var(--text2); }
.show-contact-note { font-size: 11px; color: var(--text3); margin-top: 3px; }
/* Show view equipment panel */
.show-equip-cat { margin-bottom: 16px; }
.show-equip-cat-label { font-family: 'DM Mono', monospace; font-size: 9px; color: var(--text3); text-transform: uppercase; letter-spacing: .1em; margin-bottom: 8px; }
.show-equip-row { display: flex; gap: 10px; align-items: center; padding: 6px 0; border-bottom: 1px solid var(--border); font-size: 13px; }
.show-equip-qty { font-family: 'DM Mono', monospace; font-size: 11px; color: var(--accent); width: 30px; flex-shrink: 0; }
.show-equip-note { font-size: 11px; color: var(--text3); }
.mini-card { background: var(--surface2); border: 1px solid var(--border); border-radius: var(--radius3); padding: 14px; margin-bottom: 12px; }
.mini-card:last-child { margin-bottom: 0; }
.upload-ui { display:grid; gap:12px; }
.upload-ui--inline { grid-template-columns:minmax(0,1fr) auto; align-items:end; }
.upload-ui--compact { grid-template-columns:minmax(0,1fr) auto; gap:10px 12px; align-items:center; }
.upload-ui__picker.upload-ui--compact,
.upload-ui--compact .upload-ui__picker { padding:10px 12px; border-radius:14px; gap:5px; }
.upload-ui--compact .upload-ui__eyebrow { font-size:9px; }
.upload-ui__picker.upload-ui--compact .upload-ui__title,
.upload-ui--compact .upload-ui__title { font-size:13px; }
.upload-ui__picker.upload-ui--compact .upload-ui__meta,
.upload-ui--compact .upload-ui__meta { font-size:11px; line-height:1.35; }
.upload-ui__picker.upload-ui--compact .upload-ui__filename,
.upload-ui--compact .upload-ui__filename { min-height:0; font-size:11px; }
.upload-ui__picker.upload-ui--compact input[type="file"],
.upload-ui--compact .upload-ui__picker input[type="file"] { min-height:38px; padding:7px 10px; font-size:13px; }
.upload-ui__picker.upload-ui--compact input[type="file"]::file-selector-button,
.upload-ui--compact .upload-ui__picker input[type="file"]::file-selector-button { padding:7px 10px; font-size:11px; }
.upload-ui--compact .upload-ui__actions { justify-content:flex-end; align-self:stretch; }
.csv-tools-card { padding:16px; overflow:hidden; }
.csv-tools-card summary { list-style:none; cursor:pointer; }
.csv-tools-card summary::-webkit-details-marker { display:none; }
.csv-tools-card__head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px; flex-wrap:wrap; }
.csv-tools-card__title { font-family:'Syne',sans-serif; font-size:14px; font-weight:700; }
.csv-tools-card__meta { color:var(--text3); font-size:12px; line-height:1.35; max-width:54ch; }
.csv-tools-card__toggle { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.csv-tools-card__toggle-main { min-width:0; display:grid; gap:4px; }
.csv-tools-card__toggle-icon { width:26px; height:26px; border-radius:999px; border:1px solid var(--border); background:var(--surface2); color:var(--text2); display:flex; align-items:center; justify-content:center; transition:transform .15s ease, color .15s ease, border-color .15s ease; flex-shrink:0; }
.csv-tools-card[open] .csv-tools-card__toggle-icon { transform:rotate(180deg); color:var(--accent); border-color:rgba(240,255,71,.2); }
.csv-tools-card__body { margin-top:14px; padding-top:14px; border-top:1px solid var(--border); }
.dup-group { padding:12px 0; }
.dup-group--sep { border-top:1px solid var(--border); margin-top:4px; }
.dup-group-head { font-size:13px; color:var(--text2); margin-bottom:8px; }
.dup-rows { display:flex; flex-direction:column; gap:4px; margin-bottom:10px; }
.dup-row { display:flex; align-items:baseline; gap:8px; padding:5px 8px; border-radius:6px; background:var(--surface2); border:1px solid var(--border); font-size:13px; }
.dup-row--keep { border-color:rgba(240,255,71,.25); background:rgba(240,255,71,.04); }
.dup-row-label { font-weight:600; }
.dup-row-note { color:var(--text3); font-size:12px; }
.dup-keep-badge { margin-left:auto; font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--accent); background:rgba(240,255,71,.12); border-radius:4px; padding:1px 6px; flex-shrink:0; }
.dup-actions { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.dup-keep-hint { font-size:12px; color:var(--text3); }
.dup-keep-hint a { color:var(--text2); text-decoration:underline; }
.csv-import-form { grid-template-columns:minmax(220px,320px) minmax(320px,1fr) auto; align-items:end; gap:12px; }
.csv-import-form__project { min-width:0; gap:6px; }
.csv-import-form__project select {
  min-height:44px;
  padding-right:34px;
  appearance:none;
  -webkit-appearance:none;
  cursor:pointer;
  background-color:var(--surface2);
  background-image:linear-gradient(45deg, transparent 50%, var(--text3) 50%), linear-gradient(135deg, var(--text3) 50%, transparent 50%);
  background-position:calc(100% - 17px) 50%, calc(100% - 12px) 50%;
  background-size:5px 5px, 5px 5px;
  background-repeat:no-repeat;
}
.csv-import-form__project select option { background:var(--surface2); color:var(--text); }
.csv-import-form__file { align-self:stretch; }
.csv-import-form .upload-ui__actions { align-self:end; min-height:44px; }
.csv-import-form .upload-ui__actions .btn { min-height:44px; align-items:center; }
.invoice-import-review { padding:16px; overflow:hidden; }
.invoice-import-review__head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px; flex-wrap:wrap; }
.invoice-import-review__grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:14px 0; }
.invoice-import-review__stat { min-width:0; padding:10px 12px; border:1px solid var(--border); border-radius:8px; background:var(--surface2); }
.invoice-import-review__stat span { display:block; margin-bottom:5px; color:var(--text3); font-size:11px; }
.invoice-import-review__stat strong { display:block; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--text); font-size:14px; }
.invoice-import-review__stat em { display:block; margin-top:5px; color:var(--text3); font-style:normal; font-size:11px; }
.invoice-import-review__stat em.is-success { color:var(--green); }
.invoice-import-review__stat em.is-warning { color:var(--orange); }
.invoice-import-review__chips { display:flex; flex-wrap:wrap; gap:8px; margin:2px 0 14px; }
.invoice-import-review__chips span { display:inline-flex; align-items:center; min-height:26px; padding:4px 9px; border:1px solid var(--border); border-radius:999px; color:var(--text2); background:var(--surface2); font-size:11px; }
.invoice-import-review__chips--needed span { color:var(--orange); border-color:rgba(255,179,71,.26); background:rgba(255,179,71,.08); }
.invoice-import-review__table { margin-top:12px; }
.invoice-import-review__actions { display:flex; justify-content:flex-end; gap:10px; margin-top:14px; }
.invoice-import-review__resolutions { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:12px; margin:12px 0 14px; }
.invoice-import-review__resolution { max-width:none; margin:0; gap:6px; }
.invoice-import-review__select {
  min-height:42px;
  padding-right:34px;
  appearance:none;
  -webkit-appearance:none;
  cursor:pointer;
  background-color:var(--surface2);
  background-image:linear-gradient(45deg, transparent 50%, var(--text3) 50%), linear-gradient(135deg, var(--text3) 50%, transparent 50%);
  background-position:calc(100% - 17px) 50%, calc(100% - 12px) 50%;
  background-size:5px 5px, 5px 5px;
  background-repeat:no-repeat;
}
.invoice-import-review__select option { background:var(--surface2); color:var(--text); }
@media (max-width:900px) {
  .invoice-import-review__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
.upload-ui__picker {
  display:grid;
  gap:8px;
  min-width:0;
  padding:14px;
  border-radius:18px;
  background:var(--surface2);
  border:1px solid var(--border);
}
.field .upload-ui__picker {
  font-family:'DM Sans',sans-serif;
  font-size:inherit;
  text-transform:none;
  letter-spacing:0;
  color:inherit;
  font-weight:400;
}
.upload-ui__eyebrow {
  font-family:'DM Mono',monospace;
  font-size:10px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--text3);
}
.upload-ui__title {
  font-family:'Syne',sans-serif;
  font-size:16px;
  line-height:1.1;
  font-weight:700;
  color:var(--text);
}
.upload-ui__meta {
  font-size:12px;
  line-height:1.5;
  color:var(--text3);
}
.upload-ui__filename {
  min-height:18px;
  font-size:12px;
  line-height:1.4;
  color:var(--text2);
  overflow-wrap:anywhere;
}
.upload-ui__filename.is-error { color:var(--red); }
.upload-submit-status {
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:10px;
  margin-top:12px;
  padding:11px 13px;
  border-radius:14px;
  border:1px solid rgba(232,255,71,.22);
  background:rgba(232,255,71,.08);
  color:var(--text);
}
.upload-submit-status[hidden] { display:none; }
.upload-submit-status__spinner {
  width:18px;
  height:18px;
  border-radius:50%;
  border:2px solid rgba(232,255,71,.35);
  border-top-color:var(--accent);
  animation:btnSpin .8s linear infinite;
}
.upload-submit-status.is-error {
  border-color:rgba(255,71,87,.28);
  background:rgba(255,71,87,.08);
}
.upload-submit-status.is-error .upload-submit-status__spinner { display:none; }
.upload-submit-status.is-error strong { color:var(--red); }
.upload-submit-status strong {
  display:block;
  color:var(--text);
  font-size:13px;
  line-height:1.25;
}
.upload-submit-status span:not(.upload-submit-status__spinner) {
  display:block;
  margin-top:2px;
  color:var(--text2);
  font-size:12px;
  line-height:1.35;
}
.is-uploading .comms-file-composer,
.is-uploading .upload-ui__picker {
  border-color:rgba(232,255,71,.24);
}
.upload-ui__picker input[type="file"] {
  width:100%;
  min-height:44px;
  border-radius:14px;
  padding:10px 12px;
  background:var(--surface3);
  border:1px solid var(--border);
  color:var(--text2);
  font-size:14px;
}
.upload-ui__picker input[type="file"]::file-selector-button {
  margin-right:10px;
  border:none;
  border-radius:999px;
  padding:8px 12px;
  background:var(--surface);
  color:var(--text);
  font-size:12px;
  font-weight:600;
  cursor:pointer;
}
.upload-ui__picker input[type="file"]:focus-visible,
.field input[type="file"]:focus-visible {
  border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(232,255,71,.10);
}
.fc-check,
.checkbox-label,
.crew-check-label,
.crew-modal-upload-label,
.import-actions-label,
.ros-share-label,
.show-finance-checkbox,
.show-linked-docs__make-primary {
  color:var(--text2);
}
.checkbox-label,
.crew-check-label,
.crew-modal-upload-label,
.import-actions-label,
.ros-share-label,
.show-finance-checkbox,
.show-linked-docs__make-primary,
.warehouse-wallboard-controls label {
  display:flex;
  align-items:center;
  gap:8px;
  cursor:pointer;
}
input[type="checkbox"],
input[type="radio"] {
  appearance:none;
  -webkit-appearance:none;
  width:16px;
  height:16px;
  flex:0 0 16px;
  margin:0;
  display:inline-grid;
  place-items:center;
  border:1px solid var(--border2);
  background:var(--surface);
  cursor:pointer;
  transition:border-color .14s ease, background .14s ease, box-shadow .14s ease, opacity .14s ease;
}
input[type="checkbox"] { border-radius:5px; }
input[type="radio"] { border-radius:999px; }
input[type="checkbox"]::after {
  content:"";
  width:8px;
  height:5px;
  border-left:2px solid #0b0d12;
  border-bottom:2px solid #0b0d12;
  transform:rotate(-45deg) scale(0);
  transform-origin:center;
  transition:transform .12s ease;
}
input[type="radio"]::after {
  content:"";
  width:7px;
  height:7px;
  border-radius:999px;
  background:#0b0d12;
  transform:scale(0);
  transition:transform .12s ease;
}
input[type="checkbox"]:checked,
input[type="radio"]:checked {
  background:var(--accent);
  border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(232,255,71,.08);
}
input[type="checkbox"]:checked::after { transform:rotate(-45deg) scale(1); }
input[type="radio"]:checked::after { transform:scale(1); }
input[type="checkbox"]:focus-visible,
input[type="radio"]:focus-visible {
  outline:none;
  border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(232,255,71,.14);
}
input[type="checkbox"]:disabled,
input[type="radio"]:disabled {
  opacity:.45;
  cursor:not-allowed;
}
.field input[type="checkbox"],
.field input[type="radio"] {
  width:16px;
}
.field label:has(input[type="checkbox"]),
.field label:has(input[type="radio"]) {
  display:flex;
  flex-direction:row;
  align-items:center;
  gap:8px;
  cursor:pointer;
}
.upload-ui__actions { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.upload-ui__preview {
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
  margin-bottom:10px;
}
.upload-ui__preview-box {
  min-width:120px;
  padding:12px 14px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--surface2);
}
.upload-ui__preview-box img {
  display:block;
  max-width:180px;
  max-height:72px;
  object-fit:contain;
}
.upload-ui__preview-empty {
  font-family:'Bebas Neue',sans-serif;
  font-size:28px;
  letter-spacing:.06em;
  color:var(--text);
  line-height:1;
}
.upload-ui__note { max-width:42ch; }

/* ══════════════════════════════════════════════════════════════════════════
   BADGES & TAGS
══════════════════════════════════════════════════════════════════════════ */
.badge { display: inline-flex; align-items: center; padding: 2px 8px; border-radius: 20px; font-family: 'DM Mono', monospace; font-size: 9.5px; font-weight: 500; letter-spacing: .04em; line-height: 1.6; }
.badge-draft    { background: rgba(82,82,106,.2);   color: var(--text3); border: 1px solid var(--border); }
.badge-quote    { background: rgba(71,180,255,.12);  color: var(--blue);  border: 1px solid rgba(71,180,255,.25); }
.badge-approved { background: rgba(61,232,138,.12);  color: var(--green); border: 1px solid rgba(61,232,138,.25); }
.badge-canceled { background: rgba(255,71,87,.12);   color: var(--red);   border: 1px solid rgba(255,71,87,.25); }
.badge-invoiced { background: rgba(232,255,71,.12);  color: var(--accent);border: 1px solid rgba(232,255,71,.25); }
.badge-paid     { background: rgba(61,232,138,.18);  color: var(--green); border: 1px solid rgba(61,232,138,.35); }
.badge-overdue  { background: rgba(255,71,87,.12);   color: var(--red);   border: 1px solid rgba(255,71,87,.25); }
.badge-planning  { background: rgba(82,82,106,.2);   color: var(--text3); border: 1px solid var(--border); }
.badge-confirmed { background: rgba(71,180,255,.12);  color: var(--blue);  border: 1px solid rgba(71,180,255,.25); }
.badge-active    { background: rgba(61,232,138,.12);  color: var(--green); border: 1px solid rgba(61,232,138,.25); }
.badge-wrapped   { background: rgba(82,82,106,.15);   color: var(--text3); border: 1px solid var(--border); }
.badge-hold      { background: rgba(255,209,102,.12); color: #ffd166;     border: 1px solid rgba(255,209,102,.25); }
.badge-cancelled { background: rgba(255,71,87,.12);   color: var(--red);   border: 1px solid rgba(255,71,87,.25); }
.badge-open      { background: rgba(71,180,255,.12);  color: var(--blue);  border: 1px solid rgba(71,180,255,.25); }
.badge-void      { background: rgba(82,82,106,.12);   color: var(--text3); border: 1px solid var(--border); }
.badge-success   { background: rgba(61,232,138,.12);  color: var(--green); border: 1px solid rgba(61,232,138,.25); }
.badge-warning   { background: rgba(255,209,102,.12); color: #ffd166;     border: 1px solid rgba(255,209,102,.25); }
.badge-danger    { background: rgba(255,71,87,.12);   color: var(--red);   border: 1px solid rgba(255,71,87,.25); }
.badge-neutral   { background: rgba(82,82,106,.12);   color: var(--text3); border: 1px solid var(--border); }

.cat-tag { display: inline-flex; padding: 1px 7px; border-radius: 4px; font-size: 9.5px; font-family: 'DM Mono', monospace; font-weight: 500; letter-spacing: .03em; line-height: 1.8; }
.cat-lighting { background: rgba(255,179,71,.12); color: var(--orange); }
.cat-audio    { background: rgba(71,180,255,.12); color: var(--blue);   }
.cat-video    { background: rgba(168,255,71,.12); color: var(--accent2);}
.cat-rigging  { background: rgba(255,71,87,.12);  color: var(--red);    }
.cat-labor    { background: rgba(61,232,138,.12); color: var(--green);  }
.cat-staging  { background: rgba(200,130,255,.12);color: var(--purple); }
.cat-misc     { background: rgba(82,82,106,.18);  color: var(--text3);  }
.cat-power    { background: rgba(61,232,138,.12); color: var(--green);  }
.cat-backline { background: rgba(255,179,71,.12); color: var(--orange); }

.role-admin  { background: rgba(232,255,71,.12);  color: var(--accent); border: 1px solid rgba(232,255,71,.25); }
.role-staff  { background: rgba(71,180,255,.12);  color: var(--blue);   border: 1px solid rgba(71,180,255,.25); }
.role-pm { background: rgba(168,120,255,.12); color: #a878ff; border: 1px solid rgba(168,120,255,.25); }
.role-warehouse { background: rgba(255,179,71,.12); color: var(--orange); border: 1px solid rgba(255,179,71,.25); }
.role-viewer { background: rgba(82,82,106,.2);    color: var(--text3);  border: 1px solid var(--border); }

/* ══════════════════════════════════════════════════════════════════════════
   LINE ITEMS
══════════════════════════════════════════════════════════════════════════ */
.line-items { background: var(--surface2); border: 1px solid var(--border); border-radius: var(--radius2); overflow: hidden; margin-bottom: 10px; }
.line-item { display: grid; gap: 8px; padding: 8px 12px; border-bottom: 1px solid var(--border); align-items: center; }
.line-item:last-child { border-bottom: none; }
.line-item-header { font-family: 'DM Mono', monospace; font-size: 8.5px; text-transform: uppercase; letter-spacing: .1em; color: var(--text3); background: var(--surface3); border-bottom: 1px solid var(--border); padding: 7px 12px; }
.line-item input, .line-item select { background: var(--surface3); border: 1px solid transparent; border-radius: 4px; padding: 5px 8px; color: var(--text); font-family: 'DM Sans', sans-serif; font-size: 12px; outline: none; width: 100%; transition: border-color .14s; }
.line-item input:focus, .line-item select:focus { border-color: var(--accent); }
.line-remove { background: none; border: none; color: var(--text3); cursor: pointer; font-size: 13px; padding: 4px; border-radius: 4px; transition: color .14s; display: flex; align-items: center; justify-content: center; }
.line-remove:hover { color: var(--red); }
.gear-cols  { grid-template-columns: 2fr 80px 80px 110px 36px; }
.labor-cols { grid-template-columns: 2fr 80px 80px 110px 36px; }

.totals-box { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius3); padding: 16px 18px; }
.totals-row { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; font-size: 13px; color: var(--text2); }
.totals-row.total { border-top: 1px solid var(--border); margin-top: 8px; padding-top: 12px; color: var(--text); font-weight: 600; }
.totals-row.total .amount { color: var(--accent); font-family:'Syne',sans-serif; font-size:16px; }

/* ══════════════════════════════════════════════════════════════════════════
   CARDS
══════════════════════════════════════════════════════════════════════════ */
.catalog-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.catalog-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius2); padding: 16px; position: relative; transition: border-color .15s, transform .15s, box-shadow .15s; }
.catalog-card:hover { border-color: var(--border2); transform: translateY(-2px); box-shadow: 0 8px 28px rgba(0,0,0,.3); }
.catalog-card-name { font-family: 'Syne', sans-serif; font-weight: 600; font-size: 13px; margin: 8px 0 4px; }
.catalog-card-rate { font-family: 'DM Mono', monospace; font-size: 12px; color: var(--accent); margin-top: 10px; }
.catalog-card-sub { font-size: 11px; color: var(--text3); margin-top: 2px; }
.card-actions, .card-actions-abs { position: absolute; top: 10px; right: 10px; display: flex; gap: 4px; opacity: 0; transition: opacity .15s; }
.catalog-card:hover .card-actions, .crew-card:hover .card-actions-abs { opacity: 1; }

.client-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 12px; }
.client-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius2); padding: 18px; transition: border-color .15s, transform .15s; }
.client-card:hover { border-color: var(--border2); transform: translateY(-1px); }
.client-avatar { width: 36px; height: 36px; border-radius: 8px; background: var(--surface3); border: 1px solid var(--border); display: flex; align-items: center; justify-content: center; font-family: 'Syne', sans-serif; font-weight: 700; font-size: 14px; color: var(--accent); margin-bottom: 12px; }
.client-name { font-family: 'Syne', sans-serif; font-weight: 600; font-size: 14px; margin-bottom: 2px; }
.client-meta { font-size: 11px; color: var(--text3); margin-bottom: 12px; }
.client-stats { display: flex; gap: 8px; margin-bottom: 14px; }
.client-stat { flex: 1; display: flex; flex-direction: column; gap: 3px; padding: 8px 10px; background: var(--surface2); border: 1px solid var(--border); border-radius: var(--radius); font-size: 10px; font-family: 'DM Mono', monospace; color: var(--text3); text-transform: uppercase; letter-spacing: .04em; }
.client-stat span { display: block; font-size: 13px; color: var(--text); font-weight: 600; font-family: 'DM Sans', sans-serif; text-transform: none; letter-spacing: 0; line-height: 1; }
.contact-transaction-strip { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-bottom:10px; }
.contact-transaction-strip div { min-width:0; padding:8px 10px; border:1px solid var(--border); border-radius:var(--radius); background:rgba(255,255,255,.025); }
.contact-transaction-strip span { display:block; margin-bottom:3px; font-family:'DM Mono',monospace; font-size:9.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--text3); }
.contact-transaction-strip strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12px; color:var(--text); }
.contact-finance-cell--owed { border-color:rgba(255,90,90,.42)!important; background:rgba(255,90,90,.08)!important; }
.contact-finance-cell--owed strong { color:#ff8a8a; }
.contact-finance-cell--credit { border-color:rgba(91,214,126,.42)!important; background:rgba(91,214,126,.08)!important; }
.contact-finance-cell--credit strong { color:#7bea9c; }
.contact-transactions-btn { width:100%; justify-content:center; }
.client-doc-summary { display:grid; gap:8px; margin:12px 0 14px; padding:12px; border:1px solid var(--border); border-radius:var(--radius); background:var(--surface2); }
.client-doc-summary__head { display:flex; justify-content:space-between; gap:10px; align-items:center; font-family:'DM Mono',monospace; font-size:9.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--text3); }
.client-doc-summary__head .badge { flex:0 0 auto; }
.client-doc-summary__meta { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px; color:var(--text3); }
.client-doc-summary__action { width:100%; justify-content:center; margin-top:2px; }
.client-doc-modal { width:980px; }
.client-doc-modal .modal-head > div { flex:1; min-width:0; }
.client-doc-modal__subtitle { margin-top:3px; font-size:11px; color:var(--text3); }
.client-doc-modal__section { display:grid; gap:12px; }
.client-doc-modal__section + .client-doc-modal__section { margin-top:18px; padding-top:18px; border-top:1px solid var(--border); }
.client-doc-modal__section-head { display:flex; justify-content:space-between; gap:12px; align-items:center; font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--text3); }
.client-doc-modal__list { display:grid; gap:12px; }
.client-doc-modal__row { display:grid; grid-template-columns:minmax(220px,.85fr) minmax(0,1.4fr); gap:12px; padding:12px; border:1px solid var(--border); border-radius:var(--radius); background:var(--surface2); }
.client-doc-modal__file { min-width:0; display:grid; align-content:start; gap:5px; }
.client-doc-modal__file-head { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; }
.client-doc-modal__file-head a { min-width:0; color:var(--text); font-size:13px; font-weight:700; text-decoration:none; }
.client-doc-modal__file-head a:hover { text-decoration:underline; }
.client-doc-modal__file-head .badge { flex:0 0 auto; }
.client-doc-modal__empty { padding:18px; border:1px dashed var(--border); border-radius:var(--radius); color:var(--text3); background:rgba(255,255,255,.018); }
.client-doc-review,
.client-doc-upload { display:grid; grid-template-columns:minmax(90px,.75fr) minmax(130px,.85fr) minmax(0,1fr) minmax(0,1fr) auto; gap:8px; align-items:center; }
.client-doc-upload { grid-template-columns:minmax(90px,.7fr) minmax(130px,.8fr) minmax(0,1.25fr) minmax(0,1fr) auto; }
.client-doc-review input,
.client-doc-review select,
.client-doc-upload input,
.client-doc-upload select { min-width:0; width:100%; background:var(--surface3); border:1px solid var(--border); border-radius:6px; color:var(--text); font:inherit; font-size:11px; padding:7px 8px; }
.client-doc-upload input[type="file"] { padding:5px 7px; }
.client-doc-types-modal { width:820px; }
.client-doc-types { display:grid; gap:8px; }
.client-doc-types__labels,
.client-doc-types__row { display:grid; grid-template-columns:minmax(0,1fr) 90px 96px; gap:8px; align-items:center; }
.client-doc-types__labels { padding:0 2px 2px; font-family:'DM Mono',monospace; font-size:9.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--text3); }
.client-doc-types__row { padding:8px; border:1px solid var(--border); border-radius:var(--radius); background:var(--surface2); }
.client-doc-types__row--new { border-style:dashed; background:rgba(255,255,255,.018); }
.client-doc-types__row input[type="text"],
.client-doc-types__row input[type="number"] { min-width:0; width:100%; background:var(--surface3); border:1px solid var(--border); border-radius:6px; color:var(--text); font:inherit; font-size:12px; padding:8px 9px; }
.client-doc-types__active { margin:0; justify-content:flex-start; }

.crew-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 20px; }
.crew-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(256px, 1fr)); gap: 12px; }
.crew-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius2); padding: 16px; transition: border-color .15s, transform .15s; position: relative; min-width:0; }
.crew-card:hover { border-color: var(--border2); transform: translateY(-1px); }
[data-card-packer] { display:block !important; position:relative; min-height:120px; }
[data-card-packer] > * { position:absolute; left:0; top:0; width:100%; transition:transform .18s ease,width .18s ease; }
[data-card-packer] > *:hover { transform:var(--card-packer-transform, none); }
@media (max-width:720px) {
  [data-card-packer] { display:grid !important; position:static; height:auto !important; }
  [data-card-packer] > * { position:relative; transform:none !important; width:auto !important; }
}
.crew-avatar { width: 38px; height: 38px; border-radius: 8px; background: var(--surface3); border: 1px solid var(--border); display: flex; align-items: center; justify-content: center; font-family: 'Syne', sans-serif; font-weight: 700; font-size: 15px; margin-bottom: 10px; }
.crew-name { font-family: 'Syne', sans-serif; font-weight: 700; font-size: 14px; }
.crew-roles-list { display: flex; flex-wrap: wrap; gap: 4px; margin: 6px 0 10px; }
.role-chip { font-size: 9.5px; font-family: 'DM Mono', monospace; padding: 2px 8px; border-radius: 4px; border: 1px solid var(--border); background: var(--surface2); color: var(--text2); }
.role-chip.primary { border-color: rgba(232,255,71,.3); color: var(--accent); background: rgba(232,255,71,.07); }
.crew-contact { font-size: 12px; color: var(--text2); line-height: 1.8; min-width:0; overflow-wrap:anywhere; word-break:break-word; }
.rate-row { display: flex; gap: 6px; margin-top: 8px; flex-wrap: wrap; }
.rate-chip { font-family: 'DM Mono', monospace; font-size: 9.5px; padding: 2px 8px; border-radius: 4px; background: var(--surface3); border: 1px solid var(--border); color: var(--text2); }
.crew-access-mini { display:grid; gap:10px; margin-top:12px; padding:10px; border:1px solid var(--border); border-radius:var(--radius); background:rgba(255,255,255,.018); }
.crew-access-mini__label { font-family:'DM Mono',monospace; font-size:9px; letter-spacing:.1em; text-transform:uppercase; color:var(--text3); margin-bottom:3px; }
.crew-access-mini__status { font-size:12px; font-weight:700; color:var(--text); }
.crew-access-mini__meta { margin-top:2px; font-size:11px; color:var(--text3); }
.crew-access-mini__actions { display:flex; flex-wrap:wrap; gap:6px; }
.crew-access-mini__actions .btn { white-space:nowrap; }
/* .card-actions-abs — merged into .card-actions above */
.role-row { display: grid; grid-template-columns: 2fr 1fr 80px 80px 28px; gap: 6px; align-items: center; margin-bottom: 6px; }
.line-item-header--crew-roles { grid-template-columns:2fr 1fr 88px 88px 88px 88px 28px; }
.crew-schedule-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:12px; }
.crew-coverage-strip { display:grid; grid-template-columns:repeat(auto-fit, minmax(130px, 1fr)); gap:8px; margin:0 0 14px; }
.crew-coverage-pill { display:flex; flex-direction:column; gap:3px; padding:10px 12px; border-radius:16px; border:1px solid var(--border); background:var(--surface2); }
.crew-coverage-pill--warn { border-color:rgba(255,209,102,.18); background:rgba(255,209,102,.08); }
.crew-coverage-pill__value { font-family:'Syne',sans-serif; font-size:18px; line-height:1; }
.crew-coverage-pill__label { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--text3); }
.crew-shift-card { background:var(--surface2); border:1px solid var(--border); border-radius:var(--radius2); padding:14px; display:grid; gap:8px; }
.crew-shift-card__top { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; }
.crew-shift-card__show { font-family:'Syne', sans-serif; font-size:15px; font-weight:700; color:var(--text); }
.crew-shift-card__role { font-size:13px; font-weight:600; color:var(--text); }
.crew-shift-card__coverage { display:grid; gap:6px; }
.crew-shift-card__coverage-head { display:flex; justify-content:space-between; gap:10px; align-items:center; font-size:11px; color:var(--text2); }
.crew-shift-card__coverage-label { font-family:'DM Mono',monospace; letter-spacing:.08em; text-transform:uppercase; color:var(--text3); }
.crew-shift-card__coverage-meta { color:var(--text2); }
.crew-shift-card__coverage-bar { height:6px; border-radius:999px; overflow:hidden; background:var(--surface); border:1px solid var(--border); }
.crew-shift-card__coverage-bar span { display:block; height:100%; border-radius:999px; background:linear-gradient(90deg, rgba(232,255,71,.9), rgba(255,209,102,.92)); }
.crew-shift-card__edit { display:grid; gap:12px; padding-top:12px; border-top:1px solid var(--border); }
.crew-shift-card__actions--top { justify-content:flex-end; align-items:center; }
.crew-shift-card__meta { font-size:12px; color:var(--text3); line-height:1.5; }
.crew-shift-card__note { font-size:12px; color:var(--text2); line-height:1.6; }
.crew-shift-card__stats-row { display:flex; gap:16px; padding-top:8px; border-top:1px solid var(--border); }
.crew-shift-card__stat { display:flex; flex-direction:column; gap:3px; min-width:0; }
.crew-shift-card__stat-value { font-family:'DM Mono',monospace; font-size:13px; font-weight:600; color:var(--text); line-height:1; }
.crew-shift-card__stat-label { font-size:10px; color:var(--text3); text-transform:uppercase; letter-spacing:.08em; }
.crew-shift-card__actions { display:flex; gap:8px; flex-wrap:wrap; }
.crew-shift-card__matches { display:flex; gap:6px; flex-wrap:wrap; }
.crew-shift-card__match-form { display:inline-flex; }
.crew-shift-card__match-picker { display:grid; gap:8px; padding-top:10px; border-top:1px solid var(--border); }
.crew-shift-card__match-picker-head { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.crew-shift-card__match-picker-title { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--text3); }
.crew-shift-card__match-picker-meta { font-size:11px; color:var(--text3); }
.crew-shift-card__search { width:100%; padding:10px 12px; border-radius:12px; border:1px solid var(--border); background:var(--surface); color:var(--text); font:inherit; }
.crew-shift-card__search::placeholder { color:var(--text3); }
.crew-shift-card__gap { display:flex; flex-wrap:wrap; align-items:center; gap:6px; padding:6px 0; }
.crew-shift-card__gap-label { font-family:'DM Mono',monospace; font-size:9px; letter-spacing:.08em; text-transform:uppercase; color:#e8d36b; }
.crew-shift-card__gap-chip { display:inline-flex; align-items:center; min-height:24px; padding:0 10px; border-radius:999px; border:1px solid rgba(232,211,107,.32); background:rgba(232,211,107,.10); color:#e8d36b; font-size:11px; cursor:pointer; }
.crew-shift-card__gap-chip:hover, .crew-shift-card__gap-chip.is-active { border-color:rgba(232,211,107,.6); background:rgba(232,211,107,.18); }
.crew-shift-card__gap-note { font-size:11px; color:#e8d36b; padding:2px 0; }
.crew-shift-card__match-bulk-form { display:grid; gap:8px; }
.crew-shift-card__match-list { display:flex; flex-direction:column; gap:6px; max-height:220px; overflow:auto; padding-right:2px; }
.crew-shift-card__match-option { display:flex; gap:10px; align-items:flex-start; padding:10px 12px; border-radius:14px; border:1px solid var(--border); background:var(--surface); cursor:pointer; }
.crew-shift-card__match-option.has-role-switch { border-color:rgba(232,255,71,.3); background:rgba(232,255,71,.04); }
.crew-shift-card__match-option.is-role-mismatch { border-style:dashed; }
.crew-shift-card__match-option.is-disabled { opacity:.65; cursor:not-allowed; }
.crew-shift-card__match-option input { margin-top:2px; }
.crew-shift-card__match-copy { display:flex; flex-direction:column; gap:3px; min-width:0; }
.crew-shift-card__match-name { font-size:13px; font-weight:600; color:var(--text); line-height:1.2; }
.crew-shift-card__match-detail { font-size:11px; color:var(--text3); line-height:1.4; word-break:break-word; }
.crew-shift-card__match-alert { font-size:11px; line-height:1.4; color:var(--orange); }

.invoice-print { background: #fff; color: #111; border-radius: var(--radius2); padding: 44px; font-family: 'DM Sans', sans-serif; }

/* ══════════════════════════════════════════════════════════════════════════
   MODAL
══════════════════════════════════════════════════════════════════════════ */
.modal-overlay { display: none; position: fixed; inset: 0; background: rgba(0,0,0,.75); backdrop-filter: blur(6px); z-index: 100; align-items: center; justify-content: center; }
.modal-overlay.open { display: flex; animation: fadeIn .15s ease; }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
.modal { background: var(--surface); border: 1px solid var(--border2); border-radius: var(--radius3); width: 540px; max-width: 96vw; max-height: 92vh; overflow-y: auto; animation: slideUp .2s cubic-bezier(.16,1,.3,1); box-shadow: 0 24px 64px rgba(0,0,0,.5); }
.modal-lg { width: 860px; }
@keyframes slideUp { from { transform: translateY(16px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
.modal-head { display: flex; align-items: center; padding: 16px 22px; border-bottom: 1px solid var(--border); }
.modal-title { font-family: 'Syne', sans-serif; font-weight: 700; font-size: 14px; flex: 1; }
.modal-close { background: none; border: none; color: var(--text3); cursor: pointer; font-size: 16px; padding: 4px 6px; border-radius: 4px; transition: color .14s; line-height: 1; }
.modal-close:hover { color: var(--text); }
.modal-body { padding: 20px 22px; }
.modal-footer { display: flex; gap: 8px; justify-content: flex-end; padding: 12px 22px; border-top: 1px solid var(--border); }
.modal-overlay--app-confirm { z-index: 200; }
.modal--app-confirm { width: 420px; }
.app-confirm-message { margin: 0; color: var(--text2); font-size: 14px; line-height: 1.55; white-space: pre-wrap; }
.crew-confirm-modal { z-index:220; background:rgba(3,6,12,.74); backdrop-filter:blur(10px); }
.crew-confirm-modal__panel { width:460px; border-color:rgba(232,255,71,.22); background:linear-gradient(180deg,rgba(25,29,39,.98),rgba(12,15,22,.98)); box-shadow:0 24px 80px rgba(0,0,0,.58), 0 0 0 1px rgba(232,255,71,.06); }
.crew-confirm-modal__kicker { margin-bottom:5px; font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); }
.crew-confirm-modal__message { margin:0; font-size:14px; line-height:1.65; color:var(--text2); }
.crew-roster-dialog { z-index:210; background:rgba(3,6,12,.72); backdrop-filter:blur(10px); }
.crew-roster-dialog__panel { width:min(760px, calc(100vw - 32px)); max-height:min(84vh, 820px); overflow:hidden; border-color:rgba(116,130,170,.42); background:linear-gradient(180deg,rgba(24,28,38,.99),rgba(12,15,22,.99)); box-shadow:0 24px 80px rgba(0,0,0,.58), 0 0 0 1px rgba(232,255,71,.05); }
.crew-roster-dialog__meta { margin-top:5px; font-size:12px; color:var(--text3); }
.crew-roster-dialog__body { display:grid; gap:14px; max-height:calc(min(84vh, 820px) - 84px); overflow:auto; }
.crew-roster-dialog__body .crew-scheduler-row__detail { display:grid; gap:14px; padding:0; border-top:0; background:transparent; }
.crew-roster-dialog__body .crew-scheduler-row__detail-top { padding-top:0; }

.section-grid   { display: grid; grid-template-columns: 1fr 1fr;  gap: 14px; margin-bottom: 14px; }
.section-grid-3 { display: grid; grid-template-columns: 2fr 1fr;  gap: 14px; margin-bottom: 14px; }
.dash-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius2); overflow: hidden; }
.dash-card-head { display: flex; align-items: center; padding: 12px 16px; border-bottom: 1px solid var(--border); }
.dash-card-title { font-family: 'Syne', sans-serif; font-weight: 600; font-size: 13px; flex: 1; }
.dash-card-body { padding: 0; }
.show-row-link, .inv-row-link { display: block; }
.show-row { display: flex; align-items: center; gap: 12px; padding: 11px 16px; border-bottom: 1px solid var(--border); transition: background .1s; cursor: pointer; }
.show-row:last-child { border-bottom: none; }
.show-row:hover { background: var(--surface2); }
.show-date-box { width: 42px; height: 42px; background: var(--surface3); border: 1px solid var(--border); border-radius: 7px; display: flex; flex-direction: column; align-items: center; justify-content: center; flex-shrink: 0; }
.show-date-month { font-family: 'DM Mono', monospace; font-size: 7.5px; text-transform: uppercase; letter-spacing: .1em; color: var(--text3); }
.show-date-day { font-family: 'Syne', sans-serif; font-weight: 800; font-size: 17px; line-height: 1; color: var(--accent); }
.show-info { flex: 1; min-width: 0; }
.show-title { font-size: 13px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.show-meta { font-size: 11px; color: var(--text3); margin-top: 1px; }
.crew-pill { font-family: 'DM Mono', monospace; font-size: 9.5px; padding: 2px 8px; border-radius: 20px; background: var(--surface3); border: 1px solid var(--border); color: var(--text3); white-space: nowrap; }
.crew-pill.ok   { background: rgba(61,232,138,.1);  border-color: rgba(61,232,138,.25);  color: var(--green); }
.crew-pill.warn { background: rgba(255,179,71,.1);  border-color: rgba(255,179,71,.25);  color: var(--orange); }
.inv-row { display: flex; align-items: center; gap: 10px; padding: 10px 16px; border-bottom: 1px solid var(--border); font-size: 13px; cursor: pointer; transition: background .1s; }
.inv-row:last-child { border-bottom: none; }
.inv-row:hover { background: var(--surface2); }
.inv-row__main { flex: 1; }
.inv-row__title { font-weight: 600; }
.inv-row__meta { font-size: 11px; color: var(--text3); }
.inv-row__amount { font-family: 'DM Mono', monospace; font-size: 12px; color: var(--text2); }
.inv-row__amount.is-overdue { color: var(--red); }
.activity-scroll { max-height: 280px; overflow-y: auto; }
.activity-item { display: flex; gap: 10px; padding: 9px 16px; border-bottom: 1px solid var(--border); font-size: 12px; align-items: flex-start; }
.activity-item:last-child { border-bottom: none; }
.activity-avatar { width: 24px; height: 24px; border-radius: 5px; background: var(--surface3); border: 1px solid var(--border); display: flex; align-items: center; justify-content: center; font-size: 9px; font-weight: 700; color: var(--accent); flex-shrink: 0; margin-top: 1px; }
.activity-text { flex: 1; color: var(--text2); line-height: 1.5; }
.activity-detail { color: var(--text3); }
.activity-time { font-family: 'DM Mono', monospace; font-size: 9.5px; color: var(--text3); white-space: nowrap; }
.chart-wrap { padding: 14px 16px; }
canvas#revenue-chart { width: 100%; height: 160px; }
.empty-dash { text-align: center; padding: 28px; color: var(--text3); font-size: 12px; }

/* ══════════════════════════════════════════════════════════════════════════
   INVENTORY
══════════════════════════════════════════════════════════════════════════ */
.inv-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; margin-bottom: 20px; }
.dept-section { margin-bottom: 16px; }
.dept-header { display: flex; align-items: center; gap: 10px; padding: 11px 14px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius2) var(--radius2) 0 0; cursor: pointer; transition: background .12s; }
.dept-header:hover { background: var(--surface2); }
.dept-icon { font-size: 16px; }
.dept-title { font-family: 'Syne', sans-serif; font-weight: 700; font-size: 14px; flex: 1; }
.dept-count { font-family: 'DM Mono', monospace; font-size: 9px; color: var(--text3); }
.dept-body { border: 1px solid var(--border); border-top: none; border-radius: 0 0 var(--radius2) var(--radius2); overflow: hidden; }
.cat-section { border-bottom: 1px solid var(--border); }
.cat-section:last-child { border-bottom: none; }
.cat-header { display: flex; align-items: center; gap: 8px; padding: 8px 14px 8px 34px; background: var(--surface2); border-bottom: 1px solid var(--border); cursor: pointer; transition: background .12s; }
.cat-header:hover { background: var(--surface3); }
.cat-title { font-family: 'DM Mono', monospace; font-size: 9.5px; text-transform: uppercase; letter-spacing: .1em; color: var(--text2); flex: 1; }
.cat-count { font-family: 'DM Mono', monospace; font-size: 9px; color: var(--text3); }
.item-row { display: grid; grid-template-columns: 2fr 80px 100px 100px 100px 90px; gap: 8px; align-items: center; padding: 8px 14px 8px 48px; border-bottom: 1px solid var(--border); font-size: 12px; transition: background .1s; }
.item-row:last-child { border-bottom: none; }
.item-row:hover { background: var(--surface2); }
.item-row-head { font-family: 'DM Mono', monospace; font-size: 8.5px; text-transform: uppercase; letter-spacing: .08em; color: var(--text3); background: var(--surface3); padding: 5px 14px 5px 48px; display: grid; grid-template-columns: 2fr 80px 100px 100px 100px 90px; gap: 8px; border-bottom: 1px solid var(--border); }
.case-row { display: grid; grid-template-columns: 2fr 80px 100px 100px 100px 90px; gap: 8px; align-items: center; padding: 8px 14px; border-bottom: 1px solid var(--border); font-size: 12px; }
.dept-color-bar { width: 3px; height: 28px; border-radius: 2px; flex-shrink: 0; }
.inventory-filterbar { display: flex; gap: 10px; align-items: center; margin-bottom: 14px; flex-wrap: wrap; }
.inventory-filter-pills { display: flex; gap: 6px; flex-wrap: wrap; }
.inventory-search-form { margin-left: auto; display: flex; gap: 6px; }
.inventory-case-empty { padding: 11px 14px 11px 48px; font-size: 12px; color: var(--text3); }
.case-shell { border-bottom: 1px solid var(--border); }
.case-header { display: flex; align-items: center; gap: 10px; padding: 11px 14px; cursor: pointer; transition: background .1s; }
.case-header:hover { background: var(--surface2); }
.case-code { font-family: 'DM Mono', monospace; font-size: 9.5px; color: var(--accent); min-width: 70px; }
.case-name { font-weight: 600; font-size: 13px; flex: 1; }
.case-meta { font-size: 11px; color: var(--text3); }
.case-toolbar { display: flex; gap: 4px; }
.inventory-helper-bar { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }
.inventory-helper-chip { display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; border: 1px solid var(--border); border-radius: 999px; font-size: 11px; color: var(--text3); background: var(--surface); }
.inventory-helper-chip--accent { color: var(--accent); border-color: rgba(232,255,71,.22); }
.inventory-management-card { margin-bottom: 14px; }
.inventory-uncased-list { padding: 4px 0; }
.inventory-uncased-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 16px; border-top: 1px solid var(--border); }
.inventory-uncased-row:first-child { border-top: none; }
.inventory-uncased-name { font-weight: 600; font-size: 13px; }
.inventory-uncased-meta { font-size: 11px; color: var(--text3); margin-top: 2px; }
.inventory-uncased-actions { display: flex; align-items: center; gap: 8px; }
.inventory-uncased-qty { font-family: 'DM Mono', monospace; font-size: 11px; color: var(--text3); }
.case-primary { flex: 1; min-width: 0; }
.case-meta-stack { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 2px; }
.case-badge { display: inline-flex; align-items: center; padding: 2px 8px; border-radius: 999px; font-size: 9.5px; color: var(--orange); background: rgba(255,179,71,.1); border: 1px solid rgba(255,179,71,.2); }
.case-metrics { display: flex; align-items: center; gap: 10px; }
.case-metric { font-family: 'DM Mono', monospace; font-size: 9.5px; color: var(--text3); white-space: nowrap; }
.case-arrow { color: var(--text3); font-size: 10px; }
.inventory-case-actions { padding: 7px 14px 7px 48px; }
.inventory-item-name { font-weight: 500; }
.inventory-item-sub { font-size: 10px; color: var(--text3); }
.inventory-dim { color: var(--text3); }
.field-note { font-size: 11px; color: var(--text3); margin-top: 5px; }

/* ══════════════════════════════════════════════════════════════════════════
   SHOWS
══════════════════════════════════════════════════════════════════════════ */
.shows-table tbody tr[data-href] { cursor: pointer; }
.shows-table tbody tr[data-href]:hover { background: var(--surface2); }
.shows-meta { font-size: 11px; color: var(--text3); }
.shows-status-badge { background: rgba(255,255,255,0.05); border: 1px solid currentColor; }
.shows-portal-meta { font-size: 10px; color: var(--text3); margin-top: 5px; }
.empty-state__cta, .empty-state-cta { margin-top: 12px; }
/* Show edit page */
.show-edit-grid { display:grid; grid-template-columns:1fr 300px; gap:20px; align-items:start; }
.show-edit-sidebar { position:sticky; top:20px; }
.show-edit-hint { margin-top:6px; font-size:12px; color:var(--text3); }
.show-edit-row { background:var(--surface2); border:1px solid var(--border); border-radius:8px; padding:14px; margin-bottom:10px; }
.show-edit-remove { background:none; border:none; color:var(--text3); cursor:pointer; font-size:12px; margin-top:8px; }
.show-edit-section-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; }
.show-edit-section-title { font-size:13px; font-weight:600; color:var(--text2); }
.show-edit-venue-row { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.show-edit-help { font-size:12px; color:var(--text2); line-height:1.8; }
.checkbox-label { display:flex; align-items:center; gap:8px; cursor:pointer; font-size:13px; }
.btn--full { width:100%; justify-content:center; }
.line-item-header--show-gear,.eq-row--show-gear { grid-template-columns:120px 2fr 60px 1fr 36px; }

/* ══════════════════════════════════════════════════════════════════════════
   UTILS
══════════════════════════════════════════════════════════════════════════ */
.mono { font-family: 'DM Mono', monospace; font-size: 11px; }
.divider { height: 1px; background: var(--border); margin: 16px 0; }
.empty-state { text-align: center; padding: 52px 20px; color: var(--text3); }
.empty-state--compact { padding: 24px 12px 8px; }
.empty-state--inner { padding: 12px 0 6px; }
.empty-state .icon { font-size: 30px; margin-bottom: 12px; opacity: .5; }
.empty-state h3 { font-family: 'Syne', sans-serif; font-size: 15px; color: var(--text2); margin-bottom: 6px; }
.empty-state p { font-size: 12px; color: var(--text3); }
.search-input { background: var(--surface2); border: 1px solid var(--border); border-radius: var(--radius); padding: 7px 11px; color: var(--text); font-family: 'DM Sans', sans-serif; font-size: 12px; width: 200px; outline: none; transition: border-color .14s; }
.search-input:focus { border-color: var(--accent); }
.search-input::placeholder { color: var(--text3); }
.segment { display: inline-flex; background: var(--surface2); border: 1px solid var(--border); border-radius: var(--radius); padding: 3px; gap: 2px; }
.seg-btn { padding: 4px 11px; border-radius: 3px; font-size: 11px; font-weight: 500; cursor: pointer; border: none; background: none; color: var(--text3); transition: all .14s; font-family: 'DM Sans', sans-serif; white-space: nowrap; }
.seg-btn.active { background: var(--surface3); color: var(--text); border: 1px solid var(--border2); }
.alert { padding: 11px 14px; border-radius: var(--radius); font-size: 13px; margin-bottom: 14px; line-height: 1.5; }
.alert[data-auto-dismiss] { transition: opacity .32s ease, transform .32s ease, max-height .32s ease, padding-top .32s ease, padding-bottom .32s ease, margin-bottom .32s ease, border-width .32s ease; max-height: 120px; overflow: hidden; }
.alert.is-dismissing { opacity: 0; transform: translateY(-4px); max-height: 0; padding-top: 0; padding-bottom: 0; margin-bottom: 0; border-width: 0; }
.alert-error   { background: rgba(255,71,87,.08);  border: 1px solid rgba(255,71,87,.25);  color: var(--red); }
.alert-success { background: rgba(61,232,138,.08); border: 1px solid rgba(61,232,138,.25); color: var(--green); }
.alert-warn, .alert-warning { background: rgba(255,179,71,.10); border: 1px solid rgba(255,179,71,.28); color: var(--orange); }
.text-muted { color: var(--text3); }
.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.grid-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 18px; }
.details-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.btn-row { display:flex; gap:8px; flex-wrap:wrap; }
.dryreq-page { display:grid; gap:16px; align-content:start; }
.dryreq-hero {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:18px;
  padding:2px 0 4px;
}
.dryreq-hero h1 { margin:4px 0 5px; font-size:32px; line-height:1.05; }
.dryreq-hero__actions { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.dryreq-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.dryreq-metric {
  min-height:86px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:15px 16px;
  border:1px solid var(--border);
  border-radius:8px;
  background:linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.012));
  color:var(--text);
  text-decoration:none;
  transition:border-color .14s, background .14s, transform .14s;
}
.dryreq-metric:hover,
.dryreq-metric.is-active { border-color:rgba(232,255,71,.34); background:rgba(232,255,71,.055); transform:translateY(-1px); }
.dryreq-metric span { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--text3); }
.dryreq-metric strong { font-family:'Syne',sans-serif; font-size:30px; line-height:1; color:var(--text); }
.dryreq-metric--danger.is-active,
.dryreq-metric--danger:hover { border-color:rgba(255,71,87,.34); background:rgba(255,71,87,.055); }
.dryreq-metric--warn.is-active,
.dryreq-metric--warn:hover { border-color:rgba(255,209,102,.34); background:rgba(255,209,102,.055); }
.dryreq-metric--good.is-active,
.dryreq-metric--good:hover { border-color:rgba(61,232,138,.32); background:rgba(61,232,138,.05); }
.dryreq-filter {
  display:grid;
  grid-template-columns:minmax(260px,1fr) 220px auto auto;
  align-items:end;
  gap:10px;
  padding:14px;
  border:1px solid var(--border);
  border-radius:8px;
  background:var(--surface);
}
.dryreq-filter .field {
  gap:6px;
  font-family:'DM Mono',monospace;
  font-size:9px;
  color:var(--text3);
  text-transform:uppercase;
  letter-spacing:.1em;
}
.dryreq-filter input,
.dryreq-filter select {
  width:100%;
  min-height:36px;
  background:var(--surface2);
  border:1px solid var(--border);
  border-radius:6px;
  color:var(--text);
  padding:8px 10px;
  font-family:'DM Sans',sans-serif;
  font-size:13px;
  letter-spacing:0;
  text-transform:none;
}
.dryreq-filter input:focus,
.dryreq-filter select:focus { outline:none; border-color:var(--accent); background:var(--surface3); }
.dryreq-detail,
.dryreq-queue { padding:18px; }
.dryreq-status-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.dryreq-status-grid > div,
.dryreq-detail .details-grid > div,
.dryreq-queue .section-head {
  min-width:0;
}
.dryreq-status-grid > div,
.dryreq-detail .details-grid > div {
  padding:12px;
  border:1px solid var(--border);
  border-radius:8px;
  background:rgba(255,255,255,.025);
}
.dryreq-table { min-width:980px; }
.dryreq-table tbody td { padding-top:13px; padding-bottom:13px; }
.dryreq-table tbody tr.is-blocked { box-shadow:inset 3px 0 0 rgba(255,71,87,.5); }
.dryreq-table tbody tr.is-ready { box-shadow:inset 3px 0 0 rgba(61,232,138,.35); }
.dryreq-table td:first-child a { color:var(--text); font-weight:600; text-decoration:none; }
.dryreq-table td:first-child a:hover { color:var(--accent); }
.dryreq-table .badge { min-width:74px; justify-content:center; }
.mb-1 { margin-bottom: 4px; } .mb-2 { margin-bottom: 8px; } .mb-3 { margin-bottom: 12px; } .mb-4 { margin-bottom: 16px; } .mb-6 { margin-bottom: 24px; } .mb-8 { margin-bottom: 32px; }
.mt-1 { margin-top: 4px; } .mt-2 { margin-top: 8px; } .mt-3 { margin-top: 12px; } .mt-4 { margin-top: 16px; }
.my-1 { margin-top: 4px; margin-bottom: 4px; }
.pt-2 { padding-top: 8px; }
.fw-medium { font-weight: 500; }
.color-picker-input { height:42px; padding:4px; }
.ml-2 { margin-left: 8px; } .text-accent { color: var(--accent); }
.flex { display: flex; } .flex-col { flex-direction: column; } .items-center { align-items: center; } .gap-2 { gap: 8px; } .gap-3 { gap: 12px; } .flex-1 { flex: 1; }
.grid { display: grid; }
.flex-fill { flex:1; min-width:0; } .ml-auto { margin-left:auto; } .col-span-full { grid-column:1/-1; }
.filter-bar { display:flex; align-items:center; gap:10px; margin-bottom:20px; flex-wrap:wrap; }
.quote-filter-chip { display:inline-flex; align-items:center; gap:6px; min-height:24px; padding:4px 9px; border:1px solid var(--border2); border-radius:5px; background:var(--surface2); color:var(--text2); text-decoration:none; font-size:11px; font-weight:700; line-height:1; white-space:nowrap; transition:background .14s, border-color .14s, color .14s, opacity .14s; }
.quote-filter-chip:hover { border-color:var(--border3); color:var(--text); }
.quote-filter-chip__mark { display:inline-flex; align-items:center; justify-content:center; width:12px; height:12px; border-radius:999px; border:1px solid currentColor; font-family:'DM Mono',monospace; font-size:9px; line-height:1; opacity:.72; }
.quote-filter-chip--all.is-active,
.quote-filter-chip--include { color:var(--green); border-color:rgba(61,232,138,.34); background:rgba(61,232,138,.10); }
.quote-filter-chip--include .quote-filter-chip__mark::before { content:'+'; }
.quote-filter-chip--exclude { color:var(--red); border-color:rgba(255,71,87,.34); background:rgba(255,71,87,.08); text-decoration:line-through; text-decoration-thickness:1.5px; text-decoration-color:rgba(255,71,87,.8); }
.quote-filter-chip--exclude .quote-filter-chip__mark::before { content:'-'; }
.quote-filter-chip--neutral .quote-filter-chip__mark { display:none; }
.quote-filter-chip--all::before { content:'•'; font-size:13px; line-height:1; opacity:.7; }
.text-right { text-align: right; }
.nowrap { white-space: nowrap; }
.w-full { width: 100%; }
.justify-end { justify-content: flex-end; }
.text-danger { color: var(--red); } .text-success { color: var(--green); }

.login-wrap { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 20px; background: var(--bg); }
.login-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius3); padding: 40px 36px; width: 380px; max-width: 100%; box-shadow: 0 32px 80px rgba(0,0,0,.4); }
.login-logo { margin-bottom: 28px; }

#toast-container { position: fixed; bottom: 22px; right: 22px; z-index: 999; display: flex; flex-direction: column; gap: 8px; }
.toast { background: var(--surface2); border: 1px solid var(--border2); border-radius: var(--radius); padding: 11px 16px; font-size: 13px; display: flex; align-items: center; gap: 8px; box-shadow: 0 8px 32px rgba(0,0,0,.4); animation: slideRight .22s cubic-bezier(.16,1,.3,1); max-width: 340px; }
.toast-success { border-color: rgba(61,232,138,.3); }
.toast-error   { border-color: rgba(255,71,87,.3); }
@keyframes slideRight { from { transform: translateX(12px); opacity: 0; } to { transform: translateX(0); opacity: 1; } }

/* ══════════════════════════════════════════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════════════════════════════════════════ */
@media (max-width: 1200px) {
  .inv-stats  { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 900px) {
  .sidebar { width: 56px; min-width: 56px; }
  .logo-mark, .logo-sub, .nav-label, .nav-item > :not(.nav-icon), .user-info, .logout-btn, .plan-card-wrap { display: none; }
  .nav-item { justify-content: center; padding: 10px; min-height: 44px; }
  .nav-icon { font-size: 16px; width: 20px; }
  .stats-grid, .crew-stats { grid-template-columns: 1fr 1fr; }
  .section-grid, .section-grid-3 { grid-template-columns: 1fr; }
  .grid-2, .grid-3, .details-grid, .dryreq-metrics, .dryreq-status-grid { grid-template-columns: 1fr; }
  .dryreq-hero { flex-direction:column; align-items:flex-start; }
  .dryreq-filter { grid-template-columns:1fr; }
  .content { padding: 16px; }
  .topbar { padding: 10px 16px; align-items:flex-start; flex-wrap:wrap; }
  .topbar-title { flex: 1 0 100%; }
  .topbar-actions { width:100%; overflow-x:auto; flex-wrap:nowrap; padding-bottom:2px; scrollbar-width:none; }
  .topbar-actions::-webkit-scrollbar { display:none; }
  .sidebar-footer { padding: 8px; }
  .user-avatar { width: 34px; height: 34px; }
}
@media (max-width: 600px) {
  .app-shell {
    display: block;
    height: auto;
    min-height: calc(100dvh - 44px);
    overflow: visible;
    position: relative;
  }
  .env-banner-active .app-shell {
    padding-top: 36px;
  }
  .main {
    min-height: auto;
    overflow: visible;
  }
  .content {
    overflow: visible;
    min-height: auto;
  }
  .stats-grid, .crew-stats { grid-template-columns: 1fr; }
  .form-grid { grid-template-columns: 1fr; }
  .upload-ui--inline,
  .upload-ui--compact { grid-template-columns: 1fr; align-items:stretch; }
  .client-grid { grid-template-columns:1fr; }
  .client-doc-types__labels { display:none; }
  .client-doc-types__row,
  .client-doc-modal__row,
  .client-doc-review,
  .client-doc-upload { grid-template-columns:1fr; align-items:stretch; }
  .client-doc-modal__file-head,
  .client-doc-modal__section-head { align-items:flex-start; flex-direction:column; }
  .invoice-import-review__grid { grid-template-columns:1fr; }
  .invoice-import-review__actions { flex-direction:column; }
  .invoice-import-review__actions .btn { width:100%; justify-content:center; }
  .content { padding: 12px; }
  .topbar { padding: 10px 12px 10px 58px; gap: 10px; }
  .topbar-title { flex:1 0 100%; font-size: 14px; }
  .topbar-actions { width:100%; flex:1 0 100%; overflow-x:auto; flex-wrap:nowrap; }
  .form-card, .section-card { padding: 14px; margin-bottom: 12px; }
  .btn-row { flex-direction:column; align-items:stretch; }
  .btn-row .btn,
  .btn-row a.btn,
  .btn-row button.btn { width:100%; justify-content:center; }
  .table-container { overflow-x: auto; }
  tbody td, thead th { white-space: nowrap; }

  .mobile-nav-toggle {
    display: none;
  }
  .mobile-nav-launcher {
    display: inline-flex;
    position: fixed;
    left: 10px;
    top: 8px;
    z-index: 450;
    pointer-events: auto;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
    cursor: pointer;
  }
  .env-banner-active .mobile-nav-launcher {
    top: 44px;
  }
  .mobile-nav-backdrop {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 398;
    border: 0;
    background: rgba(5,7,12,.55);
    opacity: 0;
    pointer-events: none;
    transition: opacity .16s ease;
  }
  .sidebar {
    display: flex;
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    width: min(80vw, 300px);
    min-width: 0;
    height: 100dvh;
    z-index: 399;
    transform: translateX(-100%);
    visibility: hidden;
    pointer-events: none;
    transition: transform .18s ease;
    box-shadow: 18px 0 40px rgba(0,0,0,.34);
    border-right: 1px solid var(--border);
  }
  .logo-mark { display: block; }
  .logo-sub { display: block; }
  .nav-label { display: block; }
  .nav-item > :not(.nav-icon) { display: inline; }
  .user-info { display: block; }
  .logout-btn { display: inline-flex; }
  .plan-card-wrap { display: block; }
  .nav-item {
    justify-content: flex-start;
    padding: 9px 10px;
    min-height: 40px;
  }
  .nav-icon {
    font-size: 13px;
    width: 16px;
  }
  .logo {
    padding: 16px 16px 12px;
  }
  .nav {
    padding: 10px 12px 12px;
  }
  .sidebar-footer {
    padding: 10px 12px;
    display: block;
    background: var(--surface);
  }
  .user-pill {
    gap: 8px;
    width: 100%;
  }
  .user-avatar {
    width: 28px;
    height: 28px;
  }
  .user-name,
  .user-role {
    display: block;
  }
  .theme-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  .logout-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  .env-banner-active .sidebar {
    top: 36px;
    bottom: 0;
    height: calc(100dvh - 36px);
  }
  .app-shell.mobile-nav-open .sidebar {
    transform: translateX(0);
    visibility: visible;
    pointer-events: auto;
  }
  .app-shell.mobile-nav-open .mobile-nav-backdrop {
    display: block;
    opacity: 1;
    pointer-events: auto;
  }
  body.mobile-nav-lock { overflow: hidden; }

  /* ── Phone: topbar action buttons tighter ── */
  .topbar-actions .btn { padding: 5px 9px; font-size: 11px; }
  .topbar { min-height: 48px; }
  .topbar-title { flex: 1 1 auto; }

  .env-banner {
    gap: 8px;
    align-items: center;
    flex-direction: row;
    padding: 6px 10px;
    font-size: 10px;
    line-height: 1.15;
  }
  .env-banner strong { font-size: 11px; flex: 0 0 auto; }
  .env-banner span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  /* ── Phone: comms hero collapses to title only ── */
  .comms-hero { padding: 14px 16px; border-radius: 18px; margin-bottom: 12px; gap: 8px; }
  .comms-hero__meta, .comms-stats { display: none; }
  .comms-hero__title { font-size: 20px; margin-top: 4px; }
  .comms-kicker { font-size: 9px; letter-spacing: .14em; }

  /* ── Phone: channel list → horizontal scrollable tab strip ── */
  .comms-channel-list .comms-card__head { display: none; }
  .comms-channel-list .comms-card__body { padding: 10px 12px; }
  .comms-channel-items { flex-direction: row; overflow-x: auto; gap: 6px; scrollbar-width: none; padding: 0; }
  .comms-channel-items::-webkit-scrollbar { display: none; }
  .comms-channel-item { flex: 0 0 auto; background: var(--surface2); border: 1px solid var(--border); }
  .comms-channel-item__preview { display: none; }
  .comms-channel-item__hash { font-size: 11px; }
  .comms-channel-item__count { min-width: 18px; height: 18px; padding: 0 4px; font-size: 9px; }

  /* ── Phone: channel card header compact ── */
  .comms-card__head--channel { padding: 14px 16px 12px; }
  .comms-channel-header__meta { display: none; }
  .comms-card--channel .comms-card__title { font-size: 18px; }
  .comms-channel-header__actions { gap: 8px; }

  /* ── Phone: chat transcript – use dvh for more breathing room ── */
  .comms-card--channel .comms-list--channel,
  #crew-chat .comms-list--channel { max-height: calc(100dvh - 320px); min-height: 200px; }

  /* ── Phone: composer bigger touch target ── */
  .comms-composer-box textarea { font-size: 15px; min-height: 52px; }
  .comms-composer-box { margin-top: 10px; }
  .comms-mention-strip { width: 100%; }
  .comms-composer-box__foot .btn-primary { margin-left: auto; }

  /* ── Phone: hide advisory callout, keep rail counts ── */
  .comms-callout { display: none; }
  .comms-rail-item { padding: 10px 12px; }
  .comms-quicklinks { gap: 8px; }

  /* ── Phone: crew-schedule hero compact ── */
  .crew-schedule-hero { border-radius: 18px; }
  .crew-schedule-hero__meta { display: none; }

  /* ── Phone: comms card border-radius ── */
  .comms-card { border-radius: 20px; }
}

/* ══════════════════════════════════════════════════════════════════════════
   PHONE — ≤480px (very small / compact phones)
══════════════════════════════════════════════════════════════════════════ */
@media (max-width: 480px) {
  .content { padding: 8px; }
  .topbar { padding: 8px 12px 8px 54px; min-height: 44px; }
  .topbar-title { flex:1 0 100%; font-size: 12px; }
  .topbar-actions { width:100%; flex:1 0 100%; }
  .form-card { padding: 12px; }
  .comms-card { border-radius: 16px; }
  .comms-hero { padding: 12px; border-radius: 14px; }
  .comms-hero__title { font-size: 18px; }
  .comms-channel-list .comms-card__body { padding: 8px 10px; }
  .comms-channel-item { padding: 7px 10px; }
  .gear-pull-line { padding: 8px 10px; }
  .gear-pull-qty { font-size: 18px; }
  .crew-schedule-hero { padding: 14px; border-radius: 16px; }
  .crew-schedule-hero__title { font-size: 20px; }
}

/* ══════════════════════════════════════════════════════════════════════════
   BUILDER
══════════════════════════════════════════════════════════════════════════ */
.builder-shell { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:20px; align-items:start; }
.builder-sidebar { position:sticky; top:0; display:grid; gap:10px; }
.builder-stack { display:grid; gap:20px; }
.builder-collab-banner { margin:0 0 16px; padding:12px 14px; border:1px solid rgba(71, 163, 255, .22); border-radius:14px; background:rgba(71, 163, 255, .08); color:var(--text); font-size:13px; line-height:1.5; }
.builder-collab-alert { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.builder-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius2); overflow:hidden; }
.builder-status-rail { order:1; }
.builder-card--versions { order:2; }
.builder-card--pricing { order:3; }
.builder-sidebar .totals-box { order:4; }
.builder-sidebar .builder-submit { order:5; }
.builder-status-hero {
  display:grid;
  gap:8px;
  padding:16px;
  border:1px solid rgba(232,255,71,.16);
  border-radius:16px;
  background:
    radial-gradient(circle at top right, rgba(232,255,71,.14), transparent 48%),
    linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01));
}
.builder-status-rail .builder-status-hero { grid-template-columns:auto minmax(0,1fr); align-items:center; gap:8px; padding:10px 12px; border-radius:12px; }
.builder-status-hero__label {
  font-family:'DM Mono',monospace;
  font-size:10px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--text3);
}
.builder-status-hero__value {
  font-family:'Syne',sans-serif;
  font-size:28px;
  line-height:1;
  letter-spacing:-.03em;
  color:var(--text);
}
.builder-status-rail .builder-status-hero__value { font-size:20px; text-align:right; }
.builder-status-hero__select { width:100%; min-height:32px; padding:0 24px 0 0; border:0; background:transparent; color:var(--text); font-family:'Syne',sans-serif; font-size:20px; line-height:1; text-align:right; text-align-last:right; cursor:pointer; appearance:none; -webkit-appearance:none; }
.builder-status-hero__value { position:relative; }
.builder-status-hero__value::after { content:"⌄"; position:absolute; right:0; top:50%; transform:translateY(-50%); color:var(--text2); font-family:'DM Mono',monospace; font-size:14px; pointer-events:none; }
.builder-status-hero__select:focus { outline:none; }
.builder-status-hero__select:focus-visible { outline:2px solid rgba(240,255,71,.28); outline-offset:3px; border-radius:8px; }
.builder-status-hero__select option { color:#111827; background:#fff; }
.builder-status-hero__meta {
  color:var(--text2);
  font-size:12px;
  line-height:1.5;
  max-width:28ch;
}
.builder-status-rail[data-builder-status="approved"] .builder-status-hero,
.builder-status-rail[data-builder-status="paid"] .builder-status-hero {
  border-color:rgba(71,255,160,.18);
  background:
    radial-gradient(circle at top right, rgba(71,255,160,.16), transparent 48%),
    linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01));
}
.builder-status-rail[data-builder-status="approved"] .builder-status-hero__value,
.builder-status-rail[data-builder-status="paid"] .builder-status-hero__value {
  color:var(--green);
}
.builder-status-rail[data-builder-status="overdue"] .builder-status-hero,
.builder-status-rail[data-builder-status="void"] .builder-status-hero,
.builder-status-rail[data-builder-status="canceled"] .builder-status-hero {
  border-color:rgba(255,121,107,.18);
  background:
    radial-gradient(circle at top right, rgba(255,121,107,.15), transparent 48%),
    linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01));
}
.builder-status-rail[data-builder-status="overdue"] .builder-status-hero__value,
.builder-status-rail[data-builder-status="void"] .builder-status-hero__value,
.builder-status-rail[data-builder-status="canceled"] .builder-status-hero__value {
  color:var(--orange);
}
.builder-status-rail[data-builder-status="partially_paid"] .builder-status-hero,
.builder-status-rail[data-builder-status="invoiced"] .builder-status-hero,
.builder-status-rail[data-builder-status="quote"] .builder-status-hero {
  border-color:rgba(71,163,255,.18);
  background:
    radial-gradient(circle at top right, rgba(71,163,255,.15), transparent 48%),
    linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01));
}
.builder-status-rail[data-builder-status="partially_paid"] .builder-status-hero__value,
.builder-status-rail[data-builder-status="invoiced"] .builder-status-hero__value,
.builder-status-rail[data-builder-status="quote"] .builder-status-hero__value {
  color:#9fd0ff;
}
.builder-card__head { display:flex; align-items:center; gap:8px; justify-content:space-between; padding:12px 14px; border-bottom:1px solid var(--border); }
.builder-card__head--toggle { cursor:pointer; }
.builder-chevron { color:var(--text3); font-size:11px; transition:transform .2s; }
.builder-card__head-main { display:flex; align-items:center; gap:8px; min-width:0; flex-wrap:wrap; }
.builder-event-summary { font-family:'DM Mono',monospace; font-size:10px; color:var(--text3); }
.builder-event-chevron { color:var(--text3); font-size:11px; transition:transform .2s; }
.builder-restore-form { margin-top:10px; display:flex; justify-content:flex-end; }
.flex-end-row { display:flex; gap:8px; justify-content:flex-end; }
.builder-card__title { font-family:'Syne',sans-serif; font-size:14px; font-weight:700; }
.builder-card__body { padding:16px; }
.builder-card__body--compact { padding:12px; }
.builder-action-rail {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:14px 18px;
  border:1px solid var(--border);
  border-radius:16px;
  background:linear-gradient(180deg,var(--surface),var(--surface2));
}
.builder-action-rail__meta {
  min-width:0;
  display:grid;
  gap:4px;
}
.builder-action-rail__title {
  font-family:'Syne',sans-serif;
  font-size:14px;
  font-weight:700;
}
.builder-action-rail__text {
  color:var(--text2);
  font-size:12px;
}
.builder-action-rail__actions {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.builder-shortage-inventory-modal { max-width: 920px; }
.builder-shortage-inventory-form { display: contents; }
.builder-shortage-inventory-list { display: grid; gap: 10px; }
.builder-shortage-inventory-row {
  display:grid;
  grid-template-columns:18px minmax(0,1fr) minmax(140px,180px);
  gap:12px;
  align-items:center;
  padding:12px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--surface2);
}
.builder-shortage-inventory-row input[type="checkbox"] { width:16px; height:16px; }
.builder-shortage-inventory-row__main { min-width:0; display:grid; gap:4px; }
.builder-shortage-inventory-row__main strong { color:var(--text); font-size:13px; }
.builder-shortage-inventory-row__main span,
.builder-shortage-inventory-row__main em { color:var(--text3); font-size:11px; line-height:1.4; font-style:normal; }
.builder-shortage-inventory-row__qty { display:grid; gap:5px; }
.builder-shortage-inventory-row__qty span { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--text3); }
.builder-shortage-inventory-row__qty input { width:100%; min-height:36px; }
.builder-card__toggle { min-width:68px; justify-content:center; }
.builder-card.is-collapsed [data-role="sidebar-card-body"] { display:none; }
.builder-card--versions .builder-card__body--versions { max-height:min(42vh, 360px); overflow-y:auto; overscroll-behavior:contain; }
.builder-card--versions.is-collapsed .builder-card__body--versions { display:none; }
.builder-version-pill { display:inline-flex; align-items:center; padding:4px 8px; border-radius:999px; border:1px solid rgba(240,255,90,.2); background:rgba(240,255,90,.08); color:var(--accent); font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.08em; text-transform:uppercase; line-height:1; }
.builder-version-summary { color:var(--text3); font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.04em; line-height:1.2; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:180px; }
.builder-version-timeline { display:grid; gap:0; }
.builder-version-event { display:grid; grid-template-columns:18px minmax(0,1fr); gap:12px; }
.builder-version-event__rail { position:relative; display:flex; justify-content:center; }
.builder-version-event__dot { width:10px; height:10px; border-radius:999px; margin-top:12px; background:var(--surface3); border:2px solid var(--border2); position:relative; z-index:1; }
.builder-version-event__line { position:absolute; top:22px; bottom:-8px; width:1px; background:var(--border); }
.builder-version-event__card { margin-bottom:10px; padding:10px 12px; border:1px solid var(--border); border-radius:12px; background:var(--surface2); }
.builder-version-event__top { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:6px; }
.builder-version-event__version { display:flex; align-items:center; gap:8px; min-width:0; }
.builder-version-event__version strong { font-family:'DM Mono',monospace; font-size:11px; color:var(--accent); letter-spacing:.08em; text-transform:uppercase; }
.builder-version-event__state { display:inline-flex; align-items:center; padding:3px 7px; border-radius:999px; background:rgba(240,255,71,.12); border:1px solid rgba(240,255,71,.2); color:var(--accent); font-family:'DM Mono',monospace; font-size:9px; letter-spacing:.08em; text-transform:uppercase; line-height:1; }
.builder-version-event__total { color:var(--text); font-family:'DM Mono',monospace; font-size:12px; }
.builder-version-event__time { color:var(--text2); font-size:12px; margin-bottom:4px; }
.builder-version-event__meta { color:var(--text3); font-size:11px; line-height:1.4; }
.builder-version-event.is-current .builder-version-event__dot { background:var(--accent); border-color:rgba(240,255,71,.28); box-shadow:0 0 0 4px rgba(240,255,71,.08); }
.builder-version-event.is-current .builder-version-event__card { border-color:rgba(240,255,71,.16); background:linear-gradient(180deg, rgba(240,255,71,.05), rgba(255,255,255,.01)); }
.stack-list { display:grid; gap:12px; }
.stack-item { border:1px solid var(--border); border-radius:14px; background:var(--panel2); padding:14px; }
.builder-actions,.builder-inline-actions { display:flex; gap:8px; flex-wrap:nowrap; }
.builder-sections { display:grid; gap:12px; }
.section-block { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius2); overflow:hidden; }
.section-block.is-collapsed .section-block__body { display:none; }
.section-block__head { display:flex; align-items:center; gap:12px; justify-content:space-between; padding:12px 16px; border-bottom:1px solid var(--border); background:var(--surface2); }
.section-block__head-main { display:flex; align-items:center; gap:12px; min-width:0; flex-wrap:wrap; }
.section-toggle { width:28px; height:28px; border:1px solid var(--border2); background:var(--surface3); color:var(--text2); border-radius:999px; cursor:pointer; transition:transform .15s,color .15s,border-color .15s; display:flex; align-items:center; justify-content:center; }
.section-block.is-collapsed .section-toggle { transform:rotate(-90deg); }
.section-block__title { font-family:'Syne',sans-serif; font-size:14px; font-weight:700; }
.section-block__meta { font-family:'DM Mono',monospace; font-size:10px; color:var(--text3); letter-spacing:.08em; text-transform:uppercase; }
.section-block__presence { display:inline-flex; align-items:center; padding:4px 8px; border-radius:999px; border:1px solid rgba(71, 163, 255, .2); background:rgba(71, 163, 255, .08); color:#9fd0ff; font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.05em; text-transform:uppercase; line-height:1; }
.section-block__presence[hidden] { display:none !important; }
.section-block__body { padding:12px 14px 14px; }
.section-block__footer { padding:0; }
.section-groups { display:grid; gap:10px; }
.builder-group { border:1px solid var(--border); border-radius:var(--radius3); background:var(--bg); overflow:hidden; box-shadow:0 1px 4px rgba(0,0,0,.22); }
.builder-group__head { display:grid; grid-template-columns:auto minmax(220px,60%) auto auto auto; gap:10px 12px; align-items:center; padding:4px 14px; border-bottom:1px solid var(--border2); background:var(--surface3); }
.builder-group__drag { width:24px; height:28px; display:inline-flex; align-items:center; justify-content:center; border:0; background:transparent; color:var(--text3); cursor:grab; user-select:none; touch-action:none; font-size:13px; padding:0; }
.builder-group__drag:hover { color:var(--accent); }
.builder-group__drag:active { cursor:grabbing; }
.builder-group__title { min-width:0; max-width:420px; }
.builder-group__title-display { width:100%; display:block; padding:0; border:0; background:transparent; color:var(--text); font-family:'Syne',sans-serif; font-size:13px; font-weight:700; letter-spacing:-.01em; text-align:left; cursor:text; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.builder-group__title-display::after { content:" ✎"; color:var(--text3); font-size:11px; font-weight:400; }
.builder-group__title-display:hover { color:var(--accent); }
.builder-group__title-display:hover::after { color:var(--accent); }
.builder-group__title-input { display:none; width:100%; min-width:0; background:transparent; border:none; color:var(--text); font-family:'Syne',sans-serif; font-size:13px; font-weight:700; letter-spacing:-.01em; padding:0; min-height:0; }
.builder-group__title.is-editing .builder-group__title-display { display:none; }
.builder-group__title.is-editing .builder-group__title-input { display:block; }
.builder-group__title-input:focus { outline:none; }
.builder-group__meta { justify-self:start; font-family:'DM Mono',monospace; font-size:10px; color:var(--text3); letter-spacing:.08em; text-transform:uppercase; white-space:nowrap; }
.builder-group__meta-before { opacity:.58; }
.builder-group__meta-after { color:var(--text2); }
.builder-group__discount { justify-self:start; display:flex; align-items:center; gap:10px; color:var(--text3); font-size:10px; letter-spacing:.08em; text-transform:uppercase; font-family:'DM Mono',monospace; white-space:nowrap; flex-shrink:0; }
.builder-group__discount input { width:84px; min-height:34px; }
.builder-inline-actions { justify-self:end; }
.builder-detail-toggle { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-top:8px; padding:12px 14px; border:1px solid var(--border); border-radius:14px; background:var(--surface2); cursor:pointer; }
.builder-detail-toggle--slim { margin-top:0; min-height:34px; padding:6px 10px; border-radius:10px; background:var(--surface2); }
.builder-detail-toggle__copy { display:grid; gap:4px; min-width:0; }
.builder-detail-toggle__title { font-family:'Syne',sans-serif; font-size:14px; font-weight:700; color:var(--text); }
.builder-detail-toggle--slim .builder-detail-toggle__title { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--text2); }
.builder-detail-toggle__meta { color:var(--text3); font-size:12px; line-height:1.45; }
.builder-detail-toggle__control { position:relative; flex-shrink:0; display:inline-flex; }
.builder-detail-toggle__control input { position:absolute; inset:0; opacity:0; margin:0; cursor:pointer; }
.builder-detail-toggle__slider { width:52px; height:30px; border-radius:999px; background:var(--surface3); border:1px solid var(--border2); position:relative; transition:background .15s,border-color .15s; }
.builder-detail-toggle__slider::after { content:""; position:absolute; top:3px; left:3px; width:22px; height:22px; border-radius:999px; background:var(--text2); transition:transform .15s, background .15s; }
.builder-detail-toggle--slim .builder-detail-toggle__slider { width:42px; height:24px; }
.builder-detail-toggle--slim .builder-detail-toggle__slider::after { width:18px; height:18px; top:2px; left:2px; }
.builder-detail-toggle__control input:checked + .builder-detail-toggle__slider { background:rgba(240,255,71,.12); border-color:rgba(240,255,71,.3); }
.builder-detail-toggle__control input:checked + .builder-detail-toggle__slider::after { transform:translateX(22px); background:var(--accent); }
.builder-detail-toggle--slim .builder-detail-toggle__control input:checked + .builder-detail-toggle__slider::after { transform:translateX(18px); }
.builder-detail-toggle__control input:focus-visible + .builder-detail-toggle__slider { outline:2px solid rgba(240,255,71,.28); outline-offset:2px; }
.quote-lines { display:grid; gap:4px; }
.quote-line { border:1px solid var(--border); border-radius:var(--radius2); background:var(--surface2); display:block; transition:border-color .1s; }
.quote-line:hover { border-color:var(--border2); }
.quote-line.has-warning { border-color: rgba(255,179,71,.35); }
.quote-line__head { display:none; }
.quote-line__eyebrow { display:none; }
.quote-line__tools { display:flex; gap:2px; align-items:center; }
.quote-line__grid { display:grid; grid-template-columns:20px minmax(150px,1.1fr) minmax(150px,1fr) 52px 52px 82px 54px 70px 22px 22px; gap:4px; align-items:center; padding:6px 8px; }
.quote-line__grid.quote-line__grid--custom { grid-template-columns:20px minmax(150px,1.1fr) minmax(150px,1fr) 52px 52px 82px 54px 70px 22px 22px; }
.quote-line__field { display:contents; }
.quote-line__field label { display:none; }
.quote-line input,.quote-line select { width:100%; background:var(--bg); color:var(--text); border:1px solid var(--border2); border-radius:5px; height:28px; padding:0 7px; font:inherit; font-size:12px; }
.quote-line__tax-toggle { width:100%; height:28px; border:1px solid var(--border2); border-radius:5px; background:var(--bg); color:var(--text2); font-size:10px; font-weight:700; cursor:pointer; }
.quote-line__tax-toggle.is-exempt { border-color:rgba(232,255,71,.45); color:var(--accent); background:rgba(232,255,71,.08); }
.builder-card input,.builder-card select,.builder-card textarea { width:100%; background:var(--bg); color:var(--text); border:1px solid var(--border2); border-radius:8px; min-height:32px; padding:7px 10px; font:inherit; }
.quote-line input[type=number],
.builder-card input[type=number] { -moz-appearance: textfield; appearance: textfield; }
.quote-line input[type=number]::-webkit-outer-spin-button,
.quote-line input[type=number]::-webkit-inner-spin-button,
.builder-card input[type=number]::-webkit-outer-spin-button,
.builder-card input[type=number]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.quote-line textarea,.builder-card textarea { min-height:110px; resize:vertical; }
.quote-line__amount { min-width:72px; text-align:right; font-family:'DM Mono',monospace; font-size:12px; color:var(--text2); font-weight:600; padding-right:4px; }
.quote-line__warning { padding:0 10px 8px 24px; color:var(--orange); font-size:11px; line-height:1.4; }
.quote-line__case-summary { margin:0 10px 8px 24px; display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.quote-line__case-toggle { display:inline-flex; align-items:center; gap:8px; width:auto; min-height:24px; padding:0 8px; border:1px solid var(--border); border-radius:999px; background:var(--surface3); color:var(--text3); font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.06em; text-transform:uppercase; cursor:pointer; }
.quote-line__case-toggle:hover { border-color:var(--border2); color:var(--text2); }
.quote-line__case-toggle-state { color:var(--accent); }
.quote-line__case-edit { display:inline-flex; align-items:center; min-height:24px; padding:0 8px; border:1px solid var(--border); border-radius:999px; background:transparent; color:var(--accent); font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.06em; text-transform:uppercase; cursor:pointer; }
.quote-line__case-edit:hover { border-color:rgba(232,255,71,.32); background:rgba(232,255,71,.08); }
.quote-line__case-items { margin:0 10px 8px 24px; padding:8px 10px; border:1px solid var(--border); border-radius:8px; background:rgba(255,255,255,.03); display:grid; gap:5px; }
.quote-line__case-items[hidden] { display:none; }
.quote-line__case-items-title { display:flex; align-items:center; justify-content:space-between; gap:8px; font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--text3); }
.quote-line__case-item { display:grid; grid-template-columns:44px minmax(0,1fr); gap:8px; color:var(--text2); font-size:12px; line-height:1.35; }
.quote-line__case-item span:first-child { font-family:'DM Mono',monospace; color:var(--text); }
.case-items-editor { display:grid; gap:12px; }
.case-items-editor__head,
.case-items-editor__row { display:grid; grid-template-columns:82px minmax(0,1fr) 34px; gap:10px; align-items:center; }
.case-items-editor__head { padding:0 2px; font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--text3); }
.case-items-editor__list { display:grid; gap:8px; }
.case-items-editor__row { padding:8px; border:1px solid var(--border); border-radius:8px; background:var(--surface2); }
.case-items-editor__row input { min-width:0; }
.case-items-editor__name { min-width:0; color:var(--text2); font-size:13px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.case-items-editor__add { position:relative; display:grid; gap:8px; }
.case-items-editor__results { max-height:220px; overflow-y:auto; border:1px solid var(--border); border-radius:8px; background:var(--surface); }
.case-items-editor__result { width:100%; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:9px 10px; border:0; border-bottom:1px solid var(--border); background:transparent; color:var(--text2); text-align:left; cursor:pointer; }
.case-items-editor__result:last-child { border-bottom:0; }
.case-items-editor__result:hover { background:var(--surface2); }
.case-items-editor__result span { font-size:13px; font-weight:500; }
.case-items-editor__result small { min-width:0; color:var(--text3); font-size:11px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pill { display:inline-flex; align-items:center; gap:4px; padding:4px 8px; border-radius:999px; font-family:'DM Mono',monospace; font-size:10px; line-height:1; border:1px solid var(--border2); color:var(--text2); background:var(--surface3); }
.pill--ok  { color:var(--green);  border-color:rgba(71,255,160,.25); background:rgba(71,255,160,.08); }
.pill--warn{ color:var(--orange); border-color:rgba(255,179,71,.25);  background:rgba(255,179,71,.08); }
.pill--bad { color:var(--red);    border-color:rgba(255,71,87,.25);   background:rgba(255,71,87,.08); }
.pill--accent{ color:var(--accent); border-color:rgba(232,255,71,.2); background:rgba(232,255,71,.08); }
.section-subtotal { padding:8px 14px; display:flex; justify-content:space-between; gap:12px; color:var(--text3); font-size:11px; background:var(--surface3); border-top:1px solid var(--border); }
.section-subtotal strong { color:var(--text2); font-family:'DM Mono',monospace; font-size:12px; }
.section-footer-row { display:flex; align-items:center; justify-content:right; gap:10px; flex-wrap:wrap; padding:8px 12px; border-top:1px solid var(--border); background:var(--surface2); }
.section-disc-wrap { display:flex; align-items:center; gap:10px; color:var(--text3); font-size:10px; letter-spacing:.08em; text-transform:uppercase; }
.section-disc-field { font-family:'DM Mono',monospace; }
.section-disc-field__input { display:flex; align-items:center; gap:8px; padding:0 10px; min-height:36px; border:1px solid var(--border); border-radius:12px; background:var(--surface); color:var(--text2); flex-shrink:0; }
.section-disc-input { width:84px; min-height:34px; border:0; background:transparent; text-align:right; font-family:'DM Mono',monospace; color:var(--text); box-shadow:none; padding:0; }
.section-disc-input:focus { outline:none; }
.section-net-display { display:flex; align-items:center; gap:8px; color:var(--text3); font-size:11px; }
.section-net-display strong { color:var(--accent); font-family:'DM Mono',monospace; font-size:12px; }
.totals-disc-badge { display:inline-flex; align-items:center; margin-left:6px; padding:2px 6px; border-radius:999px; background:rgba(240,255,90,.14); border:1px solid rgba(240,255,90,.28); color:var(--accent); font-family:'DM Mono',monospace; font-size:10px; line-height:1; }
.totals-disc-badge[hidden] { display:none !important; }
.builder-meta { display:grid; gap:12px; }
.builder-meta--compact { gap:8px; }
.builder-meta-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.builder-field--compact { gap:4px; }
.builder-card--pricing .field label { font-size:8px; }
.builder-pricing-switch-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; align-items:end; }
.builder-field--switch { min-width:0; }
.builder-field--switch .builder-detail-toggle--slim { min-height:44px; padding:7px 8px; gap:8px; }
.builder-field--switch .builder-detail-toggle__title { white-space:normal; line-height:1.2; overflow-wrap:anywhere; }
.builder-field--discount .builder-discount-row { grid-template-columns:minmax(82px,auto) minmax(0,1fr); gap:8px; }
.builder-field--discount input[type=number],
.builder-field--tax-inline input[type=number] { min-height:36px; }
.builder-field--tax-inline { display:grid; grid-template-columns:minmax(0,1fr) 148px; align-items:center; column-gap:10px; margin-top:4px; padding-top:10px; border-top:1px solid var(--border); }
.builder-field--tax-inline label { margin:0; font-size:9px; }
.builder-tax-rate-control { display:flex; align-items:center; min-height:36px; border:1px solid var(--border2); border-radius:8px; background:var(--bg); overflow:hidden; }
.builder-tax-rate-control input { min-width:0; flex:1; border:0; background:transparent; text-align:right; font-family:'DM Mono',monospace; padding:7px 6px 7px 10px; }
.builder-tax-rate-control span { flex-shrink:0; padding:0 10px 0 2px; color:var(--text3); font-family:'DM Mono',monospace; font-size:12px; }
.builder-tax-rate-control:focus-within { border-color:var(--accent); box-shadow:0 0 0 2px rgba(232,255,71,.12); }
.builder-discount-row { display:grid; grid-template-columns:auto minmax(0,1fr); gap:10px; align-items:center; }
.builder-discount-mode { display:inline-flex; gap:4px; padding:3px; border:1px solid var(--border); border-radius:12px; background:var(--surface); width:max-content; }
.builder-discount-mode__button { min-width:34px; border:0; border-radius:8px; background:transparent; color:var(--text2); font-family:'DM Mono',monospace; font-size:12px; font-weight:700; line-height:1; padding:8px 9px; cursor:pointer; transition:background .14s ease,color .14s ease,box-shadow .14s ease; }
.builder-discount-mode__button:hover { color:var(--text); }
.builder-discount-mode__button:focus-visible { outline:2px solid rgba(240,255,71,.34); outline-offset:1px; }
.builder-discount-mode__button.is-active { background:rgba(232,255,71,.14); color:var(--accent); box-shadow:inset 0 0 0 1px rgba(232,255,71,.22); }
.builder-empty { border:1px dashed var(--border2); border-radius:10px; padding:18px; color:var(--text3); text-align:center; font-size:12px; }
.builder-payment-methods { display:grid; gap:8px; margin-top:10px; }
.builder-payment-method { display:grid; gap:3px; padding:9px 10px; border:1px solid var(--border); border-radius:10px; background:var(--surface2); }
.builder-payment-method strong { color:var(--text); font-size:12px; }
.builder-payment-method span { color:var(--text3); font-size:11px; line-height:1.45; overflow-wrap:anywhere; }
.builder-submit { display:grid; gap:8px; margin-top:14px; }
.builder-submit .btn { justify-content: center; }
.builder-sidebar .totals-box { padding:10px 12px; border-radius:12px; }
.builder-sidebar .totals-row { padding:4px 0; font-size:12px; }
.builder-sidebar .totals-row--net-subtotal { border-top:1px solid var(--border); margin-top:3px; padding-top:7px; color:var(--text); }
.builder-sidebar .totals-row.total { margin-top:4px; padding-top:8px; }
.builder-sidebar .totals-row.total .amount { font-size:15px; }
.builder-sidebar .builder-submit { grid-template-columns:minmax(0,1fr) auto; gap:8px; margin-top:0; }
.builder-sidebar .builder-submit .btn { min-height:34px; padding:0 12px; }
.builder-sidebar .builder-submit .btn--full { grid-column:1 / -1; }
.builder-picker-list { max-height:420px; overflow-y:auto; }
.gear-dept-header {
  font-family:'DM Mono',monospace;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.14em;
  color:var(--text3);
  padding:14px 4px 8px;
}
.gear-pick-item {
  width:100%;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  padding:14px 16px;
  margin-bottom:10px;
  border:1px solid var(--border);
  border-radius:14px;
  background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
  color:var(--text);
  text-align:left;
  cursor:pointer;
  transition:border-color .14s ease, background .14s ease, transform .14s ease;
}
.gear-pick-item:hover {
  border-color:rgba(232,255,71,.22);
  background:linear-gradient(180deg, rgba(232,255,71,.08), rgba(255,255,255,.03));
  transform:translateY(-1px);
}
.gear-pick-item:focus-visible {
  outline:none;
  border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(232,255,71,.12);
}
.gear-pick-item > div {
  flex:1;
  min-width:0;
}
.gear-pick-name {
  font-size:16px;
  font-weight:600;
  color:var(--text);
  line-height:1.35;
  margin-bottom:4px;
  word-break:break-word;
}
.gear-pick-meta {
  font-size:12px;
  color:var(--text3);
  line-height:1.5;
  word-break:break-word;
}
.gear-pick-item .btn {
  flex-shrink:0;
  align-self:center;
}
.builder-picker-item { display:flex; align-items:center; gap:12px; padding:10px 8px; border-bottom:1px solid var(--border); cursor:pointer; transition:background .12s; }
.builder-picker-item:hover { background:var(--surface2); }
.builder-picker-item__meta { flex:1; min-width:0; }
.builder-picker-item__name { font-size:13px; font-weight:500; }
.builder-picker-item__sub { font-size:11px; color:var(--text3); }
.builder-picker-item__price { text-align:right; font-family:'DM Mono',monospace; font-size:12px; color:var(--accent); white-space:nowrap; }
.builder-picker-divider { font-family:'DM Mono',monospace; font-size:10px; color:var(--text3); text-transform:uppercase; letter-spacing:.1em; padding:12px 4px 8px; }
.builder-picker-empty-action { display:flex; justify-content:center; margin-top:12px; }
.builder-actions-sep { width:1px; height:16px; background:var(--border2); flex-shrink:0; align-self:center; }
.builder-actions-hint { color:var(--text3); font-size:12px; align-self:center; margin-right:auto; }
/* Builder spaces — each room is a self-contained workspace */
.builder-spaces { display:grid; gap:16px; }
.builder-space { border:1px solid var(--border2); border-radius:var(--radius2); background:var(--surface2); overflow:hidden; }
.builder-space__head { display:flex; align-items:center; gap:12px; justify-content:space-between; flex-wrap:wrap; padding:12px 16px; border-bottom:1px solid var(--border); background:var(--surface3); }
.builder-space__title-wrap { display:flex; align-items:center; gap:10px; min-width:0; }
.builder-space__kicker { font-family:'DM Mono',monospace; font-size:10px; color:var(--text3); letter-spacing:.1em; text-transform:uppercase; }
.builder-space__title { background:transparent; border:1px solid transparent; border-radius:8px; color:var(--text); font-family:'Syne',sans-serif; font-size:15px; font-weight:700; padding:4px 8px; min-width:160px; }
.builder-space__title:hover { border-color:var(--border2); }
.builder-space__title:focus { outline:none; border-color:var(--accent); background:var(--bg); }
.builder-space__actions { flex-wrap:wrap; justify-content:flex-end; }
.builder-space .builder-sections { padding:12px 14px 14px; }
/* Room operational sync-state badge */
.builder-space__sync-badge { font-family:'DM Mono',monospace; font-size:9px; letter-spacing:.08em; text-transform:uppercase; padding:3px 8px; border-radius:999px; border:1px solid var(--border2); color:var(--text3); white-space:nowrap; }
.builder-space__sync-badge[data-state="operational"] { color:#9fd0ff; border-color:rgba(71,163,255,.3); background:rgba(71,163,255,.08); }
.builder-space__sync-badge[data-state="ros_timing"] { color:var(--accent); border-color:rgba(240,255,71,.3); background:rgba(240,255,71,.08); }
.builder-space__sync-badge[data-state="needs_review"] { color:#ffb4a2; border-color:rgba(255,107,71,.32); background:rgba(255,107,71,.1); }
.builder-space__rename-hint { margin:0 16px 8px; padding:6px 10px; border:1px solid rgba(240,255,71,.28); background:rgba(240,255,71,.06); border-radius:8px; color:var(--text2); font-size:12px; }
.builder-space__rename-hint[hidden] { display:none; }
.builder-space__room { margin:0 16px 12px; border:1px solid var(--border); border-radius:10px; background:var(--bg); }
.builder-space__room > summary { cursor:pointer; padding:8px 12px; font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--text3); }
.builder-space__room-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:10px; padding:4px 12px 12px; }
@media (max-width:1200px) { .builder-shell { grid-template-columns:1fr; } .builder-sidebar { position:static; } }
@media (max-width:1200px) { .builder-status-hero__meta { max-width:none; } }
@media (max-width:820px) {
  .builder-meta-grid { grid-template-columns:1fr 1fr; }
  .quote-line-header { display:none; }
  .quote-line { border-radius:14px; padding:10px; }
  .quote-line__grid,
  .quote-line__grid.quote-line__grid--custom {
    grid-template-columns:28px minmax(0,1fr) 72px 72px 92px;
    grid-template-areas:
      "drag desc desc desc desc"
      "drag detail detail detail detail"
      "drag qty days rate tax"
      "drag amount amount amount amount"
      "drag duplicate remove remove remove";
    gap:8px;
    padding:0;
    align-items:center;
  }
  .quote-line__drag { grid-area:drag; align-self:stretch; border-right:1px solid var(--border); padding-right:6px; }
  .quote-line input[name="line_desc[]"] { grid-area:desc; }
  .quote-line input[name="line_detail[]"] { grid-area:detail; }
  .quote-line input[name="line_qty[]"] { grid-area:qty; }
  .quote-line input[name="line_unit2[]"] { grid-area:days; }
  .quote-line input[name="line_rate[]"] { grid-area:rate; }
  .quote-line__tax-toggle { grid-area:tax; min-height:30px; }
  .quote-line__amount { grid-area:amount; min-width:0; text-align:right; padding-right:0; }
  .quote-line__tool-btn { width:100%; min-height:30px; border:1px solid var(--border); background:var(--surface); }
  .quote-line__tool-btn[data-action="line-duplicate"] { grid-area:duplicate; }
  .quote-line__tool-btn[data-action="line-remove"] { grid-area:remove; }
  .quote-line__warning { padding:8px 0 0 36px; }
  .section-footer-row { align-items:flex-start; }
  .section-disc-wrap { width:100%; justify-content:space-between; }
  .builder-group__head { grid-template-columns:1fr; }
  .builder-group__title { max-width:none; }
  .builder-group__discount,.builder-inline-actions { width:100%; justify-self:stretch; }
  .builder-group__discount { justify-content:space-between; }
  .builder-actions,.builder-inline-actions,.builder-action-rail__actions { flex-wrap:wrap; }
  .builder-card__head,.builder-action-rail { align-items:flex-start; flex-wrap:wrap; }
  .builder-shortage-inventory-row { grid-template-columns:18px minmax(0,1fr); }
  .builder-shortage-inventory-row__qty { grid-column:2; max-width:220px; }
  .builder-card__toggle { margin-left:auto; }
  .builder-card--versions .builder-card__body--versions { max-height:280px; }
  .builder-pricing-switch-grid,
  .builder-field--tax-inline { grid-template-columns:1fr; }
  .builder-discount-row { grid-template-columns:1fr; align-items:stretch; }
}
@media (max-width:560px) {
  .builder-card__body,
  .section-block__body { padding:12px; }
  .builder-meta-grid { grid-template-columns:1fr; }
  .quote-line__grid,
  .quote-line__grid.quote-line__grid--custom {
    grid-template-columns:repeat(3,minmax(0,1fr));
    grid-template-areas:
      "drag drag drag"
      "desc desc desc"
      "detail detail detail"
      "qty days rate"
      "amount duplicate remove";
  }
  .quote-line__drag {
    grid-area:drag; display:flex; width:100%; min-height:30px;
    border:1px solid var(--border); border-radius:6px; background:var(--surface);
  }
  .quote-line input,.quote-line select { min-height:36px; font-size:13px; }
  .quote-line__amount { text-align:left; }
  .quote-line__warning { padding-left:0; }
  .builder-inline-actions .btn,
  .builder-actions .btn,
  .builder-action-rail__actions .btn { flex:1 1 auto; justify-content:center; }
}

/* ══════════════════════════════════════════════════════════════════════════
   CALENDAR
══════════════════════════════════════════════════════════════════════════ */
.calendar-view { display:none; }
.calendar-view.is-active { display:block; }
.calendar-legend-bar { display:flex; gap:24px; flex-wrap:wrap; margin-bottom:20px; align-items:center; }
.calendar-legend-group { display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.calendar-legend-label,.gantt-col-label { font-family:'DM Mono',monospace; font-size:9px; color:var(--text3); text-transform:uppercase; letter-spacing:.1em; }
.gantt-wrap { overflow-x:auto; padding-bottom:20px; }
.gantt { --gantt-day-min:34px; --gantt-timeline-width:1904px; min-width:calc(260px + var(--gantt-timeline-width)); }
.gantt-header-row { display:flex; }
.gantt-show-col-head { width:260px; min-width:260px; padding:8px 16px; border-bottom:1px solid var(--border); border-right:1px solid var(--border); }
.gantt-row { display:flex; align-items:center; border-bottom:1px solid var(--border); min-height:48px; position:relative; }
.gantt-row:hover { background:var(--surface2); }
.gantt-label { width:260px; min-width:260px; padding:8px 16px; flex-shrink:0; }
.gantt-show-name { font-size:13px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.gantt-show-meta { font-size:10px; color:var(--text3); margin-top:1px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.gantt-timeline { flex:1; min-width:var(--gantt-timeline-width); position:relative; height:48px; }
.gantt-bar { position:absolute; top:8px; height:32px; border-radius:6px; display:flex; align-items:center; padding:0 10px; font-size:11px; font-weight:600; white-space:nowrap; overflow:hidden; transition:filter .15s; border-width:1px; border-style:solid; min-width:4px; cursor:pointer; background:color-mix(in srgb, var(--bc) 13%, transparent); border-color:var(--bc); color:var(--bc); }
.gantt-bar:hover { filter:brightness(1.2); }
.gantt-bar--quote-outlook { opacity:.48; filter:saturate(.65); border-style:dashed; }
.gantt-bar-label { overflow:hidden; text-overflow:ellipsis; }
.gantt-due-line { position:absolute; top:23px; height:2px; border-radius:999px; background:linear-gradient(90deg, rgba(255,179,71,.18) 0%, rgba(255,179,71,.9) 100%); pointer-events:none; z-index:1; }
.gantt-due-marker { position:absolute; top:16px; width:14px; height:14px; margin-left:-7px; border-radius:999px; border:2px solid rgba(255,179,71,.95); background:var(--surface); box-shadow:0 0 0 4px rgba(255,179,71,.16); z-index:3; }
.gantt-due-marker:hover { transform:scale(1.06); }
.gantt-dates { display:grid; grid-template-columns:repeat(56,minmax(var(--gantt-day-min),1fr)); flex:1; min-width:var(--gantt-timeline-width); }
.gantt-date-cell { font-family:'DM Mono',monospace; font-size:9px; color:var(--text3); text-align:center; padding:8px 0; border-bottom:1px solid var(--border); border-right:1px solid var(--border); }
.gantt-date-cell.today { background:rgba(232,255,71,.06); color:var(--accent); }
.gantt-date-cell.weekend { background:rgba(255,255,255,.01); }
.gantt-today-line { position:absolute; top:0; bottom:0; width:2px; background:var(--accent); opacity:.6; pointer-events:none; z-index:2; }
.gantt-empty { text-align:center; padding:40px; color:var(--text3); font-size:13px; }
.calendar-empty-link { color:var(--accent); }
.calendar-nav { display:flex; align-items:center; gap:16px; margin-bottom:20px; }
.calendar-nav--footer { margin-top:16px; justify-content:center; }
.calendar-nav__today { margin-left:auto; }
.cal-month { font-family:'Syne',sans-serif; font-weight:700; font-size:20px; }
.cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:1px; background:var(--border); border:1px solid var(--border); border-radius:var(--radius2); overflow:hidden; }
.cal-day-head { background:var(--surface2); padding:8px; text-align:center; font-family:'DM Mono',monospace; font-size:9px; text-transform:uppercase; letter-spacing:.1em; color:var(--text3); }
.cal-day { background:var(--surface); min-height:100px; padding:6px; position:relative; }
.cal-day.other-month { background:var(--surface2); opacity:.5; }
.cal-day.today { background:rgba(232,255,71,.03); }
.cal-day-num { font-family:'DM Mono',monospace; font-size:11px; color:var(--text3); margin-bottom:4px; }
.cal-day.today .cal-day-num { color:var(--accent); font-weight:700; }
.cal-event { display:block; padding:3px 6px; border-radius:4px; font-size:10px; font-weight:600; margin-bottom:3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; border-left:3px solid; transition:opacity .15s; cursor:pointer; background:color-mix(in srgb, var(--bc) 13%, transparent); border-left-color:var(--bc); color:var(--bc); }
.cal-event:hover { opacity:.8; }
.cal-event.is-quote-outlook { opacity:.5; filter:saturate(.6); border-left-style:dashed; }
.cal-event--invoice-due { --bc: var(--orange); background:rgba(255,179,71,.16); border-left-color:var(--orange); color:#ffd5a2; }
.cal-event.continues-left { border-radius:0 4px 4px 0; margin-left:-6px; padding-left:4px; }
.cal-event.continues-right { border-radius:4px 0 0 4px; margin-right:-6px; padding-right:4px; }
.legend-item { display:flex; align-items:center; gap:6px; font-size:11px; color:var(--text2); }
.legend-dot { width:10px; height:10px; border-radius:3px; flex-shrink:0; }
.legend-dot--quote-outlook { background:rgba(149,157,179,.38); border:1px dashed rgba(149,157,179,.75); }
.legend-dot--invoice-due { background:rgba(255,179,71,.24); border:1px solid rgba(255,179,71,.85); }
@media (max-width:900px) { .calendar-nav { flex-wrap:wrap; } .calendar-nav__today { margin-left:0; } }

/* ══════════════════════════════════════════════════════════════════════════
   CLIENTS
══════════════════════════════════════════════════════════════════════════ */
.clients-toolbar { display:flex; align-items:end; justify-content:space-between; gap:14px; margin-bottom:18px; flex-wrap:wrap; }
.clients-toolbar__title { font-family:'Syne',sans-serif; font-size:18px; font-weight:700; }
.clients-toolbar__meta { color:var(--text3); font-size:12px; margin-top:4px; }
.clients-toolbar__search { width:min(360px,100%); }
.clients-search { width:100%; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:10px 12px; color:var(--text); outline:none; }
.clients-search:focus { border-color:var(--accent); }
.client-actions { display:flex; gap:6px; margin-top:14px; flex-wrap:wrap; }
.client-delete-form { display:inline-flex; }
.empty-state--wide { grid-column:1 / -1; }
.clients-empty-filtered { margin-top:18px; text-align:center; color:var(--text3); font-size:12px; }
.contact-transactions-modal { width:min(920px,96vw); }
.contact-transactions-subtitle { margin-top:4px; color:var(--text3); font-size:11px; }
.contact-transactions-contact { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; font-size:12px; color:var(--text2); }
.contact-transactions-contact a,
.contact-transactions-contact span { display:inline-flex; padding:5px 8px; border:1px solid var(--border); border-radius:999px; color:var(--text2); text-decoration:none; background:var(--surface2); }
.contact-transactions-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-bottom:16px; }
.contact-transactions-stats div { padding:12px; border:1px solid var(--border); border-radius:var(--radius2); background:var(--surface2); min-width:0; }
.contact-transactions-stats span { display:block; margin-bottom:6px; font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--text3); }
.contact-transactions-stats strong { display:block; overflow-wrap:anywhere; font-size:16px; color:var(--text); }
.contact-transactions-list { display:grid; gap:9px; }
.contact-transaction-row { display:grid; grid-template-columns:minmax(0,1fr) 150px; gap:12px; padding:12px; border:1px solid var(--border); border-radius:var(--radius2); background:var(--surface2); }
.contact-transaction-row--grouped { background:linear-gradient(180deg, rgba(220,255,43,.045), var(--surface2)); border-color:rgba(220,255,43,.22); }
.contact-transaction-row__main { min-width:0; }
.contact-transaction-row__type { display:inline-flex; margin-bottom:6px; font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--text3); }
.contact-transaction-row__main strong,
.contact-transaction-row__main a { color:var(--text); text-decoration:none; overflow-wrap:anywhere; }
.contact-transaction-row__main a:hover { color:var(--accent); }
.contact-transaction-row__main p { margin:5px 0 0; color:var(--text2); font-size:12px; line-height:1.45; }
.contact-transaction-row small { display:block; margin-top:5px; color:var(--text3); font-size:11px; }
.contact-transaction-row__side { text-align:right; color:var(--text3); font-size:11px; }
.contact-transaction-row__side strong { display:block; margin-bottom:5px; color:var(--text); font-size:13px; }
.contact-transaction-row__side span { display:block; color:var(--text2); }
.contact-transaction-row__children { grid-column:1/-1; display:grid; gap:7px; padding-top:10px; border-top:1px solid var(--border); }
.contact-transaction-child { display:grid; grid-template-columns:minmax(0,1fr) 130px; gap:12px; padding:9px 10px; border:1px solid rgba(255,255,255,.06); border-radius:var(--radius); background:rgba(0,0,0,.12); }
.contact-transaction-child__main { min-width:0; }
.contact-transaction-child__main span { display:inline-flex; margin-bottom:4px; font-family:'DM Mono',monospace; font-size:9.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--text3); }
.contact-transaction-child__main strong,
.contact-transaction-child__main a { color:var(--text); text-decoration:none; overflow-wrap:anywhere; }
.contact-transaction-child__main a:hover { color:var(--accent); }
.contact-transaction-child__main p { margin:4px 0 0; color:var(--text2); font-size:11px; line-height:1.35; }
.contact-transaction-child small { display:block; margin-top:4px; color:var(--text3); font-size:10.5px; }
.contact-transaction-child__side { text-align:right; color:var(--text3); font-size:10.5px; }
.contact-transaction-child__side strong { display:block; margin-bottom:4px; color:var(--text); font-size:12px; }
.contact-transaction-child__side span { display:block; color:var(--text2); }
.contact-transactions-empty { padding:18px; border:1px dashed var(--border); border-radius:var(--radius2); color:var(--text3); text-align:center; font-size:12px; }
@media(max-width:720px){
  .contact-transactions-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .contact-transaction-row { grid-template-columns:1fr; }
  .contact-transaction-row__side { text-align:left; }
  .contact-transaction-child { grid-template-columns:1fr; }
  .contact-transaction-child__side { text-align:left; }
}

/* ══════════════════════════════════════════════════════════════════════════
   CREW ACCOUNTS (admin)
══════════════════════════════════════════════════════════════════════════ */
.crew-access-stats { margin-bottom:18px; }
.crew-access-head { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.panel-subtitle { font-size:11px; color:var(--text3); margin-top:4px; }
.panel-body--flush { padding:0; }
.panel-body--scroll { overflow:auto; }
.action-cluster { display:flex; gap:8px; }
.action-cluster--wrap { flex-wrap:wrap; }
.inline-form { display:inline; }
.deposit-create-control { display:inline-flex; align-items:center; gap:4px; vertical-align:middle; }
.deposit-create-control__input {
  width:54px;
  min-height:24px;
  padding:3px 6px;
  border:1px solid var(--border);
  border-radius:var(--radius);
  background:var(--surface2);
  color:var(--text);
  font-family:'DM Mono',monospace;
  font-size:11px;
}
.deposit-create-control__suffix { margin-left:-2px; color:var(--text3); font-family:'DM Mono',monospace; font-size:10px; }
.status-pill { display:inline-flex; align-items:center; padding:4px 10px; border-radius:999px; font-size:11px; font-weight:600; }
.status-pill.is-active   { background:rgba(71,255,160,.12); color:var(--green); border:1px solid rgba(71,255,160,.25); }
.status-pill.is-disabled { background:rgba(255,120,120,.12); color:var(--red);   border:1px solid rgba(255,120,120,.25); }
.status-pill.is-idle     { background:var(--surface3);       color:var(--text3); border:1px solid var(--border); }
.status-pill.is-reviewing { background:rgba(71,180,255,.12); color:var(--blue); border:1px solid rgba(71,180,255,.28); }
@media (max-width:900px) { .crew-access-head { flex-direction:column; align-items:stretch; } }

/* ══════════════════════════════════════════════════════════════════════════
   CREW APPLICATIONS
══════════════════════════════════════════════════════════════════════════ */
.crew-applications-url { font-size:15px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.crew-application-detail { margin-bottom:18px; }
.crew-application-detail__head { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; }
.crew-application-detail__grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-bottom:18px; }
.crew-application-detail__grid > div { background:var(--surface2); border:1px solid var(--border); border-radius:var(--radius); padding:12px; min-width:0; }
.crew-application-detail__grid span,
.crew-application-note__label { display:block; font-family:'DM Mono',monospace; font-size:9px; letter-spacing:.12em; text-transform:uppercase; color:var(--text3); margin-bottom:6px; }
.crew-application-detail__grid strong { display:block; font-size:13px; color:var(--text); overflow-wrap:anywhere; }
.crew-application-notes { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.crew-application-note { border:1px solid var(--border); border-radius:var(--radius); background:rgba(255,255,255,.02); padding:12px; min-width:0; }
.crew-application-note__body { color:var(--text2); font-size:13px; line-height:1.6; overflow-wrap:anywhere; }
.crew-application-note__body a { color:var(--accent); text-decoration:underline; text-underline-offset:3px; }
.crew-application-actions { margin-top:16px; }
.crew-application-share { display:grid; gap:10px; }
.crew-application-share__url { padding:12px 14px; border:1px solid var(--border); border-radius:var(--radius); background:var(--surface2); color:var(--text); font-family:'DM Mono',monospace; font-size:12px; line-height:1.5; overflow-wrap:anywhere; }
.crew-application-share__note { color:var(--text3); font-size:12px; }
.crew-applications-filter { display:flex; justify-content:space-between; align-items:center; gap:16px; }
.crew-applications-filter__form { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.crew-applications-filter__form select,
.crew-applications-filter__form input { background:var(--surface2); border:1px solid var(--border); border-radius:var(--radius); color:var(--text); min-height:32px; padding:6px 10px; font:inherit; }
.crew-applications-filter__form input { width:min(260px,42vw); }
.table-sub { font-size:11px; color:var(--text3); margin-top:4px; }
tr.is-selected-row { background:rgba(232,255,71,.055); }

body.crew-apply-page { min-height:100vh; background:radial-gradient(circle at 20% 0%, rgba(232,255,71,.10), transparent 26%), linear-gradient(135deg,#06070b 0%,#121722 54%,#10131a 100%); }
.crew-apply-shell { width:min(1120px,100%); margin:0 auto; padding:48px 24px; display:grid; grid-template-columns:minmax(280px,0.78fr) minmax(360px,1.22fr); gap:28px; align-items:start; }
.crew-apply-intro { position:sticky; top:36px; padding:20px 0; }
.crew-apply-brand { font-family:'Syne',sans-serif; font-weight:800; font-size:18px; letter-spacing:.16em; color:var(--accent); margin-bottom:26px; }
.crew-apply-kicker { font-family:'DM Mono',monospace; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--text3); margin-bottom:14px; }
.crew-apply-intro h1 { font-size:clamp(38px,6vw,68px); line-height:.95; margin-bottom:18px; max-width:8.5em; }
.crew-apply-copy { color:var(--text2); font-size:16px; line-height:1.65; max-width:440px; }
.crew-apply-card { background:rgba(15,18,25,.94); border:1px solid rgba(70,80,106,.76); border-radius:var(--radius2); box-shadow:0 24px 90px rgba(0,0,0,.34); padding:24px; }
.crew-apply-form { display:grid; gap:18px; }
.crew-apply-form .field input,
.crew-apply-form .field select,
.crew-apply-form .field textarea { min-height:42px; }
.crew-apply-form .field textarea { min-height:96px; }
.crew-apply-hp { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.crew-apply-consent { display:flex; align-items:flex-start; gap:10px; color:var(--text2); font-size:13px; line-height:1.45; }
.crew-apply-consent input { margin-top:3px; accent-color:var(--accent); }
.crew-apply-actions { display:flex; justify-content:flex-end; }
.crew-apply-actions .btn { min-height:42px; }
.crew-apply-success { text-align:center; padding:40px 18px; }
.crew-apply-success__mark { display:inline-flex; align-items:center; justify-content:center; width:54px; height:54px; border-radius:50%; background:var(--accent); color:#111; font-family:'DM Mono',monospace; font-weight:800; margin-bottom:18px; }
.crew-apply-success h2 { font-size:32px; margin-bottom:10px; }
.crew-apply-success p { color:var(--text2); font-size:15px; line-height:1.6; max-width:420px; margin:0 auto; }
@media (max-width:900px) {
  .crew-application-detail__grid,
  .crew-application-notes,
  .crew-apply-shell { grid-template-columns:1fr; }
  .crew-apply-intro { position:static; padding:0; }
  .crew-applications-filter { align-items:stretch; flex-direction:column; }
  .crew-applications-filter__form input { width:100%; }
}
@media (max-width:640px) {
  .crew-apply-shell { padding:28px 14px; gap:18px; }
  .crew-apply-card { padding:18px; }
}

/* ══════════════════════════════════════════════════════════════════════════
   CREW AUTH (login/set-password pages — standalone, no app shell)
══════════════════════════════════════════════════════════════════════════ */
body.crew-auth-page { background:linear-gradient(180deg,#080809 0%,#0d0e13 100%); min-height:100vh; }
.crew-auth-wrap { min-height:100vh; display:flex; align-items:center; justify-content:center; padding:24px; }
.crew-auth-card { width:100%; max-width:440px; background:rgba(17,18,23,.94); border:1px solid rgba(38,41,54,.8); border-radius:24px; padding:28px; box-shadow:0 30px 80px rgba(0,0,0,.45); }
.crew-auth-eyebrow { font-family:'DM Mono',monospace; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--accent); margin-bottom:12px; }
.crew-auth-title { margin:0 0 8px; font-size:34px; line-height:1; }
.crew-auth-subtitle { color:#98a0b3; font-size:15px; line-height:1.6; margin-bottom:22px; }
.crew-auth-alert { padding:12px 14px; border-radius:14px; margin-bottom:16px; font-size:14px; }
.crew-auth-alert--error   { background:rgba(255,107,107,.08); border:1px solid rgba(255,107,107,.25); color:#ffb3b3; }
.crew-auth-alert--success { background:rgba(71,255,160,.08);  border:1px solid rgba(71,255,160,.22);  color:#9be3b2; }
.crew-auth-form { display:grid; gap:14px; }
.crew-auth-field label { display:block; font-size:12px; color:#98a0b3; margin-bottom:8px; letter-spacing:.04em; text-transform:uppercase; }
.crew-auth-field input { width:100%; padding:14px 15px; border-radius:14px; border:1px solid rgba(38,41,54,.8); background:#171921; color:#f5f7fb; font-size:16px; outline:none; }
.crew-auth-field input:focus { border-color:var(--accent); }
.crew-auth-button { width:100%; padding:14px 16px; border:none; border-radius:16px; background:var(--accent); color:#000; font-weight:700; font-size:15px; cursor:pointer; }
.crew-auth-links { display:flex; justify-content:space-between; gap:14px; margin-top:16px; font-size:14px; color:#98a0b3; }
.crew-auth-links--single { justify-content:flex-start; }
.crew-auth-note { margin-top:22px; padding-top:18px; border-top:1px solid rgba(38,41,54,.8); font-size:13px; color:#98a0b3; line-height:1.6; }
.crew-auth-note--compact { margin-top:0; margin-bottom:18px; padding-top:0; border-top:0; }

/* ══════════════════════════════════════════════════════════════════════════
   CREW CONSOLE (crew dashboard — standalone)
══════════════════════════════════════════════════════════════════════════ */
.crew-shell { max-width:1200px; margin:0 auto; padding:calc(env(safe-area-inset-top) + 18px) 18px calc(env(safe-area-inset-bottom) + 28px); }
.crew-header { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; margin-bottom:20px; }
.crew-eyebrow { font-family:'DM Mono',monospace; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--accent); margin-bottom:8px; }
.crew-title { font-family:'Syne',sans-serif; font-size:38px; line-height:1.02; margin:0; }
.crew-subtitle { margin-top:8px; color:#97a0b3; max-width:620px; }
.crew-header-actions { display:flex; gap:10px; flex-wrap:wrap; }
.hero-panel,.section-card { background:rgba(18,21,32,.86); border:1px solid rgba(255,255,255,.08); border-radius:24px; backdrop-filter:blur(18px); }
.hero-panel { padding:22px; margin-bottom:18px; display:grid; grid-template-columns:1.4fr 1fr; gap:20px; align-items:end; }
.hero-kicker { font-family:'DM Mono',monospace; font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--accent); margin-bottom:10px; }
.hero-copy p { margin:0; color:#97a0b3; font-size:15px; line-height:1.6; }
.stat-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
.crew-shell .stat-card { background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.08); border-radius:18px; padding:14px; }
.crew-shell .stat-card span { display:block; font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:#97a0b3; margin-bottom:10px; }
.crew-shell .stat-card strong { font-family:'Syne',sans-serif; font-size:32px; line-height:1; }
.crew-shell .stat-card--pending strong { color:#ffd166; }
.crew-shell .stat-card--alert   strong { color:#ff6b6b; }
.section-card { padding:18px; margin-bottom:18px; }
.section-card--warning { border-color:rgba(255,107,107,.28); background:rgba(51,19,24,.55); }
.section-head { display:flex; justify-content:space-between; gap:14px; align-items:flex-end; margin-bottom:16px; }
.section-head h2 { font-family:'Syne',sans-serif; font-size:22px; margin:0; }
.section-meta { font-size:12px; color:#97a0b3; }
.call-stack,.mini-stack,.table-list,.conflict-stack { display:grid; gap:12px; }
.call-card,.mini-row,.table-row,.conflict-row { background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.08); border-radius:20px; }
.call-card { padding:16px; }
.call-card h3 { font-size:24px; line-height:1.08; margin:10px 0 6px; font-family:'Syne',sans-serif; }
.call-role { font-size:14px; font-weight:700; margin-bottom:6px; }
.call-meta,.call-venue,.conflict-meta,.mini-row__meta,.table-row__meta { color:#97a0b3; font-size:13px; line-height:1.5; }
.call-topline { display:flex; justify-content:space-between; gap:10px; align-items:center; }
.tenant-pill { display:inline-flex; align-items:center; padding:6px 10px; border-radius:999px; font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.08em; text-transform:uppercase; background:rgba(255,255,255,.06); color:#f5f7fb; }
.call-actions { display:flex; gap:10px; flex-wrap:wrap; margin-top:14px; }
.mini-row,.table-row { display:flex; justify-content:space-between; gap:14px; align-items:center; padding:14px; transition:transform .12s,border-color .12s; }
.mini-row:hover,.table-row:hover,.call-card:hover { border-color:rgba(232,255,71,.28); transform:translateY(-1px); }
.mini-row__date { font-family:'DM Mono',monospace; font-size:11px; color:var(--accent); min-width:80px; }
.mini-row__title,.table-row__title,.conflict-title { font-weight:700; font-size:15px; }
.table-row__main { flex:1; min-width:0; }
.crew-timecard-alert { margin:-4px 0 18px; padding:12px 14px; border-radius:16px; font-size:13px; line-height:1.45; }
.crew-timecard-alert.is-success { background:rgba(61,232,138,.10); border:1px solid rgba(61,232,138,.24); color:#9be3b2; }
.crew-timecard-alert.is-error { background:rgba(255,107,107,.10); border:1px solid rgba(255,107,107,.25); color:#ffb3b3; }
.timecard-stack { display:grid; gap:12px; }
.timecard-row { display:grid; grid-template-columns:92px minmax(0,1fr) auto; gap:14px; align-items:center; padding:14px; border:1px solid rgba(255,255,255,.08); border-radius:20px; background:rgba(255,255,255,.03); }
.timecard-row.is-running { border-color:rgba(232,255,71,.28); background:rgba(232,255,71,.055); }
.timecard-row__when { display:flex; flex-direction:column; justify-content:center; min-height:58px; padding:10px; border-radius:16px; border:1px solid rgba(255,255,255,.09); background:rgba(0,0,0,.14); text-align:center; }
.timecard-row__when strong { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--accent); }
.timecard-row__when span { margin-top:5px; font-family:'Syne',sans-serif; font-size:20px; line-height:1; color:var(--text); }
.timecard-row__body { min-width:0; }
.timecard-row__title { font-weight:800; font-size:16px; color:var(--text); overflow-wrap:anywhere; }
.timecard-row__meta { margin-top:4px; color:#97a0b3; font-size:13px; line-height:1.45; overflow-wrap:anywhere; }
.timecard-row__status { margin-top:7px; font-family:'DM Mono',monospace; font-size:11px; letter-spacing:.04em; text-transform:uppercase; color:var(--text3); }
.timecard-row.is-running .timecard-row__status { color:var(--accent); }
.timecard-row__actions { display:flex; gap:8px; justify-content:flex-end; align-items:center; flex-wrap:wrap; }
.timecard-row__actions form { margin:0; }
.conflict-row { display:grid; grid-template-columns:1fr 40px 1fr; gap:12px; padding:14px; }
.conflict-company { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--accent); margin-bottom:6px; }
.conflict-divider { display:flex; align-items:center; justify-content:center; color:var(--red); font-size:20px; }
html.theme-light .hero-panel,
html.theme-light .section-card {
  background: var(--surface);
  border: 1px solid rgba(255, 255, 255, .08);
  border-radius: 24px;
  backdrop-filter: blur(18px);
}
@media (max-width:960px) { .hero-panel,.crew-grid { grid-template-columns:1fr; } .crew-header { flex-direction:column; } .stat-grid { grid-template-columns:repeat(4,1fr); } }
@media (max-width:720px) { .crew-title { font-size:30px; } .hero-panel { padding:16px; gap:14px; } .stat-grid { grid-template-columns:repeat(2,1fr); } .mini-row,.table-row,.conflict-row,.timecard-row { grid-template-columns:1fr; display:grid; } .timecard-row__when { align-items:center; } .timecard-row__actions { justify-content:flex-start; } .conflict-divider { display:none; } .section-head { flex-direction:column; align-items:flex-start; } .crew-shell,.portal-shell { padding-left:12px; padding-right:12px; } }
@media (max-width:720px) { .crew-header { transition:margin-bottom .15s; } .crew-header--compact { margin-bottom:10px; } .crew-header--compact .crew-eyebrow { margin-bottom:3px; } .crew-header--compact .crew-title { font-size:20px; line-height:1.1; } .crew-header--compact .crew-subtitle { display:none; } }
@media (max-width:720px) and (prefers-reduced-motion:reduce) { .crew-header { transition:none; } }

/* ══════════════════════════════════════════════════════════════════════════
   CREW PORTAL (magic link — standalone)
══════════════════════════════════════════════════════════════════════════ */
.portal-shell { max-width:980px; margin:0 auto; padding:calc(env(safe-area-inset-top) + 18px) 18px calc(env(safe-area-inset-bottom) + 28px); }
.portal-shell--expired { min-height:100vh; display:grid; place-items:center; }
.expired-card { background:#141821; border:1px solid rgba(255,255,255,.08); border-radius:28px; padding:36px; text-align:center; max-width:420px; }
.expired-icon { font-size:42px; margin-bottom:8px; }
.portal-hero { background:linear-gradient(135deg,rgba(232,255,71,.14),rgba(20,24,33,.96) 46%); border:1px solid rgba(255,255,255,.08); border-radius:28px; padding:22px; margin-bottom:18px; }
.portal-brand { font-family:'DM Mono',monospace; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--accent); }
.portal-hero__meta { font-size:12px; color:#9ca6ba; margin-top:6px; }
.portal-hero__content { display:flex; justify-content:space-between; gap:16px; align-items:flex-end; margin-top:18px; }
.portal-kicker { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:#9ca6ba; margin-bottom:10px; }
.portal-hero h1 { font-family:'Syne',sans-serif; font-size:36px; line-height:1.04; margin:0 0 6px; }
.portal-hero p { margin:0; color:#9ca6ba; }
.portal-alert { padding:14px 16px; border-radius:18px; margin-bottom:16px; border:1px solid rgba(255,255,255,.08); }
.portal-alert.is-success { background:rgba(71,255,160,.12); color:#47ffa0; border-color:rgba(71,255,160,.28); }
.portal-alert.is-danger  { background:rgba(255,107,107,.12); color:#ff6b6b; border-color:rgba(255,107,107,.28); }
.portal-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:18px; margin-bottom:18px; }
.portal-card { background:rgba(20,24,33,.92); border:1px solid rgba(255,255,255,.08); border-radius:24px; padding:18px; margin-bottom:18px; }
.portal-card--warning { border-color:rgba(255,209,102,.28); background:rgba(44,34,15,.55); }
.portal-card__head { display:flex; justify-content:space-between; gap:12px; align-items:flex-end; margin-bottom:16px; }
.portal-card__head h2 { font-family:'Syne',sans-serif; font-size:24px; margin:0; }
.portal-card__head span { font-size:12px; color:#9ca6ba; }
.call-block { display:grid; gap:14px; }
.call-time { font-family:'Syne',sans-serif; font-size:54px; line-height:.95; color:var(--accent); }
.call-notes { display:grid; gap:10px; color:#9ca6ba; line-height:1.6; }
.response-stack,.message-form { display:grid; gap:10px; }
.btn-state { cursor:default; background:#1b2130; border:1px solid rgba(255,255,255,.08); }
.btn-state.is-confirmed { background:rgba(71,255,160,.12); color:#47ffa0; border-color:rgba(71,255,160,.28); }
.btn-state.is-declined  { background:rgba(255,107,107,.12); color:#ff6b6b; border-color:rgba(255,107,107,.28); }
.btn-inline { display:inline-flex; width:auto; }
.detail-stack,.schedule-stack { display:grid; gap:12px; color:#9ca6ba; line-height:1.6; }
.conflict-list,.contact-grid { display:grid; gap:12px; }
.conflict-item,.message-bubble,.contact-card { background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.08); border-radius:18px; padding:14px; }
.conflict-item__title,.contact-name { font-weight:700; color:#f5f7fb; }
.conflict-item__meta,.contact-link,.contact-role { font-size:13px; color:#9ca6ba; }
.schedule-day { padding:14px; border-radius:18px; background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.08); }
.schedule-day__date { font-weight:700; margin-bottom:12px; }
.schedule-lines { display:grid; gap:10px; }
.schedule-lines--grid { grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }
.schedule-line { display:flex; justify-content:space-between; gap:12px; padding-bottom:10px; border-bottom:1px solid rgba(255,255,255,.05); }
.schedule-line:last-child { border-bottom:none; padding-bottom:0; }
.schedule-line span { color:#9ca6ba; font-size:13px; }
.schedule-note { margin-top:10px; color:#9ca6ba; font-size:13px; }
.contact-grid { grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); }
.contact-role { font-family:'DM Mono',monospace; letter-spacing:.08em; text-transform:uppercase; }
.message-bubble { color:#9ca6ba; line-height:1.6; margin-bottom:12px; }
.message-bubble strong { display:block; color:#f5f7fb; margin-bottom:4px; }
.message-bubble.is-reply { background:rgba(71,180,255,.1); }
.message-box { width:100%; min-height:110px; padding:14px; border-radius:18px; border:1px solid rgba(255,255,255,.08); background:#1b2130; color:#f5f7fb; font:inherit; resize:vertical; }
@media (max-width:840px) { .portal-grid { grid-template-columns:1fr; } .portal-hero__content { flex-direction:column; align-items:flex-start; } .call-time { font-size:44px; } }
@media (max-width:840px) { .env-banner { align-items:flex-start; flex-direction:column; padding: 10px 14px; } .env-banner-active .app-shell { padding-top: 64px; } }

/* ══════════════════════════════════════════════════════════════════════════
   RUN OF SHOW
══════════════════════════════════════════════════════════════════════════ */
.ros-shell {
  --ros-sticky-bg: rgba(9,10,13,.92);
  --ros-sticky-border: rgba(255,255,255,.08);
  --ros-chip-bg: rgba(255,255,255,.06);
  --ros-chip-border: rgba(255,255,255,.08);
  --ros-card-bg: linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.02));
  --ros-soft-bg: rgba(255,255,255,.03);
  --ros-soft-strong-bg: rgba(0,0,0,.22);
  --ros-soft-border: rgba(255,255,255,.08);
  --ros-soft-border-subtle: rgba(255,255,255,.06);
  --ros-soft-text: var(--text2);
  width:100%;
  max-width:none;
  margin:0 auto;
  padding:12px 16px calc(110px + env(safe-area-inset-bottom));
}
.ros-shell .crew-sticky { position:sticky; top:12px; z-index:20; margin:0 0 16px; padding:calc(8px + env(safe-area-inset-top)) 16px 10px; background:var(--ros-sticky-bg); backdrop-filter:blur(14px); border:1px solid var(--ros-sticky-border); border-radius:24px; }
.ros-shell .crew-header-main { display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; }
.ros-shell .crew-header-copy { display:flex; align-items:baseline; gap:10px; min-width:0; flex-wrap:wrap; }
.ros-shell .crew-eyebrow { font-family:'DM Mono',monospace; font-size:9px; letter-spacing:.16em; text-transform:uppercase; color:var(--accent); }
.ros-shell .crew-title { font-size:24px; line-height:1; margin:0; font-weight:700; letter-spacing:-.03em; }
.ros-shell .crew-subline { display:flex; align-items:center; gap:8px; color:var(--text2); font-size:12px; flex-wrap:wrap; }
.ros-shell .crew-header-meta { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-top:8px; }
.ros-shell .crew-header-chips { display:flex; gap:8px; flex-wrap:wrap; }
.ros-shell .crew-chip { display:inline-flex; align-items:center; gap:6px; padding:5px 9px; border-radius:999px; background:var(--ros-chip-bg); border:1px solid var(--ros-chip-border); font-family:'DM Mono',monospace; font-size:9px; letter-spacing:.08em; text-transform:uppercase; color:var(--text2); }
.ros-shell .crew-card { background:var(--ros-card-bg); border:1px solid var(--ros-soft-border); border-radius:28px; padding:18px; box-shadow:none; color:var(--text); }
.ros-shell .crew-card + .crew-card { margin-top:14px; }
.ros-shell .crew-kicker { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--text3); display:flex; align-items:center; gap:8px; }
.ros-shell .crew-kicker-dot { width:6px; height:6px; border-radius:999px; background:var(--accent); display:inline-block; }
.ros-shell .hero-card { padding:20px; border-radius:30px; background:radial-gradient(circle at top left, rgba(232,255,71,.16), transparent 45%),var(--ros-card-bg); }
.ros-shell .hero-time { font-size:44px; line-height:1; font-weight:700; letter-spacing:-.04em; margin:10px 0 4px; }
.ros-shell .hero-label { color:var(--text2); font-size:14px; }
.ros-shell .hero-brief { margin-top:14px; padding:14px; border-radius:20px; background:var(--ros-soft-strong-bg); border:1px solid var(--ros-soft-border-subtle); color:var(--ros-soft-text); line-height:1.6; font-size:13px; }
.ros-shell .timeline-item,
.ros-shell .file-item,
.ros-shell .contact-item,
.ros-shell .update-item,
.ros-shell .doc-item,
.ros-shell .pack-item { display:flex; gap:12px; align-items:flex-start; padding:12px 0; border-top:1px solid rgba(255,255,255,.08); }
.ros-shell .timeline-item:first-of-type,
.ros-shell .file-item:first-of-type,
.ros-shell .contact-item:first-of-type,
.ros-shell .update-item:first-of-type,
.ros-shell .doc-item:first-of-type,
.ros-shell .pack-item:first-of-type { border-top:none; padding-top:0; }
.ros-shell .timeline-badge,
.ros-shell .file-badge,
.ros-shell .contact-badge,
.ros-shell .pack-badge { width:42px; height:42px; border-radius:18px; display:flex; align-items:center; justify-content:center; font-family:'DM Mono',monospace; font-size:10px; font-weight:600; letter-spacing:.08em; flex-shrink:0; background:var(--ros-soft-bg); border:1px solid var(--ros-soft-border); color:var(--text2); }
.ros-shell .timeline-item.is-next .timeline-badge,
.ros-shell .contact-call { background:var(--accent); color:#000; border-color:transparent; }
/* Crew-portal ROS personalization: highlight the viewer's own calls, mute the rest. */
.ros-shell .timeline-item.is-crew-relevant { padding-left:12px; border-left:3px solid var(--accent); background:rgba(232,255,71,.05); border-radius:0 10px 10px 0; }
.ros-shell .timeline-item.is-crew-booked { border-left-color:var(--green); }
.ros-shell .timeline-item.is-crew-pending { border-left-color:var(--orange); }
.ros-shell .timeline-item.is-crew-available,
.ros-shell .timeline-item.is-crew-call { border-left-color:var(--accent); }
.ros-shell .timeline-item.is-next-for-you { background:rgba(232,255,71,.12); }
.ros-shell .timeline-item.is-next-for-you .timeline-badge { background:var(--accent); color:#000; border-color:transparent; }
.ros-shell .timeline-item.is-crew-muted { opacity:.5; }
.ros-shell .timeline-item.is-crew-relevant .timeline-badge,
.ros-shell .timeline-item.is-crew-muted .timeline-badge { width:auto; min-width:42px; height:auto; min-height:42px; padding:4px 8px; font-size:8px; line-height:1.25; white-space:normal; text-align:center; }
.crew-rel-pill { display:inline-block; margin-left:8px; padding:2px 8px; border-radius:999px; font-family:'DM Mono',monospace; font-size:9px; letter-spacing:.08em; text-transform:uppercase; vertical-align:middle; }
.crew-rel-pill--booked { background:rgba(61,232,138,.18); color:var(--green); }
.crew-rel-pill--available { background:rgba(232,255,71,.2); color:#1d1500; }
.crew-rel-pill--pending { background:rgba(255,199,71,.16); color:#f6c24b; }
.crew-rel-pill--call { background:rgba(232,255,71,.14); color:var(--accent); }
.ros-shell .timeline-title,
.ros-shell .file-title,
.ros-shell .contact-title,
.ros-shell .doc-title,
.ros-shell .pack-title { font-size:15px; font-weight:600; line-height:1.35; color:var(--text); }
.ros-shell .timeline-meta,
.ros-shell .file-meta,
.ros-shell .contact-meta,
.ros-shell .update-meta,
.ros-shell .doc-meta,
.ros-shell .pack-meta { font-size:12px; color:var(--text3); margin-top:4px; line-height:1.5; }
.ros-shell .timeline-time { margin-left:auto; text-align:right; font-family:'DM Mono',monospace; font-size:12px; color:var(--text2); line-height:1.5; min-width:92px; position:relative; z-index:2; }
.ros-shell .ros-milestone-edit-form { display:flex; justify-content:flex-end; margin:0 0 6px; }
.ros-shell .ros-milestone-edit { display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; margin-left:auto; margin-bottom:6px; border-radius:999px; border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.08); color:#f6f8ff; text-decoration:none; font-family:inherit; font-size:12px; line-height:1; cursor:pointer; position:relative; z-index:3; pointer-events:auto; transition:border-color .14s, background .14s, color .14s, transform .14s; }
.ros-shell .ros-milestone-edit:hover { background:rgba(255,255,255,.14); border-color:rgba(255,255,255,.22); color:#ffffff; }
.ros-shell .ros-milestone-edit:active { transform:scale(.97); }
.ros-shell .ros-milestone-edit.is-active { color:var(--accent); border-color:var(--accent); }
.ros-shell .update-pill { display:inline-flex; padding:4px 8px; border-radius:999px; background:var(--ros-chip-bg); border:1px solid var(--ros-chip-border); font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--text2); margin-top:8px; }
.ros-shell .file-open,
.ros-shell .doc-open { display:inline-flex; align-items:center; justify-content:center; padding:9px 12px; border-radius:14px; background:var(--ros-chip-bg); border:1px solid var(--ros-chip-border); color:var(--text); text-decoration:none; font-size:12px; white-space:nowrap; }
.ros-shell .contact-actions { margin-left:auto; display:flex; gap:8px; }
.ros-shell .contact-call { width:42px; height:42px; border-radius:18px; display:flex; align-items:center; justify-content:center; text-decoration:none; font-size:16px; }
.ros-shell .form-grid { display:grid; gap:10px; }
.ros-shell .form-grid.two { grid-template-columns:1fr 1fr; }
.ros-shell .ros-inline-editor[hidden] { display:none !important; }
.ros-shell .crew-card .field label { font-size:11px; text-transform:uppercase; letter-spacing:.12em; color:var(--text3); }
.ros-shell .crew-card .field input,
.ros-shell .crew-card .field textarea,
.ros-shell .crew-card .field select { border-radius:16px; padding:12px 14px; background:var(--ros-soft-strong-bg); border:1px solid var(--ros-soft-border); color:var(--text); width:100%; }
.ros-shell .crew-grid { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr); gap:20px; align-items:start; }
.ros-shell .crew-grid--internal { grid-template-columns:minmax(280px,.82fr) minmax(0,1.18fr); }
.ros-shell .mobile-nav { position:fixed; left:0; right:0; bottom:0; z-index:30; padding:10px 14px calc(12px + env(safe-area-inset-bottom)); background:var(--ros-sticky-bg); backdrop-filter:blur(18px); border-top:1px solid var(--ros-soft-border); }
.ros-shell .mobile-nav-grid { max-width:460px; margin:0 auto; display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
.ros-shell .mobile-nav a { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; padding:10px 8px; border-radius:18px; text-decoration:none; font-size:11px; color:var(--text3); border:1px solid var(--ros-soft-border); background:var(--ros-soft-bg); }
.ros-shell .mobile-nav a.active { background:var(--accent); border-color:transparent; color:#000; font-weight:600; }
.ros-shell .pill-link { display:inline-flex; align-items:center; gap:8px; padding:9px 12px; border-radius:999px; background:var(--ros-chip-bg); border:1px solid var(--ros-chip-border); text-decoration:none; color:var(--text); font-size:12px; }
.ros-shell .section-anchor { scroll-margin-top:112px; }
.ros-shell .desktop-actions { display:flex; gap:8px; flex-wrap:wrap; }
.ros-shell .confirm-row { display:grid; grid-template-columns:1fr auto; gap:10px; align-items:center; padding:10px 0; border-top:1px solid var(--ros-soft-border); }
.ros-shell .confirm-status { display:inline-flex; padding:5px 10px; border-radius:999px; font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.1em; text-transform:uppercase; }
.ros-shell .st-pending { background:rgba(255,255,255,.06); color:var(--text2); }
.ros-shell .st-confirmed { background:rgba(71,255,160,.18); color:var(--green); }
.ros-shell .st-declined { background:rgba(255,80,80,.18); color:#ff8f8f; }
.ros-shell .perm-grid { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.ros-shell .perm-grid label { display:flex; gap:8px; align-items:center; font-size:12px; color:var(--text2); padding:8px 10px; border-radius:14px; background:var(--ros-soft-bg); border:1px solid var(--ros-soft-border); }
.ros-shell .schedule-cluster { padding:14px 0; border-top:1px solid var(--ros-soft-border); }
.ros-shell .schedule-cluster:first-of-type { border-top:none; padding-top:0; }
.ros-shell .schedule-cluster-head { display:flex; justify-content:space-between; gap:12px; align-items:center; margin-bottom:10px; }
.ros-shell .schedule-cluster-title { font-family:'Syne',sans-serif; font-size:16px; font-weight:700; }
.ros-shell .schedule-cluster-meta { font-size:12px; color:var(--text3); }
.ros-shell .timeline-copy { display:flex; flex-direction:column; gap:4px; }
.ros-shell .timeline-copy-note { font-size:11px; color:var(--text3); line-height:1.45; }
.ros-shell .ros-room-detail { margin:10px 0 2px; padding:12px 14px; border-radius:16px; background:var(--ros-soft-bg); border:1px solid var(--ros-soft-border); display:grid; gap:12px; }
.ros-shell .ros-room-detail__eyebrow { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--text3); }
.ros-shell .ros-room-detail__room + .ros-room-detail__room { padding-top:12px; border-top:1px solid var(--ros-soft-border); }
.ros-shell .ros-room-detail__name { font-size:13px; font-weight:600; color:var(--text); margin-bottom:6px; }
.ros-shell .ros-room-detail__row { display:flex; justify-content:space-between; gap:12px; align-items:baseline; padding:3px 0; }
.ros-shell .ros-room-detail__label { font-size:12px; color:var(--text2); }
.ros-shell .ros-room-detail__time { font-family:'DM Mono',monospace; font-size:12px; color:var(--text2); white-space:nowrap; }
.ros-shell .crew-call-grid { display:grid; gap:10px; }
.ros-shell .crew-call-card { padding:12px; border-radius:18px; background:var(--ros-soft-bg); border:1px solid var(--ros-soft-border); }
.ros-shell .crew-call-card + .crew-call-card { margin-top:10px; }
.ros-shell .crew-call-header { display:flex; justify-content:space-between; gap:12px; align-items:center; margin-bottom:10px; }
.ros-shell .crew-call-title { font-size:14px; font-weight:600; }
.ros-shell .crew-call-meta { font-size:12px; color:var(--text3); }
.ros-shell .crew-call-list { display:flex; flex-direction:column; gap:8px; }
.ros-shell .crew-call-row { display:flex; justify-content:space-between; gap:12px; align-items:center; font-size:13px; }
.ros-shell .crew-call-row span:last-child { color:var(--text3); font-size:12px; }
.ros-shell .warehouse-summary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:14px; }
.ros-shell .warehouse-stat { padding:12px; border-radius:18px; background:var(--ros-soft-bg); border:1px solid var(--ros-soft-border); }
.ros-shell .warehouse-stat-label { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--text3); margin-bottom:6px; }
.ros-shell .warehouse-stat-value { font-family:'Syne',sans-serif; font-size:24px; line-height:1; font-weight:700; }
.ros-shell .warehouse-alert { padding:12px 0; border-top:1px solid var(--ros-soft-border); }
.ros-shell .warehouse-alert:first-of-type { border-top:none; padding-top:0; }
.ros-shell .warehouse-alert-title { display:flex; justify-content:space-between; gap:12px; align-items:center; font-size:14px; font-weight:600; }
.ros-shell .warehouse-alert-meta { font-size:12px; color:var(--text3); margin-top:6px; line-height:1.5; }
.ros-shell .desktop-stack { display:flex; flex-direction:column; gap:16px; min-width:0; width:100%; }
.ros-shell .desktop-stack--ops { align-self:start; }
.ros-shell .desktop-stack--crew { align-self:start; }
.ros-shell .desktop-stack .crew-card + .crew-card { margin-top:0; }
.ros-shell .ros-section-copy { margin-top:10px; }
.ros-shell .ros-inline-link { color:var(--accent); text-decoration:none; }
.ros-shell .ros-block-gap { margin-top:14px; }
.ros-shell .ros-field-note { grid-column:1 / -1; font-size:12px; color:var(--text3); line-height:1.5; }
.ros-shell .ros-inline-actions { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.ros-shell .ros-callout { margin-top:12px; padding:12px 14px; border-radius:18px; border:1px solid var(--ros-soft-border); background:var(--ros-soft-bg); font-size:13px; line-height:1.5; color:var(--text2); }
.ros-shell .ros-callout-warning { border-color:rgba(255,209,102,.24); background:rgba(255,209,102,.10); color:#ffd166; }
.ros-shell .ros-summary-grid { display:grid; gap:10px; }
.ros-shell .ros-summary-grid--two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.ros-shell .ros-summary-grid--three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.ros-shell .ros-summary-panel { padding:14px; border-radius:20px; background:var(--ros-soft-bg); border:1px solid var(--ros-soft-border); min-width:0; }
.ros-shell .ros-summary-label { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--text3); margin-bottom:8px; }
.ros-shell .ros-summary-value { font-family:'Syne',sans-serif; font-size:24px; line-height:1.05; font-weight:700; color:var(--text); }
.ros-shell .ros-summary-meta { margin-top:6px; font-size:12px; line-height:1.5; color:var(--text3); }
.ros-shell .ros-summary-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:14px; align-items:center; padding:12px 0; border-top:1px solid var(--ros-soft-border); }
.ros-shell .ros-summary-row:first-of-type { border-top:none; padding-top:0; }
.ros-shell .ros-summary-row-title { font-size:14px; font-weight:600; color:var(--text); line-height:1.4; }
.ros-shell .ros-summary-row-meta { margin-top:4px; font-size:12px; line-height:1.5; color:var(--text3); }
.ros-shell .ros-summary-row-qty { font-family:'Syne',sans-serif; font-size:22px; line-height:1; font-weight:700; color:var(--text); }
.ros-shell .ros-inline-upload { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:end; }
.ros-shell .ros-inline-upload__picker {
  display:grid;
  gap:8px;
  min-width:0;
  padding:14px;
  border-radius:18px;
  background:var(--ros-soft-bg);
  border:1px solid var(--ros-soft-border);
}
.ros-shell .ros-inline-upload__eyebrow {
  font-family:'DM Mono',monospace;
  font-size:10px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--text3);
}
.ros-shell .ros-inline-upload__title {
  font-family:'Syne',sans-serif;
  font-size:16px;
  line-height:1.1;
  font-weight:700;
  color:var(--text);
}
.ros-shell .ros-inline-upload__meta {
  font-size:12px;
  line-height:1.5;
  color:var(--text3);
}
.ros-shell .ros-inline-upload__filename {
  min-height:18px;
  font-size:12px;
  line-height:1.4;
  color:var(--text2);
}
.ros-shell .ros-inline-upload__picker input[type="file"] {
  width:100%;
  min-height:44px;
  border-radius:14px;
  padding:10px 12px;
  background:var(--ros-soft-strong-bg);
  border:1px solid var(--ros-soft-border);
  color:var(--text2);
  font-size:14px;
}
.ros-shell .ros-inline-upload__picker input[type="file"]::file-selector-button {
  margin-right:10px;
  border:none;
  border-radius:999px;
  padding:8px 12px;
  background:var(--surface2);
  color:var(--text);
  font-size:12px;
  font-weight:600;
  cursor:pointer;
}
.ros-shell .ros-inline-upload__actions { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.ros-shell .ros-timeline { margin-top:14px; display:flex; flex-direction:column; gap:14px; }
.ros-shell .ros-timeline-day { padding:14px; border-radius:22px; background:var(--ros-soft-bg); border:1px solid var(--ros-soft-border); }
.ros-shell .ros-timeline-day-head { display:flex; justify-content:space-between; gap:12px; align-items:center; margin-bottom:12px; }
.ros-shell .ros-timeline-day-title { font-family:'Syne',sans-serif; font-size:16px; font-weight:700; }
.ros-shell .ros-timeline-day-meta { font-size:12px; color:var(--text3); }
.ros-shell .ros-timeline-lanes { display:flex; flex-direction:column; gap:10px; }
.ros-shell .ros-timeline-row { display:grid; grid-template-columns:minmax(0,220px) minmax(0,1fr); gap:12px; align-items:center; }
.ros-shell .ros-timeline-copy { min-width:0; }
.ros-shell .ros-timeline-role { font-size:13px; font-weight:600; color:var(--text); }
.ros-shell .ros-timeline-meta { margin-top:4px; font-size:11px; color:var(--text3); line-height:1.4; }
.ros-shell .ros-timeline-track { position:relative; min-height:42px; border-radius:18px; border:1px solid var(--ros-soft-border); background:
  repeating-linear-gradient(90deg, transparent 0, transparent calc(12.5% - 1px), rgba(255,255,255,.06) calc(12.5% - 1px), rgba(255,255,255,.06) 12.5%),
  var(--ros-soft-strong-bg); overflow:hidden; }
.ros-shell .ros-timeline-bar { position:absolute; top:7px; bottom:7px; min-width:28px; border-radius:14px; display:flex; align-items:center; padding:0 12px; background:rgba(232,255,71,.82); color:#101217; font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.08em; text-transform:uppercase; overflow:hidden; white-space:nowrap; border:1px solid rgba(0,0,0,.12); }
.ros-shell .ros-timeline-bar.is-warning { background:rgba(255,209,102,.9); }
.ros-shell .ros-timeline-bar span { overflow:hidden; text-overflow:ellipsis; }
/* Time-of-day hero atmospheres */
.ros-shell .hero-card--morning  { background:radial-gradient(circle at 88% -8%, rgba(255,168,55,.18), transparent 52%), radial-gradient(circle at top left, rgba(232,255,71,.14), transparent 45%), var(--ros-card-bg); }
.ros-shell .hero-card--afternoon { background:radial-gradient(circle at 88% -8%, rgba(70,175,255,.14), transparent 52%), radial-gradient(circle at top left, rgba(232,255,71,.14), transparent 45%), var(--ros-card-bg); }
.ros-shell .hero-card--night    { background:radial-gradient(circle at 88% -8%, rgba(130,65,255,.18), transparent 52%), radial-gradient(circle at top left, rgba(55,55,200,.12), transparent 45%), var(--ros-card-bg); }
/* Admin section utilities */
.ros-shell .ros-admin-block { border-top:1px solid var(--ros-soft-border); padding-top:14px; }
.ros-shell .ros-admin-note { margin:10px 0 12px; font-size:12px; color:var(--text3); line-height:1.6; }
.ros-shell .ros-update-message { margin-top:8px; font-size:14px; line-height:1.7; color:var(--text2); }
.ros-shell .ros-share-group { display:flex; gap:14px; flex-wrap:wrap; padding-top:4px; }
.ros-shell .ros-share-label { display:flex; align-items:center; gap:8px; font-size:13px; color:var(--text2); }
.ros-shell .ros-card-actions { margin-top:12px; }
/* ROS utility classes */
.text-dim { color:var(--text3); font-weight:400; }
.text-warning { color:#ffd166; }
.ros-pack-sep { padding-top:14px; border-top:1px solid rgba(255,255,255,.08); }
.ros-pack-sep-head { display:flex; justify-content:space-between; gap:12px; align-items:center; margin-bottom:8px; }
.ros-glass-panel { padding:12px; border-radius:18px; background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.08); }
.ros-share-hint { margin-top:6px; font-size:12px; color:var(--text3); }
.ros-crew-call-head { margin-top:10px; font-size:15px; font-weight:600; }
.ros-update-label { color:var(--text); display:block; margin-bottom:6px; }
.ros-shell .ros-crew-box { margin-top:14px; padding:14px; border-radius:20px; background:rgba(0,0,0,.22); border:1px solid var(--ros-soft-border-subtle); }
/* Fix double-margin on crew-call-cards inside grid gap */
.ros-shell .crew-call-card + .crew-call-card { margin-top:0; }
html.theme-light .ros-shell {
  --ros-sticky-bg: rgba(255,255,255,.96);
  --ros-sticky-border: rgba(10,10,10,.08);
  --ros-chip-bg: rgba(255,255,255,.92);
  --ros-chip-border: rgba(10,10,10,.08);
  --ros-card-bg: linear-gradient(180deg,#ffffff,#f6f7fb);
  --ros-soft-bg: #f4f6fa;
  --ros-soft-strong-bg: #f4f6fa;
  --ros-soft-border: rgba(10,10,10,.08);
  --ros-soft-border-subtle: rgba(10,10,10,.08);
  --ros-soft-text: #505768;
}
html.theme-light .ros-shell .crew-chip { color:#2b2f3a; }
html.theme-light .ros-shell .crew-card { color:#161922; }
html.theme-light .ros-shell .hero-card { background:radial-gradient(circle at top left, rgba(232,255,71,.18), transparent 42%),var(--ros-card-bg); }
html.theme-light .ros-shell .hero-label { color:#505768; }
html.theme-light .ros-shell .hero-brief { background:#f4f6fa; border-color:rgba(10,10,10,.08); color:#505768; }
html.theme-light .ros-shell .timeline-item,
html.theme-light .ros-shell .file-item,
html.theme-light .ros-shell .contact-item,
html.theme-light .ros-shell .update-item,
html.theme-light .ros-shell .doc-item,
html.theme-light .ros-shell .pack-item { border-top-color:rgba(10,10,10,.08); }
html.theme-light .ros-shell .timeline-badge,
html.theme-light .ros-shell .file-badge,
html.theme-light .ros-shell .contact-badge,
html.theme-light .ros-shell .pack-badge { background:#f4f6fa; border-color:rgba(10,10,10,.08); color:#505768; }
html.theme-light .ros-shell .timeline-title,
html.theme-light .ros-shell .file-title,
html.theme-light .ros-shell .contact-title,
html.theme-light .ros-shell .doc-title,
html.theme-light .ros-shell .pack-title { color:#161922; }
html.theme-light .ros-shell .timeline-meta,
html.theme-light .ros-shell .file-meta,
html.theme-light .ros-shell .contact-meta,
html.theme-light .ros-shell .update-meta,
html.theme-light .ros-shell .doc-meta,
html.theme-light .ros-shell .pack-meta,
html.theme-light .ros-shell .schedule-cluster-meta,
html.theme-light .ros-shell .timeline-copy-note,
html.theme-light .ros-shell .crew-call-meta,
html.theme-light .ros-shell .crew-call-row span:last-child,
html.theme-light .ros-shell .warehouse-stat-label,
html.theme-light .ros-shell .warehouse-alert-meta { color:#60697b; }
html.theme-light .ros-shell .timeline-time,
html.theme-light .ros-shell .perm-grid label,
html.theme-light .ros-shell .hero-brief,
html.theme-light .ros-shell .update-pill { color:#505768; }
html.theme-light .ros-shell .update-pill,
html.theme-light .ros-shell .file-open,
html.theme-light .ros-shell .doc-open,
html.theme-light .ros-shell .pill-link,
html.theme-light .ros-shell .crew-call-card,
html.theme-light .ros-shell .warehouse-stat,
html.theme-light .ros-shell .perm-grid label,
html.theme-light .ros-shell .ros-timeline-day { background:#f4f6fa; border-color:rgba(10,10,10,.08); }
html.theme-light .ros-shell .ros-milestone-edit { background:#f4f6fa; border-color:rgba(10,10,10,.08); color:#505768; }
html.theme-light .ros-shell .ros-milestone-edit:hover { background:#eceff6; border-color:rgba(10,10,10,.14); color:#161922; }
html.theme-light .ros-shell .crew-card .field label { color:#60697b; }
html.theme-light .ros-shell .crew-card .field input,
html.theme-light .ros-shell .crew-card .field textarea,
html.theme-light .ros-shell .crew-card .field select { background:#f8f9fc; border-color:rgba(10,10,10,.10); color:#161922; }
html.theme-light .ros-shell .confirm-row,
html.theme-light .ros-shell .schedule-cluster,
html.theme-light .ros-shell .warehouse-alert { border-top-color:rgba(10,10,10,.08); }
html.theme-light .ros-shell .st-pending { background:#f4f6fa; }
html.theme-light .ros-shell .ros-callout { background:#f4f6fa; border-color:rgba(10,10,10,.08); color:#505768; }
html.theme-light .ros-shell .ros-callout-warning { background:rgba(255,209,102,.16); border-color:rgba(224,168,0,.24); color:#9a6900; }
html.theme-light .ros-shell .ros-timeline-day-meta,
html.theme-light .ros-shell .ros-timeline-meta,
html.theme-light .ros-shell .ros-summary-label,
html.theme-light .ros-shell .ros-summary-meta,
html.theme-light .ros-shell .ros-summary-row-meta,
html.theme-light .ros-shell .ros-inline-upload__eyebrow,
html.theme-light .ros-shell .ros-inline-upload__meta { color:#60697b; }
html.theme-light .ros-shell .ros-inline-upload__picker input[type="file"] {
  background:#f8f9fc;
  border-color:rgba(10,10,10,.10);
  color:#161922;
}
html.theme-light .ros-shell .ros-inline-upload__picker input[type="file"]::file-selector-button {
  background:#e8ebf4;
  color:#161922;
}
html.theme-light .ros-shell .ros-timeline-track {
  border-color:rgba(10,10,10,.08);
  background:
    repeating-linear-gradient(90deg, transparent 0, transparent calc(12.5% - 1px), rgba(10,10,10,.06) calc(12.5% - 1px), rgba(10,10,10,.06) 12.5%),
    #f8f9fc;
}
html.theme-light .ros-shell .hero-card--morning  { background:radial-gradient(circle at 88% -8%, rgba(255,155,40,.13), transparent 52%), radial-gradient(circle at top left, rgba(232,255,71,.16), transparent 42%), var(--ros-card-bg); }
html.theme-light .ros-shell .hero-card--afternoon { background:radial-gradient(circle at 88% -8%, rgba(50,155,255,.10), transparent 52%), radial-gradient(circle at top left, rgba(232,255,71,.14), transparent 42%), var(--ros-card-bg); }
html.theme-light .ros-shell .hero-card--night    { background:radial-gradient(circle at 88% -8%, rgba(110,55,220,.12), transparent 52%), radial-gradient(circle at top left, rgba(40,45,170,.10), transparent 45%), var(--ros-card-bg); }
html.theme-light .ros-shell .ros-admin-block { border-top-color:rgba(10,10,10,.08); }
html.theme-light .ros-shell .ros-crew-box { background:#f0f2f8; border-color:rgba(10,10,10,.08); }
@media (min-width:860px) {
  .ros-shell { max-width:none; padding:16px 20px 40px; }
  .ros-shell .mobile-nav { display:none; }
  .ros-shell .crew-grid--crew-portal { grid-template-columns:minmax(0,1fr) minmax(280px,.9fr) minmax(280px,.9fr); gap:16px; }
  .ros-shell .crew-grid--internal { grid-template-columns:minmax(260px,.84fr) minmax(0,1.16fr); }
}
@media (max-width:1120px) {
  .ros-shell .crew-grid { grid-template-columns:minmax(0,1fr) minmax(280px,.9fr); gap:16px; }
  .ros-shell .crew-grid--crew-portal { grid-template-columns:minmax(0,1fr) minmax(280px,.9fr); }
}
@media (max-width:720px) {
  .ros-shell .desktop-actions { display:none; }
  .ros-shell .crew-grid { grid-template-columns:1fr; }
  .ros-shell .crew-header-main { align-items:flex-start; }
  .ros-shell .crew-header-copy { flex-direction:column; align-items:flex-start; gap:6px; }
  .ros-shell .crew-title { font-size:22px; }
  .ros-shell .form-grid.two,
  .ros-shell .perm-grid,
  .ros-shell .ros-timeline-row { grid-template-columns:1fr; }
  .ros-shell .ros-summary-grid--two,
  .ros-shell .ros-summary-grid--three { grid-template-columns:1fr; }
  .ros-shell .ros-inline-upload { grid-template-columns:1fr; align-items:stretch; }
  .ros-shell .timeline-time { min-width:72px; font-size:11px; }
  .ros-shell .ros-inline-actions { flex-direction:column; align-items:stretch; }
  .ros-shell .crew-sticky { position:relative; top:auto; z-index:auto; border-radius:18px; }
  .ros-shell .hero-card { border-radius:22px; padding:16px; }
  .ros-shell .hero-time { font-size:36px; }
  .ros-shell .crew-card { border-radius:22px; padding:14px; }
}
@media (max-width:600px) {
  .ros-shell .crew-sticky { padding-left:14px; padding-right:14px; }
  .ros-shell .hero-time { font-size:30px; }
  .ros-shell .hero-card { border-radius:18px; padding:14px; }
  .ros-shell .crew-card { border-radius:18px; padding:12px; }
  .ros-shell .timeline-badge,
  .ros-shell .file-badge,
  .ros-shell .contact-badge,
  .ros-shell .pack-badge { width:36px; height:36px; border-radius:14px; font-size:9px; }
  .ros-shell .timeline-item,
  .ros-shell .file-item,
  .ros-shell .contact-item,
  .ros-shell .update-item,
  .ros-shell .doc-item,
  .ros-shell .pack-item { gap:10px; padding:10px 0; }
  .ros-shell .crew-chip { padding:4px 8px; font-size:8px; }
}
@media (max-width:720px) { .ros-shell .crew-pull-sheet-card:not(.is-expanded) .crew-pull-sheet-row--overflow { display:none; } .pull-sheet-toggle { display:flex; width:100%; justify-content:center; align-items:center; gap:6px; margin-top:14px; padding:10px 14px; border-radius:14px; border:1px solid rgba(255,255,255,.1); background:rgba(255,255,255,.04); color:var(--text2); font:inherit; font-size:13px; cursor:pointer; } .pull-sheet-toggle:hover { background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.18); color:var(--text); } }

/* ══════════════════════════════════════════════════════════════════════════
   SHOW COMMS
══════════════════════════════════════════════════════════════════════════ */
.comms-shell { width:100%; max-width:none; }
.comms-hero { display:flex; justify-content:space-between; gap:18px; flex-wrap:wrap; padding:20px 22px; border-radius:28px; border:1px solid var(--border); background:linear-gradient(180deg,var(--surface),var(--surface2)); margin-bottom:16px; }
.comms-hero__copy { min-width:0; flex:1; }
.comms-hero__side { display:flex; flex-direction:column; align-items:flex-end; gap:12px; }
.comms-kicker { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--accent); }
.comms-hero__title { margin:8px 0 0; font-family:'Syne',sans-serif; font-size:28px; line-height:1; letter-spacing:-.03em; }
.comms-hero__meta { margin:10px 0 0; font-size:13px; line-height:1.6; color:var(--text2); max-width:560px; }
.comms-stats { display:flex; gap:12px; flex-wrap:wrap; align-items:flex-start; }
.comms-page-head { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; padding-bottom:16px; border-bottom:1px solid var(--border); margin-bottom:18px; }
.comms-page-head__main { min-width:0; }
.comms-page-head__title { margin:5px 0 0; font-family:'Syne',sans-serif; font-size:22px; line-height:1; letter-spacing:-.02em; }
.comms-page-head__meta { display:flex; gap:6px; flex-wrap:wrap; align-items:center; }
.ch-type-badge { display:inline-flex; align-items:center; padding:3px 8px; border-radius:999px; font-family:'DM Mono',monospace; font-size:9px; letter-spacing:.1em; text-transform:uppercase; border:1px solid var(--border); background:var(--surface2); color:var(--text3); white-space:nowrap; flex-shrink:0; }
.ch-type-badge--group { background:rgba(255,171,92,.08); border-color:rgba(255,171,92,.2); color:#ffc48f; }
.ch-type-badge--warehouse { background:rgba(94,197,255,.08); border-color:rgba(94,197,255,.18); color:#8fd2ff; }
.ch-type-badge--active { background:rgba(90,223,176,.08); border-color:rgba(90,223,176,.18); color:#92e3c1; }
.ch-type-badge--encrypted { gap:5px; background:rgba(90,223,176,.08); border-color:rgba(90,223,176,.22); color:#92e3c1; }
.ch-type-badge--encrypted::before { content:""; width:7px; height:7px; border:1px solid currentColor; border-radius:2px; box-sizing:border-box; box-shadow:0 -4px 0 -2px currentColor; }
.comms-channel-head-info { min-width:0; flex:1; }
.comms-channel-head-row { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.comms-channel-head-row .comms-card__title { margin-top:0; }
.comms-channel-head-row .comms-channel-header__summary { margin-left:auto; flex-shrink:0; }
.comms-ch-prefix { font-family:'DM Mono',monospace; font-size:18px; color:var(--text3); line-height:1; }
.comms-archived-hint { padding:10px 14px 6px; font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--text3); opacity:.6; text-align:center; }
.comms-grid { display:grid; grid-template-columns:264px minmax(0,1fr) 220px; gap:18px; align-items:start; }
.comms-main { min-width:0; }
.comms-main--channels { display:flex; flex-direction:column; gap:16px; }
.comms-rail { min-width:0; display:flex; flex-direction:column; gap:16px; }
.comms-rail--channel { min-height:0; }
.comms-card { border-radius:26px; border:1px solid var(--border); background:var(--surface); overflow:hidden; }
.comms-card__head { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; padding:18px 20px 0; }
.comms-card__head--channel { padding:16px 20px 14px; border-bottom:1px solid var(--border); }
.comms-card__head--nav { padding:12px 16px; align-items:center; }
.comms-nav-title { font-size:13px; font-weight:700; color:var(--text2); letter-spacing:.01em; }
.comms-card__head--rail { padding:12px 16px; align-items:center; }
.comms-card--rail .comms-card__body { padding-top:12px; padding-bottom:14px; }
.comms-rail-head-label { font-size:13px; font-weight:700; color:var(--text2); flex:1; min-width:0; }
.comms-card__head--toggle {
  width:100%;
  background:none;
  border:none;
  color:inherit;
  text-align:left;
  cursor:pointer;
  align-items:center;
}
.comms-card__toggle-icon {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  border-radius:999px;
  border:1px solid var(--border);
  background:rgba(255,255,255,.04);
  color:var(--text3);
  font-size:14px;
  transition:transform .16s ease, border-color .16s ease, color .16s ease;
}
.comms-card--collapsible:not(.is-collapsed) .comms-card__toggle-icon {
  transform:rotate(180deg);
  color:var(--accent);
  border-color:rgba(232,255,71,.18);
}
.comms-card__kicker { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--text3); }
.comms-card__title { margin-top:6px; font-family:'Syne',sans-serif; font-size:22px; line-height:1; }
.comms-channel-header__meta { margin-top:8px; font-size:13px; line-height:1.5; color:var(--text3); max-width:680px; }
.comms-channel-header__summary { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--text3); white-space:nowrap; padding:5px 10px; border-radius:999px; background:var(--surface2); border:1px solid var(--border); }
.comms-channel-header__actions { display:flex; gap:10px; align-items:center; flex-wrap:wrap; flex-shrink:0; }
.comms-icon-btn { min-width:34px; padding-left:10px; padding-right:10px; }
.comms-new-chat-btn {
  width:34px;
  height:34px;
  min-width:34px;
  padding:0;
  border-radius:10px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-family:'DM Mono',monospace;
  font-size:17px;
  line-height:1;
  color:var(--accent);
  background:rgba(232,255,71,.06);
  border-color:rgba(232,255,71,.14);
}
.comms-new-chat-btn:hover {
  background:rgba(232,255,71,.11);
  border-color:rgba(232,255,71,.24);
  color:#f4ff9a;
}
.comms-card__body { padding:18px 20px 20px; }
.comms-card--channel .comms-card__body {
  display:flex;
  flex-direction:column;
  min-height:min(68vh, 760px);
}
.comms-list { margin-top:18px; }
.comms-list--channel { margin-top:0; }
.comms-card--channel .comms-list--channel,
.chat-popout-card .comms-list--channel,
#crew-chat .comms-list--channel {
  flex:1 1 auto;
  min-height:0;
  max-height:none;
  overflow-y: auto;
  padding-right: 8px;
}
.comms-channel-composer { margin-top:16px; }
.comms-card--channel .comms-list--channel::-webkit-scrollbar,
.chat-popout-card .comms-list--channel::-webkit-scrollbar,
#crew-chat .comms-list--channel::-webkit-scrollbar {
  width: 8px;
}
.comms-card--channel .comms-list--channel::-webkit-scrollbar-thumb,
.chat-popout-card .comms-list--channel::-webkit-scrollbar-thumb,
#crew-chat .comms-list--channel::-webkit-scrollbar-thumb {
  background: rgba(255,255,255,.12);
  border-radius: 999px;
}
.comms-card--channel .comms-list--channel::-webkit-scrollbar-track,
.chat-popout-card .comms-list--channel::-webkit-scrollbar-track,
#crew-chat .comms-list--channel::-webkit-scrollbar-track {
  background: transparent;
}
.comms-checks { display:flex; gap:12px; flex-wrap:wrap; padding-top:4px; }
.comms-lane-picker { display:flex; gap:12px; flex-wrap:wrap; padding-top:4px; }
.comms-check { display:flex; align-items:center; gap:8px; font-size:13px; color:var(--text2); padding:10px 12px; border-radius:16px; background:var(--surface2); border:1px solid var(--border); cursor:pointer; transition:border-color .14s, background .14s, color .14s; }
.comms-check input[type="checkbox"],
.comms-check input[type="radio"] {
  appearance:none;
  -webkit-appearance:none;
  width:16px;
  height:16px;
  flex:0 0 16px;
  margin:0;
  display:inline-grid;
  place-items:center;
  border:1px solid var(--border2);
  background:var(--surface);
  cursor:pointer;
  transition:border-color .14s, background .14s, box-shadow .14s;
}
.comms-check input[type="checkbox"] { border-radius:5px; }
.comms-check input[type="radio"] { border-radius:999px; }
.comms-check input[type="checkbox"]::after {
  content:"";
  width:8px;
  height:5px;
  border-left:2px solid #0b0d12;
  border-bottom:2px solid #0b0d12;
  transform:rotate(-45deg) scale(0);
  transform-origin:center;
  transition:transform .12s ease;
}
.comms-check input[type="radio"]::after {
  content:"";
  width:7px;
  height:7px;
  border-radius:999px;
  background:#0b0d12;
  transform:scale(0);
  transition:transform .12s ease;
}
.comms-check input[type="checkbox"]:checked,
.comms-check input[type="radio"]:checked {
  background:var(--accent);
  border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(232,255,71,.08);
}
.comms-check input[type="checkbox"]:checked::after,
.comms-check input[type="radio"]:checked::after { transform:rotate(-45deg) scale(1); }
.comms-check input[type="radio"]:checked::after { transform:scale(1); }
.comms-check:has(input:checked) { color:var(--text); border-color:rgba(232,255,71,.24); background:rgba(232,255,71,.08); }
.comms-card--sticky { position:sticky; top:18px; }
.comms-channel-list .comms-card__body { padding-top:8px; padding-bottom:12px; }
.comms-channel-items { display:flex; flex-direction:column; gap:2px; }
.comms-channel-item { display:block; padding:10px 14px; border-radius:12px; border:1px solid transparent; background:transparent; text-decoration:none; color:inherit; transition:background .15s ease, border-color .15s ease; }
.comms-channel-item:hover { background:rgba(255,255,255,.05); }
.comms-channel-item.is-active { background:rgba(232,255,71,.08); border-color:rgba(232,255,71,.16); }
.comms-channel-item.is-search-match { background:rgba(255,255,255,.04); border-color:rgba(232,255,71,.14); }
.comms-channel-item.is-match { background:rgba(255,255,255,.04); border-color:rgba(232,255,71,.14); }
.comms-channel-item__head { display:flex; justify-content:space-between; gap:8px; align-items:center; }
.comms-channel-item__hash { font-family:'DM Mono',monospace; font-size:13px; font-weight:400; color:var(--text3); margin-right:1px; flex-shrink:0; }
.comms-channel-item.is-active .comms-channel-item__hash { color:rgba(232,255,71,.5); }
.comms-channel-item.is-search-match .comms-channel-item__hash { color:rgba(232,255,71,.46); }
.comms-channel-item__label { font-size:14px; font-weight:600; color:var(--text); flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.comms-channel-item.is-active .comms-channel-item__label { color:var(--accent); }
.comms-channel-item.is-search-match .comms-channel-item__label { color:#f3f7bf; }
.comms-channel-item__name { font-size:14px; font-weight:600; color:var(--text); }
.comms-channel-item.is-active .comms-channel-item__name { color:var(--accent); }
.comms-channel-item__count { min-width:22px; height:22px; display:inline-flex; align-items:center; justify-content:center; padding:0 6px; border-radius:999px; background:var(--surface); border:1px solid var(--border); font-family:'DM Mono',monospace; font-size:10px; color:var(--text3); }
.comms-channel-item__count.is-unread { background:rgba(232,255,71,.14); border-color:rgba(232,255,71,.24); color:#f3f7bf; font-weight:700; box-shadow:0 0 0 1px rgba(232,255,71,.05); }
.comms-channel-item.is-active .comms-channel-item__count { background:rgba(232,255,71,.12); border-color:rgba(232,255,71,.2); color:var(--accent); }
.comms-channel-item.is-active .comms-channel-item__count.is-unread { background:rgba(232,255,71,.2); border-color:rgba(232,255,71,.32); color:#f8ffd8; }
.comms-channel-item.is-search-match .comms-channel-item__count { border-color:rgba(232,255,71,.18); color:#edf78e; }
.comms-channel-item__preview { margin-top:4px; font-size:12px; line-height:1.4; color:var(--text3); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.comms-channel-composer { display:block; }
.comms-channel-composer .field { margin-bottom:14px; }
.comms-channel-composer__actions { display:flex; justify-content:flex-start; }
.comms-composer-box { border:1px solid var(--border); border-radius:18px; background:var(--surface2); overflow:hidden; margin-top:16px; }
.comms-composer-box textarea { display:block; width:100%; background:transparent; border:none; outline:none; padding:14px 16px 10px; font-size:14px; line-height:1.65; color:var(--text); resize:none; font-family:inherit; min-height:72px; max-height:176px; overflow-y:auto; }
.comms-composer-box__foot { display:flex; justify-content:space-between; gap:8px; align-items:center; padding:8px 12px 12px; border-top:1px solid rgba(255,255,255,.06); flex-wrap:wrap; }
.comms-composer-help { margin-top:8px; padding:0 4px; font-size:12px; line-height:1.5; color:var(--text3); }
.comms-react-root { min-height:540px; }
.comms-react-loading { display:grid; place-items:center; min-height:540px; border:1px solid var(--border); border-radius:var(--radius-xl); background:rgba(255,255,255,.02); text-align:center; gap:8px; padding:32px; }
.comms-react-loading__icon { font:700 28px/1 var(--font-display); color:var(--accent); }
.comms-react-loading__title { font:600 20px/1.1 var(--font-display); color:var(--text); }
.comms-react-loading__text { color:var(--text3); max-width:420px; }
.comms-list__load-older { display:flex; justify-content:center; padding:4px 0 14px; }
.comms-chat-search-result { width:100%; text-align:left; border:1px solid var(--border); background:rgba(255,255,255,.02); border-radius:var(--radius-lg); padding:12px 14px; display:grid; gap:4px; color:var(--text); }
.comms-chat-search-result strong { font-size:13px; }
.comms-chat-search-result span { font:500 10px/1 'DM Mono',monospace; letter-spacing:.12em; text-transform:uppercase; color:var(--text3); }
.comms-chat-search-result p { margin:0; color:var(--text3); font-size:13px; line-height:1.45; }
.comms-chat-search-result:hover { border-color:rgba(232,255,71,.18); background:rgba(232,255,71,.08); }
.chat-item.is-search-hit { border-color:rgba(232,255,71,.42); box-shadow:0 0 0 1px rgba(232,255,71,.22),0 0 28px rgba(232,255,71,.08); }
.comms-mention-menu { margin:0 12px 10px; border:1px solid var(--border); border-radius:14px; background:var(--surface); overflow:hidden; box-shadow:0 16px 32px rgba(0,0,0,.24); }
.comms-mention-option { width:100%; display:flex; justify-content:space-between; gap:12px; align-items:center; padding:10px 12px; background:transparent; border:none; border-bottom:1px solid rgba(255,255,255,.06); color:var(--text); text-align:left; cursor:pointer; }
.comms-mention-option:last-child { border-bottom:none; }
.comms-mention-option:hover,
.comms-mention-option.is-active { background:rgba(232,255,71,.08); }
.comms-mention-option__main { min-width:0; display:flex; flex-direction:column; gap:2px; }
.comms-mention-option__name { font-size:13px; font-weight:600; color:var(--text); line-height:1.3; }
.comms-mention-option__handle { font-family:'DM Mono',monospace; font-size:11px; color:var(--accent); line-height:1.3; }
.comms-mention-option__meta { min-width:0; font-size:11px; color:var(--text3); text-align:right; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.comms-mention-strip { display:flex; gap:6px; align-items:center; flex-wrap:wrap; }
.comms-mention-strip__label { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--text3); }
.comms-mention { display:inline-flex; align-items:center; padding:0 6px; border-radius:999px; background:rgba(232,255,71,.12); border:1px solid rgba(232,255,71,.18); color:var(--accent); font-weight:600; }
.comms-inline-link { color:#9dd8ff; text-decoration:underline; text-decoration-color:rgba(157,216,255,.45); text-underline-offset:2px; word-break:break-word; }
.comms-inline-link:hover { color:#c7ebff; text-decoration-color:rgba(199,235,255,.8); }
.comms-link-preview-list { margin-top:10px; display:grid; gap:8px; }
.comms-link-preview { display:block; padding:12px 14px; border-radius:16px; background:rgba(255,255,255,.035); border:1px solid rgba(255,255,255,.08); text-decoration:none; transition:border-color .14s ease, background .14s ease, transform .14s ease; }
.comms-link-preview:hover { border-color:rgba(232,255,71,.22); background:rgba(232,255,71,.05); transform:translateY(-1px); }
.comms-link-preview__host { display:block; font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--accent); margin-bottom:8px; }
.comms-link-preview__title { display:block; font-size:14px; line-height:1.35; color:var(--text); }
.comms-link-preview__summary { display:block; margin-top:4px; font-size:12px; line-height:1.45; color:var(--text3); }
.comms-rail-list { display:flex; flex-direction:column; gap:10px; }
.comms-rail-item { display:flex; justify-content:space-between; gap:12px; align-items:center; padding:12px 14px; border-radius:18px; background:var(--surface2); border:1px solid var(--border); }
.comms-rail-item__label { font-size:13px; color:var(--text2); }
.comms-callout { margin-top:14px; padding:14px 16px; border-radius:20px; background:rgba(232,255,71,.08); border:1px solid rgba(232,255,71,.18); color:var(--text2); font-size:13px; line-height:1.6; }
.comms-quicklinks { margin-top:14px; display:flex; gap:10px; flex-wrap:wrap; }
.pill-link { display:inline-flex; align-items:center; gap:8px; padding:9px 12px; border-radius:999px; background:var(--surface2); border:1px solid var(--border); text-decoration:none; color:var(--text); font-size:12px; transition:border-color .14s, background .14s; }
.pill-link:hover { background:var(--surface3); border-color:var(--border2); }
.comms-update-body,
.comms-file-body { flex:1; min-width:0; }
.comms-update-message { margin-top:8px; font-size:14px; line-height:1.7; color:var(--text2); }
.comms-update-badges { margin-top:10px; display:flex; gap:6px; flex-wrap:wrap; }
.comms-item-actions { display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; }
.comms-shell .update-item,
.comms-shell .file-item { display:flex; gap:14px; align-items:flex-start; padding:16px 0; border-bottom:1px solid rgba(255,255,255,.06); }
.comms-shell .update-item:first-child,
.comms-shell .file-item:first-child { padding-top:0; }
.comms-shell .update-item:last-child,
.comms-shell .file-item:last-child { border-bottom:none; }
.comms-shell .file-badge { width:44px; height:44px; border-radius:14px; display:flex; align-items:center; justify-content:center; flex:0 0 44px; font-family:'DM Mono',monospace; font-size:9px; font-weight:600; letter-spacing:.06em; text-align:center; line-height:1.3; background:rgba(255,255,255,.05); border:1px solid var(--border); color:var(--text3); }
.comms-shell .file-title { font-size:15px; font-weight:600; color:var(--text); line-height:1.3; }
.comms-shell .file-meta,
.comms-shell .update-meta { font-size:12px; color:var(--text3); margin-top:4px; line-height:1.5; }
.comms-shell .file-note { font-size:13px; color:var(--text2); margin-top:6px; line-height:1.5; }
.comms-shell .file-open { display:inline-flex; align-items:center; padding:8px 14px; border-radius:12px; background:var(--surface2); border:1px solid var(--border); color:var(--text); text-decoration:none; font-size:12px; white-space:nowrap; flex:0 0 auto; align-self:flex-start; }
.comms-shell .update-pill { display:inline-flex; padding:4px 8px; border-radius:999px; background:rgba(255,255,255,.06); border:1px solid var(--border); font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--text3); }
.update-pill--internal { background:rgba(255,255,255,.06); border-color:var(--border); color:var(--text3); }
.update-pill--crew { background:rgba(232,255,71,.08); border-color:rgba(232,255,71,.18); color:var(--accent); }
.update-pill--client { background:rgba(100,180,255,.08); border-color:rgba(100,180,255,.18); color:#7ec8ff; }
.comms-shell .file-badge[data-source="google_drive"] { background:rgba(66,133,244,.1); border-color:rgba(66,133,244,.22); color:#7db3ff; }
.comms-shell .file-badge[data-source="dropbox"] { background:rgba(0,97,255,.1); border-color:rgba(0,97,255,.22); color:#7ab0ff; }
.comms-shell .file-badge[data-source="frameio"] { background:rgba(50,210,160,.1); border-color:rgba(50,210,160,.22); color:#5fd4b0; }
.comms-shell .file-badge[data-source="wetransfer"] { background:rgba(255,90,90,.1); border-color:rgba(255,90,90,.22); color:#ff9898; }
.comms-shell .file-badge[data-source="onedrive"] { background:rgba(0,120,212,.1); border-color:rgba(0,120,212,.22); color:#68b0f5; }
.comms-post-composer { display:block; }
.comms-post-avatar { width:36px; height:36px; border-radius:10px; display:flex; align-items:center; justify-content:center; flex:0 0 36px; font-family:'DM Mono',monospace; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--text2); background:rgba(255,255,255,.07); border:1px solid var(--border); }
.comms-post-author { font-size:13px; font-weight:700; color:var(--text); }
.comms-post-time { font-family:'DM Mono',monospace; font-size:11px; color:var(--text3); }
.comms-shell .update-meta { display:flex; gap:8px; align-items:baseline; flex-wrap:wrap; }
.comms-list--feed { margin-top:18px; padding-top:18px; border-top:1px solid var(--border); }
.comms-composer-box__sharing { display:flex; gap:8px; flex-wrap:wrap; padding:10px 14px; border-top:1px solid rgba(255,255,255,.06); }
.comms-check--sm { font-size:12px; padding:6px 10px; border-radius:12px; }
.comms-file-composer { border:1px solid var(--border); border-radius:18px; background:var(--surface2); overflow:hidden; margin-top:16px; }
.comms-file-composer__fields { padding:14px 16px 10px; display:grid; gap:10px; }
.comms-file-composer__fields .field label { display:block; font-size:11px; text-transform:uppercase; letter-spacing:.1em; color:var(--text3); margin-bottom:5px; }
.comms-file-composer__fields .field input { display:block; width:100%; background:var(--surface); border:1px solid var(--border); border-radius:12px; padding:10px 12px; font-size:14px; color:var(--text); font-family:inherit; transition:border-color .15s ease; }
.comms-file-composer__fields .field input[type="file"] { min-height:46px; color:var(--text2); }
.comms-file-composer__fields .field input[type="file"]::file-selector-button {
  margin-right:12px;
  border:1px solid var(--border);
  border-radius:999px;
  padding:8px 12px;
  background:var(--surface2);
  color:var(--text);
  font:700 12px/1 'DM Sans',sans-serif;
  cursor:pointer;
}
.comms-file-composer__fields .field input[type="file"]::file-selector-button:hover { border-color:rgba(232,255,71,.24); background:rgba(232,255,71,.08); color:var(--accent); }
.comms-file-composer__fields .field input:focus { outline:none; border-color:rgba(232,255,71,.3); }
.comms-file-composer .comms-composer-box__sharing { border-top:1px solid rgba(255,255,255,.06); }
.comms-file-composer .comms-composer-box__foot { border-top:1px solid rgba(255,255,255,.06); }
.comms-channel-items--stack { display:flex; flex-direction:column; gap:4px; }
.workspace-comms-channel-meta { margin-top:8px; display:flex; gap:6px; align-items:center; flex-wrap:wrap; font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--text3); }
.workspace-comms-link { display:block; padding:12px 14px; border-radius:16px; text-decoration:none; color:inherit; background:var(--surface2); border:1px solid var(--border); transition:transform .14s ease,border-color .14s ease,background .14s ease; }
.workspace-comms-link:hover { transform:translateY(-1px); border-color:rgba(232,255,71,.22); background:rgba(255,255,255,.04); }
.workspace-comms-link.is-search-match { border-color:rgba(232,255,71,.2); background:rgba(255,255,255,.04); }
.workspace-comms-link + .workspace-comms-link { margin-top:10px; }
.workspace-comms-link__title { font-size:14px; font-weight:600; color:var(--text); line-height:1.35; }
.workspace-comms-link.is-search-match .workspace-comms-link__title { color:#f3f7bf; }
.workspace-comms-link__meta { margin-top:5px; display:flex; gap:6px; align-items:center; flex-wrap:wrap; font-size:12px; color:var(--text3); }
.workspace-comms-link--event { border-left-width:3px; }
.workspace-comms-link.is-match { border-color:rgba(232,255,71,.18); box-shadow:inset 0 0 0 1px rgba(232,255,71,.12); }
.workspace-comms-link__status {
  display:inline-flex;
  align-items:center;
  padding:3px 8px;
  border-radius:999px;
  border:1px solid var(--border);
  font-family:'DM Mono',monospace;
  font-size:10px;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.workspace-comms-link--planning { border-left-color:rgba(150,150,170,.45); }
.workspace-comms-link__status--planning { background:rgba(82,82,106,.2); color:var(--text3); border-color:var(--border); }
.workspace-comms-link--confirmed { border-left-color:rgba(71,180,255,.45); }
.workspace-comms-link__status--confirmed { background:rgba(71,180,255,.12); color:var(--blue); border-color:rgba(71,180,255,.25); }
.workspace-comms-link--active { border-left-color:rgba(61,232,138,.45); }
.workspace-comms-link__status--active { background:rgba(61,232,138,.12); color:var(--green); border-color:rgba(61,232,138,.25); }
.modal-overlay--chat-search {
  align-items:flex-start;
  justify-content:center;
  padding-top:88px;
  padding-left:20px;
  padding-right:20px;
  background:rgba(0,0,0,.42);
  backdrop-filter: blur(3px);
}
.modal--chat-search {
  width:min(880px, calc(100vw - 40px));
  max-width:880px;
  max-height:min(54vh, 420px);
  overflow:hidden;
  border-radius:22px;
}
.comms-search-box--modal { margin-bottom:16px; }
.modal--chat-search .modal-body { padding-top:16px; padding-bottom:16px; }
.comms-chat-search-results { display:grid; gap:10px; max-height:min(34vh, 250px); overflow:auto; padding-right:4px; }
.comms-search-result {
  width:100%;
  display:grid;
  gap:8px;
  text-align:left;
  padding:14px 16px;
  border-radius:16px;
  border:1px solid var(--border);
  background:var(--surface2);
  color:var(--text);
  cursor:pointer;
  transition:border-color .15s ease, background .15s ease, transform .15s ease;
}
.comms-search-result:hover {
  transform:translateY(-1px);
  border-color:rgba(232,255,71,.22);
  background:rgba(255,255,255,.04);
}
.comms-search-result.is-top-hit {
  border-color:rgba(232,255,71,.24);
  box-shadow:0 0 0 1px rgba(232,255,71,.12);
}
.comms-search-result__meta { display:flex; justify-content:space-between; gap:10px; align-items:baseline; flex-wrap:wrap; }
.comms-search-result__author { font-size:13px; font-weight:700; color:var(--text); }
.comms-search-result__time { font-family:'DM Mono',monospace; font-size:10px; color:var(--text3); letter-spacing:.04em; text-transform:uppercase; }
.comms-search-result__body { font-size:13px; line-height:1.6; color:var(--text2); }
.comms-search-result__body mark {
  background:rgba(232,255,71,.18);
  color:var(--accent);
  padding:0 2px;
  border-radius:4px;
}
.comms-search-box { margin-bottom:12px; }
.comms-search-box--rooms {
  position:relative;
  margin-bottom:8px;
}
.comms-search-box input {
  display:block;
  width:100%;
  background:var(--surface2);
  border:1px solid var(--border);
  border-radius:14px;
  padding:11px 13px;
  font-size:13px;
  color:var(--text);
  font-family:inherit;
  transition:border-color .15s ease, background .15s ease;
}
.comms-search-box--rooms input {
  padding-left:34px;
  padding-right:34px;
}
.comms-search-box input:focus {
  outline:none;
  border-color:rgba(232,255,71,.28);
  background:rgba(255,255,255,.04);
}
.comms-search-box__icon,
.comms-search-box__clear {
  position:absolute;
  top:50%;
  transform:translateY(-50%);
}
.comms-search-box__icon {
  left:12px;
  color:var(--text3);
  font-family:'DM Mono',monospace;
  font-size:13px;
  pointer-events:none;
}
.comms-search-box__clear {
  right:8px;
  width:24px;
  height:24px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid transparent;
  border-radius:8px;
  background:transparent;
  color:var(--text3);
  cursor:pointer;
  font-size:16px;
  line-height:1;
}
.comms-search-box__clear:hover {
  background:rgba(255,255,255,.06);
  border-color:var(--border);
  color:var(--text);
}
.comms-room-search-status {
  display:flex;
  justify-content:space-between;
  gap:8px;
  margin:0 2px 12px;
  color:var(--text3);
  font-family:'DM Mono',monospace;
  font-size:10px;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.comms-room-search-status span:last-child {
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.comms-channel-section + .comms-channel-section { margin-top:14px; padding-top:14px; border-top:1px solid rgba(255,255,255,.06); }
.comms-channel-section__head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:8px; }
.comms-channel-section__title { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--text3); }
.comms-channel-section__count {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:24px;
  height:24px;
  padding:0 8px;
  border-radius:999px;
  background:rgba(255,255,255,.04);
  border:1px solid var(--border);
  font-family:'DM Mono',monospace;
  font-size:11px;
  color:var(--text2);
}
.comms-channel-empty { padding:10px 2px 2px; font-size:12px; color:var(--text3); }
.workspace-comms-form { display:grid; gap:12px; }
.workspace-comms-form textarea { min-height:88px; resize:vertical; }
.workspace-comms-form-card .comms-card__body { display:block; }
.workspace-comms-form__actions { display:flex; justify-content:flex-end; gap:8px; margin-top:4px; }
.workspace-comms-modal {
  width:640px;
  border-radius:22px;
  border-color:rgba(116,130,170,.34);
  background:linear-gradient(180deg,rgba(20,24,34,.99),rgba(13,16,24,.99));
  box-shadow:0 26px 90px rgba(0,0,0,.58),0 0 0 1px rgba(232,255,71,.035);
}
.workspace-comms-modal .modal-head {
  padding:16px 18px;
  align-items:center;
}
.workspace-comms-modal .modal-body {
  padding:16px 18px 18px;
}
.workspace-comms-modal .modal-close {
  width:32px;
  height:32px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid transparent;
  border-radius:10px;
  font-size:15px;
}
.workspace-comms-modal .modal-close:hover {
  background:rgba(255,255,255,.05);
  border-color:var(--border);
}
.workspace-comms-modal-title {
  display:grid;
  gap:5px;
}
.workspace-comms-modal-title span {
  font-family:'DM Mono',monospace;
  font-size:10px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--accent);
}
.workspace-comms-modal-title strong {
  font-family:'Syne',sans-serif;
  font-size:20px;
  line-height:1;
  color:var(--text);
}
.workspace-comms-type-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.workspace-comms-type-card {
  display:flex;
  align-items:center;
  gap:11px;
  width:100%;
  min-height:94px;
  padding:14px;
  border:1px solid var(--border);
  border-radius:14px;
  background:rgba(255,255,255,.025);
  color:var(--text);
  text-align:left;
  cursor:pointer;
  transition:background .14s ease,border-color .14s ease,transform .14s ease;
}
.workspace-comms-type-card:hover {
  border-color:rgba(232,255,71,.2);
  background:rgba(232,255,71,.055);
  transform:translateY(-1px);
}
.workspace-comms-type-card__icon {
  width:32px;
  height:32px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 32px;
  border-radius:9px;
  background:rgba(232,255,71,.08);
  border:1px solid rgba(232,255,71,.14);
  color:var(--accent);
  font-family:'DM Mono',monospace;
  font-size:16px;
}
.workspace-comms-type-card__body { min-width:0; display:grid; gap:5px; flex:1; }
.workspace-comms-type-card__body strong { font-size:14px; line-height:1.15; }
.workspace-comms-type-card__body span { font-size:12px; line-height:1.45; color:var(--text3); }
.workspace-comms-type-card__arrow {
  flex:0 0 auto;
  font-size:24px;
  line-height:1;
  color:var(--text3);
  opacity:.55;
}
.workspace-comms-type-card:hover .workspace-comms-type-card__arrow {
  color:var(--accent);
  opacity:1;
}
.workspace-comms-private-toggle { justify-content:flex-start; }
.workspace-comms-private-picker {
  display:grid;
  gap:10px;
  padding:12px;
  border:1px solid var(--border);
  border-radius:16px;
  background:var(--surface2);
}
.workspace-comms-picker-head { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:end; }
.workspace-comms-picker-head .field { margin:0; }
.workspace-comms-picker-count {
  align-self:end;
  margin-bottom:1px;
  padding:8px 10px;
  border-radius:999px;
  background:var(--surface);
  border:1px solid var(--border);
  color:var(--text3);
  font-family:'DM Mono',monospace;
  font-size:10px;
  white-space:nowrap;
}
.workspace-comms-picker-count.is-maxed { color:var(--accent); border-color:rgba(232,255,71,.24); background:rgba(232,255,71,.08); }
.workspace-comms-user-list {
  max-height:220px;
  overflow:auto;
  display:grid;
  gap:8px;
  padding-right:4px;
}
.workspace-comms-user-option {
  display:flex;
  gap:10px;
  align-items:flex-start;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid var(--border);
  background:var(--surface);
  cursor:pointer;
}
.workspace-comms-user-option.is-disabled { opacity:.45; cursor:not-allowed; }
.workspace-comms-user-option--manage {
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}
.workspace-comms-user-option__toggle {
  display:flex;
  gap:10px;
  align-items:flex-start;
  flex:1;
  min-width:0;
  cursor:pointer;
}
.workspace-comms-user-option input { margin-top:2px; }
.workspace-comms-user-option__body { display:grid; gap:3px; min-width:0; }
.workspace-comms-user-option__name { font-size:13px; font-weight:600; color:var(--text); }
.workspace-comms-user-option__meta { font-size:11px; color:var(--text3); }
.workspace-comms-user-role {
  min-width: 118px;
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 8px 10px;
  color: var(--text);
  font-size: 12px;
}
.workspace-comms-user-help { font-size:11px; color:var(--text3); }
.workspace-comms-archive-form {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--border);
  display: flex;
  justify-content: flex-end;
}
.field-opt { font-style:normal; font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--text3); margin-left:5px; }
.chat-item { display:flex; gap:12px; align-items:flex-start; padding:14px 0; border-bottom:1px solid rgba(255,255,255,.05); }
.chat-item:last-child { border-bottom:none; }
.chat-item.is-search-hit { border-bottom-color:rgba(232,255,71,.14); }
.chat-item.is-search-focus {
  background:rgba(232,255,71,.08);
  border-color:rgba(232,255,71,.2);
  box-shadow:0 0 0 1px rgba(232,255,71,.14);
  border-radius:16px;
  margin:4px 0;
  padding:14px 12px;
}
.chat-item__avatar { width:36px; height:36px; border-radius:10px; display:flex; align-items:center; justify-content:center; flex:0 0 36px; font-family:'DM Mono',monospace; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--accent); background:rgba(232,255,71,.1); border:1px solid rgba(232,255,71,.16); }
.avatar-tone-0 { background:rgba(232,255,71,.1); border-color:rgba(232,255,71,.16); color:#efff84; }
.avatar-tone-1 { background:rgba(94,197,255,.1); border-color:rgba(94,197,255,.18); color:#8fd2ff; }
.avatar-tone-2 { background:rgba(255,138,196,.1); border-color:rgba(255,138,196,.18); color:#ffafd5; }
.avatar-tone-3 { background:rgba(159,121,255,.11); border-color:rgba(159,121,255,.18); color:#c7b0ff; }
.avatar-tone-4 { background:rgba(90,223,176,.1); border-color:rgba(90,223,176,.18); color:#92e3c1; }
.avatar-tone-5 { background:rgba(255,171,92,.1); border-color:rgba(255,171,92,.18); color:#ffc48f; }
.chat-item__body { min-width:0; flex:1; position:relative; padding-right:12px; }
.chat-item__meta { display:flex; gap:8px; align-items:baseline; flex-wrap:wrap; }
.chat-item__author { font-size:13px; font-weight:700; color:var(--text); }
.chat-item__timestamp { font-family:'DM Mono',monospace; font-size:11px; color:var(--text3); }
.chat-item__message { margin-top:4px; font-size:14px; line-height:1.65; color:var(--text2); white-space:pre-wrap; }
.chat-item--thread-parent {
  padding:16px;
  border:1px solid rgba(232,255,71,.12);
  border-radius:18px;
  background:rgba(255,255,255,.025);
}
.chat-item--thread-reply { padding:12px 0; }
.comms-message-reactions {
  margin-top:10px;
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  align-items:center;
}
.comms-typing-indicator {
  display:flex;
  align-items:center;
  gap:10px;
  width:max-content;
  max-width:calc(100% - 48px);
  margin:4px 0 12px 48px;
  padding:5px 0;
  background:transparent;
  border:none;
  color:var(--text3);
  font-size:12px;
  line-height:1.35;
}
.comms-typing-dots {
  display:inline-flex;
  align-items:center;
  gap:4px;
  flex:0 0 auto;
}
.comms-typing-dots i {
  width:5px;
  height:5px;
  display:block;
  border-radius:999px;
  background:var(--accent);
  opacity:.42;
  animation:commsTypingPulse 1.15s infinite ease-in-out;
}
.comms-typing-dots i:nth-child(2) {
  animation-delay:.15s;
}
.comms-typing-dots i:nth-child(3) {
  animation-delay:.3s;
}
.comms-typing-text {
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.comms-typing-indicator--thread { margin-left:0; }
@keyframes commsTypingPulse {
  0%, 80%, 100% { opacity:.28; transform:translateY(0); }
  40% { opacity:.95; transform:translateY(-2px); }
}
.comms-message-hover {
  position:absolute;
  top:-4px;
  right:0;
  opacity:0;
  transform:translateY(-4px);
  pointer-events:none;
  transition:opacity .14s ease, transform .14s ease;
  z-index:2;
}
.chat-item:hover .comms-message-hover,
.chat-item:focus-within .comms-message-hover {
  opacity:1;
  transform:translateY(0);
  pointer-events:auto;
}
.comms-message-hover__panel {
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
  justify-content:flex-end;
  padding:8px 10px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(9,12,18,.95);
  box-shadow:0 16px 32px rgba(0,0,0,.22);
}
.comms-reaction-form { display:flex; gap:6px; flex-wrap:wrap; align-items:center; margin:0; }
.comms-reaction-form--quick { opacity:1; }
.comms-reaction-chip,
.comms-reaction-add {
  display:inline-flex;
  align-items:center;
  gap:6px;
  border-radius:999px;
  border:1px solid var(--border);
  background:rgba(255,255,255,.03);
  color:var(--text2);
  padding:5px 10px;
  font-family:'DM Mono',monospace;
  font-size:11px;
  line-height:1;
  cursor:pointer;
  transition:border-color .14s ease, background .14s ease, transform .14s ease;
}
.comms-reaction-chip:hover,
.comms-reaction-add:hover {
  transform:translateY(-1px);
  border-color:rgba(232,255,71,.22);
  background:rgba(232,255,71,.08);
}
.comms-reaction-chip.is-active {
  border-color:rgba(232,255,71,.3);
  background:rgba(232,255,71,.12);
  color:#f4f7bf;
}
.comms-reaction-chip__count { color:var(--text3); }
.comms-reaction-add { min-width:34px; justify-content:center; padding-left:8px; padding-right:8px; }
.modal-overlay--chat-thread {
  align-items:flex-start;
  justify-content:center;
  padding-top:76px;
  padding-left:20px;
  padding-right:20px;
  background:rgba(0,0,0,.46);
  backdrop-filter: blur(4px);
}
.modal--chat-thread {
  width:min(860px, calc(100vw - 40px));
  max-width:860px;
  max-height:min(78vh, 760px);
  overflow:hidden;
  border-radius:24px;
}
.modal--chat-thread .modal-body { padding-top:16px; padding-bottom:18px; }
.comms-thread { display:grid; gap:16px; }
.comms-thread__label {
  margin-bottom:10px;
  font-family:'DM Mono',monospace;
  font-size:10px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--text3);
}
.comms-thread__list {
  display:grid;
  gap:0;
  max-height:min(40vh, 340px);
  overflow:auto;
  padding-right:4px;
}
.comms-thread-composer {
  padding-top:14px;
  border-top:1px solid var(--border);
}
.chat-lane-pill { display:inline-flex; align-items:center; border-radius:999px; padding:5px 9px; font-size:10px; letter-spacing:.14em; text-transform:uppercase; border:1px solid var(--border); background:var(--surface2); color:var(--text2); }
.chat-lane-pill.is-crew { background:rgba(232,255,71,.08); border-color:rgba(232,255,71,.2); color:var(--accent); }
.chat-lane-pill.is-internal { background:rgba(124,128,255,.08); border-color:rgba(124,128,255,.18); color:#a9abff; }

html.theme-light .comms-hero { background:linear-gradient(180deg,#ffffff,#f7f8fc); }
html.theme-light .comms-page-head { border-bottom-color:rgba(10,10,10,.1); }
html.theme-light .comms-nav-title { color:#44505f; }
html.theme-light .comms-rail-head-label { color:#44505f; }
html.theme-light .ch-type-badge { background:#f0f2f8; border-color:rgba(10,10,10,.1); color:#505768; }
html.theme-light .comms-card__toggle-icon { background:#ffffff; border-color:rgba(10,10,10,.1); color:#505768; }
html.theme-light .ch-type-badge--group { background:rgba(255,140,60,.12); border-color:rgba(200,100,20,.2); color:#a04a00; }
html.theme-light .ch-type-badge--warehouse { background:rgba(50,140,220,.1); border-color:rgba(50,140,220,.2); color:#1450a0; }
html.theme-light .ch-type-badge--active { background:rgba(30,170,120,.1); border-color:rgba(30,170,120,.2); color:#0a6040; }
html.theme-light .ch-type-badge--encrypted { background:rgba(30,170,120,.1); border-color:rgba(30,170,120,.22); color:#0a6040; }
html.theme-light .comms-inline-link { color:#1450a0; text-decoration-color:rgba(20,80,160,.35); }
html.theme-light .comms-inline-link:hover { color:#0e3f86; text-decoration-color:rgba(14,63,134,.7); }
html.theme-light .comms-link-preview { background:#f7f9fc; border-color:rgba(10,10,10,.08); }
html.theme-light .comms-link-preview:hover { background:#f1f6ea; border-color:rgba(175,190,40,.3); }
html.theme-light .comms-check,
html.theme-light .comms-rail-item { background:#f5f7fb; }
html.theme-light .comms-check input[type="checkbox"],
html.theme-light .comms-check input[type="radio"] { background:#ffffff; border-color:rgba(10,10,10,.18); }
html.theme-light .comms-check input[type="checkbox"]:checked,
html.theme-light .comms-check input[type="radio"]:checked { background:#d8f52b; border-color:#a4bf00; }
html.theme-light .comms-check:has(input:checked) { background:rgba(180,200,0,.1); border-color:rgba(140,160,0,.28); color:#161922; }
html.theme-light .comms-channel-item:hover { background:rgba(0,0,0,.04); }
html.theme-light .comms-channel-item.is-active { background:rgba(180,200,0,.08); border-color:rgba(140,160,0,.22); }
html.theme-light .comms-channel-item.is-search-match { background:rgba(180,200,0,.08); border-color:rgba(140,160,0,.18); }
html.theme-light .comms-channel-item.is-active .comms-channel-item__label,
html.theme-light .comms-channel-item.is-active .comms-channel-item__name { color:#6a7a10; }
html.theme-light .comms-channel-item.is-active .comms-channel-item__hash { color:rgba(106,122,16,.5); }
html.theme-light .comms-channel-item.is-active .comms-channel-item__count { background:rgba(180,200,0,.15); border-color:rgba(140,160,0,.28); color:#6a7a10; }
html.theme-light .comms-channel-item.is-search-match .comms-channel-item__label,
html.theme-light .comms-channel-item.is-search-match .comms-channel-item__name,
html.theme-light .comms-channel-item.is-search-match .comms-channel-item__count { color:#6a7a10; }
html.theme-light .comms-channel-item__count { background:#ffffff; }
html.theme-light .comms-callout { background:rgba(232,255,71,.14); border-color:rgba(190,206,40,.28); color:#495264; }
html.theme-light .comms-shell .file-badge { background:#f4f6fa; border-color:rgba(10,10,10,.08); color:#505768; }
html.theme-light .comms-shell .update-item,
html.theme-light .comms-shell .file-item { border-bottom-color:rgba(10,10,10,.07); }
html.theme-light .comms-shell .update-pill { background:#f0f2f8; border-color:rgba(10,10,10,.1); color:#505768; }
html.theme-light .comms-shell .file-open { background:#ffffff; border-color:rgba(10,10,10,.1); }
html.theme-light .comms-post-avatar { background:#f0f2f8; border-color:rgba(10,10,10,.1); color:#505768; }
html.theme-light .update-pill--crew { background:rgba(180,200,0,.15); border-color:rgba(140,160,0,.25); color:#6a7a10; }
html.theme-light .update-pill--client { background:rgba(50,130,240,.1); border-color:rgba(50,130,240,.2); color:#2060c0; }
html.theme-light .update-pill--internal { background:#f0f2f8; border-color:rgba(10,10,10,.1); color:#505768; }
html.theme-light .comms-shell .file-badge[data-source="google_drive"] { background:rgba(66,133,244,.12); border-color:rgba(66,133,244,.25); color:#2060c4; }
html.theme-light .comms-shell .file-badge[data-source="dropbox"] { background:rgba(0,97,255,.1); border-color:rgba(0,97,255,.25); color:#1045c0; }
html.theme-light .comms-shell .file-badge[data-source="frameio"] { background:rgba(0,160,120,.1); border-color:rgba(0,160,120,.25); color:#007a5a; }
html.theme-light .comms-shell .file-badge[data-source="wetransfer"] { background:rgba(200,40,40,.1); border-color:rgba(200,40,40,.25); color:#b02020; }
html.theme-light .comms-shell .file-badge[data-source="onedrive"] { background:rgba(0,120,212,.1); border-color:rgba(0,120,212,.25); color:#0050a0; }
html.theme-light .comms-composer-box__sharing { border-top-color:rgba(10,10,10,.07); }
html.theme-light .comms-file-composer { background:#f5f7fb; border-color:rgba(10,10,10,.1); }
html.theme-light .comms-file-composer .comms-composer-box__sharing,
html.theme-light .comms-file-composer .comms-composer-box__foot { border-top-color:rgba(10,10,10,.07); }
html.theme-light .comms-file-composer__fields .field input { background:#ffffff; border-color:rgba(10,10,10,.12); color:#161922; }
html.theme-light .comms-file-composer__fields .field input:focus { border-color:rgba(140,160,0,.4); }
html.theme-light .comms-file-composer__fields .field input[type="file"]::file-selector-button { background:#e8ebf4; border-color:rgba(10,10,10,.12); color:#161922; }
html.theme-light .comms-file-composer__fields .field input[type="file"]::file-selector-button:hover { background:rgba(180,200,0,.1); border-color:rgba(140,160,0,.28); color:#5d6b0c; }
html.theme-light .comms-list--feed { border-top-color:rgba(10,10,10,.08); }
html.theme-light .comms-composer-box { background:#f5f7fb; border-color:rgba(10,10,10,.1); }
html.theme-light .comms-composer-box__foot { border-top-color:rgba(10,10,10,.07); }
html.theme-light .workspace-comms-link { background:#f5f7fb; border-color:rgba(10,10,10,.1); }
html.theme-light .workspace-comms-link:hover { background:#ffffff; border-color:rgba(140,160,0,.25); }
html.theme-light .workspace-comms-link.is-search-match { background:#ffffff; border-color:rgba(140,160,0,.24); }
html.theme-light .workspace-comms-link.is-search-match .workspace-comms-link__title { color:#6a7a10; }
html.theme-light .workspace-comms-link__status--planning { background:rgba(82,82,106,.08); color:#6b7280; border-color:rgba(10,10,10,.1); }
html.theme-light .workspace-comms-link__status--confirmed { background:rgba(26,95,160,.1); color:var(--blue); border-color:rgba(26,95,160,.22); }
html.theme-light .workspace-comms-link__status--active { background:rgba(26,122,69,.12); color:var(--green); border-color:rgba(26,122,69,.22); }
html.theme-light .modal-overlay--chat-search { background:rgba(0,0,0,.18); }
html.theme-light .comms-search-box input { background:#f5f7fb; border-color:rgba(10,10,10,.1); color:#161922; }
html.theme-light .comms-search-box input:focus { background:#ffffff; border-color:rgba(140,160,0,.28); }
html.theme-light .comms-search-box__clear:hover { background:#ffffff; border-color:rgba(10,10,10,.1); color:#161922; }
html.theme-light .comms-channel-section + .comms-channel-section { border-top-color:rgba(10,10,10,.08); }
html.theme-light .comms-channel-section__count { background:#ffffff; border-color:rgba(10,10,10,.1); color:#505768; }
html.theme-light .workspace-comms-private-picker { background:#f5f7fb; border-color:rgba(10,10,10,.1); }
html.theme-light .comms-new-chat-btn { background:rgba(180,200,0,.1); border-color:rgba(140,160,0,.2); color:#6f7f17; }
html.theme-light .comms-new-chat-btn:hover { background:rgba(180,200,0,.16); border-color:rgba(140,160,0,.28); color:#56660c; }
html.theme-light .workspace-comms-modal { background:#ffffff; border-color:rgba(10,10,10,.1); box-shadow:0 18px 70px rgba(0,0,0,.18); }
html.theme-light .workspace-comms-type-card { background:#f7f9fc; border-color:rgba(10,10,10,.1); color:#161922; }
html.theme-light .workspace-comms-type-card:hover { background:#ffffff; border-color:rgba(140,160,0,.24); }
html.theme-light .workspace-comms-type-card__icon { background:rgba(232,255,71,.2); border-color:rgba(190,206,40,.3); color:#6f7f17; }
html.theme-light .workspace-comms-picker-count { background:#ffffff; border-color:rgba(10,10,10,.1); color:#505768; }
html.theme-light .workspace-comms-user-option { background:#ffffff; border-color:rgba(10,10,10,.1); }
html.theme-light .workspace-comms-user-role { background:#ffffff; border-color:rgba(10,10,10,.12); color:#161922; }
html.theme-light .chat-item { border-bottom-color:rgba(10,10,10,.07); }
html.theme-light .chat-item.is-search-hit { border-bottom-color:rgba(140,160,0,.16); }
html.theme-light .chat-item.is-search-focus { background:rgba(180,200,0,.08); border-color:rgba(140,160,0,.22); box-shadow:0 0 0 1px rgba(140,160,0,.12); }
html.theme-light .chat-item__avatar { background:rgba(232,255,71,.2); border-color:rgba(190,206,40,.3); color:#6f7f17; }
html.theme-light .comms-message-hover__panel { background:rgba(255,255,255,.98); border-color:rgba(10,10,10,.08); }
html.theme-light .chat-item--thread-parent { background:#f7f9fc; border-color:rgba(140,160,0,.16); }
html.theme-light .comms-typing-indicator { background:transparent; border-color:transparent; color:#667085; }
html.theme-light .comms-reaction-chip,
html.theme-light .comms-reaction-add { background:#f5f7fb; border-color:rgba(10,10,10,.1); color:#505768; }
html.theme-light .comms-reaction-chip:hover,
html.theme-light .comms-reaction-add:hover { background:#ffffff; border-color:rgba(140,160,0,.24); }
html.theme-light .comms-reaction-chip.is-active { background:rgba(180,200,0,.12); border-color:rgba(140,160,0,.26); color:#6a7a10; }
html.theme-light .modal-overlay--chat-thread { background:rgba(0,0,0,.22); }
html.theme-light .comms-search-result { background:#f5f7fb; border-color:rgba(10,10,10,.1); color:#161922; }
html.theme-light .comms-search-result:hover { background:#ffffff; border-color:rgba(140,160,0,.24); }
html.theme-light .comms-search-result.is-top-hit { border-color:rgba(140,160,0,.24); box-shadow:0 0 0 1px rgba(140,160,0,.12); }
html.theme-light .comms-search-result__body mark { background:rgba(180,200,0,.18); color:#6a7a10; }
.theme-light .comms-card--channel .comms-list--channel::-webkit-scrollbar-thumb,
.theme-light .chat-popout-card .comms-list--channel::-webkit-scrollbar-thumb,
.theme-light #crew-chat .comms-list--channel::-webkit-scrollbar-thumb {
  background: rgba(10,10,10,.12);
}
.theme-light .avatar-tone-0 { background:rgba(232,255,71,.2); border-color:rgba(190,206,40,.3); color:#6f7f17; }
.theme-light .avatar-tone-1 { background:rgba(94,197,255,.14); border-color:rgba(94,197,255,.28); color:#175f94; }
.theme-light .avatar-tone-2 { background:rgba(255,138,196,.14); border-color:rgba(255,138,196,.28); color:#9b2f61; }
.theme-light .avatar-tone-3 { background:rgba(159,121,255,.14); border-color:rgba(159,121,255,.28); color:#5e42b2; }
.theme-light .avatar-tone-4 { background:rgba(90,223,176,.14); border-color:rgba(90,223,176,.28); color:#1a7a59; }
.theme-light .avatar-tone-5 { background:rgba(255,171,92,.16); border-color:rgba(255,171,92,.3); color:#9a551b; }
html.theme-light .chat-lane-pill { background:#eef2fb; }
html.theme-light .chat-lane-pill.is-crew { background:rgba(232,255,71,.18); border-color:rgba(190,206,40,.3); color:#6f7f17; }
html.theme-light .chat-lane-pill.is-internal { background:#ecebff; border-color:#d7d6ff; color:#595ab4; }

@media (min-width:961px) {
  .comms-rail--channel .comms-card--channel {
    display:flex;
    flex-direction:column;
    height:min(calc(100dvh - 220px), 820px);
  }
  .comms-rail--channel .comms-card--channel .comms-card__head {
    flex-shrink:0;
  }
  .comms-rail--channel .comms-card--channel .comms-card__body {
    flex:1 1 auto;
    min-height:0;
  }
  .comms-rail--channel .comms-card--channel .comms-list--channel {
    flex:1 1 auto;
    min-height:0;
  }
  .comms-rail--channel .comms-card--channel .comms-channel-composer {
    flex-shrink:0;
  }
}

@media (max-width:1340px) {
  .comms-rail--context { display:inline-flex; }
}
@media (max-width:1100px) {
  .comms-grid { grid-template-columns:196px minmax(0,1fr); }
}
@media (max-width:960px) {
  .comms-grid { grid-template-columns:1fr; }
  .comms-card--sticky { position:static; }
  .comms-hero__side { align-items:stretch; width:100%; }
}

@media (max-width:720px) {
  .modal-overlay--chat-search { padding-top:72px; padding-left:12px; padding-right:12px; }
  .modal-overlay--chat-thread { padding-top:72px; padding-left:12px; padding-right:12px; }
  .modal--chat-search {
    width:calc(100vw - 24px);
    max-height:min(62vh, 440px);
  }
  .modal--chat-thread {
    width:calc(100vw - 24px);
    max-height:min(82vh, 760px);
  }
  .comms-hero { padding:18px; }
  .comms-hero__title { font-size:24px; }
  .comms-card__head,
  .comms-card__body { padding-left:16px; padding-right:16px; }
  .chat-item { gap:10px; }
  .chat-item__avatar { width:32px; height:32px; flex-basis:32px; border-radius:8px; font-size:10px; }
  .chat-item__body { padding-right:0; }
  .comms-message-hover {
    position:static;
    opacity:1;
    transform:none;
    pointer-events:auto;
    margin-top:10px;
  }
  .comms-message-hover__panel {
    justify-content:flex-start;
    padding:8px 0 0;
    border:none;
    background:transparent;
    box-shadow:none;
  }
  .comms-message-reactions { gap:6px; }
  .comms-reaction-chip,
  .comms-reaction-add { font-size:10px; padding:5px 8px; }
  .comms-checks,
  .comms-lane-picker,
  .comms-quicklinks { flex-direction:column; align-items:stretch; }
  .comms-grid { gap: 12px; }
  .comms-card { border-radius: 22px; }
  .comms-card--channel .comms-card__body { min-height: min(72vh, 680px); }
  .comms-composer-box textarea { min-height: 44px; }
  .comms-channel-header__summary { font-size: 9px; padding: 4px 8px; }
  .comms-search-result { padding:12px 14px; }
  .workspace-comms-modal { width:min(96vw, 520px); border-radius:18px; }
  .workspace-comms-modal .modal-head,
  .workspace-comms-modal .modal-body { padding-left:14px; padding-right:14px; }
  .workspace-comms-type-grid,
  .workspace-comms-picker-head { grid-template-columns:1fr; }
  .workspace-comms-type-card { min-height:82px; }
  .workspace-comms-picker-count { justify-self:start; }
  .workspace-comms-form__actions { flex-direction:column-reverse; }
  .workspace-comms-form__actions .btn { width:100%; justify-content:center; }
}

/* ══════════════════════════════════════════════════════════════════════════
   CREW SCHEDULE
══════════════════════════════════════════════════════════════════════════ */
.crew-schedule-shell { width:100%; max-width:none; }
.crew-schedule-hero { display:flex; justify-content:space-between; gap:18px; flex-wrap:wrap; padding:20px 22px; border-radius:28px; border:1px solid var(--border); background:linear-gradient(180deg,var(--surface),var(--surface2)); margin-bottom:16px; }
.crew-schedule-hero__copy { min-width:0; flex:1; }
.crew-schedule-kicker { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--accent); }
.crew-schedule-hero__title { margin:8px 0 0; font-family:'Syne',sans-serif; font-size:28px; line-height:1; letter-spacing:-.03em; }
.crew-schedule-hero__meta { margin:10px 0 0; font-size:13px; line-height:1.6; color:var(--text2); max-width:620px; }
.crew-schedule-stats { display:flex; gap:12px; flex-wrap:wrap; align-items:flex-start; }
.crew-schedule-grid-layout { display:grid; grid-template-columns:minmax(0,1.52fr) minmax(280px,.58fr); gap:18px; align-items:start; }
.crew-schedule-main,
.crew-schedule-rail { min-width:0; display:flex; flex-direction:column; gap:16px; }
.crew-schedule-card { border-radius:26px; border:1px solid var(--border); background:var(--surface); overflow:hidden; }
.crew-schedule-card__head { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; padding:18px 20px 0; }
.crew-schedule-card__kicker { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--text3); }
.crew-schedule-card__title { margin-top:6px; font-family:'Syne',sans-serif; font-size:22px; line-height:1; }
.crew-schedule-card__meta { font-size:12px; color:var(--text3); line-height:1.5; max-width:280px; text-align:right; }
.crew-schedule-card__body { padding:18px 20px 20px; }
.crew-schedule-subtitle { margin:14px 0 10px; font-family:'Syne',sans-serif; font-size:15px; font-weight:700; color:var(--text); }
.crew-schedule-card--sticky { position:sticky; top:18px; }
.crew-admin-divider { height:1px; background:var(--border); margin:20px 0 16px; }
.crew-admin-summary { margin:0 0 12px; font-size:12px; line-height:1.6; color:var(--text3); }
.crew-schedule-section-note { font-size:12px; line-height:1.6; color:var(--text3); margin-bottom:16px; }
.crew-schedule-shell .confirm-row { display:grid; grid-template-columns:1fr auto; gap:12px; align-items:start; padding:12px 0; border-top:1px solid var(--border); }
.crew-schedule-shell .confirm-row:first-child { border-top:none; padding-top:0; }
.crew-schedule-shell .confirm-status { display:inline-flex; align-items:center; padding:5px 10px; border-radius:999px; font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.1em; text-transform:uppercase; margin-top:2px; }
.crew-schedule-shell .st-pending { background:rgba(255,255,255,.06); color:var(--text2); }
.crew-schedule-shell .st-confirmed { background:rgba(61,232,138,.18); color:var(--green); }
.crew-schedule-shell .st-declined { background:rgba(255,71,87,.18); color:#ff8f8f; }
.crew-confirm-name { font-size:14px; font-weight:600; color:var(--text); line-height:1.3; }
.crew-confirm-name span { color:var(--text3); font-weight:400; }
.crew-confirm-meta { margin-top:3px; font-size:12px; color:var(--text3); line-height:1.4; }
.crew-confirm-rate { margin-top:5px; font-size:12px; color:var(--text2); }
.crew-confirm-rate-form { display:grid; grid-template-columns:minmax(90px, 120px) minmax(90px, 110px) auto; gap:7px; align-items:end; margin-top:7px; max-width:390px; }
.crew-confirm-rate-form label { display:flex; flex-direction:column; gap:4px; min-width:0; margin:0; }
.crew-confirm-rate-form label span { font-size:9px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--text3); }
.crew-confirm-rate-form input,
.crew-confirm-rate-form select { width:100%; min-width:0; min-height:28px; padding:4px 7px; border-radius:8px; border:1px solid var(--border); background:rgba(0,0,0,.16); color:var(--text); font-size:12px; }
.crew-confirm-rate-form .btn { min-height:28px; white-space:nowrap; }
.crew-confirm-rate-form__hint { grid-column:1 / -1; margin-top:-2px; font-size:11px; color:var(--text3); }
.crew-check-label { display:flex; gap:8px; align-items:center; font-size:13px; color:var(--text2); }
.confirm-actions { display:flex; gap:6px; flex-wrap:wrap; margin-top:6px; }
.confirm-actions form { margin:0; }
.crew-booking-inbox-card .crew-schedule-card__body { padding-top:10px; }
.crew-booking-inbox__decision { display:inline-flex; align-items:center; min-height:30px; padding:0 10px; border:1px solid rgba(232,255,71,.26); border-radius:999px; background:rgba(232,255,71,.08); font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.09em; text-transform:uppercase; color:var(--accent); white-space:nowrap; }
.crew-booking-inbox { display:flex; flex-direction:column; gap:9px; }
.crew-booking-group { border:1px solid var(--border); border-radius:16px; background:rgba(255,255,255,.018); overflow:visible; }
.crew-booking-group__summary { display:flex; justify-content:space-between; align-items:center; gap:12px; min-height:44px; padding:9px 12px; list-style:none; cursor:pointer; }
.crew-booking-group__summary::-webkit-details-marker,
.crew-booking-more > summary::-webkit-details-marker,
.crew-booking-rate > summary::-webkit-details-marker { display:none; }
.crew-booking-group__summary span { min-width:0; display:flex; flex-direction:column; gap:2px; }
.crew-booking-group__summary strong { font-size:13px; line-height:1.2; color:var(--text); }
.crew-booking-group__summary small { font-size:11px; line-height:1.35; color:var(--text3); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.crew-booking-group__summary b { display:inline-flex; align-items:center; justify-content:center; min-width:28px; height:24px; padding:0 8px; border:1px solid var(--border); border-radius:999px; background:rgba(255,255,255,.035); font-family:'DM Mono',monospace; font-size:10px; color:var(--text2); }
.crew-booking-list { display:flex; flex-direction:column; border-top:1px solid rgba(255,255,255,.06); }
.crew-booking-row { position:relative; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:center; min-height:54px; padding:8px 12px; border-top:1px solid rgba(255,255,255,.045); }
.crew-booking-row:first-child { border-top:none; }
.crew-booking-row__main { min-width:0; }
.crew-booking-row__name { font-size:13px; font-weight:800; line-height:1.18; color:var(--text); }
.crew-booking-row__meta { margin-top:3px; font-size:12px; line-height:1.35; color:var(--text2); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.crew-booking-row__sub { margin-top:2px; font-size:11px; line-height:1.3; color:var(--text3); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.crew-booking-row__window { margin-top:2px; font-size:11px; line-height:1.35; color:var(--text2); }
.crew-booking-row__window--avail { display:flex; flex-wrap:wrap; align-items:center; gap:6px; color:var(--text3); }
.crew-booking-row__wlabel { font-family:'DM Mono',monospace; font-size:9px; letter-spacing:.06em; text-transform:uppercase; color:var(--text3); }
.crew-coverage-pill { display:inline-flex; align-items:center; min-height:18px; padding:0 8px; border-radius:999px; border:1px solid transparent; font-family:'DM Mono',monospace; font-size:9px; letter-spacing:.05em; text-transform:uppercase; white-space:nowrap; }
.crew-coverage-pill--full { color:#7ee0a8; border-color:rgba(126,224,168,.32); background:rgba(126,224,168,.10); }
.crew-coverage-pill--partial { color:#e8d36b; border-color:rgba(232,211,107,.32); background:rgba(232,211,107,.10); }
.crew-coverage-pill--outside { color:#f0a35e; border-color:rgba(240,163,94,.32); background:rgba(240,163,94,.10); }
.crew-coverage-pill--none { color:var(--text3); border-color:var(--border); background:rgba(255,255,255,.03); }
.crew-coverage-pill--conflict { color:#f08a8a; border-color:rgba(240,138,138,.34); background:rgba(240,138,138,.12); }
.crew-booking-subgroup__head { display:flex; align-items:center; gap:8px; padding:7px 12px 3px; font-family:'DM Mono',monospace; font-size:9px; letter-spacing:.09em; text-transform:uppercase; color:var(--text3); border-top:1px solid rgba(255,255,255,.05); }
.crew-booking-subgroup__head:first-child { border-top:none; }
.crew-booking-subgroup__count { display:inline-flex; align-items:center; justify-content:center; min-width:16px; height:16px; padding:0 5px; border-radius:999px; background:rgba(255,255,255,.05); font-size:9px; color:var(--text2); }
.crew-booking-row__actions { display:flex; justify-content:flex-end; align-items:center; gap:6px; flex-wrap:wrap; }
.crew-booking-row__actions form { margin:0; }
.crew-booking-more { position:relative; }
/* "More" trigger stays a compact pill toggle. */
.crew-booking-more > summary { display:inline-flex; align-items:center; min-height:26px; padding:0 9px; border:1px solid var(--border); border-radius:999px; list-style:none; cursor:pointer; font-family:'DM Mono',monospace; font-size:9px; letter-spacing:.08em; text-transform:uppercase; color:var(--text3); background:rgba(255,255,255,.025); }
.crew-booking-more > summary::-webkit-details-marker { display:none; }
.crew-booking-more[open] > summary { color:var(--accent); border-color:rgba(232,255,71,.28); background:rgba(232,255,71,.08); }
/* Unified dropdown surface: elevated opaque dark card, blue-gray border, soft shadow,
   raised above the action buttons behind it so it never visually merges with them. */
.crew-booking-more__menu { position:absolute; top:calc(100% + 6px); right:0; z-index:60; display:flex; flex-direction:column; gap:2px; min-width:224px; padding:6px; border:1px solid rgba(118,140,170,.24); border-radius:12px; background:#11151e; box-shadow:0 22px 54px rgba(0,0,0,.6), 0 2px 8px rgba(0,0,0,.45); }
/* Every menu action — buttons and details toggles — shares one consistent row. */
.crew-booking-more__item { display:flex; align-items:center; justify-content:flex-start; gap:8px; width:100%; min-height:34px; padding:7px 10px; margin:0; border:1px solid transparent; border-radius:8px; background:transparent; color:var(--text2); font-family:inherit; font-size:12px; font-weight:600; line-height:1.2; text-align:left; text-transform:none; letter-spacing:normal; list-style:none; cursor:pointer; transition:background .12s ease, color .12s ease; }
.crew-booking-more__item::-webkit-details-marker { display:none; }
.crew-booking-more__item:hover { background:rgba(255,255,255,.06); color:var(--text); }
.crew-booking-more__menu > details[open] > .crew-booking-more__item { background:rgba(255,255,255,.05); color:var(--text); }
.crew-booking-more__item--primary { color:var(--accent); }
.crew-booking-more__item--primary:hover { background:rgba(232,255,71,.10); color:var(--accent); }
.crew-booking-more__item[disabled], .crew-booking-more__item--disabled { opacity:.45; cursor:not-allowed; }
.crew-booking-more__item[disabled]:hover, .crew-booking-more__item--disabled:hover { background:transparent; color:var(--text2); }
/* Section labels are subtle muted dividers, not pills/buttons. */
.crew-booking-more__section { padding:8px 10px 3px; margin-top:2px; border-top:1px solid rgba(255,255,255,.06); font-family:'DM Mono',monospace; font-size:9px; letter-spacing:.1em; text-transform:uppercase; color:var(--text3); }
.crew-booking-more__section:first-child { border-top:none; margin-top:0; }
.crew-booking-rate { display:grid; gap:6px; }
.crew-booking-rate__form { display:grid; gap:6px; padding:2px 4px 4px; }
.crew-booking-rate__form input,
.crew-booking-rate__form select { width:100%; min-width:0; min-height:30px; padding:5px 8px; border-radius:8px; border:1px solid var(--border); background:rgba(0,0,0,.16); color:var(--text); font-size:12px; }
.crew-booking-detail, .crew-booking-adjust, .crew-booking-move { display:grid; gap:4px; }
.crew-booking-detail__body { display:grid; gap:3px; padding:6px 2px 2px; font-size:11px; line-height:1.4; color:var(--text2); }
.crew-booking-detail__alert, .crew-booking-move__alert { color:#f08a8a; }
.crew-booking-adjust__form, .crew-booking-move__form { display:grid; gap:6px; padding-top:2px; }
.crew-booking-adjust__hint { font-size:10px; color:var(--text3); }
.crew-booking-adjust__form label, .crew-booking-move__opt { display:grid; gap:3px; font-size:11px; color:var(--text2); }
.crew-booking-adjust__form input[type=datetime-local], .crew-booking-adjust__form textarea, .crew-booking-move__form input[type=text] { width:100%; min-width:0; min-height:30px; padding:5px 8px; border-radius:8px; border:1px solid var(--border); background:rgba(0,0,0,.16); color:var(--text); font-size:12px; }
.crew-booking-adjust__check, .crew-booking-move__check { display:flex; align-items:center; gap:6px; font-size:11px; color:var(--text3); }
.crew-booking-move__opt { grid-template-columns:auto 1fr; align-items:start; gap:7px; padding:5px 6px; border:1px solid var(--border); border-radius:9px; cursor:pointer; }
.crew-booking-move__opt span { display:grid; gap:1px; min-width:0; }
.crew-booking-move__opt strong { font-size:12px; color:var(--text); }
.crew-booking-move__opt small { font-size:10px; line-height:1.35; color:var(--text3); }
.crew-booking-move__empty { padding:6px 2px; font-size:11px; color:var(--text3); }
.crew-booking-empty { padding:10px 12px; border-top:1px solid rgba(255,255,255,.06); font-size:12px; color:var(--text3); }
.crew-booking-inbox__bulk { display:flex; justify-content:flex-end; margin-top:12px; }
.crew-lineup-grid { display:flex; flex-direction:column; gap:12px; }
.crew-lineup-card { padding:12px 14px; border-radius:18px; border:1px solid var(--border); background:var(--surface2); }
.crew-lineup-card--muted { background:linear-gradient(180deg,var(--surface2),rgba(255,255,255,.02)); }
.crew-lineup-card__head { display:flex; justify-content:space-between; gap:14px; align-items:flex-start; margin-bottom:10px; }
.crew-lineup-card__title { font-family:'Syne',sans-serif; font-size:16px; font-weight:700; line-height:1.1; }
.crew-lineup-card__meta { margin-top:3px; font-size:12px; line-height:1.5; color:var(--text3); }
.crew-lineup-card__count { display:inline-flex; align-items:center; justify-content:center; padding:5px 10px; border-radius:999px; background:var(--surface); border:1px solid var(--border); font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--text2); white-space:nowrap; }
.crew-lineup-list { display:flex; flex-direction:column; gap:6px; }
.crew-lineup-row { display:flex; justify-content:space-between; gap:12px; align-items:center; padding:8px 10px; border-radius:14px; background:var(--surface); border:1px solid var(--border); }
.crew-lineup-row__name { font-size:13px; font-weight:600; color:var(--text); }
.crew-lineup-row__role { font-size:12px; color:var(--text3); }
.crew-lineup-empty { padding:8px 10px; border-radius:14px; background:var(--surface); border:1px dashed var(--border); font-size:12px; color:var(--text3); }
.crew-milestone-stack { display:flex; flex-direction:column; gap:10px; }
.crew-milestone-item { display:flex; flex-direction:column; gap:10px; padding:12px 14px; border-radius:18px; border:1px solid var(--border); background:var(--surface2); }
.crew-milestone-item__head { display:flex; justify-content:space-between; gap:10px; align-items:flex-start; }
.crew-milestone-item__title { font-family:'Syne',sans-serif; font-size:15px; font-weight:700; line-height:1.1; }
.crew-milestone-item__time { font-family:'DM Mono',monospace; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--text3); margin-top:3px; }
.crew-milestone-item__note { font-size:12px; line-height:1.6; color:var(--text2); }
.crew-milestone-item__lineup { display:flex; flex-direction:column; gap:6px; }
.crew-milestone-item__actions { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.crew-milestone-item__actions form { margin:0; }
.crew-milestone-item__edit { display:flex; flex-direction:column; gap:12px; padding-top:12px; border-top:1px solid var(--border); }
.crew-milestone-item__orphan { display:flex; align-items:center; gap:8px; flex-wrap:wrap; padding:6px 10px; border-radius:8px; background:rgba(255,180,0,.06); border:1px solid rgba(255,180,0,.18); }
.crew-milestone-orphan-label { font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:rgba(255,180,0,.8); flex-shrink:0; }
.crew-milestone-item__merge-form { display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin:0; }
.crew-milestone-item__merge-select { flex:1; min-width:0; max-width:220px; padding:4px 8px; border-radius:8px; border:1px solid var(--border); background:rgba(0,0,0,.25); color:var(--text); font-family:'DM Sans',sans-serif; font-size:12px; color-scheme:dark; outline:none; cursor:pointer; }
.crew-milestone-item__merge-select:focus { border-color:rgba(240,255,71,.35); }
.crew-milestone-item__merge-select option { background:var(--surface2); color:var(--text); }
.schedule-id-debug { font-size:10px; font-weight:400; color:var(--text3); margin-left:6px; opacity:.55; font-family:'DM Mono',monospace; }
.crew-scheduler-strip { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; overflow:hidden; margin:0 0 16px; border:1px solid var(--border); border-radius:20px; background:var(--border); }
.crew-scheduler-strip__stat { padding:14px 16px; background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.018)); }
.crew-scheduler-strip__stat strong { display:block; font-family:'Syne',sans-serif; font-size:28px; line-height:1; letter-spacing:-.04em; color:var(--text); }
.crew-scheduler-strip__stat span { display:block; margin-top:5px; font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--text3); }
.crew-timeline { margin:16px 0; padding:14px; border:1px solid var(--border); border-radius:22px; background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.012)); overflow:hidden; }
.crew-timeline__head { display:flex; justify-content:space-between; gap:14px; align-items:flex-start; margin-bottom:14px; }
.crew-timeline__title { font-family:'Syne',sans-serif; font-size:20px; line-height:1.05; letter-spacing:-.04em; font-weight:800; color:var(--text); }
.crew-timeline__meta { margin-top:4px; font-size:12px; color:var(--text3); }
.crew-timeline__legend { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; font-family:'DM Mono',monospace; font-size:9px; letter-spacing:.1em; text-transform:uppercase; color:var(--text3); }
.crew-timeline__legend span { display:inline-flex; gap:6px; align-items:center; padding:5px 8px; border:1px solid var(--border); border-radius:999px; background:rgba(255,255,255,.02); }
.crew-timeline__legend i { width:10px; height:10px; border-radius:999px; display:inline-block; }
.crew-timeline__legend .is-anchor { background:var(--accent); }
.crew-timeline__legend .is-open { background:var(--orange); }
.crew-timeline__legend .is-needs { background:var(--red); }
.crew-timeline__legend .is-partial { background:var(--orange); }
.crew-timeline__legend .is-covered { background:var(--green); }
.crew-timeline__days { display:flex; flex-direction:column; gap:10px; }
.crew-timeline__day { border:1px solid rgba(255,255,255,.08); border-radius:18px; overflow:hidden; background:rgba(0,0,0,.12); }
.crew-timeline__day-head { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; padding:10px 12px; border-bottom:1px solid var(--border); background:rgba(255,255,255,.025); }
.crew-timeline__day-title { font-family:'Syne',sans-serif; font-size:15px; line-height:1.1; font-weight:800; color:var(--text); }
.crew-timeline__day-meta { margin-top:4px; font-size:11px; color:var(--text3); line-height:1.4; }
.crew-timeline__calls { display:flex; flex-direction:column; }
.crew-timeline__call { border-top:1px solid rgba(255,255,255,.06); }
.crew-timeline__call:first-child { border-top:0; }
.crew-timeline__call-head { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; padding:8px 12px; background:rgba(255,255,255,.015); }
.crew-timeline__call-title { font-size:12px; font-weight:800; color:var(--text); line-height:1.2; }
.crew-timeline__call-meta { margin-top:3px; font-family:'DM Mono',monospace; font-size:9.5px; line-height:1.4; color:var(--text3); text-transform:uppercase; letter-spacing:.08em; }
.crew-timeline__grid { display:grid; grid-template-columns:minmax(150px,22%) minmax(0,1fr); gap:0; overflow:hidden; padding-bottom:1px; }
.crew-timeline__labels,
.crew-timeline__label { position:sticky; left:0; z-index:3; background:rgba(15,18,26,.96); border-right:1px solid var(--border); }
.crew-timeline__labels { min-height:30px; border-bottom:1px solid var(--border); }
.crew-timeline__label { min-height:44px; padding:8px 10px; border-bottom:1px solid rgba(255,255,255,.06); }
.crew-timeline__label strong { display:block; font-size:12px; color:var(--text); line-height:1.15; }
.crew-timeline__label span { display:block; margin-top:3px; font-size:10px; line-height:1.25; color:var(--text3); }
.crew-timeline__track { position:relative; min-width:0; min-height:44px; border-bottom:1px solid rgba(255,255,255,.06); background:repeating-linear-gradient(90deg, rgba(255,255,255,.035) 0 1px, transparent 1px calc(100% / var(--timeline-hours, 10))); }
.crew-timeline__track--scale { min-height:30px; border-bottom:1px solid var(--border); background:rgba(255,255,255,.018); }
.crew-timeline__marker { position:absolute; top:0; bottom:0; width:1px; background:rgba(255,255,255,.1); }
.crew-timeline__marker span { position:absolute; top:8px; left:5px; font-family:'DM Mono',monospace; font-size:9.5px; letter-spacing:.02em; color:var(--text2); white-space:nowrap; text-shadow:0 1px 3px rgba(0,0,0,.45); }
.crew-timeline__anchor { position:absolute; top:6px; bottom:6px; width:2px; background:var(--accent); box-shadow:0 0 14px rgba(232,255,71,.2); }
.crew-timeline__anchor span { position:absolute; left:7px; bottom:2px; max-width:48px; overflow:hidden; text-overflow:clip; white-space:nowrap; padding:1px 4px; border-radius:999px; background:rgba(15,18,26,.86); font-family:'DM Mono',monospace; font-size:9px; line-height:1.2; color:var(--accent); opacity:.95; }
.crew-timeline__bar { position:absolute; display:flex; align-items:center; min-width:18px; overflow:hidden; border-radius:999px; white-space:nowrap; appearance:none; padding:0; font:inherit; text-align:left; cursor:default; }
.crew-timeline__bar span { overflow:hidden; text-overflow:ellipsis; padding:0 10px; line-height:1; }
.crew-timeline__bar--function { top:11px; height:20px; border:1px solid rgba(232,255,71,.34); background:rgba(232,255,71,.24); color:#171a12; font-size:11px; font-weight:800; text-shadow:none; }
.crew-timeline__bar--open { background:rgba(255,199,71,.16); border-color:rgba(255,199,71,.26); }
.crew-timeline__bar--needs { background:rgba(255,71,87,.18); border-color:rgba(255,71,87,.34); color:#fff; }
.crew-timeline__bar--partial { background:rgba(255,199,71,.22); border-color:rgba(255,199,71,.35); }
.crew-timeline__bar--covered { background:rgba(61,232,138,.16); border-color:rgba(61,232,138,.28); }
.crew-timeline__bar[data-timeline-roster-trigger] { cursor:pointer; }
.crew-timeline__bar[data-timeline-roster-trigger]:hover { filter:brightness(1.12); }
.crew-timeline__bar[data-timeline-roster-trigger]:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.crew-scheduler-board { display:flex; flex-direction:column; gap:16px; }
.crew-scheduler-quick-add { margin:12px 0 16px; border:1px solid var(--border); border-radius:18px; background:rgba(255,255,255,.025); }
.crew-scheduler-quick-add summary { display:flex; justify-content:space-between; gap:12px; align-items:center; list-style:none; cursor:pointer; padding:12px 14px; font-size:13px; color:var(--text2); }
.crew-scheduler-quick-add summary::-webkit-details-marker { display:none; }
.crew-scheduler-quick-add summary span { font-family:'Syne',sans-serif; font-weight:700; color:var(--text); }
.crew-scheduler-quick-add summary small { color:var(--text3); font-size:11px; line-height:1.4; }
.crew-scheduler-quick-add form { padding:0 14px 14px; }
.crew-milestone-tray { margin:12px 0 16px; border:1px solid var(--border); border-radius:18px; background:rgba(255,255,255,.02); }
.crew-milestone-tray summary { display:flex; justify-content:space-between; gap:12px; align-items:center; padding:12px 14px; list-style:none; cursor:pointer; color:var(--text2); }
.crew-milestone-tray summary::-webkit-details-marker { display:none; }
.crew-milestone-tray summary span { font-family:'Syne',sans-serif; font-weight:800; color:var(--text); }
.crew-milestone-tray summary small { font-size:11px; color:var(--text3); }
.crew-milestone-tray__grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:10px; align-items:start; padding:0 14px 14px; }
.crew-milestone-mini { min-width:0; scroll-margin-top:112px; border:1px solid var(--border); border-radius:16px; background:rgba(255,255,255,.025); padding:10px; }
.crew-milestone-mini.is-open { grid-column:span 2; border-color:rgba(232,255,71,.28); background:rgba(232,255,71,.04); }
.crew-milestone-mini__head { display:flex; justify-content:space-between; gap:10px; align-items:flex-start; }
.crew-milestone-mini__time { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--accent); }
.crew-milestone-mini__title { margin-top:3px; font-weight:800; color:var(--text); line-height:1.15; }
.crew-milestone-mini__counts { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:5px; max-width:150px; }
.crew-milestone-mini__counts span,
.crew-milestone-mini__roles span,
.crew-scheduler-group__rolechips span { display:inline-flex; align-items:center; gap:4px; padding:4px 7px; border:1px solid var(--border); border-radius:999px; background:rgba(255,255,255,.025); font-family:'DM Mono',monospace; font-size:9px; letter-spacing:.08em; text-transform:uppercase; color:var(--text3); white-space:nowrap; }
.crew-milestone-mini__roles { display:flex; flex-wrap:wrap; gap:5px; margin-top:9px; }
.crew-milestone-mini__actions { display:flex; gap:6px; flex-wrap:wrap; margin-top:10px; }
.crew-scheduler-inline-form--compact { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:10px -10px -10px; border-top:1px solid var(--border); border-bottom:none; border-radius:0 0 16px 16px; }
.crew-scheduler-inline-form--compact .field,
.crew-scheduler-inline-form--compact .crew-scheduler-inline-actions { min-width:0; }
.crew-scheduler-inline-form--compact .field input,
.crew-scheduler-inline-form--compact .field select,
.crew-scheduler-inline-form--compact .field textarea { min-width:0; }
@media (max-width:1180px) {
  .crew-milestone-mini.is-open { grid-column:1 / -1; }
}
@media (max-width:720px) {
  .crew-milestone-tray summary { align-items:flex-start; flex-direction:column; }
  .crew-milestone-tray__grid { grid-template-columns:1fr; }
  .crew-milestone-mini.is-open,
  .crew-scheduler-inline-form--compact { grid-column:1 / -1; grid-template-columns:1fr; }
}
.crew-scheduler-create { padding:16px 18px; border:1px dashed rgba(232,255,71,.28); border-radius:22px; background:linear-gradient(135deg, rgba(232,255,71,.08), rgba(255,255,255,.018)); }
.crew-scheduler-create.is-open { border-style:solid; border-color:var(--border); }
.crew-scheduler-create__head { display:flex; justify-content:space-between; gap:14px; align-items:flex-start; }
.crew-scheduler-create__title { font-family:'Syne',sans-serif; font-size:20px; font-weight:700; line-height:1.05; }
.crew-scheduler-create__meta { margin-top:4px; font-size:12px; line-height:1.6; color:var(--text3); max-width:620px; }
.crew-scheduler-create__form { margin-top:14px; }
.crew-milestone-picker { display:grid; grid-template-columns:repeat(auto-fill,minmax(235px,235px)); gap:10px; align-items:stretch; }
.crew-milestone-picker__card { position:relative; display:flex; flex-direction:column; justify-content:flex-end; gap:6px; width:235px; min-height:135px; padding:14px; border:1px solid var(--border); border-radius:18px; background:rgba(255,255,255,.025); cursor:pointer; overflow:hidden; transition:border-color .14s ease, background .14s ease, transform .14s ease; }
.crew-milestone-picker__card:hover { border-color:var(--border2); background:rgba(255,255,255,.04); transform:translateY(-1px); }
.crew-milestone-picker__card input { position:absolute; inset:0; opacity:0; cursor:pointer; }
.crew-milestone-picker__card:has(input:checked) { border-color:rgba(232,255,71,.75); background:linear-gradient(135deg, rgba(232,255,71,.16), rgba(255,255,255,.035)); box-shadow:0 0 0 1px rgba(232,255,71,.12) inset; }
.crew-milestone-picker__check { position:absolute; top:10px; right:10px; display:inline-flex; align-items:center; justify-content:center; min-width:54px; min-height:24px; padding:0 8px; border:1px solid var(--border); border-radius:999px; background:rgba(255,255,255,.035); font-family:'DM Mono',monospace; font-size:9px; letter-spacing:.08em; text-transform:uppercase; color:var(--text3); }
.crew-milestone-picker__card:has(input:checked) .crew-milestone-picker__check { border-color:rgba(232,255,71,.45); background:rgba(232,255,71,.18); color:var(--accent); }
.crew-milestone-picker__time { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--accent); }
.crew-milestone-picker__card strong { max-width:175px; color:var(--text); font-family:'Syne',sans-serif; font-size:18px; line-height:1.05; }
.crew-milestone-picker__card small { display:-webkit-box; max-width:190px; overflow:hidden; -webkit-line-clamp:2; -webkit-box-orient:vertical; color:var(--text3); font-size:11px; line-height:1.35; }
@media (max-width:720px) {
  .crew-milestone-picker { grid-template-columns:1fr; }
  .crew-milestone-picker__card { width:100%; }
}
.crew-scheduler-group { scroll-margin-top:112px; border:1px solid var(--border); border-radius:22px; background:linear-gradient(180deg, rgba(255,255,255,.032), rgba(255,255,255,.012)); overflow:hidden; }
.crew-scheduler-group--anchor { border-style:dashed; border-color:rgba(232,255,71,.26); background:linear-gradient(180deg, rgba(232,255,71,.07), rgba(255,255,255,.014)); }
.crew-scheduler-group--call { border-radius:18px; background:linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.018)); }
.crew-scheduler-group.is-highlighted { border-color:rgba(255,255,255,.22); box-shadow:0 18px 40px rgba(0,0,0,.16); }
.crew-scheduler-group__head { display:flex; justify-content:space-between; gap:14px; align-items:flex-start; padding:14px; border-bottom:1px solid var(--border); background:rgba(255,255,255,.02); }
.crew-scheduler-group__edit { width:100%; }
.crew-scheduler-group__identity { display:flex; gap:12px; align-items:flex-start; min-width:0; }
.crew-scheduler-group__timecard { flex:0 0 82px; display:flex; flex-direction:column; justify-content:center; align-items:center; min-height:64px; padding:10px; border:1px solid rgba(255,255,255,.1); border-radius:16px; background:rgba(0,0,0,.18); text-align:center; }
.crew-scheduler-group__timecard strong { display:block; font-family:'Syne',sans-serif; font-size:21px; line-height:1; letter-spacing:-.05em; color:var(--text); }
.crew-scheduler-group__timecard span { display:block; margin-top:5px; font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--text3); }
.crew-scheduler-group__copy { min-width:0; }
.crew-scheduler-group__parent { margin-bottom:5px; font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--text3); }
.crew-scheduler-group__title { font-family:'Syne',sans-serif; font-size:20px; font-weight:700; line-height:1.05; }
.crew-scheduler-group__meta { margin-top:4px; font-size:12px; color:var(--text3); line-height:1.5; }
.crew-scheduler-group__summary { margin-top:8px; font-size:12px; color:var(--text2); line-height:1.5; }
.crew-scheduler-group__rolechips { display:flex; gap:5px; flex-wrap:wrap; margin-top:10px; }
.crew-scheduler-group__rolechips strong { color:var(--text); font-size:10px; }
.crew-scheduler-group__count { display:inline-flex; align-items:center; justify-content:center; padding:6px 12px; border-radius:999px; border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.05); font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--text2); white-space:nowrap; }
.crew-scheduler-group__tools { display:flex; align-items:center; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.crew-scheduler-group__tools form { margin:0; }
.crew-scheduler-inline-form { padding:16px 18px; border-bottom:1px solid var(--border); background:rgba(232,255,71,.035); }
.crew-scheduler-anchor-empty { padding:14px 18px; font-size:12px; line-height:1.6; color:var(--text3); background:rgba(255,255,255,.02); }
.crew-scheduler-table { display:flex; flex-direction:column; }
.crew-scheduler-table__head { display:grid; grid-template-columns:58px minmax(170px,1.2fr) 92px 92px 76px minmax(160px,1.1fr) 132px; gap:12px; padding:11px 16px; font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--text3); border-bottom:1px solid var(--border); }
.crew-scheduler-row { border-top:1px solid rgba(255,255,255,.05); }
.crew-scheduler-row:first-child { border-top:none; }
.crew-scheduler-row__summary { list-style:none; display:grid; grid-template-columns:58px minmax(170px,1.2fr) 92px 92px 76px minmax(160px,1.1fr) 132px; gap:12px; align-items:center; padding:11px 16px; cursor:pointer; }
.crew-scheduler-row__summary::-webkit-details-marker { display:none; }
.crew-scheduler-row__summary:hover { background:rgba(255,255,255,.025); }
.crew-scheduler-row[open] .crew-scheduler-row__summary,
.crew-scheduler-row.is-selected .crew-scheduler-row__summary { background:linear-gradient(90deg, rgba(232,255,71,.075), rgba(255,255,255,.025)); }
.crew-scheduler-row__qty,
.crew-scheduler-row__time,
.crew-scheduler-row__hours { font-family:'DM Mono',monospace; font-size:12px; color:var(--text2); }
.crew-scheduler-row__qty { display:inline-flex; width:34px; height:28px; align-items:center; justify-content:center; border-radius:10px; background:rgba(232,255,71,.1); color:var(--accent); }
.crew-scheduler-row__role { display:flex; flex-direction:column; gap:3px; min-width:0; }
.crew-scheduler-row__role strong { font-size:14px; font-weight:700; color:var(--text); }
.crew-scheduler-row__role-meta { display:inline-flex; align-items:center; gap:6px; font-size:11px; line-height:1.4; color:var(--text3); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.crew-scheduler-row__crew { display:flex; align-items:center; gap:7px; flex-wrap:wrap; font-size:13px; color:var(--text2); }
.crew-scheduler-row__notify-flag { display:inline-flex; align-items:center; padding:3px 7px; border-radius:999px; border:1px solid rgba(255,179,71,.28); background:rgba(255,179,71,.10); color:var(--orange); font-family:'DM Mono',monospace; font-size:9px; font-style:normal; letter-spacing:.08em; text-transform:uppercase; white-space:nowrap; }
.crew-scheduler-row__muted { color:var(--text3); }
.crew-scheduler-row__status { justify-self:start; display:inline-flex; align-items:center; padding:6px 10px; border-radius:999px; border:1px solid rgba(255,255,255,.12); font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.1em; text-transform:uppercase; }
.crew-scheduler-row__status[data-roster-dialog-trigger] { cursor:pointer; transition:border-color .15s ease, background .15s ease, color .15s ease; }
.crew-scheduler-row__status[data-roster-dialog-trigger]:hover { border-color:rgba(232,255,71,.3); color:var(--accent); background:rgba(232,255,71,.08); }
.crew-scheduler-row__status--covered { background:rgba(61,232,138,.18); color:var(--green); }
.crew-scheduler-row__status--partial { background:rgba(255,199,71,.12); color:#f6c24b; }
.crew-scheduler-row__status--needs { background:rgba(255,71,87,.14); color:#ff6b76; }
.crew-scheduler-row__status--open { background:rgba(255,255,255,.05); color:var(--text2); }

/* Coverage Board — producer-facing crew booking surface */
.stat-card--alert { border-color:rgba(255,71,87,.4); box-shadow:0 0 0 1px rgba(255,71,87,.12) inset; }
.coverage-board__summary { font-family:'DM Mono',monospace; font-size:12px; letter-spacing:.02em; color:var(--text2); margin-bottom:14px; }
.coverage-board__summary strong { color:var(--text); }
.coverage-board__filters { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.coverage-filter { display:inline-flex; align-items:center; gap:6px; padding:6px 12px; border:1px solid var(--border); border-radius:999px; background:rgba(255,255,255,.02); color:var(--text2); font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.1em; text-transform:uppercase; cursor:pointer; transition:border-color .15s ease, color .15s ease, background .15s ease; }
.coverage-filter:hover { color:var(--text); border-color:rgba(232,255,71,.3); }
.coverage-filter span { font-weight:700; opacity:.75; }
.coverage-filter.is-active { background:var(--accent); border-color:var(--accent); color:#000; }
.coverage-filter.is-active span { opacity:1; }
.coverage-filter--needs.is-active { background:var(--red); border-color:var(--red); color:#fff; }
.coverage-filter--ready.is-active,
.coverage-filter--motion.is-active { background:var(--orange); border-color:var(--orange); color:#1d1500; }
.coverage-filter--booked.is-active { background:var(--green); border-color:var(--green); color:#06231a; }
.coverage-board__rows { display:flex; flex-direction:column; gap:8px; }
.coverage-row { display:grid; grid-template-columns:minmax(180px,1.4fr) minmax(160px,1.6fr) auto auto; align-items:center; gap:14px; width:100%; text-align:left; padding:12px 14px 12px 16px; border:1px solid var(--border); border-left:3px solid var(--border); border-radius:12px; background:rgba(255,255,255,.02); color:var(--text); cursor:pointer; transition:border-color .15s ease, background .15s ease, transform .15s ease; }
.coverage-row:hover { background:rgba(255,255,255,.05); border-color:rgba(232,255,71,.25); transform:translateY(-1px); }
.coverage-row--needs { border-left-color:var(--red); }
.coverage-row--partial { border-left-color:var(--orange); }
.coverage-row--covered { border-left-color:var(--green); }
.coverage-row__lead { display:flex; flex-direction:column; gap:3px; min-width:0; }
.coverage-row__role { font-family:'Syne',sans-serif; font-weight:700; font-size:14px; color:var(--text); }
.coverage-row__where { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.04em; color:var(--text3); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.coverage-row__counts { font-family:'DM Mono',monospace; font-size:11px; color:var(--text2); }
.coverage-row__status { justify-self:start; padding:4px 10px; border-radius:999px; font-family:'DM Mono',monospace; font-size:9px; letter-spacing:.1em; text-transform:uppercase; white-space:nowrap; }
.coverage-row__action { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.06em; text-transform:uppercase; color:var(--accent); white-space:nowrap; }
.coverage-board__empty { padding:18px; text-align:center; color:var(--text3); font-family:'DM Mono',monospace; font-size:11px; }
.confirm-more { position:relative; }
.confirm-more > summary { list-style:none; cursor:pointer; font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--text3); padding:5px 8px; border:1px solid var(--border); border-radius:8px; display:inline-block; }
.confirm-more > summary::-webkit-details-marker { display:none; }
.confirm-more[open] > summary { color:var(--text2); border-color:rgba(232,255,71,.25); }
.confirm-more__body { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
@media (max-width:720px) {
  .coverage-row { grid-template-columns:1fr auto; row-gap:8px; }
  .coverage-row__counts { grid-column:1 / -1; }
  .coverage-row__action { grid-column:1 / -1; }
}
.crew-scheduler-row__detail { display:flex; flex-direction:column; gap:14px; padding:0 18px 18px; border-top:1px solid rgba(255,255,255,.05); background:rgba(0,0,0,.08); }
.crew-scheduler-row__detail-top { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; padding-top:14px; }
.crew-scheduler-row__detail-grid { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:12px; }
.crew-scheduler-row__detail-copy { display:flex; flex-direction:column; gap:6px; }
.crew-scheduler-row__detail-title { font-size:16px; font-weight:700; color:var(--text); }
.crew-scheduler-row__detail-meta { font-size:12px; line-height:1.6; color:var(--text3); }
.crew-scheduler-row__detail-note { font-size:13px; line-height:1.7; color:var(--text2); }
.crew-scheduler-row__detail-actions { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.crew-scheduler-detail-card { padding:12px 14px; border-radius:16px; border:1px solid var(--border); background:rgba(255,255,255,.025); }
.crew-scheduler-detail-card__title { font-size:13px; font-weight:700; color:var(--text); }
.crew-scheduler-detail-card__meta { margin-top:6px; font-size:12px; line-height:1.6; color:var(--text3); }
.crew-scheduler-rate-form { display:grid; grid-template-columns:minmax(0, 1fr) minmax(96px, .7fr) auto; gap:8px; align-items:end; margin-top:12px; }
.crew-scheduler-rate-disclosure { margin-top:8px; }
.crew-scheduler-rate-disclosure summary { display:inline-flex; align-items:center; min-height:26px; padding:0 9px; border:1px solid var(--border); border-radius:999px; list-style:none; cursor:pointer; font-family:'DM Mono',monospace; font-size:9px; letter-spacing:.08em; text-transform:uppercase; color:var(--text3); background:rgba(255,255,255,.025); }
.crew-scheduler-rate-disclosure summary::-webkit-details-marker { display:none; }
.crew-scheduler-rate-disclosure[open] summary { color:var(--accent); border-color:rgba(232,255,71,.28); background:rgba(232,255,71,.08); }
.crew-scheduler-rate-form label { display:flex; flex-direction:column; gap:5px; min-width:0; margin:0; }
.crew-scheduler-rate-form label span { font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--text3); }
.crew-scheduler-rate-form input,
.crew-scheduler-rate-form select { width:100%; min-width:0; min-height:30px; padding:5px 8px; border-radius:8px; border:1px solid var(--border); background:rgba(0,0,0,.16); color:var(--text); font-size:12px; }
.crew-scheduler-rate-form .btn { min-height:30px; white-space:nowrap; }
.crew-scheduler-rate-form__hint { grid-column:1 / -1; margin-top:-2px; font-size:11px; color:var(--text3); }
.crew-scheduler-notify-callout { display:flex; flex-direction:column; gap:3px; margin-top:10px; padding:10px 12px; border:1px solid rgba(255,179,71,.24); border-radius:14px; background:rgba(255,179,71,.08); color:var(--text2); font-size:12px; line-height:1.45; }
.crew-scheduler-notify-callout strong { color:var(--orange); font-size:12px; }
.crew-scheduler-assignee-list { display:flex; flex-direction:column; gap:8px; margin-top:10px; }
.crew-scheduler-assignee { display:flex; justify-content:space-between; gap:12px; align-items:center; padding:10px 12px; border-radius:14px; border:1px solid rgba(255,255,255,.06); background:rgba(0,0,0,.12); }
.crew-scheduler-assignee__copy { min-width:0; }
.crew-scheduler-assignee__name { font-size:13px; font-weight:600; color:var(--text); }
.crew-scheduler-assignee__meta { margin-top:3px; font-size:12px; line-height:1.5; color:var(--text3); }
.crew-scheduler-assignee__actions { display:flex; gap:8px; flex-wrap:wrap; }
.crew-scheduler-planner .crew-schedule-card__body { padding-top:0; }
.crew-scheduler-planner__empty { padding:10px 0 0; font-size:12px; line-height:1.5; color:var(--text3); }
.crew-scheduler-planner__body { display:flex; flex-direction:column; gap:9px; }
.crew-scheduler-planner__top { display:flex; justify-content:space-between; gap:10px; align-items:flex-start; }
.crew-scheduler-planner__title { font-family:'Syne',sans-serif; font-size:18px; line-height:1.05; letter-spacing:-.04em; font-weight:800; color:var(--text); }
.crew-scheduler-planner__meta { margin-top:3px; font-size:11px; line-height:1.45; color:var(--text3); }
.crew-scheduler-planner__status { display:inline-flex; align-items:center; padding:5px 8px; border:1px solid var(--border); border-radius:999px; font-family:'DM Mono',monospace; font-size:9px; letter-spacing:.1em; text-transform:uppercase; color:var(--text2); white-space:nowrap; }
.crew-scheduler-planner__chips { display:flex; flex-wrap:wrap; gap:6px; }
.crew-scheduler-planner__chips span { display:inline-flex; align-items:center; gap:4px; padding:5px 8px; border:1px solid var(--border); border-radius:999px; font-size:11px; color:var(--text3); background:rgba(255,255,255,.02); }
.crew-scheduler-planner__chips strong { font-family:'DM Mono',monospace; font-size:11px; color:var(--text); }
.crew-scheduler-planner__crew { font-size:12px; line-height:1.5; color:var(--text2); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.crew-scheduler-planner__notes { border-top:1px solid var(--border); padding-top:8px; font-size:12px; color:var(--text3); }
.crew-scheduler-planner__notes summary { cursor:pointer; list-style:none; font-family:'DM Mono',monospace; font-size:9px; letter-spacing:.12em; text-transform:uppercase; color:var(--text3); }
.crew-scheduler-planner__notes summary::-webkit-details-marker { display:none; }
.crew-scheduler-planner__notes div { margin-top:7px; line-height:1.55; color:var(--text2); }
.crew-scheduler-summary { display:flex; flex-direction:column; gap:10px; }
.crew-scheduler-summary__row { display:flex; justify-content:space-between; gap:12px; align-items:center; padding:10px 0; border-bottom:1px solid var(--border); font-size:13px; color:var(--text2); }
.crew-scheduler-summary__row:last-child { border-bottom:none; padding-bottom:0; }
.crew-scheduler-summary__row strong { font-family:'Syne',sans-serif; font-size:20px; color:var(--text); }
.crew-scheduler-summary__actions { display:flex; gap:8px; flex-wrap:wrap; margin-top:16px; }
.crew-scheduler-inline-actions { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.crew-timecard-admin-list { display:grid; gap:10px; }
.crew-timecard-admin { display:grid; gap:10px; padding:12px; border:1px solid var(--border); border-radius:16px; background:rgba(255,255,255,.025); }
.crew-timecard-admin.is-open { border-color:rgba(232,255,71,.28); background:rgba(232,255,71,.055); }
.crew-timecard-admin__head { display:flex; justify-content:space-between; gap:10px; align-items:flex-start; }
.crew-timecard-admin__name { font-size:14px; font-weight:800; color:var(--text); line-height:1.2; }
.crew-timecard-admin__meta { margin-top:3px; font-size:11px; line-height:1.4; color:var(--text3); overflow-wrap:anywhere; }
.crew-timecard-admin__status { display:inline-flex; align-items:center; min-height:24px; padding:0 8px; border:1px solid var(--border); border-radius:999px; background:rgba(255,255,255,.04); font-family:'DM Mono',monospace; font-size:9px; letter-spacing:.08em; text-transform:uppercase; color:var(--text2); white-space:nowrap; }
.crew-timecard-admin.is-open .crew-timecard-admin__status { border-color:rgba(232,255,71,.28); color:var(--accent); }
.crew-timecard-admin__form { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.crew-timecard-admin__form .field { margin:0; }
.crew-timecard-admin__form .field input { min-height:34px; font-size:12px; }
.crew-timecard-admin__actions,
.crew-timecard-admin__delete { display:flex; justify-content:flex-end; gap:8px; margin:0; }
.crew-timecard-admin__actions { grid-column:1 / -1; }

html.theme-light .crew-schedule-hero { background:linear-gradient(180deg,#ffffff,#f7f8fc); }
html.theme-light .crew-coverage-pill { background:#f5f7fb; }
html.theme-light .crew-coverage-pill--warn { background:rgba(255,209,102,.14); border-color:rgba(224,168,0,.24); }
html.theme-light .crew-schedule-shell .st-pending { background:#f4f6fa; }
html.theme-light .crew-schedule-shell .st-confirmed { background:rgba(61,232,138,.18); color:#10804a; }
html.theme-light .crew-schedule-shell .st-declined { background:rgba(255,71,87,.12); color:#c23d4a; }
html.theme-light .crew-booking-group,
html.theme-light .crew-booking-row,
html.theme-light .crew-booking-more__menu { background:#f8fafc; border-color:rgba(10,10,10,.12); }
html.theme-light .crew-booking-more__item:hover,
html.theme-light .crew-booking-more__menu > details[open] > .crew-booking-more__item { background:rgba(10,10,10,.05); }
html.theme-light .crew-booking-list,
html.theme-light .crew-booking-empty,
html.theme-light .crew-booking-row { border-color:rgba(10,10,10,.06); }
html.theme-light .crew-lineup-card,
html.theme-light .crew-lineup-row,
html.theme-light .crew-lineup-empty,
html.theme-light .crew-lineup-card__count,
html.theme-light .crew-milestone-item,
html.theme-light .crew-milestone-mini,
html.theme-light .crew-scheduler-create,
html.theme-light .crew-scheduler-strip__stat,
html.theme-light .crew-timeline,
html.theme-light .crew-shift-card__coverage-bar,
html.theme-light .crew-scheduler-group,
html.theme-light .crew-scheduler-inline-form,
html.theme-light .crew-scheduler-row__detail,
html.theme-light .crew-scheduler-detail-card,
html.theme-light .crew-scheduler-assignee,
html.theme-light .crew-milestone-mini__counts span,
html.theme-light .crew-milestone-mini__roles span,
html.theme-light .crew-scheduler-group__rolechips span,
html.theme-light .crew-scheduler-planner__chips span { background:#f5f7fb; }
html.theme-light .crew-scheduler-group__head { background:#f8f1d8; }
html.theme-light .crew-timeline__day { background:#fff; border-color:rgba(10,10,10,.08); }
html.theme-light .crew-timeline__day-head { background:#f5f7fb; }
html.theme-light .crew-timeline__call { border-color:rgba(10,10,10,.06); }
html.theme-light .crew-timeline__call-head { background:#fbfcfe; }
html.theme-light .crew-timeline__labels,
html.theme-light .crew-timeline__label { background:#f5f7fb; }
html.theme-light .crew-timeline__anchor span { background:rgba(245,247,251,.92); }
html.theme-light .crew-timeline__bar--function { color:#1d231b; border-color:rgba(23,122,66,.26); background:rgba(61,232,138,.18); box-shadow:0 1px 0 rgba(255,255,255,.65) inset; }
html.theme-light .crew-timeline__bar--open,
html.theme-light .crew-timeline__bar--partial { color:#2d2206; border-color:rgba(155,109,13,.3); background:rgba(255,199,71,.24); }
html.theme-light .crew-timeline__bar--needs { color:#5c1118; border-color:rgba(176,32,45,.34); background:rgba(255,71,87,.2); }
html.theme-light .crew-timeline__bar--covered { color:#153420; border-color:rgba(23,122,66,.3); background:rgba(61,232,138,.2); }
html.theme-light .crew-shift-card__search,
html.theme-light .crew-shift-card__match-option { background:#f5f7fb; }

@media (max-width:1100px) {
  .crew-schedule-grid-layout { grid-template-columns:1fr; }
  .crew-schedule-card--sticky { position:static; }
  .crew-scheduler-group--call { margin-left:0; }
  .crew-scheduler-table__head,
  .crew-scheduler-row__summary { grid-template-columns:64px minmax(120px,1fr) 88px 88px 72px minmax(120px,1fr) 120px; }
  .crew-scheduler-row__detail-grid { grid-template-columns:1fr; }
  .crew-scheduler-rate-form { grid-template-columns:minmax(0, 1fr) minmax(96px, .7fr) auto; }
}

@media (max-width:720px) {
  .crew-schedule-hero { padding:18px; }
  .crew-schedule-hero__title { font-size:24px; }
  .crew-schedule-card__head,
  .crew-schedule-card__body { padding-left:16px; padding-right:16px; }
  .crew-schedule-card__meta { max-width:none; text-align:left; }
  .crew-scheduler-rate-form { grid-template-columns:1fr 1fr; }
  .crew-scheduler-rate-form .btn { grid-column:1 / -1; justify-self:start; }
  .crew-confirm-rate-form { grid-template-columns:1fr 1fr; max-width:none; }
  .crew-confirm-rate-form .btn { grid-column:1 / -1; justify-self:start; }
  .crew-schedule-stats { gap:8px; }
  .crew-schedule-stats .stat-card { flex:1 1 calc(50% - 4px); min-width:0 !important; }
  .crew-scheduler-strip { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .crew-timecard-admin__form { grid-template-columns:1fr; }
  .crew-timeline__head { flex-direction:column; }
  .crew-timeline__legend { justify-content:flex-start; }
  .crew-timeline__grid { grid-template-columns:minmax(132px,32%) minmax(0,1fr); }
  .crew-scheduler-create__head,
  .crew-scheduler-group__head,
  .crew-scheduler-row__detail-top,
  .crew-scheduler-assignee { flex-direction:column; align-items:flex-start; }
  .crew-scheduler-group__identity { width:100%; }
  .crew-scheduler-group__timecard { flex-basis:70px; min-height:56px; }
  .crew-scheduler-group__tools { justify-content:flex-start; }
  .crew-scheduler-table__head { display:none; }
  .crew-scheduler-row__summary { grid-template-columns:1fr 1fr; }
  .crew-scheduler-row__summary > * { min-width:0; }
  .crew-scheduler-row__role { grid-column:1 / -1; }
  .crew-scheduler-row__crew { grid-column:1 / -1; }
  .crew-scheduler-row__status { grid-column:1 / -1; }
  .crew-booking-row { grid-template-columns:1fr; align-items:flex-start; }
  .crew-booking-row__actions { justify-content:flex-start; }
  .crew-booking-group__summary { align-items:flex-start; }
  .crew-booking-group__summary small,
  .crew-booking-row__meta,
  .crew-booking-row__sub { white-space:normal; }
  .crew-booking-more__menu { left:0; right:auto; }
}

/* ══════════════════════════════════════════════════════════════════════════
   DOC LINKS
══════════════════════════════════════════════════════════════════════════ */
.doc-pill { display:inline-flex; align-items:center; padding:4px 8px; border-radius:999px; border:1px solid var(--border); font-size:10px; font-family:'DM Mono',monospace; text-transform:uppercase; letter-spacing:.08em; }
.doc-pill--none    { color:var(--text3); }
.doc-pill--live    { background:rgba(232,255,71,.08);  border-color:rgba(232,255,71,.25);  color:var(--accent); }
.doc-pill--viewed  { background:rgba(71,197,255,.12);  border-color:rgba(71,197,255,.24);  color:#7dd3fc; }
.doc-pill--approved{ background:rgba(71,255,160,.1);   border-color:rgba(71,255,160,.25);  color:var(--green); }
.doc-pill--reapproval{ background:rgba(255,179,71,.12); border-color:rgba(255,179,71,.28); color:var(--orange); }
.doc-pill--expired,.doc-pill--revoked { background:rgba(255,71,87,.08); border-color:rgba(255,71,87,.25); color:var(--red); }
.doc-meta { margin-top:4px; font-size:11px; color:var(--text3); }
.link-row { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.link-input { flex:1; min-width:260px; background:var(--surface2); border:1px solid var(--border); border-radius:8px; padding:10px 12px; color:var(--text); outline:none; }
.link-actions { margin-top:12px; display:flex; gap:8px; align-items:center; flex-wrap:wrap; }

/* Dry rental security hold */
.security-hold-panel { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius2); padding:18px; overflow:hidden; }
.security-hold-panel__head { display:flex; justify-content:space-between; gap:18px; align-items:flex-start; margin-bottom:16px; }
.security-hold-panel__title { min-width:0; }
.security-hold-panel__title h2 { font-family:'Syne',sans-serif; font-size:24px; line-height:1; margin:3px 0 6px; }
.security-hold-panel__title p { margin:0; font-size:12px; color:var(--text3); line-height:1.45; }
.security-hold-panel__head-actions { display:flex; gap:8px; align-items:center; flex-wrap:wrap; justify-content:flex-end; }
.security-hold-pill { display:inline-flex; align-items:center; min-height:30px; padding:6px 10px; border:1px solid var(--border); border-radius:999px; font-family:'DM Mono',monospace; font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; white-space:nowrap; }
.security-hold-pill--success { background:rgba(61,232,138,.10); border-color:rgba(61,232,138,.28); color:var(--green); }
.security-hold-pill--warning { background:rgba(255,179,71,.10); border-color:rgba(255,179,71,.30); color:var(--orange); }
.security-hold-pill--danger { background:rgba(255,71,87,.10); border-color:rgba(255,71,87,.30); color:var(--red); }
.security-hold-pill--neutral { background:var(--surface2); color:var(--text2); }
.security-hold-panel__body { display:grid; grid-template-columns:minmax(180px,.7fr) minmax(260px,1fr) minmax(320px,1.15fr); gap:12px; align-items:stretch; }
.security-hold-panel__primary,
.security-hold-panel__next,
.security-hold-metric { background:var(--surface2); border:1px solid var(--border); border-radius:8px; }
.security-hold-panel__primary { padding:16px; border-left:3px solid var(--accent); }
.security-hold-panel__amount-label,
.security-hold-panel__next-label,
.security-hold-metric span { display:block; font-family:'DM Mono',monospace; font-size:9px; color:var(--text3); letter-spacing:.12em; text-transform:uppercase; }
.security-hold-panel__amount { margin-top:6px; font-family:'DM Mono',monospace; font-size:27px; font-weight:800; color:var(--text); line-height:1.1; }
.security-hold-panel__amount-sub { margin-top:7px; font-size:12px; color:var(--text3); line-height:1.35; }
.security-hold-panel__next { padding:14px 16px; display:flex; flex-direction:column; justify-content:center; gap:5px; }
.security-hold-panel__next strong { font-family:'Syne',sans-serif; font-size:18px; line-height:1.1; color:var(--text); }
.security-hold-panel__next span { font-size:12px; color:var(--text2); line-height:1.35; }
.security-hold-panel__next--success { border-color:rgba(61,232,138,.30); }
.security-hold-panel__next--warning { border-color:rgba(255,179,71,.34); }
.security-hold-panel__next--danger { border-color:rgba(255,71,87,.34); }
.security-hold-panel__metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.security-hold-metric { padding:13px; min-width:0; }
.security-hold-metric strong { display:block; margin-top:8px; font-family:'DM Mono',monospace; font-size:13px; line-height:1.25; color:var(--text); overflow-wrap:anywhere; }
.security-hold-metric__tone--success { color:var(--green) !important; }
.security-hold-metric__tone--warning { color:var(--orange) !important; }
.security-hold-metric__tone--danger { color:var(--red) !important; }
.security-hold-metric__tone--neutral { color:var(--text2) !important; }
.security-hold-notice { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; padding:11px 13px; border-radius:8px; font-size:12px; line-height:1.45; }
.security-hold-notice strong { color:inherit; }
.security-hold-notice span { color:var(--text2); text-align:right; }
.security-hold-notice--warning { background:rgba(255,179,71,.10); border:1px solid rgba(255,179,71,.28); color:var(--orange); }
.security-hold-notice--danger { background:rgba(255,71,87,.08); border:1px solid rgba(255,71,87,.25); color:var(--red); }
.security-hold-panel__meta { font-size:11px; color:var(--text3); overflow-wrap:anywhere; }
.security-hold-panel__actions { display:flex; flex-wrap:wrap; gap:8px; padding-top:14px; border-top:1px solid var(--border); }
.security-hold-panel__actions form,
.security-hold-panel__actions .form-inline { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.security-hold-panel__actions input[type="number"],
.security-hold-panel__actions input[type="text"] { min-height:34px; width:150px; background:var(--surface2); border:1px solid var(--border); border-radius:8px; padding:8px 10px; color:var(--text); font-size:12px; }
.security-hold-panel__actions input[name="admin_note"],
.security-hold-panel__actions input[name="reason"] { width:190px; }

@media (max-width:1100px) {
  .security-hold-panel__body { grid-template-columns:1fr; }
  .security-hold-panel__metrics { grid-template-columns:repeat(3,minmax(0,1fr)); }
}

@media (max-width:720px) {
  .security-hold-panel { padding:14px; }
  .security-hold-panel__head,
  .security-hold-panel__head-actions,
  .security-hold-notice { flex-direction:column; align-items:stretch; }
  .security-hold-panel__head-actions { justify-content:flex-start; }
  .security-hold-panel__metrics { grid-template-columns:1fr; }
  .security-hold-notice span { text-align:left; }
  .security-hold-panel__actions,
  .security-hold-panel__actions form,
  .security-hold-panel__actions .form-inline { flex-direction:column; align-items:stretch; }
  .security-hold-panel__actions .btn,
  .security-hold-panel__actions input[type="number"],
  .security-hold-panel__actions input[type="text"] { width:100%; }
}

/* ══════════════════════════════════════════════════════════════════════════
   INVOICE VIEW
══════════════════════════════════════════════════════════════════════════ */
.invoice-print-shell { max-width:980px; margin:0 auto; }
.invoice-sheet { max-width:780px; margin:0 auto; background:#fff; color:#111; border-radius:12px; padding:36px; box-shadow:0 20px 60px rgba(0,0,0,.18); }
.invoice-sheet::selection,
.invoice-sheet *::selection { background:#e8ff47 !important; color:#111 !important; -webkit-text-fill-color:#111 !important; }
.invoice-sheet::-moz-selection,
.invoice-sheet *::-moz-selection { background:#e8ff47 !important; color:#111 !important; }
.invoice-sheet__header { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; margin-bottom:30px; }
.invoice-brand { font-family:'Syne',sans-serif; font-weight:800; font-size:24px; letter-spacing:.06em; }
.invoice-brand-sub,.invoice-kicker { font-size:10px; color:#888; letter-spacing:.12em; text-transform:uppercase; }
.invoice-brand-sub { margin-top:2px; }
.invoice-head-meta { text-align:right; }
.invoice-number { font-family:'Syne',sans-serif; font-weight:700; font-size:26px; }
.invoice-status { display:inline-block; padding:4px 12px; border-radius:999px; font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.05em; margin-top:6px; }
.invoice-status.is-paid    { background:#dcfce7; color:#166534; }
.invoice-status.is-overdue { background:#fee2e2; color:#991b1b; }
.invoice-status.is-open     { background:#fef9c3; color:#713f12; }
.invoice-status.is-partial  { background:#f3e8ff; color:#6b21a8; }
.invoice-status.is-invoiced { background:#dbeafe; color:#1d4ed8; }
.invoice-status.is-void     { background:#e7e5e4; color:#44403c; }
.invoice-event-title { margin:-4px 0 14px; padding-bottom:9px; border-bottom:2px solid #111; text-align:center; font-family:'Syne',sans-serif; font-size:22px; font-weight:600; color:#4b5563; line-height:1.15; }
.invoice-event-title span { font-weight:700; color:#111; }
.invoice-meta-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; padding:0 0 18px; background:transparent; border-bottom:1px solid #cfd3d8; margin-bottom:22px; }
.invoice-meta-block { min-width:0; }
.invoice-meta-block .invoice-muted,
.invoice-meta-block .invoice-strong { overflow-wrap:anywhere; }
.invoice-strong { font-weight:600; font-size:14px; }
.invoice-muted  { font-size:12px; color:#555; margin-top:2px; }
.invoice-meta-row { display:flex; justify-content:space-between; gap:8px; font-size:12px; color:#555; margin-top:3px; line-height:1.35; }
.invoice-meta-row span:first-child { font-weight:600; color:#444; }
.invoice-meta-row span:last-child { text-align:right; }
.invoice-section { margin-bottom:28px; }
.invoice-table { width:100%; border-collapse:collapse; }
.invoice-table thead tr { border-bottom:2px solid #000; }
.invoice-table th { text-align:left; padding:7px 0; font-size:10px; text-transform:uppercase; letter-spacing:.08em; color:#666; background:transparent; }
.invoice-table td { padding:9px 0; font-size:12px; border-bottom:1px solid #eee; color:#111; background:transparent; }
.invoice-sheet .invoice-table th,
.invoice-sheet .invoice-table td { white-space:normal; }
.invoice-sheet .invoice-table thead th { color:#555; }
.invoice-sheet .invoice-table tbody td { color:#111; }
.invoice-sheet .invoice-table tbody tr:hover { background:transparent; }
.invoice-sheet .invoice-table tbody tr:hover td { background:transparent; color:#111; }
.invoice-sheet .invoice-table tbody tr.invoice-table__case-component:hover td { background:#fafafa; color:#777; }
.invoice-sheet .invoice-table tbody tr.invoice-table__case-line:hover td { background:transparent; color:#666; }
.invoice-sheet .invoice-table tbody tr:hover .invoice-table__subdued { color:#666; }
.invoice-sheet .invoice-table tbody tr.invoice-table__case-component:hover .invoice-table__subdued,
.invoice-sheet .invoice-table tbody tr:hover .invoice-table__case-label { color:#999; }
.invoice-sheet .invoice-table tbody tr.invoice-table__case-line:hover .invoice-table__amount { color:#555; }
.invoice-table th.text-center,.invoice-table td.text-center { text-align:center; }
.invoice-table th.text-right,.invoice-table td.text-right { text-align:right; }
.invoice-table__amount { font-weight:600; }
.invoice-table__group-head { padding:14px 0 8px; font-size:11px; font-weight:700; color:#111; }
.invoice-table__warning-cell { padding:0 0 10px; color:#b45309; font-size:11px; }
.invoice-table__subdued { font-size:12px; color:#666; }
.invoice-table__net-amount { font-size:12px; color:#000; }
.invoice-table__net-bold { font-size:12px; color:#000; font-weight:600; }
.invoice-table__case-component td { padding-top:5px; padding-bottom:5px; font-size:10px; color:#777; background:#fafafa; }
.invoice-table__case-component td:first-child { padding-left:24px; }
.invoice-table__case-component .invoice-table__subdued { font-size:10px; color:#999; }
.invoice-table__case-label { display:inline-block; margin-right:7px; font-size:8px; letter-spacing:.08em; text-transform:uppercase; color:#999; }
.invoice-table__case-line td { padding-top:6px; padding-bottom:6px; font-size:11px; color:#666; }
.invoice-table__case-line td:first-child { padding-left:24px; }
.invoice-table__case-line .invoice-table__amount { color:#555; font-weight:500; }
.invoice-kicker--section { font-weight:600; margin-bottom:10px; }
.invoice-due-paid { color:#007a3d; }
.invoice-total-row--balance { font-size:15px; font-weight:700; color:#111; }
/* Send page — doc stat grid & summary box */
.doc-send-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.doc-send-value { font-family:'DM Mono',monospace; font-size:13px; }
.doc-send-value--accent { color:var(--accent); }
.quote-send-workspace { display:grid; grid-template-columns:minmax(420px,620px) minmax(0,1fr); gap:18px; align-items:start; }
.quote-send-workspace__main { min-width:0; }
.quote-send-workspace__preview { min-width:0; padding:20px; border:1px solid var(--border); border-radius:var(--radius2); background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.015)); overflow:auto; -webkit-overflow-scrolling:touch; }
.quote-send-workspace__preview .invoice-print-context { margin-bottom:18px; }
.quote-send-workspace__preview .invoice-sheet { width:780px; max-width:none; margin:0; box-shadow:none; }
.inv-send-summary { background:var(--surface2); border:1px solid var(--border); border-radius:var(--radius2); padding:16px 18px; margin-bottom:20px; }
.inv-send-summary__kicker { font-family:'DM Mono',monospace; font-size:9px; color:var(--text3); text-transform:uppercase; letter-spacing:.1em; margin-bottom:10px; }
.inv-send-summary__row { display:flex; justify-content:space-between; gap:12px; font-size:13px; align-items:flex-start; }
.inv-send-summary__num { font-weight:700; }
.inv-send-summary__meta { color:var(--text2); }
.inv-send-summary__due { font-size:11px; color:var(--text3); margin-top:4px; }
.inv-send-summary__total { font-family:'DM Mono',monospace; color:var(--accent); font-weight:700; }
/* Crew roster */
.crew-roster-info-link { color:var(--text2); max-width:100%; overflow-wrap:anywhere; word-break:break-word; }
.crew-roster-notes { font-size:11px; color:var(--text3); margin-top:8px; max-width:100%; overflow-wrap:anywhere; word-break:break-word; }
.crew-roster-notes p { margin:0 0 12px; }
.crew-roster-notes p:last-child { margin-bottom:0; }
.crew-roster-notes__link { color:var(--accent2); text-decoration:underline; text-decoration-color:rgba(107,201,255,.4); text-underline-offset:2px; overflow-wrap:anywhere; word-break:break-word; }
.crew-modal-roles-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
.crew-modal-roles-title { font-family:'Syne',sans-serif; font-weight:600; font-size:13px; }
.crew-modal-roles-hint { font-size:11px; color:var(--text3); margin-bottom:10px; }
.crew-modal-roles-hint a { color:var(--accent); }
.crew-modal-primary-hint { font-size:11px; color:var(--text3); margin-top:6px; }
.crew-modal-photo-wrap { background:var(--surface2); border:1px solid var(--border); border-radius:8px; padding:12px 16px; font-size:12px; color:var(--text3); margin-bottom:16px; }
.crew-modal-upload-actions { margin-bottom:4px; }
.crew-modal-upload-label { display:flex; align-items:center; gap:8px; font-size:13px; cursor:pointer; }
.invoice-live-dates { margin-top:18px; padding-top:18px; border-top:1px solid var(--border); display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 18px; }
.invoice-inline-share-form { margin-top:18px; padding-top:18px; border-top:1px solid var(--border); }
.invoice-payment-stats { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-bottom:14px; }
.invoice-payment-stat { padding:14px; border:1px solid var(--border); border-radius:var(--radius2); background:var(--surface2); }
.invoice-payment-value { font-family:'DM Mono',monospace; font-size:20px; font-weight:700; }
.invoice-payment-actions { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.invoice-payment-notes { margin-top:16px; padding-top:16px; border-top:1px solid var(--border); }
.invoice-payment-notes--stripe { margin-top:12px; padding:12px; border:1px solid var(--border); border-radius:var(--radius2); background:var(--surface2); }
.invoice-payment-notes__text { white-space:pre-wrap; font-size:13px; color:var(--text2); }
.invoice-payment-ref-list { display:grid; gap:8px; min-width:0; }
.invoice-payment-ref-list__row { display:grid; grid-template-columns:76px minmax(0,1fr); gap:10px; align-items:center; font-size:12px; color:var(--text2); min-width:0; }
.invoice-payment-ref-list__row span { color:var(--text3); text-transform:uppercase; letter-spacing:.08em; font-family:'DM Mono',monospace; font-size:10px; }
.invoice-payment-ref-list__row a,
.invoice-payment-ref-list__row code { min-width:0; overflow-wrap:anywhere; font-family:'DM Mono',monospace; font-size:11px; color:var(--text); }
.invoice-credit-memo-row { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; padding:6px 0; border-top:1px solid rgba(255,255,255,.06); }
.invoice-credit-memo-row:first-child { border-top:none; padding-top:0; }
.invoice-credit-memo-row__actions { display:inline-flex; gap:8px; flex-shrink:0; font-size:11px; }
.invoice-payment-journal { margin-top:16px; padding-top:16px; border-top:1px solid var(--border); }
.invoice-payment-journal__title { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:10px; color:var(--text); font-size:12px; font-weight:700; }
.invoice-payment-journal__title span:last-child { flex-shrink:0; font-family:'DM Mono',monospace; font-size:10px; color:var(--text3); text-transform:uppercase; letter-spacing:.08em; }
.invoice-payment-journal__list { display:grid; gap:10px; }
.invoice-payment-journal__item { padding:12px; border:1px solid var(--border); border-radius:var(--radius2); background:var(--surface2); }
.invoice-payment-journal__head { display:flex; justify-content:space-between; gap:12px; font-size:12px; font-weight:700; color:var(--text); }
.invoice-payment-journal__head span:last-child { flex-shrink:0; font-family:'DM Mono',monospace; font-size:11px; font-weight:500; color:var(--text3); text-align:right; }
.invoice-payment-journal__detail { margin-top:6px; font-size:12px; color:var(--text2); line-height:1.45; overflow-wrap:anywhere; }
.invoice-payment-journal__links { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.invoice-payment-journal__links a { display:inline-flex; align-items:center; gap:6px; max-width:100%; padding:5px 7px; border:1px solid var(--border); border-radius:8px; background:rgba(255,255,255,.03); color:var(--text); text-decoration:none; font-size:11px; overflow-wrap:anywhere; }
.invoice-payment-journal__links code { font-family:'DM Mono',monospace; font-size:10px; color:var(--text2); overflow-wrap:anywhere; }
.invoice-payment-journal__meta,
.invoice-payment-journal__empty { margin-top:6px; font-size:11px; color:var(--text3); }
.invoice-note-box { padding:12px 16px; background:#f8f8f8; border-radius:6px; font-size:12px; color:#555; margin-bottom:24px; }
.invoice-note-label { font-weight:600; color:#333; }
.invoice-totals-wrap { display:flex; justify-content:flex-end; }
.invoice-totals { min-width:280px; }
.invoice-total-row { display:flex; justify-content:space-between; gap:16px; padding:5px 0; font-size:13px; color:#555; }
.invoice-total-row--rule { border-top:1px solid #e5e5e5; margin-top:4px; }
.invoice-total-row--info { color:#777; font-size:12px; }
.invoice-total-row--grand { padding:14px 0 6px; font-family:'Syne',sans-serif; font-weight:700; font-size:22px; border-top:2px solid #000; margin-top:8px; color:#111; }
.invoice-payment-instructions { margin-top:18px; padding-top:12px; border-top:1px solid #d9dde3; display:grid; gap:8px; }
.invoice-payment-instruction { padding:8px 10px; border:1px solid #e1e5ea; border-radius:6px; background:#fafafa; color:#111; }
.invoice-payment-instruction__title { font-family:'Syne',sans-serif; font-size:12px; font-weight:700; margin-bottom:2px; }
.invoice-payment-instruction__summary,
.invoice-payment-instruction__note { font-size:10px; line-height:1.35; color:#555; margin-top:3px; }
.invoice-payment-instruction__row { display:grid; grid-template-columns:112px minmax(0,1fr); gap:8px; padding:3px 0; font-size:10.5px; line-height:1.3; border-top:1px solid #eceff3; }
.invoice-payment-instruction__row:first-of-type { border-top:0; margin-top:4px; }
.invoice-payment-instruction__row span { color:#666; font-weight:600; }
.invoice-payment-instruction__row strong { color:#111; font-weight:600; overflow-wrap:anywhere; }
.invoice-link { color:var(--accent); }
.invoice-due-overdue { color:var(--red); }
.invoice-workspace { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(320px,.7fr); gap:16px; align-items:start; }
.invoice-workspace__main { display:grid; gap:16px; min-width:0; }
.invoice-workspace__rail { min-width:0; }
.invoice-workspace__sticky { position:sticky; top:24px; }
.invoice-workspace__print { width:780px; max-width:none; margin:0; }
.invoice-spotlight { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr); gap:16px; padding:22px 24px; border:1px solid var(--border); border-radius:var(--radius2); background:linear-gradient(135deg, rgba(201,254,74,.05), rgba(255,255,255,.02) 45%, rgba(91,78,255,.08)); }
.invoice-spotlight__title { margin:0; font-family:'Syne',sans-serif; font-size:36px; line-height:1; letter-spacing:-.04em; }
.invoice-spotlight__sub { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; color:var(--muted); }
.invoice-spotlight__stats { display:grid; grid-template-columns:repeat(auto-fit, minmax(min(100%, 170px), 1fr)); gap:12px; align-self:start; }
.invoice-spotlight__stat { min-width:0; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); border-radius:16px; padding:14px 16px; display:grid; gap:8px; }
.invoice-spotlight__stat strong { min-width:0; max-width:100%; font-family:'Syne',sans-serif; font-size:26px; line-height:1; overflow-wrap:anywhere; }
.invoice-spotlight__stat .invoice-spotlight__amount { font-size:clamp(19px, 1.1vw, 23px); white-space:nowrap; font-variant-numeric:tabular-nums; }
.invoice-print-frame { padding:20px; border:1px solid var(--border); border-radius:var(--radius2); background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.015)); overflow-x:auto; -webkit-overflow-scrolling:touch; }
.invoice-print-context { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; margin-bottom:18px; }
@media print {
  body { background:#fff; }
  .sidebar,.topbar,.topbar-actions,.alert,
  .btn-row,.card-actions,.card-actions-abs,
  .gear-pull-form,.crew-shift-card__actions,
  .pull-sheet-link-row { display:none !important; }
  .content,.invoice-print-shell,.invoice-sheet,.form-card,.invoice-print-frame { margin:0; max-width:none; box-shadow:none; padding:0; }
  .invoice-workspace__print { width:auto; }
  .invoice-meta-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .invoice-print-frame { overflow:visible; }
  .form-card { border:none; border-radius:0; }
  .invoice-spotlight,.invoice-print-context { display:none !important; }
  .gear-pull-line:nth-child(odd) { background:rgba(0,0,0,.05); }
  .crew-schedule-hero { background:#f8f8fc; border:1px solid #ddd; }
}
@media screen and (max-width:1100px) { .quote-send-workspace { grid-template-columns:1fr; } .quote-send-workspace__preview .invoice-sheet { width:720px; } }
@media screen and (max-width:900px) { .invoice-workspace { grid-template-columns:1fr; } .invoice-workspace__sticky { position:static; } .invoice-sheet { padding:24px; } .invoice-workspace__print { width:720px; } .invoice-sheet__header { flex-direction:column; } .invoice-head-meta { text-align:left; } .invoice-spotlight { grid-template-columns:1fr; } .invoice-spotlight__stats { grid-template-columns:1fr; } .invoice-print-context { flex-direction:column; } }
@media screen and (max-width:600px) {
  .invoice-spotlight { padding:16px; }
  .invoice-spotlight__title { font-size:28px; overflow-wrap:anywhere; }
  .invoice-live-dates,
  .invoice-payment-stats { grid-template-columns:1fr; }
  .link-row { align-items:stretch; }
  .link-input { min-width:0; width:100%; }
  .invoice-print-frame { margin-left:-4px; margin-right:-4px; padding:12px; overflow-x:hidden; }
  .quote-send-workspace__preview { margin-left:-4px; margin-right:-4px; padding:12px; overflow-x:hidden; }
  .quote-send-workspace__preview .invoice-sheet {
    width:100%;
    max-width:100%;
    box-sizing:border-box;
    padding:24px 18px;
  }
  .invoice-workspace__print {
    width:100%;
    max-width:100%;
    box-sizing:border-box;
    padding:24px 18px;
  }
  .invoice-sheet__header { gap:12px; margin-bottom:28px; }
  .invoice-number { font-size:22px; }
  .invoice-event-title { font-size:18px; text-align:left; }
  .invoice-meta-grid { grid-template-columns:1fr 1fr; gap:14px; padding-bottom:18px; margin-bottom:22px; }
  .invoice-table th { font-size:8px; letter-spacing:.05em; }
  .invoice-table td { font-size:11px; }
  .invoice-totals { min-width:0; width:100%; }
  .invoice-total-row--grand { font-size:18px; }
}

/* ══════════════════════════════════════════════════════════════════════════
   LOGIN
══════════════════════════════════════════════════════════════════════════ */
body.login-page { display:flex; align-items:center; justify-content:center; min-height:100vh; padding:24px; }
.login-company { margin-top:4px; }
.login-submit { width:100%; justify-content:center; }
.login-forgot-row { display:flex; justify-content:flex-end; margin:-8px 0 16px; }
.login-forgot-link { font-size:12px; color:var(--accent); text-decoration:none; font-weight:500; }
.login-forgot-link:hover { text-decoration:underline; }
.login-meta { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:14px; font-size:12px; color:var(--text3); }
.login-meta a { color:var(--accent); text-decoration:none; }
.login-meta a:hover { text-decoration:underline; }
.login-meta--single { justify-content:center; }
.login-note { text-align:center; font-size:12px; color:var(--text3); margin-top:16px; }
.login-note__link { color:var(--accent); }
@media (max-width: 640px) {
  .login-forgot-row { margin-top:-4px; }
  .login-meta { flex-direction:column; align-items:flex-start; }
  .login-meta--single { align-items:center; }
}

/* ══════════════════════════════════════════════════════════════════════════
   QUOTES & INVOICES LIST
══════════════════════════════════════════════════════════════════════════ */
.is-disabled { opacity:.6; cursor:not-allowed; }
.quotes-table-wrap { overflow-x:auto; overflow-y:hidden; -webkit-overflow-scrolling:touch; }
.quotes-table-wrap .table-header { gap:14px; min-width:1180px; }
.quotes-table { min-width:1720px; }
.quote-row { cursor:pointer; }
.quote-row:focus-visible { outline:2px solid var(--accent); outline-offset:-2px; }
.quote-row .col-actions { cursor:default; }
.table-subtitle { font-size:11px; color:var(--text3); margin-top:4px; }
/* .empty-state-cta — merged into .empty-state__cta above */
.empty-state-note { margin-top:12px; color:var(--text2); }

/* ══════════════════════════════════════════════════════════════════════════
   SETTINGS
══════════════════════════════════════════════════════════════════════════ */
.settings-page { padding-bottom:40px; }
.settings-grid { display:grid; grid-template-columns:minmax(0,600px) 600px 400px; gap:20px; align-items:stretch; }
.readonly-input { opacity:.55; }
html.theme-light .upload-ui__eyebrow,
html.theme-light .upload-ui__meta { color:#60697b; }
html.theme-light .upload-ui__picker,
html.theme-light .upload-ui__preview-box { background:#f4f6fa; border-color:rgba(10,10,10,.08); }
html.theme-light .upload-ui__picker input[type="file"] {
  background:#f8f9fc;
  border-color:rgba(10,10,10,.10);
  color:#161922;
}
html.theme-light .upload-ui__picker input[type="file"]::file-selector-button {
  background:#e8ebf4;
  color:#161922;
}
html.theme-light .field input[type="file"]::file-selector-button {
  background:#e8ebf4;
  border-color:rgba(10,10,10,.12);
  color:#161922;
}
html.theme-light .field input[type="file"]::file-selector-button:hover {
  background:rgba(180,200,0,.1);
  border-color:rgba(140,160,0,.28);
  color:#5d6b0c;
}
html.theme-light input[type="checkbox"],
html.theme-light input[type="radio"] {
  background:#ffffff;
  border-color:rgba(10,10,10,.18);
}
html.theme-light input[type="checkbox"]:checked,
html.theme-light input[type="radio"]:checked {
  background:#d8f52b;
  border-color:#a4bf00;
  box-shadow:0 0 0 3px rgba(140,160,0,.10);
}
html.theme-light input[type="checkbox"]:focus-visible,
html.theme-light input[type="radio"]:focus-visible {
  border-color:#9eb500;
  box-shadow:0 0 0 3px rgba(140,160,0,.18);
}
html.theme-light .csv-import-form__project select {
  background-color:#f8f9fc;
  border-color:rgba(10,10,10,.10);
  color:#161922;
  background-image:linear-gradient(45deg, transparent 50%, #60697b 50%), linear-gradient(135deg, #60697b 50%, transparent 50%);
}
html.theme-light .csv-import-form__project select option {
  background:#ffffff;
  color:#161922;
}
html.theme-light .invoice-import-review__select {
  background-color:#f8f9fc;
  border-color:rgba(10,10,10,.10);
  color:#161922;
  background-image:linear-gradient(45deg, transparent 50%, #60697b 50%), linear-gradient(135deg, #60697b 50%, transparent 50%);
}
html.theme-light .invoice-import-review__select option {
  background:#ffffff;
  color:#161922;
}
.settings-inline-link { color:var(--accent); }
.numbering-preview { display:grid; gap:14px; margin:-8px 0 18px; padding:14px; border:1px solid var(--border); border-radius:8px; background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.018)); }
.numbering-preview__chrome { display:flex; align-items:center; justify-content:space-between; gap:10px; padding-bottom:10px; border-bottom:1px solid var(--border); }
.numbering-preview__chrome span { font-family:'DM Mono',monospace; font-size:10px; text-transform:uppercase; letter-spacing:.1em; color:var(--text3); }
.numbering-preview__body { display:grid; gap:5px; min-width:0; }
.numbering-preview__body span { font-family:'DM Mono',monospace; font-size:10px; text-transform:uppercase; letter-spacing:.1em; color:var(--text3); }
.numbering-preview__body strong { min-width:0; color:var(--accent); font-family:'DM Mono',monospace; font-size:22px; line-height:1.15; overflow-wrap:anywhere; }
html.theme-light .numbering-preview { background:linear-gradient(180deg,#f8f9fc,#f1f3f8); border-color:rgba(10,10,10,.08); }
.settings-note-card { background:linear-gradient(180deg,rgba(71,180,255,.08),rgba(71,180,255,.03)); }
.settings-note-stack { display:grid; gap:14px; }
.settings-note-block { padding-bottom:12px; border-bottom:1px solid var(--border); }
.settings-note-block:last-child { padding-bottom:0; border-bottom:0; }
.settings-note-label { font-family:'DM Mono',monospace; font-size:10px; text-transform:uppercase; letter-spacing:.1em; color:var(--blue); margin-bottom:6px; }
.settings-note-block p { color:var(--text2); font-size:12px; line-height:1.55; }
@media (max-width:980px) { .settings-grid { grid-template-columns:1fr; } }

/* ══════════════════════════════════════════════════════════════════════════
   COMMUNICATIONS SETTINGS
══════════════════════════════════════════════════════════════════════════ */
.communications-page { padding-bottom:44px; }
.communications-header { margin-bottom:14px; }
.settings-grid.communications-settings-grid { grid-template-columns:minmax(0,1fr) minmax(420px,460px); gap:18px; align-items:start; }
.communications-page .settings-col-main { gap:14px; }
.communications-rail { display:flex; flex-direction:column; gap:12px; }
.communications-rail .form-card { margin-bottom:0; }
.communications-page-head { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; flex-wrap:wrap; margin-bottom:18px; padding-bottom:16px; border-bottom:1px solid var(--border); }
.communications-page-head h1 { margin:6px 0 6px; font-family:'Syne',sans-serif; font-size:30px; line-height:1.08; letter-spacing:0; }
.communications-page-head p { margin:0; color:var(--text2); font-size:14px; line-height:1.55; max-width:680px; }
.communications-kicker { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); }
.communications-jump { display:flex; gap:8px; flex-wrap:wrap; }
.communications-jump a { display:inline-flex; align-items:center; min-height:34px; padding:0 12px; border-radius:999px; border:1px solid var(--border); background:var(--surface2); color:var(--text2); text-decoration:none; font-size:12px; }
.communications-jump a:hover { color:var(--accent); border-color:rgba(232,255,71,.25); }
.communications-summary-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-bottom:18px; }
.communications-summary-item { min-width:0; padding:16px 18px; border:1px solid var(--border); border-radius:var(--radius2); background:var(--surface); display:grid; gap:5px; }
.communications-summary-item span { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--text3); }
.communications-summary-item strong { color:var(--text); font-size:17px; line-height:1.25; overflow-wrap:anywhere; }
.communications-summary-item small { color:var(--text3); font-size:12px; overflow-wrap:anywhere; }
.communications-layout { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:18px; align-items:start; margin-bottom:18px; }
.communications-layout--sms { grid-template-columns:minmax(0,580px) minmax(0,1fr); }
.communications-side-stack { display:grid; gap:18px; }
.communications-card { margin-bottom:0; }
.communications-page .form-card { padding:20px 22px; }
.communications-card--wide { min-width:0; }
.communications-section-head { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; margin-bottom:14px; }
.communications-section-head .form-card-title { margin:4px 0 6px; font-size:17px; line-height:1.2; }
.communications-section-head p { margin:0; color:var(--text2); font-size:13px; line-height:1.55; }
.communications-status-pill { flex-shrink:0; display:inline-flex; align-items:center; min-height:28px; padding:0 10px; border-radius:999px; border:1px solid rgba(232,255,71,.24); background:rgba(232,255,71,.08); color:var(--accent); font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.08em; text-transform:uppercase; }
.communications-status-pill.is-muted { border-color:var(--border); background:var(--surface2); color:var(--text3); }
.communications-status-pill.is-ready { border-color:rgba(61,232,138,.28); background:rgba(61,232,138,.1); color:var(--green); }
.communications-form-columns { display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:20px; align-items:start; }
.communications-fields { min-width:0; }
.communications-email-preview { --email-accent:var(--accent); border:1px solid var(--border); border-radius:var(--radius2); overflow:hidden; background:#303030; box-shadow:none; }
.communications-email-preview__cap { padding:18px 20px; background:#f4f4f5; color:#9fba13; font-family:'DM Mono',monospace; font-weight:700; letter-spacing:.16em; font-size:16px; }
.communications-email-preview__body { padding:20px; color:#f5f5f5; }
.communications-email-preview__title { font-family:'Syne',sans-serif; font-weight:700; font-size:21px; line-height:1.12; margin-bottom:14px; letter-spacing:0; }
.communications-email-preview__body p { margin:0 0 18px; color:#d8d8d8; line-height:1.55; }
.communications-email-preview__company { margin:18px 0; padding:14px 16px; border-left:3px solid var(--email-accent); background:rgba(255,255,255,.04); display:grid; gap:4px; }
.communications-email-preview__company span { font-family:'DM Mono',monospace; font-size:9px; letter-spacing:.14em; text-transform:uppercase; color:#a5a5a5; }
.communications-email-preview__company strong { color:#f5f5f5; overflow-wrap:anywhere; }
.communications-email-preview__company small { color:#c7c7c7; line-height:1.45; }
.communications-email-preview__button { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:0 22px; border-radius:8px; background:var(--email-accent); color:#222; font-weight:800; margin:4px 0 20px; }
.communications-email-preview__footer { border-top:1px solid rgba(255,255,255,.1); padding-top:16px; color:#949494; font-size:12px; line-height:1.4; }
.communications-actions { display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-start; margin-top:18px; }
.communications-card input[type="color"] { width:86px; height:38px; min-height:38px; padding:3px; }
.communications-email-form .form-grid,
.communications-sms-form .form-grid { gap:12px; }
.communications-email-form textarea { min-height:58px; }
.communications-sms-form textarea { min-height:84px; }
.communications-check-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.communications-check-form .communications-actions { grid-column:1/-1; margin-top:4px; }
.communications-check { display:flex; gap:10px; align-items:flex-start; padding:12px; border-radius:var(--radius2); border:1px solid var(--border); background:var(--surface2); color:var(--text2); }
.communications-check input { margin-top:3px; }
.communications-check span { display:grid; gap:3px; }
.communications-check strong { color:var(--text); font-size:13px; }
.communications-check small { color:var(--text3); line-height:1.45; }
.communications-meta-list { display:grid; gap:8px; }
.communications-meta-list--inline { grid-template-columns:repeat(3,minmax(0,1fr)); margin-bottom:18px; }
.communications-meta-list div { display:flex; justify-content:space-between; gap:12px; align-items:center; padding:10px 12px; border:1px solid var(--border); border-radius:var(--radius2); background:var(--surface2); min-width:0; }
.communications-meta-list span { color:var(--text3); font-size:12px; }
.communications-meta-list strong { color:var(--text); font-size:13px; text-align:right; overflow-wrap:anywhere; }
.communications-sms-form { margin-top:2px; }
.communications-empty { padding:18px; border:1px dashed var(--border); border-radius:var(--radius2); color:var(--text3); text-align:center; }
.communications-message-list { display:grid; gap:10px; max-height:520px; overflow:auto; padding-right:4px; }
.communications-message { padding:12px 14px; border-radius:var(--radius2); border:1px solid var(--border); background:var(--surface2); }
.communications-message__head { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; }
.communications-message__head div { min-width:0; display:grid; gap:3px; }
.communications-message__head strong { color:var(--text); font-size:13px; overflow-wrap:anywhere; }
.communications-message__head span { color:var(--text3); font-size:11px; overflow-wrap:anywhere; }
.communications-message__head em { flex-shrink:0; font-style:normal; font-family:'DM Mono',monospace; font-size:9px; letter-spacing:.08em; text-transform:uppercase; color:var(--text3); padding:4px 8px; border-radius:999px; background:var(--surface); border:1px solid var(--border); }
.communications-message p { margin:10px 0 0; color:var(--text2); font-size:13px; line-height:1.5; }
html.theme-light .communications-jump a,
html.theme-light .communications-summary-item,
html.theme-light .communications-meta-list div,
html.theme-light .communications-check,
html.theme-light .communications-message { background:#f5f7fb; border-color:rgba(10,10,10,.1); }
html.theme-light .communications-email-preview { border-color:rgba(10,10,10,.08); box-shadow:0 16px 36px rgba(20,24,33,.08); }
@media (max-width:1180px) {
  .settings-grid.communications-settings-grid,
  .communications-layout,
  .communications-layout--sms,
  .communications-form-columns { grid-template-columns:1fr; }
  .communications-side-stack { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:780px) {
  .communications-summary-grid,
  .communications-settings-grid,
  .communications-side-stack,
  .communications-check-form,
  .communications-meta-list--inline { grid-template-columns:1fr; }
  .communications-rail { position:static; }
  .communications-page-head { align-items:flex-start; }
  .communications-page-head h1 { font-size:25px; }
  .communications-section-head { flex-direction:column; }
  .communications-actions { justify-content:stretch; }
  .communications-actions .btn { flex:1; justify-content:center; }
}

/* ── MISSING PATCHES ────────────────────────────────────────────────────── */
/* quote-line__status */
.quote-line__status { display:none; }

/* crew console / portal pending state */
.status-pill.is-pending { background:rgba(255,209,102,.12); color:#ffd166; border:1px solid rgba(255,209,102,.3); }

/* crew portal primary card */
.portal-card--primary { background:rgba(20,24,33,.98); }

/* settings main card constraint */
.settings-main-card { max-width:100%; }

/* ── BUILDER DRAG & DROP ─────────────────────────────────────────────────── */
.quote-line__drag {
  cursor: grab;
  color: var(--text3);
  font-size: 13px;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: stretch;
  min-height: 28px;
  padding: 0;
  margin: 0;
  border: 0;
  border-radius: 5px;
  background: transparent;
  user-select: none;
  -webkit-user-select: none;
  touch-action: none;
  transition: color .12s, background .12s;
}
.quote-line__drag:hover { color: var(--accent); background: var(--surface3); }
.quote-line__drag:active { cursor: grabbing; }
.quote-line__drag:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 1px;
  color: var(--accent);
}
.quote-line.is-dragging {
  opacity: .96;
  box-shadow: 0 10px 28px rgba(0,0,0,.45);
  border-color: var(--accent);
  border-radius: 8px;
  cursor: grabbing;
}
.quote-line__placeholder {
  border: 1px dashed var(--accent);
  border-radius: var(--radius2);
  background: rgba(232,255,71,.06);
  margin: 0;
  box-sizing: border-box;
}
body.is-line-dragging {
  cursor: grabbing;
  user-select: none;
  -webkit-user-select: none;
}
.quote-line.drag-over {
  border-color: var(--accent);
  box-shadow: 0 0 0 1px var(--accent);
}
.builder-group.drag-target {
  border-color: var(--accent);
  box-shadow: 0 0 0 1px rgba(232,255,71,.35);
}
.builder-group.is-group-dragging {
  opacity: .42;
  outline: 1px dashed var(--accent);
}
.builder-group.builder-group-sort-over {
  border-color: var(--accent);
  box-shadow: 0 0 0 1px rgba(232,255,71,.35);
}
.quote-line__tool-btn {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--text3);
  font-size: 13px;
  padding: 2px;
  border-radius: 3px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color .12s;
  width: 22px;
  height: 22px;
}
.quote-line__tool-btn:hover { color: var(--text); background: var(--surface3); }
.quote-line__tool-btn--remove:hover { color: var(--red); }
.quote-line__tools { display:flex; gap:2px; align-items:center; }

.quote-line select[name='line_section[]'] { display:none; }

/* ── QUOTE LINE HEADER ROW ──────────────────────────────────────────────── */
.quote-line-header {
  display: grid;
  grid-template-columns: 20px minmax(150px,1.1fr) minmax(150px,1fr) 52px 52px 82px 54px 70px 22px 22px;
  gap: 4px;
  padding: 4px 8px 6px;
  font-family: 'DM Mono', monospace;
  font-size: 8.5px;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--text3);
}

@media (max-width:820px) {
  .quote-line-header { display:none; }
  .quote-line { border-radius:14px; padding:10px; }
  .quote-line__grid,
  .quote-line__grid.quote-line__grid--custom {
    grid-template-columns:28px minmax(0,1fr) 72px 72px 92px;
    grid-template-areas:
      "drag desc desc desc desc"
      "drag detail detail detail detail"
      "drag qty days rate tax"
      "drag amount amount amount amount"
      "drag duplicate remove remove remove";
    gap:8px;
    padding:0;
    align-items:center;
  }
  .quote-line__drag { grid-area:drag; align-self:stretch; border-right:1px solid var(--border); padding-right:6px; }
  .quote-line input[name="line_desc[]"] { grid-area:desc; }
  .quote-line input[name="line_detail[]"] { grid-area:detail; }
  .quote-line input[name="line_qty[]"] { grid-area:qty; }
  .quote-line input[name="line_unit2[]"] { grid-area:days; }
  .quote-line input[name="line_rate[]"] { grid-area:rate; }
  .quote-line__tax-toggle { grid-area:tax; min-height:30px; }
  .quote-line__amount { grid-area:amount; min-width:0; text-align:right; padding-right:0; }
  .quote-line__tool-btn { width:100%; min-height:30px; border:1px solid var(--border); background:var(--surface); }
  .quote-line__tool-btn[data-action="line-duplicate"] { grid-area:duplicate; }
  .quote-line__tool-btn[data-action="line-remove"] { grid-area:remove; }
  .quote-line__warning { padding:8px 0 0 36px; }
}
@media (max-width:560px) {
  .quote-line__grid,
  .quote-line__grid.quote-line__grid--custom {
    grid-template-columns:repeat(3,minmax(0,1fr));
    grid-template-areas:
      "drag drag drag"
      "desc desc desc"
      "detail detail detail"
      "qty days rate"
      "tax duplicate remove"
      "amount amount amount";
  }
  .quote-line__drag {
    grid-area:drag; display:flex; width:100%; min-height:30px;
    border:1px solid var(--border); border-radius:6px; background:var(--surface);
  }
  .quote-line input,.quote-line select { min-height:36px; font-size:13px; }
  .quote-line__amount { text-align:left; }
.quote-line__warning { padding-left:0; }
}

.settings-tax-locations { display:grid; gap:10px; margin-top:12px; padding:14px; border:1px solid var(--border); border-radius:var(--radius2); background:var(--surface2); }
.settings-tax-locations__head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.settings-tax-locations__head span { display:block; font-size:11px; font-weight:700; color:var(--text); text-transform:uppercase; letter-spacing:.08em; }
.settings-tax-locations__head small { display:block; max-width:46ch; margin-top:4px; color:var(--text3); font-size:12px; font-weight:400; line-height:1.45; letter-spacing:0; text-transform:none; }
.settings-tax-match-order { display:flex; align-items:center; flex-wrap:wrap; gap:6px; padding:9px 10px; border:1px solid var(--border); border-radius:var(--radius); background:var(--surface); color:var(--text3); font-size:11px; }
.settings-tax-match-order span { font-family:'DM Mono',monospace; font-size:9px; text-transform:uppercase; letter-spacing:.08em; }
.settings-tax-match-order strong { display:inline-flex; align-items:center; min-height:22px; padding:0 8px; border:1px solid var(--border); border-radius:999px; background:var(--surface2); color:var(--text2); font-size:11px; font-weight:600; }
.settings-tax-location-labels { display:grid; grid-template-columns:minmax(120px,1fr) 54px 72px 100px 82px; gap:6px; color:var(--text3); font-family:'DM Mono',monospace; font-size:9px; text-transform:uppercase; letter-spacing:.08em; }
.settings-tax-location-row { display:grid; grid-template-columns:minmax(120px,1fr) 54px 72px 100px 82px; gap:6px; }
.settings-tax-location-row input { min-width:0; }
@media (max-width:720px) {
  .settings-tax-locations__head { flex-direction:column; }
  .settings-tax-location-labels { display:none; }
  .settings-tax-location-row { grid-template-columns:1fr 60px 1fr; }
  .settings-tax-location-row input:first-child { grid-column:1 / -1; }
}

/* ── CREW PORTAL — scoped button overrides ───────────────────────────────── */
/* The crew portal uses large rounded buttons, different from the app shell   */
.portal-shell .btn {
  min-height: 46px;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 700;
  justify-content: center;
  padding: 11px 20px;
  border: 1px solid rgba(255,255,255,.08);
  width: 100%;
}
.portal-shell .btn-primary  { background: var(--accent); color: #000; border-color: transparent; }
.portal-shell .btn-secondary{ background: #1b2130; color: var(--text); }
.portal-shell .btn-inline   { width: auto; }
.portal-shell .btn-state    { cursor: default; background: #1b2130; }
.portal-shell .btn-state.is-confirmed { background:rgba(61,232,138,.12); color:var(--green); border-color:rgba(61,232,138,.28); }
.portal-shell .btn-state.is-declined  { background:rgba(255,107,107,.12); color:#ff6b6b; border-color:rgba(255,107,107,.28); }

/* ══════════════════════════════════════════════════════════════════════════
   LIGHT THEME — warm off-white
   All overrides scoped to html.theme-light — nothing else changes
══════════════════════════════════════════════════════════════════════════ */
html.theme-light {
  --bg:       #f3f5f8;
  --surface:  #ffffff;
  --surface2: #f7f8fb;
  --surface3: #eceff5;
  --border:   #d8dde7;
  --border2:  #b8c1d0;
  --accent:   #7a5a00;
  --accent2:  #256f3f;
  --text:     #151922;
  --text2:    #42495a;
  --text3:    #687083;
  --green:    #0f7a48;
  --blue:     #1667ad;
  --red:      #b83030;
  --orange:   #a8550e;
  --purple:   #6f3cb3;
}

html.theme-light .modal-overlay       { background: rgba(0,0,0,.4); }
html.theme-light .sidebar             { background: var(--surface); }
html.theme-light .topbar              { background: var(--surface); }
html.theme-light .app-shell           { background: var(--bg); }
html.theme-light .login-card          { box-shadow: 0 8px 40px rgba(0,0,0,.08); }
html.theme-light .modal               { box-shadow: 0 8px 40px rgba(0,0,0,.12); }

html.theme-light .badge-quote    { background: rgba(26,95,160,.1);  border-color: rgba(26,95,160,.25); }
html.theme-light .badge-approved { background: rgba(26,122,69,.1);  border-color: rgba(26,122,69,.25); }
html.theme-light .badge-canceled { background: rgba(184,48,48,.1);  border-color: rgba(184,48,48,.25); }
html.theme-light .badge-hold     { background: rgba(168,118,0,.10); border-color: rgba(168,118,0,.28); }
html.theme-light .badge-cancelled { background: rgba(184,48,48,.1); border-color: rgba(184,48,48,.25); }
html.theme-light .badge-invoiced { background: rgba(122,90,0,.12);border-color: rgba(122,90,0,.32); }
html.theme-light .badge-paid     { background: rgba(26,122,69,.15); border-color: rgba(26,122,69,.3);  }
html.theme-light .badge-overdue  { background: rgba(184,48,48,.1);  border-color: rgba(184,48,48,.25); }
html.theme-light .badge-draft    { background: rgba(160,152,144,.15);border-color: var(--border); }
html.theme-light .badge-open     { background: rgba(26,95,160,.1);   border-color: rgba(26,95,160,.25); }
html.theme-light .badge-void     { background: rgba(120,120,120,.1); border-color: var(--border); color:var(--text3); }
html.theme-light .role-admin  { background: rgba(122,90,0,.12); border-color: rgba(122,90,0,.32); }
html.theme-light .role-staff  { background: rgba(26,95,160,.1);   border-color: rgba(26,95,160,.25); }
html.theme-light .role-pm { background: rgba(115,76,190,.1); border-color: rgba(115,76,190,.25); }
html.theme-light .role-warehouse { background: rgba(176,98,16,.12); border-color: rgba(176,98,16,.28); }

html.theme-light .stat-card.highlight { background: var(--accent); border-color: var(--accent); }
html.theme-light .stat-card.highlight .stat-label,
html.theme-light .stat-card.highlight .stat-value,
html.theme-light .stat-card.highlight .stat-sub { color: #fff; }

html.theme-light .btn-primary  { background: var(--accent); color: #fff; border-color: var(--accent); }
html.theme-light .btn-primary:hover { background: #664b00; box-shadow: 0 4px 14px rgba(122,90,0,.24); }
html.theme-light ::selection { background:rgba(122,90,0,.20); color:#201800; -webkit-text-fill-color:#201800; }
html.theme-light ::-moz-selection { background:rgba(122,90,0,.20); color:#201800; }
html.theme-light .invoice-sheet::selection,
html.theme-light .invoice-sheet *::selection { background:#e8ff47 !important; color:#111 !important; -webkit-text-fill-color:#111 !important; }
html.theme-light .invoice-sheet::-moz-selection,
html.theme-light .invoice-sheet *::-moz-selection { background:#e8ff47 !important; color:#111 !important; }

html.theme-light .nav-item.active { background: var(--surface3); color: var(--text); }
html.theme-light .nav-item.active .nav-icon { color: var(--accent); }
html.theme-light .nav-count { background:#fff3c4;border-color:#d7b74f;color:#6b5000;box-shadow:none; }
html.theme-light .plan-card { background: var(--surface2); border-left-color: var(--accent); }

html.theme-light .show-date-day { color: var(--accent); }
html.theme-light .totals-row.total .amount { color: var(--accent); }
html.theme-light .catalog-card-rate { color: var(--accent); }
html.theme-light .quote-line__amount { color: var(--text2); }
html.theme-light .logo-mark { color: var(--accent); }

html.theme-light .quote-line         { background: var(--surface2); }
html.theme-light .quote-line input,
html.theme-light .quote-line select  { background: #fff; border-color: var(--border); color: var(--text); }
html.theme-light .section-subtotal   { background: var(--surface3); }
html.theme-light .section-disc-field__input { background: var(--surface); border-color: var(--border); }
html.theme-light .builder-empty      { border-color: var(--border2); color: var(--text3); }

/* ── Light theme: builder yellow-accent contrast fix ─────────────────────
   Dark theme uses rgba(240,255,71, low-opacity) fills that are invisible on
   white. These overrides adopt the same #fff3c4/#d7b74f/#6b5000 amber palette
   already used by .nav-count and .badge-invoiced light-theme rules.          */
html.theme-light .builder-version-pill {
  background: #fff3c4;
  border-color: #d7b74f;
  color: #6b5000;
}
html.theme-light .builder-version-event__state {
  background: #fff3c4;
  border-color: #d7b74f;
  color: #6b5000;
}
html.theme-light .builder-version-event.is-current .builder-version-event__dot {
  border-color: #d7b74f;
  box-shadow: 0 0 0 4px rgba(168,118,0,.14);
}
html.theme-light .builder-version-event.is-current .builder-version-event__card {
  border-color: rgba(168,118,0,.22);
  background: linear-gradient(180deg, rgba(168,118,0,.05), transparent);
}
html.theme-light .builder-detail-toggle__control input:checked + .builder-detail-toggle__slider {
  background: #fff3c4;
  border-color: #d7b74f;
}
html.theme-light .pill--accent {
  background: #fff3c4;
  border-color: #d7b74f;
  color: #6b5000;
}
html.theme-light .quote-line__tax-toggle.is-exempt {
  background: #fff3c4;
  border-color: #d7b74f;
  color: #6b5000;
}
html.theme-light .totals-disc-badge {
  background: #fff3c4;
  border-color: #d7b74f;
  color: #6b5000;
}
html.theme-light .builder-discount-mode__button.is-active {
  background: #fff3c4;
  color: #6b5000;
  box-shadow: inset 0 0 0 1px #d7b74f;
}

/* ── P1: Portal / auth / conflict surfaces ─────────────────────────────── */
html.theme-light .crew-auth-card { background: var(--surface); border-color: var(--border); box-shadow: 0 8px 40px rgba(0,0,0,.10); }
html.theme-light .crew-auth-field input { background: var(--surface2); border-color: var(--border); color: var(--text); }
html.theme-light .portal-card { background: var(--surface); border-color: var(--border); }
html.theme-light .portal-card--warning { background: rgba(200,150,10,.06); border-color: rgba(200,150,10,.22); }
html.theme-light .portal-card--primary { background: var(--surface); }
html.theme-light .conflict-item,
html.theme-light .message-bubble,
html.theme-light .contact-card { background: var(--surface2); border-color: var(--border); }
html.theme-light .conflict-item__title,
html.theme-light .contact-name { color: var(--text); }
html.theme-light .conflict-item__meta,
html.theme-light .contact-link,
html.theme-light .contact-role { color: var(--text3); }
html.theme-light .message-bubble { color: var(--text2); }
html.theme-light .message-bubble strong { color: var(--text); }
html.theme-light .message-box { background: var(--surface2); border-color: var(--border); color: var(--text); }
html.theme-light .tenant-pill { background: var(--surface3); color: var(--text2); }
html.theme-light .portal-hero__meta,
html.theme-light .portal-kicker,
html.theme-light .portal-hero p,
html.theme-light .portal-card__head span,
html.theme-light .call-notes,
html.theme-light .detail-stack,
html.theme-light .schedule-stack { color: var(--text3); }
html.theme-light .schedule-line span,
html.theme-light .schedule-note { color: var(--text3); }
html.theme-light .mini-card { background: var(--surface2); border-color: var(--border); }

/* ── P4: Extracted inline styles ─────────────────────────────────────────── */
.form-inline { display: inline; }
.gear-pull-warn { color: var(--red); }
.gear-group-grid { display: grid; gap: 12px; margin-top: 16px; }
.gear-category-grid { display: grid; gap: 18px; margin-top: 16px; }
.mini-card__row { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.mini-card__meta { margin-top: 6px; }
.gear-group-head { margin-bottom: 8px; }
.crew-schedule-stats .stat-card,
.comms-stats .stat-card { min-width: 160px; }
.crew-row-end { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; flex-shrink: 0; }
.crew-status-badge { font-family: 'DM Mono', monospace; font-size: 10px; padding: 3px 8px; border-radius: 20px; border: 1px solid; }
.crew-status-badge--confirmed { background: rgba(71,255,160,.15); color: var(--green); border-color: rgba(71,255,160,.3); }
.crew-status-badge--declined  { background: rgba(255,71,87,.15);  color: var(--red);   border-color: rgba(255,71,87,.3); }
.crew-status-badge--sent      { background: rgba(71,180,255,.15); color: var(--blue);  border-color: rgba(71,180,255,.3); }

/* crew meta block (show_view) */
.crew-meta { margin-top: 8px; font-size: 12px; color: var(--text2); line-height: 1.8; }
.crew-meta__note { color: var(--text3); margin-top: 4px; }
.crew-meta__message { margin-top: 8px; padding: 8px 10px; background: var(--surface3); border-radius: 6px; font-size: 11px; color: var(--text2); }

/* light-theme status badge overrides */
html.theme-light .crew-status-badge--confirmed { background: rgba(26,122,69,.12);  color: var(--green);  border-color: rgba(26,122,69,.25); }
html.theme-light .crew-status-badge--declined  { background: rgba(184,48,48,.1);   color: var(--red);    border-color: rgba(184,48,48,.25); }
html.theme-light .crew-status-badge--sent      { background: rgba(26,95,160,.1);   color: var(--blue);   border-color: rgba(26,95,160,.25); }

.theme-toggle {
  background: none;
  border: 1px solid var(--border);
  border-radius: 4px;
  cursor: pointer;
  color: var(--text3);
  font-size: 13px;
  padding: 3px 5px;
  transition: all .15s;
  line-height: 1;
}
.theme-toggle:hover { color: var(--text); border-color: var(--border2); background: var(--surface2); }

/* ══════════════════════════════════════════════════════════════════════════
   v0.30.4 CLOSING PASS — warehouse, gear, pull sheet, inventory
══════════════════════════════════════════════════════════════════════════ */

/* Stat card alert variant — global (works outside .crew-shell) */
.stat-card--alert { border-color: rgba(255,71,87,.2); }
.stat-card--alert strong, .stat-card--alert .stat-value { color: var(--red); }

/* Text-value stat (short labels like "Active", "Clear", "Partial") */
.stat-value--text { font-size: 15px; font-family: 'DM Sans', sans-serif; font-weight: 500; line-height: 1.4; }

/* form-card contextual spacing */
.form-card .dash-grid { margin-top: 16px; }
.form-card .btn-row   { margin-top: 14px; }
.form-card .gear-share-field { margin-top: 14px; }

/* hero-panel title offset */
.hero-panel .crew-title { margin-top: 8px; }

/* Subrental list inside show_gear mini-cards */
.gear-subrental-list { display: grid; gap: 10px; margin-top: 16px; }

/* mini-card header row + mini-card form reset */
.mini-card__row--head { margin-bottom: 12px; }
.mini-card .form-grid  { margin-top: 0; }

/* ── Light theme: Gantt + Calendar ── */
html.theme-light .gantt-bar {
  background: color-mix(in srgb, var(--bc) 12%, white);
  border-color: color-mix(in srgb, var(--bc) 70%, #1a1814);
  color: color-mix(in srgb, var(--bc) 55%, #1a1814);
}
html.theme-light .gantt-bar:hover { filter: brightness(.92); }
html.theme-light .gantt-date-cell.today {
  background: rgba(200,160,10,.1);
  color: var(--accent);
}
html.theme-light .gantt-date-cell.weekend { background: rgba(0,0,0,.025); }
html.theme-light .gantt-today-line { background: var(--accent); opacity: 1; }
html.theme-light .gantt-row:hover { background: var(--surface2); }
html.theme-light .cal-event {
  background: color-mix(in srgb, var(--bc) 10%, white);
  border-left-color: color-mix(in srgb, var(--bc) 70%, #1a1814);
  color: color-mix(in srgb, var(--bc) 55%, #1a1814);
}
html.theme-light .gantt-bar--quote-outlook { opacity:.58; }
html.theme-light .gantt-due-marker { background:#fff; }
html.theme-light .cal-event--invoice-due {
  background:rgba(255,179,71,.16);
  border-left-color:#c67616;
  color:#8b4f08;
}

.gear-punch-note {
  margin-bottom: 10px;
  color: var(--text2);
  font-size: 12px;
  line-height: 1.55;
}

/* Inventory — cases view structure */
.inv-case-block  { border-bottom: 1px solid var(--border); }
.inv-case-header { display:flex; align-items:center; gap:10px; padding:12px 16px; cursor:pointer; transition:background .1s; }
.inv-case-header:hover { background: var(--surface2); }
.inv-case-num  { font-family:'DM Mono',monospace; font-size:10px; color:var(--accent); min-width:70px; flex-shrink:0; }
.inv-case-name { font-weight:600; font-size:13px; flex:1; min-width:0; }
.inv-case-meta { font-size:11px; color:var(--text3); }
.inv-case-arrow { color:var(--text3); font-size:10px; flex-shrink:0; }
@media (max-width:600px) {
  .inv-case-header { flex-wrap:wrap; padding:10px 14px; gap:6px; }
  .inv-case-num { min-width:0; }
  .inv-case-name { width:100%; flex-basis:100%; order:-1; }
}

/* Inventory item row internals */
.inv-item-name   { font-weight: 500; }
.inv-item-desc   { font-size: 10px; color: var(--text3); }
.inv-item-tag    { font-family: 'DM Mono', monospace; font-size: 9px; color: var(--text3); }
.inv-item-case   { font-size: 11px; color: var(--text3); }
.inv-item-serial { color: var(--text3); }

/* Inventory section toggle arrows */
.inv-arrow { color: var(--text3); font-size: 11px; flex-shrink: 0; }
.cat-header .inv-arrow { font-size: 10px; margin-left: 8px; }

/* "Add item" footer rows */
.inv-add-row      { padding: 8px 16px 8px 52px; }
.inv-case-add-row { padding: 8px 16px 8px 52px; }

.venue-search-field { position:relative; display:grid; gap:8px; }
.venue-search-status { font-size:11px; color:var(--text3); line-height:1.45; }
.venue-search-status[data-state="error"] { color:#ff7b89; }
.venue-search-status[data-state="warning"] { color:#f59e0b; }
.venue-search-status[data-state="success"] { color:#7fe3af; }
.venue-search-match { font-size:11px; color:var(--text2); }
.venue-search-results { position:absolute; top:calc(100% + 6px); left:0; right:0; z-index:35; display:grid; gap:4px; padding:8px; border:1px solid var(--border); border-radius:14px; background:var(--surface); box-shadow:0 18px 48px rgba(0,0,0,.32); }
.venue-search-results[hidden] { display:none !important; }
.venue-search-result { width:100%; border:1px solid transparent; border-radius:10px; background:transparent; color:var(--text); padding:10px 12px; text-align:left; cursor:pointer; display:grid; gap:4px; }
.venue-search-result:hover,
.venue-search-result.is-active { border-color:var(--border); background:var(--surface2); }
.venue-search-result__main { font-size:13px; font-weight:600; }
.venue-search-result__sub { font-size:11px; color:var(--text3); }
.venue-selection-pill { display:inline-flex; align-items:center; gap:8px; padding:6px 10px; border-radius:999px; border:1px solid var(--border); background:var(--surface2); font-size:11px; color:var(--text2); }
.builder-venue-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:12px; }
.builder-venue-grid .form-full { grid-column:1 / -1; }
.builder-venue-card { margin-top:16px; padding-top:16px; border-top:1px solid var(--border); }
.builder-venue-card__title { font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--text3); margin-bottom:8px; }

@media (max-width:960px) {
  .builder-venue-grid { grid-template-columns:1fr; }
}

/* ══════════════════════════════════════════════════════════════════════════
   ADMIN — BILLING PAGE
══════════════════════════════════════════════════════════════════════════ */
.billing-page { width:100%; }
.billing-page .form-card { margin-bottom:14px; }
.billing-kicker { font-family:'DM Mono',monospace; font-size:9px; letter-spacing:.14em; text-transform:uppercase; color:var(--text3); }
.boh-flow-nav { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:0 0 16px; }
.boh-flow-step { display:flex; align-items:flex-start; gap:10px; min-width:0; min-height:76px; padding:12px; border:1px solid var(--border); border-radius:var(--radius2); background:var(--surface); color:var(--text); text-decoration:none; transition:border-color .15s ease, background .15s ease, transform .15s ease; }
.boh-flow-step:hover { border-color:var(--border2); background:var(--surface2); transform:translateY(-1px); }
.boh-flow-step.active { border-color:rgba(232,255,71,.38); background:linear-gradient(90deg,rgba(232,255,71,.07),rgba(71,180,255,.035)),var(--surface); box-shadow:inset 2px 0 0 var(--accent); }
.boh-flow-step__num { flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; border:1px solid var(--border); border-radius:999px; background:var(--surface2); color:var(--text3); font-family:'DM Mono',monospace; font-size:11px; }
.boh-flow-step.active .boh-flow-step__num { border-color:rgba(232,255,71,.4); color:var(--accent); background:rgba(232,255,71,.08); }
.boh-flow-step__copy { display:grid; gap:4px; min-width:0; }
.boh-flow-step__copy strong { color:var(--text); font-size:13px; line-height:1.2; }
.boh-flow-step__copy small { color:var(--text3); font-size:11px; line-height:1.35; }
.billing-overview-card { display:grid; grid-template-columns:minmax(0,1fr) minmax(380px,.56fr); gap:18px; align-items:start; padding:20px 22px; }
.billing-usage-panel,
.billing-seat-panel { padding:14px; border:1px solid var(--border); border-radius:var(--radius2); background:var(--surface2); }
.billing-plan-flex { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.billing-plan-name { font-family:'Syne',sans-serif; font-size:30px; font-weight:700; line-height:1.05; color:var(--text); letter-spacing:0; }
.billing-plan-desc { font-size:13px; color:var(--text2); margin-top:10px; max-width:68ch; line-height:1.6; }
.billing-trial-end { margin-top:12px; font-size:12px; color:var(--text3); }
.billing-usage-grid { display:grid; gap:0; font-size:13px; }
.billing-usage-row { display:flex; justify-content:space-between; gap:16px; padding:9px 0; border-bottom:1px solid var(--border); color:var(--text2); }
.billing-usage-row:last-child { border-bottom:0; }
.billing-usage-row strong { color:var(--text); font-family:'DM Mono',monospace; font-size:12px; font-weight:600; text-align:right; white-space:nowrap; }
.billing-seat-name { font-family:'Syne',sans-serif; font-size:18px; font-weight:700; line-height:1.2; color:var(--text); margin-bottom:8px; letter-spacing:0; }
.billing-seat-form { display:grid; gap:10px; }
.billing-form-label { display:block; font-size:9px; color:var(--text3); font-family:'DM Mono',monospace; letter-spacing:.1em; text-transform:uppercase; margin-bottom:6px; }
.billing-form-input { width:100%; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:8px 11px; color:var(--text); font-family:'DM Sans',sans-serif; font-size:13px; outline:none; transition:border-color .14s, background .14s; }
.billing-form-input:focus { border-color:var(--accent); background:var(--surface3); }
.billing-form-hint { margin-top:6px; font-size:12px; color:var(--text3); line-height:1.45; }
.billing-form-hint a { color:var(--accent); }
.billing-plans-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; align-items:stretch; margin-top:4px; width:100%; }
.billing-plans-grid .form-card { margin-bottom:0; }
.billing-tier-card { display:flex; flex-direction:column; min-height:100%; padding:16px; }
.billing-plan-card--current { border-color:rgba(232,255,71,.45) !important; box-shadow:inset 2px 0 0 var(--accent); background:linear-gradient(90deg, rgba(232,255,71,.05), transparent 46%), var(--surface); }
.billing-plan-header { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; min-height:42px; }
.billing-plan-label { font-family:'Syne',sans-serif; font-size:16px; font-weight:700; line-height:1.2; letter-spacing:0; color:var(--text); }
.billing-plan-copy { font-size:12px; color:var(--text3); margin-top:3px; line-height:1.35; }
.billing-price { font-family:'Syne',sans-serif; font-size:28px; font-weight:700; line-height:1; margin:16px 0 4px; color:var(--text); letter-spacing:0; }
.billing-price-period { font-size:12px; color:var(--text3); font-family:'DM Mono',monospace; font-weight:500; margin-left:3px; }
.billing-features { list-style:none; display:grid; gap:7px; margin:14px 0 18px; padding:0; font-size:12px; color:var(--text2); line-height:1.45; flex:1; }
.billing-features li { display:flex; gap:7px; align-items:flex-start; }
.billing-tier-card form,
.billing-tier-card > .btn { margin-top:auto; }
.billing-notes-card { padding:16px 18px; margin-top:14px; }
.billing-notes-kicker { font-family:'DM Mono',monospace; font-size:9px; letter-spacing:.14em; text-transform:uppercase; color:var(--text3); margin-bottom:10px; }
.billing-notes-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 18px; font-size:12px; color:var(--text2); line-height:1.55; }
.badge-billing-status { background:rgba(71,255,160,.12); color:var(--green); border:1px solid rgba(71,255,160,.24); }

@media (max-width:1180px) {
  .billing-plans-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:900px) {
  .boh-flow-nav { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .billing-overview-card { grid-template-columns:1fr; }
  .billing-notes-grid { grid-template-columns:1fr; }
}
@media (max-width:620px) {
  .billing-page { padding:14px; }
  .boh-flow-nav { grid-template-columns:1fr; }
  .boh-flow-step { min-height:auto; }
  .billing-overview-card,
  .billing-tier-card,
  .billing-notes-card { padding:14px; }
  .billing-plans-grid { grid-template-columns:1fr; }
  .billing-plan-name { font-size:24px; }
  .billing-price { font-size:24px; }
}

/* Payments */
.payments-page { padding-bottom:40px; }
.payments-hero { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr); gap:20px; align-items:start; }
.payments-title { margin:0; font-family:'Syne',sans-serif; font-size:38px; line-height:1; letter-spacing:0; }
.payments-lead { margin:12px 0 0; max-width:64ch; color:var(--text2); font-size:14px; line-height:1.7; }
.payments-status-card { padding:16px; border:1px solid var(--border); border-radius:var(--radius2); background:var(--surface2); }
.payments-status-row { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:8px; }
.payments-status-badge--none { background:rgba(82,82,106,.14); color:var(--text3); border:1px solid var(--border); }
.payments-status-badge--pending { background:rgba(255,179,71,.12); color:var(--orange); border:1px solid rgba(255,179,71,.28); }
.payments-status-badge--active { background:rgba(61,232,138,.14); color:var(--green); border:1px solid rgba(61,232,138,.28); }
.payments-status-badge--restricted { background:rgba(255,71,87,.12); color:var(--red); border:1px solid rgba(255,71,87,.28); }
.payments-capability-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:14px 0; }
.payments-capability-grid div { padding:10px; border:1px solid var(--border); border-radius:10px; background:var(--surface); display:grid; gap:5px; min-width:0; }
.payments-capability-grid span { color:var(--text3); font-size:10px; font-family:'DM Mono',monospace; text-transform:uppercase; letter-spacing:.08em; }
.payments-capability-grid strong { font-size:13px; color:var(--text); }
.payments-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,.72fr); gap:16px; align-items:start; }
.payments-fee-table { display:grid; gap:10px; margin-bottom:18px; }
.payments-fee-table div { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; padding-bottom:10px; border-bottom:1px solid var(--border); font-size:14px; }
.payments-fee-table div:last-child { border-bottom:0; padding-bottom:0; }
.payments-fee-table span { color:var(--text3); }
.payments-fee-table strong { color:var(--text); text-align:right; }
.payments-toggle-form { display:grid; gap:14px; }
.payments-toggle { display:flex; gap:14px; align-items:center; justify-content:space-between; padding:14px; border:1px solid var(--border); border-radius:var(--radius2); background:var(--surface2); cursor:pointer; transition:border-color .15s ease, background .15s ease; }
.payments-toggle:hover { border-color:var(--border2); background:var(--surface3); }
.payments-toggle__copy { display:grid; gap:5px; min-width:0; }
.payments-toggle__copy small { color:var(--text2); line-height:1.5; }
.payments-toggle--compact { padding:10px 12px; }
.payments-toggle__control { position:relative; flex-shrink:0; display:inline-flex; }
.payments-toggle__control input { position:absolute; inset:0; opacity:0; margin:0; cursor:pointer; }
.payments-toggle__slider { width:48px; height:28px; border-radius:999px; background:var(--surface3); border:1px solid var(--border2); position:relative; transition:background .15s ease, border-color .15s ease; }
.payments-toggle__slider::after { content:""; position:absolute; top:3px; left:3px; width:20px; height:20px; border-radius:999px; background:var(--text2); transition:transform .15s ease, background .15s ease; }
.payments-toggle__control input:checked + .payments-toggle__slider { background:rgba(240,255,71,.12); border-color:rgba(240,255,71,.35); }
.payments-toggle__control input:checked + .payments-toggle__slider::after { transform:translateX(20px); background:var(--accent); }
.payments-toggle__control input:focus-visible + .payments-toggle__slider { outline:2px solid rgba(240,255,71,.28); outline-offset:2px; }
.payments-note-card { background:linear-gradient(180deg,rgba(71,180,255,.07),rgba(71,180,255,.025)); }
.payments-note-stack { display:grid; gap:12px; color:var(--text2); font-size:13px; line-height:1.65; }
.payments-methods-panel { display:grid; gap:14px; padding:16px; border:1px solid var(--border); border-radius:var(--radius2); background:var(--surface); }
.payments-method-warning { padding:10px 12px; border:1px solid rgba(255,190,71,.35); border-radius:var(--radius); background:rgba(255,190,71,.08); color:#ffd28a; font-size:12px; line-height:1.45; }
.payments-method-card { display:grid; gap:12px; padding:12px; border:1px solid var(--border); border-radius:var(--radius2); background:var(--surface2); }
.payments-method-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.payments-method-grid .form-full { grid-column:1 / -1; }
.portal-payment-form { display:inline-flex; }
@media (max-width:980px) {
  .payments-hero,
  .payments-grid { grid-template-columns:1fr; }
}
@media (max-width:620px) {
  .payments-capability-grid { grid-template-columns:1fr; }
  .payments-fee-table div { display:grid; gap:4px; }
  .payments-fee-table strong { text-align:left; }
  .payments-method-grid { grid-template-columns:1fr; }
}

/* ══════════════════════════════════════════════════════════════════════════
   NOTIFICATIONS
══════════════════════════════════════════════════════════════════════════ */
.notifications-page { display:grid; gap:16px; }
.notifications-header { display:flex; align-items:center; justify-content:space-between; gap:18px; }
.notifications-title { margin:0; font-family:'Syne',sans-serif; font-size:34px; line-height:1; }
.notifications-lead { margin:10px 0 0; max-width:66ch; color:var(--text2); font-size:13px; line-height:1.65; }
.notifications-list-card { display:grid; gap:14px; }
.notifications-list { display:grid; gap:8px; }
.notification-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:14px; align-items:center; padding:14px; border:1px solid var(--border); border-radius:var(--radius2); background:var(--surface2); }
.notification-row.is-unread { border-color:rgba(232,255,71,.32); box-shadow:inset 3px 0 0 var(--accent); }
.notification-row__main { display:grid; gap:4px; min-width:0; }
.notification-row__title { font-size:14px; font-weight:700; color:var(--text); }
.notification-row__body { font-size:13px; color:var(--text2); line-height:1.5; }
.notification-row__meta { font-family:'DM Mono',monospace; font-size:10px; color:var(--text3); }
.notification-row__actions { display:flex; gap:8px; align-items:center; flex-wrap:wrap; justify-content:flex-end; }
@media (max-width:760px) {
  .notifications-header { display:grid; }
  .notification-row { grid-template-columns:1fr; }
  .notification-row__actions { justify-content:flex-start; }
  .notifications-title { font-size:28px; }
}

/* ══════════════════════════════════════════════════════════════════════════
   FEATURE UPDATES
══════════════════════════════════════════════════════════════════════════ */
.feature-updates-page { display:grid; gap:16px; }
.feature-update-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,.42fr); gap:18px; align-items:stretch; overflow:hidden; }
.feature-update-hero__copy { display:grid; align-content:center; min-width:0; }
.feature-update-title { margin:0; font-family:'Syne',sans-serif; font-size:34px; line-height:1.05; }
.feature-update-lead { max-width:72ch; margin:12px 0 0; color:var(--text2); font-size:14px; line-height:1.65; }
.feature-update-meta { display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-top:16px; color:var(--text3); font-family:'DM Mono',monospace; font-size:10px; text-transform:uppercase; letter-spacing:.08em; }
.feature-update-hero__panel { display:grid; align-content:center; gap:12px; padding:18px; border:1px solid var(--border); border-radius:8px; background:var(--surface2); }
.feature-update-panel-label { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--accent); }
.feature-update-path { display:grid; gap:8px; }
.feature-update-path span { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:10px 12px; border:1px solid var(--border); border-radius:var(--radius); background:var(--surface); color:var(--text2); font-size:12px; }
.feature-update-path span::after { content:'Open'; font-family:'DM Mono',monospace; font-size:9px; color:var(--text3); text-transform:uppercase; letter-spacing:.08em; }
.feature-update-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:16px; align-items:start; }
.feature-update-main,
.feature-update-aside,
.feature-update-highlights { display:grid; gap:16px; }
.feature-update-highlight { display:grid; grid-template-columns:16px minmax(0,1fr); gap:10px; align-items:start; color:var(--text2); font-size:14px; line-height:1.55; }
.feature-update-highlight__mark { width:12px; height:12px; margin-top:4px; border-radius:999px; border:3px solid var(--accent); box-shadow:0 0 0 4px rgba(232,255,71,.08); }
.feature-update-screenshots-card { overflow:hidden; }
.feature-update-screenshots { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.feature-update-shot { display:grid; gap:10px; min-width:0; }
.feature-update-shot img { display:block; width:100%; aspect-ratio:16/10; object-fit:cover; border:1px solid var(--border); border-radius:8px; background:var(--surface2); }
.feature-update-shot figcaption { display:grid; gap:3px; color:var(--text3); font-size:12px; line-height:1.45; }
.feature-update-shot figcaption strong { color:var(--text); font-size:13px; }
.feature-update-release-list { display:grid; gap:8px; }
.feature-update-release { display:grid; gap:4px; padding:11px 12px; border:1px solid var(--border); border-radius:var(--radius); background:var(--surface2); color:var(--text2); }
.feature-update-release:hover,
.feature-update-release.is-active { border-color:rgba(232,255,71,.32); background:var(--surface3); color:var(--text); }
.feature-update-release small { color:var(--text3); font-family:'DM Mono',monospace; font-size:10px; }
.feature-update-side-copy { margin:0 0 14px; color:var(--text2); font-size:13px; line-height:1.6; }
@media (max-width:980px) {
  .feature-update-hero,
  .feature-update-layout { grid-template-columns:1fr; }
  .feature-update-screenshots { grid-template-columns:1fr; }
}
@media (max-width:640px) {
  .feature-update-title { font-size:28px; }
}

/* ADMIN — USERS PAGE */
.users-plan-info { margin-bottom:16px; padding:16px; }
.users-plan-stats { display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; align-items:flex-start; }
.users-plan-stat-row { display:flex; gap:18px; flex-wrap:wrap; font-size:14px; color:var(--text2); }
.users-role-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px; margin-top:14px; }
.users-role-card { padding:12px; border:1px solid var(--border); border-radius:10px; background:var(--surface2); }
.users-role-title { font-family:'DM Mono',monospace; font-size:10px; text-transform:uppercase; letter-spacing:.08em; color:var(--text3); margin-bottom:6px; }
.users-role-desc { font-size:13px; color:var(--text2); line-height:1.5; }
.users-cap-warn { margin-top:14px; padding:12px 14px; border:1px solid rgba(232,255,71,.25); background:rgba(232,255,71,.06); border-radius:10px; color:var(--text2); font-size:13px; line-height:1.55; }
.users-cap-warn a { color:var(--accent); }
.users-you-badge { margin-left:8px; font-size:10px; color:var(--text3); font-family:'DM Mono',monospace; }
.users-financials-form { display:inline-flex; align-items:center; gap:8px; }
.users-financials-label { display:inline-flex; align-items:center; gap:6px; font-size:12px; color:var(--text2); }
.users-role-select { background:var(--surface2); border:1px solid var(--border); border-radius:4px; padding:4px 8px; color:var(--text); font-size:11px; cursor:pointer; }
.users-invite-label { display:flex; align-items:center; gap:10px; margin-top:12px; font-size:13px; color:var(--text2); }
.users-invite-hint { margin-top:12px; font-size:12px; color:var(--text3); line-height:1.55; }
.status-active { color:var(--green); font-size:12px; }
.status-inactive { color:var(--red); font-size:12px; }
.text-primary { color:var(--text); }

/* ══════════════════════════════════════════════════════════════════════════
   SETTINGS PAGE — redesign v2
   Overrides existing .settings-grid and adds new layout components.
══════════════════════════════════════════════════════════════════════════ */

/* Two-column layout: main forms | sticky roadmap rail */
.settings-grid {
  display: grid;
  grid-template-columns: 1fr 272px;
  gap: 16px;
  align-items: start;
}

/* Main column: stacked cards with consistent gap */
.settings-col-main {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
}
.settings-col-main .form-card { margin-bottom: 0; }

/* Roadmap rail: sticky as you scroll the main column */
.settings-col-rail {
  position: sticky;
  top: 16px;
  min-width: 0;
}
.settings-col-rail .form-card { margin-bottom: 0; }

/* ── Settings summary header ─────────────────────────────────────────── */
.settings-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  padding: 11px 16px;
  margin-bottom: 14px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius2);
}
.settings-header__left {
  display: flex;
  align-items: center;
  gap: 9px;
  flex-shrink: 0;
}
.settings-header__name {
  font-family: 'Syne', sans-serif;
  font-weight: 700;
  font-size: 13px;
  color: var(--text);
}
.settings-header__chips {
  display: flex;
  align-items: center;
  gap: 5px;
  flex-wrap: wrap;
}
.settings-stat-chip {
  display: inline-flex;
  align-items: baseline;
  gap: 5px;
  padding: 3px 9px;
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  line-height: 1.5;
  white-space: nowrap;
}
.settings-stat-chip__label {
  font-family: 'DM Mono', monospace;
  font-size: 8.5px;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--text3);
}
.settings-stat-chip__value {
  font-family: 'DM Mono', monospace;
  font-size: 11px;
  font-weight: 500;
  color: var(--text);
}
.settings-chip-ok  { color: var(--green) !important; }
.settings-chip-dim { color: var(--text3) !important; }
.settings-section-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 16px;
}
.settings-section-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
.settings-section-actions a {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0 10px;
  border: 1px solid var(--border);
  border-radius: var(--radius2);
  background: var(--surface2);
  color: var(--text2);
  font-size: 11px;
  text-decoration: none;
}
.settings-section-actions a:hover {
  border-color: var(--border2);
  color: var(--text);
  background: var(--surface3);
}

/* ── Pair row: two side-by-side forms in one card ────────────────────── */
/* Uses a thin 1px element as the visual divider column */
.settings-pair-row {
  display: grid;
  grid-template-columns: 1fr 1px 1fr;
  gap: 0 20px;
  align-items: stretch;
}
.settings-pair-divider {
  width: 1px;
  background: var(--border);
  align-self: stretch;
}
.settings-pair-form {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
}
/* Sub-label inside a pair form (e.g. "Invoice" / "Tax") */
.settings-pair-label {
  font-family: 'DM Mono', monospace;
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: var(--text3);
  padding-bottom: 8px;
  border-bottom: 1px solid var(--border);
  margin-bottom: 2px;
}

/* ── Split card row: two compact full cards in the main column ───────── */
.settings-card-split {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(0,1fr);
  gap: 12px;
  align-items: stretch;
}
.settings-card-split > .form-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  height: 100%;
}
.settings-card-split > .form-card > form {
  display: flex;
  flex: 1;
  flex-direction: column;
}
.settings-card-split .form-grid {
  grid-template-columns: 1fr;
  gap: 10px;
}
.settings-card-split .form-card-footer {
  margin-top: auto;
}
.settings-card-split .settings-logo-row {
  grid-template-columns: 1fr;
  gap: 12px;
}
.settings-card-split .settings-logo-preview {
  width: 100%;
  max-width: none;
}
.settings-card-split .settings-logo-preview img {
  max-width: 100%;
}
.settings-card-split .upload-ui--compact {
  grid-template-columns: 1fr;
  align-items: stretch;
}
.settings-card-split .upload-ui__actions {
  justify-content: flex-end;
}
.settings-card-head {
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
}
.settings-event-summary {
  display:grid;
  gap:8px;
  margin-top:14px;
}
.settings-event-summary__item {
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  min-width:0;
  padding:8px 10px;
  border:1px solid var(--border);
  border-radius:var(--radius);
  background:var(--surface2);
}
.settings-event-summary__item strong {
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--text);
  font-size:12px;
}
.settings-event-summary__item span {
  flex:0 0 auto;
  color:var(--text3);
  font-family:'DM Mono',monospace;
  font-size:10px;
}
.settings-event-summary__item--muted strong { color:var(--text2); }

.settings-modal[hidden] { display:none; }
.settings-modal {
  position:fixed;
  inset:0;
  z-index:900;
  display:grid;
  place-items:center;
  padding:18px;
}
.settings-modal__backdrop {
  position:absolute;
  inset:0;
  border:0;
  background:rgba(3,5,10,.72);
  cursor:pointer;
}
.settings-modal__panel {
  position:relative;
  z-index:1;
  width:min(1040px,100%);
  max-height:min(84vh,820px);
  overflow:hidden;
  border:1px solid var(--border2);
  border-radius:8px;
  background:var(--surface);
  box-shadow:0 22px 80px rgba(0,0,0,.45);
}
.settings-modal__panel form {
  display:grid;
  grid-template-rows:auto minmax(0,1fr) auto;
  max-height:min(84vh,820px);
}
.settings-modal__head,
.settings-modal__foot {
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  padding:14px 16px;
  border-bottom:1px solid var(--border);
}
.settings-modal__foot {
  justify-content:flex-end;
  border-top:1px solid var(--border);
  border-bottom:0;
}
.settings-modal__eyebrow {
  margin-bottom:4px;
  color:var(--accent);
  font-family:'DM Mono',monospace;
  font-size:9px;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.settings-modal__head h2 {
  font-size:18px;
  line-height:1.1;
}
.settings-event-editor {
  min-height:0;
  overflow:auto;
  padding:14px 16px;
}
.settings-event-editor__labels,
.settings-event-row {
  display:grid;
  grid-template-columns:minmax(170px,1.35fr) repeat(4,minmax(112px,.8fr)) minmax(154px,auto);
  gap:10px;
  align-items:end;
}
.settings-event-editor__labels {
  position:sticky;
  top:-14px;
  z-index:2;
  padding:0 0 8px;
  background:var(--surface);
}
.settings-event-editor__labels span {
  color:var(--text3);
  font-family:'DM Mono',monospace;
  font-size:9px;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.settings-event-editor__rows {
  display:grid;
  gap:8px;
}
.settings-event-row {
  padding:10px;
  border:1px solid var(--border);
  border-radius:8px;
  background:var(--surface2);
}
.settings-event-row .field label {
  display:none;
}
.settings-event-row__actions {
  display:flex;
  justify-content:flex-end;
  gap:6px;
  align-items:center;
  align-self:end;
}
.settings-event-row__actions .btn {
  min-height:36px;
}
.settings-event-row__actions [data-event-row-up],
.settings-event-row__actions [data-event-row-down] {
  width:34px;
  justify-content:center;
  padding-left:0;
  padding-right:0;
}

/* ── Card footer: right-aligned save buttons ─────────────────────────── */
.form-card-footer {
  display: flex;
  justify-content: flex-end;
  padding-top: 13px;
  margin-top: 13px;
  border-top: 1px solid var(--border);
}

/* ── Workspace logo layout ───────────────────────────────────────────── */
.settings-logo-row {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 18px;
  align-items: start;
}
.settings-logo-preview {
  min-width: 90px;
  max-width: 150px;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--surface2);
  flex-shrink: 0;
}
.settings-logo-preview img {
  display: block;
  max-width: 130px;
  max-height: 56px;
  object-fit: contain;
}
.settings-logo-preview .upload-ui__preview-empty {
  font-size: 18px;
  letter-spacing: .04em;
}
.settings-logo-body {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

/* ── Roadmap compact panel ───────────────────────────────────────────── */
.settings-roadmap-card {
  max-height: calc(100vh - 108px);
  overflow-y: auto;
  scrollbar-width: thin;
}
.settings-roadmap-section {
  margin-bottom: 12px;
}
.settings-roadmap-section:last-child {
  margin-bottom: 0;
}
.settings-roadmap-section--next {
  padding-top: 12px;
  border-top: 1px solid var(--border);
  margin-top: 4px;
}
.settings-roadmap-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 7px;
}
.settings-roadmap-section-label {
  font-family: 'DM Mono', monospace;
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--blue);
}
.settings-roadmap-progress {
  font-family: 'DM Mono', monospace;
  font-size: 9px;
  color: var(--text3);
  flex-shrink: 0;
}
.settings-roadmap-items {
  display: flex;
  flex-direction: column;
}
.settings-roadmap-item {
  display: flex;
  align-items: flex-start;
  gap: 7px;
  padding: 3px 0;
  font-size: 11.5px;
  color: var(--text2);
  line-height: 1.4;
  border-bottom: 1px solid rgba(255,255,255,.035);
}
.settings-roadmap-item:last-child { border-bottom: none; }
.settings-roadmap-item--done { color: var(--text3); }
.settings-roadmap-item--done .settings-roadmap-item__icon { color: var(--green); }
.settings-roadmap-item__icon {
  font-family: 'DM Mono', monospace;
  font-size: 9px;
  margin-top: 2px;
  flex-shrink: 0;
  color: var(--border2);
  width: 10px;
  text-align: center;
  line-height: 1.5;
}
.settings-roadmap-item__text {
  flex: 1;
  min-width: 0;
}

/* Light-theme support for new settings elements */
html.theme-light .settings-header { background: #f8f9fc; border-color: rgba(10,10,10,.08); }
html.theme-light .settings-stat-chip { background: #f1f3f8; border-color: rgba(10,10,10,.09); }
html.theme-light .settings-stat-chip__label { color: #7a8098; }
html.theme-light .settings-stat-chip__value { color: #161922; }
html.theme-light .settings-pair-divider { background: rgba(10,10,10,.08); }
html.theme-light .settings-event-summary__item,
html.theme-light .settings-event-row { background:#f4f6fa; border-color:rgba(10,10,10,.08); }
html.theme-light .settings-modal__panel,
html.theme-light .settings-event-editor__labels { background:#ffffff; }
html.theme-light .settings-modal__backdrop { background:rgba(15,18,28,.48); }
html.theme-light .settings-roadmap-section-label { color: var(--blue); }
html.theme-light .settings-roadmap-item { color: #42495c; border-bottom-color: rgba(10,10,10,.05); }
html.theme-light .settings-roadmap-item--done { color: #9ba3b8; }
html.theme-light .settings-roadmap-item--done .settings-roadmap-item__icon { color: #3ab875; }

/* ── Responsive ──────────────────────────────────────────────────────── */
@media (max-width: 860px) {
  .settings-grid {
    grid-template-columns: 1fr;
  }
  .settings-col-rail {
    position: static;
    order: 10; /* push roadmap below all main cards */
  }
  .settings-roadmap-card {
    max-height: none;
  }
  .settings-pair-row {
    grid-template-columns: 1fr;
    gap: 16px 0;
  }
  .settings-section-head {
    flex-direction: column;
  }
  .settings-section-actions {
    width: 100%;
  }
  .settings-card-split {
    grid-template-columns: 1fr;
  }
  .settings-event-editor__labels { display:none; }
  .settings-event-row {
    grid-template-columns:1fr 1fr;
  }
  .settings-event-row .field label {
    display:block;
  }
  .settings-event-row .field:first-of-type,
  .settings-event-row__actions {
    grid-column:1 / -1;
  }
  .settings-event-row__actions {
    justify-content:flex-start;
  }
  .settings-pair-divider {
    width: auto;
    height: 1px;
    align-self: auto;
  }
  .settings-logo-row {
    grid-template-columns: 1fr;
  }
  .settings-logo-preview {
    max-width: 100%;
  }
}
@media (max-width: 520px) {
  .settings-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }
  .settings-header__chips { gap: 4px; }
  .settings-modal { padding:8px; }
  .settings-modal__panel,
  .settings-modal__panel form {
    max-height:92vh;
  }
  .settings-event-row {
    grid-template-columns:1fr;
  }
  .settings-event-summary__item {
    align-items:flex-start;
    flex-direction:column;
    gap:3px;
  }
}
