@tailwind base;@tailwind components;@tailwind utilities;:root{--background:#020202;--surface:#0a0a0a;--surface-light:#151515;--border:#1a1a1a;--primary:#10b981;--primary-dim:rgba(16,185,129,.15);--accent-red:#ef4444;--accent-red-dim:rgba(239,68,68,.15);--text-main:#fff;--text-muted:#666}*{box-sizing:border-box}body{background-color:var(--background);color:var(--text-main);font-family:Inter,monospace,system-ui;margin:0;padding:0;width:100vw;height:100vh;overflow:hidden;font-size:13px}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:var(--background)}::-webkit-scrollbar-thumb{background:#333;border-radius:2px}::-webkit-scrollbar-thumb:hover{background:#555}.dashboard-layout{display:flex;flex-direction:column;height:100vh;width:100vw;position:relative}.bg-grid{position:absolute;top:0;left:0;right:0;bottom:0;background-image:linear-gradient(hsla(0,0%,100%,.03) 1px,transparent 0),linear-gradient(90deg,hsla(0,0%,100%,.03) 1px,transparent 0);background-size:20px 20px;pointer-events:none;z-index:1;animation:grid-pan 20s linear infinite}@keyframes grid-pan{0%{transform:translateY(0) translateX(0)}to{transform:translateY(20px) translateX(20px)}}.top-nav{height:40px;background:rgba(5,5,5,.9);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 16px;flex-shrink:0;z-index:50;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.main-workspace{flex:1 1;position:relative;display:flex;flex-direction:column;overflow:hidden}.map-container{position:absolute;top:0;left:0;right:0;bottom:0;z-index:0}.panel{background:rgba(8,8,8,.85);border:1px solid var(--border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);display:flex;flex-direction:column;box-shadow:0 4px 30px rgba(0,0,0,.5);position:relative}.panel-header{padding:6px 12px;border-bottom:1px solid var(--border);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);display:flex;align-items:center;justify-content:space-between;background:hsla(0,0%,8%,.5)}.bottom-grid{position:absolute;bottom:0;left:0;right:0;height:260px;display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:1px;gap:1px;background:var(--border);z-index:10}.bottom-grid>.panel{border:none;height:100%}button,input,select{font-family:inherit;outline:none}.btn{background:transparent;color:var(--text-main);border:1px solid #333;padding:4px 8px;font-size:10px;border-radius:2px;cursor:pointer;transition:all .2s ease;position:relative}.btn:after,.btn:before{content:"";position:absolute;top:50%;transform:translateY(-50%);opacity:0;transition:all .2s ease;color:var(--primary);font-weight:700}.btn:before{content:"[";left:-10px}.btn:after{content:"]";right:-10px}.btn:hover:before{opacity:1;left:4px}.btn:hover:after{opacity:1;right:4px}.btn:hover{border-color:var(--primary);color:var(--primary);padding-left:12px;padding-right:12px}.btn-primary{background:var(--primary-dim);color:var(--primary);border:1px solid var(--primary);font-weight:700;letter-spacing:1px}.btn-primary:hover{background:var(--primary);color:#000;box-shadow:0 0 15px rgba(16,185,129,.4)}.badge{padding:2px 6px;border-radius:2px;font-size:9px;font-weight:700;letter-spacing:.5px}.badge-green{background:var(--primary-dim);color:var(--primary);border:1px solid var(--primary)}.badge-red{background:var(--accent-red-dim);color:var(--accent-red);border:1px solid var(--accent-red)}.layer-row{display:flex;align-items:center;padding:6px 12px;font-size:11px;color:var(--text-main);cursor:pointer;transition:background .2s}.layer-row:hover{background:hsla(0,0%,100%,.05)}.layer-row.active{color:var(--primary)}@keyframes blink-random{0%,to{opacity:.2}50%{opacity:1;box-shadow:0 0 5px currentColor}}.led{width:6px;height:6px;border-radius:50%;display:inline-block;animation:blink-random 1s infinite}.led-red{background:var(--accent-red);color:var(--accent-red)}.led-green{background:var(--primary);color:var(--primary)}.led-blue{background:#3b82f6;color:#3b82f6}.glitch-text{position:relative}.glitch-text:after,.glitch-text:before{content:attr(data-text);position:absolute;top:0;left:0;opacity:.8}.glitch-text:before{animation:glitch-anim-1 3s linear infinite alternate-reverse;clip:rect(0,900px,0,0);color:#0ff;z-index:-1}.glitch-text:after{animation:glitch-anim-2 2.5s linear infinite alternate-reverse;clip:rect(0,900px,0,0);color:#f0f;z-index:-2}@keyframes glitch-anim-1{0%,95%{clip:rect(0,900px,0,0);transform:translate(0)}96%{clip:rect(4px,900px,12px,0);transform:translate(-2px,1px)}98%{clip:rect(15px,900px,20px,0);transform:translate(2px,-1px)}to{clip:rect(0,900px,0,0);transform:translate(0)}}@keyframes glitch-anim-2{0%,92%{clip:rect(0,900px,0,0);transform:translate(0)}93%{clip:rect(10px,900px,18px,0);transform:translate(2px,-1px)}95%{clip:rect(2px,900px,8px,0);transform:translate(-2px,1px)}to{clip:rect(0,900px,0,0);transform:translate(0)}}.boot-screen{position:fixed;top:0;left:0;right:0;bottom:0;background:#000;z-index:9999;display:flex;flex-direction:column;justify-content:flex-end;padding:2rem;font-family:monospace;font-size:12px;color:var(--primary);animation:fadeOut .5s ease 1.5s forwards;pointer-events:none}@keyframes fadeOut{to{opacity:0;visibility:hidden}}.ticker-wrap{width:100%;overflow:hidden;background:#000;border-bottom:1px solid #222;height:20px;display:flex;align-items:center;position:absolute;z-index:40;top:40px}.ticker-track{white-space:nowrap;animation:ticker 30s linear infinite;font-size:9px;color:#0ea5e9;font-family:monospace}@keyframes ticker{0%{transform:translateX(100vw)}to{transform:translateX(-100%)}}.spin-slow{animation:spin 10s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.animate-pulse-red{animation:pulse-red 2s infinite}@keyframes pulse-red{0%{box-shadow:0 0 0 0 rgba(239,68,68,.4)}70%{box-shadow:0 0 0 8px rgba(239,68,68,0)}to{box-shadow:0 0 0 0 rgba(239,68,68,0)}}