:root{
  --font:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --r-sm:10px; --r:14px; --r-lg:20px;
  --shadow:0 1px 3px rgba(15,23,42,.06),0 8px 24px -8px rgba(15,23,42,.12);
  --shadow-lg:0 4px 12px rgba(15,23,42,.08),0 20px 48px -16px rgba(15,23,42,.22);
}
/* ---------- THEME TOKENS ---------- */
[data-theme="light"]{
  --bg:#f4f6fb; --bg2:#eef1f8;
  --surface:#ffffff; --surface-2:#f7f9fc;
  --text:#0e1726; --muted:#6b7488; --faint:#9aa2b4;
  --line:#e6e9f2; --line-strong:#d4d9e6;
  --accent:#2563eb; --accent-2:#1d4ed8; --accent-soft:#e6efff; --on-accent:#ffffff;
  --ok:#0f9d6b; --ok-soft:#e3f7ee; --danger:#e02e4d; --danger-soft:#fde8ec;
  --grad1:#2563eb; --grad2:#4f86ff;
}
[data-theme="dark"]{
  --bg:#0a0e17; --bg2:#0d1320;
  --surface:#121a2a; --surface-2:#0f1726;
  --text:#eef2fb; --muted:#a6b2ca; --faint:#7a86a0;
  --line:#1e2940; --line-strong:#2a3859;
  --accent:#4f86ff; --accent-2:#3b74f5; --accent-soft:#16233f; --on-accent:#ffffff;
  --ok:#2fd396; --ok-soft:#0e2b22; --danger:#ff5b76; --danger-soft:#2e1119;
  --grad1:#3b74f5; --grad2:#7aa6ff;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
/* кнопки за замовчуванням беруть колір теми (браузерний дефолт — чорний, зливається на dark) */
button{color:var(--text)}
html,body{margin:0;height:100%}
body{
  font-family:var(--font);background:var(--bg);color:var(--text);
  font-size:14px;line-height:1.5;
  padding-bottom:calc(130px + env(safe-area-inset-bottom));
  transition:background .3s,color .3s;
}
.hidden{display:none!important}
.icon{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:none}
.icon-sm{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:none}

/* ---------- TOP BAR ---------- */
.topbar{
  position:sticky;top:0;z-index:30;
  display:flex;align-items:center;gap:12px;
  padding:14px 16px calc(14px) 16px;
  background:color-mix(in srgb,var(--bg) 82%,transparent);
  backdrop-filter:saturate(160%) blur(14px);
  border-bottom:1px solid var(--line);
}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:15px;letter-spacing:-.01em}
.brand .logo{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--grad1),var(--grad2));color:#fff;box-shadow:0 4px 12px -2px color-mix(in srgb,var(--accent) 60%,transparent)}
.brand .logo .icon{width:17px;height:17px;stroke-width:2.2}
.spacer{flex:1}
.icon-btn{
  width:38px;height:38px;border-radius:11px;border:1px solid var(--line);
  background:var(--surface);color:var(--text);display:grid;place-items:center;cursor:pointer;
  transition:transform .12s,border-color .2s,background .2s}
.icon-btn:active{transform:scale(.92)}

/* ---------- VIEW LAYOUT ---------- */
.view{padding:18px 16px calc(70px + env(safe-area-inset-bottom));max-width:680px;margin:0 auto;animation:fade .28s ease}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.view-title{font-size:21px;font-weight:750;letter-spacing:-.02em;margin:2px 0 16px}
.view-sub{color:var(--muted);font-size:13px;margin:-12px 0 18px}

/* ---------- DASHBOARD ---------- */
.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}
.stat{
  position:relative;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r);padding:15px 15px 14px;box-shadow:var(--shadow);overflow:hidden}
.stat.hero{grid-column:1/-1;background:linear-gradient(135deg,var(--grad1),var(--grad2));border:0;color:#fff}
.stat.hero .stat-label,.stat.hero .stat-sub{color:rgba(255,255,255,.85)}
.stat-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.stat-label{font-size:12px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.stat-ico{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;
  background:var(--accent-soft);color:var(--accent)}
.stat.hero .stat-ico{background:rgba(255,255,255,.18);color:#fff}
.stat-value{font-size:26px;font-weight:780;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.stat.hero .stat-value{font-size:30px}
.stat-sub{font-size:12px;color:var(--faint);margin-top:3px}

.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.chart-card{padding:16px 14px 8px;margin-bottom:14px}
.chart-head{display:flex;align-items:center;justify-content:space-between;padding:0 4px 6px}
.chart-head h3{margin:0;font-size:14px;font-weight:700}
.chart-head .legend{font-size:12px;color:var(--muted)}
#chart{width:100%;height:170px;display:block}
.chart-card{overflow:hidden}

.quick{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.quick-btn{
  display:flex;align-items:center;gap:12px;padding:15px 14px;cursor:pointer;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
  color:var(--text);
  box-shadow:var(--shadow);transition:transform .12s,border-color .2s;text-align:left}
.quick-btn:active{transform:scale(.97)}
.quick-btn .qi{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;
  background:var(--accent-soft);color:var(--accent);flex:none}
.quick-btn .qt{font-weight:650;font-size:13.5px;color:var(--text)}
.quick-btn .qd{font-size:11.5px;color:var(--muted)}

/* ---------- BOTTOM NAV ---------- */
.nav{
  position:fixed;left:0;right:0;bottom:0;z-index:40;
  display:flex;justify-content:space-around;align-items:stretch;
  padding:8px 8px calc(8px + env(safe-area-inset-bottom));
  background:color-mix(in srgb,var(--surface) 88%,transparent);
  backdrop-filter:saturate(160%) blur(16px);border-top:1px solid var(--line)}
.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;
  padding:6px 2px;color:var(--faint);cursor:pointer;border-radius:12px;
  font-size:10.5px;font-weight:600;transition:color .2s;background:none;border:0}
.nav-item.active{color:var(--accent)}
.nav-item .icon{width:22px;height:22px}
.nav-item.fab{position:relative}
.nav-item.fab .fab-circle{width:46px;height:46px;border-radius:15px;margin-top:-22px;
  display:grid;place-items:center;color:#fff;
  background:linear-gradient(135deg,var(--grad1),var(--grad2));
  box-shadow:0 8px 20px -4px color-mix(in srgb,var(--accent) 65%,transparent)}
.nav-item.fab .icon{width:24px;height:24px;stroke-width:2.4}
/* на мобільному текст «Інші дії» під кружечком не показуємо */
.nav-item.fab > span:not(.fab-circle){display:none}

/* ---------- FORMS ---------- */
.field{margin-bottom:14px}
.field label{display:block;font-size:12.5px;font-weight:650;color:var(--muted);margin-bottom:6px}
.input,.textarea,select{
  width:100%;padding:12px 13px;font:inherit;color:var(--text);
  background:var(--surface);border:1.5px solid var(--line-strong);border-radius:var(--r-sm);
  transition:border-color .18s,box-shadow .18s;outline:none}
.input:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}
.textarea{resize:vertical;min-height:84px}
.input-icon{position:relative}
.input-icon .icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--faint);width:18px;height:18px}
.input-icon .input{padding-left:40px}
.hint{font-size:11.5px;color:var(--faint);margin-top:5px}
.err{color:var(--danger)!important}

.photo-drop{
  border:1.5px dashed var(--line-strong);border-radius:var(--r);padding:22px;text-align:center;
  color:var(--muted);cursor:pointer;transition:border-color .2s,background .2s}
.photo-drop:active{background:var(--surface-2)}
.photo-drop .icon{width:30px;height:30px;margin-bottom:6px;color:var(--accent)}
.photo-preview{position:relative;border-radius:var(--r);overflow:hidden;border:1px solid var(--line)}
.photo-preview img{width:100%;display:block;max-height:230px;object-fit:cover}
.photo-preview .rm{position:absolute;top:8px;right:8px;width:32px;height:32px;border-radius:9px;
  background:rgba(8,12,20,.6);color:#fff;border:0;display:grid;place-items:center;cursor:pointer;backdrop-filter:blur(4px)}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;
  padding:13px 16px;font:inherit;font-weight:680;border:0;border-radius:var(--r-sm);cursor:pointer;
  background:var(--accent);color:var(--on-accent);transition:transform .12s,opacity .2s}
.btn:active{transform:scale(.98)}
.btn:disabled{opacity:.5;pointer-events:none}
.btn.secondary{background:var(--surface);color:var(--text);border:1.5px solid var(--line-strong)}
.btn.danger{background:var(--danger)}
.btn.ghost{background:transparent;color:var(--accent);border:1.5px solid transparent}
.btn-grad{background:linear-gradient(135deg,var(--grad1),var(--grad2));box-shadow:0 8px 20px -6px color-mix(in srgb,var(--accent) 60%,transparent)}
.btn-row{display:flex;gap:10px}
.btn.small{width:auto;padding:9px 14px;font-size:13px}

/* ---------- SEGMENTED ---------- */
.seg{display:flex;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:4px;gap:4px;margin-bottom:16px}
.seg button{flex:1;padding:9px;border:0;background:none;color:var(--muted);font:inherit;font-weight:650;
  font-size:13px;border-radius:9px;cursor:pointer;transition:.18s}
.seg button.active{background:var(--surface);color:var(--accent);box-shadow:var(--shadow)}

/* ---------- RECORD CARDS ---------- */
.rec{display:flex;gap:12px;padding:13px;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r);box-shadow:var(--shadow);margin-bottom:10px;cursor:pointer;transition:transform .12s,border-color .2s}
.rec:active{transform:scale(.99)}
.rec .thumb{width:54px;height:54px;border-radius:11px;object-fit:cover;border:1px solid var(--line);flex:none;background:var(--surface-2)}
.rec .thumb.ph{display:grid;place-items:center;color:var(--faint)}
.rec .meta{flex:1;min-width:0}
.rec .meta .l1{display:flex;align-items:center;justify-content:space-between;gap:8px}
.rec .email{font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rec .amount{font-weight:730;color:var(--accent);font-variant-numeric:tabular-nums;white-space:nowrap}
.rec .reason{color:var(--muted);font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.rec .date{color:var(--faint);font-size:11.5px;margin-top:3px;display:flex;align-items:center;gap:4px}
.id-chip{font-size:11px;font-weight:700;color:var(--accent);background:var(--accent-soft);padding:2px 7px;border-radius:7px}

/* ---------- TABLE ---------- */
.table-wrap{overflow-x:auto;border-radius:var(--r);border:1px solid var(--line);box-shadow:var(--shadow);-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse;background:var(--surface);font-size:13px}
th,td{padding:11px 12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;white-space:nowrap}
th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:700;background:var(--surface-2);position:sticky;top:0}
td.editable{cursor:pointer;border-bottom:1px solid var(--line)}
td.editable:hover{color:var(--accent)}
td .thumb{width:42px;height:42px;border-radius:8px;object-fit:cover;border:1px solid var(--line)}
tr:last-child td{border-bottom:0}
.tbl-amount{font-weight:680;font-variant-numeric:tabular-nums}
.tdel{color:var(--danger);cursor:pointer;display:inline-grid;place-items:center}

/* ---------- EMPTY / TOAST / SPINNER ---------- */
.empty{text-align:center;padding:48px 20px;color:var(--muted)}
.empty .icon{width:46px;height:46px;color:var(--faint);margin-bottom:12px}
.empty h3{margin:0 0 4px;color:var(--text);font-size:15px}
.spinner{width:34px;height:34px;border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;margin:46px auto}
@keyframes spin{to{transform:rotate(360deg)}}
.toast{position:fixed;left:50%;bottom:calc(86px + env(safe-area-inset-bottom));transform:translateX(-50%) translateY(20px);
  background:var(--text);color:var(--bg);padding:11px 18px;border-radius:12px;font-weight:600;font-size:13px;
  box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;transition:.3s;z-index:60;display:flex;align-items:center;gap:8px;max-width:90%}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.toast.ok{background:var(--ok);color:#fff}
.toast.err{background:var(--danger);color:#fff}

/* ---------- MODAL / SHEET ---------- */
.sheet-bg{position:fixed;inset:0;background:rgba(6,10,18,.5);backdrop-filter:blur(3px);z-index:70;opacity:0;pointer-events:none;transition:.25s;display:flex;align-items:flex-end;justify-content:center}
.sheet-bg.show{opacity:1;pointer-events:auto}
.sheet{width:100%;max-width:520px;background:var(--surface);border-radius:var(--r-lg) var(--r-lg) 0 0;
  padding:0 18px calc(20px + env(safe-area-inset-bottom));transform:translateY(100%);transition:transform .28s cubic-bezier(.32,.72,0,1);box-shadow:var(--shadow-lg);
  max-height:90vh;overflow-y:auto;-webkit-overflow-scrolling:touch}
.sheet-bg.show .sheet{transform:translateY(0)}
.sheet .grab{position:sticky;top:0;z-index:2;width:100%;height:26px;margin:0 0 10px;cursor:pointer;display:flex;align-items:center;justify-content:center;background:var(--surface);padding-top:8px}
.sheet .grab::after{content:"";width:60px;height:5px;border-radius:99px;background:var(--line-strong)}
.sheet h3{margin:0 0 4px;font-size:17px;font-weight:720}
.sheet .sub{color:var(--muted);font-size:12.5px;margin-bottom:16px}
.detail-row{display:flex;gap:10px;padding:11px 0;border-bottom:1px solid var(--line)}
.detail-row:last-of-type{border-bottom:0}
.detail-row .k{color:var(--muted);width:96px;flex:none;font-size:12.5px;display:flex;align-items:center;gap:6px}
.detail-row .v{font-weight:600;word-break:break-word}
.detail-photo{width:100%;border-radius:var(--r);margin:6px 0 4px;border:1px solid var(--line)}

.summary{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r);padding:4px 14px;margin-bottom:16px}

/* статуси */
.badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;padding:3px 9px;border-radius:99px;white-space:nowrap}
.badge.paid{background:var(--ok-soft);color:var(--ok)}
.badge.unpaid{background:#fff3e0;color:#e07b1a}
[data-theme="dark"] .badge.unpaid{background:#2a1f0e}
.badge .dot{width:6px;height:6px;border-radius:50%;background:currentColor}
.status-pill{cursor:pointer;border:0;font:inherit}

/* пошук-бар */
.searchbar{position:relative;margin-bottom:12px}
.searchbar .icon{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--faint);width:18px;height:18px}
.searchbar input{width:100%;padding:12px 13px 12px 40px;font:inherit;color:var(--text);background:var(--surface);border:1.5px solid var(--line-strong);border-radius:var(--r-sm);outline:none}
.searchbar input:focus{border-color:var(--accent)}
.filters{display:flex;gap:8px;margin-bottom:14px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:2px}
.chip{flex:none;padding:7px 13px;border-radius:99px;border:1.5px solid var(--line);background:var(--surface);color:var(--muted);font-size:12.5px;font-weight:650;cursor:pointer;white-space:nowrap}
.chip.active{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}

/* чекбокс рядка */
.cbx{width:20px;height:20px;border-radius:6px;border:2px solid var(--line-strong);display:inline-grid;place-items:center;cursor:pointer;flex:none;background:var(--surface)}
.cbx.on{background:var(--accent);border-color:var(--accent)}
.cbx.on::after{content:"";width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg) translateY(-1px)}

/* тулбар масових дій */
.bulkbar{position:fixed;left:50%;bottom:calc(86px + env(safe-area-inset-bottom));transform:translateX(-50%) translateY(30px);
  display:flex;gap:8px;align-items:center;background:var(--surface);border:1px solid var(--line);
  box-shadow:var(--shadow-lg);border-radius:14px;padding:8px 10px;z-index:55;opacity:0;pointer-events:none;transition:.25s}
.bulkbar.show{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0)}
.bulkbar .cnt{font-weight:700;font-size:13px;padding:0 6px}
.bulkbar button{border:0;border-radius:9px;padding:8px 11px;font:inherit;font-weight:650;font-size:12.5px;cursor:pointer;display:flex;align-items:center;gap:5px}
.bulkbar .b-paid{background:var(--accent-soft);color:var(--accent)}
.bulkbar .b-unpaid{background:#fff3e0;color:#e07b1a}
.bulkbar .b-del{background:var(--danger-soft);color:var(--danger)}
.bulkbar .b-x{background:var(--surface-2);color:var(--muted)}

/* лайтбокс фото */
.lightbox{position:fixed;inset:0;background:rgba(4,7,12,.92);z-index:90;display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;transition:.2s;padding:20px}
.lightbox.show{opacity:1;pointer-events:auto}
.lightbox img{max-width:100%;max-height:90vh;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.lightbox .close{position:absolute;top:calc(14px + env(safe-area-inset-top));right:16px;width:42px;height:42px;border-radius:12px;
  background:rgba(255,255,255,.15);color:#fff;border:0;display:grid;place-items:center;cursor:pointer;backdrop-filter:blur(6px)}
img.thumb,img.detail-photo{cursor:zoom-in}

/* користувачі */
.user-row{display:flex;align-items:center;gap:12px;padding:12px 13px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);margin-bottom:9px;cursor:pointer}
.user-row .uava{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;font-weight:700;color:#fff;flex:none}
.user-row .um{flex:1;min-width:0}
.user-row .un{font-weight:650}
.user-row .ud{font-size:12px;color:var(--muted)}
.role-tag{font-size:11px;font-weight:700;padding:3px 9px;border-radius:7px}
.role-admin{background:#ede9fe;color:#7c3aed}.role-manager{background:var(--accent-soft);color:var(--accent)}.role-user{background:var(--surface-2);color:var(--muted)}
[data-theme="dark"] .role-admin{background:#2a1f4d}
.danger-zone{margin-top:22px;padding:14px;border:1.5px dashed var(--danger);border-radius:var(--r);background:var(--danger-soft)}
.danger-zone h4{margin:0 0 4px;color:var(--danger);font-size:13px}
.danger-zone p{margin:0 0 10px;font-size:12px;color:var(--muted)}

/* пакетні тарифи */
.tier-group{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px 14px;margin-bottom:14px;box-shadow:var(--shadow)}
.tier-group h3{margin:0 0 14px;text-align:center;font-size:18px;font-weight:750;letter-spacing:-.01em}
.tier{display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:10px;
  border:1px solid var(--line);border-radius:var(--r);padding:13px 14px;margin-bottom:10px;background:var(--surface-2)}
.tier:last-child{margin-bottom:0}
.tier .qty{font-weight:700;font-size:14px}
.tier .price{color:var(--muted);font-weight:650;font-size:13.5px}
.tier .per{font-size:12px;color:var(--faint);text-align:right}
.tier .buy{background:var(--ok);color:#fff;border:0;border-radius:9px;padding:8px 16px;font:inherit;font-weight:680;cursor:pointer}
.tier .buy:active{opacity:.85}
.shop-empty{padding:36px 16px;text-align:center;color:var(--muted);border:1.5px dashed var(--line-strong);border-radius:var(--r);margin-top:6px}
.shop-empty .icon{width:40px;height:40px;color:var(--faint);margin-bottom:8px}
.section-h{font-size:13px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:22px 4px 12px;display:flex;align-items:center;gap:7px}
.work-card{display:flex;align-items:center;gap:12px;padding:14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);margin-bottom:10px;cursor:pointer;text-align:left;font:inherit;color:var(--text);width:100%}
.work-card>div{flex:1;min-width:0}
.work-card .wi{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);flex:none}
.work-card .wt{font-weight:650;line-height:1.3;color:var(--text)}.work-card .wd{font-size:12px;color:var(--muted);line-height:1.3}
.work-card.contact .wt{font-size:16px;font-weight:700}
.work-card.contact .wd{font-size:13.5px}
.work-card.contact .wi{width:46px;height:46px}
/* перемикач дозволів */
.perm-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line)}
.perm-row:last-child{border-bottom:0}
.perm-row .pl{font-size:13.5px;font-weight:600}
.tgl{width:44px;height:26px;border-radius:99px;background:var(--line-strong);position:relative;cursor:pointer;transition:.2s;flex:none}
.tgl.on{background:var(--accent)}
.tgl::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:.2s}
.tgl.on::after{left:21px}
/* редактор вітання */
.fmt-bar{display:flex;gap:6px;margin-bottom:8px}
.fmt-bar button{padding:6px 12px;border:1px solid var(--line);background:var(--surface);border-radius:8px;font-weight:700;cursor:pointer;color:var(--text)}
.tag-chip{display:inline-block;padding:4px 9px;border-radius:7px;background:var(--accent-soft);color:var(--accent);font-size:12px;font-weight:600;cursor:pointer;margin:0 5px 6px 0;font-family:monospace}

/* ===== СКЛАД: категорії та параметри ===== */
.cat-list,.attr-list{display:flex;flex-direction:column;gap:8px}
.cat-row{display:flex;align-items:center;justify-content:space-between;padding:13px 14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.cat-name{font-weight:650;font-size:14.5px}
.cat-acts{display:flex;gap:6px}
.ic-btn{width:34px;height:34px;border-radius:9px;border:1px solid var(--line);background:var(--surface-2);color:var(--muted);display:grid;place-items:center;cursor:pointer}
.ic-btn:active{transform:scale(.94)}
.ic-btn.danger{color:var(--danger);border-color:transparent;background:var(--danger-soft)}
.attr-row{display:flex;align-items:flex-start;gap:10px;padding:13px 14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.attr-row.sys{background:var(--surface-2);align-items:center;justify-content:space-between}
.attr-row.off{opacity:.55}
.attr-name{font-weight:650;font-size:14px;display:block}
.attr-meta{font-size:11.5px;color:var(--muted);display:block;margin-top:2px}
.attr-lock{color:var(--faint)}
.attr-opts{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}
.opt-chip{font-size:11.5px;padding:3px 9px;border-radius:7px;background:var(--accent-soft);color:var(--accent);font-weight:600}
.seg-btn{flex:1;padding:9px 6px;border:0;background:var(--surface-2);color:var(--muted);font:inherit;font-weight:650;font-size:12.5px;border-radius:9px;cursor:pointer}
.seg-btn.active{background:var(--accent);color:#fff}
#kindSeg{display:flex;gap:5px;flex-wrap:wrap}
.chk-row{display:flex;align-items:center;gap:9px;font-size:13.5px;font-weight:600;padding:9px 0;cursor:pointer}
.chk-row input{width:18px;height:18px;accent-color:var(--accent)}
.opt-edit{display:flex;align-items:center;justify-content:space-between;padding:8px 11px;background:var(--surface-2);border-radius:9px;margin-bottom:6px;font-size:13.5px}
.opt-add{display:flex;gap:8px}
.opt-add .input{flex:1}
.btn.small{padding:9px 12px;flex:none;width:auto}

/* ===== СКЛАД: товари (адмін-список) ===== */
.req{color:var(--danger);font-weight:700}
.seg.wrap{flex-wrap:wrap;height:auto}
.badge.ok{background:var(--ok-soft);color:var(--ok)}
.badge.warn{background:#fff3e0;color:#e07b1a}
[data-theme="dark"] .badge.warn{background:#2a1f0e}
.badge.muted{background:var(--surface-2);color:var(--muted)}
.prod-admin-list{display:flex;flex-direction:column;gap:10px}
.prod-admin{display:flex;align-items:center;gap:12px;padding:11px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.pa-thumb{width:56px;height:56px;border-radius:12px;object-fit:cover;flex:none;background:var(--surface-2)}
.pa-thumb.ph{display:grid;place-items:center;font-weight:800;font-size:22px;color:#fff;background:linear-gradient(135deg,var(--grad1),var(--grad2))}
.pa-body{flex:1;min-width:0}
.pa-name{font-weight:680;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pa-cat{font-size:11.5px;color:var(--muted);margin:2px 0 6px}
.status-pill{cursor:pointer;border:0}

/* ===== СКЛАД: вітрина ===== */
.shop-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.searchbar .clr{position:absolute;right:10px;top:50%;transform:translateY(-50%);border:0;background:none;color:var(--muted);cursor:pointer;padding:4px}
.filters.scroll{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px;margin-bottom:8px;scrollbar-width:none}
.filters.scroll::-webkit-scrollbar{display:none}
.filters.scroll .chip{flex:none}
.chip b{font-weight:800;opacity:.7;margin-left:2px}
.res-line{font-size:12px;color:var(--muted);margin:4px 2px 12px}
/* сітка 2 колонки */
.prod-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pg-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);cursor:pointer}
.pg-card:active{transform:scale(.98)}
.pg-photo{position:relative;aspect-ratio:1/1;background:var(--surface-2)}
.pg-img{width:100%;height:100%;object-fit:cover;display:block}
.pg-img.ph,.pg-photo .ph{width:100%;height:100%;display:grid;place-items:center;font-size:40px;font-weight:800;color:#fff;background:linear-gradient(135deg,var(--grad1),var(--grad2))}
.pg-sku{position:absolute;top:7px;left:7px;background:rgba(0,0,0,.6);color:#fff;font-size:10.5px;font-weight:700;padding:2px 7px;border-radius:6px}
.pg-status{position:absolute;bottom:7px;right:7px;font-size:10px;font-weight:700;padding:2px 8px;border-radius:99px}
.pg-status.ok{background:var(--ok);color:#fff}
.pg-status.warn{background:#e07b1a;color:#fff}
.pg-status.muted{background:#888;color:#fff}
.pg-name{padding:9px 10px;font-weight:650;font-size:13px;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
/* список */
.prod-listv{display:flex;flex-direction:column;gap:8px}
.pl-row{display:flex;align-items:center;gap:12px;padding:9px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);cursor:pointer}
.pl-thumb{width:60px;height:60px;border-radius:10px;object-fit:cover;flex:none;background:var(--surface-2)}
.pl-thumb.ph{display:grid;place-items:center;font-weight:800;font-size:24px;color:#fff;background:linear-gradient(135deg,var(--grad1),var(--grad2))}
.pl-body{flex:1;min-width:0}
.pl-name{font-weight:650;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl-meta{font-size:11.5px;color:var(--muted);margin-top:2px}
.pager{display:flex;align-items:center;justify-content:center;gap:14px;margin:14px 0}
.pg-info{font-size:13px;font-weight:600;color:var(--muted)}
/* картка деталей */
.pc-photo{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:14px;margin-bottom:12px;background:var(--surface-2)}
.pc-photo.ph{display:grid;place-items:center;font-size:64px;font-weight:800;color:#fff;background:linear-gradient(135deg,var(--grad1),var(--grad2))}
.pc-cat{font-size:12px;color:var(--muted);font-weight:600}
.pc-note{font-size:12px;color:var(--muted);text-align:center;margin-top:10px}

/* ===== КОШИК / ЗАМОВЛЕННЯ ===== */
.cart-btn{position:relative}
.cart-badge{position:absolute;top:-5px;right:-5px;background:var(--danger);color:#fff;font-size:10px;font-weight:800;min-width:16px;height:16px;border-radius:99px;display:grid;place-items:center;padding:0 4px}
.cart-summary{background:var(--accent-soft);color:var(--accent);font-weight:650;font-size:13px;padding:10px 14px;border-radius:var(--r);margin-bottom:14px;text-align:center}
.ok-circle{width:64px;height:64px;border-radius:50%;background:var(--ok);color:#fff;display:grid;place-items:center;margin:0 auto 14px}
.ok-circle svg{width:34px;height:34px;stroke-width:2.5}

/* ===== перемикачі складу ===== */
.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);margin-bottom:8px;font-size:13.5px;font-weight:600;cursor:pointer}
.toggle-row input{width:44px;height:26px;appearance:none;-webkit-appearance:none;background:var(--line-strong);border-radius:99px;position:relative;cursor:pointer;flex:none;transition:background .2s}
.toggle-row input:checked{background:var(--accent)}
.toggle-row input::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .2s}
.toggle-row input:checked::after{transform:translateX(18px)}

.detail-row .v.link{color:var(--accent);font-weight:600}
.order-item:active{opacity:.6}

/* ===== Нова Пошта ===== */
.np-status{padding:11px 14px;border-radius:var(--r);font-size:13px;font-weight:650;margin-bottom:16px}
.np-status.ok{background:var(--ok-soft);color:var(--ok)}
.np-status.warn{background:#fff3e0;color:#e07b1a}
[data-theme="dark"] .np-status.warn{background:#2a1f0e}
.np-note{display:flex;gap:8px;align-items:flex-start;font-size:11.5px;color:var(--muted);background:var(--surface-2);padding:10px 12px;border-radius:var(--r);margin-top:14px;line-height:1.4}
.np-note svg{flex:none;margin-top:1px}

/* ===== форма замовлення ===== */
.field-row{display:flex;gap:10px}
.field-row .field{flex:1}
.phone-input{display:flex;align-items:center;gap:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface)}
.phone-prefix{padding:0 12px;font-weight:700;color:var(--muted);background:var(--surface-2);align-self:stretch;display:flex;align-items:center;border-right:1px solid var(--line)}
.phone-input .input{border:0;border-radius:0;flex:1}
.field-hint{font-size:11.5px;color:var(--muted);margin-top:5px;min-height:14px}
.field-hint.ok{color:var(--ok)}
.field-hint.err{color:var(--danger)}

/* ===== картка замовлення юзера: НП шапка + трекінг ===== */
.np-header{background:linear-gradient(135deg,#e30613,#b8000f);color:#fff;margin:-10px -18px 0;padding:18px;border-radius:14px 14px 0 0}
.np-brand{display:flex;align-items:center;gap:8px;font-weight:700;font-size:15px;margin-bottom:14px}
.np-logo{background:#fff;color:#e30613;font-weight:800;font-size:12px;padding:3px 7px;border-radius:7px}
.np-ttn-label{font-size:12px;opacity:.85;margin-bottom:4px}
.np-ttn-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.np-ttn{font-size:22px;font-weight:800;letter-spacing:1.5px;font-variant-numeric:tabular-nums}
.np-copy{background:rgba(255,255,255,.2);border:0;color:#fff;width:38px;height:38px;border-radius:10px;display:grid;place-items:center;cursor:pointer}
.np-copy:active{transform:scale(.92)}
.track{position:relative;padding-left:6px}
.track-step{display:flex;gap:14px;position:relative;padding-bottom:20px}
.track-step:not(:last-child)::before{content:"";position:absolute;left:7px;top:18px;bottom:-2px;width:2px;background:var(--line-strong)}
.track-step.done:not(:last-child)::before{background:var(--accent)}
.track-dot{width:16px;height:16px;border-radius:50%;background:var(--line-strong);flex:none;margin-top:2px;z-index:1;border:3px solid var(--surface)}
.track-step.done .track-dot{background:var(--accent)}
.track-step.active .track-dot{background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
.track-name{font-weight:650;font-size:14px;color:var(--muted)}
.track-step.done .track-name,.track-step.active .track-name{color:var(--text)}
.track-date{font-size:12px;color:var(--faint);margin-top:2px}

/* ===== експорт замовлень ===== */
.exp-cols{max-height:220px;overflow-y:auto;border:1px solid var(--line);border-radius:12px;padding:4px 12px}
.exp-cols .chk-row{padding:7px 0}
select.input{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}

/* ===== автопідказка Нової Пошти ===== */
.ac-field{position:relative}
.ac-list{position:absolute;left:0;right:0;top:100%;z-index:20;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-lg);max-height:240px;overflow-y:auto;margin-top:4px}
.ac-list:empty{display:none}
.ac-item{padding:11px 14px;font-size:13.5px;cursor:pointer;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:10px;align-items:center}
.ac-item:last-child{border-bottom:0}
.ac-item:active,.ac-item:hover{background:var(--surface-2)}
.ac-area{font-size:11px;color:var(--faint);flex:none}
.ac-empty{padding:12px 14px;font-size:13px;color:var(--muted);text-align:center}

/* ===== очищення товарів: прев'ю ===== */
.cl-preview{background:var(--accent-soft);color:var(--accent);font-weight:700;font-size:14px;padding:12px 14px;border-radius:var(--r);text-align:center;margin-bottom:12px}

/* ===== облік витрат ===== */
.fin-total-card{background:linear-gradient(135deg,var(--grad1),var(--grad2));color:#fff;border-radius:var(--r-lg);padding:18px 20px;margin-bottom:14px}
.fin-total-label{font-size:12.5px;opacity:.85;margin-bottom:4px}
.fin-total-sum{font-size:30px;font-weight:800;letter-spacing:.5px}
.fin-chart{display:flex;flex-direction:column;gap:10px;margin-bottom:8px}
.fin-bar-row{display:flex;align-items:center;gap:10px}
.fin-bar-label{width:90px;font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:none}
.fin-bar-track{flex:1;height:16px;background:var(--surface-2);border-radius:99px;overflow:hidden}
.fin-bar{height:100%;border-radius:99px;transition:width .4s}
.fin-bar-val{width:90px;text-align:right;font-size:12.5px;font-weight:700;flex:none}
.fin-dot{width:12px;height:12px;border-radius:50%;flex:none}

/* ===== облік: розгортання, коло ===== */
.fin-acc-head{display:flex;align-items:center;justify-content:space-between;padding:12px 2px;cursor:pointer;font-weight:700;font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}
.fin-acc-head span:first-child{display:flex;align-items:center;gap:7px}
.fin-acc-arrow{transition:transform .25s;display:flex;color:var(--faint)}
.fin-acc-arrow.open{transform:rotate(90deg)}

/* ===== посередники Європа (перенос) ===== */
.seg.wrap{flex-wrap:wrap;height:auto}
.seg.wrap .seg-btn{flex:0 1 auto;min-width:calc(50% - 4px)}

/* ===== Європа: два фото в картці ===== */
.eu-photos{display:flex;gap:10px;margin-top:12px}
.eu-photos>div{flex:1}
.eu-photo-label{font-size:11.5px;color:var(--muted);margin-bottom:5px;font-weight:600}
.eu-photos .detail-photo{width:100%;height:auto;border-radius:12px}
.photo-prev{position:relative;display:inline-block}
.photo-prev img{max-width:100%;border-radius:12px;max-height:200px}
.photo-clear{position:absolute;top:6px;right:6px;background:rgba(0,0,0,.6);border:0;color:#fff;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;cursor:pointer}
.photo-add{width:100%;padding:22px;border:1.5px dashed var(--line-strong);border-radius:12px;background:var(--surface-2);color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;font-size:13px}

/* ===== закреслена стара сума + рядок редагування з копі ===== */
.amt-old{text-decoration:line-through;color:var(--faint);font-weight:500;margin-right:4px;font-size:.82em}
.edit-row{display:flex;gap:8px;align-items:center}
.edit-row .input,.edit-row .textarea{flex:1}
.edit-row .ic-btn{flex:none;align-self:center}
.edit-row:has(.textarea){align-items:flex-start}
.edit-row:has(.textarea) .ic-btn{margin-top:6px}

/* ===== рядок Склад (рівний) ===== */
.wh-row{flex-direction:column;align-items:stretch;gap:0;background:var(--surface-2)}
.wh-top{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%}
.wh-info{display:flex;flex-direction:column}
.wh-row .attr-opts{margin-top:8px}
.wh-row .ic-btn{flex:none}
/* лог змін у картці витрати */
.log-line{display:flex;align-items:center;justify-content:space-between;margin-top:12px;padding:10px 12px;background:var(--surface-2);border-radius:10px;font-size:13px}
.log-line>span{display:flex;align-items:center;gap:6px;color:var(--muted)}
.btn-link{background:none;border:0;color:var(--accent);font-weight:600;cursor:pointer;font-size:13px}

/* ===== редактор дозволів по розділах ===== */
.perm-group{border:1px solid var(--line);border-radius:var(--r);margin-bottom:10px;overflow:hidden;background:var(--surface)}
.perm-group-head{display:flex;align-items:center;gap:10px;padding:12px 14px;cursor:pointer;background:var(--surface-2)}
.pg-ic{display:flex;color:var(--accent);flex:none}
.pg-title{flex:1;min-width:0}
.pg-name{font-weight:700;font-size:14px}
.pg-count{font-size:11.5px;color:var(--muted);margin-top:1px}
.pg-arrow{transition:transform .25s;color:var(--faint);flex:none}
.pg-arrow.open{transform:rotate(90deg)}
.perm-group-body{padding:6px 14px 10px}
.perm-group-body .perm-row{padding:9px 0;border-bottom:1px solid var(--line)}
.perm-group-body .perm-row:last-child{border-bottom:0}
.pg-all{flex:none}

/* підзаголовок у розділі дозволів (категорії обліку) */
.perm-subhead{font-size:11.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;margin:10px 0 4px;padding-top:8px;border-top:1px dashed var(--line-strong)}

/* позначка відредагованої суми */
.edited-mark{display:inline-flex;align-items:center;color:var(--accent);vertical-align:middle;opacity:.75}
.edited-mark svg{width:13px;height:13px}
.icon-xs{width:13px;height:13px}

/* картки з однорядковою назвою + діями (склади, розділи витрат) — центрувати */
.attr-row.wh-item{align-items:center;padding:14px}
.attr-row.wh-item .attr-name{flex:1;margin:0}
.attr-row.wh-item .cat-acts{align-items:center;flex:none}

/* індикатор готовності Нової Пошти */
.np-ready{display:flex;align-items:center;gap:8px;padding:11px 14px;border-radius:12px;font-size:13px;font-weight:600;margin:12px 0}
.np-ready.ok{background:rgba(47,181,106,.12);color:#2fb56a}
.np-ready.warn{background:rgba(224,123,26,.12);color:#e07b1a}

/* паровозик історії статусів */
.sh-train{display:flex;flex-direction:column;gap:0;margin-top:8px}
.sh-step{background:var(--surface-2);border-radius:10px;padding:10px 12px;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.sh-from{color:var(--muted);font-size:13px}
.sh-arrow{color:var(--accent,#6c8cff);font-weight:700}
.sh-to{font-weight:600;font-size:13px}
.sh-meta{flex-basis:100%;font-size:11px;color:var(--faint)}
.sh-line{width:2px;height:14px;background:var(--border,#2a2f3a);margin-left:20px}
/* колонка оплати */
.pay-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:8px;font-size:11px;font-weight:600}
.pay-badge.paid{background:rgba(47,181,106,.14);color:#2fb56a}
.pay-badge.unpaid{background:rgba(224,123,26,.14);color:#e07b1a}
.badge.err{background:rgba(229,72,77,.14);color:#e5484d}
[data-theme="dark"] .badge.err{background:rgba(229,72,77,.2)}

/* спойлер прикріплених фото */
.photos-spoiler{border:1px solid var(--border,#2a2f3a);border-radius:12px;padding:12px 14px;background:var(--surface-2)}
.photos-spoiler summary{cursor:pointer;font-weight:600;font-size:14px;display:flex;align-items:center;gap:8px;list-style:none}
.photos-spoiler summary::-webkit-details-marker{display:none}
.photos-spoiler summary::after{content:'▾';margin-left:auto;transition:transform .2s}
.photos-spoiler[open] summary::after{transform:rotate(180deg)}

/* select — текст по центру */
select.input{text-align:center;text-align-last:center}
select.input option{text-align:center}

/* банк */
.bank-balance{border-radius:16px;padding:20px;text-align:center;background:linear-gradient(135deg,rgba(47,181,106,.15),rgba(47,181,106,.05));border:1px solid rgba(47,181,106,.25)}
.bank-balance.unpaid{background:linear-gradient(135deg,rgba(229,72,77,.15),rgba(229,72,77,.05));border-color:rgba(229,72,77,.25)}
.bb-label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}
.bb-value{font-size:32px;font-weight:800;margin:6px 0}
.bank-balance.paid .bb-value{color:#2fb56a}
.bank-balance.unpaid .bb-value{color:#e5484d}
.bb-sub{font-size:12px;color:var(--muted)}
.tabs-lite{display:flex;gap:6px;background:var(--surface-2);padding:4px;border-radius:12px}
.tl-btn{flex:1;padding:8px;border:none;background:transparent;border-radius:9px;font-size:12px;font-weight:600;color:var(--muted);cursor:pointer}
.tl-btn.active{background:var(--surface);color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.1)}
.pl-amount{font-size:15px;white-space:nowrap}

/* кружечки-лічильники за статусами */
.stat-circles{display:flex;gap:10px;margin:4px 0 12px;flex-wrap:wrap}
.stat-circle{display:flex;align-items:center;gap:7px;background:var(--surface-2);border-radius:20px;padding:5px 12px 5px 8px;font-size:13px;font-weight:600}
.sc-dot{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;font-weight:700}
.sc-dot.orange{background:#e07b1a}
.sc-dot.green{background:#2fb56a}
.sc-dot.blue{background:#4f7cff}
.sc-label{color:var(--muted)}

/* компактні кружечки біля назв у меню Запити */
.mini-circles{display:inline-flex;gap:5px;margin-left:6px;vertical-align:middle}
.mini-circle{min-width:20px;height:20px;padding:0 5px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:11px;font-weight:700;line-height:1}
.mini-circle.orange{background:#e07b1a}
.mini-circle.green{background:#2fb56a}
.mini-circle.blue{background:#4f7cff}

/* перевідправка — вибір товару */
.rs-prod-list{display:flex;flex-direction:column;gap:8px}
.rs-prod{display:flex;align-items:center;gap:12px;background:var(--surface-2);border-radius:12px;padding:10px;cursor:pointer}
.rs-prod:active{opacity:.7}
.rs-thumb{width:48px;height:48px;border-radius:10px;object-fit:cover;flex-shrink:0}
.rs-thumb.ph{display:flex;align-items:center;justify-content:center;background:var(--surface);color:var(--muted)}
.rs-prod-body{flex:1;min-width:0}
.rs-prod-name{font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rs-prod-meta{font-size:12px;color:var(--muted)}

/* банер перегляду від менеджера */
.imp-banner{position:fixed;left:12px;right:12px;bottom:78px;z-index:9000;
  background:linear-gradient(135deg,#4f7cff,#6a5cff);color:#fff;border-radius:14px;
  padding:12px 16px;display:flex;align-items:center;justify-content:space-between;
  box-shadow:0 8px 24px rgba(0,0,0,.25);font-size:14px}
.imp-banner b{font-weight:700}
.imp-banner button{background:rgba(255,255,255,.25);border:none;color:#fff;
  padding:7px 14px;border-radius:9px;font-weight:600;cursor:pointer}
.imp-banner button:active{opacity:.7}

/* адреса в таблиці повернень — не розтягує таблицю */
.cell-addr{max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* екран входу в браузері */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:var(--bg)}
.login-card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:36px 30px;box-shadow:0 20px 60px rgba(0,0,0,.18)}
.login-brand{display:flex;align-items:center;justify-content:center;gap:9px;font-weight:750;font-size:17px;margin-bottom:22px}
.login-brand-logo{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(135deg,var(--grad1),var(--grad2));color:#fff}
.login-brand-logo .icon{width:19px;height:19px}
.login-card h2{margin:0 0 4px;font-size:24px;text-align:center;letter-spacing:-.02em}
.login-sub{color:var(--muted);font-size:13px;margin-bottom:22px;text-align:center;line-height:1.5}
.login-field{margin-bottom:14px}
.login-field label{display:block;font-size:12.5px;font-weight:650;color:var(--muted);margin-bottom:6px}
.login-inp{width:100%;padding:13px 14px;border:1.5px solid var(--line-strong);border-radius:12px;background:var(--surface-2);color:var(--text);font-size:15px;box-sizing:border-box;transition:border-color .18s,box-shadow .18s}
.login-inp:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}
.login-btn{width:100%;padding:14px;border:none;border-radius:12px;background:linear-gradient(135deg,var(--grad1),var(--grad2));color:#fff;font-size:15px;font-weight:650;cursor:pointer;margin-top:8px;transition:opacity .15s,transform .12s}
.login-btn:hover{opacity:.93}
.login-btn:active{transform:scale(.98)}
.login-btn:disabled{opacity:.6;cursor:default}
.login-err{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger);padding:11px 13px;border-radius:11px;font-size:13px;margin-bottom:16px;text-align:center}
.login-hint{color:var(--faint);font-size:12px;margin-top:18px;line-height:1.6;text-align:center}

/* ============================================================
   ДЕСКТОПНА АДАПТАЦІЯ (екрани від 900px)
   Нижнє меню → бічний сайдбар, широкий контент, більше колонок
   ============================================================ */
@media (min-width: 900px){
  /* topbar на всю ширину зверху */
  .topbar{padding-left:24px;padding-right:24px;z-index:50}

  /* нижнє меню перетворюємо на лівий сайдбар (під топбаром) */
  .nav{
    flex-direction:column;justify-content:flex-start;align-items:stretch;
    top:65px;bottom:0;right:auto;left:0;width:240px;
    padding:20px 14px;gap:4px;
    border-top:none;border-right:1px solid var(--line);
    background:var(--surface)}
  .nav-item{
    flex:none;flex-direction:row;justify-content:flex-start;gap:14px;
    padding:12px 14px;font-size:14px;border-radius:12px}
  .nav-item .icon{width:20px;height:20px}
  .nav-item.active{background:var(--accent-soft)}
  /* центральна кнопка «+» у сайдбарі — звичайним рядком, не піднята */
  .nav-item.fab .fab-circle{
    width:auto;height:auto;margin-top:0;border-radius:12px;
    padding:0;background:none;box-shadow:none;color:inherit;display:flex}
  .nav-item.fab .fab-circle .icon{width:20px;height:20px}
  .nav-item.fab{flex-direction:row;justify-content:flex-start;gap:14px;
    padding:12px 14px;border-radius:12px}
  .nav-item.fab.active,.nav-item.fab:hover{background:var(--accent-soft)}
  .nav-item:hover{background:var(--accent-soft)}
  /* на десктопі показуємо підпис «Інші дії» */
  .nav-item.fab > span:not(.fab-circle){display:inline;font-size:14px;font-weight:600}

  /* контент зсуваємо праворуч від сайдбара й даємо на всю доступну ширину */
  .view{margin-left:240px;max-width:none;padding:26px 40px 40px}

  /* товари: адаптивна сітка — стільки колонок, скільки влізе */
  .prod-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}

  /* дашборд: більше колонок для статистики */
  .stat-grid{grid-template-columns:repeat(4,1fr)}
  .stat.hero{grid-column:1/-1}
  .quick{grid-template-columns:repeat(3,1fr)}
  /* графік не розтягуємо на весь екран — тримаємо читабельну ширину */
  .chart-card{max-width:720px}
  #chart{height:220px}

  /* картки-рядки (замовлення, повернення) — ширші */
  .prod-admin-list{gap:12px}

  /* модальні вікна (sheet) — по центру екрана, не знизу */
  .sheet-bg{align-items:center}
  .sheet{
    max-width:560px;border-radius:var(--r-lg);
    padding-top:22px;
    transform:translateY(20px) scale(.98)}
  .sheet-bg.show .sheet{transform:translateY(0) scale(1)}
  .sheet .grab{display:none}
  .sheet h3{margin-top:0}

  /* топбар не перекриває сайдбар */
  .topbar{position:sticky}

  /* трохи більші заголовки на десктопі */
  .view-title{font-size:26px}
}

/* Дуже широкі екрани (від 1400px) — більше колонок товарів */
@media (min-width: 1400px){
  .prod-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
}

/* причина в таблиці компенсацій — обрізаємо довгий текст трьома крапками */
td.cell-reason{max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* редаговані клітинки параметрів у таблиці перевідправок */
.rs-editcell{cursor:pointer;position:relative}
.rs-editcell:hover{background:var(--accent-soft)}
.rs-editcell::after{content:"✎";font-size:10px;opacity:.35;margin-left:5px}
.rs-editinp{width:100%;min-width:80px;padding:5px 7px;border:1.5px solid var(--accent);border-radius:7px;background:var(--surface);color:var(--text);font-size:13px;box-sizing:border-box}
.rs-editinp:focus{outline:none}

/* редагування текстового параметра в картці товару */
.pc-editval{cursor:pointer}
.pc-editval:hover{color:var(--accent)}
.pc-edit-pencil{font-size:10px;opacity:.4;margin-left:3px}

/* фото підтвердження замовлення */
.proof-zone{display:flex;gap:8px;flex-wrap:wrap}
.proof-item{position:relative;width:80px;height:80px;border-radius:10px;overflow:hidden}
.proof-item img{width:100%;height:100%;object-fit:cover}
.proof-item .rm{position:absolute;top:3px;right:3px;background:rgba(0,0,0,.6);border:none;color:#fff;border-radius:50%;width:22px;height:22px;display:grid;place-items:center;cursor:pointer}
.proof-add{width:80px;height:80px;border:1.5px dashed var(--line-strong);border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:pointer;color:var(--muted);font-size:11px}
.proof-add:hover{border-color:var(--accent);color:var(--accent)}

/* власний діалог підтвердження (працює і в браузері, і в Telegram) */
.confirm-box{padding:4px 0}
.confirm-ico{width:56px;height:56px;border-radius:50%;margin:0 auto 4px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent)}
.confirm-ico.danger{background:color-mix(in srgb,var(--danger) 15%,transparent);color:var(--danger)}
.confirm-ico .icon{width:26px;height:26px}

/* розкривний список товарів у оформленні */
.cart-summary-details{margin-bottom:14px;background:var(--surface-2);border-radius:12px;overflow:hidden}
.cart-summary-details summary{list-style:none;cursor:pointer;padding:12px 14px;font-weight:600;display:flex;align-items:center;justify-content:space-between;color:var(--text)}
.cart-summary-details summary::-webkit-details-marker{display:none}
.cart-summary-details summary .icon{transition:transform .2s}
.cart-summary-details[open] summary .icon{transform:rotate(180deg)}
.cart-summary-list{padding:0 12px 12px;display:flex;flex-direction:column;gap:8px}
.csl-item{display:flex;align-items:center;gap:10px}
.csl-item img,.csl-ph{width:40px;height:40px;border-radius:8px;object-fit:cover;flex:none}
.csl-ph{display:grid;place-items:center;background:var(--surface);color:var(--muted)}
.csl-name{font-size:14px;font-weight:500}
.csl-cat{font-size:11px;color:var(--muted)}

/* кастомний вибір місяця */
.mp-box{padding:2px 0}
.mp-year{display:flex;align-items:center;justify-content:center;gap:18px;margin-bottom:14px}
.mp-year-val{font-size:20px;font-weight:800;min-width:70px;text-align:center}
.mp-nav{width:36px;height:36px;border-radius:50%;border:1px solid var(--line-strong);background:var(--surface-2);color:var(--text);display:grid;place-items:center;cursor:pointer}
.mp-nav:disabled{opacity:.35;cursor:default}
.mp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.mp-cell{padding:14px 8px;border:1.5px solid var(--line);border-radius:12px;background:var(--surface-2);color:var(--text);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s}
.mp-cell:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}
.mp-cell.sel{background:linear-gradient(135deg,var(--grad1),var(--grad2));color:#fff;border-color:transparent}
.mp-cell:disabled{opacity:.3;cursor:default}

/* повний перегляд причини */
.reason-full{background:var(--surface-2);border-radius:12px;padding:14px;font-size:14px;line-height:1.5;white-space:pre-wrap;word-break:break-word;max-height:300px;overflow-y:auto}
.reason-cell{cursor:pointer;color:var(--accent);text-decoration:underline;text-decoration-style:dotted}

/* клікабельне посилання на сайт */
.site-link{color:var(--accent);text-decoration:underline;word-break:break-all;cursor:pointer}
.site-link:hover{opacity:.8}
