:root{--bg:#f8fafc;--fg:#0f172a;--card:#ffffff;--card-border:#e2e8f0;--muted:#f1f5f9;--muted-fg:#64748b;--primary:#2563eb;--primary-fg:#ffffff;--destructive:#ef4444;--success:#22c55e;--warning:#eab308;--radius:8px;--font:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font);background:var(--bg);color:var(--fg);line-height:1.6}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}a:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;top:-100%;left:16px;z-index:1000;padding:8px 16px;background:var(--primary);color:var(--primary-fg);border-radius:var(--radius);font-size:14px;font-weight:500;text-decoration:none}.skip-link:focus{top:8px}.shell{min-height:100vh;display:flex;flex-direction:column}.shell-header{background:var(--card);border-bottom:1px solid var(--card-border);padding:12px 24px;display:flex;align-items:center;justify-content:space-between}.shell-header h1{font-size:18px;font-weight:600}.shell-main{flex:1 1;max-width:800px;margin:0 auto;padding:24px;width:100%}.card{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius);padding:24px;margin-bottom:16px}.card h2{font-size:18px;font-weight:600;margin-bottom:12px}.card p{color:var(--muted-fg)}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:14px;font-weight:500;margin-bottom:4px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 12px;border:1px solid var(--card-border);border-radius:var(--radius);font-size:14px;font-family:inherit}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:2px solid var(--primary);outline-offset:-1px}.form-group textarea{min-height:80px;resize:vertical}.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 20px;border-radius:var(--radius);font-size:14px;font-weight:500;border:none;cursor:pointer;font-family:inherit;transition:opacity .15s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.btn-primary{background:var(--primary);color:var(--primary-fg)}.btn-primary:hover:not(:disabled){opacity:.9}.btn-secondary{background:var(--muted);color:var(--fg)}.alert{padding:12px 16px;border-radius:var(--radius);margin-bottom:16px;font-size:14px}.alert-error{background:#fef2f2;color:var(--destructive);border:1px solid #fecaca}.alert-success{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.alert-info{background:#eff6ff;color:#1e40af;border:1px solid #bfdbfe}.badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:12px;font-weight:500}.badge-active{background:#dbeafe;color:#1e40af}.badge-success{background:#dcfce7;color:#166534}.badge-warning{background:#fef9c3;color:#854d0e}.badge-error{background:#fef2f2;color:#991b1b}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.auth-card{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius);padding:32px;width:100%;max-width:420px}.auth-card h1{font-size:24px;font-weight:700;margin-bottom:8px}.auth-card .subtitle{color:var(--muted-fg);margin-bottom:24px;font-size:14px}.message-list{display:flex;flex-direction:column;gap:12px}.message-bubble{padding:12px 16px;border-radius:var(--radius);max-width:80%;font-size:14px}.message-bubble.sent{background:var(--primary);color:var(--primary-fg);align-self:flex-end}.message-bubble.received{background:var(--muted);align-self:flex-start}.message-meta{font-size:11px;color:var(--muted-fg);margin-top:4px}.disclosure-block{background:var(--muted);border-top:1px solid var(--card-border);padding:16px 24px;font-size:14px;line-height:1.5;color:var(--fg)}.disclosure-block p{color:var(--fg);margin-bottom:8px}.disclosure-block p:last-child{margin-bottom:0}.question-card{margin-bottom:20px}.question-card .question-text{font-size:15px;font-weight:500;margin-bottom:8px}.question-card .category-tag{font-size:11px;text-transform:uppercase;color:var(--muted-fg);letter-spacing:.5px;margin-bottom:4px}