.landing.container{min-height:100vh;max-width:480px;margin:0 auto;display:flex;flex-direction:column;padding:32px 24px}.landing .topbar{margin-bottom:0}.landing .topbar-left{display:flex;align-items:center}.landing .topbar-right{display:flex;align-items:center;gap:4px}.landing .github-link{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--muted);padding:4px 8px;border-radius:var(--radius-sm);transition:color .15s,background .15s}.landing .github-link:hover{color:var(--fg);background:var(--bg-alt)}.landing main{flex:1;display:flex;flex-direction:column;justify-content:center}.landing h1{font-size:clamp(48px,18vw,96px);font-weight:900;letter-spacing:-.06em;margin:0;line-height:1}.landing .tagline{font-size:clamp(16px,2.5vw,22px);color:var(--fg-secondary);margin:12px 0 0;max-width:420px;font-weight:500}.landing .cta{margin-top:40px;max-width:420px}.landing .cta button{background:var(--primary);border:none;color:#fff;cursor:pointer;display:block;font-size:17px;font-weight:700;letter-spacing:.03em;padding:16px 0;text-align:center;text-decoration:none;width:100%;border-radius:var(--radius);box-shadow:var(--shadow-md);transition:background .15s,box-shadow .15s,transform .1s}.landing .cta button:hover{background:var(--primary-hover);box-shadow:0 6px 12px #0000001a}.landing .cta button:active{transform:scale(.98)}.landing .trust-badges{margin-top:32px}.trust-badges{display:flex;gap:16px;flex-wrap:wrap;margin-top:8px}.trust-badge{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--accent);letter-spacing:.02em}.trust-badge svg{flex-shrink:0}.page-footer{margin-top:48px;padding-top:16px;border-top:1px solid var(--line);text-align:center}.page-footer p{margin:0;font-size:12px;color:var(--muted)}.page-footer a{color:var(--muted);font-weight:500;text-decoration:underline;text-underline-offset:2px}.page-footer a:hover{color:var(--primary)}.scan.container{max-width:480px;margin:0 auto;padding:24px 16px 48px;display:flex;flex-direction:column}.scan header{margin-bottom:24px}.scan .topbar-right{display:flex;align-items:center;gap:4px}.scan h1{font-size:28px;font-weight:800;letter-spacing:-.03em;margin:0}.scan .scanner-frame{position:relative;width:100%;aspect-ratio:1 / 1;max-height:360px;border:2px solid var(--primary);border-radius:var(--radius);overflow:hidden;display:flex;align-items:center;justify-content:center;background:var(--bg-alt);box-shadow:0 0 0 4px var(--primary-subtle)}.scan .scanner-frame video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.scanner-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px;text-align:center}.scanner-state-text{font-size:14px;color:var(--fg-secondary);font-weight:500}.scanner-error svg{color:var(--danger)}.scanner-error .scanner-state-text{color:var(--danger)}.spinner{width:28px;height:28px;border:3px solid var(--line);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.scan .scan-info{display:flex;align-items:center;gap:8px;margin-top:20px;margin-bottom:20px;padding:12px 16px;background:var(--bg-alt);border-radius:var(--radius);border:1px solid var(--line)}.scan .scan-info svg{color:var(--primary);flex-shrink:0}.scan .scan-info span{font-size:14px;color:var(--fg-secondary);font-weight:500}.scan .actions{display:flex;gap:12px}.scan .actions button{flex:1;padding:14px 0;font-size:15px;font-weight:700}.warning-box{display:flex;align-items:center;gap:10px;margin-top:12px;margin-bottom:20px;padding:14px 16px;background:#fef3c7;border:1px solid #f59e0b;border-radius:var(--radius);color:#92400e}[data-theme=dark] .warning-box{background:#451a03;border-color:#d97706;color:#fbbf24}.warning-box svg{flex-shrink:0;color:#f59e0b}.warning-box span{font-size:14px;font-weight:600;line-height:1.4}.detected-box{width:100%;height:100%;padding:24px;display:flex;flex-direction:column;justify-content:center}.detected-header{display:flex;align-items:center;gap:8px;margin-bottom:16px}.detected-header h2{margin:0;font-size:22px;font-weight:800;letter-spacing:-.02em}.detected-meta{display:flex;flex-direction:column;gap:6px}.detected-row{display:flex;gap:8px;font-size:14px}.detected-label{font-weight:600;color:var(--fg-secondary);min-width:50px}.detected-value{color:var(--fg);font-weight:500}.codes.container{max-width:480px;margin:0 auto;padding:24px 16px}.codes header{text-align:left;margin-bottom:32px}.codes .topbar-right{display:flex;align-items:center;gap:4px}.codes h1{font-size:28px;font-weight:800;letter-spacing:-.03em;margin:0}.codes .keys-list{padding:0;margin:0;display:flex;flex-direction:column;gap:16px;list-style:none}.codes .key-item{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);box-shadow:var(--shadow);overflow:hidden}.codes .key-item-body{padding:16px;display:flex;flex-direction:row;align-items:flex-start;gap:12px}.codes .key-item-left{flex:1;min-width:0}.codes .key-app{font-weight:700;font-size:16px;color:var(--fg);display:block}.codes .key-name{font-weight:400;font-size:13px;color:var(--fg-secondary);margin:2px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.codes .key-item-right{flex-shrink:0}.codes .key-code{display:inline-block;padding:6px 12px;background:var(--bg-alt);border:1px solid var(--line);border-radius:var(--radius-sm);font-family:SF Mono,Cascadia Code,JetBrains Mono,ui-monospace,monospace;font-size:22px;font-weight:700;letter-spacing:.08em;color:var(--primary);line-height:1.3}.countdown-bar{height:3px;background:var(--bg-alt);margin:0 16px;border-radius:2px;overflow:hidden}.countdown-fill{height:100%;background:var(--primary);border-radius:2px;transition:width 1s linear}.codes .key-actions{display:flex;gap:8px;padding:12px 16px;border-top:1px solid var(--line);background:var(--bg-alt)}.codes .key-actions button{flex:1}.codes .delete-warning{display:flex;flex-direction:column;gap:10px;width:100%;padding:14px 16px;background:#fef3c7;border:1px solid #f59e0b;border-radius:var(--radius);margin:-4px 0}[data-theme=dark] .codes .delete-warning{background:#451a03;border-color:#d97706;color:#fbbf24}.codes .delete-warning svg{color:#f59e0b;flex-shrink:0}.codes .delete-warning p{margin:0;font-size:13px;font-weight:600;line-height:1.4;color:#92400e}[data-theme=dark] .codes .delete-warning p{color:#fbbf24}.codes .delete-actions{display:flex;gap:8px}.codes .delete-actions button{flex:1;padding:8px 12px;font-size:13px;font-weight:600}.codes .delete-actions .btn-secondary{background:var(--bg);border:1px solid var(--line);color:var(--fg-secondary)}.codes .delete-actions .btn-secondary:hover{border-color:var(--fg);color:var(--fg)}.codes .delete-actions .btn-danger{background:var(--danger);border:none;color:#fff}.codes .delete-actions .btn-danger:hover{opacity:.9}.codes .add-key{display:flex;gap:12px;margin-top:24px}.codes .add-key button{flex:1;padding:14px 0;font-size:15px;font-weight:700}.codes .codes-empty{text-align:center;padding:80px 24px;display:flex;flex-direction:column;align-items:center;gap:16px}.codes .codes-empty .empty-icon{color:var(--muted);opacity:.5}.codes .codes-empty p{font-size:15px;color:var(--fg-secondary);margin:0;max-width:260px;line-height:1.5}.codes .codes-empty button{padding:14px 24px;font-size:15px;font-weight:700}.backups.container{max-width:480px;margin:0 auto;padding:24px 16px}.backups header{text-align:left;margin-bottom:32px}.backups .topbar-right{display:flex;align-items:center;gap:4px}.backups h1{font-size:28px;font-weight:800;letter-spacing:-.03em;margin:0}.backups-list{display:flex;flex-direction:column;gap:16px}.backups-empty{text-align:center;padding:80px 24px;display:flex;flex-direction:column;align-items:center;gap:16px}.backups-empty .empty-icon{color:var(--muted);opacity:.5}.backups-empty p{font-size:15px;color:var(--fg-secondary);margin:0;max-width:280px;line-height:1.5}.backups-empty button{padding:14px 24px;font-size:15px;font-weight:700}.backup-item{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);box-shadow:var(--shadow);overflow:hidden}.backup-header{display:flex;justify-content:space-between;align-items:center;padding:16px;gap:12px}.backup-app{font-weight:700;font-size:16px;color:var(--fg);display:block}.backup-name{font-weight:400;font-size:13px;color:var(--fg-secondary);margin:2px 0 0}.backup-header .btn-outline{background:var(--bg);border:1px solid var(--line);color:var(--fg-secondary);padding:8px 14px;font-size:13px;font-weight:600;white-space:nowrap}.backup-header .btn-outline:hover{border-color:var(--primary);color:var(--primary)}.reveal-warning{margin:0 16px 16px;padding:14px 16px;background:#fef3c7;border:1px solid #f59e0b;border-radius:var(--radius);display:flex;flex-direction:column;gap:10px}[data-theme=dark] .reveal-warning{background:#451a03;border-color:#d97706;color:#fbbf24}.reveal-warning svg{color:#f59e0b;flex-shrink:0}.reveal-warning p{margin:0;font-size:13px;font-weight:600;line-height:1.4;color:#92400e}[data-theme=dark] .reveal-warning p{color:#fbbf24}.reveal-actions{display:flex;gap:8px}.reveal-actions button{flex:1;padding:8px 12px;font-size:13px;font-weight:600}.reveal-actions .btn-secondary{background:var(--bg);border:1px solid var(--line);color:var(--fg-secondary)}.reveal-actions .btn-secondary:hover{border-color:var(--fg);color:var(--fg)}.reveal-actions .btn-primary{background:var(--primary);border:none;color:#fff}.reveal-actions .btn-primary:hover{background:var(--primary-hover)}.backup-details{padding:0 16px 16px;display:flex;flex-direction:column;align-items:center;gap:16px}.qr-wrapper{padding:12px;background:#fff;border-radius:var(--radius-sm);border:1px solid var(--line);display:inline-flex}.secret-display{width:100%;display:flex;flex-direction:column;gap:6px}.secret-label{font-size:12px;font-weight:600;color:var(--fg-secondary);text-transform:uppercase;letter-spacing:.06em}.secret-value{display:block;padding:10px 14px;background:var(--bg-alt);border:1px solid var(--line);border-radius:var(--radius-sm);font-family:SF Mono,Cascadia Code,JetBrains Mono,ui-monospace,monospace;font-size:13px;color:var(--fg);word-break:break-all;line-height:1.5}.backups-actions{margin-top:32px}.backups-actions button{width:100%;padding:14px 0;font-size:15px;font-weight:700}.backups-actions .btn-secondary{background:var(--bg);border:1px solid var(--line);color:var(--fg-secondary)}.backups-actions .btn-secondary:hover{border-color:var(--primary);color:var(--primary)}.not-found.container{margin:0 auto;padding:96px 24px;max-width:480px;text-align:center}.not-found h1{font-size:clamp(64px,18vw,120px);font-weight:900;letter-spacing:-.06em;margin:0;color:var(--primary);line-height:1}.not-found p{font-size:clamp(18px,3vw,24px);color:var(--fg-secondary);margin:12px 0 0;font-weight:500}.not-found .cta{margin-top:48px}.not-found .cta button{background:var(--primary);border:none;color:#fff;cursor:pointer;display:inline-block;font-size:16px;font-weight:700;padding:14px 32px;text-align:center;border-radius:var(--radius);box-shadow:var(--shadow);transition:background .15s,box-shadow .15s}.not-found .cta button:hover{background:var(--primary-hover);box-shadow:var(--shadow-md)}:root{--bg: #f8fafc;--bg-alt: #f1f5f9;--fg: #0f172a;--fg-secondary: #475569;--primary: #1e3a5f;--primary-hover: #2c5282;--primary-subtle: #dbeafe;--accent: #059669;--accent-subtle: #f0fdf4;--danger: #dc2626;--danger-subtle: #fef2f2;--line: #cbd5e1;--muted: #94a3b8;--shadow: 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .06);--shadow-md: 0 4px 6px rgba(0, 0, 0, .07), 0 2px 4px rgba(0, 0, 0, .06);--radius: 8px;--radius-sm: 4px;--font: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}[data-theme=dark]{--bg: #0f172a;--bg-alt: #1e293b;--fg: #f1f5f9;--fg-secondary: #94a3b8;--primary: #3b82f6;--primary-hover: #60a5fa;--primary-subtle: #1e3a5f;--accent: #22c55e;--accent-subtle: #052e16;--danger: #ef4444;--danger-subtle: #450a0a;--line: #334155;--muted: #64748b;--shadow: 0 1px 3px rgba(0, 0, 0, .3), 0 1px 2px rgba(0, 0, 0, .2);--shadow-md: 0 4px 6px rgba(0, 0, 0, .3), 0 2px 4px rgba(0, 0, 0, .2)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font);line-height:1.5;transition:background .2s,color .2s}.is-hidden{display:none!important}a{color:var(--primary);text-decoration:none;font-weight:600}a:hover{color:var(--primary-hover)}select{color:var(--fg-secondary);background:var(--bg-alt);border:1px solid var(--line);border-radius:var(--radius-sm);font-weight:500;font-size:13px;margin:0;padding:4px 8px;cursor:pointer;transition:border-color .15s,background .15s}select:hover{border-color:var(--primary)}option{cursor:pointer}button{font-family:var(--font);border-radius:var(--radius);cursor:pointer;transition:background .15s,color .15s,border-color .15s,box-shadow .15s;font-size:14px;font-weight:600}button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.topbar{display:flex;justify-content:space-between;align-items:center;font-size:14px;gap:8px}.btn-primary,.btn-secondary,.btn-outline,.btn-danger{border-radius:var(--radius);cursor:pointer;transition:background .15s,color .15s,border-color .15s,box-shadow .15s,transform .1s;font-family:var(--font);line-height:1.3}.btn-primary:active,.btn-secondary:active,.btn-outline:active,.btn-danger:active{transform:scale(.98)}.btn-primary{background:var(--primary);border:none;color:#fff;box-shadow:var(--shadow);font-weight:700}.btn-primary:hover{background:var(--primary-hover);box-shadow:var(--shadow-md)}.btn-secondary{background:var(--bg);border:1px solid var(--line);color:var(--fg-secondary);font-weight:600}.btn-secondary:hover{border-color:var(--primary);color:var(--primary)}.btn-outline{background:var(--bg);border:1px solid var(--line);color:var(--fg-secondary);font-weight:600;font-size:13px;padding:8px 12px}.btn-outline:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-subtle)}.btn-danger-outline{color:var(--danger)}.btn-danger-outline:hover{border-color:var(--danger);color:var(--danger);background:var(--danger-subtle)}.btn-danger{background:var(--danger);border:1px solid var(--danger);color:#fff;font-weight:600}.btn-danger:hover{opacity:.9}
