:root{--color-primary:#17181c;--color-primary-hover:#000;--color-primary-soft:#ece9e2;--color-primary-ring:#17181c24;--gradient-avatar:linear-gradient(135deg, #b0a698, #857a6b);--gradient-brand:linear-gradient(135deg, #2c2e34, #17181c);--gradient-brand-hover:linear-gradient(135deg, #35383f, #0f1013);--gradient-panel:linear-gradient(165deg, #f7f5f0 0%, #efece4 55%, #f3f2ee 100%);--bg-page:#f3f2ee;--bg-panel:#fff;--bg-subtle:#faf8f4;--bg-input:#f5f2ec;--bg-muted:#efede6;--bg-hover:#efece4;--bg-hover-alt:#f6f4ef;--bg-active:#e7e3d9;--bg-elevated:#fff;--text-primary:#17181c;--text-secondary:#4b4a46;--text-muted:#8b877e;--text-faint:#a9a49a;--text-placeholder:#b6b1a6;--text-on-brand:#f7f6f2;--border:#eae7e0;--border-light:#f0ede7;--border-lighter:#f4f2ec;--border-strong:#dcd7cc;--rail-bg:#17181c;--rail-hover:#23252b;--rail-active:#2b2e35;--rail-text:#8d8b86;--rail-text-strong:#f3f2ee;--bubble-bg:#fff;--bubble-text:#17181c;--bubble-border:#eae7e0;--bubble-mine-bg:var(--gradient-brand);--bubble-mine-text:#f7f6f2;--color-danger:#c0554c;--color-danger-bg:#faf0ee;--color-danger-hover:#f5e3e0;--color-success:#3f7d5c;--color-success-bg:#edf3ef;--color-warning:#c68a3a;--color-warning-bg:#faf2e4;--color-purple:#7a63b8;--color-slate:#8b877e;--border-brand:#dcd7cc;--border-danger:#e6cfcb;--mask-bg:#17181c57;--shadow-xs:0 1px 2px #1c19120d;--shadow-sm:0 1px 3px #1c191212;--shadow-md:0 4px 20px #1c191214;--shadow-lg:0 20px 60px #1c191229;--shadow-lg-strong:0 20px 60px #1c19122e;--shadow-primary:0 6px 14px #17181c38;--radius-sm:8px;--radius-md:12px;--radius-card:14px;--radius-lg:16px;--radius-xl:20px;--radius-full:999px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html[data-theme=dark]{--color-primary:#e9e6df;--color-primary-hover:#f5f3ee;--color-primary-soft:#23262c;--color-primary-ring:#e9e6df33;--gradient-avatar:linear-gradient(135deg, #8f8578, #5e564c);--gradient-brand:linear-gradient(135deg, #f2efe9, #ded9d0);--gradient-brand-hover:linear-gradient(135deg, #fbf9f5, #eae6dd);--gradient-panel:linear-gradient(165deg, #1a2338 0%, #151d2e 55%, #101725 100%);--bg-page:#0e1420;--bg-panel:#131a27;--bg-subtle:#0e1420;--bg-input:#1b2432;--bg-muted:#1b2432;--bg-hover:#1b2432;--bg-hover-alt:#151e2c;--bg-active:#232830;--bg-elevated:#17202e;--text-primary:#e6ecf6;--text-secondary:#a9b5c6;--text-muted:#8592a6;--text-faint:#6d7a8d;--text-placeholder:#6a7688;--border:#1e2837;--border-light:#1b2432;--border-lighter:#17202c;--border-strong:#26313f;--rail-bg:#0a0f18;--rail-hover:#151e2c;--rail-active:#232830;--rail-text:#8592a6;--rail-text-strong:#f3f2ee;--bubble-bg:#1a2431;--bubble-text:#e6ecf6;--bubble-border:#24303f;--bubble-mine-bg:linear-gradient(135deg, #f2efe9, #ded9d0);--bubble-mine-text:#17181c;--text-on-brand:#17181c;--color-danger:#f2555a;--color-danger-bg:#2a1618;--color-danger-hover:#3a1c1f;--color-success:#35c07a;--color-success-bg:#14261d;--color-warning:#f0b354;--color-warning-bg:#2a2114;--color-purple:#9a80ff;--color-slate:#8592a6;--border-brand:#2b2f36;--border-danger:#3a2024;--mask-bg:#0009;--shadow-xs:0 1px 2px #0006;--shadow-sm:0 1px 3px #00000073;--shadow-md:0 4px 20px #00000080;--shadow-lg:0 20px 60px #0000008c;--shadow-lg-strong:0 20px 60px #0009;--shadow-primary:0 6px 16px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{color:var(--text-primary);background:var(--bg-page);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,Helvetica Neue,Arial,sans-serif;font-size:14px;transition:background-color .2s,color .2s}a{color:inherit;text-decoration:none}button{font-family:inherit}html[data-theme=dark] ::-webkit-scrollbar{width:10px;height:10px}html[data-theme=dark] ::-webkit-scrollbar-track{background:0 0}html[data-theme=dark] ::-webkit-scrollbar-thumb{background:#26313f;border-radius:6px}html[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:#33404f}input,textarea,select{background-color:var(--bg-input);color:var(--text-primary)}input::placeholder,textarea::placeholder{color:var(--text-placeholder)}input[type=search]{appearance:none}#app{width:100%;min-height:100vh}:root{--m-press:.12s;--m-release:.26s;--ease-press:cubic-bezier(.2, .8, .3, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--press-scale:.97;--press-shift:1px;--press-strong-scale:.9;--focus-ring:0 0 0 3px #2b6de838}button{transition:transform var(--m-press) var(--ease-press), background-color .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease, filter .15s ease}button:not(:disabled):active{transform:translateY(var(--press-shift)) scale(var(--press-scale));transition:transform var(--m-press) var(--ease-press), box-shadow var(--m-press) var(--ease-press)}button.press-strong:not(:disabled):active{transform:translateY(0) scale(var(--press-strong-scale))}button:focus-visible{box-shadow:var(--focus-ring);outline:none}button:disabled{cursor:not-allowed}button.press-flat:not(:disabled):active{transform:none}@media (prefers-reduced-motion:reduce){button,button:not(:disabled):active{transition:none!important;transform:none!important}}.settings-layout[data-v-f20d295c]{z-index:1000;background:var(--mask-bg);justify-content:center;align-items:center;padding:20px;animation:.2s both fadeIn-f20d295c;display:flex;position:fixed;inset:0}.panels-row[data-v-f20d295c]{justify-content:center;align-items:flex-start;gap:16px;animation:.22s cubic-bezier(.2,.8,.3,1) both popIn-f20d295c;display:flex}.panel[data-v-f20d295c]{background:var(--bg-panel);border-radius:18px;flex-direction:column;width:min(380px,88vw);max-height:76vh;display:flex;overflow:hidden;box-shadow:0 28px 70px -26px #1c19128c}.account-panel[data-v-f20d295c]{order:2;animation:.22s cubic-bezier(.2,.8,.3,1) both popIn-f20d295c}.panel-header[data-v-f20d295c]{border-bottom:1px solid var(--border-light);flex-shrink:0;justify-content:space-between;align-items:center;padding:18px 20px;display:flex}.account-panel .panel-header[data-v-f20d295c]{justify-content:flex-start;gap:8px}.panel-title[data-v-f20d295c]{color:var(--text-primary);font-size:16px;font-weight:600}.back-btn[data-v-f20d295c],.close-btn[data-v-f20d295c]{width:28px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;font-size:20px;line-height:1;display:flex}.back-btn[data-v-f20d295c]{color:var(--text-primary);font-size:24px}.back-btn[data-v-f20d295c]:hover,.close-btn[data-v-f20d295c]:hover{background:var(--bg-hover);color:var(--text-primary)}.panel-body[data-v-f20d295c]{flex:1;padding:16px;overflow-y:auto}.card[data-v-f20d295c]{background:var(--bg-panel);border:1px solid var(--border-light);border-radius:14px;overflow:hidden}.row[data-v-f20d295c]{cursor:pointer;align-items:center;gap:12px;padding:14px 16px;transition:background .15s;display:flex}.row[data-v-f20d295c]:hover{background:var(--bg-hover)}.row[data-v-f20d295c]:not(:last-child){border-bottom:1px solid var(--border-light)}.row-label[data-v-f20d295c]{color:var(--text-primary);flex:1;font-size:15px}.row-label.danger[data-v-f20d295c]{color:var(--color-danger)}.row-value[data-v-f20d295c]{color:var(--text-muted);font-size:14px}.theme-block[data-v-f20d295c]{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;gap:12px;margin-bottom:4px;padding:4px 4px 16px;display:flex}.theme-label[data-v-f20d295c]{color:var(--text-primary);font-size:15px}.seg[data-v-f20d295c]{background:var(--bg-muted);border-radius:9px;gap:2px;padding:3px;display:flex}.seg-btn[data-v-f20d295c]{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:7px;padding:5px 10px;font-size:13px;transition:background .15s,color .15s}.seg-btn[data-v-f20d295c]:hover{color:var(--text-primary)}.seg-btn.on[data-v-f20d295c]{background:var(--bg-panel);color:var(--color-primary);box-shadow:var(--shadow-xs);font-weight:500}.setting-list[data-v-f20d295c]{list-style:none}.setting-item[data-v-f20d295c]{color:var(--text-primary);cursor:pointer;border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:14px 4px;font-size:15px;display:flex}.setting-item[data-v-f20d295c]:last-child{border-bottom:none}.setting-item[data-v-f20d295c]:hover{color:var(--color-primary)}.chevron[data-v-f20d295c]{color:var(--text-faint);font-size:18px}.dialog-overlay[data-v-f20d295c]{z-index:1100;background:#0006;justify-content:center;align-items:center;animation:.2s both fadeIn-f20d295c;display:flex;position:fixed;inset:0}.dialog[data-v-f20d295c]{background:var(--bg-panel);border-radius:14px;width:min(320px,86vw);padding:20px;box-shadow:0 20px 60px #0003}.dialog-title[data-v-f20d295c]{color:var(--text-primary);text-align:center;margin-bottom:14px;font-size:16px;font-weight:600}.dialog input[data-v-f20d295c]{border:1px solid var(--border-strong);border-radius:8px;outline:none;width:100%;height:40px;padding:0 12px;font-size:14px;transition:border-color .15s}.dialog input[data-v-f20d295c]:focus{border-color:var(--color-primary)}.dialog-ok[data-v-f20d295c]{color:var(--color-success);margin:14px 0 4px;font-size:13px}.dialog-error[data-v-f20d295c]{color:var(--color-danger);margin-top:6px;font-size:12px}.dialog-actions[data-v-f20d295c]{gap:10px;margin-top:16px;display:flex}.dialog-btn[data-v-f20d295c]{cursor:pointer;border:none;border-radius:8px;flex:1;height:38px;font-size:14px}.dialog-btn.cancel[data-v-f20d295c]{background:var(--bg-hover);color:var(--text-primary)}.dialog-btn.confirm[data-v-f20d295c]{background:var(--color-primary);color:var(--text-on-brand)}.dialog-btn.confirm[data-v-f20d295c]:disabled{opacity:.6;cursor:not-allowed}@keyframes fadeIn-f20d295c{0%{opacity:0}to{opacity:1}}@keyframes slideInRight-f20d295c{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes popIn-f20d295c{0%{opacity:0;transform:scale(.97)translateY(6px)}to{opacity:1;transform:scale(1)translateY(0)}}.u-avatar[data-v-21f0074a]{color:#fff;-webkit-user-select:none;user-select:none;flex:none;place-items:center;font-weight:500;line-height:1;display:grid;overflow:hidden}.shape-rounded[data-v-21f0074a]{border-radius:34%}.shape-circle[data-v-21f0074a]{border-radius:50%}.tone-blue[data-v-21f0074a]{background:var(--gradient-avatar)}.tone-orange[data-v-21f0074a]{background:linear-gradient(135deg,#f0a04b,#e2842b)}.tone-solid[data-v-21f0074a]{background:#24334d}.u-avatar img[data-v-21f0074a]{object-fit:cover;width:100%;height:100%}.mask[data-v-b4c067db]{z-index:80;background:var(--mask-bg);place-items:center;padding:20px;display:grid;position:fixed;inset:0}.dialog[data-v-b4c067db]{background:var(--bg-panel);border-radius:18px;width:min(100%,420px);max-height:min(86vh,720px);padding:20px 22px 22px;overflow-y:auto;box-shadow:0 28px 70px -26px #1c19128c}.dialog-head[data-v-b4c067db]{justify-content:space-between;align-items:center;display:flex}.dialog-head h2[data-v-b4c067db]{color:var(--text-primary);margin:0;font-size:16px;font-weight:600}.close[data-v-b4c067db]{width:30px;height:30px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:8px;font-size:20px;line-height:1}.close[data-v-b4c067db]:hover{background:var(--bg-subtle);color:var(--text-primary)}.hero[data-v-b4c067db]{align-items:center;gap:16px;margin:16px 0 6px;display:flex}.avatar-big[data-v-b4c067db]{cursor:default;background:0 0;border:0;border-radius:50%;flex:none;padding:0;position:relative;overflow:hidden}.avatar-big.clickable[data-v-b4c067db]{cursor:pointer}.avatar-mask[data-v-b4c067db]{color:#f3f2ee;opacity:0;background:#14120e8c;border-radius:50%;place-items:center;font-size:12px;transition:opacity .16s;display:grid;position:absolute;inset:0}.avatar-big.clickable:hover .avatar-mask[data-v-b4c067db]{opacity:1}.hero-text[data-v-b4c067db]{min-width:0}.hero-name[data-v-b4c067db]{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:18px;font-weight:600;overflow:hidden}.role-chip[data-v-b4c067db]{background:var(--bg-subtle);height:22px;color:var(--text-secondary);border-radius:999px;align-items:center;margin-top:7px;padding:0 10px;font-size:12px;display:inline-flex}.block[data-v-b4c067db]{border-top:1px solid var(--border);margin-top:18px;padding-top:16px}.block-title[data-v-b4c067db]{letter-spacing:.04em;color:var(--text-muted);margin:0 0 12px;font-size:12.5px;font-weight:600}.info[data-v-b4c067db]{margin:0}.info-row[data-v-b4c067db]{align-items:baseline;gap:12px;padding:7px 0;display:flex}.info-row dt[data-v-b4c067db]{color:var(--text-muted);flex:0 0 64px;margin:0;font-size:12.5px}.info-row dd[data-v-b4c067db]{color:var(--text-primary);overflow-wrap:anywhere;flex:1;margin:0;font-size:13.5px}.block-empty[data-v-b4c067db]{color:var(--text-muted);margin:0;padding:10px 0;font-size:12.5px}.ops[data-v-b4c067db]{gap:10px;margin-top:20px;display:flex}.ghost-btn[data-v-b4c067db],.logout-btn[data-v-b4c067db]{height:42px;font:inherit;cursor:pointer;border-radius:11px;flex:1;font-size:14px}.ghost-btn[data-v-b4c067db]{border:1px solid var(--border-strong);background:var(--bg-panel);color:var(--text-primary)}.ghost-btn[data-v-b4c067db]:hover{border-color:var(--text-primary)}.logout-btn[data-v-b4c067db]{background:var(--color-danger-bg);color:var(--color-danger);border:1px solid #0000}.logout-btn[data-v-b4c067db]:hover{border-color:var(--color-danger)}.file-hidden[data-v-b4c067db]{display:none}.theme-btn[data-v-e96879cf]{width:34px;height:34px;color:var(--rail-text);cursor:pointer;background:0 0;border:none;border-radius:9px;place-items:center;padding:0;transition:background .15s,color .15s;display:grid;position:relative}.theme-btn svg[data-v-e96879cf]{width:19px;height:19px}.theme-btn[data-v-e96879cf]:hover{background:var(--rail-hover);color:var(--rail-text-strong)}.tip[data-v-e96879cf]{color:#fff;white-space:nowrap;opacity:0;pointer-events:none;z-index:20;background:#1f2937;border-radius:7px;padding:5px 9px;font-size:11.5px;transition:opacity .14s,transform .14s;position:absolute;top:50%;left:calc(100% + 10px);transform:translateY(-50%)scale(.96)}.theme-btn:hover .tip[data-v-e96879cf]{opacity:1;transform:translateY(-50%)scale(1)}.rail[data-v-30ec8ef5]{background:var(--rail-bg);width:68px;color:var(--text-muted);-webkit-user-select:none;user-select:none;z-index:2;flex-direction:column;flex:0 0 68px;align-items:center;gap:6px;padding:14px 0;display:flex}.logo[data-v-30ec8ef5]{background:var(--rail-text-strong);width:34px;height:34px;color:var(--rail-bg);border-radius:10px;place-items:center;margin-bottom:12px;font-size:13px;font-weight:700;display:grid}.rail-sep[data-v-30ec8ef5]{background:#ffffff1a;width:26px;height:1px;margin:10px 0 8px}.rail-btn[data-v-30ec8ef5]{width:42px;height:42px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:11px;place-items:center;display:grid;position:relative}.rail-btn svg[data-v-30ec8ef5]{width:19px;height:19px}.rail-btn[data-v-30ec8ef5]:not(.on):not(:disabled):hover{background:var(--rail-hover);color:var(--rail-text-strong)}.rail-btn.on[data-v-30ec8ef5]{background:var(--rail-active);color:var(--rail-text-strong)}.rail-btn.on[data-v-30ec8ef5]:before{content:"";background:var(--rail-text-strong);border-radius:0 3px 3px 0;width:3px;height:20px;position:absolute;top:11px;left:-13px}.tip[data-v-30ec8ef5]{color:#fff;white-space:nowrap;opacity:0;pointer-events:none;z-index:20;background:#1f2937;border-radius:7px;padding:5px 9px;font-size:11.5px;transition:opacity .14s,transform .14s;position:absolute;top:50%;left:calc(100% + 10px);transform:translateY(-50%)scale(.96)}.rail-btn:hover .tip[data-v-30ec8ef5]{opacity:1;transform:translateY(-50%)scale(1)}.foot[data-v-30ec8ef5]{flex-direction:column;align-items:center;gap:4px;margin-top:auto;padding-top:12px;display:flex;position:relative}.foot[data-v-30ec8ef5]:before{content:"";background:#ffffff14;width:26px;height:1px;margin-left:-13px;position:absolute;top:0;left:50%}.rail-avatar[data-v-30ec8ef5]{cursor:pointer;background:0 0;border:none;border-radius:50%;place-items:center;width:44px;height:44px;padding:0;transition:transform .18s;display:grid;position:relative}.avatar-ring[data-v-30ec8ef5]{background:linear-gradient(145deg,#ffffffeb,#fff3 52%,#ffffff9e);border-radius:50%;place-items:center;width:44px;height:44px;padding:2px;transition:box-shadow .18s,filter .18s;display:grid;box-shadow:0 6px 16px -8px #0000008c}.rail-avatar[data-v-30ec8ef5]:hover{transform:translateY(-1px)}.rail-avatar:hover .avatar-ring[data-v-30ec8ef5]{filter:brightness(1.06);box-shadow:0 8px 20px -8px #000000a6,0 0 0 3px #ffffff1f}.online-dot[data-v-30ec8ef5]{width:9px;height:9px;box-shadow:0 0 0 2px var(--rail-bg);background:#4ea874;border-radius:50%;position:absolute;bottom:3px;right:1px}.rail-avatar[data-v-30ec8ef5] .u-avatar{color:#17181c;background:linear-gradient(150deg,#fdfcf8,#e3ded1);font-weight:700;box-shadow:inset 0 0 0 1px #17181c14}.rail-avatar[data-v-30ec8ef5] .u-avatar>span{letter-spacing:.02em;font-size:15px}.rail-avatar[data-v-30ec8ef5] .u-avatar img{box-shadow:inset 0 0 0 1px #17181c14}.rail-icon[data-v-30ec8ef5]{color:#8e99aa;cursor:pointer;background:0 0;border:none;border-radius:9px;place-items:center;width:34px;height:34px;padding:0;transition:background .15s,color .15s;display:grid;position:relative}.rail-icon svg[data-v-30ec8ef5]{width:19px;height:19px}.rail-icon[data-v-30ec8ef5]:hover{background:var(--rail-hover);color:var(--rail-text-strong)}.rail-icon:hover .tip[data-v-30ec8ef5],.rail-avatar:hover .tip[data-v-30ec8ef5]{opacity:1;transform:translateY(-50%)scale(1)}.app-btn[data-v-53ab7968]{font:inherit;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:7px;font-size:13.5px;font-weight:500;line-height:1;display:inline-flex}.app-btn.block[data-v-53ab7968]{width:100%;display:flex}.s-sm[data-v-53ab7968]{border-radius:9px;height:32px;padding:0 13px;font-size:12.5px}.s-md[data-v-53ab7968]{height:38px;padding:0 18px}.v-primary[data-v-53ab7968]{color:var(--text-on-brand);background:var(--gradient-brand);box-shadow:0 6px 14px #2b6de847}.v-primary[data-v-53ab7968]:not(:disabled):hover{filter:brightness(1.06);box-shadow:0 9px 18px #2b6de857}.v-primary[data-v-53ab7968]:not(:disabled):active{filter:brightness(.96);box-shadow:0 2px 6px #2b6de84d}.v-secondary[data-v-53ab7968]{color:var(--text-primary);background:var(--bg-panel);border-color:var(--border-strong)}.v-secondary[data-v-53ab7968]:not(:disabled):hover{background:var(--bg-hover);border-color:var(--border-strong);box-shadow:0 1px 3px #1018280f}.v-secondary[data-v-53ab7968]:not(:disabled):active{background:var(--bg-hover)}.v-ghost[data-v-53ab7968]{color:var(--text-secondary);background:0 0}.v-ghost[data-v-53ab7968]:not(:disabled):hover{background:var(--bg-hover);color:var(--text-primary)}.v-icon[data-v-53ab7968]{width:36px;height:36px;color:var(--text-faint);background:0 0;border-radius:10px;padding:0}.v-icon[data-v-53ab7968]:not(:disabled):hover{background:var(--bg-hover);color:var(--text-primary)}.v-icon[data-v-53ab7968]:not(:disabled):active{background:var(--bg-hover)}.v-danger[data-v-53ab7968]{color:var(--color-danger);background:var(--color-danger-bg)}.v-danger[data-v-53ab7968]:not(:disabled):hover{background:var(--color-danger-hover);box-shadow:0 2px 8px #e5484d2e}.v-danger[data-v-53ab7968]:not(:disabled):active{background:var(--color-danger-hover)}.v-pill[data-v-53ab7968]{height:32px;color:var(--text-secondary);background:0 0;border-radius:999px;padding:0 15px;font-size:12.5px}.v-pill[data-v-53ab7968]:not(:disabled):hover{background:var(--bg-hover)}.v-pill[data-v-53ab7968]:not(:disabled):active{background:var(--bg-hover);transform:scale(.95)}.app-btn[data-v-53ab7968]:disabled{opacity:1;color:var(--text-faint);background:var(--bg-hover);box-shadow:none;filter:none;border-color:#0000}.v-icon[data-v-53ab7968]:disabled,.v-ghost[data-v-53ab7968]:disabled{color:var(--text-faint);background:0 0}.spinner[data-v-53ab7968]{border:2px solid;border-right-color:#0000;border-radius:50%;width:13px;height:13px;animation:.7s linear infinite app-btn-spin-53ab7968}@keyframes app-btn-spin-53ab7968{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner[data-v-53ab7968]{animation-duration:2s}}.toast-wrap[data-v-2043db08]{z-index:900;pointer-events:none;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:92px;right:24px}.toast[data-v-2043db08]{pointer-events:auto;border:1px solid var(--border-light);background:var(--bg-panel);width:288px;color:var(--text-primary);text-align:left;cursor:pointer;border-radius:12px;align-items:center;gap:10px;padding:12px 14px;transition:transform .16s,box-shadow .16s;display:flex;box-shadow:0 10px 30px #14161c29}.toast[data-v-2043db08]:hover{transform:translateY(-2px);box-shadow:0 14px 36px #14161c33}.t-avatar[data-v-2043db08]{background:var(--bg-subtle);width:34px;height:34px;color:var(--text-secondary);border-radius:50%;flex:none;place-items:center;font-size:14px;font-weight:600;display:grid}.t-main[data-v-2043db08]{gap:3px;min-width:0;display:grid}.t-head[data-v-2043db08]{align-items:baseline;gap:6px;min-width:0;display:flex}.t-head strong[data-v-2043db08]{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.t-head em[data-v-2043db08]{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-style:normal;overflow:hidden}.t-body[data-v-2043db08]{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.toast-enter-active[data-v-2043db08],.toast-leave-active[data-v-2043db08]{transition:all .2s}.toast-enter-from[data-v-2043db08],.toast-leave-to[data-v-2043db08]{opacity:0;transform:translateY(8px)}.shell[data-v-3795bf5b]{background:var(--bg-page);width:100%;height:100dvh;min-height:0;display:flex;overflow:hidden}.content[data-v-3795bf5b]{flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.content[data-v-3795bf5b]>*{flex:1;min-width:0;min-height:0}.fade-slide-enter-active[data-v-3795bf5b]{transition:opacity .18s,transform .22s cubic-bezier(.2,.8,.3,1)}.fade-slide-leave-active[data-v-3795bf5b]{transition:opacity .12s,transform .12s}.fade-slide-enter-from[data-v-3795bf5b]{opacity:0;transform:translateY(6px)}.fade-slide-leave-to[data-v-3795bf5b]{opacity:0}@media (prefers-reduced-motion:reduce){.fade-slide-enter-active[data-v-3795bf5b],.fade-slide-leave-active[data-v-3795bf5b]{transition:none}}.notice-backdrop[data-v-3795bf5b]{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#1018286b;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.notice-modal[data-v-3795bf5b]{background:var(--bg-panel);width:min(100%,430px);max-height:min(80dvh,600px);animation:notice-in-3795bf5b .2s var(--ease-press,cubic-bezier(.2, .8, .3, 1));border-radius:16px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 24px 64px #10182847}@keyframes notice-in-3795bf5b{0%{opacity:0;transform:translateY(8px)scale(.985)}}.notice-head[data-v-3795bf5b]{justify-content:space-between;align-items:center;padding:16px 16px 0 20px;display:flex}.notice-badge[data-v-3795bf5b]{color:var(--color-primary);background:var(--color-primary-soft);border-radius:6px;padding:4px 9px;font-size:11.5px;font-weight:500}.notice-close[data-v-3795bf5b]{width:30px;height:30px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:8px;font-size:19px;line-height:1}.notice-close[data-v-3795bf5b]:hover{background:var(--bg-hover);color:var(--text-primary)}.notice-body[data-v-3795bf5b]{padding:12px 20px 4px;overflow-y:auto}.notice-body h4[data-v-3795bf5b]{color:var(--text-primary);margin:0 0 10px;font-size:15.5px;font-weight:600}.notice-content[data-v-3795bf5b]{color:var(--text-secondary);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:13.5px;line-height:1.75}.notice-time[data-v-3795bf5b]{color:var(--text-faint);margin:12px 0 0;font-size:11.5px}.notice-foot[data-v-3795bf5b]{justify-content:flex-end;padding:14px 20px 18px;display:flex}.capsule[data-v-9171ce70]{background:var(--bg-hover);border-radius:999px;align-items:center;padding:4px;display:inline-flex;position:relative}.capsule-pill[data-v-9171ce70]{background:var(--bg-panel);border-radius:999px;height:calc(100% - 8px);transition:left .28s cubic-bezier(.4,0,.2,1),width .28s cubic-bezier(.4,0,.2,1);position:absolute;top:4px;box-shadow:0 1px 3px #0000001a}.capsule-item[data-v-9171ce70]{z-index:1;color:#5f6b7a;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:999px;padding:7px 24px;font-size:14px;line-height:1.2;transition:color .25s;position:relative}.capsule-item.active[data-v-9171ce70]{color:var(--text-primary);font-weight:600}.capsule.is-plain[data-v-9171ce70]{background:0 0;padding:0}.capsule.is-plain .capsule-pill[data-v-9171ce70]{height:100%;top:0}.stage[data-v-c9bcf02a]{--fig-purple:#7b4ff2;--fig-dark:#1c1c21;--fig-yellow:#f8d94b;--fig-orange:#ff8b42;--fig-ink:#17181c;--fig-ink-soft:#f3f2ee;--bg-stage:#f3f2ee;background:var(--bg-stage);width:100%;height:100%;position:relative;overflow:hidden}.crowd[data-v-c9bcf02a]{position:absolute;inset:0}.fig[data-v-c9bcf02a]{transform-origin:50% 100%;transform:rotate(var(--rot,0deg));animation:sway-c9bcf02a var(--sway,5s) ease-in-out infinite;animation-delay:var(--delay,0s);position:absolute;bottom:0}.fig[data-v-c9bcf02a]:before{content:"";border-radius:var(--radius,12px 12px 0 0);background:var(--fill);position:absolute;inset:0}.fig--purple[data-v-c9bcf02a]{aspect-ratio:106/246;z-index:1;--fill:var(--fig-purple);--rot:-3deg;--sway:5.6s;--delay:-1.2s;height:38%;left:24%}.fig--black[data-v-c9bcf02a]{aspect-ratio:86/300;z-index:2;--fill:var(--fig-dark);--rot:2.4deg;--radius:10px 10px 0 0;--sway:6.4s;--delay:-.4s;height:46.3%;left:42%}.fig--yellow[data-v-c9bcf02a]{aspect-ratio:64/182;z-index:3;--fill:var(--fig-yellow);--rot:-2deg;--radius:32px 32px 0 0;--sway:4.8s;--delay:-2.1s;height:28%;left:57%}.fig--orange[data-v-c9bcf02a]{aspect-ratio:208/102;z-index:4;--fill:var(--fig-orange);--rot:0deg;--radius:104px 104px 0 0;--sway:7s;--delay:-3s;height:15.7%;left:9%}@keyframes sway-c9bcf02a{0%,to{transform:translateY(0) rotate(var(--rot,0deg))}50%{transform:translateY(-7px) rotate(var(--rot,0deg))}}.face[data-v-c9bcf02a]{left:50%;top:var(--face-top,20px);pointer-events:none;flex-direction:column;align-items:center;gap:13px;display:flex;position:absolute;transform:translate(-50%)}.fig--purple .face[data-v-c9bcf02a]{--face-top:24px}.fig--black .face[data-v-c9bcf02a]{--face-top:22px}.fig--yellow .face[data-v-c9bcf02a]{--face-top:20px}.fig--orange .face[data-v-c9bcf02a]{--face-top:26px}.eyes[data-v-c9bcf02a]{gap:11px;display:flex}.eye[data-v-c9bcf02a]{transform-origin:50%;transition:transform .22s cubic-bezier(.2,.8,.3,1);display:block}.dot[data-v-c9bcf02a]{background:var(--fig-ink);will-change:transform;border-radius:50%;width:6.5px;height:6.5px;display:block}.fig--black .dot[data-v-c9bcf02a]{background:var(--fig-ink-soft)}.eye.is-blinking[data-v-c9bcf02a]{transform:scaleY(.12)}.stage[data-mood=nervous] .eye[data-v-c9bcf02a]{transform:scaleY(.72)}.stage[data-mood=surprised] .eye[data-v-c9bcf02a]{transform:scale(1.35)}.stage[data-mood=surprised] .eyes[data-v-c9bcf02a]{gap:15px}.mouth[data-v-c9bcf02a]{width:20px;height:10px;display:block;overflow:visible}.mouth path[data-v-c9bcf02a]{fill:none;stroke:var(--fig-ink);stroke-width:2.6px;stroke-linecap:round}.fig--black .mouth path[data-v-c9bcf02a]{stroke:var(--fig-ink-soft)}.mouth-o[data-v-c9bcf02a]{background:var(--fig-ink);border-radius:50%;width:9px;height:11px;margin-top:6px;display:none}.fig--black .mouth-o[data-v-c9bcf02a]{background:var(--fig-ink-soft)}.stage[data-mood=surprised] .mouth[data-v-c9bcf02a]{display:none}.stage[data-mood=surprised] .mouth-o[data-v-c9bcf02a]{display:block}.stage[data-mood=nervous] .fig[data-v-c9bcf02a]{animation:.34s ease-in-out infinite tremble-c9bcf02a}@keyframes tremble-c9bcf02a{0%,to{transform:translate(0, 0) rotate(var(--rot,0deg))}25%{transform:translate(-1.6px, 0) rotate(var(--rot,0deg))}75%{transform:translate(1.6px, -.8px) rotate(var(--rot,0deg))}}.stage[data-mood=happy] .fig[data-v-c9bcf02a]{animation-duration:3.1s}html[data-theme=dark] .stage{--bg-stage:#101826;--fig-dark:#2b3140;--fig-ink:#0e1420}html[data-theme=dark] .fig--black:before{box-shadow:inset 0 0 0 1px #ffffff14}html[data-theme=dark] .stage{--fig-purple:#6b45d8;--fig-yellow:#e3c53f;--fig-orange:#ef7c36}@media (width<=760px){.crowd[data-v-c9bcf02a]{width:230px;height:100%;margin-left:-115px;left:50%;right:auto;transform:none}.fig--purple[data-v-c9bcf02a]{height:128px;left:6%}.fig--black[data-v-c9bcf02a]{height:156px;left:30%}.fig--yellow[data-v-c9bcf02a]{height:92px;left:53%}.fig--orange[data-v-c9bcf02a]{height:52px;left:-4%}.fig--purple .face[data-v-c9bcf02a]{--face-top:18px}.fig--black .face[data-v-c9bcf02a]{--face-top:16px}.fig--yellow .face[data-v-c9bcf02a]{--face-top:12px}.fig--orange .face[data-v-c9bcf02a]{--face-top:14px}}@media (prefers-reduced-motion:reduce){.fig[data-v-c9bcf02a]{animation:none!important}}.login-page[data-v-32412008]{background:var(--bg-page);justify-content:center;align-items:center;min-height:100vh;padding:32px 24px;display:flex}.login-container[data-v-32412008]{background:var(--bg-panel);border-radius:22px;width:100%;max-width:1040px;min-height:620px;animation:.5s cubic-bezier(.22,1,.36,1) both fadeInUp-32412008;display:flex;overflow:hidden;box-shadow:0 40px 90px -50px #10182873,0 2px 8px #1018280d}@keyframes fadeInUp-32412008{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.illustration-panel[data-v-32412008]{background:var(--bg-subtle);flex:0 0 52%;position:relative;overflow:hidden}.auth-panel[data-v-32412008]{flex:48%;justify-content:center;align-items:center;padding:48px clamp(36px,4vw,64px);display:flex}.auth-card[data-v-32412008]{width:100%;max-width:372px}.logo[data-v-32412008]{background:var(--text-primary);clip-path:polygon(50% 0%,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0% 50%,38% 38%);width:26px;height:26px;margin-bottom:24px}.auth-title[data-v-32412008]{letter-spacing:-.01em;color:var(--text-primary);margin:0;font-size:26px;font-weight:700}.auth-subtitle[data-v-32412008]{color:var(--text-muted);margin:8px 0 30px;font-size:13px}.form-viewport[data-v-32412008]{transition:height .34s cubic-bezier(.4,0,.2,1);overflow:hidden}.form-track[data-v-32412008]{align-items:flex-start;width:200%;transition:transform .4s cubic-bezier(.4,0,.2,1);display:flex}.form-track.is-register[data-v-32412008]{transform:translate(-50%)}.form-panel[data-v-32412008]{flex-direction:column;gap:18px;width:50%;display:flex}@media (height<=880px){.auth-panel[data-v-32412008]{padding-top:32px;padding-bottom:32px}.form-panel[data-v-32412008]{gap:13px}.field-label[data-v-32412008]{margin-bottom:5px}.seg-btn[data-v-32412008]{height:30px}}.seg[data-v-32412008]{background:var(--bg-subtle);border-radius:10px;gap:2px;padding:3px;display:flex}.seg-btn[data-v-32412008]{height:34px;color:var(--text-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;flex:1;font-size:13px}.seg-btn.on[data-v-32412008]{background:var(--bg-panel);color:var(--text-primary);box-shadow:0 1px 2px #0000000f}.field[data-v-32412008]{flex-direction:column;display:flex}.field-label[data-v-32412008]{letter-spacing:.1em;color:var(--text-muted);margin-bottom:8px;font-size:11px;font-weight:500}.field-box[data-v-32412008]{border-bottom:1px solid var(--border-strong);align-items:center;transition:border-color .18s;display:flex}.field-box[data-v-32412008]:focus-within{border-color:var(--text-primary)}.field-box .select[data-v-32412008]{width:100%;font:inherit;color:var(--text-primary);cursor:pointer;background:0 0;border:0;padding:10px 0;font-size:15px}.field-box input[data-v-32412008]{min-width:0;height:38px;color:var(--text-primary);background:0 0;border:0;outline:0;flex:1;padding:0 2px;font-size:14px}.field-box input[data-v-32412008]::placeholder{color:var(--text-faint)}.pwd-btn[data-v-32412008]{width:30px;height:30px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;margin-left:6px;transition:background .16s,color .16s;display:grid}.pwd-btn[data-v-32412008]:hover{background:var(--bg-hover);color:var(--text-primary)}.pwd-btn svg[data-v-32412008]{width:17px;height:17px}.captcha-box[data-v-32412008]{gap:12px}.captcha-canvas[data-v-32412008]{border:1px solid var(--border);cursor:pointer;border-radius:8px;flex-shrink:0;width:112px;height:40px}.field-error[data-v-32412008]{color:var(--color-danger);margin:6px 0 0;font-size:12px}.form-error[data-v-32412008],.form-success[data-v-32412008]{text-align:center;margin:0;font-size:13px}.form-error[data-v-32412008]{color:var(--color-danger)}.form-success[data-v-32412008]{color:var(--color-success)}.submit-btn[data-v-32412008]{background:var(--text-primary);height:46px;color:var(--bg-panel);cursor:pointer;transition:box-shadow .26s var(--ease-spring,ease), opacity .2s ease;border:0;border-radius:999px;margin-top:4px;font-size:14px;font-weight:500}.submit-btn[data-v-32412008]:hover:not(:disabled){box-shadow:0 10px 24px -12px #101828b3}.submit-btn[data-v-32412008]:disabled{opacity:.55;cursor:not-allowed}.auth-tabs-wrap[data-v-32412008]{text-align:center;margin-top:26px}.form-foot[data-v-32412008]{text-align:right;margin-top:-6px}.link-btn[data-v-32412008]{color:var(--text-muted);cursor:pointer;background:0 0;border:0;padding:0;font-size:12.5px;transition:color .18s}.link-btn[data-v-32412008]:hover{color:var(--text-primary)}.forgot-mask[data-v-32412008]{z-index:60;background:#14120e6b;justify-content:center;align-items:center;padding:20px;animation:.18s both forgotFade-32412008;display:flex;position:fixed;inset:0}.forgot-card[data-v-32412008]{background:var(--bg-panel);border-radius:18px;width:min(368px,92vw);padding:24px;animation:.22s cubic-bezier(.4,0,.2,1) both forgotRise-32412008;box-shadow:0 24px 64px -20px #10182873}.forgot-title[data-v-32412008]{color:var(--text-primary);margin:0 0 10px;font-size:17px;font-weight:600}.forgot-tip[data-v-32412008]{color:var(--text-muted);margin:0 0 16px;font-size:12.5px;line-height:1.7}.forgot-label[data-v-32412008]{letter-spacing:.08em;color:var(--text-muted);margin:12px 0 6px;font-size:11px;display:block}.forgot-input[data-v-32412008]{border:1px solid var(--border);background:var(--bg-input);width:100%;height:40px;color:var(--text-primary);font:inherit;border-radius:10px;padding:0 12px;font-size:13.5px}.forgot-input[data-v-32412008]:focus{border-color:var(--text-primary);outline:none}.forgot-error[data-v-32412008]{color:var(--color-danger);margin:10px 0 0;font-size:12.5px}.forgot-actions[data-v-32412008]{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.forgot-btn[data-v-32412008]{height:38px;font:inherit;cursor:pointer;border:0;border-radius:999px;padding:0 18px;font-size:13px;transition:opacity .18s}.forgot-btn.ghost[data-v-32412008]{background:var(--bg-hover);color:var(--text-secondary)}.forgot-btn.solid[data-v-32412008]{background:var(--text-primary);color:var(--bg-panel)}.forgot-btn[data-v-32412008]:disabled{opacity:.55;cursor:not-allowed}@keyframes forgotFade-32412008{0%{opacity:0}to{opacity:1}}@keyframes forgotRise-32412008{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=760px){.login-page[data-v-32412008]{min-height:100dvh;padding:0 0 env(safe-area-inset-bottom);align-items:flex-start;overflow:hidden auto}.login-container[data-v-32412008]{border-radius:0;flex-direction:column;min-height:100dvh;animation:none}.illustration-panel[data-v-32412008]{flex:0 0 190px}.auth-panel[data-v-32412008]{flex:1;padding:28px 24px 36px}.auth-card[data-v-32412008]{max-width:none;min-height:auto;padding-top:8px}.logo[data-v-32412008]{margin-bottom:16px}.auth-title[data-v-32412008]{font-size:23px}}.profile[data-v-7df1a690]{border-left:1px solid var(--border);background:var(--bg-panel);flex-direction:column;flex:0 0 272px;width:272px;display:flex;overflow-y:auto}.p-head[data-v-7df1a690]{text-align:center;border-bottom:1px solid var(--border-light);padding:28px 22px 18px}.p-avatar[data-v-7df1a690]{justify-content:center;margin:0 0 12px;display:flex}.p-name[data-v-7df1a690]{color:var(--text-primary);margin:0 0 6px;font-size:15px;font-weight:600}.p-sub[data-v-7df1a690]{color:var(--text-muted);justify-content:center;align-items:center;gap:5px;margin:0 0 16px;font-size:11.5px;display:flex}.dot[data-v-7df1a690]{background:var(--color-success);border-radius:50%;width:6px;height:6px}.dot.group[data-v-7df1a690]{background:#f0a04b}.p-actions[data-v-7df1a690]{justify-content:center;display:flex}.p-body[data-v-7df1a690]{flex:1;padding:18px 22px}.p-label[data-v-7df1a690]{letter-spacing:.04em;color:var(--text-faint);margin:0 0 10px;font-size:11px}.p-row[data-v-7df1a690]{color:var(--text-muted);justify-content:space-between;gap:12px;padding:7px 0;font-size:12.5px;display:flex}.p-row b[data-v-7df1a690]{color:var(--text-primary);text-align:right;text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.p-foot[data-v-7df1a690]{color:var(--text-faint);text-align:right;margin:0;padding:14px 22px 20px;font-size:10.5px;line-height:1.7}.p-empty[data-v-7df1a690]{color:var(--text-muted);text-align:center;margin:auto;padding:24px;font-size:12px}.p-tip[data-v-7df1a690]{gap:8px;margin:14px 0 4px;display:grid}.p-tip small[data-v-7df1a690]{color:var(--text-muted);font-size:12px;line-height:1.6}.p-member[data-v-7df1a690]{border-bottom:1px solid var(--border-light);align-items:center;gap:10px;padding:7px 0;display:flex}.p-member-name[data-v-7df1a690]{min-width:0;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;overflow:hidden}.p-member em[data-v-7df1a690]{color:var(--color-warning);border:1px solid var(--color-warning);border-radius:999px;padding:0 6px;font-size:11px;font-style:normal}.messages-page[data-v-8ada5bdb]{background:var(--bg-page);height:100%;min-height:0;display:flex}.conv-list[data-v-8ada5bdb]{border-right:1px solid var(--border);background:var(--bg-panel);flex-direction:column;flex:0 0 296px;width:296px;min-height:0;display:flex}.list-head[data-v-8ada5bdb]{justify-content:space-between;align-items:center;padding:18px 12px 10px 20px;display:flex}.add-wrap[data-v-8ada5bdb]{position:relative}.add-mask[data-v-8ada5bdb]{z-index:31;position:fixed;inset:0}.add-menu[data-v-8ada5bdb]{z-index:32;border:1px solid var(--border);background:var(--bg-panel);border-radius:12px;width:150px;padding:5px;position:absolute;top:34px;right:0;box-shadow:0 16px 36px -18px #1c191280}.add-item[data-v-8ada5bdb]{width:100%;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:9px;padding:9px 10px;font-size:13px;display:flex}.add-item[data-v-8ada5bdb]:hover{background:var(--bg-subtle)}.add-item svg[data-v-8ada5bdb]{color:var(--text-secondary);flex:none}.list-head h2[data-v-8ada5bdb]{color:var(--text-primary);margin:0;font-size:16px;font-weight:600}.search[data-v-8ada5bdb]{background:var(--bg-hover);border-radius:9px;align-items:center;gap:7px;height:34px;margin:0 14px 10px;padding:0 10px;display:flex}.search input[data-v-8ada5bdb]{min-width:0;font:inherit;color:var(--text-primary);background:0 0;border:0;outline:none;flex:1;font-size:12.5px}.search input[data-v-8ada5bdb]::placeholder{color:var(--text-muted)}.list-scroll[data-v-8ada5bdb]{flex:1;min-height:0;padding:0 8px 12px;overflow-y:auto}.sec-label[data-v-8ada5bdb]{color:var(--text-faint);letter-spacing:.03em;margin:10px 8px 6px;font-size:11px}.list-empty[data-v-8ada5bdb]{text-align:center;color:var(--text-muted);padding:28px 0;font-size:12.5px}.conv[data-v-8ada5bdb]{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;width:100%;padding:8px 10px;display:flex}.conv[data-v-8ada5bdb]:hover{background:var(--bg-hover)}.conv.active[data-v-8ada5bdb]{background:var(--color-primary-soft)}.c-main[data-v-8ada5bdb]{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.c-side[data-v-8ada5bdb]{flex-direction:column;flex:none;align-items:flex-end;gap:4px;display:flex}.c-time[data-v-8ada5bdb]{color:var(--text-faint);white-space:nowrap;font-size:10.5px}.c-badge[data-v-8ada5bdb]{background:var(--color-primary);min-width:17px;height:17px;color:var(--text-on-brand);text-align:center;border-radius:9px;padding:0 5px;font-size:10.5px;font-weight:700;line-height:17px}.c-name[data-v-8ada5bdb]{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.c-sub[data-v-8ada5bdb]{color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.chat-panel[data-v-8ada5bdb]{background:var(--bg-subtle);flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.chat-head[data-v-8ada5bdb]{border-bottom:1px solid var(--border);background:var(--bg-panel);flex:none;align-items:center;gap:10px;padding:12px 16px;display:flex}.h-meta[data-v-8ada5bdb]{flex:1;min-width:0}.h-name[data-v-8ada5bdb]{color:var(--text-primary);margin:0;font-size:13.5px;font-weight:600}.h-sub[data-v-8ada5bdb]{color:var(--text-muted);align-items:center;gap:5px;margin:2px 0 0;font-size:11px;display:flex}.dot[data-v-8ada5bdb]{background:var(--color-success);border-radius:50%;width:6px;height:6px}.dot.group[data-v-8ada5bdb]{background:#f0a04b}.h-actions[data-v-8ada5bdb]{align-items:center;gap:2px;display:flex}.chat-box[data-v-8ada5bdb]{flex-direction:column;flex:1;gap:14px;min-height:0;padding:20px 22px 8px;display:flex;overflow-y:auto}.chat-empty[data-v-8ada5bdb]{text-align:center;color:var(--text-muted);margin:auto;font-size:12.5px;line-height:1.9}.ce-emoji[data-v-8ada5bdb]{margin-bottom:2px;font-size:22px;display:block}.msg-row[data-v-8ada5bdb]{align-items:flex-start;gap:8px;max-width:76%;display:flex}.msg-row.mine[data-v-8ada5bdb]{flex-direction:row-reverse;align-self:flex-end}.msg-avatar[data-v-8ada5bdb]{cursor:pointer}.msg-bubble[data-v-8ada5bdb]{color:var(--text-primary);background:var(--bg-panel);border:1px solid var(--border);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:12px;padding:9px 13px;font-size:13px;line-height:1.65;box-shadow:0 1px 2px #10182808}.msg-row.mine .msg-bubble[data-v-8ada5bdb]{color:var(--bubble-mine-text);background:var(--gradient-brand);box-shadow:var(--shadow-primary);border-color:#0000}.image-bubble[data-v-8ada5bdb]{padding:4px;background:var(--bg-panel)!important;border-color:var(--border)!important}.image-bubble img[data-v-8ada5bdb]{object-fit:cover;border-radius:9px;max-width:220px;max-height:220px;display:block}.composer[data-v-8ada5bdb]{border-top:1px solid var(--border);background:var(--bg-panel);flex:none;padding:8px 16px 14px;position:relative}.tools[data-v-8ada5bdb]{align-items:center;gap:2px;margin-bottom:6px;display:flex}.hint[data-v-8ada5bdb]{color:var(--text-faint);margin-left:auto;font-size:10.5px}.input-error[data-v-8ada5bdb]{color:var(--color-danger);margin:0 0 6px;font-size:11.5px}.input-row[data-v-8ada5bdb]{align-items:flex-end;gap:10px;display:flex}.input-row textarea[data-v-8ada5bdb]{border:1px solid var(--border-strong);background:var(--bg-hover);min-width:0;min-height:38px;max-height:120px;font:inherit;color:var(--text-primary);resize:none;border-radius:10px;outline:none;flex:1;padding:10px 13px;font-size:13px;line-height:1.5;transition:border-color .15s,background .15s;overflow-y:auto}.input-row textarea[data-v-8ada5bdb]::placeholder{color:var(--text-muted)}.input-row textarea[data-v-8ada5bdb]:focus{border-color:var(--border-brand);background:var(--bg-panel);box-shadow:0 0 0 3px #2b6de81a}.e-kbd[data-v-8ada5bdb]{background:#7f7f7f2e;border-radius:3px;padding:1px 4px;font-family:inherit;font-size:9.5px}.file-input[data-v-8ada5bdb]{display:none}.emoji-panel[data-v-8ada5bdb]{background:var(--bg-panel);border:1px solid var(--border);z-index:20;border-radius:12px;grid-template-columns:repeat(10,28px);gap:2px;padding:8px;display:grid;position:absolute;bottom:92px;left:16px;box-shadow:0 12px 32px #10182824}.emoji-panel button[data-v-8ada5bdb]{cursor:pointer;background:0 0;border:0;border-radius:7px;width:28px;height:28px;padding:0;font-size:16px;line-height:1}.emoji-panel button[data-v-8ada5bdb]:hover{background:var(--bg-hover)}.chat-blank[data-v-8ada5bdb]{text-align:center;color:var(--text-muted);margin:auto}.chat-blank p[data-v-8ada5bdb]{margin:0 0 4px;font-size:13px}.chat-blank span[data-v-8ada5bdb]{color:var(--text-faint);font-size:11.5px}.contacts-page[data-v-aba70e12]{background:var(--bg-page);height:100%;overflow-y:auto}.cards-container[data-v-aba70e12]{flex-direction:column;gap:14px;max-width:640px;margin:0 auto;padding:0 16px 28px;display:flex}.card[data-v-aba70e12]{background:var(--bg-panel);border-radius:14px;overflow:hidden;box-shadow:0 1px 2px #0000000a}.card-row[data-v-aba70e12]{cursor:pointer;text-align:left;background:var(--bg-panel);width:100%;font:inherit;border:0;align-items:center;gap:12px;padding:14px 18px;transition:background .15s;display:flex}.card-row[data-v-aba70e12]:hover,.card-row[data-v-aba70e12]:active{background:var(--bg-hover)}.page-head[data-v-aba70e12]{max-width:640px;margin:0 auto;padding:24px 16px 16px}.page-head h1[data-v-aba70e12]{color:var(--text-primary);margin:0;font-size:20px;font-weight:600}.page-head p[data-v-aba70e12]{color:var(--text-muted);margin:4px 0 0;font-size:12.5px}.card-row[data-v-aba70e12]:not(:last-child){border-bottom:1px solid var(--border-light)}.row-icon[data-v-aba70e12]{color:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.row-label[data-v-aba70e12]{color:var(--text-primary);flex:1;font-size:15px}.row-badge[data-v-aba70e12]{background:var(--color-danger,#d9534f);color:#fff;text-align:center;border-radius:999px;min-width:20px;height:20px;margin-left:auto;padding:0 6px;font-size:12px;line-height:20px}.row-chevron[data-v-aba70e12]{color:var(--text-faint);margin-left:8px;font-size:20px;line-height:1}.join-hint[data-v-aba70e12]{color:var(--text-muted);margin:0 0 10px;font-size:13px;line-height:1.6}.join-form[data-v-aba70e12]{gap:8px;display:flex}.join-form input[data-v-aba70e12]{border:1px solid var(--border-strong);min-width:0;height:40px;font:inherit;letter-spacing:1px;border-radius:8px;flex:1;padding:0 12px}.join-form button[data-v-aba70e12]{border:1px solid var(--border-strong);background:var(--bg-panel);height:40px;color:var(--text-secondary);cursor:pointer;border-radius:8px;padding:0 16px}.join-card[data-v-aba70e12]{border:1px solid var(--border);background:var(--bg-subtle);border-radius:10px;align-items:center;gap:12px;margin-top:14px;padding:14px;display:flex}.join-main[data-v-aba70e12]{flex:1;gap:4px;min-width:0;display:grid}.join-main strong[data-v-aba70e12]{color:var(--text-primary);font-size:15px}.join-main small[data-v-aba70e12]{color:var(--text-muted);font-size:12px}.join-card button[data-v-aba70e12]{border:1px solid var(--border-strong);background:var(--bg-panel);height:36px;color:var(--text-secondary);cursor:pointer;border-radius:8px;padding:0 14px}.join-card button.primary[data-v-aba70e12]{background:var(--color-primary);border-color:var(--color-primary);color:var(--text-on-brand)}.modal-backdrop[data-v-aba70e12]{z-index:20;background:#14232d61;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.contacts-modal[data-v-aba70e12]{background:var(--bg-panel);border-radius:10px;width:min(100%,520px);max-height:min(80dvh,680px);padding:20px;overflow:auto;box-shadow:0 16px 48px #14232d33}.contacts-modal>header[data-v-aba70e12]{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.contacts-modal h2[data-v-aba70e12]{margin:0;font-size:18px}.close-button[data-v-aba70e12]{width:36px;height:36px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;font-size:24px}.search-form[data-v-aba70e12]{gap:8px;display:flex}.search-form input[data-v-aba70e12]{border:1px solid var(--border-strong);min-width:0;height:40px;font:inherit;border-radius:6px;flex:1;padding:0 12px}.search-form button[data-v-aba70e12],.people-list button[data-v-aba70e12]{border:1px solid var(--border-strong);background:var(--bg-panel);height:38px;color:var(--text-secondary);cursor:pointer;border-radius:6px;padding:0 14px}.primary[data-v-aba70e12]{background:var(--color-primary)!important;color:var(--text-on-brand)!important;border-color:var(--color-primary)!important}.people-list[data-v-aba70e12]{margin:14px 0 0;padding:0;list-style:none}.people-list li[data-v-aba70e12]{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:12px 0;display:flex}.avatar[data-v-aba70e12]{background:var(--color-primary-soft);width:40px;height:40px;color:var(--color-primary);border-radius:50%;flex:none;place-items:center;display:grid;overflow:hidden}.avatar img[data-v-aba70e12]{object-fit:cover;width:100%;height:100%}.person-name[data-v-aba70e12]{flex:1;gap:4px;min-width:0;display:grid}.person-name strong[data-v-aba70e12],.person-name small[data-v-aba70e12]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.person-name strong[data-v-aba70e12]{color:var(--text-primary);font-size:14px}.person-name small[data-v-aba70e12]{color:var(--text-muted);font-size:12px}.empty[data-v-aba70e12]{text-align:center;color:var(--text-muted);padding:28px 8px;font-size:13px}.feedback[data-v-aba70e12]{border-radius:5px;padding:10px;font-size:13px}.error[data-v-aba70e12]{background:var(--color-danger-bg);color:var(--color-danger)}.success[data-v-aba70e12]{background:var(--color-success-bg);color:var(--color-success)}.group-icon[data-v-aba70e12]{background:var(--color-success-bg);width:40px;height:40px;color:var(--color-success);border-radius:10px;flex:none;place-items:center;font-size:13px;font-weight:600;display:grid}.invitation-actions[data-v-aba70e12]{gap:6px;display:flex}.group-form[data-v-aba70e12]{gap:10px;display:grid}.group-form>input[data-v-aba70e12]{border:1px solid var(--border-strong);height:40px;font:inherit;border-radius:6px;padding:0 12px}.form-caption[data-v-aba70e12]{color:var(--text-muted);margin:4px 0 0;font-size:13px}.member-option[data-v-aba70e12]{border-bottom:1px solid var(--border);color:var(--text-secondary);align-items:center;gap:8px;padding:9px 4px;font-size:14px;display:flex}.member-option input[data-v-aba70e12]{accent-color:var(--color-primary)}.create-button[data-v-aba70e12]{background:var(--color-primary);height:40px;color:var(--text-on-brand);font:inherit;cursor:pointer;border:0;border-radius:6px}.create-button[data-v-aba70e12]:disabled{opacity:.6;cursor:wait}.lost-panel[data-v-c6f0d6dc]{max-width:980px;color:var(--text-primary);margin:0 auto}.panel-heading[data-v-c6f0d6dc]{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}h1[data-v-c6f0d6dc]{margin:0;font-size:24px}h2[data-v-c6f0d6dc]{margin:0;font-size:16px}.panel-heading p[data-v-c6f0d6dc]{color:var(--text-muted);margin-top:8px;font-size:13px;line-height:1.7}button[data-v-c6f0d6dc]{font:inherit;border:1px solid var(--border-strong);background:var(--bg-panel);color:var(--text-secondary);cursor:pointer;border-radius:6px;padding:9px 14px;font-size:13px}button[data-v-c6f0d6dc]:disabled{opacity:.5;cursor:not-allowed}.primary[data-v-c6f0d6dc]{background:var(--color-primary);border-color:var(--color-primary);color:var(--text-on-brand);white-space:nowrap}.danger[data-v-c6f0d6dc]{color:var(--color-danger);border-color:var(--border-danger)}.publish-form[data-v-c6f0d6dc],.item[data-v-c6f0d6dc]{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:20px}.publish-form[data-v-c6f0d6dc]{gap:14px;display:grid}.modal-backdrop[data-v-c6f0d6dc]{z-index:100;background:#14232d61;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.publish-dialog[data-v-c6f0d6dc]{background:var(--bg-panel);border-radius:12px;width:min(100%,540px);max-height:min(86dvh,720px);padding:20px;overflow:auto;box-shadow:0 16px 48px #14232d33}.dialog-header[data-v-c6f0d6dc]{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.dialog-header h2[data-v-c6f0d6dc]{margin:0;font-size:16px}.close-btn[data-v-c6f0d6dc]{width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:6px;font-size:22px;line-height:1}.close-btn[data-v-c6f0d6dc]:hover{background:var(--bg-hover)}.publish-dialog .publish-form[data-v-c6f0d6dc]{border:none;padding:0}.publish-form label[data-v-c6f0d6dc],.review-actions label[data-v-c6f0d6dc]{color:var(--text-secondary);gap:7px;font-size:13px;display:grid}input[data-v-c6f0d6dc],textarea[data-v-c6f0d6dc]{box-sizing:border-box;border:1px solid var(--border-strong);width:100%;min-width:0;font:inherit;background:var(--bg-panel);color:var(--text-primary);border-radius:6px;padding:10px 11px;font-size:14px}input[data-v-c6f0d6dc]:focus,textarea[data-v-c6f0d6dc]:focus{outline:2px solid var(--border-brand);outline-offset:1px}textarea[data-v-c6f0d6dc]{resize:vertical}.form-grid[data-v-c6f0d6dc]{grid-template-columns:1fr 1fr;gap:14px;display:grid}.privacy-tip[data-v-c6f0d6dc]{color:var(--text-muted);font-size:12px;line-height:1.7}.publish-form>.primary[data-v-c6f0d6dc]{justify-self:start}.list-toolbar[data-v-c6f0d6dc]{justify-content:space-between;gap:12px;margin-bottom:16px;display:flex}.list-toolbar nav[data-v-c6f0d6dc]{gap:6px;display:flex}.selected[data-v-c6f0d6dc]{background:var(--color-primary-soft);color:var(--color-primary);border-color:var(--border-brand)}.feedback[data-v-c6f0d6dc]{border-radius:6px;margin-bottom:16px;padding:12px;font-size:13px}.error[data-v-c6f0d6dc],.rejection[data-v-c6f0d6dc]{background:var(--color-danger-bg);color:var(--color-danger)}.success[data-v-c6f0d6dc]{background:var(--color-success-bg);color:var(--color-success)}.empty[data-v-c6f0d6dc]{text-align:center;color:var(--text-muted);background:var(--bg-panel);border-radius:8px;padding:42px 16px}.items[data-v-c6f0d6dc]{gap:14px;display:grid}.item-title[data-v-c6f0d6dc]{justify-content:space-between;align-items:center;gap:12px;display:flex}.item-title h2[data-v-c6f0d6dc]{overflow-wrap:anywhere}.badge[data-v-c6f0d6dc]{white-space:nowrap;border-radius:4px;padding:4px 8px;font-size:12px}.pending[data-v-c6f0d6dc]{background:var(--color-warning-bg);color:var(--color-warning)}.approved[data-v-c6f0d6dc]{background:var(--color-success-bg);color:var(--color-success)}.rejected[data-v-c6f0d6dc]{background:var(--color-danger-bg);color:var(--color-danger)}.description[data-v-c6f0d6dc]{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text-secondary);margin:14px 0;font-size:14px;line-height:1.8}dl[data-v-c6f0d6dc]{gap:8px;font-size:13px;display:grid}dl div[data-v-c6f0d6dc]{gap:14px;display:flex}dt[data-v-c6f0d6dc]{color:var(--text-muted);flex:0 0 56px}dd[data-v-c6f0d6dc]{overflow-wrap:anywhere;min-width:0;margin:0}.rejection[data-v-c6f0d6dc]{overflow-wrap:anywhere;margin-top:14px;padding:10px;font-size:13px}.review-time[data-v-c6f0d6dc]{color:var(--text-muted);margin-top:12px;font-size:12px}.review-actions[data-v-c6f0d6dc]{border-top:1px solid var(--border);gap:10px;margin-top:18px;padding-top:16px;display:grid}.review-actions>div[data-v-c6f0d6dc],.pager>div[data-v-c6f0d6dc]{gap:8px;display:flex}.pager[data-v-c6f0d6dc]{color:var(--text-secondary);justify-content:space-between;align-items:center;gap:12px;margin-top:20px;padding-bottom:12px;font-size:12px;display:flex}@media (width<=600px){h1[data-v-c6f0d6dc]{font-size:21px}.panel-heading[data-v-c6f0d6dc]{align-items:flex-start;gap:12px}.panel-heading p[data-v-c6f0d6dc]{font-size:12px}.form-grid[data-v-c6f0d6dc]{grid-template-columns:1fr}.publish-form[data-v-c6f0d6dc],.item[data-v-c6f0d6dc]{padding:16px}.list-toolbar nav[data-v-c6f0d6dc]{gap:4px}.list-toolbar button[data-v-c6f0d6dc]{padding:8px 10px}.pager[data-v-c6f0d6dc]{flex-wrap:wrap}.panel-heading>.primary[data-v-c6f0d6dc]{padding:9px 10px}}.publish-form[data-v-c6f0d6dc],.item[data-v-c6f0d6dc]{border-color:var(--border);border-radius:12px;box-shadow:0 1px 2px #1018280a}button[data-v-c6f0d6dc]{border-color:var(--border-strong);border-radius:9px;height:36px;padding:0 14px}button.primary[data-v-c6f0d6dc]{background:var(--gradient-brand);border-color:#0000;box-shadow:0 4px 10px #2b6de838}button.primary[data-v-c6f0d6dc]:hover{filter:brightness(1.05)}button.danger[data-v-c6f0d6dc]{color:var(--color-danger);border-color:var(--border-danger);background:var(--color-danger-bg)}.list-toolbar button[data-v-c6f0d6dc]{height:34px}.publish-dialog[data-v-c6f0d6dc],.modal-backdrop>section[data-v-c6f0d6dc]{border-radius:14px}input[data-v-c6f0d6dc],textarea[data-v-c6f0d6dc]{border-color:var(--border-strong);border-radius:9px}.notice-panel[data-v-a15eb706]{max-width:980px;margin:0 auto 24px}.panel-heading[data-v-a15eb706]{margin-bottom:12px}.panel-heading h2[data-v-a15eb706]{color:var(--text-primary);margin:0;font-size:16px;font-weight:600}.notice-list[data-v-a15eb706]{gap:12px;display:grid}.notice-item[data-v-a15eb706]{background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;padding:16px 18px;box-shadow:0 1px 2px #1018280a}.notice-item h3[data-v-a15eb706]{color:var(--text-primary);margin:0;font-size:14px;font-weight:600}.content[data-v-a15eb706]{color:var(--text-secondary);white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0 0;font-size:13px;line-height:1.7}.time[data-v-a15eb706]{color:var(--text-faint);margin:8px 0 0;font-size:11.5px}.error[data-v-a15eb706]{background:var(--color-danger-bg);color:var(--color-danger);border-radius:8px;padding:10px;font-size:13px}.empty[data-v-a15eb706]{text-align:center;color:var(--text-faint);background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;padding:28px;font-size:13px}.discover-page[data-v-dfefb110]{box-sizing:border-box;background:var(--bg-page);height:100%;padding:26px 28px 40px;overflow-y:auto}.page-head[data-v-dfefb110]{width:min(100%,980px);margin:0 auto 18px}.page-head h1[data-v-dfefb110]{color:var(--text-primary);margin:0;font-size:20px;font-weight:600}.page-head p[data-v-dfefb110]{color:var(--text-muted);margin:4px 0 0;font-size:12.5px}.discover-page[data-v-dfefb110] .lost-panel h1{font-size:16px;font-weight:600}@media (width<=600px){.discover-page[data-v-dfefb110]{padding:20px 14px}}.admin-page[data-v-4b8d7ad0]{background:var(--bg-page);flex:1;min-height:0;padding:22px 28px 40px;overflow-y:auto}.page-head[data-v-4b8d7ad0]{margin-bottom:16px}.page-head h1[data-v-4b8d7ad0]{letter-spacing:-.3px;color:var(--text-primary);margin:0;font-size:22px}.page-head .sub[data-v-4b8d7ad0]{color:var(--text-muted);margin:5px 0 0;font-size:13px}.stats[data-v-4b8d7ad0]{grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:16px;display:grid}.stat[data-v-4b8d7ad0]{background:var(--bg-panel);border:1px solid var(--border);border-radius:14px;padding:15px 18px}.stat .k[data-v-4b8d7ad0]{color:var(--text-muted);letter-spacing:.3px;margin:0;font-size:12px}.stat .v[data-v-4b8d7ad0]{letter-spacing:-.5px;color:var(--text-primary);margin:6px 0 0;font-size:26px;font-weight:700}.stat .v em[data-v-4b8d7ad0]{color:var(--text-muted);margin-left:4px;font-size:13px;font-style:normal;font-weight:400}.card[data-v-4b8d7ad0]{background:var(--bg-panel);border:1px solid var(--border);border-radius:14px;overflow:hidden}.toolbar[data-v-4b8d7ad0]{border-bottom:1px solid var(--border-light);flex-wrap:wrap;align-items:center;gap:10px;padding:14px 16px;display:flex}.search[data-v-4b8d7ad0]{border:1px solid var(--border-strong);background:var(--bg-input);min-width:200px;height:34px;color:var(--text-primary);font:inherit;border-radius:9px;flex:1;padding:0 12px;font-size:13px}.search[data-v-4b8d7ad0]:focus{border-color:var(--text-primary);box-shadow:var(--focus-ring);outline:none}.seg[data-v-4b8d7ad0]{background:var(--bg-subtle);border-radius:10px;padding:3px;display:flex}.seg button[data-v-4b8d7ad0]{font:inherit;color:var(--text-secondary);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:5px 12px;font-size:12.5px}.seg button.on[data-v-4b8d7ad0]{background:var(--bg-panel);color:var(--text-primary);font-weight:600;box-shadow:0 1px 2px #1c191214}.select[data-v-4b8d7ad0]{border:1px solid var(--border-strong);background:var(--bg-panel);height:34px;color:var(--text-secondary);font:inherit;border-radius:9px;padding:0 10px;font-size:13px}.ghost[data-v-4b8d7ad0]{border:1px solid var(--border-strong);background:var(--bg-panel);height:34px;color:var(--text-secondary);font:inherit;cursor:pointer;border-radius:9px;padding:0 14px;font-size:13px}.ghost[data-v-4b8d7ad0]:hover{border-color:var(--text-primary);color:var(--text-primary)}.primary[data-v-4b8d7ad0]{background:var(--text-primary);height:34px;color:var(--bg-panel);font:inherit;cursor:pointer;border:0;border-radius:9px;padding:0 16px;font-size:13px}.primary[data-v-4b8d7ad0]:disabled{opacity:.6;cursor:default}.table-wrap[data-v-4b8d7ad0]{overflow-x:auto}table[data-v-4b8d7ad0]{border-collapse:collapse;table-layout:fixed;width:100%;min-width:880px}th[data-v-4b8d7ad0]{color:var(--text-muted);text-align:left;background:var(--bg-subtle);border-bottom:1px solid var(--border);padding:11px 16px;font-size:12px;font-weight:500}td[data-v-4b8d7ad0]{border-bottom:1px solid var(--border-light);color:var(--text-primary);padding:11px 16px;font-size:13.5px}tbody tr:last-child td[data-v-4b8d7ad0]{border-bottom:none}.c-user[data-v-4b8d7ad0]{width:21%}.c-account[data-v-4b8d7ad0]{width:14%}.c-role[data-v-4b8d7ad0]{width:11%}.c-belong[data-v-4b8d7ad0]{width:17%}.c-time[data-v-4b8d7ad0]{width:14%}.c-status[data-v-4b8d7ad0]{width:12%}.c-ops[data-v-4b8d7ad0]{width:11%}.who[data-v-4b8d7ad0]{align-items:center;gap:10px;display:flex}.name[data-v-4b8d7ad0]{font-weight:600}.mono[data-v-4b8d7ad0]{font-variant-numeric:tabular-nums}.muted[data-v-4b8d7ad0]{color:var(--text-muted)}.empty[data-v-4b8d7ad0]{text-align:center;color:var(--text-muted);padding:26px}.chip[data-v-4b8d7ad0]{border-radius:999px;align-items:center;padding:2px 9px;font-size:12px;display:inline-flex}.chip.ok[data-v-4b8d7ad0]{background:var(--color-success-bg,#eef4ef);color:var(--color-success,#3f7d5c)}.chip.bad[data-v-4b8d7ad0]{background:var(--color-danger-bg);color:var(--color-danger)}.chip.role[data-v-4b8d7ad0]{background:var(--bg-subtle);color:var(--text-secondary);border:1px solid var(--border)}.link[data-v-4b8d7ad0]{font:inherit;color:var(--text-secondary);cursor:pointer;background:0 0;border:0;padding:0;font-size:13px}.link[data-v-4b8d7ad0]:hover{text-decoration:underline}.link.danger[data-v-4b8d7ad0]{color:var(--color-danger)}.foot-row[data-v-4b8d7ad0]{color:var(--text-muted);border-top:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:12px 16px;font-size:12.5px;display:flex}.pager[data-v-4b8d7ad0]{gap:8px;display:flex}.pager button[data-v-4b8d7ad0]{border:1px solid var(--border-strong);background:var(--bg-panel);height:30px;color:var(--text-secondary);font:inherit;cursor:pointer;border-radius:8px;padding:0 12px;font-size:12.5px}.pager button[data-v-4b8d7ad0]:disabled{color:var(--text-faint);cursor:not-allowed;opacity:.6}.tip[data-v-4b8d7ad0]{color:var(--text-muted);margin:14px 2px 0;font-size:12.5px;line-height:1.8}.tip b[data-v-4b8d7ad0]{color:var(--text-secondary);font-weight:600}.toast[data-v-4b8d7ad0]{background:var(--text-primary);color:var(--bg-panel);box-shadow:var(--shadow-card,0 10px 30px #1c19122e);z-index:120;border-radius:999px;padding:9px 16px;font-size:13px;position:fixed;bottom:34px;left:50%;transform:translate(-50%)}.toast.err[data-v-4b8d7ad0]{background:var(--color-danger);color:#fff}@media (width<=1100px){.stats[data-v-4b8d7ad0]{grid-template-columns:1fr}}.apply-card[data-v-4b8d7ad0]{margin-top:16px;padding:16px}.apply-head h2[data-v-4b8d7ad0]{color:var(--text-primary);margin:0 0 6px;font-size:15px}.apply-head h2 em[data-v-4b8d7ad0]{color:var(--text-muted);margin-left:6px;font-size:12px;font-style:normal;font-weight:400}.apply-head p[data-v-4b8d7ad0]{color:var(--text-muted);max-width:720px;margin:0;font-size:12.5px;line-height:1.7}.apply-list[data-v-4b8d7ad0]{flex-direction:column;margin-top:12px;display:flex}.apply-row[data-v-4b8d7ad0]{border-top:1px solid var(--border-light);justify-content:space-between;align-items:center;gap:14px;padding:12px 2px;display:flex}.apply-row[data-v-4b8d7ad0]:first-child{border-top:0}.apply-main[data-v-4b8d7ad0]{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:flex}.apply-name[data-v-4b8d7ad0]{color:var(--text-primary);font-size:13.5px;font-weight:600}.apply-no[data-v-4b8d7ad0]{color:var(--text-secondary);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}.apply-time[data-v-4b8d7ad0]{color:var(--text-muted);font-size:12px}.apply-ops[data-v-4b8d7ad0]{flex:none;align-items:center;gap:8px;display:flex}.apply-empty[data-v-4b8d7ad0]{text-align:center;color:var(--text-muted);background:var(--bg-subtle);border-radius:10px;margin:14px 0 2px;padding:18px;font-size:12.5px}.sm[data-v-4b8d7ad0]{height:30px;padding:0 13px;font-size:12.5px}.logs-card[data-v-4b8d7ad0]{margin-top:16px}.logs-head[data-v-4b8d7ad0]{border-bottom:1px solid var(--border-light);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:14px 16px;display:flex}.logs-head h2[data-v-4b8d7ad0]{color:var(--text-primary);margin:0;font-size:15px}.logs-head h2 em[data-v-4b8d7ad0]{color:var(--text-muted);margin-left:6px;font-size:12px;font-style:normal;font-weight:400}.logs-tools[data-v-4b8d7ad0]{align-items:center;gap:10px;display:flex}.logs-tools .search[data-v-4b8d7ad0]{flex:none;width:240px}.log-table .c-time2[data-v-4b8d7ad0]{width:120px}.log-table .c-lv[data-v-4b8d7ad0]{width:76px}.log-table .c-actor[data-v-4b8d7ad0]{width:160px}.log-table .c-ip[data-v-4b8d7ad0]{width:130px}.log-table td[data-v-4b8d7ad0]{vertical-align:top;padding-top:11px;padding-bottom:11px}.log-table .detail[data-v-4b8d7ad0]{max-height:140px;color:var(--text-secondary);background:var(--bg-subtle);white-space:pre-wrap;word-break:break-all;border-radius:8px;margin:6px 0 0;padding:8px 10px;font-size:11.5px;line-height:1.6;overflow:auto}.small[data-v-4b8d7ad0]{font-size:12px}.chip.error[data-v-4b8d7ad0]{background:var(--color-danger-bg);color:var(--color-danger)}.chip.warn[data-v-4b8d7ad0]{color:#a5813a;background:#f6efdf}.chip.info[data-v-4b8d7ad0]{background:var(--bg-subtle);color:var(--text-secondary)}.ops[data-v-4b8d7ad0]{gap:12px;display:flex}.mask[data-v-4b8d7ad0]{z-index:90;background:var(--mask-bg);place-items:center;display:grid;position:fixed;inset:0}.dialog[data-v-4b8d7ad0]{background:var(--bg-panel);border-radius:16px;width:420px;max-width:calc(100vw - 40px);padding:22px;box-shadow:0 24px 60px #1c19123d}.dialog h3[data-v-4b8d7ad0]{color:var(--text-primary);margin:0 0 8px;font-size:16px}.dialog .hint[data-v-4b8d7ad0]{color:var(--text-muted);margin:0 0 14px;font-size:12.5px;line-height:1.7}.dialog .text[data-v-4b8d7ad0]{border:1px solid var(--border-strong);background:var(--bg-input);width:100%;height:40px;color:var(--text-primary);font:inherit;border-radius:9px;padding:0 12px;font-size:13px}.dialog .text[data-v-4b8d7ad0]:focus{border-color:var(--text-primary);box-shadow:var(--focus-ring);outline:none}.dialog .temp[data-v-4b8d7ad0]{text-align:center;letter-spacing:.5px;background:var(--bg-subtle);color:var(--text-primary);word-break:break-all;border-radius:10px;margin:0 0 16px;padding:14px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:15px}.dialog-ops[data-v-4b8d7ad0]{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.dialog-ops .ghost[data-v-4b8d7ad0],.dialog-ops .primary[data-v-4b8d7ad0]{height:36px;font:inherit;cursor:pointer;border-radius:9px;padding:0 16px;font-size:13px}.dialog-ops .ghost[data-v-4b8d7ad0]{border:1px solid var(--border-strong);background:var(--bg-panel);color:var(--text-secondary)}.dialog-ops .primary[data-v-4b8d7ad0]{background:var(--text-primary);color:var(--bg-panel);border:0}.dialog-ops .primary[data-v-4b8d7ad0]:disabled{opacity:.6;cursor:default}.checkin-page[data-v-e8c31e17]{background:var(--bg-page);flex-direction:column;gap:16px;max-width:560px;height:100%;margin:0 auto;padding:22px 18px 40px;display:flex;overflow-y:auto}.page-head[data-v-e8c31e17]{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}h1[data-v-e8c31e17]{color:var(--text-primary);margin:0;font-size:22px}.sub[data-v-e8c31e17]{color:var(--text-muted);margin:4px 0 0;font-size:13px}.ghost-btn[data-v-e8c31e17]{border:1px solid var(--border-strong);background:var(--bg-panel);height:34px;color:var(--text-secondary);font:inherit;cursor:pointer;border-radius:999px;padding:0 14px;font-size:13px}.lessons[data-v-e8c31e17]{flex-direction:column;gap:12px;display:flex}.lesson[data-v-e8c31e17]{background:var(--bg-panel);border:1px solid var(--border);border-radius:16px;flex-direction:column;gap:10px;padding:16px 18px;display:flex}.lesson.open[data-v-e8c31e17]{border-color:var(--text-primary)}.lesson-top[data-v-e8c31e17]{justify-content:space-between;align-items:center;gap:10px;display:flex}.course[data-v-e8c31e17]{color:var(--text-primary);font-size:16px;font-weight:600}.chip[data-v-e8c31e17]{background:var(--bg-subtle);color:var(--text-muted);white-space:nowrap;border-radius:999px;padding:3px 9px;font-size:11.5px}.chip.ok[data-v-e8c31e17]{color:#3f7d5c;background:#3f7d5c1f}.chip.warn[data-v-e8c31e17]{color:#a5813a;background:#a5813a24}.chip.err[data-v-e8c31e17]{color:#c0554c;background:#c0554c1f}.chip.leave[data-v-e8c31e17]{color:#a5813a;background:#a5813a24}.chip.open[data-v-e8c31e17]{background:var(--text-primary);color:var(--bg-panel)}.meta[data-v-e8c31e17]{color:var(--text-muted);margin:0;font-size:12.5px}.dot[data-v-e8c31e17]{opacity:.5;margin:0 5px}.lesson-foot[data-v-e8c31e17]{justify-content:space-between;align-items:center;gap:10px;display:flex}.countdown[data-v-e8c31e17]{color:var(--text-primary);font-variant-numeric:tabular-nums;font-size:12.5px}.empty[data-v-e8c31e17]{background:var(--bg-panel);border:1px dashed var(--border-strong);text-align:center;color:var(--text-secondary);border-radius:16px;padding:34px 18px;font-size:14px}.empty .muted[data-v-e8c31e17]{margin-top:6px;font-size:12.5px}.hint[data-v-e8c31e17]{color:var(--text-muted);font-size:13px}.mask[data-v-e8c31e17]{z-index:60;background:var(--mask-bg);justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.sheet[data-v-e8c31e17]{background:var(--bg-panel);border-radius:18px;flex-direction:column;gap:12px;width:min(100%,420px);max-height:88vh;padding:22px;display:flex;overflow-y:auto;box-shadow:0 24px 60px #14100a47}.sheet h2[data-v-e8c31e17]{color:var(--text-primary);margin:0;font-size:17px}.code-input[data-v-e8c31e17]{text-align:center;letter-spacing:12px;font-variant-numeric:tabular-nums;border:1px solid var(--border-strong);background:var(--bg-input);height:58px;color:var(--text-primary);text-transform:uppercase;box-sizing:border-box;border-radius:12px;width:100%;font-size:26px}.code-input[data-v-e8c31e17]::placeholder{letter-spacing:normal;color:var(--text-placeholder);font-size:15px}.code-input[data-v-e8c31e17]:focus{border-color:var(--text-primary);outline:none}.err[data-v-e8c31e17]{color:#c0554c;margin:0;font-size:12.5px}.tip[data-v-e8c31e17]{color:var(--text-muted);margin:0;font-size:12px;line-height:1.7}.sheet-actions[data-v-e8c31e17]{gap:10px;margin-top:4px;display:flex}.field[data-v-e8c31e17]{flex-direction:column;gap:6px;display:flex}.field label[data-v-e8c31e17]{color:var(--text-muted);flex-direction:column;flex:1;gap:6px;font-size:12px;display:flex}.row2[data-v-e8c31e17]{flex-direction:row;gap:10px}.field input[data-v-e8c31e17],.field textarea[data-v-e8c31e17]{border:1px solid var(--border-strong);background:var(--bg-input);color:var(--text-primary);font:inherit;box-sizing:border-box;border-radius:10px;width:100%;padding:9px 11px;font-size:13px}.seg[data-v-e8c31e17]{background:var(--bg-subtle);border-radius:10px;gap:2px;padding:3px;display:flex}.seg-btn[data-v-e8c31e17]{height:32px;color:var(--text-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;flex:1;font-size:13px}.seg-btn.on[data-v-e8c31e17]{background:var(--bg-panel);color:var(--text-primary);box-shadow:0 1px 2px #0000000f}.leave-list[data-v-e8c31e17]{border-top:1px solid var(--border);flex-direction:column;gap:8px;margin-top:6px;padding-top:12px;display:flex}.list-title[data-v-e8c31e17]{color:var(--text-muted);margin:0;font-size:12px}.leave-item[data-v-e8c31e17]{color:var(--text-primary);justify-content:space-between;align-items:center;gap:8px;font-size:13px;display:flex}.leave-item .muted[data-v-e8c31e17]{margin-left:6px;font-size:11.5px}.right[data-v-e8c31e17]{align-items:center;gap:8px;display:flex}.link[data-v-e8c31e17]{color:var(--text-muted);font:inherit;cursor:pointer;background:0 0;border:0;font-size:12px;text-decoration:underline}.muted[data-v-e8c31e17]{color:var(--text-muted);font-size:12.5px}.toast[data-v-e8c31e17]{background:var(--text-primary);color:var(--bg-panel);border-radius:999px;padding:10px 18px;font-size:13px;position:fixed;bottom:28px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0000002e}.toast.err[data-v-e8c31e17]{color:#fff;background:#c0554c}.toast-enter-active[data-v-e8c31e17],.toast-leave-active[data-v-e8c31e17]{transition:opacity .2s,transform .2s}.toast-enter-from[data-v-e8c31e17],.toast-leave-to[data-v-e8c31e17]{opacity:0;transform:translate(-50%,8px)}.hw-page[data-v-36122c3a]{background:var(--bg-page);height:100%;min-height:0;color:var(--text-primary);padding:24px 26px 40px;overflow-y:auto}.page-head[data-v-36122c3a]{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.page-head h1[data-v-36122c3a]{margin:0;font-size:22px;font-weight:600}.sub[data-v-36122c3a]{color:var(--text-muted);margin:6px 0 0;font-size:13px}.head-actions[data-v-36122c3a]{align-items:center;gap:10px;display:flex}.select[data-v-36122c3a],.input[data-v-36122c3a]{border:1px solid var(--border-strong);background:var(--bg-panel);height:38px;color:var(--text-primary);font:inherit;border-radius:9px;outline:none;padding:0 11px;font-size:13px}.select[data-v-36122c3a]:focus,.input[data-v-36122c3a]:focus{border-color:var(--text-primary)}textarea.input[data-v-36122c3a]{resize:vertical;height:auto;padding:9px 11px;line-height:1.6}.board[data-v-36122c3a]{grid-template-columns:300px minmax(0,1fr);align-items:start;gap:16px;display:grid}.col-list[data-v-36122c3a]{border:1px solid var(--border);background:var(--bg-panel);border-radius:14px;flex-direction:column;gap:8px;padding:10px;display:flex}.list-item[data-v-36122c3a]{color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;flex-direction:column;gap:4px;padding:11px 12px;display:flex}.list-item[data-v-36122c3a]:hover{background:var(--bg-subtle)}.list-item.on[data-v-36122c3a]{background:var(--bg-subtle);border-color:var(--border-strong)}.li-title[data-v-36122c3a]{font-size:13.5px;font-weight:600}.li-meta[data-v-36122c3a]{color:var(--text-muted);font-size:12px}.li-meta em[data-v-36122c3a]{color:var(--color-warning);font-style:normal}.col-main[data-v-36122c3a]{border:1px solid var(--border);background:var(--bg-panel);border-radius:14px;padding:18px 20px 22px}.detail-head[data-v-36122c3a]{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.detail-head h2[data-v-36122c3a]{margin:0;font-size:17px;font-weight:600}.detail-ops[data-v-36122c3a]{gap:8px;display:flex}.meta[data-v-36122c3a]{color:var(--text-muted);margin:6px 0 0;font-size:12.5px}.left[data-v-36122c3a]{color:var(--color-warning);margin-left:8px}.content[data-v-36122c3a]{background:var(--bg-subtle);white-space:pre-wrap;border-radius:10px;margin:14px 0 0;padding:12px 14px;font-size:13px;line-height:1.7}.stat-row[data-v-36122c3a]{color:var(--text-muted);gap:22px;margin:14px 0 10px;font-size:12.5px;display:flex}.stat-row strong[data-v-36122c3a]{color:var(--text-primary);margin-left:4px;font-size:15px}.table-wrap[data-v-36122c3a]{overflow-x:auto}table[data-v-36122c3a]{border-collapse:collapse;text-align:left;width:100%;font-size:13px}th[data-v-36122c3a],td[data-v-36122c3a]{border-bottom:1px solid var(--border);white-space:nowrap;padding:11px 10px}th[data-v-36122c3a]{color:var(--text-muted);font-size:12px;font-weight:600}.who[data-v-36122c3a]{align-items:center;gap:8px;display:flex}.mono[data-v-36122c3a]{font-variant-numeric:tabular-nums;color:var(--text-secondary)}.chip[data-v-36122c3a]{background:var(--bg-subtle);height:22px;color:var(--text-secondary);border-radius:999px;align-items:center;padding:0 9px;font-size:12px;display:inline-flex}.chip.ok[data-v-36122c3a]{background:var(--color-success-soft);color:var(--color-success)}.chip.warn[data-v-36122c3a]{background:var(--color-warning-soft);color:var(--color-warning)}.chip.bad[data-v-36122c3a]{background:var(--color-danger-soft);color:var(--color-danger)}.chip.tiny[data-v-36122c3a]{height:18px;margin-left:6px;font-size:11px}.link[data-v-36122c3a]{color:var(--text-primary);font:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;font-size:13px;text-decoration:underline}.mute-text[data-v-36122c3a]{color:var(--text-faint)}.empty[data-v-36122c3a]{text-align:center;color:var(--text-muted);padding:26px}.hint[data-v-36122c3a]{color:var(--text-muted);margin:0;padding:16px 4px;font-size:13px}.hint.center[data-v-36122c3a]{text-align:center;padding-top:80px}.stu-wrap[data-v-36122c3a]{gap:10px;max-width:760px;display:grid}.stu-card[data-v-36122c3a]{border:1px solid var(--border);background:var(--bg-panel);color:inherit;font:inherit;text-align:left;cursor:pointer;border-radius:14px;justify-content:space-between;align-items:center;gap:14px;padding:16px 18px;display:flex}.stu-card[data-v-36122c3a]:hover{border-color:var(--border-strong)}.stu-main[data-v-36122c3a]{flex-direction:column;gap:5px;display:flex}.stu-main strong[data-v-36122c3a]{font-size:14.5px}.mask[data-v-36122c3a]{z-index:60;background:var(--mask-bg);place-items:center;padding:20px;display:grid;position:fixed;inset:0}.dialog[data-v-36122c3a]{background:var(--bg-panel);border-radius:16px;width:min(100%,460px);max-height:min(88vh,780px);padding:20px;overflow-y:auto;box-shadow:0 24px 60px -24px #1c191280}.dialog.wide[data-v-36122c3a]{width:min(100%,640px)}.dialog h3[data-v-36122c3a]{margin:0 0 12px;font-size:16px;font-weight:600}.field[data-v-36122c3a]{color:var(--text-muted);flex-direction:column;gap:6px;margin-top:12px;font-size:12.5px;display:flex}.field.grow[data-v-36122c3a]{flex:1}.field.score[data-v-36122c3a]{width:110px}.answer[data-v-36122c3a]{background:var(--bg-subtle);white-space:pre-wrap;border-radius:10px;margin-top:12px;padding:12px 14px;font-size:13px;line-height:1.7}.grade-row[data-v-36122c3a]{align-items:flex-start;gap:12px;display:flex}.grade-row .field[data-v-36122c3a]{margin-top:12px}.graded-box[data-v-36122c3a]{background:var(--color-primary-soft);border-radius:10px;margin-top:12px;padding:12px 14px}.grade-line[data-v-36122c3a]{margin:0;font-size:13px}.grade-line strong[data-v-36122c3a]{font-size:18px}.comment[data-v-36122c3a]{color:var(--text-secondary);white-space:pre-wrap;margin:6px 0 0;font-size:13px;line-height:1.7}.files[data-v-36122c3a],.files-row[data-v-36122c3a]{flex-wrap:wrap;gap:10px;margin-top:10px;font-size:13px;display:flex}.files a[data-v-36122c3a],.file-pill[data-v-36122c3a]{color:var(--text-primary);text-underline-offset:3px;text-decoration:underline}.dialog-ops[data-v-36122c3a]{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.toast[data-v-36122c3a]{background:var(--text-primary);color:var(--bg-panel);z-index:70;border-radius:999px;padding:9px 16px;font-size:13px;position:fixed;bottom:32px;left:50%;transform:translate(-50%)}@media (width<=900px){.board[data-v-36122c3a]{grid-template-columns:1fr}}.tt[data-v-e0e8245a]{padding-top:4px}.tt-head[data-v-e0e8245a]{color:var(--text-muted);align-items:baseline;gap:10px;margin-bottom:12px;font-size:13px;display:flex}.term[data-v-e0e8245a]{color:var(--text-primary);font-weight:600}.grid[data-v-e0e8245a]{grid-template-columns:96px repeat(5,minmax(0,1fr));align-items:stretch;gap:8px;display:grid}.corner[data-v-e0e8245a]{background:0 0;border-radius:10px}.th[data-v-e0e8245a]{text-align:center;color:var(--text-secondary);padding:8px 4px;font-size:12.5px;font-weight:600}.row-head[data-v-e0e8245a]{background:var(--bg-subtle);color:var(--text-muted);border-radius:10px;flex-direction:column;justify-content:center;gap:2px;padding:10px 8px;font-size:12px;display:flex}.row-head strong[data-v-e0e8245a]{color:var(--text-secondary);font-size:12.5px;font-weight:600}.cell[data-v-e0e8245a]{background:var(--bg-subtle);border-radius:10px;min-height:74px}.course[data-v-e0e8245a]{border:1px solid var(--border-strong);background:var(--bg-panel);border-radius:10px;flex-direction:column;gap:3px;height:100%;padding:10px 11px;display:flex}.course strong[data-v-e0e8245a]{font-size:13px;font-weight:600;line-height:1.35}.meta[data-v-e0e8245a]{color:var(--text-muted);font-size:11.5px}.empty[data-v-e0e8245a]{text-align:center;color:var(--text-muted);margin:0;padding:36px 0;font-size:13px}@media (width<=900px){.grid[data-v-e0e8245a]{grid-template-columns:72px repeat(5,minmax(92px,1fr));overflow-x:auto}}.sum[data-v-4a3edefa]{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px;display:grid}.sum-item[data-v-4a3edefa]{border:1px solid var(--border);background:var(--bg-panel);border-radius:12px;flex-direction:column;gap:6px;padding:14px 16px;display:flex}.sum-item small[data-v-4a3edefa]{color:var(--text-muted);font-size:12px}.sum-item strong[data-v-4a3edefa]{font-variant-numeric:tabular-nums;font-size:21px;font-weight:600}.toolbar[data-v-4a3edefa]{align-items:center;gap:12px;margin-bottom:14px;display:flex}.select[data-v-4a3edefa]{border:1px solid var(--border-strong);background:var(--bg-panel);height:34px;color:var(--text-primary);font:inherit;border-radius:9px;padding:0 10px;font-size:13px}.hint-inline[data-v-4a3edefa]{color:var(--text-muted);margin-right:auto;font-size:12.5px}.table-wrap[data-v-4a3edefa]{border:1px solid var(--border);background:var(--bg-panel);border-radius:12px;overflow-x:auto}table[data-v-4a3edefa]{border-collapse:collapse;text-align:left;width:100%;font-size:13px}th[data-v-4a3edefa],td[data-v-4a3edefa]{border-bottom:1px solid var(--border);white-space:nowrap;padding:11px 12px}th[data-v-4a3edefa]{color:var(--text-muted);font-size:12px;font-weight:600}tbody tr:last-child td[data-v-4a3edefa]{border-bottom:0}.num[data-v-4a3edefa]{text-align:right}.mono[data-v-4a3edefa]{color:var(--text-secondary);font-variant-numeric:tabular-nums}.teacher[data-v-4a3edefa]{color:var(--text-muted);margin-left:8px;font-size:11.5px}.remark[data-v-4a3edefa]{text-overflow:ellipsis;max-width:220px;color:var(--text-muted);overflow:hidden}.score[data-v-4a3edefa]{border:1px solid var(--border-strong);background:var(--bg-panel);width:68px;height:30px;color:var(--text-primary);font:inherit;text-align:right;border-radius:8px;padding:0 8px;font-size:13px}.remark-input[data-v-4a3edefa]{border:1px solid var(--border);background:var(--bg-panel);width:180px;height:30px;color:var(--text-primary);font:inherit;border-radius:8px;padding:0 8px;font-size:12.5px}.empty[data-v-4a3edefa]{text-align:center;color:var(--text-muted);padding:40px 0;font-size:13px}.toast[data-v-4a3edefa]{background:var(--text-primary);color:var(--bg-panel);border-radius:999px;padding:8px 16px;font-size:13px;position:fixed;bottom:30px;left:50%;transform:translate(-50%)}.acts[data-v-7df47974]{border:1px solid var(--border);background:var(--bg-subtle);border-radius:14px;margin-bottom:18px;padding:16px}.acts-head[data-v-7df47974]{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.acts-head h3[data-v-7df47974]{color:var(--text-primary);margin:0;font-size:14.5px;font-weight:600}.acts-sub[data-v-7df47974]{color:var(--text-muted);margin:4px 0 0;font-size:12.5px}.act-grid[data-v-7df47974]{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.act-card[data-v-7df47974]{border:1px solid var(--border);background:var(--bg-panel);border-radius:12px;padding:13px 14px}.act-card.off[data-v-7df47974]{opacity:.62}.act-top[data-v-7df47974]{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.act-top strong[data-v-7df47974]{color:var(--text-primary);font-size:14px}.act-value[data-v-7df47974]{color:var(--text-primary);flex:none;font-size:15px;font-weight:600}.act-value em[data-v-7df47974]{color:var(--text-muted);font-size:11.5px;font-style:normal;font-weight:400}.act-meta[data-v-7df47974]{color:var(--text-muted);margin:6px 0 0;font-size:12.5px}.act-desc[data-v-7df47974]{color:var(--text-secondary);margin:6px 0 0;font-size:12.5px;line-height:1.6}.act-foot[data-v-7df47974]{align-items:center;gap:10px;margin-top:10px;display:flex}.act-foot .mute[data-v-7df47974]{color:var(--text-muted);flex:1;font-size:12px}@media (width<=900px){.act-grid[data-v-7df47974]{grid-template-columns:minmax(0,1fr)}}.sum[data-v-7df47974]{grid-template-columns:repeat(3,minmax(0,1fr)) auto;align-items:stretch;gap:10px;margin-bottom:16px;display:grid}.sum-item[data-v-7df47974]{border:1px solid var(--border);background:var(--bg-panel);border-radius:12px;flex-direction:column;gap:6px;padding:14px 16px;display:flex}.sum-item small[data-v-7df47974]{color:var(--text-muted);font-size:12px}.sum-item strong[data-v-7df47974]{font-variant-numeric:tabular-nums;font-size:21px;font-weight:600}.sum-item em[data-v-7df47974]{color:var(--text-muted);font-size:12px;font-style:normal;font-weight:400}.sum-actions[data-v-7df47974]{align-items:center;display:flex}.table-wrap[data-v-7df47974]{border:1px solid var(--border);background:var(--bg-panel);border-radius:12px;overflow-x:auto}table[data-v-7df47974]{border-collapse:collapse;text-align:left;width:100%;font-size:13px}th[data-v-7df47974],td[data-v-7df47974]{border-bottom:1px solid var(--border);white-space:nowrap;padding:11px 12px}th[data-v-7df47974]{color:var(--text-muted);font-size:12px;font-weight:600}tbody tr:last-child td[data-v-7df47974]{border-bottom:0}.num[data-v-7df47974]{text-align:right}.mute[data-v-7df47974]{color:var(--text-muted)}.chip[data-v-7df47974]{background:var(--bg-subtle);height:22px;color:var(--text-secondary);border-radius:999px;align-items:center;padding:0 9px;font-size:12px;display:inline-flex}.chip.ok[data-v-7df47974]{background:var(--color-success-soft);color:var(--color-success)}.chip.warn[data-v-7df47974]{background:var(--color-warning-soft);color:var(--color-warning)}.chip.bad[data-v-7df47974]{background:var(--color-danger-soft);color:var(--color-danger)}.link[data-v-7df47974]{color:var(--text-primary);font:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;font-size:13px;text-decoration:underline}.link+.link[data-v-7df47974]{margin-left:10px}.link.danger[data-v-7df47974]{color:var(--color-danger)}.empty[data-v-7df47974]{text-align:center;color:var(--text-muted);background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;padding:40px 16px;font-size:13px}.mask[data-v-7df47974]{z-index:60;background:var(--mask-bg);place-items:center;padding:20px;display:grid;position:fixed;inset:0}.dialog[data-v-7df47974]{background:var(--bg-panel);border-radius:16px;width:min(100%,470px);padding:20px;box-shadow:0 24px 60px -24px #1c191280}.dialog h3[data-v-7df47974]{margin:0 0 6px;font-size:16px;font-weight:600}.field[data-v-7df47974]{color:var(--text-muted);flex-direction:column;gap:6px;margin-top:12px;font-size:12.5px;display:flex}.field-row[data-v-7df47974]{gap:12px;display:flex}.field.grow[data-v-7df47974]{flex:1}.input[data-v-7df47974]{border:1px solid var(--border-strong);background:var(--bg-panel);height:38px;color:var(--text-primary);font:inherit;border-radius:9px;outline:none;padding:0 11px;font-size:13px}.input[data-v-7df47974]:focus{border-color:var(--text-primary)}.dialog-ops[data-v-7df47974]{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.toast[data-v-7df47974]{background:var(--text-primary);color:var(--bg-panel);border-radius:999px;padding:8px 16px;font-size:13px;position:fixed;bottom:30px;left:50%;transform:translate(-50%)}.course-page[data-v-9c4dc48c]{padding-bottom:20px}.page-head h1[data-v-9c4dc48c]{color:var(--text-primary);margin:0;font-size:22px;font-weight:600}.sub[data-v-9c4dc48c]{color:var(--text-muted);margin:6px 0 0;font-size:12.5px}.cards[data-v-9c4dc48c]{grid-template-columns:repeat(2,minmax(0,220px));gap:12px;margin:16px 0 18px;display:grid}.stat-card[data-v-9c4dc48c]{border:1px solid var(--border);background:var(--bg-panel);border-radius:12px;padding:14px 16px}.stat-label[data-v-9c4dc48c]{color:var(--text-muted);margin:0;font-size:12px}.stat-value[data-v-9c4dc48c]{color:var(--text-primary);margin:6px 0 0;font-size:22px;font-weight:600}.unit[data-v-9c4dc48c]{color:var(--text-muted);margin-left:4px;font-size:12px;font-weight:400}.list[data-v-9c4dc48c]{gap:10px;display:grid}.course-row[data-v-9c4dc48c]{border:1px solid var(--border);background:var(--bg-panel);border-radius:12px;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;display:flex}.course-name[data-v-9c4dc48c]{color:var(--text-primary);align-items:center;gap:8px;margin:0;font-size:14.5px;font-weight:600;display:flex}.tag[data-v-9c4dc48c]{background:var(--bg-subtle);height:20px;color:var(--text-secondary);border-radius:999px;padding:0 8px;font-size:11px;font-weight:400;line-height:20px}.course-meta[data-v-9c4dc48c]{color:var(--text-secondary);margin:6px 0 0;font-size:12.5px}.course-side[data-v-9c4dc48c]{text-align:right;flex:none}.course-teacher[data-v-9c4dc48c]{color:var(--text-primary);margin:0;font-size:13px}.course-clock[data-v-9c4dc48c]{color:var(--text-muted);margin:5px 0 0;font-size:12px}.empty[data-v-9c4dc48c]{text-align:center;color:var(--text-muted);border:1px solid var(--border);background:var(--bg-panel);border-radius:12px;padding:34px;font-size:13px}.exam-page[data-v-40b46912]{padding-bottom:20px}.page-head h1[data-v-40b46912]{color:var(--text-primary);margin:0;font-size:22px;font-weight:600}.sub[data-v-40b46912]{color:var(--text-muted);margin:6px 0 0;font-size:12.5px}.bar[data-v-40b46912]{justify-content:space-between;align-items:center;gap:12px;margin:16px 0 14px;display:flex}.hint[data-v-40b46912]{color:var(--text-secondary);font-size:13px}.hint b[data-v-40b46912]{color:var(--text-primary)}.select[data-v-40b46912]{border:1px solid var(--border-strong);background:var(--bg-panel);height:36px;color:var(--text-primary);font:inherit;border-radius:9px;padding:0 10px;font-size:13px}.primary-btn[data-v-40b46912]{background:var(--color-primary);height:36px;color:var(--text-on-brand);font:inherit;cursor:pointer;border:0;border-radius:9px;padding:0 16px;font-size:13px}.primary-btn[data-v-40b46912]:disabled{opacity:.6;cursor:not-allowed}.list[data-v-40b46912]{gap:10px;display:grid}.exam-row[data-v-40b46912]{border:1px solid var(--border);background:var(--bg-panel);border-radius:12px;align-items:center;gap:16px;padding:14px 16px;display:flex}.exam-row.done[data-v-40b46912]{opacity:.62}.date-box[data-v-40b46912]{text-align:center;flex:0 0 52px}.date-day[data-v-40b46912]{color:var(--text-primary);margin:0;font-size:20px;font-weight:600;line-height:1.1}.date-mon[data-v-40b46912]{color:var(--text-muted);margin:2px 0 0;font-size:11px}.exam-main[data-v-40b46912]{flex:1;min-width:0}.exam-name[data-v-40b46912]{color:var(--text-primary);align-items:center;gap:8px;margin:0;font-size:14.5px;font-weight:600;display:flex}.tag[data-v-40b46912]{background:var(--bg-subtle);height:20px;color:var(--text-secondary);border-radius:999px;padding:0 8px;font-size:11px;font-weight:400;line-height:20px}.tag.hot[data-v-40b46912]{background:var(--color-danger-bg);color:var(--color-danger)}.exam-meta[data-v-40b46912]{color:var(--text-secondary);margin:6px 0 0;font-size:12.5px}.exam-side[data-v-40b46912]{text-align:right;flex:none}.exam-time[data-v-40b46912]{color:var(--text-primary);margin:0;font-size:13px}.exam-state[data-v-40b46912]{color:var(--text-muted);margin:5px 0 0;font-size:12px}.exam-ops[data-v-40b46912]{flex:none;gap:10px;display:flex}.link[data-v-40b46912]{color:var(--text-primary);font:inherit;cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:0;font-size:12.5px;text-decoration:underline}.link.danger[data-v-40b46912]{color:var(--color-danger)}.empty[data-v-40b46912]{text-align:center;color:var(--text-muted);border:1px solid var(--border);background:var(--bg-panel);border-radius:12px;padding:34px;font-size:13px}.mask[data-v-40b46912]{z-index:90;background:var(--mask-bg);place-items:center;padding:20px;display:grid;position:fixed;inset:0}.dialog[data-v-40b46912]{background:var(--bg-panel);border-radius:18px;width:min(100%,460px);padding:20px 22px;box-shadow:0 28px 70px -26px #1c19128c}.dialog h3[data-v-40b46912]{color:var(--text-primary);margin:0 0 16px;font-size:16px;font-weight:600}.form[data-v-40b46912]{gap:12px;display:grid}.row2[data-v-40b46912]{grid-template-columns:1fr 1fr;gap:12px;display:grid}.field[data-v-40b46912]{color:var(--text-muted);gap:6px;font-size:12.5px;display:grid}.field input[data-v-40b46912],.field select[data-v-40b46912]{border:1px solid var(--border-strong);background:var(--bg-input);height:36px;color:var(--text-primary);font:inherit;border-radius:9px;padding:0 10px;font-size:13px}.form-error[data-v-40b46912]{color:var(--color-danger);margin:12px 0 0;font-size:12.5px}.dialog-actions[data-v-40b46912]{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.ghost[data-v-40b46912]{border:1px solid var(--border-strong);background:var(--bg-panel);height:36px;color:var(--text-primary);font:inherit;cursor:pointer;border-radius:9px;padding:0 16px;font-size:13px}.toast[data-v-40b46912]{color:#f3f2ee;background:#17181ce6;border-radius:999px;padding:9px 18px;font-size:13px;position:fixed;bottom:40px;left:50%;transform:translate(-50%)}.leave-page[data-v-cadcf7bc]{padding-bottom:20px}.page-head h1[data-v-cadcf7bc]{color:var(--text-primary);margin:0;font-size:22px;font-weight:600}.sub[data-v-cadcf7bc]{color:var(--text-muted);margin:6px 0 0;font-size:12.5px}.cards[data-v-cadcf7bc]{flex-wrap:wrap;align-items:stretch;gap:12px;margin:16px 0 18px;display:flex}.stat-card[data-v-cadcf7bc]{border:1px solid var(--border);background:var(--bg-panel);border-radius:12px;flex:none;min-width:120px;padding:14px 16px}.stat-label[data-v-cadcf7bc]{color:var(--text-muted);margin:0;font-size:12px}.stat-value[data-v-cadcf7bc]{color:var(--text-primary);margin:6px 0 0;font-size:20px;font-weight:600}.apply-btn[data-v-cadcf7bc]{background:var(--color-primary);height:38px;color:var(--text-on-brand);font:inherit;cursor:pointer;border:0;border-radius:10px;align-self:center;margin-left:auto;padding:0 18px;font-size:13.5px}.list[data-v-cadcf7bc]{gap:10px;display:grid}.leave-row[data-v-cadcf7bc]{border:1px solid var(--border);background:var(--bg-panel);border-radius:12px;justify-content:space-between;align-items:flex-start;gap:16px;padding:14px 16px;display:flex}.leave-title[data-v-cadcf7bc]{color:var(--text-primary);align-items:center;gap:8px;margin:0;font-size:14.5px;font-weight:600;display:flex}.tag[data-v-cadcf7bc]{background:var(--bg-subtle);height:20px;color:var(--text-secondary);border-radius:999px;padding:0 8px;font-size:11px;font-weight:400;line-height:20px}.tag.st0[data-v-cadcf7bc]{background:var(--bg-subtle);color:var(--text-secondary)}.tag.st1[data-v-cadcf7bc]{background:var(--color-success-bg);color:var(--color-success)}.tag.st2[data-v-cadcf7bc]{background:var(--color-danger-bg);color:var(--color-danger)}.leave-who[data-v-cadcf7bc]{color:var(--text-primary);margin:6px 0 0;font-size:12.5px}.leave-time[data-v-cadcf7bc]{color:var(--text-secondary);margin:7px 0 0;font-size:12.5px}.leave-reason[data-v-cadcf7bc]{color:var(--text-primary);margin:6px 0 0;font-size:13px}.leave-comment[data-v-cadcf7bc]{color:var(--text-muted);margin:6px 0 0;font-size:12px}.leave-ops[data-v-cadcf7bc]{flex:none;gap:12px;display:flex}.link[data-v-cadcf7bc]{color:var(--text-primary);font:inherit;cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:0;font-size:12.5px;text-decoration:underline}.link.danger[data-v-cadcf7bc]{color:var(--color-danger)}.empty[data-v-cadcf7bc]{text-align:center;color:var(--text-muted);border:1px solid var(--border);background:var(--bg-panel);border-radius:12px;padding:34px;font-size:13px}.mask[data-v-cadcf7bc]{z-index:90;background:var(--mask-bg);place-items:center;padding:20px;display:grid;position:fixed;inset:0}.dialog[data-v-cadcf7bc]{background:var(--bg-panel);border-radius:18px;width:min(100%,460px);padding:20px 22px;box-shadow:0 28px 70px -26px #1c19128c}.dialog h3[data-v-cadcf7bc]{color:var(--text-primary);margin:0 0 16px;font-size:16px;font-weight:600}.form[data-v-cadcf7bc]{gap:12px;display:grid}.row2[data-v-cadcf7bc]{grid-template-columns:1fr 1fr;gap:12px;display:grid}.field[data-v-cadcf7bc]{color:var(--text-muted);gap:6px;font-size:12.5px;display:grid}.field input[data-v-cadcf7bc],.field textarea[data-v-cadcf7bc]{border:1px solid var(--border-strong);background:var(--bg-input);color:var(--text-primary);font:inherit;border-radius:9px;padding:8px 10px;font-size:13px}.seg[data-v-cadcf7bc]{background:var(--bg-subtle);border-radius:10px;gap:4px;width:fit-content;padding:4px;display:flex}.seg-btn[data-v-cadcf7bc]{height:30px;color:var(--text-secondary);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:7px;padding:0 14px;font-size:13px}.seg-btn.on[data-v-cadcf7bc]{background:var(--bg-panel);color:var(--text-primary);box-shadow:0 1px 3px #1c191224}.form-error[data-v-cadcf7bc]{color:var(--color-danger);margin:12px 0 0;font-size:12.5px}.dialog-actions[data-v-cadcf7bc]{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.ghost[data-v-cadcf7bc]{border:1px solid var(--border-strong);background:var(--bg-panel);height:36px;color:var(--text-primary);font:inherit;cursor:pointer;border-radius:9px;padding:0 16px;font-size:13px}.primary-btn[data-v-cadcf7bc]{background:var(--color-primary);height:36px;color:var(--text-on-brand);font:inherit;cursor:pointer;border:0;border-radius:9px;padding:0 16px;font-size:13px}.primary-btn[data-v-cadcf7bc]:disabled{opacity:.6;cursor:not-allowed}.toast[data-v-cadcf7bc]{color:#f3f2ee;background:#17181ce6;border-radius:999px;padding:9px 18px;font-size:13px;position:fixed;bottom:40px;left:50%;transform:translate(-50%)}.study-page[data-v-13dc2440]{background:var(--bg-page);height:100%;min-height:0;overflow-y:auto}.study-inner[data-v-13dc2440]{flex-direction:column;width:100%;max-width:940px;margin:0 auto;padding:22px 26px 40px;display:flex}.back[data-v-13dc2440]{border:1px solid var(--border-strong);background:var(--bg-panel);height:32px;color:var(--text-secondary);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:4px;margin-bottom:12px;padding:0 13px 0 9px;font-size:13px;transition:border-color .15s,color .15s,transform .12s;display:inline-flex}.back svg[data-v-13dc2440]{width:16px;height:16px}.back[data-v-13dc2440]:hover{border-color:var(--text-primary);color:var(--text-primary)}.back[data-v-13dc2440]:active{transform:translateY(1px)scale(.98)}.back[data-v-13dc2440]:focus-visible{box-shadow:var(--focus-ring);outline:none}.hub-head h1[data-v-13dc2440]{color:var(--text-primary);margin:0;font-size:22px;font-weight:600}.sub[data-v-13dc2440]{color:var(--text-muted);margin:6px 0 0;font-size:13px}.module-grid[data-v-13dc2440]{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:20px;display:grid}.module-card[data-v-13dc2440]{border:1px solid var(--border);background:var(--bg-panel);color:inherit;font:inherit;text-align:left;cursor:pointer;border-radius:14px;align-items:center;gap:13px;padding:17px 18px;transition:transform .16s,box-shadow .16s,border-color .16s;display:flex}.module-card[data-v-13dc2440]:hover{border-color:var(--border-strong);transform:translateY(-1px);box-shadow:0 8px 20px -14px #1c191273}.module-icon[data-v-13dc2440]{background:var(--bg-subtle);width:40px;height:40px;color:var(--text-primary);border-radius:11px;flex:none;place-items:center;display:grid}.module-icon[data-v-13dc2440] svg{width:21px;height:21px}.module-text[data-v-13dc2440]{flex-direction:column;gap:3px;min-width:0;display:flex}.module-text strong[data-v-13dc2440]{font-size:14.5px;font-weight:600}.module-text small[data-v-13dc2440]{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.hub-body[data-v-13dc2440]{margin-top:16px}.hub-body[data-v-13dc2440] .checkin-page,.hub-body[data-v-13dc2440] .hw-page{background:0 0;max-width:none;height:auto;padding:0}.hub-body[data-v-13dc2440] .checkin-page .page-head,.hub-body[data-v-13dc2440] .hw-page .page-head{margin-bottom:14px}@media (width<=880px){.module-grid[data-v-13dc2440]{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.module-grid[data-v-13dc2440]{grid-template-columns:1fr}}.an-page[data-v-bd3b75d5]{padding-top:2px}.page-head h1[data-v-bd3b75d5]{margin:0 0 4px;font-size:22px}.page-head .sub[data-v-bd3b75d5]{color:var(--text-muted);margin:0 0 16px;font-size:12.5px}.an-toolbar[data-v-bd3b75d5]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px;display:flex}.an-scope[data-v-bd3b75d5]{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.sel[data-v-bd3b75d5]{border:1px solid var(--border);background:var(--bg-panel);height:34px;color:var(--text-primary);font:inherit;appearance:none;cursor:pointer;background-image:linear-gradient(45deg, transparent 50%, var(--text-muted) 50%), linear-gradient(135deg, var(--text-muted) 50%, transparent 50%);background-position:calc(100% - 16px) 14px,calc(100% - 11px) 14px;background-repeat:no-repeat;background-size:5px 5px,5px 5px;border-radius:9px;padding:0 30px 0 12px;font-size:13px}.an-meta[data-v-bd3b75d5]{color:var(--text-muted);font-size:12.5px}.ghost-btn[data-v-bd3b75d5]{border:1px solid var(--border);background:var(--bg-panel);height:34px;color:var(--text-secondary);font:inherit;cursor:pointer;border-radius:9px;padding:0 14px;font-size:13px}.ghost-btn[data-v-bd3b75d5]:hover{border-color:var(--text-primary);color:var(--text-primary)}.err[data-v-bd3b75d5]{background:var(--color-danger-bg);color:var(--color-danger);border-radius:10px;margin:0 0 14px;padding:10px 14px;font-size:13px}.kpis[data-v-bd3b75d5]{grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:14px;display:grid}.kpi[data-v-bd3b75d5]{background:var(--bg-panel);border:1px solid var(--border-light);border-radius:14px;padding:14px 16px}.kpi span[data-v-bd3b75d5]{color:var(--text-muted);margin-bottom:6px;font-size:12px;display:block}.kpi b[data-v-bd3b75d5]{letter-spacing:.3px;font-variant-numeric:tabular-nums;font-size:24px;font-weight:700}.kpi b small[data-v-bd3b75d5]{color:var(--text-muted);margin-left:3px;font-size:12px;font-weight:500}.kpi em[data-v-bd3b75d5]{color:var(--text-muted);margin-top:6px;font-size:11.5px;font-style:normal;display:block}.chart-grid[data-v-bd3b75d5]{grid-template-columns:1fr 1fr;gap:12px;display:grid}.card[data-v-bd3b75d5]{background:var(--bg-panel);border:1px solid var(--border-light);border-radius:14px;padding:16px 18px 14px}.card.wide[data-v-bd3b75d5]{grid-column:1/-1;margin-top:12px}.card h2[data-v-bd3b75d5]{margin:0;font-size:14px;font-weight:600}.hint[data-v-bd3b75d5]{color:var(--text-muted);margin:3px 0 14px;font-size:11.5px}.empty[data-v-bd3b75d5]{text-align:center;color:var(--text-faint);margin:18px 0;font-size:12.5px}.empty.small[data-v-bd3b75d5]{margin:12px 0 0}.bars-wrap[data-v-bd3b75d5]{position:relative}.line-layer[data-v-bd3b75d5]{pointer-events:none;width:calc(100% - 8px);height:150px;position:absolute;top:18px;left:4px;right:4px}.bars[data-v-bd3b75d5]{border-bottom:1px solid var(--border-light);align-items:flex-end;gap:14px;height:150px;padding:18px 4px 0;display:flex}.bar-col[data-v-bd3b75d5]{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;height:100%;display:flex;position:relative}.bar[data-v-bd3b75d5]{background:var(--text-primary);border-radius:4px 4px 0 0;width:100%;max-width:34px}.bar.low[data-v-bd3b75d5]{background:var(--border-light)}.bar-val[data-v-bd3b75d5]{color:var(--text-secondary);font-size:11px;position:absolute;top:-16px}.bar-x[data-v-bd3b75d5]{color:var(--text-muted);white-space:nowrap;font-size:10.5px;position:absolute;bottom:-20px}.dist[data-v-bd3b75d5]{border-bottom:1px solid var(--border-light);align-items:flex-end;gap:12px;height:150px;padding:18px 6px 0;display:flex}.dist .col[data-v-bd3b75d5]{text-align:center;flex-direction:column;flex:1;justify-content:flex-end;height:100%;display:flex;position:relative}.dist .col i[data-v-bd3b75d5]{background:var(--text-primary);border-radius:4px 4px 0 0;width:100%;max-width:44px;margin:0 auto;display:block}.dist .col i.light[data-v-bd3b75d5]{background:var(--border-light)}.dist .col b[data-v-bd3b75d5]{color:var(--text-muted);font-size:10.5px;font-weight:500;position:absolute;bottom:-20px;left:0;right:0}.col-n[data-v-bd3b75d5]{color:var(--text-secondary);font-size:11px;position:absolute;top:-16px;left:0;right:0}.legend[data-v-bd3b75d5]{color:var(--text-muted);flex-wrap:wrap;gap:16px;margin-top:26px;font-size:11.5px;display:flex}.dot[data-v-bd3b75d5]{border-radius:2px;width:9px;height:9px;margin-right:5px;display:inline-block}.dot.solid[data-v-bd3b75d5]{background:var(--text-primary)}.dot.grey[data-v-bd3b75d5]{background:var(--border-light)}.dot.accent[data-v-bd3b75d5]{background:var(--color-purple)}.donut-wrap[data-v-bd3b75d5]{align-items:center;gap:22px;display:flex}.donut[data-v-bd3b75d5]{border-radius:50%;flex:none;place-items:center;width:118px;height:118px;display:grid}.donut-in[data-v-bd3b75d5]{background:var(--bg-panel);text-align:center;border-radius:50%;place-items:center;width:76px;height:76px;display:grid}.donut-in b[data-v-bd3b75d5]{font-variant-numeric:tabular-nums;font-size:19px}.donut-in small[data-v-bd3b75d5]{color:var(--text-muted);font-size:10px;display:block}.donut-legend[data-v-bd3b75d5]{color:var(--text-secondary);gap:8px;font-size:12px;display:grid}.hbars[data-v-bd3b75d5]{gap:9px;margin-top:14px;display:grid}.hrow[data-v-bd3b75d5]{grid-template-columns:96px 1fr 48px;align-items:center;gap:10px;font-size:12px;display:grid}.hrow span[data-v-bd3b75d5]{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.track[data-v-bd3b75d5]{background:var(--bg-subtle);border-radius:999px;height:9px;overflow:hidden}.fill[data-v-bd3b75d5]{background:var(--text-primary);border-radius:999px;height:100%}.hrow em[data-v-bd3b75d5]{text-align:right;color:var(--text-muted);font-variant-numeric:tabular-nums;font-style:normal}.att[data-v-bd3b75d5]{border-bottom:1px solid var(--border-light);align-items:flex-end;gap:10px;height:140px;padding:16px 4px 0;display:flex}.att-col[data-v-bd3b75d5]{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;height:100%;display:flex;position:relative}.att-track[data-v-bd3b75d5]{align-items:flex-end;width:100%;max-width:40px;height:100%;display:flex}.att-fill[data-v-bd3b75d5]{background:var(--text-primary);border-radius:4px 4px 0 0;width:100%}.att-n[data-v-bd3b75d5]{color:var(--text-secondary);font-size:10.5px;position:absolute;top:-16px}.att-x[data-v-bd3b75d5]{color:var(--text-muted);white-space:nowrap;font-size:10px;position:absolute;bottom:-20px}.tbl[data-v-bd3b75d5]{border-collapse:collapse;width:100%;margin-top:4px;font-size:12.5px}.tbl th[data-v-bd3b75d5]{text-align:left;color:var(--text-muted);border-bottom:1px solid var(--border-light);padding:8px 10px;font-size:11.5px;font-weight:500}.tbl td[data-v-bd3b75d5]{border-bottom:1px solid var(--border-light);color:var(--text-secondary);padding:9px 10px}.tbl tr:last-child td[data-v-bd3b75d5]{border-bottom:0}.mono[data-v-bd3b75d5]{font-variant-numeric:tabular-nums}.chip[data-v-bd3b75d5]{border-radius:999px;padding:2px 8px;font-size:11px;display:inline-block}.chip.red[data-v-bd3b75d5]{background:var(--color-danger-bg);color:var(--color-danger)}.chip.amber[data-v-bd3b75d5]{background:var(--bg-subtle);color:var(--color-warning)}.chip.green[data-v-bd3b75d5]{background:var(--bg-subtle);color:var(--color-success)}@media (width<=1200px){.kpis[data-v-bd3b75d5]{grid-template-columns:repeat(3,1fr)}.chart-grid[data-v-bd3b75d5]{grid-template-columns:1fr}}.teach-page[data-v-5c6c60fc]{background:var(--bg-page);flex-direction:column;gap:16px;height:100%;padding:22px 26px 40px;display:flex;overflow-y:auto}.page-head[data-v-5c6c60fc]{justify-content:space-between;align-items:flex-end;gap:16px;display:flex}h1[data-v-5c6c60fc]{color:var(--text-primary);margin:0;font-size:22px}.sub[data-v-5c6c60fc]{color:var(--text-muted);margin:4px 0 0;font-size:13px}.course-tabs[data-v-5c6c60fc]{background:var(--bg-subtle);border-radius:12px;gap:4px;width:fit-content;margin:14px 0 16px;padding:4px;display:flex}.course-tab[data-v-5c6c60fc]{height:30px;color:var(--text-secondary);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:9px;align-items:center;gap:6px;padding:0 13px;font-size:13px;display:inline-flex}.course-tab em[data-v-5c6c60fc]{color:var(--text-muted);font-size:11.5px;font-style:normal}.course-tab.on[data-v-5c6c60fc]{background:var(--bg-panel);color:var(--text-primary);font-weight:600;box-shadow:0 1px 2px #1c191214}.course-tab.on em[data-v-5c6c60fc]{color:var(--text-secondary)}.roster-wrap[data-v-5c6c60fc]{border:1px solid var(--border);background:var(--bg-panel);border-radius:12px;overflow:hidden}.roster-wrap table[data-v-5c6c60fc]{border-collapse:collapse;width:100%;font-size:13px}.roster-wrap th[data-v-5c6c60fc]{text-align:left;color:var(--text-muted);background:var(--bg-subtle);border-bottom:1px solid var(--border);padding:10px 14px;font-size:12px;font-weight:500}.roster-wrap td[data-v-5c6c60fc]{border-bottom:1px solid var(--border);color:var(--text-primary);padding:11px 14px}.roster-wrap tr:last-child td[data-v-5c6c60fc]{border-bottom:0}.mono[data-v-5c6c60fc]{font-variant-numeric:tabular-nums;color:var(--text-secondary)}.embed[data-v-5c6c60fc]{padding:4px 0 20px}.page-head.is-module[data-v-5c6c60fc]{display:block}.back[data-v-5c6c60fc]{border:1px solid var(--border-strong);background:var(--bg-panel);height:32px;color:var(--text-secondary);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:4px;margin-bottom:12px;padding:0 13px 0 9px;font-size:13px;transition:border-color .15s,color .15s,transform .12s;display:inline-flex}.back svg[data-v-5c6c60fc]{width:16px;height:16px}.back[data-v-5c6c60fc]:hover{border-color:var(--text-primary);color:var(--text-primary)}.back[data-v-5c6c60fc]:active{transform:translateY(1px)scale(.98)}.back[data-v-5c6c60fc]:focus-visible{box-shadow:var(--focus-ring);outline:none}.module-grid[data-v-5c6c60fc]{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px;display:grid}.module-card[data-v-5c6c60fc]{border:1px solid var(--border);background:var(--bg-panel);text-align:left;cursor:pointer;border-radius:14px;align-items:center;gap:12px;padding:16px;transition:transform .14s,box-shadow .14s,border-color .14s;display:flex;position:relative}.module-card[data-v-5c6c60fc]:hover{border-color:var(--border-strong);transform:translateY(-1px);box-shadow:0 10px 24px -18px #1c191299}.module-icon[data-v-5c6c60fc]{background:var(--bg-subtle);width:40px;height:40px;color:var(--text-primary);border-radius:11px;flex:none;place-items:center;display:grid}.module-icon[data-v-5c6c60fc] svg{width:18px;height:18px}.module-text[data-v-5c6c60fc]{gap:3px;min-width:0;display:grid}.module-text strong[data-v-5c6c60fc]{color:var(--text-primary);font-size:14.5px;font-weight:600}.module-text small[data-v-5c6c60fc]{color:var(--text-muted);font-size:12.5px}.module-badge[data-v-5c6c60fc]{background:var(--color-danger);color:#fff;text-align:center;border-radius:999px;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-style:normal;line-height:18px;position:absolute;top:12px;right:12px}.tabs[data-v-5c6c60fc]{background:var(--bg-subtle);border-radius:10px;gap:4px;padding:3px;display:flex}.tab[data-v-5c6c60fc]{height:32px;color:var(--text-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:6px;padding:0 14px;font-size:13px;display:inline-flex}.tab.on[data-v-5c6c60fc]{background:var(--bg-panel);color:var(--text-primary);box-shadow:0 1px 2px #0000000f}.tab em[data-v-5c6c60fc]{color:#fff;background:#c0554c;border-radius:999px;padding:1px 5px;font-size:10px;font-style:normal}.layout[data-v-5c6c60fc]{grid-template-columns:280px 1fr;align-items:start;gap:16px;display:grid}.courses[data-v-5c6c60fc]{flex-direction:column;gap:8px;display:flex}.course-card[data-v-5c6c60fc]{text-align:left;border:1px solid var(--border);background:var(--bg-panel);cursor:pointer;font:inherit;border-radius:12px;flex-direction:column;gap:4px;padding:12px 14px;display:flex}.course-card.on[data-v-5c6c60fc]{border-color:var(--text-primary);background:var(--bg-subtle)}.cname[data-v-5c6c60fc]{color:var(--text-primary);font-size:14px;font-weight:600}.cmeta[data-v-5c6c60fc]{color:var(--text-muted);font-size:11.5px}.detail[data-v-5c6c60fc]{background:var(--bg-panel);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:16px;min-height:320px;padding:18px;display:flex}.detail-head[data-v-5c6c60fc]{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.detail-head h2[data-v-5c6c60fc]{color:var(--text-primary);margin:0;font-size:16px}.block-title[data-v-5c6c60fc]{color:var(--text-secondary);margin:0 0 8px;font-size:12.5px;font-weight:600}.today-session[data-v-5c6c60fc]{border:1px solid var(--text-primary);background:var(--bg-subtle);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.s-main[data-v-5c6c60fc]{flex-direction:column;gap:3px;display:flex}.s-time[data-v-5c6c60fc]{color:var(--text-primary);font-variant-numeric:tabular-nums;font-size:14px}.s-sub[data-v-5c6c60fc]{color:var(--text-muted);font-size:11.5px}.s-right[data-v-5c6c60fc]{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.code-badge[data-v-5c6c60fc]{letter-spacing:2px;background:var(--text-primary);color:var(--bg-panel);border-radius:7px;padding:3px 9px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:15px}.session-list[data-v-5c6c60fc]{flex-direction:column;gap:4px;max-height:220px;display:flex;overflow-y:auto}.session-row[data-v-5c6c60fc]{cursor:pointer;font:inherit;text-align:left;color:var(--text-secondary);background:0 0;border:0;border-radius:8px;grid-template-columns:52px 52px 1fr 74px 60px 96px;align-items:center;gap:8px;padding:7px 8px;display:grid}.session-row[data-v-5c6c60fc]:hover,.session-row.on[data-v-5c6c60fc]{background:var(--bg-subtle)}.s-date[data-v-5c6c60fc],.s-time[data-v-5c6c60fc],.s-seq[data-v-5c6c60fc]{font-variant-numeric:tabular-nums;font-size:12.5px}.attendance[data-v-5c6c60fc]{border-top:1px solid var(--border);padding-top:14px}.att-head .muted[data-v-5c6c60fc]{margin-left:8px;font-weight:400}.att-list[data-v-5c6c60fc]{flex-direction:column;gap:2px;max-height:260px;display:flex;overflow-y:auto}.att-row[data-v-5c6c60fc]{border-radius:8px;grid-template-columns:26px 1fr 90px 66px auto;align-items:center;gap:8px;padding:5px 4px;font-size:12.5px;display:grid}.att-row[data-v-5c6c60fc]:hover{background:var(--bg-subtle)}.att-name[data-v-5c6c60fc]{color:var(--text-primary)}.att-no[data-v-5c6c60fc]{color:var(--text-muted);font-variant-numeric:tabular-nums}.att-actions[data-v-5c6c60fc]{justify-content:flex-end;gap:4px;display:flex}.row-actions[data-v-5c6c60fc]{justify-content:flex-end;display:flex}.mini[data-v-5c6c60fc]{border:1px solid var(--border);background:var(--bg-panel);color:var(--text-muted);font:inherit;cursor:pointer;border-radius:6px;padding:2px 7px;font-size:11px}.mini[data-v-5c6c60fc]:hover{border-color:var(--text-primary);color:var(--text-primary)}.leave-panel[data-v-5c6c60fc]{flex-direction:column;gap:10px;display:flex}.leave-card[data-v-5c6c60fc]{background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:6px;padding:14px 16px;display:flex}.leave-head[data-v-5c6c60fc]{justify-content:space-between;align-items:center;gap:12px;display:flex}.who[data-v-5c6c60fc]{color:var(--text-primary);align-items:center;gap:10px;font-size:14px;display:flex}.who .muted[data-v-5c6c60fc]{font-size:11.5px;display:block}.leave-meta[data-v-5c6c60fc]{color:var(--text-secondary);margin:0;font-size:12.5px}.leave-reason[data-v-5c6c60fc]{color:var(--text-primary);margin:0;font-size:13px;line-height:1.6}.leave-actions[data-v-5c6c60fc]{gap:8px;margin-top:4px;display:flex}.chip[data-v-5c6c60fc]{background:var(--bg-subtle);color:var(--text-muted);white-space:nowrap;border-radius:999px;padding:3px 9px;font-size:11.5px}.chip.sm[data-v-5c6c60fc]{padding:2px 7px;font-size:11px}.chip.ok[data-v-5c6c60fc]{color:#3f7d5c;background:#3f7d5c1f}.chip.warn[data-v-5c6c60fc]{color:#a5813a;background:#a5813a24}.chip.err[data-v-5c6c60fc]{color:#c0554c;background:#c0554c1f}.chip.leave[data-v-5c6c60fc]{color:#a5813a;background:#a5813a24}.chip.open[data-v-5c6c60fc],.chip.muted[data-v-5c6c60fc]{background:var(--bg-subtle);color:var(--text-muted)}.link[data-v-5c6c60fc]{color:var(--text-secondary);font:inherit;cursor:pointer;background:0 0;border:0;font-size:12px;text-decoration:underline}.muted[data-v-5c6c60fc]{color:var(--text-muted);font-size:12.5px}.courses-head[data-v-5c6c60fc]{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.courses-head .block-title[data-v-5c6c60fc]{color:var(--text-muted);margin:0;font-size:13px}.mask[data-v-5c6c60fc]{z-index:80;background:var(--mask-bg);place-items:center;padding:20px;display:grid;position:fixed;inset:0}.dialog[data-v-5c6c60fc]{background:var(--bg-panel);width:min(460px,94vw);max-height:86vh;box-shadow:var(--shadow-lg);border-radius:18px;padding:22px 24px 18px;overflow-y:auto}.dialog h3[data-v-5c6c60fc]{color:var(--text-primary);margin:0;font-size:16px}.dialog-sub[data-v-5c6c60fc]{color:var(--text-muted);margin:6px 0 16px;font-size:12.5px}.field[data-v-5c6c60fc]{gap:6px;margin-bottom:14px;display:grid}.field>span[data-v-5c6c60fc]{color:var(--text-secondary);font-size:12.5px}.field-row[data-v-5c6c60fc]{gap:12px;display:flex}.field.grow[data-v-5c6c60fc]{flex:1;min-width:0}.input[data-v-5c6c60fc]{box-sizing:border-box;border:1px solid var(--border);background:var(--bg-input);width:100%;height:34px;color:var(--text-primary);font:inherit;border-radius:9px;padding:0 10px;font-size:13px}.input[data-v-5c6c60fc]:focus{border-color:var(--text-primary);box-shadow:var(--focus-ring);outline:none}select.input[data-v-5c6c60fc]{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--text-muted) 50%), linear-gradient(135deg, var(--text-muted) 50%, transparent 50%);background-position:calc(100% - 16px) 14px,calc(100% - 11px) 14px;background-repeat:no-repeat;background-size:5px 5px,5px 5px}.dialog-ops[data-v-5c6c60fc]{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.toast[data-v-5c6c60fc]{background:var(--text-primary);color:var(--bg-panel);z-index:80;border-radius:999px;padding:10px 18px;font-size:13px;position:fixed;bottom:28px;left:50%;transform:translate(-50%)}.toast.err[data-v-5c6c60fc]{color:#fff;background:#c0554c}.toast-enter-active[data-v-5c6c60fc],.toast-leave-active[data-v-5c6c60fc]{transition:opacity .2s,transform .2s}.toast-enter-from[data-v-5c6c60fc],.toast-leave-to[data-v-5c6c60fc]{opacity:0;transform:translate(-50%,8px)}@media (width<=980px){.layout[data-v-5c6c60fc]{grid-template-columns:1fr}}
