:root{--indigo-50:#eef2ff;--indigo-100:#e0e7ff;--indigo-200:#c7d2fe;--indigo-500:#6366f1;--indigo-600:#4f46e5;--indigo-700:#4338ca;--indigo-950:#1e1b4b;--bg:#f6f7fb;--surface:#fff;--border:#e8eaf1;--text:#1f2333;--muted:#7b8194;--green-50:#e9f9f0;--green-600:#16a34a;--red-50:#fdecec;--red-600:#dc2626;--amber-50:#fef6e7;--amber-700:#b45309;--radius:14px;--shadow-sm:0 1px 2px rgba(20,25,50,.05);--shadow:0 4px 16px rgba(30,27,75,.07);--shadow-lg:0 12px 40px rgba(30,27,75,.16)}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-size:14px}.splash{position:fixed;inset:0;z-index:300;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;color:#fff;background:linear-gradient(135deg,#4f46e5,#6d28d9 45%,#3730a3);background-size:200% 200%;animation:splashGrad 7s ease infinite;opacity:1;transition:opacity .8s ease,transform .8s ease}.splash.out{opacity:0;transform:scale(1.06);pointer-events:none}@keyframes splashGrad{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.splash-inner{z-index:1;flex-direction:column}.splash-inner,.splash-logo-wrap{position:relative;display:flex;align-items:center}.splash-logo-wrap{justify-content:center;margin-bottom:26px}.splash-halo{position:absolute;width:230px;height:230px;border-radius:50%;background:radial-gradient(circle,hsla(0,0%,100%,.35) 0,hsla(0,0%,100%,0) 68%);animation:haloPulse 3s ease-in-out infinite}@keyframes haloPulse{0%,to{transform:scale(.9);opacity:.55}50%{transform:scale(1.12);opacity:1}}.splash-logo{position:relative;width:132px;height:132px;border-radius:28px;background:#fff;display:flex;align-items:center;justify-content:center;padding:14px;box-shadow:0 20px 50px rgba(0,0,0,.35);animation:logoPop .9s cubic-bezier(.2,.8,.2,1) both}.splash-logo img{max-width:100%;max-height:100%;object-fit:contain}@keyframes logoPop{0%{opacity:0;transform:scale(.7) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}.splash-name{font-size:26px;font-weight:800;letter-spacing:.4px;animation:fadeUp .7s ease .25s both}.splash-sub{font-size:13px;color:#d7dbff;margin-top:5px;animation:fadeUp .7s ease .4s both}.splash-tag{margin-top:14px;font-size:14px;font-style:italic;color:#e5e7ff;animation:fadeUp .7s ease .55s both}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.splash-bar{margin-top:30px;width:168px;height:4px;border-radius:4px;background:hsla(0,0%,100%,.22);overflow:hidden;animation:fadeUp .7s ease .7s both}.splash-bar span{display:block;height:100%;width:45%;border-radius:4px;background:linear-gradient(90deg,hsla(0,0%,100%,0),#fff,hsla(0,0%,100%,0));animation:shimmer 1.3s ease-in-out infinite}@keyframes shimmer{0%{transform:translateX(-120%)}to{transform:translateX(360%)}}.center{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(1200px 600px at 50% -10%,var(--indigo-100),var(--bg))}.card{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:38px 34px;width:100%;max-width:400px;box-shadow:var(--shadow-lg)}.brand{font-size:32px;font-weight:800;letter-spacing:.5px;background:linear-gradient(90deg,var(--indigo-600),var(--indigo-500));-webkit-background-clip:text;background-clip:text;color:transparent}.tag{color:var(--muted);margin-bottom:22px;font-size:13.5px;text-align:center}label{display:block;font-size:12.5px;font-weight:600;margin:14px 0 6px;color:#4a5064}input,select{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:10px;font-size:14px;background:#fbfbfd;color:var(--text);transition:border-color .15s,box-shadow .15s,background .15s}input:hover,select:hover{border-color:var(--indigo-200)}input:focus,select:focus{outline:none;border-color:var(--indigo-500);background:#fff;box-shadow:0 0 0 3px var(--indigo-100)}input:disabled,select:disabled{background:#f1f2f6;color:#aab;cursor:not-allowed}button{padding:10px 16px;border:none;border-radius:10px;background:var(--indigo-600);color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s,transform .05s,box-shadow .15s;display:inline-flex;align-items:center;gap:7px}button:hover{background:var(--indigo-700);box-shadow:var(--shadow)}button:active{transform:translateY(1px)}button:disabled{background:#c3c7d9;cursor:not-allowed;box-shadow:none}button.block{width:100%;margin-top:22px;justify-content:center;padding:12px}button.sm{padding:6px 12px;font-size:13px;border-radius:8px}button.grey{background:#eef0f5;color:#4a5064}button.grey:hover{background:#e2e5ee;box-shadow:none}button.danger{background:var(--red-50);color:var(--red-600)}button.danger:hover{background:#fbdcdc;box-shadow:none}.buspin{font-size:22px;line-height:1;text-align:center;filter:drop-shadow(0 2px 3px rgba(0,0,0,.4))}.buspin.child{width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:#16a34a;border-radius:50%;box-shadow:0 0 0 4px rgba(22,163,74,.35)}.schoolpin{font-size:22px;line-height:1;filter:drop-shadow(0 2px 3px rgba(0,0,0,.4))}#busmap{border-radius:var(--radius);z-index:0}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));grid-gap:14px;gap:14px}.gcard{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:hidden;box-shadow:var(--shadow-sm)}.gcard img{object-fit:cover;display:block;cursor:pointer}.gcard .gph,.gcard img{width:100%;aspect-ratio:1/1}.gcard .gph{background:#eceef5}.gcard .gcap{padding:8px 10px;font-size:12.5px;color:var(--text)}.gcard .gdel{position:absolute;top:8px;right:8px}.welcome{position:fixed;inset:0;z-index:200;overflow-y:auto;display:flex;align-items:center;justify-content:center;padding:24px;background:linear-gradient(135deg,#4f46e5,#6d28d9 45%,#3730a3);animation:fade .4s ease}.wc-card{background:var(--surface);border-radius:22px;width:100%;max-width:440px;padding:28px 26px;box-shadow:0 24px 60px rgba(0,0,0,.3);text-align:center}.wc-school{border-bottom:1px solid var(--border);padding-bottom:18px}.wc-logo{height:78px;width:auto;margin:0 auto 10px;display:block}.wc-sname{font-size:20px;font-weight:800;color:var(--text)}.wc-quote{font-size:14px;font-style:italic;color:var(--indigo-600);margin-top:4px}.wc-high{list-style:none;margin:12px 0 0;padding:0;font-size:12.5px;color:var(--muted);line-height:1.9}.wc-user{padding:20px 0 6px}.wc-avatar{position:relative;width:96px;height:96px;border-radius:50%;margin:0 auto 12px;background:var(--indigo-100);color:var(--indigo-700);border:none;box-shadow:none;display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:800;cursor:pointer;padding:0;overflow:visible}.wc-avatar:hover{box-shadow:0 0 0 4px rgba(129,140,248,.28)}.wc-avatar img{width:96px;height:96px;border-radius:50%;object-fit:cover}.wc-cam{position:absolute;right:-2px;bottom:-2px;width:30px;height:30px;border-radius:50%;background:var(--indigo-600);color:#fff;display:flex;align-items:center;justify-content:center;border:3px solid var(--surface)}.wc-name{font-size:18px;font-weight:700;color:var(--text)}.wc-role{margin-top:6px}.wc-children{margin-top:16px;display:flex;flex-direction:column;gap:8px}.wc-child{background:#f6f7fb;border:1px solid var(--border);border-radius:12px;padding:10px 14px;text-align:left}.wc-child-name{font-weight:700;font-size:14px;color:var(--text)}.wc-child-sub{font-size:12.5px;color:var(--muted);margin-top:2px}.wc-enter{width:100%;margin-top:22px;padding:13px;gap:8px;font-size:16px;font-weight:700}.wc-enter,.who-avatar{justify-content:center}.who-avatar{width:54px;height:54px;border-radius:50%;object-fit:cover;flex-shrink:0;background:var(--indigo-100);color:var(--indigo-700);display:inline-flex;align-items:center;font-weight:800;font-size:20px}.acc{border-bottom:1px solid var(--border)}.acc:last-child{border-bottom:none}.acc-head{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:#f7f8fc;color:var(--text);border:none;box-shadow:none;border-radius:0;padding:12px 18px;cursor:pointer;font-size:15px;font-weight:700}.acc-head:hover{background:#eef1f9;box-shadow:none}.acc-chev{display:inline-block;transition:transform .15s ease;color:var(--indigo-600);font-size:12px}.acc-chev.open{transform:rotate(90deg)}.acc-title{flex:1 1}.acc-count{background:var(--indigo-100);color:var(--indigo-700);border-radius:999px;font-size:12px;font-weight:700;padding:2px 10px;min-width:26px;text-align:center}.acc table{border-top:1px solid var(--border)}.chat-wrap{display:flex;gap:16px;height:calc(100vh - 190px);min-height:420px}.chat-list{width:300px;flex-shrink:0;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:8px}.chat-item{display:block;width:100%;text-align:left;background:transparent;color:inherit;border:none;box-shadow:none;border-radius:10px;padding:10px 12px;margin-bottom:4px;cursor:pointer}.chat-item:hover{background:#f2f3f9;box-shadow:none}.chat-item.on{background:var(--indigo-100)}.ci-top{display:flex;align-items:center;justify-content:space-between}.ci-name{font-weight:700;font-size:14px}.ci-badge{background:var(--red-600);color:#fff;border-radius:999px;font-size:11px;font-weight:700;padding:1px 7px}.ci-sub{font-size:11.5px;color:var(--muted);margin:1px 0 3px}.ci-last{font-size:12.5px;color:#6b7180;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-main{flex:1 1;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:hidden}.chat-head{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--border)}.chat-body{flex:1 1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;background:#f7f8fc}.bubble{max-width:74%;padding:8px 12px;border-radius:14px;font-size:14px;line-height:1.4}.bubble .bubble-who{font-size:11px;font-weight:700;opacity:.7;margin-bottom:2px}.bubble .bubble-time{font-size:10.5px;opacity:.6;margin-top:3px;text-align:right}.bubble.me{align-self:flex-end;background:var(--indigo-600);color:#fff;border-bottom-right-radius:4px}.bubble.them{align-self:flex-start;background:#fff;border:1px solid var(--border);border-bottom-left-radius:4px}.chat-compose{display:flex;gap:8px;padding:12px;border-top:1px solid var(--border);background:var(--surface);align-items:center}.chat-compose input[type=text],.chat-compose>input:not([type]){flex:1 1}.attach-btn{background:#eef0f5;color:#4a5064;box-shadow:none;padding:8px 12px;font-size:16px}.attach-btn:hover{background:#e2e5ee;box-shadow:none}.bubble-file{display:inline-block;margin-top:4px;background:hsla(0,0%,100%,.18);color:inherit;border:1px solid hsla(0,0%,100%,.35);box-shadow:none;font-size:12.5px;padding:5px 10px;border-radius:8px;text-align:left}.bubble.them .bubble-file{background:#eef1ff;color:var(--indigo-700);border-color:var(--indigo-100)}.back-mobile{display:none}@media (max-width:760px){.chat-wrap{height:calc(100vh - 170px)}.chat-list{width:100%}.chat-list.hide-mobile,.chat-main.hide-mobile{display:none}.back-mobile{display:inline-flex}}.savebar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;background:#ecfdf3;border:1px solid #b6ecc9;color:#14683a;border-radius:12px;padding:12px 16px;margin-bottom:16px;font-size:14px}button.wa{background:#25d366;color:#fff;box-shadow:none}button.wa:hover{background:#1ebe5b;box-shadow:none}button.ghost{background:transparent;color:#4a5064;box-shadow:none;border:1px solid #d7dae4}button.ghost:hover{background:#eef0f5;box-shadow:none}tr.rowsel>td{background:#eef1ff}.err{color:var(--red-600)}.err,.ok{font-size:13px;margin-top:12px}.ok{color:var(--green-600)}.shell{display:flex;min-height:100vh}.side{width:236px;flex-shrink:0;padding:20px 0;background:linear-gradient(180deg,var(--indigo-950),#2a2566);color:#c9cdf0;position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow-y:auto}.side .logo{font-size:24px;font-weight:800;color:#fff;padding:4px 22px 18px;margin-bottom:8px;letter-spacing:1px;display:flex;align-items:center;gap:9px;border-bottom:1px solid hsla(0,0%,100%,.08)}.mobilebar .mlogo,.side .logo{cursor:pointer}.side .logo .dot{width:11px;height:11px;border-radius:50%;background:#a5b4fc;box-shadow:0 0 12px #818cf8}.side .logo img{height:44px;width:auto;object-fit:contain;background:#fff;border-radius:10px;padding:5px}.brand-badge{display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#6366f1,#7c3aed,#06b6d4);color:#fff;font-weight:800;flex-shrink:0}.side .logo .brand-badge{width:44px;height:44px;border-radius:10px;font-size:18px}.mobilebar .mlogo .brand-badge{width:34px;height:34px;border-radius:8px;font-size:14px}.mobilebar .mlogo img{height:34px;width:auto;object-fit:contain;background:#fff;border-radius:8px;padding:4px}.login-logo{display:block;width:auto;max-width:240px;height:auto;margin:0 auto 10px}.nav a{display:flex;align-items:center;gap:11px;padding:11px 22px;color:#c9cdf0;text-decoration:none;font-size:14px;cursor:pointer;border-left:3px solid transparent;transition:background .15s,color .15s}.nav a svg{width:18px;height:18px;opacity:.85;flex-shrink:0}.navbadge{margin-left:auto;background:var(--red-600);color:#fff;border-radius:999px;font-size:11px;font-weight:700;padding:1px 7px;min-width:20px;text-align:center}.nav a:hover{background:hsla(0,0%,100%,.06);color:#fff}.nav a.active{background:rgba(129,140,248,.18);color:#fff;border-left-color:#a5b4fc;font-weight:600}.nav a.active svg{opacity:1}.main{flex:1 1;padding:26px 34px 60px;overflow-x:auto;min-width:0;background:radial-gradient(1100px 520px at 60% -12%,var(--indigo-100) 0,rgba(224,231,255,0) 62%),var(--bg)}.main-head{padding-bottom:16px;border-bottom:1px solid var(--border)}.mobilebar{display:none;align-items:center;gap:12px;padding:12px 16px;background:var(--indigo-950);color:#fff;position:-webkit-sticky;position:sticky;top:0;z-index:50}.mobilebar .hamburger{background:transparent;padding:6px;box-shadow:none}.mobilebar .hamburger:hover{background:hsla(0,0%,100%,.1);box-shadow:none}.mobilebar .mlogo{font-weight:800;letter-spacing:1px;font-size:19px;display:flex;align-items:center;gap:8px}.mobilebar .mlogo .dot{width:9px;height:9px;border-radius:50%;background:#a5b4fc;box-shadow:0 0 10px #818cf8}.navscrim{display:none}.main-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:22px}.main-head h2{color:var(--text);font-size:22px;font-weight:700}.main-head .sub-label{margin-top:2px}.main-head .sub-label,.who{color:var(--muted);font-size:13px}.who{text-align:right;line-height:1.7}.who a{color:var(--indigo-600);cursor:pointer;font-weight:600;text-decoration:none}.who a:hover{text-decoration:underline}.pill{display:inline-block;padding:2px 10px;border-radius:20px;background:var(--indigo-100);color:var(--indigo-700);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.3px}.pill.r-admin{background:#e0e7ff;color:#4338ca}.pill.r-teacher{background:#dbeafe;color:#1d4ed8}.pill.r-accounts{background:#dcfce7;color:#15803d}.pill.r-hr{background:#ffe4e6;color:#be123c}.pill.r-driver{background:#fef9c3;color:#854d0e}.pill.r-parent{background:#fef3c7;color:#b45309}@keyframes panelIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.dstats,.panel,.stats{animation:panelIn .35s ease both}.stat{transition:transform .12s ease,box-shadow .15s ease}.sk{background:linear-gradient(90deg,#eceef5 25%,#f5f6fb 37%,#eceef5 63%);background-size:400% 100%;animation:skShimmer 1.4s ease infinite;border-radius:8px}@keyframes skShimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.sk-card{height:88px;border-radius:16px}.sk-panel{height:180px;border-radius:var(--radius);margin-bottom:20px}.head-right{display:flex;align-items:flex-start;gap:14px}.bell-wrap{position:relative}.bell{background:#fff;border:1px solid var(--border);width:58px;height:58px;padding:0;border-radius:16px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(204,43,43,.18)}.bell:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(204,43,43,.26)}.bell{overflow:hidden}.bell svg{width:42px;height:42px}.bell-img{width:100%;height:100%;object-fit:cover;display:block}.bell.has-unread{animation:bellPulse 1.8s ease-in-out infinite}@keyframes bellPulse{0%,to{box-shadow:0 4px 14px rgba(204,43,43,.2)}50%{box-shadow:0 4px 14px rgba(204,43,43,.2),0 0 0 6px rgba(204,43,43,.16)}}.bell-badge{position:absolute;top:-6px;right:-6px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:var(--red-600);color:#fff;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;border:2px solid var(--surface)}.notif-panel{position:absolute;right:0;top:48px;width:320px;max-height:420px;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-lg);z-index:80}.notif-head{padding:12px 16px;font-weight:700;color:var(--text);border-bottom:1px solid var(--border);font-size:14px}.notif-empty{padding:24px 16px;color:var(--muted);text-align:center;font-size:13px}.notif-item{padding:12px 16px;border-bottom:1px solid #f2f3f8}.notif-item:last-child{border-bottom:none}.notif-item.unread{background:var(--indigo-50)}.notif-item.clickable{cursor:pointer;transition:background .12s}.notif-item.clickable:hover{background:#eef2ff}.notif-title{font-weight:600;font-size:13.5px;color:var(--text)}.notif-body{font-size:13px;color:#5a6072;margin-top:2px}.notif-time{font-size:11px;color:var(--muted);margin-top:4px}@media (max-width:860px){.notif-panel{width:min(88vw,320px);left:0;right:auto}}.greet{gap:14px;margin-bottom:24px}.greet,.greet .av{display:flex;align-items:center}.greet .av{width:54px;height:54px;border-radius:50%;flex-shrink:0;background:linear-gradient(135deg,var(--indigo-500),var(--indigo-600));color:#fff;justify-content:center;font-weight:800;font-size:22px}.greet .gt{font-size:21px;font-weight:800;color:var(--text)}.greet .gs{font-size:13px;color:var(--muted);margin-top:2px}.tilegrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:16px;gap:16px}.tile{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:22px 12px;text-align:center;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform .12s ease,box-shadow .15s ease}.tile:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.tile:focus-visible{outline:none;box-shadow:0 0 0 3px var(--indigo-100)}.tile .ic{width:62px;height:62px;border-radius:18px;margin:0 auto 12px;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 18px rgba(30,27,75,.18);transition:transform .12s ease}.tile:hover .ic{transform:scale(1.06)}.tile .ic svg{width:30px;height:30px}.tile .ic.ic-plain{background:transparent!important;box-shadow:none}.tile .ic.ic-plain svg{width:62px;height:62px;filter:drop-shadow(0 4px 8px rgba(30,27,75,.16))}.ro-lock input,.ro-lock select,.ro-lock textarea{pointer-events:none!important;background:#eef0f4!important;color:#6b7280!important;cursor:not-allowed!important}.ro-lock button{opacity:.5!important;pointer-events:none!important;cursor:not-allowed!important}.tile .lbl{font-size:13.5px;font-weight:600;color:var(--text)}.dstats{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));grid-gap:16px;gap:16px;margin-bottom:20px}.dstat{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:16px;display:flex;gap:13px;align-items:center;box-shadow:var(--shadow-sm);cursor:pointer;transition:transform .1s ease,box-shadow .15s ease}.dstat:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.dstat .di{width:46px;height:46px;border-radius:13px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.dstat .di svg{width:23px;height:23px}.dstat .dn{font-size:24px;font-weight:800;color:var(--text);line-height:1.1}.dstat .dl{font-size:12px;color:var(--muted);margin-top:2px}.bars{display:flex;align-items:flex-end;gap:12px;height:160px;padding-top:10px}.bars .col{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}.bars .bar{width:70%;max-width:46px;border-radius:6px 6px 0 0;background:linear-gradient(var(--indigo-400,#818cf8),var(--indigo-600));min-height:3px}.bars .cap{font-size:11px;color:var(--muted)}.bars .val{font-size:10px;color:var(--muted)}.tops{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:12px;gap:12px}.top{border-radius:14px;padding:16px;text-align:center}.top .tav{width:46px;height:46px;border-radius:50%;margin:0 auto 8px;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:18px}.top .tn{font-size:13px;font-weight:700}.top .tp{font-size:12px;margin-top:2px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:22px;margin-bottom:20px;box-shadow:var(--shadow)}.panel h3{color:var(--text);margin-bottom:16px;font-size:15px;font-weight:700;display:flex;align-items:center;gap:10px}.panel h3:before{content:"";width:4px;height:16px;border-radius:2px;background:linear-gradient(var(--indigo-500),var(--indigo-600));flex-shrink:0}.row{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid #f2f3f8;font-size:14px}.row:last-child{border-bottom:none}.row span:first-child{color:var(--muted)}.row span:last-child{font-weight:600}.stats{display:flex;gap:16px;flex-wrap:wrap}.stat{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:20px 22px;flex:1 1;min-width:150px;box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.stat:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(var(--indigo-500),var(--indigo-600))}.stat .n{font-size:30px;font-weight:800;color:var(--indigo-700);line-height:1.1}.stat .l{font-size:12px;color:var(--muted);margin-top:6px;text-transform:uppercase;letter-spacing:.5px;font-weight:600}.stat.clickable{cursor:pointer;transition:transform .1s ease,box-shadow .15s ease}.stat.clickable:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.stat.clickable:focus-visible{outline:none;box-shadow:0 0 0 3px var(--indigo-100)}.stat .go{color:var(--indigo-600);font-weight:700;opacity:0;transition:opacity .15s;margin-left:4px}.stat.clickable:hover .go{opacity:1}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;background:#f7f8fc;color:#5a6072;font-size:11.5px;text-transform:uppercase;letter-spacing:.5px;font-weight:700;border-bottom:1px solid var(--border)}td,th{padding:12px 14px}td{border-bottom:1px solid #f2f3f8}tbody tr:last-child td{border-bottom:none}tbody tr{transition:background .12s}tbody tr:nth-child(2n) td{background:#fbfcfe}tbody tr:hover td{background:#eef2ff}.muted{color:#a2a8ba}.linkbtn{border:none;padding:0;margin:0;color:var(--indigo-600);font-weight:600;cursor:pointer;font-size:inherit;text-align:left}.linkbtn,.linkbtn:hover{background:none;box-shadow:none}.linkbtn:hover{text-decoration:underline}.tag-status{padding:3px 10px;border-radius:20px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.3px}.s-active{background:var(--green-50);color:var(--green-600)}.s-inactive{background:var(--red-50);color:var(--red-600)}.s-other{background:var(--indigo-50);color:var(--indigo-700)}.empty{text-align:center;padding:40px 20px;color:var(--muted)}.empty .ico{font-size:30px;margin-bottom:8px;opacity:.5}.empty .t{font-weight:600;color:#5a6072;margin-bottom:4px}.empty .d{font-size:13px}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.toolbar input,.toolbar select{max-width:260px}.grid2{grid-template-columns:1fr 1fr;grid-gap:14px 16px}.grid2,.grid3{display:grid;gap:14px 16px}.grid3{grid-template-columns:1fr 1fr 1fr;grid-gap:14px 16px}@media (max-width:640px){.grid2,.grid3{grid-template-columns:1fr}}.actions{display:flex;gap:8px}.formfoot{margin-top:20px;display:flex;gap:10px}.subtabs{display:inline-flex;background:#eef0f5;border-radius:12px;padding:4px;gap:4px;margin-bottom:18px;flex-wrap:wrap}.subtabs button{background:transparent;color:#5a6072;box-shadow:none;padding:7px 15px}.subtabs button:hover{background:hsla(0,0%,100%,.7)}.subtabs button.on{background:#fff;color:var(--indigo-700);box-shadow:var(--shadow-sm)}.grouprow{display:flex;gap:18px;padding:14px 4px;border-bottom:1px solid #f2f3f8;align-items:flex-start}.grouprow:last-child{border-bottom:none}.grouprow .cls{min-width:150px;font-weight:700;color:var(--text);padding-top:5px;display:flex;align-items:center;gap:8px}.grouprow .cls .count{font-size:11px;font-weight:600;color:var(--muted)}.chipwrap{display:flex;flex-wrap:wrap;gap:8px;flex:1 1}.chip{gap:4px;background:var(--indigo-50);color:var(--indigo-700);border:1px solid var(--indigo-100);border-radius:20px;padding:5px 5px 5px 13px;font-size:13px;font-weight:600}.chip,.chip .x{display:inline-flex;align-items:center}.chip .x{border:none;background:transparent;color:var(--indigo-600);cursor:pointer;width:20px;height:20px;border-radius:50%;padding:0;font-size:15px;line-height:1;justify-content:center}.chip .x:hover{background:var(--indigo-200);box-shadow:none}.overlay{position:fixed;inset:0;background:rgba(30,27,75,.4);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:20px;z-index:60;animation:fade .15s ease}.modal{background:var(--surface);border-radius:18px;padding:28px;width:100%;max-width:580px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);animation:pop .18s ease}.modal.wide{max-width:780px}.modal h3{color:var(--text);margin-bottom:18px;font-size:18px;font-weight:700}.import-help{background:#f6f7fb;border:1px solid var(--border);border-radius:12px;padding:14px 16px;font-size:13px;color:#4a5064}.import-help p{line-height:1.5}.import-errors{background:var(--red-50);border:1px solid #f3cccc;border-radius:12px;padding:12px 16px;font-size:13px;color:var(--red-600);max-height:220px;overflow-y:auto;margin-bottom:12px}.modal textarea{border:1px solid var(--border);border-radius:10px;padding:10px 12px;resize:vertical}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes pop{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}.toaster{position:fixed;top:20px;right:20px;z-index:100;flex-direction:column}.toast,.toaster{display:flex;gap:10px}.toast{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--indigo-500);border-radius:12px;padding:13px 18px;min-width:240px;max-width:360px;box-shadow:var(--shadow-lg);font-size:14px;color:var(--text);align-items:center;animation:slidein .22s ease}.toast.success{border-left-color:var(--green-600)}.toast.error{border-left-color:var(--red-600)}.toast .ticon{width:20px;height:20px;flex-shrink:0}.toast.success .ticon{color:var(--green-600)}.toast.error .ticon{color:var(--red-600)}@keyframes slidein{0%{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}@media (max-width:860px){.shell{flex-direction:column}.mobilebar{display:flex}.side{position:fixed;top:0;left:0;height:100vh;width:250px;transform:translateX(-100%);transition:transform .25s ease;z-index:70;box-shadow:var(--shadow-lg)}.side.open{transform:translateX(0)}.navscrim{display:block;position:fixed;inset:0;background:rgba(18,18,40,.45);z-index:65}.main{padding:16px 16px 60px}.main-head{flex-direction:column;align-items:flex-start;gap:8px}.main-head h2{font-size:19px}.who{text-align:left}.panel{overflow-x:auto;-webkit-overflow-scrolling:touch}table{min-width:480px}.stats{gap:12px}.stat{min-width:calc(50% - 8px)}.stat .n{font-size:26px}.stat .go{opacity:1}.grid2,.grid3{grid-template-columns:1fr}.dgrid{grid-template-columns:1fr!important}.tilegrid{grid-template-columns:repeat(2,1fr);gap:12px}.toolbar{gap:9px}.toolbar input,.toolbar select{max-width:100%!important;width:100%}button{padding:11px 16px}button.sm{padding:9px 13px}input,select{padding:11px 13px;font-size:15px}.modal{padding:20px;border-radius:16px}.subtabs{width:100%}.grouprow{flex-direction:column;gap:8px}.grouprow .cls{padding-top:0}}@media (max-width:460px){.stat{min-width:100%}}