/* TSTC v1.2.1 mobile-only interface. Every rule is scoped to device-mobile so desktop is untouched. */
html.device-mobile{overflow-x:hidden;background:#eef5f1}
html.device-mobile body{overflow-x:hidden;min-width:0;padding-bottom:76px;background:linear-gradient(180deg,#f7fbf9,#edf5f1);font-size:14px}
html.device-mobile body.drawer-open{overflow:hidden}
html.device-mobile *{min-width:0}
html.device-mobile img,html.device-mobile video,html.device-mobile canvas,html.device-mobile iframe{max-width:100%}
html.device-mobile .btn,html.device-mobile button,html.device-mobile .form-control{min-height:44px}
html.device-mobile .btn{padding:10px 13px;border-radius:12px;white-space:normal;text-align:center}
html.device-mobile .form-control{font-size:16px;padding:10px 12px;border-radius:12px}

/* Public and instructor branded mobile headers. */
html.device-mobile .site-header,html.device-mobile .instructor-top{position:sticky;top:0;z-index:100;height:auto;min-height:68px;background:rgba(255,255,255,.98);border-bottom:1px solid #cfe0d7;box-shadow:0 8px 22px rgba(5,64,39,.08);backdrop-filter:blur(12px)}
html.device-mobile .site-header .header-signal{display:none}
html.device-mobile .nav-wrap,html.device-mobile .instructor-top{padding:8px 11px;display:flex;align-items:center;gap:9px;justify-content:space-between}
html.device-mobile .brand,html.device-mobile .instructor-top .admin-brand{display:flex;align-items:center;gap:8px;min-width:0;flex:1;overflow:hidden}
html.device-mobile .brand img,html.device-mobile .instructor-top .admin-brand img{width:48px;height:48px;flex:0 0 48px;object-fit:contain}
html.device-mobile .brand span,html.device-mobile .instructor-top .admin-brand span{display:flex;flex-direction:column;min-width:0;line-height:1.35}
html.device-mobile .brand b,html.device-mobile .instructor-top .admin-brand b{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#064d34}
html.device-mobile .brand small,html.device-mobile .instructor-top .admin-brand small{display:block;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#61736a}
html.device-mobile .mobile-toggle{display:grid!important;width:44px;height:44px;place-content:center;gap:5px;padding:9px;border:1px solid #bdd7ca;border-radius:13px;background:#f4faf7;flex:0 0 44px}
html.device-mobile .mobile-toggle span{display:block;width:22px;height:2px;background:#075d3d;border-radius:99px}
html.device-mobile .main-nav,html.device-mobile .instructor-top nav{display:flex!important;position:fixed!important;z-index:121;top:0;bottom:0;inset-inline-end:0;inset-inline-start:auto;width:min(88vw,350px);padding:14px!important;background:#fff;box-shadow:-20px 0 55px rgba(0,0,0,.22);transform:translateX(calc(110% * var(--drawer-direction,1)));transition:transform .24s ease;overflow-y:auto;flex-direction:column!important;align-items:stretch!important;gap:7px!important}
html[dir="ltr"].device-mobile .main-nav,html[dir="ltr"].device-mobile .instructor-top nav{--drawer-direction:1;inset-inline-start:0;inset-inline-end:auto}
html[dir="rtl"].device-mobile .main-nav,html[dir="rtl"].device-mobile .instructor-top nav{--drawer-direction:-1}
html.device-mobile .main-nav.open,html.device-mobile .instructor-top nav.open{transform:translateX(0)}
html.device-mobile .main-nav>a,html.device-mobile .instructor-top nav>a,html.device-mobile .instructor-top nav form .btn{display:flex!important;width:100%;min-height:48px;align-items:center;gap:10px;padding:11px 13px!important;border:1px solid #d7e6de!important;border-radius:13px!important;background:#f8fbf9!important;color:#173e2b!important;font-size:13px!important;font-weight:900;white-space:normal!important}
html.device-mobile .main-nav>a.active,html.device-mobile .instructor-top nav>a.active{background:#e4f6ec!important;border-color:#80bd9c!important;color:#065c3b!important}
html.device-mobile .main-nav .portal-control,html.device-mobile .main-nav .admin-link{background:linear-gradient(135deg,#075d3d,#0b8b58)!important;color:#fff!important;border-color:#075d3d!important}
html.device-mobile .main-nav .nav-email{direction:ltr;justify-content:flex-start;overflow-wrap:anywhere}
html.device-mobile .main-nav .nav-icon{width:25px;text-align:center;font-size:17px}
html.device-mobile .mobile-nav-head{display:flex!important;align-items:center;gap:9px;padding:2px 1px 13px;margin-bottom:4px;border-bottom:1px solid #dce9e2}
html.device-mobile .mobile-nav-head img{width:48px;height:48px;flex:0 0 48px}
html.device-mobile .mobile-nav-head b{font-size:11px;line-height:1.55;flex:1;color:#064d34}
html.device-mobile .mobile-nav-head button,html.device-mobile [data-menu-close]{width:42px;height:42px;min-height:42px;border:0;border-radius:12px;background:#edf5f1;color:#075d3d;font-size:25px}
html.device-mobile .site-overlay:not([hidden]),html.device-mobile .admin-overlay:not([hidden]){display:block;position:fixed;inset:0;z-index:115;background:rgba(9,31,21,.48);backdrop-filter:blur(2px)}

/* Mobile public hero: deliberately different and compact. */
html.device-mobile .hero,html.device-mobile .hero-final{margin:10px 10px 0!important;min-height:0!important;padding:27px 18px 116px!important;border-radius:23px!important;display:block!important;overflow:hidden!important;background:linear-gradient(150deg,#fff 0%,#eefaf4 58%,#d7f2e4 100%)!important;box-shadow:0 14px 38px rgba(5,64,39,.12)!important}
html.device-mobile .hero:before,html.device-mobile .hero:after{pointer-events:none}
html.device-mobile .hero-copy{max-width:none!important;width:100%!important;position:relative;z-index:4}
html.device-mobile .hero .eyebrow{font-size:10px;padding:6px 10px}
html.device-mobile .hero h1{font-size:29px!important;line-height:1.45!important;margin:14px 0 8px!important;letter-spacing:-.02em!important;text-wrap:balance}
html.device-mobile .hero p{font-size:13px!important;line-height:1.9!important;margin:0!important;max-width:none!important}
html.device-mobile .hero-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;margin-top:17px!important}
html.device-mobile .hero-actions .btn{min-width:0!important;font-size:12px}
html.device-mobile .hero-trust{display:grid!important;grid-template-columns:1fr 1fr!important;gap:6px!important;margin-top:13px!important}
html.device-mobile .hero-trust>span{font-size:9px!important;padding:7px 8px!important;justify-content:center;white-space:normal}
html.device-mobile .hero-concept-mark{position:absolute!important;inset:auto 14px 16px 14px!important;display:flex!important;align-items:center!important;gap:9px!important;padding:9px 12px!important;border-radius:15px!important;background:rgba(255,255,255,.9)!important;border:1px solid rgba(8,122,75,.13)!important;box-shadow:0 8px 20px rgba(5,64,39,.08)!important;z-index:4}
html.device-mobile .hero-concept-mark .concept-signal{width:27px;height:48px;padding:5px;gap:3px;border-radius:10px}
html.device-mobile .hero-concept-mark b{font-size:12px}html.device-mobile .hero-concept-mark small{font-size:8px}

/* Mobile filters become a controlled bottom sheet. */
html.device-mobile .mobile-filter-bar{display:flex!important;position:sticky;top:72px;z-index:85;margin:10px 10px 4px;gap:7px;align-items:center}
html.device-mobile .mobile-filter-button{flex:1;justify-content:space-between;box-shadow:0 10px 25px rgba(5,64,39,.16)}
html.device-mobile .filter-panel,html.device-mobile .filter-panel.filter-final{display:block!important;position:fixed!important;z-index:120!important;inset:auto 0 0!important;width:100%!important;max-width:none!important;max-height:88dvh!important;margin:0!important;padding:15px 14px calc(18px + env(safe-area-inset-bottom))!important;border-radius:24px 24px 0 0!important;overflow-y:auto!important;transform:translateY(105%)!important;transition:transform .24s ease!important;background:#fff!important;box-shadow:0 -18px 54px rgba(0,0,0,.23)!important}
html.device-mobile .filter-panel.open{transform:translateY(0)!important}
html.device-mobile .filter-panel-head{display:flex!important;position:sticky;top:-15px;z-index:6;margin:-15px -14px 12px;padding:14px;background:rgba(255,255,255,.98);border-bottom:1px solid #dce9e2;align-items:center;justify-content:space-between}
html.device-mobile .filter-panel-head>div{display:flex;flex-direction:column}html.device-mobile .filter-panel-head small{font-size:9px;color:#66766e}
html.device-mobile .filter-close{width:42px;height:42px;min-height:42px;border:0;border-radius:12px;font-size:25px;background:#edf5f1;color:#075d3d}
html.device-mobile .filter-title-row{display:none!important}
html.device-mobile .filter-form-final{display:block!important}
html.device-mobile .filter-quick-grid,html.device-mobile .filter-advanced-grid{display:grid!important;grid-template-columns:1fr!important;gap:10px!important}
html.device-mobile .filter-field,html.device-mobile .filter-final .filter-field{padding:10px!important;border-radius:14px!important;background:#f7fbf9!important}
html.device-mobile .filter-search-main{grid-column:auto!important}
html.device-mobile .filter-quick-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important}
html.device-mobile .filter-options-row{display:flex!important;flex-direction:column!important;gap:9px!important;margin-top:10px!important}
html.device-mobile .filter-checks{display:grid!important;grid-template-columns:1fr 1fr!important;gap:7px!important;width:100%}
html.device-mobile .filter-checks .check-line{margin:0!important;padding:10px!important;background:#f3f8f5;border:1px solid #d4e4dc;border-radius:12px;font-size:11px}
html.device-mobile .advanced-filters{width:100%!important}.device-mobile .advanced-filters summary{width:100%;min-height:46px;display:flex;align-items:center;justify-content:center;gap:8px;border-radius:12px;background:#edf5f1;color:#075d3d;padding:10px;font-weight:900}
html.device-mobile .advanced-filters[open] .filter-advanced-grid{margin-top:10px;padding-top:10px;border-top:1px dashed #cfe0d7}

/* Public cards and content. */
html.device-mobile .courses-section,html.device-mobile .content-wrap,html.device-mobile .page-shell,html.device-mobile .section-shell{width:100%!important;max-width:none!important;margin:22px 0 0!important;padding:0 10px 90px!important}
html.device-mobile .section-title,html.device-mobile .admin-page-head{display:flex!important;align-items:flex-start!important;gap:10px!important;flex-wrap:wrap!important}
html.device-mobile .section-title h2,html.device-mobile .page-title h1,html.device-mobile .admin-page-head h1{font-size:24px!important;line-height:1.45!important}
html.device-mobile .course-accordion,html.device-mobile .course-grid{display:grid!important;grid-template-columns:1fr!important;gap:12px!important}
html.device-mobile .course-card{grid-column:auto!important;border-radius:18px!important}
html.device-mobile .course-head,html.device-mobile .course-card.open .course-head{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:11px!important;min-height:0!important;padding:17px 15px!important}
html.device-mobile .course-card-top{display:flex;flex-wrap:wrap;align-items:center;gap:7px}
html.device-mobile .course-heading b{font-size:17px;line-height:1.6}.device-mobile .course-teaser{font-size:11px;line-height:1.75}
html.device-mobile .course-card-footer{display:flex!important;min-width:0!important;width:100%;justify-content:flex-start!important;gap:10px!important;margin:0!important;padding-top:10px!important}
html.device-mobile .course-open-hint{margin-inline-start:auto}
html.device-mobile .course-body{padding:14px!important}.device-mobile .detail-grid{grid-template-columns:1fr!important}.device-mobile .session-row{grid-template-columns:1fr!important;gap:9px!important;border:1px solid #dce9e2!important;border-radius:13px!important;margin-bottom:9px!important}.device-mobile .session-action{align-items:stretch!important}.device-mobile .session-action .btn{width:100%}

/* General mobile forms/cards. */
html.device-mobile .card,html.device-mobile .form-card,html.device-mobile .admin-card,html.device-mobile .success-panel,html.device-mobile .certificate-check{padding:15px!important;border-radius:17px!important;overflow-wrap:anywhere}
html.device-mobile .form-grid,html.device-mobile .admin-form-grid,html.device-mobile .application-summary,html.device-mobile .stats-grid,html.device-mobile .dashboard-grid,html.device-mobile .settings-reminder-grid,html.device-mobile .health-grid{grid-template-columns:1fr!important}
html.device-mobile .wide,html.device-mobile .span-2,html.device-mobile .span-3{grid-column:auto!important}
html.device-mobile .form-actions{position:sticky;bottom:76px;z-index:20;padding:9px;background:rgba(255,255,255,.96);border:1px solid #dce9e2;border-radius:13px;box-shadow:0 -8px 22px rgba(5,64,39,.08)}
html.device-mobile .tracking-form{grid-template-columns:1fr!important}
html.device-mobile .status-timeline{display:grid!important;grid-template-columns:1fr!important;gap:9px!important;overflow:visible!important}.device-mobile .timeline-step{min-width:0!important;display:grid;grid-template-columns:38px 1fr;align-items:center;text-align:start}.device-mobile .timeline-step:before{display:none}.device-mobile .timeline-step i{margin:0}

/* Administration: separate mobile shell and card tables. */
html.device-mobile .admin-body{padding-bottom:0;background:#eef5f1}
html.device-mobile .admin-top{height:66px;min-height:66px;padding:7px 10px;gap:8px}
html.device-mobile .admin-brand{flex:1;min-width:0}.device-mobile .admin-brand img{width:45px;height:45px}.device-mobile .admin-brand span{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html.device-mobile .admin-user>a:first-child,html.device-mobile .admin-user .lang{display:none}.device-mobile .admin-user form .btn{font-size:10px;padding:7px 9px;min-height:40px}
html.device-mobile .admin-shell{display:block!important;padding:0!important;min-height:calc(100vh - 66px)}
html.device-mobile .admin-sidebar{display:block!important;position:fixed!important;z-index:121!important;top:0!important;bottom:0!important;inset-inline-start:0!important;width:min(86vw,330px)!important;height:100dvh!important;padding:14px!important;border-radius:0!important;overflow-y:auto!important;transform:translateX(calc(-110% * var(--admin-dir,1)));transition:transform .24s ease!important;box-shadow:20px 0 55px rgba(0,0,0,.24)!important}
html[dir="rtl"].device-mobile .admin-sidebar{inset-inline-start:auto!important;inset-inline-end:0!important;--admin-dir:-1}
html.device-mobile .admin-sidebar.open{transform:translateX(0)!important}
html.device-mobile .admin-sidebar>a{min-height:46px;padding:10px 11px!important;font-size:12px!important;white-space:normal!important}
html.device-mobile .admin-sidebar-head{display:flex!important;position:sticky;top:-14px;z-index:4;background:#063d2b;padding:8px 0 12px;margin-bottom:7px}.device-mobile .admin-sidebar-head button{display:grid!important}
html.device-mobile .admin-content{width:100%!important;padding:16px 10px 90px!important;overflow:hidden!important}
html.device-mobile .admin-page-head{margin-bottom:14px!important}.device-mobile .admin-actions{display:grid!important;grid-template-columns:1fr!important;width:100%;gap:7px}.device-mobile .admin-actions .btn{width:100%}
html.device-mobile .table-wrap{overflow:visible!important}.device-mobile table.data-table,.device-mobile table.data-table tbody,.device-mobile table.data-table tr,.device-mobile table.data-table td{display:block!important;width:100%!important}.device-mobile table.data-table thead{display:none!important}.device-mobile table.data-table tr{padding:11px;margin:0 0 11px;border:1px solid #cfe0d7;border-radius:14px;background:#fff;box-shadow:0 5px 16px rgba(5,64,39,.05)}.device-mobile table.data-table td{display:grid!important;grid-template-columns:minmax(92px,36%) minmax(0,1fr);gap:8px;border:0!important;border-bottom:1px dashed #e0eae5!important;padding:8px 3px!important;text-align:start!important;white-space:normal!important;overflow-wrap:anywhere}.device-mobile table.data-table td:last-child{border-bottom:0!important}.device-mobile table.data-table td:before{content:attr(data-label);font-size:10px;font-weight:900;color:#0a6845}.device-mobile table.data-table td form{max-width:100%}
html.device-mobile .audit-filter-grid,html.device-mobile .conflict-filter-grid,html.device-mobile .registrant-filter-grid,html.device-mobile .mail-toolbar{grid-template-columns:1fr!important}.device-mobile .audit-entry{grid-template-columns:38px minmax(0,1fr);padding:12px}.device-mobile .audit-entry-icon{width:38px;height:38px}.device-mobile .audit-entry-main>header{flex-direction:column}.device-mobile .audit-detail-columns{grid-template-columns:1fr!important}.device-mobile .conflict-card-header{flex-direction:column}.device-mobile .conflict-title-wrap{flex-direction:column}.device-mobile .conflict-resolution-grid{grid-template-columns:1fr!important}
html.device-mobile .mail-center-grid,html.device-mobile .mail-thread-layout,html.device-mobile .announcement-layout{grid-template-columns:1fr!important}.device-mobile .mail-compose-panel,.device-mobile .mail-thread-side{position:static!important}.device-mobile .mail-bubble{max-width:100%!important}.device-mobile .mail-template-grid{grid-template-columns:1fr!important}
html.device-mobile .role-accordion-list{display:grid;grid-template-columns:1fr;gap:10px}.device-mobile .role-card{padding:0!important}.device-mobile .role-card-summary{grid-template-columns:40px minmax(0,1fr) auto!important;padding:12px!important}.device-mobile .role-selected-count span{display:none}.device-mobile .permission-groups,.device-mobile .permission-grid{grid-template-columns:1fr!important}.device-mobile .role-save-bar{position:sticky;bottom:75px;flex-direction:column;align-items:stretch}
html.device-mobile .admin-footer{padding:15px 12px 88px!important;flex-direction:column;align-items:flex-start!important}

/* Instructor and attendance portals. */
html.device-mobile .instructor-content,html.device-mobile .attendance-main{width:100%;max-width:none;padding:15px 10px 90px!important}
html.device-mobile .instructor-identity-strip{margin:10px;padding:11px;border-radius:15px;display:flex;flex-direction:column;gap:4px}
html.device-mobile .instructor-session-grid{grid-template-columns:1fr!important}.device-mobile .instructor-session-card{min-height:0!important;padding:16px!important}.device-mobile .instructor-session-card dl{grid-template-columns:1fr!important}
html.device-mobile .attendance-header{min-height:68px;padding:8px 10px;gap:8px}.device-mobile .attendance-header>a{min-width:0;flex:1}.device-mobile .attendance-header>a img{width:48px;height:48px}.device-mobile .attendance-header>a span{min-width:0}.device-mobile .attendance-header>a b{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.device-mobile .attendance-header>a small{font-size:8px}.device-mobile .attendance-header>div b{display:none}.device-mobile .attendance-scanner-layout{grid-template-columns:1fr!important}.device-mobile #reader{min-height:250px}.device-mobile .attendance-footer{padding:14px 10px 88px;text-align:center}

/* Certificate designer on a phone: controls remain usable, canvas scrolls intentionally. */
html.device-mobile .certificate-designer-layout{grid-template-columns:1fr!important}.device-mobile .certificate-canvas-shell{overflow-x:auto!important;margin-inline:-5px!important;padding:7px!important}.device-mobile .certificate-designer-canvas{min-width:760px!important}.device-mobile .certificate-layout-table{min-width:980px}.device-mobile .certificate-design-token{font-size:9px!important}

/* Auth pages. */
html.device-mobile .auth-body{display:block;padding:18px 10px 80px}.device-mobile .auth-card{width:100%;max-width:none;margin:18px 0;padding:18px!important}.device-mobile .type-choice{grid-template-columns:1fr 1fr!important}

/* Bottom navigation always available on public phones. */
html.device-mobile .mobile-bottom-nav{display:grid!important;position:fixed;z-index:90;inset:auto 0 0;grid-template-columns:repeat(5,1fr);padding:6px 6px calc(6px + env(safe-area-inset-bottom));background:rgba(255,255,255,.98);border-top:1px solid #cfe0d7;box-shadow:0 -10px 28px rgba(5,64,39,.11)}
html.device-mobile .mobile-bottom-nav a{display:flex;min-height:52px;flex-direction:column;align-items:center;justify-content:center;gap:1px;border-radius:10px;color:#4c6257;font-size:17px}.device-mobile .mobile-bottom-nav a small{font-size:8px;line-height:1.3;text-align:center}.device-mobile .mobile-bottom-nav a.active{background:#e2f5ea;color:#06613f}

@media (max-width:390px){
 html.device-mobile .hero-actions,html.device-mobile .filter-quick-actions{grid-template-columns:1fr!important}
 html.device-mobile .hero h1{font-size:26px!important}
 html.device-mobile .filter-checks{grid-template-columns:1fr!important}
 html.device-mobile .mobile-bottom-nav a small{font-size:7px}
}
html.device-mobile .mobile-portal-shortcuts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;padding:8px 10px 0;background:transparent}
html.device-mobile .mobile-portal-shortcuts a{min-height:48px;padding:7px 5px;border:1px solid #b9d6c7;border-radius:12px;background:#fff;color:#075d3d;display:flex;align-items:center;justify-content:center;gap:5px;box-shadow:0 5px 14px rgba(5,64,39,.05)}
html.device-mobile .mobile-portal-shortcuts a span{font-size:16px}html.device-mobile .mobile-portal-shortcuts a small{font-size:8px;font-weight:900;line-height:1.35;text-align:center}

/* ========================================================================
   TSTC v1.2.2 — deterministic mobile drawer and compact branded hero
   ======================================================================== */

/* Avoid unsupported CSS multiplication inside calc(); use explicit sides. */
html.device-mobile .main-nav{
  display:flex!important;
  position:fixed!important;
  top:0!important;
  bottom:0!important;
  width:min(88vw,360px)!important;
  max-width:360px!important;
  padding:14px!important;
  z-index:132!important;
  background:#fff!important;
  overflow-y:auto!important;
  flex-direction:column!important;
  align-items:stretch!important;
  gap:7px!important;
  box-shadow:0 0 58px rgba(0,0,0,.28)!important;
  transition:transform .24s ease,visibility .24s ease!important;
  visibility:hidden;
  pointer-events:none;
}
html[dir="rtl"].device-mobile .main-nav{left:0!important;right:auto!important;transform:translateX(-108%)!important}
html[dir="ltr"].device-mobile .main-nav{right:0!important;left:auto!important;transform:translateX(108%)!important}
html.device-mobile .main-nav.open{transform:translateX(0)!important;visibility:visible!important;pointer-events:auto!important}
html.device-mobile .site-overlay:not([hidden]){z-index:126!important;background:rgba(8,28,19,.58)!important;display:block!important}
html.device-mobile .main-nav .mobile-nav-head{position:sticky;top:-14px;z-index:2;background:#fff;padding-top:12px!important}
html.device-mobile .main-nav .nav-logout-form{width:100%;margin:0}
html.device-mobile .main-nav .nav-logout-form button{width:100%!important;justify-content:flex-start!important}

/* The mobile hero is always visible and visually distinct from desktop. */
html.device-mobile .public-body .hero.hero-final{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  position:relative!important;
  min-height:445px!important;
  padding:25px 17px 158px!important;
  margin:10px!important;
  border:1px solid #c6dfd2!important;
  background:
    radial-gradient(circle at 15% 18%,rgba(42,189,120,.18),transparent 115px),
    linear-gradient(145deg,#ffffff 0%,#edf9f3 58%,#d8f1e4 100%)!important;
}
html.device-mobile .public-body .hero.hero-final .hero-copy{display:block!important;position:relative!important;z-index:5!important}
html.device-mobile .public-body .hero.hero-final h1{font-size:28px!important;line-height:1.45!important;margin:13px 0 8px!important;color:#07583a!important}
html.device-mobile .public-body .hero.hero-final p{font-size:12px!important;line-height:1.85!important;color:#526a5e!important}
html.device-mobile .public-body .hero.hero-final .hero-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important}
html.device-mobile .public-body .hero.hero-final .hero-trust{display:grid!important;grid-template-columns:1fr 1fr!important;gap:6px!important}
html.device-mobile .mobile-hero-visual{display:block!important;position:absolute;left:0;right:0;bottom:0;height:155px;overflow:hidden;z-index:2}
html.device-mobile .mobile-traffic-light{position:absolute;left:22px;bottom:22px;width:49px;height:112px;padding:8px;border-radius:19px;background:linear-gradient(180deg,#26332d,#101813);display:flex;flex-direction:column;gap:6px;box-shadow:0 13px 22px rgba(0,0,0,.22);z-index:4}
html.device-mobile .mobile-traffic-light:after{content:"";position:absolute;left:50%;bottom:-30px;transform:translateX(-50%);width:8px;height:35px;border-radius:6px;background:#18241e}
html.device-mobile .mobile-traffic-light i{flex:1;border-radius:50%;box-shadow:inset 0 -6px 8px rgba(0,0,0,.22)}
html.device-mobile .mobile-traffic-light i:nth-child(1){background:#e63946}html.device-mobile .mobile-traffic-light i:nth-child(2){background:#ffd23f}html.device-mobile .mobile-traffic-light i:nth-child(3){background:#20b66f}
html.device-mobile .mobile-hero-waves{position:absolute;inset:auto -30px -25px -20px;height:132px;transform:rotate(-2deg)}
html.device-mobile .mobile-hero-waves span{position:absolute;left:0;right:0;bottom:0;border-radius:55% 45% 0 0/85% 75% 0 0}
html.device-mobile .mobile-hero-waves span:nth-child(1){height:105px;background:rgba(94,213,145,.48)}
html.device-mobile .mobile-hero-waves span:nth-child(2){height:78px;background:rgba(22,164,99,.78);transform:translateX(22px)}
html.device-mobile .mobile-hero-waves span:nth-child(3){height:49px;background:#087a4b;transform:translateX(-10px)}
html.device-mobile .hero-concept-mark{right:84px!important;left:84px!important;bottom:17px!important;padding:8px 10px!important}

/* Mobile instructor and certificate designer layouts. */
html.device-mobile .instructor-auth-header .brand b,html.device-mobile .instructor-portal-header .brand b{font-size:10px!important}
html.device-mobile .instructor-auth-main{margin-top:10px!important}
html.device-mobile .instructor-portal-banner{margin-inline:10px!important}
html.device-mobile .certificate-designer-page{padding-bottom:78px}
html.device-mobile .certificate-designer-workspace{display:block!important}
html.device-mobile .certificate-template-sidebar{position:static!important;margin-bottom:11px!important}
html.device-mobile .certificate-layout-table{min-width:880px!important}
html.device-mobile .certificate-designer-canvas{min-width:620px;transform-origin:top right;overflow:hidden}
html.device-mobile .certificate-canvas-shell{overflow:auto!important}

@media(max-width:430px){
  html.device-mobile .public-body .hero.hero-final{min-height:480px!important;padding-bottom:172px!important}
  html.device-mobile .public-body .hero.hero-final .hero-actions{grid-template-columns:1fr!important}
  html.device-mobile .hero-concept-mark{left:76px!important;right:76px!important}
  html.device-mobile .mobile-portal-shortcuts{grid-template-columns:1fr 1fr 1fr!important}
}

/* v1.2.2 mobile featured-course stack; desktop hero remains untouched. */
html.device-mobile .public-body .hero.hero-final{
  min-height:620px!important;
  padding-bottom:258px!important;
}
html.device-mobile .public-body .hero.hero-final .hero-course-showcase{
  display:block!important;
  position:absolute!important;
  left:10px!important;
  right:10px!important;
  top:auto!important;
  bottom:12px!important;
  width:auto!important;
  height:226px!important;
  z-index:6!important;
  perspective:900px;
}
html.device-mobile .hero-course-showcase-title{margin:0 0 5px 10px!important;min-height:28px!important;padding:4px 9px!important;font-size:9px!important}
html.device-mobile .hero-course-stack{height:190px!important}
html.device-mobile .hero-mini-course{
  left:50%!important;
  width:min(82vw,285px)!important;
  min-height:124px!important;
  padding:12px 13px 10px!important;
  border-radius:17px!important;
  transform-origin:center!important;
}
html.device-mobile .hero-mini-course.stack-slot-0{transform:translate3d(-50%,0,0) rotate(-1.5deg) scale(1)!important}
html.device-mobile .hero-mini-course.stack-slot-1{transform:translate3d(calc(-50% + 18px),25px,-35px) rotate(4deg) scale(.93)!important}
html.device-mobile .hero-mini-course.stack-slot-2{transform:translate3d(calc(-50% - 13px),50px,-70px) rotate(-5deg) scale(.86)!important}
html.device-mobile .hero-mini-course>strong{font-size:13px!important;line-height:1.45!important}
html.device-mobile .hero-mini-course>small{font-size:8px!important}
html.device-mobile .hero-mini-course-top{gap:5px!important}
html.device-mobile .hero-mini-code{font-size:8px!important;min-height:23px!important;padding:3px 7px!important}
html.device-mobile .hero-mini-status{font-size:7px!important;padding:3px 6px!important}
html.device-mobile .hero-mini-meta{padding-top:7px!important;gap:8px!important;font-size:7px!important}
html.device-mobile .hero-mini-meta b{font-size:10px!important}
html.device-mobile .hero-mini-arrow{width:22px!important;height:22px!important;border-radius:7px!important;font-size:12px!important}
html.device-mobile .hero-stack-dots{left:50%!important;bottom:-1px!important;transform:translateX(-50%)!important}
html.device-mobile .mobile-hero-visual,html.device-mobile .hero-concept-mark{display:none!important}
@media(max-width:430px){
  html.device-mobile .public-body .hero.hero-final{min-height:650px!important;padding-bottom:275px!important}
  html.device-mobile .hero-mini-course{width:min(86vw,275px)!important}
}


/* v1.2.3: drawer is mounted directly under body so it can never sit behind overlay. */
html.device-mobile body.drawer-open .site-header,
html.device-mobile body.drawer-open .instructor-auth-header,
html.device-mobile body.drawer-open .instructor-portal-header{z-index:140!important;backdrop-filter:none!important}
html.device-mobile body>.main-nav.mobile-mounted{z-index:150!important;visibility:hidden!important;pointer-events:none!important;background:#fff!important;color:#173e2b!important}
html.device-mobile body>.main-nav.mobile-mounted.open{transform:translateX(0)!important;visibility:visible!important;pointer-events:auto!important}
html.device-mobile body>.site-overlay:not([hidden]){z-index:145!important}

/* ========================================================================
   TSTC v1.2.6 — robust mobile administration app shell
   Applies to detected handhelds and coarse-pointer compact viewports, while
   leaving the desktop administration layout untouched.
   ======================================================================== */
html.device-handheld .admin-body,
html.device-mobile .admin-body{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  min-height:100dvh!important;
  margin:0!important;
  padding:0!important;
  overflow-x:hidden!important;
  display:flex!important;
  flex-direction:column!important;
  background:linear-gradient(180deg,#f7fbf9 0,#edf5f1 100%)!important;
}
html.device-handheld .admin-top,
html.device-mobile .admin-top{
  position:sticky!important;
  top:0!important;
  z-index:190!important;
  width:100%!important;
  max-width:100%!important;
  min-height:68px!important;
  height:68px!important;
  margin:0!important;
  padding:8px 10px!important;
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  background:rgba(255,255,255,.985)!important;
  border-bottom:1px solid #cbded4!important;
  box-shadow:0 8px 24px rgba(5,64,39,.09)!important;
}
html.device-handheld .admin-top .mobile-toggle,
html.device-mobile .admin-top .mobile-toggle{
  display:grid!important;
  flex:0 0 44px!important;
  width:44px!important;
  height:44px!important;
  min-height:44px!important;
  padding:9px!important;
  border:1px solid #b9d5c7!important;
  border-radius:13px!important;
  background:#f3faf6!important;
}
html.device-handheld .admin-brand,
html.device-mobile .admin-brand{
  flex:1 1 auto!important;
  min-width:0!important;
  max-width:calc(100% - 104px)!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  overflow:hidden!important;
  color:#07583a!important;
}
html.device-handheld .admin-brand img,
html.device-mobile .admin-brand img{
  flex:0 0 43px!important;
  width:43px!important;
  height:43px!important;
  object-fit:contain!important;
}
html.device-handheld .admin-brand span,
html.device-mobile .admin-brand span{
  display:block!important;
  max-width:100%!important;
  overflow:hidden!important;
  white-space:nowrap!important;
  text-overflow:ellipsis!important;
  font-size:12px!important;
  line-height:1.35!important;
}
html.device-handheld .admin-user,
html.device-mobile .admin-user{
  flex:0 0 44px!important;
  width:44px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:0!important;
}
html.device-handheld .admin-user>a,
html.device-mobile .admin-user>a{display:none!important}
html.device-handheld .admin-user form,
html.device-mobile .admin-user form{margin:0!important;width:44px!important}
html.device-handheld .admin-user form .btn,
html.device-mobile .admin-user form .btn{
  width:44px!important;
  height:44px!important;
  min-height:44px!important;
  padding:0!important;
  border:1px solid #efd0d3!important;
  border-radius:13px!important;
  background:#fff3f4!important;
  color:#9a2530!important;
  font-size:0!important;
}
html.device-handheld .admin-user form .btn::before,
html.device-mobile .admin-user form .btn::before{content:"↪";font-size:20px;line-height:1}
html.device-handheld .admin-shell,
html.device-mobile .admin-shell{
  display:block!important;
  flex:1 0 auto!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  grid-template-columns:1fr!important;
  overflow:visible!important;
}
html.device-handheld .admin-content,
html.device-mobile .admin-content{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin:0!important;
  padding:14px 10px 92px!important;
  overflow:visible!important;
}
html.device-handheld .admin-content>*,
html.device-mobile .admin-content>*{max-width:100%!important;min-width:0!important}
html.device-handheld .admin-page-head,
html.device-mobile .admin-page-head{
  width:100%!important;
  margin:0 0 12px!important;
  padding:0!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  gap:8px!important;
}
html.device-handheld .admin-page-head h1,
html.device-mobile .admin-page-head h1{
  margin:0!important;
  font-size:25px!important;
  line-height:1.45!important;
  color:#07583a!important;
  overflow-wrap:anywhere!important;
}
html.device-handheld .admin-page-head p,
html.device-mobile .admin-page-head p{margin:0!important;font-size:11px!important;line-height:1.7!important}
html.device-handheld .admin-actions,
html.device-mobile .admin-actions{
  width:100%!important;
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:7px!important;
}
html.device-handheld .admin-actions .btn,
html.device-mobile .admin-actions .btn{width:100%!important;min-height:46px!important}
html.device-handheld .admin-card,
html.device-mobile .admin-card,
html.device-handheld .stat-card,
html.device-mobile .stat-card{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  padding:14px!important;
  border-radius:17px!important;
  overflow:hidden!important;
}
html.device-handheld .stats-grid,
html.device-mobile .stats-grid,
html.device-handheld .dashboard-grid,
html.device-mobile .dashboard-grid{
  width:100%!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:9px!important;
}
html.device-handheld .stat-card,
html.device-mobile .stat-card{min-height:112px!important}
html.device-handheld .stat-card b,
html.device-mobile .stat-card b{font-size:25px!important}
html.device-handheld .admin-form-grid,
html.device-mobile .admin-form-grid,
html.device-handheld .form-grid,
html.device-mobile .form-grid,
html.device-handheld .application-summary,
html.device-mobile .application-summary,
html.device-handheld .split-layout,
html.device-mobile .split-layout,
html.device-handheld .permission-grid,
html.device-mobile .permission-grid{
  grid-template-columns:1fr!important;
}
html.device-handheld .admin-form-grid .span-2,
html.device-mobile .admin-form-grid .span-2,
html.device-handheld .admin-form-grid .span-3,
html.device-mobile .admin-form-grid .span-3{grid-column:1!important}
html.device-handheld .table-wrap,
html.device-mobile .table-wrap{width:100%!important;max-width:100%!important;overflow:visible!important}
html.device-handheld table.data-table,
html.device-mobile table.data-table{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  border:0!important;
  background:transparent!important;
  overflow:visible!important;
}
html.device-handheld .data-table thead,
html.device-mobile .data-table thead{display:none!important}
html.device-handheld .data-table tbody,
html.device-mobile .data-table tbody{display:grid!important;width:100%!important;gap:10px!important}
html.device-handheld .data-table tr,
html.device-mobile .data-table tr{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  border:1px solid #ccded5!important;
  border-radius:15px!important;
  background:#fff!important;
  box-shadow:0 7px 18px rgba(5,64,39,.06)!important;
  overflow:hidden!important;
}
html.device-handheld .data-table td,
html.device-mobile .data-table td{
  display:grid!important;
  width:100%!important;
  grid-template-columns:minmax(92px,34%) minmax(0,1fr)!important;
  gap:9px!important;
  align-items:start!important;
  padding:10px 11px!important;
  border:0!important;
  border-bottom:1px solid #e5eee9!important;
  background:#fff!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  word-break:break-word!important;
}
html.device-handheld .data-table td:last-child,
html.device-mobile .data-table td:last-child{border-bottom:0!important}
html.device-handheld .data-table td::before,
html.device-mobile .data-table td::before{
  content:attr(data-label)!important;
  display:block!important;
  font-size:9px!important;
  line-height:1.5!important;
  font-weight:900!important;
  color:#08704a!important;
}
html.device-handheld .admin-sidebar,
html.device-mobile .admin-sidebar{
  display:flex!important;
  position:fixed!important;
  top:0!important;
  bottom:0!important;
  z-index:202!important;
  width:min(88vw,350px)!important;
  max-width:350px!important;
  height:100dvh!important;
  margin:0!important;
  padding:13px!important;
  border:0!important;
  border-radius:0!important;
  flex-direction:column!important;
  overflow-y:auto!important;
  visibility:hidden!important;
  pointer-events:none!important;
  box-shadow:0 0 58px rgba(0,0,0,.32)!important;
  transition:transform .26s cubic-bezier(.2,.78,.25,1),visibility .26s ease!important;
}
html[dir="rtl"].device-handheld .admin-sidebar,
html[dir="rtl"].device-mobile .admin-sidebar{right:0!important;left:auto!important;transform:translate3d(108%,0,0)!important}
html[dir="ltr"].device-handheld .admin-sidebar,
html[dir="ltr"].device-mobile .admin-sidebar{left:0!important;right:auto!important;transform:translate3d(-108%,0,0)!important}
html.device-handheld .admin-sidebar.open,
html.device-mobile .admin-sidebar.open{
  transform:translate3d(0,0,0)!important;
  visibility:visible!important;
  pointer-events:auto!important;
}
html.device-handheld .admin-sidebar-head,
html.device-mobile .admin-sidebar-head{display:flex!important;flex:0 0 auto!important}
html.device-handheld .admin-sidebar>a,
html.device-mobile .admin-sidebar>a{
  flex:0 0 auto!important;
  width:100%!important;
  min-height:45px!important;
  padding:10px 12px!important;
  font-size:12px!important;
  white-space:normal!important;
}
html.device-handheld .admin-overlay:not([hidden]),
html.device-mobile .admin-overlay:not([hidden]){
  display:block!important;
  position:fixed!important;
  inset:0!important;
  z-index:198!important;
  background:rgba(7,27,18,.58)!important;
  backdrop-filter:blur(2px)!important;
}
html.device-handheld .admin-footer,
html.device-mobile .admin-footer{
  width:100%!important;
  margin:0!important;
  padding:14px 12px calc(14px + env(safe-area-inset-bottom))!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  gap:8px!important;
}
html.device-handheld .admin-footer .footer-meta,
html.device-mobile .admin-footer .footer-meta{font-size:9px!important;gap:8px!important}

@media (max-width:390px){
  html.device-handheld .stats-grid,
  html.device-mobile .stats-grid,
  html.device-handheld .dashboard-grid,
  html.device-mobile .dashboard-grid{grid-template-columns:1fr!important}
  html.device-handheld .admin-brand span,
  html.device-mobile .admin-brand span{font-size:10px!important}
}

/* Fallback for a phone requesting a desktop viewport or reporting physical pixels. */
@media (max-width:1100px), (hover:none) and (pointer:coarse){
  .admin-body{width:100%!important;max-width:100%!important;min-width:0!important;overflow-x:hidden!important}
  .admin-body .admin-shell{display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;padding:0!important;grid-template-columns:1fr!important}
  .admin-body .admin-content{width:100%!important;max-width:100%!important;min-width:0!important;padding:14px 10px 90px!important;overflow:visible!important}
  .admin-body .admin-top{width:100%!important;max-width:100%!important;min-height:68px!important;padding:8px 10px!important}
  .admin-body .admin-top .mobile-toggle{display:grid!important}
}

/* v1.3.1 — Larger phone-only typography and touch controls. */
html.device-handheld body,
html.device-mobile body{font-size:16px!important;line-height:1.85!important}
html.device-handheld .btn,
html.device-mobile .btn,
html.device-handheld button,
html.device-mobile button{font-size:15px!important;min-height:48px!important;line-height:1.35!important}
html.device-handheld .btn.small,
html.device-mobile .btn.small,
html.device-handheld .btn.tiny,
html.device-mobile .btn.tiny{font-size:14px!important;min-height:44px!important;padding:9px 12px!important}
html.device-handheld .form-control,
html.device-mobile .form-control,
html.device-handheld input,
html.device-mobile input,
html.device-handheld select,
html.device-mobile select,
html.device-handheld textarea,
html.device-mobile textarea{font-size:16px!important;min-height:48px!important;line-height:1.5!important}
html.device-handheld label,
html.device-mobile label{font-size:14px!important}
html.device-handheld .main-nav a,
html.device-mobile .main-nav a,
html.device-handheld .admin-sidebar>a,
html.device-mobile .admin-sidebar>a{font-size:15px!important;min-height:50px!important}
html.device-handheld .data-table td,
html.device-mobile .data-table td{font-size:14px!important;line-height:1.75!important}
html.device-handheld .data-table td::before,
html.device-mobile .data-table td::before{font-size:12px!important}
html.device-handheld .badge,
html.device-mobile .badge,
html.device-handheld .status,
html.device-mobile .status{font-size:12px!important;padding:6px 9px!important}
html.device-handheld .admin-page-head h1,
html.device-mobile .admin-page-head h1{font-size:27px!important;line-height:1.4!important}
html.device-handheld .admin-card h2,
html.device-mobile .admin-card h2{font-size:21px!important}
html.device-handheld .mobile-bottom-nav small,
html.device-mobile .mobile-bottom-nav small{font-size:11px!important}

@media (max-width:1100px), (hover:none) and (pointer:coarse){
  html.device-handheld .admin-body .btn,html.device-mobile .admin-body .btn{font-size:15px!important}
  html.device-handheld .admin-body .admin-sidebar>a,html.device-mobile .admin-body .admin-sidebar>a{font-size:15px!important}
}

/* ========================================================================
   TSTC v1.3.2 — focused mobile portal controls and instructor banner polish
   Every selector is phone-scoped; desktop layout is intentionally untouched.
   ======================================================================== */

/* Public home: large, readable portal shortcuts with balanced touch targets. */
html.device-handheld .mobile-portal-shortcuts,
html.device-mobile .mobile-portal-shortcuts{
  width:100%!important;
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:10px!important;
  padding:12px 10px 3px!important;
  align-items:stretch!important;
}
html.device-handheld .mobile-portal-shortcuts a,
html.device-mobile .mobile-portal-shortcuts a{
  width:100%!important;
  min-height:78px!important;
  padding:11px 6px!important;
  border:1px solid #b8d5c6!important;
  border-radius:18px!important;
  background:linear-gradient(180deg,#ffffff,#f5faf7)!important;
  color:#075d3d!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  text-align:center!important;
  box-shadow:0 7px 18px rgba(5,64,39,.07)!important;
  overflow:hidden!important;
}
html.device-handheld .mobile-portal-shortcuts a:active,
html.device-mobile .mobile-portal-shortcuts a:active{
  transform:scale(.98)!important;
  background:#e8f7ef!important;
}
html.device-handheld .mobile-portal-shortcuts a span,
html.device-mobile .mobile-portal-shortcuts a span{
  display:block!important;
  font-size:23px!important;
  line-height:1!important;
  flex:0 0 auto!important;
}
html.device-handheld .mobile-portal-shortcuts a small,
html.device-mobile .mobile-portal-shortcuts a small{
  display:block!important;
  width:100%!important;
  font-size:13.5px!important;
  line-height:1.45!important;
  font-weight:900!important;
  white-space:normal!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
  text-wrap:balance!important;
}

/* Instructor portal: compact branded banner and non-overlapping actions. */
html.device-handheld .instructor-portal-banner,
html.device-mobile .instructor-portal-banner{
  width:calc(100% - 20px)!important;
  max-width:none!important;
  min-height:0!important;
  height:auto!important;
  margin:10px auto 0!important;
  padding:18px 16px 16px!important;
  display:grid!important;
  grid-template-columns:54px minmax(0,1fr)!important;
  grid-template-rows:auto auto!important;
  gap:12px!important;
  align-items:start!important;
  border-radius:24px!important;
  overflow:hidden!important;
}
html.device-handheld .instructor-portal-banner::after,
html.device-mobile .instructor-portal-banner::after{
  width:210px!important;
  height:120px!important;
  right:-48px!important;
  bottom:-67px!important;
  border-width:25px!important;
  opacity:.65!important;
  pointer-events:none!important;
}
html.device-handheld .instructor-banner-icon,
html.device-mobile .instructor-banner-icon{
  position:relative!important;
  z-index:3!important;
  width:54px!important;
  height:54px!important;
  min-height:54px!important;
  margin:0!important;
  border-radius:17px!important;
  font-size:24px!important;
  grid-column:1!important;
  grid-row:1!important;
}
html.device-handheld .instructor-portal-banner>div:nth-child(2),
html.device-mobile .instructor-portal-banner>div:nth-child(2){
  position:relative!important;
  z-index:3!important;
  grid-column:2!important;
  grid-row:1!important;
  align-self:center!important;
  min-width:0!important;
  padding:0!important;
}
html.device-handheld .instructor-portal-banner>div:nth-child(2)>span,
html.device-mobile .instructor-portal-banner>div:nth-child(2)>span{
  display:block!important;
  font-size:12px!important;
  line-height:1.5!important;
  margin:0 0 2px!important;
}
html.device-handheld .instructor-portal-banner h1,
html.device-mobile .instructor-portal-banner h1{
  margin:0 0 4px!important;
  font-size:23px!important;
  line-height:1.35!important;
  color:#fff!important;
  overflow-wrap:anywhere!important;
}
html.device-handheld .instructor-portal-banner p,
html.device-mobile .instructor-portal-banner p{
  margin:0!important;
  font-size:13px!important;
  line-height:1.75!important;
  color:rgba(255,255,255,.9)!important;
}
html.device-handheld .instructor-banner-actions,
html.device-mobile .instructor-banner-actions{
  position:relative!important;
  z-index:4!important;
  grid-column:1/-1!important;
  grid-row:2!important;
  width:100%!important;
  margin:3px 0 0!important;
  padding:0!important;
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;
  align-items:stretch!important;
}
html.device-handheld .instructor-banner-actions .btn,
html.device-mobile .instructor-banner-actions .btn{
  position:static!important;
  inset:auto!important;
  width:100%!important;
  min-width:0!important;
  min-height:58px!important;
  height:auto!important;
  margin:0!important;
  padding:12px 10px!important;
  border-radius:16px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  font-size:15px!important;
  line-height:1.45!important;
  font-weight:900!important;
  white-space:normal!important;
  text-align:center!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
  box-shadow:0 8px 19px rgba(2,52,32,.13)!important;
}
html.device-handheld .instructor-banner-actions .portal-home-return,
html.device-mobile .instructor-banner-actions .portal-home-return{
  grid-column:1/-1!important;
  min-height:55px!important;
  background:#e6f7ed!important;
  color:#075d3d!important;
  border-color:#b8ddc8!important;
}

/* Keep dashboard content close to the compact banner. */
html.device-handheld .instructor-portal-content,
html.device-mobile .instructor-portal-content{
  padding-top:16px!important;
}
html.device-handheld .instructor-dashboard-title,
html.device-mobile .instructor-dashboard-title{
  margin-bottom:14px!important;
}

@media(max-width:390px){
  html.device-handheld .mobile-portal-shortcuts,
  html.device-mobile .mobile-portal-shortcuts{gap:7px!important;padding-inline:8px!important}
  html.device-handheld .mobile-portal-shortcuts a,
  html.device-mobile .mobile-portal-shortcuts a{min-height:76px!important;padding-inline:4px!important}
  html.device-handheld .mobile-portal-shortcuts a small,
  html.device-mobile .mobile-portal-shortcuts a small{font-size:12.5px!important}
  html.device-handheld .instructor-portal-banner,
  html.device-mobile .instructor-portal-banner{padding:16px 13px!important;grid-template-columns:48px minmax(0,1fr)!important}
  html.device-handheld .instructor-banner-icon,
  html.device-mobile .instructor-banner-icon{width:48px!important;height:48px!important;min-height:48px!important}
  html.device-handheld .instructor-portal-banner h1,
  html.device-mobile .instructor-portal-banner h1{font-size:21px!important}
  html.device-handheld .instructor-banner-actions,
  html.device-mobile .instructor-banner-actions{grid-template-columns:1fr!important}
  html.device-handheld .instructor-banner-actions .portal-home-return,
  html.device-mobile .instructor-banner-actions .portal-home-return{grid-column:1!important}
}
