:root{--bg:#0d1b2a;--surface:#162233;--surface2:#1d2e42;--brand:#0a8fd4;--brand-dark:#0772ab;--brand-glow:#0a8fd440;--ok:#22c55e;--err:#ef4444;--text:#f0f6ff;--text-dim:#94a3b8;--border:#ffffff14;--radius:18px;--radius-sm:12px}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);width:100%;height:100%;color:var(--text);-webkit-font-smoothing:antialiased;font-family:Poppins,Segoe UI,Tahoma,Geneva,Verdana,sans-serif;overflow-x:hidden}main.app-shell{flex-direction:column;width:100%;max-width:480px;min-height:100dvh;margin:0 auto;display:flex}.topbar{border-bottom:1px solid var(--border);background:linear-gradient(135deg,#0e4a6e 0%,#07304a 100%);align-items:center;gap:10px;padding:16px 20px 14px;display:flex}.topbar-logo{flex-shrink:0;width:30px;height:30px}.topbar-title{color:#fff;flex:1;font-size:1rem;font-weight:600}.topbar-action{color:#fff;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:#ffffff1f;border:1px solid #ffffff2e;border-radius:999px;min-height:36px;padding:6px 14px;font-family:inherit;font-size:.8rem;font-weight:600}.topbar-action:active{background:#fff3}.page{flex-direction:column;flex:1;gap:14px;padding:20px 20px 36px;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:14px;padding:20px;display:flex}.login-wrap{flex-direction:column;flex:1;justify-content:center;gap:28px;padding:32px 20px 48px;display:flex}.login-header{text-align:center;flex-direction:column;align-items:center;gap:10px;display:flex}.login-logo{width:72px;height:72px;box-shadow:0 0 40px var(--brand-glow);border-radius:18px}.login-header h1{font-size:1.3rem;font-weight:700}.login-header p{color:var(--text-dim);font-size:.88rem}.login-form{flex-direction:column;gap:12px;display:flex}.input-group{flex-direction:column;gap:5px;display:flex}.input-group label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);padding-left:4px;font-size:.75rem;font-weight:600}input{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface2);width:100%;color:var(--text);touch-action:manipulation;outline:none;padding:13px 16px;font-family:inherit;font-size:16px;transition:border-color .15s,box-shadow .15s}input::placeholder{color:var(--text-dim);opacity:.5}input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-glow)}button{cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;border:none;border-radius:999px;min-height:48px;padding:13px 20px;font-family:inherit;font-size:.95rem;font-weight:600;transition:filter .12s,transform .1s}button:active{filter:brightness(.85);transform:scale(.97)}button.primary{background:linear-gradient(135deg, var(--brand), var(--brand-dark));color:#fff;box-shadow:0 4px 20px var(--brand-glow);width:100%}button.danger{color:#fff;background:linear-gradient(135deg,#ef4444,#b91c1c);flex:1}button.success{color:#fff;background:linear-gradient(135deg,#22c55e,#16a34a);flex:1}.status{border-radius:var(--radius-sm);border:1px solid #0000;padding:12px 14px;font-size:.88rem;font-weight:500;line-height:1.45}.status.info{color:#7dd3fc;background:#0a8fd41f;border-color:#0a8fd433}.status.success{color:#86efac;background:#22c55e1f;border-color:#22c55e33}.status.error{color:#fca5a5;background:#ef44441f;border-color:#ef444433}#reader{border-radius:var(--radius-sm);background:var(--surface2);border:1px solid var(--border);width:100%;overflow:hidden}.action-row{gap:10px;display:flex}.section-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);font-size:.72rem;font-weight:700}.muted{color:var(--text-dim);font-size:.88rem;line-height:1.5}.splash{min-height:100dvh;color:var(--text-dim);flex-direction:column;justify-content:center;align-items:center;gap:14px;font-size:.9rem;display:flex}.splash-logo{opacity:.6;border-radius:16px;width:64px;height:64px}.install-screen{text-align:center;background:radial-gradient(ellipse at top, #0e2a40 0%, var(--bg) 70%);flex-direction:column;justify-content:center;align-items:center;gap:14px;min-height:100dvh;padding:40px 28px;display:flex}.install-icon{width:100px;height:100px;box-shadow:0 8px 40px var(--brand-glow);border-radius:24px;margin-bottom:4px}.install-title{font-size:1.5rem;font-weight:700}.install-tagline{color:var(--text-dim);max-width:260px;font-size:.92rem}.install-instructions{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);max-width:320px;color:var(--text-dim);margin-top:4px;padding:22px 24px;font-size:.92rem;line-height:1.7}.install-instructions strong{color:var(--text)}.install-btn{width:100%;max-width:280px;margin-top:4px;padding:14px 36px;font-size:1rem}
