:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}body{margin:0}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}*{box-sizing:border-box;margin:0;padding:0}body{color:#1a2c3e;background:#eef2f5;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5}html{scroll-behavior:smooth}.app{flex-direction:column;height:100vh;display:flex}header{background:#fff;border-bottom:1px solid #e2e8f0;padding:16px 24px;box-shadow:0 2px 8px #00000005}.header-inner{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;max-width:1000px;margin:0 auto;display:flex}.badge{color:#1e4a76;letter-spacing:.3px;background:#e6f0fa;border-radius:30px;padding:4px 10px;font-size:.75rem;font-weight:600}h1{color:#0b3550;flex:1;margin:0;font-size:1.25rem;font-weight:600}.phase-tag{text-transform:uppercase;letter-spacing:.5px;border-radius:30px;padding:4px 12px;font-size:.7rem;font-weight:700}.phase-tag.nurse{color:#15803d;background:#dcfce7}.phase-tag.patient{color:#b91c1c;background:#fee2e2}.student-info{color:#1e293b;background:#f1f5f9;border-radius:40px;align-items:center;gap:8px;width:fit-content;margin-top:8px;margin-left:auto;margin-right:auto;padding:6px 14px;font-size:.8rem;font-weight:500;display:inline-flex;box-shadow:inset 0 1px #fff9,0 1px 2px #0000000d}.student-info:before{content:"👤";opacity:.8;font-size:.85rem}main{background:#f8fafc;flex:1;justify-content:center;padding:24px;display:flex;overflow:visible}.chat-container{background:#fff;border-radius:28px;flex-direction:column;width:100%;max-width:900px;transition:all .2s;display:flex;overflow:visible;box-shadow:0 12px 30px #00000014}.chat-persona{background:#fff;border-bottom:1px solid #eef2f5;align-items:center;gap:16px;padding:20px 24px;display:flex}.avatar{color:#fff;background:#2c6e9e;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;font-size:1.2rem;font-weight:700;display:flex}.nurse-avatar{background:#2b6e4e}.patient-avatar{background:#b45309}.chat-persona strong{color:#0f2b3d;font-size:1.05rem;font-weight:700}.chat-persona p{color:#5a6e7c;margin-top:2px;font-size:.8rem}.messages{background:#fff;flex-direction:column;flex:1;gap:16px;padding:20px 24px;display:flex;overflow-y:auto}.message{width:100%;display:flex}.message.user{justify-content:flex-end}.message.assistant{justify-content:flex-start}.bubble{white-space:pre-wrap;word-break:break-word;border-radius:24px;max-width:75%;padding:12px 18px;font-size:.9rem;line-height:1.45;box-shadow:0 1px 1px #0000000d}.message.user .bubble{color:#fff;background:#1e4a76;border-bottom-right-radius:6px}.message.assistant .bubble{color:#1e2a3a;background:#f1f5f9;border-bottom-left-radius:6px}.typing{align-items:center;gap:6px;padding:10px 18px;display:flex}.typing span{background:#94a3b8;border-radius:50%;width:8px;height:8px;animation:1.2s infinite bounce}.typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}@keyframes bounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-6px)}}@keyframes spin{to{transform:rotate(360deg)}}.input-row{background:#fff;border-top:1px solid #eef2f5;align-items:center;gap:12px;padding:18px 24px;display:flex}.input-row input{border:1px solid #cbd5e1;border-radius:48px;outline:none;flex:1;padding:12px 18px;font-size:.9rem;transition:all .2s}.input-row input:focus{border-color:#1e4a76;box-shadow:0 0 0 3px #1e4a761a}.input-row button{color:#fff;cursor:pointer;background:#1e4a76;border:none;border-radius:40px;padding:10px 20px;font-size:.85rem;font-weight:600;transition:all .2s}.input-row button:hover:not(:disabled){background:#0f3a5c}.input-row button:disabled{cursor:not-allowed;background:#cbd5e1}.mic-btn{flex-shrink:0;justify-content:center;align-items:center;width:3rem;min-width:3rem;height:3rem;transition:transform .15s,background .2s;display:inline-flex;position:relative;overflow:hidden;color:#1e2a3a!important;background:#eef2f5!important;border-radius:50%!important;padding:0!important;font-size:1.4rem!important;line-height:1!important}.mic-btn:hover:not(:disabled){transform:scale(1.08)}@keyframes mic-pulse{0%{box-shadow:0 0 #b91c1c73}70%{box-shadow:0 0 0 14px #b91c1c00}to{box-shadow:0 0 #b91c1c00}}.mic-btn.active{animation:1.4s infinite mic-pulse;color:#b91c1c!important;background:#fee2e2!important}.mic-btn.on{box-shadow:0 0 0 3px #1e4a7659}.mic-wrap{display:inline-flex;position:relative}.mic-tip-bubble{transform-origin:100% 100%;color:#713f12;text-align:center;cursor:pointer;z-index:9999;white-space:normal;background:#fef08a;border:2px solid #eab308;border-radius:16px;width:200px;padding:10px 14px;font-size:.78rem;font-weight:600;animation:.4s ease-out mic-tip-pop,2.4s ease-in-out .4s infinite mic-tip-float;position:absolute;bottom:3.6rem;right:0;box-shadow:2px 4px 10px #00000026}.mic-tip-bubble:after{content:"";border:8px solid #0000;border-top-color:#eab308;border-bottom-width:0;position:absolute;bottom:-8px;left:auto;right:16px;transform:none}@keyframes mic-tip-pop{0%{opacity:0;transform:scale(.5)rotate(-8deg)}60%{opacity:1;transform:scale(1.08)rotate(3deg)}to{opacity:1;transform:scale(1)rotate(-2deg)}}@keyframes mic-tip-float{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-6px)rotate(2deg)}}.enter-room-banner{background:#e6f7ec;border:1px solid #2b6e4e;border-radius:20px;justify-content:space-between;align-items:center;margin:16px 24px 24px;padding:16px 20px;display:flex}.enter-room-banner p{color:#2b6e4e;margin:0;font-weight:600}.enter-btn{color:#fff;cursor:pointer;background:#2b6e4e;border:none;border-radius:30px;padding:8px 20px;font-size:.85rem;font-weight:600}.enter-btn:hover{background:#1e5238}.student-login{background:linear-gradient(145deg,#eef2f5 0%,#dce5ec 100%);justify-content:center;align-items:center;height:100vh;display:flex}.login-card{text-align:center;background:#fff;border-radius:40px;width:420px;padding:40px;box-shadow:0 20px 35px -10px #00000026}.login-card h2{color:#0f2b3d;margin-bottom:8px;font-size:1.8rem;font-weight:600}.login-card p{color:#4b6b7e;margin-bottom:28px}.login-card input{border:1px solid #cbd5e1;border-radius:48px;width:100%;margin-bottom:18px;padding:14px 18px;font-size:1rem}.login-card button{color:#fff;cursor:pointer;background:#1e4a76;border:none;border-radius:48px;width:100%;padding:14px;font-size:1rem;font-weight:600}.login-card button:hover{background:#0f3a5c}.login-error{color:#c2410c;margin-bottom:16px;font-size:.85rem}.admin-link{color:#94a3b8;margin-left:auto;font-size:.7rem;text-decoration:none}.admin-link:hover{color:#1e4a76}.encounter-ended{text-align:center;background:#e6f7ec;border-radius:20px;margin:16px;padding:24px}.encounter-ended p{color:#2b6e4e;margin-bottom:16px;font-weight:500}.encounter-ended button{color:#fff;cursor:pointer;background:#1e4a76;border:none;border-radius:30px;padding:8px 20px;font-size:.85rem}.end-encounter-btn:hover{background:#9b2c2c}.countdown{color:#1e4a76;margin:12px 0;font-size:1.2rem}.end-button-header{display:flex align-items: center;gap:8px;margin-left:auto}.end-encounter-btn{color:#4a5568;cursor:pointer;background:0 0;border:1px solid #cbd5e0;border-radius:20px;padding:4px 12px;font-size:.75rem;transition:all .2s}.end-encounter-btn.disabled-style{opacity:.5;cursor:not-allowed;border-color:#e2e8f0}.end-encounter-btn:hover:not(.disabled-style){color:#c53030;background:#fee2e2;border-color:#c53030}.helper-text{color:#a0aec0;font-size:.7rem}.chat-layout{align-items:stretch;gap:24px;width:100%;max-width:1300px;margin:0 auto;display:flex;position:relative}.chat-side{flex-direction:column;flex:0 0 240px;justify-content:center;align-self:start;display:flex;position:sticky;top:20px}.chat-side img{border-radius:16px;width:100%;transition:transform .2s;box-shadow:0 8px 20px #0000001f}.chat-side img:hover{transform:scale(1.02)}.chat-main{flex:1;min-width:0}@media (width<=900px){.chat-layout{flex-direction:column;gap:20px}.chat-side{flex-direction:row;flex:none;justify-content:center;gap:20px;position:static}.chat-side img{width:120px}}main{height:calc(100vh - 100px);padding:20px;overflow-y:auto}.chat-layout{min-height:100%}.chat-side{align-self:start;position:sticky;top:20px}.login-logo{max-width:180px;height:auto;margin:20px auto 0;padding:0 20px;display:block}.admin-panel{height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;display:flex}.admin-sidebar{color:#fff;background:#1a365d;flex-direction:column;width:260px;display:flex}.admin-sidebar-header{border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:center;padding:20px 16px;display:flex}.admin-sidebar-header h2{margin:0;font-size:1.2rem}.admin-sidebar ul{flex:1;margin:0;padding:0;list-style:none;overflow-y:auto}.admin-sidebar li{cursor:pointer;border-left:3px solid #0000;justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.admin-sidebar li.active{background:#ffffff1a;border-left-color:#63b3ed}.admin-sidebar li:hover{background:#ffffff0d}.admin-sidebar-footer{border-top:1px solid #ffffff1a;padding:16px}.admin-main{background:#f7fafc;flex:1;padding:24px;overflow-y:auto}.case-editor{background:#fff;border-radius:12px;max-width:1000px;margin:0 auto;padding:24px;box-shadow:0 1px 3px #0000001a}.editor-header{border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:flex-start;margin-bottom:20px;padding-bottom:16px;display:flex}.editor-actions{gap:12px;display:flex}.btn-preview,.btn-save{border-radius:6px;padding:8px 16px;font-weight:500;text-decoration:none}.btn-preview{color:#fff;background:#744210}.btn-save{color:#fff;cursor:pointer;background:#276749;border:none}.editor-tabs{border-bottom:1px solid #e2e8f0;gap:8px;margin-bottom:24px;display:flex}.editor-tabs button{cursor:pointer;color:#4a5568;background:0 0;border:none;border-bottom:2px solid #0000;padding:8px 16px;font-size:.9rem}.editor-tabs button.active{color:#1a365d;border-bottom-color:#1a365d;font-weight:600}.editor-section h3{color:#2d3748;margin:24px 0 12px;font-size:1rem;font-weight:600}.field-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin-bottom:16px;display:grid}.field{flex-direction:column;gap:4px;display:flex}.field.full{grid-column:1/-1}.field label{color:#4a5568;text-transform:uppercase;letter-spacing:.5px;font-size:.75rem;font-weight:600}.field input,.field textarea{border:1px solid #cbd5e0;border-radius:6px;padding:8px 12px;font-size:.85rem}.vitals-table{border-collapse:collapse;width:100%;margin-bottom:16px}.vitals-table th,.vitals-table td{text-align:left;border:1px solid #e2e8f0;padding:8px}.vitals-table input{width:100%;padding:4px}.med-row{align-items:center;gap:8px;margin-bottom:8px;display:flex}.med-row input{flex:1}.btn-delete{color:#c53030;cursor:pointer;background:#fed7d7;border:none;border-radius:4px;padding:4px 8px}.btn-small{color:#fff;cursor:pointer;background:#2b6cb0;border:none;border-radius:4px;padding:4px 8px;font-size:.75rem}.admin-empty{color:#718096;justify-content:center;align-items:center;height:100%;display:flex}.admin-panel *,.case-editor *,.admin-login *,.login-box *{color:#1a202c!important;background-color:#fff!important;border-color:#cbd5e0!important}.admin-panel input,.case-editor input,.admin-panel textarea,.case-editor textarea{color:#1a202c!important;background-color:#f7fafc!important}.admin-panel button,.case-editor button{color:#1a202c!important;background-color:#e2e8f0!important}.admin-panel button.btn-save{color:#fff!important;background-color:#2b6cb0!important}.admin-panel button.btn-delete{color:#fff!important;background-color:#c53030!important}.end-splash{background:#f8fafc;justify-content:center;align-items:center;height:100%;padding:20px;display:flex}.end-splash-card{text-align:center;background:#fff;border-radius:40px;max-width:500px;padding:40px;box-shadow:0 20px 35px -10px #00000026}.end-splash-logo{max-width:180px;margin-bottom:20px}.end-splash-card h2{color:#0f2b3d;margin-bottom:16px;font-size:1.8rem;font-weight:600}.end-splash-card p{color:#4b6b7e;margin-bottom:28px;line-height:1.5}.end-splash-card button{color:#fff;cursor:pointer;background:#1e4a76;border:none;border-radius:48px;padding:12px 24px;font-size:1rem;font-weight:600}.end-splash-card button:hover{background:#0f3a5c}.modal-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:#fff;border-radius:12px;width:500px;max-width:90%;padding:24px}.modal-buttons{gap:12px;margin-top:20px;display:flex}.btn-cancel{color:#fff;cursor:pointer;background:#718096;border:none;border-radius:6px;padding:8px 16px}.session-detail{background:#fff;border-radius:12px;padding:20px}.chat-side{align-self:flex-start;height:auto;position:sticky;top:1rem}
