:root{--ground:#f4f5f2;--surface:#fff;--ink:#17212b;--ink-2:#2d3843;--muted:#5b6672;--line:#e2e5e0;--line-2:#eceeea;--accent:#0f5f5c;--accent-ink:#0a4644;--accent-soft:#e3efec;--side:#14222b;--side-2:#1f313c;--side-ink:#e6ecea;--side-muted:#9fb0ae;--warn:#b4470c;--warn-soft:#fdf1e7;--warn-line:#f0c9aa;--crit:#a3231f;--crit-soft:#fdecea;--ok:#1f6b3a;--ok-soft:#e1f0e5;--danger:#9a3b0a;color:var(--ink);background:var(--ground);-webkit-font-smoothing:antialiased;font-family:Instrument Sans,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}h1,h2,h3,p{margin:0}code,.mono,pre{font-family:JetBrains Mono,ui-monospace,monospace}.sr-only{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--muted)}.small{font-size:12px}.grow{flex:1}.center{place-items:center;min-height:100vh;padding:24px;display:grid}.btn-primary,.btn-dark,.btn-light,.btn-danger{border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:8px;height:40px;padding:0 16px;font-size:14px;font-weight:600;display:inline-flex}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-ink)}.btn-dark{background:var(--ink);color:#fff}.btn-light{background:var(--surface);border-color:#d5dad3}.btn-light:hover{background:var(--ground)}.btn-danger{background:var(--surface);color:var(--danger);border-color:#e2c2b0}.sm{height:32px;padding:0 12px;font-size:13px}.link-btn{color:var(--accent);background:0 0;border:none;padding:0;font-size:14px;font-weight:600}.link-btn:hover{text-decoration:underline}.avatar{background:var(--accent);color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:38px;height:38px;font-size:14px;font-weight:600;display:flex}.avatar.sm{width:32px;height:32px;font-size:13px}.avatar.bot{background:var(--ink);border-radius:10px}.tag{letter-spacing:.05em;color:var(--ink-2);text-transform:uppercase;background:#dde2dc;border-radius:5px;margin-left:6px;padding:2px 6px;font-size:10px;font-weight:700}.logo-mark{background:var(--accent);color:#fff;border-radius:17px;justify-content:center;align-items:center;width:60px;height:60px;display:flex}.logo-mark.sm{border-radius:10px;width:34px;height:34px}.login{place-items:center;min-height:100vh;padding:32px 16px;display:grid}.login-card{background:var(--surface);border-radius:22px;width:100%;max-width:440px;padding:36px 32px;box-shadow:0 1px 2px #0000000a,0 12px 32px #14222b0f}.login h1{letter-spacing:-.02em;margin-top:22px;font-size:32px}.lead{color:#4d5864;margin-top:8px;line-height:1.5}.btn-microsoft{background:var(--ink);color:#fff;border:none;border-radius:12px;justify-content:center;align-items:center;gap:12px;width:100%;height:52px;margin-top:26px;font-size:16px;font-weight:600;display:flex}.check{cursor:pointer;align-items:flex-start;gap:12px;margin-top:20px;font-size:14px;display:flex}.check input{width:18px;height:18px;accent-color:var(--accent);margin-top:2px}.check small{color:var(--muted);margin-top:2px;line-height:1.4;display:block}.notice{background:var(--accent-soft);color:var(--accent-ink);border-radius:12px;margin-top:18px;padding:12px 14px;font-size:14px;line-height:1.45}.notice.error{background:var(--crit-soft);color:var(--crit)}.dev-login{border-top:1px solid var(--line);margin-top:24px;padding-top:18px}.dev-title{font-size:13px;font-weight:700}.dev-title span{color:var(--muted);margin-left:6px;font-weight:500}.test-password{gap:6px;margin-top:10px;font-size:13px;font-weight:600;display:grid}.test-password>div{gap:8px;display:flex}.test-password input{border:1px solid #c9cfc7;border-radius:10px;flex:1;min-width:0;height:40px;padding:0 12px;font-size:15px}.dev-users{gap:6px;margin-top:10px;display:grid}.dev-users button{text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:12px;align-items:center;gap:12px;padding:8px 10px;display:flex}.dev-users button:hover{border-color:var(--accent);background:var(--accent-soft)}.dev-users small{color:var(--muted);font-size:12px;display:block}.fineprint{color:var(--muted);align-items:center;gap:8px;margin-top:22px;font-size:13px;display:flex}.locked{text-align:center;background:var(--surface);border-radius:22px;justify-items:center;gap:14px;max-width:420px;padding:36px 28px;display:grid}.locked h1{font-size:22px}.locked p{color:#4d5864;line-height:1.5}.shell{flex-wrap:wrap;min-height:100vh;display:flex}.sidebar{background:var(--side);max-width:100%;color:var(--side-ink);flex-direction:column;flex:240px;gap:2px;padding:18px 12px;display:flex}.brand{align-items:center;gap:10px;padding:4px 8px 18px;display:flex}.brand small{color:var(--side-muted);font-size:12px;display:block}.side-title{letter-spacing:.06em;text-transform:uppercase;color:var(--side-muted);padding:0 10px 6px;font-size:12px;font-weight:700}.chan{color:#c9d3d1;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;width:100%;padding:8px 10px;font-size:15px;display:flex}.chan:hover{background:var(--side-2)}.chan.active{background:var(--accent);color:#fff;font-weight:600}.hash{opacity:.7}.chan-name{flex:1}.badge{color:#fff;background:#d9692a;border-radius:10px;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 6px;font-size:12px;font-weight:700;display:inline-flex}.side-link{background:var(--side-2);color:var(--side-ink);border:none;border-radius:10px;align-items:center;gap:10px;margin-top:12px;padding:10px;font-size:14px;font-weight:600;display:flex}.me{align-items:center;gap:10px;padding:12px 6px 0;display:flex}.me-name{flex:1;font-size:14px}.me .link-btn{color:var(--side-muted);font-size:13px;font-weight:500}.main{background:var(--surface);flex-direction:column;flex:999 560px;min-width:0;height:100vh;min-height:520px;display:flex}.offline-bar{background:var(--warn-soft);color:#7a3208;border-bottom:1px solid var(--warn-line);align-items:center;gap:10px;padding:10px 24px;font-size:14px;display:flex}.main-head{border-bottom:1px solid var(--line);padding:16px 24px}.main-head h1{font-size:20px}.main-head p{color:var(--muted);margin-top:2px;font-size:14px}.messages{flex-direction:column;flex:1;gap:16px;padding:20px 24px;display:flex;overflow-y:auto}.empty{color:var(--muted);text-align:center;margin-top:40px}.day{color:var(--muted);background:#eef0ec;border-radius:10px;align-self:center;padding:4px 10px;font-size:12px;font-weight:600}.msg{gap:12px;max-width:780px;display:flex}.msg.pending{opacity:.6}.msg-body{flex:1;min-width:0}.msg-head{align-items:center;gap:8px;font-size:15px;display:flex}.msg-head .tag{margin-left:0}.msg-head time{color:var(--muted);font-size:12px}.msg-text{color:#1e2a35;white-space:pre-wrap;overflow-wrap:anywhere;margin-top:3px;font-size:15px;line-height:1.5}.hint{color:var(--muted);margin-top:4px;font-size:12px}.card{border:1px solid var(--line);background:var(--surface);border-radius:12px;margin-top:6px;overflow:hidden}.card.sev-warning{border-color:var(--warn-line);background:#fffbf7}.card.sev-critical{background:snow;border-color:#efb3ae}.card-main{padding:14px 16px}.sev-label{letter-spacing:.04em;text-transform:uppercase;background:var(--ok-soft);color:var(--ok);border-radius:6px;padding:3px 7px;font-size:11px;font-weight:700}.sev-warning .sev-label{background:var(--warn);color:#fff}.sev-critical .sev-label{background:var(--crit);color:#fff}.sev-success .sev-label{background:var(--ok);color:#fff}.card-title{margin-top:8px;font-size:16px;font-weight:700}.card-text{color:var(--ink-2);margin-top:4px;font-size:14px;line-height:1.5}.card-fields{border-top:1px solid var(--line-2);flex-wrap:wrap;gap:8px 28px;margin:0;padding:12px 16px;display:flex}.card-fields dt{color:var(--muted);font-size:12px}.card-fields dd{margin:0;font-size:14px;font-weight:600}.card-actions{flex-wrap:wrap;align-items:center;gap:8px;padding:0 16px 14px;display:flex}.card-actions button{height:36px}.card-ack{color:var(--ok);align-items:center;gap:8px;padding:0 16px 14px;font-size:13px;font-weight:600;display:flex}.composer{gap:10px;padding:12px 24px 20px;display:flex}.composer input{border:1px solid #d5dad3;border-radius:12px;outline:none;flex:1;min-width:0;height:46px;padding:0 14px;font-size:15px}.composer input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.composer .btn-primary{height:46px}.details{border-left:1px solid var(--line);background:#fafbf9;flex:260px;max-width:100%;padding:20px;font-size:14px;line-height:1.5}.details h2{margin-bottom:6px;font-size:15px}.details h3{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:22px 0 8px;font-size:12px;font-weight:700}.plain{gap:6px;margin:0;padding:0;list-style:none;display:grid}.chip-row{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:8px 12px;font-weight:600}.admin{min-height:100vh}.admin-head{background:var(--surface);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:20px;padding:14px 28px;display:flex}.admin-head h1{font-size:20px}.back{align-items:center;gap:4px;display:inline-flex}.admin-body{flex-wrap:wrap;gap:28px;max-width:1240px;margin:0 auto;padding:28px 16px;display:flex}.admin-tabs{flex-direction:column;flex:200px;gap:4px;display:flex}.admin-tabs button{text-align:left;height:42px;color:var(--ink-2);background:0 0;border:none;border-radius:10px;padding:0 14px;font-size:15px}.admin-tabs button.active{background:var(--ink);color:#fff;font-weight:600}.admin-content{flex-direction:column;flex:999 640px;gap:22px;min-width:0;display:flex}.panel{background:var(--surface);border:1px solid var(--line);border-radius:16px;gap:12px;padding:22px;display:grid}.panel h2{font-size:18px}.panel>.muted{font-size:14px;line-height:1.5}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:600px;font-size:14px}th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;padding:8px 10px;font-size:12px}td{border-top:1px solid var(--line-2);vertical-align:middle;padding:11px 10px}td.mono{color:#4d5864;word-break:break-all;font-size:13px}td.actions{text-align:right;white-space:nowrap}td.actions button+button{margin-left:6px}.pill{background:var(--warn-soft);color:var(--danger);white-space:nowrap;border-radius:6px;padding:3px 8px;font-size:12px;font-weight:700}.pill.delivered{background:var(--ok-soft);color:var(--ok)}.pill.failed{background:var(--crit-soft);color:var(--crit)}.pill.off{background:var(--line-2);color:#4d5864}.inline-form{background:var(--ground);border-radius:12px;flex-wrap:wrap;align-items:flex-end;gap:12px;padding:14px;display:flex}.inline-form label,.settings-form label{flex-direction:column;flex:180px;gap:6px;font-size:13px;font-weight:600;display:flex}.inline-form label.wide{flex:2 280px}.inline-form input,.inline-form select,.settings-form input{background:var(--surface);border:1px solid #c9cfc7;border-radius:9px;height:40px;padding:0 12px;font-size:14px;font-weight:400}.inline-form fieldset{border:none;flex-wrap:wrap;flex:2 280px;align-items:center;gap:4px 14px;margin:0;padding:0;display:flex}.inline-form legend{margin-bottom:6px;font-size:13px;font-weight:600}.inline-form label.check-inline{flex-direction:row;flex:none;align-items:center;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:400}.check-inline input{height:auto;accent-color:var(--accent)}.settings-form{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-items:end;gap:16px;display:grid}.settings-form small{color:var(--muted);font-weight:400}.example summary{cursor:pointer;color:var(--accent);font-size:14px;font-weight:600}.example pre{background:var(--side);color:#d7e3e0;border-radius:10px;margin:10px 0 0;padding:14px;font-size:13px;line-height:1.6;overflow-x:auto}.secret{background:var(--ok-soft);color:var(--ok);border-radius:10px;gap:6px;padding:12px 14px;font-size:14px;display:grid}.secret code{word-break:break-all;color:var(--ink)}.sub-head{justify-content:space-between;align-items:center;margin-top:8px;display:flex}.sub-head h3{font-size:15px}.toast{background:var(--ok-soft);color:var(--ok);cursor:pointer;border-radius:10px;padding:12px 14px;font-size:14px;font-weight:600}.audit{margin:0;padding:0;list-style:none}.audit li{border-top:1px solid var(--line-2);flex-wrap:wrap;gap:4px 16px;padding:10px 0;font-size:14px;display:flex}.audit time{width:130px;color:var(--muted);flex:none}.audit span{flex:1;min-width:200px}.group-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;display:grid}.group-card{border:1px solid var(--line);background:#fcfdfb;border-radius:14px;align-content:start;gap:14px;padding:16px;display:grid}.group-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.group-head h3{margin:0;font-size:17px}.group-head p{margin-top:2px}.entra{color:#2e6a9e;font-weight:600;margin-top:6px!important}.group-section h4{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 8px;font-size:12px;font-weight:700}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{background:var(--accent-soft);color:var(--accent-ink);border-radius:999px;align-items:center;gap:6px;margin:2px 4px 2px 0;padding:4px 6px 4px 10px;font-size:13px;font-weight:600;display:inline-flex}.chip.off{background:var(--line-2);color:var(--muted);text-decoration:line-through}.chip-x{width:22px;height:22px;color:inherit;background:0 0;border:none;border-radius:50%;font-size:16px;line-height:1}.chip-x:hover{background:#0f5f5c26}.chip-note{color:#2e6a9e;background:#e4eef7;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600}.add-member{gap:8px;margin-top:10px;display:flex}.add-member select{background:var(--surface);border:1px solid #c9cfc7;border-radius:8px;flex:1;min-width:0;height:32px;padding:0 8px;font-size:13px}.channel-checks{flex-wrap:wrap;gap:6px 16px;display:flex}.check-inline{cursor:pointer;align-items:center;gap:6px;font-size:14px;display:inline-flex}.check-inline input{accent-color:var(--accent)}.inline-form label.plain-font,.plain-font{font-family:inherit!important;font-size:14px!important}.group-edit{gap:10px;display:grid}.group-edit label{gap:4px;font-size:13px;font-weight:600;display:grid}.group-edit input{border:1px solid #c9cfc7;border-radius:8px;height:36px;padding:0 10px;font-size:14px;font-weight:400}.row-gap{gap:8px;display:flex}.push-right{margin-left:auto}@media (width<=1100px){.details{display:none}}@media (width<=720px){.main{height:auto;min-height:70vh}.messages{max-height:60vh}.details{border-left:none;border-top:1px solid var(--line)}}
