:root{--bg:#0b0f1c;--panel:#121829;--panel2:#0e1422;--line:#222b40;--text:#e8ecf3;--muted:#8b95ab;--blue:#3572ff;--blue2:#4d86ff;--green:#1f9d57;--amber:#c98a1a;--red:#e0443e}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--blue2);text-decoration:none}.muted{color:var(--muted)}.center{text-align:center}.mono{font-family:ui-monospace,Menlo,monospace;font-size:13px}.app{min-height:100vh;display:flex}.side{background:var(--panel2);border-right:1px solid var(--line);flex-direction:column;gap:6px;width:230px;padding:22px 16px;display:flex}.brand{margin-bottom:22px;font-size:20px;font-weight:700}.brand span{color:var(--blue2)}.side nav{flex-direction:column;gap:4px;display:flex}.side nav a{color:var(--text);border-radius:9px;padding:10px 14px}.side nav a:hover{background:#172036}.side nav a.active{background:var(--blue);color:#fff}.logout{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:0 0;border-radius:9px;margin-top:auto;padding:9px}.logout:hover{color:var(--text);border-color:#33405e}.main{flex:1;max-width:1100px;padding:30px 36px}h1{margin:0 0 18px;font-size:26px}h2{margin:0 0 14px;font-size:19px}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;margin-bottom:18px;padding:18px}table{border-collapse:collapse;width:100%}th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-bottom:1px solid var(--line);padding:8px 10px;font-size:12px}td{border-bottom:1px solid var(--line);vertical-align:middle;padding:12px 10px;font-size:15px}tr:last-child td{border-bottom:0}.actions{text-align:right;white-space:nowrap}.pill{border-radius:20px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-block}.pill.green{color:#46c986;background:#1f9d5726}.pill.amber{color:#e0a93f;background:#c98a1a26}.pill.blue{color:var(--blue2);background:#3572ff26}.btn{border:1px solid var(--line);color:var(--text);cursor:pointer;background:#16203a;border-radius:9px;padding:9px 16px;font-size:14px}.btn:hover{border-color:#33405e}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn.primary:hover{background:#2a63ef}.link{color:var(--blue2);cursor:pointer;background:0 0;border:0;padding:0 8px;font-size:14px}.link.danger{color:var(--red)}input{background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:9px;padding:10px 12px;font-size:14px}input:focus{border-color:var(--blue);outline:none}.row-form{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.row-form input{flex:1;min-width:130px}.login{justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{flex-direction:column;gap:12px;width:340px;display:flex}.login-card .brand{margin-bottom:4px}.err{color:#f08a85;background:#e0443e1f;border-radius:9px;padding:9px 12px;font-size:14px}.modal-bg{z-index:10;background:#04070fb3;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{width:480px;max-height:84vh;overflow:auto}.check{cursor:pointer;align-items:center;gap:9px;padding:7px 0;font-size:15px;display:flex}.check.big{border-bottom:1px solid var(--line);margin-bottom:6px;padding-bottom:12px;font-weight:600}.clist{grid-template-columns:1fr 1fr;gap:2px 18px;margin:6px 0 12px;display:grid}.clist.disabled{opacity:.45;pointer-events:none}.modal-actions{justify-content:flex-end;gap:10px;margin-top:10px;display:flex}.pwbtn{margin-top:auto;margin-bottom:8px}.side .logout+.logout{margin-top:0}.pwmodal{flex-direction:column;gap:10px;width:380px;display:flex}.pwmodal input{width:100%}.okmsg{color:#46c986;background:#1f9d5724;border-radius:9px;padding:9px 12px;font-size:14px}@media (width<=760px){.app{flex-direction:column}.side{border-right:0;border-bottom:1px solid var(--line);z-index:5;flex-flow:wrap;align-items:center;gap:8px 12px;width:auto;padding:12px 16px;position:sticky;top:0}.brand{white-space:nowrap;margin:0;font-size:18px}.logout{order:2;margin:0 0 0 auto;padding:7px 13px}.side nav{-webkit-overflow-scrolling:touch;flex-direction:row;flex-basis:100%;order:3;gap:6px;overflow-x:auto}.side nav a{white-space:nowrap;padding:8px 14px}.main{max-width:none;padding:18px 14px}h1{font-size:22px}.card{padding:14px}.card:has(table){-webkit-overflow-scrolling:touch;overflow-x:auto}table{min-width:520px}.row-form{gap:8px}.row-form input{flex:46%;min-width:0}.modal{width:100%}.clist{grid-template-columns:1fr}}
