
:root {
  --scope-green:#00FF41;--scope-dim:#00A028;--scope-bg:#0A1A0A;
  --panel-bg:#111E11;--panel-border:#2A4A2A;--gold:#FFD700;
  --gold-dim:#B89B00;--text-main:#C8D8C8;--text-dim:#6A8A6A;
  --danger:#FF4444;--warning:#FF8C00;--success:#00CC66;
  --font-war:'CfWorldAtWarPerso','Courier New',monospace;
  --font-mono:'Courier New',monospace;
}
@font-face {
  font-family:'CfWorldAtWarPerso';
  src:url('/static/fonts/CfWorldAtWarPerso.ttf') format('truetype');
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;background:var(--scope-bg);color:var(--text-main);font-family:var(--font-war);overflow:hidden}
.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,#0D2B0D 0%,#050E05 70%);overflow:auto}
.login-page::before{content:'';position:fixed;inset:0;background-image:linear-gradient(var(--panel-border) 1px,transparent 1px),linear-gradient(90deg,var(--panel-border) 1px,transparent 1px);background-size:40px 40px;opacity:.2;pointer-events:none}
.login-card{position:relative;width:min(420px,95vw);background:var(--panel-bg);border:1px solid var(--scope-dim);border-radius:4px;padding:2.5rem 2rem;box-shadow:0 0 40px rgba(0,255,65,.12)}
.login-card::before{content:'+ ';position:absolute;top:.4rem;left:.6rem;color:var(--scope-dim);font-size:.7rem;opacity:.6}
.login-card::after{content:' +';position:absolute;bottom:.4rem;right:.6rem;color:var(--scope-dim);font-size:.7rem;opacity:.6}
.login-title{text-align:center;font-size:1.4rem;color:var(--gold);letter-spacing:.12em;text-transform:uppercase;margin-bottom:.3rem}
.login-subtitle{text-align:center;font-size:.75rem;color:var(--text-dim);letter-spacing:.08em;margin-bottom:2rem;border-bottom:1px solid var(--panel-border);padding-bottom:1rem}
.form-group{margin-bottom:1.1rem}
.form-group label{display:block;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--scope-dim);margin-bottom:.35rem}
.form-control{width:100%;background:#080E08;border:1px solid var(--panel-border);color:var(--scope-green);font-family:var(--font-mono);font-size:.9rem;padding:.55rem .8rem;border-radius:2px;outline:none;transition:border-color .2s;caret-color:var(--scope-green)}
.form-control:focus{border-color:var(--scope-dim);box-shadow:0 0 8px rgba(0,255,65,.2)}
.form-control::placeholder{color:var(--text-dim);opacity:.5}
.btn{display:inline-block;cursor:pointer;font-family:var(--font-war);letter-spacing:.08em;text-transform:uppercase;border:none;border-radius:2px;padding:.6rem 1.4rem;font-size:.85rem;transition:all .15s;text-decoration:none}
.btn-primary{background:var(--scope-dim);color:#000;width:100%;margin-top:.5rem}
.btn-primary:hover{background:var(--scope-green);box-shadow:0 0 12px rgba(0,255,65,.4)}
.btn-danger{background:#3A0808;color:var(--danger);border:1px solid var(--danger)}
.btn-danger:hover{background:var(--danger);color:#000}
.btn-warning{background:#2A1A00;color:var(--warning);border:1px solid var(--warning)}
.btn-warning:hover{background:var(--warning);color:#000}
.btn-success{background:#002A14;color:var(--success);border:1px solid var(--success)}
.btn-success:hover{background:var(--success);color:#000}
.btn-info{background:#001020;color:var(--scope-green);border:1px solid var(--scope-dim)}
.btn-info:hover{background:var(--scope-dim);color:#000}
.btn-sm{padding:.35rem .8rem;font-size:.75rem}
.alert{padding:.6rem .9rem;border-radius:2px;margin-bottom:1rem;font-size:.8rem;letter-spacing:.04em}
.alert-error,.alert-danger{background:#1A0505;border:1px solid var(--danger);color:var(--danger)}
.alert-success{background:#001A0A;border:1px solid var(--success);color:var(--success)}
.alert-warning{background:#1A0F00;border:1px solid var(--warning);color:var(--warning)}
.alert-info{background:#001020;border:1px solid var(--scope-dim);color:var(--scope-green)}
.form-link{display:block;text-align:center;margin-top:1.2rem;font-size:.75rem;color:var(--text-dim)}
.form-link a{color:var(--scope-dim);text-decoration:none}
.form-link a:hover{color:var(--scope-green)}
.admin-page{min-height:100vh;padding:1.5rem;background:var(--scope-bg);overflow:auto}
.admin-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--panel-border);padding-bottom:1rem;margin-bottom:1.5rem}
.admin-header h1{color:var(--gold);font-size:1.2rem;letter-spacing:.1em;text-transform:uppercase}
.panel{background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:3px;padding:1.2rem;margin-bottom:1.5rem}
.panel-title{font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--scope-dim);border-bottom:1px solid var(--panel-border);padding-bottom:.5rem;margin-bottom:1rem}
table{width:100%;border-collapse:collapse;font-size:.8rem}
th{text-align:left;color:var(--text-dim);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;padding:.4rem .6rem;border-bottom:1px solid var(--panel-border)}
td{padding:.5rem .6rem;border-bottom:1px solid rgba(255,255,255,.04);color:var(--text-main)}
tr:hover td{background:rgba(0,255,65,.04)}
.badge{display:inline-block;padding:.15rem .5rem;border-radius:2px;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase}
.badge-active{background:#002A14;color:var(--success)}
.badge-blocked{background:#1A0505;color:var(--danger)}
.badge-pending{background:#1A0F00;color:var(--warning)}
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.75);z-index:1000;align-items:center;justify-content:center}
.modal-overlay.active{display:flex}
.modal-box{background:var(--panel-bg);border:1px solid var(--danger);border-radius:3px;padding:2rem;width:min(380px,90vw);box-shadow:0 0 30px rgba(255,68,68,.2)}
.modal-title{color:var(--danger);font-size:1rem;margin-bottom:.8rem;text-transform:uppercase;letter-spacing:.08em}
.modal-text{color:var(--text-main);font-size:.85rem;margin-bottom:1.5rem;font-family:var(--font-mono)}
.modal-actions{display:flex;gap:.8rem;justify-content:flex-end}
.session-toast{display:none;position:fixed;bottom:1.5rem;right:1.5rem;z-index:900;background:var(--panel-bg);border:1px solid var(--warning);border-radius:3px;padding:1rem 1.2rem;width:min(320px,92vw);box-shadow:0 0 20px rgba(255,140,0,.25)}
.session-toast.active{display:block}
.toast-title{color:var(--warning);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.5rem}
.toast-text{color:var(--text-main);font-size:.75rem;font-family:var(--font-mono);margin-bottom:.8rem}
.toast-timer{font-size:1.2rem;color:var(--scope-green);font-family:var(--font-mono);margin-bottom:.8rem}
.toast-actions{display:flex;gap:.5rem;flex-wrap:wrap}
.toast-actions .btn{font-size:.7rem;padding:.3rem .7rem}
.actions-cell{display:flex;gap:.4rem;flex-wrap:wrap}
.pwd-box{background:#001020;border:1px solid var(--scope-dim);padding:.8rem;border-radius:2px;font-family:var(--font-mono);font-size:.85rem;color:var(--scope-green);margin:.5rem 0;word-break:break-all}
