/* 首屏与过渡态独立于业务脚本加载，旧导航不承担加载占位。 */
#workspace-route-bootstrap{display:none}
html[data-workspace-boot] .app-shell{display:none!important}
html[data-workspace-boot] #workspace-route-bootstrap{display:grid;min-height:100dvh;place-items:center;padding:24px;box-sizing:border-box;background:#fffdf4;color:#5f5042}
body[data-route-pending]>.app-shell>.sidebar,body[data-route-pending]>.app-shell>.main>.topbar,
body:has(.route-workspace)>.app-shell>.sidebar,body:has(.route-workspace)>.app-shell>.main>.topbar,
body:has(.route-workspace) [data-workspace-global]{display:none!important}
body:has(.route-workspace)>.app-shell{display:block!important;max-width:none;padding:0;margin:0}
body:has(.route-workspace)>.app-shell>.main,body:has(.route-workspace) #app-view{max-width:none;width:100%;padding:0;margin:0}
/* 模块替换占位外壳后，路由仍可能在等数据；侧栏隐藏时正文必须跨满两栏。 */
body[data-route-pending]>.app-shell>.main{grid-column:1 / -1;min-width:0}
.route-workspace{display:grid;grid-template-columns:155px minmax(0,1fr);min-height:100dvh;background:radial-gradient(circle,#ffd55e3d 1px,transparent 2px) 0 0/22px 22px,#fffdf4;color:#5f5042}
.route-workspace *{box-sizing:border-box}
.route-workspace-sidebar{padding:24px 12px;background:#dff5ff;border-right:3px dashed #a6daf0;display:flex;flex-direction:column;align-items:center;gap:20px}
.route-workspace-sidebar>img{width:64px;height:64px;border-radius:50%;background:white}
.route-workspace-sidebar>strong{font-size:20px;text-align:center}
.route-workspace-sidebar nav{display:flex;flex-direction:column;gap:10px;width:100%}
.route-workspace-sidebar a{display:flex;align-items:center;gap:8px;padding:12px 8px;border-radius:12px;color:#5f5042;text-decoration:none;font-weight:700}
.route-workspace-sidebar a[aria-current=page]{background:#e8ffe8;outline:2px solid #a5d99d}
.route-workspace-main{min-width:0;padding:0}
.route-workspace-content{min-width:0;padding:24px 22px 40px}
.route-workspace-content>.panel{border:2px solid #ead8a9;border-radius:20px;background:#fffefa;color:#5f5042;box-shadow:none}
.route-workspace-content .route-loading-panel{min-height:220px;display:flex;align-items:center;justify-content:center;gap:18px}
.route-workspace-content .route-loading-panel .eyebrow{display:none}
.route-workspace-content .route-loading-panel h2{color:#5f5042}
body[data-route-pending] #global-feedback.is-loading{display:none!important}
@media(max-width:760px){.route-workspace{display:block}.route-workspace-content{padding:12px 14px 32px}.route-workspace-content .route-loading-panel{min-height:180px}}
.route-workspace:not(:has(>.route-workspace-sidebar)){display:block}


/* 阅读、口语只在公共宽屏断点保留侧栏，窄屏加载时沿用底部导航。 */
@media(min-width:901px){
 body[data-route-pending]:not(:has(.route-workspace)):has([data-reading-workspace],[data-speaking-bank-workspace])>.app-shell>.sidebar{display:flex!important}
 body[data-route-pending]:not(:has(.route-workspace)):has([data-reading-workspace],[data-speaking-bank-workspace])>.app-shell>.main{grid-column:2}
}
body[data-route-pending] .route-loading-panel{background:#fffefa;border:2px solid #ead8a9;border-radius:20px;color:#5f5042;box-shadow:none}
body[data-route-pending] .route-loading-panel .eyebrow{display:none}
