.guardian-portal{min-height:100vh;background:#f4f7f5;color:#20352b}
.guardian-header{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 max(20px,calc((100vw - 1120px)/2));border-bottom:1px solid #e6ece8;background:#fff}
.guardian-brand{display:flex;align-items:center;gap:10px;color:#20352b;text-decoration:none}
.guardian-brand img{width:42px;height:42px;object-fit:contain;border-radius:11px}
.guardian-brand strong,.guardian-brand small{display:block}
.guardian-brand strong{font-size:13px}
.guardian-brand small{margin-top:3px;color:#728077;font-size:10px}
.guardian-back-link{color:#42604d;font-size:11px;font-weight:650;text-decoration:none}
.guardian-main{width:min(1120px,calc(100% - 32px));min-height:calc(100vh - 128px);margin:0 auto;padding:32px 0 42px}
.guardian-login-panel{width:min(100%,440px);margin:6vh auto;padding:30px;border:1px solid #e4ebe6;border-radius:18px;background:#fff;box-shadow:0 16px 44px #183a2510}
.guardian-eyebrow{color:#a1833f;font-size:9px;font-weight:750;letter-spacing:1.2px}
.guardian-login-panel h1,.guardian-welcome h1{margin:8px 0 7px;color:#183a2a;font-size:26px;letter-spacing:-.7px}
.guardian-login-panel>p,.guardian-welcome p{margin:0;color:#6d7b72;font-size:12px;line-height:1.65}
.guardian-login-panel form{display:grid;gap:13px;margin-top:22px}
.guardian-login-panel label{display:grid;gap:6px;color:#526158;font-size:11px;font-weight:650}
.guardian-login-panel input,.guardian-child-picker select,.guardian-request-form input,.guardian-request-form textarea{width:100%;min-height:42px;padding:10px 11px;border:1px solid #dfe7e1;border-radius:9px;background:#fff;color:#20352b;font:inherit}
.guardian-primary-button,.guardian-secondary-button{min-height:42px;padding:0 16px;border:0;border-radius:9px;background:#174f38;color:#fff;font-size:11px;font-weight:700;cursor:pointer}
.guardian-primary-button{margin-top:3px}
.guardian-primary-button:disabled{opacity:.6;cursor:wait}
.guardian-secondary-button{border:1px solid #dfe7e1;background:#fff;color:#365342}
.guardian-help{display:block;margin-top:17px;color:#7a877f;font-size:10px;line-height:1.6}
.guardian-error,.guardian-global-error{min-height:16px;margin:0;color:#a33e37;font-size:11px}
.guardian-welcome{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:23px 26px;border-radius:17px;background:linear-gradient(125deg,#123b2b,#1d6749);color:#fff}
.guardian-welcome h1{color:#fff;font-size:24px}
.guardian-welcome p{color:#d5e5db}
.guardian-welcome .guardian-eyebrow{color:#e2c777}
.guardian-welcome .guardian-secondary-button{flex:none}
.guardian-child-picker{display:flex;align-items:center;gap:12px;margin:18px 0 14px;padding:14px 16px;border:1px solid #e3ebe5;border-radius:12px;background:#fff}
.guardian-child-picker label{color:#4b5e51;font-size:11px;font-weight:700}
.guardian-child-picker select{width:min(360px,100%);min-height:38px;padding:7px 10px}
.guardian-content{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.8fr);gap:14px}
.guardian-card{min-width:0;padding:17px;border:1px solid #e4ebe6;border-radius:13px;background:#fff}
.guardian-card h2{margin:0;color:#20382b;font-size:14px}
.guardian-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:13px}
.guardian-card-heading p{margin:4px 0 0;color:#7d8981;font-size:10px}
.guardian-request-history-heading{margin-top:20px}
.guardian-student-card{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border:1px solid #dce9df;border-radius:13px;background:#f7fbf8}
.guardian-student-card strong{display:block;color:#20382b;font-size:16px}
.guardian-student-card span{display:block;margin-top:4px;color:#748078;font-size:11px}
.guardian-overview-card{grid-column:1/-1;min-width:0;padding:16px 17px;border:1px solid #dce9df;border-radius:13px;background:#fff}
.guardian-overview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.guardian-overview-grid article{padding:10px 8px;border:1px solid #e8eee9;border-radius:9px;background:#fbfcfb;text-align:center}
.guardian-overview-grid strong{display:block;color:#1b6041;font-size:19px}
.guardian-overview-grid span{display:block;margin-top:3px;color:#748078;font-size:9px}
.guardian-weekly-card{grid-column:1/-1;min-width:0;padding:17px;border:1px solid #dce9df;border-radius:13px;background:linear-gradient(135deg,#fff 0%,#f7fbf8 100%)}
.guardian-weekly-card .guardian-card-heading{margin-bottom:10px}
.guardian-weekly-highlights{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}
.guardian-weekly-highlights section{min-width:0}
.guardian-weekly-highlights h3{margin:0 0 7px;color:#52665a;font-size:10px}
.guardian-weekly-highlights .guardian-announcement,.guardian-weekly-highlights .guardian-agenda{padding:9px}
.guardian-weekly-highlights .guardian-announcement p,.guardian-weekly-highlights .guardian-agenda p{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3}
.guardian-attendance-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px}
.guardian-attendance-metric{padding:10px 8px;border:1px solid #e8eee9;border-radius:9px;background:#fbfcfb;text-align:center}
.guardian-attendance-metric strong{display:block;color:#1b6041;font-size:19px}
.guardian-attendance-metric span{display:block;margin-top:2px;color:#748078;font-size:9px}
.guardian-table{width:100%;border-collapse:collapse;text-align:left}
.guardian-table th{padding:8px 7px;border-bottom:1px solid #e8eee9;color:#7f8a82;font-size:9px}
.guardian-table td{padding:9px 7px;border-bottom:1px solid #eff2ef;color:#46564c;font-size:10px;white-space:normal}
.guardian-table tr:last-child td{border-bottom:0}
.guardian-status{display:inline-block;padding:4px 7px;border-radius:20px;background:#edf5ef;color:#286142;font-size:9px;font-weight:700}
.guardian-status.is-sakit,.guardian-status.is-izin,.guardian-status.is-menunggu{background:#fbf4df;color:#8a6c1d}
.guardian-status.is-alpa,.guardian-status.is-ditolak{background:#fbebea;color:#9c443f}
.guardian-announcement-list,.guardian-agenda-list,.guardian-request-list{display:grid;gap:9px}
.guardian-announcement,.guardian-agenda,.guardian-request{padding:11px;border:1px solid #edf1ed;border-radius:9px}
.guardian-announcement small,.guardian-agenda small,.guardian-request small{color:#839087;font-size:9px}
.guardian-announcement h3,.guardian-agenda h3{margin:5px 0;color:#2d4536;font-size:12px}
.guardian-announcement p,.guardian-agenda p,.guardian-request p{margin:0;color:#647268;font-size:10px;line-height:1.55;white-space:pre-wrap}
.guardian-request-form{display:grid;gap:9px}
.guardian-request-form label{display:grid;gap:5px;color:#55645a;font-size:10px;font-weight:650}
.guardian-request-form textarea{min-height:84px;resize:vertical}
.guardian-empty,.guardian-loading{padding:15px 8px;color:#839087;font-size:11px;text-align:center}
.guardian-staff-note{display:block;margin-top:4px;color:#6e7c72;font-size:9px;white-space:normal}
.guardian-privacy-note{margin:17px 2px 0;color:#7a877f;font-size:10px;line-height:1.6}
.guardian-footer{padding:16px;text-align:center;color:#87928a;font-size:9px}
.guardian-global-error:not([hidden]){margin-top:12px;padding:12px;border:1px solid #f0d7d4;border-radius:9px;background:#fff7f6}
.guardian-admin-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
.guardian-admin-grid>.panel{min-width:0;max-width:100%}
.guardian-admin-grid .table-wrap{min-width:0;max-width:100%;overflow-x:auto}
.guardian-admin-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:15px}
.guardian-admin-form>label{display:grid;gap:5px;color:#526158;font-size:10px;font-weight:650}
.guardian-admin-form input,.guardian-admin-form select{min-width:0;min-height:36px;padding:8px;border:1px solid #dfe7e1;border-radius:8px;background:#fff;color:#20352b;font:inherit}
.guardian-admin-form label small{color:#849087;font-size:9px;font-weight:400}
.guardian-admin-form .guardian-children-field{grid-column:1/-1}
.guardian-admin-form select[multiple]{min-height:140px}
.guardian-admin-form .form-error{grid-column:1/-1;margin:0;color:#a33e37;font-size:10px}
.guardian-admin-form .dialog-actions{grid-column:1/-1;justify-content:flex-end}
.guardian-requests-panel .table-wrap{max-height:520px}
.guardian-review-actions{display:flex;gap:5px}
.guardian-review-actions .button{padding:6px 8px}
.guardian-staff-note{max-width:180px}
@media(max-width:760px){.guardian-main{padding:18px 0 30px}.guardian-header{height:64px;padding:0 16px}.guardian-welcome{align-items:flex-start;padding:18px;flex-direction:column}.guardian-welcome h1{font-size:21px}.guardian-child-picker{align-items:stretch;flex-direction:column;gap:7px}.guardian-content{grid-template-columns:1fr}.guardian-student-card,.guardian-overview-card,.guardian-weekly-card{grid-column:auto}.guardian-admin-form{grid-template-columns:1fr}.guardian-admin-form .guardian-children-field,.guardian-admin-form .form-error,.guardian-admin-form .dialog-actions{grid-column:auto}.guardian-requests-panel .table-wrap{max-height:none}}
@media(max-width:520px){.guardian-weekly-highlights{grid-template-columns:1fr}}
@media(max-width:430px){.guardian-login-panel{padding:22px 18px}.guardian-login-panel h1{font-size:23px}.guardian-attendance-summary{gap:5px}.guardian-attendance-metric{padding:9px 4px}.guardian-attendance-metric span{font-size:8px}.guardian-card{padding:14px}.guardian-back-link{font-size:10px}}
.guardian-welcome-actions{display:flex;align-items:center;gap:8px;flex:none}.guardian-notification-badge{display:inline-grid;min-width:17px;height:17px;padding:0 4px;place-items:center;border-radius:20px;background:#b84338;color:#fff;font-size:10px;font-weight:750}.guardian-notification-panel{margin:-4px 0 14px;padding:15px;border:1px solid #e3ebe5;border-radius:13px;background:#fff}.guardian-notification-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.guardian-notification-heading h2{margin:0;color:#20382b;font-size:13px}.guardian-notification-heading p{margin:4px 0 0;color:#7a877f;font-size:10px}.guardian-notification-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:9px}.guardian-notification{padding:11px;border:1px solid #edf1ed;border-radius:9px}.guardian-notification.unread{border-left:3px solid #278458;background:#f8fbf9}.guardian-notification small,.guardian-notification-read{color:#839087;font-size:9px}.guardian-notification h3{margin:5px 0;color:#2d4536;font-size:12px}.guardian-notification p{margin:0 0 9px;color:#647268;font-size:10px;line-height:1.55;white-space:pre-wrap}.guardian-notification-read{font-weight:650}.guardian-notification .guardian-secondary-button{min-height:32px;padding:0 10px;font-size:9px}
@media(max-width:760px){.guardian-welcome-actions{width:100%;justify-content:flex-end}.guardian-notification-heading{align-items:flex-start}.guardian-notification-list{grid-template-columns:1fr}}
@media(max-width:430px){.guardian-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
 .guardian-progress-card{display:grid;gap:14px}.guardian-progress-section{display:grid;gap:8px}.guardian-progress-section h3{margin:0;color:#31513d;font-size:12px}.guardian-progress-subjects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.guardian-progress-subject{display:grid;grid-template-columns:1fr auto;gap:8px;padding:11px;border:1px solid #e8eee9;border-radius:10px;background:#fbfcfb}.guardian-progress-subject>div:first-child{display:grid;gap:4px}.guardian-progress-subject strong,.guardian-progress-activity strong{color:#2e4736;font-size:11px}.guardian-progress-subject span,.guardian-progress-activity small{color:#7c887f;font-size:9px}.guardian-progress-subject>b{align-self:center;color:#196344;font-size:13px}.guardian-progress-track{grid-column:1/-1;height:6px;overflow:hidden;border-radius:8px;background:#e8eee9}.guardian-progress-track i{display:block;height:100%;border-radius:8px;background:#25845c}.guardian-progress-activities{display:grid;gap:7px}.guardian-progress-activity{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 11px;border:1px solid #e8eee9;border-radius:9px;background:#fbfcfb}.guardian-progress-activity>div{display:grid;gap:4px}.guardian-progress-activity>span{flex:none;color:#315d45;font-size:10px;font-weight:700}.guardian-table td small{display:block;margin-top:3px;color:#7c887f;font-size:9px}@media(max-width:600px){.guardian-progress-subjects{grid-template-columns:1fr}.guardian-progress-activity{align-items:flex-start;flex-direction:column;gap:6px}}
