.training-books{color:var(--field);min-width:0}
.training-books [hidden]{display:none!important}
.tb-overline{display:block;margin:0 0 .6rem;color:var(--muted);font:600 11px/1.4 monospace;letter-spacing:.12em;text-transform:uppercase}
.tb-head,.tb-controls,.tb-cardfoot,.tb-pagehead,.tb-progress,.tb-notebook-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.tb-head{align-items:flex-end;margin-bottom:1.45rem}
.tb-head h1{font-size:clamp(2rem,4.5vw,3.75rem);line-height:1.02;letter-spacing:-.055em;margin:.1rem 0 .6rem}
.tb-head p,.tb-card p,.tb-panel>p,.tb-notebook p,.tb-personal p{max-width:72ch;color:var(--muted);line-height:1.52;margin:.4rem 0;font-size:.9rem}
.tb-shelf{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:1rem}
.tb-book{display:flex;flex-direction:column;min-width:0;padding:1.3rem 1.45rem;border:1px solid var(--line);border-top:4px solid #687457;background:#fafaf4;border-radius:4px}
.tb-book:nth-child(2n){border-top-color:#a14b31}
.tb-book h2,.tb-panel h2,.tb-notebook h2,.tb-personal h2{margin:.35rem 0 .5rem;letter-spacing:-.035em;line-height:1.15}
.tb-book h2{font:600 1.75rem/1.1 Georgia,serif;letter-spacing:-.04em}
.tb-book .tb-author{font-size:.9rem;margin-bottom:.9rem}
.tb-book .tb-cardfoot{margin-top:auto;padding-top:1rem}
.tb-button,.tb-link{font:inherit;font-size:.82rem!important;font-weight:600!important;cursor:pointer}
.tb-button{background:#fff;color:var(--field);border:1px solid #aeb4a4;border-radius:3px;padding:.6rem .85rem;min-height:40px;line-height:1.25}
.tb-button.primary{background:var(--field);color:#fff;border-color:var(--field)}
.tb-link{border:0;padding:.5rem 0;color:#354731;background:transparent;text-decoration:underline;text-underline-offset:3px}
.tb-back{margin-bottom:1rem}.tb-controls{justify-content:flex-start;margin:.8rem 0;gap:.5rem}.tb-controls form{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}
.tb-controls input[type=number]{max-width:5rem;padding:.5rem;min-height:40px}
.tb-panel,.tb-notebook,.tb-personal,.tb-bonus{border:1px solid var(--line);border-radius:4px;padding:1.1rem;background:#f7f8f1;min-width:0}
.tb-panel,.tb-personal,.tb-bonus{margin:1rem 0}
.tb-bonus{border-left:4px solid #657b51}.tb-bonus h2{margin:0 0 .35rem;font-size:1.1rem}.tb-bonus p{margin:.4rem 0;line-height:1.5;font-size:.9rem}
.tb-bonus form{display:flex;align-items:end;flex-wrap:wrap;gap:.6rem;margin-top:.8rem}
.tb-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(255px,1fr);align-items:start;gap:1rem}
.tb-page{border:1px solid #cfcfc2;border-radius:3px;padding:clamp(1rem,3vw,2.6rem);background:#fffef7;color:#292c25;min-width:0}
.tb-pagehead{padding-bottom:.8rem;border-bottom:1px solid var(--line);margin-bottom:1.15rem;font:11px/1.4 monospace;text-transform:uppercase;letter-spacing:.065em}
.tb-copy{font:1.08rem/1.7 Georgia,serif;white-space:pre-wrap;overflow-wrap:anywhere}
.tb-page img,.tb-page canvas{display:block;max-width:100%;height:auto;margin:0 auto}
.tb-page details,.tb-note-row details{margin-top:.8rem}.training-books summary{cursor:pointer}
.tb-notebook-head .tb-overline{margin:0}.tb-notebook label,.tb-panel label{margin-top:1rem}
.tb-notebook textarea,.tb-panel textarea{width:100%;min-height:5rem;resize:vertical;background:#fffef9;font-weight:400;line-height:1.5}
.tb-notebook details{font-size:.84rem;line-height:1.45}
.tb-state,.tb-caption,.tb-note-row small{font-size:.78rem;color:var(--muted);line-height:1.5}
.tb-state{margin:.8rem 0 .2rem}
.tb-progress{justify-content:flex-start;font-size:.84rem;color:#4a5543;gap:.5rem .9rem}
.tb-progress progress{width:6rem;max-width:100%;height:.55rem;accent-color:#627652}
.tb-help{font-size:.82rem;line-height:1.5;color:var(--muted);margin:1rem 0}
.tb-issue{color:#822e1c;background:#fff1e8;border-left:3px solid #a94925;padding:.8rem;margin:.5rem 0;font-size:.9rem;line-height:1.45}
.tb-issue pre,.tb-note-row dd{white-space:pre-wrap;overflow-wrap:anywhere;font-family:inherit;line-height:1.5}
.tb-scroll{max-width:100%;overflow:auto}.tb-table{border-collapse:collapse;width:100%;font-size:.86rem}
.tb-table th,.tb-table td{padding:.65rem .5rem;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
.tb-table th{font-size:.75rem}.tb-table button{margin:0}
.tb-note-row{border-top:1px solid var(--line);padding:.8rem 0}.tb-note-row>summary{line-height:1.5}.tb-note-row dt{font-weight:bold;font-size:.83rem;margin-top:.8rem}.tb-note-row dd{margin:.3rem 0;color:#444b3c}
.tb-note-row form .tb-controls{margin-bottom:0}
.tb-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:900px){.tb-layout{grid-template-columns:minmax(0,1fr) minmax(225px,.8fr);gap:.65rem}.tb-page{padding:1rem}}
@media(max-width:730px){.tb-layout{grid-template-columns:minmax(0,1fr)}.tb-book{padding:1rem}.tb-panel,.tb-notebook{padding:.9rem}.tb-pagehead{gap:.5rem}.tb-head{align-items:flex-start}.tb-controls .tb-button{min-height:42px}}
.tb-notebook .tb-check{display:flex;flex-direction:row;gap:.5rem;align-items:flex-start;font-size:.83rem;line-height:1.4;margin:.8rem 0}
.tb-check input{flex:0 0 auto;width:1rem;height:1rem;margin:.1rem 0}
.tb-layout.tb-expanded{grid-template-columns:minmax(0,1fr)}
.tb-pagefoot{margin:1rem 0 0;border-top:1px solid var(--line);padding-top:.65rem}
.tb-zoom{padding:0}
@media(max-width:730px){.tb-zoom{display:none}}
.training-books .tb-panel h2,.training-books .tb-notebook h2{font-size:1.55rem}
.training-books .tb-book h2{font-size:1.75rem}
.training-books .tb-controls form{flex-direction:row;align-items:center}
.training-books .tb-controls input[type=number]{width:4.6rem}
.training-books .tb-bonus form{flex-direction:row}
