/* OMI Pro V33 — compact mobile layout, polished feedback, loading and prompt-management UI. */
:root{--omi-v32-gap:12px;--omi-v32-nav-clear:76px;--omi-v32-header:64px}
*{scrollbar-width:thin;scrollbar-color:#bfd2ca transparent}
body.omi-layout:not(.omi-exam-active):not(.omi-secure-exam){min-height:100dvh!important;overflow-y:auto!important;padding-bottom:calc(var(--omi-v32-nav-clear) + env(safe-area-inset-bottom))!important}
body.omi-layout:not(.legacy-app):has(>#omi-fixed-header)>main{padding-top:12px!important;margin-top:0!important;height:auto!important;min-height:0!important;overflow:visible!important}
body.omi-layout main.omi-page-shell,body.omi-layout main.omi-directory,body.omi-layout main.wrap{width:min(1180px,100%)!important;margin-inline:auto!important;padding-left:12px!important;padding-right:12px!important;padding-bottom:16px!important}
body.omi-layout .omi-page-shell{display:grid;gap:12px!important}
body.omi-layout .section-heading{margin:0 0 8px!important}
body.omi-layout .section-heading h2{margin:0!important}
body.omi-layout .section-heading p{margin:3px 0 0!important}
body.omi-layout section+section{margin-top:0}

/* Home: more content per screen, no oversized dead zones. */
body.omi-layout .omi-home{padding-top:10px!important}
body.omi-layout .home-intro{min-height:0!important;padding:15px 16px!important;border-radius:22px!important}
body.omi-layout .home-intro h1{font-size:clamp(1.65rem,7vw,2.55rem)!important;line-height:1.05!important;margin:4px 0 0!important}
body.omi-layout .home-kicker{margin-bottom:5px!important;font-size:10px!important}
body.omi-layout .home-focus{margin:12px 0 14px!important;gap:10px!important}
body.omi-layout .home-focus-card{min-height:124px!important;padding:14px!important;border-radius:21px!important;grid-template-columns:48px minmax(0,1fr)!important;gap:8px 12px!important}
body.omi-layout .home-card-icon{width:48px!important;height:48px!important;border-radius:16px!important}
body.omi-layout .home-focus-card strong{font-size:1.22rem!important}
body.omi-layout .home-focus-card>b{min-height:40px!important;padding:0 12px!important;border-radius:12px!important}
body.omi-layout .home-secondary{margin-top:12px!important;padding-top:0!important}
body.omi-layout .home-secondary h2{margin:0 0 8px!important;font-size:1.12rem!important}
body.omi-layout .menu-grid-new{gap:8px!important}
body.omi-layout .menu-grid-new a{min-height:58px!important;padding:11px 13px!important;border-radius:15px!important}

/* Admin portal: compact cards and sections. */
body.omi-layout.omi-admin .admin-portal{gap:10px!important}
body.omi-layout.omi-admin .portal-primary{gap:8px!important;margin:0!important}
body.omi-layout.omi-admin .portal-job{min-height:92px!important;padding:12px!important;border-radius:18px!important;gap:7px 10px!important}
body.omi-layout.omi-admin .portal-job .job-index{width:38px!important;height:38px!important;border-radius:12px!important}
body.omi-layout.omi-admin .portal-job strong{font-size:1rem!important;margin:0!important}
body.omi-layout.omi-admin .portal-job>b{font-size:.82rem!important}
body.omi-layout.omi-admin .portal-section{padding:12px!important;margin:0!important;border-radius:18px!important}
body.omi-layout.omi-admin .portal-rows{gap:6px!important}
body.omi-layout.omi-admin .portal-rows a{min-height:52px!important;padding:9px 11px!important;border-radius:12px!important}
body.omi-layout.omi-admin .portal-inline-links{gap:6px!important}
body.omi-layout.omi-admin .portal-inline-links a{min-height:40px!important;padding:8px 10px!important}

/* Progress, results and monitor use the vertical space efficiently. */
body.omi-layout .progress-shell{gap:12px!important}
body.omi-layout .progress-intro{padding:0!important;margin:0!important}
body.omi-layout .progress-intro h1{font-size:1.65rem!important;margin:2px 0 3px!important}
body.omi-layout .progress-summary{gap:7px!important}
body.omi-layout .progress-stat,body.omi-layout .progress-item,body.omi-layout .recommendation-item,body.omi-layout .omi-state-card{border-radius:16px!important;padding:11px!important;min-height:0!important}
body.omi-layout.omi-monitor main.wrap{padding-top:8px!important}
body.omi-layout.omi-monitor .monitor-intro{margin:0 0 8px!important}
body.omi-layout.omi-monitor .tabs,body.omi-layout.omi-monitor .filters,body.omi-layout.omi-monitor .controlbar{gap:6px!important;margin:6px 0!important}
body.omi-layout.omi-monitor .btn,body.omi-layout.omi-monitor .tab,body.omi-layout.omi-monitor .filter{min-height:42px!important;padding:8px 10px!important}
body.omi-layout.omi-monitor .stats{margin:7px 0!important;gap:6px!important}
body.omi-layout .history-intro{margin:0 0 8px!important}
body.omi-layout .wrap>.toolbar{margin:0!important}
body.omi-layout .wrap>.stats{margin:7px 0!important}

/* App bar and bottom navigation stay accessible but consume less visual height. */
body.omi-layout>#omi-fixed-header{height:60px!important;min-height:60px!important;padding:7px 10px!important}
body.omi-layout>#omi-fixed-header .omi-brand-link img{width:34px!important;height:34px!important}
body.omi-layout>#omi-fixed-header .omi-back,body.omi-layout>#omi-fixed-header .omi-sound-toggle,body.omi-layout>#omi-fixed-header .omi-menu-toggle{width:42px!important;height:42px!important;min-height:42px!important}
body.omi-layout>.omi-primary-nav{height:66px!important;padding:5px 7px max(5px,env(safe-area-inset-bottom))!important;border-radius:22px 22px 0 0!important}
body.omi-layout>.omi-primary-nav a{min-height:52px!important;border-radius:16px!important}

/* Prompt hub. */
.omi-prompt-page .omi-compact-main{gap:12px!important}
.omi-prompt-hero,.omi-tool-card,.omi-package-panel,.omi-question-panel,.omi-detail-card{padding:14px!important}
.omi-prompt-hero h1{font-size:clamp(1.55rem,4vw,2.15rem);margin:2px 0 4px}
.omi-prompt-hero .omi-note{margin:0;max-width:75ch}
.compact-toolbar{gap:8px!important;align-items:end!important}
.compact-toolbar .field{gap:4px!important;min-width:120px!important}
.compact-toolbar .field>span,.compact-toolbar .field>small{font-size:.78rem;color:#60766f;font-weight:700}
.compact-toolbar input,.compact-toolbar select{min-height:42px!important;padding:8px 10px!important;border-radius:12px!important}
.compact-toolbar .search-field{flex:2 1 220px!important}.compact-toolbar .short-field{flex:.55 1 80px!important}
.omi-prompt-summary{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.omi-prompt-tools{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.omi-tool-card{overflow:hidden}
.omi-tool-card>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:54px}.omi-tool-card>summary::-webkit-details-marker{display:none}.omi-tool-card>summary span:first-child{display:grid;gap:2px}.omi-tool-card>summary small{color:#657b73;font-weight:500}.omi-tool-card[open]>summary{padding-bottom:10px;border-bottom:1px solid #e5ece9}.tool-body{padding-top:12px}
.omi-bundle-form{display:grid;gap:10px}.omi-drop-zone{border:1.5px dashed #9fc7ba;background:#f7fbf9;border-radius:16px;padding:16px;display:grid;gap:4px;cursor:pointer}.omi-drop-zone input{margin-bottom:6px;max-width:100%}.omi-drop-zone span{font-size:.84rem;color:#60756f}.omi-import-result{margin-top:10px;padding:11px 12px;border-radius:14px;background:#edf8f3;border:1px solid #cee7dc;line-height:1.45}.omi-import-result small{display:block;margin-top:6px;color:#735d24}
.omi-prompt-browser{margin-top:0!important;gap:10px!important}.omi-prompt-browser.omi-admin-grid.two{grid-template-columns:280px minmax(0,1fr)!important}.omi-package-panel{position:sticky;top:72px;align-self:start;max-height:calc(100dvh - 150px);overflow:auto}.omi-package-list,.omi-question-list{gap:7px!important}.omi-package-card,.omi-question-card{padding:11px!important;border-radius:15px!important}.omi-package-card h3,.omi-question-card h3{font-size:.98rem!important;margin:0 0 3px!important}.omi-package-card .omi-note,.omi-question-card .omi-note{font-size:.8rem;line-height:1.35}.omi-package-card .omi-card-actions,.omi-question-actions{margin-top:7px!important;gap:5px!important}.omi-question-card.active{outline:2px solid rgba(11,123,98,.22);border-color:#7fc6b4}.omi-question-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.omi-empty-compact{padding:14px;border:1px dashed #cfdbd7;border-radius:14px;background:#fafcfb;color:#667971;text-align:center}.omi-detail-card .omi-outline{margin-top:10px;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.omi-detail-card .omi-outline-item{padding:9px!important;border-radius:12px!important;font-size:.85rem}.omi-generated-preview{margin-top:10px}.omi-btn.is-loading{position:relative;padding-left:34px!important}.omi-btn.is-loading::before{content:"";position:absolute;left:12px;width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:omi-v32-spin .65s linear infinite}@keyframes omi-v32-spin{to{transform:rotate(360deg)}}

/* Loading transition: compact, professional and not shown during background polling. */
.omi-page-loader{position:fixed;inset:0;z-index:20000;display:grid;place-items:center;background:rgba(244,248,246,.84);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;visibility:hidden;transition:opacity .16s ease,visibility .16s ease}.omi-navigating .omi-page-loader{opacity:1;visibility:visible}.omi-loader-card{min-width:170px;padding:18px 20px;border:1px solid #d6e3de;border-radius:24px;background:#fff;box-shadow:0 24px 70px rgba(17,54,44,.18);display:grid;justify-items:center;gap:10px}.omi-loader-mark{position:relative;width:54px;height:54px;border-radius:18px;background:#075f4d;display:grid;place-items:center;color:#fff;font-weight:950;box-shadow:0 7px 0 #06493c}.omi-loader-mark::after{content:"";position:absolute;inset:-7px;border:3px solid #b9ded2;border-right-color:transparent;border-radius:23px;animation:omi-v32-spin .8s linear infinite}.omi-loader-card span{font-size:.86rem;color:#536b63;font-weight:750}

/* Stronger, clearer notifications. */
.omi-toast-stack{z-index:21000!important}.omi-toast{border-radius:17px!important;padding:12px 14px!important;box-shadow:0 16px 36px rgba(16,45,38,.22)!important}.omi-toast.warn{background:#6f5217!important}.omi-toast.error{background:#8d3333!important}.omi-toast.info{background:#245f88!important}

/* Practice answer feedback. Official exams never reveal correctness. */
@keyframes omi-correct-glow{0%{box-shadow:inset 0 0 0 0 rgba(28,167,123,0)}35%{box-shadow:inset 0 0 0 999px rgba(28,167,123,.07)}100%{box-shadow:inset 0 0 0 0 rgba(28,167,123,0)}}
@keyframes omi-wrong-shake{20%{transform:translateX(-2px)}40%{transform:translateX(2px)}60%{transform:translateX(-1px)}80%{transform:translateX(1px)}}
body.omi-answer-correct main{animation:omi-correct-glow .65s ease}.omi-feedback-correct{animation:omi-correct-glow .65s ease}.omi-feedback-wrong{animation:omi-wrong-shake .35s ease}

@media(max-width:920px){.omi-prompt-tools{grid-template-columns:1fr}.omi-prompt-browser.omi-admin-grid.two{grid-template-columns:1fr!important}.omi-package-panel{position:static;max-height:none}.omi-detail-card .omi-outline{grid-template-columns:1fr}}
@media(max-width:620px){
  body.omi-layout:not(.legacy-app):has(>#omi-fixed-header)>main{padding-top:8px!important}
  body.omi-layout main.omi-page-shell,body.omi-layout main.omi-directory,body.omi-layout main.wrap{padding-left:9px!important;padding-right:9px!important}
  body.omi-layout .home-intro{padding:13px 14px!important;border-radius:19px!important}
  body.omi-layout .home-focus-card{min-height:112px!important;padding:12px!important;grid-template-columns:42px minmax(0,1fr)!important;border-radius:18px!important}
  body.omi-layout .home-card-icon{width:42px!important;height:42px!important;border-radius:14px!important}
  body.omi-layout .home-focus-card strong{font-size:1.1rem!important}
  body.omi-layout .home-focus-card>b{min-height:38px!important;font-size:.82rem!important}
  body.omi-layout .menu-grid-new a{min-height:54px!important}
  body.omi-layout.omi-admin .portal-job{min-height:78px!important;padding:10px!important}
  body.omi-layout.omi-admin .portal-section{padding:10px!important}
  body.omi-layout .progress-intro p,body.omi-layout .section-heading p{display:none!important}
  .omi-prompt-hero,.omi-tool-card,.omi-package-panel,.omi-question-panel,.omi-detail-card{padding:11px!important}
  .omi-prompt-hero .omi-note{display:none}.omi-question-actions .omi-btn{flex:1 1 auto}.omi-question-top{display:block}.omi-question-top>.omi-pill{margin-top:4px}
  .omi-modal-backdrop{padding:8px!important}.omi-modal{margin:10px auto!important;border-radius:19px!important;padding:13px!important}.omi-pre{max-height:62dvh!important;font-size:.82rem!important;padding:12px!important}
}
@media(prefers-reduced-motion:reduce){.omi-loader-mark::after,.omi-btn.is-loading::before{animation:none}.omi-page-loader{transition:none}body.omi-answer-correct main,.omi-feedback-correct,.omi-feedback-wrong{animation:none}}

/* V33 — denser vertical rhythm across all non-exam pages. */
:root{--omi-v33-content-gap:10px;--omi-v33-footer-clear:72px}
body.omi-layout:not(.omi-exam-active):not(.omi-secure-exam)>main,
body.omi-layout:not(.omi-exam-active):not(.omi-secure-exam)>.archive-main,
body.omi-layout:not(.omi-exam-active):not(.omi-secure-exam)>.guidance-main{
  min-height:0!important;height:auto!important;margin-top:0!important;margin-bottom:0!important;
  padding-top:8px!important;padding-bottom:12px!important;
}
body.omi-layout:not(.omi-exam-active):not(.omi-secure-exam) main>*:first-child{margin-top:0!important}
body.omi-layout:not(.omi-exam-active):not(.omi-secure-exam) main>*:last-child{margin-bottom:0!important}
body.omi-layout:not(.omi-exam-active):not(.omi-secure-exam) main section{scroll-margin-top:72px}
body.omi-layout:not(.omi-exam-active):not(.omi-secure-exam) .omi-page-shell,
body.omi-layout:not(.omi-exam-active):not(.omi-secure-exam) .omi-directory,
body.omi-layout:not(.omi-exam-active):not(.omi-secure-exam) main.wrap{gap:var(--omi-v33-content-gap)!important}

/* Home screenshots showed too much empty space above/below primary cards. */
body.omi-layout .omi-home{padding-top:8px!important;padding-bottom:10px!important}
body.omi-layout .home-intro{margin:0!important}
body.omi-layout .home-focus{margin:9px 0!important}
body.omi-layout .home-secondary{margin:4px 0 0!important;padding:0!important}
body.omi-layout .compact-links{gap:7px!important}
body.omi-layout .compact-links a{min-height:54px!important;padding:9px 12px!important}

/* Admin portal and result/monitor pages: remove dead vertical bands. */
body.omi-layout.omi-admin .admin-portal>.top{min-height:0!important;margin:0!important;padding:0 2px!important}
body.omi-layout.omi-admin .admin-portal>.top h1{font-size:1.16rem!important}
body.omi-layout.omi-admin .portal-primary{margin:0!important}
body.omi-layout.omi-admin .portal-job{min-height:76px!important;padding:9px 11px!important}
body.omi-layout.omi-admin .portal-section{margin:0!important}
body.omi-layout.omi-admin .portal-rows a{min-height:48px!important}
body.omi-layout .history-intro,body.omi-layout .monitor-intro{margin:0 0 6px!important;padding:0!important}
body.omi-layout .history-intro h1,body.omi-layout .monitor-intro h1{font-size:1.45rem!important;line-height:1.08!important}
body.omi-layout .history-intro p,body.omi-layout .monitor-intro p{line-height:1.35!important}
body.omi-layout .archive-note{margin:7px 0!important}
body.omi-layout .updated{margin:6px 2px!important}
body.omi-layout .panel>.empty{padding:18px!important}

/* Learning/progress/state pages. */
body.omi-layout .progress-shell{padding-top:7px!important}
body.omi-layout .progress-shell>section{margin:0!important}
body.omi-layout .progress-intro{max-width:none!important}
body.omi-layout .progress-summary{gap:6px!important}
body.omi-layout .progress-overview-card{min-height:104px!important;padding:13px!important}
body.omi-layout .mastery-ring{width:72px!important;height:72px!important;flex-basis:72px!important}
body.omi-layout .progress-item,body.omi-layout .recommendation-item{padding:10px!important}
body.omi-layout .omi-state-card{padding:12px!important}

/* Forms and exam-entry pages use more of the phone screen. */
body.omi-layout .student-login-main,body.omi-layout .assessment-login,body.omi-layout .login-card{margin-top:7px!important}
body.omi-layout .card,body.omi-layout .panel,body.omi-layout .omi-card{scroll-margin-top:72px}
body.omi-layout form{margin-block:0}
body.omi-layout input,body.omi-layout select,body.omi-layout textarea,body.omi-layout button{scroll-margin:88px}

/* Prompt library: 5 filters remain usable without tall rows. */
.omi-prompt-page .compact-toolbar .field{flex:1 1 128px!important}
.omi-prompt-page .compact-toolbar .search-field{flex:2 1 230px!important}
.omi-prompt-page .omi-package-card{width:100%;text-align:left;cursor:pointer}
.omi-prompt-page .omi-package-card .omi-flex-between{align-items:center}

/* Generic form submit feedback. */
.omi-action-pending{position:relative;pointer-events:none;opacity:.76!important}
.omi-action-pending::after{content:"";width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;margin-left:8px;display:inline-block;vertical-align:-2px;animation:omi-v32-spin .65s linear infinite}

@media(max-width:620px){
  body.omi-layout:not(.omi-exam-active):not(.omi-secure-exam)>main,
  body.omi-layout:not(.omi-exam-active):not(.omi-secure-exam)>.archive-main,
  body.omi-layout:not(.omi-exam-active):not(.omi-secure-exam)>.guidance-main{padding-top:5px!important;padding-bottom:8px!important}
  body.omi-layout .home-intro{padding:11px 12px!important}.omi-home .home-focus{gap:7px!important}
  body.omi-layout .home-focus-card{min-height:102px!important;padding:10px 11px!important}
  body.omi-layout .home-focus-card strong{font-size:1.02rem!important}
  body.omi-layout.omi-admin .portal-job{min-height:70px!important}
  body.omi-layout .history-intro p,body.omi-layout .monitor-intro p{display:none!important}
  .omi-prompt-page .compact-toolbar .field{flex:1 1 calc(50% - 8px)!important;min-width:0!important}
  .omi-prompt-page .compact-toolbar .search-field{flex-basis:100%!important}
}

/* Auth pages are intentionally nav-light, but keep the same compact V33 rhythm. */
body.omi-login,body.omi-auth-page{min-height:100dvh!important;padding-top:calc(64px + env(safe-area-inset-top) + 8px)!important;padding-bottom:max(14px,env(safe-area-inset-bottom))!important}
body.omi-login #omi-fixed-header,body.omi-auth-page #omi-fixed-header{height:60px!important;min-height:60px!important;padding:7px 10px!important}
body.omi-login .login,body.omi-auth-page .v29-auth-card{margin:0 auto!important;border-radius:20px!important;padding:clamp(16px,4vw,24px)!important;box-shadow:0 12px 34px rgba(18,62,52,.10)!important}
body.omi-login .brand{margin-bottom:14px!important}body.omi-login .mark{width:46px!important;height:46px!important;border-radius:14px!important}
body.omi-login h1,body.omi-auth-page h1{margin-top:0!important;margin-bottom:8px!important}
body.omi-login .field{margin-top:10px!important}body.omi-login .field input,body.omi-auth-page input{background:#fff!important;color:#14231e!important;opacity:1!important;-webkit-text-fill-color:#14231e!important}
body.omi-login .submit{margin-top:14px!important}body.omi-login .links{margin-top:12px!important}
body.omi-auth-page .v29-auth-card p{margin:4px 0 12px!important}body.omi-auth-page .v29-auth-back{margin-top:12px!important}
@media(max-width:480px){body.omi-login,body.omi-auth-page{padding-left:9px!important;padding-right:9px!important;padding-top:calc(60px + env(safe-area-inset-top) + 6px)!important}body.omi-login .login,body.omi-auth-page .v29-auth-card{padding:15px 14px!important}}
