.user-area[data-v-29c35bcb]{position:relative;display:flex;align-items:center;gap:8px;cursor:pointer;padding:4px 10px;border-radius:20px;transition:background .15s}.user-area[data-v-29c35bcb]:hover{background:#15241f0a}.user-avatar[data-v-29c35bcb]{width:30px;height:30px;border-radius:50%;object-fit:cover;background:#e5e7eb}.user-nickname[data-v-29c35bcb]{font-size:14px;color:var(--c-text);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-arrow[data-v-29c35bcb]{font-size:11px;color:var(--c-text-mute)}.user-dropdown[data-v-29c35bcb]{position:absolute;top:calc(100% + 6px);right:0;min-width:220px;background:#fff;border:1px solid var(--c-border);border-radius:var(--r-md);box-shadow:0 8px 24px #15241f1f;z-index:1000;overflow:hidden}.dropdown-item[data-v-29c35bcb]{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;background:none;border:none;cursor:pointer;font-size:13px;color:var(--c-text);text-align:left;transition:background .12s}.dropdown-item[data-v-29c35bcb]:hover{background:var(--c-bg-muted)}.dropdown-item+.dropdown-item[data-v-29c35bcb]{border-top:1px solid #f0f0ec}.dropdown-id[data-v-29c35bcb]{flex-direction:column;align-items:flex-start;gap:2px;cursor:default;background:#fbfbf9}.dropdown-id[data-v-29c35bcb]:hover{background:#fbfbf9}.dropdown-id-value[data-v-29c35bcb]{font-size:12px;color:var(--c-text-soft);word-break:break-all;font-family:var(--font-mono)}.dropdown-logout[data-v-29c35bcb]{color:var(--c-error)}.dropdown-quota[data-v-29c35bcb]{display:flex;align-items:center;gap:8px;background:var(--c-jade-bg);cursor:default}.dropdown-quota[data-v-29c35bcb]:hover{background:var(--c-jade-bg)}.dropdown-quota i[data-v-29c35bcb]{color:var(--c-jade)}.dropdown-quota .quota-value[data-v-29c35bcb]{margin-left:auto;color:var(--c-jade-dark);font-variant-numeric:tabular-nums}.dropdown-enter-active[data-v-29c35bcb],.dropdown-leave-active[data-v-29c35bcb]{transition:opacity .15s,transform .15s}.dropdown-enter-from[data-v-29c35bcb],.dropdown-leave-to[data-v-29c35bcb]{opacity:0;transform:translateY(-6px)}.nickname-mask[data-v-29c35bcb]{position:fixed;inset:0;background:#15241f66;display:flex;align-items:center;justify-content:center;z-index:2000}.nickname-dialog[data-v-29c35bcb]{background:#fff;border-radius:var(--r-lg);padding:20px;width:340px;box-shadow:0 12px 32px #15241f33}.nickname-dialog-title[data-v-29c35bcb]{font-size:16px;font-weight:600;color:var(--c-text);margin-bottom:14px}.nickname-input[data-v-29c35bcb]{width:100%;padding:8px 12px;border:1px solid var(--c-border);border-radius:var(--r-sm);font-size:14px;outline:none;box-sizing:border-box}.nickname-input[data-v-29c35bcb]:focus{border-color:var(--c-jade)}.nickname-dialog-actions[data-v-29c35bcb]{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.fade-enter-active[data-v-29c35bcb],.fade-leave-active[data-v-29c35bcb]{transition:opacity .2s}.fade-enter-from[data-v-29c35bcb],.fade-leave-to[data-v-29c35bcb]{opacity:0}.more-apps-area[data-v-29c35bcb]{position:relative}.more-apps-btn[data-v-29c35bcb]{display:flex;align-items:center;gap:6px;cursor:pointer;padding:6px 14px;font-size:13px;font-weight:600;white-space:nowrap;background:var(--c-jade-bg);color:var(--c-jade-dark);border:1px solid #C4DDD0;border-radius:var(--r-full);transition:all .15s}.more-apps-btn[data-v-29c35bcb]:hover{background:var(--c-jade);color:#fff;border-color:var(--c-jade)}.more-apps-btn:hover .more-apps-arrow[data-v-29c35bcb]{transform:rotate(180deg)}.more-apps-arrow[data-v-29c35bcb]{font-size:9px;transition:transform .15s}.more-apps-menu[data-v-29c35bcb]{position:absolute;top:calc(100% + 6px);right:0;z-index:100;width:320px;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-md);box-shadow:0 8px 24px #15241f26;overflow:hidden;padding:6px}.app-item[data-v-29c35bcb]{display:flex;align-items:flex-start;gap:12px;padding:10px 12px;border-radius:var(--r-sm);text-decoration:none;color:var(--c-text);transition:background .12s}.app-item[data-v-29c35bcb]:hover{background:var(--c-bg-muted)}.app-logo[data-v-29c35bcb]{width:36px;height:36px;border-radius:var(--r-sm);object-fit:cover;flex-shrink:0;background:var(--c-bg-muted)}.app-logo-default[data-v-29c35bcb]{width:36px;height:36px;border-radius:var(--r-sm);flex-shrink:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--c-jade),var(--c-jade-dark));color:#fff;font-size:16px}.app-info[data-v-29c35bcb]{min-width:0;flex:1}.app-name[data-v-29c35bcb]{font-size:14px;font-weight:600;margin-bottom:2px}.app-desc[data-v-29c35bcb]{font-size:12px;color:var(--c-text-mute);line-height:1.4;word-break:break-all}#landing-view[data-v-bb8bac4e]{padding-bottom:24px}.stepper[data-v-3f42ad15]{display:flex;align-items:center;gap:4px;padding:14px 16px;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-md);margin-bottom:16px}.step-item[data-v-3f42ad15]{display:flex;align-items:center;gap:10px;padding:6px 12px 6px 6px;border-radius:var(--r-sm);border:1px solid transparent;background:transparent;cursor:pointer;flex:1;min-width:0;transition:background .15s}.step-item[data-v-3f42ad15]:hover{background:var(--c-bg-muted)}.step-item.locked[data-v-3f42ad15]{opacity:.45;cursor:not-allowed}.step-item.locked[data-v-3f42ad15]:hover{background:transparent}.step-node[data-v-3f42ad15]{position:relative;flex-shrink:0}.step-icon[data-v-3f42ad15]{width:34px;height:34px;border-radius:var(--r-full);display:flex;align-items:center;justify-content:center;font-size:13px;color:var(--c-text-mute);background:var(--c-bg-muted);border:1px solid var(--c-border)}.step-badge[data-v-3f42ad15]{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 4px;border-radius:var(--r-full);background:var(--c-text-mute);color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid var(--c-surface)}.step-text[data-v-3f42ad15]{display:flex;flex-direction:column;gap:1px;min-width:0}.step-label[data-v-3f42ad15]{font-size:13px;font-weight:600;color:var(--c-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.step-desc[data-v-3f42ad15]{font-size:11px;color:var(--c-text-mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.step-item.active[data-v-3f42ad15]{background:var(--c-jade-bg)}.step-item.active .step-icon[data-v-3f42ad15]{background:var(--c-jade);color:#fff;border-color:var(--c-jade)}.step-item.active .step-badge[data-v-3f42ad15]{background:var(--c-jade)}.step-item.active .step-label[data-v-3f42ad15]{color:var(--c-jade-dark)}.step-item.done .step-icon[data-v-3f42ad15]{background:var(--c-jade-bg);color:var(--c-jade);border-color:#c4ddd0}.step-item.done .step-badge[data-v-3f42ad15]{background:var(--c-jade)}.step-connector[data-v-3f42ad15]{width:24px;height:2px;background:var(--c-border);border-radius:1px;flex-shrink:0}.step-connector.filled[data-v-3f42ad15]{background:var(--c-jade)}@media (max-width: 1024px){.step-text[data-v-3f42ad15]{display:none}.step-item[data-v-3f42ad15]{justify-content:center;padding:6px}}.ws-nav[data-v-f5ebc211]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-md);margin-top:16px}#ws-nav-hint[data-v-f5ebc211]{font-variant-numeric:tabular-nums}.start-center[data-v-f5ebc211]{letter-spacing:.5px}.panel-head[data-v-e5aad3f3]{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px}.panel-title[data-v-e5aad3f3]{font-size:20px;font-weight:700;color:var(--c-text);margin-bottom:4px}.panel-desc[data-v-e5aad3f3]{font-size:13px;color:var(--c-text-mute)}.basic-grid[data-v-e5aad3f3]{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:12px}.template-row[data-v-e5aad3f3]{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.template-chip[data-v-e5aad3f3]{padding:7px 12px;font-size:12px;border-radius:var(--r-full);background:var(--c-jade-bg);color:var(--c-jade-dark);border:1px solid #C4DDD0;cursor:pointer;transition:all .15s;white-space:nowrap}.template-chip[data-v-e5aad3f3]:hover{background:var(--c-jade);color:#fff;border-color:var(--c-jade)}.lessons-row[data-v-e5aad3f3]{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:4px}.lesson-input[data-v-e5aad3f3]{display:flex;flex-direction:column;gap:6px}.lesson-label[data-v-e5aad3f3]{font-size:12px;color:var(--c-text-soft);font-weight:500}.basic-stats[data-v-e5aad3f3]{margin-top:12px;font-size:13px;color:var(--c-text-soft)}.basic-stats strong[data-v-e5aad3f3]{color:var(--c-jade-dark);font-variant-numeric:tabular-nums}.basic-stats .divider[data-v-e5aad3f3]{margin:0 8px;color:var(--c-border-strong)}@media (max-width: 768px){.basic-grid[data-v-e5aad3f3],.lessons-row[data-v-e5aad3f3]{grid-template-columns:1fr}}.panel-head[data-v-6a883bab]{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:18px;gap:12px;flex-wrap:wrap}.panel-title[data-v-6a883bab]{font-size:22px;font-weight:700;color:var(--c-text);margin-bottom:4px}.panel-desc[data-v-6a883bab]{font-size:14px;color:var(--c-text-mute)}.head-actions[data-v-6a883bab]{display:flex;gap:10px}.mb[data-v-6a883bab]{margin-bottom:14px}.balance-card[data-v-6a883bab]{margin-bottom:14px;padding:22px}.balance-info[data-v-6a883bab]{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}.balance-label[data-v-6a883bab]{font-size:15px;font-weight:600;color:var(--c-text)}.balance-detail[data-v-6a883bab]{font-size:15px;color:var(--c-text-soft)}.balance-detail strong[data-v-6a883bab]{color:var(--c-text);font-variant-numeric:tabular-nums}.balance-bar[data-v-6a883bab]{height:10px;background:var(--c-bg-muted);border-radius:var(--r-full);overflow:hidden}.balance-fill[data-v-6a883bab]{height:100%;background:var(--c-clay);border-radius:var(--r-full);transition:width .3s}.balance-card.balanced .balance-fill[data-v-6a883bab]{background:var(--c-success)}.balance-card.over .balance-fill[data-v-6a883bab]{background:var(--c-error)}.balance-status[data-v-6a883bab]{margin-top:10px;font-size:14px;color:var(--c-text-soft)}.balance-card.balanced .balance-status[data-v-6a883bab]{color:var(--c-success)}.balance-card.over .balance-status[data-v-6a883bab]{color:var(--c-error)}.subject-block[data-v-6a883bab]{margin-bottom:12px}.subject-list[data-v-6a883bab]{display:flex;flex-direction:column;gap:10px}.subject-item[data-v-6a883bab]{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 12px;background:var(--c-bg-muted);border-radius:var(--r-md);border:1px solid var(--c-border)}.sub-left[data-v-6a883bab]{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.sub-name-input[data-v-6a883bab]{font-size:16px;font-weight:600;color:var(--c-text);background:transparent;border:1px solid transparent;border-radius:var(--r-sm);padding:4px 10px;min-width:90px;height:32px}.sub-name-input[data-v-6a883bab]:hover{border-color:var(--c-border);background:#fff}.sub-name-input[data-v-6a883bab]:focus{outline:none;border-color:var(--c-jade);background:#fff}.sub-group-seg[data-v-6a883bab]{display:inline-flex;height:32px;padding:3px;gap:2px;background:var(--c-bg);border:1px solid var(--c-border);border-radius:var(--r-sm)}.seg-btn[data-v-6a883bab]{padding:0 12px;font-size:13px;font-weight:500;background:transparent;color:var(--c-text-mute);border:none;border-radius:var(--r-xs);cursor:pointer;transition:all .12s;white-space:nowrap}.seg-btn[data-v-6a883bab]:hover{color:var(--c-text-soft)}.seg-btn.seg-core.on[data-v-6a883bab]{background:var(--c-jade);color:#fff}.seg-btn.seg-arts.on[data-v-6a883bab]{background:var(--c-clay);color:#fff}.seg-btn.seg-minor.on[data-v-6a883bab]{background:var(--c-text-soft);color:#fff}.sub-right[data-v-6a883bab]{display:flex;align-items:center;gap:16px}.hours-cell[data-v-6a883bab]{display:flex;flex-direction:column;align-items:center;gap:4px}.cell-label[data-v-6a883bab]{font-size:11px;color:var(--c-text-mute)}.cell-input[data-v-6a883bab]{width:72px;padding:4px 6px;font-size:15px;font-weight:600;text-align:center;height:32px;border:1px solid var(--c-border);border-radius:var(--r-sm);color:var(--c-text)}.cell-input[data-v-6a883bab]:focus{outline:none;border-color:var(--c-jade)}.preset-block[data-v-6a883bab]{margin-bottom:12px}.preset-chips[data-v-6a883bab]{display:flex;flex-wrap:wrap;gap:8px}.preset-chip[data-v-6a883bab]{display:inline-flex;align-items:center;gap:5px;padding:8px 14px;font-size:13px;border-radius:var(--r-full);background:var(--c-bg-muted);color:var(--c-text-soft);border:1px solid var(--c-border);cursor:pointer;transition:all .15s}.preset-chip[data-v-6a883bab]:hover{background:var(--c-jade-bg);color:var(--c-jade-dark);border-color:#c4ddd0}.preset-chip i[data-v-6a883bab]{font-size:10px}.add-mask[data-v-6a883bab]{position:fixed;inset:0;background:#15241f66;display:flex;align-items:center;justify-content:center;z-index:2000}.add-dialog[data-v-6a883bab]{background:#fff;border-radius:var(--r-lg);padding:20px;width:420px;max-width:92vw;box-shadow:0 12px 32px #15241f33}.add-title[data-v-6a883bab]{font-size:16px;font-weight:600;color:var(--c-text);margin-bottom:12px}.add-actions[data-v-6a883bab]{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.fade-enter-active[data-v-6a883bab],.fade-leave-active[data-v-6a883bab]{transition:opacity .2s}.fade-enter-from[data-v-6a883bab],.fade-leave-to[data-v-6a883bab]{opacity:0}@media (max-width: 768px){.subject-item[data-v-6a883bab]{flex-direction:column;align-items:stretch}.sub-right[data-v-6a883bab]{justify-content:flex-end}.sub-group-seg[data-v-6a883bab]{width:100%}.seg-btn[data-v-6a883bab]{flex:1}}.panel-head[data-v-5def5b1a]{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px;gap:12px;flex-wrap:wrap}.panel-title[data-v-5def5b1a]{font-size:20px;font-weight:700;color:var(--c-text);margin-bottom:4px}.panel-desc[data-v-5def5b1a]{font-size:13px;color:var(--c-text-mute)}.assign-stat[data-v-5def5b1a]{font-size:13px;color:var(--c-text-soft);padding:8px 12px;background:var(--c-jade-bg);border-radius:var(--r-sm)}.assign-stat strong[data-v-5def5b1a]{color:var(--c-jade-dark);font-variant-numeric:tabular-nums}.empty-hint[data-v-5def5b1a]{text-align:center;color:var(--c-text-mute);padding:40px}.roster-card[data-v-5def5b1a]{margin-bottom:14px}.roster-head[data-v-5def5b1a]{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.group-title[data-v-5def5b1a]{font-size:14px;font-weight:600;color:var(--c-text-soft)}.roster-empty[data-v-5def5b1a]{text-align:center;padding:24px;color:var(--c-text-mute)}.roster-empty i[data-v-5def5b1a]{font-size:30px;opacity:.4}.roster-empty p[data-v-5def5b1a]{margin-top:8px;font-size:13px}.roster-list[data-v-5def5b1a]{display:flex;flex-wrap:wrap;gap:8px}.roster-chip[data-v-5def5b1a]{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;background:var(--c-bg-muted);border:1px solid var(--c-border);border-radius:var(--r-full);cursor:grab;transition:all .12s;user-select:none}.roster-chip[data-v-5def5b1a]:hover{border-color:#c4ddd0;background:var(--c-jade-bg);box-shadow:0 2px 8px #15241f0f}.roster-chip[data-v-5def5b1a]:active{cursor:grabbing}.chip-dot[data-v-5def5b1a]{width:10px;height:10px;border-radius:50%;flex-shrink:0}.chip-name[data-v-5def5b1a]{font-size:13px;font-weight:600;color:var(--c-text);max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;user-select:none}.chip-name-input[data-v-5def5b1a]{font-size:13px;font-weight:600;color:var(--c-text);border:1px solid var(--c-jade);border-radius:var(--r-xs);padding:2px 6px;min-width:60px;max-width:90px;background:#fff}.chip-name-input[data-v-5def5b1a]:focus{outline:none}.chip-count[data-v-5def5b1a]{font-size:11px;color:var(--c-text-mute);white-space:nowrap}.chip-edit[data-v-5def5b1a],.chip-del[data-v-5def5b1a]{width:18px;height:18px;border-radius:50%;border:none;cursor:pointer;background:transparent;color:var(--c-text-mute);font-size:9px;display:inline-flex;align-items:center;justify-content:center}.chip-edit[data-v-5def5b1a]:hover{background:var(--c-jade-bg);color:var(--c-jade-dark)}.chip-del[data-v-5def5b1a]:hover{background:var(--c-error-bg);color:var(--c-error)}.roster-chip.editing[data-v-5def5b1a]{background:#fff;border-color:var(--c-jade);cursor:default}.roster-chip.editing[data-v-5def5b1a]:hover{background:#fff;box-shadow:none}.drag-hint[data-v-5def5b1a]{margin-top:12px;padding:8px 12px;font-size:12px;color:var(--c-jade-dark);background:var(--c-jade-bg);border-radius:var(--r-sm)}.drag-hint i[data-v-5def5b1a]{margin-right:4px}.table-wrap[data-v-5def5b1a]{overflow:auto;max-height:56vh}.assign-table[data-v-5def5b1a]{width:100%;border-collapse:collapse;font-size:13px}.assign-table th[data-v-5def5b1a]{background:var(--c-jade-bg);color:var(--c-jade-dark);font-weight:600;padding:8px 10px;border:1px solid var(--c-border);position:sticky;top:0;z-index:2;min-width:130px}.assign-table .sticky-col[data-v-5def5b1a]{position:sticky;left:0;z-index:3;background:var(--c-surface);min-width:70px}.assign-table th.sticky-col[data-v-5def5b1a]{background:var(--c-jade-dark);color:#fff;z-index:4}.assign-table td[data-v-5def5b1a]{padding:6px;border:1px solid var(--c-border);vertical-align:middle}.class-cell[data-v-5def5b1a]{font-weight:600;color:var(--c-text);text-align:center}.th-sub[data-v-5def5b1a]{display:flex;flex-direction:column;align-items:stretch;gap:6px}.th-sub-name[data-v-5def5b1a]{font-size:14px;font-weight:700;text-align:center}.col-fill[data-v-5def5b1a]{position:relative}.col-fill-btn[data-v-5def5b1a]{display:inline-flex;align-items:center;justify-content:center;gap:5px;width:100%;padding:5px 8px;font-size:12px;font-weight:500;background:#ffffff8c;color:var(--c-jade-dark);border:1px solid #C4DDD0;border-radius:var(--r-sm);cursor:pointer;transition:all .12s;white-space:nowrap}.col-fill-btn[data-v-5def5b1a]:hover,.col-fill-btn.on[data-v-5def5b1a]{background:var(--c-jade);color:#fff;border-color:var(--c-jade)}.col-fill-arrow[data-v-5def5b1a]{font-size:9px;transition:transform .15s}.col-fill-btn.on .col-fill-arrow[data-v-5def5b1a]{transform:rotate(180deg)}.col-fill-menu[data-v-5def5b1a]{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:50;background:#fff;border:1px solid var(--c-border);border-radius:var(--r-sm);box-shadow:0 8px 20px #15241f26;overflow:hidden;max-height:240px;overflow-y:auto}.fill-item[data-v-5def5b1a]{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;font-size:13px;color:var(--c-text);background:none;border:none;cursor:pointer;text-align:left;transition:background .1s}.fill-item[data-v-5def5b1a]:hover{background:var(--c-bg-muted)}.fill-dot[data-v-5def5b1a]{width:8px;height:8px;border-radius:50%;flex-shrink:0}.fill-divider[data-v-5def5b1a]{height:1px;background:var(--c-border);margin:2px 0}.fill-empty[data-v-5def5b1a]{padding:12px;font-size:12px;color:var(--c-text-mute);text-align:center}.fill-clear[data-v-5def5b1a]{color:var(--c-error)}.fill-clear[data-v-5def5b1a]:hover{background:var(--c-error-bg)}.fillmenu-enter-active[data-v-5def5b1a],.fillmenu-leave-active[data-v-5def5b1a]{transition:opacity .15s,transform .15s}.fillmenu-enter-from[data-v-5def5b1a],.fillmenu-leave-to[data-v-5def5b1a]{opacity:0;transform:translateY(-4px)}.cell-wrap[data-v-5def5b1a]{min-width:92px;min-height:40px;padding:4px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:var(--r-xs);transition:background .12s}.cell-wrap[data-v-5def5b1a]:hover{background:var(--c-jade-bg)}.cell-wrap.drag-over[data-v-5def5b1a]{background:var(--c-jade);outline:2px dashed var(--c-jade-dark)}.teacher-tag[data-v-5def5b1a]{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:var(--r-full);color:#fff;font-size:12px;font-weight:500;cursor:grab;transition:transform .1s}.teacher-tag[data-v-5def5b1a]:hover{transform:scale(1.03)}.teacher-tag[data-v-5def5b1a]:active{cursor:grabbing}.tag-name[data-v-5def5b1a]{max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag-btn[data-v-5def5b1a]{background:#ffffff40;border:none;color:#fff;cursor:pointer;width:16px;height:16px;border-radius:50%;font-size:8px;display:inline-flex;align-items:center;justify-content:center}.tag-btn[data-v-5def5b1a]:hover{background:#ffffff80}.cell-empty[data-v-5def5b1a]{font-size:12px;color:var(--c-text-mute);display:flex;align-items:center;gap:4px;opacity:.7}.cell-empty i[data-v-5def5b1a]{font-size:10px}.cell-menu[data-v-5def5b1a]{position:fixed;z-index:2000;min-width:180px;background:#fff;border:1px solid var(--c-border);border-radius:var(--r-sm);box-shadow:0 8px 20px #15241f26;overflow:hidden;max-height:280px;overflow-y:auto}.cell-menu-title[data-v-5def5b1a]{padding:8px 12px;font-size:12px;font-weight:600;color:var(--c-text-mute);border-bottom:1px solid var(--c-border)}.batch-mask[data-v-5def5b1a]{position:fixed;inset:0;background:#15241f73;display:flex;align-items:center;justify-content:center;z-index:2000}.batch-dialog[data-v-5def5b1a]{background:#fff;border-radius:var(--r-lg);padding:22px;width:460px;max-width:92vw;box-shadow:0 12px 32px #15241f33}.batch-title[data-v-5def5b1a]{font-size:16px;font-weight:600;color:var(--c-text);margin-bottom:8px}.batch-tip[data-v-5def5b1a]{line-height:1.6;margin-bottom:12px}.batch-textarea[data-v-5def5b1a]{width:100%;box-sizing:border-box;resize:vertical;min-height:120px}.batch-actions[data-v-5def5b1a]{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.fade-enter-active[data-v-5def5b1a],.fade-leave-active[data-v-5def5b1a]{transition:opacity .2s}.fade-enter-from[data-v-5def5b1a],.fade-leave-to[data-v-5def5b1a]{opacity:0}.panel-head[data-v-d0a94e30]{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px;gap:12px;flex-wrap:wrap}.panel-title[data-v-d0a94e30]{font-size:20px;font-weight:700;color:var(--c-text);margin-bottom:4px}.panel-desc[data-v-d0a94e30]{font-size:13px;color:var(--c-text-mute)}.mb[data-v-d0a94e30]{margin-bottom:12px}.group-title[data-v-d0a94e30]{font-size:13px;font-weight:600;color:var(--c-text-soft);margin:16px 0 10px}.section-title[data-v-d0a94e30]{margin-top:20px}.tpl-list[data-v-d0a94e30]{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.tpl-card[data-v-d0a94e30]{display:flex;align-items:flex-start;gap:10px;text-align:left;padding:12px;background:var(--c-bg-muted);border:1px solid var(--c-border);border-radius:var(--r-sm);cursor:pointer;transition:all .15s}.tpl-card[data-v-d0a94e30]:hover{background:var(--c-jade-bg);border-color:#c4ddd0}.tpl-ic[data-v-d0a94e30]{color:var(--c-jade);font-size:14px;margin-top:2px}.tpl-title[data-v-d0a94e30]{font-size:13px;font-weight:600;color:var(--c-text)}.tpl-desc[data-v-d0a94e30]{font-size:11px;color:var(--c-text-mute);margin-top:2px}.add-rule-row[data-v-d0a94e30]{display:flex;align-items:center;gap:12px;margin:20px 0}.empty-rules[data-v-d0a94e30]{text-align:center;padding:40px;color:var(--c-text-mute)}.empty-rules i[data-v-d0a94e30]{font-size:36px;opacity:.4}.empty-rules p[data-v-d0a94e30]{margin-top:10px;font-size:14px}.rule-cards[data-v-d0a94e30]{display:flex;flex-direction:column;gap:8px}.rule-card[data-v-d0a94e30]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-sm)}.rule-card.hard[data-v-d0a94e30]{border-left:3px solid var(--c-clay)}.rule-left[data-v-d0a94e30]{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.rule-type-badge[data-v-d0a94e30]{width:30px;height:30px;border-radius:var(--r-sm);flex-shrink:0;background:var(--c-jade-bg);color:var(--c-jade);display:flex;align-items:center;justify-content:center;font-size:13px}.rule-body[data-v-d0a94e30]{display:flex;flex-direction:column;gap:3px;min-width:0}.rule-text[data-v-d0a94e30]{font-size:13px;color:var(--c-text)}.rule-conf[data-v-d0a94e30]{font-size:10px;color:var(--c-text-mute);width:fit-content}.rule-conf.hard[data-v-d0a94e30]{color:var(--c-clay)}.rule-ops[data-v-d0a94e30]{display:flex;gap:4px;flex-shrink:0}.panel-head[data-v-fb1b38cc]{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px;gap:12px;flex-wrap:wrap}.panel-title[data-v-fb1b38cc]{font-size:20px;font-weight:700;color:var(--c-text);margin-bottom:4px}.panel-desc[data-v-fb1b38cc]{font-size:13px;color:var(--c-text-mute)}.head-actions[data-v-fb1b38cc]{display:flex;gap:8px}.quality-cards[data-v-fb1b38cc]{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}.qcard[data-v-fb1b38cc]{padding:14px 16px;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-md);text-align:center}.qcard-score[data-v-fb1b38cc]{background:var(--c-jade-bg);border-color:#c4ddd0}.qcard.bad[data-v-fb1b38cc]{background:var(--c-error-bg);border-color:#e8b8b8}.qcard-label[data-v-fb1b38cc]{font-size:12px;color:var(--c-text-mute);margin-bottom:6px}.qcard-value[data-v-fb1b38cc]{font-size:28px;font-weight:700;color:var(--c-text);line-height:1;font-variant-numeric:tabular-nums}.qcard-unit[data-v-fb1b38cc]{font-size:11px;color:var(--c-text-mute);margin-top:4px}.rule-detail-card[data-v-fb1b38cc]{margin-bottom:16px;padding:16px 18px}.rule-detail-title[data-v-fb1b38cc]{font-size:13px;font-weight:600;color:var(--c-text-soft);margin-bottom:12px}.rule-detail-list[data-v-fb1b38cc]{display:flex;flex-direction:column;gap:8px}.rule-detail-item[data-v-fb1b38cc]{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--c-bg-muted);border-radius:var(--r-sm);border:1px solid var(--c-border)}.rd-status[data-v-fb1b38cc]{font-size:14px;flex-shrink:0}.rd-status.ok[data-v-fb1b38cc]{color:var(--c-success)}.rd-status.bad[data-v-fb1b38cc]{color:var(--c-error)}.rd-tag[data-v-fb1b38cc]{font-size:10px;font-weight:600;padding:1px 6px;border-radius:var(--r-xs);flex-shrink:0}.tag-hard[data-v-fb1b38cc]{background:var(--c-clay-bg);color:var(--c-clay-dark)}.tag-soft[data-v-fb1b38cc]{background:var(--c-bg);color:var(--c-text-soft);border:1px solid var(--c-border)}.rd-desc[data-v-fb1b38cc]{font-size:13px;color:var(--c-text);flex:1;min-width:0}.rd-type[data-v-fb1b38cc]{font-size:11px;color:var(--c-text-mute);flex-shrink:0;padding:2px 8px;background:var(--c-bg);border-radius:var(--r-xs)}.view-tabs[data-v-fb1b38cc]{display:flex;gap:4px;margin-bottom:12px;align-items:center}.view-tab[data-v-fb1b38cc]{padding:7px 14px;font-size:13px;font-weight:500;background:var(--c-bg-muted);color:var(--c-text-soft);border:1px solid var(--c-border);border-radius:var(--r-sm);cursor:pointer}.view-tab.active[data-v-fb1b38cc]{background:var(--c-jade);color:#fff;border-color:var(--c-jade)}.view-hint[data-v-fb1b38cc]{margin-left:16px;margin-top:4px;font-size:12px;color:var(--c-text-mute)}.conflict-bar[data-v-fb1b38cc]{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px;background:var(--c-error-bg);border:1px solid #E8B8B8;border-radius:var(--r-sm);margin-bottom:12px;font-size:13px;color:var(--c-error)}.conflict-tag[data-v-fb1b38cc]{padding:2px 8px;background:#fff;border:1px solid #E8B8B8;border-radius:var(--r-xs);font-size:12px;color:var(--c-text)}.table-scroll[data-v-fb1b38cc]{overflow-x:auto;padding:0}.sched-table[data-v-fb1b38cc]{width:100%;border-collapse:collapse;font-size:12px}.sched-table th[data-v-fb1b38cc]{background:var(--c-jade-dark);color:#fff;font-weight:600;padding:8px;border:1px solid var(--c-jade-dark);position:sticky;top:0;z-index:2;min-width:80px}.sched-table .sticky-c1[data-v-fb1b38cc]{position:sticky;left:0;z-index:3;background:var(--c-jade-dark);color:#fff;min-width:56px}.sched-table .sticky-c2[data-v-fb1b38cc]{position:sticky;left:56px;z-index:3;background:var(--c-jade-dark);color:#fff;min-width:56px}.sched-table th.sticky-c1[data-v-fb1b38cc],.sched-table th.sticky-c2[data-v-fb1b38cc]{z-index:4}.sched-table td[data-v-fb1b38cc]{border:1px solid var(--c-border);vertical-align:middle;padding:0}.sched-table td.sticky-c1[data-v-fb1b38cc],.sched-table td.sticky-c2[data-v-fb1b38cc]{z-index:1}.class-label[data-v-fb1b38cc],.day-label[data-v-fb1b38cc]{font-weight:700;text-align:center;color:var(--c-jade-dark);font-size:14px;background:var(--c-surface)}.period-label[data-v-fb1b38cc]{text-align:center;color:var(--c-text-soft);font-size:11px;background:var(--c-bg-soft)}.sep-row td[data-v-fb1b38cc]{height:6px;background:var(--c-bg-muted);border:none;padding:0}.cell[data-v-fb1b38cc]{min-width:80px}.cell-content[data-v-fb1b38cc]{min-height:48px;padding:4px;cursor:grab;display:flex;flex-direction:column;gap:2px;transition:background .12s}.cell-content[data-v-fb1b38cc]:hover{background:var(--c-jade-bg)}.cell-content.conflict[data-v-fb1b38cc]{background:var(--c-error-bg);outline:2px solid var(--c-error)}.cell-subject[data-v-fb1b38cc]{font-size:12px;font-weight:600;color:var(--c-text);text-align:center}.cell-teacher[data-v-fb1b38cc]{font-size:10px;color:#fff;text-align:center;padding:1px 4px;border-radius:var(--r-xs);align-self:center;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-empty[data-v-fb1b38cc]{color:var(--c-text-mute);text-align:center;font-size:14px;opacity:.4}.teacher-view[data-v-fb1b38cc]{gap:2px}.teacher-cell-item[data-v-fb1b38cc]{display:flex;gap:4px;font-size:11px;align-items:center}.tc-class[data-v-fb1b38cc]{color:var(--c-jade-dark);font-weight:600}.tc-subject[data-v-fb1b38cc]{color:var(--c-text-soft)}.teacher-tables[data-v-fb1b38cc]{display:flex;flex-direction:column;gap:16px}.teacher-block[data-v-fb1b38cc]{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-md);overflow:hidden}.teacher-block-head[data-v-fb1b38cc]{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--c-bg-muted);border-bottom:1px solid var(--c-border)}.teacher-dot[data-v-fb1b38cc]{width:10px;height:10px;border-radius:50%;flex-shrink:0}.teacher-block-name[data-v-fb1b38cc]{font-size:14px;font-weight:600;color:var(--c-text)}.teacher-block .sched-table th[data-v-fb1b38cc]{background:var(--c-jade-bg);color:var(--c-jade-dark)}.period-col[data-v-fb1b38cc]{width:70px;min-width:70px;text-align:center}.empty-panel[data-v-fb1b38cc]{text-align:center;padding:60px;color:var(--c-text-mute)}.empty-panel i[data-v-fb1b38cc]{font-size:40px;opacity:.4}.empty-panel p[data-v-fb1b38cc]{margin-top:12px;font-size:14px}.empty-hint[data-v-fb1b38cc]{text-align:center;color:var(--c-text-mute);padding:40px}@media (max-width: 768px){.quality-cards[data-v-fb1b38cc]{grid-template-columns:repeat(2,1fr)}}.tab-panels[data-v-4b555de9]{flex:1;min-height:0;overflow-y:auto;padding-right:2px}.reassign-mask[data-v-4b555de9]{position:fixed;inset:0;background:#15241f73;display:flex;align-items:center;justify-content:center;z-index:2000}.reassign-dialog[data-v-4b555de9]{background:#fff;border-radius:var(--r-lg);padding:28px 32px;text-align:center;max-width:400px;box-shadow:0 12px 32px #15241f33}.reassign-icon[data-v-4b555de9]{font-size:40px;color:var(--c-warning);margin-bottom:12px}.reassign-dialog h3[data-v-4b555de9]{font-size:18px;margin-bottom:12px}.reassign-dialog p[data-v-4b555de9]{font-size:14px;color:var(--c-text-soft);line-height:1.6;margin:2px 0}.reassign-actions[data-v-4b555de9]{display:flex;gap:12px;justify-content:center;margin-top:20px}.fade-enter-active[data-v-4b555de9],.fade-leave-active[data-v-4b555de9]{transition:opacity .2s}.fade-enter-from[data-v-4b555de9],.fade-leave-to[data-v-4b555de9]{opacity:0}.footer[data-v-e6c1e9e0]{margin-top:56px;border-top:1px solid var(--c-border);background:var(--c-surface)}.footer-inner[data-v-e6c1e9e0]{padding:20px 24px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.footer-brand[data-v-e6c1e9e0]{display:flex;align-items:center;gap:6px;font-weight:600;color:var(--c-text);font-size:13px}.footer a[data-v-e6c1e9e0]{color:inherit;text-decoration:none}.footer a[data-v-e6c1e9e0]:hover{color:var(--c-jade)}.toast-container[data-v-423a78a4]{position:fixed;top:72px;left:50%;transform:translate(-50%);z-index:5000;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast[data-v-423a78a4]{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;background:var(--c-text);color:#fff;border-radius:var(--r-sm);font-size:13px;font-weight:500;box-shadow:0 6px 20px #15241f40;pointer-events:auto;max-width:90vw}.toast i[data-v-423a78a4]{font-size:14px}.toast.success[data-v-423a78a4]{background:var(--c-success)}.toast.error[data-v-423a78a4]{background:var(--c-error)}.toast.warning[data-v-423a78a4]{background:var(--c-warning)}.toast.info[data-v-423a78a4]{background:var(--c-jade-dark)}.toast-enter-active[data-v-423a78a4],.toast-leave-active[data-v-423a78a4]{transition:all .22s ease}.toast-enter-from[data-v-423a78a4],.toast-leave-to[data-v-423a78a4]{opacity:0;transform:translateY(-10px)}.toast.leaving[data-v-423a78a4]{opacity:.5}.dialog-mask[data-v-cd8f53b2]{position:fixed;inset:0;z-index:3000;background:#15241f73;backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:20px}.dialog-box[data-v-cd8f53b2]{background:var(--c-surface);border-radius:var(--r-lg);width:400px;max-width:100%;padding:28px 28px 22px;box-shadow:0 16px 40px #15241f38;display:flex;flex-direction:column;align-items:center;text-align:center}.dialog-icon-wrap[data-v-cd8f53b2]{margin-bottom:16px}.dialog-icon[data-v-cd8f53b2]{width:52px;height:52px;border-radius:var(--r-full);display:flex;align-items:center;justify-content:center;font-size:24px}.dialog-content[data-v-cd8f53b2]{margin-bottom:22px}.dialog-title[data-v-cd8f53b2]{font-size:17px;font-weight:700;color:var(--c-text);margin-bottom:8px}.dialog-message[data-v-cd8f53b2]{font-size:14px;color:var(--c-text-soft);line-height:1.6}.dialog-actions[data-v-cd8f53b2]{display:flex;gap:10px;width:100%}.dialog-btn[data-v-cd8f53b2]{flex:1;height:40px;justify-content:center;font-size:14px}.dialog-fade-enter-active[data-v-cd8f53b2],.dialog-fade-leave-active[data-v-cd8f53b2]{transition:opacity .18s}.dialog-fade-enter-from[data-v-cd8f53b2],.dialog-fade-leave-to[data-v-cd8f53b2]{opacity:0}.dialog-pop-enter-active[data-v-cd8f53b2]{transition:transform .22s cubic-bezier(.2,.8,.3,1),opacity .22s}.dialog-pop-leave-active[data-v-cd8f53b2]{transition:transform .15s,opacity .15s}.dialog-pop-enter-from[data-v-cd8f53b2]{transform:scale(.92) translateY(8px);opacity:0}.dialog-pop-leave-to[data-v-cd8f53b2]{transform:scale(.96);opacity:0}.login-modal-box[data-v-7b683a8d]{padding:0!important;overflow:hidden}.login-banner[data-v-7b683a8d]{position:relative;padding:22px 24px;background:var(--c-jade-dark);overflow:hidden}.login-banner-bg[data-v-7b683a8d]{position:absolute;inset:0;background:radial-gradient(circle at 80% 20%,rgba(255,255,255,.12),transparent 60%)}.login-brand[data-v-7b683a8d]{position:relative;display:flex;align-items:center;gap:12px}.login-brand-ic[data-v-7b683a8d]{width:40px;height:40px;border-radius:var(--r-sm);background:#ffffff26;color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px}.login-brand-title[data-v-7b683a8d]{color:#fff;font-size:16px;font-weight:600}.login-brand-sub[data-v-7b683a8d]{color:#ffffffbf;font-size:12px}.login-body[data-v-7b683a8d]{padding:28px 24px 32px;display:flex;flex-direction:column;align-items:center;gap:18px}.login-qr-wrap[data-v-7b683a8d]{position:relative;display:flex;align-items:center;justify-content:center}.login-qr[data-v-7b683a8d]{width:200px;height:200px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--c-border);border-radius:var(--r-md);overflow:hidden;box-shadow:0 4px 16px #15241f0f}.login-qr img[data-v-7b683a8d]{width:180px;height:180px;object-fit:contain}.login-qr-success[data-v-7b683a8d]{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:#fffffff5;border-radius:var(--r-md);color:#07c160;font-size:16px;font-weight:600}.login-qr-success i[data-v-7b683a8d]{font-size:48px}.login-status[data-v-7b683a8d]{display:flex;align-items:center;gap:8px}.login-status-dot[data-v-7b683a8d]{width:8px;height:8px;border-radius:50%;background:#07c160;animation:pulse-7b683a8d 1.4s ease-in-out infinite}.login-status-text[data-v-7b683a8d]{font-size:15px;color:var(--c-text);font-weight:500}.login-refresh[data-v-7b683a8d]{margin-left:8px}@keyframes pulse-7b683a8d{0%,to{opacity:1}50%{opacity:.4}}.rule-box[data-v-1a86a2e3]{width:760px;max-width:96vw}.form-group[data-v-1a86a2e3]{margin-bottom:16px}.type-tabs[data-v-1a86a2e3]{display:flex;gap:8px}.type-tab[data-v-1a86a2e3]{flex:1;padding:10px;font-size:13px;font-weight:500;background:var(--c-bg-muted);color:var(--c-text-soft);border:1px solid var(--c-border);border-radius:var(--r-sm);cursor:pointer;transition:all .15s;display:inline-flex;align-items:center;justify-content:center;gap:6px}.type-tab[data-v-1a86a2e3]:hover{background:var(--c-jade-bg)}.type-tab.active[data-v-1a86a2e3]{background:var(--c-jade);color:#fff;border-color:var(--c-jade)}.multi-grid[data-v-1a86a2e3]{display:flex;flex-wrap:wrap;gap:8px}.multi-chip[data-v-1a86a2e3]{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;font-size:13px;border-radius:var(--r-full);background:var(--c-bg-muted);color:var(--c-text-soft);border:1px solid var(--c-border);cursor:pointer;transition:all .15s}.multi-chip[data-v-1a86a2e3]:hover{border-color:#c4ddd0}.multi-chip.on[data-v-1a86a2e3]{background:var(--c-jade);color:#fff;border-color:var(--c-jade)}.chip-dot[data-v-1a86a2e3]{width:8px;height:8px;border-radius:50%}.time-head[data-v-1a86a2e3]{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.multi-head[data-v-1a86a2e3]{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.slot-tip[data-v-1a86a2e3]{margin:6px 0 8px;color:var(--c-text-mute)}.slot-tip i[data-v-1a86a2e3]{color:var(--c-jade);margin-right:4px}.time-actions[data-v-1a86a2e3]{display:flex;gap:6px}.mini-btn[data-v-1a86a2e3]{padding:5px 10px;font-size:12px;border-radius:var(--r-xs);background:var(--c-bg-muted);color:var(--c-text-soft);border:1px solid var(--c-border);cursor:pointer}.mini-btn[data-v-1a86a2e3]:hover{background:var(--c-jade-bg);color:var(--c-jade-dark)}.mini-btn.on[data-v-1a86a2e3]{background:var(--c-jade);color:#fff;border-color:var(--c-jade)}.teacher-quick[data-v-1a86a2e3]{position:relative}.quick-btn[data-v-1a86a2e3]{display:inline-flex;align-items:center;gap:5px}.quick-arrow[data-v-1a86a2e3]{font-size:9px;transition:transform .15s}.quick-btn.on .quick-arrow[data-v-1a86a2e3]{transform:rotate(180deg)}.quick-menu[data-v-1a86a2e3]{position:absolute;top:calc(100% + 4px);right:0;z-index:60;min-width:220px;background:#fff;border:1px solid var(--c-border);border-radius:var(--r-sm);box-shadow:0 8px 20px #15241f26;overflow:hidden;max-height:320px;overflow-y:auto}.quick-group-title[data-v-1a86a2e3]{padding:8px 12px 4px;font-size:11px;font-weight:600;color:var(--c-text-mute)}.quick-count[data-v-1a86a2e3]{margin-left:auto;font-size:11px;color:var(--c-text-mute)}.quick-count.muted[data-v-1a86a2e3]{color:var(--c-text-mute)}.fill-divider[data-v-1a86a2e3]{height:1px;background:var(--c-border);margin:2px 0}.fill-item[data-v-1a86a2e3]{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;font-size:13px;color:var(--c-text);background:none;border:none;cursor:pointer;text-align:left;transition:background .1s}.fill-item[data-v-1a86a2e3]:hover{background:var(--c-bg-muted)}.fill-item i[data-v-1a86a2e3]{width:14px;text-align:center;color:var(--c-jade)}.slot-table-wrap[data-v-1a86a2e3]{border:1px solid var(--c-border);border-radius:var(--r-sm);overflow:hidden;max-height:320px;overflow-y:auto}.slot-table[data-v-1a86a2e3]{width:100%;border-collapse:collapse;font-size:12px}.slot-table th[data-v-1a86a2e3],.slot-table td[data-v-1a86a2e3]{border:1px solid var(--c-border)}.slot-table thead th[data-v-1a86a2e3]{background:var(--c-jade-bg);color:var(--c-jade-dark);font-weight:600;padding:8px 4px;position:sticky;top:0;z-index:2}.st-corner[data-v-1a86a2e3]{min-width:84px;text-align:center}.st-day[data-v-1a86a2e3]{min-width:64px;text-align:center}.st-period[data-v-1a86a2e3]{background:var(--c-bg-muted);padding:4px;text-align:center}.st-period-label[data-v-1a86a2e3]{font-size:11px;color:var(--c-text-soft);white-space:nowrap}.st-row-m .st-period[data-v-1a86a2e3]{background:var(--c-jade-bg)}.st-row-m .st-period-label[data-v-1a86a2e3]{color:var(--c-jade-dark)}.st-row-a .st-period[data-v-1a86a2e3]{background:var(--c-clay-bg)}.st-row-a .st-period-label[data-v-1a86a2e3]{color:var(--c-clay-dark)}.st-row-e .st-period[data-v-1a86a2e3]{background:var(--c-bg-muted)}.st-cell[data-v-1a86a2e3]{height:34px;text-align:center;cursor:pointer;background:var(--c-surface);transition:background .1s;color:var(--c-jade);user-select:none;-webkit-user-select:none}.st-cell.sec-m[data-v-1a86a2e3]{background:#f3f8f5}.st-cell.sec-a[data-v-1a86a2e3]{background:#faf3ef}.st-cell.sec-e[data-v-1a86a2e3]{background:var(--c-bg-soft)}.st-cell[data-v-1a86a2e3]:hover{background:var(--c-jade-bg)}.st-cell.on[data-v-1a86a2e3]{background:var(--c-jade)!important;color:#fff}.st-cell.on i[data-v-1a86a2e3]{font-size:13px}.class-row[data-v-1a86a2e3]{display:flex;gap:10px}.preview-box[data-v-1a86a2e3]{margin-top:8px;padding:10px 12px;background:var(--c-jade-bg);border:1px solid #C4DDD0;border-radius:var(--r-sm);display:flex;align-items:center;gap:8px;font-size:13px}.preview-label[data-v-1a86a2e3]{color:var(--c-jade-dark);font-weight:600;flex-shrink:0}.preview-text[data-v-1a86a2e3]{color:var(--c-text)}@media (max-width: 768px){.type-tabs[data-v-1a86a2e3],.class-row[data-v-1a86a2e3]{flex-direction:column}}.progress-box[data-v-5e22a8d9]{width:560px;max-width:92vw}.progress-head[data-v-5e22a8d9]{display:flex;align-items:center;gap:14px;padding:20px 22px 14px}.progress-icon[data-v-5e22a8d9]{width:44px;height:44px;border-radius:var(--r-md);background:var(--c-jade-bg);color:var(--c-jade);display:flex;align-items:center;justify-content:center;font-size:20px}.progress-title[data-v-5e22a8d9]{font-size:16px;font-weight:600;color:var(--c-text)}.progress-sub[data-v-5e22a8d9]{font-size:12px;color:var(--c-text-mute);margin-top:2px}.progress-bar-wrap[data-v-5e22a8d9]{height:8px;background:var(--c-bg-muted);border-radius:var(--r-full);overflow:hidden;margin:0 22px}.progress-bar-fill[data-v-5e22a8d9]{height:100%;background:var(--c-jade);border-radius:var(--r-full);transition:width .3s}.progress-meta[data-v-5e22a8d9]{display:flex;justify-content:space-between;align-items:center;padding:8px 22px 12px}.progress-msg[data-v-5e22a8d9]{font-size:12px;color:var(--c-text-soft);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.progress-pct[data-v-5e22a8d9]{font-size:13px;font-weight:600;color:var(--c-jade-dark);font-variant-numeric:tabular-nums;margin-left:12px}.progress-log[data-v-5e22a8d9]{margin:0 22px;height:160px;overflow-y:auto;background:var(--c-bg-muted);border:1px solid var(--c-border);border-radius:var(--r-sm);padding:10px;font-family:var(--font-mono);font-size:11px;line-height:1.6}.log-line[data-v-5e22a8d9]{display:flex;gap:8px;color:var(--c-text-soft)}.log-ts[data-v-5e22a8d9]{color:var(--c-text-mute);flex-shrink:0}.log-text[data-v-5e22a8d9]{white-space:pre-wrap;word-break:break-all}.log-line.error .log-text[data-v-5e22a8d9]{color:var(--c-error)}.log-line.warn .log-text[data-v-5e22a8d9]{color:var(--c-warning)}.log-line.success .log-text[data-v-5e22a8d9]{color:var(--c-success)}.progress-actions[data-v-5e22a8d9]{display:flex;justify-content:flex-end;padding:14px 22px 18px}.pay-overlay[data-v-a36e6906]{position:fixed;inset:0;background:#15241f8c;display:flex;align-items:center;justify-content:center;z-index:9999;padding:20px;animation:fadeIn-a36e6906 .25s ease}@keyframes fadeIn-a36e6906{0%{opacity:0}to{opacity:1}}.pay-window[data-v-a36e6906]{position:relative;background:#fff;border-radius:20px;width:880px;max-width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 24px 60px #15241f4d;animation:slideUp-a36e6906 .3s cubic-bezier(.4,0,.2,1)}@keyframes slideUp-a36e6906{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.pay-close[data-v-a36e6906]{position:absolute;top:16px;right:16px;width:36px;height:36px;border:none;background:#f5f5f5;border-radius:50%;cursor:pointer;font-size:16px;color:#909399;display:flex;align-items:center;justify-content:center;transition:all .15s;z-index:10}.pay-close[data-v-a36e6906]:hover{background:#e8e8e8;color:var(--c-text);transform:rotate(90deg)}.pay-list[data-v-a36e6906]{padding:36px 32px 28px}.pay-header[data-v-a36e6906]{text-align:center;margin-bottom:32px}.pay-header-icon[data-v-a36e6906]{width:56px;height:56px;margin:0 auto 12px;background:linear-gradient(135deg,var(--c-jade),var(--c-jade-dark));border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:24px;color:#fff;box-shadow:0 4px 16px #2f7a5e59}.pay-header h2[data-v-a36e6906]{font-size:24px;font-weight:800;color:var(--c-text);margin-bottom:6px}.pay-header p[data-v-a36e6906]{font-size:14px;color:var(--c-text-mute)}.pay-loading-state[data-v-a36e6906]{text-align:center;padding:60px 0;color:var(--c-text-mute)}.pay-loading-state p[data-v-a36e6906]{margin-top:16px;font-size:14px}.spinner-lg[data-v-a36e6906]{width:40px;height:40px;margin:0 auto;border:3px solid var(--c-border);border-top-color:var(--c-jade);border-radius:50%;animation:spin-a36e6906 .8s linear infinite}@keyframes spin-a36e6906{to{transform:rotate(360deg)}}.pay-empty[data-v-a36e6906]{text-align:center;padding:50px 0;color:var(--c-text-mute)}.pay-empty i[data-v-a36e6906]{font-size:48px;opacity:.4}.pay-empty p[data-v-a36e6906]{margin-top:16px;font-size:15px}.pay-cards[data-v-a36e6906]{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:18px}.pay-card[data-v-a36e6906]{position:relative;border:2px solid var(--c-border);border-radius:16px;padding:28px 16px 20px;text-align:center;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;align-items:center;min-height:220px;overflow:hidden}.pay-card[data-v-a36e6906]:not(.is-unlimited):hover{border-color:var(--c-jade);transform:translateY(-6px);box-shadow:0 12px 32px #2f7a5e33}.card-name[data-v-a36e6906]{font-size:16px;font-weight:700;color:var(--c-text);margin-bottom:12px}.card-price[data-v-a36e6906]{margin-bottom:4px;line-height:1}.price-cur[data-v-a36e6906]{font-size:16px;color:var(--c-clay);font-weight:600;vertical-align:top}.price-val[data-v-a36e6906]{font-size:38px;font-weight:900;color:var(--c-clay);letter-spacing:-1px}.card-sub[data-v-a36e6906]{font-size:14px;color:var(--c-text-soft);font-weight:600;margin-bottom:2px}.buy-btn-jade[data-v-a36e6906]{margin-top:auto;width:100%;padding:10px 0;background:linear-gradient(135deg,var(--c-jade),var(--c-jade-dark));color:#fff;font-size:15px;font-weight:700;border-radius:10px;text-align:center;transition:all .2s}.pay-card:not(.is-unlimited):hover .buy-btn-jade[data-v-a36e6906]{box-shadow:0 4px 12px #2f7a5e66}.pay-card.is-unlimited[data-v-a36e6906]{border:none;background:linear-gradient(160deg,#1a1209,#3d2810,#6b441a 60%,#8b5e1e);box-shadow:0 0 30px #ffc83240,inset 0 0 24px #ffd70014}.pay-card.is-unlimited[data-v-a36e6906]:hover{transform:translateY(-8px) scale(1.03);box-shadow:0 0 50px #ffc83273,inset 0 0 32px #ffd7001f}.crown-badge[data-v-a36e6906]{font-size:30px;color:gold;margin-bottom:6px;text-shadow:0 0 15px rgba(255,215,0,.7),0 0 30px rgba(255,200,0,.4);filter:drop-shadow(0 2px 4px rgba(0,0,0,.5))}.unlimited-name[data-v-a36e6906]{font-size:32px;font-weight:900;color:transparent;background:linear-gradient(180deg,#fff4a0,gold 40%,#fa0);-webkit-background-clip:text;background-clip:text;letter-spacing:4px;margin-bottom:8px}.pay-card.is-unlimited .price-cur[data-v-a36e6906]{color:gold}.pay-card.is-unlimited .price-val[data-v-a36e6906]{color:transparent;background:linear-gradient(180deg,#fff4a0,gold);-webkit-background-clip:text;background-clip:text;filter:drop-shadow(0 0 8px rgba(255,215,0,.4))}.unlimited-sub[data-v-a36e6906]{font-size:13px;color:#ffd700cc;letter-spacing:1px;margin-bottom:12px}.pay-footer-hint[data-v-a36e6906]{text-align:center;margin-top:24px;font-size:12px;color:var(--c-text-mute)}.pay-footer-hint i[data-v-a36e6906]{color:var(--c-jade)}.pay-qr-view[data-v-a36e6906]{padding:48px 32px;text-align:center}.pay-qr-view h2[data-v-a36e6906]{font-size:20px;margin-bottom:16px}.pay-amount-display[data-v-a36e6906]{font-size:36px;font-weight:900;color:var(--c-clay)}.pay-pkg-label[data-v-a36e6906]{color:var(--c-text-soft);font-size:14px;margin-bottom:24px}.pay-qr-img[data-v-a36e6906]{display:inline-block}.pay-qr-img img[data-v-a36e6906]{width:240px;height:240px;border-radius:12px;border:1px solid var(--c-border)}.qr-loading[data-v-a36e6906]{padding:80px 0}.qr-loading p[data-v-a36e6906]{margin-top:16px;color:var(--c-text-mute)}.pay-tip[data-v-a36e6906]{margin-top:20px;font-size:13px;color:var(--c-text-mute)}.pay-success-view[data-v-a36e6906]{padding:60px 32px;text-align:center}.success-icon[data-v-a36e6906]{font-size:64px;color:var(--c-jade);margin-bottom:20px}.pay-success-view h2[data-v-a36e6906]{font-size:22px;margin-bottom:8px}.pay-success-view p[data-v-a36e6906]{color:var(--c-text-mute);font-size:14px}@media (max-width: 720px){.pay-cards[data-v-a36e6906]{grid-template-columns:repeat(2,1fr)}}:root{--c-jade: #2F7A5E;--c-jade-dark: #245F4A;--c-jade-light: #6FAA92;--c-jade-bg: #E8F0EC;--c-clay: #C0633E;--c-clay-dark: #9E4E2F;--c-clay-bg: #F7E9E1;--c-bg: #F7F6F1;--c-bg-soft: #FFFFFF;--c-bg-muted: #EFEEE8;--c-surface: #FFFFFF;--c-border: #E2E0D6;--c-border-strong:#D0CCBE;--c-text: #15241F;--c-text-soft: #4A5750;--c-text-mute: #8A948C;--c-success: #3E8E5A;--c-success-bg: #EAF3EE;--c-warning: #C0633E;--c-warning-bg: #F7E9E1;--c-error: #B23A3A;--c-error-bg: #F7E6E6;--c-info: var(--c-jade);--c-info-bg: var(--c-jade-bg);--c-primary: var(--c-jade);--c-primary-dark: var(--c-jade-dark);--c-primary-light: var(--c-jade-light);--c-primary-bg: var(--c-jade-bg);--c-orange: var(--c-clay);--c-orange-dark: var(--c-clay-dark);--c-orange-bg: var(--c-clay-bg);--r-xs: 4px;--r-sm: 6px;--r-md: 8px;--r-lg: 10px;--r-full: 999px;--wrap: 1366px;--font: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font);font-size:14px;line-height:1.6;color:var(--c-text);background:var(--c-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh}body[data-view=workspace]{height:100vh;overflow:hidden}body[data-view=workspace] main.wrap.main{height:calc(100vh - 56px);display:flex;flex-direction:column;min-height:0;padding-top:16px}body[data-view=workspace] #workspace-view{flex:1;min-height:0;display:flex;flex-direction:column}body[data-view=workspace] .footer{display:none}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;background:none;transition:background-color .15s,border-color .15s,color .15s}input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}ul{list-style:none}.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}.is-hidden{display:none!important}.muted{color:var(--c-text-mute)}.muted.small,.small{font-size:12px}.center{text-align:center}.mb{margin-bottom:16px}.mono{font-family:var(--font-mono)}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:var(--r-sm);font-size:13px;font-weight:500;white-space:nowrap;line-height:1;border:1px solid transparent;height:34px}.btn i{font-size:13px}.btn-primary{background:var(--c-jade);color:#fff;border-color:var(--c-jade)}.btn-primary:hover{background:var(--c-jade-dark);border-color:var(--c-jade-dark)}.btn-primary:disabled{background:var(--c-text-mute);border-color:var(--c-text-mute);cursor:not-allowed}.btn-cta{background:var(--c-clay);color:#fff;border-color:var(--c-clay)}.btn-cta:hover{background:var(--c-clay-dark);border-color:var(--c-clay-dark)}.btn-cta:disabled{background:#d9b3a1;border-color:#d9b3a1;cursor:not-allowed}.btn-soft{background:var(--c-bg-muted);color:var(--c-text);border-color:var(--c-border)}.btn-soft:hover{background:#e2e0d6}.btn-ghost{background:transparent;color:var(--c-text-soft);border-color:var(--c-border)}.btn-ghost:hover{background:var(--c-bg-muted);color:var(--c-text)}.btn-warn{background:var(--c-warning);color:#fff;border-color:var(--c-warning)}.btn-warn:hover{background:var(--c-clay-dark);border-color:var(--c-clay-dark)}.btn-warn:disabled{background:#d9b3a1;border-color:#d9b3a1;cursor:not-allowed}.btn-lg{padding:11px 22px;font-size:14px;height:42px}.btn-lg i{font-size:14px}.btn-sm{padding:5px 10px;font-size:12px;height:28px}.btn-xs{padding:2px 8px;font-size:11px;height:22px}.icon-btn{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r-xs);color:var(--c-text-mute);border:1px solid transparent}.icon-btn:hover{background:var(--c-bg-muted);color:var(--c-text);border-color:var(--c-border)}.topbar-user{display:flex;align-items:center;gap:10px}.topbar{position:sticky;top:0;z-index:100;background:#f7f6f1e6;backdrop-filter:saturate(180%) blur(12px);-webkit-backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--c-border)}.topbar-inner{display:flex;align-items:center;justify-content:space-between;height:56px}.brand{display:flex;align-items:center;gap:8px;text-decoration:none;cursor:pointer}.brand-mark{font-size:20px;line-height:1}.brand-name{font-size:16px;font-weight:600;color:var(--c-text);letter-spacing:-.2px}.brand-tag{font-size:11px;color:var(--c-text-mute);padding-left:8px;margin-left:2px;border-left:1px solid var(--c-border)}.topnav{display:flex;gap:24px}.topnav a{font-size:13px;color:var(--c-text-soft);font-weight:500}.topnav a:hover{color:var(--c-jade)}.section-head{margin-bottom:28px}.section-head h2{font-size:26px;font-weight:700;color:var(--c-text);letter-spacing:-.5px;margin-bottom:6px}.section-head p{color:var(--c-text-mute);font-size:14px}.card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-md);padding:20px}.form-label{display:block;font-size:13px;font-weight:500;color:var(--c-text-soft);margin-bottom:6px}.form-input{width:100%;padding:8px 12px;font-size:14px;background:var(--c-bg-soft);border:1px solid var(--c-border);border-radius:var(--r-sm);color:var(--c-text);outline:none;transition:border-color .15s}.form-input:focus{border-color:var(--c-jade)}.form-input::placeholder{color:var(--c-text-mute)}textarea.form-input{resize:vertical;min-height:80px}.modal{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:20px}.modal-mask{position:absolute;inset:0;background:#15241f73}.modal-box{position:relative;background:var(--c-surface);border-radius:var(--r-lg);width:640px;max-width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 12px 32px #15241f2e;animation:modalIn .22s ease}.modal-sm{width:420px}.modal-lg{width:880px}@keyframes modalIn{0%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--c-border)}.modal-title{font-size:16px;font-weight:600;color:var(--c-text)}.modal-body{padding:22px}.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 22px;border-top:1px solid var(--c-border)}.modal-close{position:absolute;top:14px;right:14px}.spinner{width:22px;height:22px;border:2px solid var(--c-border);border-top-color:var(--c-jade);border-radius:50%;animation:zxspin .7s linear infinite}.spinner-lg{width:40px;height:40px;border-width:3px}@keyframes zxspin{to{transform:rotate(360deg)}}table.data-table{width:100%;border-collapse:collapse;font-size:13px}table.data-table th{background:var(--c-jade-bg);color:var(--c-jade-dark);font-weight:600;text-align:left;padding:10px 12px;border-bottom:1px solid var(--c-border);white-space:nowrap}table.data-table td{padding:10px 12px;border-bottom:1px solid var(--c-border);color:var(--c-text)}@media (max-width: 768px){.wrap{padding:0 16px}.topbar-inner{height:52px}.brand-tag,.topnav{display:none}.section-head h2{font-size:20px}}@media (min-width: 1921px){:root{--wrap: 1920px}}
