:root{--ot-primary:#0f5132;--ot-primary-dark:#0a3d27;--ot-accent:#178b93;--ot-bg:#f3f6fa;--ot-card:#fff;--ot-line:#dde5ee;--ot-text:#172337;--ot-muted:#67778e;--ot-good:#18794e;--ot-warn:#a05d07;--ot-danger:#b42318;--ot-radius:16px;--ot-shadow:0 8px 24px rgba(25,49,78,.07)}
*{box-sizing:border-box}html{background:var(--ot-bg)}body.ortu-app{margin:0;background:var(--ot-bg);color:var(--ot-text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;font-size:14px;line-height:1.45}a{color:inherit}.ortu-shell{min-height:100vh}.ortu-sidebar{display:none}.ortu-main-wrap{min-width:0}.ortu-topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:rgba(255,255,255,.96);border-bottom:1px solid var(--ot-line);backdrop-filter:blur(10px)}.ortu-top-school{display:flex;align-items:center;gap:9px;min-width:0}.ortu-top-school img{width:36px;height:36px;object-fit:contain;border-radius:9px}.ortu-top-school div{min-width:0}.ortu-top-school small,.ortu-top-school strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ortu-top-school small{font-size:10px;color:var(--ot-muted);font-weight:700}.ortu-top-school strong{font-size:15px}.ortu-student-chip{display:flex;align-items:center;gap:8px;min-width:0}.ortu-student-chip>div:last-child{display:none}.ortu-avatar{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:#e7f0fb;color:var(--ot-primary);font-weight:900}.ortu-tablet-nav{display:none}.ortu-content{width:min(100%,1180px);margin:0 auto;padding:14px 12px 90px}.ortu-notice{display:grid;gap:3px;margin-bottom:12px;padding:11px 12px;border-radius:13px;border:1px solid var(--ot-line);background:#fff}.ortu-notice strong{font-size:12.5px}.ortu-notice span{font-size:11.5px;color:var(--ot-muted)}.ortu-notice a{font-size:11.5px;font-weight:800;color:var(--ot-primary);text-decoration:none;margin-top:3px;width:max-content}.ortu-notice.warning{border-color:#f0d7a7;background:#fffbf2}.ortu-notice.danger{border-color:#f3c2bd;background:#fff7f6}.alert{padding:11px 12px;border-radius:13px;margin:0 0 12px;border:1px solid var(--ot-line);background:#fff}.alert.success{border-color:#b9e2ca;background:#f4fbf7}.alert.danger{border-color:#f3c2bd;background:#fff7f6}.alert.warning{border-color:#f0d7a7;background:#fffbf2}.alert.info{border-color:#c7daf0;background:#f5f9fe}
.ortu-hero{position:relative;overflow:hidden;margin-bottom:12px;padding:17px 16px;border-radius:18px;background:linear-gradient(135deg,#0f5132,#1b7047);color:#fff;box-shadow:var(--ot-shadow)}.ortu-hero:after{content:"";position:absolute;right:-42px;top:-55px;width:155px;height:155px;border-radius:50%;background:rgba(255,255,255,.1)}.ortu-hero small{display:block;font-size:10px;opacity:.82;font-weight:750;letter-spacing:.04em}.ortu-hero h1{position:relative;margin:3px 0 2px;font-size:21px;line-height:1.15}.ortu-hero p{position:relative;margin:0;font-size:11.5px;opacity:.88}.ortu-hero-meta{position:relative;display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.ortu-hero-meta span{padding:5px 8px;border-radius:999px;background:rgba(255,255,255,.14);font-size:10.5px;font-weight:700}
.ortu-dashboard-grid{display:grid;grid-template-columns:1fr;gap:10px}.ortu-card{min-width:0;background:var(--ot-card);border:1px solid var(--ot-line);border-radius:var(--ot-radius);padding:14px;box-shadow:0 3px 14px rgba(25,49,78,.035)}.ortu-card.priority{border-top:3px solid var(--ot-primary)}.ortu-card.saving{border-top-color:var(--ot-accent)}.ortu-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}.ortu-card-head>div{min-width:0}.ortu-card-kicker{display:block;font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ot-muted);font-weight:900}.ortu-card h2,.ortu-card h3{margin:2px 0 0}.ortu-card h2{font-size:18px}.ortu-card h3{font-size:14px}.ortu-card-link{font-size:11px;font-weight:800;color:var(--ot-primary);text-decoration:none;white-space:nowrap}.ortu-status-big{display:flex;align-items:center;gap:10px;padding:9px 0}.ortu-status-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:#e9f7ef;color:var(--ot-good);font-size:20px;font-weight:900}.ortu-status-big strong{display:block;font-size:18px}.ortu-status-big small{display:block;color:var(--ot-muted);font-size:11px;margin-top:2px}.ortu-mini-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:9px}.ortu-mini-stats div{text-align:center;padding:7px 4px;border-radius:10px;background:#f6f8fb}.ortu-mini-stats strong,.ortu-mini-stats small{display:block}.ortu-mini-stats strong{font-size:15px}.ortu-mini-stats small{font-size:9px;color:var(--ot-muted)}.ortu-money{font-size:24px;font-weight:900;line-height:1.05;margin:3px 0}.ortu-money-label{font-size:10.5px;color:var(--ot-muted)}.ortu-transaction-today{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}.ortu-transaction-today div{padding:9px;border-radius:11px;background:#f6f8fb}.ortu-transaction-today small,.ortu-transaction-today strong{display:block}.ortu-transaction-today small{font-size:9.5px;color:var(--ot-muted)}.ortu-transaction-today strong{font-size:13px;margin-top:2px}.ortu-list{display:grid;gap:0}.ortu-list-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:10px 0;border-top:1px solid #edf1f5}.ortu-list-item:first-child{border-top:0;padding-top:2px}.ortu-list-item strong,.ortu-list-item small{display:block}.ortu-list-item strong{font-size:12.5px}.ortu-list-item small{font-size:10.5px;color:var(--ot-muted);margin-top:2px}.ortu-list-item>span{font-size:10.5px;color:var(--ot-muted);text-align:right}.ortu-empty{padding:14px 10px;text-align:center;border-radius:12px;background:#f7f9fb;color:var(--ot-muted);font-size:11.5px}.ortu-badge{display:inline-flex;align-items:center;padding:4px 7px;border-radius:999px;background:#eef3f8;color:#42546a;font-size:9.5px;font-weight:800}.ortu-badge.good{background:#e9f7ef;color:var(--ot-good)}.ortu-badge.warn{background:#fff3db;color:var(--ot-warn)}.ortu-badge.danger{background:#feeceb;color:var(--ot-danger)}
.ortu-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin:2px 0 12px}.ortu-page-head h1{margin:2px 0 0;font-size:20px}.ortu-page-head p{margin:3px 0 0;color:var(--ot-muted);font-size:11.5px}.ortu-toolbar{display:flex;gap:8px;flex-wrap:wrap}.ortu-select,.ortu-input{width:100%;min-height:42px;padding:9px 11px;border:1px solid #ccd7e4;border-radius:11px;background:#fff;color:var(--ot-text);font:inherit}.ortu-btn{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:9px 13px;border:1px solid #cbd6e3;border-radius:11px;background:#fff;color:#31445c;text-decoration:none;font-weight:800;font-size:11.5px;cursor:pointer}.ortu-btn.primary{border-color:var(--ot-primary);background:var(--ot-primary);color:#fff}.ortu-btn.danger{border-color:#efc0bc;color:var(--ot-danger);background:#fff8f7}.ortu-form-grid{display:grid;grid-template-columns:1fr;gap:10px}.ortu-form-group label{display:block;margin-bottom:5px;font-size:11px;font-weight:800}.ortu-form-group small{display:block;color:var(--ot-muted);font-size:10px;margin-top:4px}.ortu-table-wrap{overflow:auto;border:1px solid var(--ot-line);border-radius:12px}.ortu-table{width:100%;border-collapse:collapse;min-width:650px;background:#fff}.ortu-table th,.ortu-table td{padding:9px 10px;border-bottom:1px solid #edf1f5;text-align:left;font-size:11.5px}.ortu-table th{font-size:10px;color:#5d6c80;background:#f7f9fb}.ortu-mobile-cards{display:grid;gap:8px}.ortu-record{padding:12px;border:1px solid var(--ot-line);border-radius:13px;background:#fff}.ortu-record-head{display:flex;justify-content:space-between;gap:8px}.ortu-record strong{font-size:12.5px}.ortu-record p{margin:6px 0 0;color:#435269;font-size:11.5px;white-space:normal}.ortu-record small{color:var(--ot-muted);font-size:10.5px}.desktop-only{display:none}.ortu-section-tabs{display:flex;gap:6px;margin-bottom:10px;overflow:auto}.ortu-section-tabs a{flex:0 0 auto;padding:8px 11px;border:1px solid var(--ot-line);border-radius:999px;background:#fff;text-decoration:none;font-size:10.5px;font-weight:800}.ortu-section-tabs a.active{border-color:var(--ot-primary);background:#eaf2fb;color:var(--ot-primary)}
.ortu-bottom-nav{position:fixed;z-index:50;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(4,1fr);padding:6px max(5px,env(safe-area-inset-left)) calc(5px + env(safe-area-inset-bottom));border-top:1px solid var(--ot-line);background:rgba(255,255,255,.98);box-shadow:0 -6px 20px rgba(25,49,78,.08)}.ortu-bottom-nav a,.ortu-bottom-nav button{position:relative;display:grid;place-items:center;gap:1px;min-height:48px;border:0;background:transparent;color:#6a7789;text-decoration:none;font:inherit}.ortu-bottom-nav span{font-size:18px;line-height:1}.ortu-bottom-nav small{font-size:9.5px;font-weight:800}.ortu-bottom-nav .active{color:var(--ot-primary)}.ortu-bottom-nav em{position:absolute;top:1px;right:24%;min-width:17px;height:17px;padding:0 4px;display:grid;place-items:center;border-radius:999px;background:#c93636;color:#fff;font-size:8px;font-style:normal;font-weight:900}.ortu-sheet-backdrop{position:fixed;z-index:60;inset:0;background:rgba(15,27,43,.38)}.ortu-sheet{position:fixed;z-index:70;left:0;right:0;bottom:0;max-height:82vh;padding:8px 14px calc(14px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;background:#fff;box-shadow:0 -18px 48px rgba(15,27,43,.18);transform:translateY(105%);transition:.22s ease;overflow:auto}.ortu-sheet.open{transform:translateY(0)}.ortu-sheet-handle{width:42px;height:4px;margin:1px auto 10px;border-radius:999px;background:#cbd5e1}.ortu-sheet-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.ortu-sheet-head strong,.ortu-sheet-head small{display:block}.ortu-sheet-head small{font-size:10px;color:var(--ot-muted);margin-top:2px}.ortu-sheet-head button{width:36px;height:36px;border:0;border-radius:50%;background:#f0f3f7;font-size:20px}.ortu-sheet-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ortu-sheet-grid a{position:relative;display:flex;align-items:center;gap:9px;min-height:54px;padding:10px;border:1px solid var(--ot-line);border-radius:13px;text-decoration:none}.ortu-sheet-grid a>span{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:#edf4fb;color:var(--ot-primary);font-size:16px}.ortu-sheet-grid b{font-size:11px}.ortu-sheet-grid em{position:absolute;right:8px;top:7px;min-width:17px;padding:2px 5px;border-radius:999px;background:#c93636;color:#fff;font-size:8px;font-style:normal;text-align:center}.ortu-sheet-logout{display:flex;justify-content:center;margin-top:10px;padding:11px;border-radius:11px;background:#fff3f2;color:var(--ot-danger);text-decoration:none;font-size:11.5px;font-weight:800}.sheet-open{overflow:hidden}
.ortu-login{min-height:100vh;display:grid;place-items:center;padding:18px;background:linear-gradient(145deg,#edf4fb,#f6f9fc 55%,#e9f7f4)}.ortu-login-card{width:min(100%,410px);padding:22px 18px;border:1px solid var(--ot-line);border-radius:20px;background:#fff;box-shadow:0 18px 55px rgba(25,49,78,.12)}.ortu-login-logo{width:70px;height:70px;display:grid;place-items:center;margin:0 auto 10px;border-radius:18px;background:#edf4fb;color:var(--ot-primary);font-weight:900;font-size:21px}.ortu-login-logo img{max-width:58px;max-height:58px;object-fit:contain}.ortu-login-card h1{text-align:center;font-size:21px;margin:4px 0}.ortu-login-card>p{text-align:center;color:var(--ot-muted);font-size:11.5px;margin:0 0 16px}.ortu-login-card form{display:grid;gap:11px}.ortu-login-foot{margin-top:14px;padding-top:12px;border-top:1px solid #edf1f5;text-align:center;color:var(--ot-muted);font-size:10px}.ortu-login-foot a{color:var(--ot-primary);font-weight:800;text-decoration:none}
@media(min-width:768px){.ortu-content{padding:18px 18px 38px}.ortu-topbar{padding:11px 18px}.ortu-student-chip>div:last-child{display:block}.ortu-student-chip strong,.ortu-student-chip small{display:block}.ortu-student-chip strong{font-size:11.5px}.ortu-student-chip small{font-size:9.5px;color:var(--ot-muted)}.ortu-tablet-nav{display:flex;gap:7px;overflow:auto;padding:8px 18px;border-bottom:1px solid var(--ot-line);background:#fff}.ortu-tablet-nav a{position:relative;display:flex;align-items:center;gap:5px;flex:0 0 auto;padding:7px 9px;border-radius:9px;text-decoration:none;font-size:10px;font-weight:800;color:#56677c}.ortu-tablet-nav a.active{background:#eaf2fb;color:var(--ot-primary)}.ortu-tablet-nav em{min-width:17px;padding:1px 4px;border-radius:999px;background:#c93636;color:#fff;font-size:8px;font-style:normal}.ortu-dashboard-grid{grid-template-columns:1fr 1fr}.ortu-card.wide{grid-column:1/-1}.ortu-mini-stats{gap:8px}.ortu-form-grid{grid-template-columns:1fr 1fr}.mobile-only{display:none}.desktop-only{display:block}.ortu-bottom-nav{display:none}.ortu-sheet,.ortu-sheet-backdrop{display:none!important}.ortu-content{padding-bottom:38px}.ortu-hero{padding:20px}.ortu-hero h1{font-size:24px}.ortu-toolbar .ortu-select{width:auto;min-width:180px}}
@media(min-width:1100px){.ortu-shell{display:grid;grid-template-columns:245px minmax(0,1fr)}.ortu-sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:17px 12px;background:#fff;border-right:1px solid var(--ot-line)}.ortu-brand{display:flex;align-items:center;gap:10px;padding:5px 8px 16px}.ortu-brand img,.ortu-brand-mark{width:40px;height:40px;object-fit:contain;border-radius:10px}.ortu-brand-mark{display:grid;place-items:center;background:#eaf2fb;color:var(--ot-primary);font-weight:900}.ortu-brand div{min-width:0}.ortu-brand strong,.ortu-brand small{display:block}.ortu-brand strong{font-size:13px}.ortu-brand small{margin-top:2px;font-size:9.5px;color:var(--ot-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ortu-sidebar nav{display:grid;gap:3px;overflow:auto}.ortu-sidebar nav a{position:relative;display:grid;grid-template-columns:31px minmax(0,1fr) auto;align-items:center;gap:7px;min-height:41px;padding:7px 9px;border-radius:10px;color:#516278;text-decoration:none}.ortu-sidebar nav a>span{width:29px;height:29px;display:grid;place-items:center;border-radius:8px;background:#f2f5f8}.ortu-sidebar nav b{font-size:11px}.ortu-sidebar nav a.active{background:#eaf2fb;color:var(--ot-primary)}.ortu-sidebar nav a.active>span{background:#d8e9fb}.ortu-sidebar nav em{min-width:19px;padding:2px 5px;border-radius:999px;background:#c93636;color:#fff;font-size:8px;font-style:normal;text-align:center}.ortu-sidebar .ortu-logout{margin-top:7px;color:var(--ot-danger)}.ortu-topbar{position:sticky;padding:13px 22px}.ortu-top-school img{display:none}.ortu-tablet-nav{display:none}.ortu-content{padding:20px 22px 45px}.ortu-dashboard-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.ortu-card.span-2{grid-column:span 2}.ortu-card.wide{grid-column:1/-1}.ortu-hero{padding:21px 22px}.ortu-hero h1{font-size:27px}.ortu-login-card{padding:26px 24px}}
@media(max-width:420px){.ortu-content{padding-left:10px;padding-right:10px}.ortu-card{padding:12px}.ortu-hero{padding:15px 13px}.ortu-hero h1{font-size:19px}.ortu-mini-stats{gap:4px}.ortu-mini-stats strong{font-size:14px}.ortu-sheet-grid{grid-template-columns:1fr 1fr}.ortu-top-school small{max-width:170px}.ortu-top-school strong{max-width:180px}.ortu-money{font-size:22px}}

/* Tahap 6 - detail waktu Absensi Sekolah pada Portal Orang Tua */
.ortu-attendance-times{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:7px 0 3px}.ortu-attendance-times>div{padding:8px 9px;border-radius:10px;background:#f6f8fb}.ortu-attendance-times small,.ortu-attendance-times strong,.ortu-attendance-times em{display:block}.ortu-attendance-times small{font-size:9px;color:var(--ot-muted)}.ortu-attendance-times strong{margin-top:2px;font-size:14px}.ortu-attendance-times em{margin-top:2px;font-size:8.5px;color:var(--ot-danger);font-style:normal;font-weight:800}.ortu-attendance-times.compact{margin-top:8px}.ortu-attendance-note{margin-top:7px;padding:7px 9px;border-radius:9px;background:#fff8e8;color:#8a5b08;font-size:10px}.ortu-attendance-summary-extra{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}.ortu-attendance-summary-extra span{padding:5px 8px;border-radius:999px;background:#f6f8fb;color:var(--ot-muted);font-size:9.5px}.ortu-time-alert{color:var(--ot-danger);font-size:9px;font-weight:800}

/* PWA + Push Notification Portal Orang Tua */
.awk-push-panel{position:fixed;right:18px;bottom:18px;z-index:1400;width:min(430px,calc(100vw - 28px));display:grid;grid-template-columns:42px minmax(0,1fr) auto auto;gap:11px;align-items:center;padding:13px 14px;background:#fff;border:1px solid #d8e4ef;border-radius:16px;box-shadow:0 16px 44px rgba(17,53,82,.18)}
.awk-push-panel.is-hidden{display:none}.awk-push-icon{width:42px;height:42px;border-radius:13px;background:#e9f5ff;display:grid;place-items:center;font-size:20px}.awk-push-copy{min-width:0}.awk-push-copy strong{display:block;font-size:14px;color:#17324d}.awk-push-copy small{display:block;margin-top:3px;color:#63798d;line-height:1.35}.awk-push-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.awk-push-actions button{border:0;border-radius:10px;padding:9px 11px;font:inherit;font-size:12px;font-weight:750;cursor:pointer}.awk-push-enable{background:#0f5132;color:#fff}.awk-push-install{background:#e8f7f4;color:#0a685f}.awk-push-close{align-self:start;border:0;background:transparent;color:#7890a3;font-size:20px;line-height:1;cursor:pointer;padding:2px}.awk-push-panel[data-state="ok"]{border-color:#b9e5d9}.awk-push-panel[data-state="error"]{border-color:#f2c2c2}.awk-push-panel[data-state="warn"]{border-color:#f0d598}
@media(max-width:820px){.awk-push-panel{bottom:84px;left:12px;right:12px;width:auto;grid-template-columns:38px minmax(0,1fr) auto}.awk-push-icon{width:38px;height:38px}.awk-push-actions{grid-column:2/4;justify-content:flex-start}.awk-push-close{position:absolute;right:8px;top:7px}}

/* V9.4.2 — kontrol notifikasi + tombol Keluar portal selalu terlihat di sheet HP. */
.ortu-actions{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 7px}.ortu-muted{color:var(--ot-muted);font-size:10.5px}.ortu-sheet-logout{position:sticky;bottom:0;z-index:3;border:1px solid #f0d2cf;box-shadow:0 -8px 18px rgba(25,49,78,.08)}
@media(max-width:767px){.ortu-actions>.ortu-btn{flex:1 1 100%;width:100%}.ortu-sheet{padding-bottom:calc(18px + env(safe-area-inset-bottom))}}

/* V9.4.25 - Diagnosis notifikasi Portal Orang Tua */
.push-diagnostic{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0}
.push-diagnostic>div{padding:10px 11px;border:1px solid var(--ot-line);border-radius:12px;background:#f8fafc;min-width:0}
.push-diagnostic span,.push-diagnostic strong{display:block}.push-diagnostic span{font-size:10px;color:var(--ot-muted);margin-bottom:3px}.push-diagnostic strong{font-size:11px;line-height:1.3;overflow-wrap:anywhere}
.push-diagnostic strong[data-state="good"]{color:#16745a}.push-diagnostic strong[data-state="warn"]{color:#9a6806}.push-diagnostic strong[data-state="bad"]{color:#b33b34}.push-diagnostic strong[data-state="busy"]{color:var(--ot-primary)}.push-diagnostic strong[data-state="muted"]{color:var(--ot-muted)}
.push-overall[data-state="good"]{color:#16745a}.push-overall[data-state="warn"]{color:#8c650d}.push-overall[data-state="bad"]{color:#b33b34}
@media(max-width:620px){.push-diagnostic{grid-template-columns:1fr}.push-diagnostic>div{display:flex;justify-content:space-between;align-items:center;gap:12px}.push-diagnostic span{margin:0}.push-diagnostic strong{text-align:right}}

/* V9.4.28 — alur izin notifikasi aman: tidak memaksa prompt berulang + panduan Chrome */
.awk-push-help{background:#fff7e7!important;color:#8a5d09!important;border:1px solid #ecd49f!important}
.awk-push-help-backdrop{position:fixed;inset:0;z-index:2100;background:rgba(17,31,49,.56);display:grid;place-items:center;padding:18px}
.awk-push-help-backdrop[hidden]{display:none!important}
.awk-push-help-dialog{width:min(560px,100%);max-height:min(86vh,720px);overflow:auto;background:#fff;border-radius:18px;padding:18px;box-shadow:0 24px 70px rgba(16,36,56,.28)}
.awk-push-help-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.awk-push-help-head strong{font-size:18px;color:#17324d}.awk-push-help-x{border:0;background:#eef3f8;color:#526d84;border-radius:10px;width:36px;height:36px;font-size:23px;line-height:1;cursor:pointer}
.awk-push-help-note{margin:12px 0;padding:11px 12px;background:#fff8e9;border:1px solid #f0d7a2;border-radius:12px;color:#6e551d;font-size:12px;line-height:1.55}
.awk-push-help-steps{margin:12px 0 12px 21px;padding:0;color:#31495f}.awk-push-help-steps li{margin:0 0 9px;padding-left:3px;font-size:12px;line-height:1.55}.awk-push-origin{display:grid;gap:3px;padding:10px 12px;background:#f5f8fb;border:1px solid #dce6ef;border-radius:11px}.awk-push-origin span{font-size:9px;color:#73879a}.awk-push-origin strong{font-size:11px;overflow-wrap:anywhere;color:#183b5b}
.awk-push-help-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px}.awk-push-help-actions button{border:0;border-radius:11px;padding:10px 12px;font:inherit;font-size:11px;font-weight:800;cursor:pointer}.awk-push-help-copy{background:#eef3f8;color:#244b6d}.awk-push-help-done{background:var(--ot-primary);color:#fff;flex:1 1 230px}.awk-push-help-open{overflow:hidden}
@media(max-width:640px){.awk-push-help-backdrop{padding:10px}.awk-push-help-dialog{border-radius:16px;padding:15px;max-height:90vh}.awk-push-help-actions button{width:100%}.awk-push-panel{grid-template-columns:38px minmax(0,1fr) auto}.awk-push-actions{grid-column:2/4}.awk-push-actions .awk-push-help{width:100%}}


/* V9.6.12 - Portal Orang Tua Ekstrakurikuler */
.ortu-ekskul-stack{display:grid;gap:14px}.ortu-ekskul-card{overflow:hidden}.ortu-badge-muted{background:#eef2f6!important;color:#617083!important}.ortu-ekskul-meta{display:grid;gap:7px;grid-template-columns:repeat(3,minmax(0,1fr));margin:3px 0 11px}.ortu-ekskul-meta>div{padding:9px 10px;border:1px solid var(--ot-line);border-radius:11px;background:#f8fafc;min-width:0}.ortu-ekskul-meta small,.ortu-ekskul-meta strong,.ortu-ekskul-meta span{display:block}.ortu-ekskul-meta small{font-size:9px;color:var(--ot-muted)}.ortu-ekskul-meta strong{margin-top:2px;font-size:11px;overflow-wrap:anywhere}.ortu-ekskul-meta span{margin-top:2px;font-size:9px;color:var(--ot-muted)}.ortu-ekskul-stats{margin-bottom:12px}.ortu-ekskul-section{padding-top:12px;margin-top:12px;border-top:1px solid var(--ot-line)}.ortu-ekskul-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.ortu-ekskul-section-head h3{margin:0;font-size:13px}.ortu-ekskul-section-head span{font-size:9px;font-weight:800;color:var(--ot-muted)}.ortu-ekskul-att{display:inline-flex!important;align-items:center;justify-content:center;min-width:72px;padding:5px 7px;border-radius:999px;font-size:9px!important;font-weight:900}.ortu-ekskul-att.h{background:#e7f7ef;color:#18794e}.ortu-ekskul-att.s,.ortu-ekskul-att.i{background:#fff4df;color:#8d5b09}.ortu-ekskul-att.a{background:#fdeaea;color:#b42318}.ortu-ekskul-att.cancel,.ortu-ekskul-att.belum{background:#eef2f6;color:#66778b}.ortu-ekskul-development{display:grid;gap:7px}.ortu-ekskul-development p{margin:0;padding:9px 10px;border-radius:10px;background:#f8fafc;color:#44556a;font-size:11px;line-height:1.55}.ortu-ekskul-development strong{color:var(--ot-text)}.ortu-ekskul-privacy{margin:8px 0 0;font-size:9px;color:var(--ot-muted);line-height:1.5}.ortu-ekskul-dashboard-summary{display:flex;gap:5px;align-items:center;flex-wrap:wrap;margin-bottom:7px;font-size:11px}.ortu-ekskul-dashboard-summary strong{color:var(--ot-primary)}.ortu-ekskul-dashboard-summary span{color:var(--ot-muted)}
@media(max-width:620px){.ortu-ekskul-meta{grid-template-columns:1fr}.ortu-ekskul-section .ortu-list-item{align-items:flex-start}.ortu-ekskul-att{min-width:64px}}

/* =========================================================
   MADRASAH V1.0 — PORTAL ORANG TUA
   Family-facing UI: calm emerald, ivory, warm gold.
   ========================================================= */
:root{--ot-primary:#0f5132;--ot-primary-dark:#0a3d27;--ot-accent:#c39d2b;--ot-bg:#f5f7f2;--ot-card:#fffefa;--ot-line:#e1e7de;--ot-text:#203027;--ot-muted:#6b786f;--ot-good:#1f7a4d;--ot-warn:#8c6d12;--ot-danger:#b64242;--ot-radius:17px;--ot-shadow:0 10px 28px rgba(31,54,42,.065)}
html,body.ortu-app{background:linear-gradient(180deg,#f8faf6,#f2f5ef)}
.ortu-topbar{background:rgba(255,254,250,.95);border-bottom-color:var(--ot-line);box-shadow:0 3px 15px rgba(31,54,42,.035)}
.ortu-avatar{background:linear-gradient(135deg,#e5f2e9,#f7efd1);color:#0f5132;border:1px solid #d6e5d8}
.ortu-hero{background:linear-gradient(135deg,#0f5132,#1b7047);box-shadow:0 14px 30px rgba(15,81,50,.15);border:1px solid rgba(255,255,255,.08)}
.ortu-hero:after{background:radial-gradient(circle,rgba(236,209,118,.28),rgba(236,209,118,0) 70%);width:190px;height:190px;right:-55px;top:-72px}
.ortu-card{background:var(--ot-card);border-color:var(--ot-line);box-shadow:0 4px 16px rgba(31,54,42,.04)}.ortu-card.priority{border-top-color:#0f5132}.ortu-card.saving{border-top-color:#c39d2b}
.ortu-mini-stats div,.ortu-transaction-today div,.ortu-attendance-times>div,.ortu-ekskul-meta>div,.ortu-ekskul-development p{background:#f6f8f4}
.ortu-empty{background:#f6f8f4}.ortu-badge{background:#edf2ed;color:#536159}.ortu-badge.good{background:#e8f4ec;color:#176540}.ortu-badge.warn{background:#fbf1cf;color:#806410}
.ortu-btn{border-color:#d7e1d6;background:#fffefa;color:#33453a;border-radius:11px}.ortu-btn.primary{border-color:#0f5132;background:#0f5132;color:#fff}.ortu-btn.primary:hover{background:#0a3d27}
.ortu-select,.ortu-input{border-color:#d7e0d5;background:#fffefa}.ortu-select:focus,.ortu-input:focus{outline:0;border-color:#7dab8d;box-shadow:0 0 0 3px rgba(15,81,50,.09)}
.ortu-tablet-nav,.ortu-bottom-nav{background:rgba(255,254,250,.98);border-color:var(--ot-line)}.ortu-tablet-nav a.active{background:#e8f3eb;color:#0f5132}.ortu-bottom-nav .active{color:#0f5132}
.ortu-sheet{background:#fffefa}.ortu-sheet-grid a>span{background:#e9f4ed;color:#0f5132}.ortu-sheet-logout{background:#fff5f2}
.ortu-login{background:radial-gradient(circle at 10% 0,#e2efe6,transparent 34%),radial-gradient(circle at 90% 100%,#f7edca,transparent 30%),#f5f7f2}.ortu-login-card{background:#fffefa;border-color:#dfe7dc;box-shadow:0 22px 64px rgba(20,62,40,.13);border-radius:23px}.ortu-login-logo{background:#e9f4ed;color:#0f5132;border:1px solid #d6e5d8}
@media(min-width:1100px){.ortu-sidebar{background:#fffefa;border-right-color:var(--ot-line)}.ortu-brand-mark{background:#e9f4ed;color:#0f5132}.ortu-sidebar nav a>span{background:#f1f5ef}.ortu-sidebar nav a.active{background:#e8f3eb;color:#0f5132}.ortu-sidebar nav a.active>span{background:#d7eadc}}
@media(max-width:620px){.ortu-content{padding-left:10px;padding-right:10px}.ortu-card{box-shadow:0 3px 12px rgba(31,54,42,.035)}.ortu-hero{border-radius:16px}}

/* V1.1.0 hotfix: utilitas Portal Orang Tua di paling bawah. */
.ortu-sidebar-utility{display:grid;gap:3px;margin-top:auto;padding-top:10px;border-top:1px solid var(--ot-line)}
.ortu-sidebar-utility a{display:grid;grid-template-columns:31px minmax(0,1fr);align-items:center;gap:7px;min-height:41px;padding:7px 9px;border-radius:10px;color:#516278;text-decoration:none}
.ortu-sidebar-utility a>span{width:29px;height:29px;display:grid;place-items:center;border-radius:8px;background:#f1f5ef}
.ortu-sidebar-utility b{font-size:11px}
.ortu-sidebar-utility a.active{background:#e8f3eb;color:#0f5132}
.ortu-sidebar-utility .ortu-logout{color:var(--ot-danger)}
.ortu-sheet-utility{position:sticky;bottom:0;z-index:3;display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;padding-top:8px;background:#fffefa}
.ortu-sheet-about,.ortu-sheet-logout{display:flex;align-items:center;justify-content:center;min-height:42px;margin-top:0!important;padding:10px;border-radius:11px;text-decoration:none;font-size:11.5px;font-weight:800}
.ortu-sheet-about{border:1px solid var(--ot-line);background:#f6faf7;color:#0f5132}
@media(min-width:1100px){.ortu-sidebar nav{flex:1;display:grid;align-content:start}.ortu-sidebar-utility{display:grid}}

/* MASTER30 Stage 17 — aksesibilitas/Arab/jaringan lemah untuk portal */
.skip-link{position:fixed;left:12px;top:8px;z-index:10050;transform:translateY(-160%);padding:10px 14px;border-radius:9px;background:#fff;color:#111;border:2px solid currentColor;font-weight:800;text-decoration:none;box-shadow:0 8px 26px rgba(15,23,42,.18)}.skip-link:focus{transform:translateY(0)}
:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid #1d4ed8!important;outline-offset:2px!important}
:where(.ortu-btn,button,input[type="submit"],input[type="button"]){min-height:44px}
textarea.contains-arabic,input.contains-arabic{font-family:"Noto Naskh Arabic","Amiri","Traditional Arabic","Segoe UI",Tahoma,Arial,sans-serif;line-height:1.75}.arabic-content,[dir="rtl"]{font-family:"Noto Naskh Arabic","Amiri","Traditional Arabic","Segoe UI",Tahoma,Arial,sans-serif;unicode-bidi:plaintext;text-align:right;line-height:1.75}.contains-arabic[dir="auto"]{unicode-bidi:plaintext}
.network-status{position:fixed;z-index:10020;left:50%;top:max(8px,env(safe-area-inset-top));transform:translateX(-50%);width:min(720px,calc(100% - 24px));padding:10px 13px;border-radius:11px;border:1px solid #b7791f;background:#fff8df;color:#5f4305;font-size:12px;font-weight:750;line-height:1.4;box-shadow:0 8px 28px rgba(15,23,42,.16)}.network-status.offline{border-color:#b42318;background:#fff1f0;color:#7a271a}.network-status[hidden]{display:none!important}
.local-draft-notice{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 12px;padding:10px 12px;border:1px solid #86b7a1;border-radius:11px;background:#f0faf4;color:#174b32;font-size:12px;font-weight:700}.local-draft-notice button{min-height:38px;padding:7px 10px;border:1px solid currentColor;border-radius:8px;background:#fff;color:inherit;font-weight:800;cursor:pointer;flex:0 0 auto}
@media(max-width:700px){.local-draft-notice{align-items:flex-start;flex-direction:column}.local-draft-notice button{width:100%;min-height:44px}}
@media(prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto!important}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* =========================================================
   GLOBAL UI REFRESH — STAGE 1 (2026-09-20)
   Fondasi modern Portal Orang Tua + basis Portal Siswa.
   ========================================================= */
:root{
  --ot-primary:#0f6b52;
  --ot-primary-dark:#0a513e;
  --ot-accent:#c59a2e;
  --ot-bg:#f5f7f5;
  --ot-card:#ffffff;
  --ot-line:#e2e8e4;
  --ot-text:#203129;
  --ot-muted:#6e7d75;
  --ot-good:#197a58;
  --ot-warn:#966713;
  --ot-danger:#b83b3b;
  --ot-radius:18px;
  --ot-shadow:0 10px 30px rgba(22,55,42,.065)
}
html,body.ortu-app{background:radial-gradient(circle at 12% 0,rgba(15,107,82,.035),transparent 26rem),linear-gradient(180deg,#f9fbf9,#f4f7f5)}
body.ortu-app{font-family:"Inter","Plus Jakarta Sans","Segoe UI Variable","Segoe UI",ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Arial,sans-serif;font-size:14px;line-height:1.55;letter-spacing:-.003em}
.ortu-topbar{min-height:62px;padding:10px 15px;background:rgba(255,255,255,.93);border-bottom-color:#dfe7e2;box-shadow:0 3px 16px rgba(22,55,42,.035);backdrop-filter:saturate(150%) blur(14px)}
.ortu-top-school img{width:38px;height:38px;border-radius:11px}
.ortu-top-school small{font-size:10.5px;color:#79877f}.ortu-top-school strong{font-size:14.5px;letter-spacing:-.012em}
.ortu-avatar{width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,#e5f3ec,#f4efd9);border:1px solid #d5e4db;color:var(--ot-primary)}
.ortu-content{width:min(100%,1200px);padding:18px 14px 94px}
.ortu-hero{padding:20px 19px;border-radius:20px;background:linear-gradient(135deg,#0b4b3b 0%,#14775b 58%,#2a8f72 100%);box-shadow:0 14px 32px rgba(15,91,70,.16)}
.ortu-hero small{font-size:10.5px;letter-spacing:.055em}.ortu-hero h1{margin-top:5px;font-size:23px;letter-spacing:-.02em}.ortu-hero p{font-size:12px}.ortu-hero-meta{margin-top:13px}.ortu-hero-meta span{padding:6px 9px;font-size:10.5px;background:rgba(255,255,255,.15)}
.ortu-dashboard-grid{gap:12px}.ortu-card{padding:16px;border-color:var(--ot-line);border-radius:var(--ot-radius);background:rgba(255,255,255,.97);box-shadow:0 4px 16px rgba(22,55,42,.04)}
.ortu-card.priority{border-top:3px solid var(--ot-primary)}.ortu-card.saving{border-top-color:var(--ot-accent)}
.ortu-card-kicker{font-size:9.5px;color:#7a877f;letter-spacing:.10em}.ortu-card h2{font-size:17px;font-weight:800;letter-spacing:-.018em;color:#24362d}.ortu-card h3{font-size:13.5px}.ortu-card-link{font-size:11px;color:var(--ot-primary)}
.ortu-status-icon{width:44px;height:44px;border-radius:13px;background:#e9f5ef;color:var(--ot-good)}.ortu-status-big strong{font-size:17px}.ortu-status-big small{font-size:11px}
.ortu-mini-stats{gap:7px}.ortu-mini-stats div,.ortu-transaction-today div,.ortu-attendance-times>div{background:#f7f9f7;border:1px solid #edf1ee;border-radius:11px}.ortu-mini-stats strong{font-size:15px}.ortu-mini-stats small{font-size:9.5px}
.ortu-money{font-size:26px;letter-spacing:-.03em}.ortu-list-item{padding:11px 0;border-top-color:#e9eeeb}.ortu-list-item strong{font-size:12.5px}.ortu-list-item small,.ortu-list-item>span{font-size:10.8px}
.ortu-empty{padding:15px 11px;background:#f7f9f7;border:1px dashed #dfe7e2;border-radius:12px;font-size:11.5px}
.ortu-page-head{margin:3px 0 14px}.ortu-page-head h1{font-size:21px;font-weight:800;letter-spacing:-.02em}.ortu-page-head p{font-size:11.8px}
.ortu-btn{min-height:42px;padding:9px 13px;border-color:#d7e1db;border-radius:11px;background:#fff;color:#35483f;font-size:11.5px;box-shadow:0 1px 2px rgba(22,55,42,.02)}.ortu-btn:hover{background:#f8faf8;border-color:#c7d9cf}.ortu-btn.primary{background:linear-gradient(180deg,#14775b,#0f674f);border-color:#0f674f;box-shadow:0 5px 14px rgba(15,103,79,.14)}
.ortu-select,.ortu-input{min-height:44px;border-color:#d5dfd9;border-radius:11px;background:#fff;font-size:13px}.ortu-select:focus,.ortu-input:focus{outline:0;border-color:#72ae99;box-shadow:0 0 0 3px rgba(15,107,82,.10)}
.ortu-form-group label{font-size:11.5px;color:#35473f}.ortu-form-group small{font-size:10.5px}
.ortu-table-wrap{border-color:#e1e8e3;border-radius:14px}.ortu-table th{background:#f6f8f6;color:#63736b;font-size:10.3px}.ortu-table td{font-size:11.7px}
.ortu-record{border-color:#e1e8e3;border-radius:14px;background:#fff;box-shadow:0 2px 10px rgba(22,55,42,.025)}
.ortu-section-tabs a{border-color:#dce5df;background:#fff;font-size:10.8px}.ortu-section-tabs a.active{border-color:#bcd8ca;background:#eaf5f0;color:var(--ot-primary)}
.ortu-bottom-nav{background:rgba(255,255,255,.97);border-top-color:#dce5df;box-shadow:0 -10px 28px rgba(22,55,42,.08);backdrop-filter:blur(12px)}.ortu-bottom-nav a,.ortu-bottom-nav button{border-radius:11px}.ortu-bottom-nav .active{color:var(--ot-primary);background:#edf6f2}.ortu-bottom-nav small{font-size:9.7px}
.ortu-sheet{background:#fff;border-radius:24px 24px 0 0;box-shadow:0 -20px 50px rgba(17,45,35,.16)}
.ortu-login{background:radial-gradient(circle at 10% 0,#e4f1e9,transparent 34%),radial-gradient(circle at 90% 100%,#f6edd2,transparent 30%),#f5f7f5}.ortu-login-card{background:#fff;border-color:#dfe7e2;border-radius:24px;box-shadow:0 24px 70px rgba(20,62,47,.13)}.ortu-login-logo{background:#e9f4ed;color:var(--ot-primary);border-color:#d5e4db;border-radius:16px}
@media(min-width:1100px){
  .ortu-sidebar{background:linear-gradient(180deg,#0c332c,#08241f);border-right:0;box-shadow:10px 0 30px rgba(7,31,27,.08)}
  .ortu-sidebar,.ortu-sidebar a,.ortu-sidebar b{color:#d8e7e1}
  .ortu-brand-mark{background:rgba(255,255,255,.10);color:#fff;border:1px solid rgba(255,255,255,.08)}
  .ortu-sidebar nav a{color:#c8d9d3;border-radius:11px}
  .ortu-sidebar nav a>span{background:rgba(255,255,255,.07);color:#cfe3db}
  .ortu-sidebar nav a.active{background:linear-gradient(90deg,rgba(52,211,153,.18),rgba(255,255,255,.055));color:#fff;box-shadow:inset 3px 0 0 #55d6a8}
  .ortu-sidebar nav a.active>span{background:rgba(85,214,168,.14);color:#7be0ba}
  .ortu-sidebar-utility{border-top-color:rgba(255,255,255,.08)}
  .ortu-sidebar-utility a{color:#c8d9d3}.ortu-sidebar-utility a>span{background:rgba(255,255,255,.07)}
  .ortu-sidebar-utility a.active{background:rgba(85,214,168,.14);color:#fff}
}
@media(max-width:700px){
  .ortu-content{padding:13px 10px 92px}.ortu-hero{padding:17px 15px;border-radius:17px}.ortu-hero h1{font-size:20px}.ortu-card{padding:14px;border-radius:15px}.ortu-card h2{font-size:16.5px}.ortu-bottom-nav{padding-top:6px}
}

/* =========================================================
   GLOBAL UI REFRESH — STAGE 4–5 (2026-09-20)
   Portal Orang Tua: halaman kerja, formulir, daftar, nilai.
   ========================================================= */
body.ortu-app{background:#f5f7f5;color:#26372f}
.ortu-content{max-width:1220px}
.ortu-page-head{
  align-items:flex-start;
  margin:4px 0 15px;
  padding:2px 1px 0;
}
.ortu-page-head h1{font-size:23px;line-height:1.2;letter-spacing:-.025em;color:#26382f}
.ortu-page-head p{font-size:12px;line-height:1.55;color:#728078;max-width:760px}
.ortu-card{
  border-color:#dde6e1;
  border-radius:17px;
  box-shadow:0 4px 16px rgba(22,55,42,.045);
}
.ortu-card-head{margin-bottom:11px}
.ortu-card-kicker{font-size:9.5px;color:#5e7b6e;letter-spacing:.09em}
.ortu-card h2{font-size:17px;letter-spacing:-.015em;color:#2a3c33}
.ortu-card h3{color:#31463b}
.ortu-card-link{color:#147357}
.ortu-list-item{padding:11px 0;border-top-color:#e8edea}
.ortu-list-item strong{font-size:12.7px;color:#2d4037}
.ortu-list-item small{font-size:10.8px;color:#77857d;line-height:1.45}
.ortu-list-item>span{font-size:10.8px;color:#6d7c74}
.ortu-empty{border:1px dashed #dce5e0;background:#f8faf8;color:#77857d}
.ortu-section-tabs{gap:7px;padding-bottom:2px}
.ortu-section-tabs a{min-height:38px;padding:9px 12px;border-color:#dce5e0;background:#fff;color:#53655c}
.ortu-section-tabs a.active{border-color:#acd2c0;background:#eaf6f0;color:#11664d}
.ortu-input,.ortu-select{min-height:46px;border-color:#d4dfd9;border-radius:11px;font-size:14px}
.ortu-input:focus,.ortu-select:focus{outline:0;border-color:#73ad98;box-shadow:0 0 0 3px rgba(15,107,82,.10)}
.ortu-btn{min-height:42px;border-color:#d6e0da;border-radius:11px;color:#395046;background:#fff;font-size:11.8px}
.ortu-btn.primary{background:linear-gradient(180deg,#14775b,#0f674f);border-color:#0f674f;box-shadow:0 5px 14px rgba(15,103,79,.14)}
.ortu-table-wrap{border-color:#dfe7e2;border-radius:14px;box-shadow:0 3px 14px rgba(22,55,42,.035)}
.ortu-table th{background:#f6f8f6;color:#627269;border-bottom-color:#dde6e1}
.ortu-table td{border-bottom-color:#e8edea}
.ortu-record{border-color:#dde6e1;border-radius:14px;box-shadow:0 2px 10px rgba(22,55,42,.025)}
.ortu-badge{font-size:9.8px}
@media(min-width:768px){
  .ortu-dashboard-grid{gap:13px}
  .ortu-card{padding:17px}
}
@media(max-width:700px){
  .ortu-page-head{display:grid;gap:9px;margin-bottom:12px}
  .ortu-page-head h1{font-size:20px}
  .ortu-page-head p{font-size:11.5px}
  .ortu-toolbar{display:grid;grid-template-columns:1fr;width:100%}
  .ortu-toolbar>*{width:100%}
  .ortu-input,.ortu-select{font-size:16px}
  .ortu-btn{min-height:46px}
  .ortu-card{padding:14px}
}

/* =========================================================
   GLOBAL UI REFRESH — STAGE 6–7 (2026-09-20)
   Mobile final + finishing Portal Orang Tua.
   ========================================================= */
body.ortu-app{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}
.ortu-shell,.ortu-content,.ortu-card,.ortu-toolbar,.ortu-table-wrap{min-width:0}
.ortu-topbar{padding-top:calc(10px + env(safe-area-inset-top))}
.ortu-sidebar{padding-bottom:calc(12px + env(safe-area-inset-bottom))}
.ortu-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain;scrollbar-gutter:stable}
.ortu-section-tabs{overflow-x:auto;scrollbar-width:thin;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain}
.ortu-section-tabs a{flex:0 0 auto;white-space:nowrap}
.ortu-card,.ortu-record{transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}
.ortu-card:hover{border-color:#d4e0d9}
.ortu-btn,.ortu-input,.ortu-select,a{touch-action:manipulation}
.ortu-btn:focus-visible,.ortu-input:focus-visible,.ortu-select:focus-visible,.ortu-section-tabs a:focus-visible,.ortu-bottom-nav a:focus-visible,.ortu-bottom-nav button:focus-visible{outline:3px solid rgba(15,107,82,.15);outline-offset:2px}
.ortu-empty{line-height:1.55}
.ortu-bottom-nav{padding-bottom:calc(6px + env(safe-area-inset-bottom))}
.ortu-sheet{padding-bottom:calc(18px + env(safe-area-inset-bottom))}
::selection{background:#cfe8dc;color:#16382c}
@media(max-width:700px){
  .ortu-topbar{min-height:62px;padding-left:11px;padding-right:11px}
  .ortu-top-school,.ortu-student-chip{min-width:0}
  .ortu-top-school strong,.ortu-top-school small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ortu-content{padding-left:10px;padding-right:10px;padding-bottom:calc(94px + env(safe-area-inset-bottom))}
  .ortu-dashboard-grid{grid-template-columns:minmax(0,1fr)}
  .ortu-card.wide,.ortu-card.span-2{grid-column:auto}
  .ortu-card{padding:14px}
  .ortu-page-head h1{font-size:20px}
  .ortu-toolbar{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
  .ortu-toolbar>*{width:100%!important;max-width:none!important;min-width:0!important}
  .ortu-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
  .ortu-actions>.ortu-btn{width:100%;min-height:46px}
  .ortu-form-grid{grid-template-columns:minmax(0,1fr)}
  .ortu-input,.ortu-select{min-height:46px;font-size:16px}
  .ortu-table th,.ortu-table td{padding:10px 9px}
  .ortu-bottom-nav a,.ortu-bottom-nav button{min-height:52px}
  .ortu-bottom-nav small{font-size:9.5px}
}
@media(max-width:420px){
  .ortu-card{padding:13px;border-radius:14px}
  .ortu-hero{padding:16px 14px}
  .ortu-hero h1{font-size:19px}
  .ortu-mini-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(prefers-reduced-motion:reduce){
  body.ortu-app *,body.ortu-app *::before,body.ortu-app *::after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}
}

/* =========================================================
   BRIGHT COLORFUL UI — STAGE 8 (2026-09-20)
   Portal Orang Tua: lebih terang, ramah, berwarna.
   ========================================================= */
:root{
  --ot-primary:#0e9f8a;
  --ot-primary-dark:#0b7f70;
  --ot-accent:#f59e0b;
  --ot-bg:#f7fbff;
  --ot-card:#ffffff;
  --ot-line:#e1ebef;
  --ot-text:#243943;
  --ot-muted:#6d7d86;
}
html,body.ortu-app{background:radial-gradient(circle at 8% 2%,rgba(56,189,248,.12),transparent 25rem),radial-gradient(circle at 92% 10%,rgba(251,191,36,.09),transparent 22rem),linear-gradient(180deg,#fbfdff,#f5fafc)}
body.ortu-app{font-family:"Segoe UI Variable Text","Segoe UI Variable","Aptos","Segoe UI",ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Arial,sans-serif;color:var(--ot-text)}
.ortu-topbar{background:rgba(255,255,255,.95);border-bottom-color:#ddebef;box-shadow:0 4px 18px rgba(54,99,124,.055)}
.ortu-avatar{background:linear-gradient(135deg,#e6fbf4,#e9f4ff,#fff3da);border-color:#d8e8e5;color:#0e8b79}
.ortu-hero{background:linear-gradient(125deg,#16b981 0%,#20a9d8 48%,#8b5cf6 100%);box-shadow:0 14px 34px rgba(40,123,160,.17)}
.ortu-card{border-color:#e0ebef;box-shadow:0 5px 18px rgba(54,91,116,.055)}
.ortu-card:nth-child(4n+1){border-top:3px solid #22b983}.ortu-card:nth-child(4n+2){border-top:3px solid #38a7e8}.ortu-card:nth-child(4n+3){border-top:3px solid #9b72e8}.ortu-card:nth-child(4n+4){border-top:3px solid #f3b43c}
.ortu-btn.primary{background:linear-gradient(135deg,#0e9f8a,#289be0);border-color:transparent;box-shadow:0 6px 15px rgba(14,159,138,.16)}
.ortu-section-tabs a.active{border-color:#b9e0dc;background:#eafaf7;color:#0b7f70}
.ortu-bottom-nav .active{color:#0b8d7b;background:#eafaf7}
@media(min-width:1100px){
  .ortu-sidebar{background:radial-gradient(circle at 8% 0,rgba(45,212,191,.16),transparent 14rem),linear-gradient(180deg,#f7fffc,#f1f9ff 60%,#fff9ef);border-right:1px solid #dcecf0;box-shadow:10px 0 28px rgba(59,99,123,.07)}
  .ortu-sidebar,.ortu-sidebar a,.ortu-sidebar b{color:#314f59}
  .ortu-brand-mark{background:#fff;color:#0d8877;border:1px solid #d8e9e9;box-shadow:0 5px 14px rgba(40,93,115,.07)}
  .ortu-sidebar nav a{color:#435f68;border:1px solid transparent}
  .ortu-sidebar nav a>span{background:#edf8fb;color:#3193a5}
  .ortu-sidebar nav a:hover{background:#fff;border-color:#deebef}
  .ortu-sidebar nav a.active{background:linear-gradient(90deg,#e9faf6,#f5fbff);color:#1c4a55;border-color:#cde9e5;box-shadow:inset 3px 0 0 #15a98d,0 4px 12px rgba(56,112,139,.05)}
  .ortu-sidebar nav a.active>span{background:#dff7f0;color:#0e8b77}
  .ortu-sidebar-utility{border-top-color:#d9e8eb}
  .ortu-sidebar-utility a{color:#49636b}.ortu-sidebar-utility a>span{background:#eef8fb;color:#388da0}
  .ortu-sidebar-utility a.active{background:#eafaf6;color:#0b7f70}
}
@media(min-width:1100px){
  .ortu-sidebar nav{min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#bad9df transparent;padding-right:2px}
  .ortu-sidebar nav a{min-height:37px;padding:6px 8px;gap:7px}
  .ortu-sidebar nav a>span{width:27px;height:27px}
  .ortu-sidebar nav b{font-size:10.8px}
  .ortu-sidebar-utility{flex:0 0 auto;margin-top:7px;padding-top:7px;background:linear-gradient(180deg,rgba(248,253,255,.88),rgba(255,255,255,.98))}
  .ortu-sidebar-utility a{min-height:36px!important;padding:6px 8px!important}
}
