/* NACDA mobile responsive layer v1 — presentation only; no assessment logic changes. */
html { -webkit-text-size-adjust: 100%; }
#app, #app main, #app .card, #app .question, #app .lesson-content { min-width: 0; }
#app img, #app video, #app canvas { max-width: 100%; height: auto; }
#app :is(pre,code) { overflow-wrap: anywhere; }
#app pre { white-space: pre-wrap; overflow-x: auto; max-width: 100%; }
#app :is(.table-wrap,.pbq-diagram,.lesson-diagram) { max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; }
#app :is(.lesson-diagram,.pbq-diagram) img { max-width:none; }
#app :is(.actions,.row,.topline,.section-heading,.sticky,.sticky-actions) { min-width:0; }
#app :is(button,[role="button"],input,select,textarea) { touch-action:manipulation; }
#app :is(input,select,textarea) { max-width:100%; }
#app :is(.card,.question,.lesson-content,.feedback) { overflow-wrap:anywhere; }
.nacda-mobile-toolbar { display:none; }
@media (max-width: 900px) {
  #app :is(.shell,.layout) { display:block; min-height:0; }
  #app :is(.shell,.layout) > aside { display:none !important; position:static; height:auto; max-height:none; overflow:visible; padding:16px 18px; border-bottom:1px solid var(--nacda-line,#35516e); }
  #app :is(.shell,.layout).nacda-menu-open > aside { display:flex !important; }
  #app :is(.shell,.layout) > aside nav { display:grid; gap:5px; margin:12px 0; width:100%; }
  #app :is(.shell,.layout) > aside nav button { display:block; width:100%; min-height:44px; padding:12px 14px; text-align:left; }
  #app :is(.shell,.layout) > aside .identity, #app :is(.shell,.layout) > aside .aside-bottom { margin-top:8px; padding-top:12px; display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
  .nacda-mobile-toolbar { display:flex; align-items:center; gap:12px; position:sticky; top:0; z-index:40; background:var(--nacda-sidebar,#081c30); color:var(--nacda-text,#fff); border-bottom:1px solid var(--nacda-line,#35516e); padding:8px 14px; min-height:60px; }
  #app .nacda-mobile-toggle { display:inline-flex; align-items:center; justify-content:center; gap:8px; background:#193a56; color:#fff; border:1px solid #6e9fba; border-radius:10px; padding:10px 14px; min-height:44px; font-size:1rem; font-weight:750; }
  .nacda-mobile-title { font-weight:800; font-size:.92rem; line-height:1.25; }
  #app :is(.shell,.layout) > main { width:100%; max-width:none; min-width:0; padding:20px 16px 44px; }
  #app :is(.grid,.grid.three,.tracks,.teaching-columns,.split) { grid-template-columns:minmax(0,1fr); }
  #app :is(.row,.actions,.section-heading,.sticky,.sticky-actions) { flex-wrap:wrap; }
  #app :is(.lesson-diagram,.pbq-diagram) img { min-width:0; width:100%; max-width:100%; }
  #app :is(.teaching-editor,.lesson-content,.card,.question) { max-width:100%; }
  #app table { font-size:.85rem; }
  #app th, #app td { padding:9px 10px; }
  #app :is(.table-wrap,.nacda-mobile-table-scroll) { overflow-x:auto; -webkit-overflow-scrolling:touch; }
  #app .nacda-mobile-table-scroll > table { width:max-content; min-width:100%; }
  #app :is(.card,.login) { max-width:100%; }
}
@media (max-width: 600px) {
  #nacda-portal-banner img { width:100%; height:auto; }
  #app :is(.shell,.layout) > main { padding:16px 12px 42px; }
  #app :is(.card,.login,.hero) { padding:16px; border-radius:14px; }
  #app h1 { font-size:clamp(1.55rem,7vw,2.1rem); line-height:1.16; overflow-wrap:anywhere; }
  #app h2 { font-size:clamp(1.2rem,5.2vw,1.5rem); }
  #app :is(.actions,.sticky,.sticky-actions) { gap:10px; }
  #app :is(button, .answer, label:has(input[type="radio"]), label:has(input[type="checkbox"])) { min-height:44px; }
  #app :is(input,select,textarea) { font-size:16px; }
  #app .question { padding-inline:0; }
  #app .pbq-part { max-width:100%; }
  #app .nacda-mobile-table-scroll { margin:0 -2px; }
  #app .nacda-mobile-title { max-width:calc(100vw - 150px); }
}
@media print {
  .nacda-mobile-toolbar { display:none!important; }
  #app :is(.shell,.layout) > aside { display:none!important; }
}
