:root{--bg:#f6f7f9;--card:#fff;--text:#1f2328;--muted:#6b7280;--border:#e2e5ea;--accent:#2563eb;--danger:#b91c1c}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);flex-direction:column;min-height:100vh;font-family:system-ui,-apple-system,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;line-height:1.6;display:flex}main{flex:1;width:100%;max-width:720px;margin:0 auto;padding:48px 20px}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:24px}h1{margin-top:0;font-size:24px}code{border:1px solid var(--border);word-break:break-all;background:#f0f1f3;border-radius:6px;padding:2px 6px;font-size:.9em}ul{padding-left:20px}.disclaimer{color:var(--muted);text-align:center;border-top:1px solid var(--border);padding:16px 20px 24px;font-size:13px}.auth-header{flex-wrap:wrap;align-items:baseline;gap:12px;padding:8px 0 20px;display:flex}.auth-brand{font-size:18px;font-weight:700}.auth-subtitle{color:var(--muted);font-size:14px}.auth-flow{flex-direction:column;gap:16px;max-width:480px;margin:0 auto;display:flex}@media (max-width:560px){.auth-flow{max-width:100%}.qr-box{display:none}}.app-card{flex-direction:column;gap:12px;display:flex}.app-name{word-break:break-all;margin:0;font-size:20px;font-weight:600}.app-meta{flex-direction:column;gap:6px;margin:0;display:flex}.app-meta-row{gap:10px;font-size:14px;display:flex}.app-meta-row dt{color:var(--muted);flex:none;min-width:96px}.app-meta-row dd{word-break:break-all;margin:0}.review-badge{border:1px solid var(--border);color:var(--muted);background:#f0f1f3;border-radius:999px;padding:1px 10px;font-size:12px;display:inline-block}.review-verified{color:#1a7f37;background:#e7f6ec;border-color:#b7e3c3}.review-pending{color:#9a6700;background:#fff8e6;border-color:#ecd9a0}.review-rejected{color:var(--danger);background:#ffebe9;border-color:#f0b8b3}.scope-title{margin:4px 0 0;font-size:15px}.scope-list{margin:0;padding:0;list-style:none}.scope-item{border-bottom:1px dashed var(--border);align-items:baseline;gap:8px;padding:8px 0;font-size:14px;display:flex}.scope-item:last-child{border-bottom:none}.risk-tag{color:var(--danger);border:1px solid;border-radius:6px;flex:none;padding:0 6px;font-size:12px}.scope-note,.countdown{color:var(--muted);margin:0;font-size:13px}.open-app-btn{text-align:center;background:var(--accent);color:#fff;border-radius:10px;padding:14px 16px;font-size:16px;font-weight:600;text-decoration:none;display:block}.open-app-btn:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.qr-box{border:1px solid var(--border);background:var(--card);border-radius:12px;flex-direction:column;align-items:center;gap:10px;padding:20px;display:flex}.qr-render-wrap{background:#fff;border-radius:8px;justify-content:center;align-items:center;width:240px;height:240px;display:flex;position:relative;overflow:hidden}.qr-canvas{width:240px;height:240px;image-rendering:pixelated}.qr-expired-overlay{color:#b42318;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#ffffffeb;justify-content:center;align-items:center;font-size:15px;font-weight:600;display:flex;position:absolute;inset:0}.qr-fallback{color:var(--muted);text-align:center;margin:0;font-size:13px}.qr-browser-fallback{flex-direction:column;align-items:center;gap:8px;width:100%;display:flex}.qr-browser-fallback-hint{color:var(--muted);text-align:center;margin:0;font-size:12px}.qr-browser-fallback-url{word-break:break-all;max-width:100%;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:6px 10px;font-size:11px}.qr-browser-fallback-copy{border:1px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;border-radius:8px;padding:6px 16px;font-size:13px;font-weight:600}.qr-browser-fallback-copy:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.status-banner{border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;font-size:14px;display:flex}.status-text{margin:0}.status-banner.status-info{background:#f0f5ff;border-color:#c9d9f5}.status-banner.status-ok{background:#e7f6ec;border-color:#b7e3c3}.status-banner.status-error{background:#ffebe9;border-color:#f0b8b3}.status-info .status-text:before{content:"⏳ "}.status-ok .status-text:before{content:"✓ "}.status-error .status-text:before{content:"⚠ "}.retry-btn{border:1px solid var(--accent);background:var(--card);color:var(--accent);cursor:pointer;border-radius:8px;flex:none;padding:6px 14px;font-size:13px}.retry-btn:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.auth-help{max-width:560px;margin:0 auto}.help-list{flex-direction:column;gap:14px;padding-left:22px;display:flex}.help-list p{margin:4px 0 0;font-size:14px}.help-note{color:var(--muted);border-top:1px solid var(--border);padding-top:12px;font-size:13px}@media (prefers-color-scheme:dark){:root{--bg:#0f1115;--card:#171a21;--text:#e6e8ec;--muted:#9aa3af;--border:#2a2f3a;--accent:#4c8dff;--danger:#ff8a8a}code{background:#232833;border-color:#2a2f3a}.review-verified{color:#7ee2a8;background:#16301f;border-color:#2a5c3c}.review-pending{color:#e3c567;background:#332b12;border-color:#5c4d22}.review-rejected{color:#ffa8a3;background:#3a1d1b;border-color:#6b3531}.status-banner.status-info{background:#182236;border-color:#2b3d5f}.status-banner.status-ok{background:#16301f;border-color:#2a5c3c}.status-banner.status-error{background:#3a1d1b;border-color:#6b3531}.retry-btn{background:#1a2436}}
