*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#f5f5f5;color:#1a1a1a;-webkit-font-smoothing:antialiased}.app{display:flex;flex-direction:column;height:100%;max-width:640px;margin:0 auto}.app-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #e0e0e0;background:#fff}.app-header h1{font-size:18px;font-weight:600}.header-controls{display:flex;align-items:center;gap:8px}.change-case-btn,.mode-toggle{font-size:12px;padding:4px 10px;border:1px solid #e0e0e0;border-radius:12px;background:#fff;color:#333;cursor:pointer}.change-case-btn:hover,.mode-toggle:hover{background:#f0f0f0}.decision-btn{font-size:12px;padding:4px 10px;border:1px solid #007aff;border-radius:12px;background:#fff;color:#007aff;cursor:pointer;font-weight:600}.decision-btn:hover{background:#007aff;color:#fff}.connection-status{font-size:12px;padding:4px 8px;border-radius:12px}.connection-status.connected{background:#e8f5e9;color:#2e7d32}.connection-status.disconnected{background:#fff3e0;color:#e65100}.app-main{display:flex;flex-direction:column;flex:1;overflow:hidden}.patient-info{padding:8px 16px;font-size:13px;color:#666;background:#fafafa;border-bottom:1px solid #eee}.conversation-view{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.conversation-empty{text-align:center;color:#999;font-size:14px;padding:48px 16px}.message{max-width:80%;padding:10px 14px;border-radius:16px;font-size:15px;line-height:1.4;word-wrap:break-word}.message.doctor{align-self:flex-end;background:#007aff;color:#fff;border-bottom-right-radius:4px}.message.patient{align-self:flex-start;background:#fff;color:#1a1a1a;border:1px solid #e0e0e0;border-bottom-left-radius:4px}.message-role{font-size:11px;font-weight:600;margin-bottom:4px;opacity:.7;text-transform:uppercase}.message.patient.thinking .message-content{color:#999;font-style:italic}.thinking-dots{animation:blink 1.4s infinite}@keyframes blink{0%,to{opacity:.2}50%{opacity:1}}.message{position:relative}.flag-btn{position:absolute;top:4px;right:4px;background:none;border:none;cursor:pointer;font-size:16px;opacity:.3;padding:2px 6px;border-radius:4px;transition:opacity .15s}.flag-btn:hover{opacity:.7;background:#0000000d}.flag-btn.flagged{opacity:1;color:#e53935}.message.flagged{border-color:#e53935;border-width:2px}.mic-container{padding:16px;display:flex;flex-direction:column;align-items:center;background:#fff;border-top:1px solid #e0e0e0}.mic-button{width:64px;height:64px;border-radius:50%;border:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;transition:background .15s,transform .1s;background:#007aff;color:#fff}.mic-button:hover:not(:disabled){background:#0066d6}.mic-button.recording{background:#ff3b30;animation:pulse 1.5s ease-in-out infinite}.mic-button:disabled{background:#ccc;color:#999;cursor:not-allowed;animation:none}.mic-button:active:not(:disabled){transform:scale(.95)}.mic-label{display:none}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.text-input-container{display:flex;gap:8px;padding:12px 16px;background:#fff;border-top:1px solid #e0e0e0}.text-input{flex:1;padding:10px 14px;border:1px solid #e0e0e0;border-radius:20px;font-size:15px;outline:none}.text-input:focus{border-color:#007aff}.text-input:disabled{background:#f5f5f5;color:#999}.send-button{padding:8px 16px;background:#007aff;color:#fff;border:none;border-radius:20px;font-size:14px;font-weight:600;cursor:pointer}.send-button:hover:not(:disabled){background:#0066d6}.send-button:disabled{background:#ccc;cursor:not-allowed}.error-toast{margin:0 16px;padding:10px 14px;background:#fff3e0;color:#e65100;border-radius:8px;font-size:14px;text-align:center}.case-selection{padding:24px 16px;overflow-y:auto;flex:1}.case-selection h2{font-size:20px;font-weight:600;margin-bottom:16px}.case-selection-loading{padding:48px 16px;text-align:center;color:#999}.case-list{display:flex;flex-direction:column;gap:12px}.case-card{display:flex;flex-direction:column;gap:6px;padding:14px 16px;background:#fff;border:1px solid #e0e0e0;border-radius:12px;cursor:pointer;text-align:left;font:inherit}.case-card:hover{border-color:#007aff;box-shadow:0 2px 8px #007aff1a}.case-card-header{display:flex;align-items:center;justify-content:space-between}.case-patient-name{font-size:16px;font-weight:600}.difficulty-badge{font-size:11px;font-weight:600;color:#fff;padding:2px 8px;border-radius:10px;text-transform:uppercase}.case-title{font-size:14px;color:#333}.case-focus{font-size:12px;color:#888}.decision-overlay{position:absolute;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:10;padding:16px}.decision-panel{background:#fff;border-radius:16px;padding:20px;max-width:560px;width:100%;max-height:80vh;overflow-y:auto}.decision-header{display:flex;justify-content:space-between;margin-bottom:12px}.decision-phase{font-size:12px;font-weight:600;color:#007aff;text-transform:uppercase}.decision-progress{font-size:12px;color:#999}.decision-prompt{font-size:15px;line-height:1.5;margin-bottom:16px}.decision-options{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.decision-option{display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px solid #e0e0e0;border-radius:10px;background:#fff;cursor:pointer;text-align:left;font:inherit;font-size:14px;line-height:1.4}.decision-option:hover:not(:disabled){border-color:#007aff}.decision-option.selected{border-color:#007aff;background:#f0f7ff}.decision-option.best{border-color:#4caf50;background:#f0fff0}.decision-option:disabled{cursor:default}.option-id{font-weight:700;color:#007aff;min-width:20px}.best-badge{font-size:11px;font-weight:600;color:#4caf50;margin-left:auto}.decision-feedback{border-top:1px solid #eee;padding-top:16px}.score-badge{display:inline-block;color:#fff;font-weight:700;font-size:14px;padding:4px 12px;border-radius:12px;margin-bottom:10px}.feedback-text{font-size:14px;line-height:1.5;margin-bottom:10px}.decision-feedback details{margin-bottom:12px}.decision-feedback summary{font-size:13px;color:#007aff;cursor:pointer;margin-bottom:6px}.decision-feedback details p{font-size:13px;line-height:1.5;color:#555}.dismiss-btn{width:100%;padding:10px;background:#007aff;color:#fff;border:none;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer}.dismiss-btn:hover{background:#0066d6}.summary-title{font-size:18px;font-weight:600;margin-bottom:16px}.summary-grid{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.summary-stat{display:flex;flex-direction:column;gap:2px}.summary-stat-value{font-size:20px;font-weight:700}.summary-stat-label{font-size:13px;color:#666}.ae-banner{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;font-size:13px;border-bottom:1px solid transparent}.ae-banner.ae-high{background:#fce4e4;color:#c62828;border-color:#ef9a9a}.ae-banner.ae-medium{background:#fff3e0;color:#e65100;border-color:#ffcc80}.ae-banner.ae-low{background:#f5f5f5;color:#757575;border-color:#e0e0e0}.ae-banner-content{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.ae-badge{font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px;text-transform:uppercase;white-space:nowrap}.ae-high .ae-badge{background:#c62828;color:#fff}.ae-medium .ae-badge{background:#e65100;color:#fff}.ae-low .ae-badge{background:#9e9e9e;color:#fff}.ae-label{font-weight:600;white-space:nowrap}.ae-keywords{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.8}.ae-dismiss{font-size:12px;padding:2px 8px;border:1px solid currentColor;border-radius:4px;background:transparent;color:inherit;cursor:pointer;opacity:.7;white-space:nowrap;margin-left:8px}.ae-dismiss:hover{opacity:1}.bureau-app{max-width:960px}.bureau-setup{padding:24px 16px;display:flex;flex-direction:column;gap:20px}.bureau-setup h2{font-size:20px;font-weight:600}.bureau-subtitle{font-size:14px;color:#666}.bureau-error{padding:10px 14px;background:#fff3e0;color:#e65100;border-radius:8px;font-size:14px}.bureau-options{display:flex;gap:16px}.bureau-option-card{flex:1;padding:20px;background:#fff;border:1px solid #e0e0e0;border-radius:12px;display:flex;flex-direction:column;gap:10px}.bureau-option-card h3{font-size:16px;font-weight:600}.bureau-option-card p{font-size:13px;color:#666;flex:1}.bureau-join-form{display:flex;gap:8px}.bureau-code-input{flex:1;padding:10px 14px;border:1px solid #e0e0e0;border-radius:8px;font-size:18px;font-weight:700;letter-spacing:4px;text-align:center;text-transform:uppercase}.bureau-code-input:focus{border-color:#007aff;outline:none}.bureau-btn{padding:8px 16px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer}.bureau-btn:disabled{opacity:.5;cursor:not-allowed}.bureau-btn-primary{background:#007aff;color:#fff}.bureau-btn-primary:hover:not(:disabled){background:#0066d6}.bureau-btn-secondary{background:#f0f0f0;color:#333}.bureau-btn-secondary:hover:not(:disabled){background:#e0e0e0}.bureau-btn-danger{background:#fff;color:#f44336;border:1px solid #f44336}.bureau-btn-danger:hover{background:#f44336;color:#fff}.bureau-btn-sm{padding:4px 10px;font-size:12px}.presenter-controls{padding:12px 16px;background:#fafafa;border-bottom:1px solid #e0e0e0;display:flex;flex-direction:column;gap:10px}.presenter-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.presenter-header-info{display:flex;flex-direction:column;gap:4px}.presenter-qr{display:flex;flex-direction:column;align-items:center;gap:4px}.qr-label{font-size:11px;color:#888}.decision-progress{font-size:13px;font-weight:600;color:#007aff;margin-bottom:4px}.voting-closed-badge{font-size:13px;color:#e53935;font-weight:600;padding:4px 0}.feedback-best-answer{font-size:14px;font-weight:600;color:#4caf50;margin:4px 0}.voting-closed{color:#e53935}.room-code-display{font-size:14px;color:#333}.room-code-display strong{font-size:18px;letter-spacing:2px;color:#007aff}.audience-count{font-size:13px;color:#666}.presenter-actions{display:flex;gap:8px;flex-wrap:wrap}.session-timer{font-family:monospace;font-size:14px;color:#666;background:#f0f0f0;padding:4px 10px;border-radius:4px}.presenter-narration{display:flex;gap:8px;margin-top:8px}.narration-input{flex:1;padding:8px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px}.narration-input:focus{outline:none;border-color:#007aff}.message.presenter{align-self:center;background:#e8eaf6;color:#283593;border:1px solid #c5cae9;border-radius:8px;max-width:90%;font-style:italic}.message.presenter .message-role{color:#283593}.presenter-paused-banner{background:#fff3e0;color:#e65100;padding:8px 14px;border-radius:8px;font-size:14px;font-weight:600;text-align:center}.presenter-decision{background:#fff;border:1px solid #e0e0e0;border-radius:12px;padding:16px}.presenter-decision h4{font-size:14px;line-height:1.4;margin-bottom:12px}.presenter-decision-options{display:flex;flex-direction:column;gap:6px;margin-top:12px}.presenter-feedback{background:#fff;border:1px solid #e0e0e0;border-radius:12px;padding:16px}.audience-view{display:flex;flex-direction:column;flex:1;overflow:hidden}.audience-header{display:flex;justify-content:space-between;align-items:center;padding:8px 16px;background:#fafafa;border-bottom:1px solid #e0e0e0}.audience-feedback{padding:16px;background:#fff;border-top:1px solid #e0e0e0}.audience-feedback details{margin:10px 0}.audience-feedback summary{font-size:13px;color:#007aff;cursor:pointer}.audience-feedback details p{font-size:13px;line-height:1.5;color:#555;margin-top:6px}.audience-session-summary{padding:24px;text-align:center}.audience-session-summary h2{margin:0 0 8px;font-size:22px}.thank-you{font-size:16px;color:#666;margin-bottom:20px}.personal-score{display:flex;flex-direction:column;align-items:center;margin:16px 0}.personal-score-value{font-size:32px;font-weight:700}.personal-score-label{font-size:14px;color:#666;margin-top:4px}.wrong-answers{text-align:left;margin:20px 0}.wrong-answers h3{font-size:16px;margin-bottom:12px}.wrong-answer-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:12px;margin-bottom:10px}.wrong-question{font-weight:600;margin:0 0 8px}.wrong-your-answer{color:#e53935;font-size:13px;margin:4px 0}.wrong-correct{color:#4caf50;font-size:13px;margin:4px 0}.session-duration{font-size:13px;color:#999;margin:16px 0}.voting-panel{padding:16px;background:#fff;border-top:1px solid #e0e0e0}.voting-header{display:flex;justify-content:space-between;margin-bottom:10px}.voting-phase{font-size:12px;font-weight:600;color:#007aff;text-transform:uppercase}.voting-progress{font-size:12px;color:#999}.voting-prompt{font-size:14px;line-height:1.5;margin-bottom:12px}.voting-options{display:flex;flex-direction:column;gap:6px}.voting-option{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid #e0e0e0;border-radius:8px;background:#fff;cursor:pointer;text-align:left;font:inherit;font-size:14px}.voting-option:hover:not(:disabled){border-color:#007aff}.voting-option.voted{cursor:default;opacity:.8}.voting-option:disabled{cursor:default}.vote-count{margin-left:auto;font-size:12px;font-weight:600;color:#007aff}.voting-status{font-size:13px;color:#666;text-align:center;margin-top:10px}.vote-results{margin-bottom:8px}.vote-results-header{font-size:12px;font-weight:600;color:#666;margin-bottom:8px}.vote-results-bars{display:flex;flex-direction:column;gap:4px}.vote-bar-row{display:flex;align-items:center;gap:8px}.vote-bar-label{font-size:13px;font-weight:700;color:#007aff;min-width:20px}.vote-bar-track{flex:1;height:16px;background:#f0f0f0;border-radius:4px;overflow:hidden}.vote-bar-fill{height:100%;background:#007aff;border-radius:4px;transition:width .3s ease;min-width:0}.vote-bar-count{font-size:12px;color:#666;min-width:20px;text-align:right}.isi-footer{background:#f8f8f8;border-top:1px solid #e0e0e0;max-height:80px;overflow-y:auto}.isi-content{padding:8px 16px}.isi-content p{font-size:10px;line-height:1.4;color:#666}.consent-screen,.identity-capture,.pre-assessment{max-width:500px;margin:0 auto;padding:24px}.consent-screen h2,.identity-capture h2,.pre-assessment h2{margin-bottom:16px}.consent-body{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:16px;margin-bottom:20px;font-size:14px;line-height:1.6}.consent-body h4{margin:12px 0 6px;font-size:14px}.consent-body ul{padding-left:20px;margin-bottom:8px}.consent-body li{margin-bottom:4px}.consent-accept-btn{width:100%;padding:14px;font-size:16px}.identity-field{margin-bottom:14px}.identity-field label{display:block;font-size:13px;font-weight:600;margin-bottom:4px}.identity-field input,.identity-field select{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:6px;font-size:16px}.identity-field input:focus,.identity-field select:focus{outline:none;border-color:#007aff}.identity-error{color:#e53935;font-size:13px;margin-top:4px}.identity-observer-toggle{margin-bottom:16px;padding:10px;background:#f5f5f5;border-radius:6px}.identity-observer-toggle label{display:flex;align-items:center;gap:8px;font-size:14px;cursor:pointer}.assessment-progress{font-size:13px;color:#666;margin-bottom:12px}.assessment-question{font-size:16px;font-weight:600;line-height:1.5;margin-bottom:16px}.assessment-options{display:flex;flex-direction:column;gap:8px}.assessment-option{padding:12px 16px;border:1px solid #ddd;border-radius:8px;background:#fff;font-size:15px;text-align:left;cursor:pointer}.assessment-option:hover{background:#f0f7ff;border-color:#007aff}.audience-voting-overlay{position:fixed;inset:0;background:#000000d9;z-index:100;display:flex;align-items:center;justify-content:center;padding:16px}.audience-voting-overlay .voting-panel{background:#fff;border-radius:16px;padding:24px;max-width:500px;width:100%;max-height:90vh;overflow-y:auto}@media(max-width:600px){.audience-view .message{max-width:95%;font-size:16px}.audience-view .message-content{font-size:16px;line-height:1.5}.audience-view .voting-option{min-height:48px;font-size:16px;padding:12px 16px}.audience-view .voting-prompt{font-size:16px;line-height:1.5}.audience-view .bureau-btn{min-height:44px;font-size:16px}.audience-feedback{padding:20px}.audience-feedback .score-badge{font-size:20px;padding:8px 16px}}.case-preview{padding:16px;max-width:800px;margin:0 auto}.preview-banner{background:#fff3e0;color:#e65100;text-align:center;padding:8px;border-radius:8px;font-weight:600;font-size:14px;margin-bottom:16px}.preview-section{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:16px;margin-bottom:16px}.preview-section h2{font-size:20px;margin-bottom:8px}.preview-section h3{font-size:16px;margin-bottom:10px;color:#333}.preview-meta{display:flex;gap:8px;margin-bottom:8px}.preview-tag{font-size:12px;background:#e3f2fd;color:#1565c0;padding:2px 8px;border-radius:4px;text-transform:uppercase}.preview-focus{font-size:14px;color:#555;line-height:1.5}.preview-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:14px}.preview-decision{border:1px solid #e0e0e0;border-radius:8px;padding:14px;margin-bottom:12px}.preview-decision h4{font-size:15px;margin-bottom:8px;color:#007aff}.preview-prompt{font-size:14px;line-height:1.5;margin-bottom:10px}.preview-options{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.preview-option{border:1px solid #e0e0e0;border-radius:6px;padding:10px}.preview-option.best{border-color:#4caf50;background:#e8f5e9}.preview-option-header{display:flex;align-items:flex-start;gap:8px}.preview-option-header .option-text{flex:1;font-size:13px}.preview-score{font-weight:700;font-size:13px;white-space:nowrap}.preview-option-feedback{font-size:12px;color:#666;margin-top:6px;line-height:1.4}.preview-explanation{font-size:13px;line-height:1.5;color:#333;background:#f5f5f5;padding:10px;border-radius:6px}
