:root{--bg:#101922;--panel:#16232e;--panel-soft:#1f2933;--border:#aabbc929;--border-strong:#aabbc93d;--danger:#ff594d;--text:#b6c2cd;--text-muted:#94a3af;--text-strong:#e5edf4;--sans:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;color:var(--text);background:var(--bg);font:16px/1.45 var(--sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{min-width:320px;min-height:100svh;margin:0}button,input,textarea,select{font:inherit}button:focus-visible{outline:2px solid var(--danger);outline-offset:3px}#root{min-height:100svh}.app-shell,.login-screen{min-height:100svh;color:var(--text);background:radial-gradient(circle at 50% 36%,#506f8224,#0000 38%),linear-gradient(135deg,#16222c 0%,#101922 48%,#0b141d 100%)}.app-shell{grid-template-columns:248px minmax(0,1fr);display:grid}.login-screen{place-items:center;padding:28px;display:grid}.login-card{border:1px solid var(--border-strong);background:linear-gradient(145deg,#22313fdb,#0d161fb8),#121d28d1;border-radius:8px;gap:26px;width:min(100%,460px);padding:30px;display:grid;box-shadow:inset 0 1px #ffffff09,0 22px 52px #00000047}.sidebar{border-right:1px solid var(--border);background:#0d161fb8;flex-direction:column;gap:22px;padding:28px 20px;display:flex;box-shadow:inset -18px 0 40px #0000002e}.brand{align-items:center;gap:14px;padding-bottom:10px;display:flex}.brand.compact{justify-content:center;padding:0}.logo-mark{color:#e7eef5;letter-spacing:4px;text-shadow:0 2px #8fa0af;background:linear-gradient(#c7d8e61a,#0d161fa6),#182632;border:1px solid #b2c6d61f;place-items:center;width:88px;height:58px;font-size:31px;font-weight:900;line-height:1;display:grid;box-shadow:inset 0 0 0 9px #08101873,0 18px 34px #00000042}.brand-name{color:var(--text-strong);letter-spacing:.05em;text-transform:uppercase;font-size:22px;font-weight:800;line-height:1.1}.brand-subtitle,.eyebrow{color:var(--text-muted);letter-spacing:.15em;text-transform:uppercase;font-size:12px;font-weight:700}.login-form{gap:18px;display:grid}.login-form h1,.page-header h1,.rules-toolbar h2,.placeholder-panel h2{color:var(--text-strong);margin:0;line-height:1.1}.login-form h1{margin-top:8px;font-size:34px}.login-copy{color:var(--text);margin:12px 0 0}.form-error{color:var(--danger);background:#ff594d14;border:1px solid #ff594d6b;border-radius:6px;margin:0;padding:10px 12px}.login-form label{color:var(--text-strong);gap:8px;font-weight:700;display:grid}.login-form input,.server-form input,.server-form select,.settings-form input{border:1px solid var(--border-strong);min-height:50px;color:var(--text-strong);background:#091119ad;border-radius:6px;outline:0;padding:0 14px}.login-form input:focus,.server-form input:focus,.server-form select:focus,.settings-form input:focus{border-color:#ff594d9e;box-shadow:0 0 0 3px #ff594d1f}.primary-button,.logout-button,.sidebar-nav-item,.ghost-button,.copy-button{border:1px solid var(--border-strong);min-height:54px;color:var(--text);font:inherit;cursor:pointer;background:#182430a8;border-radius:6px;align-items:center;gap:12px;font-weight:700;transition:border-color .16s,background-color .16s,color .16s,transform .16s;display:inline-flex}.primary-button{color:var(--text-strong);background:#ff594d29;justify-content:center;margin-top:4px}.primary-button:disabled{cursor:wait;opacity:.68;transform:none}.primary-button:hover,.logout-button:hover,.sidebar-nav-item:hover,.ghost-button:hover,.copy-button:hover{background:#2a3744cc;border-color:#ff594d8c;transform:translateY(-1px)}.primary-button:disabled:hover{border-color:var(--border-strong);background:#ff594d29;transform:none}.sidebar-nav{gap:10px;display:grid}.sidebar-nav-item{text-align:left;justify-content:flex-start;width:100%;padding:0 14px}.sidebar-nav-item.active{color:var(--danger);background:#ff594d1a;border-color:#ff594d75}.account-card{border:1px solid var(--border);background:#0911195c;border-radius:8px;gap:5px;margin-top:auto;padding:16px;display:grid}.account-card span,.account-card small{color:var(--text-muted)}.account-card strong{color:var(--text-strong)}.logout-button{color:var(--danger);justify-content:center}.ghost-button,.copy-button{min-height:42px;color:var(--text-strong);padding:0 12px}.copy-button .icon{width:20px;height:20px}.icon{flex:none;width:30px;height:30px}.dashboard{flex-direction:column;gap:26px;min-width:0;padding:34px 28px 24px;display:flex}.page-header{justify-content:space-between;align-items:center;gap:20px;width:100%;max-width:1240px;margin:0 auto;display:flex}.page-header h1{margin-top:6px;font-size:36px}.header-status,.rule-summary{border:1px solid var(--border-strong);background:#121d28b3;border-radius:8px;justify-items:end;gap:2px;min-width:172px;padding:14px 18px;display:grid}.header-status span,.rule-summary span,.rule-summary small{color:var(--text-muted);font-size:13px}.header-status strong{color:#45d267}.summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;width:100%;max-width:1240px;margin:0 auto;display:grid}.dashboard-grid{grid-template-columns:minmax(210px,250px) minmax(360px,1fr) minmax(250px,300px);align-items:center;gap:8px;width:100%;max-width:1240px;margin:0 auto;display:grid}.panel-column{flex-direction:column;gap:22px;display:flex}.panel-column h2{color:var(--text-strong);margin:0;font-size:22px;font-weight:700}.card-stack{gap:18px;display:grid}.data-card,.rule-card,.servers-table,.settings-card,.placeholder-panel,.rules-toolbar,.status-bar{border:1px solid var(--border-strong);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(145deg,#22313fd1,#0d161fa3),#121d28c7;box-shadow:inset 0 1px #ffffff09}.data-card{border-radius:8px;align-items:center;gap:16px;min-height:104px;padding:18px 20px;display:flex}.data-card .icon{color:var(--danger)}.data-card h3{color:var(--text-strong);margin:0 0 8px;font-size:20px;line-height:1.15}.data-card p{color:var(--text);margin:0;font-size:16px}.server-dashboard-page{gap:16px;width:100%;max-width:1240px;margin:0 auto;display:grid}.server-dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.server-dashboard-card{border:1px solid var(--border-strong);background:linear-gradient(145deg,#22313fd1,#0d161fa3),#121d28c7;border-radius:8px;gap:14px;padding:16px;display:grid}.server-dashboard-card-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.server-dashboard-card h3{color:var(--text-strong);margin:0 0 4px;font-size:20px}.server-dashboard-card-header span:not(.status-pill){color:var(--text-muted)}.bootstrap-strip{background:#ff594d14;border:1px solid #ff594d6b;border-radius:8px;justify-content:space-between;align-items:center;gap:14px;padding:12px;display:flex}.bootstrap-strip.pending{background:#f6c45314;border-color:#f6c4536b}.bootstrap-strip>div{gap:4px;min-width:0;display:grid}.bootstrap-strip strong{color:var(--text-strong)}.bootstrap-strip span{color:var(--text);font-size:14px;line-height:1.4}.bootstrap-strip small{color:var(--text-muted);overflow-wrap:anywhere}.confirmation-panel{border:1px solid var(--border-strong);background:linear-gradient(145deg,#22313ff5,#0d161ff0),#121d28f5;border-radius:8px;gap:20px;width:min(100%,520px);padding:22px;display:grid;box-shadow:0 24px 72px #0000006b}.confirmation-panel h2{color:var(--text-strong);margin:4px 0 10px;font-size:25px}.confirmation-panel p:not(.eyebrow){margin:0}.confirmation-actions{justify-content:flex-end;gap:10px;display:flex}.ghost-button:disabled{cursor:wait;opacity:.62;transform:none}.ghost-button:disabled:hover{background:#182430a8;transform:none}.server-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.server-metric-tile{border:1px solid var(--border);background:#09111947;border-radius:8px;gap:6px;min-width:0;padding:12px;display:grid}.server-metric-tile span{color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:700}.server-metric-tile strong{min-width:0;color:var(--text-strong);overflow-wrap:anywhere;font-size:15px}.mini-graph{width:100%;height:46px;color:var(--danger)}.mini-graph path{fill:none;stroke:#b2c6d62e;stroke-width:1px}.mini-graph polyline{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:3px}.metric{color:var(--danger);font-size:21px;line-height:1.25}.threat-card{grid-template-columns:64px minmax(0,1fr);align-content:center;row-gap:12px;display:grid}.threat-card .icon{grid-column:1;width:30px;height:30px;margin-left:8px}.flag{border-radius:3px;width:58px;height:38px;box-shadow:0 8px 18px #00000047}.attack-map{min-width:0}.attack-map svg{width:100%;max-height:470px;display:block;overflow:visible}.radar-ring{fill:#141f296b;stroke:#aabbc985;stroke-width:9px}.africa-outline{fill:#50637126;stroke:#a8b8c580;stroke-width:8px;stroke-linecap:round;stroke-linejoin:round}.flow-base,.flow-pulse{fill:none;stroke:var(--danger);stroke-linecap:round}.flow-base{stroke-width:7px;opacity:.9;filter:drop-shadow(0 0 8px #ff594d73)}.flow-pulse{stroke-width:9px;stroke-dasharray:26 150;stroke-dashoffset:176px;opacity:.95;filter:drop-shadow(0 0 6px #ff594df2)drop-shadow(0 0 16px #ff594d80);animation:2.1s linear infinite attack-flow}.attack-route:nth-of-type(2) .flow-pulse{animation-delay:-.35s}.attack-route:nth-of-type(3) .flow-pulse{animation-delay:-.7s}.attack-route:nth-of-type(4) .flow-pulse{animation-delay:-.2s}.attack-route:nth-of-type(5) .flow-pulse{animation-delay:-.55s}.attack-route:nth-of-type(6) .flow-pulse{animation-delay:-.9s}.target-dot{fill:var(--danger);transform-box:fill-box;transform-origin:50%;animation:2.4s ease-in-out infinite target-pulse}.bad-bots-page,.managed-servers-page,.settings-page{gap:18px;width:100%;max-width:1240px;margin:0 auto;display:grid}.rules-toolbar{border-radius:8px;justify-content:space-between;align-items:center;gap:20px;padding:18px 22px;display:flex}.rules-toolbar h2{margin-top:4px;font-size:25px}.rule-summary strong{color:var(--danger);font-size:24px;line-height:1}.server-toolbar-actions{justify-content:flex-end;align-items:center;gap:14px;display:flex}.add-server-button{padding:0 18px}.servers-table{border-radius:8px;display:grid;overflow:hidden}.servers-table-row{border-bottom:1px solid var(--border);grid-template-columns:minmax(210px,1.45fr) 110px 170px 130px 120px minmax(168px,auto);align-items:center;gap:14px;min-height:72px;padding:14px 18px;display:grid}.servers-table-row:last-child{border-bottom:0}.servers-table-row.selected{background:#ff594d14}.table-head{min-height:48px;color:var(--text-muted);letter-spacing:.12em;text-transform:uppercase;background:#09111947;font-size:12px;font-weight:700}.servers-empty{color:var(--text-muted);padding:22px}.table-action{justify-content:center;min-height:40px}.table-actions,.token-history-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.danger-action{color:var(--danger);border-color:#ff594d6b}.danger-action:hover{color:var(--text-strong);background:#ff594d1f;border-color:#ff594db8}.server-name-cell{gap:4px;display:grid}.server-name-cell strong{color:var(--text-strong)}.server-name-cell span{color:var(--text-muted);font-size:14px}.status-pill{border:1px solid var(--border);width:fit-content;min-width:76px;color:var(--text-strong);border-radius:999px;justify-content:center;padding:6px 10px;font-size:13px;font-weight:700;display:inline-flex}.status-pill.online{color:#45d267;background:#45d26714;border-color:#45d2676b}.status-pill.offline{color:var(--danger);background:#ff594d14;border-color:#ff594d6b}.modal-backdrop{z-index:20;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#060c12ad;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.enrollment-panel{border:1px solid var(--border-strong);background:linear-gradient(145deg,#22313ff5,#0d161ff0),#121d28f5;border-radius:8px;gap:20px;width:min(100%,720px);max-height:calc(100svh - 48px);padding:24px;display:grid;overflow:auto;box-shadow:0 24px 72px #0000006b}.panel-header{justify-content:space-between;align-items:center;gap:18px;display:flex}.panel-header h2{color:var(--text-strong);margin:4px 0 0;font-size:28px;line-height:1.1}.server-form{gap:16px;display:grid}.server-form label{color:var(--text-strong);gap:8px;font-weight:700;display:grid}.token-panel{border:1px solid var(--border);background:#09111957;border-radius:8px;gap:14px;padding:16px;display:grid}.token-row,.command-header{justify-content:space-between;align-items:center;gap:14px;display:flex}.token-row>div{gap:5px;min-width:0;display:grid}.token-row span,.command-header span{color:var(--text-muted);letter-spacing:.12em;text-transform:uppercase;font-size:12px;font-weight:700}.token-panel code{color:var(--text-strong);overflow-wrap:anywhere;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace}.command-block{gap:10px;display:grid}.command-block>code{border:1px solid var(--border);background:#04090e8f;border-radius:6px;padding:14px;line-height:1.55;display:block}.server-detail-card{border:1px solid var(--border-strong);background:linear-gradient(145deg,#22313fd1,#0d161fa3),#121d28c7;border-radius:8px;gap:18px;padding:20px;display:grid;box-shadow:inset 0 1px #ffffff09}.server-detail-header{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.server-detail-header h3{color:var(--text-strong);margin:4px 0;font-size:24px;line-height:1.15}.server-detail-header span{color:var(--text-muted)}.server-detail-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.server-detail-grid div{border:1px solid var(--border);background:#09111947;border-radius:8px;gap:4px;padding:14px;display:grid}.server-detail-grid span,.token-history-row span{color:var(--text-muted);font-size:13px}.server-detail-grid strong,.token-history-row strong{color:var(--text-strong)}.token-history{gap:10px;display:grid}.token-history h4,.token-history p{margin:0}.token-history h4{color:var(--text-strong);font-size:18px}.token-history-row{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:14px;padding:12px 0;display:flex}.token-history-row>div{gap:4px;display:grid}.token-history-row>.token-history-actions{display:flex}.settings-card{border-radius:8px;gap:20px;max-width:720px;padding:22px;display:grid}.settings-card-header{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.settings-card h2{color:var(--text-strong);margin:4px 0 0;font-size:25px;line-height:1.1}.settings-form{gap:14px;display:grid}.settings-form label{color:var(--text-strong);gap:8px;font-weight:700;display:grid}.settings-form p{color:var(--text-muted);margin:0}.settings-save-button{width:fit-content;padding:0 18px}.settings-actions,.access-row-actions{flex-wrap:wrap;gap:10px;display:flex}.access-list{gap:10px;display:grid}.access-list>p{color:var(--text-muted);margin:0}.access-row{border:1px solid var(--border);background:#09111947;border-radius:8px;justify-content:space-between;align-items:center;gap:14px;padding:12px;display:flex}.access-row>div:first-child{gap:4px;min-width:0;display:grid}.access-row strong{color:var(--text-strong);overflow-wrap:anywhere}.access-row span,.access-row small{color:var(--text-muted)}.success-message{color:#45d267;background:#45d26714;border:1px solid #45d2676b;border-radius:999px;align-items:center;min-height:32px;padding:0 10px;font-size:13px;font-weight:700;display:inline-flex}.rules-list{gap:14px;display:grid}.rule-card{border-radius:8px;grid-template-columns:54px minmax(0,1fr);gap:18px;padding:18px;display:grid}.rule-card.enabled{border-color:#ff594d57}.rule-icon{border:1px solid var(--border);width:54px;height:54px;color:var(--danger);background:#0911195c;border-radius:6px;place-items:center;display:grid}.rule-body{gap:12px;display:grid}.rule-title-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.rule-category{color:var(--text-muted);letter-spacing:.12em;text-transform:uppercase;font-size:12px;font-weight:700}.rule-card h3{color:var(--text-strong);margin:4px 0 0;font-size:21px;line-height:1.2}.rule-card p{max-width:760px;margin:0}.rule-meta{flex-wrap:wrap;gap:10px;display:flex}.rule-meta span,.rule-meta strong{border:1px solid var(--border);color:var(--text);border-radius:999px;padding:6px 10px;font-size:13px}.rule-meta strong{color:var(--text-strong)}.toggle{cursor:pointer}.toggle input{opacity:0;block-size:1px;inline-size:1px;position:absolute}.toggle-track{border:1px solid var(--border-strong);background:#091119b8;border-radius:999px;align-items:center;width:56px;height:30px;padding:3px;transition:background-color .16s,border-color .16s;display:inline-flex}.toggle-thumb{background:var(--text-muted);border-radius:50%;width:22px;height:22px;transition:transform .16s,background-color .16s}.toggle input:checked+.toggle-track{background:#ff594d2e;border-color:#ff594d8a}.toggle input:checked+.toggle-track .toggle-thumb{background:var(--danger);transform:translate(26px)}.toggle input:focus-visible+.toggle-track{outline:2px solid var(--danger);outline-offset:3px}.placeholder-panel{border-radius:8px;align-items:center;gap:18px;width:100%;max-width:1240px;margin:0 auto;padding:24px;display:flex}.placeholder-panel .icon{color:var(--danger)}.placeholder-panel p{max-width:620px;margin:8px 0 0}.status-bar{border-radius:8px;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;width:100%;max-width:1240px;margin:auto auto 0;display:grid;overflow:hidden}.status-item{color:var(--text);border-right:1px solid var(--border-strong);justify-content:center;gap:8px;padding:18px;font-size:16px;display:flex}.status-item:last-child{border-right:0}.status-item strong{color:var(--text-strong);font-weight:500}.status-item .secure{color:#45d267}@keyframes attack-flow{to{stroke-dashoffset:0}}@keyframes target-pulse{0%,to{opacity:.86;filter:drop-shadow(0 0 5px #ff594d99);transform:scale(1)}50%{opacity:1;filter:drop-shadow(0 0 14px #ff594de6);transform:scale(1.22)}}@media (prefers-reduced-motion:reduce){.flow-pulse{opacity:.25;animation:none}.target-dot{opacity:.95;animation:none;transform:none}}@media (width<=1180px){.app-shell{grid-template-columns:218px minmax(0,1fr)}.dashboard{padding-inline:22px}.dashboard-grid{grid-template-columns:minmax(190px,230px) minmax(310px,1fr) minmax(220px,260px)}.server-dashboard-grid{grid-template-columns:1fr}.data-card{padding-inline:16px}}@media (width<=960px){.app-shell{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--border);grid-template-columns:1fr;padding:18px 20px;display:grid;position:static}.sidebar-nav{grid-template-columns:repeat(5,minmax(0,1fr))}.sidebar-nav-item{justify-content:center}.account-card{display:none}.dashboard{padding-top:24px}.summary-grid,.status-bar{grid-template-columns:1fr}.servers-toolbar,.server-toolbar-actions{flex-direction:column;align-items:stretch}.server-toolbar-actions{width:100%}.add-server-button{justify-content:center}.servers-table{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;gap:14px}.table-head{display:none}.servers-table-row{border:1px solid var(--border-strong);background:linear-gradient(145deg,#22313fd1,#0d161fa3),#121d28c7;border-radius:8px;grid-template-columns:1fr 1fr}.server-name-cell{grid-column:1/-1}.table-actions{justify-content:flex-start}.server-detail-header{flex-direction:column;align-items:stretch}.server-detail-grid{grid-template-columns:1fr 1fr}.dashboard-grid{grid-template-columns:1fr;gap:26px}.panel-column{order:1}.attack-map{order:0}.card-stack{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.threat-card{grid-template-columns:1fr}.threat-card .icon{display:none}.status-item{border-right:0;border-bottom:1px solid var(--border-strong)}.status-item:last-child{border-bottom:0}}@media (width<=700px){.login-screen,.dashboard{padding:18px 14px}.login-card{padding:22px}.sidebar{padding-inline:14px}.brand{align-items:center}.logo-mark{width:72px;height:48px;font-size:26px;box-shadow:inset 0 0 0 7px #08101873}.brand-name{font-size:18px}.brand-subtitle{font-size:12px}.sidebar-nav{grid-template-columns:1fr 1fr}.sidebar-nav-item{min-height:50px}.page-header,.rules-toolbar,.rule-title-row,.panel-header,.settings-card-header,.token-row,.command-header{flex-direction:column;align-items:stretch}.header-status,.rule-summary{justify-items:start}.card-stack{grid-template-columns:1fr}.data-card,.rule-card{min-height:auto}.rule-card,.servers-table-row,.server-detail-grid,.server-metric-grid{grid-template-columns:1fr}.bootstrap-strip{flex-direction:column;align-items:stretch}.bootstrap-strip .ghost-button{justify-content:center}.confirmation-actions{flex-direction:column-reverse;align-items:stretch}.confirmation-actions .ghost-button,.confirmation-actions .primary-button{justify-content:center}.access-row{flex-direction:column;align-items:stretch}.access-row-actions .ghost-button{flex:120px;justify-content:center}.token-history-row{flex-direction:column;align-items:stretch}.table-actions,.token-history-actions{flex-wrap:wrap;justify-content:stretch;width:100%}.table-actions .ghost-button,.token-history-actions .ghost-button{flex:120px;justify-content:center}.attack-map svg{min-height:260px}}
