.brand-logo[data-v-c59d4247]{width:100%;height:auto;display:block}.side[data-v-49254ce1]{color:#e5edf9;background:linear-gradient(#143260 0%,#0c254c 26%,#081e47 62%,#143264 88%,#214075 100%);flex-direction:column;flex:none;width:205px;height:100%;display:flex;position:relative;overflow:hidden}.logo[data-v-49254ce1]{color:#fff;flex:none;justify-content:center;align-items:center;padding:18px 14px 16px;display:flex}.logo[data-v-49254ce1] .brand-logo{width:177px;height:auto}.nav[data-v-49254ce1]{scrollbar-width:none;flex-direction:column;flex:1;gap:2.3px;min-height:0;padding:2px 8px 8px 12px;display:flex;overflow-y:auto}.item[data-v-49254ce1]{white-space:nowrap;border-radius:8px;flex:none;align-items:center;gap:13px;height:43px;padding:0 16px;font-size:13.5px;transition:background .15s;display:flex}.item[data-v-49254ce1]:hover{background:#ffffff12}.item.active[data-v-49254ce1]{color:#fff;background:linear-gradient(90deg,#005cfe,#0b74fd);font-weight:600;box-shadow:0 4px 14px #005cfe61}.item.small[data-v-49254ce1]{color:#c9d6ea;height:37px;font-size:13px}.item.small.active[data-v-49254ce1]{color:#fff}.dot[data-v-49254ce1]{background:#ff4450;border-radius:50%;width:8px;height:8px;margin-left:auto}.nav-badge[data-v-49254ce1]{color:#fff;text-align:center;background:#ff4450;border-radius:9px;min-width:18px;margin-left:auto;padding:0 6px;font-size:11px;font-style:normal;line-height:18px}.divider[data-v-49254ce1]{background:#fff3;flex:none;height:1px;margin:12px 12px 10px}.slogan[data-v-49254ce1]{z-index:1;text-align:center;letter-spacing:3px;color:#dfe9f8;flex:none;padding:8px 0 116px;font-family:STKaiti,KaiTi,楷体,serif;font-size:16px;line-height:1.75;position:relative}.skyline[data-v-49254ce1]{pointer-events:none;width:100%;position:absolute;bottom:0;left:0;-webkit-mask-image:linear-gradient(#0000,#000 45%);mask-image:linear-gradient(#0000,#000 45%)}@media (height<=800px){.slogan[data-v-49254ce1],.skyline[data-v-49254ce1]{display:none}}.top[data-v-f10ebc43]{z-index:20;flex:none;align-items:center;gap:18px;height:80px;padding:0 24px 0 25px;display:flex;position:relative}.brand[data-v-f10ebc43]{flex:none;width:382px;margin-right:0}.brand h1[data-v-f10ebc43]{color:var(--ink);letter-spacing:.3px;white-space:nowrap;font-size:22px;font-weight:700;line-height:1.25}.brand p[data-v-f10ebc43]{color:var(--muted);white-space:nowrap;margin-top:3px;font-size:12.5px}.pop-anchor[data-v-f10ebc43]{position:relative}.school[data-v-f10ebc43]{flex:0 255px;min-width:190px}.school-btn[data-v-f10ebc43]{border:1px solid var(--line-strong);background:#ffffffb3;border-radius:10px;align-items:center;gap:10px;width:100%;height:44px;padding:0 14px 0 10px;display:flex}.school-ic[data-v-f10ebc43]{width:28px;height:28px;color:var(--primary);background:#dfeaff;border-radius:6px;place-items:center;display:grid}.school-name[data-v-f10ebc43]{text-align:left;white-space:nowrap;text-overflow:ellipsis;flex:1;font-weight:500;overflow:hidden}.search[data-v-f10ebc43]{flex:460px;min-width:220px;max-width:460px}.search-box[data-v-f10ebc43]{border:1px solid var(--line-strong);height:44px;color:var(--text);background:#ffffffb3;border-radius:10px;align-items:center;gap:10px;padding:0 12px;display:flex}.search-box input[data-v-f10ebc43]{background:0 0;border:0;outline:0;flex:1;min-width:0}.search-box input[data-v-f10ebc43]::placeholder{color:var(--faint)}kbd[data-v-f10ebc43]{background:var(--gray-soft);color:var(--muted);border-radius:6px;flex:none;padding:3px 8px;font:11px/1.4 inherit}.spacer[data-v-f10ebc43]{flex:1}.bell[data-v-f10ebc43]{width:36px;height:36px;color:var(--ink);place-items:center;display:grid;position:relative}.badge[data-v-f10ebc43]{background:var(--red);color:#fff;text-align:center;border-radius:10px;min-width:22px;padding:0 5px;font-size:11px;line-height:17px;position:absolute;top:-3px;left:18px}.sep[data-v-f10ebc43]{background:var(--line-strong);width:1px;height:28px}.user[data-v-f10ebc43]{text-align:left;align-items:center;gap:12px;display:flex}.user img[data-v-f10ebc43]{object-fit:cover;border-radius:50%;width:47px;height:47px}.initial[data-v-f10ebc43]{color:#fff;border-radius:50%;place-items:center;width:47px;height:47px;font-size:19px;font-weight:600;display:grid}.initial.vice_principal[data-v-f10ebc43]{background:linear-gradient(145deg,#5b8cff,#2f5fdb)}.initial.office[data-v-f10ebc43]{background:linear-gradient(145deg,#ae9aff,#7a55ea)}.initial.director[data-v-f10ebc43]{background:linear-gradient(145deg,#4ba4ff,#0a6cf0)}.initial.teacher[data-v-f10ebc43]{background:linear-gradient(145deg,#45dfa4,#0ca86a)}.initial.logistics[data-v-f10ebc43]{background:linear-gradient(145deg,#ffbd63,#f6841f)}.pop-divider[data-v-f10ebc43]{background:var(--line);height:1px;margin:4px 10px}.role-row[data-v-f10ebc43]{justify-content:space-between}.role-name small[data-v-f10ebc43]{margin-left:8px}.user-text[data-v-f10ebc43]{flex-direction:column;gap:2px;display:flex}.user-text b[data-v-f10ebc43]{color:var(--ink);white-space:nowrap;font-size:14px}.user-text small[data-v-f10ebc43]{color:var(--muted);font-size:12px}.pop[data-v-f10ebc43]{min-width:260px;box-shadow:var(--shadow-pop);background:#fff;border-radius:10px;padding:8px;position:absolute;top:calc(100% + 8px);left:0}.pop.wide[data-v-f10ebc43]{width:100%;min-width:380px}.pop.right[data-v-f10ebc43]{left:auto;right:0}.pop-row[data-v-f10ebc43]{text-align:left;border-radius:6px;align-items:center;gap:8px;width:100%;padding:8px 10px;line-height:1.45;display:flex}button.pop-row[data-v-f10ebc43]:hover{background:var(--primary-soft)}.pop-row.active[data-v-f10ebc43]{color:var(--primary);font-weight:500}.pop-row.stack[data-v-f10ebc43]{flex-direction:column;align-items:flex-start;gap:2px}.pop-row small[data-v-f10ebc43]{color:var(--muted)}.pop-row em[data-v-f10ebc43]{background:var(--primary-soft);color:var(--primary);border-radius:4px;flex:none;padding:1px 6px;font-size:11px;font-style:normal}.pop-note[data-v-f10ebc43]{color:var(--muted);padding:8px 10px;font-size:12px;line-height:1.5}.pop-head[data-v-f10ebc43]{color:var(--ink);justify-content:space-between;padding:6px 10px 8px;display:flex}.link[data-v-f10ebc43]{color:var(--primary);font-size:12px}@media (width<=1480px){.brand[data-v-f10ebc43]{width:auto}.brand h1[data-v-f10ebc43]{font-size:19px}.brand p[data-v-f10ebc43]{display:none}}.site-footer[data-v-2f3f2e19]{text-align:center;color:#64748b;background:var(--bg);border-top:1px solid var(--line);flex-shrink:0;padding:8px 16px 10px;font-size:12px;line-height:1.4}.site-footer a[data-v-2f3f2e19]{color:#64748b;text-decoration:none}.site-footer a[data-v-2f3f2e19]:hover,.site-footer a[data-v-2f3f2e19]:focus-visible{color:#0284c7;text-decoration:underline}.shell[data-v-ea385a16]{background:var(--bg);min-width:1200px;height:100%;display:flex}.shell-right[data-v-ea385a16]{flex-direction:column;flex:1;min-width:0;display:flex}.shell-main[data-v-ea385a16]{scrollbar-gutter:stable;flex:1;min-height:0;overflow-y:auto}.toast[data-v-ea385a16]{z-index:100;color:#fff;box-shadow:var(--shadow-pop);background:#10264f;border-radius:8px;padding:10px 18px;position:fixed;top:24px;left:50%;transform:translate(-50%)}.toast-enter-active[data-v-ea385a16],.toast-leave-active[data-v-ea385a16]{transition:opacity .2s,transform .2s}.toast-enter-from[data-v-ea385a16],.toast-leave-to[data-v-ea385a16]{opacity:0;transform:translate(-50%,-8px)}.force-update[data-v-ea385a16]{z-index:400;background:#081228b8;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.force-update-card[data-v-ea385a16]{width:min(520px,100%);box-shadow:var(--shadow-pop);background:#fff;border-radius:16px;padding:28px 24px}.force-update-card h2[data-v-ea385a16]{color:var(--ink);margin-bottom:10px}.force-update-card p[data-v-ea385a16]{color:var(--muted);margin-bottom:10px;line-height:1.6}.force-update-card .btn-row[data-v-ea385a16]{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}:root{--bg:#eff7fe;--card:#fff;--ink:#0b2559;--text:#22304d;--muted:#76839b;--faint:#a2adc0;--line:#e9eff7;--line-strong:#d9e3f0;--primary:#0a6cff;--primary-deep:#005cfe;--primary-soft:#e6f0ff;--red:#ef2f3c;--red-soft:#ffe3e5;--orange:#f47a1f;--orange-soft:#ffead5;--green:#0fa968;--green-soft:#d8f5e7;--purple:#7b4ae2;--purple-soft:#ece6fd;--cyan:#12b5d8;--gray-soft:#eef2f7;--radius:12px;--shadow:0 2px 14px #2456a00f;--shadow-pop:0 10px 34px #14346e2e;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:PingFang SC,Microsoft YaHei UI,Microsoft YaHei,Noto Sans SC,system-ui,sans-serif;font-size:13px}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}h1,h2,h3,h4,p{margin:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0;padding:0}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#cfdbea;border-radius:8px}.page{flex-direction:column;gap:12px;padding:0 8px 20px 19px;display:flex}.page-head{justify-content:space-between;align-items:center;gap:16px;padding:4px 0;display:flex}.page-head h2{color:var(--ink);font-size:20px;font-weight:700}.page-head p{color:var(--muted);margin-top:3px}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow)}.split{grid-template-columns:minmax(0,1fr) 410px;align-items:start;gap:12px;display:grid}.detail{flex-direction:column;gap:14px;padding:16px;display:flex;position:sticky;top:0}.detail h3{color:var(--ink);font-size:15px;font-weight:700;line-height:1.45}.section-title{color:var(--ink);margin-bottom:8px;font-size:13px;font-weight:700}.kv{grid-template-columns:72px minmax(0,1fr);gap:7px 10px;display:grid}.kv dt{color:var(--muted)}.kv dd{margin:0}.toolbar{justify-content:space-between;align-items:center;gap:12px;padding:12px 14px 10px;display:flex}.notice-bar{border-radius:8px;align-items:flex-start;gap:8px;padding:9px 12px;font-size:12px;line-height:1.55;display:flex}.notice-bar.warn{background:var(--red-soft);color:#b4202b}.notice-bar.info{background:var(--primary-soft);color:#1d4f9e}.notice-bar svg{flex:none;margin-top:1px}.empty{text-align:center;color:var(--faint);padding:26px 12px}.demo-note{color:var(--faint);text-align:center;padding-top:2px;font-size:12px}.btn{white-space:nowrap;border-radius:6px;justify-content:center;align-items:center;gap:5px;height:32px;padding:0 14px;font-size:13px;font-weight:500;transition:filter .15s,background .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{color:#fff;background:linear-gradient(#1176ff,#0060f0)}.btn-primary:not(:disabled):hover{filter:brightness(1.08)}.btn-outline{color:var(--primary);background:#fff;border:1px solid #b9d4fb}.btn-outline:not(:disabled):hover{background:var(--primary-soft)}.btn-danger{color:var(--red);background:#fff;border:1px solid #f7b9bd}.btn-danger:not(:disabled):hover{background:var(--red-soft)}.btn-row{flex-wrap:wrap;gap:8px;display:flex}.link-more{color:var(--muted);align-items:center;gap:8px;font-size:12px;display:inline-flex}.link-more:hover{color:var(--primary)}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;width:100%}.table th{color:var(--muted);text-align:left;white-space:nowrap;background:#f6f9fd;padding:9px 12px;font-size:12px;font-weight:500}.table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:11px 12px}.table tbody tr{cursor:pointer}.table tbody tr:hover{background:#f7fafe}.table tbody tr.selected{background:#edf4ff}.table .num{text-align:right;font-variant-numeric:tabular-nums}.cell-main{color:var(--ink);font-weight:500}.cell-sub{color:var(--muted);margin-top:3px;font-size:12px}.field{flex-direction:column;gap:5px;display:flex}.field>span{color:var(--muted);font-size:12px}.input{border:1px solid var(--line-strong);background:#fff;border-radius:6px;width:100%;height:34px;padding:0 10px}textarea.input{resize:vertical;height:auto;min-height:92px;padding:8px 10px;line-height:1.6}.input:focus{border-color:var(--primary);outline:0;box-shadow:0 0 0 3px #0a6cff1f}.form-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.form-grid .wide{grid-column:1/-1}.check{cursor:pointer;align-items:center;gap:6px;display:inline-flex}.check input{width:15px;height:15px;accent-color:var(--primary);margin:0}.bar{background:#e8eef6;border-radius:6px;height:6px;overflow:hidden}.bar>i{background:linear-gradient(90deg,#0a6cff,#12b5d8);border-radius:6px;height:100%;display:block}.bar.danger>i{background:var(--red)}.log{flex-direction:column;gap:9px;margin:0;padding:0;list-style:none;display:flex}.log li{padding-left:14px;font-size:12px;line-height:1.5;position:relative}.log li:before{content:"";background:var(--primary);border-radius:50%;width:6px;height:6px;position:absolute;top:6px;left:1px}.log time{color:var(--faint);margin-left:6px}
