:root{--bg: #f5f5f5;--surface: #fff;--border: #e0e0e0;--border-focus: #1a1a1a;--text: #1a1a1a;--text-muted: #666;--text-hint: #888;--text-disabled: #bbb;--radius: 8px;--radius-sm: 6px;--radius-xs: 4px;--error: #c0392b;--error-bg: #fdecea;--error-border: #f5c6cb;--success: #2e7d32;--success-bg: #e8f5e9;--success-border: #a5d6a7;--warning-bg: #fff8e1;--warning-text: #5d4037;--warning-border: #ffe082;--badge-bg: #fff3cd;--badge-text: #856404;--badge-border: #ffc107}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:system-ui,sans-serif;background:var(--bg);color:var(--text);display:flex;justify-content:center;align-items:center;min-height:100vh;&.layout-page{align-items:flex-start;padding:2rem}}main{text-align:center}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:2rem 2.5rem;width:100%;&.card--center{text-align:center}&.card--error{border-color:var(--error-border);h1{color:var(--error)}}h1{font-size:1.4rem;margin-bottom:.25rem}h2{font-size:1.05rem;margin:0 0 .75rem}}.card--sm{max-width:360px}.card--md{max-width:380px}.card--ml{max-width:400px}.card--lg{max-width:420px}.card--xl{max-width:520px}.page{max-width:760px;width:100%;margin:0 auto;h1{font-size:1.4rem;margin-bottom:1.5rem}h2{font-size:1rem;margin:1.5rem 0 .5rem;color:#444}}.subtitle,.client-name{color:var(--text-muted);font-size:.875rem;margin-bottom:1.75rem}.hint{font-size:.78rem;color:var(--text-hint);margin-top:1rem;text-align:center}.ref{font-size:.75rem;color:var(--text-disabled);margin-top:1.5rem;font-family:monospace}.status{color:var(--text-hint);font-size:.875rem;font-style:italic}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;width:100%;background:var(--text);color:var(--surface);border:none;border-radius:var(--radius-sm);padding:.65rem 1rem;font-size:.95rem;cursor:pointer;text-decoration:none;text-align:center;margin-bottom:.5rem;&:hover{background:#333}&:disabled{background:#ccc;cursor:default}&.btn-ghost{background:var(--surface);color:var(--text);border:1px solid #ccc;&:hover{background:#f5f5f5}&:disabled{background:var(--surface);color:#ccc}}&.btn-danger{background:var(--error);&:hover{background:#a93226}}&.btn-inline{width:auto;flex:1;margin-bottom:0}}.actions{display:flex;gap:.75rem;align-items:center;.btn{margin-bottom:0}}label{display:block;font-size:.85rem;font-weight:600;margin-bottom:.35rem}input[type=email],input[type=password],input[type=text]{width:100%;padding:.55rem .75rem;border:1px solid #ccc;border-radius:var(--radius-sm);font-size:.95rem;box-sizing:border-box;margin-bottom:1rem;&:focus{outline:none;border-color:var(--border-focus)}&.input-code{font-size:1.4rem;letter-spacing:.25em;text-align:center}&.input-name{font-size:.95rem;letter-spacing:normal;text-align:left}}.checkbox-label{display:flex;align-items:center;gap:.5rem;font-size:.85rem;font-weight:400;margin-bottom:1rem;cursor:pointer;input[type=checkbox]{width:auto;margin:0}}.error{background:var(--error-bg);border:1px solid var(--error-border);color:var(--error);border-radius:var(--radius-sm);padding:.6rem .75rem;font-size:.85rem;margin-bottom:1rem}.success{background:var(--success-bg);border:1px solid var(--success-border);color:var(--success);border-radius:var(--radius-sm);padding:.6rem .75rem;font-size:.85rem;margin-bottom:1rem}.notice{background:var(--warning-bg);border:1px solid var(--warning-border);color:var(--warning-text);border-radius:var(--radius-sm);padding:.5rem .75rem;font-size:.8rem;margin-bottom:1rem}.divider{display:flex;align-items:center;gap:.75rem;margin:1.25rem 0;color:#aaa;font-size:.78rem;&:before,&:after{content:"";flex:1;height:1px;background:var(--border)}}.badge{display:inline-block;background:var(--badge-bg);color:var(--badge-text);border:1px solid var(--badge-border);border-radius:var(--radius-xs);font-size:.7rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:2px 8px;margin-bottom:1rem}.success-badge{display:inline-flex;align-items:center;gap:.4rem;background:var(--success-bg);color:var(--success);border:1px solid var(--success-border);border-radius:20px;font-size:.78rem;font-weight:600;padding:3px 10px;margin-bottom:1.25rem}.scopes{list-style:none;padding:0;margin:0 0 1.5rem;li{font-size:.875rem;padding:.4rem 0;border-bottom:1px solid #f0f0f0;color:#333;&:last-child{border-bottom:none}&:before{content:"\2713  ";color:#27ae60;font-weight:700}}}.passkey-list{list-style:none;padding:0;margin:0 0 1rem;li{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid #f0f0f0;font-size:.875rem;&:last-child{border-bottom:none}}.passkey-name{font-weight:600}.passkey-meta{font-size:.75rem;color:var(--text-hint)}}.del-btn{background:none;border:none;color:var(--error);cursor:pointer;font-size:.8rem;padding:2px 6px;&:hover{text-decoration:underline}}.codes-grid{display:grid;grid-template-columns:1fr 1fr;gap:.4rem;background:#f9f9f9;border:1px solid var(--border);border-radius:var(--radius-sm);padding:.75rem;margin-bottom:1rem}.code{font-family:monospace;font-size:.95rem;letter-spacing:.1em;text-align:center;padding:.3rem 0}.steps{counter-reset:step;list-style:none;padding:0;margin:0 0 1.5rem;li{counter-increment:step;display:flex;gap:.75rem;align-items:flex-start;font-size:.875rem;color:#444;margin-bottom:.6rem;&:before{content:counter(step);min-width:1.5rem;height:1.5rem;background:var(--text);color:var(--surface);border-radius:50%;font-size:.7rem;font-weight:700;display:flex;align-items:center;justify-content:center;margin-top:1px;flex-shrink:0}}}.qr-wrap{display:flex;justify-content:center;margin:1.25rem 0;img{border:1px solid var(--border);border-radius:var(--radius-sm);width:180px;height:180px}}.manual-uri{font-family:monospace;font-size:.72rem;background:#f5f5f5;border:1px solid #ddd;border-radius:var(--radius-xs);padding:.5rem .6rem;word-break:break-all;margin-bottom:1.5rem;color:#555;cursor:pointer}details summary{font-size:.8rem;color:var(--text-hint);cursor:pointer;margin-bottom:.5rem}.abort,.back{display:block;text-align:center;font-size:.8rem;color:var(--text-hint);text-decoration:none;margin-top:1rem;&:hover{color:var(--text)}}.back{font-size:.875rem;color:#555}pre{background:#f4f4f4;border:1px solid var(--border);border-radius:var(--radius-sm);padding:1rem;font-size:.8rem;overflow-x:auto;white-space:pre-wrap;word-break:break-all;&.error{color:var(--error);background:var(--error-bg);border-color:var(--error-border)}}
