@import"https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&display=swap";:root{--brand: #3b82f6;--brand-dark: #2563eb;--brand-light: #eff6ff;--navy: #05050a;--bg-primary: #f6f7f9;--bg-secondary: #eceef2;--bg-card: #ffffff;--bg-input: #eceef2;--text-primary: #0f1117;--text-second: #5c6170;--text-muted: #9196a4;--border: #d8dce3;--color-primary: #3b82f6;--color-primary-glow: rgba(59,130,246,.12);--color-success: #10b981;--color-warning: #f59e0b;--color-danger: #ef4444;--color-purple: #3b82f6;--glass-bg: var(--bg-card);--glass-border: var(--border);--glass-shadow: rgba(5,5,10,.12);--header-bg: rgba(246,247,249,.92);--body-bg: var(--bg-primary);--input-bg: var(--bg-input);--input-border: var(--border)}[data-theme=dark]{--bg-primary: #05050a;--bg-secondary: #0d0e14;--bg-card: #10111a;--bg-input: rgba(255,255,255,.05);--text-primary: #f1f2f6;--text-second: #9196a4;--text-muted: #5c6170;--border: rgba(255,255,255,.08);--glass-bg: rgba(16,17,26,.88);--glass-border: rgba(255,255,255,.08);--glass-shadow: rgba(0,0,0,.5);--header-bg: rgba(5,5,10,.9);--body-bg: var(--bg-primary);--input-bg: rgba(255,255,255,.05);--input-border: rgba(255,255,255,.1)}:root{--font-sans: "Poppins", sans-serif;--font-mono: "JetBrains Mono", monospace;font-family:var(--font-sans);font-weight:400;background-color:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;margin:0;padding:0;box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}h1,h2,h3,h4,h5,h6{color:var(--text-primary);margin:0}p,span,label,td,th,li{color:inherit}body{background:var(--body-bg);min-height:100vh;overflow-x:hidden;transition:background .2s,color .2s}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:0}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.app-wrapper{min-height:100vh;display:flex;flex-direction:column}.container{width:100%;max-width:1280px;margin:0 auto;padding:0 1.5rem}.app-header{background:var(--header-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:2px solid var(--border);position:sticky;top:0;z-index:100;padding:1rem 0}.header-container{display:flex;justify-content:space-between;align-items:center}.logo{display:flex;align-items:center;gap:.75rem;font-weight:700;background:none!important;-webkit-background-clip:unset!important;-webkit-text-fill-color:unset!important}.nav-menu{display:flex;gap:.5rem}.nav-btn{background:transparent;border:2px solid transparent;color:var(--text-second);font-family:var(--font-sans);font-size:.88rem;font-weight:600;padding:.45rem .9rem;border-radius:0;cursor:pointer;display:flex;align-items:center;gap:.5rem;letter-spacing:.3px;transition:all .12s ease}.nav-btn:hover{color:var(--text-primary);background:var(--bg-secondary);border-color:var(--border)}.nav-btn.active{color:var(--brand);background:var(--brand-light);border-color:var(--brand)}[data-theme=dark] .nav-btn.active{background:#3b82f61a;border-color:#3b82f659}.glass-card{background:var(--bg-card);border:2px solid var(--border);border-radius:0;padding:1.5rem;box-shadow:8px 8px #05050a1a;transition:box-shadow .12s ease,border-color .12s ease}[data-theme=dark] .glass-card{box-shadow:8px 8px #00000059}.glass-card:hover{border-color:var(--brand);box-shadow:8px 8px #3b82f626}.glass-card.header-card{background:var(--brand-light);border-color:var(--brand);margin-bottom:2rem;text-align:center}[data-theme=dark] .glass-card.header-card{background:#3b82f612;border-color:#3b82f640}.glass-card.header-card h2{font-size:1.9rem;font-weight:700;color:var(--text-primary);margin:0 0 .5rem;letter-spacing:-.5px;background:none;-webkit-background-clip:unset;-webkit-text-fill-color:unset}.subtitle{color:var(--text-second);font-size:1rem;margin:0}.grid-2col{display:grid;grid-template-columns:1.1fr .9fr;gap:1.5rem;margin-bottom:2rem}@media (max-width: 968px){.grid-2col{grid-template-columns:1fr}}.grid-3col{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-bottom:2rem}@media (max-width: 768px){.grid-3col{grid-template-columns:1fr}}.db-panel-section{display:flex;flex-direction:column;gap:1.5rem}.panel-title-bar{display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid var(--border);padding-bottom:.75rem;margin-bottom:1rem}.panel-title-bar h3{font-size:.78rem;font-weight:700;margin:0;display:flex;align-items:center;gap:.5rem;letter-spacing:1px;text-transform:uppercase;color:var(--text-muted)}.btn-icon{background:var(--navy);border:2px solid var(--navy);color:#fff;padding:.5rem 1rem;border-radius:0;font-family:var(--font-sans);font-weight:700;font-size:.82rem;letter-spacing:.5px;cursor:pointer;display:flex;align-items:center;gap:.5rem;box-shadow:4px 4px #05050a33;transition:all .1s ease}.btn-icon:hover{transform:translate(-2px,-2px);box-shadow:6px 6px #05050a33}.btn-icon:active{transform:translate(2px,2px);box-shadow:2px 2px #05050a33}.btn-icon.secondary{background:var(--bg-card);border-color:var(--border);color:var(--text-primary);box-shadow:4px 4px #05050a12}.btn-icon.secondary:hover{border-color:var(--brand);color:var(--brand)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media (max-width: 480px){.form-grid{grid-template-columns:1fr}}.form-group{display:flex;flex-direction:column;gap:.4rem}.form-group.full-width{grid-column:1 / -1}.form-group label{font-size:.72rem;font-weight:700;color:var(--text-muted);letter-spacing:.8px;text-transform:uppercase}.form-input,.form-select{background:var(--bg-input);border:2px solid var(--border);border-radius:0;color:var(--text-primary);padding:.6rem .8rem;font-family:var(--font-sans);font-size:.95rem;transition:border-color .12s;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-input:focus,.form-select:focus{outline:none;border-color:var(--brand)}[data-theme=dark] .form-select,[data-theme=dark] .form-input{color-scheme:dark}[data-theme=light] .form-select,[data-theme=light] .form-input{color-scheme:light}.active-keys-grid{display:flex;flex-direction:column;gap:.75rem;max-height:380px;overflow-y:auto;padding-right:.25rem}.key-strip{display:flex;justify-content:space-between;align-items:center;background:var(--bg-secondary);border:2px solid var(--border);border-radius:0;padding:.75rem 1rem;transition:border-color .12s}.key-strip:hover{border-color:var(--brand)}.key-info{display:flex;flex-direction:column;gap:.2rem}.key-user{font-weight:600;font-size:.95rem}.key-meta{font-size:.8rem;color:var(--text-muted);display:flex;align-items:center;gap:.4rem}.pill{font-size:.68rem;font-weight:700;text-transform:uppercase;padding:.15rem .5rem;border-radius:0;letter-spacing:.5px;border:1px solid}.pill.resident{background:#10b9811a;color:var(--color-success);border-color:#10b9814d}.pill.guest{background:#3b82f61a;color:var(--brand);border-color:#3b82f64d}.pill.single-use{background:#f59e0b1a;color:var(--color-warning);border-color:#f59e0b4d}.pill.online{background:#10b9811a;color:var(--color-success);border-color:#10b9814d}.pill.offline{background:#ef44441a;color:var(--color-danger);border-color:#ef44444d}.key-actions{display:flex;gap:.5rem}.btn-small{background:var(--bg-input);border:2px solid var(--border);color:var(--text-primary);padding:.3rem;border-radius:0;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .1s ease}.btn-small:hover{background:var(--brand);border-color:var(--brand);color:#fff}.btn-small.delete:hover{background:var(--color-danger);border-color:var(--color-danger);color:#fff}.qr-display-box{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:1.5rem;background:var(--bg-secondary);border:2px dashed var(--border);border-radius:0;min-height:290px}.qr-canvas-wrapper{background:#fff;padding:12px;border-radius:0;border:2px solid var(--border);box-shadow:6px 6px #05050a1a;display:flex;align-items:center;justify-content:center;cursor:grab}.qr-string-code{font-family:var(--font-mono);font-size:.72rem;color:var(--text-muted);background:var(--bg-input);border:1px solid var(--border);padding:.4rem .6rem;border-radius:0;max-width:100%;overflow-x:auto;white-space:nowrap}.logs-table-wrapper{overflow-x:auto;max-height:280px}.logs-table{width:100%;border-collapse:collapse;text-align:left}.logs-table th,.logs-table td{padding:.7rem 1rem;font-size:.88rem}.logs-table th{border-bottom:2px solid var(--border);color:var(--text-muted);font-weight:700;font-size:.72rem;text-transform:uppercase;letter-spacing:.8px}.logs-table td{border-bottom:1px solid var(--border)}.logs-table tr:last-child td{border-bottom:none}.logs-table tr:hover{background:var(--bg-secondary)}.log-status{display:inline-flex;align-items:center;gap:.35rem;font-weight:700;font-size:.68rem;padding:.2rem .5rem;border-radius:0;border:1px solid;text-transform:uppercase;letter-spacing:.5px}.log-status.granted{background:#10b9811a;color:var(--color-success);border-color:#10b9814d}.log-status.denied{background:#ef44441a;color:var(--color-danger);border-color:#ef44444d}.log-time{font-family:var(--font-mono);font-size:.78rem;color:var(--text-muted)}.empty-state{text-align:center;color:var(--text-muted);padding:2rem;font-size:.9rem}.simulator-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:1.5rem}@media (max-width: 1024px){.simulator-grid{grid-template-columns:1fr}}.hardware-canvas-box{display:flex;flex-direction:column;gap:1rem}.hardware-rack{background:#0d1321;border:2px solid #334155;border-radius:0;padding:2rem;display:flex;align-items:center;justify-content:space-around;min-height:380px;position:relative;overflow:hidden;box-shadow:8px 8px #0006}.hardware-rack:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,rgba(255,255,255,.02) 0%,transparent 100%);pointer-events:none}.dropzone-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#05050ad9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:10}.hardware-rack.drag-active .dropzone-overlay{opacity:1;pointer-events:auto}.dropzone-box{border:2px dashed var(--brand);border-radius:0;padding:2rem;text-align:center;max-width:320px;transform:scale(.95);transition:transform .2s ease}.hardware-rack.drag-active .dropzone-box{transform:scale(1)}.sim-esp32{filter:drop-shadow(0 10px 20px rgba(0,0,0,.6))}.oled-screen-fill{transition:fill .3s ease}.led{width:14px;height:14px;border-radius:50%;background-color:#27272a;border:2px solid #52525b;position:relative;transition:all .2s ease}.led:after{content:"";position:absolute;top:2px;left:2px;width:4px;height:4px;border-radius:50%;background:#ffffff80}.led.red.on{background-color:#ef4444;border-color:#f87171;box-shadow:0 0 12px #ef4444}.led.green.on{background-color:#10b981;border-color:#34d399;box-shadow:0 0 12px #10b981}.led.blue.on{background-color:#3b82f6;border-color:#60a5fa;box-shadow:0 0 12px #3b82f6}.scanner-body{position:relative}.scanner-laser{position:absolute;left:0;right:0;height:2px;background-color:#ef4444;box-shadow:0 0 10px #ef4444;opacity:0;pointer-events:none}.scanner-laser.scanning{opacity:1;animation:laser-sweep 1.2s infinite ease-in-out}@keyframes laser-sweep{0%{top:15%}50%{top:85%}to{top:15%}}.scanner-scan-panel{display:flex;flex-direction:column;gap:.75rem}.quick-scan-selector{display:flex;gap:.5rem}.terminal-console{background-color:var(--navy);border:2px solid #1e293b;border-radius:0;padding:1rem;font-family:var(--font-mono);font-size:.8rem;color:#34d399;height:220px;overflow-y:auto;box-shadow:8px 8px #0000004d;display:flex;flex-direction:column;gap:.25rem}.terminal-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(255,255,255,.07);padding-bottom:.5rem;margin-bottom:.5rem}.terminal-dot-cluster{display:flex;gap:4px}.terminal-dot{width:8px;height:8px;border-radius:50%}.terminal-dot.red{background:#ef4444}.terminal-dot.yellow{background:#f59e0b}.terminal-dot.green{background:#10b981}.terminal-title{color:var(--text-muted);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:1px}.console-line{line-height:1.4;white-space:pre-wrap;word-break:break-all}.console-line.info{color:#38bdf8}.console-line.success{color:#34d399}.console-line.warn{color:#f59e0b}.console-line.error{color:#f87171}.switch-bar{display:flex;justify-content:space-between;align-items:center;background:var(--bg-secondary);padding:.75rem 1rem;border-radius:0;border:2px solid var(--border)}.switch-label{display:flex;align-items:center;gap:.5rem;font-size:.9rem;font-weight:600}.switch-btn{width:44px;height:24px;border-radius:12px;background:var(--border);position:relative;cursor:pointer;border:none;transition:background .2s ease}.switch-btn.on{background:var(--brand)}.switch-nob{width:18px;height:18px;border-radius:50%;background:#fff;position:absolute;top:3px;left:3px;transition:transform .2s cubic-bezier(.4,0,.2,1);box-shadow:0 1px 3px #0000004d}.switch-btn.on .switch-nob{transform:translate(20px)}.pin-table{width:100%;border-collapse:collapse;margin-top:1rem}.pin-table th,.pin-table td{padding:.6rem;font-size:.85rem;text-align:left;border-bottom:1px solid var(--border)}.pin-table th{color:var(--text-muted);font-weight:700;font-size:.72rem;text-transform:uppercase;letter-spacing:.8px}.pin-vcc{color:#ef4444;font-weight:700}.pin-gnd{color:var(--text-muted);font-weight:700}.pin-tx{color:#f59e0b;font-weight:700}.pin-rx{color:#38bdf8;font-weight:700}.lock-config-box{background:#3b82f60f;border:2px solid rgba(59,130,246,.2);border-radius:0;padding:1rem;margin-top:1.25rem}.lock-config-box h4{margin:0 0 .5rem;color:var(--brand)}.lock-config-box ul{margin:0;padding-left:1.2rem;font-size:.85rem;color:var(--text-second);display:flex;flex-direction:column;gap:.4rem}.step-list{display:flex;flex-direction:column;gap:1.5rem;padding:0;list-style:none}.step-list li{display:flex;gap:1rem}.step-number{flex-shrink:0;width:28px;height:28px;border-radius:0;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem}.step-content{display:flex;flex-direction:column;gap:.25rem}.step-content h5{margin:0;font-size:1rem;font-weight:600}.step-content p{margin:0;font-size:.9rem;color:var(--text-second);line-height:1.4}.landing-container{display:flex;flex-direction:column;gap:4rem;padding:2rem 0 4rem}.hero-section{text-align:center;max-width:800px;margin:0 auto;display:flex;flex-direction:column;gap:1.5rem}.badge-glow{background:var(--brand-light);border:2px solid var(--brand);color:var(--brand-dark);padding:.35rem 1rem;border-radius:0;font-size:.72rem;font-weight:700;align-self:center;letter-spacing:1px;text-transform:uppercase}[data-theme=dark] .badge-glow{background:#3b82f61a;border-color:#3b82f666;color:#60a5fa}.hero-title{font-size:2.8rem;font-weight:700;line-height:1.1;letter-spacing:-1.5px;margin:0;color:var(--text-primary)}.hero-title span{color:var(--brand)}[data-theme=dark] .hero-title{background:linear-gradient(135deg,#f1f2f6 30%,var(--text-second) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent}[data-theme=dark] .hero-title span{background:linear-gradient(135deg,#3b82f6,#10b981);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.hero-desc{font-size:1.1rem;line-height:1.7;color:var(--text-second);max-width:600px;margin:0 auto}.hero-actions{display:flex;justify-content:center;gap:1rem;margin-top:1rem}.btn-large{padding:.8rem 2rem;border-radius:0;font-family:var(--font-sans);font-size:.95rem;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:.5rem;letter-spacing:.5px;border:2px solid;box-shadow:4px 4px #05050a2e;transition:all .1s ease}.btn-large:hover{transform:translate(-2px,-2px);box-shadow:6px 6px #05050a2e}.btn-large:active{transform:translate(2px,2px);box-shadow:2px 2px #05050a2e}.btn-large.primary{background:var(--navy);border-color:var(--navy);color:#fff}.btn-large.secondary{background:var(--bg-card);border-color:var(--border);color:var(--text-primary)}.features-title{text-align:center;font-size:1.8rem;font-weight:700;margin-bottom:.5rem;letter-spacing:-.5px}.features-desc{text-align:center;color:var(--text-second);max-width:500px;margin:0 auto 2.5rem}.feat-card{display:flex;flex-direction:column;gap:1rem}.feat-icon-box{width:48px;height:48px;border-radius:0;display:flex;align-items:center;justify-content:center;border:2px solid}.feat-icon-box.blue{background:#3b82f61a;color:var(--brand);border-color:#3b82f64d}.feat-icon-box.green{background:#10b9811a;color:var(--color-success);border-color:#10b9814d}.feat-icon-box.purple{background:#3b82f61a;color:var(--brand);border-color:#3b82f633}.feat-card h4{font-size:1.05rem;font-weight:700;margin:0 0 .5rem}
