@import "https://cdn.jsdelivr.net/npm/pretendard@1.3.9/dist/web/static/pretendard.css";: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;padding:0}#root{text-align:left;box-sizing:border-box;width:100%;max-width:none;min-height:100vh;margin:0;padding:0}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%}.dlg-overlay{z-index:2000;background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dlg-content{background:#fff;border-radius:12px;width:380px;max-width:90vw;padding:24px;box-shadow:0 8px 24px #00000026}.dlg-message{color:#343a40;white-space:pre-line;margin:0 0 20px;font-size:14.5px;line-height:1.6}.dlg-actions{justify-content:flex-end;gap:10px;display:flex}.dlg-btn-cancel,.dlg-btn-confirm{box-sizing:border-box;cursor:pointer;border-radius:8px;height:40px;padding:0 20px;font-size:14px;font-weight:700}.dlg-btn-cancel{color:#343a40;background:#f1f3f5;border:1px solid #ced4da}.dlg-btn-confirm{color:#fff;background:#aa3bff;border:1px solid #0000}.account-modal-overlay{z-index:1000;background-color:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.account-modal-content{background:#fff;border-radius:12px;width:90%;max-width:400px;overflow:hidden;box-shadow:0 10px 25px #00000026}.account-modal-header{background:#f8f9fa;border-bottom:1px solid #dee2e6;justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.account-modal-header h3{color:#343a40;margin:0;font-size:16px}.account-modal-body{padding:24px}.account-summary{border-bottom:1px solid #f1f3f5;align-items:center;gap:14px;margin-bottom:24px;padding-bottom:20px;display:flex}.account-name{color:#212529;font-size:16px;font-weight:700}.account-role{color:#868e96;font-size:13px}.account-form-group{margin-bottom:14px}.account-form-group label{color:#495057;margin-bottom:6px;font-size:13px;font-weight:600;display:block}.account-form-group input{box-sizing:border-box;border:1px solid #ced4da;border-radius:6px;width:100%;padding:10px 12px;font-size:14px}.account-form-group input:focus{border-color:#aa3bff;outline:none}.btn-save-account{color:#fff;cursor:pointer;background-color:#aa3bff;border:none;border-radius:8px;width:100%;margin-top:8px;padding:12px;font-weight:700}.btn-save-account:hover:not(:disabled){background-color:#9333e8}.btn-save-account:disabled{cursor:not-allowed;background-color:#ced4da}.sidebar{background-color:#f8f9fa;border-right:1px solid #e5e4e7;flex-direction:column;width:300px;height:100vh;display:flex;position:sticky;top:0}.sidebar-header{border-bottom:1px solid #e5e4e7;padding:24px}.sidebar-header h1{color:#aa3bff;margin:0;font-size:20px;font-weight:700}.sidebar-nav{flex-direction:column;gap:8px;padding:16px;display:flex}.nav-button{color:#6b6375;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:12px;width:100%;padding:12px 16px;font-size:16px;font-weight:500;transition:all .2s;display:flex}.nav-button:hover{color:#08060d;background-color:#aa3bff0d}.nav-button.active{color:#aa3bff;background-color:#aa3bff1a;font-weight:600}.nav-icon{font-size:18px}.sidebar{flex-direction:column;justify-content:space-between;display:flex}.sidebar-nav{flex-grow:1;overflow-y:auto}.sidebar-footer{border-top:1px solid #e9ecef;padding:20px}.logout-button{color:#fa5252;justify-content:center;width:100%}.logout-button:hover{color:#c92a2a;background-color:#ffe3e3}.admin-profile{background-color:#fff;border:1px solid #e9ecef;border-radius:10px;align-items:center;gap:10px;margin-bottom:10px;padding:10px 12px;display:flex}.admin-avatar{color:#fff;background-color:#aa3bff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:15px;font-weight:700;display:flex}.admin-avatar.large{width:48px;height:48px;font-size:18px}.admin-info{flex:1;min-width:0}.admin-name{color:#212529;white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:700;overflow:hidden}.admin-role{color:#868e96;font-size:12px}.admin-settings-btn{cursor:pointer;color:#868e96;background:0 0;border:none;border-radius:6px;flex-shrink:0;padding:4px 6px;font-size:16px}.admin-settings-btn:hover{color:#495057;background-color:#f1f3f5}.basic-info-section input[type=text],.basic-info-section input[type=number],.basic-info-section select{border:1px solid #dee2e6;border-radius:6px;outline:none;padding:12px;font-size:15px;transition:border-color .2s,box-shadow .2s}.basic-info-section input:focus,.basic-info-section select:focus{border-color:#aa3bff;box-shadow:0 0 0 3px #aa3bff1a}.basic-info-section label{color:#343a40;font-size:.8rem;font-weight:700}.basic-info-section .unit,.basic-info-section span{color:#495057;font-size:14px}.basic-info-section .radio-group label{font-size:14px;font-weight:400}.chart-info-section .vpe-row{align-items:stretch;display:flex}.chart-info-section .vpe-row label{align-items:center;padding-top:0;padding-bottom:0;display:flex}.chart-info-section .vpe-row textarea{resize:none;box-sizing:border-box;background-color:#fff;border:1px solid #dee2e6;border-radius:6px;outline:none;flex:1;min-height:56px;padding:10px 12px;font-family:inherit;font-size:15px;line-height:1.5;transition:border-color .2s,box-shadow .2s}.chart-info-section .vpe-row textarea:focus{border-color:#aa3bff;box-shadow:0 0 0 3px #aa3bff1a}.rubric-info-section{width:100%}.rubric-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.rubric-header .btn-ai-rubric{color:#fff;cursor:pointer;background-color:#aa3bff;border:none;border-radius:8px;padding:10px 18px;font-size:14px;font-weight:700;transition:all .2s}.rubric-header .btn-ai-rubric:hover{background-color:#922ae2}.rubric-header .btn-ai-rubric:disabled{cursor:not-allowed;background-color:#adb5bd}.rubric-groups-container{flex-direction:column;gap:24px;display:flex}.rubric-group{background-color:#fff;border:1px solid #dee2e6;border-radius:8px;overflow:hidden;box-shadow:0 2px 4px #00000005}.rubric-group-header{background-color:#f8f9fa;border-bottom:1px solid #dee2e6;padding:12px 16px}.rubric-group-header h4{color:#343a40;margin:0;font-size:15px;font-weight:700}.rubric-table{border-collapse:collapse;width:100%}.rubric-table td{border-bottom:1px solid #f1f3f5;padding:12px 16px}.rubric-table tr:last-child td{border-bottom:none}.empty-row{text-align:center;color:#adb5bd;font-size:14px;padding:20px!important}.rubric-input{color:#212529;box-sizing:border-box;border:1px solid #0000;border-radius:4px;outline:none;width:100%;padding:8px 12px;font-family:inherit;font-size:14px;transition:border-color .2s}.rubric-input:focus{background-color:#fcfaff;border:1px solid #aa3bff}.btn-delete-rubric{color:#fff;cursor:pointer;background-color:#fa5252;border:none;border-radius:4px;padding:6px 12px;font-size:12px;font-weight:600;transition:background-color .2s}.btn-delete-rubric:hover{background-color:#e03131}.btn-add-item{color:#495057;cursor:pointer;text-align:center;background-color:#fdfdfd;border:none;border-top:1px dashed #dee2e6;width:100%;padding:12px;font-size:13px;font-weight:600;transition:background-color .2s;display:block}.btn-add-item:hover{color:#212529;background-color:#f1f3f5}.csm-overlay{z-index:1000;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.csm-content{background:#fff;border-radius:12px;flex-direction:column;width:560px;max-width:90vw;max-height:80vh;display:flex}.csm-header{border-bottom:1px solid #e9ecef;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.csm-header h3{margin:0;font-size:17px}.csm-body{flex:1;padding:20px 24px;overflow-y:auto}.csm-empty{text-align:center;color:#868e96;padding:30px 0;font-size:14px}.csm-section{margin-bottom:20px}.csm-section h4{color:#495057;border-bottom:1px solid #f1f3f5;margin:0 0 10px;padding-bottom:6px;font-size:14px}.csm-field-change{border-bottom:1px solid #f8f9fa;padding:8px 0}.csm-field-label{color:#343a40;margin-bottom:4px;font-size:13px;font-weight:700;display:block}.csm-field-diff{flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.csm-before{color:#f03e3e;text-decoration:line-through}.csm-after{color:#2f9e44;font-weight:600}.csm-arrow{color:#adb5bd}.csm-rubric-item{background:#f8f9fa;border-radius:6px;align-items:flex-start;gap:8px;margin-bottom:6px;padding:8px 10px;font-size:13px;display:flex}.csm-tag{border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:11px;font-weight:700}.csm-tag-added{color:#2b8a3e;background:#d3f9d8}.csm-tag-removed{color:#c92a2a;background:#ffc9c9}.csm-tag-modified{color:#e67700;background:#ffec99}.csm-footer{border-top:1px solid #e9ecef;justify-content:flex-end;gap:10px;padding:16px 24px;display:flex}.csm-btn-cancel,.csm-btn-submit{box-sizing:border-box;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;height:42px;margin:0;padding:0 20px;font-size:14px;line-height:normal;display:inline-flex}.csm-btn-cancel{color:#343a40;background:#f1f3f5;border:1px solid #ced4da;font-weight:700}.csm-btn-submit{color:#fff;background:#aa3bff;border:1px solid #0000;font-weight:700}.vpe-container{box-sizing:border-box;background-color:#f5f6f8;min-height:100vh;padding:40px 32px}.vpe-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.vpe-header h2{color:#333;margin:0;font-size:22px}.header-buttons button{cursor:pointer;border:none;border-radius:5px;margin-left:10px;padding:10px 20px;font-size:.9rem;font-weight:700}.btn-ai{color:#fff;background-color:#6c5ce7}.btn-save{color:#fff;background-color:#0984e3}.vpe-tabs{border-bottom:2px solid #ddd;margin-bottom:20px;display:flex}.vpe-tabs button{color:#666;cursor:pointer;background:0 0;border:none;padding:10px 20px;font-size:1rem;font-weight:700}.vpe-tabs button.active{color:#2d3436;border-bottom:3px solid #2d3436;margin-bottom:-2px}.vpe-content{background-color:#fff;border-radius:8px;padding:30px;box-shadow:0 2px 10px #0000000d}.vpe-section{margin-bottom:40px}.vpe-section h3{color:#2d3436;border-bottom:1px solid #eee;margin-bottom:20px;padding-bottom:10px;font-size:1.2rem}.section-subtitle{color:#636e72;margin-bottom:15px;font-weight:700}.vpe-grid-table{grid-template-columns:1fr 1fr;gap:15px 30px;display:grid}.vpe-row{background-color:#f9f9f9;border:1px solid #e0e0e0;border-radius:4px;align-items:center;display:flex;overflow:hidden}.vpe-row.full-width{grid-column:1/-1}.vpe-row label{color:#2f3542;background-color:#f1f2f6;border-right:1px solid #e0e0e0;flex-shrink:0;align-items:center;width:150px;padding:12px 15px;font-size:.8rem;font-weight:700;display:flex}.vpe-row label.required:after{content:" *";color:#e84118}.vpe-row input[type=text],.vpe-row input[type=number]{background:0 0;border:none;outline:none;flex:1;padding:12px 15px;font-size:.95rem}.input-with-unit{flex:1;align-items:center;display:flex}.input-with-unit input{flex:1}.input-with-unit span{color:#747d8c;padding:0 15px;font-size:.9rem}.radio-group{flex:1;align-items:center;gap:15px;padding:0 15px;display:flex}.radio-group label{cursor:pointer;background:0 0;border:none;width:auto;padding:0;font-weight:400}.radio-group input{margin-right:5px}.ai-prompt-box{background:linear-gradient(135deg,#f3f0ff 0%,#e0d4ff 100%);border:1px solid #c8b4f8;border-radius:10px;margin-bottom:25px;padding:20px;animation:.3s ease-out forwards slideDown}.ai-prompt-inner{align-items:center;gap:15px;display:flex}.ai-icon{font-size:1.8rem}.ai-prompt-inner input{box-sizing:border-box;border:1px solid #bba3ec;border-radius:30px;outline:none;flex:1;height:40px;padding:0 20px;font-size:.9rem;box-shadow:0 2px 5px #0000000d}.ai-prompt-inner input:focus{border-color:#6c5ce7;box-shadow:0 0 0 3px #6c5ce733}.btn-generate{color:#fff;box-sizing:border-box;cursor:pointer;white-space:nowrap;background-color:#2d3436;border:none;border-radius:30px;justify-content:center;align-items:center;height:40px;padding:0 25px;font-size:.9rem;font-weight:700;display:inline-flex}.btn-generate:hover:not(:disabled){background-color:#000}.btn-generate:disabled{cursor:not-allowed;background-color:#999}.ai-hint{color:#6c5ce7;margin:10px 0 0 50px;font-size:.85rem;font-weight:700}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.font-highlight{color:#6c5ce7!important;background-color:#f3f0ff!important;font-weight:800!important}.font-bold-red{color:#d63031!important;font-weight:700!important}.font-italic{font-style:italic;color:#0984e3!important}.list-container{box-sizing:border-box;background-color:#f4f5f7;min-height:100vh;padding:40px}.list-container h2{color:#1e1e1e;margin:0 0 10px;font-size:22px}.list-desc{color:#6b6375;margin-bottom:30px;font-size:17px}.card-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;display:grid}.patient-card{background:#fff;border:1px solid #e5e4e7;border-radius:12px;flex-direction:column;height:280px;padding:20px;transition:transform .2s,box-shadow .2s;display:flex;box-shadow:0 4px 12px #0000000d}.card-body{flex-direction:column;flex:1;display:flex}.card-actions{gap:10px;margin-top:auto;display:flex}.patient-card:hover{border-color:#aa3bff;transform:translateY(-4px);box-shadow:0 8px 16px #0000001a}.card-header{justify-content:space-between;margin-bottom:15px;display:flex}.badge-id{color:#495057;background:#f1f3f5;border-radius:6px;padding:4px 8px;font-size:12px;font-weight:700}.badge-info{color:#aa3bff;background:#aa3bff1a;border-radius:6px;padding:4px 10px;font-size:13px;font-weight:600}.badge-category{color:#0c8599;white-space:nowrap;text-overflow:ellipsis;background:#e3fafc;border-radius:6px;max-width:90px;padding:3px 8px;font-size:11px;font-weight:600;display:inline-block;overflow:hidden}.cc-title{color:#1e1e1e;-webkit-line-clamp:2;line-clamp:2;text-overflow:ellipsis;-webkit-box-orient:vertical;height:3em;margin:0 0 10px;font-size:16px;line-height:1.5;display:-webkit-box;overflow:hidden}.line-clamp{-webkit-line-clamp:2;line-clamp:2;text-overflow:ellipsis;-webkit-box-orient:vertical;height:2.8em;line-height:1.4;display:-webkit-box;overflow:hidden}.sub-info{color:#6b6375;margin:4px 0;font-size:13px}.card-actions button{cursor:pointer;border:none;border-radius:8px;flex:1;padding:10px;font-weight:600;transition:all .2s}.btn-chat{color:#fff;background-color:#aa3bff}.btn-chat:hover{background-color:#902be3}.btn-edit{color:#495057;background-color:#f1f3f5}.btn-edit:hover{background-color:#e9ecef}.patient-modal-overlay{z-index:1000;background-color:#00000080;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:fixed;top:0;left:0}.patient-modal-content{background:#fff;border-radius:12px;flex-direction:column;width:700px;max-width:90%;max-height:85vh;animation:.2s ease-out modalFadeIn;display:flex;overflow:hidden;box-shadow:0 10px 25px #0003}@keyframes modalFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.patient-modal-header{border-bottom:1px solid #e9ecef;flex-shrink:0;justify-content:space-between;align-items:center;padding:20px 28px;display:flex}.patient-modal-header h3{color:#212529;margin:0;font-size:20px}.btn-close-modal{color:#adb5bd;cursor:pointer;background:0 0;border:none;font-size:28px;line-height:1}.btn-close-modal:hover{color:#495057}.patient-modal-body{flex:1;min-height:0;padding:24px 28px;overflow-y:auto}.patient-modal-body::-webkit-scrollbar{width:6px}.patient-modal-body::-webkit-scrollbar-track{background:0 0}.patient-modal-body::-webkit-scrollbar-thumb{background:#ced4da;border-radius:3px}.pm-info-grid{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px;display:grid}.pm-info-item{background:#f8f9fa;border-left:3px solid #845ef7;border-radius:8px;padding:12px 16px}.pm-info-label{color:#868e96;margin-bottom:4px;font-size:13px;font-weight:600}.pm-info-value{color:#212529;font-size:15px;font-weight:500}.pm-scenario-section{margin-bottom:20px}.pm-scenario-section h4{color:#495057;margin:0 0 8px;font-size:15px}.pm-scenario-box{color:#343a40;white-space:pre-line;background:#fff;border:1px solid #e9ecef;border-radius:8px;padding:16px;font-size:14.5px;line-height:1.6}.sam-overlay{z-index:1000;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.sam-content{background:#fff;border-radius:12px;flex-direction:column;width:90%;max-width:420px;max-height:80vh;display:flex;overflow:hidden;box-shadow:0 10px 25px #00000026}.sam-header{background:#f8f9fa;border-bottom:1px solid #dee2e6;flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.sam-body{padding:20px 24px;overflow-y:auto}.sam-search{box-sizing:border-box;border:1px solid #ced4da;border-radius:6px;width:100%;padding:10px 12px;font-size:14px}.sam-list{border:1px solid #f1f3f5;border-radius:6px;flex-direction:column;gap:4px;height:320px;padding:8px;display:flex;overflow-y:auto}.sam-list-item{cursor:pointer;border-radius:4px;align-items:center;gap:8px;padding:8px 10px;font-size:14px;display:flex}.sam-list-item:hover{background:#f8f9fa}.sam-footer{border-top:1px solid #f1f3f5;flex-shrink:0;padding:16px 24px}.sam-footer .btn-submit{width:100%}.cs-container{box-sizing:border-box;background-color:#f4f5f7;flex-direction:column;height:100vh;padding:40px 32px;display:flex;overflow:hidden}.cs-container h2,.cs-desc{flex-shrink:0;font-size:22px}.cs-desc{color:#6b6375;margin-bottom:16px;font-size:16px}.cs-card{background:#fff;border:1px solid #e5e4e7;border-radius:12px;margin-bottom:20px;padding:24px;box-shadow:0 4px 12px #0000000d}.cs-card h3{color:#1e1e1e;margin-top:0;margin-bottom:20px;font-size:18px}.cs-card.form-card{flex-shrink:0;margin-bottom:16px;padding:20px 24px}.cs-card.list-card{flex-direction:column;flex:1;min-height:0;margin-bottom:0;padding:20px 24px;display:flex}.cs-form{flex-direction:column;gap:18px;display:flex}.form-group input,.form-group select{border:1px solid #dcdbe0;border-radius:8px;outline:none;padding:12px 14px;font-size:15px;transition:all .2s}.form-group input:focus,.form-group select:focus{border-color:#aa3bff}.form-row{gap:16px;display:flex}.flex-1{flex:1}.flex-2{flex:2}.code-input-group{gap:10px;display:flex}.code-input{letter-spacing:2px;text-align:center;background-color:#f8f9fa;width:180px;font-weight:700;color:#aa3bff!important;font-size:16px!important}.btn-refresh{cursor:pointer;color:#495057;background:#f1f3f5;border:1px solid #dcdbe0;border-radius:8px;padding:0 16px;font-weight:600}.btn-refresh:hover{background:#e9ecef}.field-hint{color:#868e96;margin:2px 0 0;font-size:12px}.btn-submit{color:#fff;cursor:pointer;background-color:#aa3bff;border:none;border-radius:8px;margin-top:10px;padding:14px;font-size:16px;font-weight:700;transition:all .2s}.btn-submit:hover{background-color:#902be3}.class-table-wrapper{border:1px solid #e5e4e7;border-radius:10px;flex:1;min-height:0;overflow:auto;box-shadow:inset 0 1px 3px #00000005}.class-table{border-collapse:separate;border-spacing:0;text-align:left;table-layout:fixed;width:100%}.class-table th{color:#495057;z-index:2;white-space:nowrap;background-color:#f8f9fa;border-bottom:2px solid #dee2e6;padding:14px 16px;font-size:14px;font-weight:700;position:sticky;top:0}.class-table th.col-id{text-align:center;width:65px}.class-table td.col-id{text-align:center}.class-table th.col-classname{width:15%}.class-table th.col-teacher{text-align:center;width:70px}.class-table td.col-teacher{text-align:center}.class-table th.col-patient{width:32%}.class-table th.col-period{width:130px}.class-table td.col-period small{white-space:nowrap}.class-table th.col-timelimit{text-align:center;width:70px}.class-table td.col-timelimit{text-align:center}.class-table th.col-students{text-align:center;width:120px}.class-table td.col-students{text-align:center}.class-table th.col-status{text-align:center;width:90px}.class-table th.col-actions{text-align:center;width:56px}.class-table td.col-actions{text-align:center;padding:8px 4px}.class-table td{vertical-align:middle;color:#343a40;border-bottom:1px solid #f1f3f5;padding:16px;font-size:14px}.class-table tbody tr{transition:background-color .15s}.class-table tbody tr:hover{background-color:#faf8ff}.patient-tag{color:#6c5ce7;background-color:#f3f0ff;border-radius:6px;margin-bottom:4px;padding:3px 8px;font-size:12px;font-weight:600;display:inline-block}.class-table td small.text-gray{color:#868e96;white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:13px;display:block;overflow:hidden}.font-bold{color:#212529;font-weight:600}.text-gray{color:#868e96}.patient-tag{color:#6c5ce7;background-color:#f3f0ff;border-radius:4px;padding:2px 8px;font-size:12px;font-weight:600}.code-badge{color:#1971c2;background-color:#e7f5ff;border-radius:6px;padding:4px 10px;font-family:monospace;font-weight:700}.status-badge{border-radius:6px;padding:4px 10px;font-size:12px;font-weight:700}.status-active{color:#0ca678;background-color:#e6fcf5}.status-pending{color:#f59f00;background-color:#fff9db}.status-closed{color:#f03e3e;background-color:#ffe3e3}.list-header{flex-shrink:0;margin-bottom:14px}.list-header h3{margin-bottom:0}.patient-clickable:hover{background-color:#e5dbff;transform:translateY(-1px)}.btn-icon{cursor:pointer;background:#fff;border:1px solid #dee2e6;border-radius:5px;justify-content:center;align-items:center;width:24px;height:24px;font-size:11px;transition:background-color .15s;display:inline-flex}.btn-icon:hover{background-color:#f1f3f5}.btn-icon:disabled{cursor:not-allowed;opacity:.4}.login-container{background-color:#f4f5f7;flex-direction:column;justify-content:center;align-items:center;height:100vh;display:flex}.login-card{text-align:center;background:#fff;border-radius:16px;width:100%;max-width:420px;padding:50px 40px;box-shadow:0 10px 30px #0000000d}.login-title{color:#aa3bff;letter-spacing:-.5px;margin:0 0 16px;font-size:28px;font-weight:800}.login-subtitle{color:#868e96;margin-bottom:32px;font-size:15px}.login-form{flex-direction:column;gap:16px;display:flex}.input-group{background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:10px;align-items:center;padding:0 16px;transition:all .2s;display:flex}.input-group:focus-within{background-color:#fff;border-color:#aa3bff;box-shadow:0 0 0 3px #aa3bff1a}.input-label{text-align:left;color:#495057;width:70px;font-size:14px;font-weight:700}.login-input{color:#212529;background:0 0;border:none;outline:none;flex:1;padding:16px 0;font-size:15px}.login-input::placeholder{color:#adb5bd}.btn-login{color:#fff;cursor:pointer;background-color:#aa3bff;border:none;border-radius:10px;margin-top:12px;padding:16px;font-size:16px;font-weight:700;transition:all .2s}.btn-login:hover{background-color:#902be3}.sd-container{margin:0 auto;padding:0 40px}.sd-header{margin-bottom:24px}.sd-header h2{color:#212529;margin:0 0 10px;font-size:25px;font-weight:800}.sd-header p{color:#868e96;margin:0;font-size:15px}.sd-card{background:#fff;border:1px solid #f1f3f5;border-radius:12px;padding:24px;box-shadow:0 2px 12px #0000000a}.sd-table{border-collapse:collapse;text-align:left;width:100%}.sd-table th{color:#495057;text-align:center;background-color:#f8f9fa;border-bottom:2px solid #dee2e6;padding:16px;font-weight:700}.sd-table td{vertical-align:middle;color:#343a40;text-align:center;border-bottom:1px solid #f1f3f5;padding:16px}.sd-table tbody tr:hover{background-color:#f8f9fa}.sd-badge{border-radius:20px;padding:6px 12px;font-size:13px;font-weight:700;display:inline-block}.sd-badge.active{color:#0ca678;background-color:#e6fcf5}.sd-badge.pending{color:#f59f00;background-color:#fff9db}.sd-badge.closed{color:#f03e3e;background-color:#ffe3e3}.btn-enter,.btn-disabled,.btn-result{text-align:center;box-sizing:border-box;border-radius:8px;width:112px;padding:10px 16px;font-weight:700}.btn-enter{color:#fff;cursor:pointer;background-color:#aa3bff;border:none;transition:all .2s}.btn-enter:hover{background-color:#902be3}.btn-disabled{color:#adb5bd;cursor:not-allowed;background-color:#e9ecef;border:none}.btn-result{color:#fff;cursor:pointer;background-color:#339af0;border:none;transition:all .2s}.btn-result:hover{background-color:#1c7ed6}.list-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.filter-tabs{gap:8px;display:flex}.filter-tabs button{color:#6b6375;cursor:pointer;background-color:#fff;border:1px solid #dcdbe0;border-radius:20px;padding:6px 14px;font-size:13px;font-weight:600;transition:all .2s}.filter-tabs button:hover{color:#1e1e1e;background-color:#f4f5f7}.filter-tabs button.active{color:#fff;background-color:#495057;border-color:#495057}.evaluation-container{margin:0 auto;padding:40px 32px}.evaluation-header{margin-bottom:20px}.evaluation-header h2{color:#212529;margin-bottom:8px;font-size:22px}.evaluation-header p{color:#868e96;font-size:17px}.evaluation-tabs{border-bottom:2px solid #dee2e6;margin-bottom:20px;display:flex}.evaluation-tabs button{color:#adb5bd;cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;margin-bottom:-2px;padding:8px 16px;font-size:18px;font-weight:600;transition:all .2s}.evaluation-tabs button:hover{color:#495057}.evaluation-tabs button.active{color:#aa3bff;border-bottom:3px solid #aa3bff}.table-wrapper{background-color:#fff;border:1px solid #dee2e6;border-radius:8px;overflow:hidden;box-shadow:0 2px 4px #00000005}.results-table{border-collapse:collapse;width:100%}.results-table th{text-align:center;color:#495057;white-space:nowrap;background-color:#f8f9fa;border-bottom:1px solid #dee2e6;padding:14px 12px;font-size:15px;font-weight:700}.results-table td{color:#343a40;vertical-align:middle;text-align:center;border-bottom:1px solid #f1f3f5;padding:14px 12px;font-size:14px;line-height:1.4}.results-table tr:hover td{background-color:#fdfcff}.search-bar{background-color:#fcfcfc;border-bottom:1px solid #dee2e6;gap:8px;padding:12px 16px;display:flex}.search-bar input{border:1px solid #ced4da;border-radius:6px;outline:none;flex:1;padding:8px 12px;font-size:16px}.search-bar input:focus{border-color:#aa3bff}.empty-text,.loading-text{text-align:center;color:#868e96;padding:40px;font-size:13px}.btn-detail{color:#7026b9;cursor:pointer;white-space:nowrap;background-color:#e5d9f2;border:none;border-radius:4px;padding:6px 10px;font-size:12px;font-weight:700;transition:background-color .2s}.btn-detail:hover{background-color:#d1bced}.score-badge{color:#856404;background-color:#fff3cd;border-radius:12px;padding:2px 8px;font-size:12px;font-weight:700;display:inline-block}.class-split-layout{flex-direction:column;gap:20px;display:flex}.split-pane{flex:1;min-width:0;max-height:45vh;overflow-y:auto}.split-pane-header{color:#343a40;background-color:#f8f9fa;border-bottom:1px solid #dee2e6;padding:14px 16px;font-weight:700}.results-table tr.row-selected td{background-color:#f3e8ff}.split-pane .results-table thead th{z-index:1;position:sticky;top:0}.modal-overlay{z-index:1000;background-color:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-overlay.z-top{z-index:1100}.modal-box{background:#fff;border-radius:12px;flex-direction:column;width:90%;max-height:85vh;display:flex;overflow:hidden;box-shadow:0 10px 25px #00000026}.modal-box.medium{max-width:700px}.modal-box.large{max-width:1000px}.modal-header{background:#f8f9fa;border-bottom:1px solid #dee2e6;justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.modal-header h3{color:#343a40;margin:0;font-size:16px}.btn-close{cursor:pointer;color:#868e96;background:0 0;border:none;font-size:18px}.modal-body{padding:20px;overflow-y:auto}.overview-card{background:#fdfcff;border:1px solid #e5d9f2;border-radius:8px;margin-bottom:16px;padding:16px}.info-grid{grid-template-columns:1fr 1fr;gap:8px;margin-top:8px;font-size:13px;display:grid}.score-text{color:#aa3bff;font-size:15px;font-weight:700}.report-columns{grid-template-columns:1fr 1.2fr;gap:16px;display:grid}.report-card{border:1px solid #dee2e6;border-radius:8px;padding:16px}.report-card h4{color:#495057;margin-top:0;margin-bottom:12px;font-size:14px}.chat-box{flex-direction:column;gap:10px;max-height:350px;display:flex;overflow-y:auto}.chat-bubble{border-radius:8px;max-width:85%;padding:8px 12px;font-size:12px;line-height:1.4}.chat-bubble.student{background:#e5d9f2;align-self:flex-start}.chat-bubble.patient{background:#f1f3f5;align-self:flex-end}.sender-label{color:#6c757d;margin-bottom:2px;font-size:10px;font-weight:700;display:block}.mini-table{border-collapse:collapse;width:100%;font-size:12px}.mini-table th,.mini-table td{text-align:center;border-bottom:1px solid #f1f3f5;padding:8px}.tag.pass{color:#2b8a3e;font-weight:700}.tag.fail{color:#c92a2a;font-weight:700}.print-option-overlay{z-index:1000;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.print-option-box{background:#fff;border-radius:10px;width:280px;padding:24px}.print-option-box h3{margin:0 0 16px;font-size:16px}.print-option-item{cursor:pointer;align-items:center;gap:8px;margin-bottom:10px;font-size:14px;display:flex}.print-option-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.print-option-actions button{cursor:pointer;background:#fff;border:1px solid #ced4da;border-radius:6px;padding:8px 14px}.print-option-actions .btn-primary-solid{color:#fff;background:#845ef7;border:none;font-weight:600}@media print{.print-option-overlay{display:none!important}}.scriptary-container{box-sizing:border-box;background-color:#f4f5f7;flex-direction:column;height:100vh;padding:16px 24px;display:flex}.scriptary-header{flex-shrink:0;justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.header-left{align-items:center;gap:12px;display:flex}.back-btn{cursor:pointer;color:#495057;background:0 0;border:none;font-size:28px;line-height:1}.header-left h2{color:#212529;margin:0;font-size:20px}.submit-date{color:#868e96;font-size:14px}.btn-secondary{cursor:pointer;background-color:#fff;border:1px solid #ced4da;border-radius:6px;padding:8px 16px;font-size:14px;font-weight:600}.scriptary-grid{flex:1;grid-template-columns:280px 1fr 450px;gap:20px;display:grid;overflow:hidden}.col-left,.col-middle,.col-right{flex-direction:column;gap:16px;height:100%;display:flex;overflow:hidden}.card{background:#fff;border:1px solid #e9ecef;border-radius:8px;flex-direction:column;flex-shrink:0;padding:20px;display:flex;box-shadow:0 1px 3px #00000005}.card-title{color:#212529;border-bottom:1px solid #e9ecef;margin-bottom:16px;padding-bottom:10px;padding-left:10px;font-size:17px;font-weight:700;position:relative}.card-title:before{content:"";background-color:#845ef7;border-radius:2px;width:4px;position:absolute;top:0;bottom:10px;left:0}.circle-score{border:10px solid #228be6;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:120px;height:120px;margin:0 auto 24px;display:flex}.score-num{color:#212529;font-size:28px;font-weight:800}.score-sub{color:#868e96;margin-top:4px;font-size:14px}.progress-item{margin-bottom:12px}.prog-info{color:#495057;justify-content:space-between;margin-bottom:6px;font-size:14px;font-weight:600;display:flex}.prog-percent{color:#228be6;font-weight:700}.bar-bg{background:#f1f3f5;border-radius:4px;height:8px;overflow:hidden}.bar-fill{background:#228be6;border-radius:4px;height:100%}.patient-info-card{flex-shrink:0}.patient-summary{color:#495057;margin-bottom:16px;font-size:15px;line-height:1.6}.vitals-grid{background:#f8f9fa;border-radius:6px;grid-template-columns:repeat(3,1fr);gap:10px;padding:12px;font-size:14px;display:grid}.vitals-grid span{color:#868e96;margin-bottom:2px;display:block}.chat-card{flex:1;min-height:0;overflow:hidden}.chat-stream{flex-direction:column;flex:1;gap:16px;padding-right:8px;display:flex;overflow-y:auto}.chat-bubble-row{flex-direction:column;gap:6px;display:flex}.chat-bubble-row.student{align-items:flex-end}.chat-bubble-row.patient{align-items:flex-start}.bubble-label{color:#868e96;font-size:13px;font-weight:700}.bubble-text{border-radius:12px;max-width:85%;padding:12px 16px;font-size:15px;line-height:1.5}.chat-bubble-row.student .bubble-text{color:#fff;background:#212529}.chat-bubble-row.patient .bubble-text{color:#212529;background:#e9ecef}.chat-stream::-webkit-scrollbar{width:6px}.rubric-items-list::-webkit-scrollbar{width:6px}.chat-stream::-webkit-scrollbar-track{background:0 0}.rubric-items-list::-webkit-scrollbar-track{background:0 0}.chat-stream::-webkit-scrollbar-thumb{background:#ced4da;border-radius:3px}.rubric-items-list::-webkit-scrollbar-thumb{background:#ced4da;border-radius:3px}.soap-card{flex:1;min-height:0;overflow:hidden}.soap-content{flex:1;min-height:0;padding-right:8px;overflow-y:auto}.soap-content p{color:#343a40;margin-bottom:8px;font-size:14px;line-height:1.6}.evidence-highlight{transition:box-shadow .3s;box-shadow:0 0 0 3px #f59f00,0 4px 14px #f59f0059}@keyframes evidence-flash{0%{background-color:#fff3bf}to{background-color:#0000}}.rubric-card,.feedback-card{flex:1;min-height:0;overflow:hidden}.rubric-tabs{scrollbar-width:none;-ms-overflow-style:none;border-bottom:1px solid #dee2e6;flex-shrink:0;gap:4px;margin-bottom:16px;display:flex;overflow-x:auto}.rubric-tabs::-webkit-scrollbar{display:none}.rubric-tabs button{color:#868e96;cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:8px 10px;font-size:14px}.rubric-tabs button.active{color:#228be6;border-bottom:2px solid #228be6;font-weight:700}.rubric-items-list{flex:1;padding-right:8px;overflow-y:auto}.rubric-item{border-radius:6px;margin-bottom:8px;padding:12px 14px;font-size:14px;line-height:1.5}.rubric-item.pass{color:#1864ab;background:#e7f5ff;border-left:4px solid #228be6}.rubric-item.fail{color:#c92a2a;background:#fff5f5;border-left:4px solid #fa5252}.overall-text{color:#495057;flex:1;margin:0;padding-right:8px;font-size:14px;line-height:1.6;overflow-y:auto}.overall-text::-webkit-scrollbar{width:6px}.overall-text::-webkit-scrollbar-track{background:0 0}.overall-text::-webkit-scrollbar-thumb{background:#ced4da;border-radius:3px}@media print{.sidebar,.back-btn,.header-right{display:none!important}.scriptary-container{height:auto;overflow:visible}.scriptary-grid{height:auto;display:block;overflow:visible}.col-left,.col-middle,.col-right{height:auto;margin-bottom:16px;overflow:visible}.chat-card,.rubric-card,.feedback-card{flex:none;overflow:visible}.chat-stream,.rubric-items-list,.overall-text{height:auto;max-height:none;overflow:visible}.card-title{break-after:avoid;page-break-after:avoid}.patient-info-card,.soap-card,.score-card,.chat-bubble-row,.rubric-item{break-inside:avoid;page-break-inside:avoid}}.exam-room-container{background-color:#f8f9fa;flex-direction:column;height:100vh;display:flex;overflow:hidden}.exam-body{flex:1;display:flex;overflow:hidden}.exam-header{background-color:#fff;border-bottom:1px solid #dee2e6;justify-content:space-between;align-items:center;padding:16px 24px;display:flex;position:relative;box-shadow:0 2px 4px #00000005}.patient-summary{align-items:center;gap:10px;font-size:18px;display:flex}.patient-summary .badge{color:#0b7285;background-color:#e3fafc;border-radius:4px;padding:4px 8px;font-size:12px;font-weight:700}.timer{color:#495057;font-size:18px;font-weight:700;position:absolute;left:50%;transform:translate(-50%)}.timer span.warning{color:#fa5252;animation:1s infinite blink}.btn-finish{color:#fff;cursor:pointer;background-color:#343a40;border:none;border-radius:6px;padding:8px 16px;font-weight:700}.chat-window{flex-direction:column;flex:1;gap:16px;padding:24px;display:flex;overflow-y:auto}.chat-bubble-wrapper{align-items:flex-start;gap:10px;width:100%;display:flex}.chat-bubble-wrapper.student{justify-content:flex-end}.chat-bubble-wrapper.patient{justify-content:flex-start}.chat-bubble-wrapper.system{justify-content:center;margin:10px 0}.profile-icon{background:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:24px;display:flex;box-shadow:0 2px 6px #00000014}.msg-content-area{flex-direction:column;max-width:65%;display:flex}.chat-bubble-wrapper.student .msg-content-area{align-items:flex-end}.sender-name{color:#495057;margin-bottom:6px;font-size:13px;font-weight:600}.bubble-time-group{align-items:flex-end;gap:8px;display:flex}.msg-time{color:#adb5bd;white-space:nowrap;font-size:11px}.chat-bubble{border-radius:14px;padding:12px 16px;font-size:16px;line-height:1.5;box-shadow:0 1px 2px #0000000d}.chat-bubble.student{color:#fff;background-color:#845ef7;border-top-right-radius:4px}.chat-bubble.patient{color:#212529;background-color:#fff;border-top-left-radius:4px}.chat-bubble.system{color:#868e96;box-shadow:none;text-align:center;background-color:#0000;padding:0;font-size:14px}.chat-input-area{background-color:#fff;border-top:1px solid #dee2e6;align-items:center;gap:12px;padding:16px 24px;display:flex}.btn-mic{cursor:pointer;background:#f1f3f5;border:none;border-radius:50%;width:44px;height:44px;font-size:20px;transition:all .2s}.btn-mic:hover{background:#e9ecef}.text-input{resize:none;border:1px solid #ced4da;border-radius:8px;flex:1;height:44px;padding:10px 16px;font-family:inherit;font-size:16px}.text-input:focus{border-color:#845ef7;outline:none}.btn-send{color:#fff;cursor:pointer;background-color:#845ef7;border:none;border-radius:8px;height:44px;padding:0 20px;font-weight:700}@keyframes blink{50%{opacity:.5}}.badge.pending{color:#495057;background-color:#f1f3f5}.badge.active{color:#0b7285;background-color:#e3fafc}.start-screen{color:#495057;text-align:center;flex-direction:column;justify-content:center;align-items:center;height:100%;display:flex}.start-screen h2{color:#212529;margin-bottom:10px;font-size:22px}.start-screen p{color:#868e96;margin-bottom:30px;font-size:15px}.btn-start-exam{color:#fff;cursor:pointer;background-color:#845ef7;border:none;border-radius:12px;padding:16px 32px;font-size:20px;font-weight:700;transition:all .2s;box-shadow:0 4px 12px #845ef74d}.btn-start-exam:hover{background-color:#7048e8;transform:translateY(-2px)}.btn-finish:disabled,.btn-mic:disabled,.text-input:disabled,.btn-send:disabled{opacity:.5;cursor:not-allowed;background-color:#f8f9fa}.chat-section{flex-direction:column;flex:1;display:flex;overflow:hidden}.soap-panel{background-color:#fff;border:1px solid #dee2e6;border-radius:12px;flex-direction:column;width:450px;margin:16px 24px 16px 0;animation:.3s ease-out slideInRight;display:flex;box-shadow:0 4px 16px #0000000d}.soap-header{border-bottom:1px solid #dee2e6;padding:20px 24px}.soap-header h3{color:#212529;margin:0 0 8px;font-size:18px}.soap-header p{color:#868e96;margin:0;font-size:14px}.soap-content{flex-direction:column;flex:1;gap:16px;padding:20px 24px;display:flex;overflow-y:auto}.soap-field{flex-direction:column;gap:8px;display:flex}.soap-field label{color:#495057;font-size:14px;font-weight:700}.soap-field textarea{resize:vertical;box-sizing:border-box;border:1px solid #ced4da;border-radius:8px;width:100%;height:100px;padding:12px;font-family:inherit;font-size:14px;line-height:1.5}.soap-field textarea:focus{border-color:#845ef7;outline:none;box-shadow:0 0 0 3px #845ef71a}.soap-footer{background-color:#fff;border-top:1px solid #dee2e6;border-bottom-right-radius:12px;border-bottom-left-radius:12px;padding:16px 24px}.btn-submit-exam{color:#fff;cursor:pointer;background-color:#343a40;border:none;border-radius:8px;width:100%;padding:14px 0;font-size:16px;font-weight:700;transition:all .2s}.btn-submit-exam:hover{background-color:#212529}@keyframes slideInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.sr-container{box-sizing:border-box;background-color:#f8f9fa;flex-direction:column;height:100vh;padding:24px 32px;display:flex}.sr-header{flex-shrink:0;justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.sr-header-left h2{color:#212529;margin:0 0 4px;font-size:24px;font-weight:600}.sr-header-left p{color:#868e96;margin:0;font-size:14px}.sr-score-badge{color:#fff;background:linear-gradient(135deg,#845ef7 0%,#5c3ce0 100%);border-radius:12px;padding:12px 24px;font-size:20px;font-weight:800;box-shadow:0 4px 12px #845ef74d}.sr-grid{flex:1;grid-template-columns:1fr 400px;gap:24px;display:grid;overflow:hidden}.sr-col-main,.sr-col-side{flex-direction:column;gap:20px;height:100%;padding-right:8px;display:flex;overflow-y:auto}.sr-col-main::-webkit-scrollbar{width:6px}.sr-col-side::-webkit-scrollbar{width:6px}.sr-chat-stream::-webkit-scrollbar{width:6px}.sr-col-main::-webkit-scrollbar-track{background:0 0}.sr-col-side::-webkit-scrollbar-track{background:0 0}.sr-chat-stream::-webkit-scrollbar-track{background:0 0}.sr-col-main::-webkit-scrollbar-thumb{background:#ced4da;border-radius:3px}.sr-col-side::-webkit-scrollbar-thumb{background:#ced4da;border-radius:3px}.sr-chat-stream::-webkit-scrollbar-thumb{background:#ced4da;border-radius:3px}.sr-card{background:#fff;border:1px solid #e9ecef;border-radius:12px;flex-shrink:0;padding:24px;box-shadow:0 2px 8px #00000005}.sr-card-title{color:#343a40;align-items:center;gap:8px;margin-bottom:20px;font-size:18px;font-weight:700;display:flex}.sr-feedback-section{background-color:#f8f9fa;border-left:4px solid #845ef7;border-radius:8px;margin-bottom:12px;padding:16px}.sr-feedback-title{color:#495057;margin-bottom:8px;font-size:15px;font-weight:700}.sr-feedback-content{color:#343a40;word-break:keep-all;font-size:14.5px;line-height:1.6}.sr-chart-container{width:100%;height:320px;margin-top:4px;overflow:hidden}.sr-missed-item{scroll-snap-align:start;background:#fff5f5;border:1px solid #ffe3e3;border-left:4px solid #fa5252;border-radius:8px;margin-bottom:12px;padding:16px}.sr-missed-header{color:#c92a2a;justify-content:space-between;margin-bottom:8px;font-weight:600;display:flex}.sr-missed-reason{color:#495057;background:#fff;border-radius:6px;margin-top:8px;padding:12px;font-size:14px}.sr-soap-box{max-height:300px;padding-right:10px;overflow-y:auto}.sr-soap-box p{color:#343a40;margin-bottom:10px;font-size:14.5px;line-height:1.6}.sr-soap-box strong{color:#845ef7;margin-right:6px}.sr-chat-stream{flex-direction:column;flex:1;gap:16px;min-height:0;display:flex;overflow-y:auto}.sr-chat-row{flex-direction:column;gap:6px;display:flex}.sr-chat-row.student{align-items:flex-end}.sr-chat-row.patient{align-items:flex-start}.sr-bubble-label{color:#868e96;font-size:12px;font-weight:600}.sr-bubble-text{border-radius:12px;max-width:85%;padding:12px 16px;font-size:14px;line-height:1.5}.sr-chat-row.student .sr-bubble-text{color:#fff;background:#845ef7}.sr-chat-row.patient .sr-bubble-text{color:#212529;background:#f1f3f5}.sr-feedback-container{max-height:260px;padding-right:12px;overflow-y:auto}.sr-category-scores{flex-direction:column;gap:14px;margin-top:16px;padding:0 10px;display:flex}.sr-progress-row{color:#495057;justify-content:space-between;margin-bottom:6px;font-size:14px;font-weight:600;display:flex}.sr-progress-bar-bg{background:#f1f3f5;border-radius:3px;height:6px;overflow:hidden}.sr-progress-bar-fill{background:#845ef7;border-radius:3px;height:100%;transition:width .5s}.sr-missed-card{flex-direction:column;flex:1;min-height:0;display:flex}.sr-missed-tabs{border-bottom:1px solid #dee2e6;flex-shrink:0;gap:4px;margin-bottom:16px;display:flex;overflow-x:auto}.sr-missed-tabs button{color:#868e96;cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:8px 12px;font-size:14px}.sr-missed-tabs button.active{color:#fa5252;border-bottom:2px solid #fa5252;font-weight:700}.sr-missed-list{scroll-snap-type:y proximity;flex:1;padding-right:8px;overflow-y:auto}.sr-btn-print{cursor:pointer;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:8px;padding:12px 20px;font-size:15px;font-weight:600}.sr-btn-print:hover{background-color:#f8f9fa}@media print{@page{margin:24px 32px}.student-top-bar,.sr-btn-print,.print-hide{display:none!important}.sr-chart-container{height:420px;margin-bottom:16px;overflow:visible}.sr-category-scores{margin-top:60px!important}.sr-feedback-container,.sr-chat-stream,.sr-missed-list,.sr-soap-box{max-height:none;overflow:visible}.sr-header{align-items:flex-start}.sr-score-badge{white-space:nowrap;flex-shrink:0;padding:8px 16px;font-size:16px}.sr-container{height:auto;overflow:visible}.sr-grid{height:auto;display:block;overflow:visible}.sr-col-main,.sr-col-side{height:auto;margin-bottom:16px;display:block;overflow:visible}.sr-col-side,.sr-chat-card{break-before:page;page-break-before:always}.sr-col-main>.sr-card,.sr-col-side>.sr-card{margin-bottom:20px}.sr-split-row{display:block!important}.sr-split-row .sr-card{margin-bottom:16px}.sr-card-title{break-after:avoid;page-break-after:avoid}.sr-category-item,.sr-missed-item,.sr-chat-row{break-inside:avoid;page-break-inside:avoid}.sr-chat-stream{display:block}.sr-chat-row{margin-bottom:16px;display:block}.sr-chat-row:last-child{margin-bottom:0}.sr-chat-row.student{text-align:right}.sr-chat-row.patient{text-align:left}.sr-bubble-label{margin-bottom:4px;display:block}.sr-bubble-text{text-align:left;display:inline-block}.sr-competency-card,.sr-soap-card,.sr-soap-box{break-inside:avoid;page-break-inside:avoid}}.sr-feedback-container::-webkit-scrollbar{width:6px}.sr-missed-list::-webkit-scrollbar{width:6px}.sr-feedback-container::-webkit-scrollbar-track{background:0 0}.sr-missed-list::-webkit-scrollbar-track{background:0 0}.sr-feedback-container::-webkit-scrollbar-thumb{background:#ced4da;border-radius:3px}.sr-missed-list::-webkit-scrollbar-thumb{background:#ced4da;border-radius:3px}.um-container{padding:40px 32px}.um-header{margin-bottom:20px}.um-header h2{color:#212529;margin:0 0 6px;font-size:22px}.um-header p{color:#868e96;margin:0}.um-card{background:#fff;border:1px solid #e9ecef;border-radius:10px;margin-bottom:20px;padding:20px}.um-card-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.um-card-header h3{color:#343a40;margin:0;font-size:16px}.um-hint{color:#868e96;margin:0 0 16px;font-size:13px}.um-table{border-collapse:collapse;width:100%}.um-table th{text-align:center;color:#495057;background:#f8f9fa;border-bottom:1px solid #dee2e6;padding:10px 12px;font-size:13px}.um-table td{text-align:center;border-bottom:1px solid #f1f3f5;padding:10px 12px;font-size:14px}.um-row-error{background-color:#fff5f5}.um-role-badge{border-radius:12px;padding:3px 10px;font-size:12px;font-weight:700}.um-role-badge.student{color:#1971c2;background:#e7f5ff}.um-role-badge.evaluator{color:#7026b9;background:#e5d9f2}.um-role-badge.admin{color:#997404;background:#fff3bf}.um-btn-primary{color:#fff;cursor:pointer;background:#aa3bff;border:none;border-radius:6px;padding:8px 16px;font-weight:700}.um-btn-secondary{color:#495057;cursor:pointer;background:#f1f3f5;border:none;border-radius:6px;padding:8px 16px;font-weight:700}.um-btn-small{cursor:pointer;background:#fff;border:1px solid #dee2e6;border-radius:4px;margin:0 3px;padding:4px 10px;font-size:12px}.um-btn-small.danger{color:#e03131;border-color:#ffc9c9}.um-modal-overlay{z-index:1000;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.um-modal-content{background:#fff;border-radius:12px;width:90%;max-width:400px;overflow:hidden;box-shadow:0 10px 25px #00000026}.um-modal-header{background:#f8f9fa;border-bottom:1px solid #dee2e6;justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.um-form{padding:24px}.um-form-group{margin-bottom:14px}.um-form-group label{color:#495057;margin-bottom:6px;font-size:13px;font-weight:600;display:block}.um-form-group input,.um-form-group select{box-sizing:border-box;border:1px solid #ced4da;border-radius:6px;width:100%;padding:10px 12px;font-size:14px}.um-filter-tabs{gap:8px;margin-bottom:16px;display:flex}.um-filter-tabs button{color:#868e96;cursor:pointer;background:#fff;border:1px solid #dee2e6;border-radius:20px;padding:6px 16px;font-size:13px;font-weight:600}.um-filter-tabs button.active{color:#fff;background:#aa3bff;border-color:#aa3bff}.um-body{flex-direction:column;gap:20px;display:flex}.um-list-card{max-height:55vh;overflow-y:auto}.um-excel-card{max-height:40vh;overflow-y:auto}.fpm-overlay{z-index:1000;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.fpm-content{background:#fff;border-radius:12px;flex-direction:column;width:700px;max-width:90vw;max-height:80vh;display:flex}.fpm-header{border-bottom:1px solid #e9ecef;justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.fpm-header h3{color:#343a40;word-break:break-all;margin:0;font-size:16px}.fpm-length{color:#868e96;flex-shrink:0;margin-left:12px;font-size:12px}.fpm-body{color:#495057;white-space:pre-wrap;word-break:break-word;flex:1;margin:0;padding:20px 24px;font-size:13.5px;line-height:1.6;overflow-y:auto}.fpm-footer{border-top:1px solid #e9ecef;justify-content:flex-end;padding:14px 24px;display:flex}.fpm-btn-close{color:#495057;cursor:pointer;background:#f1f3f5;border:1px solid #dcdbe0;border-radius:8px;height:38px;padding:0 20px;font-weight:600}.cat-container{box-sizing:border-box;background-color:#f4f5f7;flex-direction:column;height:100vh;padding:40px;display:flex;overflow:hidden}.cat-container h2{margin-bottom:4px;font-size:22px}.cat-desc{color:#6b6375;margin-bottom:20px;font-size:15px}.cat-body{flex:1;gap:20px;min-height:0;display:flex}.cat-card{background:#fff;border:1px solid #e5e4e7;border-radius:12px;margin-bottom:20px;padding:24px;box-shadow:0 4px 12px #0000000d}.cat-card.form-card{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow-y:auto}.cat-card.form-card h3,.cat-card.list-card h3{margin:0 0 16px;font-size:17px}.cat-card.list-card{flex-direction:column;flex:0 0 620px;min-height:0;display:flex;overflow:hidden}.cat-form{flex-direction:column;flex:1;gap:16px;min-height:0;display:flex}.form-group-grow{flex:1;min-height:0}.cat-btn-clear-content{color:#868e96;cursor:pointer;background:0 0;border:none;padding:0;font-size:12.5px;text-decoration:underline}.cat-btn-clear-content:hover{color:#495057}.form-group-grow textarea{flex:1;min-height:80px}.form-actions{flex-shrink:0}.form-group{flex-direction:column;gap:8px;display:flex}.form-group label{color:#333;font-size:14px;font-weight:600}.form-group input,.form-group textarea{resize:vertical;border:1px solid #dcdbe0;border-radius:8px;outline:none;padding:12px 14px;font-family:inherit;font-size:15px}.form-group input:focus,.form-group textarea:focus{border-color:#aa3bff}.form-actions{justify-content:flex-end;gap:10px;display:flex}.cat-btn-submit{color:#fff;cursor:pointer;background-color:#aa3bff;border:1px solid #0000;border-radius:8px;padding:12px 24px;font-weight:700}.cat-btn-submit:hover{background-color:#902be3}.cat-btn-cancel{cursor:pointer;color:#495057;background:#f1f3f5;border:1px solid #dcdbe0;border-radius:8px;padding:12px 24px;font-weight:600}.cat-card-grid{flex:1;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:18px;padding:8px 6px 6px;display:grid;overflow-y:auto}.cat-item-card{z-index:1;background:#fff;border:1px solid #e5e4e7;border-radius:12px;flex-direction:column;min-width:0;height:220px;padding:18px;transition:transform .2s,box-shadow .2s;display:flex;position:relative;box-shadow:0 4px 12px #0000000d}.cat-item-card:hover{z-index:2;transform:translateY(-4px);box-shadow:0 0 0 2px #aa3bff,0 8px 16px #00000026}.cat-item-card-active{background-color:#faf5ff;border-color:#aa3bff;box-shadow:0 0 0 2px #aa3bff40}.cat-card-header{flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:10px;display:flex}.cat-file-badges{flex-shrink:0;gap:2px;display:flex}.cat-file-badge{white-space:nowrap;border-radius:4px;padding:2px 5px;font-size:9px;font-weight:700}.cat-badge-name{color:#0c8599;white-space:nowrap;text-overflow:ellipsis;background:#e3fafc;border-radius:6px;max-width:100%;padding:5px 12px;font-size:14px;font-weight:700;display:inline-block;overflow:hidden}.cat-card-body{flex:1;overflow:hidden}.cat-content-preview{color:#6b6375;-webkit-line-clamp:5;line-clamp:5;text-overflow:ellipsis;white-space:pre-line;overflow-wrap:break-word;word-break:break-word;-webkit-box-orient:vertical;margin:0;font-size:13.5px;line-height:1.5;display:-webkit-box;overflow:hidden}.cat-card-actions{gap:8px;margin-top:auto;padding-top:12px;display:flex}.cat-card-actions button{cursor:pointer;border:none;border-radius:8px;flex:1;padding:8px;font-size:13px;font-weight:600}.cat-btn-edit{color:#495057;background:#f1f3f5}.cat-btn-edit:hover{background:#e9ecef}.cat-btn-remove{color:#f03e3e;background:#ffe3e3}.cat-btn-remove:hover{background:#ffc9c9}.empty-state{text-align:center;color:#868e96;padding:40px}.cat-file-hint{color:#868e96;margin:4px 0 0;font-size:13px}.cat-file-upload-btn{color:#495057;cursor:pointer;background:#f1f3f5;border:1px solid #dcdbe0;border-radius:8px;padding:10px 16px;font-size:13px;font-weight:600;display:inline-block}.cat-file-upload-btn:hover{background:#e9ecef}.cat-file-select-status{color:#868e96;margin-left:10px;font-size:13px}.cat-file-list{flex-direction:column;gap:8px;max-height:200px;margin-top:12px;display:flex;overflow-y:auto}.cat-file-item{border:1px solid #e5e4e7;border-radius:8px;overflow:hidden}.cat-file-item-header{cursor:pointer;color:#495057;background:#f8f6fc;justify-content:space-between;align-items:center;padding:10px 14px;font-size:13.5px;display:flex}.cat-file-delete-btn{color:#f03e3e;cursor:pointer;background:#ffe3e3;border:none;border-radius:6px;padding:4px 10px;font-size:12px;font-weight:600}.cat-file-preview{color:#6b6375;white-space:pre-wrap;word-break:break-word;background:#fff;border-top:1px solid #e5e4e7;max-height:200px;margin:0;padding:12px 14px;font-size:12.5px;overflow-y:auto}.form-group input[type=file]{font-size:13px}body,button,input,textarea,select{font-family:Pretendard,-apple-system,BlinkMacSystemFont,system-ui,Roboto,Helvetica Neue,Segoe UI,Apple SD Gothic Neo,Noto Sans KR,Malgun Gothic,sans-serif}.app-container{min-height:100vh;display:flex}.main-content{background-color:#fff;flex:1;height:100vh;overflow-y:auto}.temp-page{text-align:center;color:#6b6375;padding:40px}.counter{color:var(--accent);background:var(--accent-bg);border:2px solid #0000;border-radius:5px;margin-bottom:24px;padding:5px 10px;font-size:16px;transition:border-color .3s}.counter:hover{border-color:var(--accent-border)}.counter:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.hero{position:relative}.hero .base,.hero .framework,.hero .vite{margin:0 auto;inset-inline:0}.hero .base{z-index:0;width:170px;position:relative}.hero .framework,.hero .vite{position:absolute}.hero .framework{z-index:1;height:28px;top:34px;transform:perspective(2000px)rotate(300deg)rotateX(44deg)rotateY(39deg)scale(1.4)}.hero .vite{z-index:0;width:auto;height:26px;top:107px;transform:perspective(2000px)rotate(300deg)rotateX(40deg)rotateY(39deg)scale(.8)}#center{flex-direction:column;flex-grow:1;place-content:center;place-items:center;gap:25px;display:flex}@media (width<=1024px){#center{gap:18px;padding:32px 20px 24px}}#next-steps{border-top:1px solid var(--border);text-align:left;display:flex}#next-steps>div{flex:1 1 0;padding:32px}@media (width<=1024px){#next-steps>div{padding:24px 20px}}#next-steps .icon{width:22px;height:22px;margin-bottom:16px}@media (width<=1024px){#next-steps{text-align:center;flex-direction:column}}#docs{border-right:1px solid var(--border)}@media (width<=1024px){#docs{border-right:none;border-bottom:1px solid var(--border)}}#next-steps ul{gap:8px;margin:32px 0 0;padding:0;list-style:none;display:flex}#next-steps ul .logo{height:18px}#next-steps ul a{color:var(--text-h);background:var(--social-bg);border-radius:6px;align-items:center;gap:8px;padding:6px 12px;font-size:16px;text-decoration:none;transition:box-shadow .3s;display:flex}#next-steps ul a:hover{box-shadow:var(--shadow)}#next-steps ul a .button-icon{width:18px;height:18px}@media (width<=1024px){#next-steps ul{flex-wrap:wrap;justify-content:center;margin-top:20px}#next-steps ul li{flex:calc(50% - 8px)}#next-steps ul a{box-sizing:border-box;justify-content:center;width:100%}}#spacer{border-top:1px solid var(--border);height:88px}@media (width<=1024px){#spacer{height:48px}}.ticks{width:100%;position:relative}.ticks:before,.ticks:after{content:"";border:5px solid #0000;position:absolute;top:-4.5px}.ticks:before{border-left-color:var(--border);left:0}.ticks:after{border-right-color:var(--border);right:0}@media print{.main-content{height:auto!important;overflow:visible!important}.app-container{min-height:auto!important;display:block!important}}
