/* ===== М.Круг 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)}
