body { background: #f1f5f9; color: #0f172a; font-family: 'Segoe UI', system-ui, -apple-system, Arial, sans-serif; }
.card { background: #fff; border: 1px solid #e2e8f0; border-radius: 16px; }
.btn { display: inline-flex; align-items: center; gap: .4rem; border-radius: .6rem; padding: .5rem 1rem; font-weight: 600; font-size: .875rem; transition: background .15s; }
.btn-primary { background: #1e40af; color: #fff; } .btn-primary:hover { background: #1e3a8a; }
.btn-secondary { background: #fff; color: #1e293b; border: 1px solid #cbd5e1; } .btn-secondary:hover { background: #f8fafc; }
.btn-danger { background: #fff; color: #b91c1c; border: 1px solid #fecaca; } .btn-danger:hover { background: #fef2f2; }
.btn-amber { background: #f59e0b; color: #1e293b; } .btn-amber:hover { background: #d97706; }
.field label { display: block; font-size: .78rem; font-weight: 600; color: #334155; margin-bottom: .25rem; line-height: 1.25; }
.field .hint { display: block; font-size: .7rem; color: #94a3b8; margin-top: .2rem; }
.field input, .field select, .field textarea { width: 100%; border: 1px solid #cbd5e1; border-radius: .5rem; padding: .45rem .6rem; font-size: .875rem; background: #fff; }
.field input:focus, .field select:focus, .field textarea:focus { outline: 2px solid #93c5fd; border-color: #60a5fa; }
.field.missing input, .field.missing select, .field.missing textarea { border-color: #f87171; background: #fff7f7; }
.field .req { color: #dc2626; font-weight: 800; margin-left: 2px; }
.field input.calc { background: #ecfdf5; border-color: #a7f3d0; color: #065f46; font-weight: 600; }
.section-card { scroll-margin-top: 80px; }
.secnav a { display: flex; justify-content: space-between; align-items: center; gap: .5rem; padding: .35rem .6rem; border-radius: .5rem; font-size: .72rem; color: #334155; text-transform: capitalize; }
.secnav a:hover { background: #e2e8f0; } .secnav a.active { background: #1e40af; color: #fff; }
.badge { display: inline-flex; align-items: center; gap: .25rem; border-radius: 999px; padding: .15rem .6rem; font-size: .72rem; font-weight: 700; }
.badge-green { background: #d1fae5; color: #065f46; } .badge-amber { background: #fef3c7; color: #92400e; } .badge-red { background: #fee2e2; color: #991b1b; }
.badge-blue { background: #dbeafe; color: #1e40af; } .badge-slate { background: #e2e8f0; color: #334155; } .badge-purple { background: #ede9fe; color: #5b21b6; }
table.list th { text-align: left; font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; color: #64748b; padding: .6rem .75rem; border-bottom: 1px solid #e2e8f0; }
table.list td { padding: .6rem .75rem; border-bottom: 1px solid #f1f5f9; font-size: .875rem; }
table.list tr:hover td { background: #f8fafc; }
@media print { nav, footer, .no-print { display: none !important; } }
