:root{font-family:Inter,"Segoe UI",Arial,sans-serif;color:#172a31;background:#f3f6f5;font-size:14px;font-synthesis:none;--green:#0c6e57;--line:#dfe7e4;--muted:#70817d;--ink:#132f2a}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible{outline:3px solid #68beaa;outline-offset:3px}a{color:var(--green)}[hidden]{display:none!important}button{border:0}h1,h2,h3,p{margin:0}h1{font-size:30px;letter-spacing:-1px;font-weight:650}h2{font-size:20px;letter-spacing:-.5px}h3{font-size:16px}p{line-height:1.65;color:var(--muted)}small{font-size:11px}input,textarea,select{background:white;border:1px solid #d6e1dd;border-radius:8px;padding:12px;color:#203e36;min-width:0}input:focus,textarea:focus,select:focus{outline:2px solid #67ac99;outline-offset:1px}label{display:grid;gap:8px;font-size:13px;font-weight:600}textarea{resize:vertical;font-family:Consolas,monospace;font-size:12px}label .fine{font-weight:400}button{border-radius:8px;transition:background .15s}.primary,.secondary{min-height:39px;padding:10px 17px;font-weight:600;font-size:12px}.primary{background:var(--green);color:white}.primary:hover{background:#095640}.secondary{background:white;border:1px solid var(--line);color:#435b51}.secondary:hover{background:#eef5f2}.eyebrow,.section-kicker{font-size:10px;font-weight:700;letter-spacing:1.8px;color:#72867d}.mark{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:11px;background:#c4f2b0;color:#183a2f;font-size:15px;font-weight:850;letter-spacing:-1px;flex-shrink:0}.app{display:grid;grid-template-columns:228px minmax(0,1fr);min-height:100vh}.sidebar{background:#102d27;color:#bed1c9;padding:32px 18px 18px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;gap:11px;align-items:center;padding:0 12px;color:#f1f8f5;text-decoration:none;font-size:15px;font-weight:700}.brand small{display:block;font-size:9px;color:#7d9f91;letter-spacing:1.5px;margin-top:6px}.nav-label{font-size:9px;letter-spacing:1.8px;color:#6c9182;margin:54px 16px 17px}nav{display:grid;gap:6px}nav button{color:#9db7aa;background:transparent;text-align:left;padding:14px 16px;font-size:13px;font-weight:550}nav button span{display:inline-block;width:29px;font-size:17px;vertical-align:-1px}nav button:hover{background:#1b3c33}nav button.selected{background:#264a3e;color:#d2f9be}.sidebar-bottom{margin-top:auto;font-size:11px;padding:16px 8px 0}.sidebar-bottom>a{color:#9abaac;text-decoration:none;display:block;margin:20px 5px}.account{border-top:1px solid #2a483e;padding-top:20px;display:flex;align-items:center;gap:10px}.avatar{display:grid;place-items:center;background:#34574a;width:33px;height:33px;border-radius:50%;font-size:12px;color:#d2eddf}.account strong{font-size:12px;color:#dbe8e2}.account small{display:block;color:#7e9d8f;font-size:10px;margin-top:4px}.account button{margin-left:auto;background:transparent;color:#8caf9c;font-size:22px}.workspace{padding:36px 42px 20px;max-width:1680px;width:100%;margin:auto}.topbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:32px}.topbar h1{margin-top:9px}.top-actions{display:flex;align-items:center;gap:18px}.status{font-size:11px;color:#85928e;display:flex;align-items:center;gap:7px}.status i{height:7px;width:7px;background:#bdc7c2;border-radius:50%}.status.connected{color:#427d63}.status.connected i{background:#40a078}.policy-card{background:#e8eee6;border:1px solid #dce4d7;border-radius:12px;padding:27px 30px;display:flex;justify-content:space-between;align-items:center;gap:22px}.section-kicker{color:#6e8069;font-size:9px;letter-spacing:1.6px;margin-bottom:10px}.policy-card h2{font-size:23px}.policy-card p{margin-top:8px;font-size:12px;color:#6a7e6b}.mode-controls{text-align:right}.mode-buttons{display:flex;padding:4px;background:#d9e3d6;border-radius:9px;gap:3px}.mode-buttons button{background:transparent;padding:12px 16px;min-width:92px;text-align:left;font-size:12px;font-weight:650;color:#5f735d}.mode-buttons button small{display:block;font-size:9px;margin-top:5px;font-weight:400}.mode-buttons button.active{background:#fff;box-shadow:0 2px 5px #23442412;color:#1b4d35}.mode-buttons button.active[data-mode=off]{color:#a2582f}.fine{font-size:11px;color:#7a8b83;line-height:1.6}.mode-controls>.fine{display:block;margin-top:9px;font-size:10px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:22px 0 38px}.stats article{padding:21px 23px;background:white;border:1px solid var(--line);border-radius:10px;display:grid;gap:9px}.stats article>span{font-size:11px;color:#708178}.stats strong{font-size:30px;font-weight:600;letter-spacing:-1px}.stats small{color:#8b9791;font-size:10px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.section-heading p{font-size:12px;margin-top:6px}.search{display:flex;gap:7px}.search input{width:290px;font-size:11px}.table-card{border:1px solid var(--line);border-radius:10px;background:white;overflow:hidden}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap;text-align:left}thead{background:#fafcfb}th{font-size:10px;font-weight:600;color:#82918a;padding:15px 18px;border-bottom:1px solid var(--line)}td{font-size:12px;padding:19px 18px;border-bottom:1px solid #edf1ef;color:#647b70}td:first-child{font-weight:650;color:#2b473b}.mono{font-family:Consolas,monospace;font-size:11px}.player-id{max-width:220px;overflow:hidden;text-overflow:ellipsis;display:block}.badge{font-size:10px;display:inline-block;background:#eff4f1;color:#6a8376;border:1px solid #e1eae5;border-radius:5px;padding:4px 7px}.badge.green{background:#e6f4eb;color:#33714c;border-color:#c9e5d2}.badge.red{background:#fff0eb;color:#a35e48;border-color:#f1dbd2}.empty{text-align:center;padding:47px 24px}.empty-icon{font-size:32px;color:#8ea99b;display:block;margin-bottom:12px}.empty p{max-width:420px;margin:10px auto;font-size:12px}.pagination{padding:15px 18px;display:flex;justify-content:space-between;align-items:center;color:#8a9991;font-size:11px}.pagination div{display:flex;gap:8px}.pagination button{font-size:10px;min-height:30px;padding:7px 10px}.footnote{font-size:10px;margin-top:15px}.info-note{padding:14px 17px;background:#f0f5ee;color:#647b5a;font-size:11px;line-height:1.65;border:1px solid #e1e9da;border-radius:8px;margin-bottom:18px}.rule-list{display:grid;gap:12px}.rule-card{border:1px solid var(--line);padding:20px;background:white;border-radius:10px}.rule-top{display:flex;align-items:center;gap:12px;justify-content:space-between}.rule-top strong{margin-left:12px;font-size:13px}.rule-card p{font-size:11px;margin-top:12px;overflow-wrap:anywhere}.rule-card.disabled{opacity:.6}.rule-values{font:11px/1.7 Consolas,monospace;background:#f7f9f8;border-radius:5px;padding:10px;margin-top:12px;max-height:150px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere}.audit-row{display:flex;justify-content:space-between;gap:20px;padding:20px;border-bottom:1px solid #edf1ef}.audit-row strong{font-size:12px}.audit-row p{font-size:11px;margin-top:6px;overflow-wrap:anywhere}.audit-row time{white-space:nowrap;font-size:10px;color:#809387}.settings-card{max-width:500px;background:white;padding:28px;border:1px solid var(--line);border-radius:10px;display:grid;gap:22px}.settings-card p{font-size:12px}footer{display:flex;align-items:center;gap:8px;margin-top:44px;padding:18px 0;border-top:1px solid #dfe7e1;font-size:9px;letter-spacing:1.8px;color:#8c9d93}footer span{font-size:8px;letter-spacing:0;border:1px solid #d7e1d9;padding:2px 5px;border-radius:3px}footer p{margin-left:auto;font-size:9px;letter-spacing:0}dialog{padding:0;border:1px solid #d4e0d9;border-radius:14px;width:min(760px,94vw);max-height:90vh;color:#203b2d;box-shadow:0 25px 90px #0a261d40}dialog::backdrop{background:#0a211b91;backdrop-filter:blur(3px)}.dialog-head{padding:25px 28px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.dialog-head h2{margin-top:7px}.close{width:35px;height:35px;background:#f0f4f1;color:#6b8574;font-size:23px}.dialog-body{padding:26px 28px;display:grid;gap:20px}.dialog-body h3{margin-bottom:4px}.dialog-body p{font-size:12px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.detail-grid>div{background:#f4f7f4;padding:13px;border-radius:6px}.detail-grid small{display:block;color:#7b9280;margin-bottom:6px}.detail-grid strong{font-size:12px}.id-list{display:grid;gap:6px}.id-row{display:flex;align-items:center;gap:8px;background:#f4f7f5;padding:10px;border-radius:5px}.id-row input{flex-shrink:0;accent-color:var(--green)}.id-row code{font-size:10px;word-break:break-all;flex:1;line-height:1.6}.id-row button{font-size:10px;background:#e4eee7;color:#53725d;padding:6px 8px}.detail-actions{display:flex;gap:10px;flex-wrap:wrap}.error{color:#a34d3c;font-size:12px;min-height:1em}#toast{position:fixed;right:25px;bottom:25px;padding:16px 22px;background:#173e30;color:white;border-radius:10px;z-index:50;max-width:min(430px,90vw);box-shadow:0 6px 30px #173e3033;font-size:13px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.login-shell{min-height:100vh;background:radial-gradient(ellipse at 75% 20%,#315a47,#102d27 70%);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:36px 20px}.login-brand{display:flex;align-items:center;gap:12px;color:#dfeddf;font-size:14px;letter-spacing:2px;margin-bottom:38px}.login-brand small{display:block;font-size:8px;letter-spacing:3px;color:#8caf99;margin-top:5px}.login-card{width:min(420px,100%);border:1px solid #e1e9dd;background:#fafcf8;border-radius:15px;padding:40px;display:grid;gap:21px;box-shadow:0 30px 100px #071f1a80}.login-card h1{font-size:40px;line-height:1.1;letter-spacing:-1.5px;color:#1a3c2c}.login-card>p{font-size:12px}.login-card .primary{display:flex;justify-content:space-between;align-items:center;padding:14px 18px}.login-card>a{font-size:11px;text-decoration:none;text-align:center}.login-card .error:empty{display:none}.login-footer{margin-top:30px;color:#7e9d87;letter-spacing:2px;font-size:8px}@media(min-width:1500px){.workspace{padding:45px 65px}}@media(max-width:1100px){.app{grid-template-columns:190px minmax(0,1fr)}.workspace{padding:25px}.sidebar{padding:28px 10px 15px}.policy-card{padding:22px}.mode-buttons button{min-width:75px;padding:12px}.section-heading{align-items:flex-start;flex-direction:column}.search{width:100%}.search input{flex:1;width:auto}.top-actions{gap:10px}.status{max-width:130px;line-height:1.6}.stats article{padding:17px}.stats{gap:10px}.brand{font-size:13px}}@media(max-width:760px){.app{display:block}.sidebar{height:auto;position:static;padding:18px}.brand{padding:0}.nav-label,.sidebar-bottom{display:none}nav{display:flex;margin-top:20px;gap:4px}nav button{flex:1;padding:10px 5px;text-align:center;font-size:10px}nav button span{display:block;width:auto;font-size:16px;margin-bottom:5px}.workspace{padding:24px 16px}.topbar{gap:12px;align-items:flex-start}h1{font-size:24px}.top-actions{flex-direction:column;align-items:flex-end}.status{font-size:9px;max-width:none}.top-actions button{font-size:10px;padding:8px}.policy-card{display:block}.mode-controls{margin-top:20px;text-align:left}.mode-buttons button{flex:1}.stats{grid-template-columns:1fr 1fr;margin-bottom:28px}.stats strong{font-size:26px}.stats article{padding:17px}.detail-grid{grid-template-columns:1fr}.dialog-body{padding:20px}.dialog-head{padding:20px}.audit-row{flex-direction:column;gap:8px}.rule-top strong{display:block;margin:8px 0 0}.login-card{padding:28px}.pagination{gap:6px}.pagination button{padding:7px}.search input{font-size:10px}footer{letter-spacing:1px}}

@media(max-width:1100px){th:nth-child(4),td:nth-child(4){display:none}.player-id{max-width:155px}th,td{padding:15px 12px}}

.review-filter{max-width:240px;margin:18px 0}.rule-card .detail-actions{margin-top:14px}#signatures-list .secondary{margin-top:12px}#tab-detections .section-heading{margin-top:24px}@media(max-width:760px){nav{flex-wrap:wrap}nav button{min-width:75px}}

#module-list .rule-card{margin-top:14px}#module-list .secondary{margin-top:12px}#module-scans{margin:16px 0}.sidebar{overflow-y:auto}
