/* OMI Pro V29 — mobile smoothness, screen efficiency, admin/content controls */
:root{--v29-safe-bottom:max(10px,env(safe-area-inset-bottom));--v29-footer-h:76px;--v29-ease:cubic-bezier(.22,.61,.36,1)}

/* Smooth but light: only compositor-friendly transitions. */
body.legacy-app button,body.legacy-app .option,body.legacy-app .discussion-action,body.legacy-app .palette button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
body.legacy-app .question-card{overscroll-behavior:contain;scroll-padding-block:14px calc(var(--v29-footer-h) + 28px);-webkit-overflow-scrolling:touch}
@media (prefers-reduced-motion:no-preference){
 body.legacy-app .option,body.legacy-app .discussion-action,body.legacy-app .q-nav>button,body.legacy-app .palette button{transition:transform .14s var(--v29-ease),border-color .16s ease,background-color .16s ease,box-shadow .16s ease,opacity .16s ease!important}
 body.legacy-app .option:active,body.legacy-app .discussion-action:active,body.legacy-app .q-nav>button:active{transform:scale(.985)!important}
 body.legacy-app .question-enter{animation:v29QuestionIn .18s var(--v29-ease)!important}
 @keyframes v29QuestionIn{from{opacity:.65;transform:translateY(5px)}to{opacity:1;transform:none}}
 body.legacy-app .sidebar{transition:transform .2s var(--v29-ease),opacity .18s ease!important}
}

/* Full discussion: remove the nested narrow-column effect and use screen width efficiently. */
body.legacy-app .v28-full-feedback{width:100%!important;max-width:none!important;margin:0!important}
body.legacy-app .full-discussion{width:100%!important;max-width:none!important;margin:12px 0 0!important;border-radius:17px!important;overflow:clip!important}
body.legacy-app .full-discussion-head{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:10px!important;padding:13px 14px!important}
body.legacy-app .full-discussion-head>div{min-width:0;flex:1}
body.legacy-app .full-discussion-head small{font-size:.64rem!important;line-height:1.35!important;letter-spacing:.055em!important}
body.legacy-app .full-discussion-head h3{font-size:1rem!important;line-height:1.25!important}
body.legacy-app .attempt-status{flex:0 1 auto!important;font-size:.7rem!important;line-height:1.25!important;padding:5px 8px!important;white-space:normal!important;text-align:center!important}
body.legacy-app .solution-intro{padding:10px 14px!important;font-size:.84rem!important;line-height:1.48!important}
body.legacy-app .solution-step{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:8px!important;width:auto!important;max-width:none!important;margin:9px 10px!important;padding:11px!important;border-radius:14px!important;box-shadow:0 3px 10px rgba(26,58,49,.035)!important;content-visibility:auto;contain-intrinsic-size:420px}
body.legacy-app .solution-step-head{grid-column:1/-1!important;margin:0 0 2px!important;grid-template-columns:32px minmax(0,1fr)!important;gap:9px!important}
body.legacy-app .solution-step-head>span{width:32px!important;height:32px!important;border-radius:9px!important}
body.legacy-app .solution-step-head h4{font-size:.96rem!important;line-height:1.25!important}
body.legacy-app .solution-step-head small{font-size:.62rem!important}
body.legacy-app .solution-block{min-width:0!important;margin:0!important;padding:9px 10px!important;border-radius:10px!important}
body.legacy-app .solution-block b{font-size:.72rem!important;line-height:1.25!important;margin-bottom:3px!important}
body.legacy-app .solution-block p,body.legacy-app .solution-block li{font-size:.9rem!important;line-height:1.46!important;overflow-wrap:anywhere}
body.legacy-app .solution-block.model,body.legacy-app .solution-block.check{grid-column:1/-1!important}
body.legacy-app .solution-block.check ul{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;column-gap:18px!important;margin:3px 0 0!important;padding-left:1.05rem!important}
body.legacy-app .solution-final{margin:10px!important;padding:13px 14px!important;border-radius:14px!important}
body.legacy-app .solution-final h4{font-size:1rem!important;margin:3px 0 7px!important}
body.legacy-app .solution-final p{font-size:.9rem!important;line-height:1.48!important;margin:.35rem 0!important}

/* Mobile: full width, flat sections, no box-inside-box waste. */
@media(max-width:640px){
 body.legacy-app .question-card{padding-bottom:calc(var(--v29-footer-h) + var(--v29-safe-bottom) + 16px)!important}
 body.legacy-app .full-discussion{width:calc(100% + 6px)!important;margin-left:-3px!important;margin-right:-3px!important;border-radius:15px!important}
 body.legacy-app .full-discussion-head{display:grid!important;grid-template-columns:1fr!important;padding:11px 11px 9px!important}
 body.legacy-app .attempt-status{width:max-content!important;max-width:100%!important;text-align:left!important}
 body.legacy-app .solution-intro{padding:9px 11px!important;font-size:.8rem!important}
 body.legacy-app .solution-step{grid-template-columns:1fr!important;gap:0!important;margin:7px 6px!important;padding:9px 10px!important;border-radius:12px!important}
 body.legacy-app .solution-step-head{grid-column:1!important;margin-bottom:4px!important}
 body.legacy-app .solution-block,body.legacy-app .solution-block.reason,body.legacy-app .solution-block.model,body.legacy-app .solution-block.check,body.legacy-app .solution-block.context{grid-column:1!important;background:transparent!important;border:0!important;border-top:1px solid color-mix(in srgb,var(--line) 76%,transparent)!important;border-radius:0!important;padding:8px 1px!important}
 body.legacy-app .solution-block:first-of-type{border-top:0!important}
 body.legacy-app .solution-block p,body.legacy-app .solution-block li{font-size:.89rem!important;line-height:1.43!important}
 body.legacy-app .solution-block.check ul{grid-template-columns:1fr!important;gap:0!important}
 body.legacy-app .solution-final{margin:7px 6px 9px!important;padding:11px!important}
}

/* Question-number navigation: smaller cells; drawer can scroll past fixed footer. */
@media(max-width:920px){
 body.legacy-app .sidebar{position:fixed!important;inset:64px 8px calc(var(--v29-footer-h) + var(--v29-safe-bottom) + 8px) 8px!important;height:auto!important;max-height:none!important;overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch!important;scroll-padding-bottom:110px!important;padding-bottom:26px!important;border-radius:17px!important}
 body.legacy-app .sidebar .palette{grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:6px!important;margin-bottom:10px!important}
 body.legacy-app .sidebar .palette button{min-width:0!important;width:100%!important;aspect-ratio:1/1!important;min-height:34px!important;height:auto!important;padding:2px!important;border-radius:9px!important;font-size:.78rem!important;line-height:1!important}
 body.legacy-app .sidebar .side-actions{position:static!important;display:grid!important;gap:7px!important;margin:10px 0 0!important;padding:0 0 18px!important;background:transparent!important}
 body.legacy-app .sidebar .side-actions button{min-height:43px!important}
 body.legacy-app .sidebar #finishBtn{scroll-margin-bottom:105px!important}
}
@media(max-width:390px){body.legacy-app .sidebar .palette{grid-template-columns:repeat(5,minmax(0,1fr))!important}}

/* Admin/auth shared V29 components. */
.omi-v29-admin,.omi-auth-page{--v29-green:#075f4d;--v29-line:#dce6e2;--v29-muted:#60736b;--v29-bg:#f2f7f5}
.v29-settings{max-width:1040px!important;padding-bottom:50px!important}.v29-lead{max-width:760px;color:var(--v29-muted,#60736b);line-height:1.6}.v29-alert{padding:11px 13px;border-radius:12px;margin:12px 0;font-weight:700;line-height:1.45}.v29-alert.ok{background:#ecf8f2;border:1px solid #bcdccb;color:#155c47}.v29-alert.error{background:#fff0f0;border:1px solid #efc7c7;color:#8a2929}.v29-status{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;font-size:.72rem;font-weight:900;letter-spacing:.06em}.v29-status.good{background:#e6f5ef;color:#09644e}.v29-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.v29-form-grid label,.v29-inline-form label,.v29-auth-card label{display:grid;gap:6px;font-weight:800}.v29-form-grid input,.v29-form-grid select,.v29-inline-form input,.v29-auth-card input,.v29-auth-card select{width:100%;min-height:45px;padding:10px 12px;border:1px solid var(--v29-line,#dce6e2);border-radius:11px;background:#fff;font:inherit}.v29-form-action{align-self:end}.v29-inline-form{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.v29-inline-form label{flex:1 1 260px}.v29-help{font-size:.82rem;line-height:1.5;color:var(--v29-muted,#60736b)}
.omi-auth-page{min-height:100vh;background:var(--v29-bg);padding:86px 12px 32px}.v29-auth-card{width:min(520px,100%);margin:0 auto;background:#fff;border:1px solid var(--v29-line);border-radius:20px;padding:clamp(18px,5vw,30px);box-shadow:0 18px 45px rgba(18,62,52,.1)}.v29-auth-card h1{margin:.25rem 0 .5rem}.v29-auth-card p{color:var(--v29-muted);line-height:1.55}.v29-auth-card form{display:grid;gap:12px}.v29-auth-card .btn{margin-top:4px}.v29-auth-back{display:inline-block;margin-top:16px;color:var(--v29-green);font-weight:800;text-decoration:none}.v29-block{display:flex!important;justify-content:center!important;text-decoration:none!important;width:100%!important;margin-top:14px!important}

/* Question editor: richer option media without making rows unwieldy. */
.omi-question-bank .option-edit-row{grid-template-columns:34px minmax(0,1fr) auto 38px!important;align-items:start!important}.omi-question-bank .option-edit-main{display:grid;gap:7px;min-width:0}.omi-question-bank .option-media-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr) auto;gap:6px;align-items:center}.omi-question-bank .option-media-row input{min-width:0}.omi-question-bank .option-media-row input[type=file]{max-width:210px;font-size:.76rem}.omi-question-bank .option-thumb{display:block;max-width:180px;max-height:110px;object-fit:contain;margin-top:5px;border:1px solid var(--line);border-radius:9px;background:#fff}.omi-question-bank .preview-option{align-items:flex-start!important}.omi-question-bank .preview-option .preview-option-body{display:grid;gap:6px}.omi-question-bank .preview-option img{display:block;max-width:min(260px,100%);max-height:160px;object-fit:contain;border-radius:9px;border:1px solid var(--line);background:#fff}.qbank-prompt-toolbar{display:flex;gap:7px;flex-wrap:wrap;margin:-2px 0 8px}
@media(max-width:700px){.v29-form-grid{grid-template-columns:1fr}.omi-question-bank .option-edit-row{grid-template-columns:30px minmax(0,1fr) 34px!important}.omi-question-bank .answer-key{grid-column:2!important;width:max-content}.omi-question-bank .option-media-row{grid-template-columns:1fr}.omi-question-bank .option-media-row button{width:100%}}

/* Manual package builder. */
.v29-package-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:14px;align-items:start}.v29-package-list{display:grid;gap:7px;max-height:68vh;overflow:auto;overscroll-behavior:contain;padding-right:3px}.v29-bank-item,.v29-slot{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:9px 10px;border:1px solid var(--line,#dce6e2);border-radius:11px;background:#fff}.v29-bank-item small,.v29-slot small{display:block;color:#667a72;margin-top:3px}.v29-slot-index{display:inline-grid;place-items:center;width:27px;height:27px;border-radius:8px;background:#e9f4ef;color:#075f4d;font-weight:900;margin-right:8px}.v29-slot-actions{display:flex;gap:4px}.v29-slot-actions button,.v29-bank-item button{min-width:34px;min-height:34px;border:1px solid var(--line,#dce6e2);background:#f7faf9;border-radius:8px;cursor:pointer}.v29-package-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.v29-package-meta label{display:grid;gap:5px;font-weight:800}.v29-package-meta input,.v29-package-meta select{min-height:43px;border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:#fff;font:inherit}.v29-empty{padding:18px;text-align:center;color:#64766f;border:1px dashed var(--line);border-radius:12px}.v29-count{font-size:.8rem;font-weight:850;color:#075f4d;background:#e9f4ef;padding:5px 9px;border-radius:999px}
@media(max-width:850px){.v29-package-layout{grid-template-columns:1fr}.v29-package-list{max-height:44vh}.v29-package-meta{grid-template-columns:1fr 1fr}.v29-package-meta label:last-child{grid-column:1/-1}}

/* Juknis manager/viewer. */
.v29-juknis-current{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center}.v29-juknis-frame{width:100%;height:min(72vh,900px);border:1px solid var(--line,#dce6e2);border-radius:14px;background:#eef3f1}.v29-file-meta{font-size:.85rem;color:#61736c;line-height:1.5}.v29-upload-drop{padding:16px;border:1px dashed #aec7bd;border-radius:13px;background:#f7fbf9}
@media(max-width:650px){.v29-juknis-current{grid-template-columns:1fr}.v29-juknis-current .btn{width:100%}.v29-juknis-frame{height:64vh}}
/* Images embedded in official question/option content. */
.question-text img,.question-image img,.question-visual img{display:block;max-width:100%;height:auto;max-height:420px;object-fit:contain;margin:8px auto;border-radius:10px}.option .option-content{display:grid;gap:7px;min-width:0;overflow-wrap:anywhere}.option-choice-image{display:block;max-width:min(260px,100%);max-height:170px;object-fit:contain;border:1px solid var(--line,#dce6e2);border-radius:9px;background:#fff}

/* V29 performance refinement: avoid expensive blur/shadow work on narrow mobile GPUs. */
@media(max-width:920px){
 body.legacy-app .app-header{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
 body.legacy-app .question-card,body.legacy-app .full-discussion,body.legacy-app .solution-step{box-shadow:0 2px 8px rgba(20,55,46,.045)!important}
 body.legacy-app .sidebar{contain:layout paint!important}
}

/* Official-test palette also remains usable above its fixed action row. */
@media(max-width:820px){
 body.omi-secure-exam .palette-drawer,body.omi-exam-active .palette-drawer{inset:7px 7px calc(66px + max(8px,env(safe-area-inset-bottom))) 7px!important;overflow-y:auto!important;overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch!important;padding-bottom:18px!important}
 body.omi-secure-exam .palette,body.omi-exam-active .palette{grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:5px!important}
 body.omi-secure-exam .palette button,body.omi-exam-active .palette button{min-width:0!important;min-height:34px!important;aspect-ratio:1!important;font-size:.78rem!important}
}
@media(max-width:390px){body.omi-secure-exam .palette,body.omi-exam-active .palette{grid-template-columns:repeat(5,minmax(0,1fr))!important}}
