*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:#efefefba;overflow-x:hidden}body.school-watermark :where(.shell,.module-shell):has(app-school-sidebar) :where(.content,.content-area){position:relative}body.school-watermark :where(.shell,.module-shell):has(app-school-sidebar) :where(.content,.content-area):before{content:"";position:fixed;inset:0 0 0 260px;z-index:10;pointer-events:none;background-image:var(--school-watermark-image);background-repeat:no-repeat;background-position:center;background-size:min(44vw,520px);opacity:.075;mix-blend-mode:multiply}@media print{body.school-watermark :where(.shell,.module-shell):has(app-school-sidebar) :where(.content,.content-area):before{display:none}}a{color:inherit}@media(max-width:900px){body.school-watermark :where(.shell,.module-shell):has(app-school-sidebar) :where(.content,.content-area):before{left:0;background-size:min(70vw,320px);opacity:.055}:where(.shell,.module-shell):has(app-school-sidebar){grid-template-columns:minmax(0,1fr)!important}.modal-panel .modal-grid,.modal-panel .import-results{grid-template-columns:1fr}}:root{--field-border: #cbd5e1;--field-border-focus: #2563eb;--field-bg: #ffffff;--field-text: #0f172a;--field-muted: #64748b}html body input[type=date],html body input[type=time],html body input[type=datetime-local],html body input[type=month]{min-height:46px;appearance:none;border:1px solid var(--field-border);border-radius:8px;padding:10px 13px;background:var(--field-bg);color:var(--field-text);font-family:inherit;font-size:1rem;font-weight:700;line-height:1.2;outline:none;box-shadow:inset 0 1px #0f172a08;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}html body input[type=date]:hover,html body input[type=time]:hover,html body input[type=datetime-local]:hover,html body input[type=month]:hover{border-color:#94a3b8;background:#f8fafc}html body input[type=date]:focus,html body input[type=time]:focus,html body input[type=datetime-local]:focus,html body input[type=month]:focus{border-color:var(--field-border-focus);background:#fff;box-shadow:0 0 0 3px #2563eb29}html body input[type=date]:disabled,html body input[type=time]:disabled,html body input[type=datetime-local]:disabled,html body input[type=month]:disabled{cursor:not-allowed;background:#eef2f7;color:var(--field-muted)}html body input[type=date]::-webkit-calendar-picker-indicator,html body input[type=time]::-webkit-calendar-picker-indicator,html body input[type=datetime-local]::-webkit-calendar-picker-indicator,html body input[type=month]::-webkit-calendar-picker-indicator{width:22px;height:22px;cursor:pointer;border-radius:6px;padding:4px;opacity:.72}html body input[type=date]::-webkit-calendar-picker-indicator:hover,html body input[type=time]::-webkit-calendar-picker-indicator:hover,html body input[type=datetime-local]::-webkit-calendar-picker-indicator:hover,html body input[type=month]::-webkit-calendar-picker-indicator:hover{background:#e0ecff;opacity:1}html body input[type=time]{font-variant-numeric:tabular-nums}.modal-backdrop{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:20px;background:#0f172a7a}.modal-panel{width:min(560px,100%);max-height:calc(100vh - 40px);overflow:auto;background:#fff;border-radius:20px;padding:20px;box-shadow:0 28px 80px #0f172a4d}.modal-header,.modal-actions,.modal-panel .toggle-field{display:flex;align-items:center;gap:12px}.modal-header{justify-content:space-between;margin-bottom:18px}.modal-header h2{margin:6px 0 0;color:#0f172a}.modal-panel .icon-btn{width:44px;padding:0}.modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.modal-panel .toggle-field{min-height:44px;align-self:end;color:#0f172a;font-weight:800}.modal-panel .selected-file{margin:10px 0 0;color:#475569;font-weight:800}.modal-panel .import-results{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:12px 0}.modal-panel .import-results span{border-radius:12px;background:#f8fafc;padding:10px;color:#475569}.modal-panel .import-results b{display:block;color:#0f172a}.modal-actions{justify-content:flex-end;flex-wrap:wrap;margin-top:16px}app-dashboard .shell{grid-template-columns:260px minmax(0,1fr);overflow-x:hidden}app-dashboard .content,app-dashboard .head,app-dashboard .ha,app-dashboard .ph,app-dashboard .kpi,app-dashboard .panel,app-dashboard .bar{min-width:0}app-dashboard .content{overflow-x:hidden}app-dashboard .kpis{grid-template-columns:repeat(4,minmax(0,1fr))}app-dashboard .grid{grid-template-columns:minmax(0,1.35fr) minmax(0,.9fr) minmax(0,.9fr)}app-dashboard .bars{grid-template-columns:repeat(7,minmax(0,1fr));min-width:0}app-dashboard .bar small,app-dashboard .bar em,app-dashboard .sr b,app-dashboard .status b,app-dashboard .date-chip,app-dashboard .pill{overflow-wrap:anywhere}app-dashboard .sr{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}app-dashboard .coverage{grid-template-columns:150px minmax(0,1fr)}app-dashboard .status,app-dashboard .quick{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:760px){app-dashboard .shell,app-dashboard .kpis,app-dashboard .grid,app-dashboard .status,app-dashboard .quick,app-dashboard .coverage,app-dashboard .sr{grid-template-columns:minmax(0,1fr)}app-dashboard .content{padding:16px}app-dashboard .ha{align-items:stretch}app-dashboard .ha>*{width:100%;text-align:center}app-dashboard .panel{padding:14px}app-dashboard .kpi strong{font-size:1.45rem}app-dashboard .bars{height:240px;gap:6px}app-dashboard .track{padding:4px}app-dashboard .date-chip,app-dashboard .pill{border-radius:8px}app-dashboard .legend div{display:grid;gap:3px}app-dashboard .donut{width:min(150px,70vw);justify-self:center}}@media screen and (max-width:760px){html body.native-mobile-tables .mobile-data-table{overflow:visible!important}html body.native-mobile-tables .mobile-data-header{display:none!important}html body.native-mobile-tables .mobile-data-row{display:block!important;grid-template-columns:none!important;min-width:0!important;margin:0 0 12px!important;padding:12px 14px!important;border:1px solid #e2e8f0!important;border-radius:12px!important;background:#fffffff5!important;box-shadow:0 10px 22px #0f172a0f!important}html body.native-mobile-tables .mobile-data-row:last-child{margin-bottom:0!important}html body.native-mobile-tables .mobile-data-row>*{display:grid!important;grid-template-columns:minmax(96px,36%) minmax(0,1fr)!important;gap:10px!important;align-items:start!important;min-width:0!important;padding:9px 0!important;border-bottom:1px solid #eef2f7!important;overflow-wrap:anywhere!important}html body.native-mobile-tables .mobile-data-row>*:last-child{border-bottom:0!important}html body.native-mobile-tables .mobile-data-row>*:before{content:attr(data-label);color:#64748b;font-size:.78rem;font-weight:900;line-height:1.35;text-transform:uppercase}html body.native-mobile-tables .mobile-data-row>.row-actions,html body.native-mobile-tables .mobile-data-row>.actions,html body.native-mobile-tables .mobile-data-row>[class*=action]{display:flex!important;flex-wrap:wrap!important;gap:8px!important}html body.native-mobile-tables .mobile-data-row>.row-actions:before,html body.native-mobile-tables .mobile-data-row>.actions:before,html body.native-mobile-tables .mobile-data-row>[class*=action]:before{flex:0 0 100%}html body.native-mobile-tables .mobile-data-row a,html body.native-mobile-tables .mobile-data-row button{max-width:100%;white-space:normal!important}html body.native-mobile-tables .mobile-native-table{overflow:visible!important}html body.native-mobile-tables .mobile-native-table table,html body.native-mobile-tables table.mobile-native-table{width:100%!important;min-width:0!important;border-collapse:separate!important;border-spacing:0 12px!important}html body.native-mobile-tables .mobile-native-table thead,html body.native-mobile-tables table.mobile-native-table thead{display:none!important}html body.native-mobile-tables .mobile-native-table tbody,html body.native-mobile-tables .mobile-native-table tr,html body.native-mobile-tables table.mobile-native-table tbody,html body.native-mobile-tables table.mobile-native-table tr{display:block!important;width:100%!important}html body.native-mobile-tables .mobile-native-table tbody tr,html body.native-mobile-tables table.mobile-native-table tbody tr{margin:0 0 12px!important;padding:12px 14px!important;border:1px solid #e2e8f0!important;border-radius:12px!important;background:#fffffff5!important;box-shadow:0 10px 22px #0f172a0f!important}html body.native-mobile-tables .mobile-native-table tbody tr:last-child,html body.native-mobile-tables table.mobile-native-table tbody tr:last-child{margin-bottom:0!important}html body.native-mobile-tables .mobile-native-table td,html body.native-mobile-tables table.mobile-native-table td{display:grid!important;grid-template-columns:minmax(96px,36%) minmax(0,1fr)!important;gap:10px!important;align-items:start!important;width:100%!important;min-width:0!important;padding:9px 0!important;border:0!important;border-bottom:1px solid #eef2f7!important;color:#0f172a!important;overflow-wrap:anywhere!important}html body.native-mobile-tables .mobile-native-table td:last-child,html body.native-mobile-tables table.mobile-native-table td:last-child{border-bottom:0!important}html body.native-mobile-tables .mobile-native-table td[data-label]:before,html body.native-mobile-tables table.mobile-native-table td[data-label]:before{content:attr(data-label);color:#64748b;font-size:.78rem;font-weight:900;line-height:1.35;text-transform:uppercase}html body.native-mobile-tables .mobile-native-table td[colspan],html body.native-mobile-tables table.mobile-native-table td[colspan]{display:block!important;text-align:center!important}html body.native-mobile-tables .mobile-native-table td[colspan]:before,html body.native-mobile-tables table.mobile-native-table td[colspan]:before{display:none!important}html body.native-mobile-tables .mobile-native-table td:has(button),html body.native-mobile-tables table.mobile-native-table td:has(button){display:flex!important;flex-wrap:wrap!important;gap:8px!important}html body.native-mobile-tables .mobile-native-table td:has(button):before,html body.native-mobile-tables table.mobile-native-table td:has(button):before{flex:0 0 100%}html body.native-mobile-tables .mobile-native-table td button,html body.native-mobile-tables .mobile-native-table td a,html body.native-mobile-tables table.mobile-native-table td button,html body.native-mobile-tables table.mobile-native-table td a{max-width:100%;white-space:normal!important}}
