/* ==========================================================================
   CRM «Порядок» · styles.css · 2026
   Светлая тема, тёмная тема, настройки, адаптив, SaaS-разделы,
   PWA, онбординг, push-уведомления, email-баннер
   ========================================================================== */

:root{
  --bg:#f6f7f9;--bg-soft:#f8fafc;--surface:#ffffff;--surface-2:#f1f5f9;
  --text:#0f172a;--text-soft:#334155;--muted:#64748b;--muted-2:#94a3b8;
  --line:#e9edf2;--line-soft:#f1f5f9;--line-strong:#cbd5e1;

  --brand:#4f46e5;--brand-2:#6366f1;--brand-3:#8b5cf6;
  --brand-soft:#eef2ff;--brand-soft-2:#e0e7ff;--brand-deep:#3730a3;

  --green:#10b981;--green-soft:#ecfdf5;--green-deep:#047857;
  --amber:#f59e0b;--amber-soft:#fffbeb;--amber-deep:#b45309;
  --rose:#f43f5e;--rose-soft:#fff1f2;--rose-deep:#be123c;
  --sky:#0ea5e9;

  --sidebar:#0f172a;--sidebar-2:#1a2234;--sidebar-line:#1e293b;
  --sidebar-text:#94a3b8;--sidebar-text-hi:#e2e8f0;

  --radius:16px;--radius-sm:10px;--radius-lg:20px;

  --shadow-1:0 1px 2px rgba(15,23,42,.03), 0 4px 12px rgba(15,23,42,.04);
  --shadow-2:0 4px 16px rgba(15,23,42,.06), 0 12px 32px rgba(15,23,42,.06);
  --shadow-3:0 24px 60px rgba(15,23,42,.15);
  --ring:0 0 0 3px rgba(99,102,241,.15);

  --side-w:254px;--header-h:64px;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0;height:100%}
html{-webkit-text-size-adjust:100%}
body{
  font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  font-size:14px;line-height:1.5;color:var(--text);background:var(--bg);
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;overscroll-behavior-y:none;
}
button,input,select,textarea{font:inherit;color:inherit;max-width:100%}
button{cursor:pointer}
img,svg,iframe{max-width:100%}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline}

::selection{background:rgba(99,102,241,.22);color:#1e1b4b}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:10px;border:2px solid transparent;background-clip:padding-box}
::-webkit-scrollbar-thumb:hover{background:#94a3b8;background-clip:padding-box}
:focus-visible{outline:2px solid var(--brand-2);outline-offset:2px;border-radius:6px}

/* ============ КАРКАС ============ */
.app{display:flex;min-height:100vh}
.side{
  width:var(--side-w);
  background:linear-gradient(180deg,var(--sidebar) 0%,var(--sidebar-2) 100%);
  border-right:1px solid var(--sidebar-line);padding:18px 12px 22px;
  position:fixed;top:0;bottom:0;left:0;z-index:20;overflow-y:auto;
  color:var(--sidebar-text);transition:transform .22s ease;
}
.side::-webkit-scrollbar{width:6px}
.side::-webkit-scrollbar-thumb{background:#334155;border-radius:10px}
.brand{font-size:18px;font-weight:800;letter-spacing:-.02em;color:#fff;padding:6px 12px 20px;position:relative}
.brand::after{content:"";display:block;height:1px;background:linear-gradient(90deg,transparent,var(--sidebar-line),transparent);margin-top:16px}
.brand small{display:block;font-size:11px;color:var(--sidebar-text);font-weight:500;margin-top:6px}
.nav-group{margin-bottom:4px}
.nav-group-head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 6px;cursor:pointer;font-size:10.5px;text-transform:uppercase;letter-spacing:.8px;color:#64748b;font-weight:700;user-select:none;border-radius:8px;transition:color .12s}
.nav-group-head:hover{color:var(--sidebar-text-hi)}
.nav-group-head .arrow{font-size:9px;transition:transform .18s ease;opacity:.6}
.nav-group.collapsed .arrow{transform:rotate(-90deg)}
.nav-group.collapsed .nav-group-body{display:none}
.nav-group-body{padding:0 0 6px}
.nav button{width:100%;border:0;background:none;text-align:left;padding:8px 12px;margin:1px 0;border-radius:9px;color:var(--sidebar-text);font-size:13.5px;font-weight:500;display:flex;align-items:center;gap:10px;transition:background .12s,color .12s}
.nav button:hover{background:rgba(255,255,255,.05);color:var(--sidebar-text-hi)}
.nav button.active{background:linear-gradient(135deg,rgba(99,102,241,.22),rgba(139,92,246,.16));color:#c7d2fe;font-weight:600;box-shadow:inset 0 0 0 1px rgba(99,102,241,.25)}
.nav-ico{width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.nav-ico svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

.main{margin-left:var(--side-w);width:calc(100% - var(--side-w));min-height:100vh;
  background:radial-gradient(900px 500px at 12% -5%,rgba(99,102,241,.06),transparent 60%),
             radial-gradient(700px 500px at 100% 0%,rgba(139,92,246,.05),transparent 55%),var(--bg);
  background-attachment:fixed;display:flex;flex-direction:column;}

.top{position:sticky;top:0;z-index:9;padding:14px 26px;
  background:rgba(246,247,249,.78);backdrop-filter:saturate(180%) blur(14px);
  -webkit-backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid rgba(226,232,240,.7);
  display:flex;align-items:center;justify-content:space-between;gap:16px;}
.top-left{display:flex;flex-direction:column;gap:1px;min-width:0}
.top h1{margin:2px 0 0;font-size:22px;font-weight:700;letter-spacing:-.02em;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top .muted{font-size:12px;color:var(--muted)}
.top-actions{display:flex;align-items:center;gap:12px}

.global-search{position:relative}
.global-search input{width:280px;border:1px solid var(--line);border-radius:10px;padding:9px 44px 9px 14px;background:#fff;font-size:13px;cursor:pointer;transition:border-color .12s,box-shadow .12s}
.global-search input:hover{border-color:var(--line-strong)}
.global-search input:focus{outline:0;border-color:var(--brand-2);box-shadow:var(--ring)}
.global-search .kbd{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:10px;font-weight:600;color:var(--muted-2);background:#f1f5f9;padding:2px 7px;border-radius:5px;border:1px solid var(--line)}

.clock{text-align:right}
.clock b{display:block;font-size:16px;font-weight:700;letter-spacing:-.01em}
.clock small{color:var(--muted);font-size:11.5px}
.mobile-nav{display:none}

/* ============ КНОПКИ ============ */
.btn{border:0;background:linear-gradient(180deg,var(--brand-2),var(--brand));color:#fff;border-radius:10px;padding:9px 14px;font-weight:600;font-size:13.5px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;box-shadow:0 1px 0 rgba(255,255,255,.15) inset,0 2px 6px rgba(79,70,229,.25);transition:transform .08s ease,filter .15s ease,box-shadow .15s ease;white-space:nowrap}
.btn:hover{filter:brightness(1.06);text-decoration:none}
.btn:active{transform:translateY(1px)}
.btn.secondary{background:#fff;color:var(--text-soft);border:1px solid var(--line);box-shadow:0 1px 2px rgba(15,23,42,.04);font-weight:600}
.btn.secondary:hover{background:var(--bg-soft);border-color:var(--line-strong)}
.btn.danger{background:var(--rose-soft);color:var(--rose-deep);border:1px solid #fecdd3;box-shadow:none}
.btn.danger:hover{background:#ffe4e6}
.btn.small{padding:6px 11px;font-size:12.5px;border-radius:8px}
.btn.ghost{background:transparent;box-shadow:none;color:var(--text-soft);border:1px solid transparent}
.btn.ghost:hover{background:var(--bg-soft);border-color:var(--line)}
.btn[disabled]{opacity:.6;cursor:not-allowed}

/* ============ ПАНЕЛИ / КАРТОЧКИ ============ */
.cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:16px}
.stat,.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-1);transition:box-shadow .18s ease,transform .18s ease}
.panel:hover{box-shadow:var(--shadow-2)}
.stat{padding:18px 20px;position:relative;overflow:hidden}
.stat::before{content:"";position:absolute;left:20px;right:20px;top:0;height:3px;border-radius:0 0 3px 3px;background:linear-gradient(90deg,var(--brand-2),var(--brand-3));opacity:0;transition:opacity .2s ease}
.stat:hover::before{opacity:1}
.stat:hover{transform:translateY(-1px)}
.stat small{display:block;color:var(--muted);font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}
.stat strong{font-size:32px;margin-top:6px;display:block;font-weight:700;letter-spacing:-.03em;color:var(--text);font-variant-numeric:tabular-nums;line-height:1.1}

.grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.panel-head{padding:14px 18px;border-bottom:1px solid var(--line-soft);display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.panel-head b{font-size:14px;font-weight:700;letter-spacing:-.01em}
.panel-body{padding:16px 18px}
.panel-body.list{padding:8px 18px}

.list .row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid var(--line-soft)}
.list .row:last-child{border-bottom:0}

.pill{font-size:11.5px;border-radius:999px;padding:3px 10px;background:#f1f5f9;color:#475569;white-space:nowrap;display:inline-flex;align-items:center;font-weight:600;letter-spacing:.1px}
.pill.red{background:var(--rose-soft);color:#dc2626}
.pill.green{background:var(--green-soft);color:var(--green-deep)}
.pill.amber{background:var(--amber-soft);color:var(--amber-deep)}
.pill.blue{background:var(--brand-soft);color:var(--brand-deep)}

.view{display:none}
.view.active{display:block;padding:22px 26px 60px}

/* ============ ТАБЛИЦЫ ============ */
.table-wrap{overflow:auto;-webkit-overflow-scrolling:touch;border-radius:12px}
.table{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px}
.table th,.table td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--line-soft);vertical-align:middle}
.table th{color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.5px;background:var(--bg-soft);position:sticky;top:0;z-index:1}
.table tbody tr{transition:background .1s}
.table tbody tr:hover td{background:var(--bg-soft)}
.table tbody tr:last-child td{border-bottom:0}
.table td .actions{display:flex;gap:5px;flex-wrap:wrap}

/* ============ ФОРМЫ ============ */
.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.field label{display:block;color:var(--muted);font-size:12px;font-weight:600;margin-bottom:6px}
.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fff;font-size:13.5px;transition:border-color .12s,box-shadow .12s}
.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--line-strong)}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--brand-2);box-shadow:var(--ring)}
.field textarea{min-height:96px;resize:vertical}
.full{grid-column:1/-1}

/* ============ МОДАЛКА ============ */
.modal{position:fixed;inset:0;background:rgba(15,23,42,.5);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:none;align-items:center;justify-content:center;padding:18px;z-index:40;animation:fadeIn .18s ease-out}
.modal.open{display:flex}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.modal-card{background:#fff;border-radius:18px;width:min(820px,100%);max-height:90vh;overflow:auto;box-shadow:var(--shadow-3);border:1px solid rgba(255,255,255,.6);animation:popIn .2s cubic-bezier(.2,.9,.4,1)}
@keyframes popIn{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}
.modal-head{padding:16px 20px;border-bottom:1px solid var(--line-soft);display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;background:#fff;border-radius:18px 18px 0 0;z-index:1}
.modal-head b{font-size:15.5px;font-weight:700;letter-spacing:-.01em}
.modal-body{padding:20px}

.empty{padding:22px;text-align:center;color:var(--muted);font-size:13px}
.doc-link{color:var(--brand);text-decoration:none;font-weight:500;border-bottom:1px solid transparent;transition:border-color .12s}
.doc-link:hover{border-bottom-color:var(--brand);text-decoration:none}

.report{background:#fff;border:1px solid var(--line);padding:24px;border-radius:var(--radius);box-shadow:var(--shadow-1)}
.report h2{margin-top:0;letter-spacing:-.02em}

/* ============ ЛОГИН ============ */
.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;
  background:radial-gradient(900px 500px at 15% -10%,rgba(99,102,241,.15),transparent 55%),
             radial-gradient(700px 500px at 100% 100%,rgba(139,92,246,.12),transparent 55%),var(--bg);}
.login-card{background:#fff;padding:36px 32px;border:1px solid var(--line);border-radius:var(--radius-lg);width:min(420px,100%);box-shadow:var(--shadow-3)}
.login-card h2{margin:0 0 6px;letter-spacing:-.02em;font-size:22px}

/* ============ ПАМЯТКИ ============ */
.memo{background:linear-gradient(135deg,var(--brand-soft),#f5f3ff);border:1px solid var(--brand-soft-2);border-radius:14px;padding:14px 18px;margin-bottom:16px;font-size:13px;line-height:1.6;color:var(--brand-deep)}
.memo summary{cursor:pointer;font-weight:700;color:var(--brand);outline:none;list-style:none;font-size:13.5px}
.memo summary::-webkit-details-marker{display:none}
.memo summary::before{content:"";display:inline-block;width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);margin-right:8px;margin-bottom:1px;transition:transform .15s}
.memo[open] summary::before{transform:rotate(45deg)}
.memo[open] summary{margin-bottom:8px}
.memo p{margin:8px 0}
.memo ul{margin:6px 0 8px;padding-left:22px}
.memo li{margin:3px 0}
.memo b{color:#312e81}
.memo .hint{color:#6366f1;font-size:12px;font-weight:500}

/* ============ РАСПИСАНИЕ ============ */
.schedule-tabs{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.schedule-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line-soft);background:var(--bg-soft);flex-wrap:wrap}
.schedule-frame-wrap{height:calc(100vh - 200px);min-height:520px;background:#eef1f4}
.schedule-frame-wrap iframe{width:100%;height:100%;border:0;background:#eef1f4}
.schedule-mini{display:flex;gap:8px;flex-wrap:wrap}
.schedule-mini span{padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:var(--bg-soft);font-weight:600;font-size:13px;color:var(--text-soft)}

/* ============ КАЛЕНДАРЬ ============ */
.shift-cal{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-1)}
.shift-cal-head{display:grid;grid-template-columns:repeat(7,1fr);background:var(--bg-soft);border-bottom:1px solid var(--line)}
.shift-cal-head div{padding:11px;text-align:center;font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.6px}
.shift-cal-body{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--line)}
.shift-day{background:#fff;min-height:122px;padding:9px;display:flex;flex-direction:column;gap:5px;cursor:pointer;transition:background .12s}
.shift-day:hover{background:var(--bg-soft)}
.shift-day.other-month{background:#fcfcfd;color:var(--muted-2);cursor:default}
.shift-day.other-month:hover{background:#fcfcfd}
.shift-day.today{background:linear-gradient(180deg,var(--brand-soft),#faf9ff)}
.shift-day.today:hover{background:linear-gradient(180deg,var(--brand-soft-2),#f5f3ff)}
.shift-day.weekend{background:#fafbfc}
.shift-day.weekend:hover{background:#f4f6f8}
.shift-day.today.weekend{background:linear-gradient(180deg,var(--brand-soft),#faf9ff)}
.shift-day .day-num{font-weight:700;font-size:12.5px;align-self:flex-start;width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:var(--text-soft);font-variant-numeric:tabular-nums}
.shift-day.today .day-num{background:var(--brand);color:#fff;box-shadow:0 2px 8px rgba(79,70,229,.35)}
.shift-day.other-month .day-num{color:#cbd5e1}

.shift-chip{padding:5px 8px;border-radius:8px;font-size:11.5px;font-weight:600;line-height:1.35;display:flex;justify-content:space-between;align-items:center;gap:4px;cursor:pointer;border-left:3px solid;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:transform .1s ease,box-shadow .1s ease}
.shift-chip:hover{transform:translateY(-1px);box-shadow:0 3px 8px rgba(15,23,42,.1)}
.shift-chip .x{opacity:0;font-size:14px;font-weight:700;color:inherit;padding:0 2px;transition:opacity .1s;flex:0 0 auto}
.shift-chip:hover .x{opacity:.7}
.shift-chip:hover .x:hover{opacity:1}

.shift-chip.type-Дневная{background:var(--brand-soft);color:var(--brand-deep);border-color:var(--brand-2)}
.shift-chip.type-Ночная{background:#f5f3ff;color:#6d28d9;border-color:var(--brand-3)}
.shift-chip.type-Утренняя{background:var(--green-soft);color:var(--green-deep);border-color:var(--green)}
.shift-chip.type-Вечерняя{background:#fff7ed;color:#c2410c;border-color:var(--amber)}
.shift-chip.type-Выходной{background:#f1f5f9;color:#475569;border-color:var(--muted-2)}
.shift-chip.type-Подмена{background:var(--rose-soft);color:var(--rose-deep);border-color:var(--rose)}

.shift-chip.cal-event{background:#e0f2fe;color:#0369a1;border-color:var(--sky)}
.shift-chip.cal-preparation{background:#f5f3ff;color:#6d28d9;border-color:var(--brand-3)}
.shift-chip.cal-repair{background:var(--rose-soft);color:var(--rose-deep);border-color:var(--rose)}
.shift-chip.cal-delivery{background:var(--green-soft);color:var(--green-deep);border-color:var(--green)}
.shift-chip.cal-other{background:#f1f5f9;color:#475569;border-color:var(--muted-2)}
.shift-chip.cal-task{background:var(--amber-soft);color:var(--amber-deep);border-color:var(--amber)}
.shift-chip.cal-call{background:#fae8ff;color:#86198f;border-color:#d946ef}

.shift-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;padding:12px 18px;background:var(--bg-soft);border-top:1px solid var(--line);color:var(--text-soft)}
.shift-legend span{display:flex;align-items:center;gap:6px}
.shift-legend i{width:10px;height:10px;border-radius:3px;display:inline-block}

/* ============ ФИЛЬТРЫ ============ */
.filters{display:flex;gap:12px;flex-wrap:wrap;align-items:center;padding:12px 18px;background:var(--bg-soft);border-bottom:1px solid var(--line-soft)}
.filters .search{position:relative;flex:0 0 260px;max-width:100%}
.filters .search input{width:100%;border:1px solid var(--line);border-radius:10px;padding:8px 32px 8px 13px;background:#fff;font-size:13px;transition:border-color .12s,box-shadow .12s}
.filters .search input:focus{outline:0;border-color:var(--brand-2);box-shadow:var(--ring)}
.filters .search .clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);color:var(--muted-2);cursor:pointer;font-size:15px;background:none;border:0;padding:2px 5px;border-radius:5px}
.filters .search .clear:hover{background:#f1f5f9;color:var(--rose)}

.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 13px;font-size:12.5px;font-weight:500;color:#475569;cursor:pointer;transition:all .12s ease;white-space:nowrap}
.chip:hover{border-color:var(--line-strong);background:#fff}
.chip.active{background:var(--brand);color:#fff;border-color:var(--brand);box-shadow:0 2px 8px rgba(79,70,229,.3);font-weight:600}
.chip .count{opacity:.65;margin-left:5px;font-size:11px;font-weight:600}
.chip.active .count{opacity:.85}

/* ============ ТОСТЫ ============ */
.toast-box{position:fixed;top:22px;right:22px;z-index:100;display:flex;flex-direction:column;gap:8px;pointer-events:none;max-width:calc(100vw - 44px)}
.toast{background:rgba(255,255,255,.96);backdrop-filter:saturate(180%) blur(12px);-webkit-backdrop-filter:saturate(180%) blur(12px);border:1px solid var(--line);border-left:3px solid var(--brand-2);border-radius:12px;padding:12px 16px;box-shadow:0 10px 30px rgba(15,23,42,.15),0 2px 6px rgba(15,23,42,.06);font-size:13px;font-weight:500;min-width:250px;max-width:380px;animation:slideIn .22s cubic-bezier(.2,.9,.4,1);pointer-events:auto;color:var(--text-soft)}
.toast.success{border-left-color:var(--green)}
.toast.error{border-left-color:var(--rose)}
.toast.warning{border-left-color:var(--amber)}
@keyframes slideIn{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:translateX(0)}}

/* ============ ПОИСК ============ */
.search-overlay{position:fixed;inset:0;background:rgba(15,23,42,.5);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:60;display:none;align-items:flex-start;justify-content:center;padding:80px 20px 20px;animation:fadeIn .18s ease-out}
.search-overlay.open{display:flex}
.search-panel{background:#fff;border-radius:18px;width:min(720px,100%);max-height:80vh;display:flex;flex-direction:column;box-shadow:var(--shadow-3);overflow:hidden;animation:popIn .22s cubic-bezier(.2,.9,.4,1)}
.search-panel input{width:100%;border:0;border-bottom:1px solid var(--line-soft);padding:20px 22px;font-size:15.5px;outline:none;letter-spacing:-.01em}
.search-panel input::placeholder{color:var(--muted-2)}
.search-results{overflow-y:auto;padding:8px 0}
.search-group{padding:6px 20px 10px}
.search-group-title{font-size:10.5px;text-transform:uppercase;letter-spacing:.7px;color:var(--muted);font-weight:700;margin-bottom:6px;padding-top:8px}
.search-item{padding:10px 14px;border-radius:10px;cursor:pointer;font-size:13.5px;display:flex;justify-content:space-between;gap:10px;transition:background .1s,color .1s}
.search-item:hover,.search-item.active{background:var(--brand-soft);color:var(--brand-deep)}
.search-empty{padding:44px;text-align:center;color:var(--muted);font-size:13.5px}

/* ============ ДАШБОРД ============ */
.attention-item{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--line-soft);font-size:13.5px;align-items:center}
.attention-item:last-child{border-bottom:0}
.attention-item b{font-weight:600;letter-spacing:-.005em}
.attention-item .overdue{color:var(--rose);font-weight:600}
.kpi-row{display:flex;gap:18px;flex-wrap:wrap;font-size:12.5px;color:var(--muted);padding:10px 4px 0}
.kpi-row b{color:var(--text);font-size:15px;font-weight:700}

/* ============ ТЁМНАЯ ТЕМА ============ */
[data-theme="dark"]{
  --bg:#0a0f1c;--bg-soft:#0f172a;--surface:#131a2a;--surface-2:#1a2337;
  --text:#e6edf7;--text-soft:#cbd5e1;--muted:#94a3b8;--muted-2:#64748b;
  --line:#1e293b;--line-soft:#1a2436;--line-strong:#334155;
  --brand-soft:rgba(99,102,241,.15);--brand-soft-2:rgba(99,102,241,.3);--brand-deep:#c7d2fe;
  --green-soft:rgba(16,185,129,.15);--green-deep:#6ee7b7;
  --amber-soft:rgba(245,158,11,.15);--amber-deep:#fcd34d;
  --rose-soft:rgba(244,63,94,.15);--rose-deep:#fda4af;
  --shadow-1:0 1px 2px rgba(0,0,0,.2),0 4px 12px rgba(0,0,0,.15);
  --shadow-2:0 4px 16px rgba(0,0,0,.3),0 12px 32px rgba(0,0,0,.2);
  --shadow-3:0 24px 60px rgba(0,0,0,.55);
}
[data-theme="dark"] body{background:var(--bg)}
[data-theme="dark"] .main{background:radial-gradient(900px 500px at 12% -5%,rgba(99,102,241,.08),transparent 60%),radial-gradient(700px 500px at 100% 0%,rgba(139,92,246,.06),transparent 55%),var(--bg)}
[data-theme="dark"] .top{background:rgba(10,15,28,.78);border-bottom-color:rgba(30,41,59,.8)}
[data-theme="dark"] .global-search input{background:#0f172a;border-color:var(--line);color:var(--text)}
[data-theme="dark"] .global-search .kbd{background:#1e293b;border-color:var(--line);color:var(--muted)}
[data-theme="dark"] .btn.secondary{background:#1a2337;color:var(--text-soft);border-color:var(--line)}
[data-theme="dark"] .btn.secondary:hover{background:#1e293b;border-color:var(--line-strong)}
[data-theme="dark"] .btn.danger{background:rgba(244,63,94,.12);color:#fda4af;border-color:rgba(244,63,94,.3)}
[data-theme="dark"] .btn.ghost:hover{background:var(--surface-2);border-color:var(--line)}
[data-theme="dark"] .panel,[data-theme="dark"] .stat,[data-theme="dark"] .settings-section,[data-theme="dark"] .org-card,[data-theme="dark"] .audit-row{background:var(--surface);border-color:var(--line)}
[data-theme="dark"] .panel-head{border-bottom-color:var(--line-soft)}
[data-theme="dark"] .table th{background:var(--surface-2);color:var(--muted)}
[data-theme="dark"] .table th,[data-theme="dark"] .table td{border-bottom-color:var(--line-soft)}
[data-theme="dark"] .table tbody tr:hover td{background:rgba(99,102,241,.06)}
[data-theme="dark"] .filters{background:var(--surface-2);border-bottom-color:var(--line-soft)}
[data-theme="dark"] .filters .search input{background:#0f172a;border-color:var(--line);color:var(--text)}
[data-theme="dark"] .chip{background:#0f172a;border-color:var(--line);color:var(--text-soft)}
[data-theme="dark"] .chip:hover{background:#1a2337;border-color:var(--line-strong)}
[data-theme="dark"] .chip.active{background:var(--brand);color:#fff;border-color:var(--brand)}
[data-theme="dark"] .field input,[data-theme="dark"] .field select,[data-theme="dark"] .field textarea{background:#0f172a;border-color:var(--line);color:var(--text)}
[data-theme="dark"] .modal{background:rgba(0,0,0,.72)}
[data-theme="dark"] .modal-card{background:var(--surface);border-color:var(--line)}
[data-theme="dark"] .modal-head{background:var(--surface);border-bottom-color:var(--line-soft)}
[data-theme="dark"] .memo{background:linear-gradient(135deg,rgba(99,102,241,.15),rgba(139,92,246,.1));border-color:rgba(99,102,241,.3);color:#c7d2fe}
[data-theme="dark"] .memo summary{color:#a5b4fc}
[data-theme="dark"] .memo b{color:#e0e7ff}
[data-theme="dark"] .shift-cal{background:var(--surface);border-color:var(--line)}
[data-theme="dark"] .shift-day{background:var(--surface)}
[data-theme="dark"] .shift-day:hover{background:var(--surface-2)}
[data-theme="dark"] .shift-day.other-month{background:#0d1420;color:var(--muted-2)}
[data-theme="dark"] .shift-day.weekend{background:#0f1728}
[data-theme="dark"] .shift-day.today{background:linear-gradient(180deg,rgba(99,102,241,.18),rgba(139,92,246,.06))}
[data-theme="dark"] .shift-cal-head{background:var(--surface-2);border-bottom-color:var(--line)}
[data-theme="dark"] .shift-cal-body{background:var(--line)}
[data-theme="dark"] .shift-legend{background:var(--surface-2);border-top-color:var(--line)}
[data-theme="dark"] .schedule-toolbar{background:var(--surface-2);border-bottom-color:var(--line-soft)}
[data-theme="dark"] .toast{background:rgba(19,26,42,.95);border-color:var(--line);color:var(--text-soft)}
[data-theme="dark"] .search-panel{background:var(--surface)}
[data-theme="dark"] .search-panel input{background:var(--surface);color:var(--text)}
[data-theme="dark"] .search-item{color:var(--text-soft)}
[data-theme="dark"] .search-item:hover{background:rgba(99,102,241,.15);color:#c7d2fe}
[data-theme="dark"] .report{background:var(--surface);border-color:var(--line)}
[data-theme="dark"] .login-card{background:var(--surface);border-color:var(--line)}
[data-theme="dark"] .login{background:radial-gradient(900px 500px at 15% -10%,rgba(99,102,241,.12),transparent 55%),radial-gradient(700px 500px at 100% 100%,rgba(139,92,246,.1),transparent 55%),var(--bg)}
[data-theme="dark"] ::-webkit-scrollbar-thumb{background:#334155;background-clip:padding-box}
[data-theme="dark"] .attention-item{border-bottom-color:var(--line-soft)}
[data-theme="dark"] .list .row{border-bottom-color:var(--line-soft)}
[data-theme="dark"] .doc-link{color:#a5b4fc}
[data-theme="dark"] .qr-card{background:var(--surface-2);border-color:var(--line)}

/* ============ ПЛОТНОСТЬ ============ */
[data-density="compact"] .table th,[data-density="compact"] .table td{padding:7px 10px;font-size:13px}
[data-density="compact"] .panel-body{padding:12px 14px}
[data-density="compact"] .panel-head{padding:11px 14px}
[data-density="compact"] .stat{padding:14px 16px}
[data-density="compact"] .stat strong{font-size:26px}
[data-density="compact"] .field input,[data-density="compact"] .field select,[data-density="compact"] .field textarea{padding:7px 10px}
[data-density="compact"] .formgrid{gap:10px}
[data-density="compact"] .shift-day{min-height:96px;padding:7px}
[data-density="compact"] .attention-item{padding:8px 0}

/* ============ РАЗМЕР ШРИФТА ============ */
[data-fontsize="small"] body{font-size:13px}
[data-fontsize="small"] .table{font-size:12.5px}
[data-fontsize="small"] .stat strong{font-size:26px}
[data-fontsize="large"] body{font-size:15px}
[data-fontsize="large"] .table{font-size:14px}
[data-fontsize="large"] .stat strong{font-size:34px}

/* ============ НАСТРОЙКИ ============ */
.settings-wrap{display:flex;flex-direction:column;gap:16px;max-width:860px}
.settings-section{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-1);overflow:hidden}
.settings-section-head{padding:15px 20px;border-bottom:1px solid var(--line-soft);display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.settings-section-head b{font-size:14.5px;font-weight:700}
.settings-section-head .muted{font-weight:400;font-size:12px}
.settings-section-body{padding:20px}
.settings-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 0;border-bottom:1px solid var(--line-soft);flex-wrap:wrap}
.settings-row:last-child{border-bottom:0;padding-bottom:0}
.settings-row:first-child{padding-top:0}
.settings-row .lbl{font-weight:600;font-size:13.5px;color:var(--text)}
.settings-row .hint{color:var(--muted);font-size:12px;margin-top:3px;max-width:520px}
.settings-row .ctrl{flex-shrink:0}

.theme-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.theme-card{border:2px solid var(--line);border-radius:14px;padding:12px;cursor:pointer;transition:all .15s ease;background:var(--surface-2)}
.theme-card:hover{border-color:var(--line-strong)}
.theme-card.active{border-color:var(--brand);box-shadow:0 0 0 3px rgba(99,102,241,.15)}
.theme-preview{height:72px;border-radius:10px;overflow:hidden;margin-bottom:10px;position:relative;border:1px solid var(--line-soft)}
.theme-preview.light{background:#f6f7f9}
.theme-preview.light::before{content:"";position:absolute;inset:0 0 auto 0;height:34%;background:#0f172a}
.theme-preview.light::after{content:"";position:absolute;top:40%;left:8px;width:60%;height:6px;background:#e2e8f0;border-radius:3px;box-shadow:0 12px 0 #e2e8f0,0 24px 0 #e2e8f0}
.theme-preview.dark{background:#0a0f1c}
.theme-preview.dark::before{content:"";position:absolute;inset:0 0 auto 0;height:34%;background:#1a2337}
.theme-preview.dark::after{content:"";position:absolute;top:40%;left:8px;width:60%;height:6px;background:#1e293b;border-radius:3px;box-shadow:0 12px 0 #1e293b,0 24px 0 #1e293b}
.theme-preview.auto{background:linear-gradient(90deg,#f6f7f9 50%,#0a0f1c 50%)}
.theme-preview.auto::before{content:"";position:absolute;inset:0 0 auto 0;height:34%;background:linear-gradient(90deg,#0f172a 50%,#1a2337 50%)}
.theme-card .name{font-size:13px;font-weight:600;text-align:center;color:var(--text)}

.accent-grid{display:flex;gap:10px;flex-wrap:wrap}
.accent-dot{width:38px;height:38px;border-radius:50%;cursor:pointer;border:3px solid transparent;transition:all .15s;position:relative;box-shadow:0 2px 6px rgba(0,0,0,.1)}
.accent-dot:hover{transform:scale(1.1)}
.accent-dot.active{border-color:var(--text);box-shadow:0 0 0 3px var(--surface),0 0 0 5px var(--brand)}

.toggle{position:relative;display:inline-block;width:44px;height:26px;flex-shrink:0}
.toggle input{opacity:0;width:0;height:0;position:absolute}
.toggle-slider{position:absolute;inset:0;background:#cbd5e1;border-radius:26px;cursor:pointer;transition:.2s}
.toggle-slider::before{content:"";position:absolute;width:20px;height:20px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.toggle input:checked + .toggle-slider{background:var(--brand)}
.toggle input:checked + .toggle-slider::before{transform:translateX(18px)}
[data-theme="dark"] .toggle-slider{background:#334155}

.segmented{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface-2)}
.segmented button{border:0;background:none;padding:8px 14px;font-size:13px;font-weight:500;color:var(--text-soft);cursor:pointer;transition:all .12s;border-right:1px solid var(--line)}
.segmented button:last-child{border-right:0}
.segmented button:hover{background:var(--bg-soft)}
.segmented button.active{background:var(--brand);color:#fff;font-weight:600}
[data-theme="dark"] .segmented button:hover{background:var(--surface)}

.profile-card{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.profile-avatar{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--brand-2),var(--brand-3));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:22px;flex-shrink:0;box-shadow:0 4px 14px rgba(99,102,241,.35)}
.profile-name{font-size:15px;font-weight:700;color:var(--text)}
.profile-login{font-size:12.5px;color:var(--muted);margin-top:2px}

/* ============ МЕНЮ ПОЛЬЗОВАТЕЛЯ ============ */
.user-menu{position:relative}
.user-btn{display:flex;align-items:center;gap:9px;padding:5px 12px 5px 5px;border:1px solid var(--line);border-radius:99px;background:var(--surface);cursor:pointer;transition:all .12s}
.user-btn:hover{border-color:var(--line-strong);background:var(--bg-soft)}
[data-theme="dark"] .user-btn:hover{background:var(--surface-2)}
.user-avatar{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,var(--brand-2),var(--brand-3));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;flex-shrink:0}
.user-name{font-size:13px;font-weight:600;color:var(--text);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.user-caret{color:var(--muted);transition:transform .15s}
.user-menu.open .user-caret{transform:rotate(180deg)}
.user-dropdown{position:absolute;top:calc(100% + 8px);right:0;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-2);min-width:250px;padding:6px;z-index:50;display:none;animation:popIn .15s ease-out}
.user-menu.open .user-dropdown{display:block}
.user-dropdown .item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:9px;cursor:pointer;font-size:13.5px;font-weight:500;color:var(--text-soft);transition:background .1s,color .1s}
.user-dropdown .item:hover{background:var(--brand-soft);color:var(--brand-deep)}
.user-dropdown .item svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.user-dropdown .sep{height:1px;background:var(--line-soft);margin:5px 2px}
.user-dropdown .item.danger{color:#e11d48}
.user-dropdown .item.danger:hover{background:var(--rose-soft);color:#be123c}
.user-dropdown .role-info{padding:10px 12px;font-size:11.5px;color:var(--muted);text-align:center;border-bottom:1px solid var(--line-soft);margin-bottom:4px}
.user-dropdown .role-info b{color:var(--brand);font-weight:700;text-transform:uppercase;letter-spacing:.5px}

.theme-toggle{width:38px;height:38px;border-radius:10px;background:var(--surface);border:1px solid var(--line);color:var(--text-soft);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .12s}
.theme-toggle:hover{background:var(--bg-soft);border-color:var(--line-strong);color:var(--brand)}
[data-theme="dark"] .theme-toggle:hover{background:var(--surface-2)}
.theme-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

.burger{display:none;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;background:var(--surface);border:1px solid var(--line);color:var(--text-soft);cursor:pointer;transition:all .12s}
.burger:hover{background:var(--bg-soft);border-color:var(--line-strong)}
.burger svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* ============ SAAS-БЛОКИ ============ */

.org-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:16px;box-shadow:var(--shadow-1)}
.org-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.org-name{font-size:20px;font-weight:700;letter-spacing:-.02em;color:var(--text);margin:0}
.org-slug{color:var(--muted);font-size:13px;margin-top:2px}
.plan-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.4px;text-transform:uppercase}
.plan-badge.trial{background:var(--amber-soft);color:var(--amber-deep)}
.plan-badge.start{background:var(--brand-soft);color:var(--brand-deep)}
.plan-badge.business{background:var(--green-soft);color:var(--green-deep)}
.plan-badge.enterprise{background:linear-gradient(135deg,var(--brand-2),var(--brand-3));color:#fff}
.org-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;padding-top:14px;border-top:1px solid var(--line-soft)}
.org-meta .m-item .m-lbl{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-weight:600;margin-bottom:4px}
.org-meta .m-item .m-val{font-size:15px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}
.org-meta .m-item .m-val.warn{color:var(--rose)}
.org-meta .m-item .m-val.ok{color:var(--green-deep)}

.plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.plan-card{background:var(--surface);border:2px solid var(--line);border-radius:16px;padding:20px;text-align:center;transition:all .15s;position:relative}
.plan-card:hover{border-color:var(--line-strong);transform:translateY(-2px)}
.plan-card.current{border-color:var(--brand);box-shadow:0 0 0 4px rgba(99,102,241,.12)}
.plan-card .p-name{font-size:13px;text-transform:uppercase;letter-spacing:.7px;font-weight:700;color:var(--muted);margin-bottom:10px}
.plan-card .p-price{font-size:28px;font-weight:800;letter-spacing:-.03em;color:var(--text)}
.plan-card .p-price small{font-size:13px;font-weight:500;color:var(--muted);letter-spacing:0}
.plan-card .p-feats{list-style:none;padding:0;margin:16px 0;text-align:left;font-size:13px;color:var(--text-soft)}
.plan-card .p-feats li{padding:5px 0 5px 20px;position:relative}
.plan-card .p-feats li::before{content:"✓";position:absolute;left:0;color:var(--green);font-weight:700}

.role-badge{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase}
.role-badge.owner{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff}
.role-badge.admin{background:linear-gradient(135deg,var(--brand-2),var(--brand-3));color:#fff}
.role-badge.manager{background:var(--sky);color:#fff}
.role-badge.worker{background:var(--green);color:#fff}
.role-badge.viewer{background:#94a3b8;color:#fff}

.qr-card{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:14px;text-align:center;margin-top:12px}
.qr-card img{display:block;margin:0 auto 10px;border-radius:8px;background:#fff;padding:6px;max-width:220px;width:100%;height:auto}
.qr-card .qr-url{font-size:11px;color:var(--muted);word-break:break-all;margin-bottom:10px;font-family:monospace}
.qr-actions{display:flex;gap:6px;justify-content:center;flex-wrap:wrap}

.frequency-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:700;background:var(--brand-soft);color:var(--brand-deep);text-transform:uppercase;letter-spacing:.3px}
.next-run{font-size:12.5px;color:var(--muted)}
.next-run b{color:var(--text);font-weight:600}

.checklist-items{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.cl-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg-soft);border:1px solid var(--line);border-radius:10px}
.cl-item input[type="text"]{flex:1;border:0;background:transparent;padding:4px;font-size:13.5px}
.cl-item input[type="text"]:focus{outline:0}
.cl-item .drag{color:var(--muted-2);cursor:grab;font-size:15px;user-select:none}
.cl-item .x{color:var(--muted-2);cursor:pointer;padding:2px 6px;border-radius:5px;background:none;border:0}
.cl-item .x:hover{background:var(--rose-soft);color:var(--rose)}

.cl-run{display:flex;flex-direction:column;gap:8px}
.cl-run-item{display:flex;align-items:flex-start;gap:10px;padding:12px;background:var(--surface-2);border:1px solid var(--line);border-radius:10px}
.cl-run-item input[type="checkbox"]{margin-top:3px;width:18px;height:18px;accent-color:var(--brand)}
.cl-run-item label{flex:1;font-size:13.5px;cursor:pointer}
.cl-run-item .cl-note{margin-top:6px}
.cl-run-item .cl-note input{width:100%;border:1px solid var(--line);border-radius:8px;padding:6px 10px;font-size:12.5px;background:var(--surface)}

.audit-row{display:flex;gap:12px;padding:10px 14px;background:var(--surface);border:1px solid var(--line);border-radius:10px;margin-bottom:6px;font-size:12.5px;align-items:center;flex-wrap:wrap}
.audit-row .a-time{color:var(--muted);min-width:130px;font-family:monospace;font-size:11.5px}
.audit-row .a-action{font-weight:600;color:var(--text);min-width:120px}
.audit-row .a-entity{color:var(--brand-deep);font-family:monospace;font-size:11.5px}
.audit-row .a-user{color:var(--muted);margin-left:auto}

.invite-row{display:flex;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line-soft);flex-wrap:wrap}
.invite-row:last-child{border-bottom:0}
.invite-row .inv-email{font-weight:600;color:var(--text);flex:1}
.invite-row .inv-token{font-family:monospace;font-size:11.5px;color:var(--muted);background:var(--bg-soft);padding:3px 8px;border-radius:6px}

/* ============ PWA / ОНБОРДИНГ / PUSH / EMAIL ============ */

@keyframes slideUp{
  from { opacity:0; transform:translate(-50%, 20px); }
  to   { opacity:1; transform:translate(-50%, 0); }
}

/* Тёмная тема для модалок онбординга и push */
[data-theme="dark"] #onboardingOverlay > div,
[data-theme="dark"] #pushOverlay > div{
  background: var(--surface);
  border-color: var(--line);
  color: var(--text);
}

/* Email-баннер подтверждения */
#emailVerifyBanner a,
#emailVerifyBanner button{
  white-space: nowrap;
}
[data-theme="dark"] #emailVerifyBanner{
  background: linear-gradient(90deg, rgba(245,158,11,.2), rgba(245,158,11,.08));
  border-bottom-color: rgba(245,158,11,.35);
  color: #fcd34d;
}
[data-theme="dark"] #emailVerifyBanner b{ color:#fde68a; }

/* PWA-баннер установки */
#pwaBanner{
  font-family: inherit;
}
#pwaBanner button{
  font-family: inherit;
  transition: transform .12s ease, filter .12s ease;
}
#pwaBanner button:hover{ filter: brightness(1.05); }
#pwaBanner button:active{ transform: scale(.97); }

/* Онбординг: активная точка */
#onbDots span{ display:inline-block; }

/* Кнопка онбординга на мобильном — не перекрывается нижним меню */
@media(max-width:760px){
  #onboardingOverlay{ padding: 12px; }
  #onboardingOverlay > div{ padding: 24px 20px; }
  #pushOverlay > div{ padding: 26px 22px; }
  #pwaBanner{
    bottom: calc(88px + env(safe-area-inset-bottom));
    font-size: 13px;
  }
}

/* Safe-area (iPhone с «челкой») */
@supports(padding: max(0px)){
  .side{
    padding-top:    max(18px, env(safe-area-inset-top));
    padding-bottom: max(22px, env(safe-area-inset-bottom));
  }
  .top{
    padding-top: max(14px, env(safe-area-inset-top));
  }
  .mobile-nav{
    bottom: max(10px, env(safe-area-inset-bottom));
  }
  .toast-box{
    top: max(22px, env(safe-area-inset-top));
  }
}

/* ============ АДАПТИВ ============ */
@media(max-width:1100px){
  .cards{grid-template-columns:repeat(3,1fr)}
  .global-search input{width:220px}
}
@media(max-width:900px){
  .side{transform:translateX(-100%);box-shadow:0 0 40px rgba(0,0,0,.4)}
  .side.open{transform:translateX(0)}
  .main{margin-left:0;width:100%}
  .view.active{padding:16px 18px 90px}
  .global-search input{width:180px}
  .global-search .kbd{display:none}
  .burger{display:inline-flex}
  .cards{grid-template-columns:repeat(3,1fr)}
  .grid{grid-template-columns:1fr;gap:14px}
  .theme-cards{grid-template-columns:1fr}
  .shift-cal{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .shift-cal-head,.shift-cal-body{min-width:700px}
  .shift-day{min-height:100px}
  .shift-chip{font-size:11px}
}
@media(max-width:760px){
  :root{--radius:14px;--radius-lg:16px}
  .top{padding:10px 14px;gap:10px}
  .top h1{font-size:17px}
  .top .muted{font-size:11px}
  .clock{display:none}
  .global-search{display:none}
  .theme-toggle{display:none}
  .user-name{display:none}
  .user-caret{display:none}
  .user-btn{padding:4px;border-radius:50%}
  .user-dropdown{right:-6px}
  .view.active{padding:14px 12px 96px}
  .cards{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:14px}
  .stat{padding:13px 14px}
  .stat strong{font-size:24px;margin-top:4px}
  .stat small{font-size:10.5px;letter-spacing:.4px}
  .grid{grid-template-columns:1fr;gap:12px}
  .panel-head{padding:12px 14px;gap:8px}
  .panel-head b{font-size:13.5px}
  .panel-body{padding:14px}
  .formgrid{grid-template-columns:1fr;gap:12px}
  .full{grid-column:auto}
  .field input,.field select,.field textarea{padding:11px 12px;font-size:15px}
  .btn{padding:10px 14px;font-size:13.5px}
  .btn.small{padding:7px 12px;font-size:12.5px}
  .modal{padding:0;align-items:flex-end}
  .modal-card{width:100%;max-width:100%;max-height:92vh;border-radius:18px 18px 0 0;animation:sheetUp .25s cubic-bezier(.2,.9,.4,1)}
  @keyframes sheetUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
  .modal-head{border-radius:18px 18px 0 0;padding:14px 16px}
  .modal-body{padding:16px}
  .filters{flex-direction:column;align-items:stretch;padding:10px 14px;gap:10px}
  .filters .search{flex:1 1 auto}
  .chips{overflow-x:auto;flex-wrap:nowrap;padding-bottom:2px;scrollbar-width:none}
  .chips::-webkit-scrollbar{display:none}
  .chip{flex:0 0 auto}
  .toast-box{top:12px;left:12px;right:12px;max-width:none}
  .toast{min-width:0;max-width:100%}
  .search-overlay{padding:50px 12px 12px;align-items:flex-start}
  .search-panel{max-height:calc(100vh - 80px)}
  .search-panel input{padding:16px 18px;font-size:16px}
  .schedule-frame-wrap{height:calc(100vh - 220px);min-height:440px}
  .schedule-toolbar{flex-wrap:wrap;padding:12px 14px}
  .schedule-tabs{width:100%;justify-content:flex-start}
  .schedule-tabs .btn{flex:1;min-width:0}
  .shift-cal-head,.shift-cal-body{min-width:600px}
  .shift-day{min-height:82px;padding:6px;gap:4px}
  .shift-day .day-num{font-size:11px;width:22px;height:22px}
  .shift-chip{font-size:10px;padding:3px 6px;border-left-width:2px}
  .shift-chip .x{font-size:12px}
  .shift-legend{padding:10px 14px;gap:10px;font-size:11px}
  .table{font-size:12.5px}
  .table th,.table td{padding:8px 10px;white-space:nowrap}
  .table td:first-child,.table th:first-child{position:sticky;left:0;background:var(--surface);z-index:2}
  .table tbody tr:hover td:first-child{background:var(--bg-soft)}
  .table td .actions{flex-wrap:nowrap}
  .table td .actions .btn{padding:5px 9px;font-size:11.5px}
  .settings-section-head{padding:12px 16px}
  .settings-section-body{padding:16px}
  .settings-row{flex-direction:column;align-items:flex-start;gap:10px;padding:12px 0}
  .settings-row .ctrl{width:100%}
  .segmented{width:100%;display:flex}
  .segmented button{flex:1;padding:9px 8px;font-size:12.5px}
  .accent-dot{width:34px;height:34px}
  .theme-cards{grid-template-columns:repeat(3,1fr);gap:8px}
  .theme-card{padding:8px}
  .theme-preview{height:52px;margin-bottom:6px}
  .theme-card .name{font-size:11.5px}
  .profile-card .btn{margin-left:0!important;width:100%}
  .plan-grid{grid-template-columns:1fr}
  .org-meta{grid-template-columns:1fr 1fr}
  .mobile-nav{
    position:fixed;bottom:10px;left:10px;right:10px;display:flex;gap:2px;padding:6px;
    background:rgba(15,23,42,.96);backdrop-filter:saturate(180%) blur(14px);
    -webkit-backdrop-filter:saturate(180%) blur(14px);border-radius:16px;
    box-shadow:0 12px 32px rgba(15,23,42,.35);overflow-x:auto;scrollbar-width:none;
    z-index:30;-webkit-overflow-scrolling:touch;
  }
  .mobile-nav::-webkit-scrollbar{display:none}
  .mobile-nav button{flex:0 0 auto;min-width:62px;border:0;background:none;padding:7px 8px;border-radius:10px;color:var(--sidebar-text);font-size:10px;font-weight:500;display:flex;flex-direction:column;align-items:center;gap:2px;transition:background .12s,color .12s;text-align:center}
  .mobile-nav button.active{background:rgba(99,102,241,.22);color:#c7d2fe;font-weight:600}
  .mobile-nav button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  .mobile-nav button span{line-height:1.1;white-space:nowrap}
  .report{padding:16px}
  .report h2{font-size:18px}
}
@media(max-width:420px){
  .cards{grid-template-columns:1fr 1fr;gap:8px}
  .stat strong{font-size:22px}
  .top h1{font-size:15px}
  .login-card{padding:26px 20px}
  .login-card h2{font-size:19px}
  .mobile-nav button{min-width:56px;font-size:9.5px}
  .mobile-nav button svg{width:16px;height:16px}
  .theme-cards{grid-template-columns:1fr}
  .theme-preview{height:60px}
  .org-meta{grid-template-columns:1fr}
}
@media(hover:none){
  .stat:hover{transform:none}
  .stat:hover::before{opacity:0}
  .panel:hover{box-shadow:var(--shadow-1)}
  .chip:hover{border-color:var(--line);background:#fff}
  .btn:hover{filter:none}
  .shift-chip:hover{transform:none;box-shadow:none}
  .shift-chip .x{opacity:.6}
  .shift-day:hover{background:#fff}
  [data-theme="dark"] .chip:hover{background:#0f172a}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
}
@media print{
  .side,.top,.mobile-nav,.toast-box,.filters,.actions,.btn,.global-search,.clock,.user-menu,.theme-toggle,.burger,
  #emailVerifyBanner,#pwaBanner,#onboardingOverlay,#pushOverlay{display:none !important}
  .main{margin:0;width:100%;background:#fff}
  .view.active{padding:0}
  body{background:#fff}
  .panel,.shift-cal,.shift-day{box-shadow:none;border-color:#ddd}
  .shift-cal-head,.shift-cal-body{min-width:0 !important}
}