/* Consistent logo and labelled navigation across the portal. */
.portal-visual{font-family:'Segoe UI',Arial,sans-serif;background:#f5f6f8}.portal-visual .layout,.portal-visual.visual-admin .layout,.portal-visual.visual-admin.compact-menu .layout{grid-template-columns:230px minmax(0,1fr)}.portal-visual aside,.portal-visual.visual-admin aside{padding:24px 14px;gap:18px;position:sticky;top:0;height:100vh;overflow-y:auto;background:#181d27;color:#d8deea}.portal-visual .brand,.portal-visual.visual-admin .brand,.portal-visual .login-brand{display:flex;align-items:center;gap:12px;text-decoration:none;letter-spacing:1px;padding:0 6px 14px;font-size:22px;color:inherit}.portal-visual .brand img,.portal-visual .login-brand img{width:48px;height:48px;object-fit:contain;background:white;border-radius:50%;padding:3px}.portal-visual .brand>span,.portal-visual.visual-admin .brand>span,.portal-visual .login-brand>span{display:block!important;font-size:20px;color:inherit;letter-spacing:1px}.portal-visual .brand small,.portal-visual .login-brand small{display:block;font-size:10px;letter-spacing:4px;color:#8f9bb0;margin-top:4px}.portal-visual .portal-logo{width:44px;height:44px;object-fit:contain;vertical-align:middle;margin-right:12px}.portal-visual .nav-caption{font-size:10px;letter-spacing:2px;color:#96a2b7;margin:0;padding-left:8px}.portal-visual aside nav,.portal-visual.visual-admin aside nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.portal-visual .ui-icon{width:24px;height:24px;flex-shrink:0;color:inherit;vertical-align:middle}.portal-visual aside .labelled-icon,.portal-visual.visual-admin aside nav .labelled-icon{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px;text-align:center;text-decoration:none;padding:13px 5px;min-height:82px;font-weight:400;border:1px solid #ffffff08;border-radius:12px;font-size:11px;line-height:1.35;color:#c7d0df;background:#222936}.portal-visual aside .labelled-icon .icon-caption,.portal-visual.visual-admin.compact-menu aside nav .icon-caption{display:block!important;max-width:100%;font-size:11px;line-height:1.4;white-space:normal;overflow-wrap:break-word}.portal-visual aside .labelled-icon:hover,.portal-visual.visual-admin aside nav .labelled-icon:hover{background:#303a4c;color:white;border-color:#606c82}.portal-visual aside .labelled-icon[aria-current=page],.portal-visual.visual-admin aside nav .labelled-icon[aria-current=page]{background:#d9233a;color:white;border-color:#d9233a;box-shadow:0 5px 15px #d9233a26}.portal-visual aside>a.labelled-icon{min-height:75px}.portal-visual .aside-bottom a.labelled-icon{background:none;border:0;min-height:65px}.portal-visual header{padding:18px 28px;background:#fff;border-bottom:1px solid #e1e5eb;gap:20px}.portal-visual header>a.labelled-icon{display:flex;align-items:center;gap:7px;text-decoration:none;color:#56657b;font-size:12px}.portal-visual .heading>button.labelled-icon,.portal-visual .heading>a.labelled-icon{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-width:108px;min-height:74px;padding:12px 16px;text-decoration:none;border-radius:13px;font-size:12px}.portal-visual .heading>a.labelled-icon{background:white;color:#bc2336;border:1px solid #e4e7ed}.portal-visual #refresh.labelled-icon,.portal-visual #logout.labelled-icon{display:inline-flex;align-items:center;gap:8px;font-size:13px}.portal-visual .content{max-width:1500px;padding:30px}.portal-visual h1{font-size:29px;line-height:1.25}.portal-visual .heading p,.portal-visual #subtitle{font-size:14px;color:#6d788c;line-height:1.6}.portal-visual .stat{border-radius:15px;position:relative}.portal-visual .stat>.ui-icon{display:block;color:#bd2c40;margin-bottom:12px}.portal-visual .training-panel,.portal-visual .session-card,.portal-visual .record,.portal-visual #record-form{border-radius:15px}.portal-visual .empty{border-radius:15px;padding:40px 24px;color:#778296;font-size:14px;background:#fff}.portal-visual .training-panel button,.portal-visual .form-actions button{min-height:44px}.portal-visual.visual-admin .menu-toggle{display:none}.portal-visual.visual-admin.compact-menu .nav-caption,.portal-visual.visual-admin.compact-menu .aside-bottom{display:block}.portal-visual .labelled-icon:focus-visible{outline:3px solid #91b8ff;outline-offset:3px}.portal-visual .login-panel{border-radius:20px;box-shadow:0 12px 45px #202a3610}.portal-visual .login-brand{justify-content:center;color:#222b3a}.portal-visual header>strong{display:flex;align-items:center;font-size:15px}.portal-visual .brand{color:white}.portal-visual .labelled-icon{transition:background .15s,border-color .15s}.portal-visual .operations-nav{padding-top:16px;border-top:1px solid #343c4b}@media(max-width:850px){.portal-visual .layout,.portal-visual.visual-admin .layout,.portal-visual.visual-admin.compact-menu .layout{grid-template-columns:190px minmax(0,1fr)}.portal-visual .content{padding:22px}.portal-visual .heading{flex-wrap:wrap}}@media(max-width:600px){.portal-visual .layout,.portal-visual.visual-admin .layout,.portal-visual.visual-admin.compact-menu .layout{grid-template-columns:1fr}.portal-visual aside,.portal-visual.visual-admin aside{height:auto;position:static}.portal-visual aside nav,.portal-visual.visual-admin aside nav{grid-template-columns:repeat(3,minmax(0,1fr))}.portal-visual header{padding:16px}.portal-visual .content{padding:18px}.portal-visual .brand>span{display:block!important}}
/* Parent workspace */
body:has(.parent-tabs) .toolbar label:first-child{max-width:500px}body:has(.parent-tabs) #profile{margin:20px 0}.parent-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:24px 0}.parent-tabs button{display:flex;flex-direction:column;align-items:center;gap:7px;padding:18px;background:white;color:#606d80;border:1px solid #dfe4ec;border-radius:15px}.parent-tabs button>span{font-size:28px;line-height:1}.parent-tabs small{font-size:13px}.parent-tabs button[aria-pressed=true]{background:#d9233a;color:white;border-color:#d9233a;box-shadow:0 5px 20px #d9233a20}.child-hero{display:flex;gap:30px;padding:30px;background:linear-gradient(115deg,#202733,#303a4c);color:white;border-radius:20px;align-items:flex-start}.child-photo{flex-shrink:0}.child-photo>img,.child-initial{width:170px;height:190px;object-fit:cover;border-radius:16px;border:3px solid #ffffff28}.child-initial{display:grid;place-items:center;font-size:64px;background:#465166}.child-info{flex:1;min-width:0}.child-info>small{letter-spacing:2px;color:#c5cddd;font-size:10px}.child-info h2{font-size:26px;margin:8px 0 12px}.child-info>p{color:#c6cedb;font-size:13px}.photo-editor{margin-top:20px}.photo-editor summary{cursor:pointer;font-size:14px;font-weight:600}.photo-editor form{margin-top:16px;background:#fff;color:#263140;padding:20px;border-radius:12px;display:grid;gap:12px}.photo-editor form>label:first-child{display:grid;gap:8px}.photo-editor small{color:#66758a}.photo-editor .consent{font-size:13px}.photo-editor button{justify-self:start}.photo-editor img{width:120px;height:135px;object-fit:cover;border-radius:10px}.child-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:16px}.child-metrics>div{display:flex;flex-direction:column;padding:22px;background:#fff;border:1px solid #e3e7ed;border-radius:15px;gap:7px}.child-metrics strong{font-size:25px;color:#283647}.child-metrics span{font-size:12px;color:#7b8799}body:has(.parent-tabs) #view{display:grid;gap:16px}body:has(.parent-tabs) #view .record{border-left:4px solid #d9233a;padding:24px}@media(max-width:600px){.child-hero{flex-direction:column;padding:22px}.child-metrics{grid-template-columns:1fr}.child-info{width:100%}.parent-tabs{gap:7px}}
body:has(.parent-tabs) #view .guide>ul{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0}body:has(.parent-tabs) #view .guide>ul li{padding:16px;border:1px solid #e0e6ee;background:#f5f7fa;border-radius:12px;font-size:14px}body:has(.parent-tabs) #view .guide{border:1px solid #e3e7ef}body:has(.parent-tabs) #view .guide h3{font-size:16px;margin-top:24px}body:has(.parent-tabs) #view .guide p{line-height:1.7}@media(max-width:600px){body:has(.parent-tabs) #view .guide>ul{grid-template-columns:1fr}}
.bulk-actions{display:flex;gap:12px;margin:20px 0;flex-wrap:wrap}.bulk-actions button{display:flex;flex-direction:column;gap:7px;align-items:center;padding:16px 24px;border-radius:12px;font-size:23px}.bulk-actions small{font-size:13px}.bulk-check{display:flex;align-items:center;gap:12px;padding:12px;border-bottom:1px solid #e5e9ef}.bulk-check input{width:20px;height:20px;flex-shrink:0}.bulk-check small{display:block;color:#708096}#bulk-form{margin:24px 0}#bulk-form fieldset{border:1px solid #dfe4ec;border-radius:12px}#bulk-choices{max-height:440px;overflow:auto;margin:20px 0}#bulk-preview:not(:empty){padding:20px;background:#edf5ef;border-radius:12px}#missing-bills{margin:16px 0}#bulk-form .form-actions{position:static}
@media print{body.printing-billing aside,body.printing-billing header,body.printing-billing .heading,body.printing-billing .bulk-actions,body.printing-billing #stats,body.printing-billing .toolbar,body.printing-billing #list,body.printing-billing #missing-bills,body.printing-billing #message{display:none!important}body.printing-billing .layout{display:block!important}body.printing-billing .content{padding:0}body.printing-billing #editor{display:block!important}}

/* Admin navigation: one clear home, then labelled task groups. */
.portal-visual.visual-admin aside.grouped-sidebar{gap:12px;scrollbar-width:thin;scrollbar-color:#566176 #181d27}
.portal-visual .grouped-sidebar .sidebar-home{grid-template-columns:1fr}
.portal-visual.visual-admin .grouped-sidebar .sidebar-home .labelled-icon{min-height:60px;flex-direction:row;gap:12px;font-size:13px}
.portal-visual .grouped-sidebar .sidebar-group{border:0;border-top:1px solid #364052;border-radius:0;background:transparent;padding:0;margin:0;flex-shrink:0}
.portal-visual .grouped-sidebar .sidebar-group>summary{display:flex;align-items:center;justify-content:space-between;list-style:none;cursor:pointer;padding:14px 3px;color:#f2f5fa;font-size:13px;font-weight:600}
.portal-visual .grouped-sidebar .sidebar-group>summary::-webkit-details-marker{display:none}
.portal-visual .grouped-sidebar .sidebar-group>summary::after{content:'+';font-size:22px;font-weight:400;color:#aebbd0}
.portal-visual .grouped-sidebar .sidebar-group[open]>summary::after{content:'−'}
.portal-visual .grouped-sidebar .sidebar-group summary small{display:block;font-size:10px;font-weight:400;color:#aebbd0;margin-top:5px;line-height:1.5}
.portal-visual.visual-admin .grouped-sidebar .sidebar-group nav .labelled-icon{min-height:74px;padding:10px 5px;gap:6px}
.portal-visual .grouped-sidebar .sidebar-group nav{padding-bottom:10px}
.portal-visual .grouped-sidebar :is(button,a,summary):focus-visible{outline:3px solid #ffbdc6;outline-offset:3px}
.portal-visual .grouped-sidebar .aside-bottom{margin-top:12px}
.portal-visual .grouped-sidebar .sidebar-group:has([aria-current=page])>summary{color:#ff9ca9}

/* Return links remain at the top, never buried beneath page tools. */
.portal-visual aside .return-navigation{grid-template-columns:1fr!important;border-bottom:1px solid #3c4657;padding-bottom:16px;margin-bottom:2px}
.portal-visual aside .return-navigation .labelled-icon{flex-direction:row;justify-content:flex-start;text-align:left;min-height:48px;padding:12px;gap:12px;background:#303b50;border-color:#596983}
.portal-visual aside .return-navigation .icon-caption{font-size:13px!important;font-weight:600}
.portal-visual [hidden]{display:none!important}


/* Dark shell with stronger Sindos red panels. */
@media screen {
.portal-visual aside,.portal-visual.visual-admin aside{background:#181b23;border-top:4px solid #db233b}
.portal-visual aside .labelled-icon,.portal-visual.visual-admin aside nav .labelled-icon{border-color:#60303d;background:#28212b;color:#f0dce2}
.portal-visual aside .labelled-icon:hover,.portal-visual.visual-admin aside nav .labelled-icon:hover{background:#692638;border-color:#d74b61;color:white}
.portal-visual aside .labelled-icon[aria-current=page],.portal-visual.visual-admin aside nav .labelled-icon[aria-current=page]{background:#c7213a;border-color:#e5485e;color:white}
.portal-visual .op-banner,.portal-visual.visual-admin .op-banner,.portal-visual .child-hero{background:linear-gradient(115deg,#25232c,#672133);border-left:5px solid #e62b44;color:white}
.portal-visual header{border-top:3px solid #ca223a}
.portal-visual .stat{border-top:3px solid #b72b40}
.portal-visual aside .return-navigation .labelled-icon{background:#4a2734;border-color:#a83b52;color:white}
}

.mobile-menu-toggle,.mobile-menu-shade,.mobile-menu-close{display:none}
@media(max-width:1024px), (pointer:coarse) and (max-width:1280px){
 body.has-mobile-drawer{padding-top:56px!important}
 .has-mobile-drawer .layout{display:block!important;grid-template-columns:1fr!important}
 .has-mobile-drawer main,.shared-admin-layout.has-mobile-drawer main{margin-left:0!important;width:100%!important;min-width:0}
 .has-mobile-drawer .mobile-drawer{display:block!important;position:fixed!important;inset:0 auto 0 0!important;width:min(310px,85vw)!important;height:100dvh!important;max-height:100dvh!important;overflow-y:auto!important;z-index:1002!important;transform:translateX(-105%);visibility:hidden;transition:transform .2s ease,visibility .2s;background:#191f29;padding:14px!important;box-sizing:border-box}
 body.mobile-nav-open .mobile-drawer{transform:translateX(0);visibility:visible}
 .mobile-menu-toggle{display:block;position:fixed;top:0;left:0;right:0;width:100%;height:56px;border:0;border-radius:0;background:#191f29;color:white;text-align:left;padding:12px 18px;z-index:1000}
 .mobile-menu-close{display:block;width:100%;margin-bottom:12px;background:#bd193c;color:white}
 .mobile-nav-open .mobile-menu-shade{display:block;position:fixed;inset:0;width:100vw;height:100dvh;border:0;border-radius:0;background:rgba(0,0,0,.45);z-index:1001}
 body.mobile-nav-open{overflow:hidden}
 .has-mobile-drawer .content{min-width:0;max-width:100%;box-sizing:border-box}
}
@media(prefers-reduced-motion:reduce){.mobile-drawer{transition:none!important}}

.mobile-portal-bar{display:none}
@media(max-width:1024px), (pointer:coarse) and (max-width:1280px){
 .mobile-portal-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;position:fixed;inset:0 0 auto;height:56px;box-sizing:border-box;padding:6px 12px;background:#191f29;border-bottom:2px solid #c61c40;z-index:1000;color:white}
 .mobile-portal-bar .mobile-menu-toggle{position:static;width:auto;height:40px;padding:8px;font-size:14px;flex-shrink:0}
 .mobile-portal-brand{display:flex;align-items:center;gap:7px;font-size:14px}
 .mobile-portal-brand img{width:34px;height:34px;object-fit:contain;border-radius:50%;background:white}
 .mobile-portal-logout{background:#bd193c;color:white;border:1px solid #db4563;padding:8px 12px;border-radius:6px;font-size:13px;min-height:40px}
}

.notification-bell{position:fixed;right:18px;bottom:20px;z-index:1000;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#bf193e;color:white;box-shadow:0 3px 12px #0003;border:2px solid white;padding:8px}
.notification-badge{position:absolute;right:-5px;top:-6px;min-width:20px;padding:2px 4px;background:#fff;color:#aa1532;border:1px solid #bb1938;border-radius:12px;font-size:11px;font-weight:bold}
.notification-toast{position:fixed;right:18px;bottom:82px;z-index:1000;background:#fff;border:1px solid #c51a40;border-left:5px solid #c51a40;box-shadow:0 5px 20px #0003;padding:14px;max-width:min(360px,calc(100vw - 36px));display:flex;gap:12px;align-items:center;box-sizing:border-box}
.notification-toast[hidden],.notification-badge[hidden]{display:none!important}.notification-toast a{color:#252b37}.notification-toast button{padding:5px 10px}.mobile-nav-open .notification-bell,.mobile-nav-open .notification-toast{display:none}
#portal-notifications{scroll-margin-top:70px}
@media print{.notification-bell,.notification-toast{display:none!important}}

.notification-bell{position:relative;right:auto;bottom:auto;margin-left:auto;flex-shrink:0;width:40px;height:40px;z-index:1000}
.notification-dropdown{position:fixed!important;top:66px;right:12px;bottom:auto;width:min(440px,calc(100vw - 24px));max-height:calc(100dvh - 90px);overflow:auto;z-index:1010;background:white;box-shadow:0 8px 28px #0003;border:1px solid #d6dce5;box-sizing:border-box;margin:0!important;padding:16px!important}
.notification-dropdown:not([open]){display:none!important}
.notification-toast{top:76px;bottom:auto}
.mobile-portal-bar .notification-bell{width:34px;height:34px;min-width:34px;margin-left:auto;padding:5px;border:1px solid #fff5}
.mobile-portal-bar .mobile-portal-brand{margin-right:auto}
.mobile-nav-open .notification-dropdown{display:none!important}
@media(max-width:380px){.mobile-portal-brand strong{display:none}.mobile-portal-bar{gap:5px}}

/* Keep portal controls available while scrolling. */
.shared-admin-layout main>header,.shared-admin-layout>header,.portal-visual main>header,.portal-visual>header{position:sticky;top:0;z-index:900;background:#fff}
@media(max-width:1024px),(pointer:coarse) and (max-width:1280px){.has-mobile-drawer main>header,.has-mobile-drawer>header{top:56px}}
@media print{.shared-admin-layout main>header,.shared-admin-layout>header,.portal-visual main>header,.portal-visual>header{position:static}}
