/* Web9 — native disclosure, clear scopes, flexible grids; no external fonts. */
body.kalanso-web4{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}
.k9-dashboard,.k9-responsibilities{color:#193e36;min-width:0}
.k9-dashboard h2,.k9-responsibilities h2{font-size:17px;line-height:1.4;margin:0}
.k9-scope{display:flex;gap:12px;justify-content:space-between;align-items:center;margin:-6px 0 18px;color:#496159;font-size:12px;flex-wrap:wrap}
.k9-scope>span{display:flex;align-items:center;gap:7px}.k9-scope svg{width:17px;height:17px}
.k9-shortcuts{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}
.k9-shortcuts button{background:#fff!important;color:#19463e!important;border-color:#d5e3d9!important;min-height:40px!important;font-size:13px!important;padding:8px 12px!important;box-shadow:none!important}
.k9-section{margin:24px 0}.k9-section-title{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.k9-section-title>span{font-size:12px;color:#496159}
.k9-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(225px,100%),1fr));gap:14px}
.k9-metric{min-width:0;display:flex;flex-direction:column;gap:8px;border:1px solid #dce7dd;border-radius:17px;padding:19px;background:#fff}
.k9-metric>span{font-weight:600;font-size:13px}.k9-metric strong{font-size:clamp(23px,2.1vw,30px);line-height:1.2;letter-spacing:-.6px;overflow-wrap:anywhere;color:#173f36}
.k9-metric em{font-style:normal;font-size:16px;font-weight:500;letter-spacing:0}.k9-metric small{font-size:12px;line-height:1.5;color:#496159}
.k9-metric.k9-yellow{background:#fff5c5;border-color:#e8d67c}.k9-metric.k9-green{background:#edf7f0}.k9-metric.k9-amber{border-top:3px solid #ebc132}
.k9-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:18px;margin:18px 0}
.k9-columns:empty{display:none}.k9-columns>.panel{margin:0!important;min-width:0;overflow:hidden}
.k9-dashboard .panel-head, .k9-dashboard .panel-header,.k9-dashboard .panel>header,.k9-responsibilities .panel-title{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:17px 18px!important}
.k9-dashboard .panel button,.k9-responsibilities button{font-size:12px!important;min-height:38px!important;white-space:normal}
.k9-panel-body{padding:18px}.k9-totals>div{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:9px 0;border-bottom:1px solid #eef2ed;font-size:13px}
.k9-totals>div>span{min-width:0}.k9-totals b{white-space:nowrap}.k9-totals small{display:block;font-size:11px;color:#52675f}
.k9-footnote,.k9-muted,.k9-empty{font-size:12px;line-height:1.7;color:#4a6058}.k9-footnote{margin:15px 0 0}.k9-endnote{text-align:center}.k9-empty{padding:22px;margin:0}
.k9-columns .panel>.k9-footnote,.k9-responsibilities>.k9-footnote{padding:0 18px 18px;margin-top:0}
.k9-meter{margin:20px 0 14px}.k9-meter>div{display:flex;gap:8px;justify-content:space-between;font-size:12px;margin-bottom:9px}.k9-meter progress{display:block;accent-color:#06765b;width:100%;height:9px;border:0;border-radius:10px;overflow:hidden;background:#e8eee6}.k9-meter progress::-webkit-progress-bar{background:#e8eee6}.k9-meter progress::-webkit-progress-value{background:#06765b;border-radius:10px}
.k9-status-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:15px}.k9-status-links button{display:flex;flex-direction:column;align-items:flex-start;padding:11px 9px!important;background:#f5f8f2!important;color:#20463c!important;border-color:#dce7dc!important;text-align:left;box-shadow:none!important}.k9-status-links b{font-size:20px}.k9-status-links span{font-size:11px}
.k9-roster{padding:3px 18px}.k9-roster button{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;background:#fff!important;color:#193e36!important;border:0!important;border-bottom:1px solid #e7eee7!important;border-radius:0!important;padding:12px 0!important;box-shadow:none!important;text-align:left}
.k9-roster button:hover{background:#fff9df!important}.k9-roster span{flex:1;min-width:0}.k9-roster small{display:block;font-size:11px!important;font-weight:400;color:#50665e;line-height:1.6}.k9-roster strong{font-size:19px;line-height:1.3;text-align:right}.k9-roster svg{width:16px;flex:0 0 16px}
.k9-alerts{background:#fff9e1;border:1px solid #edda8a;border-left:4px solid #e2b515;border-radius:15px;padding:16px 18px;margin:20px 0}.k9-alerts h2{display:flex;align-items:center;gap:8px;font-size:15px}.k9-alerts h2 svg{width:19px}.k9-alerts>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:6px;margin:9px 0}.k9-alerts button{border:0!important;background:transparent!important;padding:8px 0!important;display:flex;justify-content:space-between;text-align:left;color:#4c420f!important;font-size:13px!important;box-shadow:none!important}.k9-alerts button svg{width:16px;flex:0 0 16px}.k9-alerts>small{font-size:11px;color:#68571c}
.k9-agenda{padding:0 18px}.k9-agenda article{display:flex;align-items:center;gap:14px;padding:13px 0;border-bottom:1px solid #edf1eb}.k9-agenda time{font-size:14px;font-weight:700;color:#006b52}.k9-agenda time small{display:block;font-size:11px;font-weight:400;color:#4a6258}.k9-agenda article>div{flex:1;min-width:0}.k9-agenda p{font-size:12px;color:#4a6258;margin:3px 0;overflow-wrap:anywhere}.k9-agenda .badge{font-size:10px;max-width:100px;white-space:normal}
.k9-attendance-counts{display:grid;grid-template-columns:repeat(auto-fit,minmax(75px,1fr));gap:9px}.k9-attendance-counts>div{background:#f4f7f0;border-radius:10px;padding:10px;display:flex;flex-direction:column}.k9-attendance-counts b{font-size:22px}.k9-attendance-counts span{font-size:11px}
.k9-large{display:block;font-size:30px;line-height:1.4;overflow-wrap:anywhere}.k9-teacher-balances{display:grid;grid-template-columns:1fr 1fr;gap:14px}.k9-teacher-balances>div{background:#f5f8f2;border-radius:13px;padding:14px;display:flex;flex-direction:column;gap:9px}.k9-teacher-balances>div:last-child{background:#fff8dc}.k9-teacher-balances span,.k9-teacher-balances small{font-size:12px}.k9-teacher-balances strong{font-size:23px;line-height:1.4;overflow-wrap:anywhere}
.k9-responsibilities .panel-title p{margin:4px 0 0;font-size:12px;color:#52665e}.k9-explanation{display:flex;align-items:flex-start;gap:10px;margin:0;padding:15px 18px;background:#fff9df;color:#3c512a;font-size:13px;line-height:1.6}.k9-explanation svg{width:20px;height:20px;flex:0 0 20px}.k9-table-scroll{overflow:auto}.k9-table-scroll table{min-width:650px;width:100%}.k9-table-scroll td{vertical-align:top!important;padding:15px 17px!important;font-size:13px!important}.k9-table-scroll td small{display:block;font-size:11px;color:#50665e;margin-top:4px}.k9-all-subjects{color:#075f47;background:#edf6e5;border-radius:7px;padding:5px 8px;display:inline-block}.k9-warning{display:block;color:#864815;font-size:12px;margin-top:5px}
.k9-subjects{margin:9px 0 0}.k9-subjects summary{font-size:12px;color:#246251;cursor:pointer;padding:5px 0;min-height:30px;list-style-position:inside}.k9-subjects[open]{border-top:1px solid #e3ebe1}.k9-subjects ul{padding:0;list-style:none;margin:5px 0}.k9-subjects li{display:flex;justify-content:space-between;gap:25px;border-bottom:1px solid #ecf0e8;padding:6px 0;font-size:12px}.k9-subjects li small{margin:0!important}.k9-subjects p{font-size:12px;max-width:330px;line-height:1.6}
.k9-pager{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 18px;font-size:11px}.k9-load-error{background:#fff0e8;color:#852f12;border:1px solid #e5b39c;border-radius:10px;padding:14px;font-size:13px}
.k9-compact-page .k6-context-bar{padding:9px 13px!important;margin:12px 0 16px!important;font-size:12px}.k9-compact-page .k6-context-copy>div>span{display:none}.k9-compact-page .k6-context-bar button{min-height:34px!important;padding:6px 10px!important}
.k9-compact-page .pp8-school-policy{padding:10px 14px!important;align-items:center;margin-bottom:14px!important;font-size:12px}.k9-compact-page .pp8-school-policy p{margin:3px 0 0!important;font-size:11px}.k9-compact-page .pp8-school-policy button{font-size:11px!important;min-height:34px!important;padding:6px 10px!important}
.k9-compact-page .record-toolbar{padding:12px 15px!important}.k9-compact-page .page-header{margin:15px 0!important}
.k9-dashboard :is(button,a,summary):focus-visible,.k9-responsibilities :is(button,a,summary):focus-visible{outline:3px solid #04795d;outline-offset:3px}
.k9-dashboard[aria-busy=true],.k9-responsibilities[aria-busy=true]{opacity:.8;pointer-events:none}
@media(min-width:921px){.kalanso-web4 .sidebar a{transition:background-color .14s,color .14s,box-shadow .14s!important;transform:none!important}.kalanso-web4 .sidebar a:hover{transform:none!important}}
@media(max-width:1200px){.k9-columns{grid-template-columns:1fr}.k9-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:540px){.k9-metrics{gap:8px}.k9-metric{padding:13px;gap:6px;border-radius:12px}.k9-metric>span{font-size:12px}.k9-metric strong{font-size:21px}.k9-metric small{font-size:11px}.k9-teacher-balances{grid-template-columns:1fr}.k9-status-links{grid-template-columns:repeat(2,1fr)}.k9-panel-body{padding:13px}.k9-totals>div{gap:8px;font-size:12px}.k9-pager{flex-wrap:wrap;justify-content:center}.k9-section-title{align-items:start;flex-direction:column}.k9-shortcuts{gap:6px}.k9-shortcuts button{flex:1 1 100px}.k9-agenda article{gap:8px}.k9-agenda .badge{max-width:66px}.k9-responsibilities .panel-title{padding:13px!important}}
@media(prefers-reduced-motion:reduce){.k9-dashboard *,.k9-responsibilities *,.kalanso-web4 .sidebar *, .kalanso-web4 .sidebar a{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.k9-shortcuts,.k9-pager,.k9-dashboard button,.k9-responsibilities button,.k9-scope small,.k9-compact-page .k6-context-bar{display:none!important}.k9-columns,.k9-metrics{break-inside:avoid}.k9-table-scroll{overflow:visible}.k9-table-scroll table{min-width:0}.k9-subjects:not([open]){display:none}.k9-columns{display:block}.k9-columns>.panel{margin:12px 0!important}.k9-dashboard .k9-metric{box-shadow:none}}

.k9-table-scroll td>.k9-muted{display:block;margin-top:5px}
