:root{font-family:Inter,ui-sans-serif,system-ui,sans-serif;color:#18212f;background:#f3f6fa;line-height:1.4}*{box-sizing:border-box}body{margin:0}.shell{max-width:1120px;margin:0 auto;padding:28px 18px 60px}header,.toolbar,.section-title,.actions{display:flex;align-items:center;justify-content:space-between;gap:16px}h1,h2,h3,p{margin-top:0}h1{font-size:2rem;margin-bottom:2px}.app-version{display:block;color:#667085;font-size:.75rem;font-weight:600;letter-spacing:.04em}h2{margin-bottom:8px}.eyebrow{font-size:.72rem;letter-spacing:.14em;font-weight:700;color:#4673b8}.muted{color:#667085;font-size:.9rem}.card{background:#fff;border:1px solid #dce3ec;border-radius:14px;padding:22px;box-shadow:0 5px 18px #263b5310}.login-card{max-width:430px;margin:60px auto}.mfa-qr{display:flex;justify-content:center;align-items:center;min-height:220px;margin:12px 0}.mfa-qr svg{max-width:320px;width:100%;height:auto;background:#fff;padding:10px}.mfa-qr:empty{display:none}.grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.section-title{margin-bottom:16px}.section-title h3{margin:0}.toolbar{margin:28px 0 10px}.warning{background:#fff7df;color:#775400;border:1px solid #f0d787;padding:10px 12px;border-radius:8px;font-size:.88rem}.certificate-card{margin:18px 0}.certificate-card .section-title{align-items:flex-start}.certificate-state{white-space:nowrap;color:#667085;font-size:.85rem}.certificate-state.ok{color:#21633a}.certificate-state.bad{color:#a22727}.check-label{display:flex;align-items:center;gap:8px}.check-label input{width:auto;margin:0}.warning.small{font-size:.78rem;margin:10px 0}.helper-text{color:#667085;font-size:.78rem;margin:8px 0}.list{display:grid;gap:10px}.item{border:1px solid #e5eaf0;border-radius:10px;padding:13px}.item strong{display:block}.item small{display:block;color:#667085}.registration-status{font-weight:700}.item .license-line{color:#21633a;font-weight:600}.registration-status.ok{color:#21633a}.registration-status.bad{color:#a22727}.item-actions{display:flex;gap:7px;margin-top:10px}button{border:0;border-radius:8px;background:#2563a9;color:white;padding:10px 14px;font-weight:650;cursor:pointer}button:hover{filter:brightness(.95)}button.pending-apply{background:#e88616;color:#fff;box-shadow:0 0 0 3px #f7c77a66}button.secondary{background:#e8eef6;color:#24476e}button.danger{background:#fff0f0;color:#a22727}.hidden{display:none!important}.error{color:#b42318;min-height:1.2em}.message{padding:11px 14px;border-radius:8px;background:#e7f6ec;color:#21633a;margin:14px 0}.message.error{background:#fff0f0;color:#a22727}label{display:block;font-weight:600;font-size:.88rem;margin:12px 0}input,select{display:block;width:100%;margin-top:5px;border:1px solid #cbd5e1;border-radius:7px;padding:10px;font:inherit;background:#fff}input:focus,select:focus{outline:2px solid #94b9e4;border-color:#3977b8}.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}dialog{border:0;border-radius:14px;padding:0;width:min(520px,calc(100% - 24px));box-shadow:0 20px 70px #15243b55}dialog::backdrop{background:#17253888}dialog form{padding:22px}.icon{background:transparent;color:#667085;font-size:1.6rem;padding:0 5px}.actions{margin-top:20px;justify-content:flex-end}#status{margin-top:18px}.qr-code{display:flex;justify-content:center;align-items:center;min-height:320px;margin:12px 0}.qr-code svg{max-width:320px;width:100%;height:auto;background:#fff}.pbx-test-dialog{min-width:min(440px,calc(100vw - 48px));padding:22px}.test-spinner{width:34px;height:34px;margin:18px auto;border:4px solid #dce7f3;border-top-color:#2563a9;border-radius:50%;animation:spin .8s linear infinite}.test-spinner.done{display:none}.test-status{text-align:center;font-weight:700}.test-status.ok{color:#21633a}.test-status.bad{color:#a22727}.diagnostic-card{margin:18px 0}.diagnostic-log{max-height:320px;overflow:auto;margin:14px 0 0;padding:12px;border-radius:8px;background:#111923;color:#d7e7f7;font:12px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap}.diagnostic-card input[readonly]{background:#f3f6fa}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:760px){.grid{grid-template-columns:1fr}.two{grid-template-columns:1fr}.toolbar{align-items:flex-start;flex-direction:column}.toolbar button{width:100%}}.sites-card{margin:18px 0}textarea{display:block;width:100%;margin-top:5px;border:1px solid #cbd5e1;border-radius:7px;padding:10px;font:12px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace;resize:vertical}
.mode-guide{display:grid;gap:6px;margin:4px 0 12px}.mode-guide div{border:1px solid #e2e8f0;border-radius:7px;padding:8px 10px;font-size:13px;line-height:1.4;color:#475569;cursor:pointer}.mode-guide strong{display:block;color:#0f172a}.mode-guide div.active{border-color:#2563eb;background:#eff6ff}
.tabs{display:flex;gap:4px;border-bottom:1px solid #dce3ec;margin:18px 0 0}.tabs button{background:none;color:#475569;border:0;border-bottom:3px solid transparent;border-radius:0;padding:10px 14px;font-weight:600}.tabs button.active{color:#0f172a;border-bottom-color:#2a78d6}.range-group{display:flex;gap:6px}.range-group button.active{background:#2a78d6;color:#fff;border-color:#2a78d6}.advice-list{display:grid;gap:8px;margin:10px 0 16px}.advice{display:grid;gap:2px;border:1px solid #dce3ec;border-left-width:4px;border-radius:8px;padding:10px 12px;background:#fff;font-size:.9rem}.advice.ok{border-left-color:#21633a}.advice.warning{border-left-color:#b7791f}.advice.critical{border-left-color:#a22727}.advice span{color:#475569}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-bottom:18px}.tile{background:#fff;border:1px solid #dce3ec;border-radius:12px;padding:14px;display:grid;gap:2px;align-content:start}.tile-title{font-size:.78rem;color:#667085;font-weight:600}.tile strong{font-size:1.6rem;line-height:1.2;color:#0f172a}.tile small{color:#667085;font-size:.76rem}.tile em{font-style:normal;font-size:.74rem;font-weight:700}.tile.ok em{color:#21633a}.tile.warning em{color:#8a5a00}.tile.critical em{color:#a22727}.tile.warning{border-color:#e9c46a}.tile.critical{border-color:#e5a3a3}.stats-card{margin:0 0 18px}.stats-grid{margin-bottom:18px}.chart-box{position:relative}.chart-svg{width:100%;height:auto;display:block}.grid-line{stroke:#e5e9f0;stroke-width:1}.axis-text{fill:#667085;font-size:11px}.crosshair{stroke:#94a3b8;stroke-width:1}.crosshair.hidden{display:none}.chart-tip{position:absolute;top:8px;background:#0f172a;color:#fff;border-radius:6px;padding:6px 9px;font-size:.78rem;display:grid;gap:1px;pointer-events:none;white-space:nowrap}.chart-tip.hidden{display:none}.chart-empty{padding:30px 0;text-align:center}.legend{display:flex;gap:16px;font-size:.82rem;color:#475569;margin-bottom:6px}.legend i{display:inline-block;width:14px;height:3px;border-radius:2px;margin-right:6px;vertical-align:middle}.table-wrap{overflow-x:auto}.stats-table{width:100%;border-collapse:collapse;font-size:.86rem}.stats-table th{text-align:left;color:#667085;font-weight:600;font-size:.76rem;border-bottom:1px solid #dce3ec;padding:6px 8px;white-space:nowrap}.stats-table td{border-bottom:1px solid #eef2f6;padding:7px 8px;vertical-align:top}.stats-table.totals td:first-child{color:#475569}.stats-table .bad{color:#a22727;font-weight:600}.heat{display:grid;grid-template-columns:34px repeat(24,1fr);gap:2px;font-size:.68rem;color:#667085}.heat-cell{aspect-ratio:1;background:#f1f4f8;border-radius:3px}.heat-day{align-self:center}.heat-hour{text-align:center}.heat-scale{display:flex;align-items:center;gap:8px;font-size:.72rem;color:#667085;margin-top:8px}.heat-scale i{flex:1;height:8px;border-radius:4px;background:linear-gradient(90deg,#e8f1fc,#174f96)}@media (max-width:700px){.toolbar{flex-wrap:wrap}.tiles{grid-template-columns:1fr 1fr}.stats-grid{grid-template-columns:1fr}}
