/* Team Whistle — Politics School */
.tw-g{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:1.6rem;align-items:start}
.tw-g>*{min-width:0}
.tw-side{position:sticky;top:96px}
.tw-box{background:#fff;border:1px solid var(--v-line,#ECE5DB);border-radius:18px;padding:1rem}
.tw-bh{display:block;font:900 .95rem Montserrat,sans-serif;margin-bottom:.6rem}
.tw-prog{margin-bottom:.7rem}.tw-prog span{font:700 .74rem Inter,sans-serif;color:#6B645C}
.tw-pbar{height:8px;border-radius:99px;background:#F1ECE4;overflow:hidden;margin-bottom:.3rem}.tw-pbar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#800000,#D4A017);border-radius:99px;transition:width .4s}
.tw-pbar.big{height:12px;flex:1;min-width:160px;margin:0}
.tw-mods{list-style:none;margin:0 0 .7rem;padding:0;display:grid;gap:.15rem}
.tw-mods a{display:flex;gap:.55rem;align-items:center;padding:.45rem .5rem;border-radius:10px;text-decoration:none;color:#1A1A1A;font:600 .84rem Inter,sans-serif}
.tw-mods a:hover{background:#FBF6EE}.tw-mods a.cur{background:#FFF6D6;color:#800000;font-weight:800}
.tw-mods i{font-style:normal;flex:0 0 auto;width:1.45rem;height:1.45rem;border-radius:50%;display:grid;place-items:center;background:#F1ECE4;font:800 .7rem Inter,sans-serif;color:#6B645C}
.tw-mods a.done i{background:#2F6F4F;color:#fff;font-size:0}.tw-mods a.done i::before{content:"✓";font-size:.72rem}
.tw-tool{display:block;font:800 .8rem Inter,sans-serif;color:#800000;text-decoration:none;padding:.45rem .5rem;border-top:1px dashed var(--v-line,#ECE5DB)}
.tw-learn{background:linear-gradient(150deg,#7A0A0A,#5E0000);color:#fff;border-radius:18px;padding:1.1rem 1.2rem;margin-bottom:1rem}
.tw-learn b{font:900 .95rem Montserrat,sans-serif;color:#FFD700}
.tw-learn ul{margin:.55rem 0 0;padding:0;list-style:none;display:grid;gap:.35rem}.tw-learn li{padding-left:1.4rem;position:relative;font-size:.9rem;line-height:1.5}
.tw-learn li::before{content:"✓";position:absolute;left:0;color:#FFD700;font-weight:900}
.tw-toc{background:#FFFDF8;border:1px solid #F0E3C2;border-radius:14px;padding:.8rem 1rem;margin-bottom:1.2rem}
.tw-toc b{font:800 .72rem Inter,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#800000}
.tw-toc ol{margin:.4rem 0 0;padding-left:1.2rem;columns:2;column-gap:1.5rem;font-size:.86rem;line-height:1.8}
.tw-toc a{color:#1A1A1A;text-decoration:none}.tw-toc a:hover{color:#800000}
.tw-ch{background:#fff;border:1px solid var(--v-line,#ECE5DB);border-radius:18px;margin-bottom:1rem;scroll-margin-top:110px;overflow:hidden}
.tw-ch h2{display:flex;gap:.7rem;align-items:center;font:900 1.08rem/1.3 Montserrat,sans-serif;margin:0;padding:.95rem 1.15rem;border-bottom:1px solid var(--v-line,#ECE5DB);background:#FBF8F3}
.tw-ch h2 span{flex:0 0 auto;width:2rem;height:2rem;border-radius:10px;background:#800000;color:#FFD700;display:grid;place-items:center;font-size:.9rem}
.tw-cb{padding:1.05rem 1.15rem;font-size:.95rem;line-height:1.7;color:#2B2724}
.tw-cb p{margin:0 0 .8rem}.tw-cb a{color:#800000;font-weight:700}
.tw-cb .t-tw{margin:.4rem 0 .9rem}
.tw-kp{background:#FFFDF8;border:1px solid #F0E3C2;border-left:4px solid #D4A017;border-radius:12px;padding:.8rem 1rem;margin:.4rem 0 .9rem}
.tw-kp-h{font:800 .72rem Inter,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#800000;margin-bottom:.4rem}
.tw-kp ul{list-style:none;margin:0;padding:0;display:grid;gap:.35rem}.tw-kp li{position:relative;padding-left:1.15rem;font-size:.9rem;line-height:1.55}
.tw-kp li::before{content:"";position:absolute;left:0;top:.55em;width:7px;height:7px;border-radius:50%;background:#800000}
.tw-note{border-radius:12px;padding:.75rem 1rem;margin:.4rem 0 .9rem;font-size:.88rem;line-height:1.6;background:#EEF4FA;border:1px solid #D6E4F0;color:#1E3A52}
.tw-note.w{background:#FFF6E5;border-color:#F3D9A6;color:#6B4300}.tw-note.g{background:#ECF6F0;border-color:#CDE6D7;color:#1E4D35}
.tw-ex{background:#FBF6EE;border-radius:12px;padding:.75rem 1rem;margin:.4rem 0 .4rem;font-size:.88rem;line-height:1.6}
.tw-ex b{display:block;font:800 .72rem Inter,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#800000;margin-bottom:.2rem}
.tw-steps{list-style:none;counter-reset:s;margin:.3rem 0 .9rem;padding:0;display:grid;gap:.55rem}
.tw-steps li{counter-increment:s;display:grid;grid-template-columns:2rem 1fr;gap:.2rem .7rem;align-items:start}
.tw-steps li::before{content:counter(s);grid-row:span 2;width:2rem;height:2rem;border-radius:50%;background:#FFF6D6;color:#800000;font:900 .85rem Montserrat,sans-serif;display:grid;place-items:center;border:1.5px solid #F3DD8A}
.tw-steps b{font:800 .92rem Inter,sans-serif}.tw-steps span{font-size:.88rem;color:#4A4540;line-height:1.55}
.tw-quote{margin:.4rem 0 .9rem;padding:.9rem 1.1rem;border-left:4px solid #800000;background:#FBF8F3;border-radius:0 12px 12px 0;font-style:italic;line-height:1.7}
.tw-letter{font-family:'Courier New',monospace;font-size:.84rem;line-height:1.65;background:#FFFEF7;border:1px dashed #D9CBB4;border-radius:12px;padding:1rem 1.1rem;margin:.2rem 0 .9rem}
.tw-links{display:flex;flex-wrap:wrap;gap:.5rem}.tw-links a{font:800 .8rem Inter,sans-serif;color:#800000;border:1px solid var(--v-line,#ECE5DB);border-radius:99px;padding:.45rem .85rem;text-decoration:none;background:#fff}
.tw-links a:hover{border-color:#800000}
.tw-real h2 span{background:#D4A017;color:#5E0000}
.tw-done{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap;margin:1.2rem 0}
.tw-dbtn{background:#2F6F4F;color:#fff;border:0;border-radius:99px;padding:.8rem 1.4rem;font:900 .9rem Montserrat,sans-serif;cursor:pointer}
.tw-dbtn.on{background:#E7F3EC;color:#1E4D35}
[data-donemsg]{font:700 .84rem Inter,sans-serif;color:#2F6F4F}
.tw-pn{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
.tw-pn a{display:block;background:#fff;border:1px solid var(--v-line,#ECE5DB);border-radius:14px;padding:.8rem 1rem;text-decoration:none;color:#1A1A1A}
.tw-pn a:hover{border-color:#800000}.tw-pn a.nx{text-align:right}
.tw-pn small{display:block;font:800 .66rem Inter,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#800000}.tw-pn b{font:800 .95rem Montserrat,sans-serif}
/* hub */
.tw-hubprog{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;background:#FFFDF8;border:1px solid #F0E3C2;border-radius:16px;padding:.9rem 1.1rem;margin-bottom:1.8rem}
.tw-hubprog b{display:block;font:900 .95rem Montserrat,sans-serif}.tw-hubprog span{font-size:.8rem;color:#6B645C}
.tw-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.9rem}
.tw-card{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--v-line,#ECE5DB);border-radius:18px;padding:1.1rem;text-decoration:none;color:#1A1A1A;transition:border-color .15s,transform .15s}
.tw-card:hover{border-color:#800000;transform:translateY(-2px)}
.tw-ci{font-size:1.8rem;width:3rem;height:3rem;border-radius:14px;background:#FFF6D6;display:grid;place-items:center;margin-bottom:.6rem}
.tw-cn{font:800 .64rem Inter,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#800000}
.tw-card b{font:900 1.02rem/1.3 Montserrat,sans-serif;margin:.15rem 0 .35rem}
.tw-cl{font-size:.85rem;line-height:1.55;color:#4A4540;flex:1}
.tw-cm{font:700 .74rem Inter,sans-serif;color:#6B645C;margin-top:.7rem}
.tw-ck{position:absolute;top:1rem;right:1rem;font:800 .68rem Inter,sans-serif;background:#2F6F4F;color:#fff;border-radius:99px;padding:.2rem .55rem;display:none}
.tw-card.done .tw-ck{display:inline-block}.tw-card.done{border-color:#BFDCCB}
.tw-card.tool .tw-ci{background:#EEF4FA}
/* finder */
.wc-ctl{display:grid;gap:.7rem;margin-bottom:1rem}
#wc-q{border:1.5px solid var(--v-line,#ECE5DB);border-radius:99px;padding:.75rem 1.1rem;font:600 .95rem Inter,sans-serif;background:#FFFDF8}
#wc-q:focus{outline:none;border-color:#800000}
.wc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:.8rem}
.wc-card{display:flex;gap:.8rem;background:#fff;border:1px solid var(--v-line,#ECE5DB);border-radius:16px;padding:1rem}
.wc-ic{flex:0 0 auto;width:2.6rem;height:2.6rem;border-radius:12px;background:#FFF6D6;display:grid;place-items:center;font-size:1.3rem}
.wc-card b{font:800 .95rem/1.35 Montserrat,sans-serif}
.wc-card dl{margin:.4rem 0 0;font-size:.84rem;line-height:1.5}.wc-card dt{font:800 .62rem Inter,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#6B645C;margin-top:.35rem}.wc-card dd{margin:.05rem 0 0}
.wc-card dd a{color:#800000;font-weight:800}
.wc-call{display:inline-block;margin-top:.55rem;font:800 .8rem Inter,sans-serif;background:#800000;color:#FFD700;border-radius:99px;padding:.35rem .8rem;text-decoration:none}
/* glossary */
.gl-jump{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:1rem}.gl-jump a{font:800 .78rem Inter,sans-serif;width:2rem;height:2rem;display:grid;place-items:center;border:1px solid var(--v-line,#ECE5DB);border-radius:8px;color:#800000;text-decoration:none}
.gl-l{font:900 1.3rem Montserrat,sans-serif;color:#800000;margin:1.2rem 0 .5rem;scroll-margin-top:110px}
.gl-dl{margin:0;display:grid;gap:.45rem}.gl-dl>div{background:#fff;border:1px solid var(--v-line,#ECE5DB);border-radius:12px;padding:.65rem .9rem}
.gl-dl dt{font:800 .95rem Montserrat,sans-serif}.gl-dl dd{margin:.15rem 0 0;font-size:.88rem;line-height:1.55;color:#4A4540}
@media(max-width:960px){.tw-g{grid-template-columns:1fr}.tw-side{position:static}.tw-toc ol{columns:1}}
@media(max-width:560px){.tw-cb{padding:.9rem;font-size:.92rem}.tw-ch h2{font-size:.98rem;padding:.8rem .9rem}.tw-pn{grid-template-columns:1fr}.tw-pn a.nx{text-align:left}.wc-grid{grid-template-columns:1fr}}
