/* Reference 07: this entire stylesheet is limited to the library route. */
body:has(.test-library)>main{margin-left:224px;padding:26px 32px 40px 34px;max-width:none}
body:has(.test-library)>aside{width:224px}
.test-library{--tl-ink:#172431;--tl-muted:#526976;--tl-teal:#087f7b;color:var(--tl-ink);font-family:var(--yk-font-ui)}
.test-library *{box-sizing:border-box}
.test-library a:focus-visible{outline:3px solid #4ba9d1;outline-offset:4px}
.test-library .tl-icon{width:24px;height:24px;flex:none}
.test-library .tl-crumb{display:flex;align-items:center;gap:14px;font-size:var(--yk-type-meta);height:24px;color:var(--tl-muted);line-height:var(--yk-line-ui)}
.test-library .tl-crumb .tl-icon{width:12px;height:12px;color:#a5b2bd}
.test-library .tl-crumb b{font-weight:600;color:#4e5d6e}
.test-library .tl-heading{position:relative;margin:22px 0 26px}
.test-library h1{font-size:var(--yk-type-page);line-height:var(--yk-line-heading);letter-spacing:normal;margin:0 0 5px;font-weight:var(--yk-weight-page)}
.test-library .tl-heading>p{font-size:var(--yk-type-body);color:var(--tl-muted);margin:0;line-height:var(--yk-line-reading)}
.test-library .tl-test-label{position:absolute;right:0;top:14px;font-size:var(--yk-type-micro);color:#7d8b97;padding:4px 9px;border:1px solid #dce5e9;border-radius:5px;font-weight:var(--yk-weight-nav);line-height:var(--yk-line-ui)}
.test-library .tl-modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.test-library .tl-mode{border:1px solid #dfe6eb;border-radius:8px;background:#fff;height:190px;padding:27px 22px 20px}
.test-library .tl-mode.is-active{border-color:#008983;background:linear-gradient(115deg,#f0f8f7,#f7fbfa)}
.test-library .tl-mode-select{display:flex;align-items:center;gap:18px;min-width:0}
.test-library .tl-mode-icon{height:69px;width:69px;flex:none;display:grid;place-items:center;background:#f1f5f6;border-radius:14px;color:#076964}
.test-library .tl-mode-icon .tl-icon{height:37px;width:37px}
.test-library .is-active .tl-mode-icon{background:#ddf0ed;color:#078b85}
.test-library .is-active .tl-mode-icon .tl-icon{fill:#078b85;stroke:#d6eeea;stroke-width:1}
.test-library .tl-mode-copy{min-width:0;flex:1}
.test-library .tl-mode-copy strong{display:block;font-size:var(--yk-type-card);line-height:var(--yk-line-ui);white-space:nowrap;font-weight:var(--yk-weight-title)}
.test-library .tl-mode-copy small{display:block;font-size:var(--yk-type-body);color:#697888;margin-top:8px;line-height:var(--yk-line-reading);white-space:nowrap}
.test-library .tl-mode-select>.tl-icon{width:17px;height:22px;align-self:flex-start;margin-top:18px;color:#415768}
.test-library .is-active .tl-mode-select>.tl-icon{color:#048982}
.test-library .tl-primary{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:12px 28px;background:linear-gradient(120deg,#078f88,#087e79);border:1px solid #138a84;border-radius:8px;color:white;font-size:var(--yk-type-control);font-weight:var(--yk-weight-title);line-height:var(--yk-line-ui);text-align:center}
.test-library .tl-mode-action{display:flex;margin-top:20px;width:100%;min-height:50px;padding:10px}
.test-library .tl-bank-section{margin-top:35px;scroll-margin-top:95px}
.test-library h2{font-size:var(--yk-type-section);line-height:var(--yk-line-ui);margin:0 0 11px;font-weight:var(--yk-weight-title)}
.test-library .tl-banks{display:grid;grid-template-columns:1fr 1.055fr;gap:20px}
.test-library .tl-bank{border:1px solid #dfe6eb;border-radius:8px;padding:25px 24px 0;background:white;min-width:0;height:190px}
.test-library .tl-bank.is-selected{border-color:#73bdb8}
.test-library .tl-bank-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.test-library .tl-bank-heading h3{font-size:var(--yk-type-card);line-height:var(--yk-line-ui);margin:0;font-weight:var(--yk-weight-title);min-width:0}
.test-library .tl-bank-heading>span{white-space:nowrap;color:#087b78;border:1px solid #8bd2ce;background:#e3f4f1;border-radius:10px;font-size:var(--yk-type-meta);font-weight:var(--yk-weight-nav);padding:5px 16px}
.test-library .tl-bank>p{font-size:var(--yk-type-body);color:#526976;line-height:var(--yk-line-reading);margin:8px 0 20px}
.test-library .tl-bank-entry{display:flex;align-items:center;gap:16px;border-top:1px solid #e4eaee;padding:22px 0;font-size:var(--yk-type-item);line-height:var(--yk-line-ui);font-weight:var(--yk-weight-title)}
.test-library .tl-bank-entry>.tl-icon:first-child{color:#056f74}
.test-library .tl-bank-entry>.tl-icon:last-child{margin-left:auto;width:17px;height:20px;color:#475967}
.test-library .tl-exercises{background:#fff;border-radius:9px;padding:20px 24px 25px;margin-top:30px;scroll-margin-top:95px}
.test-library .tl-tabs{display:flex;gap:26px;border-bottom:1px solid #e4eaee;padding:0;margin:0 0 22px}
.test-library .tl-tabs a{position:relative;padding:4px 16px 16px;font-size:var(--yk-type-item);line-height:var(--yk-line-ui);color:#657487;font-weight:var(--yk-weight-nav);white-space:nowrap}
.test-library .tl-tabs .is-active{color:#07847d}
.test-library .tl-tabs .is-active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:4px;border-radius:3px;background:#0b8a81}
.test-library .tl-recommendation{background:linear-gradient(115deg,#f0f8f7,#f5faf9);border:1px solid #dfebec;border-radius:8px;display:flex;align-items:center;gap:22px;padding:21px 24px;min-height:114px}
.test-library .tl-recommend-icon{display:grid;place-items:center;background:#dff1ee;border-radius:13px;height:66px;width:66px;color:#065c5b;flex:none}
.test-library .tl-recommend-icon>.tl-icon{width:35px;height:35px}
.test-library .tl-recommendation h3{font-size:var(--yk-type-card);margin:0 0 6px;line-height:var(--yk-line-ui);font-weight:var(--yk-weight-title)}
.test-library .tl-recommendation p{font-size:var(--yk-type-body);color:#758391;margin:0;line-height:var(--yk-line-reading)}
.test-library .tl-recommendation .tl-primary{margin-left:auto;min-width:144px;flex:none}
.test-library .tl-chapter-list{margin-top:24px}
.test-library .tl-selected-title{display:flex;align-items:center;justify-content:space-between;gap:12px}
.test-library .tl-selected-title h3{font-size:var(--yk-type-item);margin:0 0 12px;font-weight:var(--yk-weight-title)}
.test-library .tl-selected-title a{font-size:var(--yk-type-meta);color:#07847d}
.test-library .tl-chapter{display:flex;align-items:center;gap:14px;padding:17px 0;border-top:1px solid #e3ebed}
.test-library .tl-chapter>span{color:#526976;font-size:var(--yk-type-meta)}
.test-library .tl-chapter b{font-weight:var(--yk-weight-title);font-size:var(--yk-type-item)}
.test-library .tl-chapter small{margin-left:auto;color:#526976;font-size:var(--yk-type-meta)}
.test-library .tl-chapter>.tl-icon{width:16px;height:16px}
.test-library .tl-boundary{font-size:var(--yk-type-meta);color:#526976;margin:12px 0 0}
@media(max-width:1300px) and (min-width:1001px){.test-library .tl-mode{padding:20px 16px}.test-library .tl-mode-select{gap:12px}.test-library .tl-mode-icon{width:54px;height:58px}.test-library .tl-mode-copy small{white-space:normal;font-size:var(--yk-type-body)}.test-library .tl-bank-heading>span{padding:4px 8px}}
@media(max-width:1000px){body:has(.test-library)>main{margin-left:0;padding:24px 20px 100px}body:has(.test-library)>aside{display:none}.test-library .tl-modes{gap:12px}.test-library .tl-mode{padding:18px 14px}.test-library .tl-mode-icon{width:46px;height:54px}.test-library .tl-mode-icon .tl-icon{width:30px;height:30px}.test-library .tl-mode-select{gap:12px}.test-library .tl-mode-copy small{white-space:normal;font-size:var(--yk-type-body)}.test-library .tl-bank-heading>span{font-size:var(--yk-type-meta);padding:4px 8px}.test-library .tl-bank{padding:18px;height:auto}.test-library .tl-bank-entry{padding:16px 0 0}}
@media(max-width:640px){body:has(.test-library)>main{padding:20px 16px 100px}.test-library .tl-heading{margin:17px 0 22px}.test-library .tl-test-label{font-size:var(--yk-type-micro);top:6px;padding:3px 6px}.test-library .tl-modes{grid-template-columns:1fr;gap:12px}.test-library .tl-mode{height:auto;min-height:112px;padding:18px}.test-library .tl-mode-icon{width:54px;height:58px}.test-library .tl-mode-copy small{font-size:var(--yk-type-body);margin-top:4px}.test-library .tl-mode-select>.tl-icon{margin-top:17px}.test-library .tl-bank-section{margin-top:26px}.test-library h2{font-size:var(--yk-type-section);margin-bottom:12px}.test-library .tl-banks{grid-template-columns:1fr;gap:12px}.test-library .tl-bank-heading{gap:8px}.test-library .tl-bank-heading>span{padding:4px 7px;font-size:var(--yk-type-meta);flex:none}.test-library .tl-exercises{padding:14px;margin-top:22px}.test-library .tl-tabs{gap:4px;justify-content:space-between;margin-bottom:16px}.test-library .tl-tabs a{padding:4px 8px 12px;font-size:var(--yk-type-item)}.test-library .tl-recommendation{padding:16px;gap:12px;flex-wrap:wrap}.test-library .tl-recommend-icon{width:48px;height:52px}.test-library .tl-recommend-icon>.tl-icon{width:29px;height:29px}.test-library .tl-recommendation>div{flex:1;min-width:170px}.test-library .tl-chapter{gap:8px;flex-wrap:wrap}.test-library .tl-chapter small{margin-left:25px;flex:1;font-size:var(--yk-type-meta)}.test-library .tl-selected-title a{flex:none;font-size:var(--yk-type-meta)}.test-library .tl-tabs a{min-height:44px}.test-library .tl-bank-entry{min-height:44px}.test-library .tl-selected-title a{display:inline-flex;align-items:center;min-height:44px}}
/* 图07 additive: 「其他训练」入口沿用既有题库卡片样式，仅调整为三列并在窄屏回落。 */
.test-library .tl-banks.tl-banks-three{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:1000px){.test-library .tl-banks.tl-banks-three{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.test-library .tl-banks.tl-banks-three{grid-template-columns:1fr}}

/* 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}
}

/* 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}
}
