@font-face{font-family:Inter;src:local('Inter')}*{box-sizing:border-box}html{font-size:16px}body{margin:0;background:#f4f7fc;color:#14223b;font-family:Inter,ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;line-height:1.5}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}a{color:#1857cc;text-decoration:none}h1,h2,h3,p{margin:0}h1{font-size:1.9rem;letter-spacing:-.055rem;line-height:1.25}h2{font-size:1.15rem;letter-spacing:-.02rem}h3{font-size:1rem}.muted{color:#65758f}.small{font-size:.875rem}.initial{padding:3rem}.skip{position:fixed;top:-100px;left:1rem;background:#fff;padding:1rem;z-index:100}.skip:focus{top:1rem}.sidebar{position:fixed;inset:0 auto 0 0;width:248px;background:#192b42;color:#fff;padding:29px 16px 22px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;gap:13px;align-items:center;padding:0 12px 32px}.brand img{width:43px;height:43px}.brand strong{font-size:1.45rem;letter-spacing:-.04rem}.brand small{display:block;font-size:.75rem;color:#b8c6d8;letter-spacing:.01rem;margin-top:2px}.nav{display:grid;gap:7px}.nav a{display:flex;align-items:center;gap:14px;padding:13px 15px;color:#c4d0e0;border-radius:9px;font-size:.925rem;font-weight:500}.nav a:hover{background:#223950;color:#fff}.nav a.active{background:#2463e9;color:#fff;box-shadow:0 6px 16px #0b1f3c44}.icon{display:inline-flex;flex:none;vertical-align:middle;width:21px;height:21px}.icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.sidebar-bottom{margin-top:auto;padding-top:30px}.school-card{padding:15px 13px;border-top:1px solid #ffffff17;margin-top:22px}.school-card strong{font-size:.875rem;display:block;overflow-wrap:anywhere}.school-card span{font-size:.75rem;color:#a5b6ca}.shell{margin-left:248px;min-height:100vh;display:flex;flex-direction:column}.topbar{min-height:76px;background:#fff;border-bottom:1px solid #e7edf5;padding:14px 36px;display:flex;justify-content:space-between;align-items:center;gap:15px}.crumb{color:#68768b;font-size:.875rem}.topright{display:flex;align-items:center;gap:18px}.date-label{display:flex;gap:9px;align-items:center;color:#556581;font-size:.875rem}.userchip{display:flex;align-items:center;gap:10px;border-left:1px solid #e7edf5;padding-left:20px}.avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#e8eef8;color:#244f87;font-weight:650;font-size:.85rem;flex:none}.avatar.alt{background:#ebefff;color:#5f5bc0}.userchip strong{font-size:.85rem;display:block}.userchip small{display:block;font-size:.75rem;color:#79869a}.iconbtn{border:1px solid #dfe6f0;background:#fff;border-radius:8px;min-width:38px;min-height:38px;display:inline-grid;place-items:center;color:#50637e}.iconbtn:hover{background:#f0f5fc}.hamburger{display:none}.main{width:100%;max-width:1600px;margin:0 auto;padding:31px 36px 36px;flex:1}.heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:25px}.heading p{color:#65758f;margin-top:7px;font-size:.95rem}.eyebrow{color:#2760bd;font-weight:650;letter-spacing:.09em;font-size:.72rem;text-transform:uppercase;margin-bottom:8px}.heading-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.btn{border:1px solid #2463e9;background:#2463e9;color:#fff;border-radius:8px;padding:9px 15px;min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:.875rem;font-weight:600;white-space:nowrap}.btn:hover{background:#1754d0}.btn.secondary{color:#3b506e;background:#fff;border-color:#dae3f0}.btn.secondary:hover{background:#f5f8fc}.btn.subtle{background:#edf3ff;color:#215cc8;border-color:#d9e6ff}.btn.danger{background:#fff1f2;color:#b2243b;border-color:#ffd2d9}.btn.tiny{padding:5px 11px;min-height:32px;font-size:.8rem}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:25px}.stats.three{grid-template-columns:repeat(3,minmax(0,1fr))}.stat{background:white;border:1px solid #e3eaf4;border-radius:12px;padding:22px;display:flex;gap:17px;align-items:center;box-shadow:0 3px 12px #233f6210}.stat-icon{border-radius:11px;width:57px;height:57px;display:grid;place-items:center;flex:none;background:#eaf2ff;color:#2164e8}.stat-icon .icon{width:27px;height:27px}.stat.green .stat-icon{background:#e4f8ed;color:#149755}.stat.orange .stat-icon{background:#fff4df;color:#bf7811}.stat.red .stat-icon{background:#ffebef;color:#dd4a66}.stat strong{font-size:1.9rem;line-height:1.1;letter-spacing:-.06rem}.stat p{color:#65758f;font-size:.875rem;margin-top:5px}.stat small{font-size:.75rem;color:#8795a9}.card{background:#fff;border:1px solid #e2eaf4;border-radius:12px;box-shadow:0 4px 15px #233f6208;overflow:hidden}.card-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 24px;border-bottom:1px solid #eef2f7}.card-head p{margin-top:4px;font-size:.8rem;color:#76859a}.filters{padding:19px 24px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}.search{position:relative;flex:1;min-width:180px}.search .icon{position:absolute;left:12px;top:12px;color:#8b9bb1;width:18px;height:18px}.search input{padding-left:39px;width:100%}input,select,textarea{border:1px solid #dce4ef;border-radius:8px;padding:10px 12px;background:#fff;color:#263a55;min-height:43px;font-size:.875rem;max-width:100%}input:focus,select:focus,textarea:focus{border-color:#5e8ef0;outline:3px solid #e5efff}input::placeholder{color:#8191a9}select{min-width:145px}textarea{resize:vertical;min-height:90px}.tablewrap{overflow:auto;padding:0 24px}table{width:100%;border-collapse:collapse;text-align:left;font-size:.875rem;white-space:nowrap}th{background:#f4f7fc;color:#526681;font-size:.78rem;font-weight:600;padding:13px 13px}th:first-child{border-radius:7px 0 0 7px}th:last-child{border-radius:0 7px 7px 0}td{padding:17px 13px;border-bottom:1px solid #ecf0f6;vertical-align:middle}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:#fafcff}.person{display:flex;gap:12px;align-items:center}.person strong{font-size:.875rem;font-weight:600;display:block}.person small{font-size:.75rem;color:#8090a6}.badge{display:inline-flex;align-items:center;gap:6px;border-radius:6px;padding:5px 10px;font-size:.75rem;font-weight:550;background:#edf2f9;color:#617289}.badge.green{background:#e5f8ed;color:#16824b}.badge.orange{background:#fff3db;color:#a16308}.badge.red{background:#ffeaf0;color:#c23550}.badge.blue{background:#eaf1ff;color:#235eca}.time{font-variant-numeric:tabular-nums;font-weight:500}.tablefooter{border-top:1px solid #ecf0f6;padding:18px 24px;display:flex;justify-content:space-between;gap:12px;align-items:center;color:#7a89a0;font-size:.8rem}.pagination{display:flex;gap:6px;align-items:center}.page{border:1px solid #dfe7f2;background:#fff;border-radius:7px;min-width:33px;height:33px;color:#61748f;font-size:.8rem}.page.selected{background:#2463e9;color:#fff;border-color:#2463e9}.sync{display:flex;align-items:center;gap:7px;font-size:.75rem;color:#6e819b}.sync .dot{width:7px;height:7px;border-radius:50%;background:#13a065}.demo-banner{background:#eaf1ff;border:1px solid #d0e0ff;border-radius:9px;padding:10px 14px;margin-bottom:22px;color:#315487;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:.8rem}.demo-banner .btn{font-size:.75rem;min-height:30px;padding:4px 10px}.notice{padding:14px 16px;background:#fff7e7;border:1px solid #f4dfac;color:#8a5e19;border-radius:9px;font-size:.875rem;margin-bottom:20px}.notice.error{background:#fff0f3;border-color:#f8c8d2;color:#a52a42}.notice.info{background:#edf4ff;border-color:#d6e4ff;color:#315888}.footer{padding:18px 36px;border-top:1px solid #e3eaf4;color:#8694a8;display:flex;justify-content:space-between;gap:14px;font-size:.75rem;background:#f9fbff}.empty{text-align:center;padding:48px 20px;color:#8291a5;white-space:normal}.empty .icon{width:34px;height:34px;margin-bottom:10px}.empty strong{display:block;color:#526781;margin-bottom:5px}.cols{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:22px}.pad{padding:24px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.formgrid .wide{grid-column:1/-1}label.field{display:grid;gap:7px;font-size:.8rem;color:#455b77;font-weight:550}.field small{font-weight:400;color:#77869b;font-size:.75rem}.field input,.field select{width:100%;min-width:0}.field.check{display:flex;align-items:center;gap:10px}.field.check input{width:17px;height:17px;min-height:0;accent-color:#2463e9}.form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:23px}.form-error{color:#b92c4e;font-size:.85rem;margin-top:13px}.stack{display:grid;gap:18px}.device{padding:20px;border:1px solid #e3eaf4;border-radius:10px;display:flex;justify-content:space-between;align-items:center;gap:14px}.device h3{margin-bottom:5px}.device small{color:#73849d}.tip{background:#f5f8fd;border:1px solid #e5ebf4;border-radius:9px;padding:16px;font-size:.875rem;color:#5b6f8a}.tip code,code{font-size:.8rem;overflow-wrap:anywhere;word-break:break-word}pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#162941;color:#dce9fb;border-radius:9px;padding:16px;font-size:.8rem}dialog{border:0;border-radius:14px;max-width:min(620px,calc(100vw - 24px));width:620px;padding:0;box-shadow:0 25px 90px #07162d66;color:#1c2f4a}dialog::backdrop{background:#12213788;backdrop-filter:blur(3px)}.modalhead{display:flex;justify-content:space-between;align-items:center;padding:22px 25px;border-bottom:1px solid #e5ebf4}.modalbody{padding:24px;max-height:75vh;overflow:auto}.modalbody p{margin-bottom:14px}.toast{position:fixed;bottom:24px;right:24px;background:#192e48;color:#fff;box-shadow:0 8px 25px #0f234b44;padding:14px 20px;border-radius:10px;z-index:90;max-width:min(450px,calc(100vw - 30px));font-size:.875rem;display:none}.toast.show{display:block}.child-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(285px,1fr));gap:20px;margin-bottom:25px}.child{padding:23px}.child-top{display:flex;align-items:center;gap:13px;margin-bottom:19px}.child-top .avatar{width:47px;height:47px}.child-times{display:grid;grid-template-columns:1fr 1fr;gap:12px}.child-times div{background:#f5f8fc;border-radius:8px;padding:14px}.child-times small{color:#6e829a;display:block;margin-bottom:4px}.child-times strong{font-size:1.5rem}.child-bottom{margin-top:18px;display:flex;justify-content:space-between;align-items:center;gap:10px}.timeline{display:grid;gap:12px}.event{display:flex;gap:13px;padding:15px;border:1px solid #e7edf6;border-radius:9px}.event p{font-size:.875rem;margin:3px 0;color:#627591}.event small{font-size:.75rem;color:#8293aa}.photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.photo-grid img{width:100%;border-radius:9px;background:#edf2f9;aspect-ratio:4/3;object-fit:cover}.photo-placeholder{aspect-ratio:4/3;display:grid;place-items:center;background:#f3f6fa;border-radius:9px;color:#8191a6;padding:15px;text-align:center;font-size:.8rem}.login-page{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:#fff}.login-aside{background:#192b42;color:#fff;display:flex;flex-direction:column;justify-content:space-between;padding:50px 60px}.login-aside .brand{padding:0}.login-aside h1{font-size:2.8rem;max-width:440px;line-height:1.18;letter-spacing:-.08rem;margin:45px 0 20px}.login-aside p{color:#b5c5db;max-width:400px}.login-line{border-top:1px solid #ffffff22;padding-top:24px;color:#90a7c4;font-size:.8rem}.login-main{padding:50px 30px;display:flex;align-items:center;justify-content:center}.login-form{width:100%;max-width:390px}.login-form h1{font-size:1.7rem;margin-bottom:9px}.login-form p{color:#7d8ba0;font-size:.9rem;margin-bottom:27px}.login-form .field{margin:18px 0}.login-form .btn{width:100%;margin-top:12px}.login-note{margin-top:22px!important;text-align:center;font-size:.8rem!important}.login-note button{border:0;background:none;color:#2463e9;cursor:pointer}.mobile-overlay{display:none}.spacer{height:18px}.child-select{display:grid;gap:8px;max-height:230px;overflow:auto;padding:10px;border:1px solid #e0e7f0;border-radius:8px}.child-select label{display:flex;align-items:center;gap:8px;font-size:.85rem}.child-select input{min-height:0}.checklist{display:grid;gap:12px;margin:0;padding-left:22px;color:#526882;font-size:.875rem}.checklist li{padding-left:3px}.notices-count{background:#edf3ff;color:#2463e9;font-size:.75rem;padding:3px 8px;border-radius:5px}.row-actions{display:flex;gap:7px}.scroll-hint{display:none}
@media(min-width:1600px){.main{padding-top:40px}.heading{margin-bottom:30px}.stat{padding:25px}}
@media(max-width:1180px){.sidebar{width:215px}.shell{margin-left:215px}.main{padding:25px}.topbar{padding:14px 25px}.stats{gap:12px}.stat{padding:17px;gap:12px}.stat-icon{width:43px;height:43px}.stat strong{font-size:1.6rem}.date-label{display:none}.cols{grid-template-columns:1fr}.footer{padding:18px 25px}}
@media(max-width:850px){.sidebar{transform:translateX(-100%);transition:transform .2s;width:248px}.sidebar.open{transform:translateX(0)}.mobile-overlay.visible{display:block;position:fixed;inset:0;background:#10213977;z-index:19}.shell{margin-left:0}.hamburger{display:inline-grid}.crumb{display:none}.topbar{min-height:66px;padding:12px 20px}.topright{gap:10px}.userchip{border:0;padding:0}.main{padding:23px 20px}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stats.three{grid-template-columns:repeat(3,minmax(0,1fr))}.heading{align-items:flex-start}.heading h1{font-size:1.65rem}.footer{padding:16px 20px}.login-aside{padding:40px}.login-aside h1{font-size:2.1rem}}
@media(max-width:560px){.main{padding:22px 14px}.topbar{padding:11px 14px}.heading{flex-direction:column;gap:14px;margin-bottom:20px}.heading-actions{width:100%}.heading-actions .btn{flex:1}.heading p{font-size:.875rem}.stats,.stats.three{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:20px}.stat{padding:14px 12px;gap:10px;align-items:flex-start}.stat-icon{width:34px;height:34px;border-radius:8px}.stat-icon .icon{width:20px;height:20px}.stat strong{font-size:1.6rem}.stat p{font-size:.75rem;margin-top:3px}.stat small{display:none}.card-head{padding:18px 16px;align-items:flex-start}.card-head h2{font-size:1rem}.card-head .sync{display:none}.filters{padding:16px;gap:10px}.search{flex-basis:100%}.filters select{flex:1;min-width:0;width:40%}.filters input[type=date]{width:100%}.tablewrap{padding:0 12px}.tablefooter{padding:15px 16px;flex-direction:column;align-items:flex-start}.tablefooter .pagination{align-self:flex-end}.demo-banner{align-items:flex-start}.demo-banner span{max-width:72%}.formgrid{grid-template-columns:1fr}.formgrid .wide{grid-column:auto}.pad,.modalbody{padding:18px}.modalhead{padding:18px}.footer span:last-child{display:none}.child-grid{grid-template-columns:1fr}.child{padding:18px}.login-page{grid-template-columns:1fr}.login-aside{padding:24px 25px}.login-aside h1,.login-aside p,.login-line{display:none}.login-main{padding:40px 24px}.device{flex-wrap:wrap}.photo-grid{grid-template-columns:1fr}.userchip small{display:none}.scroll-hint{display:block;color:#8697ac;font-size:.75rem;padding:0 16px 10px}.toast{bottom:15px;right:15px}.btn{white-space:normal}.pagination .page{min-width:31px}.heading input[type=date]{flex:1;min-width:0}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.brand{color:inherit}.child-select label[hidden]{display:none}
.public-shell{min-height:100vh;background:#f5f8fc}.public-header{height:90px;background:white;border-bottom:1px solid #e4ebf4;padding:0 max(30px,calc((100vw - 1240px)/2));display:flex;align-items:center;justify-content:space-between;gap:20px}.public-brand{display:flex;align-items:center;gap:12px;color:#1b2f4d}.public-brand img{width:43px;height:43px}.public-brand strong{font-size:1.4rem;letter-spacing:-.04rem;display:block}.public-brand small{font-size:.75rem;color:#7487a1;display:block}.public-header nav{display:flex;align-items:center;gap:28px}.public-nav{font-size:.875rem;color:#5d728f}.public-main{max-width:1300px;margin:auto;padding:36px 30px 50px}.public-intro{display:flex;justify-content:space-between;align-items:center;gap:25px;margin:12px 0 30px}.public-intro h1{font-size:2.2rem;letter-spacing:-.07rem}.public-intro p{margin-top:10px;color:#70819a;font-size:.95rem}.public-date{display:flex;gap:12px;align-items:center;color:#506985;font-size:.875rem}.public-date strong,.public-date span{display:block}.public-date span{font-size:.75rem;color:#8392a6;margin-top:4px}.public-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(285px,1fr);gap:24px;align-items:start}.public-progress{padding:27px}.public-progress .stat-icon{margin-bottom:17px}.progress-number{font-size:4rem;letter-spacing:-.15rem;display:block;color:#1d3655;margin:8px 0}.progress-number span{font-size:1.5rem;letter-spacing:0;color:#8293ab}.public-progress progress{width:100%;height:9px;appearance:none;border:0;border-radius:10px;overflow:hidden;display:block;background:#e8eef7}.public-progress progress::-webkit-progress-bar{background:#e8eef7}.public-progress progress::-webkit-progress-value{background:#2463e9;border-radius:10px}.public-progress p{font-size:.875rem;color:#6b7f99;margin:16px 0 22px}.public-progress small{font-size:.75rem;color:#8695aa;display:block;margin-top:12px}.progress-meta{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #e8eef6;padding-top:17px;font-size:.875rem}.public-telegram{padding:27px}.public-telegram h2{margin:17px 0 10px}.public-telegram p{font-size:.875rem;color:#72849c;margin-bottom:20px}.public-telegram .tip{font-size:.8rem}.public-footer{border-top:1px solid #e3ebf5;padding:20px 30px;max-width:1240px;margin:auto;display:flex;justify-content:space-between;gap:20px;font-size:.75rem;color:#7b8fa7}
@media(max-width:850px){.public-grid{grid-template-columns:1fr}.public-intro{align-items:flex-start;flex-direction:column}.public-header{padding:18px 22px}.public-nav{display:none}.public-main{padding:25px 20px}.public-grid .stack{grid-template-columns:1fr 1fr}.public-intro h1{font-size:1.9rem}}
@media(max-width:560px){.public-header{height:auto;padding:17px 15px;gap:12px}.public-brand strong{font-size:1.25rem}.public-brand img{width:37px;height:37px}.public-header .btn{padding:8px 10px;font-size:.75rem;min-height:38px}.public-header .btn .icon{display:none}.public-main{padding:22px 14px 30px}.public-intro{gap:18px;margin:5px 0 24px}.public-intro h1{font-size:1.8rem}.public-intro p{font-size:.875rem}.public-grid{gap:18px}.public-grid .stack{grid-template-columns:1fr}.public-progress,.public-telegram{padding:22px}.public-footer{padding:18px;flex-direction:column;gap:6px}.public-date{font-size:.8rem}.public-brand small{max-width:165px;overflow-wrap:anywhere}.public-main .demo-banner span{max-width:100%}}
