:root{--navy:#0d1b4b;--pink:#f09;--blue:#2b4eff;--teal:#00c9b5;--amber:#d29922;--red:#ef4444;--green:#22c55e;--bg:#f4f5f7;--card:#fff;--text:#1a1f36;--muted:#6b7280;--border:#e5e7eb}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:system-ui,-apple-system,Segoe UI,Helvetica,Arial,sans-serif}nav.topnav{background:var(--navy);z-index:100;align-items:center;gap:.75rem;height:48px;padding:0 1rem;display:flex;position:sticky;top:0}.brand{align-items:baseline;gap:0;text-decoration:none;display:flex}.brand-click{color:#fff;font-size:1rem;font-weight:700}.brand-learning{color:var(--pink);font-size:1rem;font-weight:400}.brand-suffix{color:#ffffff59;margin-left:.5rem;font-size:.82rem;font-weight:400}.nav-spacer{flex:1}.nav-user{color:#fff9;font-size:.78rem}.nav-link{color:#ffffffb3;font-size:.78rem;text-decoration:none;transition:color .15s}.nav-link:hover{color:#fff}.nav-logout{color:#fff9;border:1px solid #fff3;border-radius:4px;padding:.25rem .6rem;font-size:.78rem;text-decoration:none;transition:all .15s}.nav-logout:hover{color:#fff;border-color:#ffffff80}main{max-width:520px;margin:0 auto;padding:1rem .85rem}.card{background:var(--card);border:1px solid var(--border);border-radius:10px;margin-bottom:.75rem;padding:1rem}h1{color:var(--navy);margin-bottom:.2rem;font-size:1.1rem;font-weight:700}.subtitle{color:var(--muted);margin-bottom:1rem;font-size:.82rem}label{color:var(--text);margin-bottom:.35rem;font-size:.82rem;font-weight:600;display:block}input[type=text],input[type=password]{border:1px solid var(--border);width:100%;color:var(--text);-webkit-appearance:none;background:#fff;border-radius:6px;margin-bottom:.75rem;padding:.7rem .75rem;font-size:1rem;transition:border-color .15s}input:focus{border-color:var(--blue);outline:none}.btn{background:var(--navy);color:#fff;cursor:pointer;text-align:center;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border:none;border-radius:8px;width:100%;min-height:48px;padding:.875rem;font-size:1rem;font-weight:600;text-decoration:none;transition:opacity .15s;display:block}.btn:hover{opacity:.88}.btn-pink{background:var(--pink)}.btn-outline{border:1px solid var(--border);color:var(--text);background:0 0}.error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;margin-bottom:1rem;padding:.6rem .75rem;font-size:.85rem}.success{color:#15803d;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:6px;margin-bottom:1rem;padding:.6rem .75rem;font-size:.85rem}.scanner-wrap{aspect-ratio:1;background:#000;border-radius:8px;width:100%;margin-bottom:1rem;position:relative;overflow:hidden}.scanner-wrap video{object-fit:cover;width:100%;height:100%}.scan-overlay{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.scan-box{aspect-ratio:1;border:2px solid var(--pink);border-radius:8px;width:60%;box-shadow:0 0 0 9999px #00000073}.scan-log{list-style:none}.scan-log li{border-bottom:1px solid var(--border);align-items:center;gap:.75rem;padding:.6rem 0;font-size:.85rem;display:flex}.scan-log li:last-child{border-bottom:none}.scan-badge{background:var(--navy);color:#fff;white-space:nowrap;border-radius:4px;padding:.2rem .5rem;font-family:monospace;font-size:.75rem}.scan-time{color:var(--muted);white-space:nowrap;margin-left:auto;font-size:.78rem}.brand-logo.svelte-12qhfyh{width:auto;height:26px;display:block}.user-menu.svelte-12qhfyh{position:relative}.avatar.svelte-12qhfyh{color:#fff;cursor:pointer;letter-spacing:.03em;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:#ffffff26;border:1.5px solid #ffffff59;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;font-size:.72rem;font-weight:700;transition:background .15s;display:flex}.avatar.svelte-12qhfyh:hover{background:#ffffff40}.menu-backdrop.svelte-12qhfyh{z-index:99;position:fixed;inset:0}.dropdown.svelte-12qhfyh{border:1px solid var(--border);z-index:100;background:#fff;border-radius:8px;min-width:150px;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 4px 16px #0000001f}.dropdown.svelte-12qhfyh a:where(.svelte-12qhfyh){color:var(--text);border-bottom:1px solid var(--border);padding:.7rem 1rem;font-size:.85rem;text-decoration:none;display:block}.dropdown.svelte-12qhfyh a:where(.svelte-12qhfyh):last-child{border-bottom:none}.dropdown.svelte-12qhfyh a:where(.svelte-12qhfyh):hover{background:var(--bg)}
