:root {
  --accent: #0a84ff;
  --accent-rgb: 10,132,255;
  --bg: #101114;
  --surface: #1a1b1f;
  --surface-raised: #222328;
  --surface-soft: #292a30;
  --text: #f5f5f7;
  --muted: #9b9ca3;
  --line: rgba(255,255,255,.09);
  --line-strong: rgba(255,255,255,.15);
  --red: #ff453a;
  --green: #30d158;
  --orange: #ff9f0a;
  --shadow: 0 18px 50px rgba(0,0,0,.28);
  --radius: 20px;
  --topbar: 72px;
  --sidebar: 252px;
}

:root[data-theme="light"] {
  --bg: #f2f2f7;
  --surface: #ffffff;
  --surface-raised: #ffffff;
  --surface-soft: #e9e9ef;
  --text: #1c1c1e;
  --muted: #6e6e73;
  --line: rgba(60,60,67,.12);
  --line-strong: rgba(60,60,67,.2);
  --red: #ff3b30;
  --green: #28a745;
  --orange: #ff9500;
  --shadow: 0 14px 38px rgba(35,35,45,.08);
}

* { box-sizing: border-box; }
html { min-height: 100%; background: var(--bg); }
body {
  min-height: 100vh;
  margin: 0;
  background:
    radial-gradient(circle at 88% -10%, rgba(var(--accent-rgb),.12), transparent 28rem),
    var(--bg);
  color: var(--text);
  font: 15px/1.48 -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}
body.nav-open { overflow: hidden; }
a { color: var(--accent); text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button { color: inherit; }

.topbar {
  position: sticky;
  top: 0;
  z-index: 50;
  height: var(--topbar);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 26px;
  border-bottom: 1px solid var(--line);
  background: rgba(17,18,21,.78);
  box-shadow: 0 1px 0 rgba(0,0,0,.25);
  backdrop-filter: saturate(150%) blur(22px);
  -webkit-backdrop-filter: saturate(150%) blur(22px);
}
.topbar-leading, .account, .brand { display: flex; align-items: center; }
.topbar-leading { min-width: 0; gap: 12px; }
.brand { min-width: 0; gap: 11px; color: var(--text); }
.brand-mark {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 13px;
  color: #fff;
  background: linear-gradient(145deg, rgba(var(--accent-rgb),1), rgba(var(--accent-rgb),.62));
  box-shadow: 0 8px 24px rgba(var(--accent-rgb),.25), inset 0 1px 0 rgba(255,255,255,.3);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .03em;
}
.brand-copy { display: grid; line-height: 1.18; }
.brand-copy strong { font-size: 15px; letter-spacing: -.015em; }
.brand-copy small { margin-top: 3px; color: var(--muted); font-size: 11px; }
.account { gap: 10px; }
.account-identity { display: grid; justify-items: end; line-height: 1.15; }
.account-identity small { margin-top: 3px; color: var(--muted); font-size: 10px; }
.account-name { max-width: 190px; overflow: hidden; color: #c8c8ce; text-overflow: ellipsis; white-space: nowrap; }
.icon-button {
  width: 44px;
  height: 44px;
  display: inline-grid;
  place-items: center;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(255,255,255,.055);
  cursor: pointer;
  transition: .18s ease;
}
.icon-button:hover { border-color: var(--line-strong); background: rgba(255,255,255,.09); }
.icon-button:focus-visible, .button:focus-visible, .link-button:focus-visible, a:focus-visible {
  outline: 3px solid rgba(var(--accent-rgb),.38);
  outline-offset: 2px;
}
.nav-toggle { display: none; }
.nav-toggle > span { display: block; width: 18px; height: 1.5px; margin: 2px 0; border-radius: 2px; background: currentColor; }
.appearance-dot {
  width: 19px;
  height: 19px;
  border: 3px solid rgba(255,255,255,.75);
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 0 4px rgba(var(--accent-rgb),.18);
}
.theme-switch {
  position: relative;
  width: 58px;
  height: 32px;
  flex: 0 0 auto;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--line-strong);
  border-radius: 99px;
  background: #303137;
  box-shadow: inset 0 1px 3px rgba(0,0,0,.25);
  cursor: pointer;
  transition: background .22s ease, border-color .22s ease;
}
.theme-switch-sun, .theme-switch-moon {
  position: absolute;
  z-index: 1;
  top: 50%;
  transform: translateY(-50%);
  font-size: 12px;
  line-height: 1;
  pointer-events: none;
}
.theme-switch-sun { left: 9px; color: #ffb340; }
.theme-switch-moon { right: 10px; color: #a8b6ff; font-size: 9px; }
.theme-switch-thumb {
  position: absolute;
  z-index: 2;
  top: 3px;
  left: 3px;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #f5f5f7;
  box-shadow: 0 2px 7px rgba(0,0,0,.4);
  transition: transform .24s cubic-bezier(.2,.8,.2,1), background .22s ease;
}
.theme-switch[aria-checked="true"] { background: rgba(var(--accent-rgb),.18); border-color: rgba(var(--accent-rgb),.3); }
.theme-switch[aria-checked="true"] .theme-switch-thumb { transform: translateX(26px); background: #fff; }
.theme-switch:focus-visible { outline: 3px solid rgba(var(--accent-rgb),.38); outline-offset: 2px; }
.link-button {
  min-height: 40px;
  padding: 0 10px;
  border: 0;
  background: none;
  color: var(--text);
  cursor: pointer;
}
.logout-button { color: var(--muted); }
.logout-button:hover { color: var(--text); }

.appearance-panel {
  position: absolute;
  top: calc(100% + 10px);
  right: 24px;
  width: min(330px, calc(100vw - 24px));
  padding: 18px;
  border: 1px solid var(--line-strong);
  border-radius: 20px;
  background: rgba(35,36,41,.92);
  box-shadow: 0 24px 70px rgba(0,0,0,.5);
  backdrop-filter: blur(28px) saturate(140%);
  -webkit-backdrop-filter: blur(28px) saturate(140%);
}
.appearance-panel[hidden], .nav-backdrop[hidden] { display: none; }
.appearance-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.appearance-heading div { display: grid; }
.appearance-heading small { margin-top: 3px; color: var(--muted); }
.appearance-close {
  width: 32px;
  height: 32px;
  padding: 0 0 2px;
  border: 0;
  border-radius: 50%;
  background: rgba(255,255,255,.08);
  color: var(--muted);
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
}
.color-presets { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; margin: 20px 0; }
.color-swatch {
  position: relative;
  aspect-ratio: 1;
  min-width: 0;
  border: 3px solid transparent;
  border-radius: 50%;
  background: var(--swatch);
  box-shadow: inset 0 1px 1px rgba(255,255,255,.35), 0 5px 12px rgba(0,0,0,.25);
  cursor: pointer;
}
.color-swatch.selected { border-color: #fff; box-shadow: 0 0 0 3px rgba(var(--accent-rgb),.28); }
.custom-color {
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 8px 9px 8px 14px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(255,255,255,.045);
}
.custom-color input { width: 44px; height: 32px; padding: 2px; border: 0; border-radius: 9px; cursor: pointer; }

.shell { display: grid; grid-template-columns: var(--sidebar) minmax(0,1fr); min-height: calc(100vh - var(--topbar)); }
.sidebar {
  position: sticky;
  top: var(--topbar);
  height: calc(100vh - var(--topbar));
  overflow-y: auto;
  padding: 22px 14px 30px;
  border-right: 1px solid var(--line);
  background: rgba(18,19,22,.66);
}
.sidebar-mobile-head { display: none; }
.nav-section {
  margin: 19px 13px 7px;
  color: #686970;
  font-size: 10px;
  font-weight: 750;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.nav-section:first-of-type { margin-top: 2px; }
.sidebar a {
  min-height: 44px;
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 3px 0;
  padding: 9px 12px;
  border: 1px solid transparent;
  border-radius: 13px;
  color: #aaaab1;
  font-weight: 550;
  transition: .18s ease;
}
.sidebar a:hover { color: var(--text); background: rgba(255,255,255,.045); }
.sidebar a.active {
  border-color: rgba(var(--accent-rgb),.18);
  background: rgba(var(--accent-rgb),.14);
  color: #fff;
}
.nav-icon {
  width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 8px;
  background: rgba(255,255,255,.065);
  color: #b5b5bb;
  font-size: 15px;
  line-height: 1;
}
.sidebar a.active .nav-icon { background: var(--accent); color: #fff; box-shadow: 0 5px 14px rgba(var(--accent-rgb),.25); }

.content { width: 100%; max-width: 1540px; min-width: 0; margin: 0 auto; padding: 38px clamp(22px,3vw,46px) 60px; }
.page-head, .panel-head { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
h1, h2 { margin: 0; color: var(--text); letter-spacing: -.035em; line-height: 1.15; }
h1 { font-size: clamp(28px,3vw,38px); font-weight: 720; }
h2 { font-size: 21px; font-weight: 680; }
.eyebrow { margin: 0 0 6px; color: var(--accent); font-size: 11px; font-weight: 750; letter-spacing: .11em; text-transform: uppercase; }
.muted { color: var(--muted); }

.stats { display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; margin-bottom: 24px; }
.stats article, .panel, .form-card, .application-card, .login-card {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: linear-gradient(145deg, rgba(255,255,255,.055), rgba(255,255,255,.025));
  box-shadow: var(--shadow), inset 0 1px 0 rgba(255,255,255,.025);
}
.stats article { position: relative; overflow: hidden; padding: 22px; }
.stats article:after {
  content: "";
  position: absolute;
  right: -24px;
  bottom: -34px;
  width: 100px;
  height: 100px;
  border-radius: 50%;
  background: rgba(var(--accent-rgb),.09);
  filter: blur(4px);
}
.stats span, .stats small { display: block; color: var(--muted); }
.stats strong { display: block; margin: 5px 0; color: #fff; font-size: 36px; letter-spacing: -.045em; }
.stats .non-tsn-stat strong { color: #ffd36a; }
.stats .non-tsn-stat:after { background: rgba(255,159,10,.16); }
.controller-hub-stats article { padding: 0; }
.controller-hub-stats article > a {
  position: relative;
  z-index: 1;
  display: block;
  min-height: 100%;
  padding: 22px;
  color: inherit;
  text-decoration: none;
}
.controller-hub-stats article > a:hover span { color: var(--accent); }
.dashboard-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin: 4px 2px 14px; }
.dashboard-section-head small { color: var(--muted); text-align: right; }
.channel-stats .channel-stat:before {
  content: "";
  position: absolute;
  top: 20px;
  right: 20px;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: currentColor;
  box-shadow: 0 0 14px currentColor;
}
.channel-stats .android { color: #68d391; }
.channel-stats .iphone { color: #a8b8d8; }
.channel-stats .telegram { color: #4db8ff; }
.channel-stats .max { color: #ab8cff; }
.channel-stats .channel-stat strong { color: currentColor; }
.panel { margin-top: 16px; padding: 22px; }
.panel.table-wrap { padding: 0; }
.table-wrap { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
table { width: 100%; border-collapse: collapse; text-align: left; }
th {
  padding: 14px 16px;
  border-bottom: 1px solid var(--line);
  color: #77787f;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .055em;
  text-transform: uppercase;
  white-space: nowrap;
}
td { padding: 14px 16px; border-bottom: 1px solid rgba(255,255,255,.055); color: #d8d8dc; white-space: nowrap; }
tbody tr { transition: background .15s ease; }
tbody tr:hover { background: rgba(255,255,255,.025); }
tr:last-child td { border-bottom: 0; }
.actions { text-align: right; }
.empty { padding: 42px 20px; color: var(--muted); text-align: center; }

.status, .moderation-status {
  display: inline-flex;
  align-items: center;
  padding: 5px 10px;
  border: 1px solid var(--line);
  border-radius: 99px;
  background: rgba(255,255,255,.055);
  color: #aaaab0;
  font-size: 12px;
  font-weight: 650;
}
.status.on, .moderation-status.approved { border-color: rgba(48,209,88,.2); background: rgba(48,209,88,.12); color: #68e784; }
.status.blocked, .moderation-status.rejected { border-color: rgba(255,69,58,.2); background: rgba(255,69,58,.12); color: #ff7770; }
.moderation-status { border-color: rgba(255,159,10,.2); background: rgba(255,159,10,.13); color: #ffb63f; }
.client-badge {
  min-width: 76px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 5px 10px;
  border: 1px solid var(--line);
  border-radius: 99px;
  background: rgba(255,255,255,.055);
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}
.client-badge.telegram { border-color: rgba(42,171,238,.24); background: rgba(42,171,238,.13); color: #67c8fa; }
.client-badge.max { border-color: rgba(132,92,246,.25); background: rgba(132,92,246,.14); color: #b69cff; }
.role-badge {
  display: inline-flex;
  padding: 5px 10px;
  border: 1px solid var(--line);
  border-radius: 99px;
  font-size: 12px;
  font-weight: 700;
}
.role-badge.superadmin { border-color: rgba(255,159,10,.24); background: rgba(255,159,10,.12); color: #ffb84d; }
.role-badge.manager { border-color: rgba(var(--accent-rgb),.24); background: rgba(var(--accent-rgb),.12); color: #73baff; }
.role-badge.guard { border-color: rgba(48,209,88,.22); background: rgba(48,209,88,.11); color: #68e784; }
.address-non-tsn {
  display: inline-flex;
  padding: 5px 10px;
  border: 1px solid rgba(255,159,10,.28);
  border-radius: 99px;
  background: rgba(255,159,10,.14);
  color: #ffd36a;
  font-weight: 700;
}
.user-blocked {
  display: inline-flex;
  padding: 5px 10px;
  border: 1px solid rgba(255,69,58,.3);
  border-radius: 99px;
  background: rgba(255,69,58,.14);
  color: #ff7770;
  font-weight: 700;
}
.list-status-legend {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 9px;
  margin: 0 0 12px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(255,255,255,.025);
}
.list-status-legend:before {
  content: "Обозначения";
  margin-right: 2px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}
.audit-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.audit-filters {
  display: grid;
  grid-template-columns: minmax(220px, 1.4fr) repeat(3, minmax(170px, 1fr)) repeat(2, minmax(145px, .75fr));
  gap: 12px;
  margin-bottom: 16px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: linear-gradient(145deg, rgba(255,255,255,.045), rgba(255,255,255,.02));
}
.audit-filters label { min-width: 0; color: var(--muted); font-size: 12px; font-weight: 700; }
.audit-filters input, .audit-filters select { margin-top: 6px; }
.audit-filter-actions { grid-column: 1/-1; display: flex; align-items: center; gap: 14px; }
.audit-table { margin-top: 0; }
.audit-table td { vertical-align: top; }
.audit-date, .audit-ip { white-space: nowrap; font-variant-numeric: tabular-nums; }
.audit-role { display: block; margin-top: 4px; color: var(--muted); white-space: nowrap; }
.audit-result {
  display: inline-flex;
  padding: 5px 9px;
  border-radius: 99px;
  white-space: nowrap;
  font-size: 12px;
  font-weight: 750;
}
.audit-result.success { border: 1px solid rgba(48,209,88,.24); background: rgba(48,209,88,.12); color: #68e784; }
.audit-result.error { border: 1px solid rgba(255,69,58,.28); background: rgba(255,69,58,.13); color: #ff7770; }
.audit-details summary { color: var(--accent); cursor: pointer; white-space: nowrap; }
.audit-details dl { min-width: 250px; margin: 10px 0 0; padding: 10px; border: 1px solid var(--line); border-radius: 10px; background: rgba(0,0,0,.12); }
.audit-details dl div + div { margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--line); }
.audit-details dt { color: var(--muted); font-size: 11px; font-weight: 700; }
.audit-details dd { margin: 2px 0 0; overflow-wrap: anywhere; }

.button {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 9px 15px;
  border: 1px solid var(--line-strong);
  border-radius: 12px;
  background: rgba(255,255,255,.065);
  color: var(--text);
  font-weight: 600;
  cursor: pointer;
  transition: transform .15s ease, background .15s ease, border-color .15s ease;
}
.button:hover { border-color: rgba(255,255,255,.22); background: rgba(255,255,255,.1); }
.button:active { transform: scale(.98); }
.button.primary { border-color: transparent; background: var(--accent); color: #fff; box-shadow: 0 8px 22px rgba(var(--accent-rgb),.22); }
.button.primary:hover { filter: brightness(1.09); }
.button:disabled, button:disabled { opacity: .4; cursor: not-allowed; }
.danger-button { min-height: 38px; padding: 5px 8px; border: 0; background: none; color: #ff6961; cursor: pointer; }
.queue-clear-button { padding: 9px 14px; border: 1px solid rgba(255,69,58,.35); border-radius: 12px; background: rgba(255,69,58,.08); font-weight: 700; }
.queue-clear-button:hover:not(:disabled) { background: rgba(255,69,58,.15); }
.queue-clear-button:disabled { cursor: not-allowed; opacity: .45; }
.table-link { min-height: 38px; padding: 5px 4px; color: var(--accent); }
.back { display: inline-block; margin-bottom: 9px; color: var(--muted); }
.back:hover { color: var(--text); }

input, select, textarea {
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid var(--line-strong);
  border-radius: 12px;
  outline: none;
  background: rgba(8,9,11,.58);
  color: var(--text);
  transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
textarea { min-height: 96px; resize: vertical; }
select { color-scheme: dark; }
input::placeholder, textarea::placeholder { color: #65666d; }
input:focus, select:focus, textarea:focus {
  border-color: var(--accent);
  background: rgba(10,11,14,.78);
  box-shadow: 0 0 0 4px rgba(var(--accent-rgb),.14);
}
input[type="checkbox"], input[type="radio"] { min-height: 0; accent-color: var(--accent); }
.search { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 18px; }
.search input { width: min(420px,100%); }
.address-filters select { width: auto; min-width: 150px; }
.address-filters input { min-width: 210px; }
.pagination { display: flex; align-items: center; justify-content: center; gap: 20px; margin: 24px; color: var(--muted); }
.mobile-registration-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.mobile-registration-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.mobile-registration-card { min-width: 0; padding: 22px; }
.mobile-registration-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.mobile-registration-card-head h2 { margin: 4px 0 0; font-size: 22px; }
.mobile-registration-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 18px; margin: 20px 0; }
.mobile-registration-details div { min-width: 0; }
.mobile-registration-details dt { margin-bottom: 4px; color: var(--muted); font-size: 12px; font-weight: 650; text-transform: uppercase; letter-spacing: .04em; }
.mobile-registration-details dd { margin: 0; overflow-wrap: anywhere; }
.mobile-session-actions { border-top: 1px solid var(--line); padding-top: 16px; }
.mobile-session-actions form { margin: 0; }
.mobile-session-actions small { display: block; margin-top: 8px; line-height: 1.35; }
.mobile-device-buttons { display: flex; flex-wrap: wrap; gap: 9px; }
.mobile-device-buttons .button, .mobile-device-buttons .danger-button { min-height: 40px; }

.form-card { max-width: 800px; padding: 26px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 19px; }
.form-grid label, .stack label, .application-form label, .moderation-form label, .template-form label, .module-add-form label { color: #dddde1; font-weight: 620; }
.form-grid label input, .form-grid label select, .stack input { margin-top: 7px; font-weight: 400; }
.form-grid small, .full-field small { display: block; margin-top: 6px; color: var(--muted); font-weight: 400; }
.full-field { grid-column: 1/-1; }
.toggle { grid-column: span 1; display: flex; align-items: center; gap: 11px; padding-top: 8px; }
.toggle input { position: absolute; width: 1px; opacity: 0; }
.toggle span, .map-provider-track {
  position: relative;
  width: 46px;
  height: 27px;
  flex: 0 0 auto;
  border-radius: 99px;
  background: #414249;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.04);
  transition: .2s;
}
.toggle span:after, .map-provider-track:after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 21px;
  height: 21px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 2px 7px rgba(0,0,0,.35);
  transition: .2s;
}
.toggle input:checked + span, .map-provider-switch input:checked + .map-provider-track { background: var(--accent); }
.toggle input:checked + span:after { transform: translateX(19px); }
.form-actions { grid-column: 1/-1; display: flex; flex-wrap: wrap; gap: 9px; padding-top: 8px; }
.danger-zone { margin-top: 25px; padding-top: 20px; border-top: 1px solid var(--line); }
.form-section-title { grid-column: 1/-1; display: flex; align-items: center; gap: 12px; padding-top: 20px; border-top: 1px solid var(--line); color: var(--muted); }
.form-section-title strong { color: var(--text); }
.form-note { align-self: end; margin: 0; color: var(--muted); font-size: 13px; }
.existing-address-filters { grid-column: 1/-1; display: grid; grid-template-columns: 1fr 1fr; gap: 19px; padding: 17px; border: 1px solid var(--line); border-radius: 15px; background: rgba(255,255,255,.025); }
.existing-address-filters label { min-width: 0; }

.flash { margin-bottom: 18px; padding: 13px 15px; border: 1px solid rgba(48,209,88,.18); border-radius: 14px; background: rgba(48,209,88,.1); color: #79e991; }
.flash.error { border-color: rgba(255,69,58,.2); background: rgba(255,69,58,.11); color: #ff7c74; }
.compact-field { display: flex; align-items: center; gap: 7px; color: var(--muted); font-size: 12px; white-space: nowrap; }
.compact-field input { min-width: 175px; }
.delete-range { margin-bottom: 18px; padding: 13px 15px; border: 1px solid rgba(255,69,58,.18); border-radius: 15px; background: rgba(255,69,58,.045); }
.delete-range summary { color: #ff746c; font-weight: 650; cursor: pointer; }
.delete-range form { display: flex; align-items: end; gap: 12px; margin-top: 14px; }
.delete-range label { color: var(--muted); font-size: 12px; }
.delete-range input { min-width: 190px; margin-top: 5px; }
.blocking-actions { display: flex; align-items: center; justify-content: flex-end; gap: 12px; }
.blocking-actions form { margin: 0; }
.registry-actions { display: flex; align-items: center; justify-content: flex-end; gap: 16px; margin: 12px 2px; }
.registry-actions span { color: var(--muted); }
.check-cell { width: 42px; text-align: center; }
.check-cell input { width: 18px; height: 18px; accent-color: var(--accent); }

.login-page, .public-application {
  min-height: 100vh;
  padding: 28px;
  background:
    radial-gradient(circle at 15% 12%, rgba(var(--accent-rgb),.17), transparent 32rem),
    radial-gradient(circle at 85% 88%, rgba(var(--accent-rgb),.08), transparent 28rem),
    var(--bg);
}
.login-page { display: grid; place-items: center; }
.login-card { width: min(440px,100%); padding: 38px; }
.login-card-unified { width: min(520px,100%); padding: 34px; overflow: hidden; }
.login-header { display: flex; align-items: center; gap: 16px; }
.login-header .mark { flex: 0 0 auto; margin: 0; }
.login-header .eyebrow { margin: 0 0 3px; }
.login-header h1 { margin: 0; font-size: 28px; }
.login-intro { margin: 18px 0 22px; }
.login-mode-switch {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px;
  padding: 4px;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: rgba(0,0,0,.2);
}
.login-mode-switch button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 43px;
  border: 0;
  border-radius: 11px;
  background: transparent;
  color: var(--muted);
  cursor: pointer;
  font: inherit;
  font-weight: 680;
  transition: background .18s ease, color .18s ease, box-shadow .18s ease;
}
.login-mode-switch button.active {
  background: rgba(255,255,255,.09);
  color: var(--text);
  box-shadow: 0 4px 14px rgba(0,0,0,.16), inset 0 1px 0 rgba(255,255,255,.08);
}
.login-mode-icon { color: var(--accent); font-size: 14px; }
.login-unified-form { margin-top: 22px; }
.login-panel[hidden] { display: none; }
.login-panel-heading { min-height: 62px; }
.login-panel-heading h2 { margin: 0 0 5px; font-size: 20px; }
.login-panel-heading p { margin: 0; font-size: 13px; line-height: 1.45; }
.login-unified-form .stack { margin-top: 18px; }
.login-submit { width: 100%; min-height: 46px; margin-top: 3px; }
.login-phone-chip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: rgba(255,255,255,.035);
}
.login-phone-chip span { color: var(--muted); font-size: 13px; }
.login-phone-chip strong { letter-spacing: .02em; }
.login-resend {
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: 8px;
  margin-top: 3px;
}
.login-resend span { color: var(--muted); font-size: 12px; }
.login-resend .button { padding-inline: 12px; }
.login-security-note {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}
.login-security-note span {
  display: grid;
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  place-items: center;
  border-radius: 50%;
  background: rgba(48,209,88,.12);
  color: #55d976;
  font-weight: 800;
}
.mark, .application-brand {
  display: inline-grid;
  place-items: center;
  margin-bottom: 25px;
  padding: 9px 11px;
  border-radius: 12px;
  background: var(--accent);
  color: #fff;
  box-shadow: 0 8px 24px rgba(var(--accent-rgb),.23);
  font-weight: 800;
}
.stack { display: grid; gap: 17px; margin-top: 24px; }
.application-card { max-width: 900px; margin: 16px auto; padding: 36px; }
.application-form { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 28px; }
.application-form input, .application-form textarea { margin-top: 7px; }
.application-form .wide { grid-column: 1/-1; }
.application-form .consent { display: flex; align-items: flex-start; gap: 10px; color: var(--muted); font-weight: 400; }
.application-form .consent input { width: 18px; height: 18px; margin: 3px 0 0; }
.application-actions { display: flex; justify-content: flex-end; }
.application-detail { max-width: 900px; display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.application-detail div { padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.application-detail span { display: block; margin-bottom: 5px; color: var(--muted); font-size: 12px; }
.application-detail strong { font-weight: 600; white-space: pre-wrap; }
.moderation-card { max-width: 900px; margin-bottom: 18px; }
.moderation-heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 20px; }
.moderation-form { display: grid; grid-template-columns: 220px 1fr auto; align-items: end; gap: 14px; }
.moderation-form select, .moderation-form textarea, .template-form input, .template-form textarea { margin-top: 7px; font-weight: 400; }
.stored-document-note { margin: 16px 0 0; color: var(--muted); font-size: 13px; }

.settings-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.settings-grid .form-card { max-width: none; }
.broadcast-card, .template-management { max-width: 940px; }
.conditional-fields > label { display: block; }
.group-fields { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; }
.selected-file { grid-column: 1/-1; padding: 11px 13px; border: 1px solid rgba(var(--accent-rgb),.16); border-radius: 12px; background: rgba(var(--accent-rgb),.1); color: #b9ddff; }
.broadcast-preview { grid-column: 1/-1; display: flex; align-items: center; gap: 16px; padding: 15px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.035); }
.broadcast-preview span { flex: 1; color: var(--muted); }
.template-picker { display: grid; grid-template-columns: 1fr auto; gap: 9px; margin-top: 7px; }
.template-picker select { margin-top: 0 !important; }
.template-form { display: grid; grid-template-columns: 240px 1fr auto; align-items: end; gap: 14px; }
.template-list { display: grid; gap: 9px; margin-top: 20px; }
.template-list article { display: flex; justify-content: space-between; gap: 18px; padding: 14px 15px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.025); }
.template-list p { margin: 4px 0 0; color: var(--muted); white-space: pre-wrap; }
.template-list form { flex: 0 0 auto; }

.module-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(220px,1fr)); gap: 12px; }
.module-card { padding: 15px; border: 1px solid var(--line); border-radius: 15px; background: rgba(255,255,255,.025); }
.module-title { display: flex; align-items: center; gap: 9px; }
.online-dot { width: 10px; height: 10px; flex: 0 0 auto; border-radius: 50%; }
.online-dot.online { background: var(--green); box-shadow: 0 0 0 4px rgba(48,209,88,.13), 0 0 14px rgba(48,209,88,.35); }
.online-dot.offline { background: var(--red); box-shadow: 0 0 0 4px rgba(255,69,58,.13), 0 0 14px rgba(255,69,58,.25); }
.online-dot.unknown { background: #74757c; }
.module-address { display: block; margin: 9px 0; color: var(--muted); font-family: ui-monospace, SFMono-Regular, Consolas, monospace; }
.module-meta { display: flex; justify-content: space-between; margin-bottom: 5px; }
.module-card small { color: var(--muted); }
.module-empty { grid-column: 1/-1; }
.module-settings { margin-top: 24px; }
.module-add-form { display: grid; grid-template-columns: 1.2fr 1.2fr .8fr .8fr auto; align-items: end; gap: 12px; margin-bottom: 10px; }
.module-add-form input { margin-top: 6px; font-weight: 400; }
.module-coordinate-note { margin: 0 0 22px; font-size: 13px; }
.module-coordinate-form { min-width: 430px; display: grid; grid-template-columns: 1fr 1fr auto; align-items: center; gap: 7px; }
.module-coordinate-form input { min-width: 135px; }

.member-map-panel { min-width: 0; max-width: 100%; padding-bottom: 18px; overflow: hidden; }
.map-progress { color: var(--muted); white-space: nowrap; }
.map-toolbar { display: flex; align-items: center; gap: 14px; margin-bottom: 14px; }
.map-toolbar input { max-width: 420px; }
.map-toolbar span { color: var(--muted); white-space: nowrap; }
.member-map-panel #members-map {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  max-width: 100%;
  height: 480px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #25272c;
}
.map-empty, .map-attribution-note { margin: 10px 0 0; color: var(--muted); }
.map-attribution-note { font-size: 12px; }
.map-api-note { margin: 10px 0 0; padding: 11px 13px; border: 1px solid rgba(255,159,10,.18); border-radius: 12px; background: rgba(255,159,10,.1); color: #ffc465; font-size: 13px; }
.map-load-error { height: 100%; display: grid; place-items: center; padding: 24px; background: rgba(255,69,58,.1); color: #ff7770; text-align: center; }
.map-legend { display: flex; align-items: center; gap: 24px; margin: -2px 0 15px; padding: 10px 13px; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,255,255,.025); color: var(--muted); font-size: 13px; }
.map-legend > span { display: inline-flex; align-items: center; gap: 9px; }
.map-legend-hint { color: var(--muted); font-size: 11px; }
.map-legend-count {
  min-width: 28px;
  display: inline-grid;
  place-items: center;
  margin-left: 2px;
  padding: 3px 8px;
  border-radius: 99px;
  font-size: 12px;
  font-variant-numeric: tabular-nums;
  line-height: 1.25;
}
.map-legend-count.green { background: rgba(48,209,88,.13); color: #68e784; }
.map-legend-count.yellow { background: rgba(255,159,10,.15); color: #ffd36a; }
.map-legend-count.red { background: rgba(255,69,58,.13); color: #ff7770; }
.map-legend-count.module { background: rgba(var(--accent-rgb),.13); color: var(--accent); }
.map-legend-dot { width: 13px; height: 13px; flex: 0 0 auto; border: 2px solid #fff; border-radius: 50%; }
.map-legend-dot.green { background: var(--green); box-shadow: 0 0 0 3px rgba(48,209,88,.15), 0 0 10px rgba(48,209,88,.4); }
.map-legend-dot.yellow { background: var(--orange); box-shadow: 0 0 0 3px rgba(255,159,10,.17), 0 0 10px rgba(255,159,10,.45); }
.map-legend-dot.red { background: var(--red); box-shadow: 0 0 0 3px rgba(255,69,58,.15), 0 0 10px rgba(255,69,58,.4); }
.map-legend-module {
  width: 13px;
  height: 13px;
  flex: 0 0 auto;
  transform: rotate(45deg);
  border: 2px solid #fff;
  border-radius: 3px;
  background: #0878e8;
  box-shadow: 0 0 0 3px rgba(8,120,232,.18), 0 0 10px rgba(8,120,232,.48);
}
.map-blocked-count { color: #ff7770; font-weight: 700; }
.map-non-tsn-label { color: #ffb340; font-weight: 750; }
.yandex-status-dot { width: 20px; height: 20px; border: 3px solid #fff; border-radius: 50%; cursor: pointer; transition: transform .15s ease; }
.yandex-status-dot:hover { transform: scale(1.18); }
.yandex-status-dot.green { background: var(--green); box-shadow: 0 0 0 5px rgba(48,209,88,.19), 0 0 20px 5px rgba(48,209,88,.3); }
.yandex-status-dot.yellow { background: var(--orange); box-shadow: 0 0 0 5px rgba(255,159,10,.2), 0 0 20px 5px rgba(255,159,10,.34); }
.yandex-status-dot.red { background: var(--red); box-shadow: 0 0 0 5px rgba(255,69,58,.19), 0 0 20px 5px rgba(255,69,58,.3); }
.map-module-marker {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  padding: 0;
  transform: rotate(45deg);
  border: 3px solid #fff;
  border-radius: 6px;
  cursor: pointer;
  transition: transform .15s ease;
}
.map-module-marker > span {
  min-width: 21px;
  height: 19px;
  display: inline-grid;
  place-items: center;
  padding: 0 4px;
  transform: rotate(-45deg);
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 99px;
  background: rgba(255,255,255,.97);
  color: #17171a;
  box-shadow: 0 2px 5px rgba(0,0,0,.22);
  font-size: 9px;
  font-weight: 850;
  font-variant-numeric: tabular-nums;
  letter-spacing: -.02em;
  line-height: 1;
}
.map-module-marker:hover { transform: rotate(45deg) scale(1.15); }
.map-module-marker.online { background: #0878e8; box-shadow: 0 0 0 5px rgba(8,120,232,.22), 0 0 22px rgba(8,120,232,.58); }
.map-module-marker.offline { background: #d70015; box-shadow: 0 0 0 5px rgba(215,0,21,.22), 0 0 22px rgba(215,0,21,.52); }
.map-module-marker.unknown { background: #54565d; box-shadow: 0 0 0 5px rgba(84,86,93,.22), 0 0 16px rgba(0,0,0,.28); }
.map-module-marker-wrap { border: 0 !important; background: transparent !important; }
.module-popup-status { font-weight: 700; }
.module-popup-status.online { color: var(--accent); }
.module-popup-status.offline { color: var(--red); }
.module-popup-status.unknown { color: var(--muted); }
.module-opening-stats {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 6px;
  margin-top: 9px;
  padding: 9px;
  border: 1px solid rgba(28,28,30,.1);
  border-radius: 9px;
  background: rgba(28,28,30,.045);
}
.module-opening-stats span {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  color: var(--muted);
  font-size: 12px;
}
.module-opening-stats span:last-child { grid-column: 1/-1; color: var(--text); }
.module-opening-stats strong { color: var(--text); font-variant-numeric: tabular-nums; }
#members-map .module-opening-stats span {
  color: #555861 !important;
  opacity: 1 !important;
}
#members-map .module-opening-stats span:last-child,
#members-map .module-opening-stats strong {
  color: #17181c !important;
  opacity: 1 !important;
}
.two-gis-popup { position: relative; display: grid; gap: 5px; min-width: 190px; padding: 14px 34px 14px 15px; transform: translate(-50%,-125%); border: 1px solid var(--line-strong); border-radius: 13px; background: #24252a; color: var(--text); box-shadow: 0 12px 32px rgba(0,0,0,.4); }
.two-gis-popup:after { content: ""; position: absolute; bottom: -8px; left: 50%; width: 14px; height: 14px; transform: translateX(-50%) rotate(45deg); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #24252a; }
.two-gis-popup button { position: absolute; top: 6px; right: 8px; border: 0; background: none; color: var(--muted); font-size: 22px; cursor: pointer; }
.two-gis-popup span { color: var(--muted); font-size: 13px; }
#members-map .two-gis-popup .module-opening-stats {
  border-color: rgba(255,255,255,.1);
  background: rgba(255,255,255,.045);
}
#members-map .two-gis-popup .module-opening-stats span { color: var(--muted) !important; }
#members-map .two-gis-popup .module-opening-stats span:last-child,
#members-map .two-gis-popup .module-opening-stats strong { color: var(--text) !important; }

/* Leaflet fallback keeps map tiles constrained when the CDN stylesheet is unavailable. */
#members-map.leaflet-container { overflow: hidden; outline: 0; touch-action: pan-x pan-y; }
#members-map .leaflet-pane, #members-map .leaflet-tile, #members-map .leaflet-marker-icon, #members-map .leaflet-marker-shadow, #members-map .leaflet-tile-container, #members-map .leaflet-pane > svg, #members-map .leaflet-pane > canvas, #members-map .leaflet-zoom-box { position: absolute; top: 0; left: 0; }
#members-map .leaflet-map-pane, #members-map .leaflet-tile-pane, #members-map .leaflet-overlay-pane, #members-map .leaflet-shadow-pane, #members-map .leaflet-marker-pane, #members-map .leaflet-tooltip-pane, #members-map .leaflet-popup-pane { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
#members-map .leaflet-tile { visibility: hidden; max-width: none !important; max-height: none !important; }
#members-map .leaflet-tile-loaded { visibility: inherit; }
#members-map .leaflet-control-container { position: absolute; inset: 0; pointer-events: none; }
#members-map .leaflet-control { position: relative; z-index: 800; pointer-events: auto; }

.map-provider-card, .block-notification-card { max-width: none; margin-top: 20px; }
.map-provider-form { display: flex; align-items: center; flex-wrap: wrap; gap: 18px; }
.map-provider-form .muted { flex: 1 1 260px; margin: 0; }
.map-provider-label { display: flex; align-items: center; gap: 11px; color: #77787f; font-weight: 700; }
.map-provider-label > span.available { color: var(--text); }
.map-provider-switch { position: relative; display: inline-block; width: 58px; height: 30px; }
.map-provider-switch input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.map-provider-track { position: absolute; inset: 0; width: auto; height: auto; cursor: pointer; }
.map-provider-track:after { width: 24px; height: 24px; }
.map-provider-switch input:checked + .map-provider-track:after { transform: translateX(28px); }
.block-notification-card textarea { margin-top: 7px; line-height: 1.5; }
.notification-placeholders { margin: 0; }
.notification-placeholders code { padding: 2px 6px; border-radius: 6px; background: rgba(var(--accent-rgb),.12); color: #9bceff; font-weight: 700; }

/* Светлая тема: отдельные материалы и контраст, текущая тёмная тема остаётся базовой. */
:root[data-theme="light"] body {
  background:
    radial-gradient(circle at 88% -10%, rgba(var(--accent-rgb),.09), transparent 28rem),
    var(--bg);
}
:root[data-theme="light"] .topbar {
  border-bottom-color: rgba(60,60,67,.11);
  background: rgba(248,248,251,.82);
  box-shadow: 0 1px 0 rgba(255,255,255,.7);
}
:root[data-theme="light"] .brand-mark { color: #fff; }
:root[data-theme="light"] .account-name { color: #56565c; }
:root[data-theme="light"] .icon-button { background: rgba(118,118,128,.08); }
:root[data-theme="light"] .icon-button:hover { background: rgba(118,118,128,.14); }
:root[data-theme="light"] .appearance-dot { border-color: #fff; }
:root[data-theme="light"] .logout-button { color: #6e6e73; }
:root[data-theme="light"] .logout-button:hover { color: var(--text); }
:root[data-theme="light"] .appearance-panel {
  border-color: rgba(60,60,67,.16);
  background: rgba(250,250,252,.94);
  box-shadow: 0 24px 60px rgba(35,35,45,.18);
}
:root[data-theme="light"] .appearance-close { background: rgba(118,118,128,.12); }
:root[data-theme="light"] .custom-color {
  background: rgba(118,118,128,.07);
}
:root[data-theme="light"] .sidebar {
  background: rgba(242,242,247,.72);
}
:root[data-theme="light"] .nav-section { color: #929297; }
:root[data-theme="light"] .sidebar a { color: #606066; }
:root[data-theme="light"] .sidebar a:hover { color: var(--text); background: rgba(118,118,128,.08); }
:root[data-theme="light"] .sidebar a.active {
  border-color: rgba(var(--accent-rgb),.14);
  background: rgba(var(--accent-rgb),.11);
  color: var(--accent);
}
:root[data-theme="light"] .nav-icon { background: rgba(118,118,128,.1); color: #68686e; }
:root[data-theme="light"] .sidebar a.active .nav-icon { color: #fff; }
:root[data-theme="light"] .stats article,
:root[data-theme="light"] .panel,
:root[data-theme="light"] .form-card,
:root[data-theme="light"] .application-card,
:root[data-theme="light"] .login-card {
  background: rgba(255,255,255,.88);
  box-shadow: var(--shadow), inset 0 1px 0 rgba(255,255,255,.75);
}
:root[data-theme="light"] .login-mode-switch { background: rgba(118,118,128,.08); }
:root[data-theme="light"] .login-mode-switch button.active {
  background: #fff;
  box-shadow: 0 3px 12px rgba(35,35,45,.1);
}
:root[data-theme="light"] .login-phone-chip { background: rgba(118,118,128,.045); }
:root[data-theme="light"] .stats article:after { background: rgba(var(--accent-rgb),.07); }
:root[data-theme="light"] .stats .non-tsn-stat strong,
:root[data-theme="light"] .address-non-tsn,
:root[data-theme="light"] .map-legend-count.yellow,
:root[data-theme="light"] .map-non-tsn-label { color: #9a5b00; }
:root[data-theme="light"] .user-blocked { color: #b42318; }
:root[data-theme="light"] .list-status-legend { background: rgba(0,0,0,.018); }
:root[data-theme="light"] .stats strong { color: var(--text); }
:root[data-theme="light"] th { color: #7b7b81; }
:root[data-theme="light"] td { color: #37373c; border-bottom-color: rgba(60,60,67,.08); }
:root[data-theme="light"] tbody tr:hover { background: rgba(118,118,128,.055); }
:root[data-theme="light"] .status,
:root[data-theme="light"] .moderation-status { background: rgba(118,118,128,.08); color: #68686e; }
:root[data-theme="light"] .status.on,
:root[data-theme="light"] .moderation-status.approved { background: rgba(40,167,69,.1); color: #188437; }
:root[data-theme="light"] .status.blocked,
:root[data-theme="light"] .moderation-status.rejected { background: rgba(255,59,48,.09); color: #d72d24; }
:root[data-theme="light"] .moderation-status { background: rgba(255,149,0,.11); color: #a86200; }
:root[data-theme="light"] .client-badge.telegram { background: rgba(0,136,204,.09); color: #087bad; }
:root[data-theme="light"] .client-badge.max { background: rgba(112,72,226,.09); color: #6841ca; }
:root[data-theme="light"] .campaign-deleted-label { background: rgba(30,160,67,.08); color: #197a38; }
:root[data-theme="light"] .role-badge.superadmin { background: rgba(255,149,0,.1); color: #a86200; }
:root[data-theme="light"] .role-badge.manager { background: rgba(var(--accent-rgb),.09); color: #1769aa; }
:root[data-theme="light"] .role-badge.guard { background: rgba(40,167,69,.09); color: #188437; }
:root[data-theme="light"] .button { background: rgba(118,118,128,.08); }
:root[data-theme="light"] .button:hover { background: rgba(118,118,128,.14); }
:root[data-theme="light"] .button.primary { background: var(--accent); color: #fff; }
:root[data-theme="light"] input,
:root[data-theme="light"] select,
:root[data-theme="light"] textarea {
  background: rgba(255,255,255,.88);
  color: var(--text);
}
:root[data-theme="light"] select { color-scheme: light; }
:root[data-theme="light"] input:focus,
:root[data-theme="light"] select:focus,
:root[data-theme="light"] textarea:focus { background: #fff; }
:root[data-theme="light"] input::placeholder,
:root[data-theme="light"] textarea::placeholder { color: #9a9aa0; }
:root[data-theme="light"] .form-grid label,
:root[data-theme="light"] .stack label,
:root[data-theme="light"] .application-form label,
:root[data-theme="light"] .moderation-form label,
:root[data-theme="light"] .template-form label,
:root[data-theme="light"] .module-add-form label { color: #3a3a3f; }
:root[data-theme="light"] .toggle span,
:root[data-theme="light"] .map-provider-track { background: #d1d1d6; }
:root[data-theme="light"] .toggle input:checked + span,
:root[data-theme="light"] .map-provider-switch input:checked + .map-provider-track { background: var(--accent); }
:root[data-theme="light"] .form-section-title strong { color: var(--text); }
:root[data-theme="light"] .existing-address-filters,
:root[data-theme="light"] .template-list article,
:root[data-theme="light"] .module-card,
:root[data-theme="light"] .map-legend { background: rgba(118,118,128,.045); }
:root[data-theme="light"] .selected-file { color: #1769aa; }
:root[data-theme="light"] .broadcast-preview { background: rgba(118,118,128,.045); }
:root[data-theme="light"] .notification-placeholders code { color: #1769aa; }
:root[data-theme="light"] .map-legend-count.green { background: rgba(40,167,69,.11); color: #188437; }
:root[data-theme="light"] .map-legend-count.red { background: rgba(255,59,48,.1); color: #d72d24; }
:root[data-theme="light"] .two-gis-popup { background: #fff; color: var(--text); box-shadow: 0 12px 32px rgba(35,35,45,.2); }
:root[data-theme="light"] .two-gis-popup:after { background: #fff; }
:root[data-theme="light"] #members-map .two-gis-popup .module-opening-stats {
  border-color: rgba(28,28,30,.1);
  background: rgba(28,28,30,.045);
}
:root[data-theme="light"] .login-page,
:root[data-theme="light"] .public-application {
  background:
    radial-gradient(circle at 15% 12%, rgba(var(--accent-rgb),.13), transparent 32rem),
    radial-gradient(circle at 85% 88%, rgba(var(--accent-rgb),.06), transparent 28rem),
    var(--bg);
}

@media (max-width: 1050px) {
  :root { --sidebar: 220px; }
  .content { padding-left: 24px; padding-right: 24px; }
  .stats { grid-template-columns: repeat(2,1fr); }
  .audit-filters { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .settings-grid { grid-template-columns: 1fr; }
}

@media (max-width: 820px) {
  :root { --topbar: 64px; }
  .topbar { padding: 0 max(14px,env(safe-area-inset-right)) 0 max(14px,env(safe-area-inset-left)); }
  .nav-toggle { display: inline-grid; }
  .brand-mark { width: 38px; height: 38px; border-radius: 12px; }
  .brand-copy small, .account-identity { display: none; }
  .logout-button { padding-right: 0; }
  .appearance-panel { top: calc(100% + 8px); right: 12px; }
  .shell { display: block; min-height: calc(100vh - var(--topbar)); }
  .sidebar {
    position: fixed;
    z-index: 70;
    top: 0;
    left: 0;
    width: min(310px,86vw);
    height: 100dvh;
    padding: max(14px,env(safe-area-inset-top)) 14px max(24px,env(safe-area-inset-bottom));
    transform: translateX(-104%);
    border-right: 1px solid var(--line-strong);
    background: rgba(26,27,31,.96);
    box-shadow: 24px 0 70px rgba(0,0,0,.5);
    backdrop-filter: blur(28px);
    -webkit-backdrop-filter: blur(28px);
    transition: transform .26s cubic-bezier(.2,.8,.2,1);
  }
  :root[data-theme="light"] .sidebar { background: rgba(248,248,251,.97); }
  body.nav-open .sidebar { transform: translateX(0); }
  .sidebar-mobile-head { min-height: 48px; display: flex; align-items: center; justify-content: space-between; padding: 0 7px 8px 13px; color: var(--text); font-size: 18px; font-weight: 700; }
  .nav-backdrop { position: fixed; z-index: 60; inset: 0; background: rgba(0,0,0,.52); backdrop-filter: blur(3px); }
  .content { padding: 26px 16px calc(40px + env(safe-area-inset-bottom)); }
  .stats { grid-template-columns: 1fr; }
  .audit-filters { grid-template-columns: 1fr; }
  .audit-filter-actions { grid-column: 1; }
  .mobile-registration-list { grid-template-columns: 1fr; }
  .form-grid, .existing-address-filters, .group-fields { grid-template-columns: 1fr; }
  .toggle, .form-actions, .full-field { grid-column: 1; }
  .page-head { align-items: flex-end; }
  .address-filters { align-items: stretch; flex-direction: column; }
  .address-filters select, .address-filters input, .search input { width: 100%; min-width: 0; }
  .delete-range form, .map-toolbar, .map-provider-form { align-items: stretch; flex-direction: column; }
  .delete-range input { width: 100%; min-width: 0; }
  .moderation-form, .template-form, .module-add-form { grid-template-columns: 1fr; }
  .moderation-heading, .template-list article { align-items: flex-start; flex-direction: column; }
  .template-picker { grid-template-columns: 1fr; }
  .broadcast-preview { align-items: stretch; flex-direction: column; }
  .map-provider-form .muted { flex-basis: auto; }
  .member-map-panel #members-map { height: 390px; }
}

@media (max-width: 600px) {
  .brand-copy strong { font-size: 14px; }
  .account { gap: 4px; }
  .theme-switch { width: 52px; height: 30px; }
  .theme-switch-thumb { width: 22px; height: 22px; }
  .theme-switch[aria-checked="true"] .theme-switch-thumb { transform: translateX(22px); }
  .theme-switch-sun { left: 8px; }
  .theme-switch-moon { right: 8px; }
  .logout-button { font-size: 13px; }
  .content { padding-left: 12px; padding-right: 12px; }
  .page-head { align-items: stretch; flex-direction: column; margin-bottom: 18px; }
  .dashboard-section-head { align-items: flex-start; flex-direction: column; gap: 6px; }
  .dashboard-section-head small { text-align: left; }
  .page-head > .button, .page-head > form .button { width: 100%; }
  .panel, .form-card { padding: 18px; border-radius: 18px; }
  .panel.table-wrap { padding: 0; }
  .stats { gap: 10px; }
  .stats article { padding: 18px; border-radius: 18px; }
  .controller-hub-stats article { padding: 0; }
  .controller-hub-stats article > a { padding: 18px; }
  .stats strong { font-size: 31px; }
  .mobile-registration-details { grid-template-columns: 1fr; }
  th, td { padding: 13px 12px; }
  .form-actions .button { flex: 1 1 140px; }
  .blocking-actions { align-items: flex-end; flex-direction: column; }
  .login-page, .public-application { padding: 14px; }
  .login-card, .application-card { padding: 24px 18px; border-radius: 22px; }
  .login-card-unified { padding: 24px 18px; }
  .login-header h1 { font-size: 24px; }
  .login-resend { grid-template-columns: 1fr 1fr; }
  .login-resend span { grid-column: 1/-1; }
  .application-form, .application-detail { grid-template-columns: 1fr; }
  .application-form .wide { grid-column: 1; }
  .application-actions .button { width: 100%; }
  .map-legend { align-items: flex-start; flex-direction: column; gap: 10px; }
  .member-map-panel #members-map { height: 340px; border-radius: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *:before, *:after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

.telegram-runtime-card, .telegram-texts-card { margin-bottom: 20px; }
.gate-lock-settings-card { margin-bottom: 20px; }
.gate-lock-settings-form { display: flex; align-items: end; flex-wrap: wrap; gap: 14px; }
.gate-lock-settings-form label { flex: 1 1 220px; }
.gate-lock-settings-form input { margin-top: 7px; }
.bot-runtime-layout { display: grid; grid-template-columns: minmax(220px, .7fr) minmax(300px, 1.3fr); gap: 24px; align-items: start; }
.bot-enabled-switch { display: inline-flex; align-items: center; gap: 12px; cursor: pointer; font-weight: 700; }
.bot-enabled-switch input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.bot-switch-track { position: relative; width: 46px; height: 27px; flex: 0 0 auto; border-radius: 99px; background: #414249; transition: .2s; }
.bot-switch-track:after { content: ""; position: absolute; top: 3px; left: 3px; width: 21px; height: 21px; border-radius: 50%; background: #fff; box-shadow: 0 2px 7px rgba(0,0,0,.35); transition: .2s; }
.bot-enabled-switch input:checked + .bot-switch-track { background: var(--accent); }
.bot-enabled-switch input:checked + .bot-switch-track:after { transform: translateX(19px); }
.bot-runtime-details { display: grid; gap: 10px; margin: 0; }
.bot-runtime-details div { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 14px; padding: 10px 12px; border-radius: 14px; background: var(--surface-soft); }
.bot-runtime-details dt { color: var(--muted); }
.bot-runtime-details dd { margin: 0; overflow-wrap: anywhere; }
.telegram-texts-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.telegram-texts-grid label { display: grid; gap: 8px; }
.telegram-texts-help, .telegram-texts-grid > .button { grid-column: 1 / -1; }
.menu-audience-badge { display: inline-flex; padding: 5px 9px; border-radius: 999px; background: rgba(var(--accent-rgb), .13); color: var(--accent); font-size: 12px; font-weight: 750; white-space: nowrap; }
.menu-audience-badge.admins { background: rgba(175, 120, 255, .16); color: #c7a5ff; }
.menu-audience-badge.tsn { background: rgba(67, 211, 142, .14); color: #62daa1; }

@media (max-width: 760px) {
  .bot-runtime-layout, .telegram-texts-grid { grid-template-columns: 1fr; }
  .bot-runtime-details div { grid-template-columns: 1fr; gap: 4px; }
}

.inline-moderation-form { display: flex; gap: 8px; align-items: center; margin: 6px 0; }
.inline-moderation-form input { min-width: 180px; }
.warning-text { color: #ff9f0a; font-size: 12px; margin: 0 0 7px; }
.row-warning { background: rgba(255,159,10,.08); }
.compact-stats { margin-bottom: 16px; }

@media (max-width: 760px) {
  .inline-moderation-form { align-items: stretch; flex-direction: column; }
  .inline-moderation-form input, .inline-moderation-form button { width: 100%; }
}

.guard-page-head { align-items: center; }
.guard-live { display: inline-flex; align-items: center; gap: 8px; color: var(--muted); font-size: 13px; }
.guard-live i { width: 9px; height: 9px; border-radius: 50%; background: #32d74b; box-shadow: 0 0 14px rgba(50,215,75,.7); }
.guard-stats { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 14px; margin-bottom: 18px; }
.guard-stats article { display: grid; gap: 8px; padding: 20px; border: 1px solid var(--line); border-radius: 20px; background: var(--surface); }
.guard-stats span { color: var(--muted); font-size: 13px; }
.guard-stats strong { font-size: 34px; line-height: 1; }
.guard-gates, .guard-passes-panel { margin-bottom: 18px; }
.guard-gate-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(210px,1fr)); gap: 12px; }
.guard-gate-button { width: 100%; min-height: 86px; display: grid; gap: 7px; padding: 18px; border: 0; border-radius: 18px; color: #fff; text-align: left; cursor: pointer; background: linear-gradient(145deg,#137d43,#0c5d32); box-shadow: 0 10px 28px rgba(14,129,69,.2); }
.guard-gate-button span { font-size: 17px; font-weight: 800; }
.guard-gate-button small { color: rgba(255,255,255,.72); }
.guard-gate-button:disabled { cursor: not-allowed; opacity: .48; filter: grayscale(.7); }
.guard-pass-list { display: grid; gap: 12px; }
.guard-pass-card { display: grid; grid-template-columns: 88px minmax(0,1fr) auto; gap: 18px; align-items: center; padding: 16px; border: 1px solid var(--line); border-radius: 18px; background: var(--surface-soft); }
.guard-pass-card.today { border-color: rgba(var(--accent-rgb),.55); box-shadow: inset 4px 0 0 var(--accent); }
.guard-pass-card.status-entered { border-color: rgba(50,215,75,.5); box-shadow: inset 4px 0 0 #32d74b; }
.guard-pass-date { display: grid; place-items: center; padding: 9px; border-radius: 14px; background: var(--surface); }
.guard-pass-date strong { font-size: 28px; line-height: 1; }
.guard-pass-date span, .guard-pass-date em { color: var(--muted); font-size: 11px; font-style: normal; }
.guard-pass-date em { margin-top: 5px; color: var(--accent); font-weight: 800; }
.guard-pass-main { display: grid; gap: 5px; min-width: 0; }
.guard-pass-main p, .guard-pass-main small { margin: 0; color: var(--muted); }
.guard-pass-title { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.guard-pass-title strong { font-size: 21px; letter-spacing: .04em; }
.guard-pass-actions { min-width: 150px; }
.pass-status { display: inline-flex; padding: 5px 9px; border-radius: 999px; font-size: 12px; font-weight: 800; background: rgba(var(--accent-rgb),.13); color: var(--accent); }
.pass-status.entered { background: rgba(50,215,75,.15); color: #48dc83; }
.pass-status.exited { background: rgba(142,142,147,.16); color: var(--muted); }
.pass-status.cancelled { background: rgba(255,69,58,.14); color: #ff6961; }
.pass-status.new { background: rgba(10,132,255,.15); color: #5eb0ff; }
.pass-status.in_progress { background: rgba(255,159,10,.16); color: #ffb340; }
.pass-status.completed { background: rgba(50,215,75,.15); color: #48dc83; }
.pass-status.rejected { background: rgba(255,69,58,.14); color: #ff6961; }
.maintenance-filters { grid-template-columns: minmax(240px, 1fr) 190px auto auto; }
.maintenance-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 18px; }
.maintenance-card { min-width: 0; }
.maintenance-card .panel-head { margin-bottom: 14px; align-items: flex-start; }
.maintenance-card h2 { margin: 3px 0 0; font-size: 20px; }
.maintenance-meta { display: flex; flex-wrap: wrap; gap: 8px 16px; color: var(--muted); font-size: 13px; }
.maintenance-text { white-space: pre-wrap; line-height: 1.55; overflow-wrap: anywhere; }
.maintenance-photo { display: grid; gap: 8px; color: var(--accent); font-size: 13px; font-weight: 700; }
.maintenance-photo img { width: 100%; max-height: 300px; object-fit: cover; border-radius: 16px; border: 1px solid var(--line); }
.maintenance-status-form { display: grid; gap: 12px; margin-top: 18px; }
.maintenance-status-form select, .maintenance-status-form textarea { margin-top: 7px; }
.settings-section-note { max-width: 720px; margin: 7px 0 0; color: var(--muted); font-size: 13px; font-weight: 500; line-height: 1.45; }
.mqtt-settings-card { margin-bottom: 20px; }
.mqtt-admin-stats { margin-bottom: 20px; }
.mqtt-device-panel { margin-top: 20px; }
.table-subline { display: block; margin-top: 5px; color: var(--muted); font-size: 12px; }
.mqtt-device-error { max-width: 300px; color: var(--muted); font-size: 13px; line-height: 1.4; }
.mqtt-device-table code { overflow-wrap: anywhere; }
.mqtt-monitor-row td { padding-top: 0; border-top: 0; }
.mqtt-monitor-details { min-width: 0; }
.mqtt-monitor-details summary { color: var(--accent); cursor: pointer; font-size: 12px; font-weight: 700; }
.mqtt-monitor-form { display: grid; grid-template-columns: repeat(4, minmax(150px, 1fr)) auto; align-items: end; gap: 10px; margin-top: 10px; padding: 12px; border: 1px solid var(--line); border-radius: 13px; background: var(--surface-soft); }
.mqtt-monitor-form label { font-size: 12px; }
.mqtt-monitor-form input { min-width: 0; width: 100%; margin-top: 5px; }
.mqtt-monitor-form .button { min-height: 42px; white-space: nowrap; }
.mqtt-settings-form { display: grid; gap: 16px; }
.settings-toggle-box { padding: 14px 16px; border: 1px solid rgba(var(--accent-rgb),.18); border-radius: 15px; background: rgba(var(--accent-rgb),.075); }
.settings-toggle-box .toggle-row { justify-content: flex-start; }
.settings-toggle-box .toggle-row > span { display: grid; gap: 3px; }
.settings-toggle-box small { color: var(--muted); font-size: 12px; font-weight: 500; }
.mqtt-settings-groups { display: grid; grid-template-columns: 1.15fr .85fr; gap: 14px; }
.settings-group { min-width: 0; margin: 0; padding: 14px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface-soft); }
.settings-group legend { padding: 0 7px; color: var(--muted); font-size: 12px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.settings-fields { display: grid; gap: 12px; }
.settings-fields.two-columns { grid-template-columns: minmax(0,1fr) minmax(120px,.38fr); }
.settings-fields label { min-width: 0; }
.settings-fields input:not([type="checkbox"]), .settings-fields select { margin-top: 7px; }
.settings-fields .field-full { grid-column: 1 / -1; }
.compact-toggle { min-height: 44px; align-self: end; padding: 0 2px; }
.settings-form-footer { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding-top: 2px; }
.settings-form-footer > div { min-width: 0; }
.settings-form-footer p { margin: 0; }
.settings-form-footer .form-error { margin-bottom: 5px; }
.settings-form-footer .button { flex: 0 0 auto; min-height: 44px; }
.module-create-details { margin-bottom: 18px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface-soft); overflow: hidden; }
.module-create-details > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 15px 17px; cursor: pointer; color: var(--accent); font-weight: 800; list-style-position: inside; }
.module-create-details > summary small { color: var(--muted); font-size: 12px; font-weight: 600; }
.module-create-details[open] > summary { border-bottom: 1px solid var(--line); }
.module-create-details .module-add-form { grid-template-columns: 1.2fr .7fr 1.1fr .62fr .62fr auto; margin: 0; padding: 17px; }
.module-create-details .module-coordinate-note { margin: -3px 17px 17px; }
.module-settings-grid { display: grid; gap: 18px; }
.module-config-card { min-width: 0; border: 1px solid var(--line); border-radius: 20px; background: rgba(255,255,255,.022); box-shadow: 0 12px 32px rgba(0,0,0,.08); overflow: hidden; }
.module-config-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 18px 20px; border-bottom: 1px solid var(--line); background: linear-gradient(135deg,rgba(var(--accent-rgb),.075),transparent 55%); }
.module-config-title { display: flex; align-items: flex-start; gap: 12px; min-width: 0; }
.module-config-title .online-dot { margin-top: 7px; }
.module-config-title h3 { margin: 0; font-size: 19px; line-height: 1.25; }
.module-config-title p { margin: 5px 0 0; color: var(--muted); font-family: ui-monospace,SFMono-Regular,Consolas,monospace; font-size: 12px; overflow-wrap: anywhere; }
.module-config-badges { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.connection-badge { display: inline-flex; align-items: center; min-height: 27px; padding: 4px 9px; border-radius: 999px; background: rgba(var(--accent-rgb),.12); color: var(--accent); font-size: 11px; font-weight: 850; letter-spacing: .04em; }
.module-main-details { margin: 14px 16px 0; border: 1px solid var(--line); border-radius: 14px; background: rgba(var(--accent-rgb),.035); overflow: hidden; }
.module-main-details > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; cursor: pointer; color: var(--accent); font-size: 13px; font-weight: 800; }
.module-main-details > summary small { color: var(--muted); font-size: 11px; font-weight: 650; }
.module-main-details[open] > summary { border-bottom: 1px solid var(--line); }
.module-general-form { display: grid; grid-template-columns: minmax(180px,1fr) minmax(150px,.55fr) minmax(190px,1fr) auto; align-items: end; gap: 10px; padding: 14px; }
.module-general-form label { min-width: 0; color: var(--muted); font-size: 11px; font-weight: 750; }
.module-general-form input { width: 100%; min-width: 0; margin-top: 6px; }
.module-general-form input:disabled { opacity: .72; cursor: not-allowed; }
.module-general-form .button { min-height: 42px; white-space: nowrap; }
.module-config-grid { display: grid; grid-template-columns: minmax(210px,.65fr) minmax(340px,1.35fr) minmax(230px,.75fr); gap: 12px; padding: 16px; }
.module-config-section { min-width: 0; padding: 15px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface-soft); }
.module-section-head { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 14px; }
.module-section-head h4 { margin: 0; font-size: 14px; }
.module-section-head p { margin: 3px 0 0; color: var(--muted); font-size: 11px; line-height: 1.35; }
.module-section-icon { width: 28px; height: 28px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 9px; background: rgba(var(--accent-rgb),.12); color: var(--accent); font-size: 14px; font-weight: 900; }
.module-state-form { display: grid; gap: 10px; min-width: 0; }
.module-state-form .button { width: 100%; justify-self: stretch; margin-top: 2px; }
.module-command-form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; align-items: end; }
.module-command-form > label { min-width: 0; color: var(--muted); font-size: 11px; font-weight: 750; }
.module-command-form input:not([type="checkbox"]), .module-command-form select { margin-top: 6px; }
.module-command-form .field-full, .module-command-form .module-menu-title, .module-command-form .module-form-actions { grid-column: 1 / -1; }
.module-menu-title { margin: 0; padding: 10px 12px; border: 1px solid var(--line); border-radius: 11px; background: rgba(var(--accent-rgb),.055); color: var(--text); font-size: 13px; font-weight: 750; }
.module-form-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.module-location-form { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.module-location-form label { min-width: 0; color: var(--muted); font-size: 11px; font-weight: 750; }
.module-location-form input { margin-top: 6px; }
.module-location-form .button { grid-column: 1 / -1; }
.mqtt-access-details { margin: 0 16px 16px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface-soft); overflow: hidden; }
.mqtt-access-details summary { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 16px; cursor: pointer; color: var(--accent); font-weight: 780; }
.mqtt-access-details summary small { color: var(--muted); font-size: 11px; font-weight: 650; }
.mqtt-access-details[open] summary { border-bottom: 1px solid var(--line); }
.mqtt-access-summary-main { display: grid; flex: 0 0 auto; gap: 3px; }
.mqtt-access-preview { display: flex; min-width: 0; flex-wrap: wrap; justify-content: flex-end; gap: 5px; }
.mqtt-access-preview > span { max-width: 190px; overflow: hidden; padding: 4px 8px; border: 1px solid rgba(var(--accent-rgb),.2); border-radius: 999px; background: rgba(var(--accent-rgb),.09); color: var(--text); font-size: 10px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.mqtt-access-preview > .more { color: var(--accent); }
.mqtt-access-preview > .empty-preview { border-color: var(--line); background: transparent; color: var(--muted); }
.mqtt-access-details[open] .mqtt-access-preview { display: none; }
.mqtt-access-form { display: grid; gap: 12px; margin: 0; min-width: 0; padding: 16px; }
.mqtt-access-form input:not([type="checkbox"]), .mqtt-access-form select { margin-top: 6px; }
.mqtt-access-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.mqtt-access-columns fieldset { min-width: 0; border: 1px solid var(--line); border-radius: 14px; padding: 10px; }
.mqtt-access-columns legend { padding: 0 6px; color: var(--muted); font-size: 12px; font-weight: 750; }
.mqtt-access-columns .mqtt-access-search { width: 100%; margin: 2px 0 9px; }
.mqtt-access-options { max-height: 230px; overflow: auto; display: grid; gap: 5px; }
.mqtt-access-option { display: flex; gap: 8px; align-items: center; padding: 6px; border-radius: 9px; font-size: 13px; }
.mqtt-access-option[hidden] { display: none; }
.mqtt-access-option:hover { background: rgba(var(--accent-rgb), .08); }
.mqtt-access-option input { width: auto; flex: 0 0 auto; }
.staff-picker-form { grid-template-columns: minmax(280px,560px) auto; }
.service-access-form { display: grid; gap: 14px; }
.service-access-form > label { max-width: 560px; }
.service-access-form fieldset { margin: 0; padding: 12px; border: 1px solid var(--line); border-radius: 14px; }
.service-access-form legend { padding: 0 7px; color: var(--muted); font-size: 12px; font-weight: 750; }
.service-stats { margin-bottom: 18px; }
.service-gates-panel { margin-bottom: 18px; }
.guard-gate-grid.compact { grid-template-columns: repeat(auto-fit, minmax(190px, 260px)); }
.service-request-filters { grid-template-columns: minmax(240px, 1fr) 190px auto auto; }
.service-request-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 430px), 1fr)); gap: 18px; }
.service-request-card { position: relative; min-width: 0; overflow: hidden; }
.service-request-card::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 4px; background: var(--line); }
.service-request-card.new::before { background: #60a5fa; }
.service-request-card.in_progress::before { background: #f59e0b; }
.service-request-card.completed::before { background: #22c55e; }
.service-request-card.rejected::before { background: #ef4444; }
.service-request-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.service-request-top h2 { margin: 3px 0 4px; font-size: 20px; }
.service-request-top small { color: var(--muted); }
.service-request-text { min-height: 48px; white-space: pre-wrap; line-height: 1.55; overflow-wrap: anywhere; }
.service-source-photo { display: inline-flex; width: auto; margin-bottom: 12px; }
.service-report-strip { display: grid; gap: 8px; margin-top: 13px; padding: 12px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface-soft); }
.service-report-strip > strong { font-size: 12px; color: var(--muted); }
.service-report-strip > div { display: flex; flex-wrap: wrap; gap: 8px; }
.service-report-strip a { color: var(--accent); font-size: 12px; font-weight: 700; }
.service-action-form { display: grid; gap: 12px; margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--line); }
.service-action-form label { color: var(--muted); font-size: 12px; font-weight: 750; }
.service-action-form select, .service-action-form textarea, .service-action-form input { margin-top: 7px; }
.service-action-form textarea { min-height: 82px; }
.service-report-input small { display: block; margin-top: 5px; color: var(--muted); font-weight: 500; }
.module-config-footer { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 18px; border-top: 1px solid var(--line); color: var(--muted); }
.module-config-footer small { font-size: 12px; }
.module-config-footer strong { color: var(--text); }
@media (max-width: 720px) {
  .maintenance-filters { grid-template-columns: 1fr; }
  .service-request-filters { grid-template-columns: 1fr; }
  .maintenance-card .panel-head { flex-direction: column; gap: 10px; }
  .mqtt-settings-groups, .settings-fields.two-columns, .module-command-form, .module-location-form { grid-template-columns: 1fr; }
  .settings-fields .field-full, .module-command-form .field-full, .module-command-form .module-menu-title, .module-command-form .module-form-actions, .module-location-form .button { grid-column: 1; }
  .settings-form-footer, .module-form-actions, .module-config-footer { align-items: stretch; flex-direction: column; }
  .settings-form-footer .button, .module-form-actions .button, .module-config-footer .danger-button { width: 100%; }
  .module-config-head { align-items: stretch; flex-direction: column; }
  .module-config-badges { justify-content: flex-start; }
  .module-main-details { margin: 12px 12px 0; }
  .module-main-details > summary { align-items: flex-start; flex-direction: column; gap: 3px; }
  .module-general-form { grid-template-columns: 1fr; }
  .module-general-form .button { width: 100%; }
  .module-config-grid { grid-template-columns: 1fr; padding: 12px; }
  .mqtt-access-details { margin: 0 12px 12px; }
  .mqtt-access-details summary { align-items: flex-start; flex-direction: column; gap: 4px; }
  .mqtt-access-preview { justify-content: flex-start; }
  .mqtt-access-preview > span { max-width: min(250px,calc(100vw - 96px)); }
  .mqtt-access-form { min-width: 0; }
  .mqtt-access-columns { grid-template-columns: 1fr; }
  .staff-picker-form { grid-template-columns: 1fr; }
  .mqtt-monitor-form { grid-template-columns: 1fr; }
  .mqtt-monitor-form .button { width: 100%; }
}
@media (min-width: 721px) and (max-width: 1180px) {
  .mqtt-monitor-form { grid-template-columns: repeat(2, minmax(180px, 1fr)); }
  .mqtt-monitor-form .button { grid-column: 1 / -1; width: 100%; }
}
@media (min-width: 721px) and (max-width: 1180px) {
  .module-general-form { grid-template-columns: repeat(2, minmax(180px,1fr)); }
  .module-general-form .button { grid-column: 1 / -1; width: 100%; }
  .module-config-grid { grid-template-columns: minmax(210px,.7fr) minmax(340px,1.3fr); }
  .module-config-section.location-section { grid-column: 1 / -1; }
  .module-location-form { grid-template-columns: 1fr 1fr auto; align-items: end; }
  .module-location-form .button { grid-column: auto; }
}

/* Member cabinet */
.member-auth-page {
  min-height: 100dvh;
  display: grid;
  place-items: center;
  padding: 28px 16px;
  background:
    radial-gradient(circle at 15% 10%,rgba(var(--accent-rgb),.16),transparent 34%),
    radial-gradient(circle at 88% 90%,rgba(50,215,75,.1),transparent 30%),
    var(--bg);
}
.member-auth-card { width: min(100%,520px); padding: 28px; border: 1px solid var(--line); border-radius: 28px; background: rgba(30,30,32,.82); box-shadow: 0 28px 90px rgba(0,0,0,.28); backdrop-filter: blur(28px); -webkit-backdrop-filter: blur(28px); }
:root[data-theme="light"] .member-auth-card { background: rgba(255,255,255,.88); box-shadow: 0 28px 90px rgba(26,35,52,.13); }
.member-auth-head { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 14px; align-items: center; margin-bottom: 22px; }
.member-auth-head h1 { margin: 2px 0 4px; font-size: 29px; letter-spacing: -.035em; }
.member-auth-head p { margin: 0; color: var(--muted); font-size: 13px; }
.member-brand-mark { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 15px; background: linear-gradient(145deg,var(--accent),#0866c5); color: #fff; font-size: 13px; font-weight: 900; box-shadow: 0 10px 25px rgba(var(--accent-rgb),.28); }
.member-theme-button { width: 40px; height: 40px; display: grid; place-items: center; padding: 0; border: 1px solid var(--line); border-radius: 13px; background: var(--surface-soft); color: var(--text); cursor: pointer; font-size: 18px; }
.member-auth-step { display: grid; gap: 5px; margin: 18px 0; padding: 16px; border: 1px solid rgba(var(--accent-rgb),.15); border-radius: 17px; background: rgba(var(--accent-rgb),.07); }
.member-auth-step span { color: var(--accent); font-size: 11px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.member-auth-step strong { font-size: 17px; }
.member-auth-step p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.45; }
.member-auth-form { display: grid; gap: 14px; }
.member-auth-form label { color: var(--muted); font-size: 12px; font-weight: 750; }
.member-auth-form input, .member-auth-form select { margin-top: 7px; }
.member-primary-button { min-height: 48px; margin-top: 2px; }
.member-phone-chip { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 14px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface-soft); }
.member-phone-chip span { color: var(--muted); font-size: 12px; }
.member-phone-chip strong { font-variant-numeric: tabular-nums; }
.member-resend-form { display: grid; grid-template-columns: 1fr auto auto; gap: 8px; align-items: center; margin-top: 14px; }
.member-resend-form span { color: var(--muted); font-size: 12px; }
.member-back-link { display: inline-block; margin-top: 17px; color: var(--accent); font-size: 13px; font-weight: 700; }
.member-auth-note { display: flex; align-items: flex-start; gap: 11px; margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line); }
.member-auth-note > span { width: 25px; height: 25px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 50%; background: rgba(50,215,75,.13); color: #32d74b; font-weight: 900; }
.member-auth-note p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.member-auth-note strong { color: var(--text); }

.member-consent-page { min-height:100dvh; display:grid; place-items:center; padding:28px 16px; background:radial-gradient(circle at 14% 10%,rgba(var(--accent-rgb),.15),transparent 32%),radial-gradient(circle at 90% 88%,rgba(50,215,75,.08),transparent 28%),var(--bg); }
.member-consent-card { width:min(100%,820px); padding:28px; border:1px solid var(--line); border-radius:28px; background:rgba(30,30,32,.86); box-shadow:0 28px 90px rgba(0,0,0,.28); backdrop-filter:blur(28px); -webkit-backdrop-filter:blur(28px); }
:root[data-theme="light"] .member-consent-card { background:rgba(255,255,255,.92); box-shadow:0 28px 90px rgba(26,35,52,.13); }
.member-consent-head { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:20px; }
.member-consent-status { margin-bottom:14px; }
.member-consent-status h1 { margin:10px 0 7px; font-size:clamp(25px,4vw,37px); }
.member-consent-status p { margin:4px 0; color:var(--muted); line-height:1.5; }
.member-consent-meta { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:10px; }
.member-consent-meta span { padding:6px 9px; border-radius:999px; background:rgba(var(--accent-rgb),.09); color:var(--accent); font-size:11px; font-weight:750; }
.member-consent-document { max-height:48vh; overflow-y:auto; padding:19px; border:1px solid var(--line); border-radius:17px; background:var(--surface-soft); color:var(--text); font-size:13px; line-height:1.65; white-space:pre-wrap; }
.member-consent-form { display:grid; gap:14px; margin-top:16px; }
.member-consent-check { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:flex-start; gap:11px; padding:14px; border:1px solid rgba(var(--accent-rgb),.2); border-radius:15px; background:rgba(var(--accent-rgb),.06); cursor:pointer; font-size:12px; line-height:1.5; }
.member-consent-check input { width:19px; height:19px; margin:1px 0 0; }
.member-consent-form .button { min-height:49px; }
.member-consent-exit { margin-top:10px; text-align:center; }
.member-consent-exit button { padding:6px; border:0; background:transparent; color:var(--muted); cursor:pointer; }
.member-consent-actions { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:16px; }
.member-consent-actions form { margin:0; }

.member-cabinet-page { min-height: 100dvh; background: var(--bg); }
.member-cabinet-topbar { position: sticky; z-index: 20; top: 0; min-height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 10px max(20px,calc((100vw - 1180px)/2)); border-bottom: 1px solid var(--line); background: rgba(16,17,20,.78); backdrop-filter: blur(26px); -webkit-backdrop-filter: blur(26px); }
:root[data-theme="light"] .member-cabinet-topbar { background: rgba(247,247,250,.84); }
.member-cabinet-brand { display: flex; align-items: center; gap: 11px; color: var(--text); }
.member-cabinet-brand > span:last-child { display: grid; gap: 2px; }
.member-cabinet-brand small { color: var(--muted); font-size: 11px; }
.member-cabinet-actions { display: flex; align-items: center; gap: 9px; }
:root[data-theme="light"] .member-cabinet-page .button { border-color:#0877dd; background:#0a84ff; color:#fff; box-shadow:0 8px 20px rgba(10,132,255,.2); }
:root[data-theme="light"] .member-cabinet-page .button:hover { border-color:#006fd6; background:#0878e8; color:#fff; }
:root[data-theme="light"] .member-cabinet-page .button:disabled { border-color:#7ebbf2; background:#7ebbf2; color:#fff; box-shadow:none; }
:root[data-theme="light"] .member-cabinet-page .member-theme-button { border-color:#0877dd; background:#0a84ff; color:#fff; box-shadow:0 8px 20px rgba(10,132,255,.2); }
:root[data-theme="light"] .member-cabinet-page .member-theme-button:hover { background:#0878e8; }
.member-cabinet-content { width: min(1180px,100%); margin: 0 auto; padding: 34px 20px 56px; }
.member-welcome-card { position: relative; overflow: hidden; display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; padding: 30px; border: 1px solid rgba(var(--accent-rgb),.18); border-radius: 26px; background: linear-gradient(135deg,rgba(var(--accent-rgb),.15),rgba(255,255,255,.025) 58%); }
.member-welcome-card:after { content: ""; position: absolute; right: -55px; bottom: -95px; width: 240px; height: 240px; border-radius: 50%; background: var(--accent); opacity: .07; }
.member-welcome-card h1 { margin: 5px 0 7px; font-size: clamp(27px,4vw,43px); letter-spacing: -.045em; }
.member-welcome-phone { margin: 0; color: var(--muted); font-size: 16px; font-variant-numeric: tabular-nums; }
.member-status-list { z-index: 1; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.member-status { display: inline-flex; align-items: center; justify-content: center; min-height: 28px; padding: 5px 10px; border-radius: 999px; background: rgba(142,142,147,.13); color: var(--muted); font-size: 11px; font-weight: 800; white-space: nowrap; }
.member-status.master { background: rgba(var(--accent-rgb),.14); color: var(--accent); }
.member-status.active { background: rgba(50,215,75,.13); color: #35c967; }
.member-status.blocked { background: rgba(255,69,58,.13); color: #ff6961; }
.member-status.pending { background: rgba(255,159,10,.14); color: #e98a00; }
.member-status.neutral { background: rgba(142,142,147,.13); color: var(--muted); }
.member-stat-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; margin: 18px 0; }
.member-stat-grid article { display: grid; gap: 5px; padding: 20px; border: 1px solid var(--line); border-radius: 19px; background: var(--surface); }
.member-stat-grid span, .member-stat-grid small { color: var(--muted); font-size: 12px; }
.member-stat-grid strong { font-size: 29px; line-height: 1.1; }
.member-stat-grid .member-access-ok { color: #35c967; font-size: 23px; }
.member-cabinet-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.member-panel { min-width: 0; padding: 20px; border: 1px solid var(--line); border-radius: 22px; background: var(--surface); }
.member-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 16px; }
.member-panel-head h2 { margin: 3px 0 0; font-size: 20px; }
.member-count-badge { min-width: 30px; height: 30px; display: grid; place-items: center; padding: 0 8px; border-radius: 10px; background: rgba(var(--accent-rgb),.12); color: var(--accent); font-size: 12px; font-weight: 850; }
.member-phone-list, .member-request-list { display: grid; gap: 9px; }
.member-limit-note { display: grid; gap: 7px; margin-bottom: 13px; padding: 13px; border: 1px solid rgba(var(--accent-rgb),.17); border-radius: 15px; background: rgba(var(--accent-rgb),.06); }
.member-limit-note.limit-full { border-color: rgba(255,159,10,.24); background: rgba(255,159,10,.075); }
.member-limit-note > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.member-limit-note span { color: var(--muted); font-size: 11px; }
.member-limit-note p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.45; }
.member-inline-create-form { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 10px; align-items: end; margin-bottom: 15px; }
.member-inline-create-form label { color: var(--muted); font-size: 11px; font-weight: 750; }
.member-inline-create-form input { margin-top: 6px; }
.member-phone-row { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 11px; align-items: center; padding: 13px; border: 1px solid var(--line); border-radius: 15px; background: var(--surface-soft); }
.member-phone-row.is-master { border-color: rgba(var(--accent-rgb),.22); background: rgba(var(--accent-rgb),.055); }
.member-phone-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 11px; background: rgba(var(--accent-rgb),.12); color: var(--accent); font-size: 12px; font-weight: 900; }
.member-phone-row div, .member-request-row div { display: grid; gap: 3px; }
.member-phone-row small, .member-request-row small { color: var(--muted); font-size: 11px; }
.member-phone-actions, .member-history-actions { display: flex; align-items: center; justify-content: flex-end; gap: 7px; }
.member-remove-button { padding: 5px 8px; border: 0; border-radius: 8px; background: rgba(255,69,58,.1); color: #ff6961; cursor: pointer; font-size: 10px; font-weight: 750; }
.member-request-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 9px 12px; align-items: center; padding: 13px; border: 1px solid var(--line); border-radius: 15px; background: var(--surface-soft); }
.member-request-row > p { grid-column: 1 / -1; margin: 0; padding-top: 8px; border-top: 1px solid var(--line); color: var(--muted); font-size: 12px; }
.member-empty-state { display: grid; place-items: center; gap: 6px; min-height: 205px; padding: 24px; border: 1px dashed var(--line-strong); border-radius: 16px; color: var(--muted); text-align: center; }
.member-empty-state > span { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; background: rgba(50,215,75,.12); color: #35c967; font-weight: 900; }
.member-empty-state strong { color: var(--text); }
.member-empty-state p { max-width: 280px; margin: 0; font-size: 12px; line-height: 1.45; }
.member-service-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 18px; }
.member-service-panel { scroll-margin-top: 90px; }
.member-service-form { display: grid; gap: 12px; margin-bottom: 17px; padding: 15px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface-soft); }
.member-pass-form { grid-template-columns: .75fr 1fr 1fr; align-items: end; }
.member-pass-form .button { grid-column: 1 / -1; }
.member-service-form label { min-width: 0; color: var(--muted); font-size: 11px; font-weight: 750; }
.member-service-form input, .member-service-form select, .member-service-form textarea { margin-top: 6px; }
.member-service-form input[type="file"] { padding: 9px; }
.member-service-form label > small { display: block; margin-top: 5px; color: var(--muted); font-size: 10px; font-weight: 500; }
.member-history-list { display: grid; gap: 8px; }
.member-history-row { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 10px; padding: 12px 13px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface-soft); }
.member-history-row > div:first-child { display: grid; gap: 3px; }
.member-history-row small { color: var(--muted); font-size: 11px; }
.member-history-empty { margin: 0; padding: 18px; border: 1px dashed var(--line-strong); border-radius: 14px; color: var(--muted); font-size: 12px; text-align: center; }
.member-feature-disabled { display: grid; gap: 5px; min-height: 145px; place-content: center; margin-bottom: 17px; padding: 22px; border: 1px dashed var(--line-strong); border-radius: 16px; color: var(--muted); text-align: center; }
.member-feature-disabled strong { color: var(--text); }
.member-feature-disabled p { max-width: 360px; margin: 0; font-size: 12px; line-height: 1.45; }
.member-maintenance-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px 12px; padding: 13px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface-soft); }
.member-maintenance-row > div { display: grid; gap: 3px; }
.member-maintenance-row small { color: var(--muted); font-size: 11px; }
.member-maintenance-row > p, .member-manager-comment { grid-column: 1 / -1; margin: 0; padding-top: 8px; border-top: 1px solid var(--line); font-size: 12px; line-height: 1.45; white-space: pre-wrap; }
.member-manager-comment { color: var(--accent) !important; }
@media (max-width: 760px) {
  .member-auth-card { padding: 22px 18px; border-radius: 23px; }
  .member-auth-head { grid-template-columns: auto minmax(0,1fr) auto; }
  .member-resend-form { grid-template-columns: 1fr 1fr; }
  .member-resend-form span { grid-column: 1 / -1; }
  .member-cabinet-topbar { min-height: 64px; padding: 8px 12px; }
  .member-cabinet-brand small { display: none; }
  .member-cabinet-brand .member-brand-mark { width: 40px; height: 40px; border-radius: 12px; }
  .member-cabinet-actions .button { min-height: 40px; padding: 8px 12px; }
  .member-consent-page { padding:10px; place-items:start center; }
  .member-consent-card { padding:20px 15px; border-radius:22px; }
  .member-consent-document { max-height:52vh; padding:15px; }
  .member-consent-actions { align-items:stretch; flex-direction:column; }
  .member-consent-actions .button, .member-consent-actions form { width:100%; }
  .member-cabinet-content { padding: 18px 12px 40px; }
  .member-welcome-card { align-items: flex-start; flex-direction: column; padding: 22px 18px; border-radius: 21px; }
  .member-status-list { justify-content: flex-start; }
  .member-stat-grid, .member-cabinet-grid, .member-service-grid { grid-template-columns: 1fr; }
  .member-stat-grid { gap: 9px; }
  .member-stat-grid article { grid-template-columns: minmax(0,1fr) auto; align-items: center; padding: 16px; }
  .member-stat-grid article strong { grid-row: 1 / span 2; grid-column: 2; }
  .member-stat-grid article small { grid-column: 1; }
  .member-panel { padding: 16px 12px; border-radius: 19px; }
  .member-phone-row { grid-template-columns: auto minmax(0,1fr); }
  .member-phone-actions { grid-column: 2; justify-content: flex-start; }
  .member-limit-note > div { align-items: flex-start; flex-direction: column; gap: 3px; }
  .member-inline-create-form, .member-pass-form { grid-template-columns: 1fr; }
  .member-inline-create-form .button, .member-pass-form .button { grid-column: 1; }
  .member-history-row { align-items: flex-start; grid-template-columns: 1fr; }
  .member-history-actions { justify-content: flex-start; }
}
.pass-filters { margin-bottom: 18px; }

@media (max-width: 760px) {
  .guard-stats { grid-template-columns: 1fr 1fr; }
  .guard-stats article:first-child { grid-column: 1 / -1; }
  .guard-pass-card { grid-template-columns: 70px minmax(0,1fr); gap: 12px; }
  .guard-pass-actions { grid-column: 1 / -1; min-width: 0; }
  .guard-pass-actions .button { width: 100%; min-height: 48px; }
}

.diagnostics-head .muted { margin: 8px 0 0; }
.diagnostics-stats { margin-bottom: 18px; }
.diagnostics-stats article { position: relative; overflow: hidden; }
.diagnostics-stats article:after { content: ""; position: absolute; inset: auto -26px -42px auto; width: 110px; height: 110px; border-radius: 50%; background: currentColor; opacity: .055; }
.diagnostics-stats small { color: var(--muted); }
.diagnostic-ok { color: #32d74b; }
.diagnostic-warning { color: #ff9f0a; }
.diagnostic-error { color: #ff453a; }
.diagnostics-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; margin-bottom: 18px; }
.diagnostic-panel { margin: 0; }
.diagnostic-service-list { display: grid; gap: 10px; }
.diagnostic-service { display: grid; grid-template-columns: 12px minmax(0,1fr) auto; gap: 12px; align-items: center; padding: 14px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface-soft); }
.diagnostic-service > div { min-width: 0; }
.diagnostic-service strong, .diagnostic-service small { display: block; }
.diagnostic-service small { margin-top: 3px; color: var(--muted); overflow-wrap: anywhere; }
.diagnostic-dot { width: 10px; height: 10px; border-radius: 50%; background: #8e8e93; box-shadow: 0 0 0 5px rgba(142,142,147,.11); }
.diagnostic-dot.ok { background: #32d74b; box-shadow: 0 0 14px rgba(50,215,75,.65); }
.diagnostic-dot.warning { background: #ff9f0a; box-shadow: 0 0 14px rgba(255,159,10,.58); }
.diagnostic-dot.error { background: #ff453a; box-shadow: 0 0 14px rgba(255,69,58,.55); }
.diagnostic-service-meta { text-align: right; }
.diagnostic-badge { display: inline-flex; align-items: center; justify-content: center; padding: 5px 9px; border-radius: 999px; background: rgba(142,142,147,.14); color: var(--muted); font-size: 12px; font-weight: 800; white-space: nowrap; }
.diagnostic-badge.ok { background: rgba(50,215,75,.14); color: #43d779; }
.diagnostic-badge.warning { background: rgba(255,159,10,.14); color: #ffb340; }
.diagnostic-badge.error { background: rgba(255,69,58,.14); color: #ff6961; }
.diagnostic-message { grid-column: 2/-1; margin: 0; padding-top: 8px; border-top: 1px solid var(--line); color: #ff9f0a; font-size: 12px; overflow-wrap: anywhere; }
.diagnostic-table-panel { margin-bottom: 18px; }
.diagnostic-table-head { padding: 20px 22px 0; }
.diagnostic-table-panel table { min-width: 720px; }
.diagnostic-table-panel details { margin-top: 6px; }
.diagnostic-table-panel summary { color: var(--accent); font-size: 12px; cursor: pointer; }
.diagnostic-table-panel code { display: block; max-width: 620px; margin-top: 7px; padding: 9px; border-radius: 10px; background: var(--surface-soft); color: var(--muted); font-size: 11px; white-space: normal; overflow-wrap: anywhere; }
.diagnostic-text-error { color: #ff6961; }
.diagnostic-subline { display: block; margin-top: 4px; color: var(--muted); font-size: 11px; }
.diagnostics-errors-grid .diagnostic-table-panel { margin: 0; }
.diagnostics-errors-grid .diagnostic-table-panel table { min-width: 560px; }

:root[data-theme="light"] .diagnostic-badge.ok { color: #188437; }
:root[data-theme="light"] .diagnostic-badge.warning { color: #9a5b00; }
:root[data-theme="light"] .diagnostic-badge.error,
:root[data-theme="light"] .diagnostic-text-error { color: #d72d24; }

@media (max-width: 1050px) {
  .diagnostics-grid { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
  .diagnostic-service { grid-template-columns: 12px minmax(0,1fr); }
  .diagnostic-service-meta { grid-column: 2; display: flex; align-items: center; justify-content: space-between; gap: 8px; text-align: left; }
  .diagnostic-table-head { padding: 17px 16px 0; }
}

.broadcast-history-head { align-items: center; }
.broadcast-history-actions { display: flex; align-items: center; gap: 9px; }
.broadcast-history-actions form { margin: 0; }
.broadcast-history-actions .danger-button { min-height: 40px; }
.broadcast-history-actions .danger-button:disabled { cursor: not-allowed; opacity: .45; }
.broadcast-history-table .campaign-select-cell { width: 46px; padding-inline: 13px; text-align: center; }
.campaign-select-cell input { width: 18px; height: 18px; cursor: pointer; }
.campaign-select-cell input:disabled { cursor: not-allowed; opacity: .42; }
.campaign-delete-cell { min-width: 104px; text-align: right; }
.campaign-delete-button {
  min-height: 32px;
  padding: 5px 11px;
  border: 1px solid rgba(255,69,58,.22);
  border-radius: 10px;
  background: rgba(255,69,58,.09);
}
.campaign-delete-button:hover { background: rgba(255,69,58,.16); }
.campaign-delete-button:disabled { cursor: not-allowed; opacity: .42; }
.campaign-deleted-label {
  display: inline-flex;
  padding: 5px 9px;
  border: 1px solid rgba(48,209,88,.2);
  border-radius: 99px;
  background: rgba(48,209,88,.1);
  color: #68e784;
  font-size: 12px;
  font-weight: 700;
}
.cleanup-progress { display: grid; gap: 13px; margin: 16px 22px 18px; padding: 15px 17px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface-soft); }
.cleanup-progress > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.cleanup-progress > div:first-child span { color: var(--muted); font-size: 13px; }
.cleanup-progress.running, .cleanup-progress.queued { border-color: rgba(var(--accent-rgb),.4); box-shadow: inset 3px 0 0 var(--accent); }
.cleanup-progress.completed { border-color: rgba(50,215,75,.35); box-shadow: inset 3px 0 0 #32d74b; }
.cleanup-progress.completed_with_errors { border-color: rgba(255,159,10,.45); box-shadow: inset 3px 0 0 #ff9f0a; }
.cleanup-counters { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 9px; }
.cleanup-counters span { display: grid; gap: 4px; padding: 10px 12px; border-radius: 12px; background: var(--surface); color: var(--muted); font-size: 11px; }
.cleanup-counters strong { color: var(--text); font-size: 16px; }
.cleanup-progress small, .cleanup-note { color: var(--muted); }
.cleanup-note { margin: 14px 22px 18px; font-size: 13px; }

@media (max-width: 820px) {
  .broadcast-history-head { align-items: stretch; flex-direction: column; }
  .broadcast-history-actions { flex-wrap: wrap; }
  .cleanup-counters { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 600px) {
  .broadcast-history-actions, .broadcast-history-actions form,
  .broadcast-history-actions .button, .broadcast-history-actions .danger-button { width: 100%; }
  .cleanup-progress { margin: 12px 12px 16px; }
  .cleanup-counters { grid-template-columns: 1fr; }
}

/* Public road-repair map */
.public-road-page {
  min-height: 100vh;
  padding: clamp(16px,3vw,42px);
  background:
    radial-gradient(circle at 12% 0%, rgba(10,132,255,.13), transparent 32%),
    radial-gradient(circle at 88% 12%, rgba(255,159,10,.1), transparent 28%),
    var(--bg);
}
.public-road-page > * { width: min(1280px,100%); margin-inline: auto; }
.public-road-hero { padding: clamp(26px,5vw,64px) clamp(20px,5vw,62px); border: 1px solid var(--line); border-radius: 28px; background: rgba(31,32,37,.82); box-shadow: var(--shadow); backdrop-filter: blur(26px); }
.public-road-brand { display: inline-flex; margin-bottom: 22px; padding: 8px 12px; border-radius: 11px; background: var(--accent); color: #fff; font-size: 13px; font-weight: 800; }
.public-road-hero-tools { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.public-road-theme-switch { flex: 0 0 auto; }
.public-road-hero h1 { max-width: 920px; margin: 0 0 15px; font-size: clamp(34px,5vw,66px); line-height: 1.02; letter-spacing: -.045em; }
.public-road-hero > p:not(.eyebrow) { max-width: 820px; margin: 0; color: var(--muted); font-size: clamp(15px,2vw,19px); line-height: 1.6; }
.public-road-stats { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 30px; }
.public-road-stats span { display: inline-flex; align-items: baseline; gap: 7px; padding: 10px 14px; border: 1px solid var(--line); border-radius: 99px; background: rgba(255,255,255,.045); color: var(--muted); }
.public-road-stats strong { color: var(--text); font-size: 18px; }
.public-road-map-card { margin-top: 20px; padding: 22px; border: 1px solid var(--line); border-radius: 24px; background: rgba(31,32,37,.86); box-shadow: var(--shadow); }
.public-road-map-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 17px; }
.public-road-map-heading h2 { margin: 0; }
.public-road-legend { display: flex; flex-wrap: wrap; gap: 18px; color: var(--muted); font-size: 13px; }
.public-road-legend span { display: inline-flex; align-items: center; gap: 8px; }
.public-road-address-search { display: grid; grid-template-columns: minmax(210px,.72fr) minmax(420px,1.28fr); gap: 18px 24px; align-items: end; margin-bottom: 17px; padding: 17px 18px; border: 1px solid var(--line); border-radius: 17px; background: rgba(118,118,128,.07); }
.public-road-address-search-copy h3 { margin: 2px 0 5px; font-size: 20px; }
.public-road-address-search-copy > p:last-child { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.4; }
.public-road-address-search-form { display: grid; grid-template-columns: 1.2fr .8fr auto; gap: 10px; align-items: end; }
.public-road-address-search-form label { display: grid; gap: 6px; color: var(--muted); font-size: 12px; font-weight: 700; }
.public-road-address-search-form input { width: 100%; min-width: 0; min-height: 44px; padding: 10px 12px; border: 1px solid rgba(118,118,128,.34); border-radius: 12px; background: rgba(28,28,30,.7); color: var(--text); }
.public-road-address-search-form input:focus { border-color: var(--accent); outline: 3px solid rgba(var(--accent-rgb),.14); }
.public-road-address-search-form input:disabled { opacity: .52; }
.public-road-address-search-form .button { min-height: 44px; white-space: nowrap; }
.public-road-address-search-result { grid-column: 2; min-height: 0; margin: -10px 0 0; color: var(--muted); font-size: 12px; }
.public-road-address-search-result:empty { display: none; }
.public-road-address-search-result.error { color: #ff6961; }
.staff-subscriptions-form { display: grid; gap: 16px; }
.staff-subscription-card { max-width: none; }
.staff-channel-state { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.staff-subscription-grid { display: grid; grid-template-columns: minmax(240px,1fr) 150px 150px; align-items: center; overflow: hidden; border: 1px solid var(--line); border-radius: 15px; }
.staff-subscription-grid > * { min-height: 46px; margin: 0; padding: 11px 14px; border-bottom: 1px solid var(--line); }
.staff-subscription-grid > :nth-last-child(-n+3) { border-bottom: 0; }
.staff-subscription-grid > strong { color: var(--muted); font-size: 12px; text-transform: uppercase; letter-spacing: .04em; }
.subscription-check { display: flex; align-items: center; gap: 7px; color: var(--muted); font-size: 13px; cursor: pointer; }
.subscription-check input { width: 18px; height: 18px; }
.subscription-check:has(input:disabled) { opacity: .4; cursor: not-allowed; }
.public-road-house-dot, .public-road-marker { width: 18px; height: 18px; display: inline-block; border: 1px solid rgba(255,255,255,.82); border-radius: 50%; background: rgba(92,93,99,.52); box-shadow: 0 0 0 3px rgba(142,142,147,.11), 0 0 10px rgba(142,142,147,.24); }
.public-road-marker { width: 22px; height: 22px; cursor: pointer; transition: transform .15s ease; }
.public-road-marker:hover { transform: scale(1.18); }
.public-road-house-dot.paid, .public-road-marker.paid { background: rgba(50,215,75,.68); box-shadow: 0 0 0 3px rgba(50,215,75,.14), 0 0 13px rgba(50,215,75,.48); }
.public-road-marker.admin { width: 18px; height: 18px; }
.public-road-line { width: 34px; height: 7px; display: inline-block; border-radius: 99px; background: var(--road-color); box-shadow: 0 0 10px var(--road-color); }
#public-road-map { width: 100%; height: min(72vh,720px); min-height: 430px; overflow: hidden; border: 1px solid var(--line); border-radius: 19px; background: #25272c; }
.road-state { display: inline-flex; min-width: 48px; justify-content: center; padding: 5px 9px; border-radius: 99px; background: rgba(142,142,147,.12); color: var(--muted); font-size: 12px; font-weight: 750; }
.road-state.yes { background: rgba(10,132,255,.14); color: #67c8fa; }
.road-state.paid { background: rgba(48,209,88,.14); color: #68e784; }
.public-road-dialog { width: min(440px,calc(100vw - 28px)); max-width: none; max-height: min(86svh,760px); margin: auto; padding: 0; overflow: visible; border: 0; border-radius: 24px; background: transparent; color: var(--text); box-shadow: 0 24px 80px rgba(0,0,0,.48); }
.public-road-dialog::backdrop { background: rgba(5,6,9,.55); backdrop-filter: blur(7px); }
.public-road-dialog-card { position: relative; max-height: min(86svh,760px); overflow-y: auto; overscroll-behavior: contain; padding: 24px; border: 1px solid var(--line-strong); border-radius: 24px; background: #24252a; }
.public-road-dialog-card > .eyebrow { margin: 0 44px 7px 0; }
.public-road-dialog-card h3 { margin: 0 42px 0 0; font-size: clamp(20px,4vw,25px); line-height: 1.2; }
.public-road-dialog-close { position: absolute; z-index: 2; top: 14px; right: 14px; display: grid; width: 38px; height: 38px; place-items: center; border: 0; border-radius: 50%; background: rgba(118,118,128,.18); color: var(--text); font-size: 25px; line-height: 1; cursor: pointer; }
.public-road-dialog-close:hover { background: rgba(118,118,128,.3); }
.public-road-payment-form { display: grid; gap: 13px; margin-top: 19px; padding-top: 17px; border-top: 1px solid rgba(118,118,128,.25); }
.public-road-payment-step { display: flex; align-items: flex-start; gap: 11px; }
.public-road-payment-step > span { display: grid; width: 28px; height: 28px; flex: 0 0 auto; place-items: center; border-radius: 50%; background: rgba(var(--accent-rgb),.16); color: var(--accent); font-size: 13px; font-weight: 850; }
.public-road-payment-step > div { display: grid; gap: 3px; }
.public-road-payment-step strong { font-size: 15px; }
.public-road-payment-step small { color: var(--muted); font-size: 12px; line-height: 1.4; }
.public-road-payment-form label { display: grid; gap: 7px; font-weight: 650; }
.public-road-payment-form input { width: 100%; min-height: 50px; padding: 12px 14px; border: 1px solid rgba(118,118,128,.4); border-radius: 13px; background: rgba(28,28,30,.92); color: #fff; font-size: 17px; }
.public-road-payment-form input:focus { border-color: var(--accent); outline: 3px solid rgba(var(--accent-rgb),.16); }
.public-road-payment-form .button { width: 100%; min-height: 50px; justify-content: center; border-radius: 13px; font-size: 15px; }
.public-road-payment-qr { display: grid; gap: 12px; text-align: center; }
.public-road-payment-qr[hidden] { display: none; }
.public-road-payment-qr img { display: block; width: min(270px, 100%); max-height: 290px; object-fit: contain; margin: 2px auto 0; padding: 10px; border-radius: 16px; background: #fff; box-shadow: 0 8px 28px rgba(0,0,0,.22); }
.public-road-payment-qr p, .public-road-form-result, .public-road-popup-note, .public-road-popup-success, .public-road-popup-pending { margin: 7px 0 0; font-size: 14px; line-height: 1.45; }
.public-road-popup-success, .public-road-form-result.success { color: #45d76f; }
.public-road-popup-pending { color: #ffb340; }
.public-road-form-error, .public-road-form-result.error { color: #ff6961; }
:root[data-theme="light"] .public-road-payment-form input { background: #fff; color: #1c1c1e; }
:root[data-theme="light"] .public-road-dialog-card { background: #fff; }
:root[data-theme="light"] .public-road-address-search { background: rgba(118,118,128,.045); }
:root[data-theme="light"] .public-road-address-search-form input { background: #fff; color: #1c1c1e; }
.public-road-unavailable { display: grid; place-items: center; }
.public-road-unavailable .application-card { width: min(680px,100%); }

/* Road map administration */
.road-admin-head { align-items: center; }
.road-map-settings-card { max-width: none; }
.road-map-settings-form { display: grid; grid-template-columns: 1fr 220px; gap: 16px; }
.road-map-settings-form .wide, .road-map-enabled { grid-column: 1/-1; }
.road-map-settings-form input:not([type="checkbox"]):not([type="color"]), .road-map-settings-form textarea { margin-top: 7px; }
.road-map-settings-form input[type="color"] { width: 100%; height: 46px; margin-top: 7px; padding: 5px; }
.road-path-actions { display: flex; align-items: end; flex-wrap: wrap; gap: 8px; }
.road-path-actions span { padding: 9px 0; color: var(--muted); font-size: 13px; }
.road-map-hint { margin: 0 0 10px; }
#road-admin-map { width: 100%; height: 500px; overflow: hidden; border: 1px solid var(--line); border-radius: 18px; background: #25272c; }
.road-address-panel { padding-bottom: 18px; }
.road-admin-filter { width: min(380px,100%); }
.road-registry-filter-form { display: grid; grid-template-columns: 1.35fr .8fr repeat(3,.75fr) auto auto; align-items: end; gap: 10px; margin: 0 22px 18px; padding: 14px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface-soft); }
.road-registry-filter-form input, .road-registry-filter-form select { width: 100%; margin-top: 6px; }
.road-registry-filter-form .button { white-space: nowrap; }
.road-address-add-form { display: grid; grid-template-columns: 1.35fr .6fr .8fr 1fr auto auto auto auto; align-items: end; gap: 10px; margin: 0 22px 20px; padding: 15px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface-soft); }
.road-address-add-form input:not([type="checkbox"]) { margin-top: 6px; }
.road-checkbox { display: inline-flex; align-items: center; gap: 7px; min-height: 42px; color: var(--muted); font-weight: 600; white-space: nowrap; }
.road-checkbox input { width: 18px; height: 18px; }
.road-checkbox.compact { min-height: 0; }
.road-coordinate-status { grid-column: 1/-1; min-height: 16px; color: var(--muted); font-size: 12px; }
.road-admin-table { min-width: 1120px; }
.road-admin-table td { vertical-align: middle; }
.road-admin-table input:not([type="checkbox"]) { min-width: 105px; padding: 9px 10px; }
.road-coordinate-cell span { color: var(--muted); font-size: 12px; }
.road-row-actions form { display: flex; align-items: center; gap: 5px; }
.road-row-actions .button, .road-row-actions .danger-button { min-height: 34px; padding: 5px 8px; white-space: nowrap; }
.road-image-import-card { max-width: none; }
.road-image-import-card > .muted { margin: -4px 0 18px; }
.road-image-import-form { display: grid; grid-template-columns: minmax(220px,.7fr) 1.3fr; gap: 14px; }
.road-image-import-form .wide { grid-column: 1/-1; }
.road-image-import-form input, .road-image-import-form select { margin-top: 7px; }
.road-image-bounds { padding: 12px 14px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface-soft); }
.road-image-bounds summary { cursor: pointer; color: var(--muted); font-weight: 700; }
.road-image-bounds-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; padding-top: 12px; }
.road-image-progress { position: relative; height: 34px; margin: 18px 0; overflow: hidden; border: 1px solid var(--line); border-radius: 99px; background: var(--surface-soft); }
.road-image-progress span { position: absolute; inset: 0 auto 0 0; width: 0; background: linear-gradient(90deg,var(--accent),#64d2ff); transition: width .2s ease; opacity: .72; }
.road-image-progress strong { position: relative; display: grid; height: 100%; place-items: center; font-size: 12px; }
.road-image-preview-table { min-width: 680px; }
.road-image-preview-table th:first-child, .road-image-preview-table td:first-child { width: 50px; text-align: center; }
.road-image-preview-table input[type="checkbox"] { width: 18px; height: 18px; }
.road-two-gis-import-card { max-width: none; }
.road-two-gis-import-card > .muted { margin: -4px 0 18px; }
.road-two-gis-search-form { display: grid; grid-template-columns: 1fr; gap: 14px; }
.road-two-gis-search-form select, .road-two-gis-search-form textarea { margin-top: 7px; }
.road-two-gis-streets { padding: 12px 14px 14px; border: 1px solid var(--line); border-radius: 14px; }
.road-two-gis-streets legend { padding: 0 7px; color: var(--muted); font-weight: 750; }
.road-two-gis-streets > div { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px 12px; }
.road-two-gis-streets label { display: flex; align-items: center; gap: 7px; min-width: 0; }
.road-two-gis-streets input { width: 17px; height: 17px; flex: 0 0 auto; }
.road-two-gis-streets span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

:root[data-theme="light"] .public-road-page { background: radial-gradient(circle at 12% 0%,rgba(0,122,255,.09),transparent 32%), #f2f2f7; }
:root[data-theme="light"] .public-road-hero, :root[data-theme="light"] .public-road-map-card { background: rgba(255,255,255,.88); }
:root[data-theme="light"] .road-state.yes { color: #087bad; }
:root[data-theme="light"] .road-state.paid { color: #197a38; }

@media (max-width: 1100px) {
  .public-road-address-search { grid-template-columns: 1fr; }
  .public-road-address-search-result { grid-column: 1; }
  .road-address-add-form { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .road-registry-filter-form { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 760px) {
  .staff-subscription-card .panel-head { align-items: flex-start; flex-direction: column; }
  .staff-channel-state { justify-content: flex-start; }
  .staff-subscription-grid { grid-template-columns: minmax(150px,1fr) 90px 74px; font-size: 12px; }
  .staff-subscription-grid > * { padding: 9px 8px; }
  .subscription-check span { display: none; }
  .public-road-page { padding: 0 0 env(safe-area-inset-bottom); }
  .public-road-hero { padding: 20px 16px 22px; border-width: 0 0 1px; border-radius: 0 0 22px 22px; }
  .public-road-hero-tools { align-items: center; }
  .public-road-brand { margin-bottom: 14px; padding: 7px 10px; font-size: 12px; }
  .public-road-hero h1 { margin-bottom: 11px; font-size: clamp(30px,9vw,38px); line-height: 1.04; }
  .public-road-hero > p:not(.eyebrow) { font-size: 14px; line-height: 1.48; }
  .public-road-stats { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; margin-top: 18px; }
  .public-road-stats span { display: grid; min-width: 0; gap: 2px; justify-items: center; padding: 9px 5px; text-align: center; font-size: 11px; line-height: 1.15; }
  .public-road-stats strong { font-size: 17px; }
  .public-road-map-card { margin-top: 8px; padding: 12px 10px 10px; border-width: 1px 0 0; border-radius: 22px 22px 0 0; }
  .public-road-map-heading { align-items: flex-start; flex-direction: column; }
  .public-road-map-heading h2 { font-size: 22px; }
  .public-road-legend { gap: 10px 14px; font-size: 12px; }
  .public-road-address-search { gap: 13px; margin-bottom: 12px; padding: 14px; border-radius: 15px; }
  .public-road-address-search-copy h3 { font-size: 18px; }
  .public-road-address-search-form { grid-template-columns: 1fr 1fr; }
  .public-road-address-search-form .button { grid-column: 1/-1; min-height: 50px; width: 100%; justify-content: center; }
  .public-road-address-search-form input { min-height: 48px; font-size: 16px; }
  .public-road-house-dot { width: 15px; height: 15px; border-width: 1px; }
  .public-road-marker, .public-road-marker.paid { position: relative; width: 26px; height: 26px; border: 0; background: transparent; box-shadow: none; }
  .public-road-marker::before { content: ""; position: absolute; top: 50%; left: 50%; width: 13px; height: 13px; transform: translate(-50%,-50%); border: 1px solid rgba(255,255,255,.78); border-radius: 50%; background: rgba(92,93,99,.48); box-shadow: 0 0 0 2px rgba(142,142,147,.09), 0 0 7px rgba(142,142,147,.2); }
  .public-road-marker.paid::before { background: rgba(50,215,75,.66); box-shadow: 0 0 0 2px rgba(50,215,75,.12), 0 0 10px rgba(50,215,75,.45); }
  .public-road-marker:hover { transform: none; }
  .public-road-dialog { width: 100%; max-height: 90svh; margin: auto 0 0; border-radius: 24px 24px 0 0; }
  .public-road-dialog-card { max-height: 90svh; padding: 22px 18px calc(18px + env(safe-area-inset-bottom)); border-width: 1px 0 0; border-radius: 24px 24px 0 0; }
  .public-road-dialog-card h3 { font-size: 21px; }
  .public-road-dialog-close { top: 12px; right: 12px; width: 40px; height: 40px; }
  .public-road-payment-form input, .public-road-payment-form .button { min-height: 54px; }
  .public-road-payment-qr img { width: min(250px,78vw); }
  .road-map-settings-form { grid-template-columns: 1fr; }
  .road-map-settings-form .wide, .road-map-enabled { grid-column: auto; }
  .road-image-import-form { grid-template-columns: 1fr; }
  .road-image-import-form .wide { grid-column: auto; }
  .road-image-bounds-grid { grid-template-columns: 1fr 1fr; }
  .road-two-gis-streets > div { grid-template-columns: repeat(2,minmax(0,1fr)); }
  #public-road-map { width: 100%; height: 68svh; min-height: 480px; max-height: 620px; border-radius: 16px; }
  #road-admin-map { height: 390px; }
  .road-address-add-form { grid-template-columns: 1fr 1fr; margin-inline: 12px; }
  .road-registry-filter-form { grid-template-columns: 1fr 1fr; margin-inline: 12px; }
  .road-address-add-form .button { width: 100%; }
}
@media (max-width: 480px) {
  .public-road-hero { padding-inline: 14px; }
  .public-road-map-card { padding-inline: 8px; }
  #public-road-map { height: 68svh; min-height: 460px; }
  .public-road-address-search-form { grid-template-columns: 1fr; }
  .public-road-address-search-form .button { grid-column: auto; }
  .road-address-add-form { grid-template-columns: 1fr; }
  .road-registry-filter-form { grid-template-columns: 1fr; }
  .road-image-bounds-grid { grid-template-columns: 1fr; }
  .road-two-gis-streets > div { grid-template-columns: 1fr; }
}
/* Isolated demo access registry. */
.demo-user-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr)); gap:16px; margin:16px 0; }
.demo-user-card { display:flex; flex-direction:column; gap:14px; }
.demo-user-card > form:last-child { margin-top:auto; }
.demo-channel-state { display:flex; flex-wrap:wrap; gap:8px; margin:14px 0; }
.demo-create-form { align-items:end; }
@media (max-width:640px) {
  .demo-user-grid { grid-template-columns:1fr; }
  .demo-user-card .form-grid { grid-template-columns:1fr; }
}
.member-controller-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr)); gap:16px; margin:20px 0; }
.member-controller-card { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:16px; }
.member-controller-card form { grid-column:1/-1; }
.member-controller-icon { width:54px; height:54px; display:grid; place-items:center; border-radius:18px; color:var(--accent); background:rgba(var(--accent-rgb),.13); font-size:28px; box-shadow:0 0 24px rgba(var(--accent-rgb),.12); }
.member-controller-info h2 { margin:3px 0 8px; font-size:21px; }
.member-controller-statuses { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:7px; }
.member-open-controller { width:100%; min-height:48px; }
.member-controller-empty { grid-column:1/-1; text-align:center; padding:34px; }
.member-controller-empty > span { display:block; font-size:42px; color:var(--accent); }
.member-controller-sections { margin-top:18px; }
.member-controller-history { margin-top:18px; }
.controller-request-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,390px),1fr)); gap:16px; margin-top:16px; }
.controller-request-card { min-width:0; }
.controller-request-text { padding:12px; border-radius:14px; background:var(--surface-2); white-space:pre-wrap; }
.controller-moderation-form { display:grid; gap:12px; margin-top:14px; }

/* Android APK distribution. */
.android-release-head { align-items:center; }
.android-share-panel { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:18px 24px; align-items:center; }
.android-share-panel h2 { margin-bottom:7px; }
.android-share-panel p { margin:0; }
.android-share-row { display:grid; grid-template-columns:minmax(240px,1fr) auto; gap:9px; }
.android-share-row input { min-width:280px; font-family:ui-monospace,SFMono-Regular,Consolas,monospace; }
.android-broadcast-actions { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:9px; }
.telegram-share { border-color:rgba(42,171,238,.3); color:#67c8fa; }
.max-share { border-color:rgba(132,92,246,.32); color:#b69cff; }
.android-upload-card { max-width:none; margin-top:16px; }

.site-settings-form { display:grid; gap:20px; max-width:980px; }
.site-settings-form .form-card { max-width:none; margin:0; }
.settings-card-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:18px; }
.settings-card-heading h2 { margin:2px 0 0; }
.site-brand-settings-grid { display:grid; gap:18px; }
.site-brand-settings-grid label > small, .favicon-editor-copy > small { display:block; margin-top:7px; color:var(--muted); font-size:12px; line-height:1.45; }
.favicon-editor { display:grid; grid-template-columns:120px minmax(0,1fr); gap:18px; align-items:center; padding:16px; border:1px solid var(--line); border-radius:18px; background:var(--surface-soft); }
.favicon-preview-wrap { display:grid; place-items:center; width:120px; height:120px; border-radius:26px; background:linear-gradient(145deg,rgba(var(--accent-rgb),.14),rgba(var(--accent-rgb),.04)); box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb),.12); }
.favicon-preview-wrap img { width:78px; height:78px; object-fit:contain; border-radius:18px; box-shadow:0 10px 26px rgba(0,0,0,.2); }
.favicon-editor-copy { min-width:0; }
.favicon-editor-copy input[type="file"] { margin-top:7px; width:100%; }
.favicon-reset { margin-top:12px; color:var(--muted); }
.member-site-settings-card { display:grid; gap:16px; }
.member-site-settings-card .settings-card-heading { margin-bottom:0; }
.member-site-settings-card textarea { margin-top:7px; resize:vertical; }
.personal-consent-settings-card { display:grid; gap:16px; }
.personal-consent-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.personal-consent-summary article { display:grid; gap:5px; padding:15px; border:1px solid var(--line); border-radius:15px; background:var(--surface-soft); }
.personal-consent-summary span { color:var(--muted); font-size:11px; }
.personal-consent-summary strong { font-size:24px; }
.personal-consent-force-new { align-self:end; min-height:76px; padding:13px; border:1px solid rgba(255,159,10,.2); border-radius:15px; background:rgba(255,159,10,.06); }
.personal-consent-force-new span { display:grid; gap:4px; }
.personal-consent-force-new small { color:var(--muted); font-weight:500; line-height:1.4; }
.personal-consent-settings-card textarea { margin-top:7px; resize:vertical; font-family:inherit; line-height:1.55; }
.personal-consent-legal-note { padding:14px 15px; border:1px solid rgba(255,159,10,.22); border-radius:15px; background:rgba(255,159,10,.07); }
.personal-consent-legal-note p { margin:5px 0 0; color:var(--muted); font-size:12px; line-height:1.5; }
.personal-consent-history { border-top:1px solid var(--line); padding-top:14px; }
.personal-consent-history summary { color:var(--accent); cursor:pointer; font-weight:750; }
.personal-consent-history .table-wrap { margin-top:12px; }
.site-settings-actions { position:sticky; bottom:14px; z-index:5; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:14px 16px; border:1px solid var(--line); border-radius:18px; background:color-mix(in srgb,var(--surface) 92%,transparent); box-shadow:0 12px 34px rgba(0,0,0,.2); backdrop-filter:blur(18px); }
.site-settings-actions p { margin:0; color:var(--muted); font-size:12px; line-height:1.4; }
.site-settings-actions .button { flex:0 0 auto; }
.member-auth-disabled { padding:18px; border:1px solid rgba(255,69,58,.25); border-radius:16px; background:rgba(255,69,58,.07); }

@media (max-width:640px) {
  .settings-card-heading, .site-settings-actions { align-items:stretch; flex-direction:column; }
  .personal-consent-summary { grid-template-columns:1fr; }
  .favicon-editor { grid-template-columns:1fr; }
  .favicon-preview-wrap { margin:0 auto; }
  .site-settings-actions { position:static; }
  .site-settings-actions .button { width:100%; }
}

.fresh-1c-page-head { align-items:flex-start; }
.fresh-1c-layout { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr); gap:20px; align-items:start; }
.fresh-1c-settings-form { max-width:none; margin:0; display:grid; gap:18px; }
.fresh-1c-fields { grid-template-columns:1fr 1fr; }
.fresh-1c-fields label > small { display:block; margin-top:7px; color:var(--muted); font-size:12px; line-height:1.45; }
.fresh-1c-fields code, .fresh-1c-help-card code { color:var(--text); }
.fresh-1c-mode-note { display:flex; gap:14px; padding:15px; border:1px solid rgba(var(--accent-rgb),.2); border-radius:16px; background:rgba(var(--accent-rgb),.07); }
.fresh-1c-mode-icon { display:grid; place-items:center; flex:0 0 38px; height:38px; border-radius:12px; color:var(--accent); background:rgba(var(--accent-rgb),.13); font-size:20px; font-weight:900; }
.fresh-1c-mode-note p { margin:5px 0 0; color:var(--muted); font-size:12px; line-height:1.5; }
.fresh-1c-side { display:grid; gap:20px; }
.fresh-1c-side .panel { margin:0; padding:18px; }
.fresh-1c-status-list { display:grid; gap:0; margin:0 0 16px; }
.fresh-1c-status-list div { display:flex; justify-content:space-between; gap:16px; padding:10px 0; border-bottom:1px solid var(--line); }
.fresh-1c-status-list dt { color:var(--muted); font-size:12px; }
.fresh-1c-status-list dd { margin:0; text-align:right; font-size:13px; font-weight:750; }
.fresh-1c-error { margin-bottom:14px; padding:11px 12px; border-radius:12px; color:#ffb4ad; background:rgba(255,69,58,.1); font-size:12px; line-height:1.45; overflow-wrap:anywhere; }
.fresh-1c-test-button { width:100%; }
.fresh-1c-test-button:disabled { opacity:.45; cursor:not-allowed; }
.fresh-1c-help-card h2 { margin:4px 0 12px; }
.fresh-1c-help-card ol { margin:0; padding-left:20px; color:var(--muted); font-size:13px; line-height:1.55; }
.fresh-1c-help-card li + li { margin-top:7px; }

@media (max-width:980px) {
  .fresh-1c-layout { grid-template-columns:1fr; }
  .fresh-1c-side { grid-template-columns:1fr 1fr; }
}
@media (max-width:640px) {
  .fresh-1c-fields, .fresh-1c-side { grid-template-columns:1fr; }
  .fresh-1c-fields .field-full { grid-column:auto; }
  .fresh-1c-mode-note { align-items:flex-start; }
}
.finance-module-switch { display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,.8fr); align-items:center; gap:24px; margin-bottom:18px; }
.finance-module-switch h2 { margin:4px 0 7px; }
.finance-module-switch p:last-child { margin:0; color:var(--muted); line-height:1.5; }
.finance-module-switch form { display:grid; gap:12px; }
.finance-module-switch form .button { justify-self:end; }
.finance-automation-settings { margin-bottom:18px; }
.finance-settings-form { display:grid; gap:18px; }
.finance-settings-heading { display:flex; justify-content:space-between; align-items:center; gap:18px; }
.finance-settings-heading h2 { margin:4px 0 0; }
.finance-purpose-field { display:grid; gap:8px; font-weight:750; }
.finance-purpose-field textarea { width:100%; min-height:96px; resize:vertical; }
.finance-purpose-field small, .finance-automation-card > small { color:var(--muted); font-weight:500; line-height:1.45; }
.finance-purpose-field code { color:var(--text); }
.finance-automation-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.finance-automation-card { display:grid; gap:14px; padding:18px; border:1px solid var(--line); border-radius:18px; background:var(--surface-soft); }
.finance-automation-card h3, .finance-manual-actions h3 { margin:4px 0 7px; }
.finance-automation-card p:last-child, .finance-manual-actions p:last-child { margin:0; color:var(--muted); line-height:1.5; }
.finance-automation-card > label:not(.toggle-row) { display:grid; gap:7px; font-weight:750; }
.settings-toggle-box.compact { padding:13px; }
.finance-channel-checks { display:flex; flex-wrap:wrap; gap:9px; }
.finance-channel-checks label { display:flex; align-items:center; gap:7px; min-height:38px; padding:0 12px; border:1px solid var(--line); border-radius:12px; background:var(--surface); font-weight:700; }
.finance-channel-checks input { width:17px; height:17px; }
.finance-manual-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-bottom:18px; }
.finance-manual-actions form { display:flex; justify-content:space-between; align-items:center; gap:18px; }
.finance-manual-actions .button { flex:0 0 auto; }
.finance-bank-import input[type="file"] { display:block; width:100%; margin-top:12px; color:var(--muted); font-size:12px; }
.finance-review-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin:0 0 18px; }
.finance-review-summary article { padding:17px; border:1px solid var(--line); border-radius:16px; background:var(--surface); box-shadow:var(--shadow); }
.finance-review-summary span,.finance-review-summary small,.finance-review-table td small { display:block; color:var(--muted); }
.finance-review-summary strong { display:block; margin:6px 0; font-size:20px; }
.finance-review-filters { display:grid; grid-template-columns:repeat(4,minmax(140px,1fr)); gap:12px; align-items:end; }
.finance-review-filters label { display:grid; gap:6px; font-size:12px; font-weight:750; color:var(--muted); }
.finance-review-filters .finance-review-search { grid-column:span 2; }
.finance-review-actions { display:flex; align-items:center; gap:12px; min-height:42px; }
.finance-review-table table { min-width:1020px; }
.finance-review-table td { vertical-align:top; line-height:1.45; }
.finance-payer-cell { width:220px; max-width:220px; overflow-wrap:anywhere; }
.finance-payer-cell strong { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }
.finance-purpose-cell { width:310px; min-width:250px; max-width:310px; overflow-wrap:anywhere; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; }
.finance-empty-mark { color:var(--muted); }
@media (max-width:900px) { .finance-review-summary,.finance-review-filters { grid-template-columns:1fr 1fr; } .finance-review-filters .finance-review-search { grid-column:span 2; } }
@media (max-width:560px) { .finance-review-summary,.finance-review-filters { grid-template-columns:1fr; } .finance-review-filters .finance-review-search { grid-column:auto; } }
.finance-stats { grid-template-columns:repeat(4,minmax(0,1fr)); }
.finance-filters { grid-template-columns:minmax(240px,1.6fr) repeat(5,minmax(160px,1fr)); }
.finance-table table { min-width:1420px; }
.finance-subline { display:block; margin-top:5px; color:var(--muted); }
.finance-filter-summary { margin-right:auto; color:var(--muted); font-size:13px; }
.finance-filter-summary strong { color:var(--text); font-variant-numeric:tabular-nums; }
.finance-import-status { max-width:210px; color:#c98a35; }
.finance-balance, .finance-current-balance strong { white-space:nowrap; font-variant-numeric:tabular-nums; }
.positive { color:#51d87a !important; }
.negative { color:#ff6b64 !important; }
:root[data-theme="light"] .positive { color:#16823a !important; }
:root[data-theme="light"] .negative { color:#c93631 !important; }
.finance-edit-layout { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr); gap:18px; align-items:start; }
.finance-profile-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
.finance-profile-fields label > small { display:block; margin-top:7px; color:var(--muted); }
.finance-history-side { display:grid; gap:14px; position:sticky; top:92px; }
.finance-current-balance { display:grid; gap:7px; }
.finance-current-balance strong { font-size:clamp(30px,4vw,46px); letter-spacing:-.04em; }
.finance-current-balance small { color:var(--muted); }
.finance-history-list { display:grid; gap:10px; margin-top:14px; }
.finance-history-list article { padding:13px; border:1px solid var(--line); border-radius:14px; background:var(--surface-soft); }
.finance-history-list article > div { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.finance-history-list article p { margin:9px 0 5px; line-height:1.45; }
.finance-history-list article small { color:var(--muted); font-size:11px; }
.member-finance-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,.55fr); gap:18px; align-items:stretch; margin-bottom:18px; }
.member-finance-hero > div:first-child { display:flex; flex-direction:column; justify-content:center; padding:26px; border:1px solid var(--line); border-radius:24px; background:var(--surface); box-shadow:var(--shadow); }
.member-finance-hero h1 { margin:5px 0 8px; font-size:clamp(28px,4vw,44px); }
.member-finance-hero p:last-child { margin:0; color:var(--muted); }
.member-balance-card { display:flex; flex-direction:column; justify-content:center; gap:6px; padding:25px; border-radius:24px; color:#fff; background:linear-gradient(145deg,#2176ff,#20ae83); box-shadow:0 20px 46px rgba(33,118,255,.22); }
.member-balance-card.debt { background:linear-gradient(145deg,#d84640,#9d2440); box-shadow:0 20px 46px rgba(216,70,64,.2); }
.member-balance-card span, .member-balance-card small { opacity:.8; }
.member-balance-card strong { font-size:clamp(28px,4vw,42px); letter-spacing:-.04em; font-variant-numeric:tabular-nums; }
.member-finance-grid { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr); gap:18px; margin-bottom:18px; }
.member-finance-edit-button { width:38px; height:38px; display:grid; place-items:center; border:1px solid rgba(var(--accent-rgb),.3); border-radius:12px; background:rgba(var(--accent-rgb),.13); color:var(--accent); cursor:pointer; font-size:20px; font-weight:850; transition:.18s ease; }
.member-finance-edit-button:hover { transform:translateY(-1px); background:rgba(var(--accent-rgb),.2); }
:root[data-theme="light"] .member-finance-edit-button { border-color:#0877dd; background:#0a84ff; color:#fff; box-shadow:0 8px 20px rgba(10,132,255,.2); }
:root[data-theme="light"] .member-finance-edit-button:hover { background:#0878e8; }
.member-finance-edit-dialog { width:min(520px,calc(100vw - 24px)); padding:0; border:1px solid var(--line); border-radius:24px; background:var(--surface); color:var(--text); box-shadow:0 28px 90px rgba(0,0,0,.38); }
.member-finance-edit-dialog::backdrop { background:rgba(0,0,0,.52); backdrop-filter:blur(7px); -webkit-backdrop-filter:blur(7px); }
.member-finance-dialog-head { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:20px 20px 14px; }
.member-finance-dialog-head h2 { margin:3px 0 0; }
.member-finance-dialog-close { width:36px; height:36px; display:grid; place-items:center; border:1px solid var(--line); border-radius:11px; background:var(--surface-soft); color:var(--muted); cursor:pointer; font-size:24px; line-height:1; }
.member-finance-personal-form { display:grid; gap:13px; margin:0; padding:6px 20px 20px; }
.member-finance-personal-form label { display:grid; gap:7px; color:var(--muted); font-size:12px; font-weight:750; }
.member-finance-personal-form label small { font-weight:500; line-height:1.4; }
.member-finance-dialog-actions { display:flex; justify-content:flex-end; gap:9px; padding-top:4px; }
.member-finance-protected-details { padding-top:16px; border-top:1px solid var(--line); }
.member-finance-protected-note { display:block; margin-top:12px; color:var(--muted); line-height:1.45; }
.voting-profile-warning { display:grid; grid-template-columns:auto minmax(0,1fr); gap:16px; align-items:start; margin:18px 0; border-color:rgba(255,159,10,.3); background:rgba(255,159,10,.08); }
.voting-profile-warning > span { display:grid; place-items:center; width:38px; height:38px; border-radius:13px; background:rgba(255,159,10,.18); color:#e98a00; font-size:22px; font-weight:900; }
.voting-profile-warning h2 { margin:0 0 7px; font-size:20px; }
.voting-profile-warning p { margin:0 0 13px; color:var(--muted); line-height:1.5; }
.voting-warning-actions { display:flex; flex-wrap:wrap; gap:9px; }
.voting-help-page .member-welcome-card { margin-bottom:18px; }
.voting-help-steps { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.voting-help-steps article { display:grid; grid-template-columns:auto minmax(0,1fr); gap:14px; }
.voting-help-steps article > span { display:grid; place-items:center; width:36px; height:36px; border-radius:12px; background:rgba(var(--accent-rgb),.13); color:var(--accent); font-weight:900; }
.voting-help-steps h2 { margin:2px 0 7px; font-size:18px; }
.voting-help-steps p { margin:0; color:var(--muted); line-height:1.55; }
@media (max-width:700px) { .voting-help-steps { grid-template-columns:1fr; } .voting-profile-warning { grid-template-columns:1fr; } }
@media (max-width:520px) { .member-finance-edit-dialog { width:calc(100vw - 16px); border-radius:20px; } .member-finance-dialog-actions { display:grid; grid-template-columns:1fr 1fr; } .member-finance-dialog-actions .button { width:100%; } }
.member-finance-details { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 22px; margin:10px 0 0; }
.member-finance-details div { padding:14px 0; border-bottom:1px solid var(--line); }
.member-finance-details dt { color:var(--muted); font-size:11px; font-weight:750; }
.member-finance-details dd { margin:5px 0 0; font-weight:750; overflow-wrap:anywhere; }
.member-finance-notice { margin-top:18px; padding:15px; border-radius:15px; background:rgba(255,159,10,.1); border:1px solid rgba(255,159,10,.22); }
.member-finance-notice p { margin:5px 0 0; color:var(--muted); }
.member-payment-panel { display:flex; flex-direction:column; }
.member-payment-panel > p { color:var(--muted); line-height:1.55; }
.member-payment-panel > small { display:block; margin-top:10px; color:var(--muted); line-height:1.4; }
.member-payment-action { display:block; margin-top:auto; }
.member-top-up-button { width:100%; margin-top:auto; }
.member-top-up-button:disabled { cursor:not-allowed; opacity:.48; filter:saturate(.45); }
.member-payment-orders { margin-bottom:18px; }
.member-payment-order-list { display:grid; gap:9px; margin-top:12px; }
.member-payment-order-list > a { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:14px 16px; border:1px solid var(--line); border-radius:15px; color:var(--text); background:var(--surface-soft); text-decoration:none; transition:.18s ease; }
.member-payment-order-list > a:hover { transform:translateY(-1px); border-color:var(--accent); }
.member-payment-order-list span { display:grid; gap:4px; }
.member-payment-order-list span:last-child { justify-items:end; }
.member-payment-order-list small { color:var(--muted); font-size:11px; }
.member-finance-history { margin-top:0; }
.member-finance-history > summary { cursor:pointer; list-style:none; }
.member-finance-history > summary::-webkit-details-marker { display:none; }
.member-finance-history > summary:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
.finance-history-hint { display:block; color:var(--muted); margin-top:6px; }
.member-history-filter { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:16px 0; }
.member-history-filter select { flex:1; min-width:0; max-width:100%; }
@media(max-width:560px) { .member-history-filter label { width:100%; } }
.member-finance-operation { display:grid; justify-items:end; gap:4px; }
.member-finance-operation small { color:var(--muted); }
.member-payment-heading { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:18px; }
.member-payment-heading h1 { margin:5px 0 7px; font-size:clamp(28px,4vw,42px); }
.member-payment-heading p:last-child { margin:0; color:var(--muted); }
.member-payment-status { display:inline-flex; align-items:center; min-height:34px; padding:0 14px; border-radius:999px; color:#ffb54a; background:rgba(255,159,10,.12); border:1px solid rgba(255,159,10,.25); font-size:12px; font-weight:800; white-space:nowrap; }
.member-payment-status.paid { color:#51d87a; background:rgba(81,216,122,.1); border-color:rgba(81,216,122,.24); }
.member-payment-layout { display:grid; grid-template-columns:minmax(330px,.8fr) minmax(0,1.2fr); gap:18px; align-items:start; }
.member-payment-qr-card { display:grid; justify-items:center; gap:14px; }
.member-payment-slip { width:min(100%,440px); display:grid; justify-items:center; gap:8px; padding:24px; border-radius:22px; color:#141414; background:#fff; box-shadow:0 18px 45px rgba(0,0,0,.16); }
.member-payment-slip > span { font-size:clamp(20px,4vw,30px); font-weight:600; font-variant-numeric:tabular-nums; }
.member-payment-slip > strong { font-size:clamp(24px,5vw,38px); letter-spacing:-.03em; }
.member-payment-slip > small { color:#666; font-size:13px; }
.member-payment-slip img { display:block; width:100%; height:auto; margin-top:10px; image-rendering:pixelated; }
.member-payment-download { width:min(100%,440px); }
.member-payment-help { width:min(100%,440px); margin:0; color:var(--muted); text-align:center; line-height:1.5; font-size:12px; }
.member-payment-details-card { position:sticky; top:90px; }
.member-payment-details { grid-template-columns:repeat(2,minmax(0,1fr)); }
.member-payment-details .field-full { grid-column:1/-1; }
@media (max-width:980px) {
  .finance-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .finance-edit-layout { grid-template-columns:1fr; }
  .finance-history-side { position:static; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .member-payment-layout { grid-template-columns:1fr; }
  .member-payment-details-card { position:static; }
  .finance-manual-actions form { display:grid; }
}
@media (max-width:760px) {
  .finance-module-switch, .member-finance-hero, .member-finance-grid { grid-template-columns:1fr; }
  .finance-module-switch form .button { justify-self:stretch; }
  .finance-filters { grid-template-columns:1fr; }
  .member-finance-link { font-size:0; }
  .member-finance-link::after { content:'Финансы'; font-size:13px; }
  .member-payment-heading { align-items:flex-start; }
  .finance-automation-grid, .finance-manual-actions { grid-template-columns:1fr; }
  .finance-settings-heading { align-items:flex-start; }
}
@media (max-width:620px) {
  .finance-stats, .finance-profile-fields, .finance-history-side, .member-finance-details { grid-template-columns:1fr; }
  .member-finance-hero > div:first-child, .member-balance-card { padding:20px; }
  .member-payment-heading { display:grid; }
  .member-payment-status { justify-self:start; }
  .member-payment-slip { padding:16px; border-radius:18px; }
  .member-payment-order-list > a { align-items:flex-start; }
  .finance-settings-heading { display:grid; }
  .finance-settings-heading .button, .finance-manual-actions .button { width:100%; }
}

.tsn-details-layout { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(280px,.75fr); gap:18px; align-items:start; }
.tsn-details-form { display:grid; gap:24px; }
.tsn-details-section + .tsn-details-section { padding-top:22px; border-top:1px solid var(--line); }
.tsn-details-section h2, .tsn-details-side h2 { margin:4px 0 0; }
.tsn-details-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
.tsn-details-fields textarea { min-height:100px; resize:vertical; }
.tsn-details-fields label > small { display:block; margin-top:7px; color:var(--muted); line-height:1.45; }
.tsn-details-side { display:grid; gap:14px; position:sticky; top:92px; }
.tsn-payment-summary { display:grid; gap:0; margin:16px 0; }
.tsn-payment-summary div { padding:11px 0; border-bottom:1px solid var(--line); }
.tsn-payment-summary div:last-child { border-bottom:0; }
.tsn-payment-summary dt { color:var(--muted); font-size:11px; font-weight:750; }
.tsn-payment-summary dd { margin:4px 0 0; font-weight:700; line-height:1.4; overflow-wrap:anywhere; }
.tsn-copy-details { width:100%; }
.tsn-details-meta p:last-child { margin-bottom:0; color:var(--muted); line-height:1.55; }
@media (max-width:980px) {
  .tsn-details-layout { grid-template-columns:1fr; }
  .tsn-details-side { position:static; grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:680px) {
  .tsn-details-fields, .tsn-details-side { grid-template-columns:1fr; }
}

.member-login-table table { min-width:960px; }
.member-login-phone { white-space:nowrap; font-variant-numeric:tabular-nums; }
.member-login-reason { display:block; margin-top:7px; max-width:230px; color:var(--muted); line-height:1.35; }
.member-login-device { max-width:360px; margin:10px 0 0; color:var(--muted); font-size:12px; line-height:1.45; overflow-wrap:anywhere; }
.member-login-table .client-badge { display:inline-flex; align-items:center; padding:5px 9px; border:1px solid var(--line); border-radius:999px; font-size:11px; font-weight:750; }
@media (max-width:720px) {
  .member-login-table { margin-inline:-14px; border-radius:0; }
  .member-login-filters .audit-filter-actions { align-items:stretch; }
  .member-login-filters .audit-filter-actions .button { width:100%; }
}

.android-file-field small { display:block; margin-top:7px; color:var(--muted); }
.android-publish-check { align-items:center; }
.android-release-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr)); gap:14px; }
.android-release-card { display:flex; min-width:0; flex-direction:column; gap:15px; padding:18px; border:1px solid var(--line); border-radius:18px; background:var(--surface-soft); }
.android-release-card.published { border-color:rgba(48,209,88,.3); box-shadow:0 0 24px rgba(48,209,88,.07); }
.android-release-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.android-release-card-head h3 { margin:10px 0 4px; font-size:21px; }
.android-release-card-head p { margin:0; color:var(--muted); overflow-wrap:anywhere; }
.android-release-card-head > strong { flex:0 0 auto; color:var(--muted); font-size:13px; }
.android-release-description { margin:0; padding:12px; border-radius:13px; background:rgba(118,118,128,.09); line-height:1.5; white-space:pre-wrap; }
.android-release-meta { display:grid; grid-template-columns:1fr 1fr; gap:11px; margin:0; }
.android-release-meta div { min-width:0; }
.android-release-meta dt { color:var(--muted); font-size:11px; font-weight:700; }
.android-release-meta dd { margin:3px 0 0; overflow:hidden; text-overflow:ellipsis; }
.android-release-hash { grid-column:1/-1; }
.android-release-card form { margin-top:auto; }
.android-release-card form .button { width:100%; }
.android-public-page { min-height:100svh; display:grid; place-items:center; padding:clamp(16px,4vw,50px); background:radial-gradient(circle at 50% 0,rgba(var(--accent-rgb),.16),transparent 43%),var(--bg); }
.android-public-card { width:min(620px,100%); padding:clamp(24px,5vw,48px); border:1px solid var(--line); border-radius:30px; background:var(--surface); box-shadow:var(--shadow); text-align:center; }
.android-public-icon { width:82px; height:82px; display:grid; place-items:center; margin:0 auto 22px; border-radius:24px; background:linear-gradient(145deg,var(--accent),#35c967); color:#fff; box-shadow:0 16px 38px rgba(var(--accent-rgb),.27); font-size:23px; font-weight:850; }
.android-public-card h1 { max-width:500px; margin:0 auto; font-size:clamp(30px,7vw,48px); }
.android-public-lead { margin:15px auto 24px; color:var(--muted); font-size:16px; line-height:1.5; }
.android-public-version { display:flex; flex-wrap:wrap; justify-content:center; gap:9px; margin:22px 0; }
.android-public-version div { min-width:110px; display:grid; gap:3px; padding:11px 14px; border:1px solid var(--line); border-radius:14px; background:var(--surface-soft); }
.android-public-version span { color:var(--muted); font-size:11px; }
.android-public-notes { margin:18px 0; padding:16px; border-radius:16px; background:var(--surface-soft); text-align:left; }
.android-public-notes p { margin:7px 0 0; color:var(--muted); line-height:1.5; white-space:pre-wrap; }
.android-download-button { width:100%; min-height:56px; margin:8px 0 20px; border-radius:16px; font-size:17px; }
.android-install-help { padding:17px; border:1px solid var(--line); border-radius:16px; text-align:left; }
.android-install-help ol { margin:10px 0 0; padding-left:22px; color:var(--muted); line-height:1.7; }
.android-checksum { margin:18px 0 0; color:var(--muted); font-size:10px; overflow-wrap:anywhere; }
.android-checksum code { color:inherit; }
.android-no-release { margin-top:24px; padding:24px; border:1px dashed var(--line-strong); border-radius:18px; }
.android-no-release p { margin-bottom:0; color:var(--muted); }
@media (max-width:720px) {
  .android-share-panel { grid-template-columns:1fr; }
  .android-share-row { grid-template-columns:1fr; }
  .android-share-row input { min-width:0; }
  .android-broadcast-actions .button { flex:1 1 180px; }
  .android-release-meta { grid-template-columns:1fr; }
  .android-release-hash { grid-column:auto; }
  .android-public-page { padding:0; align-items:stretch; }
  .android-public-card { min-height:100svh; display:flex; flex-direction:column; justify-content:center; border-width:0; border-radius:0; }
}
@media (max-width:640px) { .member-controller-link { font-size:0; } .member-controller-link::after { content:'Контроллеры'; font-size:13px; } .member-controller-card { grid-template-columns:46px 1fr; } .member-controller-icon { width:46px; height:46px; border-radius:15px; } }

/* Voting module */
.voting-head-actions,.voting-card-actions,.voting-sign-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.voting-settings-form,.voting-editor-form { display:grid; gap:20px; }
.voting-settings-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.voting-gateway-state { display:flex; align-items:end; padding-bottom:4px; }
.voting-signature-channel-settings { display:grid; gap:10px; padding:16px; border:1px solid var(--line); border-radius:16px; background:var(--surface-soft); }
.voting-signature-channel-settings h3 { margin:0; }
.voting-signature-channel-settings > small { color:var(--muted); }
.voting-disabled-note { margin:18px 0; border-color:rgba(255,159,10,.35); }
.voting-disabled-note p { margin:7px 0 0; color:var(--muted); }
.voting-admin-grid,.member-voting-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr)); gap:16px; margin-top:18px; }
.voting-admin-card,.member-voting-card { display:flex; flex-direction:column; gap:13px; }
.voting-admin-card h2,.member-voting-card h2 { margin:0; font-size:21px; }
.voting-admin-card > p,.member-voting-card > p { margin:0; color:var(--muted); line-height:1.5; white-space:pre-wrap; }
.voting-card-top { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.voting-card-stats { display:grid; grid-template-columns:repeat(3,1fr); margin:0; padding:12px; border-radius:14px; background:var(--surface-soft); }
.voting-card-stats div { text-align:center; }
.voting-card-stats dt { color:var(--muted); font-size:11px; }
.voting-card-stats dd { margin:3px 0 0; font-size:22px; font-weight:800; }
.voting-card-actions { margin-top:auto; }
.voting-card-actions form { margin:0; }
.voting-editor-panel { max-width:900px; }
.voting-editor-form textarea[name="questions"] { min-height:300px; line-height:1.55; }
.voting-detail-stats { grid-template-columns:repeat(3,minmax(0,1fr)); }
.voting-results { display:grid; gap:0; margin-bottom:18px; }
.voting-result-row { display:grid; gap:10px; padding:15px 0; border-top:1px solid var(--line); }
.voting-result-row > div { display:flex; flex-wrap:wrap; gap:9px; }
.voting-result-row span { padding:7px 10px; border-radius:10px; background:var(--surface-soft); color:var(--muted); }
.voting-protocol-table table { min-width:850px; }
.member-voting-card .button { margin-top:auto; width:100%; }
.member-voting-intro h1 { margin:5px 0 10px; }
.member-voting-form { display:grid; gap:14px; margin-top:16px; }
.voting-question { min-width:0; margin:0; }
.voting-question legend { padding:0 7px; font-size:16px; font-weight:750; line-height:1.45; }
.voting-answer-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:14px; }
.voting-answer-options label { position:relative; cursor:pointer; }
.voting-answer-options input { position:absolute; opacity:0; pointer-events:none; }
.voting-answer-options span { display:flex; min-height:52px; align-items:center; justify-content:center; padding:10px; border:1px solid var(--line); border-radius:14px; background:var(--surface-soft); font-weight:750; transition:.18s ease; }
.voting-answer-options input:checked + span { border-color:var(--accent); background:rgba(var(--accent-rgb),.14); box-shadow:0 0 0 2px rgba(var(--accent-rgb),.1); color:var(--accent); }
.voting-submit-panel { display:flex; justify-content:space-between; align-items:center; gap:20px; }
.voting-submit-panel p { margin:0; color:var(--muted); line-height:1.5; }
.member-vote-button { min-width:180px; min-height:50px; }
.voting-preview-head,.voting-signed-panel { display:flex; justify-content:space-between; align-items:center; gap:20px; }
.voting-preview-head h1 { margin:5px 0; }
.voting-pdf-panel { display:grid; gap:12px; margin-top:16px; }
.voting-pdf-panel iframe { width:100%; height:min(72vh,900px); min-height:560px; border:1px solid var(--line); border-radius:14px; background:#fff; }
.voting-sign-panel { margin-top:16px; }
.voting-sign-panel > p { color:var(--muted); line-height:1.55; }
.voting-channel-choice { display:flex; flex-wrap:wrap; gap:10px; margin:16px 0; }
.voting-channel-choice form { margin:0; }
.voting-channel-choice .button span { display:inline-grid; place-items:center; min-width:30px; height:24px; margin-right:5px; border-radius:8px; background:rgba(255,255,255,.16); font-size:10px; font-weight:850; }
.voting-code-form { display:flex; gap:9px; }
.voting-code-form input { width:180px; font-size:20px; font-weight:800; letter-spacing:.2em; text-align:center; }
@media (max-width:720px) {
  .voting-settings-grid,.voting-detail-stats { grid-template-columns:1fr; }
  .voting-answer-options { grid-template-columns:1fr; }
  .voting-submit-panel,.voting-preview-head,.voting-signed-panel { align-items:stretch; flex-direction:column; }
  .member-vote-button { width:100%; }
  .voting-code-form { width:100%; flex-direction:column; }
  .voting-code-form input,.voting-code-form .button { width:100%; }
  .voting-pdf-panel iframe { min-height:62vh; }
}

/* TSN document library */
.tsn-document-upload-card { max-width:none; }
.tsn-document-upload-form { display:grid; grid-template-columns:1.2fr 1fr .55fr; gap:14px; align-items:end; margin-top:18px; }
.tsn-document-upload-form label { color:var(--muted); font-size:12px; font-weight:750; }
.tsn-document-upload-form input,.tsn-document-upload-form textarea { margin-top:7px; }
.tsn-document-upload-form label > small { display:block; margin-top:6px; color:var(--muted); font-weight:500; line-height:1.4; }
.tsn-document-upload-form .field-full { grid-column:1 / -1; }
.tsn-document-publish-check { min-height:48px; padding:11px 13px; border:1px solid var(--line); border-radius:14px; background:var(--surface-soft); }
.tsn-document-publish-check span { display:grid; gap:3px; }
.tsn-document-admin-list { margin-top:20px; }
.tsn-document-grid { display:grid; gap:11px; }
.tsn-document-admin-card { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:15px; align-items:center; padding:16px; border:1px solid var(--line); border-radius:18px; background:var(--surface-soft); }
.tsn-document-admin-card.draft { opacity:.78; }
.tsn-document-icon { width:50px; height:58px; display:grid; place-items:center; border:1px solid rgba(var(--accent-rgb),.2); border-radius:10px 16px 10px 10px; background:rgba(var(--accent-rgb),.1); color:var(--accent); font-size:11px; font-weight:900; letter-spacing:.04em; }
.tsn-document-copy { min-width:0; display:grid; gap:4px; }
.tsn-document-copy h3 { margin:0; font-size:18px; }
.tsn-document-copy p { margin:2px 0; color:var(--muted); font-size:12px; line-height:1.45; white-space:pre-wrap; }
.tsn-document-copy > small { color:var(--muted); overflow-wrap:anywhere; }
.tsn-document-card-top { display:flex; flex-wrap:wrap; align-items:center; gap:8px; color:var(--accent); font-size:11px; font-weight:750; }
.tsn-document-admin-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:7px; max-width:330px; }
.tsn-document-admin-actions form { margin:0; }
.member-document-groups { display:grid; gap:18px; margin-top:18px; }
.member-document-list { display:grid; gap:10px; }
.member-document-row { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:14px; align-items:center; padding:15px; border:1px solid var(--line); border-radius:17px; background:var(--surface-soft); }
.member-document-copy { min-width:0; display:grid; gap:4px; }
.member-document-copy strong { font-size:16px; }
.member-document-copy p { margin:0; color:var(--muted); font-size:12px; line-height:1.45; white-space:pre-wrap; }
.member-document-copy small { color:var(--muted); overflow-wrap:anywhere; }
.member-document-actions { display:flex; gap:8px; }
@media (max-width:820px) {
  .tsn-document-upload-form { grid-template-columns:1fr; }
  .tsn-document-upload-form .field-full { grid-column:1; }
  .tsn-document-admin-card,.member-document-row { grid-template-columns:auto minmax(0,1fr); align-items:start; }
  .tsn-document-admin-actions,.member-document-actions { grid-column:1 / -1; justify-content:stretch; max-width:none; }
  .tsn-document-admin-actions .button,.member-document-actions .button { flex:1 1 120px; text-align:center; }
  .tsn-document-admin-actions form { flex:1 1 120px; }
  .tsn-document-admin-actions form .button { width:100%; }
}

/* Test integration with NSPD cadastral search */
.page-head-actions { display:flex; align-items:center; gap:10px; }
.cadastral-page-head { align-items:flex-start; }
.cadastral-integration-note { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.cadastral-integration-note > div { display:flex; align-items:center; gap:14px; }
.cadastral-integration-note p { margin:4px 0 0; color:var(--muted); font-size:12px; line-height:1.5; }
.cadastral-source-mark { width:58px; height:58px; flex:0 0 auto; display:grid; place-items:center; border-radius:18px; background:rgba(var(--accent-rgb),.13); color:var(--accent); font-size:11px; font-weight:900; box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb),.16); }
.cadastral-stats { margin-top:16px; }
.cadastral-search-list { display:grid; gap:14px; margin-top:16px; }
.cadastral-search-card { margin:0; }
.cadastral-search-card.status-ready,.cadastral-search-card.status-ambiguous { border-color:rgba(255,159,10,.24); }
.cadastral-search-card.status-confirmed { border-color:rgba(50,215,75,.22); }
.cadastral-search-card.status-error { border-color:rgba(255,69,58,.24); }
.cadastral-search-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.cadastral-search-head h2 { margin-top:4px; }
.cadastral-search-meta { display:flex; flex-wrap:wrap; gap:7px; margin-top:11px; }
.cadastral-search-meta span { padding:5px 8px; border-radius:8px; background:var(--surface-soft); color:var(--muted); font-size:11px; }
.cadastral-error { margin:12px 0 0; padding:11px 12px; border-radius:12px; background:rgba(255,69,58,.09); color:#ff8a83; font-size:12px; line-height:1.45; overflow-wrap:anywhere; }
.cadastral-candidate-list { display:grid; gap:10px; margin-top:14px; }
.cadastral-candidate { display:grid; gap:12px; padding:15px; border:1px solid var(--line); border-radius:16px; background:var(--surface-soft); }
.cadastral-candidate.selected { border-color:rgba(50,215,75,.3); background:rgba(50,215,75,.055); }
.cadastral-candidate-main { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.cadastral-candidate-main strong { color:var(--accent); font-size:20px; letter-spacing:.01em; }
.cadastral-candidate-main span { color:var(--muted); font-size:11px; }
.cadastral-candidate dl { display:grid; grid-template-columns:2fr .7fr .9fr 1.4fr; gap:10px; margin:0; }
.cadastral-candidate dl div { min-width:0; padding:10px; border-radius:11px; background:rgba(142,142,147,.07); }
.cadastral-candidate dt { color:var(--muted); font-size:10px; }
.cadastral-candidate dd { margin:4px 0 0; font-size:12px; line-height:1.4; overflow-wrap:anywhere; }
.cadastral-candidate form { justify-self:end; }
.cadastral-search-actions { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-top:13px; padding-top:12px; border-top:1px solid var(--line); }
.cadastral-search-actions form { margin:0; }
.cadastral-search-actions .link-button { color:var(--accent); }
.finance-cadastral-search-panel { display:grid; gap:12px; }
.finance-cadastral-search-panel > p { margin:0; color:var(--muted); font-size:12px; line-height:1.5; }
.finance-cadastral-search-panel > form .button { width:100%; }
.profile-cadastral-candidates { display:grid; gap:8px; }
.profile-cadastral-candidates article { display:grid; gap:5px; padding:12px; border:1px solid var(--line); border-radius:13px; background:var(--surface-soft); }
.profile-cadastral-candidates strong { color:var(--accent); }
.profile-cadastral-candidates span,.profile-cadastral-candidates p { margin:0; color:var(--muted); font-size:11px; line-height:1.4; }
.profile-cadastral-candidates .button { width:100%; margin-top:3px; }
.finance-cadastral-all-link { font-size:12px; font-weight:700; }
@media (max-width:900px) {
  .cadastral-candidate dl { grid-template-columns:1fr 1fr; }
}
@media (max-width:640px) {
  .page-head-actions,.cadastral-integration-note { align-items:stretch; flex-direction:column; }
  .cadastral-integration-note > div { align-items:flex-start; }
  .cadastral-integration-note .button { width:100%; }
  .cadastral-search-head,.cadastral-candidate-main,.cadastral-search-actions { align-items:flex-start; flex-direction:column; }
  .cadastral-candidate dl { grid-template-columns:1fr; }
  .cadastral-candidate form,.cadastral-candidate .button { width:100%; }
}
.finance-account-template{display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,260px);gap:16px;align-items:stretch}
.finance-account-template>label,.finance-account-template-note{padding:16px;border:1px solid var(--line);border-radius:18px;background:var(--surface-soft)}
.finance-account-template>label{display:grid;gap:8px}
.finance-account-template-note{display:flex;flex-direction:column;justify-content:center;gap:5px}
.finance-account-template-note span,.finance-account-template-note small{color:var(--muted)}
.finance-account-template-note strong{font-size:1.65rem}
@media (max-width:720px){.finance-account-template{grid-template-columns:1fr}}
