.login-brand[data-v-9cd4befa]{display:flex;align-items:center;gap:.85rem;margin-bottom:.25rem}.login-logo[data-v-9cd4befa]{width:72px;height:72px;object-fit:contain;flex-shrink:0;border-radius:50%;background:#fff}.login-card h1[data-v-9cd4befa]{margin:0 0 .2rem;font-size:1.35rem;line-height:1.2}.login-sub[data-v-9cd4befa]{margin:0;font-size:.88rem;line-height:1.35}@media(max-width:400px){.login-brand[data-v-9cd4befa]{flex-direction:column;text-align:center}}.dash-header[data-v-1bee8610]{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.75rem}.dash-header h2[data-v-1bee8610]{margin:0 0 .15rem;font-size:1.25rem}.page-sub[data-v-1bee8610]{margin:0;font-size:.85rem}.stat-link[data-v-1bee8610]{text-decoration:none;color:inherit;transition:box-shadow .15s,border-color .15s}.stat-link[data-v-1bee8610]:hover{border-color:#93c5fd;box-shadow:0 2px 8px #1d4ed814}.stat-pending .num[data-v-1bee8610]{color:#b45309}.stat-processing .num[data-v-1bee8610]{color:#1d4ed8}.stat-scored .num[data-v-1bee8610]{color:#059669}.stat-failed .num[data-v-1bee8610]{color:#dc2626}.stat-total .num[data-v-1bee8610]{color:#0f172a}.num.sm[data-v-1bee8610]{font-size:1.15rem}.stats-secondary[data-v-1bee8610]{margin-top:.25rem}.alert-box[data-v-1bee8610]{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;border-radius:10px;padding:.65rem .85rem;margin-bottom:.75rem;font-size:.9rem}.alert-box a[data-v-1bee8610]{margin-left:.35rem;font-weight:600}.quick-actions[data-v-1bee8610]{display:flex;flex-wrap:wrap;gap:.45rem;margin:.85rem 0 .5rem}.section-title[data-v-1bee8610]{margin:1rem 0 .55rem;font-size:.95rem}.empty-card[data-v-1bee8610]{padding:1.1rem}.mono[data-v-1bee8610]{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85em}.dash-table[data-v-1bee8610]{min-width:640px}.recent-cards[data-v-1bee8610]{display:none;flex-direction:column;gap:.55rem}.recent-card[data-v-1bee8610]{background:#fff;border:1px solid var(--border);border-radius:10px;padding:.75rem}.recent-card-top[data-v-1bee8610]{display:flex;justify-content:space-between;gap:.5rem;align-items:flex-start;margin-bottom:.45rem}.recent-name[data-v-1bee8610]{font-weight:700;color:var(--text)}.recent-scores[data-v-1bee8610]{display:flex;gap:.85rem;flex-wrap:wrap;font-size:.88rem;font-variant-numeric:tabular-nums}@media(max-width:700px){.recent-table-wrap[data-v-1bee8610]{display:none}.recent-cards[data-v-1bee8610]{display:flex}.quick-actions .btn[data-v-1bee8610]{flex:1 1 calc(50% - .45rem);min-width:0}}.page-header[data-v-026bbc29]{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.75rem}.page-header h2[data-v-026bbc29]{margin:0 0 .15rem;font-size:1.25rem}.page-sub[data-v-026bbc29]{margin:0;font-size:.85rem}.view-toggle[data-v-026bbc29]{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:#fff}.toggle-btn[data-v-026bbc29]{border:none;background:transparent;padding:.4rem .85rem;font:inherit;font-size:.85rem;font-weight:600;color:var(--muted);cursor:pointer}.toggle-btn.active[data-v-026bbc29]{background:var(--primary);color:#fff}.filters-bar[data-v-026bbc29]{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.55rem .65rem;padding:.85rem;margin-bottom:.65rem}.filters-bar label[data-v-026bbc29],.filters-bar .filter-actions[data-v-026bbc29]{display:flex;flex-direction:column;gap:.25rem;margin:0;min-width:0}.filters-bar label[data-v-026bbc29]{font-size:.78rem;color:var(--muted);min-width:7rem}.filter-label[data-v-026bbc29]{display:block;font-size:.78rem;line-height:1.2;color:var(--muted);white-space:nowrap;min-height:1.2em}.filter-label-spacer[data-v-026bbc29]{visibility:hidden;-webkit-user-select:none;user-select:none}.filter-grow[data-v-026bbc29]{flex:1 1 12rem;min-width:10rem}.filter-url-btn[data-v-026bbc29]{flex:0 0 auto}.filters-bar .input[data-v-026bbc29],.filters-bar .btn-url-search[data-v-026bbc29],.filters-bar .filter-actions-row .btn[data-v-026bbc29]{box-sizing:border-box;min-height:2.4rem;height:2.4rem;margin:0}.filters-bar .input[data-v-026bbc29]{width:100%;font-size:.88rem;line-height:1.25;padding:0 .7rem}.btn-url-search[data-v-026bbc29]{width:100%;white-space:nowrap;font-size:.88rem;line-height:1.25;padding:0 .9rem}.filter-actions[data-v-026bbc29]{flex:0 0 auto}.filter-actions-row[data-v-026bbc29]{display:flex;flex-direction:row;align-items:center;gap:.4rem}.filter-actions-row .btn[data-v-026bbc29]{white-space:nowrap;font-size:.88rem;line-height:1.25;padding:0 .85rem}.url-search-active[data-v-026bbc29]{margin:0 0 .75rem;font-size:.85rem;color:#1e40af;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;padding:.45rem .7rem;display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .55rem}.url-search-active code[data-v-026bbc29]{font-size:.8em;word-break:break-all}.url-modal-root[data-v-026bbc29]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem}.url-modal-backdrop[data-v-026bbc29]{position:absolute;top:0;right:0;bottom:0;left:0;background:#0f172a73;pointer-events:auto}.url-modal-panel[data-v-026bbc29]{position:relative;z-index:1;width:min(520px,100%);background:#fff;border-radius:12px;border:1px solid var(--border);box-shadow:0 16px 48px #0f172a33;padding:1rem 1.1rem 1.1rem;display:flex;flex-direction:column;gap:.65rem}.url-modal-head[data-v-026bbc29]{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.url-modal-head h3[data-v-026bbc29]{margin:0;font-size:1.05rem}.url-modal-close[data-v-026bbc29]{border:none;background:#f1f5f9;color:#334155;width:2rem;height:2rem;border-radius:8px;font-size:1.35rem;line-height:1;cursor:pointer;font-weight:600}.url-modal-close[data-v-026bbc29]:hover{background:#e2e8f0}.url-modal-hint[data-v-026bbc29]{margin:0;font-size:.85rem;line-height:1.4}.url-modal-textarea[data-v-026bbc29]{width:100%;min-height:10rem;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.84rem;line-height:1.45}.url-modal-err[data-v-026bbc29],.url-modal-preview[data-v-026bbc29]{margin:0;font-size:.85rem}.url-modal-actions[data-v-026bbc29]{display:flex;justify-content:flex-end;gap:.45rem;margin-top:.15rem}@media(max-width:640px){.filters-bar[data-v-026bbc29]{flex-direction:column;align-items:stretch}.filter-actions[data-v-026bbc29],.filter-actions-row[data-v-026bbc29]{width:100%}.filter-actions-row .btn[data-v-026bbc29]{flex:1}}.list-status[data-v-026bbc29]{padding:.5rem 0}.empty-state[data-v-026bbc29]{text-align:center;padding:1.5rem}.mono[data-v-026bbc29]{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.88em}.exam-cards[data-v-026bbc29]{display:none;flex-direction:column;gap:.65rem}.exam-card[data-v-026bbc29]{position:relative;background:#fff;border:1px solid var(--border);border-radius:12px;padding:.85rem;margin-left:.55rem}.compact-table-wrap[data-v-026bbc29],.full-table-wrap[data-v-026bbc29]{padding-left:.7rem;overflow-x:auto}.stt-cell[data-v-026bbc29]{position:relative;text-align:center;overflow:visible!important}.stt-num[data-v-026bbc29]{position:relative;z-index:1}.badge-tight[data-v-026bbc29]{margin-left:.2rem;font-size:.68rem;padding:.08rem .35rem}.compact-table[data-v-026bbc29],.full-table[data-v-026bbc29]{border-collapse:separate;border-spacing:0;overflow:visible}.exam-card-top[data-v-026bbc29]{display:flex;justify-content:space-between;gap:.5rem;align-items:flex-start;margin-bottom:.65rem}.exam-name[data-v-026bbc29]{font-weight:700;font-size:1rem;color:var(--text)}.exam-code[data-v-026bbc29]{font-size:.8rem;margin-top:.15rem}.exam-card-badges[data-v-026bbc29]{display:flex;flex-wrap:wrap;gap:.25rem;justify-content:flex-end}.exam-card-scores[data-v-026bbc29]{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.score-block[data-v-026bbc29]{background:#f8fafc;border:1px solid var(--border);border-radius:10px;padding:.55rem .65rem;text-align:center}.score-block-label[data-v-026bbc29]{display:block;font-size:.72rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.score-block-main[data-v-026bbc29]{display:block;font-size:1.45rem;font-weight:800;line-height:1.2;font-variant-numeric:tabular-nums;margin:.1rem 0}.score-parts[data-v-026bbc29]{display:flex;justify-content:center;gap:.45rem;flex-wrap:wrap;font-size:.75rem;color:var(--muted);font-variant-numeric:tabular-nums}.exam-card-foot[data-v-026bbc29]{display:flex;justify-content:space-between;align-items:center;margin-top:.55rem;padding-top:.45rem;border-top:1px dashed var(--border)}.compact-table[data-v-026bbc29]{min-width:0;width:100%;table-layout:fixed;font-size:.88rem}.compact-table th[data-v-026bbc29],.compact-table td[data-v-026bbc29]{padding:.4rem .35rem;vertical-align:middle}.compact-table col.cg-stt[data-v-026bbc29]{width:2.25rem}.compact-table col.cg-name[data-v-026bbc29]{width:18%}.compact-table col.cg-code[data-v-026bbc29]{width:11%}.compact-table col.cg-exam[data-v-026bbc29]{width:22%}.compact-table col.cg-status[data-v-026bbc29]{width:5.75rem}.compact-table col.cg-score[data-v-026bbc29]{width:2.75rem}.compact-table .col-name[data-v-026bbc29]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;text-align:left;max-width:0}.compact-table .col-code[data-v-026bbc29],.compact-table .col-exam[data-v-026bbc29]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;font-size:inherit;max-width:0}.compact-table .col-exam a[data-v-026bbc29]{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;color:var(--primary);font-size:inherit}.compact-table .col-exam a[data-v-026bbc29]:hover{text-decoration:underline}.compact-table .col-status[data-v-026bbc29]{white-space:nowrap}.compact-table .col-status .badge[data-v-026bbc29]{font-size:.72rem;padding:.1rem .35rem}.compact-table th.col-score[data-v-026bbc29],.compact-table td.col-score[data-v-026bbc29]{padding-left:.2rem!important;padding-right:.2rem!important;text-align:center;font-variant-numeric:tabular-nums;font-size:inherit;box-sizing:border-box}.compact-table .col-total[data-v-026bbc29]{background:#f0fdf4;font-variant-numeric:tabular-nums}.compact-table thead .col-total[data-v-026bbc29]{background:#dcfce7}.compact-table .group[data-v-026bbc29]{font-size:inherit}.compact-table .subhead th[data-v-026bbc29]{font-size:.78rem;font-weight:600;color:var(--muted);background:#f8fafc;padding:.28rem .15rem}@media(min-width:1280px){.compact-table col.cg-name[data-v-026bbc29]{width:20%}.compact-table col.cg-code[data-v-026bbc29]{width:12%}.compact-table col.cg-exam[data-v-026bbc29]{width:24%}.compact-table col.cg-score[data-v-026bbc29]{width:2.9rem}}.exam-card-exam[data-v-026bbc29]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:.78rem;font-weight:600;margin-top:.2rem;line-height:1.3;word-break:break-word;color:var(--primary)}.full-table .col-exam-full[data-v-026bbc29]{min-width:9rem;max-width:14rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.76rem}.full-table .col-exam-full a[data-v-026bbc29]{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.data-row[data-v-026bbc29]{cursor:pointer;position:relative}.data-row[data-v-026bbc29]:hover:not(.row-missing-parts){background:#f1f5f9!important}.data-row.open[data-v-026bbc29]:not(.row-missing-parts){background:#eef2ff!important}.expand-row>td[data-v-026bbc29]{background:#f1f5f9;text-align:left!important;padding:.45rem .55rem!important;white-space:normal!important;border-top:none!important}.full-table[data-v-026bbc29]{min-width:1520px;font-size:.78rem}.full-table th[data-v-026bbc29],.full-table td[data-v-026bbc29]{padding:.3rem .28rem}.full-legend[data-v-026bbc29]{margin:.5rem 0 0;font-size:.78rem;padding:0 .25rem}.badge-tight[data-v-026bbc29]{margin-left:.2rem}.criteria-expand[data-v-026bbc29]{margin-top:.55rem;padding-top:.5rem;border-top:1px solid var(--border)}[data-v-026bbc29] .detail-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--border);border-radius:8px;background:#fff}[data-v-026bbc29] .criteria-detail-table{border-collapse:collapse;width:max-content;min-width:100%;font-size:.78rem;font-variant-numeric:tabular-nums}[data-v-026bbc29] .criteria-detail-table th,[data-v-026bbc29] .criteria-detail-table td{border:1px solid var(--border);padding:.28rem .38rem;text-align:center;white-space:nowrap}[data-v-026bbc29] .criteria-detail-table .d-group-row th{font-size:.72rem;font-weight:700;letter-spacing:.01em}[data-v-026bbc29] .criteria-detail-table .d-group.d-speak{background:#eef2ff;color:#3730a3}[data-v-026bbc29] .criteria-detail-table .d-group.d-write{background:#ecfdf5;color:#065f46}[data-v-026bbc29] .criteria-detail-table .d-sub-row th{background:#f8fafc;font-size:.7rem;font-weight:600;color:var(--muted);padding:.2rem .32rem}[data-v-026bbc29] .criteria-detail-table .d-data-row td{font-weight:600;background:#fff}[data-v-026bbc29] .criteria-detail-table .d-sum{background:#f0fdf4!important;font-weight:700}[data-v-026bbc29] .criteria-detail-table .d-sub-row th.d-sum{background:#dcfce7!important;color:#166534}[data-v-026bbc29] .detail-legend{margin:.35rem 0 0;padding:0 .15rem;font-size:.72rem;line-height:1.35}[data-v-026bbc29] .detail-empty{margin:0;padding:.35rem .15rem;font-size:.85rem}.pagination[data-v-026bbc29]{display:flex;flex-wrap:wrap;gap:.65rem;align-items:center;justify-content:center;margin-top:1rem;padding-bottom:.5rem}.page-info[data-v-026bbc29]{font-size:.9rem}@media(max-width:900px){.desktop-only[data-v-026bbc29]{display:none!important}.exam-cards[data-v-026bbc29]{display:flex}.view-toggle[data-v-026bbc29]{display:none}.exam-card-scores[data-v-026bbc29]{grid-template-columns:1fr}}.back-link[data-v-3c663a5f]{margin:0 0 .65rem;font-size:.9rem;font-weight:600}.exam-header-text[data-v-3c663a5f]{min-width:0;flex:1}.mono[data-v-3c663a5f]{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em}.muted-id[data-v-3c663a5f]{word-break:break-all}.meta-sep[data-v-3c663a5f]{margin:0 .2rem;opacity:.6}.badge-gap[data-v-3c663a5f]{margin-left:.25rem}.result-url-line[data-v-3c663a5f]{margin:.55rem 0 0;font-size:.88rem}.toolbar-hint[data-v-3c663a5f]{margin:.25rem 0 0;font-size:.85rem;line-height:1.4}.train-count[data-v-3c663a5f]{margin:0;font-size:.9rem}.writing-title[data-v-3c663a5f]{margin:0 0 .85rem;font-size:1.05rem}.writing-part[data-v-3c663a5f]{margin-bottom:1.15rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.writing-part[data-v-3c663a5f]:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.writing-part-head[data-v-3c663a5f]{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.4rem .75rem;margin-bottom:.65rem}.writing-part-head h4[data-v-3c663a5f]{margin:0;font-size:1rem}.writing-total[data-v-3c663a5f]{font-weight:700;color:var(--ok);font-variant-numeric:tabular-nums;font-size:.95rem}.writing-box[data-v-3c663a5f]{border:1px solid var(--border);border-radius:10px;background:#fff;margin-bottom:.65rem;overflow:hidden}.writing-box-label[data-v-3c663a5f]{padding:.4rem .75rem;font-size:.78rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:#334155;background:#f1f5f9;border-bottom:1px solid var(--border)}.writing-box-body[data-v-3c663a5f]{padding:.7rem .85rem;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;line-height:1.55;font-size:.92rem;color:#1f2937;max-height:220px;overflow:auto;-webkit-overflow-scrolling:touch}.writing-box-prompt[data-v-3c663a5f]{border-left:3px solid #6366f1}.writing-box-prompt .writing-box-label[data-v-3c663a5f]{background:#eef2ff;color:#3730a3}.writing-box-answer[data-v-3c663a5f]{border-left:3px solid var(--primary)}.writing-box-answer .writing-box-label[data-v-3c663a5f]{background:#eff6ff;color:#1e40af}.writing-answer[data-v-3c663a5f]{max-height:360px;font-size:.95rem;line-height:1.65}.writing-box-meta .writing-box-body[data-v-3c663a5f]{max-height:120px;font-size:.88rem}.writing-criteria-wrap[data-v-3c663a5f]{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-top:.35rem}@media(max-width:480px){.exam-meta[data-v-3c663a5f]{font-size:.82rem}.writing-box-body[data-v-3c663a5f]{padding:.6rem .7rem;font-size:.88rem}.writing-answer[data-v-3c663a5f]{max-height:280px}}.page-header h2[data-v-c3ddd863]{margin:0 0 .15rem;font-size:1.25rem}.page-sub[data-v-c3ddd863]{margin:0 0 .85rem;font-size:.85rem}.create-card[data-v-c3ddd863]{margin-bottom:1rem}.create-card h3[data-v-c3ddd863]{margin:0 0 .75rem;font-size:1rem}.create-form[data-v-c3ddd863]{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.65rem;align-items:end}.create-form label[data-v-c3ddd863]{display:flex;flex-direction:column;gap:.25rem;font-size:.8rem;color:var(--muted)}.user-actions[data-v-c3ddd863]{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:flex-start}.badge-ok[data-v-c3ddd863]{background:#d1fae5;color:#065f46}.badge-muted[data-v-c3ddd863]{background:#e5e7eb;color:#4b5563}.row-locked td[data-v-c3ddd863],.row-locked.user-card[data-v-c3ddd863]{opacity:.75}.field[data-v-c3ddd863]{display:block;margin-bottom:.75rem}.field .input[data-v-c3ddd863]{margin-top:.35rem}.modal-backdrop[data-v-c3ddd863]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal[data-v-c3ddd863]{width:min(420px,100%);margin:0}.modal-actions[data-v-c3ddd863]{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}.users-table[data-v-c3ddd863]{min-width:720px}.user-cards[data-v-c3ddd863]{display:none;flex-direction:column;gap:.55rem;margin-bottom:.5rem}.user-card[data-v-c3ddd863]{background:#fff;border:1px solid var(--border);border-radius:10px;padding:.75rem}.user-card-top[data-v-c3ddd863]{display:flex;justify-content:space-between;gap:.5rem;align-items:flex-start}.user-role[data-v-c3ddd863]{font-size:.8rem;margin:.35rem 0 .55rem}.mono[data-v-c3ddd863]{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85em}.empty-state[data-v-c3ddd863]{text-align:center;padding:1.25rem}@media(max-width:700px){.users-table-wrap[data-v-c3ddd863]{display:none}.user-cards[data-v-c3ddd863]{display:flex}.create-form[data-v-c3ddd863]{grid-template-columns:1fr}.create-form .btn[data-v-c3ddd863]{width:100%}.user-actions .btn[data-v-c3ddd863]{flex:1}}.page-header h2[data-v-2c9b671b]{margin:0 0 .15rem;font-size:1.25rem}.page-sub[data-v-2c9b671b]{margin:0 0 .85rem;font-size:.85rem}.import-card[data-v-2c9b671b]{margin-bottom:1rem;max-width:720px}.import-form[data-v-2c9b671b]{display:flex;flex-direction:column;gap:.75rem}.import-form label[data-v-2c9b671b]:not(.check){display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;color:var(--muted)}.textarea[data-v-2c9b671b]{width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85rem;resize:vertical;min-height:9rem;line-height:1.45}.hint[data-v-2c9b671b],.hint-static[data-v-2c9b671b]{margin:0;font-size:.88rem}.check[data-v-2c9b671b]{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:var(--text)}.result-list[data-v-2c9b671b]{margin:0;padding-left:1.2rem;line-height:1.7}.table-wrap[data-v-2c9b671b]{overflow-x:auto;-webkit-overflow-scrolling:touch}.result-table[data-v-2c9b671b]{width:100%;border-collapse:collapse;font-size:.85rem;min-width:640px}.result-table th[data-v-2c9b671b],.result-table td[data-v-2c9b671b]{border-bottom:1px solid #e2e8f0;padding:.45rem .5rem;text-align:left;vertical-align:top}.result-table th[data-v-2c9b671b]{font-weight:600;white-space:nowrap}.msg-cell[data-v-2c9b671b]{max-width:220px;font-size:.82rem;color:#475569;word-break:break-word}.code-block[data-v-2c9b671b]{background:#0f172a;color:#e2e8f0;padding:.75rem 1rem;border-radius:8px;overflow:auto;font-size:.82rem;max-height:360px}.badge.ok[data-v-2c9b671b]{background:#d1fae5;color:#065f46}.badge.warn[data-v-2c9b671b]{background:#fef3c7;color:#92400e}.badge.danger[data-v-2c9b671b]{background:#fee2e2;color:#991b1b}@media(max-width:480px){.import-form .btn[data-v-2c9b671b]{width:100%}}.settings-page[data-v-d650d9e2]{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:1rem;position:relative;z-index:1;pointer-events:auto}.page-header h2[data-v-d650d9e2]{margin:0 0 .25rem}.page-sub[data-v-d650d9e2]{margin:0}.guide-list[data-v-d650d9e2]{margin:.5rem 0 0;padding-left:1.25rem;color:var(--text);line-height:1.55}.guide-list ul[data-v-d650d9e2]{margin:.25rem 0;padding-left:1.1rem}.settings-form[data-v-d650d9e2]{display:flex;flex-direction:column;gap:.85rem}.field[data-v-d650d9e2]{display:flex;flex-direction:column;gap:.3rem;font-size:.9rem;font-weight:600}.toggle-enabled[data-v-d650d9e2]{display:flex;align-items:center;gap:.75rem;width:100%;text-align:left;padding:.75rem .9rem;border-radius:10px;border:1px solid #bfdbfe;background:#eff6ff;cursor:pointer;font:inherit;color:inherit}.toggle-enabled.on[data-v-d650d9e2]{border-color:#6ee7b7;background:#ecfdf5}.toggle-enabled[data-v-d650d9e2]:hover{filter:brightness(.98)}.toggle-switch[data-v-d650d9e2]{flex-shrink:0;width:44px;height:26px;border-radius:999px;background:#94a3b8;position:relative;transition:background .15s ease}.toggle-enabled.on .toggle-switch[data-v-d650d9e2]{background:#059669}.toggle-knob[data-v-d650d9e2]{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0003;transition:transform .15s ease}.toggle-enabled.on .toggle-knob[data-v-d650d9e2]{transform:translate(18px)}.toggle-text[data-v-d650d9e2]{display:flex;flex-direction:column;gap:.1rem;min-width:0}.hint-inline[data-v-d650d9e2]{font-size:.8rem;font-weight:400}.hint[data-v-d650d9e2]{font-weight:400;font-size:.82rem}.token-row[data-v-d650d9e2]{display:flex;gap:.5rem;align-items:stretch}.token-row .input[data-v-d650d9e2]{flex:1;min-width:0}.token-row .btn[data-v-d650d9e2]{flex-shrink:0;align-self:center}.check[data-v-d650d9e2]{display:flex!important;flex-direction:row!important;align-items:center;gap:.5rem!important;font-weight:500!important;font-size:.9rem;cursor:pointer}.event-toggles[data-v-d650d9e2]{border:1px solid var(--border);border-radius:10px;padding:.75rem 1rem;margin:0;display:flex;flex-direction:column;gap:.45rem}.event-toggles legend[data-v-d650d9e2]{padding:0 .35rem;font-size:.85rem;font-weight:700;color:var(--muted)}.actions[data-v-d650d9e2]{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.25rem}.ok-msg[data-v-d650d9e2]{color:var(--ok);font-size:.9rem;margin:.75rem 0 0}.mono[data-v-d650d9e2]{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.88rem}.code-block[data-v-d650d9e2]{background:#0f172a;color:#e2e8f0;border-radius:8px;padding:.75rem .9rem;font-size:.78rem;overflow-x:auto;line-height:1.45;white-space:pre-wrap;word-break:break-word}.token-reveal[data-v-d650d9e2]{margin:.75rem 0 0;word-break:break-all}.score-compare[data-v-cd8580d1]{max-width:1200px}.upload-card[data-v-cd8580d1]{margin-bottom:1rem}.upload-form[data-v-cd8580d1]{display:flex;flex-direction:column;gap:.75rem}.upload-form label[data-v-cd8580d1]{display:flex;flex-direction:column;gap:.35rem;font-weight:600;font-size:.9rem}.form-row[data-v-cd8580d1]{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end}.form-row label[data-v-cd8580d1]{min-width:180px}.force-check[data-v-cd8580d1]{flex-direction:row!important;align-items:center;font-weight:500!important;gap:.5rem!important}.file-input[data-v-cd8580d1]{padding:.4rem}.hint-static[data-v-cd8580d1]{margin:0;font-size:.85rem;font-weight:400}.ok-msg[data-v-cd8580d1]{color:var(--ok);margin:.5rem 0 0}.history-table tbody tr[data-v-cd8580d1]{cursor:pointer}.history-table tbody tr[data-v-cd8580d1]:hover{background:#f8fafc}.history-table tr.is-selected[data-v-cd8580d1]{background:#eff6ff}.nowrap[data-v-cd8580d1]{white-space:nowrap}.file-cell[data-v-cd8580d1]{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail-panel[data-v-cd8580d1]{margin-top:1.25rem}.detail-header[data-v-cd8580d1]{margin-bottom:.75rem}.skill-tabs[data-v-cd8580d1]{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem}.tab-n[data-v-cd8580d1]{opacity:.75;font-weight:500}.stats-grid[data-v-cd8580d1]{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.65rem;margin-bottom:1rem}.charts-grid[data-v-cd8580d1]{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:1rem}.chart-card h4[data-v-cd8580d1]{margin:0 0 .5rem;font-size:.92rem}.chart-wide[data-v-cd8580d1]{grid-column:1 / -1}.chart-svg[data-v-cd8580d1]{display:block;max-width:100%;overflow:visible}.chart-legend[data-v-cd8580d1]{display:flex;gap:1rem;font-size:.8rem;margin-bottom:.25rem}.leg[data-v-cd8580d1]:before{content:"";display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:.35rem;vertical-align:-1px}.leg-gv[data-v-cd8580d1]:before{background:#6b7280}.leg-ai[data-v-cd8580d1]:before{background:#1d4ed8}.delta-ok[data-v-cd8580d1]{color:var(--ok);font-weight:600}.delta-warn[data-v-cd8580d1]{color:var(--warn);font-weight:600}.delta-bad[data-v-cd8580d1]{color:var(--danger);font-weight:600}.msg-cell[data-v-cd8580d1]{max-width:320px;font-size:.85rem;color:var(--muted);word-break:break-word}.badge[data-v-cd8580d1]{display:inline-block;padding:.12rem .45rem;border-radius:999px;font-size:.75rem;font-weight:600;background:#e5e7eb;color:var(--text)}.badge.ok[data-v-cd8580d1]{background:#d1fae5;color:#065f46}.badge.warn[data-v-cd8580d1]{background:#fef3c7;color:#92400e}.badge.danger[data-v-cd8580d1]{background:#fee2e2;color:#991b1b}.toggle-btn[data-v-cd8580d1]{border:1px solid var(--border);background:#fff;border-radius:8px;padding:.35rem .75rem;cursor:pointer;font-weight:600;font-size:.85rem}.toggle-btn.active[data-v-cd8580d1]{background:var(--primary);color:#fff;border-color:var(--primary)}@media(max-width:800px){.charts-grid[data-v-cd8580d1]{grid-template-columns:1fr}}:root{--bg: #f4f6f9;--card: #ffffff;--text: #1f2937;--muted: #6b7280;--primary: #1d4ed8;--primary-hover: #1e40af;--border: #e5e7eb;--danger: #dc2626;--ok: #059669;--warn: #d97706;--topbar-h: 52px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.45}a{color:var(--primary);text-decoration:none}button,input,select,textarea{font:inherit}.btn{border:none;border-radius:8px;padding:.5rem .9rem;background:var(--primary);color:#fff;cursor:pointer;font-weight:600;font-size:.9rem;line-height:1.25;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;white-space:nowrap}.btn:hover:not(:disabled){background:var(--primary-hover)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.secondary{background:#e5e7eb;color:var(--text)}.btn.secondary:hover:not(:disabled){background:#d1d5db}.btn.danger{background:var(--danger);color:#fff}.btn.danger:hover:not(:disabled){background:#b91c1c}.btn-sm{padding:.35rem .7rem;font-size:.82rem}.btn-link{border:none;background:transparent;color:var(--primary);font:inherit;font-size:.82rem;font-weight:600;cursor:pointer;padding:.15rem .35rem;border-radius:4px}.btn-link:hover:not(:disabled){background:#e0e7ff}.btn-link:disabled{opacity:.45;cursor:not-allowed}.input{width:100%;border:1px solid var(--border);border-radius:8px;padding:.5rem .7rem;background:#fff;min-height:2.4rem}.input:focus{outline:2px solid #bfdbfe;outline-offset:0;border-color:#93c5fd}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:1rem;box-shadow:0 1px 2px #0000000a}.muted{color:var(--muted)}.error{color:var(--danger);font-size:.9rem}.badge{display:inline-block;padding:.12rem .45rem;border-radius:999px;font-size:.72rem;font-weight:600;line-height:1.3;vertical-align:middle}.badge.pending{background:#fef3c7;color:#92400e}.badge.processing{background:#dbeafe;color:#1e40af}.badge.scored{background:#d1fae5;color:#065f46}.badge.failed{background:#fee2e2;color:#991b1b}.badge.train{background:#ede9fe;color:#5b21b6}.row-missing-parts,tr.row-missing-parts>td{background:#eff6ff!important}tr.row-missing-parts:hover>td{background:#dbeafe!important}.card.row-missing-parts,.exam-card.row-missing-parts{position:relative;background:#eff6ff;border-color:#93c5fd;box-shadow:0 0 0 1px #2563eb2e}.icon-missing-parts{display:inline-flex;align-items:center;justify-content:center;width:1.4rem;height:1.4rem;border-radius:999px;background:#1d4ed8;color:#fff;border:1px solid #1e3a8a;box-shadow:0 1px 3px #1e40af59;vertical-align:middle;flex-shrink:0}.icon-missing-parts svg{width:.95rem;height:.95rem;display:block}.icon-missing-parts-lg{width:1.65rem;height:1.65rem}.icon-missing-parts-lg svg{width:1.1rem;height:1.1rem}.icon-missing-parts.edge-marker{position:absolute;left:0;top:50%;transform:translate(-50%,-50%);z-index:3;pointer-events:auto;cursor:help}.score-pill.pill-missing-parts{background:#eff6ff;border:1px solid #93c5fd;box-shadow:0 0 0 1px #2563eb26}.alert-box{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;border-radius:10px;padding:.65rem .85rem;margin:.75rem 0 0;font-size:.9rem;line-height:1.45}.alert-box.review-alert{display:flex;gap:.55rem;align-items:flex-start}.alert-box.review-alert strong{display:inline;margin-right:.25rem}.score-hi,.score-hi strong{color:#047857!important}.score-mid,.score-mid strong{color:#1d4ed8!important}.score-lo,.score-lo strong{color:#b45309!important}.score-fail,.score-fail strong{color:#dc2626!important}.score-empty{color:#94a3b8!important}.layout{min-height:100vh;display:grid;grid-template-rows:auto 1fr}.topbar{position:sticky;top:0;z-index:50;background:#0f172a;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 .85rem;height:var(--topbar-h);gap:.75rem}.topbar-left{display:flex;align-items:center;gap:.5rem;min-width:0}.brand{color:#fff;display:flex;align-items:center;gap:.5rem;text-decoration:none;white-space:nowrap;min-width:0}.brand-logo{width:32px;height:32px;object-fit:contain;flex-shrink:0;border-radius:50%;background:#fff;box-shadow:0 0 0 1px #ffffff26}.brand-text{font-size:.92rem;font-weight:700;letter-spacing:.01em;color:#fff;line-height:1.2;min-width:0;overflow:hidden;text-overflow:ellipsis}.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:4px;width:2.25rem;height:2.25rem;padding:.4rem;border:1px solid #334155;border-radius:8px;background:transparent;cursor:pointer}.nav-toggle-bar{display:block;height:2px;width:100%;background:#e2e8f0;border-radius:1px}.topnav{display:flex;gap:.15rem .35rem;align-items:center}.topnav .nav-link{color:#cbd5e1;font-size:.9rem;font-weight:500;padding:.4rem .65rem;border-radius:8px;border-bottom:none;text-decoration:none;transition:background .12s ease,color .12s ease}.topnav .nav-link:hover{color:#fff;background:#94a3b81f}.topnav .nav-link.is-active{color:#fff;font-weight:700;background:#60a5fa2e;box-shadow:inset 0 0 0 1px #60a5fa73}.topbar-right{display:flex;gap:.55rem;align-items:center;flex-shrink:0}.user-chip{color:#cbd5e1;font-size:.8rem;max-width:14rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar .btn.secondary{background:#1e293b;color:#e2e8f0;border:1px solid #334155}.topbar .btn.secondary:hover:not(:disabled){background:#334155}.mobile-only,.nav-backdrop{display:none}.main{padding:1rem 1.15rem 1.5rem;max-width:1400px;margin:0 auto;width:100%}.filters{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem;align-items:end}.filters label{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;color:var(--muted)}.table-wrap{overflow:auto;border:1px solid var(--border);border-radius:12px;background:#fff;-webkit-overflow-scrolling:touch}table.score-table{border-collapse:collapse;width:100%;font-size:.85rem}table.score-table th,table.score-table td{border:1px solid var(--border);padding:.4rem .45rem;text-align:center;white-space:nowrap;font-variant-numeric:tabular-nums}table.score-table th{background:#f8fafc;font-weight:600;position:sticky;top:0;z-index:1}table.score-table th.group{background:#eef2ff}table.score-table td.left,table.score-table th.left{text-align:left}table.score-table tbody tr:hover{background:#f8fafc}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.65rem;margin-bottom:.85rem}.stat{background:#fff;border:1px solid var(--border);border-radius:12px;padding:.85rem}.stat .num{font-size:1.45rem;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.2}.pagination{display:flex;gap:.5rem;align-items:center;margin-top:1rem;flex-wrap:wrap}.login-page{min-height:100vh;display:grid;place-items:center;padding:1rem}.login-card{width:min(400px,100%)}.login-card h1{margin:0 0 .25rem;font-size:1.35rem}.login-card form{display:grid;gap:.85rem;margin-top:1rem}.login-card label{display:flex;flex-direction:column;gap:.3rem;font-size:.88rem;color:var(--muted)}.detail-grid{display:grid;gap:.85rem;max-width:100%;overflow-x:hidden}.part-card h3{margin-top:0}.criteria-table{width:100%;border-collapse:collapse}.criteria-table th,.criteria-table td{border:1px solid var(--border);padding:.5rem;text-align:left}.transcript-block{margin:.75rem 0;padding:.75rem 1rem;background:#f8fafc;border-radius:8px;border-left:3px solid var(--primary)}.transcript-label{font-weight:600;margin-bottom:.35rem}.transcript-text{white-space:pre-wrap;margin:0;line-height:1.5}.transcript-meta{margin:.4rem 0 0;font-size:.85rem}.exam-header-row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem;align-items:flex-start}.exam-title{margin:0 0 .25rem;font-size:1.2rem;line-height:1.3}.exam-meta{margin:0;font-size:.88rem;line-height:1.5}.exam-scores-summary{display:flex;flex-wrap:wrap;gap:.4rem}.score-pill{background:#f1f5f9;border:1px solid var(--border);border-radius:10px;padding:.4rem .75rem;min-width:4.2rem;text-align:center}.score-pill.teacher{background:#ecfdf5;border-color:#a7f3d0}.score-pill-label{display:block;font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.02em}.score-pill strong{font-size:1.1rem;font-variant-numeric:tabular-nums}.speaking-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem;align-items:flex-start;margin-bottom:.85rem;padding-bottom:.85rem;border-bottom:1px solid var(--border)}.speaking-toolbar h3{font-size:1.05rem}.train-check{display:flex;gap:.65rem;align-items:flex-start;max-width:320px;padding:.55rem .75rem;border:1px solid var(--border);border-radius:10px;background:#f8fafc;cursor:pointer;-webkit-user-select:none;user-select:none}.train-check.on{background:#f5f3ff;border-color:#c4b5fd}.train-check input{margin-top:.2rem;width:1.1rem;height:1.1rem;accent-color:#7c3aed}.train-check strong{display:block;font-size:.9rem}.train-check small{display:block;color:var(--muted);font-size:.78rem;margin-top:.15rem;line-height:1.3}.part-grade{border:1px solid var(--border);border-radius:12px;padding:.85rem;margin-bottom:.85rem;background:#fafbfc;max-width:100%;box-sizing:border-box;overflow-x:hidden}.part-grade-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.65rem;margin-bottom:.65rem}.part-grade-head h4{margin:0;font-size:1rem;line-height:1.4}.part-grade.part-train-on{border-color:#c4b5fd;background:#faf8ff}.train-check.part-train{max-width:220px;margin:0;flex-shrink:0}.teacher-total{color:var(--ok);font-weight:600}.prompt-box{white-space:pre-wrap;background:#fff;border:1px dashed var(--border);border-radius:8px;padding:.55rem .7rem;margin:0 0 .65rem;font-size:.88rem;color:#475569;max-height:100px;overflow:auto}.media-asr-row{display:grid;grid-template-columns:minmax(140px,200px) minmax(0,1fr);gap:.65rem;margin-bottom:.75rem;align-items:stretch;width:100%;max-width:100%;box-sizing:border-box;overflow:hidden}.media-col{border:1px solid var(--border);border-radius:10px;background:#fff;padding:.45rem .55rem;display:flex;flex-direction:column;min-width:0;max-width:100%;overflow:hidden}.media-col-label{font-weight:600;font-size:.78rem;margin-bottom:.35rem;color:#334155}.media-box{margin-bottom:0;flex:1;display:flex;align-items:center;min-width:0;max-width:100%;overflow:hidden}.media-player{max-width:100%;max-height:140px;width:100%;border-radius:8px;background:#0f172a;object-fit:contain}.media-player.audio{width:100%;max-width:100%;max-height:none;height:40px;background:transparent}.transcript-panel{border-radius:10px;border:1px solid var(--border);background:#fff;overflow:hidden;display:flex;flex-direction:column;min-height:0;min-width:0;max-width:100%;box-sizing:border-box}.transcript-panel.asr{border-left:3px solid #94a3b8}.transcript-panel.asr.asr-side{max-height:280px;width:100%;min-width:0}.transcript-panel.asr.asr-side .transcript-readonly,.transcript-panel.asr.asr-side .asr-karaoke{max-height:200px;overflow:auto;overflow-x:hidden;word-break:break-word;overflow-wrap:anywhere;white-space:pre-wrap}.asr-karaoke-wrap{display:flex;flex-direction:column;min-height:0;flex:1}.asr-karaoke-toolbar{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;padding:.35rem .75rem 0;font-size:.8rem}.asr-karaoke{line-height:1.9;font-size:.9rem;padding:.5rem .75rem}.asr-karaoke .sync-w{display:inline;border-radius:4px;padding:.08em .16em;margin:0 .12em .15em 0;transition:background .08s ease,color .08s ease,box-shadow .08s ease}.asr-karaoke .sync-w.has-time{cursor:pointer}.asr-karaoke .sync-w.has-time:hover{outline:1px dashed #93c5fd}.asr-karaoke.follow-on .sync-w.is-past{color:#64748b;background:#f1f5f9}.asr-karaoke .sync-w.is-active{background:#fde047;color:#713f12;font-weight:700;box-shadow:0 0 0 1px #facc15}.asr-karaoke .sync-w.no-time{border-bottom:1px dotted #cbd5e1}.transcript-panel.edit,.transcript-panel.edit.gv-full{border-left:3px solid var(--primary);width:100%;max-width:100%;margin-bottom:.75rem;box-sizing:border-box}.transcript-panel-head{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.4rem .65rem;background:#f1f5f9;font-weight:600;font-size:.82rem;flex-wrap:wrap}.transcript-panel-actions{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;justify-content:flex-end}.meta-inline{font-weight:400;font-size:.75rem}.transcript-readonly{padding:.65rem;white-space:pre-wrap;line-height:1.55;font-size:.88rem;color:#334155;max-height:200px;overflow:auto;overflow-x:hidden;word-break:break-word;overflow-wrap:anywhere;flex:1}.transcript-edit{width:100%;border:none;resize:vertical;min-height:140px;padding:.75rem;font:inherit;font-size:.9rem;line-height:1.55;background:#fff;color:var(--text)}.transcript-edit:focus{outline:2px solid #bfdbfe;outline-offset:-2px}.transcript-panel .hint{margin:0;padding:0 .75rem .55rem;font-size:.78rem}.transcript-panel .hint.warn-hint{color:#b45309;padding-top:.25rem}.segment-details{border-top:1px solid var(--border);padding:.4rem .75rem .65rem;font-size:.82rem}.segment-details summary{cursor:pointer;color:var(--muted);font-weight:600;-webkit-user-select:none;user-select:none}.segment-list{margin:.45rem 0 0;padding-left:1.1rem;max-height:180px;overflow:auto}.segment-list li{margin-bottom:.3rem;line-height:1.4}.seg-time{display:inline-block;min-width:5.5rem;font-variant-numeric:tabular-nums;color:var(--muted);font-size:.75rem;margin-right:.35rem}.seg-text{color:#334155}.sync-editor{display:flex;flex-direction:column;min-height:0;flex:1;width:100%;max-width:100%;min-width:0;overflow:hidden}.sync-editor-head{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.4rem .65rem;background:#eef2ff;font-weight:600;font-size:.82rem;flex-wrap:wrap}.sync-editor-actions{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;font-weight:400}.sync-follow-toggle{display:inline-flex;align-items:center;gap:.3rem;cursor:pointer;font-size:.78rem;font-weight:600;color:var(--primary);-webkit-user-select:none;user-select:none}.sync-follow-toggle input{accent-color:var(--primary)}.sync-karaoke-edit{min-height:100px;max-height:360px;overflow:auto;overflow-x:hidden;padding:.65rem .85rem;font-size:.92rem;line-height:1.7;background:#fff;outline:none;word-break:break-word;overflow-wrap:anywhere;white-space:pre-wrap;box-sizing:border-box;width:100%}.sync-karaoke-edit:focus,.sync-karaoke-edit.is-editing{outline:2px solid #bfdbfe;outline-offset:-2px;background:#fafbff}.sync-karaoke-edit.empty:before{content:attr(data-placeholder);color:#94a3b8;pointer-events:none;white-space:pre-wrap}.sync-karaoke-edit .sync-w{display:inline;border-radius:4px;padding:.08em .16em;margin:0 .12em .15em 0;cursor:text}.sync-karaoke-edit.show-diff .sync-w.is-edited{background:#fecaca!important;color:#7f1d1d!important;font-weight:600;box-shadow:0 0 0 1px #f87171}.badge-edited-count{display:inline-block;background:#fee2e2;color:#991b1b;font-size:.72rem;font-weight:700;padding:.1rem .4rem;border-radius:999px}.hint-red{background:#fecaca;color:#7f1d1d;padding:0 .25rem;border-radius:3px;font-weight:600}.transcript-panel.edit{display:flex;flex-direction:column;min-width:0}.speaking-card{max-width:100%;overflow-x:hidden}.score-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:.45rem;margin-bottom:.65rem}.score-cell{background:#fff;border:1px solid var(--border);border-radius:8px;padding:.45rem .5rem}.score-cell label{display:block;font-size:.72rem;color:var(--muted);margin-bottom:.25rem;font-weight:600}.score-cell.total{background:#ecfdf5;border-color:#a7f3d0}.score-inputs{display:flex;flex-direction:column;gap:.15rem}.score-input{width:100%;padding:.35rem .4rem;text-align:center;font-weight:600;font-size:1rem;min-height:2.2rem}.score-total-val{font-size:1.2rem;font-weight:700;color:var(--ok);font-variant-numeric:tabular-nums}.ai-hint{font-size:.7rem;color:var(--muted)}.ai-feedback{margin-top:.35rem;font-size:.88rem}.ai-feedback summary{cursor:pointer;color:var(--muted);font-weight:600;padding:.25rem 0}.fb-summary{margin:.5rem 0 .35rem;padding:.45rem .65rem;background:#f1f5f9;border-radius:6px;font-size:.88rem;line-height:1.45}.fb-block{display:flex;flex-direction:column;gap:.28rem;font-size:.88rem;line-height:1.4}.fb-line{display:grid;grid-template-columns:5.5rem 1fr;gap:.35rem;align-items:start}.fb-k{font-weight:600;color:#0f172a;white-space:nowrap}.fb-v{min-width:0;word-break:break-word}.fb-line.fb-scale .fb-k,.fb-line.fb-scale .fb-v{font-size:.8rem;font-weight:500}.criteria-table.compact{font-size:.82rem;margin-top:.5rem}.teacher-note-block{margin:.5rem 0 1rem}.teacher-note-block label{display:block;font-size:.85rem;color:var(--muted);margin-bottom:.3rem;font-weight:600}.save-bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.65rem;padding-top:.75rem;border-top:1px solid var(--border);position:sticky;bottom:0;background:linear-gradient(to top,#fff 70%,#ffffffeb);padding-bottom:.35rem;z-index:2}.save-bar-left{display:flex;flex-direction:column;gap:.2rem;min-width:0}.ok-msg{color:var(--ok);font-weight:600;font-size:.9rem}@media(max-width:900px){.nav-toggle{display:flex}.topnav{display:none;position:fixed;top:var(--topbar-h);left:0;right:0;background:#0f172a;flex-direction:column;align-items:stretch;gap:0;padding:.5rem .75rem 1rem;border-bottom:1px solid #1e293b;box-shadow:0 8px 24px #00000040;z-index:60}.topnav.open{display:flex}.topnav .nav-link{padding:.75rem .65rem;border-radius:8px;border-bottom:none;font-size:.95rem}.topnav .nav-link.is-active{color:#93c5fd;background:#60a5fa24;box-shadow:inset 0 0 0 1px #60a5fa59}.topnav .mobile-only{display:flex;flex-direction:column;gap:.55rem;padding:.85rem .35rem .25rem;border-top:1px solid #1e293b;margin-top:.25rem}.desktop-user{display:none}.nav-backdrop{display:block;position:fixed;inset:var(--topbar-h) 0 0 0;background:#0f172a66;z-index:55}.main{padding:.75rem .7rem 1.25rem}.media-asr-row{grid-template-columns:1fr}.fb-line{grid-template-columns:1fr;gap:.1rem}.fb-k{font-size:.75rem;color:var(--muted)}.criteria-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.save-bar{flex-direction:column;align-items:stretch}.save-bar .btn{width:100%}.train-check.part-train{max-width:100%;width:100%}.part-grade-head{flex-direction:column}}@media(max-width:480px){.brand-logo{width:28px;height:28px}.brand-text{font-size:.82rem}.score-grid{grid-template-columns:repeat(2,1fr)}.score-cell.total{grid-column:1 / -1}.exam-scores-summary{width:100%}.score-pill{flex:1;min-width:0}.speaking-toolbar p{font-size:.82rem!important}}
