.auth-page[data-v-281b047c]{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden;padding:40px 20px;background:linear-gradient(165deg,#eef3ff,#f8faff 45%,#eef4ff);font-family:PingFang SC,Microsoft YaHei,Segoe UI,sans-serif}.bg-blob[data-v-281b047c]{position:absolute;border-radius:50%;filter:blur(80px);opacity:.5;pointer-events:none}.b1[data-v-281b047c]{width:460px;height:460px;background:#c9d8ff;top:-160px;right:-120px}.b2[data-v-281b047c]{width:380px;height:380px;background:#dff0ff;bottom:-140px;left:-100px}.b3[data-v-281b047c]{width:260px;height:260px;background:#e4e9ff;bottom:20%;right:8%;opacity:.35}.back-link[data-v-281b047c]{position:absolute;top:24px;left:28px;color:#8a93ad;font-size:13px;cursor:pointer;z-index:2}.back-link[data-v-281b047c]:hover{color:#24408e}.auth-card[data-v-281b047c]{position:relative;z-index:1;width:100%;max-width:430px;background:#fff;border-radius:18px;padding:38px 36px 30px;box-shadow:0 24px 70px #1e3a8a1f,0 2px 8px #1e3a8a0d;border:1px solid rgba(232,238,250,.9)}.brand[data-v-281b047c]{display:flex;align-items:center;justify-content:center;gap:9px;cursor:pointer;margin-bottom:26px}.mark[data-v-281b047c]{width:38px;height:38px;border-radius:11px;background:linear-gradient(135deg,#24408e,#3b5bdb);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px}.wordmark[data-v-281b047c]{font-size:19px;font-weight:700;letter-spacing:1.5px;color:#1a2340}.tabs[data-v-281b047c]{display:flex;gap:4px;border-bottom:1px solid #edf1f9;margin-bottom:22px}.tabs button[data-v-281b047c]{flex:1;border:none;background:transparent;padding:10px 0 12px;font-size:14.5px;color:#7c86a0;cursor:pointer;position:relative}.tabs button.on[data-v-281b047c]{color:#24408e;font-weight:700}.tabs button.on[data-v-281b047c]:after{content:"";position:absolute;left:50%;transform:translate(-50%);bottom:-1px;width:46px;height:2.5px;border-radius:2px;background:linear-gradient(135deg,#24408e,#3b5bdb)}.title[data-v-281b047c]{margin:0;font-size:22px;font-weight:700;letter-spacing:1px;color:#1a2340}.sub[data-v-281b047c]{margin:8px 0 22px;color:#7c86a0;font-size:13px}input[data-v-281b047c],.sel[data-v-281b047c]{width:100%;border:1px solid #dfe5f0;border-radius:10px;padding:11px 13px;font-size:14px;margin-bottom:12px;background:#fff;outline:none;transition:border .15s,box-shadow .15s}input[data-v-281b047c]:focus,.sel[data-v-281b047c]:focus{border-color:#3b5bdb;box-shadow:0 0 0 3px #3b5bdb1f}.primary[data-v-281b047c]{width:100%;border:none;cursor:pointer;border-radius:10px;margin-top:4px;background:linear-gradient(135deg,#24408e,#3b5bdb);color:#fff;padding:12px 0;font-size:15px;font-weight:600;letter-spacing:2px;box-shadow:0 8px 20px #24408e47;transition:all .18s}.primary[data-v-281b047c]:hover{transform:translateY(-1px);box-shadow:0 12px 26px #24408e57}.primary[data-v-281b047c]:disabled{opacity:.55;cursor:not-allowed;transform:none}.err[data-v-281b047c]{background:#fdeef0;color:#c0392b;font-size:12.5px;padding:8px 11px;border-radius:8px;margin-bottom:12px}.ok[data-v-281b047c]{margin-top:12px;color:#1a9e6c;font-size:12.5px;text-align:center}.code-row[data-v-281b047c]{display:flex;gap:8px;margin-bottom:12px}.code-row input[data-v-281b047c]{flex:1;margin-bottom:0}.code-btn[data-v-281b047c]{flex:none;width:112px;border:1px solid #3b5bdb;color:#3b5bdb;background:#fff;border-radius:10px;font-size:12.5px;cursor:pointer}.code-btn[data-v-281b047c]:disabled{opacity:.5;cursor:not-allowed}.foot[data-v-281b047c]{margin-top:18px;text-align:center;color:#9aa4c0;font-size:12.5px}.foot a[data-v-281b047c]{color:#3b5bdb;cursor:pointer}.foot a[data-v-281b047c]:hover{text-decoration:underline}.foot .dot[data-v-281b047c]{margin:0 8px;color:#c6cde0}.muted-link[data-v-281b047c]{margin-top:12px;text-align:center;color:#9aa4c0;font-size:12.5px}.muted-link a[data-v-281b047c]{color:#3b5bdb;cursor:pointer}.muted-link a[data-v-281b047c]:hover{text-decoration:underline}.page-foot[data-v-281b047c]{position:absolute;bottom:18px;color:#9aa4c0;font-size:12px;z-index:1}@media(max-width:480px){.auth-card[data-v-281b047c]{padding:28px 22px 22px}.back-link[data-v-281b047c]{top:16px;left:16px}}.landing[data-v-97b66e86]{background:#fbfcff;color:#1a2340;font-family:PingFang SC,Microsoft YaHei,Segoe UI,sans-serif}h1[data-v-97b66e86],h2[data-v-97b66e86],h3[data-v-97b66e86]{margin:0;font-weight:700}h2[data-v-97b66e86]{font-size:30px;text-align:center;letter-spacing:1px}.sec-sub[data-v-97b66e86]{text-align:center;color:#6b7690;margin:12px 0 0;font-size:15px}.btn[data-v-97b66e86]{border:none;cursor:pointer;border-radius:10px;font-size:14px;padding:9px 18px;transition:all .18s}.btn.solid[data-v-97b66e86]{background:linear-gradient(135deg,#24408e,#3b5bdb);color:#fff;box-shadow:0 6px 16px #24408e40}.btn.solid[data-v-97b66e86]:hover{transform:translateY(-1px);box-shadow:0 10px 22px #24408e52}.btn.ghost[data-v-97b66e86]{background:#fff;color:#24408e;border:1px solid #cdd7f2}.btn.ghost[data-v-97b66e86]:hover{border-color:#3b5bdb}.btn.lg[data-v-97b66e86]{padding:13px 30px;font-size:15.5px;border-radius:12px}.topnav[data-v-97b66e86]{position:sticky;top:0;z-index:20;background:#fbfcffdb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid #e8edf8}.topnav-in[data-v-97b66e86]{max-width:1300px;margin:0 auto;display:flex;align-items:center;gap:28px;padding:14px 24px}.brand[data-v-97b66e86]{display:flex;align-items:center;gap:10px;cursor:pointer;margin-right:auto}.mark[data-v-97b66e86]{width:34px;height:34px;border-radius:9px;background:linear-gradient(135deg,#24408e,#3b5bdb);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:17px}.name[data-v-97b66e86]{font-size:18px;font-weight:700;letter-spacing:1px}.links[data-v-97b66e86]{display:flex;gap:22px}.links a[data-v-97b66e86]{color:#4a5578;text-decoration:none;font-size:14.5px}.links a[data-v-97b66e86]:hover{color:#24408e}.topnav-cta[data-v-97b66e86]{display:flex;gap:10px}.hero[data-v-97b66e86]{position:relative;overflow:hidden;background:linear-gradient(165deg,#eef3ff,#f8faff 48%,#fff)}.blob[data-v-97b66e86]{position:absolute;border-radius:50%;filter:blur(70px);opacity:.55}.b1[data-v-97b66e86]{width:420px;height:420px;background:#c9d8ff;top:-140px;right:-80px}.b2[data-v-97b66e86]{width:360px;height:360px;background:#dff0ff;bottom:-160px;left:-90px}.hero-in[data-v-97b66e86]{position:relative;max-width:1300px;margin:0 auto;padding:84px 24px 72px;display:grid;grid-template-columns:1.08fr .92fr;gap:48px;align-items:center}.badge[data-v-97b66e86]{display:inline-block;background:#e6ecff;color:#24408e;font-size:13px;padding:6px 14px;border-radius:999px;margin-bottom:22px;letter-spacing:1px}.hero h1[data-v-97b66e86]{font-size:52px;line-height:1.18;letter-spacing:2px}.sub[data-v-97b66e86]{color:#5a6478;font-size:16.5px;line-height:1.9;margin:22px 0 30px;max-width:520px}.hero-cta[data-v-97b66e86]{display:flex;gap:14px}.hero-points[data-v-97b66e86]{display:flex;gap:22px;margin-top:26px;color:#7c86a0;font-size:13px}.hero-visual[data-v-97b66e86]{display:flex;justify-content:center}.tt-card[data-v-97b66e86]{background:#fff;border-radius:16px;box-shadow:0 24px 60px #1e3a8a24;padding:16px 18px 12px;width:380px;transform:rotate(-1.2deg)}.tt-head[data-v-97b66e86]{display:flex;align-items:center;gap:6px;margin-bottom:12px}.dot[data-v-97b66e86]{width:9px;height:9px;border-radius:50%}.dot.r[data-v-97b66e86]{background:#ff9f9f}.dot.y[data-v-97b66e86]{background:#ffd48a}.dot.g[data-v-97b66e86]{background:#9fe3b8}.tt-title[data-v-97b66e86]{margin-left:8px;font-size:13px;color:#4a5578;font-weight:600}.tt-grid[data-v-97b66e86]{display:grid;grid-template-columns:44px repeat(3,1fr);gap:6px}.tt-cell[data-v-97b66e86]{border-radius:8px;padding:9px 4px;text-align:center;font-size:13px}.tt-cell.h[data-v-97b66e86]{background:#f0f4ff;color:#4a5578;font-weight:600}.tt-cell.p[data-v-97b66e86]{color:#9aa4c0;background:#fafbff}.tt-cell.v[data-v-97b66e86]{color:#fff;font-weight:600;letter-spacing:2px}.tt-cell.math[data-v-97b66e86]{background:linear-gradient(135deg,#3562e8,#4f74f0)}.tt-cell.cn[data-v-97b66e86]{background:linear-gradient(135deg,#d9555f,#e77a80)}.tt-cell.en[data-v-97b66e86]{background:linear-gradient(135deg,#1f9e77,#35b892)}.tt-cell.ph[data-v-97b66e86]{background:linear-gradient(135deg,#7b5cd6,#9678e8)}.tt-cell.bio[data-v-97b66e86]{background:linear-gradient(135deg,#2d9cdb,#54b6e8)}.tt-foot[data-v-97b66e86]{margin-top:12px;text-align:center;color:#7c86a0;font-size:12.5px}.strip[data-v-97b66e86]{background:#1d2c5e;color:#fff}.strip-in[data-v-97b66e86]{max-width:1300px;margin:0 auto;padding:26px 24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:18px}.st[data-v-97b66e86]{text-align:center;flex:1;min-width:150px}.st b[data-v-97b66e86]{display:block;font-size:22px;letter-spacing:1px}.st span[data-v-97b66e86]{color:#b9c4e8;font-size:13px}.features[data-v-97b66e86]{max-width:1300px;margin:0 auto;padding:84px 24px 30px}.grid[data-v-97b66e86]{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:44px}.card[data-v-97b66e86]{background:#fff;border-radius:16px;padding:30px 26px;box-shadow:0 6px 24px #1e3a8a0f;border:1px solid #eef2fb;transition:all .2s}.card[data-v-97b66e86]:hover{transform:translateY(-4px);box-shadow:0 16px 36px #1e3a8a1c}.ic[data-v-97b66e86]{width:46px;height:46px;border-radius:12px;background:linear-gradient(135deg,#e9efff,#f4f7ff);display:flex;align-items:center;justify-content:center;margin-bottom:18px}.ic svg[data-v-97b66e86]{width:26px;height:26px;fill:none;stroke:#24408e;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.card h3[data-v-97b66e86]{font-size:17.5px;margin-bottom:10px}.card p[data-v-97b66e86]{color:#6b7690;font-size:13.8px;line-height:1.85;margin:0}.steps[data-v-97b66e86]{max-width:1300px;margin:0 auto;padding:76px 24px 20px}.steps-in[data-v-97b66e86]{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:44px}.step[data-v-97b66e86]{position:relative;background:linear-gradient(170deg,#f2f6ff,#fff);border:1px solid #e8eefb;border-radius:16px;padding:30px 26px}.step .n[data-v-97b66e86]{font-size:34px;font-weight:800;color:#d3ddfa;letter-spacing:2px;margin-bottom:8px}.step h3[data-v-97b66e86]{font-size:17px;margin-bottom:8px}.step p[data-v-97b66e86]{color:#6b7690;font-size:13.8px;line-height:1.8;margin:0}.cta[data-v-97b66e86]{text-align:center;padding:90px 24px;background:linear-gradient(165deg,#1d2c5e,#2a4394);color:#fff;margin-top:40px}.cta h2[data-v-97b66e86]{color:#fff;letter-spacing:2px}.cta p[data-v-97b66e86]{color:#b9c4e8;margin:16px 0 30px;font-size:15px}.foot[data-v-97b66e86]{background:#16224a;color:#8f9cc4;display:flex;align-items:center;justify-content:space-between;max-width:none;padding:22px 24px;font-size:13px}.foot-links[data-v-97b66e86]{display:flex;gap:18px}.foot-links a[data-v-97b66e86]{color:#8f9cc4;text-decoration:none;cursor:pointer}.foot-links a[data-v-97b66e86]:hover{color:#d7def5}@media(max-width:900px){.hero-in[data-v-97b66e86]{grid-template-columns:1fr;padding-top:56px}.hero h1[data-v-97b66e86]{font-size:38px}.hero-visual[data-v-97b66e86]{margin-top:36px}.grid[data-v-97b66e86],.steps-in[data-v-97b66e86]{grid-template-columns:1fr}.links[data-v-97b66e86]{display:none}}.tv-page[data-v-637be1ac]{min-height:100vh;background:#f2f5fb;font-family:PingFang SC,Microsoft YaHei,sans-serif}.tv-bar[data-v-637be1ac]{background:linear-gradient(135deg,#1d2c5e,#2a4394);color:#fff;display:flex;align-items:center;gap:9px;padding:12px 20px}.tv-mark[data-v-637be1ac]{width:30px;height:30px;border-radius:8px;background:#ffffff29;border:1px solid rgba(255,255,255,.35);display:flex;align-items:center;justify-content:center;font-weight:700}.tv-name[data-v-637be1ac]{font-weight:700;letter-spacing:1px}.tv-main[data-v-637be1ac]{padding:18px;max-width:900px;margin:0 auto}.tv-head[data-v-637be1ac]{margin-bottom:14px}.tv-t[data-v-637be1ac]{font-size:24px;font-weight:700;color:#1a2340}.tv-s[data-v-637be1ac]{color:#7c86a0;font-size:13px;margin-top:4px}.tv-switch[data-v-637be1ac]{display:flex;gap:10px;align-items:center;margin-bottom:14px;flex-wrap:wrap}.seg[data-v-637be1ac]{border:1px solid #cdd7f2;background:#fff;color:#24408e;border-radius:10px;padding:9px 20px;font-size:14px;cursor:pointer}.seg.on[data-v-637be1ac]{background:#24408e;color:#fff;border-color:#24408e;font-weight:600}.seg.sel[data-v-637be1ac]{color:#1a2340;padding:9px 12px}.tv-card[data-v-637be1ac]{background:#fff;border-radius:14px;box-shadow:0 8px 30px #1e3a8a14;padding:14px}.tv-scroll[data-v-637be1ac]{overflow-x:auto}.tt[data-v-637be1ac]{border-collapse:collapse;width:100%;min-width:700px;table-layout:fixed}.tt tr:first-child th[data-v-637be1ac]:first-child{width:62px}.tt th.hd[data-v-637be1ac]{color:#1a2340;font-size:13px;padding:8px 6px;background:#e8eefb;border:1px solid #c9d3ea}.tt td.hd[data-v-637be1ac]{background:#eef2fc;color:#24408e;font-size:12px;text-align:center;border:1px solid #c9d3ea;padding:8px 4px}.tt td.hd .tm[data-v-637be1ac]{color:#7c86a0;font-size:10.5px}.cell[data-v-637be1ac]{background:#fff;border:1px solid #d7dfee;padding:8px 4px;text-align:center;vertical-align:middle;word-break:break-all}.cell .s[data-v-637be1ac]{font-weight:600;color:#1a2340;font-size:13px}.cell .c[data-v-637be1ac]{color:#7c86a0;font-size:11px;margin-top:2px}.ssrow td[data-v-637be1ac]{background:#f2f7ff;color:#3c4a6e;font-size:12px}.lunch td[data-v-637be1ac]{background:#f4f5f8;color:#9aa4c0;font-size:11px;text-align:center}.cell.blocked[data-v-637be1ac]{background:#fff6df}.cell .bk[data-v-637be1ac]{color:#a87400;font-weight:600;font-size:11px}.tv-tip[data-v-637be1ac],.tv-err[data-v-637be1ac]{color:#7c86a0;font-size:14px;padding:30px;text-align:center}.tv-err[data-v-637be1ac]{color:#c0392b}.tv-foot[data-v-637be1ac]{color:#9aa4c0;font-size:12px;text-align:center;margin-top:16px}@media(max-width:560px){.tv-main[data-v-637be1ac]{padding:12px}.tv-t[data-v-637be1ac]{font-size:20px}}@media(max-width:600px){.tv-main[data-v-637be1ac]{padding:8px}.tv-head .tv-t[data-v-637be1ac]{font-size:19px}.tv-switch[data-v-637be1ac]{gap:6px;margin-bottom:10px}.seg[data-v-637be1ac]{padding:7px 12px;font-size:12.5px}.seg.sel[data-v-637be1ac]{padding:7px 8px}.tv-card[data-v-637be1ac]{padding:6px;border-radius:10px}.tv-scroll[data-v-637be1ac]{overflow-x:visible}.tt[data-v-637be1ac]{min-width:0!important}.tt tr:first-child th[data-v-637be1ac]:first-child{width:24px}.tt th.hd[data-v-637be1ac]{font-size:9.5px;padding:4px 0}.tt td.hd[data-v-637be1ac]{font-size:8.5px;padding:3px 0}.tt td.hd .tm[data-v-637be1ac]{font-size:7px}.cell[data-v-637be1ac]{padding:1px 0}.cell .s[data-v-637be1ac]{font-size:9.5px;font-weight:600}.cell .c[data-v-637be1ac]{font-size:8px;margin-top:0}.ssrow td[data-v-637be1ac]{font-size:8.5px}.lunch td[data-v-637be1ac]{font-size:8px;padding:2px 0}.tv-foot[data-v-637be1ac]{font-size:10px}}.th-page[data-v-ea4f2eda]{min-height:100vh;background:#f2f5fb;display:flex;flex-direction:column}.th-bar[data-v-ea4f2eda]{background:linear-gradient(135deg,#1d2c5e,#2a4394);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:12px 22px}.th-brand[data-v-ea4f2eda]{display:flex;align-items:center;gap:9px}.th-mark[data-v-ea4f2eda]{width:30px;height:30px;border-radius:8px;background:#ffffff29;border:1px solid rgba(255,255,255,.35);display:flex;align-items:center;justify-content:center;font-weight:700}.th-name[data-v-ea4f2eda]{font-weight:700;letter-spacing:1px}.th-sep[data-v-ea4f2eda]{color:#fff6}.th-mode[data-v-ea4f2eda]{color:#c9d4f2;font-size:13px}.th-right[data-v-ea4f2eda]{display:flex;align-items:center;gap:14px}.th-user[data-v-ea4f2eda]{font-size:14px}.th-link[data-v-ea4f2eda]{background:none;border:none;color:#c9d4f2;cursor:pointer;font-size:13px}.th-link[data-v-ea4f2eda]:hover{color:#fff}.th-main[data-v-ea4f2eda]{flex:1;padding:22px;max-width:1200px;width:100%;margin:0 auto}.th-switch[data-v-ea4f2eda]{display:flex;gap:10px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.seg[data-v-ea4f2eda]{border:1px solid #cdd7f2;background:#fff;color:#24408e;border-radius:10px;padding:9px 22px;font-size:14px;cursor:pointer}.seg.on[data-v-ea4f2eda]{background:#24408e;color:#fff;border-color:#24408e;font-weight:600}.seg.sel[data-v-ea4f2eda]{color:#1a2340}.th-tip[data-v-ea4f2eda]{color:#7c86a0;font-size:13px}.th-card[data-v-ea4f2eda]{background:#fff;border-radius:14px;box-shadow:0 8px 30px #1e3a8a14;padding:18px}.th-scroll[data-v-ea4f2eda]{overflow-x:auto}.tt[data-v-ea4f2eda]{border-collapse:collapse;width:100%;min-width:760px;table-layout:fixed}.tt tr:first-child th[data-v-ea4f2eda]:first-child{width:62px}.tt th.hd[data-v-ea4f2eda]{color:#1a2340;font-size:13px;padding:8px 6px;background:#e8eefb;border:1px solid #c9d3ea}.tt td.hd[data-v-ea4f2eda]{background:#eef2fc;color:#24408e;font-size:12px;text-align:center;border:1px solid #c9d3ea;padding:8px 4px;width:62px}.tt td.hd .tm[data-v-ea4f2eda]{color:#7c86a0}.cell[data-v-ea4f2eda]{background:#fff;border:1px solid #d7dfee;padding:8px 4px;text-align:center;vertical-align:middle;word-break:break-all}.cell.blocked[data-v-ea4f2eda]{background:#fff6df}.cell.blocked .bk[data-v-ea4f2eda]{color:#a87400;font-weight:600;font-size:12px;letter-spacing:1px}.cell .s[data-v-ea4f2eda]{font-weight:600;color:#1a2340;font-size:13.5px}.cell .c[data-v-ea4f2eda]{color:#7c86a0;font-size:11.5px;margin-top:2px}.ssrow td[data-v-ea4f2eda]{background:#f2f7ff;color:#3c4a6e;font-size:12px}.lunch td[data-v-ea4f2eda]{background:#f4f5f8;color:#9aa4c0;font-size:11px;text-align:center}.tm[data-v-ea4f2eda]{color:#8b96b5;font-size:10.5px;font-weight:400;margin-top:1px}.ss[data-v-ea4f2eda]{color:#4a5578}.empty[data-v-ea4f2eda]{color:#7c86a0;font-size:14px;text-align:center;padding:40px}.th-meta[data-v-ea4f2eda]{margin-top:12px;color:#54608a;font-size:13px}.print-head[data-v-ea4f2eda]{display:none}.th-actions[data-v-ea4f2eda]{display:flex;gap:10px;margin-top:16px;align-items:center;flex-wrap:wrap}.act[data-v-ea4f2eda]{border:1px solid #cdd7f2;background:#fff;color:#24408e;border-radius:10px;padding:9px 18px;font-size:13.5px;cursor:pointer}.act[data-v-ea4f2eda]:hover{border-color:#3b5bdb}.act.solid[data-v-ea4f2eda]{background:#24408e;color:#fff;border-color:#24408e}.lock-tip[data-v-ea4f2eda]{color:#a86a00;font-size:12.5px;background:#fff4e5;border-radius:8px;padding:6px 12px}.mask[data-v-ea4f2eda]{position:fixed;top:0;right:0;bottom:0;left:0;background:#10183273;z-index:50;display:flex;align-items:center;justify-content:center}.pwd-card[data-v-ea4f2eda]{background:#fff;border-radius:14px;padding:26px;width:340px}.pwd-card h3[data-v-ea4f2eda]{margin:0 0 16px}.pwd-card input[data-v-ea4f2eda]{width:100%;border:1px solid #dfe5f0;border-radius:9px;padding:10px 12px;margin-bottom:12px;font-size:14px;outline:none}.pwd-card input[data-v-ea4f2eda]:focus{border-color:#3b5bdb}.pwd-err[data-v-ea4f2eda]{color:#c0392b;font-size:12.5px;margin-bottom:10px}.pwd-btns[data-v-ea4f2eda]{display:flex;gap:10px;justify-content:flex-end}.toast[data-v-ea4f2eda]{position:fixed;left:50%;bottom:40px;transform:translate(-50%) translateY(20px);background:#141e41eb;color:#fff;padding:10px 20px;border-radius:10px;font-size:13.5px;opacity:0;pointer-events:none;transition:all .25s;z-index:80}.toast.show[data-v-ea4f2eda]{opacity:1;transform:translate(-50%)}@media print{@page{size:A4 landscape;margin:8mm}.print-head[data-v-ea4f2eda]{display:block!important}.print-head .ph-title[data-v-ea4f2eda]{text-align:center;font-size:22px;font-weight:700;color:#111;margin-bottom:6px}.print-head .ph-sub[data-v-ea4f2eda]{text-align:center;font-size:13px;color:#333;margin-bottom:4px}.th-bar[data-v-ea4f2eda],.th-switch[data-v-ea4f2eda],.th-actions[data-v-ea4f2eda],.toast[data-v-ea4f2eda],.th-meta[data-v-ea4f2eda]{display:none!important}.th-page[data-v-ea4f2eda]{background:#fff}.th-card[data-v-ea4f2eda]{box-shadow:none;border:none;padding:0;border-radius:0}.th-scroll[data-v-ea4f2eda]{overflow:visible!important}.tt[data-v-ea4f2eda]{min-width:0!important;width:100%!important}.tt th.hd[data-v-ea4f2eda],.tt td.hd[data-v-ea4f2eda]{border:1.2px solid #444!important;background:#e8eefb!important;color:#1a2340!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}.tt td.hd .tm[data-v-ea4f2eda]{color:#333!important}.cell[data-v-ea4f2eda],.ssrow td[data-v-ea4f2eda],.lunch td[data-v-ea4f2eda]{border:1px solid #444!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}.cell.blocked[data-v-ea4f2eda]{background:#ffeec2!important}.cell.blocked .bk[data-v-ea4f2eda]{color:#8a6508!important;font-weight:700}.cell .s[data-v-ea4f2eda]{color:#111!important;font-weight:700}.cell .c[data-v-ea4f2eda],.ss .muted[data-v-ea4f2eda]{color:#333!important}.ssrow td[data-v-ea4f2eda]{background:#eef3fc!important;color:#1a2340!important;font-weight:600}.lunch td[data-v-ea4f2eda]{background:#f1f2f5!important;color:#333!important}.tt td.hd[data-v-ea4f2eda]{padding:4px 2px!important}.tt td.hd .tm[data-v-ea4f2eda]{font-size:8.5px!important}.cell[data-v-ea4f2eda]{padding:2px 3px!important;min-height:0!important}.cell .s[data-v-ea4f2eda]{font-size:11px!important}.cell .c[data-v-ea4f2eda]{font-size:9.5px!important;margin-top:0!important}.ssrow td[data-v-ea4f2eda]{padding:3px 2px!important;font-size:10px!important}.lunch td[data-v-ea4f2eda]{padding:2px!important;font-size:9px!important}}@media(max-width:760px){.th-main[data-v-ea4f2eda]{padding:14px}.th-bar[data-v-ea4f2eda]{flex-wrap:wrap;gap:8px}}@media(max-width:600px){.tv-main[data-v-ea4f2eda]{padding:8px}.tv-head .tv-t[data-v-ea4f2eda]{font-size:19px}.tv-switch[data-v-ea4f2eda]{gap:6px;margin-bottom:10px}.seg[data-v-ea4f2eda]{padding:7px 12px;font-size:12.5px}.seg.sel[data-v-ea4f2eda]{padding:7px 8px}.tv-card[data-v-ea4f2eda]{padding:6px;border-radius:10px}.tv-scroll[data-v-ea4f2eda],.th-scroll[data-v-ea4f2eda]{overflow-x:visible}.tt[data-v-ea4f2eda]{min-width:0!important}.tt tr:first-child th[data-v-ea4f2eda]:first-child{width:24px}.tt th.hd[data-v-ea4f2eda]{font-size:9.5px;padding:4px 0}.tt td.hd[data-v-ea4f2eda]{font-size:8.5px;padding:3px 0}.tt td.hd .tm[data-v-ea4f2eda]{font-size:7px}.cell[data-v-ea4f2eda]{padding:1px 0}.cell .s[data-v-ea4f2eda]{font-size:9.5px;font-weight:600}.cell .c[data-v-ea4f2eda]{font-size:8px;margin-top:0}.ssrow td[data-v-ea4f2eda]{font-size:8.5px}.lunch td[data-v-ea4f2eda]{font-size:8px;padding:2px 0}.tv-foot[data-v-ea4f2eda]{font-size:10px}}.cf-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#00000059;display:flex;align-items:center;justify-content:center}.cf-box{background:#fff;border-radius:14px;padding:26px 28px 20px;width:360px;max-width:calc(100vw - 40px);box-shadow:0 8px 30px #0000002e}.cf-title{font-size:15px;font-weight:700;margin-bottom:10px}.cf-msg{font-size:13.5px;color:#475569;line-height:1.6;margin-bottom:20px;white-space:pre-line}.cf-btns{display:flex;gap:10px;justify-content:flex-end}.cf-btn{padding:7px 20px;border-radius:8px;border:1px solid #d1d5db;background:#fff;cursor:pointer;font-size:13.5px}.cf-btn:hover{background:#f3f4f6}.cf-btn.danger{background:#dc2626;color:#fff;border-color:#dc2626}.cf-btn.danger:hover{background:#b91c1c}.cfade-enter-active,.cfade-leave-active{transition:opacity .18s,transform .18s}.cfade-enter-from,.cfade-leave-to{opacity:0;transform:scale(.96)}.gate-banner[data-v-ddd1dd45]{background:#fff7e6;border:1px solid #f0c36d;color:#8a5a00;border-radius:10px;padding:10px 16px;margin-bottom:14px;font-size:13px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.gate-link[data-v-ddd1dd45]{color:#c77d0a;font-weight:600;text-decoration:none;white-space:nowrap}.gate-link[data-v-ddd1dd45]:hover{text-decoration:underline}.pill.active[data-v-40fe890b]{background:#2f6fed;color:#fff;border-color:#2f6fed}.print-head[data-v-40fe890b],.print-eff[data-v-40fe890b]{display:none}.timetable th[data-v-40fe890b]{vertical-align:middle;text-align:center}.timetable td.slot[data-v-40fe890b]{text-align:center}.slot.cross-src[data-v-40fe890b]{outline:2px solid #e67e22;background:#fdf3e7}.slot.cross-pick[data-v-40fe890b]{cursor:pointer}.slot.cross-pick[data-v-40fe890b]:hover{background:#eef4ff}.target-tip[data-v-40fe890b]{background:#eef2ff;border:1px solid #c3d0fb;border-radius:10px;padding:8px 14px;margin-bottom:10px;font-size:13px}.tabs[data-v-40fe890b]{display:flex;gap:6px;margin-right:8px}.tab[data-v-40fe890b]{padding:6px 14px;border-radius:8px;border:1px solid #e5e7eb;background:#fff;cursor:pointer;font-size:13px}.tab.on[data-v-40fe890b]{background:#2f6fed;color:#fff;border-color:#2f6fed}.slot[data-v-40fe890b]{user-select:none;-webkit-user-select:none}.ss-check[data-v-40fe890b]{display:inline-flex;align-items:center;gap:5px}.lunch-row td[data-v-40fe890b]{background:#f2f2f2}.lunch-row .lunch[data-v-40fe890b]{text-align:center;font-style:italic;color:#909090;font-size:12px;padding:2px}.ss-row td[data-v-40fe890b]{text-align:center;font-weight:600;background:#fafafa}.slot.hl-teacher[data-v-40fe890b]{background:#fff3c2!important;box-shadow:inset 0 0 0 2px #e6a817}.slot.hl-teacher .meta-hl[data-v-40fe890b]{font-weight:700;color:#8a5a00}.slot.hl-dim[data-v-40fe890b]{opacity:.38}.grid.picking td.slot[data-v-40fe890b]:not(.fixed):not(.locked):not(.dragging){background:#eafaf0;border-color:#b8e6cc}.grid.picking td.slot:not(.fixed):not(.locked):not(.dragging) .sname[data-v-40fe890b]{color:#1a7a4a}@media print{.side[data-v-40fe890b],.topbar[data-v-40fe890b],.toolbar[data-v-40fe890b]{display:none!important}.layout[data-v-40fe890b]{display:block}.main[data-v-40fe890b]{margin:0}.content[data-v-40fe890b]{padding:0}.print-head[data-v-40fe890b]{display:block;text-align:center;font-size:18px;margin-bottom:10px}.print-eff[data-v-40fe890b]{display:block;text-align:right;font-size:12px;color:#333;margin:-8px 0 8px}@page{size:A4 landscape;margin:8mm}.timetable[data-v-40fe890b]{border-collapse:collapse;width:100%;border-spacing:0}.timetable th[data-v-40fe890b],.timetable td[data-v-40fe890b]{border:1px solid #333;padding:6px 4px;vertical-align:middle;text-align:center}td.slot[data-v-40fe890b]{background:#fff!important;min-width:auto;height:auto;box-shadow:none}td.slot.hl-teacher[data-v-40fe890b]{background:#fff7d6!important;box-shadow:none}td.slot .sname[data-v-40fe890b]{font-size:12px;font-weight:700}td.slot .meta[data-v-40fe890b]{font-size:11px}.toast[data-v-40fe890b]{display:none}}.alt-mask[data-v-40fe890b]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:50}.alt-dialog[data-v-40fe890b]{background:#fff;border-radius:14px;padding:22px 24px;width:460px;max-width:92vw;box-shadow:0 20px 50px #00000040}.alt-dialog h3[data-v-40fe890b]{margin:0 0 8px;font-size:16px;color:#1a2340}.alt-hint[data-v-40fe890b]{font-size:12.5px;color:#6b7280;line-height:1.7;margin:0 0 14px}.alt-row[data-v-40fe890b]{display:flex;align-items:center;gap:10px;margin-bottom:10px}.alt-row label[data-v-40fe890b]{width:70px;font-size:13px;color:#374151;text-align:right}.alt-row select[data-v-40fe890b]{flex:1;padding:7px 10px;border:1px solid #d1d5db;border-radius:8px;font-size:13px}.alt-btns[data-v-40fe890b]{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.alt-btns .primary[data-v-40fe890b]{background:#2f6fed;color:#fff;border-color:#2f6fed}.form-row[data-v-f3050bbd]{display:flex;align-items:center;gap:12px;margin-bottom:14px}.form-row label[data-v-f3050bbd]{width:70px;color:var(--muted, #6b7280);flex-shrink:0}.form-row .chk[data-v-f3050bbd]{display:inline-flex;align-items:center;gap:5px;font-size:13px}.card[data-v-f3050bbd]{background:var(--card, #fff);border:1px solid var(--border, #e5e7eb);border-radius:10px;padding:18px 20px;margin-top:16px}.kv td[data-v-f3050bbd]{padding:4px 14px 4px 0}.kv td[data-v-f3050bbd]:first-child{color:var(--muted, #6b7280)}.btn[data-v-f3050bbd]{padding:8px 22px;border-radius:8px;border:none;cursor:pointer}.btn.primary[data-v-f3050bbd]{background:#2f6fed;color:#fff}.btn[data-v-f3050bbd]:disabled{opacity:.55;cursor:not-allowed}.err-card[data-v-f3050bbd]{border-color:var(--danger, #c0392b)}.result-card[data-v-f3050bbd]{border-color:#b8e6cc}.prog[data-v-f3050bbd]{margin-top:16px}.prog-text[data-v-f3050bbd]{font-size:13px;color:#3562e8;margin-bottom:8px}.bar[data-v-f3050bbd]{height:10px;background:#eef1f6;border-radius:6px;overflow:hidden}.fill[data-v-f3050bbd]{height:100%;background:linear-gradient(90deg,#6f9bff,#2f6fed);border-radius:6px;transition:width .6s}.prog-stats[data-v-f3050bbd]{display:flex;gap:18px;margin-top:8px;font-size:12.5px;color:#6b7280;flex-wrap:wrap}.prog-stats b[data-v-f3050bbd]{color:#2f6fed}.card[data-v-287bc9da]{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:16px 18px;margin-bottom:14px}.card-head[data-v-287bc9da]{margin-bottom:10px}.tbl[data-v-287bc9da]{width:100%;border-collapse:collapse;font-size:13px}.tbl th[data-v-287bc9da],.tbl td[data-v-287bc9da]{text-align:left;padding:8px 10px;border-bottom:1px solid #eee}.tbl th[data-v-287bc9da]{color:#6b7280;font-weight:600;font-size:12px}tr.active td[data-v-287bc9da]{background:#f0f6ff}.badge[data-v-287bc9da]{padding:3px 10px;border-radius:7px;font-size:12.5px;background:#f1f2f4;color:#6b7280}.badge.on[data-v-287bc9da]{background:#e7f6ec;color:#1f7a3d}.muted[data-v-287bc9da]{color:#6b7280;font-size:12.5px}.frow[data-v-287bc9da]{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}.frow>label[data-v-287bc9da]{width:90px;font-size:13px;color:#6b7280;flex-shrink:0}.chkcol[data-v-287bc9da]{display:flex;flex-direction:column;gap:4px}.chk[data-v-287bc9da]{display:inline-flex;align-items:center;gap:5px;font-size:13px}.btn[data-v-287bc9da]{padding:7px 16px;border-radius:8px;border:1px solid #ddd;background:#fff;cursor:pointer;margin-right:8px}.btn.primary[data-v-287bc9da]{background:#2f6fed;color:#fff;border-color:#2f6fed}.btn.danger[data-v-287bc9da]{background:#c0392b;color:#fff;border-color:#c0392b}.btn[data-v-287bc9da]:disabled{opacity:.55;cursor:not-allowed}.ro-result[data-v-287bc9da]{background:#e7f6ec;border:1px solid #b8e0c6;border-radius:8px;padding:10px 14px;margin-top:10px;font-size:13px;color:#1f7a3d}.reset-box[data-v-287bc9da]{border-top:1px dashed #e5e7eb;padding-top:12px}.pill[data-v-287bc9da]{border:1px solid #e5e7eb;background:#fff;border-radius:8px;padding:6px 12px;font-size:13px}.toolbar[data-v-287bc9da]{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}.toolbar h2[data-v-287bc9da]{font-size:16px;margin-right:4px}.tabs[data-v-82ecf180]{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}.tab[data-v-82ecf180]{padding:7px 16px;border-radius:8px;border:1px solid var(--border, #e5e7eb);background:#fff;cursor:pointer;font-size:13px}.tab.on[data-v-82ecf180]{background:#2f6fed;color:#fff;border-color:#2f6fed}.tab .cnt[data-v-82ecf180]{opacity:.75;font-size:12px;margin-left:4px}.card[data-v-82ecf180]{background:var(--card, #fff);border:1px solid var(--border, #e5e7eb);border-radius:10px;padding:16px 18px}.card-head[data-v-82ecf180]{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.card-head h3[data-v-82ecf180]{margin:0;font-size:14px}.rule-list[data-v-82ecf180]{border:1px solid var(--border, #f1f2f4);border-radius:8px}.rule[data-v-82ecf180]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;border-bottom:1px solid var(--border, #f1f2f4)}.rule[data-v-82ecf180]:last-child{border-bottom:none}.rule.off[data-v-82ecf180]{opacity:.5}.rule-main[data-v-82ecf180]{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.type[data-v-82ecf180]{background:#eef2ff;color:#4353c8;padding:2px 9px;border-radius:6px;font-size:12px;white-space:nowrap}.text[data-v-82ecf180]{font-size:13px}.rule-act[data-v-82ecf180]{display:flex;align-items:center;gap:6px;white-space:nowrap}.switch[data-v-82ecf180]{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--muted, #6b7280);cursor:pointer}.tag-off[data-v-82ecf180]{font-size:12px;color:var(--muted, #6b7280)}.empty[data-v-82ecf180]{padding:22px;text-align:center;color:var(--muted, #6b7280);font-size:13px}.foot-hint[data-v-82ecf180]{margin-top:14px;color:var(--muted, #6b7280);font-size:12px;line-height:1.7}.btn[data-v-82ecf180]{padding:6px 14px;border-radius:8px;border:1px solid var(--border, #ddd);background:#fff;cursor:pointer}.btn.primary[data-v-82ecf180]{background:#2f6fed;color:#fff;border-color:#2f6fed}.import-box[data-v-82ecf180]{border-top:1px dashed var(--border, #e5e7eb);padding-top:12px;margin-top:6px}.chk[data-v-82ecf180]{display:inline-flex;align-items:center;gap:5px;font-size:13px}.capacity-card[data-v-82ecf180]{margin-top:14px}.capacity-scroll[data-v-82ecf180]{overflow-x:auto}.capacity-table[data-v-82ecf180]{width:100%;margin-top:12px;border-collapse:collapse;font-size:13px}.capacity-table th[data-v-82ecf180],.capacity-table td[data-v-82ecf180]{text-align:left;padding:9px;border-bottom:1px solid var(--border, #f1f2f4);vertical-align:top}.capacity-table th[data-v-82ecf180]{background:#f8fafc;white-space:nowrap}.cap-ok[data-v-82ecf180]{color:#1f7a3d}.cap-warn[data-v-82ecf180]{color:#c0392b;font-weight:600}.cap-msg[data-v-82ecf180]{color:#c0392b;font-size:13px;margin-top:8px}.btn.danger[data-v-82ecf180]{color:#c0392b;border-color:#e6b0aa}.btn.sm[data-v-82ecf180]{padding:4px 10px;font-size:12px}.btn[data-v-82ecf180]:disabled{opacity:.55;cursor:not-allowed}.mask[data-v-82ecf180]{position:fixed;top:0;right:0;bottom:0;left:0;background:#11182759;display:flex;justify-content:flex-end;z-index:50}.drawer[data-v-82ecf180]{width:460px;max-width:92vw;background:#fff;height:100%;overflow:auto;padding:20px 22px}.drawer-head[data-v-82ecf180]{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.help[data-v-82ecf180]{font-size:13px;line-height:1.8}.help ol[data-v-82ecf180]{padding-left:20px;margin:6px 0}.help li[data-v-82ecf180]{margin:4px 0}.help p[data-v-82ecf180]{margin:6px 0}.drawer-head h3[data-v-82ecf180]{margin:0;font-size:15px}.fld[data-v-82ecf180]{margin-bottom:16px}.fld>label[data-v-82ecf180]{display:block;font-size:13px;color:var(--muted, #6b7280);margin-bottom:6px}.req[data-v-82ecf180]{color:#c0392b;margin-left:3px}.desc[data-v-82ecf180]{margin:6px 0 0;font-size:12px;color:var(--muted, #6b7280);line-height:1.6}.chips[data-v-82ecf180]{display:flex;flex-wrap:wrap;gap:6px}.chips.scroll[data-v-82ecf180]{max-height:190px;overflow:auto;border:1px solid var(--border, #eee);border-radius:8px;padding:8px}.chip[data-v-82ecf180]{min-width:36px;padding:5px 11px;border-radius:7px;border:1px solid var(--border, #e0e0e0);background:#fff;cursor:pointer;font-size:13px}.chip.on[data-v-82ecf180]{background:#2f6fed;color:#fff;border-color:#2f6fed}.chip.special[data-v-82ecf180]{border-style:dashed}.search[data-v-82ecf180]{margin-bottom:8px;width:100%}.num[data-v-82ecf180]{width:110px}.drawer-foot[data-v-82ecf180]{display:flex;gap:8px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border, #f1f2f4)}.search[data-v-ea871caa]{width:180px}.ss-check[data-v-ea871caa]{display:inline-flex;align-items:center;gap:5px}.ss-row td[data-v-ea871caa]{text-align:center;font-weight:600;background:#fafafa}.ss-row td.slot[data-v-ea871caa]{height:34px}.timetable td.slot[data-v-ea871caa]{text-align:center}.lunch-row td[data-v-ea871caa]{background:#f2f2f2}.lunch-row .lunch[data-v-ea871caa]{text-align:center;font-style:italic;color:#909090;font-size:12px;padding:2px}.print-head[data-v-ea871caa]{display:none;text-align:center;font-size:18px;margin-bottom:10px}.print-eff[data-v-ea871caa]{display:none}@media print{.side[data-v-ea871caa],.topbar[data-v-ea871caa],.toolbar[data-v-ea871caa]{display:none!important}.layout[data-v-ea871caa]{display:block}.content[data-v-ea871caa]{padding:0}.print-head[data-v-ea871caa]{display:block}.print-eff[data-v-ea871caa]{display:block;text-align:right;font-size:12px;color:#333;margin:-6px 0 6px}.timetable[data-v-ea871caa]{border-collapse:collapse;width:100%}.timetable th[data-v-ea871caa],.timetable td[data-v-ea871caa]{border:1px solid #333;padding:6px 4px;vertical-align:middle;text-align:center}.toast[data-v-ea871caa]{display:none}}.ver-table[data-v-c2f329c8]{width:100%;border-collapse:collapse;background:var(--card, #fff);border-radius:10px;overflow:hidden}.ver-table th[data-v-c2f329c8],.ver-table td[data-v-c2f329c8]{text-align:left;padding:10px 14px;border-bottom:1px solid var(--border, #eee);font-size:13px;vertical-align:middle}.ver-table th[data-v-c2f329c8]{background:var(--surface-2, #f7f8fa);color:var(--muted, #6b7280);font-weight:600}.st[data-v-c2f329c8]{padding:2px 9px;border-radius:6px;font-size:12px}.st.draft[data-v-c2f329c8]{background:#fff7e6;color:#b26a00}.st.published[data-v-c2f329c8]{background:#e7f6ec;color:#1f7a3d}.st.archived[data-v-c2f329c8]{background:#f1f2f4;color:#6b7280}.grade-tag[data-v-c2f329c8]{display:inline-block;background:#eef2ff;color:#4353c8;padding:2px 8px;border-radius:6px;font-size:12px;margin-right:6px}.grade-tag.solved[data-v-c2f329c8]{background:#e7f6ec;color:#1f7a3d;font-weight:600}.time[data-v-c2f329c8]{color:var(--muted, #6b7280);font-size:12px;line-height:1.5}.btn[data-v-c2f329c8]{padding:5px 12px;border-radius:7px;border:1px solid var(--border, #ddd);background:#fff;cursor:pointer;white-space:nowrap}.btn.primary[data-v-c2f329c8]{background:#2f6fed;color:#fff;border-color:#2f6fed}.btn.danger[data-v-c2f329c8]{color:#c0392b;border-color:#e6b0aa}.btn.sm[data-v-c2f329c8]{margin:0 6px 4px 0}.btn[data-v-c2f329c8]:disabled{opacity:.55;cursor:not-allowed}.guide[data-v-65586c9b]{background:linear-gradient(135deg,#eef2ff,#f6f9ff);border:1px solid #dce4fb;border-radius:12px;padding:18px 20px;margin-bottom:18px}.guide h3[data-v-65586c9b]{margin:0 0 4px;font-size:15px}.gintro[data-v-65586c9b]{margin:0 0 14px;font-size:13px;color:var(--muted, #6b7280)}.gsteps[data-v-65586c9b]{display:flex;flex-direction:column;gap:8px}.gstep[data-v-65586c9b]{display:flex;align-items:flex-start;gap:12px;background:#fff;border:1px solid #e3e9f8;border-radius:9px;padding:10px 14px;text-decoration:none;color:inherit}.gstep[data-v-65586c9b]:hover{border-color:#2f6fed}.gstep.done[data-v-65586c9b]{opacity:.75}.gstep.skip[data-v-65586c9b]{border-style:dashed}.gnum[data-v-65586c9b]{flex:none;width:26px;height:26px;border-radius:50%;background:#2f6fed;color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600}.gnum.ok[data-v-65586c9b]{background:#1a9e6c}.gbody[data-v-65586c9b]{display:flex;flex-direction:column;gap:2px}.gbody b[data-v-65586c9b]{font-size:13.5px}.gdesc[data-v-65586c9b]{font-size:12px;color:var(--muted, #6b7280)}.stats[data-v-65586c9b]{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px}.stat[data-v-65586c9b]{flex:1 1 130px;background:var(--card, #fff);border:1px solid var(--border, #e5e7eb);border-radius:10px;padding:14px 16px}.stat .n[data-v-65586c9b]{font-size:22px;font-weight:600}.stat .l[data-v-65586c9b]{color:var(--muted, #6b7280);font-size:12px;margin-top:2px}.cols[data-v-65586c9b]{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:16px}.cols .card[data-v-65586c9b]{flex:1 1 340px;margin:0}.card[data-v-65586c9b]{background:var(--card, #fff);border:1px solid var(--border, #e5e7eb);border-radius:10px;padding:16px 18px;margin-bottom:16px}.card h3[data-v-65586c9b]{margin:0 0 12px;font-size:14px}.tbl[data-v-65586c9b]{width:100%;border-collapse:collapse;font-size:13px}.tbl th[data-v-65586c9b],.tbl td[data-v-65586c9b]{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border, #eee)}.tbl th[data-v-65586c9b]{color:var(--muted, #6b7280);font-weight:600}.muted[data-v-65586c9b]{color:var(--muted, #6b7280)}.ok[data-v-65586c9b]{color:#1f7a3d}.warn[data-v-65586c9b]{color:#b26a00}.checks[data-v-65586c9b]{list-style:none;padding:0;margin:0;font-size:13px}.checks li[data-v-65586c9b]{padding:7px 0;border-bottom:1px solid var(--border, #f1f2f4);display:flex;gap:8px}.checks li[data-v-65586c9b]:last-child{border-bottom:none}.mark[data-v-65586c9b]{width:16px;text-align:center;font-weight:700}.checks li.ok .mark[data-v-65586c9b]{color:#1f7a3d}.checks li.warn .mark[data-v-65586c9b]{color:#b26a00}.checks li.bad .mark[data-v-65586c9b]{color:#c0392b}.card[data-v-d4df4326]{background:var(--card, #fff);border:1px solid var(--border, #e5e7eb);border-radius:10px;padding:16px 18px;margin-bottom:16px}.card h3[data-v-d4df4326]{margin:0 0 12px;font-size:14px}.step[data-v-d4df4326]{display:flex;gap:14px;padding:12px 0;border-bottom:1px solid var(--border, #f1f2f4)}.step[data-v-d4df4326]:last-child{border-bottom:none}.num[data-v-d4df4326]{width:24px;height:24px;border-radius:50%;background:#eef2ff;color:#4353c8;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;flex:none}.body[data-v-d4df4326]{flex:1}.ttl[data-v-d4df4326]{font-weight:600;margin-bottom:10px;font-size:14px}.row[data-v-d4df4326]{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.cols-line[data-v-d4df4326]{margin-top:8px;font-size:12px;color:var(--muted, #6b7280)}.cols-line code[data-v-d4df4326]{background:#f7f8fa;padding:2px 6px;border-radius:5px}.tbl[data-v-d4df4326]{width:100%;border-collapse:collapse;font-size:13px;margin:12px 0}.tbl th[data-v-d4df4326],.tbl td[data-v-d4df4326]{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border, #eee)}.tbl th[data-v-d4df4326]{color:var(--muted, #6b7280);font-weight:600}.muted[data-v-d4df4326]{color:var(--muted, #6b7280)}.ok[data-v-d4df4326]{color:#1f7a3d}.bad[data-v-d4df4326]{color:#c0392b}.sum[data-v-d4df4326]{font-size:13px}.btn[data-v-d4df4326]{padding:7px 16px;border-radius:8px;border:1px solid var(--border, #ddd);background:#fff;cursor:pointer;text-decoration:none;color:inherit;display:inline-block}.btn.primary[data-v-d4df4326]{background:#2f6fed;color:#fff;border-color:#2f6fed}.btn[data-v-d4df4326]:disabled{opacity:.55;cursor:not-allowed}.cols[data-v-0f8b1ba8]{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:16px}.cols>.card[data-v-0f8b1ba8]:first-child{flex:1 1 560px}.cols>.card[data-v-0f8b1ba8]:last-child{flex:1 1 320px}.card[data-v-0f8b1ba8]{background:var(--card, #fff);border:1px solid var(--border, #e5e7eb);border-radius:10px;padding:16px 18px;margin-bottom:16px}.card h3[data-v-0f8b1ba8]{margin:0 0 12px;font-size:14px}.row[data-v-0f8b1ba8]{display:flex;gap:10px;align-items:center;margin-bottom:10px}.row label[data-v-0f8b1ba8],.muted[data-v-0f8b1ba8]{color:var(--muted, #6b7280);font-size:13px}.tt[data-v-0f8b1ba8]{width:100%;border-collapse:collapse;font-size:12px;margin-top:10px}.tt th[data-v-0f8b1ba8]{color:var(--muted, #6b7280);font-weight:600;padding:4px}.tt .head[data-v-0f8b1ba8]{width:34px;color:var(--muted, #6b7280);text-align:center}.cell[data-v-0f8b1ba8]{border:1px solid var(--border, #eee);height:42px;text-align:center;cursor:pointer;padding:3px}.cell.has[data-v-0f8b1ba8]{background:#f6f8ff}.cell:hover.has[data-v-0f8b1ba8]{background:#e8eeff}.cell.on[data-v-0f8b1ba8]{background:#d7e3ff;outline:2px solid #2f6fed}.cell .s[data-v-0f8b1ba8]{font-weight:600}.cell .t[data-v-0f8b1ba8]{color:var(--muted, #6b7280)}.picked[data-v-0f8b1ba8]{background:#eef2ff;color:#35407a;padding:8px 12px;border-radius:8px;margin-bottom:12px;font-size:13px}.warn[data-v-0f8b1ba8]{background:#fff4e5;color:#a86a00;padding:8px 12px;border-radius:8px;margin-bottom:12px;font-size:13px}.leave-box[data-v-0f8b1ba8]{border:1px dashed var(--line, #d8dfec);border-radius:10px;padding:10px;margin-bottom:12px}.leave-box .pill[data-v-0f8b1ba8]{width:100%;margin-bottom:8px}.leave-list[data-v-0f8b1ba8]{max-height:180px;overflow:auto}.leave-item[data-v-0f8b1ba8]{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 4px;font-size:13px;border-bottom:1px solid var(--line, #eef1f6)}.leave-item[data-v-0f8b1ba8]:last-child{border-bottom:none}.ok-tag[data-v-0f8b1ba8]{color:var(--ok, #1a9e6c);font-size:12px}.btn[data-v-0f8b1ba8]{padding:7px 16px;border-radius:8px;border:1px solid var(--border, #ddd);background:#fff;cursor:pointer}.btn.primary[data-v-0f8b1ba8]{background:#2f6fed;color:#fff;border-color:#2f6fed}.btn.danger[data-v-0f8b1ba8]{color:#c0392b;border-color:#e6b0aa}.btn.sm[data-v-0f8b1ba8]{padding:4px 10px;font-size:12px}.btn[data-v-0f8b1ba8]:disabled{opacity:.55;cursor:not-allowed}.cands[data-v-0f8b1ba8]{margin-top:14px}.cand-list[data-v-0f8b1ba8]{max-height:300px;overflow:auto;border:1px solid var(--border, #eee);border-radius:8px;margin:10px 0}.cand[data-v-0f8b1ba8]{display:flex;align-items:center;gap:8px;padding:7px 10px;border-bottom:1px solid var(--border, #f1f2f4);cursor:pointer;font-size:13px}.cand[data-v-0f8b1ba8]:last-child{border-bottom:none}.cand.on[data-v-0f8b1ba8]{background:#eef2ff}.cand .nm[data-v-0f8b1ba8]{min-width:70px}.cand .tag[data-v-0f8b1ba8]{background:#e7f6ec;color:#1f7a3d;border-radius:5px;padding:1px 6px;font-size:11px}.cand .tag.tier1[data-v-0f8b1ba8]{background:#e7f6ec;color:#1f7a3d;font-weight:600}.cand .tag.tier2[data-v-0f8b1ba8]{background:#e8f0ff;color:#1c5bd9}.cand .tag.tier3[data-v-0f8b1ba8]{background:#f1f2f4;color:#6b7280}.tabs2[data-v-0f8b1ba8]{display:flex;gap:8px;margin-bottom:14px}.tabs2 .tb[data-v-0f8b1ba8]{padding:8px 20px;border-radius:8px 8px 0 0;border:1px solid var(--border, #ddd);background:#fff;cursor:pointer;font-size:13px}.tabs2 .tb.on[data-v-0f8b1ba8]{background:#2f6fed;color:#fff;border-color:#2f6fed}.tbl[data-v-0f8b1ba8]{width:100%;border-collapse:collapse;font-size:13px}.tbl th[data-v-0f8b1ba8],.tbl td[data-v-0f8b1ba8]{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border, #eee)}.tbl th[data-v-0f8b1ba8]{color:var(--muted, #6b7280);font-weight:600}@media print{body[data-v-0f8b1ba8] *{visibility:hidden}.print-records[data-v-0f8b1ba8],.print-records[data-v-0f8b1ba8] *{visibility:visible}.print-records[data-v-0f8b1ba8]{position:absolute;left:0;top:0;width:100%;border:none}.print-records .row button[data-v-0f8b1ba8]{display:none}}.card[data-v-49f7140d]{background:var(--card, #fff);border:1px solid var(--border, #e5e7eb);border-radius:10px;padding:16px 18px;margin-bottom:14px}.card h3[data-v-49f7140d]{margin:0 0 10px;font-size:14px}.row[data-v-49f7140d]{display:flex;gap:10px;align-items:center;margin-bottom:10px}.row label[data-v-49f7140d],.muted[data-v-49f7140d]{color:var(--muted, #6b7280);font-size:13px}.cls-list[data-v-49f7140d]{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.cls[data-v-49f7140d]{border:1px solid var(--border, #e5e7eb);border-radius:8px;padding:5px 10px;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:5px}.cls.on[data-v-49f7140d]{background:#eef2ff;border-color:#2f6fed}.grid[data-v-49f7140d]{width:100%;border-collapse:collapse;margin-bottom:14px}.grid th[data-v-49f7140d],.grid td[data-v-49f7140d]{border:1px solid var(--border, #e5e7eb);padding:6px 8px;text-align:center}.grid th[data-v-49f7140d]{background:#f6f8ff;font-size:13px}.grid td input[data-v-49f7140d]{width:95%;padding:6px 8px;border:1px solid var(--border, #d1d5db);border-radius:6px;font-size:13px}.grid td.wd[data-v-49f7140d]{font-weight:600;background:#fafbff}.btn[data-v-49f7140d]{padding:8px 20px;border-radius:8px;border:none;cursor:pointer}.btn.primary[data-v-49f7140d]{background:#2f6fed;color:#fff}.btn[data-v-49f7140d]:disabled{opacity:.55;cursor:not-allowed}.toast[data-v-49f7140d]{position:fixed;right:24px;bottom:24px;background:#1f2937;color:#fff;border-radius:10px;padding:11px 18px;font-size:13px;opacity:0;transform:translateY(8px);transition:.25s;pointer-events:none;z-index:9;max-width:420px}.toast.show[data-v-49f7140d]{opacity:1;transform:none}.tabs2[data-v-952897c6]{display:flex;gap:6px;background:#eef1f8;border-radius:12px;padding:5px;margin-bottom:16px;width:fit-content}.tabs2 .tb[data-v-952897c6]{border:none;background:transparent;padding:9px 26px;border-radius:9px;font-size:14px;color:#5a6478;cursor:pointer}.tabs2 .tb.on[data-v-952897c6]{background:#fff;color:#24408e;font-weight:700;box-shadow:0 2px 10px #1e3a8a1f}.cols[data-v-952897c6]{display:flex;gap:16px;flex-wrap:wrap}.cols>.card[data-v-952897c6]:first-child{flex:1 1 520px}.cols>.card[data-v-952897c6]:last-child{flex:1 1 320px}.card[data-v-952897c6]{background:var(--card, #fff);border:1px solid var(--border, #e5e7eb);border-radius:10px;padding:16px 18px;margin-bottom:16px}.card h3[data-v-952897c6]{margin:0 0 12px;font-size:14px}.tbl[data-v-952897c6]{width:100%;border-collapse:collapse;font-size:13px}.tbl th[data-v-952897c6],.tbl td[data-v-952897c6]{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border, #eee)}.tbl th[data-v-952897c6]{color:var(--muted, #6b7280);font-weight:600}.tbl tr.on[data-v-952897c6]{background:#f6f8ff}.self[data-v-952897c6]{background:#eef2ff;color:#4353c8;border-radius:5px;padding:1px 6px;font-size:11px;margin-left:6px}.row[data-v-952897c6]{display:flex;gap:10px;align-items:center;margin-bottom:10px}.row label[data-v-952897c6]{width:70px;color:var(--muted, #6b7280);font-size:13px}.muted[data-v-952897c6]{color:var(--muted, #6b7280);font-size:13px}.ok[data-v-952897c6]{color:#1f7a3d}.bad[data-v-952897c6]{color:#c0392b}.btn[data-v-952897c6]{padding:7px 16px;border-radius:8px;border:1px solid var(--border, #ddd);background:#fff;cursor:pointer;margin-right:6px}.btn.primary[data-v-952897c6]{background:#2f6fed;color:#fff;border-color:#2f6fed}.btn.danger[data-v-952897c6]{color:#c0392b;border-color:#e6b0aa}.btn.sm[data-v-952897c6]{padding:4px 10px;font-size:12px;margin-right:4px}.btn[data-v-952897c6]:disabled{opacity:.55;cursor:not-allowed}.roles[data-v-952897c6]{margin-top:16px;border-top:1px solid var(--border, #f1f2f4);padding-top:12px}.roles-ttl[data-v-952897c6]{font-weight:600;font-size:13px;margin-bottom:8px}.role-line[data-v-952897c6]{display:flex;gap:8px;font-size:12px;padding:3px 0}.role-line b[data-v-952897c6]{min-width:76px}.stat-line[data-v-952897c6]{font-size:14px;margin-bottom:12px}.stat-line b[data-v-952897c6]{color:#24408e}.btn-row[data-v-952897c6]{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.cols[data-v-625470b2]{display:flex;gap:16px;align-items:flex-start}.list-card[data-v-625470b2]{flex:0 0 260px}.card[data-v-625470b2]{background:var(--card, #fff);border:1px solid var(--border, #e5e7eb);border-radius:10px;padding:14px 16px}.search[data-v-625470b2]{width:100%;margin-bottom:8px}.filt[data-v-625470b2]{display:flex;gap:6px;margin-bottom:8px}.sm-sel[data-v-625470b2]{flex:1;font-size:12px}.btn.full[data-v-625470b2]{width:100%;margin-bottom:8px}.tlist[data-v-625470b2]{max-height:560px;overflow:auto}.titem[data-v-625470b2]{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;border-radius:7px;cursor:pointer;font-size:13px}.titem[data-v-625470b2]:hover{background:#f6f8ff}.titem.on[data-v-625470b2]{background:#eef2ff;color:#35407a;font-weight:600}.titem .no[data-v-625470b2]{color:var(--muted, #9aa0a6);font-size:12px}.cnt[data-v-625470b2]{margin-top:8px;font-size:12px;text-align:right}.head[data-v-625470b2]{display:flex;align-items:center;gap:10px;margin-bottom:12px}.head h3[data-v-625470b2]{margin:0;font-size:16px}.head .sp[data-v-625470b2]{flex:1}.tags[data-v-625470b2]{display:flex;gap:5px}.tag[data-v-625470b2]{background:#eef2ff;color:#4353c8;border-radius:5px;padding:1px 7px;font-size:11px}.stats[data-v-625470b2]{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:8px}.stat[data-v-625470b2]{flex:1 1 110px;background:var(--surface-2, #f7f8fa);border-radius:8px;padding:9px 12px}.stat .n[data-v-625470b2]{font-size:15px;font-weight:600}.stat .l[data-v-625470b2]{font-size:11px;color:var(--muted, #6b7280);margin-top:2px}.flags[data-v-625470b2]{display:flex;gap:6px;margin-bottom:12px}.flag[data-v-625470b2]{font-size:12px;border-radius:6px;padding:2px 8px;background:#f1f2f4;color:#6b7280}.flag.warn[data-v-625470b2]{background:#fff7e6;color:#b26a00}.flag.ok[data-v-625470b2]{background:#e7f6ec;color:#1f7a3d}.info[data-v-625470b2]{display:flex;gap:18px;flex-wrap:wrap;font-size:13px;color:var(--muted, #6b7280);padding:10px 0 14px;border-bottom:1px solid var(--border, #f1f2f4)}.info b[data-v-625470b2]{color:inherit;font-weight:600}.form[data-v-625470b2]{padding:6px 0 14px;border-bottom:1px solid var(--border, #f1f2f4)}.row[data-v-625470b2]{display:flex;align-items:center;gap:10px;margin-bottom:9px}.row label[data-v-625470b2]{width:56px;font-size:13px;color:var(--muted, #6b7280)}.chips[data-v-625470b2]{display:flex;gap:6px}.chip[data-v-625470b2]{padding:4px 12px;border-radius:7px;border:1px solid var(--border, #e0e0e0);background:#fff;cursor:pointer;font-size:12px}.chip.on[data-v-625470b2]{background:#2f6fed;color:#fff;border-color:#2f6fed}.sub[data-v-625470b2]{display:flex;align-items:center;gap:10px;font-size:13px;margin:16px 0 8px}.add-row[data-v-625470b2]{display:flex;gap:8px;align-items:center;margin-bottom:10px;flex-wrap:wrap}.tbl[data-v-625470b2]{width:100%;border-collapse:collapse;font-size:13px}.tbl th[data-v-625470b2],.tbl td[data-v-625470b2]{text-align:left;padding:7px 9px;border-bottom:1px solid var(--border, #eee)}.tbl th[data-v-625470b2]{color:var(--muted, #6b7280);font-weight:600;font-size:12px}.mini[data-v-625470b2]{width:70px}.num[data-v-625470b2]{width:100px}.pad[data-v-625470b2]{padding:14px;text-align:center}.muted[data-v-625470b2]{color:var(--muted, #6b7280);font-size:13px}.btn[data-v-625470b2]{padding:6px 14px;border-radius:8px;border:1px solid var(--border, #ddd);background:#fff;cursor:pointer}.btn.primary[data-v-625470b2]{background:#2f6fed;color:#fff;border-color:#2f6fed}.btn.danger[data-v-625470b2]{color:#c0392b;border-color:#e6b0aa}.btn.sm[data-v-625470b2]{padding:3px 9px;font-size:12px}.btn[data-v-625470b2]:disabled{opacity:.55;cursor:not-allowed}.card[data-v-dd6bb706]{background:var(--card, #fff);border:1px solid var(--border, #e5e7eb);border-radius:10px;padding:16px 18px;margin-bottom:16px}.card h3[data-v-dd6bb706]{margin:0 0 12px;font-size:14px}.card-head[data-v-dd6bb706]{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.head-actions[data-v-dd6bb706]{display:flex;gap:8px}.submgr[data-v-dd6bb706]{background:var(--surface-2, #f7f8fa);border-radius:8px;padding:12px 14px;margin-bottom:12px}.submgr-row[data-v-dd6bb706]{display:flex;gap:8px;align-items:center;margin-bottom:10px;flex-wrap:wrap}.subtbl[data-v-dd6bb706]{width:100%;border-collapse:collapse;font-size:13px}.subtbl td[data-v-dd6bb706]{padding:4px 8px;border-bottom:1px solid var(--border, #eee)}.subname[data-v-dd6bb706]{font-weight:600}.subact[data-v-dd6bb706]{text-align:right}.link[data-v-dd6bb706]{background:none;border:none;color:#2f6fed;cursor:pointer;font-size:12px;padding:0 4px}.link.danger[data-v-dd6bb706]{color:#c0392b}.card-head h3[data-v-dd6bb706]{margin:0}.dayrow[data-v-dd6bb706]{display:flex;align-items:center;gap:12px;padding:7px 0;border-bottom:1px solid var(--border, #f1f2f4)}.dayrow[data-v-dd6bb706]:last-of-type{border-bottom:none}.gname[data-v-dd6bb706]{width:46px;font-size:13px;font-weight:600}.chips[data-v-dd6bb706]{display:flex;gap:5px}.chip[data-v-dd6bb706]{padding:4px 10px;border-radius:7px;border:1px solid var(--border, #e0e0e0);background:#fff;cursor:pointer;font-size:12px}.chip.on[data-v-dd6bb706]{background:#2f6fed;color:#fff;border-color:#2f6fed}.chip[data-v-dd6bb706]:disabled{cursor:default;opacity:.8}.matrix[data-v-dd6bb706]{width:100%;border-collapse:collapse;font-size:13px}.matrix th[data-v-dd6bb706],.matrix td[data-v-dd6bb706]{border:1px solid var(--border, #eee);padding:6px 8px;text-align:center}.matrix th[data-v-dd6bb706]{background:var(--surface-2, #f7f8fa);color:var(--muted, #6b7280);font-weight:600;font-size:12px}.sub-col[data-v-dd6bb706]{text-align:left;width:130px;font-weight:600;background:var(--surface-2, #f7f8fa)}.matrix input[data-v-dd6bb706]{width:58px;text-align:center;border:1px solid transparent;border-radius:6px;padding:4px;font-size:13px}.matrix input[data-v-dd6bb706]:focus{border-color:#2f6fed;outline:none}.cell.zero input[data-v-dd6bb706]{color:#b9bec7;background:#fafbfc}.total td[data-v-dd6bb706]{font-weight:600;background:#fcfcfd}.total td.over[data-v-dd6bb706]{color:#c0392b;background:#fdf3f2}.warn-txt[data-v-dd6bb706]{display:block;font-size:11px;font-weight:400}.muted[data-v-dd6bb706]{color:var(--muted, #6b7280);font-size:12px}.linklike[data-v-dd6bb706]{color:#2f6fed;text-decoration:none}.linklike[data-v-dd6bb706]:hover{text-decoration:underline}.link[data-v-dd6bb706]{background:none;border:none;color:#2f6fed;cursor:pointer;font-size:11px;padding:0 3px}.link[data-v-dd6bb706]:disabled{color:#b9bec7;cursor:default}.mini-sel[data-v-dd6bb706]{font-size:11px;border:none;background:none;color:#2f6fed;cursor:pointer;padding:0}.col-act[data-v-dd6bb706]{margin-top:3px;font-weight:400;display:flex;gap:4px;justify-content:center;align-items:center}.btn[data-v-dd6bb706]{padding:7px 16px;border-radius:8px;border:1px solid var(--border, #ddd);background:#fff;cursor:pointer}.btn.primary[data-v-dd6bb706]{background:#2f6fed;color:#fff;border-color:#2f6fed}.btn[data-v-dd6bb706]:disabled{opacity:.55;cursor:not-allowed}.sub-bar[data-v-13a3b251]{margin-bottom:12px}.card[data-v-13a3b251]{background:var(--card, #fff);border:1px solid var(--border, #e5e7eb);border-radius:10px;padding:14px 16px}.matrix-wrap[data-v-13a3b251]{overflow:auto;max-height:calc(100vh - 250px);min-height:320px}.matrix[data-v-13a3b251]{border-collapse:collapse;font-size:12px;min-width:100%}.matrix th[data-v-13a3b251],.matrix td[data-v-13a3b251]{border:1px solid var(--border, #eee);padding:3px 6px;text-align:center;white-space:nowrap}.matrix th[data-v-13a3b251]{background:var(--surface-2, #f7f8fa);color:var(--muted, #6b7280);font-weight:600;position:sticky;top:0}.cls-col[data-v-13a3b251]{position:sticky;left:0;background:var(--surface-2, #f7f8fa);font-weight:600;text-align:left;z-index:1}.cell[data-v-13a3b251]{min-width:66px;height:30px;position:relative}.cell.empty[data-v-13a3b251]{background:#fdfcf5}.cell.editing[data-v-13a3b251]{background:#eef2ff}.tn[data-v-13a3b251]{cursor:pointer;color:#333;font-weight:500}.tn[data-v-13a3b251]:hover{color:#2f6fed}.pbadge[data-v-13a3b251]{border:1px solid #dbe4ff;background:#eef2ff;color:#3562e8;border-radius:6px;font-size:10.5px;padding:0 5px;margin-top:2px;cursor:pointer}.pbadge[data-v-13a3b251]:hover{background:#dbe4ff}.pinput[data-v-13a3b251]{width:46px;font-size:12px;text-align:center;border:1px solid #2f6fed;border-radius:6px;padding:1px 4px}.clr[data-v-13a3b251]{position:absolute;top:0;right:2px;border:none;background:none;color:#c0392b;cursor:pointer;font-size:14px;padding:0 2px;display:none}.cell:hover .clr[data-v-13a3b251]{display:inline}.empty-btn[data-v-13a3b251]{border:none;background:none;color:#b9bec7;cursor:pointer;font-size:16px;width:100%;height:100%}.empty-btn[data-v-13a3b251]:hover{color:#2f6fed}.pick[data-v-13a3b251]{position:relative;min-width:120px}.pick-list[data-v-13a3b251]{position:absolute;top:100%;left:0;background:#fff;border:1px solid var(--border, #ddd);border-radius:6px;max-height:180px;overflow:auto;z-index:10;min-width:120px}.pick-item[data-v-13a3b251]{display:block;width:100%;text-align:left;padding:5px 10px;border:none;background:none;cursor:pointer;font-size:12px}.pick-item[data-v-13a3b251]:hover{background:#eef2ff}.muted[data-v-13a3b251]{color:var(--muted, #6b7280)}.warn[data-v-13a3b251]{color:#b26a00}.cards[data-v-c4a5a55b]{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:16px}.gcard[data-v-c4a5a55b]{width:280px;background:var(--card, #fff);border:1px solid var(--border, #e5e7eb);border-radius:10px;padding:14px 16px;cursor:pointer}.gcard.on[data-v-c4a5a55b]{border-color:#2f6fed;box-shadow:0 0 0 2px #2f6fed22}.ghead[data-v-c4a5a55b]{display:flex;align-items:center;gap:8px;margin-bottom:6px}.ghead h3[data-v-c4a5a55b]{margin:0;font-size:15px}.gmeta[data-v-c4a5a55b]{color:var(--muted, #6b7280);font-size:12px;margin-bottom:8px}.chips[data-v-c4a5a55b]{display:flex;gap:4px;flex-wrap:wrap}.chip[data-v-c4a5a55b]{padding:3px 7px;border-radius:6px;border:1px solid var(--border, #e0e0e0);background:#fff;cursor:pointer;font-size:11px}.chip.sm[data-v-c4a5a55b]{min-width:24px;text-align:center}.chip.on[data-v-c4a5a55b]{background:#2f6fed;color:#fff;border-color:#2f6fed}.chip[data-v-c4a5a55b]:disabled{cursor:default;opacity:.8}.gfoot[data-v-c4a5a55b]{display:flex;justify-content:space-between;align-items:center;margin-top:8px}.link[data-v-c4a5a55b]{background:none;border:none;color:#2f6fed;cursor:pointer;font-size:12px;padding:0}.link.danger[data-v-c4a5a55b]{color:#c0392b}.card[data-v-c4a5a55b]{background:var(--card, #fff);border:1px solid var(--border, #e5e7eb);border-radius:10px;padding:16px 18px;margin-bottom:16px}.card h3[data-v-c4a5a55b]{margin:0 0 12px;font-size:14px}.card-head[data-v-c4a5a55b]{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.frow[data-v-c4a5a55b]{display:flex;align-items:center;gap:10px;margin-bottom:10px}.frow>label[data-v-c4a5a55b]{width:70px;font-size:13px;color:var(--muted, #6b7280)}.addrow[data-v-c4a5a55b]{display:flex;gap:8px;align-items:center;margin-bottom:10px;flex-wrap:wrap}.tbl[data-v-c4a5a55b]{width:100%;border-collapse:collapse;font-size:13px}.tbl th[data-v-c4a5a55b],.tbl td[data-v-c4a5a55b]{text-align:left;padding:7px 10px;border-bottom:1px solid var(--border, #eee)}.tbl th[data-v-c4a5a55b]{color:var(--muted, #6b7280);font-weight:600;font-size:12px}.muted[data-v-c4a5a55b]{color:var(--muted, #6b7280);font-size:12px}.btn[data-v-c4a5a55b]{padding:6px 14px;border-radius:8px;border:1px solid var(--border, #ddd);background:#fff;cursor:pointer}.btn.primary[data-v-c4a5a55b]{background:#2f6fed;color:#fff;border-color:#2f6fed}.btn.danger[data-v-c4a5a55b]{color:#c0392b;border-color:#e6b0aa}.btn.sm[data-v-c4a5a55b]{padding:3px 9px;font-size:12px}.btn[data-v-c4a5a55b]:disabled{opacity:.55;cursor:not-allowed}.ptgrid[data-v-c4a5a55b]{display:flex;gap:8px;flex-wrap:wrap;flex:1}.ptitem[data-v-c4a5a55b]{font-size:12.5px;display:inline-flex;align-items:center;gap:4px;white-space:nowrap}input.pill.pt[data-v-c4a5a55b]{width:62px;padding:4px 8px}.ptgrade[data-v-c4a5a55b]{border-top:1px dashed var(--border, #e5e7eb);padding-top:12px;margin-top:6px}.ptgrade .btn[data-v-c4a5a55b]{margin-right:8px}.card[data-v-99ac47e9]{background:var(--card, #fff);border:1px solid var(--border, #e5e7eb);border-radius:10px;padding:14px 16px;margin-bottom:14px}.card h3[data-v-99ac47e9]{margin:0 0 10px;font-size:14px}.row[data-v-99ac47e9]{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.sp[data-v-99ac47e9]{flex:1}.timetable[data-v-99ac47e9]{width:100%;border-collapse:separate;border-spacing:4px}.timetable th[data-v-99ac47e9]{font-size:13px;color:var(--muted, #7a8699);padding:4px 0}.cell[data-v-99ac47e9]{background:#fff;border:1.5px solid #eef0f4;border-radius:8px;min-width:92px;height:52px;padding:6px 8px;text-align:center;vertical-align:middle}.cell.ready[data-v-99ac47e9]{cursor:pointer}.cell.ready[data-v-99ac47e9]:hover{border-color:#2f6fed;background:#f6f8ff}.cell.mine[data-v-99ac47e9]{background:#e7f6ec;border-color:#1a9e6c}.cell.occupied[data-v-99ac47e9]{background:#f1f2f4;color:#98a2b3;cursor:default}.cell.teacherbusy[data-v-99ac47e9]{background:#fff7e6;color:#b26a00;cursor:not-allowed}.sname[data-v-99ac47e9]{font-weight:600;font-size:13px}.sname.oc[data-v-99ac47e9]{color:#b9bec7}.sname.tb[data-v-99ac47e9]{font-size:12px}.sname.dim[data-v-99ac47e9]{color:#d5d9e0;font-size:16px}.meta[data-v-99ac47e9]{font-size:11.5px;color:var(--muted, #7a8699);margin-top:2px;position:relative}.del[data-v-99ac47e9]{border:none;background:none;color:#c0392b;cursor:pointer;font-size:13px;padding:0 2px;display:none}.cell.mine:hover .del[data-v-99ac47e9]{display:inline}.head[data-v-99ac47e9]{background:transparent;text-align:right;color:var(--muted, #7a8699);font-size:12px;width:70px;white-space:nowrap}.head .pn[data-v-99ac47e9]{font-weight:700;color:var(--fg, #1f2733);font-size:14px}.muted[data-v-99ac47e9]{color:var(--muted, #6b7280);font-size:12px}.plist[data-v-99ac47e9]{display:flex;flex-wrap:wrap;gap:8px}.pitem[data-v-99ac47e9]{background:#f7f8fa;border-radius:7px;padding:4px 10px;font-size:12.5px}.link[data-v-99ac47e9]{background:none;border:none;color:#2f6fed;cursor:pointer;font-size:12px;padding:0 3px}.link.danger[data-v-99ac47e9]{color:#c0392b}.pager[data-v-9e75e910]{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}.pager .sp[data-v-9e75e910]{flex:1}.tabs[data-v-9e75e910]{display:flex;gap:8px;margin-bottom:14px}.tab[data-v-9e75e910]{padding:7px 16px;border-radius:8px;border:1px solid var(--border, #e5e7eb);background:#fff;cursor:pointer;font-size:13px}.tab.on[data-v-9e75e910]{background:#2f6fed;color:#fff;border-color:#2f6fed}.tbl[data-v-9e75e910]{width:100%;border-collapse:collapse;background:var(--card, #fff);border-radius:10px;overflow:hidden;font-size:13px}.tbl th[data-v-9e75e910],.tbl td[data-v-9e75e910]{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border, #eee)}.tbl th[data-v-9e75e910]{background:var(--surface-2, #f7f8fa);color:var(--muted, #6b7280);font-weight:600;font-size:12px}.card[data-v-9e75e910]{background:var(--card, #fff);border:1px solid var(--border, #e5e7eb);border-radius:10px;padding:16px 18px;margin-bottom:14px}.card h3[data-v-9e75e910]{margin:0 0 12px;font-size:14px}.prow[data-v-9e75e910]{display:flex;gap:8px;align-items:center;margin-bottom:10px;flex-wrap:wrap}.prow label[data-v-9e75e910]{width:80px;font-size:13px;color:var(--muted, #6b7280)}.muted[data-v-9e75e910]{color:var(--muted, #6b7280);font-size:12px}.warn[data-v-9e75e910]{color:#c0392b;font-weight:600}.st[data-v-9e75e910]{padding:2px 8px;border-radius:6px;font-size:12px}.st.active[data-v-9e75e910]{background:#e7f6ec;color:#1f7a3d}.st.expired[data-v-9e75e910]{background:#fdeceb;color:#c0392b}.st.suspended[data-v-9e75e910]{background:#f1f2f4;color:#6b7280}.btn[data-v-9e75e910]{padding:5px 12px;border-radius:7px;border:1px solid var(--border, #ddd);background:#fff;cursor:pointer;font-size:12px}.btn.primary[data-v-9e75e910]{background:#2f6fed;color:#fff;border-color:#2f6fed}.btn.danger[data-v-9e75e910]{color:#c0392b;border-color:#e6b0aa}.btn.sm[data-v-9e75e910]{margin-right:4px}.card[data-v-4506c9cc]{background:var(--card, #fff);border:1px solid var(--border, #e5e7eb);border-radius:10px;padding:16px 18px;margin-bottom:14px}.card h3[data-v-4506c9cc]{margin:0 0 10px;font-size:14px}.status-line[data-v-4506c9cc]{display:flex;align-items:center;gap:12px;margin-bottom:8px}.big[data-v-4506c9cc]{font-size:17px;font-weight:700}.badge[data-v-4506c9cc]{padding:3px 10px;border-radius:7px;font-size:12.5px}.badge.active[data-v-4506c9cc]{background:#e7f6ec;color:#1f7a3d}.badge.expired[data-v-4506c9cc]{background:#fdeceb;color:#c0392b}.badge.suspended[data-v-4506c9cc]{background:#f1f2f4;color:#6b7280}.line[data-v-4506c9cc]{font-size:13.5px;margin:6px 0}.warn[data-v-4506c9cc]{color:#c0392b}.plans[data-v-4506c9cc]{display:flex;gap:14px;flex-wrap:wrap}.plan[data-v-4506c9cc]{border:1px solid var(--border, #e5e7eb);border-radius:10px;padding:14px 18px;min-width:180px;text-align:center}.pname[data-v-4506c9cc]{font-weight:700;margin-bottom:4px}.price[data-v-4506c9cc]{font-size:22px;color:#c0392b;font-weight:700;margin:6px 0}.pdays[data-v-4506c9cc]{color:var(--muted, #6b7280);font-size:12px;margin-bottom:6px}.pdesc[data-v-4506c9cc]{color:var(--muted, #6b7280);font-size:12px;margin-bottom:10px;min-height:16px}.muted[data-v-4506c9cc]{color:var(--muted, #6b7280);font-size:13px}.btn[data-v-4506c9cc]{padding:7px 16px;border-radius:8px;border:1px solid var(--border, #ddd);background:#fff;cursor:pointer;margin-right:8px}.btn.primary[data-v-4506c9cc]{background:#2f6fed;color:#fff;border-color:#2f6fed}.btn[data-v-4506c9cc]:disabled{opacity:.55;cursor:not-allowed}.paybox[data-v-4506c9cc]{display:flex;justify-content:center;margin:12px 0}.qr[data-v-4506c9cc]{width:220px;height:220px;border:1px solid var(--border, #e5e7eb);border-radius:8px}.trial-tip[data-v-402a7b6f]{background:#fff7e8;border:1px solid #f3d9a8;color:#8a5a00;border-radius:10px;padding:12px 16px;font-size:13.5px;margin-bottom:14px;line-height:1.8}.trial-tip .lk[data-v-402a7b6f]{color:#b76e00;font-weight:600;cursor:pointer;text-decoration:none}.card[data-v-402a7b6f]{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:16px 18px;margin-bottom:14px}.card h3[data-v-402a7b6f]{margin:0 0 8px;font-size:14px}.desc[data-v-402a7b6f]{font-size:13px;color:#6b7280;margin:4px 0 10px}.btns[data-v-402a7b6f]{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.btn[data-v-402a7b6f]{padding:8px 18px;border-radius:8px;border:1px solid #d1d5db;background:#fff;cursor:pointer;font-size:13px}.btn.primary[data-v-402a7b6f]{background:#2f6fed;color:#fff;border-color:#2f6fed}.btn[data-v-402a7b6f]:disabled{opacity:.55;cursor:not-allowed}.radio[data-v-402a7b6f]{font-size:13px;margin-right:12px}.muted[data-v-402a7b6f]{color:#6b7280;font-size:12.5px}:root{--bg:#f4f6fa;--card:#fff;--line:#e5e9f0;--fg:#1f2733;--muted:#7a8699;--primary:#3562e8;--primary-soft:#eaf0fe;--ok:#1a9e6c;--ok-soft:#e6f6ef;--bad:#d9483b;--bad-soft:#fdeceb;--warn:#c77d0a;--radius:10px;--side:#1e2633;--side-fg:#aeb8c8;--side-on:#fff}*{box-sizing:border-box;margin:0;padding:0}body{font:14px/1.6 PingFang SC,Microsoft YaHei,system-ui,sans-serif;background:var(--bg);color:var(--fg)}.layout{display:flex;min-height:100vh}.side{width:216px;background:var(--side);color:var(--side-fg);flex-shrink:0;display:flex;flex-direction:column}.logo{padding:18px 20px 14px;font-size:17px;font-weight:700;color:var(--side-on);letter-spacing:1px}.logo small{display:block;font-size:12px;font-weight:400;color:var(--side-fg);letter-spacing:0}.nav{flex:1;padding:6px 10px 20px;overflow:auto}.nav .group{margin-top:14px;font-size:12px;color:#66738a;padding:0 10px}.nav a{display:flex;align-items:center;gap:9px;padding:8px 10px;margin:2px 0;border-radius:8px;color:var(--side-fg);text-decoration:none;cursor:pointer}.nav a:hover{background:#2a3547;color:#fff}.nav a.on{background:var(--primary);color:#fff}.side-foot{padding:14px 20px;border-top:1px solid #2a3547;font-size:12px;color:#66738a}.main{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{height:54px;background:var(--card);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:14px;padding:0 22px}.topbar .crumb{font-weight:600;font-size:15px}.topbar .crumb-real{font-size:13px;color:var(--muted)}.topbar .sp{flex:1}.sem{font-size:13px;color:var(--muted);border:1px solid var(--line);border-radius:8px;padding:5px 12px;background:#fff}.me{display:flex;align-items:center;gap:8px;font-size:13px}.avatar{width:30px;height:30px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px}.logout{border:none;background:none;color:var(--muted);cursor:pointer;font-size:12.5px}.logout:hover{color:var(--bad)}.content{flex:1;padding:20px 22px;overflow:auto}@media print{body{background:#fff}.layout{display:block}.side,.side-foot,.topbar,.toolbar,.toast{display:none!important}.main{margin:0}.content{padding:0;overflow:visible}.timetable{border-collapse:collapse;width:100%;border-spacing:0}.timetable th,.timetable td{border:1px solid #333;padding:6px 4px}td.slot{background:#fff!important;min-width:auto;height:auto}td.slot .sname{font-size:12px;font-weight:700}td.slot .meta{font-size:11px}}.toolbar{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}.toolbar h2{font-size:16px;margin-right:4px}.pill{border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 14px;font-size:13px;cursor:pointer}.hint{font-size:12.5px;color:var(--muted)}.hint b{color:var(--warn)}.timetable{width:100%;border-collapse:separate;border-spacing:5px}.timetable th{font-size:13px;color:var(--muted);font-weight:600;padding:4px 0}.timetable th.today{color:var(--primary)}td.slot{background:var(--card);border:1.5px solid transparent;border-radius:var(--radius);min-width:96px;height:56px;padding:7px 9px;vertical-align:middle;transition:border-color .12s,box-shadow .12s}td.slot .sname{font-weight:600;font-size:14px}td.slot .meta{font-size:11.5px;color:var(--muted);margin-top:1px}td.slot .tname{color:#3d4a5d}td.slot.dragging{opacity:.35}td.slot.drop-ok{border-color:var(--ok);background:var(--ok-soft);cursor:pointer}td.slot.drop-bad{border-color:var(--bad);background:var(--bad-soft);cursor:not-allowed}td.slot .why{font-size:11.5px;margin-top:1px;display:none;color:var(--bad)}.picking td.slot .why{display:block}td.slot.fixed{background:#eef1f5;color:#98a2b3;cursor:default}td.slot.fixed .sname{font-weight:500}td.slot.locked{background:#fffdf3;border-style:dashed;border-color:#e3d9b8}td.slot.locked:after{content:"已锁定";font-size:10.5px;color:var(--warn);margin-left:6px}td.head{background:transparent;text-align:right;color:var(--muted);font-size:12.5px;width:70px;white-space:nowrap}td.head .pn{font-weight:700;color:var(--fg);font-size:14px}.c-CH{background:#eaf3ff}.c-CH .sname{color:#1c5bd9}.c-MA{background:#fff4e8}.c-MA .sname{color:#c06314}.c-EN{background:#f3ecff}.c-EN .sname{color:#6f3bd4}.c-PH{background:#e9f8f1}.c-PH .sname{color:#0e7d55}.c-CO{background:#fdeef0}.c-CO .sname{color:#c2404e}.c-BI{background:#edf7e6}.c-BI .sname{color:#4d8a1f}.c-HI{background:#f7f1e6}.c-HI .sname{color:#92650f}.c-PO{background:#eceffb}.c-PO .sname{color:#4459b8}.c-GE{background:#e8f6f6}.c-GE .sname{color:#0e7f84}.c-PE{background:#f0f0f4}.c-PE .sname{color:#5b6472}.c-MU{background:#fdeef7}.c-MU .sname{color:#b83a7e}.c-IT{background:#eef2f8}.c-IT .sname{color:#4c6a94}.toast{position:fixed;right:24px;bottom:24px;background:var(--fg);color:#fff;border-radius:10px;padding:11px 18px;font-size:13px;opacity:0;transform:translateY(8px);transition:.25s;pointer-events:none;z-index:9;max-width:420px}.toast.show{opacity:1;transform:none}.empty{background:var(--card);border:1px dashed var(--line);border-radius:var(--radius);padding:60px;text-align:center;color:var(--muted)}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg)}.login-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:40px 44px;width:360px;text-align:center}.login-logo{font-size:26px;font-weight:800;color:var(--primary);letter-spacing:2px}.login-sub{font-size:13px;color:var(--muted);margin:6px 0 26px}.login-card input{width:100%;border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:14px;margin-bottom:12px;outline:none}.login-card input:focus{border-color:var(--primary)}.login-err{color:var(--bad);font-size:12.5px;text-align:left;margin:-4px 0 10px}.login-card button{width:100%;border:none;border-radius:8px;padding:11px;font-size:14px;background:var(--primary);color:#fff;cursor:pointer}.login-card button:disabled{opacity:.6}.login-tip{margin-top:18px;font-size:12px;color:var(--muted)}@media print{html.trial-locked body{visibility:hidden}html.trial-locked body:before{content:"免费试用期间暂不可打印课表 · 开通年费后在「使用期限与续费」页解锁";visibility:visible;position:fixed;top:38%;left:0;right:0;text-align:center;font-size:20px;color:#1a2340}}
