:root{--bg: #f6f8fb;--panel: #ffffff;--panel-soft: #fbfcfe;--line: #d9e1ec;--line-soft: #e8edf4;--text: #121826;--muted: #596678;--muted-2: #7b8798;--blue: #246fe5;--blue-soft: #eef4ff;--green: #23894b;--green-soft: #eaf7ef;--amber: #ef8a05;--amber-soft: #fff4e5;--red: #dc3535;--red-soft: #fff0f0;--orange: #f57c00;--shadow: 0 1px 2px rgba(16, 24, 40, .04);--radius: 8px;--sidebar-width: 280px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:var(--bg);color:var(--text)}button,textarea,input{font:inherit}button{cursor:pointer}.is-hidden{display:none!important}.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px}.login-panel{width:min(100%,380px);display:grid;gap:16px;padding:28px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow)}.login-brand{height:auto;padding:0;border:0;color:var(--text)}.login-panel h1{margin:2px 0 0;font-size:28px;line-height:1.1}.login-panel label{display:grid;gap:7px;color:var(--muted);font-size:14px;font-weight:700}.login-panel input{min-height:42px;border:1px solid var(--line);border-radius:var(--radius);padding:0 12px;color:var(--text);background:#fff}.login-button{justify-content:center;width:100%}.login-error{min-height:20px;margin:0;color:var(--red);font-size:14px}.app-shell{display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);min-height:100vh}.app-shell.sidebar-collapsed{grid-template-columns:86px minmax(0,1fr)}.app-shell.sidebar-collapsed .brand{justify-content:center;padding:0}.app-shell.sidebar-collapsed .brand span,.app-shell.sidebar-collapsed .nav-item span,.app-shell.sidebar-collapsed .collapse-control span{display:none}.app-shell.sidebar-collapsed .nav-item{grid-template-columns:1fr auto;justify-items:center}.sidebar{position:sticky;top:0;display:flex;flex-direction:column;height:100vh;background:var(--panel);border-right:1px solid var(--line)}.brand{display:flex;align-items:center;gap:14px;height:64px;padding:0 20px;border-bottom:1px solid var(--line-soft);font-size:18px;font-weight:700;white-space:nowrap}.brand-mark,.service-icon.telegram,.source-dot{color:#fff;background:#2ca5e0}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:50%}.brand-mark svg{width:22px;height:22px}.nav-list{display:flex;flex-direction:column;gap:8px;padding:16px 12px}.nav-item{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:12px;min-height:46px;padding:0 12px;border:1px solid transparent;border-radius:var(--radius);background:transparent;color:#415066;text-align:left;font-weight:600}.nav-item svg{width:23px;height:23px}.nav-item.active{background:var(--blue-soft);border-color:#d4e3ff;color:var(--blue)}.nav-item[hidden],[hidden]{display:none!important}.nav-item:nth-child(3) svg{color:var(--red)}.nav-badge{display:grid;place-items:center;min-width:26px;height:22px;padding:0 7px;border-radius:999px;background:var(--red);color:#fff;font-size:12px}.collapse-control{display:flex;align-items:center;gap:12px;min-height:64px;margin:auto 12px 16px;padding:0 16px;border:0;border-top:1px solid var(--line-soft);background:transparent;color:#556277;font-weight:600}.workspace{min-width:0}.topbar{display:flex;align-items:center;justify-content:flex-end;height:64px;background:var(--panel);border-bottom:1px solid var(--line)}.topbar-actions{display:flex;align-items:center;height:100%}.pill,.icon-button,.user-menu,.refresh-toggle,.secondary-button,.primary-button,.disabled-button,.select-button,.audio-preview,.text-link,.tab,.plain-icon{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:var(--radius)}.pill{height:34px;padding:0 16px;border:1px solid;background:#fff;font-weight:700}.pill svg,.icon-button svg,.user-menu svg,.refresh-toggle svg,.secondary-button svg,.primary-button svg,.disabled-button svg,.select-button svg,.audio-preview svg,.text-link svg,.plain-icon svg{width:18px;height:18px}.pill-blue{color:#1b62cf;border-color:#8db3fa;background:#f8fbff}.pill-green{color:#176c37;border-color:#d4efdd;background:var(--green-soft)}.pill-amber{color:#9a5600;border-color:#ffd9a1;background:var(--amber-soft)}.pill-red{color:#a92323;border-color:#ffc8c8;background:var(--red-soft)}.icon-button{position:relative;width:48px;height:64px;border:0;border-left:1px solid var(--line-soft);background:var(--panel);color:var(--text)}.notification span{position:absolute;top:12px;right:10px;display:grid;place-items:center;min-width:22px;height:22px;padding:0 5px;border-radius:50%;background:var(--red);color:#fff;font-size:12px;font-weight:800}.user-menu{height:64px;min-width:140px;padding:0 18px;border:0;border-left:1px solid var(--line-soft);background:var(--panel);color:var(--text);font-weight:700}.main-view{padding:16px 24px 36px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:48px}h1,h2,h3,p,dl{margin:0}h1{font-size:24px;line-height:1.2}.refresh-control{display:flex;align-items:center;gap:10px}.refresh-control .icon-button{width:42px;height:36px;border:1px solid var(--line);background:#fff}.refresh-toggle{height:36px;padding:0 14px;border:1px solid var(--line);background:#fff;color:var(--muted);font-weight:600}.live-dot,.status span,.severity{display:inline-block;flex:0 0 auto;width:10px;height:10px;border-radius:50%}.live-dot,.status.healthy span{background:var(--green)}.status.backlog span{background:var(--amber)}.status.loading span{background:var(--blue)}.status.error span{background:var(--red)}.status-grid{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:16px;margin:16px 0}.status-tile,.panel{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow)}.status-tile[role=button]{cursor:pointer}.status-tile[role=button]:hover,.status-tile[role=button]:focus-visible{border-color:#9ebcff;outline:0}.tile-main{display:flex;align-items:center;gap:18px;min-height:78px;padding:14px 18px}.status-tile h2,.panel h2{font-size:16px;line-height:1.25}.status{display:flex;align-items:center;gap:8px;margin-top:7px;font-size:14px;font-weight:600}.status.healthy{color:var(--green)}.status.backlog{color:var(--amber)}.status.loading{color:var(--blue)}.status.error{color:var(--red)}.service-icon{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;flex:0 0 auto}.service-icon svg{width:34px;height:34px}.service-icon.cleanup{color:#0f6b69;background:#eef9f7}.service-icon.audio{color:#fff;background:#22a35b}.service-icon.zello{color:#fff;background:var(--orange);border-radius:7px;font-size:36px;font-weight:900;line-height:1}.service-icon.queue{color:#fff;background:#7255d9;border-radius:8px}.tile-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:40px;padding:0 18px;border-top:1px solid var(--line-soft);color:#47566b;font-size:14px}.tile-footer svg{width:17px;height:17px}.tile-footer span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-grid{display:grid;grid-template-columns:minmax(480px,1fr) minmax(420px,.96fr);gap:16px}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:46px;padding:0 18px;border-bottom:1px solid var(--line)}.panel-header h2{display:flex;align-items:center;gap:9px}.panel-header svg{width:20px;height:20px}.panel-status{display:inline-flex;align-items:center;min-height:24px;padding:0 9px;border:1px solid #cfeedd;border-radius:999px;color:var(--green);background:var(--green-soft);font-size:12px;font-weight:800;white-space:nowrap}.panel-status.stale{color:#9a5600;border-color:#ffd9a1;background:var(--amber-soft)}.panel-status.offline{color:#a92323;border-color:#ffc8c8;background:var(--red-soft)}.activity-table{display:grid}.table-row{display:grid;grid-template-columns:150px minmax(210px,1fr) 110px minmax(180px,.8fr) 110px;align-items:center;min-height:54px;padding:0 18px;border-bottom:1px solid var(--line-soft);color:#425067;font-size:14px}.table-row span{min-width:0}.table-row:not(.table-state)>span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.table-state span{grid-column:1 / -1;color:var(--muted)}.source-cell,.broadcast-cell{display:inline-flex;align-items:center;min-width:0}.broadcast-stack{display:grid;gap:5px;align-items:center;min-width:0;padding:5px 0}.source-cell strong,.broadcast-cell span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.message-audio{display:block;width:min(100%,178px);height:28px}.source-cell strong{margin-left:8px;color:#2e3a4f;font-size:13px}.table-head{min-height:34px;background:var(--panel-soft);color:#283244;font-weight:700}.source-dot{width:26px;height:26px;padding:5px;border-radius:50%}.tag{display:inline-flex;align-items:center;min-height:24px;padding:0 10px;border:1px solid;border-radius:999px;font-size:13px;font-style:normal;font-weight:700}.tag.sent{color:var(--green);background:var(--green-soft);border-color:#cfeedd}.tag.ignored{color:#687386;background:#f1f4f8;border-color:#dce3ed}.tag.retrying{color:var(--amber);background:var(--amber-soft);border-color:#ffd9a1}.tag.failed{color:var(--red);background:var(--red-soft);border-color:#ffc8c8}.tag.pending{color:var(--blue);background:var(--blue-soft);border-color:#c7dbff}.zello-mini{display:inline-grid;place-items:center;width:18px;height:18px;margin-right:8px;border-radius:4px;background:var(--orange);color:#fff;font-size:14px;line-height:1}.panel-footer{display:flex;align-items:center;min-height:42px;padding:0 18px}.text-link{padding:0;border:0;background:transparent;color:var(--blue);font-weight:700}.tabs{display:flex;gap:0;padding:12px 18px 8px}.tab{min-width:90px;height:30px;padding:0 14px;border:1px solid var(--line);border-right:0;background:var(--panel);color:#5c687a;font-weight:700}.tab:first-child{border-radius:6px 0 0 6px}.tab:last-child{border-right:1px solid var(--line);border-radius:0 6px 6px 0}.tab.active{background:var(--blue-soft);border-color:#8eb7ff;color:var(--blue)}.failure-list{padding:0 18px}.failure-state{min-height:88px;padding:24px 12px;border:1px dashed var(--line);border-radius:7px;background:var(--panel-soft);color:var(--muted);font-size:14px}.failure-item{overflow:hidden;border:1px solid var(--line-soft);border-radius:7px;background:var(--panel-soft)}.failure-item+.failure-item{margin-top:8px}.failure-item header,.failure-detail{display:grid;align-items:center;gap:12px}.failure-item header{grid-template-columns:12px 1fr 24px;min-height:36px;padding:0 14px}.failure-item h3{font-size:15px}.failure-item header strong{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#eef2f6;color:#697589;font-size:12px}.severity.red{background:var(--red)}.severity.amber{background:var(--amber)}.failure-detail{grid-template-columns:72px minmax(150px,1fr) auto auto 28px;min-height:45px;padding:0 8px 0 16px;border-top:1px solid var(--line-soft);color:#4e5b70;font-size:14px}.failure-detail span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.secondary-button{min-height:30px;padding:0 14px;border:1px solid #aebbd0;background:#fff;color:#29425f;font-weight:700}.failure-detail .secondary-button:first-of-type{color:var(--blue);border-color:#90b7ff}.secondary-button:disabled,.primary-button:disabled,.audio-preview:disabled{cursor:not-allowed;opacity:.62}.plain-icon{width:28px;height:28px;border:0;background:transparent;color:#536174}.source-panel,.test-panel,.config-panel,.audit-panel,.users-panel{min-height:260px}.source-layout{display:grid;grid-template-columns:minmax(360px,1fr) minmax(280px,.48fr);gap:18px;padding:16px 18px}.source-metrics{display:grid;grid-template-columns:repeat(2,minmax(160px,1fr));gap:1px;overflow:hidden;border:1px solid var(--line-soft);border-radius:7px;background:var(--line-soft)}.source-metrics div{display:grid;gap:4px;min-height:58px;padding:10px 12px;background:var(--panel-soft)}.source-metrics dt{color:var(--muted);font-size:12px;font-weight:800}.source-metrics dd{min-width:0;margin:0;overflow:hidden;color:#29364d;font-size:14px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.source-actions{display:grid;align-content:start;gap:10px}.source-actions label{display:grid;gap:6px;color:#536276;font-size:13px;font-weight:800}.source-actions input{min-height:38px;border:1px solid var(--line);border-radius:6px;padding:0 10px;color:#263247}.source-notice{color:var(--muted);font-size:14px}.source-notice.success{color:var(--green)}.source-notice.loading{color:var(--amber)}.source-notice.error{color:var(--red)}.test-grid{display:grid;grid-template-columns:1fr 1fr .9fr;gap:18px;padding:12px 18px 10px}.field-card{display:flex;flex-direction:column;gap:8px;color:#243046;font-size:13px;font-weight:700}textarea,.preview-card output{min-height:92px;padding:14px 12px;border:1px solid #9ebcff;border-radius:6px;background:#fff;color:#4a586d;line-height:1.45;resize:none}.preview-card output[data-state=error]{border-color:#ffc8c8;background:var(--red-soft);color:#8f2020}.preview-card output[data-state=empty]{border-color:var(--line);color:var(--muted)}.field-card small{align-self:flex-end;color:#69778b;font-size:13px;font-weight:600}.preview-meta{align-self:stretch;min-height:18px;color:#526176}.channel-field{display:grid;gap:6px;color:#536276;font-size:13px;font-weight:800}.channel-field input{width:100%;min-height:36px;padding:0 12px;border:1px solid var(--line);border-radius:6px;color:#263247;background:#fff}.mode-status{display:flex;align-items:center;gap:9px;min-height:36px;padding:0 12px;border:1px solid var(--line);border-radius:6px;color:#425066;background:var(--panel-soft);font-size:13px;font-weight:800}.mode-status svg{width:17px;height:17px}.mode-status.mode-mock{color:#9a5600;border-color:#ffd9a1;background:var(--amber-soft)}.mode-status.mode-live{color:#176c37;border-color:#cfeedd;background:var(--green-soft)}.audio-preview,.select-button,.disabled-button,.primary-button{min-height:36px;border:1px solid var(--line);background:#fff;color:#425066;font-weight:700}.audio-preview{justify-content:space-between;width:100%;padding:0 12px}.select-button{justify-content:space-between;width:100%;padding:0 14px}.disabled-button{width:100%;color:#99a5b7;background:#f0f3f7}.primary-button{width:100%;color:#fff;border-color:var(--blue);background:var(--blue)}.notice{display:flex;align-items:center;gap:10px;min-height:45px;padding:0 18px;border-top:1px solid var(--line);color:#516176;font-size:14px}.notice.success{color:#176c37;background:var(--green-soft)}.notice.error{color:#8f2020;background:var(--red-soft)}.notice.loading{color:#1b62cf;background:var(--blue-soft)}.notice svg{width:19px;height:19px;color:var(--blue)}.config-list{display:grid}.config-list div{display:grid;grid-template-columns:160px minmax(0,1fr) auto;align-items:center;min-height:42px;gap:12px;padding:0 18px;border-bottom:1px solid var(--line-soft)}.config-list dt{color:#536276;font-size:14px}.config-list dd{color:#37445a;font-size:14px}.config-list .secondary-button{grid-row:1;grid-column:3;min-height:32px;color:var(--blue);border-color:#8eb7ff}.settings-editor{display:grid;grid-template-columns:minmax(360px,1fr) minmax(320px,.8fr);gap:18px;padding:16px 18px;border-top:1px solid var(--line-soft)}.settings-form{display:grid;grid-template-columns:repeat(2,minmax(160px,1fr));gap:12px}.settings-form label{display:grid;gap:6px;color:#536276;font-size:13px;font-weight:800}.settings-form input,.settings-form textarea{width:100%;min-height:38px;border:1px solid var(--line);border-radius:6px;background:#fff;color:#263247;padding:8px 10px}.settings-form textarea{min-height:88px;resize:vertical}.settings-form input:disabled,.settings-form textarea:disabled{color:#6c788a;background:#f1f4f8}.wide-field{grid-column:1 / -1}.settings-preview{display:grid;grid-template-rows:auto minmax(78px,auto) auto 1fr;gap:12px;min-width:0}.settings-preview h3{font-size:15px}.diff-list,.revision-list,.audit-state{border:1px dashed var(--line);border-radius:7px;background:var(--panel-soft);color:var(--muted);font-size:14px}.diff-list{min-height:84px;padding:12px}.diff-list ul{display:grid;gap:8px;margin:0;padding:0;list-style:none}.diff-list li{line-height:1.35}.diff-list strong{color:#263247}.settings-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.settings-actions .secondary-button,.settings-actions .primary-button{width:100%;min-height:34px;padding:0 10px}.revision-list{display:grid;gap:8px;max-height:190px;overflow:auto;padding:10px}.revision-item{display:grid;gap:3px;width:100%;min-height:48px;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:#fff;color:#344158;text-align:left}.revision-item strong,.revision-item span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.revision-item span{color:var(--muted);font-size:12px}.revision-item.active{border-color:#cfeedd;background:var(--green-soft)}.config-notice{color:var(--muted);font-size:14px}.config-notice.success{color:var(--green)}.config-notice.warning,.config-notice.loading{color:var(--amber)}.config-notice.error{color:var(--red)}.audit-state{margin:18px;min-height:94px;padding:24px 18px}.audit-state{display:grid;gap:8px}.audit-row{display:grid;grid-template-columns:1.1fr 1.3fr 1.2fr minmax(160px,1fr);gap:10px;align-items:center;min-height:42px;padding:8px 10px;border:1px solid var(--line-soft);border-radius:6px;background:#fff;color:#3a465a}.audit-row strong,.audit-row span,.audit-row em{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audit-row strong{color:#263247}.audit-row span,.audit-row em{color:var(--muted);font-style:normal;font-size:13px}.audit-empty{color:var(--muted)}.users-layout{display:grid;grid-template-columns:minmax(260px,.36fr) minmax(420px,1fr);gap:18px;padding:18px}.user-create-form{display:grid;align-content:start;gap:12px}.user-create-form label{display:grid;gap:6px;color:#536276;font-size:13px;font-weight:800}.user-create-form input,.user-create-form select{width:100%;min-height:38px;border:1px solid var(--line);border-radius:6px;background:#fff;color:#263247;padding:8px 10px}.user-form-notice{min-height:22px;color:var(--muted);font-size:14px}.user-form-notice.success{color:var(--green)}.user-form-notice.loading{color:var(--amber)}.user-form-notice.error{color:var(--red)}.users-list{display:grid;gap:8px;align-content:start;min-height:168px;padding:10px;border:1px dashed var(--line);border-radius:7px;background:var(--panel-soft);color:var(--muted);font-size:14px}.user-row{display:grid;grid-template-columns:minmax(130px,1.2fr) 110px 90px minmax(120px,1fr);align-items:center;gap:10px;min-height:42px;padding:8px 10px;border:1px solid var(--line-soft);border-radius:6px;background:#fff;color:#3a465a}.user-row strong,.user-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-role,.user-active,.user-inactive{display:inline-flex;justify-content:center;min-height:24px;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:800}.user-role{color:var(--blue);background:var(--blue-soft)}.user-active{color:var(--green);background:var(--green-soft)}.user-inactive{color:var(--red);background:var(--red-soft)}.users-empty{padding:18px 10px;color:var(--muted)}@media(max-width:1180px){.app-shell{grid-template-columns:86px minmax(0,1fr)}.brand span,.nav-item span,.collapse-control span{display:none}.brand{justify-content:center;padding:0}.nav-item{grid-template-columns:1fr auto;justify-items:center}.status-grid{grid-template-columns:repeat(2,minmax(180px,1fr))}.dashboard-grid{grid-template-columns:1fr}}@media(max-width:760px){.app-shell,.app-shell.sidebar-collapsed{grid-template-columns:1fr}.sidebar{position:static;height:auto;border-right:0}.brand,.app-shell.sidebar-collapsed .brand{justify-content:flex-start;padding:0 16px}.brand span,.nav-item span,.app-shell.sidebar-collapsed .brand span,.app-shell.sidebar-collapsed .nav-item span{display:inline}.app-shell.sidebar-collapsed .nav-item{grid-template-columns:28px 1fr auto;justify-items:stretch}.nav-list{display:grid;grid-template-columns:repeat(3,1fr)}.collapse-control{display:none}.topbar{height:auto;padding:10px}.topbar-actions{flex-wrap:wrap;gap:8px;height:auto}.icon-button,.user-menu{height:38px;border:1px solid var(--line)}.main-view{padding:12px}.page-heading,.refresh-control{align-items:flex-start;flex-direction:column}.status-grid,.test-grid{grid-template-columns:1fr}.table-row{grid-template-columns:minmax(110px,.9fr) minmax(180px,1fr) 86px}.table-row>span:nth-child(4),.table-row>span:nth-child(5){display:none}.failure-detail{grid-template-columns:72px 1fr;padding:10px 14px}.failure-detail button{justify-self:start}.config-list div,.settings-editor,.settings-form,.source-layout,.source-metrics,.users-layout,.user-row{grid-template-columns:1fr;align-items:start}.config-list div{padding:10px 18px}.config-list .secondary-button{grid-column:1}.settings-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.audit-row{grid-template-columns:1fr}}
