
:root{--forest:#244c3c;--forest-2:#38654f;--mint:#e8eee3;--cream:#f8f5eb;--gold:#bea56c;--line:#e5e7dc;--muted:#67756a}
.brand-logo{width:56px;height:56px;object-fit:contain;border-radius:50%;background:#fff}.mobile-bottom,.mobile-backdrop{display:none}.app-version{color:var(--muted);font-size:12px;text-align:center;margin:28px 0 0}.lesson-body{white-space:pre-wrap;line-height:1.85;font-size:16px;overflow-wrap:anywhere}.pin-input{font-size:30px;letter-spacing:16px;text-align:center}.login-card .brand-logo{width:90px;height:90px}.login-card{background:#fffcf5;border-radius:24px}.login-panel{background:var(--cream)}
@media(max-width:800px){
html{font-family:system-ui,sans-serif}.main{margin-left:0!important;padding:22px 16px calc(100px + env(safe-area-inset-bottom))!important;width:100%;overflow:hidden}.topbar h1{font-size:28px;line-height:1.2}.topbar{margin-bottom:22px}.topbar p{font-size:13px;max-width:290px}.today{display:none}.menu-button{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border:1px solid var(--line);background:#fff;border-radius:12px;margin-bottom:12px}.sidebar{transform:translateX(-100%);transition:transform .2s;width:min(310px,85vw);z-index:40;overflow:auto;padding-bottom:30px}.nav-open .sidebar{transform:translateX(0)}.nav-open .mobile-backdrop{display:block;position:fixed;inset:0;background:#173d3370;z-index:35}.sidebar nav{margin-top:24px}.sidebar-foot{margin-top:24px;flex-shrink:0}.mobile-bottom{display:flex;position:fixed;bottom:0;left:0;right:0;background:#fffcf5f5;border-top:1px solid var(--line);padding:9px 8px calc(9px + env(safe-area-inset-bottom));z-index:30;justify-content:space-around;backdrop-filter:blur(12px)}.mobile-bottom a,.mobile-bottom button{display:flex;flex-direction:column;align-items:center;gap:4px;font:500 11px system-ui;color:var(--muted);background:none;border:0;text-decoration:none;min-width:64px;min-height:48px;border-radius:12px;padding:5px}.mobile-bottom span{font-size:23px;line-height:24px}.mobile-bottom .active{color:var(--forest);background:var(--mint)}.stat-grid,.stat-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px}.stat-card{padding:14px;gap:8px;min-width:0}.stat-icon{width:30px;height:30px;flex-shrink:0}.two-col,.three-col,.lesson-layout,.lesson-admin-layout,.form-grid.two{grid-template-columns:1fr!important}.card{border-radius:20px;min-width:0}.toolbar{flex-wrap:wrap;gap:10px}.button,input,select{min-height:46px}input,textarea,select{font-size:16px!important;max-width:100%}.table-wrap{overflow:auto;max-width:100%;-webkit-overflow-scrolling:touch}.login-story{display:none}.login-page{display:block}.login-panel{min-height:100dvh;padding:28px 18px;display:grid;place-items:center}.login-card{width:100%;max-width:420px;padding:28px 22px}.login-card h1{font-size:30px}.lesson-notes{position:static}.form-grid .full{grid-column:auto}.form-actions{flex-wrap:wrap}.login-help{line-height:1.8}
}
@media print{.mobile-bottom,.app-version,.mobile-backdrop{display:none!important}.main{padding:0!important}}
@media(max-width:800px){.reports-grid{grid-template-columns:1fr!important}.reports-grid .span-2{grid-column:auto}.attendance-report-kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.attendance-chart,.bar-chart{overflow-x:auto}.member-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important}.topbar>div:first-child{min-width:0}.sidebar-foot{flex-wrap:wrap}.user-summary{min-width:0}}
/* 2.0.2: load after desktop CSS on every portal page. */
.mobile-bottom svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.mobile-backdrop{border:0}.mobile-bottom a:focus-visible,.mobile-bottom button:focus-visible{outline:2px solid var(--forest)}
@media(max-width:800px){
html,body{font-family:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:#f8f5eb;max-width:100%}.main{padding:18px 16px calc(92px + env(safe-area-inset-bottom))!important;overflow:visible;max-width:100%;width:auto}.topbar{margin-bottom:18px;min-height:60px}.topbar h1{font-family:inherit!important;font-size:24px!important;font-weight:750;line-height:1.2;margin:0 0 6px}.topbar p{font-size:13px;line-height:1.5;max-width:none}.menu-button{float:right;margin:0 0 8px 12px;min-width:42px;min-height:42px}.stat-grid,.stat-grid.member-stats,.stat-grid.attendance-stats,.attendance-report-kpis{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;margin-bottom:16px}.member-stats{grid-template-columns:repeat(3,minmax(0,1fr))!important}.member-stats .stat-card{display:block;padding:12px 10px!important}.member-stats .stat-icon{display:none}.member-stats small{font-size:9px!important;letter-spacing:.03em!important;min-height:24px}.stat-card{padding:14px!important;box-shadow:none;border-radius:16px;min-width:0;gap:8px}.stat-card strong{font-family:inherit!important;font-size:26px!important}.stat-card em{font-size:11px;line-height:1.4}.stat-card small{font-size:10px}.stat-icon{width:30px;height:30px}.card{padding:18px;border-radius:18px;box-shadow:0 4px 18px #244c3c05}.card h2,.course-head h2,.profile-head h2{font-family:inherit!important;font-size:19px!important;line-height:1.35}.card p{font-size:14px;line-height:1.6}.dashboard-grid,.profile-grid,.reports-grid,.group-grid,.lesson-layout,.lesson-admin-layout{grid-template-columns:minmax(0,1fr)!important;gap:14px}.next-lesson-card{background:#e8eee3;border-color:#dce5d4}.next-lesson-actions .button{width:100%;justify-content:center}.button{border-radius:12px;min-height:46px}.toolbar,.filters{gap:10px}.table-wrap{border-radius:14px;max-width:100%;overflow-x:auto}.table-wrap table{font-size:13px}.table-wrap th,.table-wrap td{padding:12px 10px}.lesson-video iframe,iframe[src*='youtube'],iframe[src*='youtu.be']{width:100%;max-width:100%;aspect-ratio:16/9;height:auto}.lesson-body{font-size:16px;line-height:1.7}.lesson-navigation{gap:12px}.course-head{gap:12px}.login-card h1{font-family:inherit!important;font-size:27px!important}.brand-logo{background:var(--forest)}.mobile-bottom{box-shadow:0 -4px 24px #244c3c08}.sidebar{z-index:60}.nav-open .mobile-backdrop{z-index:55}.app-version{font-size:11px;margin:20px 0 0}
}
@media(max-width:520px){.stat-grid.member-stats{grid-template-columns:repeat(3,minmax(0,1fr))!important}.member-stats .stat-card strong{font-size:25px!important}.training-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
/* 2.0.4 actual mobile screen structure */
.ux-app-header,.mobile-home{display:none}.ux-version{font:11px system-ui;color:#6b7970;text-align:center;margin:24px 0}.ux-member svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.ux-member .app-version{display:none}
@media(max-width:800px){
.ux-member{font-family:system-ui,-apple-system,'Segoe UI',sans-serif!important;background:#f7f5ed;color:#233b30}.ux-member .topbar,.ux-member.ux-home-page .desktop-member-home{display:none!important}.ux-app-header{display:block;background:linear-gradient(135deg,#173d33,#315c47);color:#fff;padding:22px 22px 26px}.ux-brand-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.ux-brand{display:flex;gap:12px;align-items:center;text-decoration:none;color:inherit;min-width:0}.ux-brand img{width:46px;height:46px;border-radius:14px;object-fit:cover}.ux-brand small{display:block;font-size:9px;letter-spacing:.12em;color:#c7d5c9;line-height:1.5;max-width:220px}.ux-brand strong{font-size:21px;display:block;line-height:1.5}.ux-avatar{width:42px;height:42px;border:1px solid #ffffff38;background:#ffffff10;border-radius:50%;display:grid;place-items:center;text-decoration:none;color:#f9f6eb;font-weight:600;flex-shrink:0}.ux-welcome{margin-top:28px}.ux-welcome h1{font:650 25px/1.3 system-ui;margin:10px 0;color:#fff;letter-spacing:-.035em}.ux-welcome p{font-size:15px;color:#cedacf;margin:0;line-height:1.6}.ux-welcome p:last-child{font-size:14px;color:#bacebd}.ux-member .main{padding:20px 18px calc(88px + env(safe-area-inset-bottom))!important;margin:0;max-width:none;width:auto}.mobile-home{display:block}.ux-learning{background:#fffef9;border:1px solid #dce2d5;border-radius:24px;padding:20px;margin:0 0 24px}.ux-learning-top{display:flex;gap:14px;align-items:center;justify-content:space-between}.ux-kicker{font-size:11px;letter-spacing:.07em;font-weight:500;color:#788478}.ux-learning h2{font:700 23px/1.3 system-ui;margin:10px 0 4px;color:#244c3c}.ux-learning p{color:#728073;font-size:15px;line-height:1.5;margin:0}.ux-percent{width:62px;height:62px;flex-shrink:0;background:#e8ede2;border-radius:18px;display:grid;place-items:center;color:#315943;font-size:21px}.ux-progress{height:9px;background:#e5e7df;border-radius:12px;overflow:hidden;margin-top:22px}.ux-progress span{height:100%;display:block;background:#789273;border-radius:12px}.ux-progress-meta{display:flex;justify-content:space-between;font-size:12px;color:#798578;margin-top:10px;gap:10px}.ux-learning p.ux-next{font-size:12px;margin:16px 0 0;color:#526a57;line-height:1.5}.ux-continue{display:flex;align-items:center;justify-content:center;gap:14px;min-height:52px;border-radius:14px;background:#244c3c;color:#fff!important;font-size:16px;font-weight:600;text-decoration:none;margin-top:20px}.ux-section-title{margin:0 0 16px}.ux-section-title h2{font:650 22px/1.3 system-ui;margin:5px 0 0;color:#244c3c;letter-spacing:-.03em}.ux-explore{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ux-tile{display:flex;flex-direction:column;align-items:flex-start;min-height:154px;padding:18px;background:#fffef9;border:1px solid #dce2d5;border-radius:22px;color:#244c3c;text-decoration:none;gap:7px}.ux-tile-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:#e8ede2;margin-bottom:8px;color:#4c7054}.ux-tile strong{font-size:16px;font-weight:650}.ux-tile small{font-size:12px;line-height:1.5;color:#7c877b}.ux-tile:active,.ux-continue:active{transform:scale(.98)}.ux-milestones{margin-top:28px}.ux-milestone{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid #e1e5da}.ux-milestone>span{color:#5d7b5b}.ux-milestone strong{font-size:13px;display:block;line-height:1.5}.ux-milestone small{display:block;font-size:11px;color:#7b887a;margin-top:3px}.ux-empty{font-size:13px;line-height:1.6;color:#71816f}.ux-member .mobile-bottom{background:#fffef9;padding:8px 8px calc(8px + env(safe-area-inset-bottom));box-shadow:0 -3px 15px #244c3c08;border-top:1px solid #e3e7db;z-index:50}.ux-member .mobile-bottom a,.ux-member .mobile-bottom button{font-size:10px;gap:5px;min-width:64px;min-height:48px;padding:7px 10px}.ux-member .mobile-bottom .active{background:#e8ede2;color:#244c3c}.ux-member .sidebar{inset:auto 0 0;width:100%;max-height:80dvh;transform:translateY(105%);border-radius:26px 26px 0 0;background:#fffef9;color:#244c3c;padding:24px 20px calc(24px + env(safe-area-inset-bottom));box-shadow:0 -10px 60px #173d3330;z-index:70;overflow-y:auto}.ux-member.nav-open .sidebar{transform:translateY(0)}.ux-member .sidebar .brand{color:#244c3c;padding:0}.ux-member .sidebar .brand strong{font:700 21px system-ui}.ux-member .brand-mark{color:#244c3c;background:#e8ede2;border-color:#d7e0d2;font:600 14px system-ui}.ux-member .sidebar nav{margin-top:20px;gap:4px}.ux-member .sidebar nav a{color:#405d48;font-size:15px;min-height:48px}.ux-member .sidebar nav a.active{background:#e8ede2;box-shadow:none;color:#244c3c}.ux-member .sidebar-foot{border-color:#e0e5d9;margin-top:20px;display:flex;justify-content:space-between}.ux-member .sidebar-foot .logout-link{color:#244c3c;background:#e8ede2;padding:12px;border-radius:12px}.ux-member .sidebar-foot strong{font-size:12px}.ux-member.nav-open .mobile-backdrop{z-index:65;background:#173d3380}.ux-sheet-close{position:absolute;right:20px;top:22px;border:0;border-radius:50%;width:36px;height:36px;background:#e8ede2;color:#244c3c;font-size:24px}.ux-member .training-overview{background:#e8ede2;border-radius:22px;padding:20px;margin-bottom:18px}.ux-member .training-overview h2{font-size:20px!important}.ux-member .course-card{border-radius:22px;padding:20px;background:#fffef9}.ux-member .module-row{padding:15px 0;gap:12px}.ux-member .module-row strong{font:600 14px/1.5 system-ui}.ux-member .module-row small{font-size:11px}.ux-member .lesson-number{border-radius:12px;background:#e8ede2}.ux-member .module-row.completed .lesson-number{background:#244c3c;color:#fff}.ux-member .course-head h2{font:650 20px/1.3 system-ui!important}.ux-member .card{background:#fffef9;border-color:#dce2d5}.ux-member .button.primary{background:#244c3c}.ux-member .ux-version{margin:28px 0 0}
}
@media(min-width:801px){.ux-sheet-close{display:none}}
@media(prefers-reduced-motion:reduce){.ux-member .sidebar{transition:none}.ux-tile:active,.ux-continue:active{transform:none}}
@media print{.ux-app-header,.mobile-home,.ux-sheet-close,.ux-version{display:none!important}.desktop-member-home{display:block!important}}
@media(max-width:800px){.ux-member .sidebar{visibility:hidden;pointer-events:none}.ux-member.nav-open .sidebar{visibility:visible;pointer-events:auto}.ux-member.nav-open{overflow:hidden}}

:root{--ibd-release:204}.ibd-update-status{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid #dde4d6;border-radius:12px;background:#eef1e7;color:#4b6650;font:12px/1.4 system-ui;margin-bottom:16px}.ibd-update-status button{border:0;border-radius:8px;padding:7px 10px;background:#244c3c;color:white;font:600 11px system-ui;min-height:32px}.ibd-update-status[data-state=latest]{background:#e8f1e4;color:#315c3d}.ibd-update-status[data-state=warning],.ibd-update-status[data-state=pending]{background:#faf0d9;color:#725b26}.ibd-update-status[data-state=offline]{background:#eee;color:#667066}@media print{.ibd-update-status{display:none}}
