/* MEELDER · админ-панель («Пульт мастера»). Те же токены, что у сайта, но интерфейс — рабочий и плотный. */
:root{
  --bg:#181615;--bg-2:#1F1B19;--surf:#25211F;--surf-2:#302B27;--hair:rgba(246,235,211,.12);--stroke:#5A4F45;
  --fg:#F6EBD3;--fg-mute:#B5A48C;--paper:#FFF8E7;--cream:#F7EDD5;--ink:#181615;
  --butter:#F4D47C;--edge-butter:#9C7424;--honey:#D9A441;--caramel:#C98B4E;--coffee:#6B4A31;
  --sage:#9DAE85;--rose:#D9826A;--ok:#A9C28A;--bad:#E08A70;
  --g-family:#F4D47C;--g-party:#F0B49A;--g-coop:#BFCDA4;--g-detective:#D8C8AA;--g-strategy:#E5AE70;--g-rpg:#CDB08E;
  --f-display:'Unbounded','Arial Black',system-ui,sans-serif;
  --f-body:'Manrope',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --r:14px;--r-lg:20px;
  --spring:cubic-bezier(.34,1.56,.64,1);
  color-scheme:dark;
}
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--f-body);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}
h1,h2,h3,p{margin:0}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
svg{width:1em;height:1em;flex:none}
[hidden]{display:none!important}
:focus-visible{outline:3px solid var(--honey);outline-offset:2px;border-radius:6px}
.boot{display:grid;place-items:center;min-height:100vh;color:var(--fg-mute);font-weight:700}

/* ---------- каркас ---------- */
.shell{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr;min-height:100vh}
.side{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:6px;padding:10px 12px;background:#110F0E;border-bottom:1px solid var(--hair);overflow-x:auto;scrollbar-width:none}
.side::-webkit-scrollbar{display:none}
.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 4px 2px;margin-right:6px;text-decoration:none;flex:none}
.brand__token{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--butter);color:var(--ink);box-shadow:0 3px 0 var(--edge-butter)}
.brand__token svg{width:22px;height:22px}
.brand b{font-family:var(--f-display);font-size:.95rem;letter-spacing:.02em}
.brand small{display:none}
.navlink{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:12px;color:var(--fg-mute);font-weight:700;text-decoration:none;white-space:nowrap;transition:background-color .2s,color .2s}
.navlink svg{width:19px;height:19px}
.navlink:hover{background:var(--surf);color:var(--fg)}
.navlink.is-on{background:var(--butter);color:var(--ink)}
.side__foot{display:flex;gap:6px;margin-left:auto}
.main{min-width:0;padding:20px 16px 60px}
.page-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}
.page-head h1{font-family:var(--f-display);font-weight:800;font-size:clamp(1.3rem,3vw,1.8rem);letter-spacing:-.01em}
.page-head p{color:var(--fg-mute);font-weight:600;font-size:.9rem;margin-top:2px}
.crumbs{font-size:.82rem;color:var(--fg-mute);font-weight:700;margin-bottom:6px}
.crumbs a{text-decoration:none}
.crumbs a:hover{color:var(--butter)}

@media (min-width:980px){
  .shell{grid-template-columns:240px minmax(0,1fr);grid-template-rows:1fr}
  .side{position:sticky;top:0;height:100vh;flex-direction:column;align-items:stretch;gap:4px;padding:18px 14px;border-bottom:0;border-right:1px solid var(--hair);overflow:visible}
  .brand{margin:0 0 18px}
  .brand small{display:block;color:var(--fg-mute);font-size:.72rem;font-weight:700}
  .side__foot{flex-direction:column;margin:auto 0 0}
  .main{padding:32px 36px 80px}
}

/* ---------- кнопки, поля ---------- */
.btn{
  --edge:#000;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:8px 16px;border-radius:999px;
  border:2px solid var(--ink);background:var(--surf-2);color:var(--fg);font-weight:800;font-size:.88rem;white-space:nowrap;text-decoration:none;
  box-shadow:0 4px 0 var(--edge);transition:transform .25s var(--spring),box-shadow .25s var(--spring),background-color .2s;
}
.btn svg{width:18px;height:18px}
.btn:hover{transform:translateY(-2px);box-shadow:0 6px 0 var(--edge)}
.btn:active{transform:translateY(3px);box-shadow:0 1px 0 var(--edge);transition-duration:.06s}
.btn--primary{background:var(--butter);color:var(--ink);--edge:var(--edge-butter)}
.btn--ghost{background:transparent;border-color:var(--stroke);box-shadow:none}
.btn--ghost:hover{box-shadow:none;background:var(--surf)}
.btn--danger{background:#4A2219;color:#FFD6C9;--edge:#250f0a}
.btn--sm{min-height:34px;padding:5px 12px;font-size:.8rem;box-shadow:0 3px 0 var(--edge)}
.btn--block{width:100%}
.btn[disabled]{opacity:.5;pointer-events:none}
.iconbtn{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--surf-2);border:1px solid var(--hair);color:var(--fg)}
.iconbtn:hover{border-color:var(--butter)}
.iconbtn svg{width:17px;height:17px}

.field{display:grid;gap:6px;min-width:0}
.field > span,.lbl{font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-mute)}
.input,select.input,textarea.input{
  width:100%;min-height:44px;padding:10px 12px;border-radius:12px;border:1.5px solid var(--stroke);background:var(--bg-2);color:var(--fg);
  font-size:15px;font-weight:600;transition:border-color .2s,box-shadow .2s;
}
textarea.input{min-height:110px;resize:vertical;line-height:1.45}
.input:focus{outline:none;border-color:var(--butter);box-shadow:0 0 0 3px rgba(244,212,124,.25)}
.input.is-err{border-color:var(--bad);animation:shake .35s}
@keyframes shake{25%{transform:translateX(-5px)}50%{transform:translateX(4px)}75%{transform:translateX(-2px)}}
.hint{font-size:.78rem;color:var(--fg-mute)}
.grid2{display:grid;gap:14px}
.grid3{display:grid;gap:14px}
@media (min-width:640px){.grid2{grid-template-columns:1fr 1fr}.grid3{grid-template-columns:repeat(3,1fr)}}
.span2{grid-column:1/-1}
.switch{display:inline-flex;align-items:center;gap:10px;font-weight:700;cursor:pointer}
.switch input{position:absolute;opacity:0}
.switch i{position:relative;width:44px;height:26px;border-radius:999px;background:var(--surf-2);border:1.5px solid var(--stroke);transition:background-color .2s}
.switch i::after{content:"";position:absolute;top:2px;left:2px;width:19px;height:19px;border-radius:50%;background:var(--fg);transition:transform .3s var(--spring)}
.switch input:checked + i{background:var(--bad)}
.switch input:checked + i::after{transform:translateX(18px)}
.seg{display:inline-flex;gap:4px;padding:4px;border-radius:999px;background:var(--surf);border:1px solid var(--hair)}
.seg button,.seg label{border:0;background:none;padding:7px 14px;border-radius:999px;font-weight:700;font-size:.85rem;color:var(--fg-mute);cursor:pointer}
.seg .is-on,.seg input:checked + span{background:var(--butter);color:var(--ink)}
.seg label{padding:0}
.seg label input{position:absolute;opacity:0}
.seg label span{display:block;padding:7px 14px;border-radius:999px}
.icons{display:flex;flex-wrap:wrap;gap:6px}
.icons label{cursor:pointer}
.icons input{position:absolute;opacity:0}
.icons span{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--paper);color:var(--ink);border:2px solid transparent}
.icons span svg{width:24px;height:24px}
.icons input:checked + span{border-color:var(--butter);box-shadow:0 0 0 3px rgba(244,212,124,.35);transform:rotate(-6deg)}
.icons input:focus-visible + span{outline:3px solid var(--honey)}

/* ---------- карточки, таблицы ---------- */
.card{background:var(--surf);border:1px solid var(--hair);border-radius:var(--r-lg);padding:18px}
.card + .card{margin-top:16px}
.card h2{font-family:var(--f-display);font-weight:600;font-size:1.02rem;margin-bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.card h2 small{font-family:var(--f-body);font-weight:700;font-size:.8rem;color:var(--fg-mute)}
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:16px}
@media (min-width:760px){.stats{grid-template-columns:repeat(3,1fr)}}
@media (min-width:1200px){.stats{grid-template-columns:repeat(6,1fr)}}
.stat{padding:16px;border-radius:var(--r-lg);background:var(--surf);border:1px solid var(--hair)}
.stat b{display:block;font-family:var(--f-display);font-size:1.6rem;line-height:1.1;font-variant-numeric:tabular-nums}
.stat small{color:var(--fg-mute);font-weight:700;font-size:.78rem}
.stat--accent{background:var(--butter);color:var(--ink);border-color:var(--butter)}
.stat--accent small{color:var(--coffee)}
.cols{display:grid;gap:16px}
@media (min-width:1100px){.cols{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:start}}

.tablewrap{overflow-x:auto;margin:0 -18px;padding:0 18px}
table{width:100%;border-collapse:collapse;font-size:.88rem}
th{text-align:left;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-mute);font-weight:800;padding:8px 10px;border-bottom:1px solid var(--hair);white-space:nowrap}
td{padding:10px;border-bottom:1px solid var(--hair);vertical-align:middle}
tr.is-link{cursor:pointer;transition:background-color .15s}
tr.is-link:hover{background:var(--surf-2)}
tr.is-dim td{opacity:.5}
.t-title{font-weight:800}
.t-sub{display:block;color:var(--fg-mute);font-size:.78rem;font-weight:600}
.nowrap{white-space:nowrap}
.num{font-variant-numeric:tabular-nums;text-align:right}
.empty{padding:28px;text-align:center;color:var(--fg-mute);font-weight:700;border:2px dashed var(--hair);border-radius:var(--r-lg)}

.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:.74rem;font-weight:800;white-space:nowrap;background:var(--surf-2);color:var(--fg-mute)}
.pill--published,.pill--attended,.pill--paid{background:rgba(169,194,138,.18);color:var(--ok)}
.pill--draft,.pill--booked,.pill--on_site{background:rgba(244,212,124,.15);color:var(--butter)}
.pill--cancelled,.pill--no_show,.pill--banned,.pill--refunded{background:rgba(224,138,112,.16);color:var(--bad)}
.dot{width:10px;height:10px;border-radius:50%;display:inline-block;background:var(--c);box-shadow:inset 0 0 0 1.5px rgba(0,0,0,.25)}
.fill{display:flex;align-items:center;gap:8px;min-width:110px}
.fill__bar{flex:1;height:8px;border-radius:999px;background:var(--surf-2);overflow:hidden}
.fill__bar i{display:block;height:100%;background:linear-gradient(90deg,var(--honey),var(--caramel));border-radius:inherit}
.fill b{font-size:.8rem;font-variant-numeric:tabular-nums;white-space:nowrap}
.ava{display:inline-grid;place-items:center;flex:none;width:32px;height:32px;border-radius:50%;font-weight:800;font-size:.7rem;color:var(--ink);background:hsl(var(--h,40) 62% 72%);box-shadow:inset 0 0 0 2px rgba(24,22,21,.8)}
.who{display:flex;align-items:center;gap:10px}
.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:14px}
.toolbar .input{max-width:320px;min-height:40px}
.actions{display:flex;flex-wrap:wrap;gap:8px}
.ptsbtns{display:flex;flex-wrap:wrap;gap:4px}
.ptsbtns button{border:1px solid var(--hair);background:var(--surf-2);border-radius:999px;padding:3px 9px;font-size:.74rem;font-weight:800;color:var(--fg)}
.ptsbtns button:hover{border-color:var(--butter);color:var(--butter)}
select.mini{min-height:32px;padding:4px 8px;border-radius:10px;border:1px solid var(--stroke);background:var(--bg-2);font-size:.82rem;font-weight:700}
.sticky-save{position:sticky;bottom:12px;z-index:5;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:center;margin-top:16px;padding:12px;border-radius:var(--r-lg);background:rgba(37,33,31,.92);backdrop-filter:blur(8px);border:1px solid var(--hair)}
.preview{display:flex;align-items:center;gap:12px;padding:10px;border-radius:var(--r);background:var(--paper);color:var(--ink)}
.preview__art{display:grid;place-items:center;width:58px;height:58px;border-radius:14px;background:var(--g);border:2px solid var(--ink)}
.preview__art svg{width:30px;height:30px}
.preview b{display:block;font-family:var(--f-display);font-size:.95rem;line-height:1.2}
.preview small{color:#7A6553;font-weight:700}

/* ---------- вход ---------- */
.login{display:grid;place-items:center;min-height:100vh;padding:20px;background:radial-gradient(800px 500px at 50% -10%,rgba(244,212,124,.14),transparent 60%)}
.login__card{width:min(400px,100%);display:grid;gap:16px;padding:28px;border-radius:26px;background:var(--cream);color:var(--ink);border:3px solid var(--ink);box-shadow:0 8px 0 var(--coffee)}
.login__card h1{font-family:var(--f-display);font-weight:800;font-size:1.4rem}
.login__card p{color:#7A6553;font-weight:600;font-size:.9rem}
.login__card .input{background:#fff;color:var(--ink);border-color:var(--ink)}
.login__card .field > span{color:#6B4A31}
.login__token{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--butter);box-shadow:0 0 0 3px var(--cream),0 0 0 5px var(--ink)}
.login__token svg{width:36px;height:36px}
.login__card.is-err{animation:shake .4s}

/* ---------- тосты, модалка ---------- */
.toasts{position:fixed;z-index:100;right:16px;bottom:16px;display:grid;gap:8px;width:min(380px,calc(100% - 32px))}
.toast{padding:12px 14px;border-radius:14px;background:var(--paper);color:var(--ink);font-weight:700;box-shadow:0 14px 30px -12px rgba(0,0,0,.8);border-left:6px solid var(--ok);animation:tin .45s var(--spring) both}
.toast--err{border-left-color:var(--bad)}
@keyframes tin{from{transform:translateY(16px) scale(.95);opacity:0}}
.dialog{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:16px;background:rgba(8,7,6,.72)}
.dialog__box{width:min(520px,100%);max-height:90vh;overflow:auto;display:grid;gap:14px;padding:22px;border-radius:22px;background:var(--surf);border:1px solid var(--hair);animation:tin .4s var(--spring) both}
.dialog__box h2{font-family:var(--f-display);font-weight:600;font-size:1.1rem}
.userpick{display:grid;gap:4px;max-height:220px;overflow:auto}
.userpick button{display:flex;align-items:center;gap:10px;padding:8px;border-radius:12px;border:1px solid transparent;background:var(--bg-2);text-align:left}
.userpick button.is-on{border-color:var(--butter)}
.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:.88rem}
.kv dt{color:var(--fg-mute);font-weight:700}
.kv dd{margin:0;font-weight:700}
.note{padding:12px 14px;border-radius:14px;background:rgba(244,212,124,.08);border:1px dashed rgba(244,212,124,.35);color:var(--fg);font-size:.86rem}
.note b{color:var(--butter)}
code{font-family:ui-monospace,Consolas,monospace;font-size:.85em;background:var(--bg-2);padding:1px 6px;border-radius:6px}
.cols--stack{grid-template-columns:minmax(0,1fr)!important}
.cols > *,.grid2 > *,.grid3 > *{min-width:0}
.side{max-width:100vw}

/* --- Входящие, переписка, счётчики --- */
.navcount{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;margin-left:auto;border-radius:999px;background:var(--rose);color:var(--ink);font-size:.7rem;font-weight:800;font-style:normal}
.navlink .navcount{margin-left:auto}
.seg a.is-on .navcount{background:var(--ink);color:var(--butter)}
.thread{display:grid;gap:10px;max-height:60vh;overflow:auto;padding:4px}
.tmsg{display:grid;gap:4px;max-width:80%;padding:10px 14px;border-radius:16px;font-size:.92rem}
.tmsg small{font-size:.7rem;color:var(--fg-mute);font-weight:700}
.tmsg--user{justify-self:start;background:var(--surf-2);border-bottom-left-radius:4px}
.tmsg--admin{justify-self:end;background:rgba(244,212,124,.16);border:1px solid rgba(244,212,124,.35);border-bottom-right-radius:4px}
.modnote{border-style:solid}
.btn.is-off{opacity:.45;filter:saturate(.4)}
