/* Layout: рабочий кабинет организатора — узкая шапка, карточки мероприятий в сетке, страница мероприятия в две колонки; на телефоне всё в одну колонку */
:root{
  --bg:#F7F5F1; --surface:#FFFFFF; --ink:#1E2433; --muted:#687082; --line:#E7E3DC;
  --accent:#4F5BD5; --accent-ink:#FFFFFF; --accent-soft:#ECEEFC;
  --ok:#1E7A50; --ok-soft:#E3F3EA; --warn:#9A6400; --warn-soft:#FCF3DE; --danger:#C0392B; --danger-soft:#FCEBE8;
  --f-display:"Unbounded",system-ui,sans-serif;
  --f-body:"Golos Text",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --f-mono:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#14161D; --surface:#1B1E27; --ink:#E8EAF0; --muted:#A0A6B4; --line:#2B2F3B;
  --accent:#A8B0FF; --accent-ink:#141833; --accent-soft:#252A45;
  --ok:#6BD3A0; --ok-soft:#163327; --warn:#EBC066; --warn-soft:#332A12; --danger:#F49A8F; --danger-soft:#3B201E; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#14161D; --surface:#1B1E27; --ink:#E8EAF0; --muted:#A0A6B4; --line:#2B2F3B;
  --accent:#A8B0FF; --accent-ink:#141833; --accent-soft:#252A45;
  --ok:#6BD3A0; --ok-soft:#163327; --warn:#EBC066; --warn-soft:#332A12; --danger:#F49A8F; --danger-soft:#3B201E; color-scheme:dark}

*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font:15px/1.5 var(--f-body);min-height:100vh;
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:0 48px}
button,input,textarea,select{font:inherit;color:inherit}
a{color:var(--accent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
[hidden]{display:none!important}
.wrap{max-width:1080px;margin:0 auto}
h1,h2,h3{text-wrap:balance}
h1{font:700 clamp(22px,4vw,30px)/1.15 var(--f-display);margin:0}
h2{font:500 17px/1.3 var(--f-display);margin:0}
.eyebrow{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 6px}
.muted{color:var(--muted)}
.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}

/* шапка */
.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-block:16px;border-bottom:1px solid var(--line);margin-bottom:24px;flex-wrap:wrap}
.brand{font:700 15px/1 var(--f-display);text-decoration:none;color:var(--ink);display:flex;align-items:center;gap:10px}
.brand i{width:26px;height:26px;border-radius:7px;background:var(--accent);display:inline-grid;place-items:center;color:var(--accent-ink);font-style:normal;font-size:13px}
.userbox{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.userbox .who{font-size:13px;color:var(--muted);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* кнопки и поля */
.btn{border:0;border-radius:8px;padding:10px 16px;font-weight:600;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:6px;justify-content:center}
.btn.primary{background:var(--accent);color:var(--accent-ink)}
.btn.primary:hover{filter:brightness(1.08)}
.btn.ghost{background:var(--surface);border:1px solid var(--line);color:var(--ink)}
.btn.ghost:hover{border-color:var(--muted)}
.btn.danger{background:var(--danger);color:var(--surface)}
.btn.small{padding:7px 12px;font-size:13px}
.btn:disabled{opacity:.55;cursor:not-allowed}
.link{background:none;border:0;padding:0;color:var(--accent);cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.field{display:flex;flex-direction:column;gap:5px;min-width:0}
.field label{font-size:13px;font-weight:500}
.field small{color:var(--muted);font-weight:400}
.field input,.field textarea,.field select{border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:10px 12px;width:100%;min-width:0}
.field textarea{resize:vertical;min-height:84px}
.field input:focus,.field textarea:focus{border-color:var(--accent);outline:none}
.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}
.check-line{display:flex;gap:10px;align-items:flex-start;font-size:14px}
.check-line input{margin-top:3px;width:18px;height:18px;accent-color:var(--accent)}
.msg{font-size:13px;min-height:1.4em;margin:0}
.msg.err{color:var(--danger)} .msg.ok{color:var(--ok)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:20px}
.stack{display:flex;flex-direction:column;gap:14px}
.banner{border-radius:10px;padding:10px 14px;font-size:14px}
.banner.demo{background:var(--warn-soft);color:var(--warn)}
.banner.err{background:var(--danger-soft);color:var(--danger)}

/* экраны входа */
.auth{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:40px;align-items:center;min-height:calc(100vh - 120px);padding-block:24px}
@media (max-width:820px){.auth{grid-template-columns:minmax(0,1fr);gap:24px;min-height:0}}
.pitch h1{font-size:clamp(26px,5vw,44px);margin-bottom:14px}
.pitch p{font-size:17px;color:var(--muted);max-width:46ch;margin:0 0 20px}
.ticket{border:1px dashed var(--line);border-radius:14px;padding:16px 18px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 16px;max-width:420px;background:var(--surface)}
.ticket b{font:500 13px var(--f-mono);color:var(--muted)}
.ticket span{font-size:14px}
.auth .card{max-width:440px;width:100%;justify-self:center}
.auth .card h2{margin-bottom:4px}
.switch{font-size:14px;color:var(--muted);text-align:center;margin:4px 0 0}

/* кабинет */
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:20px}
.events{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.ev{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:0;text-decoration:none;color:var(--ink);display:grid;grid-template-columns:74px minmax(0,1fr);overflow:hidden;transition:border-color .15s,transform .15s}
.ev:hover{border-color:var(--accent);transform:translateY(-1px)}
.ev .date{background:var(--accent-soft);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:14px 6px;border-right:1px dashed var(--line)}
.ev .date b{font:700 26px/1 var(--f-display)}
.ev .date span{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-top:4px}
.ev .body{padding:14px 16px;display:flex;flex-direction:column;gap:6px;min-width:0}
.ev .title{font-weight:600;font-size:16px;overflow-wrap:anywhere}
.ev .meta{font-size:13px;color:var(--muted);display:flex;flex-wrap:wrap;gap:2px 12px}
.ev.past{opacity:.7}
.pill{display:inline-flex;align-items:center;gap:4px;font-size:12px;padding:2px 9px;border-radius:999px;background:var(--accent-soft);color:var(--ink);white-space:nowrap}
.pill.ok{background:var(--ok-soft);color:var(--ok)}
.pill.off{background:var(--line);color:var(--muted)}
.section-label{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:28px 0 10px}
.empty{padding:40px 20px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:14px;background:var(--surface)}
.empty strong{display:block;color:var(--ink);font:500 17px/1.4 var(--f-display);margin-bottom:6px}
.empty .btn{margin-top:14px}

/* форма мероприятия */
.narrow{max-width:680px}
.back{display:inline-flex;gap:6px;align-items:center;font-size:14px;color:var(--muted);text-decoration:none;margin-bottom:12px}
.back:hover{color:var(--ink)}
.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.danger-zone{border-top:1px solid var(--line);padding-top:16px;margin-top:6px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}

/* страница мероприятия */
.ev-head{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:flex-start;margin-bottom:20px}
.ev-head .info{min-width:0;flex:1 1 360px;display:flex;flex-direction:column;gap:8px}
.ev-head .facts{display:flex;flex-wrap:wrap;gap:4px 16px;color:var(--muted);font-size:14px}
.stats{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 14px;min-width:100px}
.stat b{display:block;font:500 22px/1.1 var(--f-mono);font-variant-numeric:tabular-nums}
.stat span{font-size:12px;color:var(--muted)}
.stat.arrived b{color:var(--ok)}
.bar{height:6px;border-radius:3px;background:var(--line);overflow:hidden;margin-bottom:20px}
.bar i{display:block;height:100%;width:0;background:var(--ok);transition:width .3s}
.ev-grid{display:grid;grid-template-columns:320px minmax(0,1fr);gap:24px;align-items:start}
@media (max-width:860px){.ev-grid{grid-template-columns:minmax(0,1fr)}}
.side{display:flex;flex-direction:column;gap:16px}
@media (min-width:861px){.side{position:sticky;top:16px}}
.share{display:flex;flex-direction:column;gap:10px}
.share .url{font:500 12.5px/1.4 var(--f-mono);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:9px 11px;overflow-wrap:anywhere;user-select:all}
.toggle{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:14px}
.switch-ui{position:relative;width:42px;height:24px;flex:none}
.switch-ui input{opacity:0;width:100%;height:100%;margin:0;position:absolute;cursor:pointer}
.switch-ui span{position:absolute;inset:0;border-radius:12px;background:var(--line);transition:background .15s;pointer-events:none}
.switch-ui span::after{content:"";position:absolute;width:18px;height:18px;border-radius:50%;background:var(--surface);top:3px;left:3px;transition:transform .15s;box-shadow:0 1px 2px rgb(0 0 0 / .2)}
.switch-ui input:checked + span{background:var(--ok)}
.switch-ui input:checked + span::after{transform:translateX(18px)}
.switch-ui input:focus-visible + span{outline:2px solid var(--accent);outline-offset:2px}

.tools{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:12px}
.tools input[type=search]{flex:1 1 200px;min-width:0;border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:9px 12px}
.tabs{display:flex;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:3px}
.tabs button{border:0;background:transparent;padding:6px 10px;border-radius:6px;cursor:pointer;font-size:13px;color:var(--muted)}
.tabs button[aria-pressed="true"]{background:var(--accent-soft);color:var(--ink);font-weight:600}
.list{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:14px;background:var(--surface);overflow:hidden}
.guest{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 14px;padding:14px 16px;border-top:1px solid var(--line);align-items:center}
.guest:first-child{border-top:0}
.guest.in{background:linear-gradient(90deg,var(--ok-soft),transparent 60%)}
.g-name{font-weight:600;font-size:16px;overflow-wrap:anywhere;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.g-meta{display:flex;flex-wrap:wrap;gap:4px 12px;color:var(--muted);font-size:13px}
.g-meta .mono{font-size:12.5px}
.g-note{grid-column:1/-1;font-size:13px;color:var(--muted);font-style:italic;overflow-wrap:anywhere}
.acts{display:flex;gap:6px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.checkin{border:1.5px solid var(--ok);color:var(--ok);background:transparent;border-radius:8px;padding:7px 12px;font-weight:600;cursor:pointer;white-space:nowrap}
.guest.in .checkin{background:var(--ok);color:var(--surface)}
.del{border:0;background:transparent;color:var(--muted);cursor:pointer;padding:7px 8px;border-radius:6px;font-size:13px}
.del:hover{color:var(--danger);background:var(--danger-soft)}
.confirm{display:flex;gap:6px;align-items:center;font-size:13px}
@media (max-width:480px){.guest{grid-template-columns:minmax(0,1fr)}.acts{justify-content:flex-start}}

/* публичная страница */
.public{max-width:560px;margin:0 auto;padding-top:32px;display:flex;flex-direction:column;gap:18px}
.invite{background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.invite .top{background:var(--accent);color:var(--accent-ink);padding:22px 22px 18px}
.invite .top .eyebrow{color:inherit;opacity:.8}
.invite .top h1{color:inherit}
.invite .perf{height:0;border-top:2px dashed var(--line);margin:0 14px}
.invite .details{padding:16px 22px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 16px;font-size:14px}
.invite .details b{font:500 12px var(--f-mono);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;padding-top:2px}
.invite .desc{padding:0 22px 20px;color:var(--muted);white-space:pre-line;overflow-wrap:anywhere}
.done{text-align:center;padding:28px 20px}
.done .big{font:700 22px/1.3 var(--f-display);margin-bottom:6px}

.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(20px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:10px;font-size:14px;z-index:20;max-width:calc(100% - 32px)}
.loading{padding:60px 0;text-align:center;color:var(--muted)}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* команда */
.pill.staff{background:var(--warn-soft);color:var(--warn)}
.staff-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.staff-list li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;border-top:1px solid var(--line);font-size:13.5px}
.staff-list li:first-child{border-top:0}
.staff-add{display:flex;gap:8px}
.staff-add input{flex:1;min-width:0;border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:8px 10px}

/* панель печати */
.print-panel{margin-bottom:12px}
.pp-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,300px);gap:20px;align-items:start}
@media (max-width:640px){.pp-grid{grid-template-columns:minmax(0,1fr)}}
.field select{border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:9px 10px;width:100%}
.pp-preview{background:var(--bg);border-radius:10px;padding:14px;display:flex;flex-direction:column;align-items:center}
.pp-preview .eyebrow{align-self:flex-start}

/* бейдж — общий вид (на экране в превью и при печати) */
.badge{width:90mm;height:55mm;background:#fff;color:#141A22;display:flex;flex-direction:column;overflow:hidden;
  font-family:var(--f-body);-webkit-print-color-adjust:exact;print-color-adjust:exact;break-inside:avoid;page-break-inside:avoid}
.badge .b-top{background:#4F5BD5;color:#fff;padding:2.6mm 4mm;display:flex;justify-content:space-between;gap:3mm;font-size:8pt;line-height:1.2}
.badge .b-ev{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.badge .b-date{white-space:nowrap;opacity:.85}
.badge .b-main{flex:1;display:flex;flex-direction:column;justify-content:center;padding:0 4mm;gap:1.5mm;min-height:0}
.badge .b-name{font:700 19pt/1.08 var(--f-display);overflow-wrap:anywhere}
.badge .b-name span{display:inline}
.badge .b-name.long{font-size:15pt}
.badge .b-name.xlong{font-size:12pt}
.badge .b-org{font-size:10pt;color:#4A5561;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.badge .b-foot{border-top:0.4mm dashed #C9CDD3;padding:1.8mm 4mm;font:600 7pt/1 var(--f-mono);letter-spacing:.14em;color:#4F5BD5}
.badge-preview .badge{box-shadow:0 1px 3px rgb(0 0 0 / .18);border-radius:2mm;max-width:100%}
.badge-preview.fmt-a6 .badge,#print-area.fmt-a6 .badge{width:148mm;height:105mm}
.fmt-a6 .badge .b-top{font-size:12pt;padding:5mm 7mm}
.fmt-a6 .badge .b-main{padding:0 7mm;gap:3mm}
.fmt-a6 .badge .b-name{font-size:36pt}.fmt-a6 .badge .b-name.long{font-size:28pt}.fmt-a6 .badge .b-name.xlong{font-size:22pt}
.fmt-a6 .badge .b-org{font-size:16pt}
.fmt-a6 .badge .b-foot{font-size:11pt;padding:4mm 7mm}
.fmt-a6 .badge .b-name span{display:block}
.badge-preview{zoom:.82}
.badge-preview.fmt-a6{zoom:.5}
#print-area{display:none}

@media print{
  html,body{background:#fff!important;padding:0!important;margin:0!important;min-height:0}
  body > *:not(#print-area){display:none!important}
  #print-area{display:block}
  #print-area.fmt-label .badge,#print-area.fmt-a6 .badge{break-after:page;page-break-after:always}
  #print-area.fmt-label .badge:last-child,#print-area.fmt-a6 .badge:last-child{break-after:auto;page-break-after:auto}
}

/* ссылки помощников */
.desks{display:flex;flex-direction:column;gap:10px}
.desk{border:1px solid var(--line);border-radius:10px;padding:10px 12px;gap:8px!important}
.desk-head{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:13.5px}
.desk-head b{font-weight:600;overflow-wrap:anywhere;min-width:0}
.desk-head .muted{font-size:12px}
.desk .url{font-size:11.5px;padding:7px 9px}
.staff-add{flex-wrap:wrap}
.staff-add input{flex:1 1 180px}
@media (max-width:860px){.desk-mode .side{order:2}}

/* ===================== Кнопки: заметные, с откликом ===================== */
:root{--btn-shadow:0 1px 0 rgb(0 0 0 / .06),0 1px 3px rgb(0 0 0 / .08);--spin:currentColor}
.btn{position:relative;border:1.5px solid transparent;box-shadow:var(--btn-shadow);
  transition:transform .08s ease,filter .15s,background-color .15s,border-color .15s,box-shadow .15s;user-select:none;-webkit-tap-highlight-color:transparent}
.btn:hover:not(:disabled){box-shadow:0 2px 6px rgb(0 0 0 / .12);transform:translateY(-1px)}
.btn:active:not(:disabled){transform:translateY(0) scale(.97);box-shadow:none}
.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.btn.ghost{background:var(--surface);border-color:var(--muted);color:var(--ink)}
.btn.ghost:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}
.btn.soft{background:var(--accent-soft);color:var(--accent);border-color:color-mix(in srgb,var(--accent) 35%,transparent)}
.btn.soft:hover:not(:disabled){background:var(--accent);color:var(--accent-ink)}
.btn.danger{background:var(--danger);color:var(--surface);border-color:var(--danger)}
.btn.danger-soft{background:var(--danger-soft);color:var(--danger);border-color:color-mix(in srgb,var(--danger) 35%,transparent)}
.btn.danger-soft:hover:not(:disabled){background:var(--danger);color:var(--surface)}
.btn.small{padding:7px 12px;font-size:13px}
.btn.is-done{background:var(--ok)!important;border-color:var(--ok)!important;color:var(--surface)!important}

.checkin{border-width:2px;padding:8px 14px;box-shadow:var(--btn-shadow);transition:transform .08s,background-color .15s,color .15s}
.checkin:hover:not(:disabled){background:var(--ok);color:var(--surface)}
.checkin:active:not(:disabled){transform:scale(.96)}
.guest.in .checkin:hover:not(:disabled){filter:brightness(1.1)}

.tabs button{transition:background-color .15s,color .15s}
.tabs button:hover{color:var(--ink);background:var(--bg)}
.tabs button[aria-pressed="true"]{box-shadow:inset 0 0 0 1.5px var(--accent);color:var(--accent)}
a.back{font-weight:500}
a.back:hover{color:var(--accent)}

/* выполняется: спиннер поверх текста */
.is-loading{color:transparent!important;pointer-events:none}
.is-loading::after{content:"";position:absolute;inset:0;margin:auto;width:16px;height:16px;border-radius:50%;
  border:2px solid var(--muted);border-top-color:transparent;animation:spin .7s linear infinite}
.btn.primary.is-loading::after,.btn.danger.is-loading::after{border-color:var(--accent-ink);border-top-color:transparent}
.checkin.is-loading::after{border-color:var(--ok);border-top-color:transparent}
.checkin{position:relative}
.btn:disabled:not(.is-loading){opacity:.5;cursor:not-allowed;box-shadow:none}

/* ошибки в полях */
.field input.invalid,.field textarea.invalid,.staff-add input.invalid{border-color:var(--danger)!important;background:var(--danger-soft)!important}
.shake{animation:shake .4s}
.msg.pop{animation:pop .35s ease}
.msg.err{font-weight:500}
.msg.ok{font-weight:500}

/* подсветка строк и карточек */
.flash-ok{animation:flashOk 1.4s ease}
.flash-new{animation:flashNew 1.4s ease}
.stat.bump{animation:bump .5s ease}
.stat.bump b{color:var(--accent)}
.stat.arrived.bump b{color:var(--ok)}

/* уведомления */
.toast{display:flex;align-items:center;gap:10px;padding:12px 16px;font-weight:500;box-shadow:0 8px 24px rgb(0 0 0 / .25);
  opacity:0;transform:translate(-50%,12px);transition:opacity .2s,transform .2s}
.toast.show{opacity:1;transform:translate(-50%,0)}
.toast.ok{background:var(--ok);color:var(--surface)}
.toast.err{background:var(--danger);color:var(--surface)}
.toast.info{background:var(--ink);color:var(--bg)}
.toast .t-ico{flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:13px;background:rgb(255 255 255 / .25)}

@keyframes spin{to{transform:rotate(360deg)}}
@keyframes shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-6px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(4px)}}
@keyframes pop{0%{transform:scale(.96);opacity:.4}100%{transform:scale(1);opacity:1}}
@keyframes flashOk{0%{background:color-mix(in srgb,var(--ok) 35%,var(--surface))}100%{background:transparent}}
@keyframes flashNew{0%{background:color-mix(in srgb,var(--accent) 25%,var(--surface))}100%{background:transparent}}
@keyframes bump{0%{transform:scale(1)}40%{transform:scale(1.08)}100%{transform:scale(1)}}
@media (prefers-reduced-motion:reduce){
  .shake,.msg.pop,.stat.bump,.btn:hover,.btn:active{animation:none!important;transform:none!important}
  .flash-ok,.flash-new{animation-duration:.01s!important}
  .is-loading::after{animation-duration:1.6s}
}

/* ===================== Упрощённый интерфейс: вкладки и понятные блоки ===================== */
.btn.big{padding:13px 22px;font-size:16px}
.btn.icon{min-width:38px;padding:7px 10px;font-size:15px}
.banner.next{background:var(--ok-soft);color:var(--ink);border:1.5px solid var(--ok);font-size:15px;margin-bottom:16px}
.hint{font-size:13px;margin:0}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* вкладки мероприятия */
.ev-tabs{display:flex;gap:6px;border-bottom:2px solid var(--line);margin:4px 0 18px;overflow-x:auto;scrollbar-width:none}
.ev-tabs::-webkit-scrollbar{display:none}
.ev-tab{border:0;background:transparent;padding:12px 18px;font:600 15px/1 var(--f-body);color:var(--muted);cursor:pointer;
  border-bottom:3px solid transparent;margin-bottom:-2px;border-radius:8px 8px 0 0;display:inline-flex;gap:8px;align-items:center;white-space:nowrap;transition:color .15s,background-color .15s,border-color .15s}
.ev-tab:hover{color:var(--ink);background:var(--surface)}
.ev-tab[aria-selected="true"]{color:var(--accent);border-bottom-color:var(--accent);background:var(--surface)}
.tab-count{font:500 12px/1 var(--f-mono);background:var(--accent-soft);color:var(--accent);padding:3px 7px;border-radius:999px}
.panel{display:flex;flex-direction:column;gap:12px}

/* поиск */
.tools{margin-bottom:0}
.search{flex:1 1 260px;min-width:0;display:flex;align-items:center;gap:10px;background:var(--surface);border:2px solid var(--line);border-radius:12px;padding:0 14px;transition:border-color .15s,box-shadow .15s}
.search:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
.search input{flex:1;min-width:0;border:0;background:transparent;padding:13px 0;font-size:16px;outline:none}
.tools > .btn{padding-block:13px}
.filters{align-self:flex-start;flex-wrap:wrap}
.filters button{padding:8px 14px;font-size:14px}
.add-form{border:2px solid var(--accent)}
.form-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.list-foot{display:flex;justify-content:flex-end}
.guest .acts .checkin{min-width:150px}
@media (max-width:480px){.guest .acts .checkin{flex:1;min-width:0}}

/* вкладка «Пригласить» */
.invite-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:16px;align-items:start}
.invite-grid h2{margin-bottom:2px}
.invite-grid .eyebrow{margin:0}
.toggle{border-top:1px solid var(--line);padding-top:12px}
.toggle small{font-size:12.5px}

/* вкладка «Бейджи» */
.badge-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,340px);gap:20px;align-items:start}
@media (max-width:860px){.badge-layout{grid-template-columns:minmax(0,1fr)}.badge-layout .pp-preview{order:-1}}
.fmt-choices{display:flex;flex-direction:column;gap:8px}
.fmt-choice{display:flex;gap:12px;align-items:center;border:2px solid var(--line);border-radius:12px;padding:12px 14px;cursor:pointer;background:var(--surface);transition:border-color .15s,background-color .15s}
.fmt-choice:hover{border-color:var(--muted)}
.fmt-choice:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
.fmt-choice input{width:18px;height:18px;accent-color:var(--accent);flex:none;margin:0}
.fmt-choice b{display:block;font-size:14.5px}
.fmt-choice small{display:block;color:var(--muted);font-size:12.5px}
.fmt-choice.compact{padding:9px 14px}
.fmt-ico{flex:none;width:34px;height:34px;border-radius:6px;border:2px solid var(--muted);position:relative;background:var(--bg)}
.fmt-ico-a4{width:28px;height:38px;background:repeating-linear-gradient(180deg,var(--accent-soft) 0 6px,var(--bg) 6px 8px)}
.fmt-ico-label{width:38px;height:24px;border-radius:4px;background:var(--accent-soft)}
.fmt-ico-a6{width:40px;height:28px;background:var(--accent-soft)}
.auto-line{border:2px dashed var(--line);border-radius:12px;padding:12px 14px}
.pp-preview{position:sticky;top:16px}

/* первый вход: шаги */
.onboarding{display:flex;flex-direction:column;gap:16px;align-items:flex-start;padding:28px}
.steps{list-style:none;counter-reset:step;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:14px;width:100%}
.steps li{counter-increment:step;display:flex;flex-direction:column;gap:4px;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}
.steps li::before{content:counter(step);width:30px;height:30px;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;font:700 14px var(--f-display);margin-bottom:6px}
.steps li span{color:var(--muted);font-size:14px}
.tools .search input[type=search]{border:0;background:transparent;border-radius:0;padding:13px 0;flex:1 1 auto}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,150px));gap:10px}
.stat{min-width:0}
@media (max-width:520px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ===================== Широкие экраны: шапка во всю ширину, рабочая область шире ===================== */
body{padding-left:0;padding-right:0}
.wrap,.public{padding-left:max(clamp(16px,3.2vw,48px),env(safe-area-inset-left,0px));padding-right:max(clamp(16px,3.2vw,48px),env(safe-area-inset-right,0px))}
.wrap{max-width:1560px;box-sizing:border-box}
.public{box-sizing:content-box}
.appbar{background:var(--surface);border-bottom:1px solid var(--line);margin-bottom:28px;position:sticky;top:env(safe-area-inset-top,0px);z-index:8}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--surface)}
.appbar .topbar{border-bottom:0;margin-bottom:0;padding-block:14px}
.appbar .brand{font-size:16px}

/* кабинет: события слева, сводка справа */
.cab{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:28px;align-items:start}
@media (max-width:1100px){.cab{grid-template-columns:minmax(0,1fr)}.cab-side{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:16px}}
.cab-main{display:flex;flex-direction:column;gap:8px;min-width:0}
.cab-main .section-label:first-child{margin-top:0}
.cab-side{display:flex;flex-direction:column;gap:16px;position:sticky;top:96px}
@media (max-width:1100px){.cab-side{position:static}}
.events{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.ev{min-height:118px}
.ev-new{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:2px dashed var(--line);background:transparent;color:var(--muted);grid-template-columns:none}
.ev-new span{font:700 28px/1 var(--f-display);color:var(--accent)}
.ev-new:hover{border-color:var(--accent);color:var(--accent)}
.next-card{display:flex;flex-direction:column;gap:10px;text-decoration:none;color:var(--ink);border:2px solid var(--accent);transition:transform .15s,box-shadow .15s}
.next-card:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgb(0 0 0 / .08)}
.next-card h2{font-size:20px}
.meter{height:8px;border-radius:4px;background:var(--line);overflow:hidden}
.meter i{display:block;height:100%;background:var(--accent)}
.summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:16px}
.summary div{display:flex;flex-direction:column;gap:2px;text-align:center}
.summary b{font-size:26px;line-height:1.1}
.summary span{font-size:12px;color:var(--muted)}
.mini-steps{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px;font-size:14px;color:var(--muted)}
.mini-steps b{color:var(--ink)}

/* страница мероприятия на широком экране: заголовок и показатели в одну строку */
@media (min-width:1200px){
  .ev-head{margin-bottom:16px}
  .stats{grid-template-columns:repeat(4,minmax(0,1fr));max-width:none}
  .badge-layout{grid-template-columns:minmax(0,1fr) 420px}
}
.auth{min-height:calc(100vh - 160px)}
.wrap{max-width:1840px}
/* список гостей: на широком экране в две колонки, чтобы кнопки были рядом с именем */
.guest.in{background:linear-gradient(90deg,var(--ok-soft),var(--surface) 60%)}
@media (min-width:1400px){
  .list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line)}
  .list > .guest{border-top:0;background:var(--surface)}
  .list > .guest.in{background:linear-gradient(90deg,var(--ok-soft),var(--surface) 60%)}
  .list > :not(.guest){grid-column:1/-1;background:var(--surface)}
}
@media (min-width:2200px){.list{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1400px){
  .list{gap:0;background:var(--surface)}
  .list > .guest{border-bottom:1px solid var(--line)}
  .list > .guest:nth-child(odd){border-right:1px solid var(--line)}
}
@media (min-width:2200px){
  .list > .guest:nth-child(odd){border-right:0}
  .list > .guest:not(:nth-child(3n)){border-right:1px solid var(--line)}
}
@media (max-width:520px){.userbox .who{display:none}.appbar .topbar{flex-wrap:nowrap}}

/* ===================== Языки, бренд, QR, сканер, импорт, итоги ===================== */
:root{--brand:#4F5BD5;--brand-ink:#fff}
.lang{display:inline-flex;border:1.5px solid var(--line);border-radius:999px;padding:2px;background:var(--surface)}
.lang button{border:0;background:transparent;padding:5px 10px;border-radius:999px;font:600 12.5px/1 var(--f-body);color:var(--muted);cursor:pointer}
.lang button[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink)}
.lang button:hover:not([aria-pressed="true"]){color:var(--ink)}
.public-top{padding-top:14px}
.public-top .public{padding-top:0;align-items:flex-end}

/* приглашение и билет в фирменном цвете */
.invite .top{background:var(--brand);color:var(--brand-ink)}
.invite .top .ev-logo{max-height:56px;max-width:200px;object-fit:contain;display:block;margin-bottom:12px;background:#fff;border-radius:8px;padding:6px}
.invite.mini .top{padding:16px}
.invite.mini .top h1{font-size:20px}
.head-logo{max-height:64px;max-width:160px;object-fit:contain;border-radius:10px;background:#fff;padding:6px;border:1px solid var(--line)}
.ev-head{align-items:center}
.state-box{border-radius:12px;padding:14px 16px;font-weight:600;text-align:center;font-size:16px}
.state-box.ok{background:var(--ok-soft);color:var(--ok)}
.state-box.warn{background:var(--warn-soft);color:var(--warn)}
.state-box.off{background:var(--line);color:var(--muted)}
.ticket-qr{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}
.qr-box{background:#fff;border-radius:12px;padding:8px;border:1px solid var(--line);width:150px;max-width:100%}
.qr-box.big{width:240px}
.qr-box svg{display:block;width:100%;height:auto}
.ticket-code{font-size:13px;letter-spacing:.08em;color:var(--muted);margin:0;user-select:all}
.qr-share{display:flex;gap:14px;align-items:center;border-top:1px solid var(--line);padding-top:12px}
.qr-share .qr-box{width:110px;flex:none}
.cancel-zone{display:flex;flex-direction:column;gap:10px;align-items:center;text-align:center;border-top:1px dashed var(--line);padding-top:14px}
.btn.tg{background:#229ED9;color:#fff;border-color:#229ED9}
.banner.warn{background:var(--warn-soft);color:var(--warn)}
.banner.offline{background:var(--warn-soft);color:var(--warn);border:1.5px solid var(--warn);font-weight:500;margin-bottom:12px}

/* форма мероприятия с превью */
.form-layout{display:grid;grid-template-columns:minmax(0,760px) minmax(0,380px);gap:28px;align-items:start}
@media (max-width:1100px){.form-layout{grid-template-columns:minmax(0,1fr)}}
.form-preview{position:sticky;top:96px;display:flex;flex-direction:column;gap:8px}
@media (max-width:1100px){.form-preview{position:static}}
.brand-box{border:1.5px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:12px;margin:0}
.brand-box legend{font-weight:600;padding:0 6px}
.lbl{font-size:13px;font-weight:500}
.swatches{display:flex;flex-wrap:wrap;gap:8px}
.swatch{width:34px;height:34px;border-radius:50%;border:3px solid var(--surface);box-shadow:0 0 0 1.5px var(--line);cursor:pointer;padding:0;position:relative}
.swatch[aria-pressed="true"]{box-shadow:0 0 0 3px var(--ink)}
.swatch.custom{display:grid;place-items:center;background:conic-gradient(red,yellow,lime,cyan,blue,magenta,red);overflow:hidden}
.swatch.custom input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.swatch.custom span{color:#fff;font-weight:700;text-shadow:0 1px 2px rgb(0 0 0 / .5);pointer-events:none}
.logo-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.logo-box{width:160px;height:64px;border:1.5px dashed var(--line);border-radius:10px;display:grid;place-items:center;background:#fff;overflow:hidden;font-size:12px}
.logo-box img{max-width:100%;max-height:100%;object-fit:contain}

/* бейдж: логотип и цветная полоса категории */
.badge .b-logo{height:6mm;max-width:16mm;object-fit:contain;background:#fff;border-radius:1mm;padding:0.4mm;flex:none}
.badge .b-top{align-items:center}
.fmt-a6 .badge .b-logo{height:10mm;max-width:30mm}
.badge .b-foot{border-top:0}

/* список: категория цветом слева */
.guest{border-left:4px solid var(--c, transparent)}
.guest.cx{opacity:.6}
.pill.cat{background:color-mix(in srgb,var(--c) 16%,var(--surface));color:var(--c);font-weight:600}
.pill.warn{background:var(--warn-soft);color:var(--warn)}
.filter-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.filters .cnt{font:500 11px/1 var(--f-mono);background:var(--line);border-radius:999px;padding:2px 6px;margin-left:4px}
.cat-filter{border:1.5px solid var(--line);background:var(--surface);border-radius:8px;padding:8px 10px;font-size:14px}
.scan-btn{background:var(--ink);color:var(--bg);border-color:var(--ink);padding-block:13px}
.scan-btn:hover:not(:disabled){filter:brightness(1.15)}

/* окно сканера и импорта */
.scan-overlay{position:fixed;inset:0;z-index:30;background:rgb(10 12 16 / .72);display:grid;place-items:center;
  padding:max(16px,env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) max(16px,env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px))}
.scan-box{background:var(--surface);border-radius:16px;padding:16px;width:min(480px,100%);display:flex;flex-direction:column;gap:12px;max-height:100%;overflow:auto}
.scan-box.wide{width:min(980px,100%)}
.scan-head{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:16px}
.scan-view{position:relative;background:#000;border-radius:12px;overflow:hidden;aspect-ratio:1/1;max-width:100%}
.scan-view video{width:100%;height:100%;object-fit:cover;display:block}
.scan-frame{position:absolute;inset:18%;border:3px solid rgb(255 255 255 / .85);border-radius:16px;box-shadow:0 0 0 999px rgb(0 0 0 / .25)}
.scan-result{position:absolute;inset:auto 10px 10px;border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:2px;font-size:16px;color:#fff;animation:pop .25s ease}
.scan-result.ok{background:#1F7A4D}.scan-result.warn{background:#9A6700}.scan-result.err{background:#B3261E}
.scan-result span{font-size:14px;opacity:.9}
.scan-status{margin:0;text-align:center;font-size:14px}
.scan-manual{display:flex;gap:8px}
.scan-manual input{flex:1;min-width:0;border:1.5px solid var(--line);background:var(--bg);border-radius:8px;padding:8px 10px}
.imp-table{overflow-x:auto;border:1px solid var(--line);border-radius:10px}
.imp-table table{border-collapse:collapse;font-size:13px;min-width:100%}
.imp-table th,.imp-table td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;max-width:220px;overflow:hidden;text-overflow:ellipsis}
.imp-table th select{font-size:12.5px;padding:4px;border-radius:6px;border:1px solid var(--line);background:var(--bg)}
.imp-table tr.hdr td{color:var(--muted);font-style:italic}

/* итоги */
.report-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:14px;margin-bottom:16px}
.kpi{display:flex;flex-direction:column;gap:4px}
.kpi span{font-size:13px;color:var(--muted)}
.kpi b{font-size:32px;line-height:1.1}
.kpi small{font-size:12.5px;color:var(--muted)}
.meter.ok i{background:var(--ok)}
.report-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:16px}
.vbars{display:flex;align-items:flex-end;gap:4px;height:160px;overflow-x:auto;padding-bottom:22px;position:relative}
.vb{flex:1 0 22px;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;position:relative}
.vb i{display:block;width:70%;background:var(--ok);border-radius:4px 4px 0 0;min-height:2px}
.vb span{position:absolute;bottom:-20px;font:500 10px/1 var(--f-mono);color:var(--muted);white-space:nowrap}
.vb:nth-child(even) span{opacity:.0}
.vbars:has(.vb:nth-child(-n+8):last-child) .vb span{opacity:1}
.hbar{display:grid;grid-template-columns:minmax(0,160px) minmax(0,1fr) 40px;gap:10px;align-items:center;font-size:14px}
.hbar .hl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hbar .ht{height:10px;background:var(--line);border-radius:5px;overflow:hidden}
.hbar .ht i{display:block;height:100%;background:var(--accent)}
.hbar b{text-align:right}
.rtable{border-collapse:collapse;width:100%;font-size:14px}
.rtable th,.rtable td{padding:8px 6px;border-bottom:1px solid var(--line);text-align:left}
.rtable th{font-size:12px;color:var(--muted);font-weight:500;text-transform:uppercase;letter-spacing:.05em}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px;vertical-align:middle}
@media print{.scan-overlay,.toast{display:none!important}}
.vb{flex:0 1 44px;max-width:44px}
.vbars{justify-content:flex-start}
@media (max-width:520px){.appbar .topbar .pill.staff{display:none}.appbar .brand{white-space:nowrap}}

/* ===================== Вопросы формы, рассылка, киоск, PDF-билет ===================== */
.fq{display:flex;flex-direction:column;gap:8px}
.fq-row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,.9fr) minmax(0,1.2fr) auto auto;gap:8px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:8px;background:var(--bg)}
.fq-row input,.fq-row select{border:1.5px solid var(--line);background:var(--surface);border-radius:8px;padding:8px 10px;min-width:0;width:100%}
.fq-row input[hidden]{display:none}
.fq-req{font-size:13px;white-space:nowrap}
@media (max-width:720px){.fq-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.fq-row .fq-label{grid-column:1/-1}}
.pill.ans{background:var(--bg);border:1px solid var(--line);color:var(--ink);max-width:260px;overflow:hidden;text-overflow:ellipsis}
.copy-line{border:2px dashed var(--accent);border-radius:12px;padding:12px 14px}
.bc-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:20px;align-items:start}
@media (max-width:900px){.bc-layout{grid-template-columns:minmax(0,1fr)}}
.bc-item{border-top:1px solid var(--line);padding-top:10px}
.bc-item:first-child{border-top:0;padding-top:0}
.bc-item p{margin:6px 0 0;white-space:pre-line;overflow-wrap:anywhere;font-size:14px}
#bcMsg{min-height:120px}

/* киоск */
.kiosk{min-height:100vh;display:flex;flex-direction:column;background:var(--bg);
  padding-left:max(clamp(16px,3vw,40px),env(safe-area-inset-left,0px));padding-right:max(clamp(16px,3vw,40px),env(safe-area-inset-right,0px))}
.k-top{display:flex;align-items:center;gap:16px;padding-block:18px;border-bottom:3px solid var(--brand)}
.k-top img{max-height:56px;max-width:180px;object-fit:contain;background:#fff;border-radius:8px;padding:6px}
.k-title{display:flex;flex-direction:column;flex:1;min-width:0}
.k-title b{font:700 clamp(20px,3vw,32px)/1.15 var(--f-display);overflow-wrap:anywhere}
.k-title span{color:var(--muted)}
.k-main{flex:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(20px,4vw,56px);align-items:center;padding-block:28px}
@media (max-width:860px){.k-main{grid-template-columns:minmax(0,1fr)}}
.k-cam{position:relative;background:#000;border-radius:24px;overflow:hidden;aspect-ratio:1/1;width:min(100%,560px);justify-self:center;border:4px solid var(--brand)}
.k-cam video{width:100%;height:100%;object-fit:cover;display:block}
.k-side h1{font-size:clamp(28px,4.5vw,52px);margin-bottom:12px}
.k-lead{font-size:clamp(17px,2vw,22px);color:var(--muted);margin:0 0 20px}
.k-status{font-size:16px;min-height:1.5em}
.k-status.err{color:var(--danger)}
.k-phone{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--line);padding-top:20px;margin-top:8px}
.k-phone label{font-size:16px;font-weight:500}
.k-row{display:flex;gap:10px;flex-wrap:wrap}
.k-row input{flex:1 1 220px;min-width:0;border:2px solid var(--line);border-radius:12px;padding:16px;font-size:20px;background:var(--surface)}
.k-row input:focus{border-color:var(--accent);outline:none}
.k-result{position:fixed;inset:0;z-index:25;display:grid;place-items:center;text-align:center;color:#fff;padding:24px;animation:pop .25s ease}
.k-result.ok{background:#1F7A4D}.k-result.warn{background:#9A6700}.k-result.err{background:#B3261E}
.k-result > div{display:flex;flex-direction:column;gap:12px;align-items:center;max-width:900px}
.k-ico{width:120px;height:120px;border-radius:50%;background:rgb(255 255 255 / .2);display:grid;place-items:center;font:700 64px/1 var(--f-display)}
.k-result b{font:700 clamp(30px,5vw,60px)/1.15 var(--f-display);overflow-wrap:anywhere}
.k-result span{font-size:clamp(18px,2.4vw,26px);opacity:.92}
.k-foot{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-block:12px 18px;color:var(--muted);font-size:13px;border-top:1px solid var(--line)}

/* билет для печати / PDF */
.print-ticket{width:100%;max-width:120mm;margin:0 auto;border:0.4mm solid #ccc;border-radius:4mm;overflow:hidden;font-family:var(--f-body);color:#141A22;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.print-ticket .top{background:var(--brand);color:var(--brand-ink);padding:6mm}
.print-ticket .top h1{font-size:18pt;margin:0;color:inherit}
.print-ticket .top .eyebrow{color:inherit;opacity:.85;margin:0 0 1mm;font-size:8pt}
.print-ticket .ev-logo{max-height:14mm;max-width:50mm;background:#fff;border-radius:2mm;padding:1mm;margin-bottom:3mm;display:block}
.pt-body{padding:6mm;display:flex;flex-direction:column;gap:2mm;align-items:center;text-align:center}
.pt-name{font:700 20pt/1.1 var(--f-display)}
.pt-org{font-size:11pt;color:#4A5561}
.pt-row{font-size:10pt}.pt-row b{color:#5e6873;font-weight:500;margin-right:2mm}
.pt-qr{width:60mm;margin-top:3mm}.pt-qr svg{width:100%;height:auto;display:block}
.pt-code{font:500 9pt var(--f-mono);letter-spacing:.1em;color:#5e6873}
.pt-hint{font-size:9pt;color:#5e6873;margin:0}
#print-area.fmt-ticket{display:none}
@media print{#print-area.fmt-ticket{display:block}}

/* тариф и оплата */
.plan-now{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:12px 14px;border-radius:10px;background:var(--bg);border:1px solid var(--line)}
.plan-now b{font:700 16px/1 var(--f-display)}
.plan-now.pro{background:var(--ok-soft);border-color:transparent}
.plan-now.pro b{color:var(--ok)}
.plans{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.plan{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 14px;border-top:1px solid var(--line)}
.plan:first-child{border-top:0}
.plan>div:first-child{display:flex;flex-direction:column}
.plan>div:first-child .mono{color:var(--muted);font-size:13.5px}
.btn.payme{background:#33CCCC;color:#06302f;border-color:#33CCCC}
.btn.click{background:#0073FF;color:#fff;border-color:#0073FF}

/* код из SMS */
.sms-row{display:flex;gap:8px}
.sms-row input{flex:1;min-width:0;font-family:var(--f-mono);letter-spacing:.3em;text-align:center}
.sms-row .btn{white-space:nowrap}

/* журнал действий */
.audit-card{margin-top:16px}
.audit-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.audit{list-style:none;margin:0;padding:0;max-height:420px;overflow:auto;border:1px solid var(--line);border-radius:10px}
.audit li{display:grid;grid-template-columns:auto 1fr;gap:12px;padding:8px 12px;border-top:1px solid var(--line);font-size:13.5px}
.audit li:first-child{border-top:0}
.audit time{color:var(--muted);font-size:12.5px;white-space:nowrap}
.audit i{font-style:normal;color:var(--muted)}
@media (max-width:560px){.audit li{grid-template-columns:1fr;gap:2px}}

/* длинный список: подгрузка порциями */
.more-row{display:flex;justify-content:center;padding:14px}

/* ---------- главная страница ---------- */
.landing{display:flex;flex-direction:column;gap:clamp(48px,7vw,88px);padding-bottom:24px}
.hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(24px,5vw,64px);align-items:center;padding-top:clamp(8px,3vw,32px)}
@media (max-width:860px){.hero{grid-template-columns:minmax(0,1fr)}}
.hero h1{font-size:clamp(30px,5.2vw,56px);line-height:1.06;letter-spacing:-.01em;margin-bottom:18px}
.hero .lead{font-size:clamp(16px,1.6vw,19px);color:var(--muted);max-width:52ch;margin:0 0 26px}
.hero .cta{display:flex;gap:12px;flex-wrap:wrap}
.small-note{font-size:13px;margin:14px 0 0}
.hero-demo{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:0 24px 60px -30px rgb(40 20 70 / .35);display:flex;flex-direction:column;gap:12px;transform:rotate(1.2deg)}
.hd-head{display:flex;flex-direction:column}
.hd-head b{font:700 20px/1.2 var(--f-display)}
.hd-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.hd-stats div{background:var(--bg);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column}
.hd-stats .mono{font-size:22px;font-weight:600}
.hd-stats small{color:var(--muted);font-size:12px}
.hd-bar{height:6px;border-radius:99px;background:var(--line);overflow:hidden}
.hd-bar i{display:block;height:100%;background:var(--ok);border-radius:99px}
.hd-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px}
.hd-row span{display:flex;flex-direction:column;min-width:0}
.hd-row small{color:var(--muted);font-size:12px}
.hd-row em{font-style:normal;font-size:13px;font-weight:600;padding:6px 12px;border-radius:8px;border:1.5px solid var(--accent);color:var(--accent);white-space:nowrap}
.hd-row em.in{background:var(--ok);border-color:var(--ok);color:#fff}
.kinds{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:calc(-1 * clamp(20px,4vw,48px))}
.kinds span{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:7px 16px;font-size:14px;color:var(--muted)}
.block-title{font:700 clamp(22px,3vw,32px)/1.15 var(--f-display);margin:0 0 22px}
.feats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
@media (max-width:1000px){.feats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:540px){.feats{grid-template-columns:minmax(0,1fr)}}
.feat{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:8px}
.feat .fi{font-size:24px;width:44px;height:44px;border-radius:12px;background:var(--accent-soft);display:grid;place-items:center}
.feat h3{font:600 16px/1.3 var(--f-body);margin:4px 0 0}
.feat p{margin:0;color:var(--muted);font-size:14px}
.steps3{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;counter-reset:s}
@media (max-width:760px){.steps3{grid-template-columns:minmax(0,1fr)}}
.steps3 li{counter-increment:s;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:20px 20px 20px 72px;position:relative;display:flex;flex-direction:column;gap:4px}
.steps3 li::before{content:counter(s);position:absolute;left:20px;top:18px;width:38px;height:38px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font:700 17px/38px var(--f-display);text-align:center}
.steps3 span{color:var(--muted);font-size:14px}
.price-grid{display:grid;grid-template-columns:repeat(2,minmax(0,380px));gap:16px}
@media (max-width:760px){.price-grid{grid-template-columns:minmax(0,1fr)}}
.price{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:24px;display:flex;flex-direction:column;gap:12px}
.price.pro{border:2px solid var(--accent);box-shadow:0 18px 40px -28px var(--accent)}
.price h3{font:700 18px var(--f-display);margin:0}
.price .pr{margin:0}
.price .pr .mono{font-size:30px;font-weight:600}
.price .pr small{display:block;color:var(--muted);font-size:13px}
.price ul{margin:0;padding-left:20px;color:var(--muted);display:flex;flex-direction:column;gap:4px;flex:1}
.price .btn{align-self:flex-start}
.faq{display:flex;flex-direction:column;gap:8px;max-width:820px}
.faq details{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:0 18px}
.faq summary{cursor:pointer;font-weight:600;padding:15px 0;list-style:none;display:flex;justify-content:space-between;gap:12px}
.faq summary::after{content:"+";font:500 20px/1 var(--f-mono);color:var(--accent)}
.faq details[open] summary::after{content:"−"}
.faq details p{margin:0 0 16px;color:var(--muted)}
.final-cta{background:var(--accent);color:var(--accent-ink);border-radius:20px;padding:clamp(28px,5vw,56px);text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px}
.final-cta h2{font:700 clamp(22px,3.4vw,34px)/1.15 var(--f-display)}
.final-cta p{margin:0 0 10px;opacity:.85}
.final-cta .btn.primary{background:var(--accent-ink);color:var(--accent);border-color:var(--accent-ink)}
.site-foot{border-top:1px solid var(--line);margin-top:48px;padding-top:20px;font-size:13px;color:var(--muted)}
.site-foot .wrap{display:flex;justify-content:space-between;gap:12px 24px;flex-wrap:wrap}
.site-foot nav{display:flex;gap:8px 18px;flex-wrap:wrap}
.site-foot a{color:var(--muted)}
.site-foot a:hover{color:var(--accent)}

/* юридические страницы */
.legal{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:6px;padding:clamp(20px,4vw,40px)}
.legal h1{margin-bottom:2px}
.legal section{margin-top:14px}
.legal h2{font:600 16px/1.3 var(--f-body);margin:0 0 6px}
.legal p{margin:0 0 8px;line-height:1.6}
mark.todo{background:var(--warn-soft);color:var(--warn);border-radius:4px;padding:0 4px}

/* запись через Telegram */
.tg-join{display:flex;flex-direction:column;gap:6px;align-items:stretch;text-align:center;margin-bottom:6px}
.tg-join small{font-size:13px}
.or{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:13px;margin-top:8px}
.or::before,.or::after{content:"";flex:1;height:1px;background:var(--line)}
.consent{font-size:12.5px;margin:0;text-align:center}

/* панель владельца */
.adm-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
@media (max-width:900px){.adm-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.adm-stats .stat{display:flex;flex-direction:column;gap:2px}
.adm-stats .stat small{font-size:12px}
.adm-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin-top:16px}
@media (max-width:860px){.adm-grid{grid-template-columns:minmax(0,1fr)}}
.adm-bars{display:flex;align-items:flex-end;gap:10px;min-height:160px;overflow-x:auto;padding-bottom:4px}
.ab{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:54px}
.ab i{display:block;width:30px;background:var(--accent);border-radius:6px 6px 0 0}
.ab small,.ab-v{font-size:11px;color:var(--muted)}
.adm-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.adm-head input{border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:9px 12px;min-width:min(320px,100%)}
.adm-list{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.adm-row{border-top:1px solid var(--line)}
.adm-row:first-child{border-top:0}
.adm-row.blocked{background:var(--danger-soft)}
.adm-row summary{display:grid;grid-template-columns:minmax(0,1fr) 90px 90px minmax(150px,auto);gap:12px;align-items:center;padding:12px 14px;cursor:pointer;list-style:none}
.adm-row summary::-webkit-details-marker{display:none}
.adm-row[open] summary{background:var(--bg)}
@media (max-width:640px){.adm-row summary{grid-template-columns:minmax(0,1fr) auto}.ac-num{display:none!important}}
.ac-who{display:flex;flex-direction:column;min-width:0}
.ac-who b,.ac-who small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ac-who small,.ac-num small{color:var(--muted);font-size:12px}
.ac-num{display:flex;flex-direction:column;align-items:flex-end}
.ac-plan{justify-self:end}
.ac-body{padding:4px 14px 16px;display:flex;flex-direction:column;gap:10px}
.ac-block{display:flex;gap:8px;flex-wrap:wrap}
.ac-block input{flex:1;min-width:200px;border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:7px 10px}
.pill.danger{background:var(--danger-soft);color:var(--danger)}

/* мягкая палитра: крупнее скругления, лёгкие тени */
.card,.feat,.price,.steps3 li,.faq details,.hero-demo{border-radius:16px}
.card{box-shadow:0 1px 2px rgb(30 36 51 / .04),0 6px 20px -12px rgb(30 36 51 / .10)}
.btn{border-radius:10px}
.field input,.field textarea,.field select{border-radius:10px}
.hero-demo{box-shadow:0 24px 60px -30px rgb(79 91 213 / .35)}
.appbar{box-shadow:0 1px 0 var(--line)}
