/* ===== Hut 3.2 «Порядок и место» — стили новых экранов. Цвета берутся из переменных темы. ===== */

/* D: согласие при регистрации и окно документов */
.consent-row{align-items:flex-start!important;margin-top:4px}
.consent-row>span:last-child{font-weight:500;line-height:1.4;color:var(--muted)}
.consent-row a,.consent-view a,.legal-links a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}
.consent-view{text-align:center}
.consent-icon{width:56px;height:56px;margin:2px auto 12px;display:grid;place-items:center;border-radius:14px;background:var(--raised);color:var(--accent)}
.consent-icon .ui-icon{width:28px;height:28px}
.consent-small{font-size:12.5px}
#modal[data-kind="consent"] .modal-close{display:none}
.legal-links{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px;margin-top:12px;font-size:12.5px;color:var(--muted)}
.legal-links .ui-icon{width:15px;height:15px}
.about-legal{margin:14px 0}

/* A2: переключатель «Отправить оригиналом» */
.orig-toggle{display:flex;align-items:center;gap:9px;margin-top:9px;font-size:13px;color:var(--muted);cursor:pointer;user-select:none}
.orig-toggle input{position:absolute;opacity:0;pointer-events:none}
.orig-toggle .switch{position:relative;width:34px;height:20px;flex:0 0 34px;border-radius:10px;background:var(--border);transition:background .15s}
.orig-toggle .switch:after{content:"";position:absolute;left:3px;top:3px;width:14px;height:14px;border-radius:50%;background:var(--text);transition:transform .15s}
.orig-toggle input:checked+.switch{background:var(--accent)}
.orig-toggle input:checked+.switch:after{transform:translateX(14px);background:var(--on-accent,#fff)}
.orig-toggle input:focus-visible+.switch{outline:2px solid var(--accent);outline-offset:2px}

/* A4: файл удалён по сроку хранения */
.file-expired{display:flex;align-items:center;gap:11px;width:min(380px,100%);margin-top:8px;padding:11px 12px;border:1px dashed var(--border);border-radius:10px;color:var(--muted);background:transparent}
.file-expired>.ui-icon{flex:0 0 auto;width:24px;height:24px}
.file-expired>span{display:grid;gap:1px;min-width:0}
.file-expired strong{font-weight:600;font-size:13.5px;color:var(--text)}
.file-expired small{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* C1: окно жалобы */
.report-reasons{grid-template-columns:1fr 1fr}
.admin-user-acts button{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.admin-user-acts button .ui-icon{width:15px;height:15px;flex:none}
.admin-report-who{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline}
.admin-report-who small{color:var(--muted)}
.report-reasons .admin-radio{align-items:center}
#modal[data-kind="report"] textarea{width:100%;min-height:84px;resize:vertical;padding:10px 12px;border:1px solid var(--border);border-radius:9px;background:var(--bg);color:var(--text);outline:none}
#modal[data-kind="report"] textarea:focus{border-color:var(--accent)}
.char-count{justify-self:end;color:var(--muted);font-size:11.5px}
.profile-report{display:inline-flex!important;align-items:center;gap:6px;margin-top:14px!important}
.profile-report .ui-icon{width:15px;height:15px}

/* Счётчики жалоб */
#settingsBtn{position:relative}
.staff-badge{position:absolute;top:2px;right:2px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--red);color:#fff;font-size:10px;font-weight:800;line-height:16px;text-align:center;pointer-events:none}
.count-badge,.tab-count{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;margin-left:auto;border-radius:10px;background:var(--red);color:#fff;font-size:11.5px;font-weight:800;line-height:1}
.tab-count{margin-left:6px;height:18px;min-width:18px;font-size:11px}
#accAdmin{display:flex;align-items:center;gap:8px}

/* Админка: баннер, фильтры */
.admin-banner{display:flex;align-items:flex-start;gap:10px;margin-bottom:12px;padding:11px 13px;border-radius:10px;border:1px solid var(--border);background:var(--raised);font-size:13.5px}
.admin-banner.danger{border-color:color-mix(in srgb,var(--red) 55%,transparent);background:color-mix(in srgb,var(--red) 12%,var(--surface))}
.admin-banner .ui-icon{flex:0 0 auto;width:20px;height:20px;color:var(--red)}
.admin-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.chip{padding:6px 12px;border-radius:999px;background:transparent;border:1px solid var(--border);color:var(--muted);font-size:13px;font-weight:600}
.chip.active{border-color:var(--accent);color:var(--text);background:color-mix(in srgb,var(--accent) 14%,transparent)}
.audit-filter{grid-template-columns:1fr 1fr!important}
.audit-filter .field{margin-top:0}
.audit-filter select,.audit-filter input{height:42px;width:100%;border:1px solid var(--border);border-radius:9px;background:var(--bg);color:var(--text);padding:0 12px}
.admin-note.ok{color:var(--green)}
.field-hint{color:var(--muted);font-size:12px}
#modal[data-kind="ban"] select{height:44px;border:1px solid var(--border);border-radius:9px;background:var(--bg);color:var(--text);padding:0 12px}

/* Админка: жалобы */
.admin-report{display:grid;gap:8px;padding:12px;border:1px solid var(--border);border-radius:11px;background:var(--raised)}
.admin-report-head{display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.admin-report-head time{margin-left:auto;color:var(--muted);font-size:12px}
.admin-report-who{font-size:14px;overflow-wrap:anywhere}
.admin-report-who small{color:var(--muted)}
.report-preview{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px;padding:9px 11px;border-left:3px solid var(--accent);border-radius:0 8px 8px 0;background:var(--surface);font-size:13.5px}
.report-preview p{flex:1 1 100%;margin:0!important;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text)!important;max-height:140px;overflow:auto}
.report-preview time,.report-preview small{flex:1 1 100%;color:var(--muted);font-size:11.5px}
.report-preview.gone{opacity:.65;border-left-color:var(--border)}
.report-thumb{display:block;width:84px;height:84px;border-radius:8px;overflow:hidden;border:1px solid var(--border);background:#000}
.report-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.report-file{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border-radius:7px;background:var(--raised);font-size:12.5px;max-width:100%}
.report-file .ui-icon{width:15px;height:15px;flex:0 0 auto}
.report-file span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.report-comment{display:flex;gap:8px;align-items:flex-start;color:var(--muted);font-size:13px;overflow-wrap:anywhere}
.report-comment .ui-icon{width:15px;height:15px;flex:0 0 auto;margin-top:2px}

/* Админка: место */
.storage-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}
.storage-card{display:grid;grid-template-columns:24px minmax(0,1fr);gap:10px;padding:12px;border:1px solid var(--border);border-radius:11px;background:var(--raised)}
.storage-card>.ui-icon{width:22px;height:22px;color:var(--accent)}
.storage-card.danger>.ui-icon{color:var(--red)}
.storage-card div{display:grid;gap:2px;min-width:0}
.storage-card span{color:var(--muted);font-size:12px}
.storage-card b{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.storage-card small{color:var(--muted);font-size:11.5px;overflow-wrap:anywhere}
.meter{display:block;height:6px;margin-top:6px;border-radius:3px;background:var(--border);overflow:hidden;position:relative}
.meter:after{content:"";position:absolute;inset:0 auto 0 0;width:var(--p);background:var(--accent);border-radius:3px}
.meter.danger:after{background:var(--red)}
.cleanup-box{padding:12px;border:1px solid var(--border);border-radius:11px;background:var(--raised);margin-bottom:10px}
.cleanup-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.cleanup-head>div{display:grid;gap:2px}
.cleanup-head small{color:var(--muted);font-size:12.5px}
.cleanup-head .secondary{display:inline-flex;align-items:center;gap:8px;padding:0 14px;flex:0 0 auto}
.cleanup-list{display:grid;gap:6px;margin-top:10px}
.cleanup-list>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:8px;background:var(--surface);font-size:13px}
.cleanup-list span{display:grid;gap:1px;min-width:0}
.cleanup-list small{color:var(--muted);font-size:11.5px}
.cleanup-list em{font-style:normal;font-weight:700;white-space:nowrap}
.cleanup-box .modal-actions .danger{display:inline-flex;align-items:center;gap:8px}
.storage-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:11px}
.storage-table{width:100%;border-collapse:collapse;font-size:13.5px}
.storage-table th{position:sticky;top:0;text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700;background:var(--raised);padding:9px 12px}
.storage-table td{padding:8px 12px;border-top:1px solid var(--border);white-space:nowrap}
.storage-table td:first-child{white-space:normal;overflow-wrap:anywhere}
.storage-table td small{color:var(--muted)}
.size-cell{display:grid;grid-template-columns:76px minmax(60px,1fr);align-items:center;gap:10px}
.size-cell .meter{margin:0}

@media(max-width:760px){.storage-cards{grid-template-columns:1fr 1fr}}
@media(max-width:560px){
  .report-reasons{grid-template-columns:1fr 1fr}
  .report-reasons .admin-radio{min-height:0;padding:10px}
  .audit-filter{grid-template-columns:1fr!important}
  .cleanup-head{flex-direction:column;align-items:stretch}
  .cleanup-head .secondary{justify-content:center}
  .storage-card b{font-size:15px}
  .size-cell{grid-template-columns:64px minmax(40px,1fr)}
  .admin-report-head time{margin-left:0;flex:1 1 100%}
}
.report-context{border:1px solid var(--border);border-radius:9px;background:var(--surface);font-size:13px}
.report-context summary{cursor:pointer;padding:8px 11px;color:var(--muted);font-weight:600}
.report-context[open] summary{border-bottom:1px solid var(--border)}
.ctx-msg{display:grid;grid-template-columns:auto 1fr;gap:2px 8px;padding:7px 11px}
.ctx-msg b{font-size:12.5px}
.ctx-msg time{color:var(--muted);font-size:11px;align-self:center}
.ctx-msg span{grid-column:1/-1;white-space:pre-wrap;overflow-wrap:anywhere}
.ctx-msg em{display:inline-flex;align-items:center;gap:4px;font-style:normal;color:var(--muted)}
.ctx-msg em .ui-icon{width:13px;height:13px}
.ctx-target{background:color-mix(in srgb,var(--red) 10%,transparent);border-left:3px solid var(--red)}
.admin-report-head .tag{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:6px;font-size:11.5px;line-height:1}
.admin-report-head .tag.danger{height:22px!important;padding:0 8px!important;min-height:0!important;border-radius:6px!important}
@media(max-width:560px){.size-cell .meter{display:none}}

/* 3.2: разметка в сообщениях */
.message code.md-code{padding:1px 5px;border-radius:5px;background:var(--raised);font:0.92em/1.4 ui-monospace,Consolas,monospace}
.message code.md-block{display:block;margin:4px 0;padding:8px 10px;border-radius:8px;background:var(--raised);font:13px/1.45 ui-monospace,Consolas,monospace;white-space:pre;overflow-x:auto;max-width:100%}
.message .md-spoiler{border-radius:4px;background:var(--muted);color:transparent;cursor:pointer;transition:color .15s,background .15s}
.message .md-spoiler *{visibility:hidden}
.message .md-spoiler.open{background:var(--raised);color:inherit;cursor:auto}
.message .md-spoiler.open *{visibility:visible}

/* 3.2.5: статус сервера звонков в админке */
.sfu-status b{font-weight:700}
.sfu-status.sfu-ok b{color:#3ecf8e}
.sfu-status.sfu-bad b{color:#ff6b6b}
.sfu-status.sfu-muted b{opacity:.8}

/* 3.3.1 · Настройки → Микрофон */
.mic-meter{position:relative;height:10px;border-radius:999px;background:var(--border);overflow:hidden;margin:6px 0 4px}
.mic-meter-bar{height:100%;width:0;background:var(--accent);transition:width .05s linear}
.mic-meter-bar.closed{background:var(--muted,#888)}
.mic-meter-thr{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--text)}
.mic-meter-note{font-size:12px;color:var(--muted,#999);margin-bottom:10px;min-height:16px}
.mic-row{margin:10px 0}
.mic-range input[type=range]{width:100%;accent-color:var(--accent)}
.mic-range input[type=range]:disabled{opacity:.45}
.mic-range small{display:block;color:var(--muted,#999);font-size:12px;margin-top:2px}
.mic-note{font-size:12px;color:var(--muted)}
.mic-gate-state{font-size:12px;font-weight:600;min-height:16px;margin-top:4px}
.field.mic-range{display:block;margin:8px 0}
.field.mic-range input[type=range]{margin:6px 0 0;padding:0;height:18px;border:0;background:none}
.mic-range small{margin-top:0}
.mic-ns{display:grid;gap:6px;margin:4px 0 10px}
.mic-ns-opt{display:flex;gap:9px;align-items:flex-start;padding:8px 10px;border:1px solid var(--border);border-radius:9px;cursor:pointer}
.mic-ns-opt:has(input:checked){border-color:var(--accent)}
.mic-ns-opt input{margin-top:3px;accent-color:var(--accent)}
.mic-ns-opt span{display:grid;gap:2px}
.mic-ns-opt small{color:var(--muted);font-size:12px}
.mic-ns-state{font-size:12px;color:var(--muted);min-height:16px}
.mic-ns-state.bad{color:var(--danger,#e06c6c)}

/* 3.3.4: панель записи голосового */
.record-bar{position:absolute;left:8px;right:8px;bottom:calc(100% + 8px);display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--surface);border:1px solid rgba(239,107,112,.45);border-radius:11px;box-shadow:0 8px 24px rgba(0,0,0,.28);z-index:6}
.record-bar .rec-dot{width:10px;height:10px;border-radius:50%;background:var(--red);animation:pulse-record 1s infinite;flex:0 0 auto}
.record-bar .rec-time{font-variant-numeric:tabular-nums;font-weight:700}
.record-bar .rec-hint{color:var(--muted);font-size:13px;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.record-bar button{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:0 12px;border-radius:9px;font-weight:700}
.record-bar .ui-icon{width:18px;height:18px}
.record-bar .rec-cancel{background:var(--raised);border:1px solid var(--border);color:var(--text)}
.record-bar .rec-cancel:hover{background:rgba(239,107,112,.14);color:var(--red)}
.record-bar .rec-done{background:var(--accent);color:#fff}
@media(max-width:560px){.record-bar{left:0;right:0;gap:8px;padding:7px 8px}.record-bar .rec-hint{display:none}.record-bar .rec-cancel{margin-left:auto}.record-bar .rec-done span{display:none}.record-bar .rec-done{padding:0 12px}}

/* 3.3.4: установка на телефон (PWA) */
.pwa-banner{position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:30;display:flex;align-items:center;gap:12px;padding:12px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:0 14px 40px rgba(0,0,0,.4);max-width:520px;margin:0 auto}
.pwa-banner img{width:44px;height:44px;border-radius:11px;flex:0 0 auto}
.pwa-banner .pwa-text{flex:1;min-width:0;display:grid;gap:2px}
.pwa-banner .pwa-text span{color:var(--muted);font-size:13px;line-height:1.35}
.pwa-banner .pwa-install{min-height:40px;padding:0 14px;border-radius:9px;background:var(--accent);color:#fff;font-weight:700;flex:0 0 auto}
.pwa-banner .pwa-later{min-width:36px;min-height:36px;border-radius:8px;background:transparent;color:var(--muted);font-size:22px;flex:0 0 auto}

/* 3.3.5: ник рядом с аватаром в профиле */
.avatar-editor .avatar-side{display:grid;gap:10px;min-width:0;justify-items:start}
.avatar-editor .profile-nick{display:flex;align-items:center;gap:6px;min-width:0;max-width:100%}
.avatar-editor .profile-nick-name{font-size:20px;font-weight:800;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}

/* 3.3.6: предложение включить уведомления */
.push-banner .push-ico{width:44px;height:44px;border-radius:11px;display:grid;place-items:center;background:var(--accent);color:#fff;flex:0 0 auto}
.push-banner .push-ico .ui-icon{width:24px;height:24px}

/* 3.3.6: заставка при входе по сохранённой сессии */
html.resuming #login .login-card{display:none}
html.resuming #login::before{content:"";width:46px;height:46px;border-radius:50%;border:3px solid rgba(255,255,255,.14);border-top-color:var(--accent,#7c8cff);animation:mk-spin .8s linear infinite}
html.resuming #login::after{content:"Входим в Hut…";position:absolute;margin-top:96px;color:var(--muted,#9aa3b2);font-size:14px}
html.resuming.offline #login::after{content:"Нет связи с сервером. Пробуем снова…"}
@keyframes mk-spin{to{transform:rotate(360deg)}}

/* 3.3.7: праздничное оформление (season.js). Украшения не перехватывают нажатия и не мешают читать. */
.season-decor{position:fixed;inset:0;pointer-events:none;z-index:4;overflow:hidden}
.season-snow{position:absolute;inset:0;width:100%;height:100%;opacity:.7}
.season-garland{position:absolute;left:0;right:0;top:0;height:22px;background:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 120 22%22%3E%3Cpath d=%22M0 4Q30 14 60 4T120 4%22 stroke=%22%232f4a35%22 stroke-width=%221.6%22 fill=%22none%22/%3E%3Cg%3E%3Crect x=%2213%22 y=%227%22 width=%224%22 height=%223%22 rx=%221%22 fill=%22%236b6b6b%22/%3E%3Cellipse cx=%2215%22 cy=%2214%22 rx=%223.6%22 ry=%225%22 fill=%22%23ff5a5f%22/%3E%3Crect x=%2243%22 y=%229%22 width=%224%22 height=%223%22 rx=%221%22 fill=%22%236b6b6b%22/%3E%3Cellipse cx=%2245%22 cy=%2216%22 rx=%223.6%22 ry=%225%22 fill=%22%23ffd36b%22/%3E%3Crect x=%2273%22 y=%227%22 width=%224%22 height=%223%22 rx=%221%22 fill=%22%236b6b6b%22/%3E%3Cellipse cx=%2275%22 cy=%2214%22 rx=%223.6%22 ry=%225%22 fill=%22%237fd1ff%22/%3E%3Crect x=%22103%22 y=%229%22 width=%224%22 height=%223%22 rx=%221%22 fill=%22%236b6b6b%22/%3E%3Cellipse cx=%22105%22 cy=%2216%22 rx=%223.6%22 ry=%225%22 fill=%22%238dff9f%22/%3E%3C/g%3E%3C/svg%3E") repeat-x 0 0/120px 22px;filter:drop-shadow(0 0 4px rgba(255,220,120,.55));animation:mk-twinkle 2.4s ease-in-out infinite alternate}
@keyframes mk-twinkle{from{opacity:.75;filter:drop-shadow(0 0 2px rgba(255,220,120,.35))}to{opacity:1;filter:drop-shadow(0 0 7px rgba(255,220,120,.8))}}
.season-web{position:absolute;right:0;top:0;width:84px;height:84px;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22 fill=%22none%22 stroke-linecap=%22round%22%3E%3Cdefs%3E%3CradialGradient id=%22g%22 cx=%22100%22 cy=%220%22 r=%22100%22 gradientUnits=%22userSpaceOnUse%22%3E%3Cstop offset=%220%22 stop-color=%22%23f3edff%22/%3E%3Cstop offset=%22.6%22 stop-color=%22%23d8ccf5%22 stop-opacity=%22.75%22/%3E%3Cstop offset=%221%22 stop-color=%22%23c9b8f0%22 stop-opacity=%22.15%22/%3E%3C/radialGradient%3E%3C/defs%3E%3Cg stroke=%22url%28%23g%29%22%3E%3Cpath d=%22M100 0L98.4 91.3%22 stroke-width=%221.1%22/%3E%3Cpath d=%22M100 0L75.0 89.5%22 stroke-width=%221.1%22/%3E%3Cpath d=%22M100 0L46.5 78.7%22 stroke-width=%221.1%22/%3E%3Cpath d=%22M100 0L39.9 60.9%22 stroke-width=%221.1%22/%3E%3Cpath d=%22M100 0L23.3 44.1%22 stroke-width=%221.1%22/%3E%3Cpath d=%22M100 0L17.1 20.9%22 stroke-width=%221.1%22/%3E%3Cpath d=%22M100 0L4.6 1.7%22 stroke-width=%221.1%22/%3E%3Cpath d=%22M99.8 12.8Q98.5 10.2 96.8 11.4M96.4 12.7Q95.3 10.1 92.6 10.9M92.8 10.5Q93.2 8.2 91.1 9.0M91.6 8.5Q92.1 6.1 89.8 5.9M89.1 6.3Q90.5 3.8 88.5 2.9M88.3 2.9Q89.9 1.3 87.9 0.2%22 stroke-width=%220.89%22/%3E%3Cpath d=%22M99.6 25.3Q96.8 21.6 92.8 25.7M92.8 25.6Q90.4 20.8 84.3 23.1M84.9 22.2Q85.6 17.6 80.8 19.4M81.2 19.1Q82.0 13.9 76.3 13.6M76.9 13.3Q79.5 8.3 74.7 6.4M72.5 6.9Q76.4 3.1 71.6 0.5%22 stroke-width=%220.83%22/%3E%3Cpath d=%22M99.2 43.6Q94.8 35.9 88.5 41.3M89.0 39.4Q85.6 31.0 77.2 33.5M77.0 33.7Q78.5 26.1 72.1 28.2M69.6 30.7Q71.9 21.7 64.1 20.6M62.2 21.8Q66.9 13.4 60.0 10.1M57.2 10.8Q63.5 4.9 56.4 0.8%22 stroke-width=%220.77%22/%3E%3Cpath d=%22M99.1 54.0Q93.4 45.5 85.1 53.4M83.8 58.1Q79.2 44.8 67.8 47.3M65.8 50.2Q68.6 38.1 60.1 40.4M61.7 38.8Q62.5 28.9 49.4 29.1M48.5 29.6Q55.1 18.1 45.8 13.6M47.0 13.3Q53.8 6.1 43.7 1.0%22 stroke-width=%220.71%22/%3E%3Cpath d=%22M57.2 62.9Q60.9 47.6 50.4 50.2M48.7 51.9Q52.2 36.8 38.7 35.3M29.5 17.8Q40.2 7.9 29.1 1.2%22 stroke-width=%220.65%22/%3E%3Cpath d=%22%22 stroke-width=%220.59%22/%3E%3Cpath d=%22M39.9 60.9q-2 6 1 11%22 stroke-width=%22.6%22/%3E%3C/g%3E%3C/svg%3E") no-repeat right top/contain;opacity:.6;filter:drop-shadow(0 0 2px rgba(200,170,255,.45))}

html[data-season="halloween"] .logo,html[data-season="halloween"] .brand-mark{background:linear-gradient(160deg,#2a1640,#120a1c)!important;border-color:#3d2560!important}
html[data-season="newyear"] .logo,html[data-season="newyear"] .brand-mark{background:linear-gradient(160deg,#14284a,#0b1426)!important;border-color:#24406b!important}
html[data-season] .brand-logo{color:inherit}
.season-pick,.season-try{display:flex;flex-wrap:wrap;gap:8px}.season-pick button,.season-try button{flex:1 1 auto;min-height:40px;padding:0 12px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:650}
.season-pick button.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 18%,var(--raised));color:var(--text)}
.season-try{margin-top:8px}.season-note{display:block;color:var(--muted);font-size:12px;margin-top:6px}
/* 3.3.7: летучие мыши — машут крыльями и летят волнами */

/* 3.3.7: паутинки по пустым углам и паучок на ниточке */
.season-web-in{display:none;z-index:3}
html[data-season="halloween"] .season-web-in{display:block}
.season-web.w-br{top:auto;bottom:84px;right:0;width:96px;height:96px;transform:scaleY(-1);opacity:.42}
.season-web.w-sb{left:0;right:auto;top:auto;bottom:72px;width:110px;height:110px;transform:scale(-1,-1);opacity:.42}
.season-web.w-bl{position:fixed;left:0;right:auto;top:auto;bottom:0;width:150px;height:150px;transform:scale(-1,-1);opacity:.45}
.season-web.w-tr{width:120px;height:120px}
@media (min-width:761px){html[data-season="halloween"] .sidebar{position:relative}}
@media (max-width:760px){.season-web.w-br,.season-web.w-sb{display:none!important}}
.season-spider{position:absolute;right:64px;top:0;width:18px;transform-origin:50% 0;animation:mk-spider 7s ease-in-out infinite}
.season-spider i{display:block;width:1px;height:var(--len,46px);margin:0 auto;background:linear-gradient(#d9cdf5,rgba(217,205,245,.5));opacity:.55;animation:mk-thread 7s ease-in-out infinite}
.season-spider svg{display:block;width:18px;height:18px;margin-top:-2px}
@keyframes mk-thread{0%,100%{height:30px}45%,60%{height:78px}}
@keyframes mk-spider{0%,100%{rotate:-4deg}50%{rotate:5deg}}
@media (prefers-reduced-motion:reduce){.season-garland,.season-spider,.season-spider i{animation:none}}

/* 3.3.8: Хэллоуин — атмосфера, светящиеся тыквы, луна, туман, глаза, летучие мыши и ведьмы на мётлах */
.season-vignette{position:absolute;inset:0;background:radial-gradient(ellipse 70% 45% at 50% 115%,rgba(255,112,20,.10),transparent 70%),radial-gradient(ellipse 50% 40% at 0 0,rgba(130,70,255,.10),transparent 70%),radial-gradient(ellipse 40% 35% at 100% 100%,rgba(255,90,0,.06),transparent 70%)}
html[data-season="halloween"] .topbar{box-shadow:inset 0 -1px 0 rgba(255,138,31,.28),inset 0 -12px 14px -12px rgba(255,120,30,.22)}
html[data-season="halloween"] .logo{box-shadow:0 0 14px rgba(255,138,31,.35),0 0 2px rgba(155,107,255,.6)}
.season-defs{position:absolute;width:0;height:0}
/* летучие мыши: тёмный силуэт с лиловой подсветкой и горящими глазами */
.season-bat{position:absolute;left:0;top:0;width:70px;height:28px;will-change:transform;animation:mk-bat-fly 34s linear infinite}
.season-bat>svg{width:100%;height:100%;overflow:visible;filter:drop-shadow(0 0 3px rgba(160,110,255,.45));animation:mk-bat-bob 1.3s ease-in-out infinite alternate}
.season-bat .bat-wing,.season-bat .bat-body{fill:#0f0a18;stroke:#9b78e6;stroke-width:.55;stroke-linejoin:round}
.season-bat .bat-bone{fill:none;stroke:#5e4699;stroke-width:.45;stroke-linecap:round}
.season-bat .bat-eye{fill:#ff6a2a;filter:drop-shadow(0 0 1.5px #ff4d00)}
.season-bat.b1{--y:15vh}
.season-bat.b2{--y:40vh;width:50px;height:20px;animation-duration:46s;animation-delay:-20s;animation-direction:reverse}
.season-bat.b3{--y:66vh;width:40px;height:16px;animation-duration:57s;animation-delay:-37s}
.season-bat.b4{--y:26vh;width:34px;height:14px;animation-duration:66s;animation-delay:-8s;animation-direction:reverse;opacity:.7}
.season-bat.b5{--y:52vh;width:28px;height:11px;animation-duration:41s;animation-delay:-29s;opacity:.6}
@keyframes mk-bat-bob{0%{translate:0 -7px;rotate:-8deg}50%{translate:4px 3px;rotate:4deg}100%{translate:-2px 7px;rotate:7deg}}
@keyframes mk-bat-fly{0%{transform:translate(-90px,var(--y))}12%{transform:translate(12vw,calc(var(--y) - 6vh))}25%{transform:translate(25vw,calc(var(--y) + 2vh))}38%{transform:translate(38vw,calc(var(--y) - 4vh))}50%{transform:translate(50vw,calc(var(--y) + 5vh))}62%{transform:translate(62vw,calc(var(--y) - 3vh))}75%,100%{transform:translate(calc(100vw + 90px),var(--y))}}
/* ведьмы на мётлах */
.season-witch{position:absolute;left:0;top:0;width:150px;height:74px;will-change:transform;animation:mk-witch-fly 48s linear infinite}
.season-witch>svg{width:100%;height:100%;overflow:visible;filter:drop-shadow(0 0 5px rgba(150,100,255,.5));animation:mk-witch-bob 3.2s ease-in-out infinite alternate}
.witch-body path,.witch-body circle,.witch-body ellipse{fill:#120a1e;stroke:#b48cff;stroke-width:.7;stroke-linejoin:round}
.broom-stick{fill:none;stroke:#4a2f17;stroke-width:2.6;stroke-linecap:round}
.broom-twigs{fill:#7a5426;stroke:#3b260f;stroke-width:.6}.broom-lines{fill:none;stroke:#3b260f;stroke-width:.5}.broom-band{stroke:#ff8a1f;stroke-width:1.6;stroke-linecap:round}
.witch-band{fill:none;stroke:#ff8a1f;stroke-width:1.3;stroke-linecap:round}
.witch-eye{fill:#9dff6a;filter:drop-shadow(0 0 1.5px #7dff3a)}
.witch-trail circle{fill:#ffd36b;animation:mk-spark 1.4s ease-in-out infinite}
.witch-trail circle:nth-child(2){animation-delay:-.3s;fill:#c9a6ff}.witch-trail circle:nth-child(3){animation-delay:-.6s}.witch-trail circle:nth-child(4){animation-delay:-.9s;fill:#c9a6ff}.witch-trail circle:nth-child(5){animation-delay:-1.1s}
.season-witch.w1{--y:9vh}
.season-witch.w2{--y:54vh;width:84px;height:42px;opacity:.75;animation-duration:73s;animation-delay:-50s;animation-direction:reverse}
.season-witch.w2>svg{transform:scaleX(-1)}
@keyframes mk-witch-bob{from{translate:0 -6px;rotate:-3deg}to{translate:0 6px;rotate:2deg}}
@keyframes mk-witch-fly{0%{transform:translate(-180px,var(--y))}20%{transform:translate(25vw,calc(var(--y) - 3vh))}40%{transform:translate(55vw,calc(var(--y) + 2vh))}55%,100%{transform:translate(calc(100vw + 180px),calc(var(--y) - 4vh))}}
@keyframes mk-spark{0%,100%{opacity:0;transform:scale(.4)}50%{opacity:1;transform:scale(1.2)}}
/* светящиеся тыквы (свеча внутри мерцает) */
.season-in{display:none;pointer-events:none}html[data-season="halloween"] .season-in{display:block}
.season-pumpkin{position:relative;display:inline-block;width:48px;height:44px}.season-pumpkin.mid{width:38px;height:35px}.season-pumpkin.small{width:30px;height:27px}
.season-pumpkin svg{width:100%;height:100%;overflow:visible;animation:mk-pk-halo 2.6s infinite}
@keyframes mk-pk-halo{0%,100%{filter:drop-shadow(0 0 6px rgba(255,130,20,.55))}30%{filter:drop-shadow(0 0 4px rgba(255,130,20,.4))}55%{filter:drop-shadow(0 0 9px rgba(255,150,30,.7))}}
.pk-body ellipse{fill:url(#mkPkBody);stroke:#7a2a0c;stroke-width:.7}.pk-body .pk-mid{fill:#d85f1a}
.pk-stem{fill:#4d6b22;stroke:#2c3f12;stroke-width:.5}.pk-leaf{fill:#5f8a2a}
.pk-face path{fill:url(#mkPkFace);stroke:#5a1a04;stroke-width:.5;filter:drop-shadow(0 0 1.5px #fff0a0) drop-shadow(0 0 4px #ffb000);animation:mk-candle 2.6s infinite}
.pk-glow{fill:url(#mkPkGlow);animation:mk-candle 2.6s infinite;transform-origin:center}
.season-pumpkin.mid .pk-face path,.season-pumpkin.mid .pk-glow{animation-delay:-.9s;animation-duration:3.1s}.season-pumpkin.small .pk-face path,.season-pumpkin.small .pk-glow{animation-delay:-1.7s;animation-duration:2.2s}
@keyframes mk-candle{0%,100%{opacity:1}8%{opacity:.82}12%{opacity:.98}30%{opacity:.88}34%{opacity:1}55%{opacity:.76}58%{opacity:.95}75%{opacity:.9}}
.pk-sb{position:absolute;right:12px;bottom:68px;z-index:3;display:flex;align-items:flex-end;gap:2px}
.pk-chat{position:absolute;left:10px;bottom:84px;z-index:3;opacity:.95}
.pk-login{position:fixed;right:18px;bottom:10px;z-index:3;display:flex;align-items:flex-end;gap:4px}.pk-login .big{width:72px;height:66px}.pk-login .mid{width:54px;height:50px}.pk-login .small{width:40px;height:36px}
/* луна и туман за сообщениями */
.season-moon{position:absolute;right:13%;top:26px;width:64px;height:64px;z-index:0;border-radius:50%;background:radial-gradient(circle at 38% 36%,#fffbe6,#f5e2a6 45%,#d9b96a 100%);box-shadow:0 0 30px 6px rgba(255,226,150,.22),0 0 90px 20px rgba(255,190,90,.10);opacity:.55}
.season-moon span{position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 62% 30%,rgba(160,130,70,.35) 0 9%,transparent 10%),radial-gradient(circle at 30% 62%,rgba(160,130,70,.3) 0 12%,transparent 13%),radial-gradient(circle at 66% 70%,rgba(160,130,70,.25) 0 7%,transparent 8%)}
.season-fog{position:absolute;left:0;right:0;bottom:70px;height:150px;z-index:0;overflow:hidden;opacity:.5}
.season-fog span{position:absolute;bottom:0;left:-50%;width:200%;height:100%;background:radial-gradient(ellipse 18% 45% at 15% 80%,rgba(190,170,230,.13),transparent 70%),radial-gradient(ellipse 22% 40% at 45% 90%,rgba(190,170,230,.11),transparent 70%),radial-gradient(ellipse 16% 50% at 75% 85%,rgba(190,170,230,.12),transparent 70%);animation:mk-fog 40s linear infinite alternate}
.season-fog span+span{animation-duration:55s;animation-direction:alternate-reverse;opacity:.8}
@keyframes mk-fog{from{transform:translateX(0)}to{transform:translateX(25%)}}
/* глаза в темноте у паутины */
.season-eyes{position:absolute;left:30px;bottom:118px;z-index:3;display:flex;gap:7px;animation:mk-eyes-fade 11s infinite}
.season-eyes b{width:7px;height:4px;border-radius:50% 50% 45% 45%;background:#ffd23a;box-shadow:0 0 6px 1px rgba(255,180,0,.7);animation:mk-blink 5s infinite}
@keyframes mk-blink{0%,44%,50%,100%{transform:scaleY(1)}47%{transform:scaleY(.1)}}
@keyframes mk-eyes-fade{0%,8%{opacity:0}16%,70%{opacity:.9}80%,100%{opacity:0}}
@media (max-width:760px){.season-witch.w1{width:110px;height:54px}.season-moon{width:44px;height:44px;right:16px;top:14px}.pk-chat{display:none!important}.pk-login{transform:scale(.75);transform-origin:100% 100%}}
@media (prefers-reduced-motion:reduce){.season-bat,.season-witch{display:none}.season-pumpkin svg,.pk-face path,.pk-glow,.season-fog span,.season-eyes,.season-eyes b{animation:none}}

/* 3.3.9: галочка согласия только при регистрации. .remember{display:flex!important} перебивал .hidden,
   и галочка показывалась (и мешала) на вкладке «Вход». */
.remember.hidden,.consent-row.hidden{display:none!important}

/* 3.4.1: пожертвования */
.donate-open{margin-top:12px!important}
.donate-quick{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.donate-quick>button{flex:1;min-height:38px;padding:0 10px}
.donate-view #donateGo{display:flex;align-items:center;justify-content:center;gap:10px}.donate-view #donateGo:disabled{opacity:.75;cursor:wait}
.donate-view input:disabled{opacity:.6;cursor:not-allowed}
.donate-result{display:grid;justify-items:center;gap:8px;margin-top:16px;text-align:center}
.donate-result img{width:220px;height:220px;padding:10px;background:#fff;border-radius:12px;image-rendering:pixelated}
.donate-result b{font-size:20px}.donate-result small{color:var(--muted);font-size:12.5px}
.donate-result .donate-link{display:flex;align-items:center;justify-content:center;text-decoration:none;margin-top:6px}
.donate-result>button{width:100%}

/* 3.4.5: два способа оплаты */
.donate-methods{display:grid;gap:8px;margin-top:14px}.donate-methods>button{margin:0!important;display:flex;align-items:center;justify-content:center;gap:10px}.donate-methods>button:disabled{opacity:.75;cursor:wait}

/* 3.4.6: донаты в админке */
.donation-row .donation-sum{font-size:16px}.donation-row .admin-user-acts{align-items:center}
.tag.ok{background:rgba(84,201,138,.15);color:var(--green)}.tag.wait{background:rgba(255,176,31,.15);color:#ffc35a}

/* 3.4.7: дни хостинга и автосверка */
.donate-days{margin:-8px 0 6px;padding:10px 12px;border-radius:10px;background:color-mix(in srgb,var(--green) 12%,transparent);color:var(--text);font-size:14px}.donate-days.low{background:color-mix(in srgb,var(--red) 14%,transparent)}
.beget-unmatched{margin:4px 0;font-size:13px}.storage-card a{color:var(--accent)}

/* 3.4.8 */
.beget-other{margin-top:12px;font-size:13px;color:var(--muted)}.beget-other summary{cursor:pointer}

/* Donation QR (DonationAlerts) */
#modal:has(.donate-qr-view) .modal-card{width:min(520px,calc(100vw - 32px))}
.donate-qr-view{display:grid;gap:12px}
.donate-qr-view p{margin:0;color:var(--muted)}
.donate-qr-card{display:block;width:100%;max-width:330px;margin:0 auto;border-radius:14px;overflow:hidden;border:1px solid var(--border);background:#202921;line-height:0}
.donate-qr-card img{display:block;width:100%;height:auto}
.donate-qr-view .primary{width:100%;margin:0;display:flex;align-items:center;justify-content:center;text-decoration:none;min-height:44px;border-radius:9px;font-weight:700}
.donate-qr-view .secondary{width:100%;margin:0;min-height:44px;border-radius:9px;background:var(--raised);border:1px solid var(--border);color:var(--text);font-weight:700}
.donate-hint{color:var(--muted);font-size:12.5px;line-height:1.45;text-align:center}
