:root{--navy:#102a43;--navy-2:#183b56;--blue:#1769aa;--blue-dark:#0f568f;--sky:#eaf5ff;--green:#14805e;--red:#b42318;--line:#d9e4ed;--ink:#1b2b3a;--muted:#657686;--white:#fff;--surface:#f4f8fb;--shadow:0 12px 32px rgba(16,42,67,.08);--radius:18px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;background:radial-gradient(circle at 95% 0,rgba(23,105,170,.08),transparent 28rem),var(--surface);color:var(--ink);font:15px/1.55 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}a{color:var(--blue)}.wrap{width:min(1180px,calc(100% - 32px));margin-inline:auto}
.top{position:sticky;top:0;z-index:30;color:#fff;background:linear-gradient(110deg,#0c253b,var(--navy-2));border-bottom:1px solid rgba(255,255,255,.09);box-shadow:0 4px 18px rgba(5,25,43,.2)}.nav{min-height:70px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:11px;color:#fff;text-decoration:none;white-space:nowrap}.brand span{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:linear-gradient(145deg,#fff,#dceeff);color:var(--navy);font-size:13px;font-weight:900;letter-spacing:.04em;box-shadow:0 5px 15px rgba(0,0,0,.16)}.brand b{font-size:17px}.nav nav{display:flex;align-items:center;gap:5px;overflow-x:auto;scrollbar-width:none}.nav nav::-webkit-scrollbar{display:none}.nav nav a{padding:9px 11px;border-radius:9px;color:#dcecff;text-decoration:none;font-size:14px;font-weight:700;white-space:nowrap;transition:.18s}.nav nav a:hover,.nav nav a:focus-visible{background:rgba(255,255,255,.11);color:#fff;outline:none}
.hero{max-width:850px;padding:66px 0 32px}.hero h1,.heading h1{margin:5px 0 16px;color:var(--navy);font-size:clamp(34px,5vw,56px);line-height:1.06;letter-spacing:-.035em}.hero p{max-width:720px;margin:0;color:var(--muted);font-size:17px}.eyebrow{margin-bottom:8px!important;color:var(--blue)!important;font-size:12px!important;font-weight:850!important;letter-spacing:.15em;text-transform:uppercase}
.card{margin:0 0 22px;padding:28px;overflow:visible;background:rgba(255,255,255,.97);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.card:hover{border-color:#cedde9}h2{margin:0 0 20px;color:var(--navy);font-size:21px;line-height:1.25}h3{margin:0 0 12px;color:var(--navy);font-size:15px}.grid{display:grid;gap:18px}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
label{display:grid;gap:7px;color:#344b5f;font-weight:700}input,select,textarea{width:100%;min-height:44px;padding:10px 12px;border:1px solid #bdcbd8;border-radius:10px;outline:none;background:#fff;color:var(--ink);font:inherit;transition:border-color .16s,box-shadow .16s}textarea{min-height:112px;resize:vertical}input:hover,select:hover,textarea:hover{border-color:#91abc0}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 4px rgba(23,105,170,.13)}input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;background:#eef3f6;color:var(--muted)}input[type=radio],input[type=checkbox]{width:19px;min-height:19px;accent-color:var(--blue)}
.section-title{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:19px}.section-title>div{display:flex;align-items:center;gap:12px}.section-title span{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;border:1px solid #cce4f7;border-radius:10px;background:var(--sky);color:var(--blue);font-weight:900}.section-title h2{margin:0}.section-title small,.muted{color:var(--muted)}
.table-scroll{overflow:auto;border:1px solid var(--line);border-radius:12px;scrollbar-color:#9fb5c7 #edf3f7}table{width:100%;min-width:570px;border-collapse:separate;border-spacing:0}th,td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left}tbody tr:last-child>*{border-bottom:0}tbody tr:hover>td{background-color:rgba(234,245,255,.38)}thead th{position:sticky;top:0;z-index:1;background:#f2f7fa;color:#4d6273;font-size:11px;font-weight:800;letter-spacing:.055em;text-transform:uppercase}.input-table input{max-width:115px;min-height:38px;padding:7px 9px}.group-row th{background:#dfeffb;color:var(--navy);text-align:center;font-size:12px;letter-spacing:.04em}
.attendance{display:grid;grid-template-columns:1fr 1fr .7fr;gap:16px;align-items:end}.attendance>div{display:grid;grid-template-columns:1fr 1fr;gap:12px}.attendance h3{grid-column:1/-1}.program-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.program-grid>div,.program-grid fieldset,.support fieldset{margin:0;padding:16px;border:1px solid var(--line);border-radius:13px;background:#fbfdff}.program-grid>div{display:grid;grid-template-columns:1fr 1fr;gap:12px}.program-grid h3{grid-column:1/-1}.program-grid fieldset label,.support fieldset label{display:inline-flex;align-items:center;margin:8px 15px 0 0}.material-grid,.support{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.material-grid>div{display:grid;gap:12px}.support{grid-template-columns:repeat(3,minmax(0,1fr))}fieldset legend{padding:0 6px;color:var(--navy);font-weight:800}
button,.button-link{border:0;border-radius:10px;padding:11px 18px;font:inherit;font-weight:800;cursor:pointer;transition:transform .15s,box-shadow .15s,background .15s}button:hover,.button-link:hover{transform:translateY(-1px)}button:active,.button-link:active{transform:none}.primary{background:linear-gradient(135deg,var(--blue),var(--blue-dark));color:#fff;box-shadow:0 7px 18px rgba(23,105,170,.22)}.primary:hover{box-shadow:0 9px 22px rgba(23,105,170,.3)}.secondary{background:var(--sky);color:var(--blue);border:1px solid #cfe5f6}.secondary:hover{background:#dcedfa}.danger{margin-top:12px;background:#fff0ef;color:var(--red);border:1px solid #f2ceca}.full,.submit{width:100%}.submit{margin:5px 0 45px;padding:16px;font-size:17px}button:focus-visible,.button-link:focus-visible{outline:3px solid rgba(23,105,170,.25);outline-offset:2px}
.alert{margin:20px 0;padding:14px 18px;border:1px solid transparent;border-radius:11px;font-weight:700;box-shadow:0 6px 18px rgba(16,42,67,.05)}.alert.success{background:#e6f8f1;border-color:#b8ead7;color:#087052}.alert.error{background:#fff0ef;border-color:#f1cbc7;color:var(--red)}.autofill{margin:16px 0 0;padding:0;border-radius:9px;background:#f2f7fa;color:var(--blue)}.autofill:not(:empty){padding:10px 12px;border:1px solid #d8e7f2}.honeypot{position:absolute!important;left:-10000px!important}
.login{max-width:460px;margin:70px auto}.login form{display:grid;gap:18px}.heading{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:46px 0 22px}.heading h1{margin:0;font-size:38px}.filters{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:15px;align-items:end}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:20px}.stats article{position:relative;overflow:hidden;padding:22px;border-radius:16px;background:linear-gradient(145deg,var(--navy),#1c4969);color:#fff;box-shadow:0 9px 24px rgba(16,42,67,.16)}.stats article:after{content:"";position:absolute;width:90px;height:90px;right:-28px;top:-35px;border-radius:50%;background:rgba(255,255,255,.08)}.stats span,.stats small{position:relative;z-index:1;display:block;color:#c9daea}.stats b{position:relative;z-index:1;display:block;margin:4px 0;font-size:32px;line-height:1.2}.progress{display:inline-block;width:90px;height:8px;overflow:hidden;margin-right:8px;border-radius:9px;background:#dce6ef;vertical-align:middle}.progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#1ca77a,var(--green))}.empty{padding:34px;color:var(--muted);text-align:center}.detail{width:330px;padding:14px;border:1px solid var(--line);border-radius:10px;background:#f7fafc;line-height:1.8}.compact{display:flex;align-items:end;gap:15px}.compact label{flex:1}.hidden{display:none!important}footer{padding:20px 0 40px;color:var(--muted);text-align:center;font-size:13px}
@media(max-width:900px){.nav{gap:14px}.brand b{display:none}.grid.three,.attendance,.program-grid,.material-grid,.support,.filters{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.wrap{width:min(100% - 20px,1180px)}.top{position:static}.nav{min-height:64px}.brand span{width:40px;height:40px;border-radius:10px}.nav nav{gap:2px}.nav nav a{padding:8px 7px;font-size:12px}.hero{padding:38px 4px 21px}.hero h1{font-size:34px}.card{padding:19px 16px;border-radius:14px}.section-title{align-items:flex-start}.section-title small{display:none}.attendance>div,.program-grid>div{grid-template-columns:1fr 1fr}.heading{align-items:flex-start;padding-top:32px}.heading h1{font-size:30px}.stats{gap:10px}.stats article{padding:17px}.stats b{font-size:27px}.compact{display:grid}.detail{width:265px}th,td{padding:10px 11px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}
@media print{body{background:#fff}.top{position:static;box-shadow:none}.card{box-shadow:none}}