:root{--navy:#082c61;--blue:#1254b5;--cyan:#19b8e6;--pale:#eef9fd;--yellow:#ffd000;--ink:#071f4f;--muted:#60718c;--border:#dfe9f0;--white:#fff;--danger:#c9363f}
*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:"Trebuchet MS","Avenir Next",Arial,sans-serif;background:#f5f8fb}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{min-height:100vh;display:grid;grid-template-columns:260px 1fr}.app-shell>aside{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:25px 18px;color:white;background:var(--navy)}.panel-brand{display:flex;align-items:center;gap:12px;padding:0 8px 25px;font-size:18px;font-weight:800}.panel-brand img{width:56px;height:56px;object-fit:contain}.panel-brand strong{display:block;color:var(--cyan)}aside nav{display:grid;gap:5px}aside nav a{padding:13px 14px;border-radius:10px;color:#d7e6f7;font-weight:700;font-size:14px}aside nav a:hover{background:rgba(255,255,255,.1);color:white}aside form{margin-top:auto}aside form button{width:100%;padding:12px;border:1px solid rgba(255,255,255,.2);border-radius:10px;color:white;background:transparent;cursor:pointer}.app-main>header{height:78px;display:flex;align-items:center;justify-content:flex-end;padding:0 32px;border-bottom:1px solid var(--border);background:white}.app-main>header>div{text-align:right}.app-main>header strong,.app-main>header span{display:block}.app-main>header span{margin-top:3px;color:var(--muted);font-size:12px}.sidebar-toggle{display:none;margin-right:auto;border:0;background:none;font-size:25px}.app-main>main{padding:35px}.page-title{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:27px}.page-title p{margin:0 0 6px;color:var(--cyan);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.12em}.page-title h1{margin:0;font-size:38px}.primary-action{display:inline-flex;align-items:center;justify-content:center;padding:12px 18px;border:0;border-radius:10px;color:white;background:var(--blue);font-weight:800;cursor:pointer}.primary-action.full{width:100%;margin-top:8px}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:24px}.stat-grid article{padding:23px;border:1px solid var(--border);border-radius:16px;background:white}.stat-grid span,.stat-grid strong{display:block}.stat-grid span{color:var(--muted);font-size:13px}.stat-grid strong{margin-top:11px;font-size:33px}.panel{padding:24px;border:1px solid var(--border);border-radius:17px;background:white;box-shadow:0 8px 24px rgba(8,44,97,.04)}.panel-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.panel h2{margin:0}.panel-heading a{color:var(--blue);font-size:13px;font-weight:800}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{padding:14px 12px;border-bottom:1px solid var(--border);font-size:13px;text-align:left}th{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em}td a{color:var(--blue);font-weight:700}.badge{display:inline-flex;padding:6px 9px;border-radius:99px;font-size:11px;font-weight:800}.badge.draft{background:#e7edf4}.badge.review{color:#7c5900;background:#fff0b8}.badge.published{color:#07663b;background:#c9f3dc}.badge.rejected{color:#9e2630;background:#ffd6da}.alert{margin-bottom:20px;padding:15px 17px;border-radius:11px;font-size:14px}.alert.success{color:#07663b;background:#d8f6e5}.alert.error{color:#90232c;background:#ffe0e3}.alert ul{margin-bottom:0}
.editor-grid{display:grid;grid-template-columns:1fr 330px;align-items:start;gap:20px}.editor-side{display:grid;gap:18px}.form-panel label{display:block;margin-bottom:18px;color:var(--ink);font-size:13px;font-weight:800}.form-panel input:not([type=checkbox]),.form-panel select,.form-panel textarea{width:100%;margin-top:7px;padding:12px 13px;border:1px solid #cbd9e4;border-radius:9px;background:white;outline:none}.form-panel input:focus,.form-panel select:focus,.form-panel textarea:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(25,184,230,.13)}.form-panel small{display:block;margin-top:6px;color:var(--muted);font-weight:400}.content-editor{min-height:390px;font-family:ui-monospace,monospace}.check{display:flex!important;align-items:center;gap:8px}.check input{width:17px;height:17px}.info-box{margin-bottom:16px;padding:13px;border-radius:9px;color:var(--navy);background:var(--pale);font-size:13px;line-height:1.5}.danger-zone{border-color:#f2c3c7}.danger-zone h3{margin-top:0;color:var(--danger)}.danger-zone p{font-size:13px}.danger-zone button{padding:10px 15px;border:0;border-radius:9px;color:white;background:var(--danger);cursor:pointer}.two-panel{display:grid;grid-template-columns:340px 1fr;align-items:start;gap:20px}.account-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:20px}.section-note{margin:6px 0 0;color:var(--muted);font-size:13px;font-weight:400}.settings-panel{max-width:1000px}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}.settings-grid .wide{grid-column:1/-1}.portal-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.list-item{display:grid;gap:7px;padding:14px 0;border-bottom:1px solid var(--border)}.list-item p,.list-item small,.list-item time{margin:0;color:var(--muted);font-size:12px}.download-item{display:flex;align-items:center;gap:13px;padding:13px 0;border-bottom:1px solid var(--border)}.download-item>span{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;color:white;background:var(--blue)}.download-item strong,.download-item small{display:block}.download-item small{margin-top:4px;color:var(--muted)}
.admin-photo-preview{width:100%;max-height:360px;display:block;object-fit:cover;border-radius:13px}.management-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:22px}.field-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.compact-list{display:grid;margin-top:25px;border-top:1px solid var(--border)}.compact-list article{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--border)}.compact-list article>div{min-width:0;flex:1}.compact-list strong,.compact-list small{display:block}.compact-list small{margin-top:4px;color:var(--muted)}.compact-list img{width:54px;height:54px;object-fit:cover;border-radius:9px}.icon-danger{padding:7px 9px;border:0;border-radius:7px;color:var(--danger);background:#ffe6e8;cursor:pointer}.login-page{min-height:100vh;display:grid;place-items:center;padding:30px;background:radial-gradient(circle at 85% 10%,rgba(25,184,230,.3),transparent 30%),var(--pale)}.login-card{width:min(100%,450px);padding:38px;border:1px solid var(--border);border-radius:23px;background:white;box-shadow:0 22px 60px rgba(8,44,97,.15)}.login-brand{display:flex;align-items:center;gap:13px;color:var(--blue);font-size:19px;font-weight:800}.login-brand img{width:62px}.login-brand strong{display:block}.login-card h1{margin:30px 0 8px;font-size:34px}.login-card>p{margin:0 0 25px;color:var(--muted);line-height:1.5}.login-card label{display:block;margin-bottom:17px;font-size:13px;font-weight:800}.login-card input:not([type=checkbox]){width:100%;margin-top:7px;padding:13px;border:1px solid #cbd9e4;border-radius:9px}.login-card .submit{width:100%;padding:13px;border:0;border-radius:10px;color:white;background:var(--blue);font-weight:800;cursor:pointer}.back{display:block;margin-top:20px;color:var(--blue);font-size:13px;text-align:center}.pagination{margin-top:20px}
@media(max-width:980px){.app-shell{grid-template-columns:1fr}.app-shell>aside{position:fixed;z-index:20;left:-270px;width:260px;transition:left .2s}.sidebar-open .app-shell>aside{left:0}.sidebar-toggle{display:block}.app-main>main{padding:25px}.stat-grid{grid-template-columns:repeat(2,1fr)}.editor-grid,.two-panel,.account-grid,.management-grid{grid-template-columns:1fr}}
@media(max-width:620px){.app-main>header{padding:0 20px}.app-main>main{padding:20px 15px}.page-title{align-items:stretch;flex-direction:column}.page-title h1{font-size:31px}.stat-grid,.portal-grid,.settings-grid,.field-pair{grid-template-columns:1fr}.settings-grid .wide{grid-column:auto}.panel{padding:18px}.login-card{padding:28px 22px}}
.ppdb-status{align-self:center;margin-top:18px}
.mini-stat-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:-8px 0 24px}.mini-stat-grid article{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 17px;border:1px solid var(--border);border-radius:13px;background:#fff}.mini-stat-grid span{color:var(--muted);font-size:12px}.mini-stat-grid strong{font-size:22px}
@media(max-width:1100px){.mini-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.mini-stat-grid{grid-template-columns:1fr}}
.editor-toolbar{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px;padding:9px;border:1px solid #cbd9e4;border-bottom:0;border-radius:10px 10px 0 0;background:#f5f8fb}.editor-toolbar button{padding:7px 10px;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--ink);cursor:pointer}.editor-toolbar button:hover{border-color:var(--cyan)}.visual-editor{min-height:390px;padding:17px;border:1px solid #cbd9e4;border-radius:0 0 10px 10px;background:#fff;font-family:Georgia,serif;font-size:16px;font-weight:400;line-height:1.7;outline:none}.visual-editor:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(25,184,230,.13)}.visual-editor h2,.visual-editor h3,.visual-editor h4{font-family:"Trebuchet MS","Avenir Next",Arial,sans-serif}.editor-output{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.image-preview-wrap{margin:-5px 0 18px}.image-preview-wrap img{width:100%;max-height:240px;display:block;object-fit:cover;border-radius:11px}.inline-category-form{display:flex;min-width:230px;flex:1;gap:8px}.inline-category-form input{min-width:0;flex:1;padding:9px 10px;border:1px solid #cbd9e4;border-radius:7px}.inline-category-form button{padding:8px 10px;border:0;border-radius:7px;color:#fff;background:var(--blue);cursor:pointer}.category-count{color:var(--muted);font-size:12px}.icon-danger:disabled{opacity:.45;cursor:not-allowed}
.secondary-action{display:inline-flex;align-items:center;justify-content:center;padding:11px 16px;border:1px solid var(--blue);border-radius:10px;color:var(--blue);background:#fff;font-weight:800}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ppdb-stat-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:24px}.ppdb-stat-grid article{padding:17px;border:1px solid var(--border);border-radius:14px;background:#fff}.ppdb-stat-grid span,.ppdb-stat-grid strong{display:block}.ppdb-stat-grid span{min-height:30px;color:var(--muted);font-size:11px}.ppdb-stat-grid strong{margin-top:7px;font-size:26px}.filter-bar{display:flex;align-items:center;gap:10px;margin-bottom:20px}.filter-bar label:first-child{min-width:260px;flex:1}.filter-bar input,.filter-bar select{width:100%;padding:11px 12px;border:1px solid #cbd9e4;border-radius:9px;background:#fff}.filter-bar button{padding:11px 16px;border:0;border-radius:9px;color:#fff;background:var(--blue);font-weight:800;cursor:pointer}.filter-bar>a{padding:10px;color:var(--blue);font-size:13px;font-weight:800}.table-subtext{display:block;margin-top:5px;color:var(--muted);font-size:11px}.admin-status{font-weight:800;white-space:nowrap}.status-new{color:#624900;background:#fff0b8}.status-verified{color:#075583;background:#d9f2ff}.status-revision{color:#8d4b00;background:#ffe7c3}.status-accepted{color:#07663b;background:#c9f3dc}.status-rejected{color:#9e2630;background:#ffd6da}.application-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:20px}.detail-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px;padding-bottom:20px;border-bottom:1px solid var(--border)}.detail-heading>div{display:flex;align-items:center;gap:10px}.detail-heading span,.detail-heading small{color:var(--muted);font-size:12px}.application-data>h2{margin:28px 0 10px;font-size:20px}.admin-detail-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0}.admin-detail-list>div{padding:14px 10px;border-bottom:1px solid var(--border)}.admin-detail-list .wide{grid-column:1/-1}.admin-detail-list dt{margin-bottom:6px;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em}.admin-detail-list dd{margin:0;font-size:14px;font-weight:700;line-height:1.55;white-space:pre-line}.admin-detail-list dd a{color:var(--blue)}.verification-panel{position:sticky;top:98px}.verification-panel .kicker{margin:0 0 5px;color:var(--cyan);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.1em}.verification-panel h2{margin-bottom:22px}.verification-panel label{display:block;margin-bottom:18px;font-size:13px;font-weight:800}.verification-panel select,.verification-panel textarea{width:100%;margin-top:7px;padding:12px;border:1px solid #cbd9e4;border-radius:9px;background:#fff}.verification-panel textarea{resize:vertical}.verification-panel .submit{width:100%;padding:12px;border:0;border-radius:9px;color:#fff;background:var(--blue);font-weight:800;cursor:pointer}.verification-meta{margin:18px 0;color:var(--muted);font-size:11px;line-height:1.6}.whatsapp-action{display:block;padding:12px;border:1px solid #198754;border-radius:9px;color:#116a42;text-align:center;font-size:13px;font-weight:800}
@media(max-width:1180px){.ppdb-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.application-detail-grid{grid-template-columns:1fr}.verification-panel{position:static}}
@media(max-width:700px){.ppdb-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-bar{align-items:stretch;flex-direction:column}.filter-bar label:first-child{width:100%;min-width:0}.filter-bar label,.filter-bar button{width:100%}.detail-heading{align-items:flex-start;flex-direction:column}.admin-detail-list{grid-template-columns:1fr}.admin-detail-list .wide{grid-column:auto}}
.period-management-grid{display:grid;grid-template-columns:390px minmax(0,1fr);align-items:start;gap:22px}.period-create{position:sticky;top:98px}.period-list{display:grid;gap:18px}.period-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:17px}.period-card h2{margin:9px 0 5px}.period-card header p{margin:0;color:var(--muted);font-size:12px}.period-state{display:inline-flex;padding:6px 9px;border-radius:99px;font-size:10px;font-weight:800}.state-draft{color:#5f6b7d;background:#e7edf4}.state-scheduled{color:#075583;background:#d9f2ff}.state-open{color:#07663b;background:#c9f3dc}.state-full{color:#8d4b00;background:#ffe7c3}.state-completed{color:#6c477f;background:#efe2f6}.period-quota{text-align:right}.period-quota strong,.period-quota span{display:block}.period-quota strong{font-size:29px}.period-quota span{margin-top:3px;color:var(--muted);font-size:11px}.quota-progress{height:8px;overflow:hidden;margin-bottom:23px;border-radius:99px;background:#e7edf4}.quota-progress span{height:100%;display:block;border-radius:inherit;background:linear-gradient(90deg,var(--cyan),var(--blue))}.period-actions{display:flex;align-items:center;justify-content:space-between;gap:14px}.period-actions>a{color:var(--blue);font-size:12px;font-weight:800}.period-delete{margin-top:18px;padding-top:16px;border-top:1px solid var(--border);text-align:right}.period-delete button{padding:0;border:0;color:var(--danger);background:transparent;font-size:11px;font-weight:800;cursor:pointer}.empty-period{text-align:center}.empty-period p{color:var(--muted)}.filter-bar label:first-child{min-width:240px}.filter-bar label{min-width:170px}
@media(max-width:1100px){.period-management-grid{grid-template-columns:1fr}.period-create{position:static}}@media(max-width:620px){.period-card>header,.period-actions{align-items:stretch;flex-direction:column}.period-quota{text-align:left}.period-actions .primary-action{width:100%}}
.document-requirements{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 20px;padding:16px;border:1px solid var(--border);border-radius:11px}.document-requirements legend{padding:0 7px;color:var(--muted);font-size:11px;font-weight:800}.document-requirements .check{margin:0!important}.application-documents-heading{display:flex;align-items:end;justify-content:space-between;gap:15px;margin:32px 0 14px}.application-documents-heading h2,.application-documents-heading p{margin:0}.application-documents-heading p{margin-top:4px;color:var(--muted);font-size:11px}.application-documents-heading>a{color:var(--blue);font-size:12px;font-weight:800}.admin-document-list{display:grid;gap:15px}.admin-document-list>article{padding:18px;border:1px solid var(--border);border-radius:13px;background:#fbfdfe}.admin-document-list article>header{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.admin-document-list header span{color:var(--cyan);font-size:9px;font-weight:800;text-transform:uppercase}.admin-document-list h3{margin:5px 0 0;font-size:17px}.document-status{display:inline-flex;padding:7px 10px;border-radius:99px;font-size:10px;font-weight:800;white-space:nowrap}.doc-status-missing{color:#5f6b7d;background:#e7edf4}.doc-status-uploaded{color:#624900;background:#fff0b8}.doc-status-valid{color:#07663b;background:#c9f3dc}.doc-status-rejected{color:#9e2630;background:#ffd6da}.admin-file-meta{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:15px 0;padding:12px;border-radius:10px;background:var(--pale)}.admin-file-meta strong,.admin-file-meta small{display:block;word-break:break-word}.admin-file-meta small{margin-top:4px;color:var(--muted);font-size:9px}.admin-file-meta>a{flex:0 0 auto;color:var(--blue);font-size:11px;font-weight:800}.document-verification-form{display:grid;grid-template-columns:190px minmax(0,1fr) auto;align-items:end;gap:10px}.document-verification-form label{font-size:10px;font-weight:800}.document-verification-form select,.document-verification-form textarea{width:100%;margin-top:5px;padding:9px;border:1px solid #cbd9e4;border-radius:8px;background:#fff}.document-verification-form button{padding:10px 12px;border:0;border-radius:8px;color:#fff;background:var(--blue);font-size:11px;font-weight:800;cursor:pointer}.document-verifier{display:block;margin-top:10px;color:var(--muted);font-size:9px}
@media(max-width:760px){.document-requirements{grid-template-columns:1fr}.application-documents-heading,.admin-file-meta,.admin-document-list article>header{align-items:stretch;flex-direction:column}.document-verification-form{grid-template-columns:1fr}}
.result-publication-box{margin:0 0 20px;padding:17px;border:1px solid #bcd9e8;border-radius:12px;background:var(--pale)}.result-publication-box>label:last-child{margin:16px 0 0}.publication-state{display:inline-flex;margin-top:9px;padding:6px 9px;border-radius:99px;font-size:10px;font-weight:800}.publication-state.visible{color:#07663b;background:#c9f3dc}.publication-state.hidden{color:#735500;background:#fff0b8}
.application-side{position:sticky;top:98px;display:grid;gap:20px}.application-side .verification-panel{position:static}.re-registration-panel .kicker{margin:0 0 5px;color:var(--cyan);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.1em}.re-registration-panel h2{margin:0 0 22px}.re-registration-panel label{display:block;margin-bottom:18px;font-size:13px;font-weight:800}.re-registration-panel select,.re-registration-panel input:not([type=checkbox]),.re-registration-panel textarea{width:100%;margin-top:7px;padding:12px;border:1px solid #cbd9e4;border-radius:9px;background:#fff}.re-registration-panel small{display:block;margin-top:6px;color:var(--muted);font-size:10px;font-weight:400;line-height:1.5}.re-registration-panel .submit{width:100%;padding:12px;border:0;border-radius:9px;color:#fff;background:var(--blue);font-weight:800;cursor:pointer}.offline-document-checklist{display:grid;gap:10px;margin:0 0 20px;padding:15px;border:1px solid var(--border);border-radius:11px}.offline-document-checklist legend{padding:0 7px;color:var(--muted);font-size:10px;font-weight:800}.offline-document-checklist .check{margin:0}.re-registration-status{display:inline-flex;padding:6px 9px;border-radius:99px;font-size:10px;font-weight:800;white-space:nowrap}.re-registration-pending{color:#735500;background:#fff0b8}.re-registration-completed{color:#07663b;background:#c9f3dc}.re-registration-withdrawn{color:#9e2630;background:#ffd6da}
@media(max-width:1180px){.application-side{position:static}}@media(max-width:620px){.application-side{gap:15px}}
.page-title-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.settings-subheading{margin:8px 0 22px;padding:18px 20px;border-left:5px solid var(--yellow);background:var(--pale)}.settings-subheading h2{margin:0;font-size:21px}.settings-subheading p{margin:6px 0 0;color:var(--muted);font-size:12px;line-height:1.5}
@media(max-width:620px){.page-title-actions{align-items:stretch;flex-direction:column}.page-title-actions>a{width:100%}}
.whatsapp-message-panel .kicker{margin:0 0 5px;color:var(--cyan);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.1em}.whatsapp-message-panel h2{margin:0 0 10px}.whatsapp-message-note{margin:0 0 18px;color:var(--muted);font-size:11px;line-height:1.55}.whatsapp-template-action{display:grid;gap:5px;margin-top:11px;padding:14px;border:1px solid #a8d8be;border-radius:11px;color:#105c3c;background:#ecf8f2}.whatsapp-template-action:hover{border-color:#1c9a61;box-shadow:0 5px 16px rgba(18,125,78,.1)}.whatsapp-template-action>span{font-size:13px;font-weight:800}.whatsapp-template-action>small{color:#47705e;font-size:9px;line-height:1.45}.whatsapp-template-action>strong{margin-top:3px;font-size:10px}.message-settings-link{display:block;margin-top:16px;color:var(--blue);font-size:11px;font-weight:800;text-align:right}.settings-grid>.info-box.wide{margin-bottom:20px;line-height:1.8}.settings-grid>.info-box.wide strong{display:inline-block;margin:0 2px;padding:1px 5px;border-radius:4px;background:#fff;font-family:ui-monospace,monospace;font-size:10px}
.app-shell>aside{overflow-y:auto}.dashboard-context{display:block;margin-top:8px;color:var(--muted);font-size:12px}.ppdb-dashboard-filter{margin-bottom:20px;padding:15px 18px}.ppdb-dashboard-filter form{display:flex;align-items:end;gap:10px}.ppdb-dashboard-filter label{min-width:300px}.ppdb-dashboard-filter label span{display:block;margin-bottom:6px;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.ppdb-dashboard-filter select{width:100%;padding:10px 12px;border:1px solid #cbd9e4;border-radius:9px;background:#fff}.ppdb-dashboard-filter button{padding:11px 16px;border:0;border-radius:9px;color:#fff;background:var(--blue);font-weight:800;cursor:pointer}.ppdb-dashboard-filter a{padding:11px;color:var(--blue);font-size:12px;font-weight:800}.dashboard-summary-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:20px}.dashboard-summary-grid>a{padding:18px;border:1px solid var(--border);border-radius:14px;background:#fff;transition:transform .15s,box-shadow .15s}.dashboard-summary-grid>a:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(8,44,97,.08)}.dashboard-summary-grid span,.dashboard-summary-grid strong,.dashboard-summary-grid small{display:block}.dashboard-summary-grid span{min-height:28px;color:var(--muted);font-size:11px}.dashboard-summary-grid strong{margin:7px 0 5px;font-size:28px}.dashboard-summary-grid small{color:var(--blue);font-size:9px;font-weight:800}.attention-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:20px}.attention-grid>a{display:flex;align-items:center;gap:12px;padding:15px;border:1px solid var(--border);border-radius:14px;background:#fff}.attention-grid>a:hover{border-color:#9cc5e4}.attention-grid>a>div{min-width:0;flex:1}.attention-grid small,.attention-grid strong{display:block}.attention-grid small{margin-bottom:4px;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.06em}.attention-grid strong{font-size:12px}.attention-grid b{color:var(--blue)}.attention-icon{width:38px;height:38px;display:grid;flex:0 0 auto;place-items:center;border-radius:50%;color:#075583;background:#d9f2ff;font-weight:900}.attention-icon.warning{color:#8d4b00;background:#ffe7c3}.attention-icon.photo{color:#6c477f;background:#efe2f6}.attention-icon.registration{color:#07663b;background:#c9f3dc}.dashboard-analysis-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(310px,.65fr);gap:20px;margin-bottom:20px}.dashboard-analysis-grid .panel{min-width:0}.dashboard-analysis-grid .panel-heading>div p,.period-report .panel-heading>div p{margin:5px 0 0;color:var(--muted);font-size:11px}.daily-chart{height:230px;display:grid;grid-template-columns:repeat(14,minmax(20px,1fr));align-items:end;gap:7px;padding-top:20px}.daily-column{height:100%;display:grid;grid-template-rows:18px 1fr 18px;gap:5px;text-align:center}.daily-column>strong{color:var(--blue);font-size:9px}.daily-column>div{height:100%;display:flex;align-items:end;justify-content:center;border-bottom:1px solid var(--border)}.daily-column>div span{width:min(24px,70%);display:block;border-radius:5px 5px 0 0;background:linear-gradient(180deg,var(--cyan),var(--blue))}.daily-column>small{color:var(--muted);font-size:8px}.path-breakdown{display:grid;gap:17px}.path-breakdown header{display:flex;justify-content:space-between;gap:10px;margin-bottom:7px}.path-breakdown header span{font-size:11px;font-weight:800}.path-breakdown header strong{font-size:12px}.path-breakdown>div>div{height:8px;overflow:hidden;border-radius:99px;background:#e7edf4}.path-breakdown>div>div span{height:100%;display:block;border-radius:inherit;background:linear-gradient(90deg,var(--cyan),var(--blue))}.dashboard-empty{color:var(--muted);font-size:12px}.period-report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.period-report-grid>article{padding:18px;border:1px solid var(--border);border-radius:14px;background:#fbfdfe}.period-report-grid>article.selected{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(25,184,230,.1)}.period-report-grid article>header{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.period-report-grid h3{margin:8px 0 5px}.period-report-grid header small{color:var(--muted);font-size:9px}.period-capacity{text-align:right;white-space:nowrap}.period-capacity strong{font-size:27px}.period-capacity span{color:var(--muted);font-size:11px}.period-report-grid .quota-progress{margin:16px 0}.period-report-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.period-report-stats span{padding:9px;border-radius:9px;color:var(--muted);background:#eef4f8;font-size:8px}.period-report-stats strong{display:block;margin-bottom:3px;color:var(--ink);font-size:15px}.period-report-grid footer{display:flex;justify-content:space-between;gap:10px;margin-top:15px;padding-top:13px;border-top:1px solid var(--border)}.period-report-grid footer a{color:var(--blue);font-size:10px;font-weight:800}
@media(max-width:1250px){.dashboard-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.attention-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.dashboard-analysis-grid{grid-template-columns:1fr}.period-report-grid{grid-template-columns:1fr}}@media(max-width:620px){.ppdb-dashboard-filter form{align-items:stretch;flex-direction:column}.ppdb-dashboard-filter label,.ppdb-dashboard-filter button{width:100%;min-width:0}.dashboard-summary-grid,.attention-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.daily-chart{gap:3px;overflow-x:auto}.daily-column{min-width:24px}.period-report-stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:430px){.dashboard-summary-grid,.attention-grid{grid-template-columns:1fr}}
.alert.warning{color:#7c5900;background:#fff0b8}.security-note{margin-bottom:20px}.activity-filter{align-items:end;flex-wrap:wrap}.activity-filter label{min-width:150px}.activity-filter label:first-child{min-width:240px}.activity-filter input,.activity-filter select{margin-top:0}.activity-log-table td{vertical-align:top}.activity-event,.account-state{display:inline-flex;padding:6px 9px;border-radius:99px;font-size:10px;font-weight:800;white-space:nowrap}.activity-event{color:#075583;background:#d9f2ff}.event-auth-failed,.event-auth-locked,.account-state.expired,.account-state.locked{color:#9e2630;background:#ffd6da}.event-auth-login,.account-state.active{color:#07663b;background:#c9f3dc}.event-model-deleted,.account-state.inactive{color:#5f6b7d;background:#e7edf4}.account-state.warning{color:#7c5900;background:#fff0b8}.account-security-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:20px;padding-top:18px;border-top:1px solid var(--border)}.account-security-summary span{padding:11px;border-radius:9px;color:var(--muted);background:#f4f8fb;font-size:10px}.account-security-summary strong{display:block;margin-top:5px;color:var(--ink);font-size:12px}@media(max-width:700px){.activity-filter{align-items:stretch;flex-direction:column}.activity-filter label,.activity-filter label:first-child,.activity-filter button{width:100%;min-width:0}.account-security-summary{grid-template-columns:1fr}}
.badge.revision{color:#8d4b00;background:#ffe7c3}.badge.approved{color:#075583;background:#d9f2ff}.badge.scheduled{color:#6c477f;background:#efe2f6}.workflow-status-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;margin-bottom:18px}.workflow-status-grid a{padding:14px;border:1px solid var(--border);border-radius:12px;background:#fff}.workflow-status-grid a.selected{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(25,184,230,.1)}.workflow-status-grid span,.workflow-status-grid strong{display:block}.workflow-status-grid span{min-height:27px;color:var(--muted);font-size:9px}.workflow-status-grid strong{margin-top:5px;font-size:23px}.content-filter{align-items:end;flex-wrap:wrap}.content-filter label{min-width:180px}.content-filter input,.content-filter select{margin-top:0}.content-workflow-context{display:block;margin-top:9px;color:var(--muted);font-size:12px}.content-workflow-context .badge{margin-left:4px}.review-feedback{margin-bottom:20px;padding:18px;border:1px solid #b9dcee;border-radius:13px;background:#eff9fd}.review-feedback.needs-revision{border-color:#efca90;background:#fff8e9}.review-feedback strong,.review-feedback small{display:block}.review-feedback p{margin:8px 0;line-height:1.6}.review-feedback small{color:var(--muted)}.content-author{margin-bottom:18px;padding-bottom:16px;border-bottom:1px solid var(--border)}.content-author span,.content-author strong,.content-author small{display:block}.content-author span{color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.08em}.content-author strong{margin:5px 0}.content-author small{color:var(--muted);font-size:10px}.moderation-box>.kicker{margin:18px 0 12px;color:var(--cyan);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.moderation-meta{margin-bottom:13px!important;line-height:1.5}.contributor-actions{display:grid;gap:10px;margin-top:18px}.secondary-action.full{width:100%}.review-note-preview{max-width:360px;color:#8d4b00}.portal-review-note{padding:8px 10px!important;border-radius:8px;color:#7c5900!important;background:#fff8e9;font-size:10px!important;line-height:1.5}@media(max-width:1200px){.workflow-status-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:700px){.workflow-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.content-filter{align-items:stretch;flex-direction:column}.content-filter label,.content-filter button{width:100%;min-width:0}}@media(max-width:430px){.workflow-status-grid{grid-template-columns:1fr}}
.notification-nav{display:flex;align-items:center;justify-content:space-between}.notification-nav b,.header-notification b{min-width:22px;height:22px;display:inline-grid;place-items:center;padding:0 5px;border-radius:99px;color:var(--navy);background:var(--yellow);font-size:9px}.header-notification{position:relative;margin-right:18px;color:var(--blue);font-size:21px}.header-notification b{position:absolute;top:-12px;right:-14px}.notification-summary{display:block;margin-top:8px;color:var(--muted);font-size:12px}.notification-category-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:20px}.notification-category-grid a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border:1px solid var(--border);border-radius:13px;background:#fff}.notification-category-grid a.selected{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(25,184,230,.1)}.notification-category-grid span{color:var(--muted);font-size:11px;font-weight:800}.notification-category-grid strong{font-size:22px}.notification-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:-4px 0 12px;padding-bottom:17px;border-bottom:1px solid var(--border)}.notification-toolbar>div{display:flex;gap:7px}.notification-toolbar a{padding:8px 11px;border-radius:8px;color:var(--blue);font-size:11px;font-weight:800}.notification-toolbar a.active{color:#fff;background:var(--blue)}.notification-list article{display:grid;grid-template-columns:44px minmax(0,1fr) 28px;align-items:center;gap:14px;padding:17px 10px;border-bottom:1px solid var(--border)}.notification-list article.unread{margin:0 -8px;padding-right:18px;padding-left:18px;border-radius:11px;background:#eff9fd}.notification-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;color:#075583;background:#d9f2ff;font-weight:900}.notification-icon.ppdb{color:#07663b;background:#c9f3dc}.notification-icon.information{color:#6c477f;background:#efe2f6}.notification-icon.system{color:#5f6b7d;background:#e7edf4}.notification-body{min-width:0}.notification-body strong,.notification-body p,.notification-body small{display:block}.notification-body p{margin:5px 0;color:var(--muted);font-size:12px;line-height:1.5}.notification-body small{color:var(--muted);font-size:9px}.notification-list form button{width:27px;height:27px;border:0;border-radius:7px;color:var(--muted);background:transparent;font-size:18px;cursor:pointer}.notification-list form button:hover{color:var(--danger);background:#ffe6e8}.notification-empty{padding:45px 20px;text-align:center}.notification-empty p{color:var(--muted);font-size:12px}
@media(max-width:900px){.notification-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.notification-category-grid{grid-template-columns:1fr}.notification-toolbar{align-items:flex-start;flex-direction:column}.notification-list article{grid-template-columns:39px minmax(0,1fr) 25px;gap:10px;padding-right:2px;padding-left:2px}.notification-list article.unread{padding-right:10px;padding-left:10px}.notification-icon{width:37px;height:37px}}
.backup-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:20px}.backup-summary-grid article{padding:21px;border:1px solid var(--border);border-radius:15px;background:#fff}.backup-summary-grid span,.backup-summary-grid strong,.backup-summary-grid small{display:block}.backup-summary-grid span{color:var(--muted);font-size:11px}.backup-summary-grid strong{margin:9px 0 6px;font-size:27px}.backup-summary-grid small{color:var(--muted);font-size:9px}.backup-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-bottom:20px}.backup-action-grid>section{display:grid;grid-template-columns:55px minmax(0,1fr);align-items:start;gap:15px}.backup-action-grid section>form{grid-column:2}.backup-action-grid h2{margin:3px 0 8px}.backup-action-grid p{margin:0;color:var(--muted);font-size:12px;line-height:1.6}.backup-type-icon{width:53px;height:53px;display:grid;place-items:center;border-radius:14px;color:#075583;background:#d9f2ff;font-size:12px;font-weight:900}.backup-type-icon.full{color:#6c477f;background:#efe2f6}.backup-security-note{margin:0 0 20px}.backup-security-note code,.backup-table code{padding:3px 6px;border-radius:5px;background:#eef4f8;font-size:10px}.backup-badge{display:inline-flex;padding:6px 9px;border-radius:99px;color:#075583;background:#d9f2ff;font-size:10px;font-weight:800}.backup-badge.full{color:#6c477f;background:#efe2f6}.backup-row-actions{display:flex;align-items:center;gap:12px}.backup-row-actions a{font-size:11px}.backup-row-actions form{margin:0}.backup-row-actions button{padding:0;border:0;color:var(--danger);background:transparent;font-size:11px;font-weight:800;cursor:pointer}.backup-action-grid button:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:900px){.backup-summary-grid{grid-template-columns:1fr}.backup-action-grid{grid-template-columns:1fr}}@media(max-width:620px){.backup-action-grid>section{grid-template-columns:1fr}.backup-action-grid section>form{grid-column:1}.backup-table code{white-space:nowrap}}
.notification-category-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.notification-icon.feedback{color:#9a5900;background:#ffe9bd}.feedback-status-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:20px}.feedback-status-grid a{padding:17px;border:1px solid var(--border);border-radius:13px;background:#fff}.feedback-status-grid a.selected{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(25,184,230,.1)}.feedback-status-grid span,.feedback-status-grid strong{display:block}.feedback-status-grid span{min-height:27px;color:var(--muted);font-size:10px;font-weight:800}.feedback-status-grid strong{margin-top:5px;font-size:24px}.feedback-filter{align-items:end;flex-wrap:wrap}.feedback-filter label:first-child{min-width:260px;flex:1}.feedback-filter label{min-width:150px}.feedback-filter input,.feedback-filter select{margin-top:0}.feedback-table td{vertical-align:top}.feedback-table td a{display:block;color:var(--blue);font-weight:800}.feedback-table td strong{font-size:11px}.feedback-status,.feedback-priority{display:inline-flex;padding:6px 9px;border-radius:99px;font-size:9px;font-weight:800;white-space:nowrap}.feedback-status.status-new{color:#075583;background:#d9f2ff}.feedback-status.status-in_review{color:#735500;background:#fff0b8}.feedback-status.status-followed_up{color:#61407a;background:#efe2f6}.feedback-status.status-resolved{color:#07663b;background:#c9f3dc}.feedback-status.status-closed{color:#5f6b7d;background:#e7edf4}.feedback-priority.priority-low{color:#5f6b7d;background:#e7edf4}.feedback-priority.priority-normal{color:#075583;background:#d9f2ff}.feedback-priority.priority-high{color:#8d4b00;background:#ffe7c3}.feedback-priority.priority-urgent{color:#9e2630;background:#ffd6da}.feedback-detail-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(330px,.65fr);align-items:start;gap:20px}.feedback-report h2{margin:25px 0 12px;font-size:18px}.detail-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.detail-heading>div{display:flex;gap:7px}.detail-heading small{color:var(--muted);font-weight:800}.feedback-message{padding:20px;border-radius:12px;background:#f4f8fb;white-space:pre-wrap;line-height:1.75}.feedback-attachment{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:15px;border:1px solid var(--border);border-radius:11px;background:#fbfdfe}.feedback-attachment strong,.feedback-attachment small{display:block;word-break:break-word}.feedback-attachment small{margin-top:5px;color:var(--muted);font-size:9px}.feedback-attachment a{flex:0 0 auto;color:var(--blue);font-size:11px;font-weight:800}.feedback-follow-up{position:sticky;top:95px}.feedback-follow-up>.kicker{margin:0 0 5px;color:var(--cyan);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.feedback-follow-up h2{margin:0 0 20px}.feedback-follow-up form>label{display:block;margin-bottom:16px;font-size:11px;font-weight:800}.feedback-follow-up select,.feedback-follow-up textarea{width:100%;margin-top:7px;padding:11px;border:1px solid #cbd9e4;border-radius:9px;background:#fff}.feedback-follow-up textarea{resize:vertical;line-height:1.5}.feedback-follow-up label small{display:block;margin-top:5px;color:var(--muted);font-size:9px;font-weight:400;line-height:1.5}.feedback-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:13px;padding-top:13px;border-top:1px solid var(--border);font-size:10px}.feedback-meta span{color:var(--muted)}
@media(max-width:1100px){.feedback-status-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.notification-category-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.feedback-detail-grid{grid-template-columns:1fr}.feedback-follow-up{position:static}}@media(max-width:700px){.feedback-status-grid,.notification-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.feedback-filter{align-items:stretch;flex-direction:column}.feedback-filter label,.feedback-filter label:first-child,.feedback-filter button{width:100%;min-width:0}.detail-heading,.feedback-attachment{align-items:flex-start;flex-direction:column}}@media(max-width:430px){.feedback-status-grid,.notification-category-grid{grid-template-columns:1fr}}
.extracurricular-filter{align-items:end;flex-wrap:wrap}.extracurricular-filter label:first-child{min-width:260px;flex:1}.extracurricular-filter label{min-width:180px}.extracurricular-filter input,.extracurricular-filter select{margin-top:0}.extracurricular-table td{vertical-align:top}.extracurricular-table td>strong{display:block}.featured-marker{display:inline-flex;margin-top:6px;padding:4px 7px;border-radius:99px;color:#735500;background:#fff0b8;font-size:8px;font-weight:900}.extracurricular-preview{aspect-ratio:16/10}.editor-side .info-box{margin:0}.editor-side .info-box strong{display:block;margin-bottom:6px}.editor-side .info-box p{margin:0;color:var(--muted);font-size:11px;line-height:1.6}
@media(max-width:700px){.extracurricular-filter{align-items:stretch;flex-direction:column}.extracurricular-filter label,.extracurricular-filter label:first-child,.extracurricular-filter button{width:100%;min-width:0}.field-pair{grid-template-columns:1fr}}
.setting-switch{display:flex!important;align-items:flex-start;gap:12px;padding:16px;border:1px solid var(--border);border-radius:11px;background:#fbfdfe}.setting-switch>input{width:19px;height:19px;margin-top:2px;flex:0 0 auto}.setting-switch span,.setting-switch strong,.setting-switch small{display:block}.setting-switch small{margin-top:5px!important}.login-register-cta{display:grid;gap:5px;margin-top:20px;padding:16px;border-radius:12px;background:var(--pale);text-align:center}.login-register-cta span{color:var(--muted);font-size:11px}.login-register-cta a{margin-top:5px;color:var(--blue);font-size:13px;font-weight:900}.registration-card{width:min(100%,520px)}.registration-card select{width:100%;margin-top:7px;padding:13px;border:1px solid #cbd9e4;border-radius:9px;background:#fff}.registration-card small{display:block;margin-top:6px;color:var(--muted);font-size:10px;font-weight:400;line-height:1.5}.registration-consent{align-items:flex-start!important;color:var(--muted);font-size:11px!important;line-height:1.5}.registration-consent input{margin-top:2px;flex:0 0 auto}.registration-note{margin:14px 0 0!important;color:var(--muted);font-size:10px;text-align:center}.registration-closed{margin-top:22px;padding:20px;border-radius:13px;color:#735500;background:#fff0b8}.registration-closed strong{display:block}.registration-closed p{margin:7px 0 0;font-size:12px;line-height:1.6}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.pending-count{display:inline-flex;padding:8px 11px;border-radius:99px;color:#735500;background:#fff0b8;font-size:11px;font-weight:900}.registration-approval-panel{margin-bottom:20px;border-color:#c6e5f2}.registration-approval-panel .panel-heading p{margin:6px 0 0;color:var(--muted);font-size:12px}.registration-approval-list{display:grid;gap:12px}.registration-approval-list>article{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;padding:16px;border:1px solid var(--border);border-radius:12px;background:#fbfdfe}.registration-user{display:flex;align-items:center;gap:12px}.registration-avatar{width:43px;height:43px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;color:#fff;background:var(--blue);font-size:17px;font-weight:900}.registration-user strong,.registration-user span,.registration-user small{display:block}.registration-user span{margin-top:4px;color:var(--muted);font-size:11px}.registration-user small{margin-top:5px;color:var(--muted);font-size:9px}.registration-actions{display:flex;align-items:center;gap:8px}.registration-actions form{margin:0}.approve-account{padding:10px 13px;border:0;border-radius:8px;color:#fff;background:#168250;font-size:11px;font-weight:900;cursor:pointer}.registration-actions details{position:relative}.registration-actions summary{padding:9px 12px;border:1px solid #f0b8bd;border-radius:8px;color:var(--danger);font-size:11px;font-weight:900;cursor:pointer;list-style:none}.registration-actions details form{position:absolute;z-index:5;right:0;top:42px;width:280px;padding:12px;border:1px solid var(--border);border-radius:10px;background:#fff;box-shadow:0 12px 35px rgba(8,44,97,.18)}.registration-actions textarea{width:100%;padding:9px;border:1px solid #cbd9e4;border-radius:7px;resize:vertical}.registration-actions details button{width:100%;margin-top:7px;padding:9px;border:0;border-radius:7px;color:#fff;background:var(--danger);font-size:10px;font-weight:900;cursor:pointer}.account-state.pending{color:#735500;background:#fff0b8}.account-state.rejected{color:#9e2630;background:#ffd6da}.contributor-summary{display:grid;grid-template-columns:1.35fr repeat(2,1fr);gap:16px;margin-bottom:20px}.contributor-summary article{padding:20px;border:1px solid var(--border);border-radius:15px;background:#fff}.contributor-summary .contributor-score{color:#fff;border:0;background:linear-gradient(135deg,var(--navy),var(--blue))}.contributor-summary span,.contributor-summary strong,.contributor-summary small{display:block}.contributor-summary span{color:var(--muted);font-size:11px}.contributor-summary strong{margin:8px 0 5px;font-size:30px}.contributor-summary small{color:var(--muted);font-size:9px}.contributor-summary .contributor-score span,.contributor-summary .contributor-score small{color:#dceaff}.point-history-item{display:flex;align-items:flex-start;gap:12px;padding:13px 0;border-bottom:1px solid var(--border)}.point-history-item>span{min-width:38px;padding:6px;border-radius:99px;color:#07663b;background:#c9f3dc;text-align:center;font-size:10px;font-weight:900}.point-history-item strong,.point-history-item small{display:block}.point-history-item strong{font-size:12px;line-height:1.45}.point-history-item small{margin-top:4px;color:var(--muted);font-size:9px}.leaderboard-list{display:grid}.leaderboard-list article{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 8px;border-bottom:1px solid var(--border);border-radius:8px}.leaderboard-list article.current{background:var(--pale)}.leaderboard-rank{width:27px;height:27px;display:grid;place-items:center;border-radius:50%;color:var(--blue);background:#e1eef9;font-size:10px;font-weight:900}.leaderboard-list strong,.leaderboard-list small{display:block}.leaderboard-list strong{font-size:12px}.leaderboard-list small{margin-top:3px;color:var(--muted);font-size:9px}.leaderboard-list article>b{font-size:11px}
@media(max-width:800px){.registration-approval-list>article{grid-template-columns:1fr}.registration-actions{align-items:stretch;flex-direction:column}.registration-actions form,.registration-actions .approve-account,.registration-actions details{width:100%}.registration-actions details form{position:static;width:100%;margin-top:8px;box-shadow:none}.contributor-summary{grid-template-columns:1fr}}
.portal-learning-panel{margin-bottom:20px}.portal-learning-panel .panel-heading>div p{margin:5px 0 0;color:var(--muted);font-size:11px}.portal-learning-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.portal-learning-grid.full{grid-template-columns:repeat(3,minmax(0,1fr))}.learning-card{display:flex;min-width:0;flex-direction:column;padding:17px;border:1px solid var(--border);border-top:4px solid var(--cyan);border-radius:13px;background:#fbfdfe}.learning-card.assignment{border-top-color:var(--yellow)}.learning-card>header{display:flex;align-items:center;justify-content:space-between;gap:10px}.learning-card>header span{padding:5px 8px;border-radius:99px;color:#075583;background:#d9f2ff;font-size:9px;font-weight:800}.learning-card.assignment>header span{color:#735500;background:#fff0b8}.learning-card>header small{color:var(--muted);font-size:9px;font-weight:800}.learning-subject{margin:14px 0 4px;color:var(--blue);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.learning-card h2,.learning-card h3{margin:0;font-size:17px;line-height:1.35}.learning-card h2 a,.learning-card h3 a{color:var(--ink)}.learning-description{min-height:54px;margin:9px 0;color:var(--muted);font-size:11px;line-height:1.55}.learning-due{display:inline-flex;margin:2px 0 10px;padding:8px 10px;border-radius:8px;color:#735500;background:#fff5cc;font-size:9px;font-weight:800}.learning-due.overdue{color:#9e2630;background:#ffdfe2}.learning-card>footer{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-top:auto;padding-top:12px;border-top:1px solid var(--border)}.learning-card>footer>small{color:var(--muted);font-size:8px}.learning-card>footer>a{color:var(--blue);font-size:9px;font-weight:800}.portal-learning-empty{grid-column:1/-1;color:var(--muted);font-size:12px}.learning-type-badge{display:inline-flex;padding:6px 9px;border-radius:99px;color:#075583;background:#d9f2ff;font-size:10px;font-weight:800}.learning-type-badge.assignment{color:#735500;background:#fff0b8}.learning-editor-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:20px}.learning-current-file{display:grid;gap:6px;margin:-3px 0 18px;padding:13px;border-radius:10px;background:var(--pale)}.learning-current-file strong{font-size:12px;word-break:break-word}.learning-current-file small{color:var(--muted);font-size:9px}.learning-current-file>a{color:var(--blue);font-size:10px;font-weight:800}.learning-current-file .check{margin:8px 0 0!important;padding-top:9px;border-top:1px solid #cfe2eb}.learning-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.learning-summary-grid article{padding:19px;border:1px solid var(--border);border-radius:14px;background:#fff}.learning-summary-grid span,.learning-summary-grid strong{display:block}.learning-summary-grid span{color:var(--muted);font-size:10px}.learning-summary-grid strong{margin-top:7px;font-size:27px}.learning-filter{align-items:end;flex-wrap:wrap}.learning-filter label:first-child{min-width:240px;flex:1}.learning-filter label{min-width:145px}.learning-table td{vertical-align:top}.learning-table td>strong{display:block}.learning-portal-filter{align-items:end;flex-wrap:wrap}.learning-portal-filter label:first-child{min-width:260px;flex:1}.learning-portal-filter label{min-width:180px}.learning-detail-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(330px,.65fr);align-items:start;gap:20px}.learning-content-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px}.learning-content-meta .learning-due{margin:0}.learning-description-full{font-size:14px;line-height:1.8;white-space:pre-wrap}.learning-resource-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:25px;padding-top:20px;border-top:1px solid var(--border)}.learning-resource-actions a{padding:11px 14px;border:1px solid #b9d8e9;border-radius:9px;color:var(--blue);background:var(--pale);font-size:11px;font-weight:800}.learning-submission-side{position:sticky;top:98px}.submission-box>.kicker{margin:0 0 5px;color:var(--cyan);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.submission-box h2{margin:0 0 18px}.submission-box>p:not(.kicker){color:var(--muted);font-size:12px;line-height:1.6}.submission-result{display:grid;gap:9px;margin-bottom:18px;padding:15px;border-radius:11px;background:#f4f8fb}.submission-result small{color:var(--muted);font-size:9px}.submission-result>strong{font-size:21px}.submission-result p{margin:0;font-size:11px;line-height:1.6;white-space:pre-wrap}.submission-result>a{color:var(--blue);font-size:10px;font-weight:800}.submission-box .form-panel label{margin-bottom:16px}.submission-box .form-panel textarea,.submission-box .form-panel input[type=file]{width:100%;margin-top:7px;padding:11px;border:1px solid #cbd9e4;border-radius:9px;background:#fff}.submission-status{display:inline-flex;width:max-content;padding:6px 9px;border-radius:99px;color:#075583;background:#d9f2ff;font-size:9px;font-weight:800}.submission-status.revision{color:#8d4b00;background:#ffe7c3}.submission-status.reviewed{color:#07663b;background:#c9f3dc}.late-marker{display:inline-flex;width:max-content;padding:6px 9px;border-radius:99px;color:#9e2630;background:#ffd6da;font-size:9px;font-weight:800}.submission-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-bottom:20px}.submission-summary-grid a{padding:17px;border:1px solid var(--border);border-radius:13px;background:#fff}.submission-summary-grid a.selected{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(25,184,230,.1)}.submission-summary-grid span,.submission-summary-grid strong{display:block}.submission-summary-grid span{color:var(--muted);font-size:10px}.submission-summary-grid strong{margin-top:6px;font-size:25px}.submission-review-list{display:grid;gap:16px}.submission-review-list>article{padding:19px;border:1px solid var(--border);border-radius:13px;background:#fbfdfe}.submission-review-list article>header{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.submission-review-list h2{margin:9px 0 4px;font-size:18px}.submission-review-list header p{margin:0;color:var(--muted);font-size:9px}.student-answer{margin:17px 0;padding:15px;border-radius:10px;background:#fff;font-size:12px;line-height:1.7;white-space:pre-wrap}.submission-review-form{display:grid;grid-template-columns:200px 150px minmax(0,1fr) auto;align-items:end;gap:10px;margin-top:16px}.submission-review-form label{font-size:10px;font-weight:800}.submission-review-form .wide{min-width:0}.submission-review-form select,.submission-review-form input,.submission-review-form textarea{width:100%;margin-top:6px;padding:10px;border:1px solid #cbd9e4;border-radius:8px;background:#fff}.submission-review-form button{padding:11px 13px;border:0;border-radius:8px;color:#fff;background:var(--blue);font-size:10px;font-weight:800;cursor:pointer}.reviewed-meta{display:block;margin-top:10px;color:var(--muted);font-size:8px}.inline-approval-form{margin-top:15px}.notification-category-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.notification-icon.learning{color:#075583;background:#d9f2ff}
@media(max-width:1150px){.portal-learning-grid,.portal-learning-grid.full{grid-template-columns:repeat(2,minmax(0,1fr))}.learning-editor-grid,.learning-detail-grid{grid-template-columns:1fr}.learning-submission-side{position:static}.submission-review-form{grid-template-columns:repeat(2,minmax(0,1fr))}.submission-review-form .wide{grid-column:1/-1}.submission-review-form button{grid-column:1/-1}.notification-category-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.learning-summary-grid,.submission-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.learning-filter,.learning-portal-filter{align-items:stretch;flex-direction:column}.learning-filter label,.learning-filter label:first-child,.learning-portal-filter label,.learning-portal-filter label:first-child,.learning-filter button,.learning-portal-filter button{width:100%;min-width:0}.submission-review-list article>header,.learning-content-meta{align-items:flex-start;flex-direction:column}.submission-review-form{grid-template-columns:1fr}.submission-review-form .wide,.submission-review-form button{grid-column:1}.notification-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.portal-learning-grid,.portal-learning-grid.full{grid-template-columns:1fr}.learning-card>footer{align-items:flex-start;flex-direction:column}.learning-summary-grid,.submission-summary-grid,.notification-category-grid{grid-template-columns:1fr}}
.achievement-summary{margin-bottom:24px}.achievement-filter{align-items:end;flex-wrap:wrap}.achievement-filter label{min-width:160px}.achievement-filter label:first-child{min-width:240px}.achievement-status{display:inline-flex;width:max-content;padding:6px 9px;border-radius:99px;font-size:10px;font-weight:800;white-space:nowrap}.achievement-status.draft{color:#5f6b7d;background:#e7edf4}.achievement-status.submitted{color:#735500;background:#fff0b8}.achievement-status.revision{color:#8d4b00;background:#ffe7c3}.achievement-status.approved{color:#07663b;background:#c9f3dc}.achievement-status.rejected{color:#9e2630;background:#ffd6da}.achievement-editor-grid{display:grid;grid-template-columns:minmax(0,1fr) 370px;align-items:start;gap:22px}.achievement-side{display:grid;gap:18px}.achievement-photo-preview{width:100%;max-height:260px;display:block;margin:14px 0;object-fit:cover;border-radius:13px}.achievement-file{display:flex;align-items:center;gap:11px;margin:15px 0;padding:13px;border-radius:11px;background:var(--pale)}.achievement-file>span{width:35px;height:35px;display:grid;flex:0 0 auto;place-items:center;border-radius:50%;color:#fff;background:#15945e}.achievement-file strong,.achievement-file small{display:block;overflow-wrap:anywhere}.achievement-file small{margin-top:4px;color:var(--muted);font-size:10px}.achievement-current-status>span,.achievement-current-status>small{display:block;color:var(--muted);font-size:10px}.achievement-current-status>strong{margin:8px 0}.achievement-current-status p{padding:13px;border-radius:10px;color:#6f5500;background:#fff8e9;font-size:12px;line-height:1.6}.achievement-review>.kicker{margin:0 0 5px;color:var(--cyan);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.achievement-actions{display:grid;gap:10px}.achievement-actions>small{color:var(--muted);font-size:10px;line-height:1.5}.achievement-delete{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:22px}.achievement-delete h3,.achievement-delete p{margin:0}.achievement-delete p{margin-top:5px}.achievement-delete button{flex:0 0 auto}.portal-grid .achievement-status{margin-bottom:2px}@media(max-width:1050px){.achievement-editor-grid{grid-template-columns:1fr}.achievement-side{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.achievement-side>*{min-width:0}.achievement-delete{margin-bottom:20px}}@media(max-width:700px){.achievement-filter{align-items:stretch;flex-direction:column}.achievement-filter label,.achievement-filter label:first-child,.achievement-filter button{width:100%;min-width:0}.achievement-side{grid-template-columns:1fr}.achievement-delete{align-items:flex-start;flex-direction:column}}
.notification-category-grid{grid-template-columns:repeat(7,minmax(0,1fr))}.notification-icon.achievement{color:#735500;background:#fff0b8}@media(max-width:1100px){.notification-category-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:700px){.notification-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:430px){.notification-category-grid{grid-template-columns:1fr}}
.registration-roster-note{display:grid;gap:4px;margin:-8px 0 20px;padding:14px 16px;border:1px solid #b9dcee;border-radius:11px;color:#075583;background:#eff9fd}.registration-roster-note strong{font-size:12px}.registration-roster-note span{font-size:10px;line-height:1.55}.roster-verified{color:#08764a!important;font-weight:800}.roster-heading-actions{display:flex;flex-wrap:wrap;gap:9px}.roster-summary{margin-bottom:18px}.roster-class-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:20px}.roster-class-grid a{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:#fff}.roster-class-grid a.selected{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(25,184,230,.1)}.roster-class-grid span{color:var(--muted);font-size:10px;font-weight:800}.roster-class-grid strong{font-size:21px}.student-roster-layout{display:grid;grid-template-columns:330px minmax(0,1fr);align-items:start;gap:20px}.roster-add-panel{position:sticky;top:98px}.roster-add-panel>.kicker{margin:0 0 5px;color:var(--cyan);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.roster-add-panel h2{margin:0}.roster-add-panel .section-note{margin-bottom:20px}.roster-privacy-note{margin:20px 0 0!important}.roster-privacy-note p{margin:5px 0 0!important}.roster-filter{align-items:end;flex-wrap:wrap}.roster-filter label:first-child{min-width:220px;flex:1}.roster-filter label{min-width:145px}.roster-list{display:grid;border-top:1px solid var(--border)}.roster-list>details{border-bottom:1px solid var(--border)}.roster-list summary{display:grid;grid-template-columns:40px minmax(0,1fr) auto auto;align-items:center;gap:11px;padding:13px 6px;cursor:pointer;list-style:none}.roster-list summary::-webkit-details-marker{display:none}.roster-list summary>div strong,.roster-list summary>div small{display:block}.roster-list summary>div small{margin-top:4px;color:var(--muted);font-size:9px}.roster-avatar{width:37px;height:37px;display:grid;place-items:center;border-radius:50%;color:#fff;background:var(--blue);font-size:13px;font-weight:900}.roster-account{padding:6px 9px;border-radius:99px;color:#5f6b7d;background:#e7edf4;font-size:9px;font-weight:800}.roster-account.linked{color:#07663b;background:#c9f3dc}.roster-list details>form{margin:0 6px 14px 57px;padding:16px;border-radius:11px;background:#f4f8fb}.roster-list details>form label{display:block;margin-bottom:13px;font-size:10px;font-weight:800}.roster-list details>form input:not([type=checkbox]){width:100%;margin-top:6px;padding:10px;border:1px solid #cbd9e4;border-radius:8px;background:#fff}.roster-list details>form .check{display:flex}.roster-linked-note{color:var(--muted);font-size:10px}.roster-list details>form button{padding:10px 13px;font-size:10px}@media(max-width:1100px){.roster-class-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.student-roster-layout{grid-template-columns:1fr}.roster-add-panel{position:static}}@media(max-width:700px){.roster-class-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.roster-filter{align-items:stretch;flex-direction:column}.roster-filter label,.roster-filter label:first-child,.roster-filter button{width:100%;min-width:0}.roster-list summary{grid-template-columns:38px minmax(0,1fr)}.roster-account,.roster-list summary>.account-state{grid-column:2}.roster-list details>form{margin-left:0}.roster-list details>form .field-pair{grid-template-columns:1fr}.roster-heading-actions{width:100%}.roster-heading-actions a{flex:1}}
.attendance-heading-actions{display:flex;flex-wrap:wrap;gap:10px}.attendance-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:13px;margin-bottom:22px}.attendance-summary article{padding:19px;border:1px solid var(--border);border-top:4px solid var(--blue);border-radius:14px;background:#fff}.attendance-summary article.sakit{border-top-color:#e4a11b}.attendance-summary article.izin{border-top-color:#6d72c9}.attendance-summary article.alpa{border-top-color:var(--danger)}.attendance-summary article.terlambat{border-top-color:#e16c23}.attendance-summary span,.attendance-summary strong{display:block}.attendance-summary span{color:var(--muted);font-size:10px}.attendance-summary strong{margin-top:7px;font-size:27px}.attendance-filter{align-items:end;flex-wrap:wrap}.attendance-filter label{min-width:170px;color:var(--ink);font-size:10px;font-weight:800}.attendance-filter input,.attendance-filter select{width:100%;margin-top:6px;padding:10px;border:1px solid #cbd9e4;border-radius:8px;background:#fff}.attendance-status{display:inline-flex;padding:6px 9px;border-radius:99px;color:#07663b;background:#c9f3dc;font-size:9px;font-weight:800}.attendance-status.sakit{color:#735500;background:#fff0b8}.attendance-status.izin{color:#454998;background:#e4e5ff}.attendance-status.alpa{color:#9e2630;background:#ffd6da}.attendance-status.terlambat{color:#94440d;background:#ffe1cc}.attendance-session-panel{margin-bottom:20px}.attendance-session-fields{display:grid;grid-template-columns:170px 150px minmax(230px,1fr);gap:0 15px}.attendance-session-fields .wide{grid-column:1/-1}.attendance-load-class{margin-top:-5px}.attendance-entry-panel .panel-heading>div p{margin:5px 0 0}.attendance-entry-table td{vertical-align:middle}.attendance-entry-table select,.attendance-entry-table input{width:100%;min-width:125px;padding:9px;border:1px solid #cbd9e4;border-radius:8px;background:#fff}.attendance-entry-table input{min-width:210px}.attendance-save{margin-top:20px}.secondary-action{display:inline-flex;align-items:center;justify-content:center;padding:11px 15px;border:1px solid #b9d8e9;border-radius:9px;color:var(--blue);background:#fff;font-size:11px;font-weight:800;cursor:pointer}@media(max-width:900px){.attendance-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.attendance-session-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.attendance-session-fields label:nth-child(3){grid-column:1/-1}}@media(max-width:650px){.attendance-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.attendance-filter{align-items:stretch;flex-direction:column}.attendance-filter label,.attendance-filter button{width:100%;min-width:0}.attendance-session-fields{grid-template-columns:1fr}.attendance-session-fields label:nth-child(3),.attendance-session-fields .wide{grid-column:1}.attendance-heading-actions{width:100%}.attendance-heading-actions a{flex:1}}
.daily-recap-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.daily-recap-grid>article{display:flex;min-width:0;flex-direction:column;padding:18px;border:1px solid var(--border);border-radius:14px;background:#fbfdfe}.daily-recap-grid article>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:13px;border-bottom:1px solid var(--border)}.daily-recap-grid header span,.daily-recap-grid header strong{display:block}.daily-recap-grid header span{color:var(--muted);font-size:9px}.daily-recap-grid header strong{margin-top:3px;font-size:22px}.daily-recap-grid header a{color:var(--blue);font-size:10px;font-weight:800}.absence-list{display:grid}.absence-list>div{display:flex;align-items:flex-start;gap:10px;padding:11px 0;border-bottom:1px solid var(--border)}.absence-list p,.absence-list strong,.absence-list small{display:block;margin:0}.absence-list p{min-width:0;font-size:11px}.absence-list small{margin-top:4px;color:var(--muted);font-size:9px;line-height:1.45}.daily-recap-grid article>footer{margin-top:auto;padding-top:13px;color:var(--muted);font-size:8px}.all-present{margin:18px 0;padding:13px;border-radius:9px;color:#07663b;background:#d9f5e6;font-size:11px;font-weight:800}.attendance-empty{grid-column:1/-1;padding:30px;border:1px dashed #bfd2df;border-radius:13px;text-align:center}.attendance-empty p{margin:7px 0 0;color:var(--muted);font-size:11px}.student-attendance-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.attendance-session-fields.daily{grid-template-columns:180px 180px}.attendance-session-fields.daily .wide{grid-column:1/-1}.absence-entry-list{display:grid;gap:10px}.absence-entry-row{display:grid;grid-template-columns:minmax(220px,1.2fr) 140px minmax(180px,1fr) 38px;align-items:end;gap:10px;padding:13px;border:1px solid var(--border);border-radius:11px;background:#f8fbfd}.absence-entry-row label{margin:0;color:var(--ink);font-size:9px;font-weight:800}.absence-entry-row select,.absence-entry-row input{width:100%;margin-top:6px;padding:10px;border:1px solid #cbd9e4;border-radius:8px;background:#fff}.remove-absence{width:36px;height:36px;border:0;border-radius:8px;color:#9e2630;background:#ffdfe2;font-size:20px;cursor:pointer}.absence-entry-panel .info-box{margin-bottom:18px}.attendance-officer-check{align-items:flex-start!important;padding:14px;border:1px solid #b9dcee;border-radius:10px;background:#eff9fd}.attendance-officer-check small{margin:1px 0 0 4px}.attendance-officer-label{color:#075583!important;font-weight:800}@media(max-width:1100px){.daily-recap-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.absence-entry-row{grid-template-columns:minmax(200px,1fr) 130px minmax(170px,1fr) 38px}}@media(max-width:760px){.daily-recap-grid{grid-template-columns:1fr}.student-attendance-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.absence-entry-row{grid-template-columns:1fr 1fr}.absence-entry-row label:nth-child(3){grid-column:1/-1}.remove-absence{grid-column:2;justify-self:end}}@media(max-width:520px){.attendance-session-fields.daily,.absence-entry-row{grid-template-columns:1fr}.attendance-session-fields.daily .wide,.absence-entry-row label:nth-child(3),.remove-absence{grid-column:1}.remove-absence{justify-self:start}}
.whatsapp-action{display:inline-flex;align-items:center;justify-content:center;padding:11px 15px;border-radius:9px;color:#fff;background:#168b52;font-size:11px;font-weight:800}.attendance-report-header{display:flex;align-items:center;gap:14px;margin-bottom:20px;padding:16px;border-radius:12px;color:#fff;background:linear-gradient(135deg,var(--navy),var(--blue))}.attendance-report-header img{width:58px;height:58px;object-fit:contain}.attendance-report-header span,.attendance-report-header strong,.attendance-report-header small{display:block}.attendance-report-header span{color:#95dcf4;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em}.attendance-report-header strong{margin:3px 0;font-size:21px}.attendance-report-header small{color:#dfebfa;font-size:10px}.attendance-chart{margin:22px 0;padding:18px;border:1px solid var(--border);border-radius:13px;background:#fbfdfe}.recap-warning{padding:7px 9px;border-radius:99px;color:#8d4b00;background:#ffe7c3;font-size:9px;font-weight:800}.attendance-bars{display:grid;gap:9px}.attendance-bar-row{display:grid;grid-template-columns:45px minmax(0,1fr) 25px;align-items:center;gap:9px}.attendance-bar-row strong,.attendance-bar-row b{font-size:10px}.attendance-bar-track{height:12px;overflow:hidden;border-radius:99px;background:#e4edf4}.attendance-bar-track span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--cyan),var(--blue))}.attendance-chart-legend{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.attendance-chart-legend span{padding:6px 9px;border-radius:99px;background:#e9f2f8;font-size:9px;font-weight:800}.capture-exit{display:none}.attendance-capture-mode .capture-exit{position:fixed;z-index:20;right:18px;top:18px;display:block;padding:9px 12px;border:0;border-radius:8px;color:#fff;background:var(--danger);font-size:10px;font-weight:800;box-shadow:0 5px 15px rgba(0,0,0,.18);cursor:pointer}.attendance-capture-mode .app-shell{display:block}.attendance-capture-mode .app-shell>aside,.attendance-capture-mode .app-main>header,.attendance-capture-mode .attendance-page-title,.attendance-capture-mode .attendance-filter{display:none!important}.attendance-capture-mode .app-main>main{max-width:1300px;margin:auto;padding:22px;background:#fff}.attendance-capture-mode .attendance-summary{margin-bottom:14px}.attendance-capture-mode .attendance-report-panel{border:0;box-shadow:none}.attendance-capture-mode .daily-recap-grid{grid-template-columns:repeat(3,minmax(0,1fr))}@media print{.app-shell>aside,.app-main>header,.attendance-page-title,.attendance-filter,.capture-exit{display:none!important}.app-shell{display:block}.app-main>main{padding:0}.attendance-report-panel{border:0;box-shadow:none}}@media(max-width:650px){.whatsapp-action,.report-mode-toggle{width:100%}.attendance-report-header{align-items:flex-start}.attendance-capture-mode .daily-recap-grid{grid-template-columns:1fr}}
.gallery-submission-layout{display:grid;grid-template-columns:360px minmax(0,1fr);align-items:start;gap:20px}.gallery-submission-form{position:sticky;top:98px}.gallery-submission-form>.kicker{margin:0 0 5px;color:var(--cyan);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.gallery-submission-form h2{margin:0}.gallery-submission-form>.section-note{margin-bottom:20px}.gallery-submission-list{display:grid;gap:14px}.gallery-submission-list>article{display:grid;grid-template-columns:190px minmax(0,1fr);overflow:hidden;border:1px solid var(--border);border-radius:13px;background:#fbfdfe}.gallery-submission-preview{display:block;min-height:205px;background:#e7edf4}.gallery-submission-preview img{width:100%;height:100%;display:block;object-fit:cover}.gallery-submission-content{padding:16px}.gallery-submission-content>header{display:flex;align-items:center;justify-content:space-between;gap:10px}.gallery-submission-content>header small{color:var(--muted);font-size:8px}.gallery-review-status{display:inline-flex;padding:6px 9px;border-radius:99px;color:#735500;background:#fff0b8;font-size:9px;font-weight:800}.gallery-review-status.approved{color:#07663b;background:#c9f3dc}.gallery-review-status.rejected{color:#9e2630;background:#ffd6da}.gallery-submission-content h3{margin:13px 0 5px;font-size:17px}.gallery-submission-content>p{margin:8px 0;color:var(--muted);font-size:11px;line-height:1.6}.gallery-submitter{font-weight:800}.gallery-review-note{margin:12px 0;padding:11px;border-radius:9px;color:#8b3e18;background:#fff0e8;font-size:10px;line-height:1.55}.gallery-review-note strong{display:block;margin-bottom:4px}.gallery-public-link{display:inline-flex;margin-top:8px;color:var(--blue);font-size:10px;font-weight:800}.gallery-review-actions{display:flex;align-items:flex-start;gap:9px;margin-top:14px;padding-top:13px;border-top:1px solid var(--border)}.gallery-review-actions form{margin:0}.gallery-review-actions details{position:relative}.gallery-review-actions summary{padding:9px 12px;border:1px solid #efb5bb;border-radius:8px;color:var(--danger);font-size:10px;font-weight:800;cursor:pointer;list-style:none}.gallery-review-actions details form{position:absolute;z-index:4;right:0;top:42px;width:280px;padding:12px;border:1px solid var(--border);border-radius:10px;background:#fff;box-shadow:0 12px 30px rgba(8,44,97,.18)}.gallery-review-actions textarea{width:100%;padding:9px;border:1px solid #cbd9e4;border-radius:7px}.gallery-review-actions details button{width:100%;margin-top:7px;padding:9px;border:0;border-radius:7px;color:#fff;background:var(--danger);font-size:10px;font-weight:800}@media(max-width:1050px){.gallery-submission-layout{grid-template-columns:1fr}.gallery-submission-form{position:static}.gallery-submission-list{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-submission-list>article{grid-template-columns:1fr}.gallery-submission-preview{height:210px}}@media(max-width:700px){.gallery-submission-list{grid-template-columns:1fr}.gallery-submission-list>article{grid-template-columns:125px minmax(0,1fr)}.gallery-submission-preview{height:auto;min-height:180px}.gallery-review-actions{flex-direction:column}.gallery-review-actions details,.gallery-review-actions details summary,.gallery-review-actions .approve-account{width:100%}.gallery-review-actions details form{position:static;width:100%;margin-top:7px;box-shadow:none}}@media(max-width:500px){.gallery-submission-list>article{grid-template-columns:1fr}.gallery-submission-preview{height:210px}}
.gallery-review-status.removed{color:#5f6b7d;background:#e7edf4}.gallery-submission-preview.removed{display:flex;align-items:center;justify-content:center;padding:20px;color:#5f6b7d;background:#e7edf4;font-size:11px;font-weight:800;text-align:center}.notification-icon.gallery{color:#61407a;background:#efe2f6}.notification-category-grid{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:900px){.notification-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:430px){.notification-category-grid{grid-template-columns:1fr}}
.monthly-attendance-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.monthly-top-list{display:grid}.monthly-top-list>div{display:grid;grid-template-columns:30px minmax(0,1fr) 35px;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border)}.monthly-top-list>div>span{width:27px;height:27px;display:grid;place-items:center;border-radius:50%;color:#fff;background:var(--blue);font-size:10px;font-weight:900}.monthly-top-list p,.monthly-top-list strong,.monthly-top-list small{display:block;margin:0}.monthly-top-list small{margin-top:3px;color:var(--muted);font-size:8px}.monthly-top-list b{text-align:right}.monthly-attendance-table th:not(:nth-child(2)),.monthly-attendance-table td:not(:nth-child(2)){text-align:center}@media(max-width:900px){.monthly-attendance-grid{grid-template-columns:1fr}}@media print{.monthly-attendance-grid{grid-template-columns:1fr 1fr}.monthly-attendance-report{font-size:9px}.monthly-attendance-table th,.monthly-attendance-table td{padding:6px}}
.homeroom-admin-grid{display:grid;grid-template-columns:350px minmax(0,1fr);align-items:start;gap:20px}.homeroom-form-panel{position:sticky;top:95px}.homeroom-form-panel form{display:grid;gap:15px}.homeroom-form-panel label{font-size:10px;font-weight:800}.homeroom-form-panel input,.homeroom-form-panel select{width:100%;margin-top:6px;padding:11px;border:1px solid #cbd9e4;border-radius:9px;background:#fff}.homeroom-form-panel .info-box{margin-top:16px}.homeroom-assignment-list{display:grid}.homeroom-assignment-list article{display:grid;grid-template-columns:55px minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--border)}.homeroom-assignment-list article>span{width:50px;height:50px;display:grid;place-items:center;border-radius:12px;color:#fff;background:var(--blue);font-weight:900}.homeroom-assignment-list strong,.homeroom-assignment-list small{display:block}.homeroom-assignment-list small{margin-top:4px;color:var(--muted);font-size:9px}.homeroom-assignment-list button{padding:8px 10px;border:0;border-radius:7px;color:var(--danger);background:#ffe3e6;font-size:9px;font-weight:800;cursor:pointer}.homeroom-empty{padding:60px;text-align:center}.homeroom-empty>span{width:70px;height:70px;display:grid;place-items:center;margin:auto;border-radius:50%;color:#fff;background:var(--blue);font-size:34px}.homeroom-empty p{max-width:650px;margin:auto;color:var(--muted);line-height:1.7}.homeroom-identity{display:grid;grid-template-columns:1.5fr repeat(4,minmax(0,1fr));gap:13px;margin-bottom:20px}.homeroom-identity>div,.homeroom-identity>article{padding:18px;border:1px solid var(--border);border-radius:14px;background:#fff}.homeroom-identity>div{color:#fff;background:linear-gradient(135deg,var(--navy),var(--blue))}.homeroom-identity span,.homeroom-identity strong,.homeroom-identity small{display:block}.homeroom-identity span{color:var(--muted);font-size:9px}.homeroom-identity>div span,.homeroom-identity>div small{color:#d7e7f8}.homeroom-identity strong{margin:6px 0;font-size:25px}.homeroom-identity>div strong{font-size:31px}.homeroom-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(330px,.65fr);align-items:start;gap:20px}.homeroom-side-stack{display:grid;gap:20px}.homeroom-student-list{display:grid;grid-template-columns:1fr 1fr;gap:0 17px}.homeroom-student-list article{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:9px;padding:10px 0;border-bottom:1px solid var(--border)}.homeroom-student-list article>span{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;color:var(--blue);background:#e6f3fa;font-size:9px;font-weight:900}.homeroom-student-list strong,.homeroom-student-list small{display:block}.homeroom-student-list small{margin-top:3px;color:var(--muted);font-size:8px}.homeroom-student-list b{padding:5px 7px;border-radius:99px;color:#6d7785;background:#e7edf4;font-size:8px}.homeroom-student-list b.linked{color:#07663b;background:#c9f3dc}.homeroom-recap-item{display:grid;gap:4px;padding:11px 0;border-bottom:1px solid var(--border)}.homeroom-recap-item time{color:var(--cyan);font-size:9px;font-weight:800}.homeroom-recap-item small{color:var(--muted);font-size:8px}.homeroom-resource-item{display:grid;gap:4px;padding:10px 0;border-bottom:1px solid var(--border)}.homeroom-resource-item span{color:var(--cyan);font-size:8px;font-weight:800;text-transform:uppercase}.homeroom-resource-item small{color:var(--muted);font-size:8px}@media(max-width:1150px){.homeroom-identity{grid-template-columns:repeat(3,minmax(0,1fr))}.homeroom-identity>div{grid-column:span 2}.homeroom-dashboard-grid{grid-template-columns:1fr}}@media(max-width:850px){.homeroom-admin-grid{grid-template-columns:1fr}.homeroom-form-panel{position:static}}@media(max-width:650px){.homeroom-identity{grid-template-columns:1fr 1fr}.homeroom-identity>div{grid-column:1/-1}.homeroom-student-list{grid-template-columns:1fr}.homeroom-empty{padding:35px 20px}}
.contributor-admin-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:20px}.contributor-admin-summary article{padding:18px;border:1px solid var(--border);border-top:4px solid var(--blue);border-radius:14px;background:#fff}.contributor-admin-summary span,.contributor-admin-summary strong{display:block}.contributor-admin-summary span{color:var(--muted);font-size:9px}.contributor-admin-summary strong{margin-top:7px;font-size:25px}.contributor-admin-grid{display:grid;grid-template-columns:350px minmax(0,1fr);align-items:start;gap:20px;margin-bottom:20px}.contributor-adjustment-panel{position:sticky;top:95px}.contributor-adjustment-panel form{display:grid;gap:14px}.contributor-adjustment-panel label{font-size:10px;font-weight:800}.contributor-adjustment-panel select,.contributor-adjustment-panel input,.contributor-adjustment-panel textarea{width:100%;margin-top:6px;padding:11px;border:1px solid #cbd9e4;border-radius:9px;background:#fff}.contributor-adjustment-panel .info-box{margin-top:14px}.contributor-filter{align-items:end;flex-wrap:wrap}.contributor-filter label{min-width:150px;color:var(--ink);font-size:9px;font-weight:800}.contributor-filter input,.contributor-filter select{width:100%;margin-top:5px;padding:9px;border:1px solid #cbd9e4;border-radius:8px;background:#fff}.table-subtext{display:block;margin-top:4px;color:var(--muted);font-size:8px}.point-transaction-list{display:grid;grid-template-columns:1fr 1fr;gap:0 25px}.point-transaction-list article{display:grid;grid-template-columns:45px minmax(0,1fr);gap:11px;padding:12px 0;border-bottom:1px solid var(--border)}.point-transaction-list article>span,.point-history-item>span{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;color:#07663b;background:#c9f3dc;font-size:11px;font-weight:900}.point-transaction-list article>span.negative,.point-history-item>span.negative{color:#9e2630;background:#ffd6da}.point-transaction-list strong,.point-transaction-list p,.point-transaction-list small{display:block;margin:0}.point-transaction-list p{margin:4px 0;font-size:10px}.point-transaction-list small{color:var(--muted);font-size:8px}@media(max-width:1000px){.contributor-admin-grid{grid-template-columns:1fr}.contributor-adjustment-panel{position:static}}@media(max-width:750px){.contributor-admin-summary{grid-template-columns:1fr 1fr}.point-transaction-list{grid-template-columns:1fr}.contributor-filter{align-items:stretch;flex-direction:column}.contributor-filter label,.contributor-filter button{width:100%}}
.storage-hero{display:grid;grid-template-columns:2fr repeat(3,minmax(0,1fr));gap:13px;margin-bottom:18px}.storage-hero>div,.storage-hero>article{padding:20px;border:1px solid var(--border);border-radius:15px;background:#fff}.storage-hero>div{color:#fff;background:linear-gradient(135deg,var(--navy),var(--blue))}.storage-hero span,.storage-hero strong,.storage-hero small{display:block}.storage-hero span{color:var(--muted);font-size:9px}.storage-hero>div span,.storage-hero>div p,.storage-hero>div small{color:#d8e8f8}.storage-hero strong{margin:7px 0;font-size:25px}.storage-hero>div strong{font-size:31px}.storage-hero>div strong small{display:inline;font-size:12px}.storage-hero p{margin:8px 0 0;font-size:9px}.storage-progress{height:13px;overflow:hidden;border-radius:99px;background:rgba(255,255,255,.17)}.storage-progress i{height:100%;display:block;border-radius:99px;background:var(--yellow)}.storage-server-note{margin-bottom:18px;padding:13px 16px;border:1px solid #b9dcee;border-radius:11px;color:#075583;background:#eff9fd;font-size:10px}.storage-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.storage-directory-list{display:grid}.storage-directory-list article{display:grid;grid-template-columns:minmax(100px,.8fr) minmax(100px,1.4fr) 85px 50px;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border);font-size:9px}.storage-directory-list article>div{height:8px;overflow:hidden;border-radius:99px;background:#e4edf4}.storage-directory-list i{height:100%;display:block;background:linear-gradient(90deg,var(--cyan),var(--blue))}.storage-directory-list strong{text-align:right}.storage-directory-list small{color:var(--muted);text-align:right}.storage-file-list{display:grid}.storage-file-list article{display:grid;grid-template-columns:50px minmax(0,1fr) 80px;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border)}.storage-file-list article>span{padding:5px;border-radius:99px;color:#075583;background:#d9f2ff;font-size:8px;font-weight:800;text-align:center}.storage-file-list p,.storage-file-list strong,.storage-file-list small{display:block;margin:0;min-width:0}.storage-file-list strong,.storage-file-list small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.storage-file-list strong{font-size:10px}.storage-file-list small{margin-top:3px;color:var(--muted);font-size:7px}.storage-file-list b{font-size:9px;text-align:right}.storage-orphan-panel>.panel-heading>span{padding:7px 9px;border-radius:99px;color:#735500;background:#fff0b8;font-size:9px;font-weight:800}.storage-clean-state{padding:25px;border-radius:12px;color:#07663b;background:#e2f7eb;text-align:center;font-weight:800}.storage-orphan-panel .info-box{margin-top:15px}@media(max-width:1100px){.storage-hero{grid-template-columns:repeat(3,minmax(0,1fr))}.storage-hero>div{grid-column:1/-1}.storage-grid{grid-template-columns:1fr}}@media(max-width:650px){.storage-hero{grid-template-columns:1fr}.storage-directory-list article{grid-template-columns:minmax(100px,1fr) 75px 45px}.storage-directory-list article>div{display:none}}
.health-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) 1.5fr;gap:13px;margin-bottom:20px}.health-summary article,.health-summary>div{padding:18px;border:1px solid var(--border);border-top:4px solid var(--blue);border-radius:14px;background:#fff}.health-summary article.warning{border-top-color:#e4a11b}.health-summary article.error{border-top-color:var(--danger)}.health-summary span,.health-summary strong,.health-summary small{display:block}.health-summary span{color:var(--muted);font-size:9px}.health-summary strong{margin:6px 0;font-size:24px}.health-summary small{color:var(--muted);font-size:8px}.health-check-list{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.health-check-list article{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:11px;padding:14px 0;border-bottom:1px solid var(--border)}.health-check-list article>span{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;color:#07663b;background:#c9f3dc;font-size:18px;font-weight:900}.health-check-list article.warning>span{color:#735500;background:#fff0b8}.health-check-list article.error>span{color:#9e2630;background:#ffd6da}.health-check-list strong,.health-check-list p,.health-check-list small{display:block;margin:0}.health-check-list p{margin:4px 0;font-size:9px}.health-check-list small{color:#8a5a00;font-size:8px}.health-check-list b{padding:6px 8px;border-radius:99px;color:#07663b;background:#e2f7eb;font-size:8px}.health-check-list .warning b{color:#735500;background:#fff0b8}.health-check-list .error b{color:#9e2630;background:#ffd6da}.health-cron-guide{margin-top:20px}.health-cron-guide code{display:block;overflow-x:auto;padding:16px;border-radius:10px;color:#d8f1ff;background:#09254c;font-size:10px;white-space:nowrap}.health-cron-guide>p{color:var(--muted);font-size:9px;line-height:1.6}@media(max-width:900px){.health-summary{grid-template-columns:1fr 1fr}.health-summary>div{grid-column:1/-1}.health-check-list{grid-template-columns:1fr}}@media(max-width:500px){.health-summary{grid-template-columns:1fr}}
