*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--bg: #ffffff;--fg: #111827;--hint: #6b7280;--card-bg: #f3f4f6;--border: rgba(0, 0, 0, .1);--subtle-bg: rgba(0, 0, 0, .05);--btn-bg: #111827;--btn-text: #ffffff;--input-bg: #ffffff;--input-border: rgba(0, 0, 0, .15);--focus-ring: rgba(17, 24, 39, .4);--error-bg: rgba(239, 68, 68, .1);--error-text: #b91c1c;--error-border: rgba(239, 68, 68, .2);--success-bg: rgba(34, 197, 94, .1);--success-text: #15803d;--success-border: rgba(34, 197, 94, .2)}@media(prefers-color-scheme:dark){:root{--bg: #1c1c1e;--fg: #ffffff;--hint: #8e8e93;--card-bg: #2C2C2E;--border: rgba(255, 255, 255, .1);--subtle-bg: rgba(255, 255, 255, .05);--btn-bg: #ffffff;--btn-text: #111827;--input-bg: #1c1c1e;--input-border: rgba(255, 255, 255, .15);--focus-ring: rgba(255, 255, 255, .4);--error-bg: rgba(248, 113, 113, .15);--error-text: #fca5a5;--error-border: rgba(248, 113, 113, .25);--success-bg: rgba(74, 222, 128, .15);--success-text: #4ade80;--success-border: rgba(74, 222, 128, .25)}}html,body{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--fg);display:flex;align-items:center;justify-content:center;min-height:100vh;transition:background .2s,color .2s}#app{width:100%;max-width:400px;padding:24px 16px}.page-header{text-align:center;margin-bottom:28px}.page-title{font-size:20px;font-weight:700}.page-subtitle{color:var(--hint);font-size:13px;margin-top:4px}.card{background:var(--card-bg);border-radius:12px;padding:24px;border:1px solid var(--border)}.footer{text-align:center;margin-top:20px;color:var(--hint);font-size:12px}.footer a{color:var(--hint);text-decoration:none}.footer a:hover{text-decoration:underline}.field{margin-bottom:16px}.field label{display:block;font-size:13px;font-weight:500;color:var(--hint);margin-bottom:6px}.field input{width:100%;padding:10px 12px;background:var(--input-bg);border:1px solid var(--input-border);border-radius:8px;color:var(--fg);font-size:14px;outline:none;transition:border-color .2s,box-shadow .2s}.field input:focus{border-color:var(--btn-bg);box-shadow:0 0 0 3px var(--focus-ring)}.field input::placeholder{color:var(--hint);opacity:.7}.btn{display:block;width:100%;padding:10px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .2s;text-align:center;text-decoration:none}.btn:hover{opacity:.9}.btn:active{opacity:.8}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--btn-bg);color:var(--btn-text)}.btn-secondary{background:transparent;color:var(--hint);border:1px solid var(--border);font-weight:500}.btn-secondary:hover{background:var(--subtle-bg);opacity:1}.alert{padding:10px 12px;border-radius:8px;font-size:13px;margin-bottom:16px;text-align:center}.alert-error{background:var(--error-bg);color:var(--error-text);border:1px solid var(--error-border)}.alert-success{background:var(--success-bg);color:var(--success-text);border:1px solid var(--success-border)}.divider{height:1px;background:var(--border);margin:16px 0}.spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--btn-bg);border-radius:50%;animation:spin .6s linear infinite;margin-right:6px;vertical-align:middle}@keyframes spin{to{transform:rotate(360deg)}}
