@import url("https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Inter:wght@400;500;600;700&display=swap");:root{--primary:#4F46E5;--primary-rgb:79,70,229;--primary-hover:#4338CA;--primary-light:#EEF2FF;--primary-gradient:linear-gradient(135deg,#5B4AEB,#7C3AED);--brand-violet:#5B4AEB;--bg-page:#F8FAFC;--bg-card:#FFFFFF;--bg-sidebar:#FFFFFF;--bg-subtle:#F1F5F9;--bg-hover:#F8FAFC;--border-light:#E2E8F0;--border-subtle:#F1F5F9;--border-focus:#4F46E5;--text-primary:#0F172A;--text-secondary:#475569;--text-muted:#94A3B8;--text-inverse:#FFFFFF;--emerald-bg:#ECFDF5;--emerald-text:#059669;--amber-bg:#FFFBEB;--amber-text:#D97706;--rose-bg:#FEF2F2;--rose-text:#DC2626;--blue-bg:#EFF6FF;--blue-text:#2563EB;--purple-bg:#F5F3FF;--purple-text:#7C3AED;--shadow-xs:0 1px 2px 0 rgba(15,23,42,0.04);--shadow-sm:0 1px 3px 0 rgba(15,23,42,0.06),0 1px 2px -1px rgba(15,23,42,0.04);--shadow-md:0 4px 6px -1px rgba(15,23,42,0.07),0 2px 4px -2px rgba(15,23,42,0.05);--shadow-lg:0 10px 15px -3px rgba(15,23,42,0.08),0 4px 6px -4px rgba(15,23,42,0.04);--shadow-xl:0 20px 25px -5px rgba(15,23,42,0.1),0 8px 10px -6px rgba(15,23,42,0.04);--sidebar-width:240px;--header-height:70px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-full:9999px;--font-family:"Plus Jakarta Sans","Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}[data-theme=dark]{--bg-page:#0B0F19;--bg-card:#131A2A;--bg-sidebar:#0F1626;--bg-subtle:#1C2438;--bg-hover:#192236;--border-light:#242E46;--border-subtle:#1E283E;--text-primary:#F8FAFC;--text-secondary:#94A3B8;--text-muted:#64748B;--shadow-sm:0 1px 3px 0 rgba(0,0,0,0.3);--shadow-md:0 4px 12px 0 rgba(0,0,0,0.4)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{min-height:100vh;font-family:var(--font-family);background-color:var(--bg-page);color:var(--text-primary);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}button{cursor:pointer;border:none;background:none}button,input,select,textarea{font-family:inherit}.app-container{display:flex;min-height:100vh}.main-wrapper{flex:1 1;display:flex;flex-direction:column;min-width:0;margin-left:var(--sidebar-width);transition:margin-left .2s ease}@media (max-width:1024px){.main-wrapper{margin-left:0;padding-bottom:72px}}.page-content{flex:1 1;padding:24px 32px;max-width:1440px;margin:0 auto;width:100%}@media (max-width:768px){.page-content{padding:16px}}.card{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-xs);transition:all .2s ease}.card:hover{box-shadow:var(--shadow-sm)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.card-title{font-size:16px;font-weight:700;color:var(--text-primary)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 18px;font-size:14px;font-weight:600;border-radius:var(--radius-md);transition:all .15s ease;white-space:nowrap}.btn-primary{background:var(--brand-violet);color:#FFFFFF}.btn-primary:hover{background:#4A38DB;transform:translateY(-1px);box-shadow:0 4px 12px rgba(91,74,235,.3)}.btn-secondary{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-light)}.btn-secondary:hover{background:var(--bg-subtle)}.btn-outline{background:transparent;color:var(--brand-violet);border:1.5px solid var(--brand-violet)}.btn-outline:hover{background:var(--primary-light)}.badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;font-size:12px;font-weight:600;border-radius:var(--radius-full)}.badge-beginner{background:var(--emerald-bg);color:var(--emerald-text)}.badge-intermediate{background:var(--amber-bg);color:var(--amber-text)}.badge-advanced{background:var(--rose-bg);color:var(--rose-text)}.badge-blue{background:var(--blue-bg);color:var(--blue-text)}.badge-purple{background:var(--purple-bg);color:var(--purple-text)}.metrics-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:16px;gap:16px;margin-bottom:24px}@media (max-width:1200px){.metrics-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.metrics-grid{grid-template-columns:1fr}}.two-col-grid{display:grid;grid-template-columns:1.15fr .85fr;grid-gap:24px;gap:24px;margin-bottom:24px}@media (max-width:1024px){.two-col-grid{grid-template-columns:1fr}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#CBD5E1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#94A3B8}.header-container{height:var(--header-height);background:var(--bg-card);border-bottom:1px solid var(--border-light);display:flex;align-items:center;justify-content:space-between;padding:0 32px;position:-webkit-sticky;position:sticky;top:0;z-index:40}@media (max-width:768px){.header-container{padding:0 16px;height:60px}}.header-left{display:flex;align-items:center;gap:16px;flex:1 1;max-width:480px}.mobile-menu-btn{display:none;background:transparent;padding:6px;border-radius:var(--radius-sm);color:var(--text-primary)}@media (max-width:1024px){.mobile-menu-btn{display:flex}}.search-input-wrapper{position:relative;width:100%}.search-input-wrapper>.search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted);width:16px;height:16px;pointer-events:none}.search-input{width:100%;padding:8px 36px;background:var(--bg-page);border:1px solid var(--border-light);border-radius:var(--radius-full);font-size:13px;color:var(--text-primary);outline:none;transition:all .15s ease}.search-input:focus{border-color:var(--brand-violet);background:#FFFFFF;box-shadow:0 0 0 3px rgba(91,74,235,.1)}.search-clear-btn{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--text-muted);display:flex;align-items:center;justify-content:center;padding:3px;border-radius:50%;transition:all .15s ease}.search-clear-btn:hover{color:var(--text-primary);background:#F1F5F9}.search-shortcut-badge{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:#E2E8F0;color:#64748B;font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px;pointer-events:none;line-height:1}.search-dropdown-menu{position:absolute;top:calc(100% + 8px);left:0;right:0;background:#FFFFFF;border:1px solid #e2e8f0;border-radius:14px;box-shadow:0 14px 38px rgba(15,23,42,.15);overflow:hidden;z-index:250;max-height:480px;display:flex;flex-direction:column}.header-right{display:flex;align-items:center;gap:16px}.osce-countdown-chip{display:flex;align-items:center;gap:8px;padding:6px 14px;background:var(--bg-page);border:1px solid var(--border-light);border-radius:var(--radius-md);font-size:13px;font-weight:600;color:var(--text-primary)}.osce-countdown-chip strong{font-size:16px;color:var(--brand-violet)}.header-icon-btn{position:relative;width:36px;height:36px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);background:var(--bg-page);transition:all .15s ease}.header-icon-btn:hover{background:var(--bg-subtle);color:var(--brand-violet)}.notification-badge{position:absolute;top:-2px;right:-2px;background:#EF4444;color:#FFFFFF;font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 3px;border:2px solid var(--bg-card)}.user-avatar-btn{display:flex;align-items:center;gap:8px}.avatar-img{width:36px;height:36px;border-radius:var(--radius-full);object-fit:cover;border:2px solid #ffffff;box-shadow:var(--shadow-xs)}.sidebar-container{width:var(--sidebar-width);height:100vh;position:fixed;left:0;top:0;background:var(--bg-sidebar);border-right:1px solid var(--border-light);display:flex;flex-direction:column;z-index:50;overflow-y:auto;transition:transform .25s ease}@media (max-width:1024px){.sidebar-container{transform:translateX(-100%)}.sidebar-container.open{transform:translateX(0);box-shadow:var(--shadow-xl)}}.sidebar-backdrop{display:none}@media (max-width:1024px){.sidebar-backdrop.active{display:block;position:fixed;inset:0;background:rgba(15,23,42,.4);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:45}}.sidebar-logo{height:var(--header-height);padding:0 20px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--border-subtle)}.logo-icon-svg{width:28px;height:28px;color:var(--brand-violet)}.logo-text{font-size:20px;font-weight:800;color:#0F172A;letter-spacing:-.5px}.logo-text span{color:var(--brand-violet)}.sidebar-nav{flex:1 1;padding:16px 12px;display:flex;flex-direction:column;gap:4px}.nav-section-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);padding:12px 12px 6px}.nav-item{display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:var(--radius-md);color:var(--text-secondary);font-size:13.5px;font-weight:600;transition:all .15s ease;position:relative}.nav-item svg{width:18px;height:18px;color:#64748B;transition:color .15s ease}.nav-item:hover{background:var(--bg-page)}.nav-item.active,.nav-item:hover,.nav-item:hover svg{color:var(--brand-violet)}.nav-item.active{background:#EEF0FF;font-weight:700}.nav-item.active svg{color:var(--brand-violet)}.sidebar-premium-box{margin:12px;padding:16px 14px;background:linear-gradient(180deg,#F0F0FF,#E6E8FF);border:1px solid #d6daff;border-radius:var(--radius-lg);text-align:center}.premium-crown-icon{width:28px;height:28px;margin:0 auto 6px;color:#F59E0B}.sidebar-premium-title{font-size:13px;font-weight:700;color:#1E1B4B;margin-bottom:2px}.sidebar-premium-sub{font-size:11px;color:#6366F1;margin-bottom:12px}.sidebar-premium-btn{width:100%;padding:8px 12px;background:var(--brand-violet);color:#FFFFFF;font-size:12px;font-weight:700;border-radius:var(--radius-md);transition:background .15s ease}.sidebar-premium-btn:hover{background:#4A38DB}.mobile-nav-bar{display:none;position:fixed;bottom:0;left:0;right:0;height:64px;background:#FFFFFF;border-top:1px solid var(--border-light);box-shadow:0 -4px 12px rgba(0,0,0,.05);z-index:40;padding:0 8px}@media (max-width:1024px){.mobile-nav-bar{display:flex;align-items:center;justify-content:space-around}}.mobile-nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:#64748B;font-size:10px;font-weight:600;padding:6px 12px;border-radius:var(--radius-sm);transition:all .15s ease}.mobile-nav-item svg{width:20px;height:20px}.mobile-nav-item.active,.mobile-nav-item.active svg{color:var(--brand-violet)}.auth-fullscreen-container{min-height:100vh;width:100vw;margin:0;padding:0;background:#0F172A;overflow-x:hidden}@media (max-width:900px){.login-hero-panel{display:none!important}}.metric-card{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:18px 20px;flex-direction:column;box-shadow:var(--shadow-xs);position:relative}.metric-card,.metric-header{display:flex;justify-content:space-between}.metric-header{align-items:center;margin-bottom:8px}.metric-label{font-size:13px;font-weight:600;color:var(--text-secondary)}.metric-icon-box{width:36px;height:36px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center}.metric-value-row{display:flex;align-items:baseline;gap:8px;margin:6px 0}.metric-value{font-size:26px;font-weight:800;color:var(--text-primary);letter-spacing:-.5px}.metric-badge-change{display:inline-flex;align-items:center;gap:2px;font-size:12px;font-weight:700;color:#10B981}.metric-sub{font-size:12px;color:var(--text-muted)}.task-item-card{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-md);margin-bottom:10px;transition:all .15s ease}.task-item-card:hover{border-color:#CBD5E1;background:var(--bg-hover)}.task-item-left{gap:14px}.task-icon-box,.task-item-left{display:flex;align-items:center}.task-icon-box{width:40px;height:40px;border-radius:var(--radius-md);justify-content:center;flex-shrink:0}.task-category{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px}.task-title{font-size:14px;font-weight:700;color:var(--text-primary)}.task-time{font-size:12px;color:var(--text-secondary);gap:4px}.chart-container,.task-time{display:flex;align-items:center}.chart-container{flex-direction:column;justify-content:center;position:relative;width:100%}.radar-chart-svg{width:100%;max-width:320px;height:240px;overflow:visible}.chart-highlight-box{width:100%;padding:12px 16px;border-radius:var(--radius-md);margin-top:12px;display:flex;justify-content:space-between;align-items:center;font-size:13px}.highlight-best{background:#EFF6FF;border:1px solid #dbeafe;color:#1E40AF}.highlight-improve{background:#FFF7ED;border:1px solid #ffedd5;color:#9A3412}.quick-actions-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:16px;gap:16px;margin-top:24px}@media (max-width:1024px){.quick-actions-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.quick-actions-grid{grid-template-columns:1fr}}.quick-action-card{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:20px;display:flex;flex-direction:column;align-items:flex-start;transition:all .2s ease;text-decoration:none}.quick-action-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--brand-violet)}.quick-action-icon{width:48px;height:48px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;margin-bottom:14px}.quick-action-title{font-size:15px;font-weight:700;color:var(--text-primary);margin-bottom:4px}.quick-action-sub{font-size:12px;color:var(--text-secondary);margin-bottom:12px}.quick-action-link-arrow{margin-top:auto;align-self:flex-end;color:var(--brand-violet)}.station-bank-layout{display:grid;grid-template-columns:260px 1fr;grid-gap:24px;gap:24px}@media (max-width:900px){.station-bank-layout{grid-template-columns:1fr}}.filter-sidebar{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:20px;height:-moz-fit-content;height:fit-content}.filter-group{margin-bottom:24px;padding-bottom:18px;border-bottom:1px solid var(--border-subtle)}.filter-group:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.filter-heading{font-size:13px;font-weight:700;color:var(--text-primary);margin-bottom:12px;text-transform:uppercase;letter-spacing:.3px}.filter-option-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0;font-size:13px;color:var(--text-secondary);cursor:pointer}.filter-option-row:hover{color:var(--brand-violet)}.filter-count{font-size:11px;color:var(--text-muted)}.station-item-card{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:16px;margin-bottom:14px;display:flex;align-items:center;gap:20px;transition:all .2s ease}.station-item-card:hover{border-color:#CBD5E1;box-shadow:var(--shadow-sm)}.station-item-thumb{width:90px;height:70px;border-radius:var(--radius-md);object-fit:cover;flex-shrink:0}.station-item-content{flex:1 1;min-width:0}.station-item-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.station-item-title{font-size:15px;font-weight:700;color:var(--text-primary)}.station-item-meta{font-size:12px;color:var(--text-secondary);display:flex;align-items:center;gap:12px;margin-top:4px}.simulation-layout{display:grid;grid-template-columns:1.35fr .65fr;grid-gap:24px;gap:24px}@media (max-width:1100px){.simulation-layout{grid-template-columns:1fr}}.video-patient-container{background:#111827;border-radius:var(--radius-xl);height:380px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}.patient-video-bg{width:100%;height:100%;object-fit:cover;filter:brightness(.92)}.live-patient-badge{position:absolute;top:16px;left:16px;background:rgba(17,24,39,.75);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:6px 12px;border-radius:var(--radius-full);display:flex;align-items:center;gap:8px;color:#FFFFFF;font-size:12px;font-weight:600;border:1px solid rgba(255,255,255,.1)}.live-dot{width:8px;height:8px;background:#10B981;border-radius:50%;animation:pulse 1.5s infinite}@keyframes pulse{0%{opacity:.4;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}to{opacity:.4;transform:scale(.9)}}.examiner-view-btn{position:absolute;top:16px;right:16px;background:rgba(255,255,255,.9);color:#1E293B;padding:6px 14px;border-radius:var(--radius-full);font-size:12px;font-weight:700;display:flex;align-items:center;gap:6px}.live-subtitle-overlay{position:absolute;bottom:20px;left:30px;right:30px;background:rgba(15,23,42,.85);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#FFFFFF;padding:12px 20px;border-radius:var(--radius-md);font-size:14px;line-height:1.4;border:1px solid rgba(255,255,255,.15);box-shadow:0 4px 20px rgba(0,0,0,.3)}.chat-thread-container{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:20px;margin-top:16px;display:flex;flex-direction:column;height:380px}.chat-messages-scroll{flex:1 1;overflow-y:auto;padding-right:8px;display:flex;flex-direction:column;gap:12px}.chat-bubble{max-width:80%;padding:12px 16px;border-radius:16px;font-size:13.5px;position:relative}.bubble-user{align-self:flex-end;background:#EEF0FF;color:#1E1B4B;border-bottom-right-radius:4px}.bubble-patient{align-self:flex-start;background:var(--bg-page);border:1px solid var(--border-light);color:var(--text-primary);border-bottom-left-radius:4px}.chat-input-bar{display:flex;align-items:center;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid var(--border-subtle)}.mic-toggle-btn{width:42px;height:42px;border-radius:var(--radius-full);background:#EEF2FF;color:var(--brand-violet);display:flex;align-items:center;justify-content:center;transition:all .15s ease}.mic-toggle-btn.recording{background:#FEE2E2;color:#DC2626;animation:pulse 1s infinite}.chat-text-input{flex:1 1;padding:10px 16px;border:1px solid var(--border-light);border-radius:var(--radius-full);font-size:13.5px;outline:none;background:var(--bg-page)}.chat-text-input:focus{border-color:var(--brand-violet);background:#FFFFFF}.chat-send-btn{width:42px;height:42px;border-radius:var(--radius-full);background:var(--brand-violet);color:#FFFFFF;display:flex;align-items:center;justify-content:center}.stepper-container{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-lg);margin-bottom:24px}.stepper-node{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;transition:all .2s ease}.node-done{background:#10B981;color:#FFFFFF}.node-current{background:var(--brand-violet);color:#FFFFFF;box-shadow:0 0 0 4px rgba(91,74,235,.2)}.node-pending{background:var(--bg-subtle);color:var(--text-muted);border:1px solid var(--border-light)}.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.5);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:60;display:flex;align-items:center;justify-content:center;padding:20px}.modal-card{background:var(--bg-card);border-radius:var(--radius-xl);max-width:600px;width:100%;box-shadow:var(--shadow-xl);overflow:hidden;max-height:90vh;display:flex;flex-direction:column}.modal-header{padding:20px 24px;border-bottom:1px solid var(--border-light);display:flex;align-items:center;justify-content:space-between}.modal-body{padding:24px;overflow-y:auto}.modal-footer{padding:16px 24px;border-top:1px solid var(--border-light);display:flex;justify-content:flex-end;gap:12px;background:var(--bg-page)}