/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer theme{:host,:root{--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.table{display:table}}:root{--navy:#102a43;--navy-light:#163f5f;--teal:#128277;--teal-dark:#0b6b62;--teal-soft:#e7f6f3;--amber:#efa53a;--amber-soft:#fff3d8;--canvas:#f4f7fa;--paper:#fff;--ink:#172b3d;--muted:#6b7d8d;--line:#dce5ec;--danger:#b94052;--danger-soft:#fff0f2;--success:#19734f;--success-soft:#e5f6ed;--shadow:0 10px 30px #102a4314}*{box-sizing:border-box}body,html{background:var(--canvas)}body{color:var(--ink);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:15px}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}img{max-width:100%}.muted{color:var(--muted);line-height:1.6}.eyebrow{color:var(--teal);letter-spacing:.18em;text-transform:uppercase;font-size:.74rem;font-weight:900}.approve-button,.primary-button,.reject-button,.secondary-button{border:0;border-radius:10px;justify-content:center;align-items:center;min-height:43px;padding:0 16px;font-size:.82rem;font-weight:850;transition:transform .15s,box-shadow .15s,background .15s;display:inline-flex}.primary-button{background:var(--teal)}.primary-button:hover{background:var(--teal-dark);box-shadow:0 7px 18px #12827733}.secondary-button{color:var(--navy);background:#edf2f5}.approve-button{background:var(--success-soft);min-height:34px;color:var(--success);padding:0 11px}.reject-button{background:var(--danger-soft);min-height:34px;color:var(--danger);padding:0 11px}.login-page{background:#fff;grid-template-columns:minmax(340px,44%) 1fr;min-height:100vh;display:grid}.login-brand{color:#fff;background:linear-gradient(145deg,#0d2b45,#14506a);flex-direction:column;justify-content:space-between;padding:clamp(2rem,5vw,5rem);display:flex;position:relative;overflow:hidden}.login-brand h1{letter-spacing:-.055em;max-width:650px;margin:4rem 0 1.4rem;font-size:clamp(2.6rem,5vw,5rem);line-height:.98}.login-brand p{color:#c8dce8;max-width:520px;line-height:1.7}.login-panel{background:#fff;place-items:center;padding:2rem;display:grid}.login-card{width:min(430px,100%)}.login-card h2{color:var(--navy);margin:.7rem 0 .5rem;font-size:2rem}.form-field{color:var(--ink);gap:7px;margin-top:18px;font-size:.86rem;font-weight:750;display:grid}.form-field input,.form-field select,.form-field textarea{border:1px solid var(--line);width:100%;min-height:46px;color:var(--ink);background:#fff;border-radius:10px;outline:none;padding:0 13px}.form-field textarea{min-height:110px;padding:12px}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px #1282771f}.form-error{background:var(--danger-soft);color:var(--danger)}.form-error,.success-message{border-radius:10px;padding:11px 13px;font-size:.84rem}.success-message{background:var(--success-soft);color:var(--success)}.erp-shell{background:var(--canvas);min-height:100vh}.sidebar{z-index:40;color:#fff;background:var(--navy);flex-direction:column;width:265px;padding:23px 16px 18px;display:flex;position:fixed;inset:0 auto 0 0;overflow-y:auto;box-shadow:12px 0 35px #081c2d1a}.admin-brand-row{align-items:flex-start;display:flex}.school-mark{align-items:center;gap:12px;font-weight:850;display:flex}.school-mark>span:first-child{background:var(--amber);width:48px;height:48px;color:var(--navy);border-radius:15px;place-items:center;font-size:1.25rem;display:grid}.school-mark small{color:#91adbf;margin-top:3px;font-size:.72rem;font-weight:550;display:block}.sidebar .school-mark{border-bottom:1px solid #ffffff1a;width:100%;padding:0 7px 22px}.sidebar nav{gap:3px;margin-top:16px;display:grid}.nav-label{color:#7596aa;letter-spacing:.14em;text-transform:uppercase;margin:19px 10px 7px;font-size:.68rem;font-weight:850}.nav-link{color:#bdd0dc;border-radius:10px;align-items:center;gap:11px;padding:11px 12px;font-size:.88rem;font-weight:650;display:flex}.nav-link.active,.nav-link:hover{color:#fff;background:#ffffff1a}.nav-link.active{box-shadow:inset 3px 0 var(--amber)}.sidebar-user{border-top:1px solid #ffffff1a;margin-top:auto;padding-top:15px}.admin-profile{grid-template-columns:42px 1fr;align-items:center;gap:10px;display:grid}.admin-profile small,.admin-profile strong{display:block}.admin-profile strong{font-size:.85rem}.admin-profile small{color:#91adbf;margin-top:3px;font-size:.72rem}.admin-profile .logout-button{grid-column:1/-1}.main-area{min-height:100vh;margin-left:265px}.topbar{z-index:25;border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;height:78px;padding:0 clamp(18px,3vw,42px);display:flex;position:sticky;top:0}.topbar h1{color:var(--navy);margin:0;font-size:1.15rem}.topbar p{color:var(--muted);margin:5px 0 0;font-size:.78rem}.top-actions{align-items:center;gap:10px;display:flex}.icon-button{border:1px solid var(--line);min-width:42px;height:42px;color:var(--navy);background:#fff;border-radius:11px;place-items:center;display:grid}.icon-button:hover{border-color:var(--teal);color:var(--teal)}.mobile-menu{display:none}.portal-close{color:#fff;background:0 0;border:0;display:none}.workspace{max-width:1550px;margin:0 auto;padding:36px clamp(20px,3vw,46px) 65px}.welcome{justify-content:space-between;align-items:flex-start;gap:22px;margin-bottom:27px;display:flex}.welcome h2{color:var(--navy);letter-spacing:-.045em;margin:3px 0 8px;font-size:clamp(2rem,4vw,3rem)}.welcome .muted{margin:0}.panel{border:1px solid var(--line);background:var(--paper);box-shadow:var(--shadow);border-radius:17px;padding:21px}.panel-title{border-bottom:1px solid #edf2f5;justify-content:space-between;align-items:center;gap:14px;margin-bottom:17px;padding-bottom:14px;display:flex}.panel-title h3{color:var(--navy);margin:0;font-size:1.02rem}.text-button{color:var(--teal);background:0 0;border:0;font-size:.78rem;font-weight:850}.master-tools{align-items:center;gap:12px;margin-bottom:18px;display:flex}.master-tools input,.master-tools select{border:1px solid var(--line);border-radius:10px;min-height:43px;padding:0 12px}.master-tools input{width:min(480px,100%)}.table-wrap{border:1px solid var(--line);background:#fff;border-radius:13px;overflow-x:auto}table{border-collapse:separate;border-spacing:0;width:100%}td,th{text-align:left;vertical-align:middle;border-bottom:1px solid #edf2f5;padding:13px 12px}th{color:#5e7283;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;background:#f5f8fa;font-size:.7rem;font-weight:900}td{color:var(--ink)}tr:last-child td{border-bottom:0}td small,td strong{display:block}td small{color:var(--muted);margin-top:4px;font-size:.72rem}.pager{justify-content:flex-end;align-items:center;gap:10px;margin-top:17px;display:flex}.pager button{border:1px solid var(--line);min-height:35px;color:var(--navy);background:#fff;border-radius:8px;padding:0 12px}.record-grid{grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:14px;display:grid}.record-grid div{border:1px solid var(--line);background:#fbfcfd;border-radius:11px;padding:14px}.record-grid dt{color:var(--muted);text-transform:capitalize;font-size:.72rem;font-weight:850}.record-grid dd{overflow-wrap:anywhere;margin:6px 0 0}.admin-filters{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:17px;grid-template-columns:repeat(6,minmax(130px,1fr));align-items:end;gap:14px;margin:20px 0;padding:18px;display:grid}.admin-filters label{color:var(--ink);gap:7px;font-size:.76rem;font-weight:800;display:grid}.admin-filters input,.admin-filters select,.table-select{border:1px solid var(--line);width:100%;min-height:43px;color:var(--ink);background:#fff;border-radius:10px;outline:none;padding:0 12px}.admin-filters input:focus,.admin-filters select:focus,.table-select:focus{border-color:var(--teal);box-shadow:0 0 0 3px #1282771f}.summary-strip{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin:20px 0;display:grid}.summary-strip article{border:1px solid var(--line);box-shadow:var(--shadow);background:linear-gradient(145deg,#fff,#f7fbfc);border-radius:15px;padding:17px;position:relative;overflow:hidden}.summary-strip small,.summary-strip strong{display:block}.summary-strip small{color:var(--muted);font-size:.74rem;font-weight:750}.summary-strip strong{color:var(--navy);letter-spacing:-.05em;margin-top:9px;font-size:2rem}.admin-badge,.status-badge{letter-spacing:.03em;text-transform:capitalize;border-radius:999px;align-items:center;width:max-content;min-height:25px;padding:4px 9px;font-size:.67rem;font-weight:900;display:inline-flex}.admin-badge.normal,.status-badge.active,.status-badge.approved,.status-badge.normal,.status-badge.present{background:var(--success-soft);color:var(--success)}.admin-badge.high,.status-badge.high,.status-badge.leave,.status-badge.pending,.status-badge.submitted{background:var(--amber-soft);color:#896016}.admin-badge.urgent,.status-badge.absent,.status-badge.cancelled,.status-badge.rejected,.status-badge.urgent{background:var(--danger-soft);color:var(--danger)}.status-badge.draft,.status-badge.inactive,.status-badge.low{color:#607383;background:#edf2f5}.action-row{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.table-action{min-height:32px;color:var(--teal);white-space:nowrap;border:1px solid #c6e2de;border-radius:8px;align-items:center;padding:0 10px;font-size:.74rem;font-weight:850;display:inline-flex}.table-action:hover{background:var(--teal);color:#fff}.person-cell{align-items:center;gap:10px;min-width:190px;display:flex}.portal-avatar{background:var(--teal-soft);color:var(--teal);border-radius:50%;flex:none;place-items:center;font-weight:850;display:grid;position:relative;overflow:hidden}.portal-avatar.small{width:42px;height:42px;font-size:.8rem}.portal-avatar img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.admin-empty,.empty-state{min-height:190px;color:var(--muted);text-align:center;background:#fbfcfd;border:1px dashed #cbd9e1;border-radius:14px;align-content:center;place-items:center;gap:10px;padding:25px;display:grid}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;display:grid}.metric-card{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:15px;padding:19px;display:block}.metric-card:hover{border-color:#abd5d0;transform:translateY(-2px)}.metric-head{color:var(--muted);justify-content:space-between;font-size:.8rem;font-weight:750;display:flex}.metric-icon{background:var(--teal-soft);width:38px;height:38px;color:var(--teal);border-radius:11px;place-items:center;display:grid}.metric-card strong{color:var(--navy);margin-top:13px;font-size:1.8rem;display:block}.metric-card small{color:var(--muted)}.dashboard-grid{grid-template-columns:1.4fr 1fr;gap:16px;margin-top:16px;display:grid}.dashboard-stat-list{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.dashboard-stat-list div{background:#f6fafb;border-radius:11px;padding:15px}.dashboard-stat-list span,.dashboard-stat-list strong{display:block}.dashboard-stat-list span{color:var(--muted);font-size:.74rem}.dashboard-stat-list strong{color:var(--navy);margin-top:7px;font-size:1.7rem}.quick-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.quick-action{min-height:86px;color:var(--navy);background:linear-gradient(135deg,#fff,#f7fbfd);border:1px solid #dce7ef;border-radius:14px;grid-template-columns:46px minmax(0,1fr);align-items:center;gap:13px;padding:14px 38px 14px 14px;text-decoration:none;transition:transform .18s,border-color .18s,box-shadow .18s;display:grid;position:relative;overflow:hidden;box-shadow:0 5px 16px #153f690d}.quick-action:after{content:"›";color:#8092a6;font-size:1.45rem;line-height:1;transition:translate .18s,color .18s;position:absolute;top:50%;right:15px;translate:0 -50%}.quick-action:hover{border-color:#b7d5df;transform:translateY(-2px);box-shadow:0 10px 24px #153f691c}.quick-action:hover:after{color:var(--teal);translate:3px -50%}.quick-action:focus-visible{outline-offset:2px;outline:3px solid #0e8d7d33}.quick-action-icon{color:#087e70;background:#e4f5f1;border-radius:13px;place-items:center;width:46px;height:46px;display:grid}.quick-action-copy{gap:4px;min-width:0;display:grid}.quick-action-copy strong{font-size:.9rem;line-height:1.2}.quick-action-copy small{color:var(--muted);font-size:.7rem;line-height:1.35}.action-attendance .quick-action-icon{color:#a76700;background:#fff3d7}.action-admission .quick-action-icon{color:#7046b4;background:#f0eafe}.action-notice .quick-action-icon{color:#c45332;background:#ffebe5}.notice-admin-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;margin-top:20px;display:grid}.notice-card{border:1px solid var(--line);border-top:4px solid var(--teal);min-height:295px;box-shadow:var(--shadow);background:#fff;border-radius:16px;flex-direction:column;padding:19px;display:flex}.notice-card.high{border-top-color:var(--amber)}.notice-card.urgent{border-top-color:var(--danger)}.notice-card-head{color:var(--muted);justify-content:space-between;align-items:center;font-size:.72rem;display:flex}.notice-card h3{color:var(--navy);margin:16px 0;font-size:1.1rem}.notice-card dl{grid-template-columns:repeat(2,1fr);gap:9px;margin:0;display:grid}.notice-card dl div{background:#f7fafb;border-radius:9px;padding:9px}.notice-card dt{color:var(--muted);text-transform:uppercase;font-size:.65rem;font-weight:850}.notice-card dd{color:var(--ink);margin:4px 0 0;font-size:.76rem;font-weight:750}.notice-card>p{color:var(--muted);margin:15px 0 8px;font-size:.8rem;line-height:1.55}.notice-card>small{color:var(--muted);font-size:.7rem}.notice-actions{align-items:center;gap:12px;margin-top:auto;padding-top:17px;display:flex}.notice-actions .primary-button{min-height:35px;font-size:.75rem}.notice-actions>a:not(.primary-button){color:var(--teal);font-size:.78rem;font-weight:850}.calendar-panel{padding:20px}.calendar-toolbar{justify-content:space-between;align-items:center;gap:15px;margin-bottom:18px;display:flex}.calendar-toolbar h3{color:var(--navy);margin:0;font-size:1.2rem}.calendar-toolbar a{color:var(--teal);font-size:.8rem;font-weight:850}.calendar-toolbar>div{gap:13px;display:flex}.calendar-grid{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.calendar-weekday{color:var(--muted);text-align:center;text-transform:uppercase;background:#f5f8fa;padding:11px;font-size:.7rem}.calendar-day,.calendar-weekday{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.calendar-day{background:#fff;min-height:105px;padding:9px}.calendar-day.outside{background:#f8fafb}.calendar-day>b{color:var(--navy);margin-bottom:7px;font-size:.78rem;display:block}.calendar-event{border-left:3px solid var(--teal);color:#126e65;text-overflow:ellipsis;white-space:nowrap;background:#e8f6f3;border-radius:5px;margin-top:5px;padding:5px 6px;font-size:.68rem;font-weight:750;display:block;overflow:hidden}.calendar-event.holiday{border-left-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.calendar-event.assessment,.calendar-event.ptm{border-left-color:var(--amber);background:var(--amber-soft);color:#80580f}.timetable-grid{border-collapse:separate;border-spacing:0;width:100%;min-width:920px}.timetable-grid td,.timetable-grid th{border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:10px}.timetable-grid thead th{background:var(--navy);color:#fff;text-transform:uppercase;font-size:.72rem}.timetable-grid tbody>th{width:115px;color:var(--navy);background:#f5f8fa;font-size:.76rem}.timetable-cell{border-left:3px solid var(--teal);background:var(--teal-soft);border-radius:8px;gap:5px;min-height:72px;padding:9px;display:grid}.timetable-cell.activity{border-left-color:var(--amber);background:var(--amber-soft)}.timetable-cell.break{background:#f1f4f6;border-left-color:#93a3af}.timetable-cell strong{color:var(--navy);font-size:.77rem}.timetable-cell small,.timetable-cell span{color:var(--muted);font-size:.68rem}.empty-slot{color:#a5b2bd;font-size:1.2rem}.detail-overlay{z-index:80;justify-content:flex-end;display:flex;position:fixed;inset:0}.detail-scrim{background:#0a1d2d80;position:absolute;inset:0}.detail-drawer{z-index:1;background:#fff;width:min(490px,100%);min-height:100%;padding:28px;position:relative;overflow-y:auto;box-shadow:-15px 0 45px #102a4338}.detail-list{gap:13px;margin:22px 0;display:grid}.detail-list div{border:1px solid var(--line);border-radius:10px;padding:13px}.detail-list dt{color:var(--muted);text-transform:uppercase;font-size:.7rem;font-weight:850}.detail-list dd{color:var(--ink);margin:5px 0 0;font-size:.86rem;line-height:1.5}@media (max-width:1150px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-filters,.summary-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.notice-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.sidebar{transition:transform .2s;transform:translate(-105%)}.sidebar.open{transform:translate(0)}.sidebar .portal-close{place-items:center;margin-left:auto;display:grid}.main-area{margin-left:0}.mobile-menu{display:grid}.workspace{padding:24px 15px 50px}.welcome{flex-direction:column}.admin-filters{grid-template-columns:1fr}.admin-filters .primary-button{width:100%}.summary-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.notice-admin-grid{grid-template-columns:1fr}.calendar-toolbar{flex-wrap:wrap}.calendar-toolbar h3{order:-1;width:100%}.calendar-day{min-height:75px;padding:6px}.calendar-event{font-size:.6rem}.dashboard-grid,.dashboard-stat-list,.quick-actions{grid-template-columns:1fr}.print-notice{padding:30px 20px}}@media (max-width:460px){.metric-grid,.summary-strip{grid-template-columns:1fr}.topbar{height:68px}.topbar p{display:none}}@media print{body{background:#fff!important}.admin-filters,.detail-overlay,.no-print,.sidebar,.topbar,.workspace>.welcome{display:none!important}.main-area{margin:0!important}.workspace{padding:0!important}.print-notice{width:100%;max-width:none;box-shadow:none;border:0;padding:20mm}}.breadcrumbs{color:var(--muted);align-items:center;gap:8px;margin-bottom:18px;font-size:.78rem;display:flex}.breadcrumbs a{color:var(--teal);font-weight:750}.breadcrumbs span{color:#9aabb7}.master-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 22px;width:min(980px,100%);display:grid}.master-form .form-field{margin-top:0}.master-form .duplicate-warning,.master-form .form-actions,.master-form .form-error{grid-column:1/-1}.form-actions{border-top:1px solid #edf2f5;margin-top:4px}.form-actions a:not(.primary-button),.form-actions button:not(.primary-button){border:1px solid var(--line);min-height:43px;color:var(--navy);background:#fff;border-radius:10px;justify-content:center;align-items:center;padding:0 16px;font-size:.82rem;font-weight:800;display:inline-flex}.form-actions a:not(.primary-button):hover,.form-actions button:not(.primary-button):hover{border-color:var(--teal);color:var(--teal)}.filter-row{align-items:center;gap:10px}.filter-row label{color:var(--muted);gap:6px;font-size:.72rem;font-weight:800;display:grid}.filter-row select,.relation-actions input,.relation-actions select{border:1px solid var(--line);min-height:42px;color:var(--ink);background:#fff;border-radius:9px;padding:0 11px}.relationship-row{border:1px solid var(--line);background:#fff;border-radius:12px;align-items:center;gap:14px;margin-top:10px;padding:14px;display:flex}.relationship-row>div:nth-child(2){flex:1}.relationship-row p{color:var(--muted);margin:4px 0;font-size:.78rem}.relationship-row button{background:var(--danger-soft);min-height:34px;color:var(--danger);border:1px solid #f0c2c9;border-radius:8px;padding:0 11px;font-weight:800}.relation-actions{gap:13px;display:grid}.relation-actions h3{color:var(--navy);margin:4px 0;font-size:1rem}.relation-actions form{border-bottom:1px solid #edf2f5;flex-wrap:wrap;align-items:center;gap:10px;padding-bottom:17px;display:flex}.action-message{background:var(--success-soft);color:var(--success);border-radius:9px;padding:10px 12px;font-size:.8rem}.duplicate-warning{background:var(--amber-soft);border:1px solid #f0cf88;border-radius:12px;padding:15px}.notice-detail,.print-notice{width:min(850px,100%);margin:0 auto}.print-notice{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:17px;padding:42px}.print-notice header{text-align:center;border-bottom:2px solid var(--teal);margin-bottom:25px;padding-bottom:20px}.print-notice header h1{color:var(--navy);margin:0;font-size:1.5rem}.notice-body{white-space:pre-wrap;color:var(--ink);font-size:1rem;line-height:1.75}@media (max-width:760px){.master-form{grid-template-columns:1fr}.form-actions{justify-content:stretch}.form-actions>*{flex:1}.relationship-row{flex-wrap:wrap;align-items:flex-start}.relationship-row button{margin-left:auto}.print-notice{padding:24px 18px}.relation-actions form>*{width:100%}}.role-shell{background:var(--canvas);min-height:100vh}.role-sidebar{z-index:50;color:#fff;background:var(--navy);flex-direction:column;width:265px;padding:22px 16px 18px;display:flex;position:fixed;inset:0 auto 0 0;overflow-y:auto;box-shadow:12px 0 35px #081c2d1f}.role-brand-row{border-bottom:1px solid #ffffff1f;align-items:flex-start;padding:0 6px 20px;display:flex}.role-nav{gap:4px;margin-top:18px;display:grid}.role-nav a{color:#bdd0dc;border-radius:10px;align-items:center;gap:12px;min-height:44px;padding:0 12px;font-size:.86rem;font-weight:700;display:flex}.role-nav a.active,.role-nav a:hover{color:#fff;background:#ffffff1c}.role-nav a.active{box-shadow:inset 3px 0 var(--amber)}.role-profile{border-top:1px solid #ffffff1f;grid-template-columns:42px 1fr;align-items:center;gap:10px;margin-top:auto;padding-top:17px;display:grid}.role-profile-copy small,.role-profile-copy strong{display:block}.role-profile-copy strong{color:#fff;font-size:.84rem}.role-profile-copy small{color:#91adbf;margin-top:3px;font-size:.72rem}.role-profile .logout-button{grid-column:1/-1}.role-main{min-height:100vh;margin-left:265px}.role-topbar{z-index:25;border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;min-height:76px;padding:0 clamp(18px,3vw,42px);display:flex;position:sticky;top:0}.role-topbar small,.role-topbar strong{display:block}.role-topbar strong{color:var(--navy);font-size:1rem}.role-topbar small{color:var(--muted);margin-top:4px;font-size:.75rem}.topbar-identity{color:var(--muted);align-items:center;gap:10px;font-size:.78rem;font-weight:750;display:flex}.portal-menu{border:1px solid var(--line);width:42px;height:42px;color:var(--navy);background:#fff;border-radius:10px;margin-right:12px;display:none}.portal-workspace{max-width:1450px;margin:0 auto;padding:35px clamp(18px,3vw,44px) 65px}.child-hero,.parent-welcome,.portal-hero{border:1px solid var(--line);box-shadow:var(--shadow);background:linear-gradient(135deg,#fff,#eef8f7);border-radius:18px;align-items:center;gap:18px;margin-bottom:18px;padding:24px;display:flex}.parent-welcome h1,.portal-hero h1{color:var(--navy);letter-spacing:-.045em;margin:4px 0 5px;font-size:clamp(1.8rem,4vw,2.8rem)}.parent-welcome p,.portal-hero p{color:var(--muted);margin:0}.hero-badge{background:var(--amber-soft);color:#80580f;border-radius:999px;margin-top:12px;padding:7px 11px;font-size:.72rem;font-weight:850;display:inline-flex}.portal-avatar.hero{width:78px;height:78px;font-size:1.35rem}.portal-avatar.child{width:82px;height:82px;font-size:1.4rem}.portal-avatar.tiny{width:34px;height:34px;font-size:.7rem}.portal-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px;display:grid}.portal-metric{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:14px;padding:17px}.portal-metric small,.portal-metric span,.portal-metric strong{display:block}.portal-metric small{color:var(--muted);font-size:.72rem;font-weight:800}.portal-metric strong{color:var(--navy);margin-top:9px;font-size:1.75rem}.portal-metric span{color:var(--muted);margin-top:4px;font-size:.72rem}.portal-dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.portal-panel{border:1px solid var(--line);min-width:0;box-shadow:var(--shadow);background:#fff;border-radius:16px;padding:20px}.portal-panel.span-two{grid-column:span 2}.portal-section-title{border-bottom:1px solid #edf2f5;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding-bottom:13px;display:flex}.portal-section-title>div{align-items:center;gap:10px;display:flex}.portal-section-title h2{color:var(--navy);margin:0;font-size:1rem}.portal-section-title a{color:var(--teal);font-size:.75rem;font-weight:850}.section-icon{background:var(--teal-soft);width:34px;height:34px;color:var(--teal);border-radius:10px;place-items:center;display:grid}.section-icon.amber{background:var(--amber-soft);color:#896016}.portal-empty{min-height:130px;color:var(--muted);text-align:center;background:#fbfcfd;border:1px dashed #cbd9e1;border-radius:12px;place-items:center;gap:8px;padding:20px;display:grid}.portal-empty p{margin:0;font-size:.8rem}.compact-list,.event-list,.notice-cards,.student-list,.timeline-list{gap:10px;display:grid}.compact-list>div,.event-list>div,.notice-cards>div,.student-row,.timeline-item{background:#fbfcfd;border:1px solid #e6eef2;border-radius:11px;align-items:center;gap:12px;padding:12px;display:flex}.timeline-time{flex:none;width:74px}.timeline-time span,.timeline-time strong{display:block}.timeline-time strong{color:var(--navy);font-size:.75rem}.timeline-time span{color:var(--muted);font-size:.68rem}.timeline-item>i{background:var(--teal);border-radius:50%;flex:none;width:8px;height:8px}.compact-list>div>div,.student-row>div:nth-child(2),.timeline-item>div:nth-of-type(2){flex:1}.compact-list p,.event-list p,.notice-cards p,.student-row p,.timeline-item p{color:var(--muted);margin:4px 0 0;font-size:.74rem}.compact-list strong,.event-list strong,.notice-cards strong,.student-row strong{color:var(--navy);font-size:.82rem}.small-action{color:var(--teal);font-size:.74rem;font-weight:850}.notice-cards>div{flex-direction:column;align-items:flex-start}.notice-cards>div.important{border-left:4px solid var(--amber);background:#fffaf0}.notice-cards small{color:var(--muted);font-size:.68rem}.event-list time{background:var(--teal-soft);width:48px;height:48px;color:var(--teal);text-align:center;border-radius:11px;flex:none;place-items:center;font-size:.7rem;font-weight:900;display:grid}.child-hero{color:#fff;background:linear-gradient(135deg,#102a43,#164c65);align-items:center}.child-hero p,.child-hero small,.child-hero span{color:#c8dce8}.child-hero h2{color:#fff;margin:3px 0 5px;font-size:1.55rem}.child-hero i{background:#90c8c4;border-radius:50%;width:4px;height:4px;margin:0 7px 3px;display:inline-block}.class-teacher{border-left:1px solid #fff3;min-width:155px;margin-left:auto;padding-left:18px}.class-teacher small,.class-teacher strong{display:block}.class-teacher strong{color:#fff;margin-top:5px;font-size:.82rem}.ward-switcher{min-width:245px;margin-left:auto;position:relative}.ward-switcher summary{cursor:pointer;border:1px solid var(--line);background:#fff;border-radius:12px;align-items:center;gap:10px;padding:9px;list-style:none;display:flex}.ward-switcher summary::-webkit-details-marker{display:none}.ward-switcher summary>div:nth-child(2){flex:1}.ward-switcher summary small,.ward-switcher summary strong{display:block}.ward-switcher summary small{color:var(--muted);font-size:.66rem}.ward-switcher summary strong{color:var(--navy);margin-top:3px;font-size:.78rem}.ward-switcher summary>span{color:var(--teal);font-size:.68rem;font-weight:850}.ward-switcher>div{z-index:5;border:1px solid var(--line);width:100%;box-shadow:var(--shadow);background:#fff;border-radius:12px;margin-top:7px;padding:7px;position:absolute;right:0}.ward-switcher a{border-radius:9px;align-items:center;gap:10px;padding:8px;display:flex}.ward-switcher a.selected,.ward-switcher a:hover{background:var(--teal-soft)}.ward-switcher a>div:nth-child(2){flex:1}.ward-switcher a small,.ward-switcher a strong{display:block}.ward-switcher a strong{color:var(--navy);font-size:.78rem}.ward-switcher a small{color:var(--muted);margin-top:3px;font-size:.68rem}.tomorrow-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.tomorrow-grid>div{background:#f7fafb;border-radius:12px;padding:15px}.tomorrow-grid small{color:var(--muted);text-transform:uppercase;font-size:.7rem;font-weight:850}.tomorrow-item{margin-top:10px}.tomorrow-item strong{color:var(--navy);font-size:.85rem}.subject-chips{flex-wrap:wrap;gap:7px;margin-top:10px;display:flex}.subject-chips span{background:var(--teal-soft);color:var(--teal);border-radius:999px;padding:7px 10px;font-size:.72rem;font-weight:800}.week-list{gap:8px;display:grid}.week-list details{border:1px solid var(--line);background:#fbfcfd;border-radius:10px;overflow:hidden}.week-list summary{cursor:pointer;color:var(--navy);justify-content:space-between;padding:12px 14px;font-size:.8rem;font-weight:850;display:flex}.week-list summary span{color:var(--muted);font-size:.7rem}.period-row{border-top:1px solid #edf2f5;grid-template-columns:110px 1fr;gap:10px;padding:10px 14px;display:grid}.period-row time{color:var(--muted);font-size:.72rem}.period-row strong{color:var(--navy);font-size:.78rem}.attendance-score{align-items:baseline;gap:9px;margin:5px 0 18px;display:flex}.attendance-score strong{color:var(--teal);font-size:2.6rem}.attendance-score span{color:var(--muted);font-size:.75rem}.attendance-stats{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.attendance-stats div{text-align:center;background:#f7fafb;border-radius:10px;padding:12px}.attendance-stats span,.attendance-stats strong{display:block}.attendance-stats strong{color:var(--navy);font-size:1.2rem}.attendance-stats span{color:var(--muted);margin-top:4px;font-size:.68rem}.stacked-form{gap:14px;display:grid}.stacked-form label{color:var(--ink);gap:6px;font-size:.78rem;font-weight:800;display:grid}.stacked-form>div{grid-template-columns:1fr 1fr;gap:12px;display:grid}.stacked-form input,.stacked-form select{border:1px solid var(--line);width:100%;min-height:43px;color:var(--ink);background:#fff;border-radius:9px;padding:0 11px}@media (max-width:950px){.portal-metrics{grid-template-columns:repeat(2,1fr)}.portal-dashboard-grid{grid-template-columns:1fr}.portal-panel.span-two{grid-column:auto}}@media (max-width:760px){.role-sidebar{transition:transform .2s;transform:translate(-105%)}.role-sidebar.open{transform:translate(0)}.role-main{margin-left:0}.portal-menu{place-items:center;display:inline-grid}.portal-workspace{padding:24px 15px 50px}.child-hero,.parent-welcome,.portal-hero{flex-wrap:wrap;align-items:flex-start;padding:18px}.portal-avatar.child,.portal-avatar.hero{width:62px;height:62px}.class-teacher,.ward-switcher{width:100%;margin-left:0}.class-teacher{border-top:1px solid #fff3;border-left:0;padding:12px 0 0}.stacked-form>div,.tomorrow-grid{grid-template-columns:1fr}.topbar-identity>span{display:none}}@media (max-width:460px){.portal-metrics{grid-template-columns:1fr}.timeline-item{align-items:flex-start}.timeline-item>.status-badge{margin-left:auto}.portal-section-title{align-items:flex-start}.attendance-stats{grid-template-columns:1fr}}.portal-metrics>article{background:#fff;border:1px solid #dce8ed;border-radius:16px;align-items:flex-start;gap:13px;min-height:132px;padding:18px;transition:transform .18s,box-shadow .18s,border-color .18s;display:flex;box-shadow:0 8px 24px #102a4312}.portal-metrics>article:hover{border-color:#a8d8d2;transform:translateY(-2px);box-shadow:0 12px 28px #102a431c}.portal-metrics>article>span{color:#128277;background:#e7f6f3;border-radius:12px;flex:none;place-items:center;width:40px;height:40px;display:grid}.portal-metrics>article:nth-child(2)>span{color:#9a6812;background:#fff3d8}.portal-metrics>article:nth-child(3)>span{color:#3d61a3;background:#eaf0fb}.portal-metrics>article:nth-child(4)>span{color:#b94052;background:#fff0f2}.portal-metrics>article>div{flex:1;min-width:0}.portal-metrics>article small{color:#6b7d8d;font-size:.72rem;font-weight:800;line-height:1.3;display:block}.portal-metrics>article strong{color:#102a43;overflow-wrap:anywhere;margin-top:8px;font-size:1.05rem;line-height:1.25;display:block}.portal-metrics>article p{color:#6b7d8d;margin:6px 0 0;font-size:.74rem;line-height:1.4}.portal-metrics>article a{color:#fff;background:#128277;border-radius:8px;margin-top:9px;padding:7px 10px;font-size:.7rem;font-weight:850;display:inline-flex}.teacher-hero{background:radial-gradient(circle at 92% 12%,#1282771f,#0000 32%),linear-gradient(135deg,#fff,#edf8f7);min-height:220px;position:relative;overflow:hidden}.teacher-hero:after{content:"";border:34px solid #efa53a1f;border-radius:50%;width:260px;height:260px;position:absolute;bottom:-100px;right:-80px}.teacher-hero>div:last-child{z-index:1;position:relative}.teacher-hero .portal-avatar.hero{z-index:1;border:6px solid #fff;position:relative;box-shadow:0 8px 24px #102a431f}.portal-panel{overflow:hidden}.portal-panel h2{color:#102a43}.portal-panel>.welcome{margin-bottom:16px}.timeline-item{background:#fff;border-color:#dfe9ee;min-height:82px;box-shadow:0 3px 10px #102a4309}.timeline-item:hover{background:#fbfefe;border-color:#afd9d4}.timeline-item>div:nth-of-type(2){min-width:0}.timeline-item>div:nth-of-type(2) strong{color:#102a43;font-size:.9rem;display:block}.timeline-item>.status-badge{margin-left:auto}.student-row{background:#fff;border-color:#e1ebef;min-height:64px}.compact-list>div:hover,.event-list>div:hover,.student-row:hover{background:#f8fcfc;border-color:#b9ddd8}.compact-list>div,.event-list>div{background:#fff;border-color:#e1ebef;min-height:62px}.notice-cards>div{background:#fff;border-color:#e1ebef;justify-content:flex-start;min-height:145px}.notice-cards>div strong{font-size:.92rem}.notice-cards>div p{line-height:1.55}.status-badge.neutral{color:#607383;background:#edf2f5}.status-badge.active,.status-badge.approved,.status-badge.present{color:#19734f;background:#e5f6ed}.status-badge.absent,.status-badge.rejected{color:#b94052;background:#fff0f2}.status-badge.high,.status-badge.leave,.status-badge.pending,.status-badge.urgent{color:#896016;background:#fff3d8}.parent-welcome{background:radial-gradient(circle at 94% 15%,#efa53a29,#0000 28%),linear-gradient(135deg,#fff,#f4faf9);min-height:160px}.parent-welcome>div:first-child{min-width:0}.child-hero{border:0;min-height:150px;position:relative;overflow:hidden;box-shadow:0 10px 28px #102a4329}.child-hero:after{content:"";border:28px solid #ffffff14;border-radius:50%;width:220px;height:220px;position:absolute;top:-80px;right:-40px}.child-hero>div{z-index:1;position:relative}.child-hero .portal-avatar.child{border:5px solid #ffffff4d}.child-hero .class-teacher{z-index:1;position:relative}.parent-metrics>article{min-height:126px}.tomorrow-card{background:linear-gradient(135deg,#fffffff5,#f7fcfbfa),radial-gradient(circle at 90% 10%,#efa53a1f,#0000 30%)}.tomorrow-card .portal-section-title p{color:#6b7d8d;margin:4px 0 0;font-size:.72rem}.attendance-score{padding:10px 0 4px}.attendance-score strong{letter-spacing:-.06em;font-size:3rem}.attendance-stats div{background:#fbfdfd;border:1px solid #e2ecef}.leave-form{background:#fffdfa}.leave-form .portal-section-title{border-bottom-color:#f1e5ca}.stacked-form input:focus,.stacked-form select:focus{border-color:#128277;outline:none;box-shadow:0 0 0 3px #1282771f}.stacked-form button{width:max-content;min-width:145px}.action-message{margin:12px 0 0}.ward-switcher summary{min-height:58px;box-shadow:0 4px 14px #102a430d}.ward-switcher summary:hover{border-color:#9ecfc9}.ward-switcher>div{max-height:280px;overflow-y:auto}.portal-scrim{z-index:45;background:#091e307a;border:0;position:fixed;inset:0}.logout-button{background:#ffffff14;border:1px solid #fff3;border-radius:9px;min-height:38px;padding:0 13px;font-size:.76rem;font-weight:800;display:inline-flex}.logout-button:hover{border-color:var(--amber);color:#fff;background:#efa53a29}@media (max-width:1100px){.portal-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:760px){.portal-metrics{grid-template-columns:1fr}.portal-metrics>article{min-height:104px}.parent-welcome,.teacher-hero{min-height:0}.parent-welcome h1,.portal-hero h1{font-size:2rem}.child-hero{gap:13px}.child-hero>div:nth-child(2){min-width:calc(100% - 80px)}.child-hero .class-teacher{width:100%;margin-top:5px}.portal-section-title{gap:8px}.portal-section-title h2{font-size:.92rem}.timeline-item{align-items:flex-start}.timeline-item>.status-badge{display:none}.stacked-form button{width:100%}}:root{--navy:#173c68;--navy-light:#245488;--teal:#087e70;--teal-dark:#07675c;--amber:#ffb936;--canvas:#f5f7fc;--ink:#213650;--muted:#5f7087;--line:#dbe4ef;--shadow:0 6px 22px rgb(30 58 95/6%)}body{font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.5}.erp-shell,.role-shell{background:radial-gradient(ellipse at 95% 0,#fff0d7 0,transparent 35%),radial-gradient(ellipse at 20% 100%,#e7f5ef 0,transparent 35%),#f5f7fc}.role-sidebar,.sidebar{background:linear-gradient(165deg,#153965,#224575 65%,#463e77);box-shadow:4px 0 24px #173c6814}.school-logo{display:block;width:100%;height:auto;max-height:100px;object-fit:contain}.role-sidebar .school-mark,.sidebar .school-mark{display:block;background:transparent;border:0;border-radius:0;padding:0;width:100%;box-shadow:none}.school-mark .brand-caption{display:block;text-align:center;color:#d4e3f3;font-size:11px;font-weight:700;letter-spacing:.06em;margin-top:3px}.admin-brand-row,.role-brand-row{width:100%;gap:8px}.nav-link,.role-nav a{min-height:44px;font-weight:650;letter-spacing:.01em}.nav-link svg,.role-nav a svg{color:#a9dfda;flex-shrink:0}.nav-link:hover,.role-nav a:hover{background:#ffffff16}.nav-link.active,.role-nav a.active{background:#ffffff20;box-shadow:inset 4px 0 #ffc94b}.role-topbar,.topbar{border-top:4px solid transparent;border-image:linear-gradient(90deg,#f58220,#e73b48,#ffd440,#4dad64,#208ed1,#7253a2) 1;background:#fffffff2}.welcome h2{font-size:clamp(1.7rem,3vw,2.35rem);font-weight:750;letter-spacing:-.035em}.eyebrow{color:#7253a2;letter-spacing:.13em;font-size:.72rem}.portal-workspace,.workspace{padding-top:28px}.notice-card,.panel,.portal-panel{border-radius:18px;box-shadow:var(--shadow)}.panel h3,.portal-section-title h2{font-weight:750}.primary-button{background:#087e70;border:1px solid #087e70;color:#fff;min-height:44px;font-weight:700;gap:8px;box-shadow:0 3px 9px #087e701c}.primary-button:hover{background:#07675c;transform:translateY(-1px)}.secondary-button,.table-action{background:#fff;border:1px solid #b7ccdc;color:#174a74;min-height:38px}.portal-workspace input:not([type=checkbox]):not([type=radio]),.portal-workspace select,.portal-workspace textarea,.workspace input:not([type=checkbox]):not([type=radio]):not([type=hidden]),.workspace select,.workspace textarea{background:#fff;color:#213650;border:1px solid #a9bdd1;border-radius:10px;min-height:44px;padding:10px 12px;max-width:100%;box-sizing:border-box}input::placeholder,textarea::placeholder{color:#78879a;opacity:1}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,textarea:focus-visible{outline:3px solid #70c4e9;outline-offset:3px}.workspace form label{display:grid;gap:7px;font-size:.82rem;font-weight:650;min-width:0}.workspace form label:has(input[type=checkbox]){display:flex;align-items:center;gap:8px}.workspace form input[type=checkbox]{width:18px;height:18px;accent-color:#087e70}.master-form,.stacked-form{gap:18px}.master-tools{flex-wrap:wrap;align-items:flex-end}.filter-row{display:flex;gap:12px;flex-wrap:wrap}.admin-filters{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));border-top:3px solid #93cdbc;box-shadow:none}.form-actions{flex-wrap:wrap;gap:10px;justify-content:flex-end;padding-top:18px;border-top:1px solid #e0e7ef}.form-actions button:not(.primary-button){border:1px solid #b7ccdc;background:#fff;padding:10px 16px;border-radius:10px}.metric-card,.portal-metrics>article,.summary-strip article{border-top:4px solid #f2b544;background:#fff;border-radius:16px}.metric-card:nth-child(4n+2),.portal-metrics>article:nth-child(4n+2),.summary-strip article:nth-child(4n+2){border-top-color:#4caf83}.metric-card:nth-child(4n+3),.portal-metrics>article:nth-child(4n+3),.summary-strip article:nth-child(4n+3){border-top-color:#509fd7}.metric-card:nth-child(4n+4),.portal-metrics>article:nth-child(4n+4),.summary-strip article:nth-child(4n+4){border-top-color:#9875ca}.metric-card strong{font-size:1.9rem;font-weight:750}.portal-metrics>article strong{line-height:1.35}.metric-icon,.section-icon{background:#e7f4ee;color:#157656}.parent-welcome,.teacher-hero{min-height:unset;padding:26px;background:linear-gradient(115deg,#fff8e8,#f4f2fc 62%,#e8f7f3);border:1px solid #e7dff2}.teacher-hero:after{border-color:#ffcc5826}.parent-welcome h1,.portal-hero h1{font-weight:750;font-size:clamp(1.65rem,3vw,2.3rem)}.child-hero{background:linear-gradient(120deg,#276194,#635196);border-top:4px solid #ffd459}.hero-badge{background:#fff0bd;color:#704a07}.portal-avatar{background:#e2f4ef;color:#087e70}.portal-panel:nth-child(3n+1)>.portal-section-title{border-bottom-color:#d8ece5}.portal-panel:nth-child(3n+2)>.portal-section-title{border-bottom-color:#e9dff5}th{background:#edf3fa;color:#39516f;font-size:.73rem}td,th{padding:14px}td{font-size:.84rem}tbody tr:nth-child(2n){background:#fafcfe}tbody tr:hover{background:#f0f8f5}.table-wrap{max-width:100%;overflow:auto;border-radius:12px}.main-area,.panel,.portal-panel,.role-main{min-width:0}.notice-card{border-top:4px solid #67b597}.notice-card.high{border-top-color:#efa529;background:#fffdf7}.notice-card.urgent{border-top-color:#d75a6d}.calendar-weekday{background:#eef1fa;color:#534d80;font-weight:750}.calendar-day{transition:background .15s}.calendar-day:hover{background:#fffbed}.calendar-event{white-space:normal;line-height:1.4}.timetable-grid thead th{background:#355982}.timetable-cell{background:#e9f6ef;border-left-color:#45a778}.timetable-cell.activity{background:#f3ecfb;border-left-color:#9270bd}.check-times{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}.check-times>div{padding:14px;border-radius:12px;background:#edf6fa}.check-times small,.check-times strong{display:block}.check-times small{color:#5f7087}.check-times strong{margin-top:5px;color:#173c68}.status-badge.neutral{background:#edf0f6;color:#53617a}.logout-button{min-height:44px;gap:8px;width:100%;border:1px solid #ffffff45;background:#ffffff12;color:#fff;border-radius:10px;display:flex;align-items:center;justify-content:center}.login-brand{background:linear-gradient(150deg,#18466f,#316b88 60%,#67609b)}.login-brand .school-mark{display:block;max-width:290px;background:transparent;border:0;border-radius:0;padding:0;box-shadow:none}.login-brand h1{font-size:clamp(2.4rem,4vw,4rem);line-height:1.1}@media(max-width:1000px){.admin-filters,.portal-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.role-sidebar .portal-close{display:grid;place-items:center;width:32px;height:32px}.welcome h2{font-size:1.8rem}.portal-workspace,.workspace{padding:22px 14px 45px}.panel,.portal-panel{padding:16px}.portal-workspace .status-badge{white-space:normal;flex-shrink:0}.compact-list>div,.portal-section-title,.student-row{flex-wrap:wrap}.admin-filters,.portal-metrics{grid-template-columns:1fr}.role-sidebar,.sidebar{max-width:85vw}.calendar-panel{overflow-x:auto}.calendar-grid{min-width:530px}}.cloudline-credit{display:flex;flex-wrap:wrap;justify-content:center;gap:5px 8px;text-align:center;padding:22px 18px;margin-top:auto;border-top:1px solid #dce5ee;color:#62758c;font-size:.76rem;line-height:1.7}.cloudline-credit a{color:#275b9b;font-weight:700;text-decoration:underline;text-underline-offset:3px}.cloudline-credit a:hover{color:#7548aa}.login-card .cloudline-credit{margin-top:24px;padding:18px 0 0}.subjects-intro{margin-top:10px;color:#61738a;font-size:.94rem}.sections-add{display:inline-flex;align-items:center;gap:8px}.sections-filters{display:grid;grid-template-columns:minmax(260px,1fr) 190px 150px;gap:16px;align-items:end;margin-bottom:22px}.sections-filters label{display:grid;gap:7px;color:#39516f;font-size:.76rem;font-weight:700}.sections-search>div{position:relative}.sections-search svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#70849a}.workspace .sections-search input{width:100%;padding-left:42px}.sections-table strong{color:#173f6c}.class-chip{display:inline-flex;align-items:center;min-height:29px;padding:5px 10px;border-radius:20px;background:#eaf3ff;color:#245b91;font-size:.78rem;font-weight:700}.sections-table .table-action{display:inline-flex;align-items:center;padding:7px 11px;border-radius:8px;text-decoration:none}.sections-table .table-action:hover{background:#edf7f4;color:#087e70}.fee-summary{margin-bottom:22px}.fee-summary article strong{font-size:1.35rem}.collect-payment{background:#e7f6f1;border-color:#9dd5c4;color:#087966;font-weight:700;white-space:nowrap}.payment-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:22px}.payment-summary>div{display:grid;gap:6px;padding:20px;border:1px solid #d8e4ed;border-top:4px solid #4aa98a;border-radius:15px;background:#fff}.payment-summary>div:nth-child(2){border-top-color:#efae35}.payment-summary>div:nth-child(3){border-top-color:#7c68b7}.payment-summary small,.receipt-student small{color:#64788e;font-size:.73rem}.payment-summary strong{color:#173f68;font-size:1.05rem}.payment-summary span{color:#687c91;font-size:.79rem}.payment-form{max-width:none}.payment-actions,.payment-remarks{grid-column:1/-1}.receipt-actions{display:flex;justify-content:flex-end;gap:12px;margin-bottom:18px}.print-button,.receipt-actions .secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border-radius:10px;text-decoration:none}.print-receipt{width:min(850px,100%);margin:0 auto;padding:44px;background:#fff;border:1px solid #d9e4ed;border-radius:18px;box-shadow:0 15px 45px #213b5914;color:#20364e}.receipt-header{display:flex;align-items:center;gap:25px;padding-bottom:25px;border-bottom:3px solid #efb53f}.receipt-header img{width:180px;height:auto}.receipt-header h1{font-size:1.25rem;margin:0 0 5px;color:#173f6c}.receipt-header p{margin:2px 0;color:#66788b;font-size:.76rem;line-height:1.5}.receipt-title{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:28px 0}.receipt-title p{font-size:.68rem;letter-spacing:.15em;font-weight:800;color:#087e70;margin:0}.receipt-title h2{font-size:1.45rem;margin:5px 0 0}.receipt-title>div:last-child{display:grid;text-align:right;gap:5px}.receipt-title small{color:#718196}.receipt-student{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:1px;background:#dce5ed;border:1px solid #dce5ed;border-radius:12px;overflow:hidden;margin-bottom:26px}.receipt-student>div{display:grid;gap:5px;background:#f8fbfd;padding:16px}.receipt-table{width:100%;border:1px solid #dce5ed}.receipt-table tfoot th{background:#eef7f3;font-size:.88rem}.receipt-table td:last-child,.receipt-table th:last-child{text-align:right}.receipt-notes{margin-top:22px;padding:14px 16px;background:#f7f9fc;border-radius:10px;font-size:.8rem}.receipt-notes p{margin:5px 0}.receipt-footer{display:flex;justify-content:space-between;gap:30px;margin-top:55px}.receipt-footer>div{display:grid;gap:7px}.receipt-footer span{font-size:.72rem;color:#718196}.signature-line{min-width:190px;border-top:1px solid #66798c;padding-top:8px;text-align:center}.receipt-generated{text-align:center;color:#8190a1;font-size:.68rem;margin:38px 0 0}.account-summary{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:18px}.account-security-note{display:flex;align-items:flex-start;gap:10px;margin-bottom:22px;padding:15px 18px;border:1px solid #c9ddf2;border-radius:12px;background:#eef6ff;color:#365b80;font-size:.8rem}.account-security-note strong{white-space:nowrap;color:#174b7c}.record-count{padding:6px 10px;border-radius:20px;background:#eff4f9;color:#5a6e84;font-size:.74rem;font-weight:700}.password-protected{display:grid;gap:2px;letter-spacing:.12em;color:#45617e}.password-protected small{letter-spacing:normal;color:#718399}.account-controls,.account-create{display:grid;gap:8px;min-width:250px}.account-create{grid-template-columns:minmax(150px,1fr) auto}.workspace .account-create input{min-height:38px;padding:7px 10px}.account-controls .table-action,.account-create .table-action{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 10px;border-radius:8px}.account-message{grid-column:1/-1;color:#49647e;line-height:1.4}.temporary-password{grid-column:1/-1;display:grid;grid-template-columns:1fr auto;gap:5px 12px;padding:12px;border:1px solid #efca71;border-radius:10px;background:#fff9e9}.temporary-password span{grid-column:1/-1;font-size:.7rem;color:#765d25}.temporary-password strong{align-self:center;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.83rem;overflow-wrap:anywhere}.temporary-password button{display:inline-flex;align-items:center;gap:5px;border:0;border-radius:7px;background:#173f6c;color:#fff;padding:7px 9px}.subjects-workspace .welcome .primary-button{display:inline-flex;align-items:center;gap:8px;flex-shrink:0}.subjects-panel{padding:24px}.subjects-toolbar{display:flex;align-items:center;gap:20px;padding-bottom:22px;border-bottom:1px solid #e5ebf2}.subjects-search{position:relative;display:flex;align-items:center;flex:1;max-width:620px;min-width:0}.subjects-search>svg{position:absolute;left:15px;color:#71849b;pointer-events:none}.workspace .subjects-search input{width:100%;padding-left:44px;min-height:48px;background:#f9fbfe}.subjects-archive{display:flex;align-items:center;gap:9px;cursor:pointer;font-size:.86rem;font-weight:600;color:#4c6078;white-space:nowrap}.subjects-archive input[type=checkbox]{appearance:auto;width:18px;height:18px;min-height:18px;margin:0;accent-color:#087e70;flex:none}.subjects-library-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:24px 0 18px}.subjects-library-heading h3{font-size:1.05rem;margin:0}.subjects-library-heading>span{font-size:.8rem;color:#667991;background:#f0f4f9;padding:6px 11px;border-radius:20px}.subjects-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.subject-tile{--subject-accent:#277bbc;--subject-soft:#edf6ff;border:1px solid #dbe5ef;border-top:4px solid var(--subject-accent);border-radius:16px;padding:20px;background:linear-gradient(135deg,var(--subject-soft),#fff 65%);min-width:0;transition:box-shadow .15s,transform .15s}.subject-colour-1{--subject-accent:#8a61c1;--subject-soft:#f5effd}.subject-colour-2{--subject-accent:#cc8516;--subject-soft:#fff7e5}.subject-colour-3{--subject-accent:#218a72;--subject-soft:#eaf8f2}.subject-tile:hover{box-shadow:0 8px 24px #23436712;transform:translateY(-2px)}.subject-tile-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.subject-book{display:grid;place-items:center;width:46px;height:46px;border-radius:13px;background:var(--subject-soft);color:var(--subject-accent)}.subject-state{font-size:.7rem;font-weight:650;color:#526879;background:#ffffffc9;border:1px solid #e0e8ef;border-radius:20px;padding:4px 9px}.subject-tile h4{font-size:1.06rem;line-height:1.45;font-weight:700;margin:18px 0 9px;overflow-wrap:anywhere;color:#193e65}.subject-code{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:.76rem;color:#6a7b8e;margin:0 0 20px}.subject-code strong{font-size:.72rem;letter-spacing:.03em;background:#eff3f8;border-radius:5px;padding:3px 7px;color:#475e77;overflow-wrap:anywhere}.subject-open{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid #e3eaf1;padding-top:15px;min-height:44px;font-size:.83rem;font-weight:650;color:var(--subject-accent);text-decoration:none}.subject-open:hover{text-decoration:underline}.subjects-empty{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;padding:50px 18px;color:#647890}.subjects-empty h4{margin:0;color:#234568}.subjects-empty p{margin:0}.subjects-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}@media(max-width:1200px){.subjects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.payment-summary,.receipt-student,.sections-filters{grid-template-columns:1fr}.receipt-header,.receipt-title{align-items:flex-start;flex-direction:column}.receipt-title>div:last-child{text-align:left}.print-receipt{padding:24px}.subjects-grid{grid-template-columns:1fr}.subjects-toolbar{align-items:stretch;flex-direction:column;gap:16px}.subjects-panel{padding:16px}.subjects-archive{min-height:32px}.subjects-workspace .welcome{gap:18px;flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media print{.erp-shell,.role-shell{background:white}.panel{box-shadow:none}.role-topbar,.topbar{display:none}.receipt-workspace{padding:0!important}.print-receipt{width:100%;max-width:none;padding:12mm;border:0;border-radius:0;box-shadow:none}.receipt-header img{width:45mm}.receipt-generated{margin-top:20mm}@page{size:A4;margin:10mm}}.portal-avatar{flex:0 0 auto;aspect-ratio:1/1;isolation:isolate}.portal-avatar>span{position:relative;z-index:0}.portal-avatar>img{inset:0!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;display:block!important;border:0!important;border-radius:inherit!important;z-index:1}.portal-avatar>img,.relationship-avatar{object-fit:cover!important;object-position:center!important}.relationship-avatar{width:44px!important;height:44px!important;min-width:44px!important;max-width:44px!important;aspect-ratio:1/1;display:block;flex:0 0 44px;border-radius:50%!important;background:#e2f4ef}.avatar-fallback{width:44px;height:44px;min-width:44px;display:grid;place-items:center;flex:0 0 44px;border-radius:50%;background:#e2f4ef;color:#087e70;font-weight:800}.photo-control>.avatar-fallback,.photo-control>img{width:112px!important;height:112px!important;min-width:112px!important;max-width:112px!important;aspect-ratio:1/1;object-fit:cover!important;object-position:center!important;border-radius:50%!important}@media(max-width:760px){.avatar-fallback,.relationship-avatar{width:40px!important;height:40px!important;min-width:40px!important;flex-basis:40px}.photo-control>.avatar-fallback,.photo-control>img{width:96px!important;height:96px!important;min-width:96px!important;max-width:96px!important}}.parent-fee-list{display:grid;gap:12px}.parent-fee-row{display:grid;grid-template-columns:minmax(150px,1.2fr) minmax(130px,.8fr) auto;align-items:center;gap:18px;padding:17px 18px;border:1px solid #dce7ef;border-radius:14px;background:linear-gradient(120deg,#fbfeff,#f2fbf8)}.parent-fee-row>div{display:grid;gap:5px;min-width:0}.parent-fee-row strong{color:#173f68}.parent-fee-row small,.parent-fee-row span{font-size:.76rem;color:#657a90}.parent-pay-button{white-space:nowrap;min-height:42px}.parent-payment-history{margin-top:24px;padding-top:20px;border-top:1px solid #e1e9f0}.parent-payment-history h3{margin:0 0 12px;color:#173f68;font-size:1rem}.parent-receipt-action{display:flex!important;align-items:center;justify-content:flex-end;gap:14px}.parent-receipt-action a{display:inline-flex;align-items:center;gap:6px;color:#087e70;font-size:.78rem;font-weight:750;text-decoration:none}.parent-receipt-action a:hover{text-decoration:underline}.portal-payment-message{margin:0 0 16px;padding:11px 13px;border:1px solid #ead08a;border-radius:10px;background:#fff9e8;color:#6d571c;font-size:.82rem;line-height:1.45}@media(max-width:700px){.parent-fee-row{grid-template-columns:1fr;gap:12px}.parent-pay-button{width:100%}.parent-receipt-action{justify-content:space-between!important}}.notice-form label{display:grid;gap:7px}.notice-form label>span{color:#39516f;font-size:.76rem;font-weight:750}.notice-form .form-span{grid-column:1/-1}.notice-delivery-note{display:grid;gap:5px;padding:13px 15px;border:1px solid #b9dcd3;border-radius:11px;background:#effaf6;color:#486b63;font-size:.78rem;line-height:1.45}.notice-delivery-note strong{color:#087e70}.portal-notification{position:relative;display:grid;place-items:center;width:38px;height:38px;border:1px solid #d8e4ed;border-radius:11px;background:#fff;color:#24486e;text-decoration:none}.portal-notification:hover{background:#f0f7fb}.portal-notification b{position:absolute;right:-5px;top:-6px;display:grid;place-items:center;min-width:19px;height:19px;padding:0 5px;border:2px solid #fff;border-radius:999px;background:#ec6e45;color:#fff;font-size:.62rem}.role-nav .nav-count{margin-left:auto;display:grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#f9ad35;color:#173f68;font-size:.66rem}.top-actions .icon-button{display:grid;place-items:center;text-decoration:none}#notices{scroll-margin-top:90px}.portal-account-page{max-width:1180px;margin:0 auto;padding:36px}.portal-page-heading{margin-bottom:24px}.portal-page-heading h1{margin:4px 0 8px;color:#153f69;font-size:clamp(2rem,4vw,3rem)}.portal-page-heading>div>p:last-child{color:#60758d}.portal-account-grid{display:grid;grid-template-columns:300px 1fr;gap:22px;align-items:start}.portal-account-grid .photo-control{grid-row:span 2;display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center}.portal-account-grid .photo-control .avatar-fallback,.portal-account-grid .photo-control img{width:138px;height:138px;border-radius:50%;object-fit:cover}.portal-account-grid .photo-control button,.portal-account-grid .photo-control label{width:100%;justify-content:center}.account-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.account-form-grid label{display:grid;gap:7px}.account-form-grid label>span{color:#35526e;font-size:.78rem;font-weight:800}.account-form-grid input,.account-form-grid textarea{width:100%;border:1px solid #bfd0e0;border-radius:11px;background:#fff;padding:12px 13px;color:#173f68;font:inherit}.account-form-grid input:focus,.account-form-grid textarea:focus{outline:3px solid rgba(14,141,125,.13);border-color:#0e8d7d}.account-form-grid input:disabled{background:#edf3f7;color:#60758d}.account-form-grid label small,.password-help{color:#71839a}.form-span{grid-column:1/-1}.form-actions{display:flex;align-items:center;gap:14px}.form-actions p{margin:0;color:#087e70;font-weight:700}.password-card{grid-column:2}.password-card .portal-section-title p{margin:4px 0 0;color:#71839a;font-size:.82rem}@media(max-width:800px){.portal-account-page{padding:22px 16px}.portal-account-grid{grid-template-columns:1fr}.portal-account-grid .photo-control{grid-row:auto}.password-card{grid-column:auto}.account-form-grid{grid-template-columns:1fr}.form-span{grid-column:auto}}