.breadcrumb[data-v-0e7269c0]{padding:8px 24px;font-size:12px;color:var(--t3);display:flex;align-items:center;gap:6px;flex-wrap:wrap}.sep[data-v-0e7269c0]{color:var(--t3)}.link[data-v-0e7269c0]{color:var(--t3);text-decoration:none;transition:color .15s}.link[data-v-0e7269c0]:hover{color:var(--blue)}.cur[data-v-0e7269c0]{color:var(--t1);font-weight:500}.npg[data-v-150dd230]{position:relative}.nsub[data-v-150dd230]{position:absolute;top:100%;left:0;z-index:150;min-width:120px;padding:4px 0;background:var(--glS);border:1px solid var(--bd);border-radius:var(--rs);box-shadow:var(--shm);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px)}.ns-item[data-v-150dd230]{display:flex;align-items:center;gap:6px;padding:7px 14px;font-size:12px;color:var(--t2);cursor:pointer;white-space:nowrap;transition:all .12s}.nsub2[data-v-150dd230]{margin-left:8px;padding-left:6px;border-left:1px solid var(--bd)}.nsub2 .ns-item[data-v-150dd230]{font-size:11px;padding-top:5px;padding-bottom:5px;color:var(--t3)}.nav-due[data-v-150dd230]{display:inline-block;min-width:16px;height:16px;margin-left:6px;padding:0 4px;border-radius:999px;background:var(--amber, #d97706);color:#fff;font-size:10px;font-weight:600;line-height:16px;text-align:center;vertical-align:1px}.nsub2 .ns-item[data-v-150dd230]:hover{color:var(--t1)}.ns-item[data-v-150dd230]:hover{background:var(--glH);color:var(--t1)}.ns-item.ac[data-v-150dd230]{color:var(--blue);font-weight:600;background:#0a84ff14}.mobile-more-menu[data-v-150dd230]{position:fixed;bottom:0;left:0;right:0;background:var(--glS);border-radius:16px 16px 0 0;padding:20px;padding-bottom:calc(20px + env(safe-area-inset-bottom));box-shadow:0 -8px 30px #0000004d;z-index:200;animation:slideUp-150dd230 .3s ease}.mobile-more-header[data-v-150dd230]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.mobile-more-grid[data-v-150dd230]{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.mobile-more-item[data-v-150dd230]{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;border-radius:12px;font-size:11px;color:var(--t2);cursor:pointer;transition:all .15s}.mobile-more-item.ac[data-v-150dd230]{color:var(--blue);background:#0a84ff14}.mobile-more-item[data-v-150dd230]:active{background:var(--glH)}.mobile-sub-item[data-v-150dd230]{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;font-size:13px;color:var(--t1);cursor:pointer;border-radius:10px;transition:all .15s}.mobile-sub-item[data-v-150dd230]:hover{background:var(--glH)}.mobile-sub-item[data-v-150dd230]:active{background:#0a84ff14}@keyframes slideUp-150dd230{0%{transform:translateY(100%)}to{transform:translateY(0)}}.ftr[data-v-150dd230]{text-align:center;padding:12px 16px;font-size:12px;color:var(--t3);background:#00000006;border-top:1px solid var(--bd);margin-top:auto}.ftr a[data-v-150dd230]{color:#007aff;text-decoration:none;transition:color .12s}.ftr a[data-v-150dd230]:hover{color:#0056c7}.ftr a[data-v-150dd230]:hover{color:var(--t1)}.ftr-sep[data-v-150dd230]{margin:0 8px;opacity:.4}@media(max-width:768px){.ftr[data-v-150dd230]{padding:5px 8px;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ftr-sep[data-v-150dd230]{margin:0 4px}.ftr .ftr-ver[data-v-150dd230]{display:none}}.trial-chip[data-v-150dd230]{margin-right:10px;padding:3px 10px;border-radius:999px;font-size:12px;line-height:18px;white-space:nowrap;cursor:pointer;color:var(--t2);background:color-mix(in srgb,var(--blue) 12%,transparent);border:1px solid color-mix(in srgb,var(--blue) 30%,transparent)}.trial-chip[data-v-150dd230]:hover{color:var(--t1)}@media(max-width:768px){.hr-campus[data-v-150dd230],.hr-user[data-v-150dd230]{display:none!important}.trial-chip[data-v-150dd230]{margin-right:6px}}.trial-chip.is-soon[data-v-150dd230]{color:var(--orange, #f59e0b);background:color-mix(in srgb,var(--orange, #f59e0b) 12%,transparent);border-color:color-mix(in srgb,var(--orange, #f59e0b) 35%,transparent)}.trial-chip.is-over[data-v-150dd230]{color:var(--red, #e5484d);background:color-mix(in srgb,var(--red, #e5484d) 12%,transparent);border-color:color-mix(in srgb,var(--red, #e5484d) 35%,transparent)}.trial-bar[data-v-150dd230]{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:0 0 16px;padding:12px 16px;border-radius:12px;font-size:13px;line-height:1.6;color:var(--t2);background:color-mix(in srgb,var(--red, #e5484d) 9%,transparent);border:1px solid color-mix(in srgb,var(--red, #e5484d) 30%,transparent)}.trial-bar b[data-v-150dd230]{color:var(--t1);font-weight:600}.trial-bar>span[data-v-150dd230]{flex:1;min-width:240px}.survey-overlay[data-v-150dd230]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:9999;display:flex;align-items:center;justify-content:center;animation:fadeIn-150dd230 .2s}.survey-box[data-v-150dd230]{position:relative;background:#fff;border-radius:16px;padding:28px;max-width:480px;width:90%;max-height:85vh;overflow-y:auto;box-shadow:0 20px 60px #0003;animation:slideUp-150dd230 .25s}.survey-close[data-v-150dd230]{position:absolute;top:14px;right:14px;background:none;border:none;cursor:pointer;color:var(--t3);padding:4px;border-radius:6px}.survey-box h3[data-v-150dd230]{font-size:18px;font-weight:700;color:#111;margin:0 0 4px}.survey-q[data-v-150dd230]{margin-bottom:16px}.survey-q-label[data-v-150dd230]{font-size:13px;font-weight:600;color:#000000b3;margin-bottom:6px}.survey-q select[data-v-150dd230],.survey-q input[data-v-150dd230]{width:100%;padding:10px 12px;border:1px solid var(--bd);border-radius:8px;font-size:13px;background:#fafafa;font-family:inherit;outline:none}.survey-q select[data-v-150dd230]:focus,.survey-q input[data-v-150dd230]:focus{border-color:var(--gold)}.survey-cbs[data-v-150dd230]{display:flex;flex-direction:column;gap:4px}.survey-cb[data-v-150dd230]{font-weight:400;font-size:13px;display:flex;align-items:center;gap:4px;cursor:pointer;padding:6px 12px;border:1px solid var(--bd);border-radius:8px;background:#fafafa;transition:all .15s}.survey-cb[data-v-150dd230]:hover{border-color:var(--gold);background:#d4a83a0a}.survey-cb input[data-v-150dd230]{width:16px;height:16px;margin:0}.survey-submit[data-v-150dd230]{width:100%;padding:13px;background:var(--gold);color:#000;font-weight:700;font-size:14px;border:none;border-radius:10px;cursor:pointer;margin-top:16px;transition:opacity .2s}.survey-submit[data-v-150dd230]:active{opacity:.8}@keyframes fadeIn-150dd230{0%{opacity:0}to{opacity:1}}@keyframes slideUp-150dd230{0%{transform:translateY(40px);opacity:0}to{transform:translateY(0);opacity:1}}.logo[data-v-150dd230],.lo[data-v-150dd230]{flex-shrink:0}.logo h1[data-v-150dd230]{white-space:nowrap}.hr-user[data-v-150dd230]{max-width:clamp(90px,10vw,160px);overflow:hidden;text-overflow:ellipsis}@media(min-width:769px)and (max-width:1100px){.hdr[data-v-150dd230]{display:grid;grid-template-columns:1fr auto;grid-template-rows:48px 40px;height:96px;align-content:start}.hl[data-v-150dd230]{display:contents}.logo[data-v-150dd230]{grid-column:1;grid-row:1}.hr[data-v-150dd230]{grid-column:2;grid-row:1}.nps[data-v-150dd230]{grid-column:1 / -1;grid-row:2;justify-content:center}.hr-user[data-v-150dd230]{max-width:180px;overflow:hidden;text-overflow:ellipsis}.hr-campus[data-v-150dd230]{display:none}}:root{--blue:#0a84ff;--green:#30d158;--orange:#ff9f0a;--red:#ff453a;--purple:#bf5af2;--teal:#64d2ff;--yellow:#ffd60a;--pink:#ff375f;--rs:10px;--rm:16px;--rl:24px;--rp:999px;--ease:cubic-bezier(.32,.72,0,1);--spring:cubic-bezier(.175,.885,.32,1.275);--font:-apple-system,BlinkMacSystemFont,"SF Pro Display","PingFang SC","Helvetica Neue",sans-serif;--mono:"SF Mono",ui-monospace,monospace}:root{--bg:#f2f2f7;--bg2:#e5e5ea;--gl:rgba(255,255,255,.7);--glH:rgba(255,255,255,.86);--glS:rgba(255,255,255,.92);--bd:rgba(0,0,0,.06);--bdS:rgba(0,0,0,.12);--t1:#000;--t2:rgba(60,60,67,.6);--t3:rgba(60,60,67,.3);--sh:0 1px 2px rgba(0,0,0,.04);--shm:0 4px 12px rgba(0,0,0,.08);--glB:0 0 20px rgba(10,132,255,.25)}.dark{--bg:#0B0F1A;--bg2:#151B2B;--gl:rgba(21,27,43,.6);--glH:rgba(21,27,43,.76);--glS:rgba(21,27,43,.86);--bd:rgba(255,255,255,.18);--bdS:rgba(255,255,255,.14);--t1:#fff;--t2:#B2BFD9;--t3:#94A3B8;--t4:#64748B;--sh:0 1px 3px rgba(0,0,0,.3);--shm:0 8px 24px rgba(0,0,0,.4);--glB:0 0 30px rgba(99,102,241,.35)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-font-smoothing:antialiased}html{font-size:16px}body{font-family:var(--font);background:var(--bg);color:var(--t1);line-height:1.47;min-height:100dvh;overflow:hidden;transition:background-color .3s,color .3s}::selection{background:var(--blue);color:#fff}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--t3);border-radius:var(--rp)}button,input,select,textarea{font-family:inherit;font-size:inherit;border:none;outline:none;color:inherit;background:none}button{cursor:pointer;transition:all .15s var(--ease)}button:active{transform:scale(.97)}button:disabled{opacity:.4;cursor:not-allowed;transform:none}a{color:inherit;text-decoration:none}input::placeholder,textarea::placeholder{color:var(--t3)}@keyframes br{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes fsi{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes springIn{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes slideDown{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}@keyframes goldBarSlideIn{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.bgm{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;overflow:hidden}.bgm:before{content:"";position:absolute;width:120%;height:120%;top:-10%;left:-10%;background:radial-gradient(ellipse at 20% 30%,rgba(10,132,255,.12) 0%,transparent 50%),radial-gradient(ellipse at 80% 70%,rgba(191,90,242,.08) 0%,transparent 50%);animation:br 8s ease-in-out infinite}.dark .bgm:before{background:radial-gradient(ellipse 60% 50% at 20% 0%,rgba(99,102,241,.2) 0%,transparent 100%),radial-gradient(ellipse 50% 35% at 80% 40%,rgba(34,211,238,.34) 0%,transparent 100%),radial-gradient(ellipse 55% 40% at 50% 100%,rgba(139,92,246,.25) 0%,transparent 100%)}.app{height:100vh;height:100dvh;display:flex;flex-direction:column}.hdr{height:48px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 14px;position:relative;z-index:100}.hdr-glass{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--gl);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--bd);z-index:-1}.hl,.hr{display:flex;align-items:center;gap:8px}.logo{display:flex;align-items:center;gap:7px}.lo{width:28px;height:28px;border-radius:var(--rm);background:#fff;display:flex;align-items:center;justify-content:center}.lo svg{width:13px;height:13px;color:#fff}.logo h1{font-size:13px;font-weight:600}.logo span{font-size:9px;color:var(--t3);display:block;margin-top:-1px}.nps{display:flex;gap:3px;background:var(--gl);padding:2px;border-radius:var(--rl);border:1px solid var(--bd);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);overflow:visible}.np{height:34px;padding:0 20px;border-radius:var(--rl);font-size:13px;font-weight:500;color:var(--t2);display:flex;align-items:center;gap:4px;white-space:nowrap;flex-shrink:0;transition:all .25s ease;position:relative;overflow:hidden}.np:hover{color:#fff;background:linear-gradient(135deg,#2563eb,#4f46e5);box-shadow:0 4px 16px #2563eb40;transform:translateY(-1px)}.np.ac{color:#fff;background:linear-gradient(135deg,#2563eb,#4f46e5);box-shadow:0 4px 16px #2563eb4d}.np svg{width:12px;height:12px}.hb{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--t2);background:var(--gl);border:1px solid var(--bd)}.hb:hover{background:var(--glH);color:var(--t1);transform:scale(1.05)}.hb svg{width:14px;height:14px}.hb.nf:after{content:"";position:absolute;top:6px;right:6px;width:6px;height:6px;border-radius:50%;background:var(--red);border:1.5px solid var(--glS)}.av{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#5856d6,#af52de);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:#fff;flex-shrink:0}.main{flex:1;min-height:0}.ct{height:100%;overflow-y:auto;padding:14px}@media(min-width:768px){.ct{padding:20px 24px}.hdr{padding:0 20px}}.cg{max-width:1400px;margin:0 auto}.pg{display:none}.pg.on{display:block;animation:fadeIn .25s var(--ease) both}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:var(--rs);font-weight:500;font-size:13px;white-space:nowrap;transition:all .2s var(--ease);cursor:pointer;line-height:1}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-pri{background:var(--blue);color:#fff;box-shadow:0 2px 8px #0a84ff4d;border:none}.btn-pri:hover:not(:disabled){opacity:.92;transform:translateY(-1px);box-shadow:0 4px 12px #0a84ff66}.btn-sec{background:var(--gl);color:var(--blue);border:1px solid var(--bd)}.btn-sec:hover:not(:disabled){background:#0a84ff0f;border-color:var(--blue);transform:translateY(-1px)}.btn-gh{background:transparent;color:var(--t2);border:1px solid transparent}.btn-gh:hover:not(:disabled){background:var(--glH);color:var(--t1)}.btn-dg{background:var(--red);color:#fff;box-shadow:0 2px 6px #ff453a4d}.btn-dg:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.btn-suc{background:var(--green);color:#fff;box-shadow:0 2px 6px #30d1584d}.btn-suc:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.btn-out{background:transparent;color:var(--blue);border:1px solid var(--blue)}.btn-out:hover:not(:disabled){background:#0a84ff14}.btn-xs{height:30px;padding:0 12px;font-size:12px;border-radius:6px}.btn-xs svg{width:12px;height:12px}.btn-sm{height:32px;padding:0 14px;font-size:13px;border-radius:7px}.btn-sm svg{width:13px;height:13px}.btn-md{height:36px;padding:0 18px;font-size:13px;border-radius:8px}.btn-md svg{width:14px;height:14px}.btn-lg{height:42px;padding:0 24px;font-size:14px;border-radius:var(--rm)}.btn-lg svg{width:16px;height:16px}.mf{display:flex;gap:10px;margin-top:16px;padding-top:16px;border-top:1px solid var(--bd)}.inp{height:36px;padding:0 12px;border-radius:var(--rs);background:var(--gl);border:1px solid var(--bd);font-size:12px;color:var(--t1);width:100%}.inp:focus{border-color:var(--blue);box-shadow:0 0 0 3px #0a84ff1f}.txt{resize:none;padding:10px 12px;border-radius:var(--rs);background:var(--gl);border:1px solid var(--bd);font-size:12px;color:var(--t1);width:100%;min-height:120px;line-height:1.6}.txt:focus{border-color:var(--blue);box-shadow:0 0 0 3px #0a84ff1f}.sel{height:34px;padding:0 28px 0 10px;border-radius:var(--rs);background:var(--gl);border:1px solid var(--bd);font-size:12px;color:var(--t1);cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%23888' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right 6px center;background-repeat:no-repeat;background-size:14px 14px}.sel-sm{height:30px;font-size:11px}.sch{height:36px;padding:0 12px 0 34px;border-radius:var(--rs);background:var(--gl);border:1px solid var(--bd);font-size:12px;color:var(--t1);width:100%;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23999' stroke-width='2'%3e%3ccircle cx='11' cy='11' r='8'/%3e%3cpath d='m21 21-4.3-4.3'/%3e%3c/svg%3e");background-position:10px center;background-repeat:no-repeat;background-size:16px 16px}.sch:focus{border-color:var(--blue);box-shadow:0 0 0 3px #0a84ff1f}.ff{display:flex;flex-direction:column;gap:4px}.il{font-size:13px;font-weight:600;color:var(--t2);text-transform:none;letter-spacing:.02em}.ie{font-size:10px;color:var(--red)}.sw{width:38px;height:22px;border-radius:11px;background:var(--bg2);position:relative;cursor:pointer;transition:all .2s;border:1px solid var(--bd);flex-shrink:0}.sw.on{background:var(--blue);border-color:var(--blue)}.sw:after{content:"";width:18px;height:18px;border-radius:50%;background:#fff;position:absolute;top:1px;left:1px;transition:all .2s;box-shadow:0 1px 3px #0003}.sw.on:after{left:17px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:200;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.modal-overlay.hidden{display:none}.modal-box{background:var(--glS);border-radius:var(--rl);border:1px solid var(--bdS);box-shadow:0 20px 60px #00000080;padding:22px;max-height:80vh;overflow-y:auto;animation:springIn .3s var(--spring) both}.modal-sm{width:380px}.modal-md{width:500px}.modal-lg{width:700px}@media(max-width:768px){.modal-box{width:calc(100vw - 32px)!important}}.modal-box h2{font-size:16px;font-weight:700;margin-bottom:16px}.toastr{position:fixed;top:16px;right:16px;z-index:300;max-width:340px;padding:12px 16px;border-radius:var(--rm);border:1px solid;font-size:12px;animation:slideDown .25s var(--ease) both;box-shadow:0 4px 16px #00000026}.toastr.success{background:#30d1581a;border-color:var(--green);color:var(--green)}.toastr.error{background:#ff453a1a;border-color:var(--red);color:var(--red)}.toastr.warning{background:#ff9f0a1a;border-color:var(--orange);color:var(--orange)}.toastr.info{background:#0a84ff1a;border-color:var(--blue);color:var(--blue)}.cd{text-align:center}.cd .cd-icon{width:48px;height:48px;border-radius:50%;background:#ff453a1f;display:flex;align-items:center;justify-content:center;margin:0 auto 16px}.cd-icon svg{width:24px;height:24px;color:var(--red)}.cd h3{font-size:16px;font-weight:700;margin-bottom:4px}.cd p{font-size:12px;color:var(--t2);margin-bottom:20px;line-height:1.5}.skel{background:linear-gradient(90deg,transparent 0%,var(--glH) 50%,transparent 100%);background-size:200% 100%;animation:shimmer 1.4s ease-in-out infinite;border-radius:var(--rs)}.skel-row{height:14px;width:100%}.skel-card{height:120px;border-radius:var(--rm)}.skel-chart{height:240px}.skel-wide{height:14px;width:70%}.emp{text-align:center;padding:40px 16px;color:var(--t3)}.emp svg{width:40px;height:40px;margin:0 auto 12px;opacity:.4}.emp .emp-title{font-size:13px;color:var(--t2);margin-bottom:4px}.emp .emp-sub{font-size:11px;margin-bottom:14px}.pager{display:flex;align-items:center;justify-content:center;gap:4px;margin-top:16px}.pager-btn{height:28px;width:28px;border-radius:var(--rs);display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--t2);transition:all .15s}.pager-btn:hover:not(.ac){background:var(--gl)}.pager-btn.ac{background:var(--blue);color:#fff}.pager-btn.pn{width:auto;padding:0 10px}.pager-info{font-size:10px;color:var(--t3);margin-left:8px}.upz{border:2px dashed var(--bd);border-radius:var(--rl);padding:36px 20px;text-align:center;cursor:pointer;background:var(--gl)}.upz:hover{border-color:var(--blue)}.upz svg{width:36px;height:36px;color:var(--t3);margin-bottom:8px}.upz h4{font-size:13px;font-weight:600}.upz p{font-size:11px;color:var(--t3)}.pbar{margin-top:10px}.pbar-track{height:5px;background:var(--bg2);border-radius:3px;overflow:hidden}.pbar-fill{height:100%;background:linear-gradient(90deg,var(--blue),var(--purple));border-radius:3px;transition:width .3s;width:0}.pbar-label{display:flex;justify-content:space-between;font-size:10px;color:var(--t2);margin-top:3px}.tag{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:var(--rp);font-size:10px;font-weight:500}.tag.badge{min-width:18px;height:18px;border-radius:9px;justify-content:center;padding:0 6px;font-weight:700}.tag.badge.red{background:#ff453a26;color:var(--red)}.tag.default{background:var(--bg2);color:var(--t2)}.tag.status-ok{background:#30d1581a;color:var(--green)}.tag.status-pd{background:#ff9f0a1a;color:var(--orange)}.tag.status-er{background:#ff453a1a;color:var(--red)}.steps{display:flex;align-items:center;gap:0;margin-bottom:20px;flex-wrap:wrap}.step{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--t3)}.step .sn{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0;background:var(--bg2);color:var(--t2)}.step.active .sn{background:var(--blue);color:#fff}.step.done .sn{background:var(--green);color:#fff}.step .sl{white-space:nowrap}.step-line{flex:0 0 28px;height:1px;background:var(--bd);margin:0 4px}.tabs{display:flex;gap:2px;margin-bottom:16px;overflow-x:auto}.tab{padding:7px 16px;border-radius:var(--rp);font-size:11px;font-weight:500;color:var(--t2);white-space:nowrap;flex-shrink:0;transition:all .15s;cursor:pointer}.tab:hover{color:var(--t1);background:var(--gl)}.tab.ac{background:var(--blue);color:#fff}.seg{display:flex;background:var(--bg2);border-radius:var(--rp);padding:3px;gap:0}.seg-btn{height:30px;padding:0 18px;border-radius:var(--rp);font-size:11px;font-weight:500;color:var(--t2);cursor:pointer;transition:all .15s}.seg-btn.ac{background:var(--glS);color:var(--t1);box-shadow:0 1px 3px #0000001a}.seg-btn:hover:not(.ac){color:var(--t1)}.mod{background:var(--gl);border-radius:var(--rm);border:1px solid var(--bd);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);transition:all .3s ease}.mod:hover{transform:translateY(-3px);box-shadow:0 8px 32px #8b5cf673,0 0 60px #8b5cf640,0 4px 12px #8b5cf626}.mh{padding:12px 14px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--bd)}.mt{font-size:11px;font-weight:600;color:var(--t2);text-transform:uppercase;letter-spacing:.03em}.mb{padding:12px 14px}.kc{background:var(--gl);border-radius:14px;border:1px solid var(--bd);padding:20px 18px;min-height:120px;transition:all .35s ease;position:relative;overflow:hidden;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center}.kc.hero-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;border-radius:14px 14px 0 0;background:linear-gradient(90deg,#93c5fd,#60a5fa,#3b82f6,#2563eb,#a78bfa,#7c3aed 80%,#4c1d95);opacity:1;transition:opacity .3s;z-index:2}.kc.g,.kc.a,.kc.b,.kc.r{border-color:#8b5cf659}.kc:hover{transform:translateY(-4px);box-shadow:0 8px 32px #6366f173,0 0 60px #8b5cf640,0 4px 12px #3b82f626;border-color:#818cf880}.kc:hover .kc-glow{opacity:0}.kc .kc-glow{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;pointer-events:none;z-index:1;transition:opacity .4s ease;background:transparent}.kc.g .kc-glow,.kc.a .kc-glow,.kc.b .kc-glow,.kc.r .kc-glow{background:transparent}.kc .kc-accent{position:absolute;bottom:0;left:12px;right:12px;height:3px;border-radius:0 0 14px 14px;background:linear-gradient(90deg,#8b5cf6,#a78bfa);transform-origin:left;pointer-events:none;z-index:2;transform:scaleX(0);transition:transform .45s cubic-bezier(.22,1,.36,1)}.kc:hover .kc-accent{transform:scaleX(1)}.kc.g .kc-accent,.kc.a .kc-accent,.kc.b .kc-accent,.kc.r .kc-accent{background:linear-gradient(90deg,#8b5cf6,#a78bfa)}.kv{font-size:32px;font-weight:700;letter-spacing:-.02em;margin-bottom:4px;color:var(--t1);transition:color .3s ease;position:relative;z-index:3;line-height:1.1}.kt{font-size:11px;color:var(--t3);font-weight:400;position:relative;z-index:3}.kl{font-size:13px;color:var(--t2);margin-bottom:0;font-weight:500;position:relative;z-index:3;transition:color .3s ease}.kc.g .kl,.kc.a .kl,.kc.b .kl,.kc.r .kl{color:var(--t2)}.ks{font-size:11px;color:var(--t3);display:flex;justify-content:space-between;font-weight:400}.kbar{height:3px;background:var(--bg2);border-radius:2px;margin-top:6px}.kbar-f{height:100%;border-radius:2px;transition:width .6s}.kbar-f.g{background:var(--green)}.kbar-f.a{background:var(--orange)}.kbar-f.b{background:var(--blue)}.chart-container{border-color:var(--bd)!important;border-radius:14px!important;transition:all .35s ease;position:relative;overflow:hidden;box-shadow:0 0 28px #f59e0b29,0 4px 18px #f59e0b1a!important}.chart-container:hover{transform:translateY(-3px);box-shadow:0 8px 32px #f59e0b59,0 0 60px #f59e0b33,0 4px 12px #f59e0b1f!important;border-color:var(--bd)!important}.chart-container:after{content:"";position:absolute;bottom:0;left:12px;right:12px;height:3px;border-radius:0 0 14px 14px;background:linear-gradient(90deg,#f59e0b,#ffc738);transform-origin:left;transform:scaleX(0);transition:transform .45s cubic-bezier(.22,1,.36,1),box-shadow .35s ease;pointer-events:none;z-index:2}.chart-container:hover:after{transform:scaleX(1);box-shadow:0 0 10px #f59e0b73}.tbl-wrap{overflow-x:auto}.tbl{width:100%;border-collapse:collapse;font-size:14px}.tbl th{text-align:left;padding:10px 12px;font-size:14px;font-weight:600;color:var(--t2);text-transform:uppercase;letter-spacing:.03em;border-bottom:2px solid var(--bd);white-space:nowrap;position:sticky;top:0;z-index:1;background:var(--glS)}.tbl td{padding:10px 12px;border-bottom:1px solid var(--bd);color:var(--t1);font-weight:400;font-size:14px;white-space:nowrap}.tbl td strong,.tbl td b{font-weight:400}.tbl .mono{font-family:var(--mono);font-size:11px}.ch-wrap{display:flex;flex-direction:column;height:calc(100dvh - 180px);max-height:calc(100dvh - 180px)}.ch-msgs{flex:1;overflow-y:auto;padding:0 0 12px;display:flex;flex-direction:column;gap:14px}.chmsg{display:flex;gap:8px;max-width:78%}.chmsg.user{flex-direction:row-reverse;margin-left:auto}.cha{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:11px;font-weight:700}.chmsg.ai .cha{background:#0a84ff1f;color:var(--blue)}.chmsg.user .cha{background:var(--blue);color:#fff}.chb{padding:10px 14px;border-radius:var(--rl);font-size:12px;line-height:1.6}.chmsg.ai .chb{background:var(--gl)}.chmsg.user .chb{background:var(--blue);color:#fff}.ch-toolbar{display:flex;align-items:center;gap:8px;padding-bottom:6px;border-bottom:1px solid var(--bd);margin-bottom:6px;flex-wrap:wrap}.ch-quicks{display:flex;flex-wrap:wrap;gap:8px 6px;margin-bottom:8px}.chqc{height:32px;padding:0 14px;border-radius:var(--rp);border:1px solid var(--bd);font-size:11px;color:var(--t2);cursor:pointer;transition:all .15s}.chqc:hover{border-color:var(--blue);color:var(--blue)}.ch-inp{display:flex;gap:6px;padding-top:10px;border-top:1px solid var(--bd)}.ch-inp textarea{flex:1;resize:none;padding:8px 12px;border-radius:var(--rs);background:var(--gl);border:1px solid var(--bd);font-size:11px;color:var(--t1);min-height:38px;max-height:80px;line-height:1.5;transition:all .15s}.ch-inp textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #0a84ff1f}.ch-sidebar{width:180px;flex-shrink:0;background:var(--gl);border-radius:var(--rm);border:1px solid var(--bd);padding:12px;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.ch-sidebar h4{font-size:10px;font-weight:700;color:var(--t3);text-transform:uppercase;margin-bottom:6px}.ch-hist-item{padding:7px 10px;border-radius:var(--rs);font-size:10px;color:var(--t2);cursor:pointer;transition:all .15s;line-height:1.4;position:relative}.ch-hist-item:hover{background:var(--glH)}.ch-hist-time{font-size:9px;color:var(--t3);display:block}.ch-hist-x{position:absolute;right:6px;top:50%;transform:translateY(-50%);opacity:0;color:var(--red);font-size:14px;transition:all .15s}.ch-hist-item:hover .ch-hist-x{opacity:1}@media(max-width:768px){.chmsg{max-width:90%!important}.chb{padding:14px 16px!important;line-height:1.7!important;font-size:13px!important}.ch-msgs{padding:0 4px!important}.ch-inp{padding:8px 4px!important}}.kn-layout{display:flex;gap:14px}@media(max-width:768px){.kn-layout{flex-direction:column}}.kn-sidebar{width:170px;flex-shrink:0;background:var(--gl);border-radius:var(--rm);border:1px solid var(--bd);padding:12px}.kn-sidebar h4{font-size:10px;font-weight:700;color:var(--t3);text-transform:uppercase;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center}.kn-item{padding:6px 10px;border-radius:var(--rs);font-size:11px;color:var(--t2);cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .15s}.kn-item:hover{background:var(--glH)}.kn-item.ac{background:var(--blue);color:#fff}.kn-cnt{font-size:9px;margin-left:auto;opacity:.6}.kn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;flex:1}.kn-card{background:var(--gl);border-radius:var(--rm);border:1px solid var(--bd);padding:14px 16px;transition:all .25s ease;cursor:pointer}.kn-card:hover{transform:translateY(-3px);box-shadow:0 8px 32px #6366f173,0 0 60px #8b5cf640,0 4px 12px #3b82f626;border-color:#818cf880}.kn-card h4{font-size:13px;font-weight:600;margin-bottom:6px}.kn-card p{font-size:11px;color:var(--t2);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.kn-tags{display:flex;gap:4px;margin-top:8px}.cf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.cf-card{background:var(--gl);border-radius:var(--rm);border:1px solid var(--bd);padding:14px 16px;transition:all .25s ease;cursor:pointer}.cf-card:hover{transform:translateY(-3px);box-shadow:0 8px 32px #0a84ff73,0 0 60px #2563eb40,0 4px 12px #0a84ff26;border-color:#0a84ff80}.cf-card.sel{border-color:var(--blue);box-shadow:0 0 0 2px #0a84ff26}.cf-card h4{font-size:13px;font-weight:600;margin-bottom:6px}.cf-card p{font-size:11px;color:var(--t2);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.ft{display:flex;gap:3px;flex-wrap:wrap}.ftab{padding:4px 10px;border-radius:var(--rp);font-size:10px;font-weight:500;color:var(--t2);cursor:pointer;transition:all .15s}.ftab:hover{background:var(--gl)}.ftab.ac{background:var(--glS);color:var(--t1)}.ftab.r{color:var(--red)}.ftab.o{color:var(--orange)}.ftab.y{color:var(--yellow)}.ag{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}.aga{text-align:center;cursor:pointer;padding:6px 10px;border-radius:var(--rm)}.aga:hover{background:var(--glH)}.agc{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 3px;font-size:15px;font-weight:700;font-family:var(--mono)}.agc.r{background:#ff453a1f;color:var(--red);box-shadow:0 0 10px #ff453a40}.agc.o{background:#ff9f0a1f;color:var(--orange);box-shadow:0 0 10px #ff9f0a40}.agc.y{background:#ffd60a1f;color:var(--yellow);box-shadow:0 0 10px #ffd60a40}.agc.b{background:#0a84ff1f;color:var(--blue)}.agl{font-size:8px;color:var(--t2);text-transform:uppercase}.ait{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--rs);transition:all .15s;cursor:pointer;border-left:3px solid transparent}.ait:hover{background:var(--glH)}.ait.r{border-left-color:var(--red);background:#ff453a05}.ait.o{border-left-color:var(--orange)}.ait.y{border-left-color:var(--yellow)}.ait.b{border-left-color:var(--blue)}.aic{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ait.r .aic{background:#ff453a1a;color:var(--red)}.ait.o .aic{background:#ff9f0a1a;color:var(--orange)}.ait.y .aic{background:#ffd60a1a;color:var(--yellow)}.ait.b .aic{background:#0a84ff1a;color:var(--blue)}.aic svg{width:13px;height:13px}.aif{flex:1}.aih{display:flex;align-items:center;gap:5px;margin-bottom:2px}.atg{font-size:8px;font-weight:700;padding:1px 6px;border-radius:var(--rp)}.atg.r{background:#ff453a1a;color:var(--red)}.atg.o{background:#ff9f0a1a;color:var(--orange)}.atg.y{background:#ffd60a1a;color:var(--yellow)}.atg.b{background:#0a84ff1a;color:var(--blue)}.acp{font-size:10px;color:var(--t2)}.atm{font-size:9px;color:var(--t3);margin-left:auto}.adsc{font-size:10px;color:var(--t1);line-height:1.4;margin-top:1px}.cpi{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--rs);transition:all .15s}.cpi:hover{background:var(--glH)}.cr{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;flex-shrink:0;background:var(--bg2);color:var(--t2)}.cr.t1{background:linear-gradient(135deg,#ffd60a,#ff9f0a);color:#000}.cr.t2{background:linear-gradient(135deg,#c7c7cc,#8e8e93);color:#fff}.cr.t3{background:linear-gradient(135deg,peru,sienna);color:#fff}.ci{flex:1}.cn{font-size:12px;font-weight:600;margin-bottom:2px}.ccb{height:3px;background:var(--bg2);border-radius:2px;overflow:hidden}.ccb-f{height:100%;border-radius:2px;transition:width .6s}.ccb-f.u{background:linear-gradient(90deg,#60a5fa,#818cf8)}.ccb-f.d{background:var(--red)}.cv{text-align:right}.cv-r{font-size:12px;font-weight:600;font-family:var(--mono)}.cv-c{font-size:9px}.cv-c.u{color:var(--green)}.cv-c.d{color:var(--red)}.ai-panel{background:var(--gl);border-radius:var(--rl);border:1px solid var(--bd);padding:18px;margin-top:14px}.ai-panel h3{font-size:14px;font-weight:700;margin-bottom:10px}.ai-loading{display:flex;align-items:center;gap:6px;color:var(--t2);font-size:11px;padding:14px 0}.ai-loading .spinner{width:14px;height:14px;border:2px solid var(--t3);border-top-color:var(--blue);border-radius:50%;animation:spin .8s linear infinite}.ai-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}@media(max-width:600px){.ai-grid{grid-template-columns:1fr}}.ai-card{padding:10px 14px;border-radius:var(--rs);border:1px solid var(--bd);transition:all .15s}.ai-card:hover{transform:translate(3px)}.ai-card.wn{border-left:3px solid var(--orange)}.ai-card.gd{border-left:3px solid var(--green)}.ai-card.if{border-left:3px solid var(--blue)}.ai-card.rk{border-left:3px solid var(--red)}.ac-h{display:flex;align-items:center;gap:6px;margin-bottom:3px}.ac-dt{width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center}.ac-dt svg{width:8px;height:8px;color:#fff}.ac-dt.wn{background:var(--orange)}.ac-dt.gd{background:var(--green)}.ac-dt.if{background:var(--blue)}.ac-dt.rk{background:var(--red)}.ac-tg{font-size:10px;font-weight:700}.ai-card.wn .ac-tg{color:var(--orange)}.ai-card.gd .ac-tg{color:var(--green)}.ai-card.if .ac-tg{color:var(--blue)}.ai-card.rk .ac-tg{color:var(--red)}.ac-tx{font-size:10px;color:var(--t2);line-height:1.5}.login-page{position:relative;display:flex;align-items:center;justify-content:center;min-height:100dvh;padding:20px;background:var(--bg)}.login-page:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:url(/assets/login-bg.webp) center center/cover no-repeat;opacity:.8;z-index:0}.login-card{position:relative;z-index:1;width:440px;max-width:100%;background:var(--gl);border-radius:var(--rl);border:1px solid var(--bd);padding:6px 18px 14px;-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);box-shadow:0 20px 60px #0003}.login-logo{text-align:center;margin-bottom:2px}.login-ico{width:62px;height:62px;border-radius:var(--rm);background:linear-gradient(135deg,var(--blue),var(--purple));display:flex;align-items:center;justify-content:center;margin:0 auto 12px}.login-ico svg{width:22px;height:22px;color:#fff}.login-card h2{font-size:18px;font-weight:700}.login-sub{font-size:11px;color:var(--t3);margin-top:2px}.login-error{background:#ff453a14;border:1px solid var(--red);border-radius:var(--rs);padding:10px 14px;font-size:11px;color:var(--red);margin-bottom:14px}.collapse-panel{border:1px solid var(--bd);border-radius:var(--rm);overflow:hidden;background:var(--gl);margin-bottom:8px}.collapse-head{padding:12px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;transition:all .15s}.collapse-head:hover{background:var(--glH)}.collapse-head h4{font-size:12px;font-weight:600}.collapse-body{display:none;padding:12px;border-top:1px solid var(--bd)}.collapse-panel.open .collapse-body{display:block}.g2{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media(max-width:900px){.g2{grid-template-columns:1fr}}.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}@media(max-width:768px){.g3{grid-template-columns:1fr}}.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}@media(max-width:768px){.g4{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.g4{grid-template-columns:1fr}}.flex-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.w-full{width:100%}.mla{margin-left:auto}.mb8{margin-bottom:8px}.mb12{margin-bottom:12px}.mb14{margin-bottom:14px}.mb16{margin-bottom:16px}.mb20{margin-bottom:20px}.mt8{margin-top:8px}.mt12{margin-top:12px}.mt16{margin-top:16px}.mt20{margin-top:20px}.text-center{text-align:center}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cg-dash{max-width:1400px;margin:0 auto;display:grid;grid-template-columns:240px minmax(0,1fr);gap:14px}@media(max-width:1100px){.cg-dash{grid-template-columns:minmax(0,1fr)}}.sidebar-col{display:flex;flex-direction:column;gap:10px}@media(max-width:1100px){.sidebar-col{flex-direction:row;overflow-x:auto}.sidebar-col>*{flex-shrink:0;min-width:160px}}@media(max-width:768px){.cg-dash{display:block!important}.cg-dash .sidebar-col{display:flex!important;flex-direction:column!important;overflow-y:auto!important;overflow-x:hidden!important;position:relative!important;width:100%!important}}.fg{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:500px){.fg{grid-template-columns:1fr}}.hero{margin-bottom:14px}.hero h2{font-size:17px;font-weight:700;margin-bottom:2px}.hero p{font-size:11px;color:var(--t2)}.hero-badge{display:inline-flex;align-items:center;gap:4px;font-size:9px;color:var(--green);padding:2px 8px;border-radius:var(--rp);background:#30d1581a}.ha{display:flex;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap}.sr{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--bd)}.sr:last-child{border-bottom:none}.sk{font-size:11px;color:var(--t2)}.sv{font-size:14px;font-weight:700;font-family:var(--mono)}.radar-chart{display:flex;align-items:center;justify-content:center;padding:16px}.dash-tab{display:none}.dash-tab.on{display:block;animation:fadeIn .25s var(--ease) both}.mob-nav{display:none;flex-shrink:0;height:56px;background:var(--glS);border-top:1px solid var(--bd);z-index:100;padding:0 8px;padding-bottom:env(safe-area-inset-bottom)}@media(max-width:768px){.mob-nav{display:flex!important;align-items:center;justify-content:space-around}}.mn-item{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 8px;font-size:9px;color:var(--t3);cursor:pointer;transition:all .15s;flex:1;text-align:center}.mn-item.ac{color:var(--blue)}.mn-item svg{width:18px;height:18px}html.theme-legacy .kv,html.theme-legacy .kv.g,html.theme-legacy .kv.a,html.theme-legacy .kv.b,html.theme-legacy .kv.r{color:var(--t1)}.chart-wrapper{position:relative;background:var(--gl);border-radius:14px;border:1px solid var(--bd);padding:16px;transition:all .35s ease;overflow:hidden}.chart-wrapper:hover{transform:translateY(-2px);box-shadow:0 8px 32px #6366f173,0 0 60px #8b5cf640,0 4px 12px #3b82f626;border-color:#818cf880}.chart-wrapper:after{display:none!important}.chart-wrapper:hover:after{transform:scaleX(1)}.echart,.chart-body .echart,.chart-wrapper .echart{width:100%;height:100%;min-height:0;position:relative}@media(max-width:768px){.nps{display:none}.hdr{padding:0 10px}}@media(max-width:480px){.kc{padding:12px}.kv{font-size:20px}}#app{height:100vh;height:100dvh;overflow:hidden}.fade-in{animation:fadeIn .35s ease}.ct,.main-content{overflow-y:auto}.app-container{display:flex;min-height:100dvh}.main-content{flex:1;margin-left:260px;transition:margin-left .3s}@media(max-width:768px){.main-content{margin-left:0}}.page-wrap{padding:20px 24px;max-width:1400px;margin:0 auto;animation:fadeIn .25s var(--ease) both}@media(max-width:768px){.page-wrap{padding:14px 16px}}.metric-note{margin-top:14px;padding:10px 12px;border-radius:8px;background:#818cf80f;border:1px dashed rgba(129,140,248,.25);font-size:12px;line-height:1.7;text-align:left;width:100%;box-sizing:border-box;position:relative;z-index:1}.metric-note b{color:#6366f1}@media(max-width:768px){.cg-dash{flex-direction:column!important}.sidebar-col,.main-col{width:100%!important;min-width:unset!important}.student-page .tbl th:nth-child(3),.student-page .tbl td:nth-child(3),.student-page .tbl th:nth-child(6),.student-page .tbl td:nth-child(6),.student-page .tbl th:nth-child(7),.student-page .tbl td:nth-child(7),.student-page .tbl th:nth-child(10),.student-page .tbl td:nth-child(10){display:none}.student-page .btn-sm{padding:4px 6px!important;font-size:11px!important}.student-page>div:nth-child(2){flex-wrap:wrap!important}}@media(max-width:768px){.g3{grid-template-columns:repeat(1,1fr)!important}[style*="grid-template-columns:repeat(6,1fr)"]{grid-template-columns:repeat(2,1fr)!important}.cf-ext-tags{font-size:10px!important;line-height:1.8!important}textarea.inp{width:100%!important;box-sizing:border-box!important}}@media(max-width:768px){.g3{grid-template-columns:repeat(1,1fr)!important}.ext-platforms{display:grid!important;grid-template-columns:repeat(2,1fr)!important;gap:10px!important;width:100%!important;max-width:100%!important;overflow:hidden!important;box-sizing:border-box!important}.ext-platforms>.type-card{display:flex!important;flex-direction:row!important;align-items:center!important;gap:10px!important;padding:12px!important;width:100%!important;max-width:100%!important;min-width:0!important;overflow:hidden!important;box-sizing:border-box!important}.ext-platforms>.type-card>svg{width:28px!important;height:28px!important;flex-shrink:0!important}.ext-platforms>.type-card>div{flex:1!important;min-width:0!important;overflow:hidden!important}.ext-platforms h4{font-size:13px!important;margin:0 0 2px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.ext-platforms p{font-size:11px!important;margin:0!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}}.week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:10px}.day-col{border:1px solid var(--border);border-radius:var(--rm, 14px);padding:14px;min-height:200px;background:var(--gl);transition:all .25s ease}.day-col:hover{border-color:var(--blue);box-shadow:0 4px 16px #0a84ff14}.day-header{font-weight:600;font-size:14px;color:var(--t1);margin-bottom:10px;display:flex;align-items:center;gap:4px}.day-date{font-weight:400;font-size:12px;color:var(--t3);margin-left:auto}.sched-item{background:linear-gradient(135deg,#667eea14,#667eea0a);border-left:3px solid var(--blue);border-radius:8px;padding:10px 12px;margin-bottom:7px;cursor:pointer;transition:all .25s ease}.sched-item:hover{transform:translateY(-2px);box-shadow:0 4px 16px #667eea33;border-left-color:#818cf8;background:linear-gradient(135deg,#667eea24,#667eea0f)}.sched-name{font-weight:600;font-size:13px;color:var(--t1);margin-bottom:3px}.sched-time{font-size:12px;color:var(--blue);font-weight:500}.sched-meta{font-size:11px;color:var(--t2);margin-top:2px}.sched-count{font-size:10px;color:var(--blue);margin-top:3px}.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.month-day{border:1px solid var(--border);border-radius:10px;padding:6px;min-height:100px;background:var(--bg2);transition:all .15s ease}.month-day:hover{border-color:var(--blue)}@media(max-width:768px){.week-grid{grid-template-columns:1fr;gap:8px}.day-col{min-height:auto}.month-grid{grid-template-columns:repeat(3,1fr)}}.sched-c0{border-left-color:#667eea!important;background:linear-gradient(135deg,#667eea1f,#667eea0a)!important}.sched-c1{border-left-color:#f59e0b!important;background:linear-gradient(135deg,#f59e0b1f,#f59e0b0a)!important}.sched-c2{border-left-color:#ec4899!important;background:linear-gradient(135deg,#ec48991f,#ec48990a)!important}.sched-c3{border-left-color:#10b981!important;background:linear-gradient(135deg,#10b9811f,#10b9810a)!important}.sched-c4{border-left-color:#8b5cf6!important;background:linear-gradient(135deg,#8b5cf61f,#8b5cf60a)!important}.sched-c5{border-left-color:#06b6d4!important;background:linear-gradient(135deg,#06b6d41f,#06b6d40a)!important}.sched-c6{border-left-color:#ef4444!important;background:linear-gradient(135deg,#ef44441f,#ef44440a)!important}.sched-c7{border-left-color:#84cc16!important;background:linear-gradient(135deg,#84cc161f,#84cc160a)!important}@media print{.schedule-page button,.schedule-page .btn,.schedule-page select,.schedule-page input[type=month],.schedule-page input[type=week]{display:none!important}.week-grid{grid-template-columns:repeat(7,1fr);gap:2px}.day-col{min-height:auto;padding:6px;border:1px solid #000}.sched-item{border-left-width:2px;padding:4px 6px;margin-bottom:2px}}.class-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}.class-card{background:var(--gl);border:1px solid var(--border);border-radius:var(--rm, 14px);padding:18px 20px;transition:all .25s ease}.class-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px #6366f12e;border-color:#818cf866}.card-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px}.class-name{font-size:16px;font-weight:700;color:var(--t1)}.class-meta{font-size:12px;color:var(--t3);margin-top:4px}.class-status{font-size:11px;padding:3px 10px;border-radius:12px;font-weight:600}.st-recruiting{background:#f59e0b1f;color:#f59e0b}.st-running{background:#22c55e1f;color:#22c55e}.st-finished{background:#6366f11f;color:#6366f1}.st-paused{background:#6b72801f;color:#6b7280}.card-body{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:12px}.metric{text-align:center;padding:8px 0;background:#6366f10a;border-radius:8px}.metric span{display:block;font-size:16px;font-weight:700;color:var(--t1)}.metric label{font-size:10px;color:var(--t3)}.progress-bar{height:6px;background:var(--bg2);border-radius:3px;overflow:hidden;margin-bottom:14px}.progress-fill{height:100%;background:linear-gradient(90deg,#667eea,#7c3aed);transition:width .6s ease}.card-foot{display:flex;gap:6px;flex-wrap:wrap}@media(max-width:768px){.class-grid{grid-template-columns:1fr}}.teacher-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}@media(max-width:768px){.teacher-grid{grid-template-columns:1fr}}.btn-pri,.btn-sec,.btn-dg{font-size:13px;padding:10px 22px;font-weight:500;border-radius:var(--rp, 8px);transition:all .15s ease}.btn-sm{font-size:12px;padding:6px 12px}.btn-lg{font-size:15px;padding:12px 28px}.stat-card{background:var(--bgc);border-radius:12px;padding:20px;text-align:center;border:1px solid var(--brd)}.stat-num{font-size:28px;font-weight:700;color:var(--blue)}.stat-label{font-size:12px;color:var(--t3);margin-top:4px}@media(max-width:768px){.stats-row{grid-template-columns:repeat(2,1fr)!important}}.dark .kc,.dark .chart-container,.dark .chart-wrapper,.dark .chart-card{background:#0e172a80;border-color:#ffffff24;border-radius:20px}.dark .mc{background:#0e172a80;border-color:var(--bd)!important;position:relative;overflow:hidden}.mc .kc-glow,.mc .kc-accent{display:none!important}.dark .chart-container{background:#0e172a80!important;border-color:var(--bd)!important}.dark .chart-container .chart-wrapper,.dark .chart-wrapper,.dark .chart-card{border-color:transparent!important;box-shadow:none!important}.chart-container .chart-wrapper,.chart-container .echart,.mc .echart,.mc>div[style]{border:none!important;box-shadow:none!important;background:transparent!important}.kc.amber{border-color:#8b5cf659!important}.kc.amber .kv{background:none!important;-webkit-background-clip:unset!important;-webkit-text-fill-color:var(--t1)!important;color:var(--t1)!important}.kc.amber .kc-accent{background:linear-gradient(90deg,#8b5cf6,#a78bfa)!important}.kc.amber:hover{box-shadow:0 8px 32px #6366f173,0 0 60px #8b5cf640,0 4px 12px #3b82f626!important;border-color:#818cf880!important}.mc{background:var(--gl);border:1px solid var(--bd);border-radius:14px;padding:16px;box-shadow:0 0 28px #f59e0b29,0 4px 18px #f59e0b1a;transition:all .35s ease;position:relative;overflow:hidden}.mc:hover{transform:translateY(-3px);box-shadow:0 8px 32px #f59e0b59,0 0 60px #f59e0b33,0 4px 12px #f59e0b1f;border-color:var(--bd)}.mc:after{content:"";position:absolute;bottom:0;left:12px;right:12px;height:3px;border-radius:0 0 14px 14px;background:linear-gradient(90deg,#f59e0b,#ffc738);transform-origin:left;transform:scaleX(0);transition:transform .45s cubic-bezier(.22,1,.36,1),box-shadow .35s ease;pointer-events:none;z-index:2}.mc:hover:after{transform:scaleX(1);box-shadow:0 0 10px #f59e0b73}.mc .echart,.mc>div[style],.chart-container .chart-wrapper,.chart-container .echart{border:none!important;box-shadow:none!important;background:transparent!important}@media(orientation:landscape)and (max-height:540px){.nps{display:none!important}.mob-nav{display:flex!important;align-items:center;justify-content:space-around}.hdr{padding:0 10px!important}.ct{padding:10px 16px 70px!important}.main-content{margin-left:0!important}.cg-dash{display:block!important;grid-template-columns:1fr!important}.cg-dash .sidebar-col{flex-direction:column!important;overflow:visible!important;max-height:none!important;width:100%!important;position:relative!important}.g2,.g3{grid-template-columns:1fr!important}.g4{grid-template-columns:repeat(2,1fr)!important}table{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.cg,.cg-dash,.modal-box{max-width:100%!important}.mc{overflow:visible!important}.modal-box{max-height:95vh!important;width:95vw!important}select,.sel{position:relative;z-index:999}.nps{overflow:visible!important}}@media(max-width:768px){table{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}}@media(max-width:480px){.ct{padding:12px 12px 70px!important}.g4{grid-template-columns:1fr!important}}@media(max-width:768px){.mc{padding:6px!important}}@media(max-width:768px){.list-page .tbl td:last-child{white-space:normal!important}.list-page .tbl td:last-child .btn{margin:2px 4px 2px 0}.list-page .tbl td .btn-sm{padding:7px 11px!important;font-size:12px!important}.list-page .pager{gap:6px;flex-wrap:wrap}.list-page .pager-btn,.list-page .pager .btn-sm{min-width:36px;min-height:36px}.list-page .card-foot{flex-wrap:wrap;gap:6px}.list-page .card-foot .btn{flex:1 1 auto}}@media(max-width:480px){.list-page .pager-btn,.list-page .pager .btn-sm{min-width:32px;min-height:32px}}@media(orientation:landscape)and (max-height:540px){.app-content,.main-content,.page-container,[class*=-page]:not(.mob-nav):not(.nps){padding-bottom:60px!important}.schedule-stats{padding-bottom:10px!important}}@media(orientation:landscape)and (max-height:540px){.ct{height:calc(100% - 60px)!important}}.ai-disclaimer{margin-top:6px;font-size:11px;color:var(--t3);opacity:.7;font-style:italic;line-height:1.4}@media(min-width:769px)and (max-width:1279px){.np{padding:0 9px;font-size:12px}.nps{gap:1px}.hdr .hr>span:first-child{display:none}.logo span{display:none}}:root{--bg:#F2F3FA;--bg2:#F3F4FC;--gl:#FFFFFF;--glH:#F3F4FC;--glS:#FFFFFF;--bd:#D9DCEA;--bdS:#C8CDE0;--t1:#14172B;--t2:#4D5470;--t3:#6B7290;--t4:#8A90A8;--blue:#4F46E5;--green:#16845B;--orange:#B86E00;--red:#C23A3C;--accent-text:#4338CA;--accent-soft:#ECEEFF;--seg-on:#FFFFFF;--c-a:#5B54F0;--c-b:#18B7DB;--chart-rest:#DDE0F2;--grad-btn:linear-gradient(135deg,#5B54F0 0%,#7C5CF3 100%);--btn-glow:rgba(91,84,240,.55);--warn-soft:#FAF1E0;--crit-soft:#FBEAEA;--good-soft:#E6F4EE;--topbar:rgba(242,243,250,.84);--aurora:radial-gradient(60% 42% at 12% -8%,rgba(99,102,241,.16),transparent 70%),radial-gradient(42% 34% at 92% 6%,rgba(34,211,238,.11),transparent 70%),radial-gradient(46% 34% at 62% 104%,rgba(168,85,247,.08),transparent 70%);--pop-shadow:0 10px 30px rgba(20,23,43,.12),0 1px 3px rgba(20,23,43,.06);--sh:none;--shm:var(--pop-shadow);--glB:0 0 0 3px var(--accent-soft);--rs:8px;--rm:14px;--rl:16px;--font:"Geist",-apple-system,BlinkMacSystemFont,"PingFang SC","HarmonyOS Sans SC","Microsoft YaHei",sans-serif}.dark{--bg:#0A0D1A;--bg2:#1A1F38;--gl:#12162B;--glH:#1A1F38;--glS:#161B33;--bd:#222846;--bdS:#323A5E;--t1:#E8EBF7;--t2:#A0A8C6;--t3:#7C85A6;--t4:#5E6684;--blue:#6670FF;--green:#46B985;--orange:#DFA43E;--red:#EF6D62;--accent-text:#9AA6FF;--accent-soft:rgba(110,120,255,.14);--seg-on:#2A3050;--c-a:#7B83FF;--c-b:#31D0F0;--chart-rest:#2A3050;--grad-btn:linear-gradient(135deg,#6366F1 0%,#8B5CF6 100%);--btn-glow:rgba(99,102,241,.6);--warn-soft:rgba(223,164,62,.12);--crit-soft:rgba(239,109,98,.12);--good-soft:rgba(70,185,133,.12);--topbar:rgba(10,13,26,.8);--aurora:radial-gradient(60% 45% at 10% -10%,rgba(99,102,241,.24),transparent 70%),radial-gradient(45% 36% at 95% 12%,rgba(34,211,238,.13),transparent 70%),radial-gradient(50% 40% at 60% 108%,rgba(139,92,246,.16),transparent 70%);--pop-shadow:0 12px 32px rgba(0,0,0,.5),0 1px 2px rgba(0,0,0,.4)}body{font-variant-numeric:tabular-nums}.bgm:before{background:var(--aurora)!important}.dark .bgm:before{background:var(--aurora)!important}@media(prefers-reduced-motion:reduce){.bgm:before{animation:none}}.hdr{height:56px}.hdr-glass{background:var(--topbar);border-bottom:1px solid var(--bd)}.logo h1{font-size:15px;letter-spacing:.02em}.logo span{font-size:11px}.lo{border-radius:7px}.nps{background:transparent!important;border:0!important;padding:0;gap:2px;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}.np{height:34px;padding:0 12px;border-radius:8px;font-size:14px;font-weight:400;color:var(--t2)}.np>svg:first-child{display:none}.np:hover{color:var(--t1)!important;background:var(--glH)!important;box-shadow:none!important;transform:none!important}.np.ac{color:var(--accent-text)!important;background:var(--accent-soft)!important;box-shadow:none!important;font-weight:600}.hb{background:transparent;border:0}.hb:hover{background:var(--glH);transform:none}.av{background:var(--bg2);color:var(--t1);border:1px solid var(--bdS)}.btn-pri{background:var(--grad-btn);color:#fff;border:none;box-shadow:0 8px 18px -8px var(--btn-glow)}.btn-pri:hover:not(:disabled){opacity:1;filter:brightness(1.08);transform:translateY(-1px);box-shadow:0 12px 22px -8px var(--btn-glow)}.btn-sec{background:var(--gl);color:var(--t1);border:1px solid var(--bdS)}.btn-sec:hover:not(:disabled){background:var(--glH);border-color:var(--bdS);transform:none}.btn-out{color:var(--accent-text);border-color:var(--bdS)}.btn-out:hover:not(:disabled){background:var(--accent-soft)}.btn-dg,.btn-suc{box-shadow:none}.inp,.sel,.sch,.txt{background-color:var(--gl);border-color:var(--bdS)}.inp:focus,.sch:focus,.txt:focus,.sel:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--accent-soft)}.tab.ac{background:var(--accent-soft);color:var(--accent-text);font-weight:600}.seg{background:var(--bg2);border:1px solid var(--bd)}.seg-btn.ac{background:var(--seg-on);color:var(--t1)}.pager-btn.ac{background:var(--accent-soft);color:var(--accent-text);font-weight:600}.step.active .sn{background:var(--blue)}.pbar-fill{background:linear-gradient(90deg,var(--c-a),var(--c-b))}.mod,.mc,.kc,.chart-container,.card{box-shadow:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}.mod{background:var(--gl);border-color:var(--bd);border-radius:var(--rm)}.mod:hover,.kc:hover,.mc:hover,.kc.amber:hover{transform:none!important;box-shadow:none!important}.kc{border-radius:var(--rm)!important;border-color:var(--bd)!important;background:var(--gl)!important}.kc.hero-card:before,.kc .kc-accent,.kc .kc-glow,.chart-container:after{display:none!important}.kv{font-weight:600;letter-spacing:-.02em}.kc.g .kv,.kc.a .kv,.kc.b .kv,.kc.r .kv{color:var(--t1)}.mc{background:var(--gl)!important;border-color:var(--bd)!important;border-radius:var(--rm)!important}.dark .mc{background:var(--gl)!important}.chart-container{border-radius:var(--rm)!important}.mod:has(.echart),.chart-container,.mc:has(.echart){transition:border-color .3s,box-shadow .3s,transform .3s!important}.mod:has(.echart):hover,.chart-container:hover,.mc:has(.echart):hover{transform:translateY(-2px)!important;border-color:color-mix(in srgb,var(--c-a) 42%,var(--bd))!important;box-shadow:0 14px 36px -14px color-mix(in srgb,var(--c-a) 45%,transparent)!important}.mt{text-transform:none;letter-spacing:0;font-size:14px;color:var(--t1)}.modal-box{border-radius:var(--rl);box-shadow:var(--pop-shadow)}.modal-overlay{background:#0a0d1a73}.tag.status-ok{background:var(--good-soft)}.tag.status-pd{background:var(--warn-soft)}.tag.status-er{background:var(--crit-soft)}@media(prefers-reduced-motion:reduce){.mod:has(.echart):hover,.chart-container:hover,.mc:has(.echart):hover,.btn-pri:hover:not(:disabled){transform:none!important}}.cz-panel{background:var(--gl);border:1px solid var(--bd);border-radius:var(--rm);min-width:0;transition:border-color .3s,box-shadow .3s,transform .3s}.cz-panel:has(.echart):hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--c-a) 42%,var(--bd));box-shadow:0 14px 36px -14px color-mix(in srgb,var(--c-a) 45%,transparent)}.cz-ph{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 20px 12px}.cz-ph h3{margin:0;font-size:14px;font-weight:600;line-height:1.4;color:var(--t1);display:flex;align-items:center;gap:8px}.cz-sub{margin:2px 0 0;font-size:12px;color:var(--t3);font-weight:400}.cz-pb{padding:0 20px 20px}.cz-pf{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;padding:12px 20px;border-top:1px solid var(--bd);font-size:12px;color:var(--t2)}.cz-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.cz-row{display:grid;gap:16px;margin-bottom:16px}.cz-row-a{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}.cz-row-half{grid-template-columns:repeat(2,minmax(0,1fr))}.cz-row-active{grid-template-columns:minmax(0,4fr) minmax(0,8fr)}.cz-row-3{grid-template-columns:repeat(3,minmax(0,1fr))}.cz-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1px;background:var(--bd);border:1px solid var(--bd);border-radius:var(--rm);overflow:hidden;margin-bottom:16px}.cz-kpi{position:relative;background:var(--gl);padding:18px 20px 16px;min-width:0;transition:background .25s}.cz-kpi:hover{background:var(--glH)}.cz-kpi-label{font-size:13px;color:var(--t2)}.cz-kpi-value{margin-top:10px;font-size:28px;line-height:1.1;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--t1);white-space:nowrap}.cz-kpi-value .cur{font-size:.62em;font-weight:500;color:var(--t2);margin-right:2px;letter-spacing:0}.cz-kpi-value .u{font-size:.56em;font-weight:500;color:var(--t2);margin-left:2px;letter-spacing:0}.cz-kpi-value.is-quiet,.cz-kpi-value.is-quiet .cur{color:var(--t3)}.cz-kpi-sub{margin-top:6px;font-size:12px;color:var(--t3)}.cz-kpi-foot{margin-top:12px;font-size:12px;color:var(--t2);display:flex;align-items:center;gap:6px;min-height:18px}.cz-kpis.sm .cz-kpi-value{font-size:22px;margin-top:8px}.cz-spark{position:relative;height:34px;margin:12px -20px -16px;pointer-events:none}.cz-spark svg{display:block;width:100%;height:100%;clip-path:inset(0 100% 0 0);animation:czReveal 1.1s cubic-bezier(.22,1,.36,1) .25s forwards}.cz-spark-dot{position:absolute;width:7px;height:7px;margin:-3.5px 0 0 -3.5px;border-radius:50%;background:var(--c-b);box-shadow:0 0 0 2px var(--gl),0 0 12px 2px color-mix(in srgb,var(--c-b) 70%,transparent);opacity:0;animation:czPop .4s ease 1.1s forwards}.cz-kpi:hover .cz-spark svg{filter:drop-shadow(0 3px 6px color-mix(in srgb,var(--c-a) 45%,transparent))}.cz-link{color:var(--accent-text);font-size:12px;font-weight:500;cursor:pointer}.cz-link:hover{text-decoration:underline;text-underline-offset:3px}.cz-link-quiet{color:var(--t3);font-size:12px;text-decoration:underline dotted;text-underline-offset:3px;cursor:pointer}.cz-link-quiet:hover{color:var(--t1)}.cz-subnav{position:sticky;top:0;z-index:15;display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;margin:32px 0 24px;background:var(--topbar);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--bd)}.cz-subnav::-webkit-scrollbar{display:none}.cz-subnav a{position:relative;display:inline-flex;align-items:center;height:44px;padding-inline:12px;font-size:13px;color:var(--t2);white-space:nowrap;cursor:pointer}.cz-subnav a:hover{color:var(--t1)}.cz-subnav a.on{color:var(--t1);font-weight:500}.cz-subnav a.on:after{content:"";position:absolute;left:12px;right:12px;bottom:-1px;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--c-a),var(--c-b))}.cz-sec{scroll-margin-top:16px;margin-bottom:40px}.cz-sec-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-bottom:12px}.cz-sec-head h2{margin:0;font-size:16px;font-weight:600;color:var(--t1)}.cz-sec-head p{margin:0;font-size:13px;color:var(--t3)}.cz-tbl{width:100%;border-collapse:collapse;font-size:13px}.cz-tbl th{padding:8px 0 8px 16px;font-size:12px;font-weight:400;color:var(--t3);text-align:left;border-bottom:1px solid var(--bd);white-space:nowrap}.cz-tbl td{padding:10px 0 10px 16px;border-bottom:1px solid var(--bd);white-space:nowrap;color:var(--t1)}.cz-tbl th:first-child,.cz-tbl td:first-child{padding-left:0}.cz-tbl tbody tr:last-child td{border-bottom:0}.cz-tbl .r{text-align:right;font-variant-numeric:tabular-nums}.cz-tbl tfoot td{border-top:1px solid var(--bdS);border-bottom:0;color:var(--t2);font-weight:500}.cz-tbl tr.is-current td{background:var(--accent-soft)}.cz-here{font-size:11px;color:var(--accent-text);margin-left:6px}.cz-empty{display:grid;justify-items:start;align-content:center;gap:6px;min-height:150px}.cz-empty b{font-size:14px;font-weight:500;color:var(--t1)}.cz-empty p{margin:0;font-size:12px;color:var(--t3);max-width:30em}@keyframes czReveal{to{clip-path:inset(0 0 0 0)}}@keyframes czPop{to{opacity:1}}@keyframes czGrow{0%{transform:scaleX(0)}}@media(max-width:1180px){.cz-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:1000px){.cz-row-a,.cz-row-half,.cz-row-active,.cz-row-3{grid-template-columns:minmax(0,1fr)}}@media(max-width:640px){.cz-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.cz-kpi{padding:14px 14px 12px}.cz-kpi-value{font-size:24px}.cz-ph,.cz-pb,.cz-pf{padding-inline:16px}}@media(prefers-reduced-motion:reduce){.cz-spark svg{clip-path:none;animation:none}.cz-spark-dot{opacity:1;animation:none}.cz-panel:has(.echart):hover{transform:none}}.chart-section{scroll-margin-top:60px}.chart-section-title{margin:32px 0 12px!important;font-size:16px!important;font-weight:600!important;color:var(--t1)!important;letter-spacing:0!important;text-transform:none!important}.tbl{font-size:13px}.tbl th{padding:12px;font-size:12px;font-weight:400;color:var(--t3);text-transform:none;letter-spacing:0;border-bottom:1px solid var(--bd);background:var(--bg2)}.tbl td{padding:12px;font-size:13px;border-bottom:1px solid var(--bd)}.tbl tr:hover td{background:var(--glH)}.tbl-wrap{border:1px solid var(--bd);border-radius:var(--rm);background:var(--gl)}.tbl-wrap .tbl tbody tr:last-child td{border-bottom:0}.sl-panel .tbl-wrap,.cz-panel .tbl-wrap{border:0;border-radius:0;background:transparent}.kc{text-align:left!important;align-items:flex-start!important;justify-content:flex-start!important;padding:18px 20px!important;min-height:0!important;display:flex;flex-direction:column;gap:0}.kc .kl{order:-1;font-size:13px;font-weight:400;color:var(--t2);margin:0 0 10px}.kc .kv{font-size:28px;line-height:1.1;margin:0 0 6px;font-variant-numeric:tabular-nums}.kc .ks,.kc .kt{font-size:12px;color:var(--t3)}.g2,.g3,.g4{gap:16px}[class*=-page]>h1,[class*=-page]>div>h1:first-child{font-size:26px!important;font-weight:600!important;letter-spacing:-.01em}.emp-title{color:var(--t1)}:root{--card-shadow:0 1px 2px rgba(20,23,43,.05),0 2px 8px -2px rgba(20,23,43,.06)}.dark{--card-shadow:none}.mod,.cz-panel,.cz-kpis,.kc,.mc,.tbl-wrap,.chart-container{box-shadow:var(--card-shadow)!important}.cz-panel:has(.echart):hover,.mod:has(.echart):hover,.chart-container:hover,.mc:has(.echart):hover{box-shadow:var(--card-shadow),0 14px 36px -14px color-mix(in srgb,var(--c-a) 45%,transparent)!important}.cz-panel .tbl-wrap,.sl-panel .tbl-wrap{box-shadow:none!important}.cz-rail{position:fixed;left:8px;top:50%;z-index:40;display:flex;flex-direction:column;gap:2px;padding:6px;border-radius:14px;background:var(--topbar);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--bd);box-shadow:var(--pop-shadow);opacity:0;pointer-events:none;transform:translate(-8px,-50%);transition:opacity .25s,transform .25s}.cz-rail.show{opacity:1;pointer-events:auto;transform:translateY(-50%)}.cz-rail a{display:flex;align-items:center;gap:0;height:30px;padding:0 6px;border-radius:8px;font-size:12px;color:var(--t2);white-space:nowrap;cursor:pointer;transition:background .2s,color .2s,gap .25s}.cz-rail a i{flex:none;width:7px;height:7px;border-radius:50%;background:var(--bdS);transition:transform .2s,background .2s}.cz-rail a span{max-width:0;overflow:hidden;opacity:0;transition:max-width .25s,opacity .2s}.cz-rail:hover a{gap:8px;padding-right:10px}.cz-rail:hover a span{max-width:80px;opacity:1}.cz-rail a:hover{background:var(--glH);color:var(--t1)}.cz-rail a:hover i{background:var(--t3)}.cz-rail a.on{color:var(--t1);font-weight:500}.cz-rail a.on i{background:linear-gradient(135deg,var(--c-a),var(--c-b));transform:scale(1.35);box-shadow:0 0 8px color-mix(in srgb,var(--c-a) 60%,transparent)}@media(max-width:900px){.cz-rail{display:none}}@media(prefers-reduced-motion:reduce){.cz-rail,.cz-rail a,.cz-rail a span,.cz-rail a i{transition:none}}@font-face{font-family:Geist;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/geist-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}body{font-feature-settings:"tnum" 1,"cv11" 1;letter-spacing:.01em}.cz-kpi-value,.kv,.cz-num{font-feature-settings:"tnum" 1;letter-spacing:-.025em}:root{--surface-hi:inset 0 1px 0 rgba(255,255,255,.9);--card-shadow:0 0 0 .5px rgba(20,23,43,.02),0 1px 2px rgba(20,23,43,.05),0 4px 14px -4px rgba(20,23,43,.07);--card-lift:0 0 0 .5px rgba(20,23,43,.02),0 2px 4px rgba(20,23,43,.05),0 18px 40px -16px color-mix(in srgb,var(--c-a) 40%,transparent);--surface-grad:none}.dark{--surface-hi:inset 0 1px 0 rgba(255,255,255,.06);--card-shadow:0 1px 2px rgba(0,0,0,.35),0 8px 24px -10px rgba(0,0,0,.55);--card-lift:0 1px 2px rgba(0,0,0,.35),0 20px 44px -16px color-mix(in srgb,var(--c-a) 45%,transparent);--surface-grad:linear-gradient(180deg,rgba(255,255,255,.025),rgba(255,255,255,0) 60%)}.mod,.cz-panel,.cz-kpis,.kc,.mc,.tbl-wrap,.chart-container,.card{box-shadow:var(--surface-hi),var(--card-shadow)!important;background-image:var(--surface-grad)!important}.cz-kpis .cz-kpi{background-image:var(--surface-grad)}.cz-panel:has(.echart):hover,.mod:has(.echart):hover,.chart-container:hover,.mc:has(.echart):hover{box-shadow:var(--surface-hi),var(--card-lift)!important}.cz-panel .tbl-wrap,.sl-panel .tbl-wrap,.cz-kpis .kc{box-shadow:none!important;background-image:none!important}.modal-box,.sl-colpicker,.action-dropdown,.nsub,.nsub2{box-shadow:var(--surface-hi),var(--pop-shadow)!important}.btn-pri,.fai-bubble,.tab-main{box-shadow:inset 0 1px #ffffff40,0 8px 18px -8px var(--btn-glow)!important}.btn-sec,.btn-out{box-shadow:var(--surface-hi),0 1px 2px #14172b0d}.dark .btn-sec,.dark .btn-out{box-shadow:inset 0 1px #ffffff0d}.btn,.np,.ns-item,.sl-chip-btn,.seg-btn,.tab,.hb,.pager-btn{transition:background-color .18s cubic-bezier(.2,.8,.2,1),border-color .18s,color .18s,box-shadow .2s,transform .12s,filter .18s}.btn:active:not(:disabled),.sl-chip-btn:active,.np:active,.hb:active{transform:scale(.97)!important}.nsub,.nsub2,.action-dropdown,.sl-colpicker,.ab-pop{animation:czDrop .18s cubic-bezier(.2,.8,.2,1) both;transform-origin:top center}@keyframes czDrop{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}.ns-item:hover{background:var(--glH)}.inp,.sel,.sch,.txt{transition:border-color .18s,box-shadow .18s,background-color .18s}a,button{-webkit-tap-highlight-color:transparent}.bgm:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.05;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:160px 160px}.dark .bgm:after{opacity:.09;mix-blend-mode:screen;filter:invert(1)}.cz-no-grain .bgm:after{display:none}@media(prefers-reduced-motion:reduce){.nsub,.nsub2,.action-dropdown,.sl-colpicker,.ab-pop{animation:none}.btn:active:not(:disabled){transform:none!important}}.pg-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px}.pg-head h1.pg-title{margin:0;font-size:26px!important;font-weight:600!important;letter-spacing:-.01em;color:var(--t1);display:flex;align-items:center;flex-wrap:wrap;gap:8px;line-height:1.25}.pg-chip{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:999px;background:var(--accent-soft);color:var(--accent-text);font-size:12px;font-weight:600;letter-spacing:0;font-variant-numeric:tabular-nums}.pg-chip.gray{background:var(--bg2);color:var(--t2);font-weight:500}.pg-chip.warn{background:color-mix(in srgb,#F59E0B 16%,transparent);color:#b45309}.dark .pg-chip.warn{color:#fbbf24}.pg-meta{margin:6px 0 0;font-size:14px;color:var(--t2);line-height:1.6}.pg-actions{position:relative;display:flex;flex-wrap:wrap;gap:8px;align-items:center}.pg-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.pg-chips>button{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 14px;border-radius:999px;border:1px solid var(--bdS);background:var(--gl);font-size:13px;color:var(--t2);cursor:pointer;transition:background .2s,color .2s,border-color .2s}.pg-chips>button:hover{color:var(--t1);border-color:var(--t3)}.pg-chips>button b{font-weight:600;color:var(--t1);font-variant-numeric:tabular-nums}.pg-chips>button[aria-pressed=true]{background:var(--accent-soft);border-color:transparent;color:var(--accent-text);font-weight:600}.pg-chips>button[aria-pressed=true] b{color:var(--accent-text)}.kc:has(>.pg-ib),.cz-kpi:has(>.pg-ib){position:relative;padding-right:60px!important}.pg-ib{position:absolute;top:16px;right:16px;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:color-mix(in srgb,var(--h,#6366F1) 14%,transparent);color:var(--h,#6366F1)}.pg-ib svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}@media(max-width:768px){.pg-head{align-items:flex-start}.pg-head h1.pg-title{font-size:22px!important}.pg-actions{width:100%}.kc:has(>.pg-ib),.cz-kpi:has(>.pg-ib){padding-right:46px!important}.pg-ib{top:12px;right:12px;width:28px;height:28px;border-radius:8px}.pg-ib svg{width:15px;height:15px}}.pg-ava{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;flex:none;font-size:16px;font-weight:600;background:color-mix(in srgb,var(--h,#6366F1) 16%,var(--gl));color:color-mix(in srgb,var(--h,#6366F1) 72%,var(--t1))}.class-card{border-color:var(--bd);box-shadow:var(--card-shadow);transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s,border-color .25s}.class-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--c-a) 35%,var(--bd));box-shadow:var(--card-shadow),0 14px 32px -16px color-mix(in srgb,var(--c-a) 50%,transparent)}.class-name{font-weight:600}.card-body{gap:8px}.metric{text-align:left;padding:9px 10px;background:var(--bg2);border-radius:10px;min-width:0}.metric span{font-size:18px;font-weight:600;line-height:1.25;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.metric label{display:block;margin-top:2px;font-size:11px;color:var(--t3);white-space:nowrap}.progress-fill{background:linear-gradient(90deg,var(--c-a),var(--c-b))}.card-foot{padding-top:12px;border-top:1px solid var(--bd)}.pg-empty{grid-column:1/-1;display:grid;justify-items:center;gap:8px;padding:56px 24px;border:1px dashed var(--bdS);border-radius:var(--rm,14px);text-align:center;background:var(--gl)}.pg-empty>i{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-text);margin-bottom:6px}.pg-empty>i svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.pg-empty>b{font-size:16px;font-weight:600;color:var(--t1)}.pg-empty>p{margin:0;font-size:13px;color:var(--t2);max-width:34em;line-height:1.7}.pg-empty>.pg-actions{margin-top:10px;justify-content:center;width:auto}.pg-ava.sm{width:28px;height:28px;border-radius:50%;font-size:12px}.pg-person{display:inline-flex;align-items:center;gap:10px;font-weight:500;color:var(--t1)}.pg-tabs{display:flex;gap:24px;margin-bottom:16px;border-bottom:1px solid var(--bd);overflow-x:auto;scrollbar-width:none}.pg-tabs::-webkit-scrollbar{display:none}.pg-tabs>button{position:relative;flex:none;display:inline-flex;align-items:center;gap:6px;height:42px;padding:0;border:0;background:none;font-size:14px;color:var(--t2);cursor:pointer}.pg-tabs>button:hover{color:var(--t1)}.pg-tabs>button[aria-selected=true]{color:var(--t1);font-weight:600}.pg-tabs>button[aria-selected=true]:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--c-a),var(--c-b))}.pg-tabs>button em{font-style:normal;font-size:12px;font-weight:500;min-width:20px;height:18px;padding:0 6px;border-radius:9px;display:inline-grid;place-items:center;background:var(--bg2);color:var(--t2);font-variant-numeric:tabular-nums}.pg-dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px;margin:0}.pg-dl>div{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--bd);min-width:0}.pg-dl dt{flex:none;width:72px;font-size:13px;color:var(--t3)}.pg-dl dd{margin:0;font-size:14px;color:var(--t1);min-width:0;overflow-wrap:anywhere}@media(max-width:768px){.pg-dl{grid-template-columns:minmax(0,1fr)}}.pg-bar{height:6px;border-radius:3px;background:var(--bg2);overflow:hidden}.pg-bar>b{display:block;height:100%;width:var(--p,0%);border-radius:3px;background:linear-gradient(90deg,var(--c-a),var(--c-b));transform-origin:left;animation:czGrow .9s cubic-bezier(.22,1,.36,1) .15s both}.pg-bar.warn>b{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.login-page{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(420px,1fr);align-items:stretch;justify-content:stretch;padding:0;min-height:100dvh;background:var(--bg)}.login-page:before{display:none}.lg-brand{position:relative;overflow:hidden;display:flex;flex-direction:column;padding:40px 56px 28px;color:#eef1fa;background:radial-gradient(70% 60% at 85% 10%,rgba(99,102,241,.35),transparent 70%),radial-gradient(60% 50% at 10% 90%,rgba(49,208,240,.16),transparent 70%),#070a1a}.lg-logo{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-weight:600;font-size:17px;letter-spacing:.02em}.lg-logo img{width:32px;height:32px;border-radius:8px}.lg-logo small{display:block;font-size:10px;letter-spacing:.14em;color:#7c86a6;font-weight:500;margin-top:-2px}.lg-copy{margin-top:auto;padding-top:48px;max-width:30em}.lg-copy h1{margin:0;font-size:clamp(34px,3.6vw,52px);line-height:1.12;letter-spacing:-.03em;font-weight:650;color:#fff;text-shadow:0 0 50px rgba(123,131,255,.4)}.lg-copy h1 span{display:block;color:#5a6390;text-shadow:none}.lg-copy p{margin:18px 0 0;font-size:15px;line-height:1.75;color:#aeb6d0}.lg-copy ul{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:10px}.lg-copy li{position:relative;padding-left:22px;font-size:14px;color:#c9cfe3}.lg-copy li:before{content:"";position:absolute;left:0;top:.55em;width:8px;height:8px;border-radius:50%;background:linear-gradient(135deg,#7b83ff,#31d0f0);box-shadow:0 0 10px #31d0f099}.lg-shot{margin:36px -120px 0 0;border-radius:14px 0 0 14px;padding:8px;background:linear-gradient(180deg,#ffffff1f,#ffffff08);border:1px solid rgba(255,255,255,.14);border-right:0;box-shadow:0 40px 80px -30px #000c,0 20px 60px -20px #6366f180}.lg-shot img{display:block;width:100%;height:auto;border-radius:8px 0 0 8px}.lg-main{display:flex;align-items:center;justify-content:center;padding:40px 24px}.login-page .login-card{width:400px;padding:36px 32px 28px;background:var(--gl);border:1px solid var(--bd);border-radius:20px;box-shadow:var(--card-shadow),0 30px 80px -40px #14172b59;-webkit-backdrop-filter:none;backdrop-filter:none}@media(max-width:960px){.login-page{grid-template-columns:minmax(0,1fr)}.lg-brand{display:none}.lg-main{padding:32px 16px}}.pg-back{margin:0 0 14px -8px;color:var(--t2)}.logo-on-dark,.dark .logo-on-light{display:none}.dark .logo-on-dark{display:block}@media(max-width:768px){body:has(.modal-overlay:not(.hidden)) .fai-bubble{display:none!important}}@media(max-width:640px){.cz-spark{margin:10px -14px -12px}}@media(hover:none){.mod:hover,.kc:hover,.mc:hover,.chart-container:hover,.cz-panel:hover,.cz-panel:has(.echart):hover,.class-card:hover,.kn-card:hover,.cf-card:hover,.sched-item:hover,.ai-card:hover,.tab:hover,.btn-pri:hover:not(:disabled),.btn-sec:hover:not(:disabled){transform:none!important}}html,body{overscroll-behavior:none}.ct,.main-content{overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}@media(max-width:640px){.tbl-wrap:has(.tbl-cards){overflow:visible!important;max-height:none!important}.tbl-cards,.tbl-cards tbody,.tbl-cards tr,.tbl-cards td{display:block;width:auto}.tbl-cards thead{display:none}.tbl-cards tr{position:relative;margin:0 0 10px;padding:6px 12px;border:1px solid var(--bd);border-radius:12px;background:var(--gl)}.tbl-cards tr:hover td{background:transparent}.tbl-cards td{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;padding:5px 0!important;border:0!important;white-space:normal;background:transparent}.tbl-cards td{text-align:left!important}.tbl-cards td[data-label]:before{content:attr(data-label);flex:0 0 68px;font-size:12px;color:var(--t3)}.tbl-cards td.tc-actions{margin-top:6px;padding-top:9px!important;border-top:1px solid var(--bd)!important}.tbl-cards td.tc-check{position:absolute;top:8px;right:10px;width:auto;padding:0!important}.tbl-cards td.tc-actions .action-dropdown{top:auto;bottom:calc(100% - 4px);right:auto;left:48px}.tbl-cards td[colspan]{display:block}.tbl-cards td.tc-note{max-width:none!important;white-space:normal!important}}@media(max-width:768px){.ct:has(>.advisor-container){display:flex;flex-direction:column;padding-bottom:8px;overflow:hidden}.ct:has(>.advisor-container)>.advisor-container{flex:1 1 0!important;min-height:0;height:auto!important}}
