@import url("https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&family=Geist+Mono:wght@500;700&display=swap");:root{--bg:#0a0a0a;--card:#141414;--surface:#1c1c1c;--border:#27272a;--text:#fff;--muted:#a1a1aa;--primary:#22c55e;--primary-fg:#0a0a0a;--good:#22c55e;--bad:#ef4444;--warning:#f59e0b}*{box-sizing:border-box;padding:0;margin:0}body,html{height:100%}body{font-family:Geist,ui-sans-serif,system-ui,-apple-system,sans-serif;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}main{min-height:100vh;display:flex;justify-content:center;padding:24px 16px 48px}.app-shell{width:min(1100px,100%);display:grid;grid-template-columns:minmax(280px,1.2fr) minmax(280px,.8fr);grid-gap:24px;gap:24px;align-items:start}@media (max-width:900px){.app-shell{grid-template-columns:1fr}}.panel{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:24px;width:100%}.title{font-size:28px;font-weight:700;letter-spacing:-.02em;margin-bottom:8px}.subtitle{color:var(--muted);font-size:14px;margin-bottom:24px}.badge{display:inline-flex;align-items:center;gap:8px;padding:4px 12px;margin-bottom:16px;border-radius:999px;font-size:12px;font-weight:600}.badge.online{color:var(--good);background:rgba(34,197,94,.1)}.badge.offline{color:var(--bad);background:rgba(239,68,68,.1)}.field{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}label{font-size:14px;font-weight:500;color:var(--text)}input,select,textarea{height:44px;background:transparent;border:1px solid var(--border);color:var(--text);padding:0 16px;border-radius:12px;font-family:inherit;font-size:16px;width:100%}select{background:var(--card)}input::placeholder{color:var(--muted)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(34,197,94,.2)}.actions{display:flex;flex-wrap:wrap;gap:8px}.actions input{flex:1 1;min-width:0}button{height:44px;border:none;background:var(--primary);color:var(--primary-fg);padding:0 24px;border-radius:999px;font-family:inherit;font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 10px 15px -3px rgba(34,197,94,.2);transition:background .2s ease,transform .2s ease}button:hover{background:rgba(34,197,94,.9)}button.secondary{background:transparent;color:var(--text);border:1px solid var(--border);box-shadow:none}button.secondary:hover{background:var(--surface);border-color:rgba(34,197,94,.5)}button:active{transform:scale(.98)}.status{margin-top:16px;padding:12px 16px;border-radius:12px;background:var(--surface);color:var(--muted);font-size:14px}.status.good{color:var(--good);background:rgba(34,197,94,.1)}.status.bad{color:var(--bad);background:rgba(239,68,68,.1)}.history{display:flex;flex-direction:column;gap:8px;max-height:420px;overflow:auto}.history-item{padding:12px 16px;border-radius:12px;background:var(--surface);display:grid;grid-gap:4px;gap:4px;font-size:14px}.history-item strong{font-family:Geist Mono,ui-monospace,monospace;text-transform:uppercase;font-size:12px;letter-spacing:.05em}.footer-note,.history-item span{color:var(--muted)}.footer-note{margin-top:20px;font-size:12px}video{background:#000}.scan-result{position:fixed;inset:0;z-index:50;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;width:100%;height:100%;border:0;border-radius:0;box-shadow:none;color:#fff;font-family:inherit;text-align:center;cursor:pointer}.scan-result:hover{background-image:none}.scan-result.valid,.scan-result.valid:hover{background:rgba(22,163,74,.97)}.scan-result.already,.scan-result.already:hover{background:rgba(245,158,11,.97);color:#111}.scan-result.invalid,.scan-result.invalid:hover{background:rgba(220,38,38,.97)}.scan-result-icon{font-size:96px;line-height:1;font-weight:700}.scan-result-title{font-size:34px;font-weight:700;line-height:1.15}.scan-result-detail{font-size:20px;opacity:.95}.scan-result-hint{margin-top:24px;font-size:14px;opacity:.8}.scan-result:active{transform:none}.auth-main{align-items:center}.auth-card{max-width:420px}.brand{font-size:15px;font-weight:700;letter-spacing:-.01em;margin-bottom:24px}.brand span{color:var(--primary)}.password-wrap{position:relative}.password-wrap input{padding-right:72px}button.password-toggle{position:absolute;right:4px;top:4px;height:36px;padding:0 14px;background:transparent;color:var(--muted);box-shadow:none;font-size:13px}button.password-toggle:hover{background:var(--surface);color:var(--text)}button.block{width:100%;margin-top:8px}button:disabled{opacity:.5;pointer-events:none}.auth-card .status{margin:0 0 12px}