*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}

:root{
  --bg:#0a0000;--bg1:#120000;--bg2:#1a0000;--bg3:#220000;
  --line:#2a1111;--line2:#3a1818;
  --txt:#c8c8c8;--txt2:#777;--txt3:#444;
  --red:#e63946;--red2:#ff2d4a;--red-dim:#8a1e28;--red-glow:rgba(230,57,70,.2);
  --r:8px;
  --mono:'SF Mono','Monaco','Menlo','Consolas',monospace;
  --sans:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);
}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-family:var(--sans);background:var(--bg);color:var(--txt);min-height:100vh;min-height:100dvh;overflow-x:hidden;-webkit-font-smoothing:antialiased;touch-action:manipulation}
.hidden{display:none!important}

#login{display:flex;align-items:center;justify-content:center;min-height:100vh;min-height:100dvh;background:radial-gradient(ellipse at center,#1a0000 0%,#0a0000 70%);padding:calc(24px + var(--safe-t)) 20px calc(24px + var(--safe-b));position:relative;overflow:hidden}
.login-bg{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.ember{position:absolute;bottom:-20px;left:var(--x);width:calc(4px * var(--s));height:calc(4px * var(--s));background:var(--red);border-radius:50%;opacity:0;box-shadow:0 0 calc(8px * var(--s)) var(--red);animation:rise 6s var(--d) infinite ease-in}
@keyframes rise{0%{bottom:-20px;opacity:0;transform:translateX(0)}10%{opacity:.8}90%{opacity:.3}100%{bottom:110%;opacity:0;transform:translateX(20px)}}

.login-wrap{position:relative;z-index:1;width:100%;max-width:360px;text-align:center}
.killa-title{font-family:var(--mono);font-size:42px;font-weight:800;letter-spacing:4px;color:var(--red);text-shadow:0 0 10px rgba(230,57,70,.5),0 0 30px rgba(230,57,70,.3),0 0 60px rgba(230,57,70,.15);animation:flicker 3s infinite alternate;position:relative;margin-bottom:0;line-height:1}
@keyframes flicker{0%,18%,22%,25%,53%,57%,100%{opacity:1;text-shadow:0 0 10px rgba(230,57,70,.5),0 0 30px rgba(230,57,70,.3),0 0 60px rgba(230,57,70,.15)}20%,24%,55%{opacity:.85;text-shadow:0 0 6px rgba(230,57,70,.3),0 0 15px rgba(230,57,70,.15)}}
.killa-title::before,.killa-title::after{content:attr(data-text);position:absolute;top:0;left:0;width:100%}
.killa-title::before{color:var(--red2);animation:glitch1 2.5s infinite linear alternate-reverse;clip-path:inset(0 0 60% 0);opacity:.7}
.killa-title::after{color:#ff6b6b;animation:glitch2 3s infinite linear alternate-reverse;clip-path:inset(60% 0 0 0);opacity:.5}
@keyframes glitch1{0%{transform:translate(0)}20%{transform:translate(-2px,1px)}40%{transform:translate(2px,-1px)}60%{transform:translate(-1px,0)}80%{transform:translate(1px,1px)}100%{transform:translate(0)}}
@keyframes glitch2{0%{transform:translate(0)}20%{transform:translate(2px,-1px)}40%{transform:translate(-2px,1px)}60%{transform:translate(1px,0)}80%{transform:translate(-1px,-1px)}100%{transform:translate(0)}}
.killa-underline{width:0;height:2px;background:linear-gradient(90deg,transparent,var(--red),transparent);margin:14px auto 36px;animation:drawLine 1.2s .3s ease forwards}
@keyframes drawLine{from{width:0}to{width:200px}}

.login-form{display:flex;flex-direction:column;gap:12px}
.login-form input{width:100%;padding:16px 18px;background:rgba(20,0,0,.6);border:1px solid var(--line2);border-radius:var(--r);color:var(--txt);font-family:var(--sans);font-size:17px;outline:none;transition:border-color .2s,box-shadow .2s;-webkit-appearance:none;appearance:none;backdrop-filter:blur(4px)}
.login-form input:focus{border-color:var(--red);box-shadow:0 0 0 3px var(--red-glow)}
.login-form input::placeholder{color:var(--txt3)}
.login-go{width:100%;padding:16px;background:linear-gradient(135deg,var(--red),var(--red-dim));color:#fff;border:none;border-radius:var(--r);font-family:var(--sans);font-size:16px;font-weight:600;cursor:pointer;transition:transform .15s,box-shadow .2s;letter-spacing:.5px}
.login-go:active{transform:scale(.97);box-shadow:0 0 20px var(--red-glow)}
.login-err{color:var(--red);font-family:var(--sans);font-size:14px;margin-top:12px;opacity:0;transition:opacity .2s;min-height:20px}
.login-err.show{opacity:1;animation:shake .4s}
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}

#app{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}
.topbar{display:flex;align-items:center;gap:16px;padding:calc(12px + var(--safe-t)) 24px 12px;background:var(--bg1);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:100;backdrop-filter:blur(10px)}
.topbar-brand{font-family:var(--mono);font-size:18px;font-weight:700;letter-spacing:1px;white-space:nowrap}
.topbar-brand span{color:var(--red)}
.topbar-tabs{display:flex;gap:4px;flex:1;flex-wrap:wrap}
.top-tab{padding:8px 14px;background:none;border:1px solid transparent;color:var(--txt2);font-family:var(--sans);font-size:13px;font-weight:500;cursor:pointer;border-radius:var(--r);transition:all .15s;white-space:nowrap;min-height:36px}
.top-tab:active{background:var(--bg2)}
.top-tab.active{background:var(--bg3);border-color:var(--line2);color:var(--red)}
.topbar-lock{padding:8px 16px;background:none;border:1px solid var(--line2);color:var(--txt2);font-family:var(--sans);font-size:13px;border-radius:var(--r);cursor:pointer;transition:all .15s;white-space:nowrap;min-height:36px}
.topbar-lock:active{border-color:var(--red);color:var(--red)}
.content{flex:1;padding:24px;max-width:1000px;width:100%;margin:0 auto}
.tab{display:none}
.tab.active{display:block;animation:fade .25s ease}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.panel-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.panel{background:var(--bg1);border:1px solid var(--line);border-radius:var(--r);padding:18px}
.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.panel-title{font-family:var(--mono);font-size:11px;font-weight:600;color:var(--txt2);text-transform:uppercase;letter-spacing:1.5px}
.stats{font-family:var(--mono);font-size:10px;color:var(--txt3)}
textarea{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:var(--r);color:var(--txt);font-family:var(--mono);font-size:16px;padding:14px;resize:vertical;outline:none;transition:border-color .2s;line-height:1.5;-webkit-appearance:none;appearance:none;min-height:130px}
textarea:focus{border-color:var(--red)}
textarea[readonly]{color:var(--txt2)}
textarea::placeholder{color:var(--txt3)}
.select-wrap{margin-top:14px}
select{width:100%;padding:12px 36px 12px 14px;background:var(--bg);border:1px solid var(--line);border-radius:var(--r);color:var(--txt);font-family:var(--sans);font-size:16px;cursor:pointer;outline:none;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none' stroke='%23777' stroke-width='2'%3E%3Cpath d='M2 4l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}
select:focus{border-color:var(--red)}
.shift-wrap{margin-top:14px;display:flex;align-items:center;gap:12px}
.shift-lbl{font-family:var(--mono);font-size:12px;color:var(--txt2);white-space:nowrap}
.shift-lbl b{color:var(--red)}
.shift-wrap input[type=range]{flex:1;accent-color:var(--red);height:44px}
.act-row{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.act{padding:11px 18px;border:none;border-radius:var(--r);font-family:var(--sans);font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s,transform .1s;min-height:44px;display:flex;align-items:center;gap:6px}
.act:active{transform:scale(.96)}
.act.red{background:var(--red);color:#fff}
.act.red-fill{background:var(--red);color:#fff}
.act.dark{background:var(--bg);border:1px solid var(--line);color:var(--txt)}
.act.dark:active{border-color:var(--red)}
.act.line{background:none;border:1px solid var(--line);color:var(--txt2)}
.act.line:active{border-color:var(--txt2);color:var(--txt)}
.mini-btn{padding:5px 10px;background:var(--bg);border:1px solid var(--line);color:var(--txt2);font-family:var(--sans);font-size:11px;border-radius:4px;cursor:pointer;transition:all .15s}
.mini-btn:active{border-color:var(--red);color:var(--red)}
.map-panel{margin-top:0}
.map-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(68px,1fr));gap:8px}
.map-cell{background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:10px 6px;text-align:center;font-family:var(--mono);transition:all .15s}
.map-cell:active{border-color:var(--red);transform:scale(.95)}
.map-cell .a{font-size:16px;font-weight:700;color:var(--txt)}
.map-cell .arr{font-size:9px;color:var(--txt3);margin:1px 0}
.map-cell .b{font-size:16px;font-weight:700;color:var(--red)}
.ref-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.ref-card{background:var(--bg1);border:1px solid var(--line);border-radius:var(--r);padding:18px;transition:border-color .15s}
.ref-card:active{border-color:var(--line2)}
.ref-card h3{font-family:var(--mono);font-size:14px;color:var(--red);margin-bottom:6px}
.ref-card p{color:var(--txt2);font-size:12px;line-height:1.5}
#toast{position:fixed;bottom:calc(24px + var(--safe-b));left:50%;transform:translateX(-50%);background:var(--bg3);border:1px solid var(--red-dim);color:var(--txt);padding:12px 22px;border-radius:var(--r);font-family:var(--sans);font-size:14px;z-index:9999;opacity:0;transition:opacity .2s,transform .2s;pointer-events:none;box-shadow:0 4px 20px rgba(0,0,0,.4)}
#toast.show{opacity:1;transform:translateX(-50%) translateY(-6px)}
.mob-nav{display:none}
@media(max-width:820px){.panel-row{grid-template-columns:1fr}.ref-grid{grid-template-columns:1fr}}
@media(max-width:680px){.topbar{padding:calc(10px + var(--safe-t)) 14px 10px;gap:8px;flex-wrap:wrap}.topbar-brand{font-size:16px;order:1}.topbar-lock{font-size:12px;padding:6px 12px;order:2}.topbar-tabs{order:3;width:100%;gap:2px}.top-tab{font-size:12px;padding:7px 10px;flex:1;text-align:center}.content{padding:16px;padding-bottom:calc(72px + var(--safe-b))}.killa-title{font-size:32px;letter-spacing:3px}.panel{padding:14px}textarea{font-size:16px}.map-grid{grid-template-columns:repeat(auto-fill,minmax(60px,1fr))}.mob-nav{display:flex;position:fixed;bottom:0;left:0;right:0;background:var(--bg1);border-top:1px solid var(--line);padding:6px 0 calc(6px + var(--safe-b));z-index:100;justify-content:space-around}.mob-tab{background:none;border:none;color:var(--txt3);font-family:var(--sans);font-size:11px;font-weight:500;padding:8px 10px;cursor:pointer;min-height:44px;flex:1}.mob-tab.active{color:var(--red)}}