:root{--bg0: #0c1210;--bg1: #121a16;--bg2: #1a2620;--panel: rgba(18, 28, 24, .88);--line: rgba(120, 180, 140, .18);--text: #e7f2ea;--muted: #8aa394;--accent: #3dffa8;--accent-dim: #1f8f5f;--warn: #ffb454;--danger: #ff6b6b;--screen-glow: rgba(61, 255, 168, .12);--font-display: "Syne", sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-mono);color:var(--text);background:radial-gradient(1200px 700px at 12% -10%,rgba(61,255,168,.14),transparent 55%),radial-gradient(900px 500px at 100% 0%,rgba(40,90,70,.35),transparent 50%),linear-gradient(165deg,var(--bg0),var(--bg1) 45%,#0a100e);background-attachment:fixed}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:1px solid var(--line);background:linear-gradient(180deg,#1e2c25,#16201b);color:var(--text);padding:.45rem .75rem;border-radius:2px;transition:border-color .15s,transform .12s,background .15s}button:hover:not(:disabled){border-color:#3dffa873;transform:translateY(-1px)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:linear-gradient(180deg,#2a8f62,#1a5c40);border-color:#3dffa880;color:#04140c;font-weight:600}button.danger{border-color:#ff6b6b66;color:#ffb4b4}button.active{border-color:var(--accent);box-shadow:0 0 0 1px #3dffa840 inset;color:var(--accent)}input,select,textarea{background:#0d1511;border:1px solid var(--line);border-radius:2px;padding:.45rem .6rem;width:100%}input:focus,select:focus,textarea:focus{outline:1px solid rgba(61,255,168,.45);border-color:#3dffa873}.app-shell{min-height:100%;display:grid;grid-template-rows:auto 1fr}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1.25rem;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#080e0c8c}.brand{font-family:var(--font-display);font-weight:800;font-size:1.35rem;letter-spacing:.02em;display:flex;align-items:baseline;gap:.55rem}.brand span{color:var(--accent)}.brand small{font-family:var(--font-mono);font-size:.7rem;color:var(--muted);font-weight:400;letter-spacing:.04em;text-transform:none}.user-chip{font-size:.75rem;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.users-admin-title{margin:0;font-family:var(--font-display);font-size:1.1rem}.users-admin-form{padding-bottom:.75rem;border-bottom:1px solid var(--line)}.stack.tight{gap:.25rem}.role-pill{font-size:.7rem;color:var(--muted);border:1px solid var(--line);padding:.2rem .45rem;text-transform:uppercase;letter-spacing:.04em}.role-pill.admin{color:var(--accent);border-color:#3dffa859}.topbar-actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.status-pill{font-size:.72rem;color:var(--muted);border:1px solid var(--line);padding:.3rem .55rem}.status-pill.ok{color:var(--accent);border-color:#3dffa859}.workspace{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,.9fr);gap:1rem;padding:1rem;min-height:0}@media(max-width:960px){.workspace{grid-template-columns:1fr}}.panel{background:var(--panel);border:1px solid var(--line);border-radius:4px;min-height:0;display:flex;flex-direction:column;overflow:hidden}.panel-header{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem .9rem;border-bottom:1px solid var(--line)}.panel-header h2{margin:0;font-family:var(--font-display);font-size:.95rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.panel-body{padding:.9rem;overflow:auto;flex:1}.screen-stage{position:relative;display:flex;align-items:center;justify-content:center;min-height:420px;background:linear-gradient(180deg,rgba(61,255,168,.04),transparent 30%),repeating-linear-gradient(0deg,transparent,transparent 23px,rgba(120,180,140,.04) 24px)}.screen-frame{position:relative;max-width:min(100%,420px);width:100%;box-shadow:0 0 0 1px #3dffa833,0 20px 60px var(--screen-glow);-webkit-user-select:none;user-select:none;touch-action:none;cursor:crosshair}.screen-frame img{display:block;width:100%;height:auto;image-rendering:auto;pointer-events:none}.screen-input-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2}.hitbox-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:3}.hitbox{position:absolute;border:1px solid rgba(61,255,168,.7);background:#3dffa81f}.hitbox span{position:absolute;left:0;top:-1.1rem;font-size:.65rem;color:var(--accent);white-space:nowrap;background:#000000a6;padding:0 .25rem}.tabs{display:flex;gap:.35rem;padding:.55rem .75rem 0;border-bottom:1px solid var(--line)}.tabs button{border:none;background:transparent;color:var(--muted);border-radius:0;border-bottom:2px solid transparent;padding:.55rem .65rem}.tabs button.active{color:var(--accent);border-bottom-color:var(--accent);box-shadow:none}.stack{display:flex;flex-direction:column;gap:.65rem}.row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.row>*{flex:1}.row.tight>*{flex:0 0 auto}.muted{color:var(--muted);font-size:.78rem}.list{display:flex;flex-direction:column;gap:.4rem}.list-item{border:1px solid var(--line);padding:.55rem .65rem;display:flex;justify-content:space-between;gap:.5rem;align-items:center;background:#0000002e}.list-item strong{font-weight:600;font-size:.85rem}.log{font-size:.72rem;max-height:180px;overflow:auto;background:#070c09;border:1px solid var(--line);padding:.5rem;white-space:pre-wrap}.login-wrap{min-height:100%;display:grid;place-items:center;padding:1.5rem}.login-card{width:min(420px,100%);border:1px solid var(--line);background:var(--panel);padding:1.5rem;animation:rise .45s ease-out;position:relative}.login-card h1{font-family:var(--font-display);margin:0 0 .35rem;font-size:1.8rem}.login-back{align-self:flex-start;margin-bottom:.35rem}.ghost-btn{background:transparent;border-color:transparent;color:var(--muted);padding:.35rem .5rem}.ghost-btn:hover:not(:disabled){color:var(--text);border-color:transparent;transform:none}.site{min-height:100%;display:flex;flex-direction:column}.site-nav{display:flex;align-items:center;justify-content:space-between;padding:1.1rem 1.5rem;position:relative;z-index:2}.site-brand{font-size:1.15rem}.hero{flex:1;display:grid;grid-template-columns:1.05fr .95fr;gap:2rem;align-items:center;min-height:calc(100vh - 4.5rem);padding:1rem 1.5rem 3rem;position:relative;overflow:hidden}.hero-copy{max-width:34rem;animation:rise .7s ease-out;position:relative;z-index:1}.hero-domain{margin:0 0 .65rem;color:var(--muted);letter-spacing:.14em;text-transform:lowercase;font-size:.78rem}.hero-brand{font-family:var(--font-display);font-weight:800;font-size:clamp(3.4rem,9vw,6.2rem);line-height:.92;margin:0 0 1rem;letter-spacing:-.02em}.hero-brand span{color:var(--accent)}.hero-line{font-family:var(--font-display);font-size:clamp(1.15rem,2.4vw,1.55rem);font-weight:600;margin:0 0 .75rem;max-width:22ch;line-height:1.25}.hero-sub{margin:0 0 1.6rem;color:var(--muted);max-width:38ch;line-height:1.55;font-size:.92rem}.hero-cta{display:flex;gap:.75rem}.hero-enter{padding:.7rem 1.25rem;font-size:.95rem}.hero-visual{position:relative;min-height:420px;display:grid;place-items:center;animation:rise .9s ease-out .08s both}.hero-glow{position:absolute;top:12%;right:18%;bottom:12%;left:18%;background:radial-gradient(circle at 50% 40%,rgba(61,255,168,.22),transparent 65%);filter:blur(8px);animation:glowPulse 4.5s ease-in-out infinite;pointer-events:none}.hero-device{position:relative;z-index:1;width:min(280px,70vw);aspect-ratio:9 / 16;transform:perspective(900px) rotateY(-12deg) rotateX(4deg)}.hero-device-bezel{height:100%;border-radius:22px;padding:10px;background:linear-gradient(160deg,#24352c,#101814 55%,#0a100e);border:1px solid rgba(120,180,140,.28);box-shadow:0 30px 80px #00000073}.hero-screen{position:relative;height:100%;border-radius:14px;overflow:hidden;background:linear-gradient(180deg,rgba(20,40,30,.4),transparent 40%),repeating-linear-gradient(0deg,rgba(61,255,168,.03) 0 1px,transparent 1px 8px),radial-gradient(circle at 30% 20%,rgba(61,255,168,.12),transparent 45%),#0b1511}.hero-scan{position:absolute;left:0;right:0;height:18%;background:linear-gradient(180deg,transparent,rgba(61,255,168,.18),transparent);animation:scanMove 3.2s ease-in-out infinite}.hero-hud{position:absolute;top:12%;left:10%;right:10%;display:flex;flex-direction:column;gap:.25rem;font-size:.62rem;letter-spacing:.06em;color:#e7f2ead9}.hero-hud span:first-child{color:var(--accent);font-weight:600}.hero-targets i{position:absolute;border:1px solid rgba(61,255,168,.7);border-radius:2px;box-shadow:0 0 0 1px #3dffa826}.hero-targets .t1{top:34%;left:18%;width:38%;height:8%;animation:targetBlink 2.4s ease-in-out infinite}.hero-targets .t2{top:52%;right:16%;width:28%;height:7%;animation:targetBlink 2.4s ease-in-out .4s infinite}.hero-targets .t3{bottom:22%;left:28%;width:44%;height:9%;animation:targetBlink 2.4s ease-in-out .8s infinite}.hero-status{position:absolute;bottom:10%;left:10%;right:10%;display:flex;align-items:center;gap:.4rem;font-size:.58rem;color:var(--muted);letter-spacing:.04em}.hero-status .dot{width:6px;height:6px;border-radius:50%;background:var(--accent);animation:pulse 1.4s infinite}.site-section{padding:3.5rem 1.5rem 4rem;max-width:40rem;margin:0 auto;text-align:center;animation:rise .8s ease-out .15s both}.site-section h2{font-family:var(--font-display);font-size:clamp(1.5rem,3vw,2rem);margin:0 0 .75rem;font-weight:700}.site-section p{margin:0;color:var(--muted);line-height:1.6}.site-footer{display:flex;justify-content:space-between;padding:1.25rem 1.5rem 1.75rem;border-top:1px solid var(--line);font-size:.78rem;color:var(--muted)}.site-footer span:first-child{font-family:var(--font-display);color:var(--text);font-weight:700}@media(max-width:860px){.hero{grid-template-columns:1fr;min-height:auto;padding-top:.5rem}.hero-visual{order:-1;min-height:320px}.hero-device{transform:none;width:min(220px,58vw)}.hero-line{max-width:none}}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes pulse{0%,to{opacity:.55}50%{opacity:1}}@keyframes glowPulse{0%,to{opacity:.55;transform:scale(.96)}50%{opacity:1;transform:scale(1.04)}}@keyframes scanMove{0%{top:8%;opacity:.2}45%{opacity:.85}to{top:78%;opacity:.15}}@keyframes targetBlink{0%,to{opacity:.35}50%{opacity:1}}.recording-dot{width:8px;height:8px;border-radius:50%;background:var(--danger);display:inline-block;animation:pulse 1s infinite}.empty{color:var(--muted);text-align:center;padding:2rem 1rem}
