@media print{@page{size:A4 portrait;margin:18mm}html,body{background:#fff!important;color:#000!important;font-size:11pt}.no-print,.action-button,.app-header,.app-footer,.progress-steps,.update-history-button,.modal-backdrop{display:none!important}.compare-table,.condition-table,.report-table{border:1px solid #000!important;border-collapse:collapse}.compare-table th,.compare-table td,.condition-table th,.condition-table td,.report-table th,.report-table td{border:1px solid #000!important;color:#000!important;background:#fff!important}}:root{--color-bg: #f5f8ff;--color-surface: #ffffff;--color-ink: #1e2a3a;--color-ink-soft: #48586e;--color-primary: #1d4ed8;--color-primary-ink: #ffffff;--color-accent: #f59e0b;--color-focus: #1e3a8a;--color-success: #166534;--color-success-bg: #ecfdf5;--color-warn: #92400e;--color-warn-bg: #fffbeb;--color-border: #c7d2e5;--radius: 12px;--font-size-base: 17px;--line-height: 1.65;--touch-target: 44px}*{box-sizing:border-box}html{background:var(--color-bg)}body{margin:0;font-family:Pretendard,Apple SD Gothic Neo,Noto Sans KR,system-ui,sans-serif;font-size:var(--font-size-base);line-height:var(--line-height);color:var(--color-ink)}.app-shell{max-width:960px;margin:0 auto;padding:0 16px 48px}.app-header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0}.app-title{font-weight:700;font-size:1.05rem;margin:0}.app-footer{margin-top:32px;padding-top:16px;border-top:1px solid var(--color-border);color:var(--color-ink-soft);font-size:.9rem}h1,h2,h3,h4{line-height:1.4;color:var(--color-ink)}h1{font-size:1.7rem;margin:16px 0 8px}h2{font-size:1.3rem;margin:24px 0 8px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.visually-hidden-focusable-heading:focus,h1:focus{outline:3px solid var(--color-focus);outline-offset:4px}.entrance-title{font-size:1.7rem;margin:16px 0 8px}.entrance-title:focus{outline:3px solid var(--color-focus);outline-offset:4px}.action-button{display:inline-flex;align-items:center;gap:8px;min-height:var(--touch-target);min-width:var(--touch-target);padding:10px 20px;border-radius:var(--radius);border:2px solid transparent;font-size:1rem;font-weight:700;cursor:pointer;position:relative}.action-button--primary{background:var(--color-primary);color:var(--color-primary-ink)}.action-button--secondary{background:var(--color-surface);color:var(--color-primary);border-color:var(--color-primary)}.action-button--danger{background:#b91c1c;color:#fff}.action-button:disabled{opacity:.5;cursor:not-allowed}.action-button:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.required-badge{position:absolute;top:-10px;left:-6px;background:var(--color-accent);color:#3b2503;font-size:.7rem;font-weight:800;padding:1px 8px;border-radius:999px;border:2px solid #ffffff}.update-history-button{min-height:var(--touch-target);padding:8px 14px;border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-ink);cursor:pointer}.update-history-button:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.entrance-image{width:100%;max-height:280px;object-fit:cover;border-radius:var(--radius);border:1px solid var(--color-border);background:linear-gradient(135deg,#dbeafe,#fef3c7)}.entrance-goal{font-size:1.05rem;font-weight:600;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:12px 16px}.entrance-facts,.entrance-decisions,.entrance-missions{padding-left:20px}.entrance-missions li{margin-bottom:6px}.entrance-note{color:var(--color-ink-soft);font-size:.92rem}.progress-steps ol{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:8px 0}.progress-step{padding:4px 10px;border-radius:999px;border:1px solid var(--color-border);background:var(--color-surface);font-size:.88rem;color:var(--color-ink-soft)}.progress-step[data-state=지난]{text-decoration:line-through}.progress-step[data-state=현재]{background:var(--color-primary);color:var(--color-primary-ink);border-color:var(--color-primary);font-weight:700}.progress-mission{font-weight:700;margin:4px 0}.choice{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;margin:8px 0;border:2px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);cursor:pointer}.choice:has(input:checked){border-color:var(--color-primary);border-width:3px;background:#eff6ff}.choice input{width:22px;height:22px;margin-top:4px;accent-color:var(--color-primary)}.choice input:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}fieldset{border:1px solid var(--color-border);border-radius:var(--radius);margin:16px 0;padding:12px 16px}legend{font-weight:700;padding:0 6px}.condition-table,.compare-table,.report-table{width:100%;border-collapse:collapse;margin:12px 0;background:var(--color-surface)}.condition-table caption,.compare-table caption,.report-table caption{caption-side:top;text-align:left;font-weight:700;padding-bottom:6px}.condition-table th,.condition-table td,.compare-table th,.compare-table td,.report-table th,.report-table td{border:1px solid var(--color-border);padding:8px 10px;text-align:left}.compare-table thead th,.condition-table thead th,.report-table thead th{background:#eff6ff}.syringe-figure{margin:12px 0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:12px}.syringe-barrel{fill:#f1f5f9;stroke:#64748b;stroke-width:2}.syringe-air{fill:#dbeafe}.syringe-marker{fill:var(--color-focus)}.syringe-piston{fill:var(--color-accent);stroke:#92400e;stroke-width:1.5}.syringe-rod{fill:#94a3b8}.syringe-cap{fill:#b91c1c}.syringe-opening line{stroke:#b91c1c;stroke-width:3;stroke-dasharray:6 4}.syringe-opening text,.syringe-tick-label{font-size:13px;fill:var(--color-ink-soft)}.syringe-tick{stroke:#64748b;stroke-width:2}.syringe-figure svg{height:auto;display:block}.syringe-figure figcaption{font-size:.92rem;color:var(--color-ink-soft);margin-top:6px}.step-actions{display:flex;flex-wrap:wrap;gap:12px;margin:16px 0}.misconception-guard{background:var(--color-warn-bg);border:1px solid #fcd34d;border-radius:var(--radius);padding:10px 14px;color:var(--color-warn)}.feedback{border-radius:var(--radius);border:2px solid var(--color-border);padding:12px 16px;margin:12px 0;background:var(--color-surface)}.feedback.accepted{border-color:var(--color-success);background:var(--color-success-bg)}.feedback.revise{border-color:var(--color-accent);background:var(--color-warn-bg)}.feedback-limit{font-size:.88rem;color:var(--color-ink-soft)}.refresh-note{background:var(--color-warn-bg);border:1px solid #fcd34d;border-radius:var(--radius);padding:8px 12px;color:var(--color-warn)}.compare-keys{padding-left:20px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}.modal-dialog{background:var(--color-surface);border-radius:var(--radius);max-width:480px;width:100%;border:2px solid var(--color-focus)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--color-border)}.modal-header h2{margin:0;font-size:1.1rem}.modal-close{min-height:var(--touch-target);padding:6px 14px;border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer}.modal-close:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.modal-body{padding:12px 16px 16px}.update-history-list{padding-left:20px}.accessibility-toolbar{font-size:.88rem;margin:0 0 4px}@media (max-width: 480px){h1{font-size:1.35rem}.app-header{flex-direction:column;align-items:flex-start}.condition-table,.compare-table,.report-table{display:block;overflow-x:auto}.step-actions{flex-direction:column;align-items:stretch}.action-button{width:100%;justify-content:center}}.gi-pulse{animation:gi-pulse 1.6s ease-in-out infinite}@keyframes gi-pulse{0%,to{box-shadow:0 0 #1d4ed873}50%{box-shadow:0 0 0 8px #1d4ed800}}.syringe-piston{transition:x .4s ease,transform .4s ease}@media (prefers-reduced-motion: reduce){.gi-pulse{animation-name:none;outline:3px solid var(--color-focus);outline-offset:3px}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
