:root{--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--primary-50: #eef6ff;--primary-100: #dceeff;--primary-500: #1462c4;--primary-600: #0f52a8;--primary-700: #0c3f80;--bg: #f5f7fa;--surface: #ffffff;--surface-sunken: #f0f3f7;--text: #101828;--text-muted: #5c6578;--text-faint: #8a91a3;--border: #e3e7ee;--border-strong: #cbd2e0;--danger-bg: #fef0ef;--danger: #c22a2a;--danger-border: #f2c6c4;--warning-bg: #fef6e7;--warning: #92600a;--warning-border: #f2dfae;--success-bg: #e9f7f0;--success: #0f7a52;--success-border: #c3ead9;--info-bg: #eef2ff;--info: #3538a3;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--shadow-card: 0 1px 2px rgba(16, 24, 40, .04), 0 1px 3px rgba(16, 24, 40, .06);--shadow-raised: 0 4px 12px rgba(16, 24, 40, .08), 0 2px 4px rgba(16, 24, 40, .06);font-family:var(--font-sans);color-scheme:light}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3{font-weight:700;letter-spacing:-.01em;line-height:1.25}h1{font-size:26px;margin:0 0 8px}h2{font-size:21px;margin:0 0 12px}h3{font-size:16px;margin:24px 0 10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-weight:700}p{margin:0 0 12px}a{color:var(--primary-500)}.app-shell{max-width:640px;margin:0 auto;padding:28px 16px 72px}.app-shell--wide{max-width:1080px}.page-header{margin-bottom:20px}.page-header p{color:var(--text-muted)}.top-nav{background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.top-nav__inner{max-width:1080px;margin:0 auto;padding:0 16px;height:60px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:10px;color:var(--text);text-decoration:none;font-weight:700;font-size:16px}.brand__mark{width:30px;height:30px;border-radius:8px;background:linear-gradient(135deg,var(--primary-500),var(--primary-700));color:#fff;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0}.top-nav__links{display:flex;align-items:center;gap:4px}.top-nav__link{color:var(--text-muted);text-decoration:none;font-size:14px;font-weight:600;padding:8px 12px;border-radius:var(--radius-sm)}.top-nav__link:hover{background:var(--surface-sunken);color:var(--text)}.top-nav__link.active{color:var(--primary-600);background:var(--primary-50)}.top-nav__user{display:flex;align-items:center;gap:10px;margin-left:8px;padding-left:14px;border-left:1px solid var(--border)}.top-nav__role{font-size:12px;color:var(--text-faint);text-transform:uppercase;letter-spacing:.03em;font-weight:700}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;margin-bottom:16px;box-shadow:var(--shadow-card)}.card--tight{padding:14px 16px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--primary-500);color:#fff;border:1px solid transparent;border-radius:var(--radius-sm);padding:10px 18px;font-size:14px;font-weight:600;cursor:pointer;text-decoration:none;transition:background-color .12s ease,box-shadow .12s ease}.btn:hover:not(:disabled){background:var(--primary-600)}.btn:focus-visible{outline:2px solid var(--primary-500);outline-offset:2px}.btn.secondary{background:var(--surface);color:var(--primary-600);border-color:var(--border-strong)}.btn.secondary:hover:not(:disabled){background:var(--primary-50);border-color:var(--primary-500)}.btn.danger{background:var(--surface);color:var(--danger);border-color:var(--danger-border)}.btn.danger:hover:not(:disabled){background:var(--danger-bg)}.btn.ghost{background:transparent;color:var(--text-muted);border-color:transparent;padding:8px 10px}.btn.ghost:hover:not(:disabled){background:var(--surface-sunken);color:var(--text)}.btn.sm{padding:6px 12px;font-size:13px}.btn:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{width:100%;padding:10px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:15px;margin-bottom:12px;font-family:inherit;background:var(--surface);color:var(--text)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary-500);box-shadow:0 0 0 3px var(--primary-100)}label{font-size:13px;font-weight:700;color:var(--text-muted);display:block;margin-bottom:6px}.choice{display:flex;align-items:center;gap:10px;font-weight:400;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:8px;cursor:pointer;transition:border-color .12s ease,background-color .12s ease}.choice:hover{border-color:var(--border-strong)}.choice:has(input:checked){border-color:var(--primary-500);background:var(--primary-50)}.choice input{width:auto;margin:0}.safety-card{background:var(--danger-bg);border:1px solid var(--danger-border);border-radius:var(--radius-lg);padding:20px;margin-bottom:16px}.safety-card h2{color:var(--danger)}.info-card{background:var(--info-bg);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 20px;margin-bottom:16px;color:var(--text)}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap}.badge.safety{background:var(--danger-bg);color:var(--danger)}.badge.follow-up{background:var(--warning-bg);color:var(--warning)}.badge.open{background:var(--surface-sunken);color:var(--text-muted)}.badge.done{background:var(--success-bg);color:var(--success)}.badge.excluded{background:var(--surface-sunken);color:var(--text-faint);text-decoration:line-through}.step-indicator{display:flex;align-items:center;gap:6px;margin-bottom:20px}.step-indicator__dot{flex:1;height:4px;border-radius:999px;background:var(--border)}.step-indicator__dot.done,.step-indicator__dot.active{background:var(--primary-500)}table{width:100%;border-collapse:collapse}th{text-align:left;padding:10px 12px;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--text-faint);border-bottom:1px solid var(--border)}td{text-align:left;padding:12px;border-bottom:1px solid var(--border);font-size:14px}tbody tr:hover{background:var(--surface-sunken)}tbody tr:last-child td{border-bottom:none}.error-text{color:var(--danger);font-size:14px;margin-bottom:12px}.muted{color:var(--text-muted)}.empty-state{text-align:center;padding:48px 20px;color:var(--text-muted)}.stack{display:flex;gap:8px;flex-wrap:wrap}.spinner{width:18px;height:18px;border:2px solid var(--border-strong);border-top-color:var(--primary-500);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}
