:root{--bg:#02060b;--panel:rgba(3,10,18,.86);--blue:#4da3ff;--ice:#9dd8ff;--text:#eaf6ff;--muted:#7892ad;--ok:#78e6b3;--warn:#ffbc57;--danger:#ff5f67}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#02060b;color:var(--text);font-family:"JetBrains Mono","Cascadia Mono",Consolas,monospace}a{color:var(--ice);text-decoration:none}a:hover{color:white}
.game-body{width:100%;height:100%;overflow:hidden;user-select:none;background:#000}
#world{position:fixed;inset:0;width:100%;height:100%;display:block;background:#010407;cursor:crosshair}
#scanlines{position:fixed;inset:0;pointer-events:none;z-index:5;background:repeating-linear-gradient(to bottom,rgba(255,255,255,.018) 0,rgba(255,255,255,.018) 1px,transparent 1px,transparent 4px);opacity:.42}
#vignette{position:fixed;inset:0;pointer-events:none;z-index:6;background:radial-gradient(circle at center,transparent 44%,rgba(0,0,0,.24) 72%,rgba(0,0,0,.75) 100%)}
.panel{background:linear-gradient(180deg,rgba(4,15,26,.9),rgba(2,8,14,.76));border:1px solid rgba(77,163,255,.30);box-shadow:0 0 26px rgba(77,163,255,.08);border-radius:10px;backdrop-filter:blur(8px)}
#hud{position:fixed;inset:0;pointer-events:none;z-index:10;padding:18px;display:grid;grid-template-columns:360px 1fr 350px;grid-template-rows:auto 1fr auto;gap:12px}
#brand{grid-column:1;padding:10px 14px;display:flex;align-items:center;gap:12px}#brand img{width:46px;height:46px;object-fit:contain}#brand b{display:block;letter-spacing:.26em;font-size:14px}#brand small{display:block;color:var(--blue);letter-spacing:.14em;margin-top:4px;font-size:9px}
#status{grid-column:3;padding:11px 14px}.row{display:flex;justify-content:space-between;gap:14px;margin:3px 0;font-size:10px}.k{color:var(--muted)}.v{color:var(--text);text-align:right}.v.ok{color:var(--ok)}.v.warn{color:var(--warn)}.v.danger{color:var(--danger)}
#bottom{grid-column:1/4;grid-row:3;display:flex;align-items:end;justify-content:space-between;gap:12px}#help,#mission{padding:10px 14px;font-size:9px;line-height:1.55}#help{max-width:760px}#mission{min-width:360px;text-align:right}
#reticle{position:fixed;left:50%;top:50%;width:28px;height:28px;transform:translate(-50%,-50%);z-index:11;pointer-events:none}#reticle:before,#reticle:after{content:"";position:absolute;background:rgba(157,216,255,.55)}#reticle:before{width:20px;height:1px;left:4px;top:13px}#reticle:after{height:20px;width:1px;left:13px;top:4px}#reticle i{position:absolute;width:5px;height:5px;border:1px solid rgba(157,216,255,.9);border-radius:50%;left:11px;top:11px}
#message{position:fixed;left:50%;bottom:90px;transform:translateX(-50%);z-index:20;min-width:min(660px,calc(100vw - 40px));max-width:900px;padding:14px 18px;pointer-events:none;opacity:0;transition:.18s;background:rgba(2,8,14,.94);border:1px solid rgba(77,163,255,.48);border-left:3px solid var(--blue);border-radius:8px}.show#message{opacity:1;transform:translate(-50%,-8px)}#message .tag{color:var(--blue);font-size:10px;letter-spacing:.2em;margin-bottom:5px}#message .txt{font-size:12px;line-height:1.5}
#minimap{position:fixed;right:20px;top:190px;z-index:14;background:rgba(2,8,14,.88);border:1px solid rgba(77,163,255,.32);border-radius:8px;padding:8px;display:none;pointer-events:none}#minimap.show{display:block}#mapCanvas{width:260px;height:260px;display:block}
#topActions{position:fixed;z-index:22;top:12px;left:50%;transform:translateX(-50%);display:flex;gap:12px;align-items:center;font-size:9px;letter-spacing:.12em}#topActions a,#identity{padding:7px 10px;border:1px solid rgba(77,163,255,.23);background:rgba(2,8,14,.7);border-radius:6px}
#start{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 42%,rgba(13,46,77,.42),rgba(0,0,0,.95) 58%,#000 100%)}#start.hide{display:none}.boot{width:min(760px,calc(100vw - 34px));padding:28px;border:1px solid rgba(77,163,255,.42);border-radius:14px;background:rgba(2,8,14,.9);box-shadow:0 0 80px rgba(77,163,255,.12);text-align:center}.boot-logo{width:120px;height:120px}.boot h1{font-size:28px;letter-spacing:.28em;margin:4px 0 6px}.boot h2{font-size:12px;color:var(--blue);letter-spacing:.18em;font-weight:400}.bootGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px 18px;font-size:11px;color:var(--muted);margin:24px 0}.bootGrid b{color:var(--text);font-weight:500}button{font:inherit}
#enter,.auth-form button,.admin-card button{width:100%;padding:13px;border:1px solid var(--blue);border-radius:8px;background:rgba(22,79,132,.32);color:var(--text);letter-spacing:.14em;cursor:pointer}#enter:hover,.auth-form button:hover,.admin-card button:hover{background:rgba(22,79,132,.56)}
.overlay-panel{position:fixed;z-index:35;left:18px;bottom:95px;width:min(520px,calc(100vw - 36px));height:340px;background:rgba(2,8,14,.96);border:1px solid rgba(77,163,255,.42);border-radius:10px;display:flex;flex-direction:column;padding:10px}.overlay-panel.hidden,.modal.hidden{display:none}.overlay-panel header,.modal-card header{display:flex;justify-content:space-between;color:var(--blue);font-size:11px;letter-spacing:.14em}.overlay-panel header button,.modal-card header button{background:none;border:0;color:var(--ice);cursor:pointer;font-size:20px}#chatLog{flex:1;overflow:auto;padding:8px 2px;font-size:10px;line-height:1.55}.chat-line .who{color:var(--ice)}.chat-line .role{color:var(--muted);font-size:8px}.chat-line .text{color:var(--text)}#chatForm{display:flex;gap:6px}#chatForm input{flex:1}
input,select{width:100%;border:1px solid rgba(77,163,255,.28);border-radius:7px;background:#07111c;color:var(--text);padding:10px;font:inherit;outline:none}input:focus,select:focus{border-color:var(--blue)}
.modal{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.45);padding:20px}.modal-card{width:min(680px,100%);padding:18px}.modal-card header{margin-bottom:12px}.modal-options{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.modal-options button{padding:12px;background:#07111c;border:1px solid rgba(77,163,255,.28);color:var(--text);border-radius:7px;cursor:pointer}.modal-options button:hover{border-color:var(--blue)}
.auth-body{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:25px;background:radial-gradient(circle at 50% 36%,#10263d 0,#030a12 40%,#010305 75%)}.auth-card{width:min(440px,100%);padding:30px;background:rgba(3,10,18,.92);border:1px solid rgba(77,163,255,.4);border-radius:14px;text-align:center;box-shadow:0 0 80px rgba(77,163,255,.1)}.auth-logo{width:110px;height:110px}.auth-card h1{letter-spacing:.18em}.sub{color:var(--blue);font-size:10px;letter-spacing:.14em}.auth-form{text-align:left;display:grid;gap:12px}.auth-form label,.admin-card label{display:grid;gap:5px;color:var(--muted);font-size:10px}.auth-form hr{width:100%;border:0;border-top:1px solid rgba(77,163,255,.18)}.switch,.hint{font-size:10px;color:var(--muted)}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.notice{padding:10px;border-radius:7px;margin:10px 0;font-size:10px}.notice.error{border:1px solid rgba(255,95,103,.4);color:#ff9da3;background:rgba(80,10,16,.22)}.notice.success{border:1px solid rgba(120,230,179,.4);color:var(--ok);background:rgba(10,60,44,.22)}
.admin-body{padding:28px;background:#02060b}.admin-shell{max-width:1400px;margin:auto}.admin-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(77,163,255,.2);margin-bottom:18px}.admin-head h1{letter-spacing:.12em}.admin-head p{color:var(--blue);font-size:10px}.admin-head nav{display:flex;gap:14px}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.admin-card{background:#07111c;border:1px solid rgba(77,163,255,.22);padding:16px;border-radius:10px;margin-bottom:14px}.admin-card h2{font-size:13px;letter-spacing:.12em;color:var(--ice)}.admin-card h3{font-size:10px;color:var(--muted)}.admin-card form{display:grid;gap:10px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:9px}th,td{padding:8px;border-bottom:1px solid rgba(77,163,255,.12);text-align:left}th{color:var(--blue)}
@media(max-width:900px){#hud{grid-template-columns:1fr 1fr;padding:9px}#brand{grid-column:1}#status{grid-column:2}.row{font-size:8px}#bottom{grid-column:1/3}#help{display:none}#mission{min-width:0}.bootGrid,.admin-grid,.grid2{grid-template-columns:1fr}#topActions{display:none}.admin-body{padding:12px}}
