:root{color-scheme:dark;--bg:#0b0f14;--panel:#141a22;--panel2:#1b2430;--line:#2b3542;--text:#eef4fa;--muted:#95a3b5;--yellow:#f4c430;--yellow2:#ffdf6e;--red:#ff5c5c;--green:#42d392;--blue:#65a7ff}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top left,#17202b 0,#0b0f14 38%);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.45}a{color:var(--text);text-decoration:none}.topbar{width:min(1440px,calc(100% - 32px));margin:0 auto;padding:28px 0 18px;display:flex;justify-content:space-between;align-items:flex-end;gap:20px}.topbar h1{margin:0;font-size:clamp(2rem,4vw,3.6rem);letter-spacing:0}.topbar nav{display:flex;align-items:center;gap:12px}.topbar nav a,.ghost{border:1px solid var(--line);background:rgba(255,255,255,.03);color:var(--text);border-radius:8px;padding:10px 14px}.shell{width:min(1440px,calc(100% - 32px));margin:0 auto 44px}.eyebrow{margin:0 0 8px;color:var(--yellow);text-transform:uppercase;font-size:.78rem;letter-spacing:.08em;font-weight:800}.muted{color:var(--muted);margin:.35rem 0 0}.hero{display:flex;justify-content:space-between;align-items:center;gap:20px;background:linear-gradient(135deg,#141a22,#101720);border:1px solid var(--line);border-radius:8px;padding:22px;margin-bottom:18px}.hero h2{margin:6px 0 0}.feed-button{position:relative;overflow:hidden;min-width:260px;border:0;border-radius:8px;padding:18px 22px;background:linear-gradient(135deg,var(--yellow),var(--yellow2));color:#171200;font-weight:900;box-shadow:0 12px 34px rgba(244,196,48,.2);cursor:pointer;transition:transform .18s ease,box-shadow .18s ease}.feed-button:hover{transform:translateY(-2px);box-shadow:0 18px 44px rgba(244,196,48,.32)}.feed-button span{display:block;font-size:1.08rem}.feed-button small{display:block;margin-top:4px;color:#4a3900}.feed-button.loading:after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent,rgba(255,255,255,.45),transparent);animation:shine 1.1s linear infinite}@keyframes shine{from{transform:translateX(-100%)}to{transform:translateX(100%)}}.status-dot{display:inline-flex;width:12px;height:12px;border-radius:50%;background:var(--muted);box-shadow:0 0 0 6px rgba(149,163,181,.12)}.status-dot.ok{background:var(--green);box-shadow:0 0 0 6px rgba(66,211,146,.14)}.status-dot.alert,.status-dot.error{background:var(--red);box-shadow:0 0 0 6px rgba(255,92,92,.14)}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.metric{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:16px}.metric span{display:block;color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}.metric strong{display:block;margin-top:8px;font-size:2rem}.panel{background:rgba(20,26,34,.92);border:1px solid var(--line);border-radius:8px;margin-bottom:18px;overflow:hidden}.pad{padding:20px}.section-head{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:17px 20px;border-bottom:1px solid var(--line);background:#111821}.section-head h2,.pad h2{margin:0}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:860px}th,td{padding:14px 16px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;font-size:.92rem}th{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;background:#121922}td small{display:block;color:var(--muted);margin-top:3px}.empty{text-align:center;color:var(--muted);padding:28px}.pill{display:inline-flex;border-radius:999px;padding:4px 10px;border:1px solid var(--line);background:#252d38}.pill.ok{color:#b8ffd7;background:rgba(66,211,146,.13);border-color:rgba(66,211,146,.32)}.pill.alert,.pill.error{color:#ffd0d0;background:rgba(255,92,92,.13);border-color:rgba(255,92,92,.34)}.notice{border:1px solid var(--line);background:var(--panel2);border-radius:8px;padding:14px 16px;margin-bottom:18px}.notice.danger,.alert-panel{border-color:rgba(255,92,92,.4)}.notice.success{border-color:rgba(66,211,146,.4)}.hidden{display:none}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px}.alert-card{border:1px solid rgba(255,92,92,.34);background:rgba(255,92,92,.09);border-radius:8px;padding:15px}.login-body{min-height:100vh;display:grid;place-items:center;padding:20px}.login-panel{width:min(440px,100%);background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:28px}.login-panel h1{margin:0;font-size:2rem}.form-stack,.form-grid{display:grid;gap:14px}.form-stack{margin-top:22px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:18px}label{display:grid;gap:7px;color:var(--muted);font-size:.9rem}input,select{width:100%;border:1px solid var(--line);background:#0f151d;color:var(--text);border-radius:8px;padding:11px 12px}.primary{border:0;border-radius:8px;padding:12px 16px;background:var(--yellow);color:#151000;font-weight:900;cursor:pointer}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.query-list{grid-column:1/-1}.query-list article{padding:16px 20px;border-bottom:1px solid var(--line)}pre{white-space:pre-wrap;color:#c5d0df;background:#0f151d;border:1px solid var(--line);border-radius:8px;padding:12px;overflow:auto}@media(max-width:900px){.topbar,.hero{flex-direction:column;align-items:flex-start}.metrics,.cards,.admin-grid{grid-template-columns:1fr}.feed-button{width:100%}.form-grid{grid-template-columns:1fr}}@media(max-width:560px){.topbar,.shell{width:min(100% - 20px,1440px)}table{min-width:760px}th,td{padding:12px}.hero{padding:16px}}

.filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:end;padding:18px 20px}.filter-actions{display:flex;gap:10px;align-items:center}.filter-actions .ghost{display:inline-flex;align-items:center;justify-content:center}.stepper{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding:18px}.step-card{position:relative;display:grid;grid-template-columns:34px 1fr;gap:12px;min-height:142px;border:1px solid var(--line);background:#101720;border-radius:8px;padding:15px;overflow:hidden}.step-card:before{content:"";position:absolute;left:31px;top:48px;bottom:16px;width:1px;background:var(--line)}.step-card.ok{border-color:rgba(66,211,146,.36);background:rgba(66,211,146,.08)}.step-card.alert{border-color:rgba(244,196,48,.44);background:rgba(244,196,48,.09)}.step-card.error{border-color:rgba(255,92,92,.42);background:rgba(255,92,92,.09)}.step-card.running{border-color:rgba(101,167,255,.42);background:rgba(101,167,255,.09)}.step-icon{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#222b36;border:1px solid var(--line);z-index:1}.step-icon span{width:10px;height:10px;border-radius:50%;background:var(--muted)}.step-card.ok .step-icon span{background:var(--green)}.step-card.alert .step-icon span{background:var(--yellow)}.step-card.error .step-icon span{background:var(--red)}.step-card.running .step-icon span{background:var(--blue);animation:pulse 1.1s ease-in-out infinite}.step-title{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.step-card p{margin:8px 0 0;color:#dce6f2}.step-card small{display:block;margin-top:8px;color:var(--muted);word-break:break-word}.pill.pending{color:#d4dbe5;background:rgba(149,163,181,.12)}.pill.running{color:#d7e8ff;background:rgba(101,167,255,.13);border-color:rgba(101,167,255,.34)}.selected-row{background:rgba(244,196,48,.06)}@keyframes pulse{0%,100%{transform:scale(.88);opacity:.7}50%{transform:scale(1.25);opacity:1}}@media(max-width:1100px){.stepper{grid-template-columns:repeat(2,minmax(0,1fr))}.filters{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.stepper,.filters{grid-template-columns:1fr}.filter-actions{align-items:stretch}.filter-actions .primary,.filter-actions .ghost{width:100%}}

.admin-wide{grid-column:1/-1}.span-2{grid-column:span 2}.rules-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.pad .muted{margin-bottom:14px}@media(max-width:900px){.span-2,.admin-wide{grid-column:auto}.rules-grid{grid-template-columns:1fr}}
.critical-panel{border-color:rgba(244,196,48,.28);background:linear-gradient(180deg,rgba(18,25,34,.98),rgba(13,19,27,.96));box-shadow:0 18px 44px rgba(0,0,0,.24)}.critical-head{position:relative;display:grid;justify-items:center;text-align:center;gap:8px;padding:28px 20px 24px;border-bottom:1px solid rgba(244,196,48,.22);background:linear-gradient(135deg,rgba(244,196,48,.12),rgba(101,167,255,.06) 48%,rgba(66,211,146,.08))}.critical-kicker{color:var(--yellow);font-size:.76rem;font-weight:900;text-transform:uppercase;letter-spacing:.12em}.critical-head h2{margin:0;font-size:clamp(1.8rem,3.2vw,3rem);letter-spacing:0}.critical-head p{margin:0;color:var(--muted)}.critical-state{display:inline-flex;align-items:center;gap:10px;margin-top:6px;padding:9px 14px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.04);font-weight:800}.critical-state.ok{border-color:rgba(66,211,146,.34);color:#caffdf}.critical-state.alert,.critical-state.error{border-color:rgba(255,92,92,.38);color:#ffd0d0}.routes-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding:18px}.route-card{display:flex;min-height:230px;flex-direction:column;justify-content:space-between;border:1px solid var(--line);border-radius:8px;background:#101720;padding:16px;box-shadow:inset 0 1px 0 rgba(255,255,255,.03)}.route-card.ok{border-color:rgba(66,211,146,.32);background:linear-gradient(180deg,rgba(66,211,146,.1),rgba(16,23,32,.98) 48%)}.route-card.alert,.route-card.error{border-color:rgba(255,92,92,.38);background:linear-gradient(180deg,rgba(255,92,92,.12),rgba(16,23,32,.98) 48%)}.route-card-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.route-card-top strong{display:block;font-size:1rem}.route-card-top small{display:block;margin-top:4px;color:var(--muted);word-break:break-word}.route-status{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:30px;border-radius:999px;border:1px solid var(--line);font-size:.82rem;font-weight:900;text-transform:uppercase}.route-status.ok{color:#b8ffd7;background:rgba(66,211,146,.14);border-color:rgba(66,211,146,.36)}.route-status.alert,.route-status.error{color:#ffd0d0;background:rgba(255,92,92,.14);border-color:rgba(255,92,92,.38)}.route-card-body{display:grid;gap:12px;margin:20px 0}.route-count{display:flex;align-items:baseline;gap:8px}.route-count span{font-size:2.25rem;font-weight:900;line-height:1}.route-count small{color:var(--muted);text-transform:uppercase;font-size:.72rem;letter-spacing:.08em}.route-card-body p{margin:0;color:#e8f0f8}.route-card footer{color:var(--muted);font-size:.78rem;border-top:1px solid rgba(255,255,255,.07);padding-top:12px}@media(max-width:1180px){.routes-board{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.routes-board{grid-template-columns:1fr;padding:14px}.critical-head{padding:22px 14px}.route-card{min-height:auto}.route-count span{font-size:2rem}}
.filters-wide{grid-template-columns:repeat(7,minmax(0,1fr))}.route-samples{display:grid;gap:7px;margin-bottom:12px}.sample-line{display:flex;flex-wrap:wrap;gap:7px}.sample-line span{border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.035);border-radius:6px;padding:5px 7px;color:var(--muted);font-size:.76rem}.sample-line strong{color:var(--text);font-weight:800}.route-card footer{display:flex;align-items:center;justify-content:space-between;gap:10px}.route-card footer a{color:var(--yellow);font-weight:900}.detail-panel{overflow:visible}.detail-body{padding:18px 20px}.detail-summary{font-size:1.04rem;margin:0 0 12px}.detail-meta{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}.detail-meta span{border:1px solid var(--line);background:rgba(255,255,255,.035);border-radius:999px;padding:6px 10px;color:var(--muted);font-size:.82rem}.detail-body h3{margin:20px 0 12px}.sample-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.sample-card{border:1px solid var(--line);background:#101720;border-radius:8px;padding:14px;display:grid;gap:10px}.sample-card div{display:grid;gap:3px}.sample-card span{color:var(--muted);font-size:.76rem;text-transform:uppercase;letter-spacing:.05em}.sample-card strong{font-size:.92rem;word-break:break-word}details{margin-top:16px}summary{cursor:pointer;color:var(--yellow);font-weight:900}@media(max-width:1250px){.filters-wide{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.filters-wide,.sample-grid{grid-template-columns:1fr}.route-card footer{align-items:flex-start;flex-direction:column}}
.day-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;border:1px solid var(--line);background:#0f151d;border-radius:8px;padding:12px}.day-picker>span{grid-column:1/-1;color:var(--muted);font-size:.82rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.day-picker label{display:flex;align-items:center;gap:8px;color:var(--text);font-size:.9rem}.day-picker input{width:auto}.inline-action{margin-top:14px}.route-details,.detail-points{margin:0;padding-left:18px;color:#dce6f2}.route-details{display:grid;gap:5px;font-size:.86rem}.detail-points{display:grid;gap:7px;margin-bottom:16px}@media(max-width:760px){.day-picker{grid-template-columns:repeat(2,minmax(0,1fr))}}
textarea{width:100%;border:1px solid var(--line);background:#0f151d;color:var(--text);border-radius:8px;padding:11px 12px;font:inherit;resize:vertical;min-height:86px}textarea[name="sql"]{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;font-size:.86rem;line-height:1.45}.query-editors{display:grid;gap:14px;padding:16px}.query-editor{position:relative;border:1px solid var(--line);background:#101720;border-radius:8px;padding:16px}.query-editor.disabled{opacity:.72;background:#0d131b}.query-editor h3{margin:0 0 14px}.query-form{grid-template-columns:120px 120px minmax(160px,1fr) minmax(220px,1.2fr);margin-top:0}.query-actions{display:flex;gap:10px;align-items:center}.delete-query{position:absolute;right:16px;bottom:16px}.ghost.danger{border-color:rgba(255,92,92,.38);color:#ffd0d0}.new-query{margin:0 16px 16px;background:rgba(244,196,48,.06);border-color:rgba(244,196,48,.26)}@media(max-width:980px){.query-form{grid-template-columns:1fr}.delete-query{position:static;margin-top:12px}.query-actions{padding-right:0}}

.vpn-actions{margin-top:18px;display:grid;gap:14px;border-top:1px solid var(--line);padding-top:16px}.vpn-token-form{grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto;align-items:end;margin-top:0}.vpn-token-form .primary{height:43px}@media(max-width:900px){.vpn-token-form{grid-template-columns:1fr}.vpn-token-form .primary{height:auto}}

.backup-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:14px}.backup-actions .inline-action{margin-top:0}.compact-button{padding:7px 10px;font-size:.82rem}.backup-history td form{margin:0}@media(max-width:760px){.backup-actions{align-items:stretch}.backup-actions form,.backup-actions button{width:100%}}

.security-state{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:14px 0 18px}.twofa-setup{display:grid;grid-template-columns:180px 1fr;gap:18px;align-items:center;margin:18px 0;padding:16px;border:1px solid var(--line);border-radius:8px;background:#101720}.twofa-setup img{width:180px;height:180px;border-radius:8px;background:#fff;padding:8px}.twofa-setup input[readonly]{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;letter-spacing:.08em}.external-note{border:1px solid rgba(101,167,255,.26);background:rgba(101,167,255,.08);border-radius:8px;padding:12px;color:#d7e8ff}@media(max-width:760px){.twofa-setup{grid-template-columns:1fr}.twofa-setup img{width:160px;height:160px}}

.external-note code{display:block;margin-top:6px;white-space:normal;word-break:break-all;color:#e8f3ff}
.webhook-log-head{margin-top:18px;border:1px solid var(--line);border-bottom:0;border-radius:8px 8px 0 0}.webhook-log-head h3{margin:0}.webhook-log-table{border:1px solid var(--line);border-radius:0 0 8px 8px;background:#101720}.webhook-log-table table{min-width:1100px}.webhook-log-table td:nth-child(2){min-width:260px}.webhook-log-table td:nth-child(5){min-width:320px}.webhook-flags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:7px}
.check-row{display:flex;grid-template-columns:none;align-items:center;gap:9px;color:var(--text)}.check-row input{width:auto}.inline-section-head{margin:-20px -20px 18px}.security-table{margin:10px 0 18px;border:1px solid var(--line);border-radius:8px;background:#101720}.security-table table{min-width:1050px}.security-table td:nth-child(6) small,.security-table td:nth-child(2) small{max-width:420px;word-break:break-word}
