/* Only these new objective UI responses receive this scoped shell refinement. */
body:has(.test-library)>header,body:has(.test-session)>header{height:80px;padding:0 32px;gap:22px}
body:has(.test-library)>header .brand,body:has(.test-session)>header .brand{font-size:28px;gap:13px;line-height:1.25}
body:has(.test-library)>header .brand>b,body:has(.test-session)>header .brand>b{display:flex;align-items:center;width:40px;height:40px}
body:has(.test-library)>header .brand svg,body:has(.test-session)>header .brand svg{display:block;width:40px;height:38px;color:#078c84}
body:has(.test-library)>header>span,body:has(.test-session)>header>span{font-size:var(--yk-type-meta);color:#617080}
body:has(.test-library)>aside,body:has(.test-session)>aside{top:80px;width:224px;padding:26px 11px 22px}
body:has(.test-library)>aside nav,body:has(.test-session)>aside nav{gap:8px}
body:has(.test-library)>aside nav a,body:has(.test-session)>aside nav a{font-size:var(--yk-type-nav);line-height:var(--yk-line-ui);min-height:58px;padding:14px 20px;gap:17px;color:#4c5a69;border-radius:9px}
body:has(.test-library)>aside nav a.on,body:has(.test-session)>aside nav a.on{color:#05847d;background:linear-gradient(115deg,#e6f5f2,#eff8f5)}
body:has(.test-library)>aside nav a b,body:has(.test-session)>aside nav a b{display:flex;align-items:center;justify-content:center;height:25px;width:25px;flex:none}
body:has(.test-library)>aside nav svg,body:has(.test-session)>aside nav svg{width:25px;height:25px;display:block}
body:has(.test-library)>aside>small,body:has(.test-session)>aside>small{padding:18px 20px;font-size:14px;line-height:1.8}
body:has(.test-library)>.mobile b,body:has(.test-session)>.mobile b{display:flex;align-items:center;justify-content:center}
body:has(.test-library)>.mobile b svg,body:has(.test-session)>.mobile b svg{width:22px;height:22px}
@media(max-width:1000px){body:has(.test-library)>header,body:has(.test-session)>header{height:64px;padding:0 16px;gap:10px}body:has(.test-library)>header .brand,body:has(.test-session)>header .brand{font-size:22px;gap:9px}body:has(.test-library)>header .brand>b,body:has(.test-session)>header .brand>b{width:29px;height:29px}body:has(.test-library)>header .brand svg,body:has(.test-session)>header .brand svg{width:29px;height:29px}}

/* Reference 07—09 redteam round3. No styles outside the new objective UI. */
/* Round4 adds icon geometry and wrapping below; existing round3 rules retained. */
.test-library h1{font-size:var(--yk-type-page);transform:none}
.test-library .tl-tabs{gap:42px}
.test-session .ts-stem{font-weight:400}
.test-session .ts-card-grid .is-done:before{opacity:1}
.test-session .ts-card-grid a.is-done:before{display:none}
.test-session .ts-card-grid a.is-done:not(.is-current){background-image:radial-gradient(circle,#00978e 0 9px,transparent 10px)}
.test-session.is-review .ts-stem{font-size:var(--yk-type-question);font-weight:var(--yk-weight-body);letter-spacing:normal}
.test-session.is-review .ts-option-text{font-size:var(--yk-type-body)}
.test-library .tl-mode-icon .tl-icon{width:40px;height:40px}
.test-library .tl-mode-select>.tl-icon{width:20px;height:24px}
.test-session .ts-answer-group{display:inline-flex;align-items:baseline;gap:6px;white-space:nowrap}
body:has(.test-session[data-reference="08"])>aside{padding-top:16px}
body:has(.test-session[data-reference="08"])>aside nav{gap:8px}
body:has(.test-session[data-reference="08"])>aside nav a{min-height:68px;padding-top:19px;padding-bottom:19px}
@media(max-width:650px){
 .test-library h1{font-size:var(--yk-type-page);transform:none}
 .test-library .tl-tabs{gap:20px}
 .test-library .tl-mode-copy small{text-wrap:balance}
 .test-library .tl-recommendation p{text-wrap:balance}
 .test-library .tl-mode-icon .tl-icon{width:34px;height:34px}
 .test-session.is-review .ts-stem{font-size:var(--yk-type-question)}
 .test-session.is-review .ts-option-text{font-size:var(--yk-type-body)}
 .test-session .ts-result h2{font-size:var(--yk-type-card);line-height:var(--yk-line-ui)}
}

/* 320 宽横向溢出修复：客观题库标签行（图07）
   实测 320 视口（内容宽 305）下 .tl-tabs 溢出 5px。仅收窄标签行，桌面不受影响。 */
@media(max-width:360px){
  .tl-tabs{gap:2px;flex-wrap:wrap}
  .tl-tabs>*{min-width:0;padding-inline:2px;font-size:var(--yk-type-item);white-space:nowrap}
}
