:root{--vt-c-white:#fff;--vt-c-white-soft:#f8f8f8;--vt-c-white-mute:#f2f2f2;--vt-c-black:#181818;--vt-c-black-soft:#222;--vt-c-black-mute:#282828;--vt-c-indigo:#2c3e50;--vt-c-divider-light-1:#3c3c3c4a;--vt-c-divider-light-2:#3c3c3c1f;--vt-c-divider-dark-1:#545454a6;--vt-c-divider-dark-2:#5454547a;--vt-c-text-light-1:var(--vt-c-indigo);--vt-c-text-light-2:#3c3c3ca8;--vt-c-text-dark-1:var(--vt-c-white);--vt-c-text-dark-2:#ebebeba3;--color-background:var(--vt-c-white);--color-background-soft:var(--vt-c-white-soft);--color-background-mute:var(--vt-c-white-mute);--color-border:var(--vt-c-divider-light-2);--color-border-hover:var(--vt-c-divider-light-1);--color-heading:var(--vt-c-text-light-1);--color-text:var(--vt-c-text-light-1);--section-gap:160px}@media (prefers-color-scheme:dark){:root{--color-background:var(--vt-c-black);--color-background-soft:var(--vt-c-black-soft);--color-background-mute:var(--vt-c-black-mute);--color-border:var(--vt-c-divider-dark-2);--color-border-hover:var(--vt-c-divider-dark-1);--color-heading:var(--vt-c-text-dark-1);--color-text:var(--vt-c-text-dark-2)}}*,:before,:after{box-sizing:border-box;margin:0;font-weight:400}body{min-height:100vh;color:var(--color-text);background:var(--color-background);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:15px;line-height:1.6;transition:color .5s,background-color .5s}#app{max-width:1280px;margin:0 auto;padding:2rem;font-weight:400}a,.green{color:#00bd7e;padding:3px;text-decoration:none;transition:all .4s}@media (hover:hover){a:hover{background-color:#00bd7e33}}@media (width>=1024px){body{place-items:center;display:flex}#app{grid-template-columns:1fr 1fr;padding:0 2rem;display:grid}}.login-wrapper[data-v-e44937a1]{background-color:#f0f2f5;justify-content:center;align-items:center;width:100vw;min-height:100vh;font-family:微軟正黑體,sans-serif;display:flex;position:absolute;top:0;left:0}.login-card[data-v-e44937a1]{box-sizing:border-box;background:#fff;border:1px solid #e1e4e8;border-radius:8px;width:100%;max-width:400px;padding:40px 30px;box-shadow:0 4px 15px #0000000d}.login-header[data-v-e44937a1]{text-align:center;margin-bottom:30px}.login-header h2[data-v-e44937a1]{color:#2c3e50;margin:0;font-size:24px;font-weight:900}.form-group[data-v-e44937a1]{margin-bottom:20px}.form-group label[data-v-e44937a1]{color:#2c3e50;margin-bottom:8px;font-weight:700;display:block}.form-group input.form-input[data-v-e44937a1]{box-sizing:border-box;color:#2c3e50;background-color:#fff;width:100%;padding:12px;font-family:inherit;font-size:15px;transition:border-color .2s;border:1px solid #dcdde1!important;border-radius:6px!important}.form-group input.form-input[data-v-e44937a1]:focus{border-color:#3498db!important;outline:none!important;box-shadow:0 0 5px #3498db4d!important}.password-hint[data-v-e44937a1]{color:#7f8c8d;margin-top:5px;font-size:13px;display:block}.btn[data-v-e44937a1]{cursor:pointer;text-align:center;border:none;border-radius:6px;padding:12px 20px;font-size:16px;font-weight:700;transition:all .2s}.btn-block[data-v-e44937a1]{letter-spacing:1px;width:100%;margin-top:10px;display:block}.primary-btn[data-v-e44937a1]{color:#fff;background:#3498db}.btn[data-v-e44937a1]:hover:not(:disabled){background-color:#2980b9;transform:translateY(-1px)}.btn[data-v-e44937a1]:disabled{cursor:not-allowed;background:#bdc3c7;transform:none}.login-footer[data-v-e44937a1]{text-align:center;margin-top:25px;font-size:14px}.login-footer a[data-v-e44937a1]{color:#3498db;font-weight:700;text-decoration:none;transition:color .2s}.login-footer a[data-v-e44937a1]:hover{color:#2980b9;text-decoration:underline}.divider[data-v-e44937a1]{color:#bdc3c7;margin:0 10px}.auth-wrapper[data-v-13dee7dc]{background-color:#f0f2f5;justify-content:center;align-items:center;width:100vw;min-height:100vh;font-family:微軟正黑體,sans-serif;display:flex;position:absolute;top:0;left:0}.auth-card[data-v-13dee7dc]{box-sizing:border-box;background:#fff;border-radius:12px;width:90%;max-width:420px;padding:45px 40px;box-shadow:0 8px 30px #00000014}.auth-title[data-v-13dee7dc]{text-align:center;color:#2c3e50;margin-top:0;margin-bottom:35px;font-size:24px;font-weight:900}.form-group[data-v-13dee7dc]{margin-bottom:22px}.form-group label[data-v-13dee7dc]{color:#34495e;margin-bottom:8px;font-size:15px;font-weight:700;display:block}.auth-input[data-v-13dee7dc]{box-sizing:border-box;border:1px solid #dcdde1;border-radius:6px;width:100%;padding:14px;font-size:15px;transition:border-color .2s,box-shadow .2s}.auth-input[data-v-13dee7dc]:focus{border-color:#3498db;outline:none;box-shadow:0 0 0 3px #3498db33}.auth-btn[data-v-13dee7dc]{letter-spacing:1px;border-radius:6px;width:100%;margin-top:15px;padding:15px;font-size:16px}.btn[data-v-13dee7dc]{cursor:pointer;border:none;font-weight:700;transition:all .2s}.primary-btn[data-v-13dee7dc]{color:#fff;background-color:#3498db}.primary-btn[data-v-13dee7dc]:hover:not(:disabled){background-color:#2980b9;transform:translateY(-1px)}.primary-btn[data-v-13dee7dc]:disabled{cursor:not-allowed;background-color:#bdc3c7}.auth-links[data-v-13dee7dc]{text-align:center;justify-content:center;align-items:center;margin-top:30px;font-size:14px;display:flex}.link-text[data-v-13dee7dc]{color:#3498db;font-weight:700;text-decoration:none;transition:color .2s}.link-text[data-v-13dee7dc]:hover{color:#2980b9;text-decoration:underline}[data-v-6c905789]{--lightningcss-light:initial!important;--lightningcss-dark: !important;color-scheme:light only!important}.app-wrapper[data-v-6c905789]{box-sizing:border-box;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light only;background-color:#f0f2f5;flex-direction:column;align-items:center;width:100vw;min-height:100vh;padding:30px 20px;display:flex;position:absolute;top:0;left:0}.app-wrapper h1[data-v-6c905789],.app-wrapper h2[data-v-6c905789],.app-wrapper h3[data-v-6c905789],.app-wrapper h4[data-v-6c905789],.app-wrapper p[data-v-6c905789]:not(.desc),.app-wrapper label[data-v-6c905789],.app-wrapper th[data-v-6c905789],.app-wrapper td[data-v-6c905789],.app-wrapper li[data-v-6c905789],.app-wrapper .q-title[data-v-6c905789],.app-wrapper .opt-text[data-v-6c905789],.app-wrapper .sign-title[data-v-6c905789],.app-wrapper .user-info[data-v-6c905789],.app-wrapper .exam-name[data-v-6c905789]{color:#1a252f!important;-webkit-text-fill-color:#1a252f!important}.desc[data-v-6c905789],.empty-state[data-v-6c905789],.sign-timestamp[data-v-6c905789]{color:#34495e!important;-webkit-text-fill-color:#34495e!important;font-weight:700!important}.unsigned-text[data-v-6c905789],.demo-signatures span[data-v-6c905789]{color:#7f8c8d!important;-webkit-text-fill-color:#7f8c8d!important;font-size:13px!important;font-style:italic!important}.form-input[data-v-6c905789],.print-text-box[data-v-6c905789],.demo-text-box[data-v-6c905789]{color:#000!important;-webkit-text-fill-color:#000!important;background-color:#fff!important}.form-input[data-v-6c905789]:disabled{color:#1a252f!important;-webkit-text-fill-color:#1a252f!important;opacity:1!important;background-color:#f0f4f8!important;border:1px solid #cbd5e1!important}.exam-warning[data-v-6c905789],.exam-warning strong[data-v-6c905789]{color:#856404!important;-webkit-text-fill-color:#856404!important}.btn[data-v-6c905789]{color:#fff!important;-webkit-text-fill-color:#fff!important}.module-tabs button[data-v-6c905789]:not(.active),.signature-tabs button[data-v-6c905789]:not(.active){color:#7f8c8d!important;-webkit-text-fill-color:#7f8c8d!important}.module-tabs button.active[data-v-6c905789],.signature-tabs button.active[data-v-6c905789]{color:#3498db!important;-webkit-text-fill-color:#3498db!important}.role-badge[data-v-6c905789],.status-badge[data-v-6c905789],.score-badge[data-v-6c905789],.correct-badge[data-v-6c905789],.wrong-badge[data-v-6c905789],.score-val[data-v-6c905789]{color:#fff!important;-webkit-text-fill-color:#fff!important}.form-container[data-v-6c905789]{width:100%;max-width:850px;font-family:微軟正黑體,sans-serif}.header-section[data-v-6c905789]{background:#fff;border:1px solid #e1e4e8;border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:20px;padding:20px 25px;display:flex;box-shadow:0 4px 15px #0000000d}.module-tabs[data-v-6c905789]{border-bottom:2px solid #e1e4e8;gap:5px;margin-bottom:20px;display:flex}.module-tabs button[data-v-6c905789]{cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:6px 6px 0 0;margin-bottom:-2px;padding:12px 24px;font-size:16px;font-weight:700;transition:all .2s}.module-tabs button.active[data-v-6c905789]{border-bottom:2px solid #3498db}.module-content[data-v-6c905789]{animation:.3s ease-in-out fadeIn-6c905789}@keyframes fadeIn-6c905789{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.selector-header[data-v-6c905789]{justify-content:space-between;align-items:center;display:flex}.empty-state[data-v-6c905789]{text-align:center;padding:40px!important}.status-bar[data-v-6c905789]{background:#ecf0f1;border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:15px;padding:15px 20px;font-size:15px;font-weight:700;display:flex}.meta-info p[data-v-6c905789]{margin:0 0 5px}.meta-info p[data-v-6c905789]:last-child{margin:0}.status-badge[data-v-6c905789]{border-radius:20px;margin-left:10px;padding:5px 12px;font-size:14px}.status-badge.draft[data-v-6c905789]{background:#95a5a6}.status-badge.pending_teacher[data-v-6c905789]{background:#f39c12}.status-badge.pending_supervisor[data-v-6c905789]{background:#e67e22}.status-badge.closed[data-v-6c905789]{background:#2ecc71}.card[data-v-6c905789]{background:#fff;border:1px solid #e1e4e8;border-radius:8px;margin-bottom:20px;padding:25px;box-shadow:0 4px 15px #0000000d}.card h3[data-v-6c905789]{border-bottom:2px solid #ecf0f1;margin-top:0;margin-bottom:15px;padding-bottom:10px}.form-row[data-v-6c905789]{gap:15px;margin-bottom:15px;display:flex}.form-group[data-v-6c905789]{flex:1;margin-bottom:15px}.form-input[data-v-6c905789]{box-sizing:border-box;resize:vertical;border:1px solid #dcdde1;border-radius:6px;width:100%;min-height:45px;padding:12px;font-family:inherit;font-size:15px}.form-input[data-v-6c905789]:focus{border-color:#3498db;outline:none}.show-on-print[data-v-6c905789]{display:none}.action-row[data-v-6c905789]{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.action-row.center[data-v-6c905789]{justify-content:center}.btn[data-v-6c905789]{cursor:pointer;border:none;border-radius:6px;padding:10px 20px;font-family:inherit;font-size:15px;font-weight:700;transition:all .2s}.small-btn[data-v-6c905789]{padding:8px 14px;font-size:13px}.primary-btn[data-v-6c905789]{background:#3498db}.secondary-btn[data-v-6c905789]{background:#95a5a6}.success-btn[data-v-6c905789]{background:#2ecc71}.danger-btn[data-v-6c905789]{background:#e74c3c}.dark-btn[data-v-6c905789]{background:#2c3e50}.btn[data-v-6c905789]:hover:not(:disabled){filter:brightness(.9);transform:translateY(-1px)}.btn[data-v-6c905789]:disabled{cursor:not-allowed;background:#bdc3c7;transform:none}.score-badge[data-v-6c905789]{border-radius:6px;min-width:50px;padding:6px 12px;font-weight:700;display:inline-block}.score-high[data-v-6c905789]{background-color:#2ecc71!important;border-color:#2ecc71!important}.score-tags[data-v-6c905789]{flex-direction:column;gap:10px;margin-top:10px;display:flex}.score-tag[data-v-6c905789]{background:#fff;border:1px solid #bdc3c7;border-radius:6px;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.score-tag .exam-name[data-v-6c905789]{font-size:15px;font-weight:700}.score-tag .score-val[data-v-6c905789]{border:2px solid #0000;border-radius:6px;padding:6px 12px;font-size:16px;font-weight:900}.exam-card[data-v-6c905789]{border-top:5px solid #3498db}.exam-header[data-v-6c905789]{border-bottom:2px solid #ecf0f1;justify-content:space-between;align-items:center;margin-bottom:15px;padding-bottom:15px;display:flex}.exam-warning[data-v-6c905789]{background:#fff3cd;border:1px solid #ffeeba;border-radius:6px;margin-bottom:20px;padding:12px;font-weight:700;line-height:1.6}.question-item[data-v-6c905789]{background:#f8f9fa;border:1px solid #e1e4e8;border-radius:8px;margin-bottom:20px;padding:18px}.q-title[data-v-6c905789]{margin-bottom:15px;font-size:16px;line-height:1.5}.q-options[data-v-6c905789]{flex-direction:column;gap:10px;display:flex}.opt-label[data-v-6c905789]{cursor:pointer;background:#fff;border:1px solid #dcdde1;border-radius:6px;align-items:flex-start;gap:10px;padding:10px 15px;transition:all .2s;display:flex}.opt-label[data-v-6c905789]:hover{background:#f0f8ff;border-color:#3498db}.custom-radio[data-v-6c905789]{accent-color:#3498db;width:16px;height:16px;margin-top:4px}.is-correct-preview[data-v-6c905789]{background:#f4fdf8!important;border-color:#2ecc71!important}.correct-badge[data-v-6c905789]{white-space:nowrap;background:#2ecc71;border-radius:12px;padding:4px 8px;font-size:12px;font-weight:700}.is-wrong-preview[data-v-6c905789]{background:#fdf2f2!important;border-color:#e74c3c!important}.wrong-badge[data-v-6c905789]{white-space:nowrap;background:#e74c3c;border-radius:12px;padding:4px 8px;font-size:12px;font-weight:700}.demo-signatures[data-v-6c905789]{border-top:2px solid #ecf0f1;justify-content:space-between;margin-top:40px;padding-top:25px;display:flex}.sign-box[data-v-6c905789]{flex-direction:column;align-items:center;gap:8px;width:30%;display:flex}.sign-title[data-v-6c905789]{text-align:center;border-bottom:2px solid #bdc3c7;width:100%;padding-bottom:5px;font-size:16px;font-weight:700}.sign-content[data-v-6c905789]{flex-direction:column;align-items:center;display:flex}.signature-img[data-v-6c905789]{object-fit:contain;background-color:#fff;border:1px solid #ecf0f1;border-radius:6px;max-width:100%;max-height:80px;padding:5px;box-shadow:0 2px 5px #0000001a}.modal-overlay[data-v-6c905789]{z-index:9999;box-sizing:border-box;background:#0009;justify-content:center;align-items:center;width:100vw;height:100vh;padding:20px;display:flex;position:fixed;top:0;left:0}.modal-content[data-v-6c905789]{background:#fff;border-radius:8px;flex-direction:column;animation:.2s fadeIn-6c905789;display:flex;overflow:hidden;box-shadow:0 10px 30px #0003}.signature-modal[data-v-6c905789]{width:100%;max-width:500px}.review-modal[data-v-6c905789]{width:100%;max-width:850px;max-height:90vh}.modal-header[data-v-6c905789]{background:#f8f9fa;border-bottom:1px solid #e1e4e8;justify-content:space-between;align-items:center;padding:20px;display:flex}.close-btn[data-v-6c905789]{cursor:pointer;color:#7f8c8d;background:0 0;border:none;font-size:20px}.modal-body[data-v-6c905789]{padding:25px;overflow-y:auto}.signature-tabs[data-v-6c905789]{gap:5px;margin-bottom:15px;display:flex}.signature-tabs button[data-v-6c905789]{cursor:pointer;background:#f8f9fa;border:1px solid #dcdde1;flex:1;padding:10px;font-weight:700;transition:all .2s}.canvas-container[data-v-6c905789]{background:#fdfdfd;border:2px dashed #bdc3c7;border-radius:8px;position:relative;overflow:hidden}.signature-canvas[data-v-6c905789]{touch-action:none;cursor:crosshair;width:100%;height:200px}.clear-btn[data-v-6c905789]{opacity:.8;position:absolute;top:10px;right:10px}.upload-container[data-v-6c905789]{text-align:center;border:2px dashed #bdc3c7;border-radius:8px;flex-direction:column;justify-content:center;min-height:200px;padding:20px;display:flex}.preview-img-box[data-v-6c905789]{background:#f8f9fa;border-radius:6px;margin-top:15px;padding:10px}.signature-preview[data-v-6c905789]{object-fit:contain;max-width:100%;max-height:100px}@media screen and (width<=600px){.header-section[data-v-6c905789]{text-align:center;flex-direction:column;gap:12px}.action-row[data-v-6c905789]{flex-direction:column}.action-row button[data-v-6c905789]{width:100%;margin-bottom:5px}.form-row[data-v-6c905789]{flex-direction:column;gap:15px;margin-bottom:15px}.demo-signatures[data-v-6c905789]{flex-direction:column;gap:20px}.sign-box[data-v-6c905789]{width:100%}}@media print{.app-wrapper[data-v-6c905789]{background:#fff;padding:0}.no-print[data-v-6c905789],.hide-on-print[data-v-6c905789]{display:none!important}.show-on-print[data-v-6c905789]{white-space:pre-wrap!important;word-break:break-word!important;border:none!important;padding:5px 0!important;font-size:15px!important;line-height:1.6!important;display:block!important}.print-border-none[data-v-6c905789]{background:0 0!important;border:none!important;padding:0!important}.card[data-v-6c905789]{page-break-inside:avoid;margin-bottom:20px;box-shadow:none!important;border:1px solid #ccc!important;padding:15px!important}.score-tags[data-v-6c905789]{margin-top:10px;display:block}.score-tag[data-v-6c905789]{page-break-inside:avoid;background:0 0!important;border:1px solid #000!important;border-radius:4px!important;justify-content:space-between!important;margin-bottom:12px!important;padding:10px 15px!important;display:flex!important}.score-tag .exam-name[data-v-6c905789]{background:0 0!important;border:none!important;padding:0!important}.score-tag .score-val[data-v-6c905789]{background:0 0!important;border:1px solid #000!important;padding:4px 10px!important}}[data-v-e28d5c63]{--lightningcss-light:initial!important;--lightningcss-dark: !important;color-scheme:light only!important}.app-wrapper[data-v-e28d5c63]{box-sizing:border-box;background-color:#f0f2f5;flex-direction:column;align-items:center;width:100vw;min-height:100vh;padding:30px 20px;display:flex;position:absolute;top:0;left:0}.app-wrapper h1[data-v-e28d5c63],.app-wrapper h2[data-v-e28d5c63],.app-wrapper h3[data-v-e28d5c63],.app-wrapper h4[data-v-e28d5c63],.app-wrapper p[data-v-e28d5c63]:not(.desc),.app-wrapper label[data-v-e28d5c63],.app-wrapper th[data-v-e28d5c63],.app-wrapper td[data-v-e28d5c63],.app-wrapper li[data-v-e28d5c63],.app-wrapper .q-title[data-v-e28d5c63],.app-wrapper .opt-text[data-v-e28d5c63],.app-wrapper .sign-title[data-v-e28d5c63],.app-wrapper .user-info[data-v-e28d5c63],.app-wrapper .exam-name[data-v-e28d5c63],.app-wrapper .sign-box[data-v-e28d5c63],.demo-text-box[data-v-e28d5c63],.score-tag span[data-v-e28d5c63]{color:#1a252f!important;-webkit-text-fill-color:#1a252f!important}.desc[data-v-e28d5c63],.empty-state[data-v-e28d5c63],.sign-timestamp[data-v-e28d5c63]{color:#34495e!important;-webkit-text-fill-color:#34495e!important;font-weight:700!important}.unsigned-text[data-v-e28d5c63],.demo-signatures span[data-v-e28d5c63]{color:#7f8c8d!important;-webkit-text-fill-color:#7f8c8d!important;font-size:13px!important;font-style:italic!important}.form-input[data-v-e28d5c63]{box-sizing:border-box;border:1px solid #dcdde1;border-radius:6px;width:100%;padding:12px;color:#000!important;-webkit-text-fill-color:#000!important;background-color:#fff!important}.demo-text-box[data-v-e28d5c63]{border:1px solid #bdc3c7;border-radius:6px;min-height:80px;padding:15px;font-size:15px;line-height:1.6}.btn[data-v-e28d5c63]{cursor:pointer;border:none;border-radius:6px;padding:10px 20px;font-size:15px;font-weight:700;transition:all .2s;color:#fff!important;-webkit-text-fill-color:#fff!important}.primary-btn[data-v-e28d5c63]{background-color:#3498db}.success-btn[data-v-e28d5c63]{background-color:#2ecc71}.danger-btn[data-v-e28d5c63]{background-color:#e74c3c}.dark-btn[data-v-e28d5c63]{background-color:#2c3e50}.secondary-btn[data-v-e28d5c63]{background-color:#95a5a6}.role-badge[data-v-e28d5c63]{border-radius:12px;padding:5px 12px;font-size:13px;font-weight:700;display:inline-block;color:#fff!important;-webkit-text-fill-color:#fff!important}.role-badge.student[data-v-e28d5c63]{background-color:#3498db!important}.role-badge.teacher[data-v-e28d5c63]{background-color:#9b59b6!important}.role-badge.supervisor[data-v-e28d5c63]{background-color:#e67e22!important}.role-badge.admin[data-v-e28d5c63]{background-color:#34495e!important}.admin-container[data-v-e28d5c63]{width:100%;max-width:1000px;font-family:微軟正黑體,sans-serif}.admin-header[data-v-e28d5c63]{background:#fff;border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:25px;padding:20px 25px;display:flex;box-shadow:0 4px 15px #0000000d}.tabs[data-v-e28d5c63]{white-space:nowrap;border-bottom:2px solid #e1e4e8;gap:5px;margin-bottom:20px;display:flex;overflow-x:auto}.tabs button[data-v-e28d5c63]{cursor:pointer;background:0 0;border:none;border-radius:6px 6px 0 0;padding:12px 24px;font-size:16px;font-weight:700;color:#7f8c8d!important;-webkit-text-fill-color:#7f8c8d!important}.tabs button.active[data-v-e28d5c63]{border-bottom:2px solid #3498db;color:#3498db!important;-webkit-text-fill-color:#3498db!important}.admin-card[data-v-e28d5c63]{background:#fff;border:1px solid #e1e4e8;border-radius:8px;margin-bottom:25px;padding:25px;box-shadow:0 4px 15px #0000000d}.admin-card h3[data-v-e28d5c63]{border-bottom:2px solid #ecf0f1;margin-top:0;margin-bottom:15px;padding-bottom:10px;font-size:1.2em}.card-header-flex[data-v-e28d5c63]{justify-content:space-between;align-items:center;display:flex}.data-table[data-v-e28d5c63]{border-collapse:collapse;width:100%;margin-top:10px}.data-table th[data-v-e28d5c63],.data-table td[data-v-e28d5c63]{text-align:left;border-bottom:1px solid #ecf0f1;padding:14px}.data-table th[data-v-e28d5c63]{background:#f8f9fa;font-weight:700}.data-table tbody tr[data-v-e28d5c63]:hover{background:#f9fbfc}.table-responsive[data-v-e28d5c63]{margin-top:15px;overflow-x:auto}.modal-overlay[data-v-e28d5c63]{z-index:9999;box-sizing:border-box;background:#0009;justify-content:center;align-items:center;width:100vw;height:100vh;padding:20px;display:flex;position:fixed;top:0;left:0}.modal-content[data-v-e28d5c63]{background:#fff;border-radius:8px;flex-direction:column;width:100%;max-width:850px;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 10px 30px #0003}.modal-header[data-v-e28d5c63]{background:#f8f9fa;border-bottom:1px solid #e1e4e8;justify-content:space-between;align-items:center;padding:20px;display:flex}.modal-body[data-v-e28d5c63]{padding:25px;overflow-y:auto}.close-btn[data-v-e28d5c63]{cursor:pointer;color:#7f8c8d;background:0 0;border:none;font-size:24px}.form-row[data-v-e28d5c63]{gap:15px;margin-bottom:15px;display:flex}.form-group[data-v-e28d5c63]{flex:1}.action-row[data-v-e28d5c63]{gap:10px;margin-top:20px;display:flex}.small-btn[data-v-e28d5c63]{padding:8px 14px;font-size:13px}.checkbox-label[data-v-e28d5c63]{cursor:pointer;align-items:center;gap:8px;font-size:14px;font-weight:700;display:flex}.custom-checkbox[data-v-e28d5c63]{cursor:pointer;accent-color:#e74c3c;width:18px;height:18px}.upload-btn-group[data-v-e28d5c63]{flex-wrap:wrap;align-items:center;gap:15px;margin-top:15px;display:flex}.print-only-scores[data-v-e28d5c63],.printable-demo-printonly[data-v-e28d5c63]{display:none}@media print{@page{margin:0;size:A4 landscape}.app-wrapper[data-v-e28d5c63]{background:#fff!important;width:100%!important;height:auto!important;min-height:0!important;margin:0!important;padding:0!important;display:block!important;position:static!important}.admin-container[data-v-e28d5c63],.modal-overlay[data-v-e28d5c63]{display:none!important}.print-mode-scores .print-only-scores[data-v-e28d5c63],.print-mode-demo .printable-demo-printonly[data-v-e28d5c63]{box-sizing:border-box;padding:12mm 15mm;width:100%!important;font-family:標楷體,DFKai-SB,serif!important;display:block!important}.print-only-scores[data-v-e28d5c63] *,.printable-demo-printonly[data-v-e28d5c63] *{color:#000!important;-webkit-text-fill-color:#000!important}.scale-page-wrapper[data-v-e28d5c63]{page-break-after:always;break-after:page;box-sizing:border-box;width:100%}.scale-page-wrapper[data-v-e28d5c63]:last-child{page-break-after:auto;break-after:auto}.scale-record-box[data-v-e28d5c63]{box-sizing:border-box;border:2px solid #000;width:100%;margin-bottom:10px;padding:10px 15px}.print-meta-table[data-v-e28d5c63]{border-collapse:collapse;box-sizing:border-box;border:2px solid #000;width:100%;margin-bottom:10px}.print-meta-table td[data-v-e28d5c63]{border:1px solid #000!important;padding:5px 10px!important;font-size:13pt!important}.print-meta-label[data-v-e28d5c63]{-webkit-print-color-adjust:exact;print-color-adjust:exact;width:120px;font-weight:700;background-color:#f9f9f9!important}.print-meta-value[data-v-e28d5c63]{width:calc(100% - 120px)}.print-score-table[data-v-e28d5c63]{border-collapse:collapse;box-sizing:border-box;width:100%;margin-bottom:20px}.print-score-table th[data-v-e28d5c63]{-webkit-print-color-adjust:exact;print-color-adjust:exact;font-weight:700;background-color:#f0f0f0!important}.print-score-table th[data-v-e28d5c63],.print-score-table td[data-v-e28d5c63]{text-align:left;border:1px solid #000!important;padding:8px!important;font-size:13pt!important}.print-footer[data-v-e28d5c63]{page-break-inside:avoid;justify-content:space-between;margin-top:15px;font-weight:700;display:flex;font-size:14pt!important}}body{background-color:#f0f2f5;margin:0;font-family:微軟正黑體,sans-serif}@keyframes pulse{0%{opacity:1}50%{opacity:.35}to{opacity:1}}.skeleton-page{box-sizing:border-box;flex-direction:column;align-items:stretch;width:90vw;max-width:1000px;margin:40px auto;padding:20px;display:flex}.skeleton-header{background-color:#e4e7eb;border-radius:8px;height:75px;margin-bottom:30px;animation:1.5s ease-in-out infinite pulse;box-shadow:0 4px 15px #0000000d}.skeleton-body{box-sizing:border-box;background:#fff;border-radius:8px;flex-direction:column;padding:30px;display:flex;box-shadow:0 4px 15px #0000000d}.skeleton-title{background-color:#e4e7eb;border-radius:4px;width:40%;height:28px;margin-bottom:30px;animation:1.5s ease-in-out infinite pulse}.skeleton-line{background-color:#e4e7eb;border-radius:4px;height:18px;margin-bottom:15px;animation:1.5s ease-in-out infinite pulse}.skeleton-box{background-color:#e4e7eb;border-radius:8px;height:300px;margin-top:30px;animation:1.5s ease-in-out infinite pulse}
