.insights{color:#172033;background:#fff;border:1px solid #e2e8f0;border-radius:16px;margin:28px 0;padding:24px}.insights h2,.insights h3{margin:0 0 14px}.insights h3{margin-top:28px}.insights-header,.insights-month{justify-content:space-between;align-items:center;gap:16px;display:flex}.insights-header p,.insights-note{color:#64748b;font-size:13px}.insights button{cursor:pointer}.insights-header button,.insights-details>button{color:#fff;background:#17365d;border:0;border-radius:8px;padding:10px 14px}.insights-month{justify-content:center;margin:24px 0}.insights-month button{color:#172033;background:#f8fafc;border:1px solid #cbd5e1;border-radius:8px;padding:8px 14px}.insights-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.insights-stat{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:18px}.insights-stat span{color:#64748b;margin-bottom:8px;font-size:13px;display:block}.insights-stat strong{font-size:26px}.insights-trends{flex-direction:column;gap:10px;display:flex}.insights-trend-row{grid-template-columns:32px minmax(0,1fr) 60px;align-items:center;gap:12px;font-size:13px;display:grid}.insights-bars{background:#f1f5f9;border-radius:5px;height:20px;display:flex;overflow:hidden}.insights-bar{min-width:0;height:100%}.insights-bar.present{background:#22c55e}.insights-bar.late{background:#f59e0b}.insights-bar.absent{background:#ef4444}.insights-bar.excused{background:#3b82f6}.insights-table-scroll{overflow-x:auto}.insights-table{border-collapse:collapse;text-align:left;width:100%;font-size:14px}.insights-table th,.insights-table td{border-bottom:1px solid #e2e8f0;padding:11px}.insights-table th{background:#f1f5f9}.insights-calendar{grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;display:grid}.insights-weekday{text-align:center;color:#64748b;font-size:12px;font-weight:700}.insights-calendar-day{color:#172033;border:1px solid #0000;border-radius:9px;flex-direction:column;justify-content:center;align-items:center;gap:5px;min-height:75px;padding:5px;display:flex}.insights-calendar-day strong{font-size:16px}.insights-calendar-day small{font-size:10px}.insights-calendar-day.complete{background:#dcfce7}.insights-calendar-day.partial{background:#fef3c7}.insights-calendar-day.missing{background:#fee2e2}.insights-calendar-day.upcoming,.insights-calendar-day.weekend{background:#f1f5f9}.insights-calendar-day.selected{outline:3px solid #2563eb}.insights-calendar-day:disabled{cursor:default;opacity:.6}.insights-legend{flex-wrap:wrap;gap:16px;margin-top:14px;font-size:12px;display:flex}.insights-details{border:1px solid #cbd5e1;border-radius:12px;margin-top:22px;padding:18px}.insights-details>button{margin-top:16px}.insights-error{color:#b91c1c}@media (width<=650px){.insights{padding:14px}.insights-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.insights-stat{padding:12px}.insights-stat strong{font-size:21px}.insights-calendar{gap:3px}.insights-calendar-day{min-height:57px;padding:2px}.insights-calendar-day small{font-size:8px}}.insights-calendar-day.holiday{color:#92400e;opacity:1;background:#fef3c7;border-color:#d4a017}.insights-calendar-day.holiday:disabled{opacity:1;cursor:default}.insights-calendar-day.holiday small{color:#92400e;overflow-wrap:anywhere;text-align:center;font-weight:600}*{box-sizing:border-box}body{color:#1c3044;background:#f3f6fa;margin:0;font-family:Inter,Segoe UI,Arial,sans-serif}button,input,select{font:inherit}button{cursor:pointer}.shell{max-width:960px;margin:auto;padding:26px 18px 44px}header{color:#fff;background:#173653;border-radius:22px;padding:27px}.brand{align-items:center;gap:12px;display:flex}.brand span{background:#ffffff20;border-radius:20px;margin-left:auto;padding:8px;font-size:11px}h1{letter-spacing:-1px;margin:24px 0 7px;font-size:34px}header p{color:#d2dfec;margin:0 0 22px}.fields{grid-template-columns:1fr 1fr;gap:13px;display:grid}.fields label,.add label{gap:7px;font-size:12px;font-weight:600;display:grid}.fields label:last-child{grid-column:1/-1;grid-template-columns:auto 1fr;align-items:center}.fields label:last-child input{grid-column:1/-1}input,select{color:#20364a;background:#fff;border:1px solid #d7e0e9;border-radius:9px;width:100%;min-width:0;padding:11px}.fields input{color:#fff;background:#ffffff12;border-color:#ffffff40}.stats{grid-template-columns:repeat(4,1fr);gap:12px;margin:17px 0;display:grid}.stats article,.panel,.student{background:#fff;border:1px solid #e3eaf1;border-radius:15px;padding:16px}.stats article{flex-direction:column;gap:8px;display:flex}.stats small{color:#718194;align-items:center;gap:5px;font-size:12px;display:flex}.stats strong{font-size:30px}.stats .green strong{color:#16834a}.stats .red strong{color:#c33e45}nav{background:#e7edf3;border-radius:12px;gap:7px;margin:20px 0;padding:5px;display:flex}nav button{color:#526476;background:0 0;border:0;border-radius:9px;flex:1;justify-content:center;align-items:center;gap:7px;padding:12px;display:flex}nav button.active{color:#173653;background:#fff;font-weight:700}.heading{justify-content:space-between;align-items:center;gap:12px;margin:20px 0 14px;display:flex}h2{margin:0 0 8px;font-size:18px}.heading small,.hint{color:#788899;font-size:12px}.secondary{color:#29455f!important;background:#fff!important;border:1px solid #d7e0e9!important}.heading button,.secondary{color:#29455f;background:#fff;border:1px solid #d7e0e9;border-radius:9px;padding:10px;font-size:12px}.tools{gap:9px;margin-bottom:13px;display:flex}.search{color:#718194;background:#fff;border:1px solid #d7e0e9;border-radius:9px;flex:1;align-items:center;gap:8px;padding-left:10px;display:flex}.search input{border:0}.tools select{width:140px}.students{grid-template-columns:1fr 1fr;gap:12px;display:grid}.studenttop{align-items:center;gap:9px;display:flex}.avatar{color:#36546f;background:#edf2f7;border-radius:11px;place-items:center;width:40px;height:40px;font-weight:700;display:grid}.who{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.who b{overflow-wrap:anywhere;font-size:13px}.who small{color:#8190a0;font-size:11px}.badge{white-space:nowrap;border-radius:7px;padding:5px 7px;font-size:10px}.present{color:#167b43;background:#e2f5e9}.absent{color:#b82e37;background:#fde8e8}.late{color:#94610b;background:#fff1d5}.excused{color:#50667e;background:#e9eef5}.unmarked{color:#6f7b88;background:#f0f2f5}.trash{color:#8190a0;background:0 0;border:0;padding:3px}.statusgrid{grid-template-columns:1fr 1fr;gap:7px;margin-top:14px;display:grid}.statusgrid button{color:#5b6b7c;background:#fff;border:1px solid #dce3ea;border-radius:8px;padding:9px;font-size:12px}.statusgrid button.chosen{color:#fff}.statusgrid .present.chosen{background:#16834a;border-color:#16834a}.statusgrid .absent.chosen{background:#c33e45;border-color:#c33e45}.statusgrid .late.chosen{background:#a86d0a;border-color:#a86d0a}.statusgrid .excused.chosen{background:#526a82;border-color:#526a82}.notebtn{color:#718296;text-align:left;background:0 0;border:0;margin-top:11px;padding:0;font-size:11px}.noteform{gap:5px;margin-top:10px;display:flex}.noteform input{padding:8px}.noteform button,.add button,.export{color:#fff;background:#173653;border:0;border-radius:9px;justify-content:center;align-items:center;gap:7px;padding:11px;font-size:13px;font-weight:600;display:flex}.panel{margin-top:17px}.panel h2{align-items:center;gap:8px;margin-bottom:15px;display:flex}.add{grid-template-columns:1fr 1.3fr auto;align-items:end;gap:10px;display:grid}.add label{color:#526476}.summaryrow{border-bottom:1px solid #edf0f4;justify-content:space-between;padding:12px 0;font-size:13px;display:flex}.export{width:100%;margin-top:14px}.hint{line-height:1.5}.history{background:#fff;border:1px solid #e3eaf1;border-radius:9px;justify-content:space-between;width:100%;margin:5px 0;padding:12px;display:flex}.history small{color:#718194}footer{text-align:center;color:#7c8998;margin-top:25px;font-size:12px}@media (width<=650px){.shell{padding:12px}.fields,.students,.stats{grid-template-columns:1fr 1fr}.fields{grid-template-columns:1fr}.fields label:last-child{grid-column:auto}.add{grid-template-columns:1fr}.heading{align-items:flex-start}.stats strong{font-size:26px}.student{padding:12px}.badge{font-size:9px}.who b{font-size:12px}}.main-tabs{flex-wrap:wrap;gap:6px;display:flex}.main-tabs button{flex:145px;min-width:0}@media (width<=650px){.main-tabs button{flex:42%;padding:10px 5px;font-size:12px}}.weekly-report .weekly-controls{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.weekly-report .weekly-controls label{gap:5px;display:grid}.weekly-report .weekly-controls button{color:#fff;background:#173653;border:0;border-radius:9px;padding:11px 14px}.weekly-report .weekly-controls button:disabled{opacity:.55;cursor:not-allowed}.weekly-report .weekly-table-wrap{overflow-x:auto}.weekly-report table{border-collapse:collapse;width:100%;margin-top:15px}.weekly-report th,.weekly-report td{text-align:left;border-bottom:1px solid #e3eaf1;padding:10px}.weekly-report th{background:#f3f6fa}.shell,.panel,.insights,.students,.student,.tools,.heading{min-width:0}.shell{width:100%}button,input,select{touch-action:manipulation}button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:2px;outline:3px solid #2563eb}.weekly-table-wrap,.insights-table-scroll{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}.weekly-table-wrap table{border-collapse:collapse;min-width:650px}.weekly-table-wrap th,.weekly-table-wrap td{text-align:left;padding:10px 12px}.weekly-controls{flex-wrap:wrap;align-items:end;gap:10px;display:flex}.weekly-controls label{gap:6px;display:grid}.weekly-controls button{min-height:44px}@media (width<=700px){.shell{padding:12px 10px 30px}header{border-radius:16px;padding:20px 16px}h1{overflow-wrap:anywhere;font-size:clamp(25px,7vw,32px);line-height:1.15}.brand{flex-wrap:wrap}.brand span{margin-left:0}.fields{grid-template-columns:1fr}.fields label:last-child{grid-column:auto}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.stats article{min-width:0;padding:12px}.stats strong{font-size:25px}.stats small{overflow-wrap:anywhere}.shell>nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.shell>nav button{white-space:normal;overflow-wrap:anywhere;min-width:0;min-height:48px;padding:10px 6px;font-size:12px;line-height:1.25}.shell>nav button svg{flex-shrink:0}.heading{flex-wrap:wrap;align-items:stretch}.heading>button{min-height:44px}.tools{flex-direction:column;align-items:stretch}.tools .search,.tools select{width:100%;min-height:44px}.students{grid-template-columns:1fr;gap:10px}.student{padding:14px}.studenttop,.studenttop .who{min-width:0}.studenttop .badge{flex-shrink:0}.statusgrid button{min-height:46px;padding:10px 7px;font-size:14px}.trash{place-items:center;min-width:40px;min-height:44px;display:grid}.notebtn{min-height:40px;font-size:13px}.noteform{flex-wrap:wrap}.noteform input{flex:160px}.noteform button{min-height:44px}.add{grid-template-columns:1fr}.add button,.export,.history{min-height:46px}.panel{padding:14px}.weekly-controls{flex-direction:column;align-items:stretch}.weekly-controls label,.weekly-controls button{width:100%}.weekly-controls input{min-height:44px}}@media (width<=380px){.shell{padding:8px 7px 24px}.student{padding:10px}.avatar{width:34px;height:34px}.studenttop{gap:6px}.badge{padding:5px;font-size:9px}}@media (width<=650px){.student-grid,.students-grid,.attendance-grid{grid-template-columns:minmax(0,1fr)!important}.student-card,.student-card *{overflow-wrap:normal;word-break:normal}.student-card button{min-height:44px}}@media (width<=700px){.students{gap:12px;display:grid;grid-template-columns:minmax(0,1fr)!important}.student{width:100%;min-width:0}.studenttop{align-items:center;gap:10px;display:flex}.studenttop .avatar{flex:0 0 40px}.studenttop .who{flex:auto;min-width:0}.studenttop .who b{overflow-wrap:break-word;word-break:normal;white-space:normal;font-size:14px;line-height:1.35;display:block}.studenttop .badge{flex:none}.studenttop .trash{flex:0 0 40px}.statusgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.statusgrid button{min-height:46px}}
