.signature-container{width:100%;margin-top:1rem}.signature-canvas-wrapper{border:2px solid #ddd;border-radius:8px;background:#fff;overflow:hidden;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.signature-canvas{display:block;width:100%;height:200px;cursor:crosshair;touch-action:none}.signature-canvas-wrapper:focus-within{border-color:#667eea}.signature-actions{display:flex;align-items:center;gap:1rem;margin-top:.75rem}.signature-clear-btn{padding:.5rem 1rem;background:#e74c3c;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.95rem;transition:background .2s}.signature-clear-btn:hover:not(:disabled){background:#c0392b}.signature-clear-btn:disabled{background:#ccc;cursor:not-allowed}.signature-required-hint{color:#e74c3c;font-size:.9rem}.questionnaire-container{min-height:100vh;background:#f5f5f5;padding-bottom:100px;color:#111827;font-size:calc(1rem * var(--question-font-scale, 1))}.questionnaire-header{background:#fff;padding:2rem;box-shadow:0 2px 4px #0000001a;text-align:center}.questionnaire-header h1{color:#111827;font-size:calc(2rem * var(--question-font-scale, 1));margin-bottom:.5rem}.patient-id{color:#666;font-size:1rem}.questionnaire-content{max-width:800px;margin:2rem auto;padding:0 2rem}.question-item{background:#fff;padding:1.5rem;margin-bottom:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0f172a1f}.question-label{display:block;font-size:calc(1.2rem * var(--question-font-scale, 1));font-weight:600;color:#111827;margin-bottom:.5rem}.required{color:#e74c3c;margin-left:.25rem}.question-description{color:#374151;font-size:calc(.95rem * var(--question-font-scale, 1));margin-bottom:1rem}.question-input,.question-select{width:100%;padding:1rem;font-size:calc(1.1rem * var(--question-font-scale, 1));border:2px solid #9ca3af;border-radius:8px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;color:#111827}.question-input:focus,.question-select:focus{outline:none;border-color:#1d4ed8;box-shadow:0 0 0 3px #2563eb59}.question-checkbox,.question-radio{width:24px;height:24px;margin-right:.75rem;cursor:pointer}.options-list{display:flex;flex-direction:column;gap:.75rem;margin-top:1rem}.option-label{display:flex;align-items:center;padding:1rem;background:#f9fafb;border-radius:8px;cursor:pointer;font-size:calc(1.1rem * var(--question-font-scale, 1));transition:background .2s}.option-label:hover{background:#e5e7eb}.section{margin:2rem 0}.section-header{font-size:calc(1.3rem * var(--question-font-scale, 1));font-weight:600;color:#1d4ed8;padding:1rem;background:#eff6ff;border-radius:8px;margin-bottom:1rem}.page-break{margin:2rem 0;padding:1rem 0;border-top:2px dashed #ccc;text-align:center;color:#999;font-size:.9rem;page-break-before:always;break-before:page}@media print{.page-break{page-break-before:always;break-before:page;border-top:none;margin-top:0}}.questionnaire-footer{text-align:center;padding:1.5rem;margin-top:2rem}.submit-btn{padding:1.25rem 3rem;font-size:calc(1.3rem * var(--question-font-scale, 1));background:#15803d;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600;min-width:200px;transition:background .2s}.submit-btn:hover:not(:disabled){background:#166534}.submit-btn:disabled{opacity:.6;cursor:not-allowed}.loading,.error{text-align:center;padding:3rem;font-size:calc(1.2rem * var(--question-font-scale, 1));color:#666}.error{color:#e74c3c}.success-message{text-align:center;padding:4rem 2rem;background:#fff;margin:2rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.success-message h1{color:#27ae60;font-size:calc(2.5rem * var(--question-font-scale, 1));margin-bottom:1rem}.success-message p{color:#666;font-size:calc(1.2rem * var(--question-font-scale, 1))}.accessible-mode .question-label{font-size:calc(1.35rem * var(--question-font-scale, 1))}.accessible-mode .question-item{padding:1.75rem}.accessible-mode .question-input,.accessible-mode .question-select{font-size:calc(1.25rem * var(--question-font-scale, 1));padding:1.1rem 1.2rem}.accessible-mode .option-label{font-size:calc(1.25rem * var(--question-font-scale, 1))}.accessible-mode .submit-btn{font-size:calc(1.4rem * var(--question-font-scale, 1));padding:1.4rem 3.2rem}.accessible-mode .question-checkbox,.accessible-mode .question-radio{width:28px;height:28px}.accessible-toggle-btn{padding:.75rem 1.5rem;font-size:calc(1rem * var(--question-font-scale, 1));border-radius:999px;border:2px solid #1d4ed8;background:#fff;color:#1d4ed8;cursor:pointer;font-weight:600}.accessible-toggle-btn[aria-pressed=true]{background:#1d4ed8;color:#fff}.questionnaire-container :focus-visible{outline:3px solid #1d4ed8;outline-offset:2px}.tts-btn{margin-top:.25rem;margin-bottom:.75rem;padding:.4rem .9rem;font-size:calc(.9rem * var(--question-font-scale, 1));border-radius:999px;border:1px solid #1d4ed8;background-color:#eff6ff;color:#1d4ed8;cursor:pointer;display:inline-flex;align-items:center;gap:.25rem}.tts-btn:hover{background-color:#dbeafe}.tts-btn:focus-visible{outline:3px solid #1d4ed8;outline-offset:2px}.validation-error{border-left:3px solid #e74c3c;padding-left:.5rem}.input-error{border-color:#e74c3c!important;background-color:#fee}.input-error:focus{outline:2px solid #e74c3c;outline-offset:2px}.validation-error-message{color:#e74c3c;font-size:calc(.9rem * var(--question-font-scale, 1));margin-top:.25rem;display:flex;align-items:center;gap:.25rem}.validation-error-message:before{content:"⚠️";font-size:1rem}.validating-indicator{color:#667eea;font-size:calc(.85rem * var(--question-font-scale, 1));margin-top:.25rem;font-style:italic}.format-hint{color:#666;font-size:calc(.85rem * var(--question-font-scale, 1));margin-top:.5rem;font-style:italic;display:flex;align-items:center;gap:.25rem}.format-hint:before{content:"ℹ️";font-size:.9rem}.accessible-mode .validation-error-message{font-size:calc(1rem * var(--question-font-scale, 1))}.accessible-mode .validating-indicator{font-size:calc(.95rem * var(--question-font-scale, 1))}.accessible-mode .format-hint{font-size:calc(1.1rem * var(--question-font-scale, 1));margin-top:.75rem;color:#555;font-weight:500;font-style:normal;padding:.5rem;background-color:#f0f4ff;border-left:3px solid #667eea;border-radius:4px}.accessible-mode .format-hint:before{font-size:1.1rem;margin-right:.25rem}.page-navigation{background:#fff;padding:1rem 2rem;margin:1rem auto;max-width:800px;border-radius:8px;box-shadow:0 2px 4px #0000001a}.page-navigation-bottom{margin-top:2rem}.page-navigation-controls{display:flex;justify-content:space-between;align-items:center;gap:1rem}.page-nav-btn{padding:.75rem 1.5rem;font-size:calc(1rem * var(--question-font-scale, 1));background:#667eea;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600;transition:background .2s;min-width:120px}.page-nav-btn:hover:not(:disabled){background:#5568d3}.page-nav-btn:disabled{background:#ccc;cursor:not-allowed;opacity:.6}.page-index{display:flex;flex-direction:column;align-items:center;gap:.25rem;flex:1}.page-index-text{font-size:calc(1.1rem * var(--question-font-scale, 1));font-weight:600;color:#333}.page-title{font-size:calc(.9rem * var(--question-font-scale, 1));color:#666;font-weight:400}.page-container{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 4px #0000001a;min-height:400px}.page-header{margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid #e5e7eb}.page-title-header{font-size:calc(1.5rem * var(--question-font-scale, 1));font-weight:600;color:#333;margin:0}.page-content{display:flex;flex-direction:column;gap:1.5rem}.accessible-mode .page-nav-btn{font-size:calc(1.2rem * var(--question-font-scale, 1));padding:1rem 2rem;min-width:150px}.accessible-mode .page-index-text{font-size:calc(1.3rem * var(--question-font-scale, 1))}.accessible-mode .page-title{font-size:calc(1.1rem * var(--question-font-scale, 1))}.accessible-mode .page-title-header{font-size:calc(1.8rem * var(--question-font-scale, 1))}.markdown-content{line-height:1.6;color:#333}.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4,.markdown-content h5,.markdown-content h6{margin-top:1.5rem;margin-bottom:.75rem;font-weight:600;color:#222}.markdown-content h1{font-size:1.75rem;border-bottom:2px solid #e0e0e0;padding-bottom:.5rem}.markdown-content h2{font-size:1.5rem;border-bottom:1px solid #e0e0e0;padding-bottom:.25rem}.markdown-content h3{font-size:1.25rem}.markdown-content h4{font-size:1.1rem}.markdown-content p{margin-bottom:1rem}.markdown-content ul,.markdown-content ol{margin-bottom:1rem;padding-left:2rem}.markdown-content li{margin-bottom:.5rem}.markdown-content a{color:#06c;text-decoration:underline}.markdown-content a:hover{color:#0052a3}.markdown-content code{background-color:#f4f4f4;padding:.2rem .4rem;border-radius:3px;font-family:Courier New,monospace;font-size:.9em}.markdown-content pre{background-color:#f4f4f4;padding:1rem;border-radius:4px;overflow-x:auto;margin-bottom:1rem}.markdown-content pre code{background-color:transparent;padding:0}.markdown-content blockquote{border-left:4px solid #ddd;padding-left:1rem;margin-left:0;margin-bottom:1rem;color:#666;font-style:italic}.markdown-content table{width:100%;border-collapse:collapse;margin-bottom:1rem}.markdown-content table th,.markdown-content table td{border:1px solid #ddd;padding:.5rem;text-align:left}.markdown-content table th{background-color:#f8f9fa;font-weight:600}.markdown-content hr{border:none;border-top:1px solid #ddd;margin:1.5rem 0}.markdown-content img{max-width:100%;height:auto;border-radius:4px;margin:1rem 0}.landing-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;background-color:#f5f5f5;position:relative}.landing-page-content{width:100%;max-width:600px;display:flex;flex-direction:column;align-items:center;gap:2rem}.landing-page-title{font-size:2rem;font-weight:600;color:#333;text-align:center;margin:0}.landing-page-description{font-size:1.1rem;color:#666;text-align:center;margin:0}.qr-reader-container{width:100%;max-width:500px;border-radius:8px;overflow:hidden;box-shadow:0 4px 6px #0000001a;background-color:#fff}.landing-page-error{padding:1rem;background-color:#fee;border:1px solid #fcc;border-radius:4px;color:#c33;text-align:center;width:100%;max-width:500px}.landing-page-scanning{color:#666;font-size:.9rem;text-align:center;margin:0}.landing-page-footer{margin-top:auto;padding:1.5rem 2rem;text-align:center;font-size:.875rem;color:#666;width:100%;border-top:1px solid #e0e0e0;background-color:#fff}.landing-page-footer p{margin:0}.landing-page-footer a{color:#06c;text-decoration:none;transition:color .2s ease}.landing-page-footer a:hover{color:#0052a3;text-decoration:underline}.landing-page-footer a:visited{color:#06c}@media (max-width: 768px){.landing-page{padding:1rem}.landing-page-title{font-size:1.5rem}.landing-page-description{font-size:1rem}.qr-reader-container{max-width:100%}.landing-page-footer{padding:1rem;font-size:.75rem}}.error-page{display:flex;justify-content:center;align-items:center;min-height:100vh;font-size:1.5rem;color:#666}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;touch-action:manipulation}#root{width:100%;min-height:100vh}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background-color:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 4px 6px #0000001a;width:90%;max-width:420px}.modal-content h2{margin-bottom:.5rem;color:#1f2937}.modal-content p{color:#4b5563;margin-bottom:1.25rem}.btn-primary,.btn-secondary{border:none;color:#fff;padding:.6rem 1rem;border-radius:6px;cursor:pointer;font-size:1rem}.btn-primary{background-color:#2563eb}.btn-primary:hover{background-color:#1d4ed8}.btn-secondary{background-color:#6b7280}.btn-secondary:hover{background-color:#4b5563}
