/* app.css unified (regenerated) 2025-09-17T10:50:30.992829Z */


/* === Forms & Tables base (safe consolidation) === */
.vx-table{
  width: 100%;
  table-layout: fixed;
}.vx-cell label{
  margin: 6px 0;
  font-size: 12px;
}.vx-cell .input, .vx-cell select, .vx-cell textarea{
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}/* === End Forms & Tables base === */
:root{
  --bg:#0b1016; --panel:#0f1723; --ink:#eaf2ff; --muted:#8ea1bf;
  --line:#1b2a44; --tile:#131d2b; --tile2:#172234;
  --accent:#2e6bff; --ok:#2abf77; --warn:#c9a227; --silver:#808a9a; --danger:#d63a3a;
  --gp:#1a2435; --tpN:#a33232; --tpS:#6c7586; --tpG:#d8b84a;
}*{box-sizing:border-box}html, body{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 system-ui,Segoe UI,Roboto,Arial}header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:#0a1420;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.title{font-weight:800;letter-spacing:.35px}.tab.active{color:var(--ink);background:#162238}.wrap{max-width:1120px;margin:18px auto;padding:0 14px;display:grid;gap:16px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px 16px;box-shadow:0 10px 24px rgba(0,0,0,.35)}.panel h1{margin:0 0 8px;font-size:18px}.row{display:flex;gap:16px;flex-wrap:wrap}.col{flex:1 1 280px;min-width:260px}label{display:block;color:var(--muted);margin:8px 0 6px;font-size:12px}.input{width:100%;height:40px;border:1px solid var(--line);background:#0e1726;color:var(--ink);border-radius:10px;padding:0 12px}.input:focus{border-color:#2e6bff;box-shadow:0 0 0 2px rgba(46,107,255,.2)}.checkbox{display:flex;align-items:center;gap:8px;margin:6px 0}.checkbox input{accent-color:#2e6bff}.btn{height:38px;padding:0 14px;border-radius:10px;border:1px solid var(--line);background:#101a28;color:var(--ink);cursor:pointer}.btn.primary{background:#172447;border-color:#22345c}.btn.primary:hover{background:#1d2c59}.btn.danger{background:#3a1a21;border-color:#6a2734}.right{display:flex;justify-content:flex-end;gap:10px}.table{width:100%;border-collapse:collapse}.table th, .table td{border-bottom:1px dashed var(--line);padding:8px 6px;font-size:13px}/* Calendar */
.kc-cal-head{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;margin:4px 0 10px}.kc-cal-title{text-align:center;font-weight:800}.kc-cal-nav{display:flex}.kc-cal-nav.left{justify-content:flex-start}.kc-cal-nav.right{justify-content:flex-end}.kc-cal-nav button{min-width:92px;height:34px;border-radius:10px;border:1px solid var(--line);background:#101a28;color:var(--ink);cursor:pointer}.kc-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.kc-day.inactive{opacity:.35;cursor:default
}.kc-day.gp{background:var(--gp)
}.kc-slots-sub{text-align:center;color:var(--muted);margin:0 0 10px}.kc-slot.busy{opacity:.4;pointer-events:none}.modal-back{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);align-items:center;justify-content:center;z-index:20}.modal{background:#0f1726;border:1px solid var(--line);border-radius:14px;padding:16px;max-width:420px;width:92%}.modal .actions{display:flex;gap:10px;justify-content:flex-end;margin-top:10px}
/* TP active row */
.table tr.active{ background:#1d2a3f; }*{box-sizing:border-box}html, body{margin:0;padding:0;background:var(--bg);color:var(--ink);
  font:16px/1.45 system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,'Helvetica Neue',Arial}a{color:inherit;text-decoration:none}.container{max-width:1080px;margin:24px auto;padding:0 16px}h1{font-size:26px;margin:0 0 12px}h2{font-size:18px;margin:24px 0 8px;color:var(--muted)}.kc-header .wrap{max-width:1160px;margin:0 auto;padding:10px 16px;display:flex;align-items:center;gap:16px}.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.input{padding:10px 12px;border-radius:10px;border:1px solid #253046;background:#0e131b;color:var(--ink);outline:none}.input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.25)}/* Utilities & Layout */
.container{max-width:1160px;margin:24px auto;padding:0 16px}.row{display:flex;gap:12px;flex-wrap:wrap}.col{flex:1 1 0;min-width:220px}.input{display:inline-block;padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:#0f1723;color:var(--ink)}.input:disabled{opacity:.6;cursor:not-allowed}/* Buttons */
.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:12px;border:1px solid var(--line);
  background:#101a28;color:var(--ink);cursor:pointer;transition:.15s ease}.btn:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(0,0,0,.25)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.btn.primary{background:var(--accent);color:#fff;border-color:transparent}.btn.danger{background:var(--danger);color:#fff;border-color:transparent}/* Header */
.kc-header{position:sticky;top:0;z-index:2000;background:linear-gradient(180deg,#141927 0%, #101523 100%);
  border-bottom:1px solid var(--line);box-shadow:0 10px 30px rgba(0,0,0,.35)}.kc-header .wrap{max-width:1160px;margin:0 auto;padding:10px 16px;display:flex;align-items:center;gap:16px}.kc-header .inner{max-width:1160px;margin:0 auto;padding:10px 16px;display:flex;align-items:center;gap:16px}.kc-header .brand{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:.2px}.kc-header .nav a{display:inline-block;padding:8px 10px;border-radius:10px;color:var(--muted)}.kc-header .nav a[aria-disabled="true"]{opacity:.5;pointer-events:none}/* === No duplicate selectors found to merge from kc-admin-calendar.css === */

/* === merged kc-admin-calendar.css === */
/* midDraft */
#midDraft .vx-table{width:100%; table-layout:fixed; border-collapse:separate; border-spacing:16px 14px;}#midDraft .vx-table td{vertical-align:top; min-width:0;}#midDraft .vx-cell label{display:block;margin:6px 0 6px;color:var(--muted);font-size:12px}#midDraft .vx-table td{vertical-align:bottom !important;}/* gpSection */
/* GP table layout (scoped like TP) */
#gpSection .vx-table{width:100%; table-layout:fixed; border-collapse:separate; border-spacing:16px 14px;}#gpSection .vx-table td{vertical-align:top; min-width:0;}#gpSection .vx-cell label{display:block;margin:6px 0 6px;color:var(--muted);font-size:12px}#gpSection .pair{display:flex; gap:8px; align-items:center; flex-wrap:nowrap;}#gpSection .buttons{display:flex; gap:12px; justify-content:flex-end; margin-top:16px}/* tpSection */
/* TP table layout (scoped) */
#tpSection .vx-table{width:100%; table-layout:fixed; border-collapse:separate; border-spacing:16px 14px;}#tpSection .vx-table td{vertical-align:top; min-width:0;}#tpSection .vx-table .valign-bottom{vertical-align:bottom;}#tpSection .vx-cell label{display:block;margin:6px 0 6px;color:var(--muted);font-size:12px}#tpSection .pair{display:flex; gap:0; align-items:baseline; flex-wrap:nowrap;}#tpSection .pair > span{ display:inline-block; margin-right:40pt; white-space:nowrap; }#tpSection .buttons{display:flex; gap:12px; justify-content:flex-end; margin-top:16px}/* responsive */
/* Mobile-only: detach table layout and stack cells full-width (<=640px) */


/* === BEGIN: merged from index.css === */
#inputDraft .vx-cell .input{
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  text-align: left !important;
}#inputDraft .vx-table{
  width: 100%;
  table-layout: fixed;
}#inputDraft .vx-cell{
  text-align: left;
}

/* Index: tiny visual gap between form sub-blocks (vx-cell) inside regPanel */
#regPanel .vx-cell{ margin-bottom: 10px; }
#regPanel .vx-cell:last-of-type{ margin-bottom: 0; }

#client-form .buttons{
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  margin-top: 16px;
}/* === Consolidated mobile (<=640px) rules === */
@media (max-width: 640px){
/* Turn tables into 1-col grids */
  #tpSection .vx-table,
  #gpSection .vx-table,
  #midDraft .vx-table {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px 0;
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
  }
  /* Let table rows disappear as containers; their cells flow into the grid */
  #tpSection .vx-table tr,
  #gpSection .vx-table tr,
  #midDraft .vx-table tr {
    display: contents;
  }
  /* Each cell becomes a block spanning full width */
  #tpSection .vx-table td,
  #gpSection .vx-table td,
  #midDraft .vx-table td {
    display: block;
    width: 100%;
    padding: 0;
    margin: 0;
    vertical-align: top;
  }
  /* Nice spacing inside cells */
  #tpSection .vx-cell,
  #gpSection .vx-cell,
  #midDraft .vx-cell {
    padding: 10px 0;
  }
  /* Inputs/selects should stretch */
  #tpSection .vx-cell .input,
  #gpSection .vx-cell .input,
  #midDraft .vx-cell .input,
  #tpSection .vx-cell select,
  #gpSection .vx-cell select,
  #midDraft .vx-cell select {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
  }
  /* Pairs (like Silver/Gold) stack so fields can go full width */
  #tpSection .vx-cell .pair,
  #gpSection .vx-cell .pair,
  #midDraft .vx-cell .pair {
    display: block;
  }
  /* Keep action buttons aligned to the right */
  #tpSection .buttons,
  #gpSection .buttons {
    justify-content: flex-end;
  }

#inputDraft .vx-table {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px 0;
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}

#inputDraft .vx-table tr {
  display: contents;
}

#inputDraft .vx-table td {
  display: block;
  width: 100%;
  padding: 0;
  margin: 0;
  vertical-align: top;
}

#inputDraft .vx-cell {
  padding: 10px 0;
}

#inputDraft .vx-cell .input,
  #inputDraft .vx-cell select,
  #inputDraft .vx-cell textarea {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box;
}
.chip-day { display:inline-block; padding:2px 8px; border-radius:999px; font-size:12px; border:1px solid #ddd; }
.chip-day.gp-weekdays { background:#eef5ff; }
.chip-day.gp-saturday { background:#fff6e6; }
.chip-day.gp-sunday   { background:#ffe9e9; }
.chip-day.tpN         { background:#eef9f1; }
.chip-day.tpS         { background:#f0f0ff; }
.chip-day.tpG         { background:#fff0b3; }


}/* === additions: toggle row and manual field (2025-09-21) === */
.row-tight{ margin-top: 6px; margin-bottom: 6px; display:flex; align-items:center; }.chk{ display:flex; gap:8px; align-items:center; user-select:none; }#manualBrandField .hint{ display:block; font-size:12px; opacity:.6; margin-top:6px; }input[disabled]{ opacity:.6; cursor:not-allowed; }======
/* ===== THEME-SAFE PATCH (light vs dark), minimal scope ===== */

:root{
  /* при желании можем вынести радиусы в токены */
  --radius-modal: 12px;
  --radius-toast: 10px;
}

/* Модалка (карточка) */
.modal, .modal-dialog, .modal__panel, .kc-modal, .soft-modal, .soft-dialog {
  border-radius: var(--radius-modal) !important;
  overflow: hidden; /* чтобы внутренности тоже скруглялись */
  background: var(--panel);
  color: var(--ink);
  border: 1px solid var(--line);
  box-shadow: 0 24px 64px rgba(0,0,0,.45);
}


/* Кнопка ОК/primary в модалке (если есть общий класс) */
.modal .btn.primary, .soft-modal .btn.primary, .kc-modal .btn.primary {
  border-radius: 12px;
}

/* Угловой «баббл»-тост, если он есть */
.toast, .toast-bubble, #kc-toast-host-bubble > div {
  border-radius: var(--radius-toast) !important;
}
/* === smoke layout (moved from inline) === */
.grid-panels{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.grid-panels .span-2{ grid-column: 1 / -1; }
@media (max-width: 820px){ .grid-panels{ grid-template-columns: 1fr; } .grid-panels .span-2{ grid-column: auto; } }
.panel + .grid-panels{ margin-top:16px; }

/* === smoke outputs === */
pre.panel-like, .panel-like{
  background: var(--kc-slot-bg);
  color: var(--kc-slot-fg);
  border: 1px solid var(--line);
  border-radius: 14px;
}
====
/* 1) Подсказка нативным контролам: какая тема активна */
html[data-theme="white"] { color-scheme: light; }
html[data-theme="black"] { color-scheme: dark; }

/* 2) Базовый вид полей под тему (если ещё нет) */
input[type="date"],
input[type="datetime-local"] {
  background: var(--field);
  color: var(--ink);
  border: 1px solid var(--line);
  border-radius: 10px;
}

/* 3) Убираем тёмную «внутреннюю плашку» у subfields WebKit */
input[type="date"]::-webkit-datetime-edit,
input[type="date"]::-webkit-datetime-edit-fields-wrapper,
input[type="date"]::-webkit-datetime-edit-text,
input[type="date"]::-webkit-datetime-edit-day-field,
input[type="date"]::-webkit-datetime-edit-month-field,
input[type="date"]::-webkit-datetime-edit-year-field,
input[type="datetime-local"]::-webkit-datetime-edit,
input[type="datetime-local"]::-webkit-datetime-edit-fields-wrapper,
input[type="datetime-local"]::-webkit-datetime-edit-text,
input[type="datetime-local"]::-webkit-datetime-edit-hour-field,
input[type="datetime-local"]::-webkit-datetime-edit-minute-field,
input[type="datetime-local"]::-webkit-datetime-edit-second-field,
input[type="datetime-local"]::-webkit-datetime-edit-ampm-field {
  background: transparent;
  color: var(--ink);
}

/* 4) Иконка календаря — чтоб не «чернела» в тёмной теме */
html[data-theme="black"] input[type="date"]::-webkit-calendar-picker-indicator,
html[data-theme="black"] input[type="datetime-local"]::-webkit-calendar-picker-indicator {
  filter: invert(1) brightness(1.2);
}

/* Универсальный заголовок секции / таблицы (для панели менеджера, ТП и других страниц) */
.section-title {
    text-align: center;
    font-size: 26px;
    font-weight: 700;
    margin: 18px 0 24px;
    color: var(--text);
    letter-spacing: 0.3px;
}

/* ============================
   Sidebar (vertical menu) — isolated styles
   - depends only on existing theme tokens: --panel, --tile, --tile2, --line, --ink, --muted, --accent
   - state classes on <body>: sb-collapsed, sb-manual, sb-open
   ============================ */

:root{
  --sb-collapsed: 64px;
  --sb-expanded: 193px;

  /* map to existing tokens */
  --sb-bg: var(--panel);
  --sb-hover: var(--tile);
  --sb-active: var(--tile2);
}

/* layout wrapper */
.app-shell{ display:flex; min-height:100vh; }
.app-content{ flex:1; min-width:0; }

/* Wide desktop: keep main content fixed while sidebar expands (sidebar overlays) */
@media (min-width: 1680px){
  .sb{ position:fixed; top:0; left:0; }
  .app-content{ margin-left:0; }
}

/* Sidebar base */
.sb, #sb{
  position:sticky;
  top:0;
  height:100vh;
  width:var(--sb-expanded);
  background: var(--sb-bg);
  color: var(--ink);
  border-right: 1px solid var(--line);
  display:flex;
  flex-direction:column;
  z-index:50;
}

body.sb-collapsed,
body.collapsed .sb,
body.sb-collapsed,
body.collapsed #sb{ width:var(--sb-collapsed); }

/* Header area: logo */
.sb-top{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:12px 0 8px;
}
.sb-logo img{ width:34px; height:34px; display:block; }
/* expanded logo bigger (+20%) */
body:not(.sb-collapsed):not(.collapsed) .sb-logo img{ width:64px; height:64px; }
body.sb-collapsed,
body.collapsed .sb-logo img{ width:28px; height:28px; }


.sb-divider{
  height:1px;
  background: var(--line);
  margin: 6px 10px 10px;
}

/* Tools row under logo */
.sb-tools{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding: 0 0 12px;

  /* место под нижнюю черту */
  position: relative;
  padding-bottom: 18px;
  margin-bottom: 10px;
}

/* нижняя разделительная черта под группой кнопок (НЕ flex-элемент) */
.sb-tools::after{
  content:"";
  position:absolute;
  left:10px;
  right:10px;
  bottom:0;
  height:1px;
  background: var(--line);
  pointer-events:none;
}


/* collapsed (полоска): инструменты вертикально */
body.sb-collapsed .sb-tools,
body.collapsed .sb-tools{
  flex-direction: column;
}

/* expanded: инструменты горизонтально */
body:not(.sb-collapsed):not(.collapsed) .sb-tools{
  flex-direction: row;
}


.sb-tool{
  appearance:none;
  -webkit-appearance:none;
  border:0;
  background:transparent;
  width:40px;
  height:40px;
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  color: var(--ink);
  cursor:pointer;
  opacity:.92;
}
.sb-tool:hover{ opacity:1; background: color-mix(in srgb, var(--ink) 6%, transparent); }
.sb-tool:active{ transform: translateY(1px); }
.sb-tool[aria-disabled="true"]{ opacity:.45; pointer-events:none; }

/* tool icons via masks (monochrome, follows currentColor) */
.sb-tool .ico{
  width:22px;
  height:22px;
  display:block;
  background: currentColor;
  -webkit-mask-position:center;
  -webkit-mask-repeat:no-repeat;
  -webkit-mask-size:contain;
          mask-position:center;
          mask-repeat:no-repeat;
          mask-size:contain;
}

/* Sun/Moon for theme toggle */
.sb-tool.theme-toggle .ico[data-ico="sun"]{
  -webkit-mask-image: url("../image/symbol/sun.svg");
          mask-image: url("../image/symbol/sun.svg");
}
.sb-tool.theme-toggle .ico[data-ico="moon"]{
  -webkit-mask-image: url("../image/symbol/moon.svg");
          mask-image: url("../image/symbol/moon.svg");
}

/* Pin icon */
.sb-tool.sb-pin .ico{
  -webkit-mask-image:url("../image/symbol/zakrep.svg");
          mask-image:url("../image/symbol/zakrep.svg");
}
/* Pin icon (also .pin) */
.sb-tool.pin .ico{
  -webkit-mask-image:url("../image/symbol/zakrep.svg");
          mask-image:url("../image/symbol/zakrep.svg");
}


/* Collapse/expand icon */
.sb-tool.sb-toggle .ico{
  -webkit-mask-image:url("../image/symbol/strelki.svg");
          mask-image:url("../image/symbol/strelki.svg");
}
/* Collapse/expand icon (also .toggle) */
.sb-tool.toggle .ico{
  -webkit-mask-image:url("../image/symbol/strelki.svg");
          mask-image:url("../image/symbol/strelki.svg");
}


/* auto mode: hide collapse arrow */
body:not(.sb-manual) .sb-tool.sb-toggle{ display:none; }

/* manual pinned state */
body.sb-manual,
body.manual .sb-tool.sb-pin{
  background: color-mix(in srgb, var(--accent) 12%, transparent);
  border: 1px solid color-mix(in srgb, var(--accent) 22%, var(--line));
  opacity: 1;
}

/* Navigation */
.sb-nav{ padding:10px 8px; overflow:auto; }
.sb-group{ margin-bottom:12px; }
.sb-group-title{
  font-size:12px;
  color: var(--muted);
  padding:6px 10px;
  letter-spacing:.2px;
}

.sb-item{
  display:flex;
  align-items:center;
  gap:10px;
  padding:9px 10px;
  border-radius:12px;
  text-decoration:none;
  color: var(--ink);
  user-select:none;
  border: 1px solid transparent;
}
.sb-item:hover{ background: var(--sb-hover); border-color: var(--line); }
.sb-item.is-active{
  background: color-mix(in srgb, var(--accent) 12%, var(--sb-hover));
  border-color: color-mix(in srgb, var(--accent) 22%, var(--line));
}

.sb-ico{ width:18px; height:18px; display:block; opacity:.95; }

/* Sidebar SVG icons: ensure contrast with theme (black theme -> white icons) */
html[data-theme="black"] .sb img.sb-ico{ filter: invert(1) brightness(1.2); }
html[data-theme="white"] .sb img.sb-ico{ filter: none; }
.sb-ico--text{ width:18px; height:18px; display:inline-flex; align-items:center; justify-content:center; }
.sb-txt{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

.sb-parent{ font-weight:700; }
.sb-sub{ margin-left:18px; padding-left:8px; border-left:1px dashed color-mix(in srgb, var(--muted) 35%, transparent); }

/* collapsed: text hidden */
body.sb-collapsed,
body.collapsed .sb-group-title,
body.sb-collapsed,
body.collapsed .sb-txt{ display:none; }
body.sb-collapsed,
body.collapsed .sb-item{ justify-content:center; padding:10px 0; }
body.sb-collapsed,
body.collapsed .sb-item .sb-ico{ width:20px; height:20px; }
body.sb-collapsed,
body.collapsed .sb-sub{ display:none; }

/* Stoplist icon — crossed circle, monochrome */
#sb a[href*="stoplist"] .sb-ico,
#sb a[href*="stoplist"] .sb-ico--text{ display:none; }
#sb a[href*="stoplist"]::before{
  content:"";
  width:18px; height:18px; flex:0 0 18px;
  background: currentColor;
  -webkit-mask: url("../image/symbol/stoplist-ban.svg") center / contain no-repeat;
          mask: url("../image/symbol/stoplist-ban.svg") center / contain no-repeat;
}

/* Mobile off-canvas */
.sb-burger{
  display:none;
  position:fixed;
  left:10px;
  top:10px;
  z-index:120;
  border:1px solid var(--line);
  border-radius:12px;
  padding:8px 10px;
  background: color-mix(in srgb, var(--sb-bg) 92%, transparent);
  color: var(--ink);
  cursor:pointer;
  line-height:1;
}

.sb-overlay{
  display:none;
  position:fixed;
  inset:0;
  background: rgba(0,0,0,.35);
  z-index:110;
}

@media (max-width: 920px){
  .sb, #sb{
    position:fixed;
    left:0; top:0;
    transform: translateX(-100%);
    transition: transform .18s ease-out;
    height:100vh;
  }
  body.open .sb,
body.open #sb{ transform: translateX(0); }

  .sb-burger{ display:block; }
  body.open .sb-overlay{ display:block; }

  /* mobile always expanded */
  body.sb-collapsed,
body.collapsed .sb,
  body.sb-collapsed,
body.collapsed #sb{ width:var(--sb-expanded); }
  body.sb-collapsed,
body.collapsed .sb-txt{ display:inline; }
  body.sb-collapsed,
body.collapsed .sb-group-title{ display:block; }
  body.sb-collapsed,
body.collapsed .sb-sub{ display:block; }

  /* tools always in a row on mobile (menu is expanded) */
  body.sb-collapsed,
body.collapsed .sb-tools{ flex-direction:row; }
}


/* === Layout: center admin content (keep sidebar independent) === */
.app-shell{
  gap: 18px; /* space between sidebar and content */
}

.app-main{
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  justify-content: center; /* center the program area */
  padding: 0 14px; /* small breathing room on edges */
}

/* common container used across pages */
.app-main .wrap{
  width: 100%;
  max-width: 1160px; /* same as legacy (was used inline before) */
}

/* if a page uses .container instead of .wrap */
.app-main .container{
  width: 100%;
  max-width: 1160px;
}


/* === Sidebar mobile burger / off-canvas === */
.sb-burger{
  display:none;
  position:fixed;
  top:10px;
  left:10px;
  z-index:3000;
  width:44px;
  height:44px;
  border:0;
  border-radius:12px;
  background:transparent;
  cursor:pointer;
}
.sb-burger-ico{
  display:block;
  width:22px;
  height:22px;
  margin:0 auto;
  background:currentColor;
  -webkit-mask: url("../image/symbol/menu.svg") center / contain no-repeat;
          mask: url("../image/symbol/menu.svg") center / contain no-repeat;
}
.sb-overlay{
  display:none;
  position:fixed;
  inset:0;
  z-index:2500;
  background:rgba(0,0,0,.35);
}

/* Mobile: sidebar becomes off-canvas */
@media (max-width: 920px){
  .sb-burger{ display:block; }
  .app-shell{ gap:0; }
  .sb{
    position:fixed;
    top:0;
    left:0;
    height:100vh;
    z-index:2600;
    transform:translateX(-104%);
    transition:transform .22s ease;
  }
  body.open .sb{ transform:translateX(0); }
  body.open .sb-overlay{ display:block; }
}


/* === icons: auto-invert in dark theme === */
/* Most UI icons live in image/symbol/*.svg (menu + action icons). In dark theme we invert them for contrast. */
html[data-theme="black"] img[src^="image/symbol/"][src$=".svg"]{
  filter: invert(1) !important;
}
html[data-theme="white"] img[src^="image/symbol/"][src$=".svg"]{
  filter: none !important;
}
/* === end icons invert === */
.brand-link{
  position:fixed;
  right:12px;
  bottom:10px;
  font-size:12px;
  color:#888;
  text-decoration:none;
  opacity:0.8;
  z-index:999;
}

.brand-link:hover{
  opacity:1;
  text-decoration:underline;
}



@media (max-width: 768px){
  .stoplist-wrap .stoplist-shell{
    background: transparent;
    border: 0;
    padding: 0;
    box-shadow: none;
    border-radius: 0;
  }
}


/* stoplist: keep the first card (claim) consistent on desktop and mobile */
.sl-claim{
  padding: 18px;
  margin-top: 10px;
}

@media (max-width: 768px){
  .sl-claim{
    margin-top: 0;
  }
  .sl-claim h1{
    margin-top: 0;
  }
}
