/* Teacher Tools additions. Loads after style.css + editorial.css and reuses their tokens. */
:root{--blush:#f5e1e6;--paleblue:#e8eafb;--sand:#eee9df;--lilac:#eeeafa;--paper:#fffefa}

/* ---------- header ---------- */
.marketing .site-header{position:relative}
.wordmark{white-space:nowrap;font-size:34px}
.site-header>nav a[aria-current="page"]{text-decoration:underline;text-underline-offset:6px;color:var(--navy);font-weight:600}
.mobile-menu{display:none;position:relative}
.mobile-menu summary{list-style:none;cursor:pointer;width:44px;height:44px;border:1px solid #cecdd3;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:var(--paper)}
.mobile-menu summary::-webkit-details-marker{display:none}
.mobile-menu summary span{display:block;width:18px;height:2px;background:var(--navy);border-radius:2px}
.mobile-menu[open] summary{background:var(--paleblue)}
.mobile-menu nav{position:absolute;right:0;top:54px;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:10px;min-width:220px;display:flex;flex-direction:column;z-index:50;box-shadow:0 12px 30px #25376b1a}
.mobile-menu nav a{padding:12px 14px;border-radius:8px;text-decoration:none;font-size:15px;color:var(--navy)}
.mobile-menu nav a:hover,.mobile-menu nav a[aria-current="page"]{background:var(--paleblue)}
.site-header .mobile-menu{border:0;padding:0}
.site-header .mobile-menu nav{display:flex;gap:0}

/* ---------- footer ---------- */
.marketing footer.site-footer{display:grid;grid-template-columns:1.2fr 2fr;gap:40px 60px;padding:55px 5.5% 30px;background:#f1eee9}
.site-footer .wordmark{font-size:30px}
.footer-brand p{font-size:14px;color:var(--muted);max-width:320px;margin-top:14px;line-height:1.7;font-weight:400}
.footer-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}
.footer-cols h2{font-family:Arial,Helvetica,sans-serif;font-size:11px;letter-spacing:1.4px;text-transform:uppercase;color:#6d6b7a;margin:0 0 12px;font-weight:700}
.footer-cols a{display:block;font-size:14px;color:var(--navy);text-decoration:none;padding:5px 0}
.footer-cols a:hover{text-decoration:underline;text-underline-offset:4px}
.footer-small{grid-column:1/-1;border-top:1px solid #dedbd5;padding-top:20px;margin:0;font-size:12px;color:#6d6b7a;font-weight:400}

/* ---------- links styled as cards ---------- */
a.need-card,a.example-card,a.hub-card,a.print-card,a.post-card{text-decoration:none;color:inherit}
.marketing .page-header h1 em,.printable-info h1 em{font-style:italic;color:var(--blue)}
.crumbs{display:flex;gap:10px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin-bottom:22px}
.crumbs a{color:var(--navy)}
.serif-title{font-family:var(--serif);font-weight:400;font-size:36px;letter-spacing:-1px;margin:15px 0 0}
.home-section .section-title{margin:0 0 30px;align-items:flex-end}
.home-section .section-title h2{font-family:var(--serif);font-weight:400;font-size:36px;letter-spacing:-1px;margin:15px 0 0}

/* ---------- hub cards ---------- */
.hub-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:20px}
.hub-grid>.hub-card{grid-column:span 2}
.hub-section .hub-grid>.hub-card:nth-child(4),.hub-section .hub-grid>.hub-card:nth-child(5){grid-column:span 3}
.hub-card{display:flex;flex-direction:column;border-radius:12px;padding:30px 28px;background:var(--lilac);color:var(--navy);min-height:250px;border:1px solid transparent;transition:transform .2s,box-shadow .2s}
.hub-card:hover{transform:translateY(-4px);box-shadow:0 10px 20px #2a275b0c}
.hub-card h3{font-family:var(--serif);font-weight:400;font-size:clamp(1.7rem,2.4vw,2.3rem);letter-spacing:-.5px;margin:18px 0 12px;line-height:1.1}
.hub-card p{font-size:15px;line-height:1.7;color:#5f5e72;margin:0 0 22px}
.hub-card .need-link{margin-top:auto}
.hub-print{background:var(--blush)}.hub-res{background:var(--sand)}.hub-ai{background:var(--paleblue)}.hub-blog{background:var(--paper);border-color:var(--line)}
.hub-count,.hub-tag{font-size:11px;letter-spacing:1.2px;font-weight:700;color:#575b7a;text-transform:uppercase}
.tools-grid .hub-card{background:var(--paper);border-color:var(--line);min-height:240px}
.tools-grid .hub-card:nth-child(5n+1) .hub-symbol{background:var(--lilac)}
.tools-grid .hub-card:nth-child(5n+2) .hub-symbol{background:var(--blush)}
.tools-grid .hub-card:nth-child(5n+3) .hub-symbol{background:var(--sand)}
.tools-grid .hub-card:nth-child(5n+4) .hub-symbol{background:var(--paleblue)}
.tools-grid .hub-card:nth-child(5n+5) .hub-symbol{background:#f3e7d6}
.hub-symbol{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;font-size:24px;background:var(--lilac);margin-bottom:16px;color:var(--navy)}
.tools-grid .hub-card h3{margin-top:8px}
.tools-grid.small .hub-card{min-height:0}

/* ---------- printables cards ---------- */
.print-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.print-card{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:12px;overflow:hidden;transition:transform .2s,box-shadow .2s}
.print-card:hover{transform:translateY(-4px);box-shadow:0 10px 20px #2a275b0c}
.print-card>div:last-child{padding:22px 24px 26px}
.print-card h3{font-family:var(--serif);font-weight:400;font-size:25px;color:var(--navy);margin:10px 0}
.print-card p{font-size:14px;line-height:1.7;color:var(--muted);margin:0}
.print-thumb{height:130px;background:var(--blush);position:relative;display:flex;align-items:flex-end;justify-content:center;overflow:hidden}
.print-card:nth-child(3n+2) .print-thumb{background:var(--paleblue)}
.print-card:nth-child(3n+3) .print-thumb{background:var(--sand)}
.print-thumb span{width:58%;height:110px;background:#fff;border-radius:3px 3px 0 0;box-shadow:0 -2px 12px #25376b14;font-size:10px;letter-spacing:1.2px;text-transform:uppercase;color:#7b7a8c;padding:16px 14px 0;background-image:repeating-linear-gradient(#fff 0 30px,#e6e3ef 30px 31px);background-position:0 26px}

/* ---------- blog cards + posts ---------- */
.post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.post-card{display:flex;flex-direction:column;border-top:2px solid var(--navy);padding:22px 4px 10px}
.post-card h3{font-family:var(--serif);font-weight:400;font-size:26px;line-height:1.2;color:var(--navy);margin:12px 0}
.post-card p{font-size:15px;line-height:1.7;color:var(--muted)}
.post-card .need-link{margin-top:auto;color:var(--navy)}
.post-card:hover h3{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
.post{max-width:720px;margin:0 auto 30px}
.post-head h1{font-size:clamp(2.4rem,4.4vw,3.6rem);color:var(--navy);margin:16px 0 18px}
.post-dek{font-size:20px;line-height:1.6;color:#5d5c6c}
.post-meta{font-size:13px;color:var(--muted);border-bottom:1px solid var(--line);padding-bottom:22px;margin-bottom:34px}
.post-body{font-size:18px;line-height:1.8;color:#32354a}
.post-body h2{font-size:30px;color:var(--navy);margin:42px 0 14px}
.post-body h3{font-family:var(--serif);font-weight:400;font-size:23px;color:var(--navy);margin:30px 0 10px}
.post-body p{margin:0 0 20px}
.post-body ul,.post-body ol{padding-left:24px;margin:0 0 22px}
.post-body li{margin:8px 0}
.post-body a{color:var(--blue);text-underline-offset:3px}
.post-body blockquote{margin:24px 0;padding:6px 22px;border-left:3px solid var(--blue);background:var(--paleblue)}
.post-page .section-title{max-width:1100px;margin:50px auto 18px}
.post-page .post-grid{max-width:1100px;margin:0 auto}

/* ---------- resources ---------- */
.jump-links{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 40px}
.jump-links a{font-size:13px;padding:9px 15px;border:1px solid #cecdd3;border-radius:50px;text-decoration:none;color:var(--navy);background:var(--paper)}
.jump-links a:hover{background:var(--paleblue)}
.resource-group{display:grid;grid-template-columns:minmax(220px,1fr) 2.2fr;gap:40px;padding:36px 0;border-top:1px solid var(--line);scroll-margin-top:20px}
.rg-head h2{font-size:30px;color:var(--navy);margin:0 0 10px}
.rg-head p{font-size:15px;color:var(--muted);line-height:1.7}
.resource-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:16px}
.resource-list li{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:20px 22px}
.resource-list a{color:var(--navy);font-size:17px;text-underline-offset:4px}
.resource-list a::after{content:" ↗";font-size:13px;color:var(--blue)}
.resource-list .cost{display:inline-block;margin-left:8px;font-size:10px;letter-spacing:1px;text-transform:uppercase;background:#e9f1e6;color:#3f5f3a;border-radius:4px;padding:2px 7px;vertical-align:2px}
.resource-list p{font-size:14px;color:var(--muted);line-height:1.65;margin:10px 0 0}

/* ---------- AI tips ---------- */
.ai-rule-banner{background:var(--navy);color:#fffdf4;border-radius:14px;padding:30px 34px;display:grid;grid-template-columns:auto 1fr auto;gap:25px;align-items:center;margin-bottom:30px}
.ai-rule-banner .eyebrow{color:#c7ceed}
.ai-rule-banner p{font-family:var(--serif);font-size:clamp(1.6rem,2.6vw,2.3rem);margin:0;line-height:1.2}
.ai-rule-banner a{color:#f7cbdc;font-size:14px;white-space:nowrap}
.tips-list .tip{display:grid;grid-template-columns:80px 1fr;gap:20px;padding:30px 0;border-top:1px solid var(--line);scroll-margin-top:20px}
.tip h2{font-size:clamp(1.6rem,2.4vw,2.1rem);color:var(--navy);margin:0 0 8px}
.tip-short{font-weight:700;color:#50516d;font-size:15px}
.tip p{max-width:720px;color:#55576a;line-height:1.8}
.prompt-library{padding-top:60px;scroll-margin-top:20px}
.prompt-library .section-intro a{color:var(--blue)}
.prompt-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.prompt-card{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:24px;display:flex;flex-direction:column;scroll-margin-top:20px}
.prompt-card h3{font-family:var(--serif);font-weight:400;font-size:24px;color:var(--navy);margin:8px 0 14px}
.prompt-card pre{white-space:pre-wrap;word-wrap:break-word;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;line-height:1.65;background:#f5f3ee;border-radius:8px;padding:16px;margin:0 0 16px;color:#33364a;flex:1}
.prompt-card .btn{align-self:flex-start}
.home-ai .ai-rule{font-family:var(--serif);font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.2;color:var(--navy);margin:14px 0 16px!important}

/* ---------- tools ---------- */
.tool-page main,.printable-page main{max-width:1300px}
.tool-wrap{margin-bottom:30px}
.tool-grid{display:grid;grid-template-columns:minmax(300px,.9fr) 1.1fr;gap:25px;align-items:start}
.tool-grid .panel{background:var(--paper);border-color:var(--line)}
.tool-output{background:var(--paleblue);border-radius:12px;padding:18px;min-height:300px}
.tool-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:16px}
.tool-notes{max-width:760px;margin:10px 0 40px;font-size:14px;color:var(--muted)}
.tool-notes p{margin:0 0 8px}
kbd{font-family:inherit;font-size:12px;border:1px solid #cecdd3;border-bottom-width:2px;border-radius:4px;padding:1px 6px;background:var(--paper)}
.field-label.sub{margin-top:14px}
.optional{font-weight:400;color:var(--muted);font-size:12px}
fieldset{border:0;padding:0;margin:0 0 22px;min-width:0}
fieldset .check-option{margin-bottom:8px}
.check-option.inline{display:inline-flex;margin-top:4px}
.mini-input{width:80px;padding:6px 8px;margin-left:4px}
.form-error{color:#a3283b;font-size:14px;min-height:0;margin:0 0 12px}
.form-error:empty{display:none}
.empty-hint{color:#5d6390;font-size:14px;text-align:center;padding:90px 20px;margin:0}
.chip{border:1px solid #cecdd3;background:var(--paper);border-radius:50px;padding:10px 16px;font-size:14px;color:var(--navy);min-height:44px}
.chip:hover{background:var(--lilac)}

.timer-tool{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:40px 30px;text-align:center}
.timer-display{font-family:Arial,Helvetica,sans-serif;font-weight:750;font-size:clamp(5rem,17vw,13rem);letter-spacing:-.04em;line-height:1;color:var(--navy);font-variant-numeric:tabular-nums}
.timer-tool.done .timer-display{color:var(--blue)}
.timer-bar{height:10px;background:#e7e5ef;border-radius:10px;overflow:hidden;max-width:760px;margin:26px auto}
.timer-bar span{display:block;height:100%;width:100%;background:var(--blue);border-radius:10px;transition:width .2s linear}
.timer-presets,.timer-controls{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:18px 0}
.timer-custom{display:flex;gap:12px;justify-content:center;align-items:flex-end;flex-wrap:wrap;margin:10px 0}
.timer-custom label{font-size:13px;font-weight:700;text-align:left}
.timer-custom input{width:110px;display:block;margin-top:6px}
.timer-controls .btn{min-width:130px}
.timer-tool:fullscreen{display:flex;flex-direction:column;justify-content:center;border-radius:0;border:0}
.timer-tool:fullscreen .timer-display{font-size:min(30vw,55vh)}
.timer-tool:fullscreen .timer-custom,.timer-tool:fullscreen .check-option{display:none}

.group-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.group-card{background:var(--paper);border-radius:10px;padding:16px 18px;border:1px solid #d8d9e6}
.group-card h3{font-family:var(--serif);font-weight:400;font-size:22px;color:var(--navy);margin:0}
.group-card small{font-size:11px;color:var(--muted)}
.group-card ul{margin:10px 0 0;padding-left:18px;font-size:15px}
.group-card li{margin:3px 0;overflow-wrap:anywhere}

.prompt-output .preview-top{padding:0 2px 12px}
.prompt-text{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;line-height:1.65;background:var(--paper);min-height:420px}
.prompt-output .helper a{color:var(--blue)}

.sheet-like{background:#fff;border:1px solid var(--line);border-radius:4px;padding:34px 36px}
.rubric-sheet h2{color:var(--navy);margin:0 0 6px;font-size:30px}
.rubric-meta{font-size:13px;color:var(--muted)}
.rubric-scroll{overflow-x:auto}
.rubric-table{min-width:640px;table-layout:fixed}
.rubric-table th,.rubric-table td{border:1px solid #cfd2e0;vertical-align:top;padding:0}
.rubric-table thead th{background:var(--paleblue);color:var(--navy);font-size:13px}
.rubric-table tbody th{background:#f7f5f0;width:18%;font-size:14px;color:var(--navy)}
.rubric-table [contenteditable]{padding:12px;min-height:60px;font-size:13px;line-height:1.55;color:#33364a}
.rubric-table thead [contenteditable]{min-height:0}
.rubric-table [contenteditable]:hover{outline:1px dashed #bac7df;outline-offset:-3px}
.rubric-table .pts{display:block;font-weight:400;font-size:11px;color:var(--muted);padding:0 12px 10px}

/* ---------- printable pages ---------- */
.printable-layout{display:grid;grid-template-columns:minmax(260px,.75fr) 1.25fr;gap:45px;align-items:start;margin-bottom:40px}
.printable-info{position:sticky;top:24px}
.printable-info h1{font-size:clamp(2.3rem,3.6vw,3.3rem);color:var(--navy);margin:14px 0 16px}
.printable-info>p{font-size:16px;line-height:1.75;color:#5d5c6c}
.tip-box{background:var(--blush);border-radius:10px;padding:20px 22px;margin:24px 0}
.tip-box p{font-size:14px;line-height:1.7;margin:8px 0 0;color:#5f5162}
.printable-info .helper a{color:var(--blue)}
.sheet-wrap{background:#e9e7f1;border-radius:14px;padding:28px}
.sheet{background:#fff;color:#1f2233;width:100%;max-width:7.5in;margin:auto;padding:.45in .5in;font-family:Arial,Helvetica,sans-serif;box-shadow:0 6px 20px #25376b14;font-size:13px;line-height:1.45}
.sheet h2,.sheet h3{font-family:var(--serif);color:#1f2233}
.sheet-head{border-bottom:2px solid #1f2233;padding-bottom:8px;margin-bottom:14px}
.sheet-head h2{font-size:28px;margin:0;letter-spacing:-.5px}
.sheet-head p{margin:4px 0 0;font-size:12px;color:#55586b}
.sheet [contenteditable]:hover{outline:1px dashed #bac7df}
.sheet-name{display:flex;justify-content:space-between;gap:12px;font-size:13px;margin:0 0 16px;flex-wrap:wrap}
.sheet-label{font-size:13px;margin:0 0 12px}
.rule{height:26px;border-bottom:1px solid #9a9cab}
.check-line{height:26px;border-bottom:1px solid #9a9cab;position:relative;padding-left:22px}
.check-line::before{content:"";position:absolute;left:0;bottom:5px;width:12px;height:12px;border:1.5px solid #555}
.frame{border:1.5px solid #1f2233;border-radius:6px;padding:12px 14px;margin-top:16px;font-size:13px;line-height:2.1}
.frame .sign{display:block;margin-top:6px}
.tt-label{display:block;font-size:10px;letter-spacing:1px;font-weight:700;color:#55586b}
.sheet-foot{margin-top:18px;font-size:9px;color:#8a8c99;text-align:right;letter-spacing:.5px}
/* exit tickets */
.ticket-grid{display:grid;grid-template-columns:1fr 1fr;border:1.5px dashed #8a8c99}
.ticket{padding:14px 16px;min-height:3.9in}
.ticket:nth-child(odd){border-right:1.5px dashed #8a8c99}
.ticket:nth-child(-n+2){border-bottom:1.5px dashed #8a8c99}
.ticket-top{display:flex;justify-content:space-between;gap:8px;align-items:baseline;margin-bottom:6px;font-size:10px;flex-wrap:wrap}
.ticket-top strong{font-family:var(--serif);font-size:18px;font-weight:400}
.ticket p{margin:8px 0 0;font-size:12px}
.ticket .rule{height:22px}
.ticket .fill{font-weight:700;min-height:40px}
.rating{display:flex;justify-content:space-between;margin:12px 0 6px}
.rating span{width:22%;aspect-ratio:1;border:1.5px solid #1f2233;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:18px;font-weight:700}
.rating small{font-size:7px;font-weight:400;text-align:center;line-height:1.1}
/* planner */
.planner-grid{display:grid;grid-template-columns:.8fr repeat(5,1fr);border-left:1px solid #1f2233;border-top:1px solid #1f2233}
.planner-grid>div{border-right:1px solid #1f2233;border-bottom:1px solid #1f2233;padding:5px 6px;font-size:11px}
.pg-day{font-weight:700;text-align:center;background:#f0eef6}
.pg-block{font-weight:700;background:#f7f5f0}
.pg-cell,.pg-block{height:1.15in}
.planner-foot{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:14px}
.planner-foot h3{font-size:14px;margin:0 0 2px}
/* main idea */
.table-top{border:2px solid #1f2233;border-radius:6px;padding:10px 14px;margin-bottom:0}
.table-legs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0 6%}
.table-legs>div{border:2px solid #1f2233;border-top:0;border-radius:0 0 6px 6px;padding:10px 12px}
/* fractions */
.frac-wall{border:2px solid #1f2233;margin:10px 0}
.frac-row{display:grid}
.frac-row span{height:.95in;border-right:1.5px solid #1f2233;border-bottom:1.5px solid #1f2233;display:flex;align-items:center;justify-content:center;font-size:16px}
.frac-row span:last-child{border-right:0}
.frac-row:last-child span{border-bottom:0}
.frac-row sup,.frac-row sub{font-size:13px}
/* food chain */
.org-grid{display:grid;grid-template-columns:repeat(3,1fr);border:1.5px dashed #8a8c99}
.org-card{padding:12px 14px;min-height:2.7in;border-right:1.5px dashed #8a8c99;border-bottom:1.5px dashed #8a8c99;display:flex;flex-direction:column}
.org-card:nth-child(3n){border-right:0}
.org-card:nth-child(n+4){border-bottom:0}
.org-role{font-size:9px;letter-spacing:1px;text-transform:uppercase;color:#55586b;font-weight:700}
.org-card strong{font-family:var(--serif);font-weight:400;font-size:24px;margin:4px 0 2px}
.org-card small{font-size:11px;color:#55586b}
.org-draw{flex:1;margin-top:10px;border:1px dotted #b5b7c4;border-radius:6px;display:flex;align-items:flex-end;justify-content:center;font-size:9px;color:#a2a4b2;padding:4px;min-height:1.3in}
.arrow-strip{display:grid;grid-template-columns:repeat(5,1fr);border:1.5px dashed #8a8c99;margin-top:14px}
.arrow-strip span{text-align:center;font-size:34px;padding:6px 0;border-right:1.5px dashed #8a8c99}
.arrow-strip span:last-child{border-right:0}
/* frayer */
.frayer{position:relative;display:grid;grid-template-columns:1fr 1fr;border:2px solid #1f2233;margin-bottom:18px}
.frayer>div{height:1.9in;padding:8px 10px;border-right:2px solid #1f2233;border-bottom:2px solid #1f2233}
.frayer>div:nth-child(2n){border-right:0}
.frayer>div:nth-child(n+3){border-bottom:0}
.frayer>div:nth-child(2n){text-align:right}
.frayer>div:nth-child(n+3){display:flex;align-items:flex-end}
.frayer>div:nth-child(4){justify-content:flex-end}
.frayer-word{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#fff;border:2px solid #1f2233;border-radius:50%;width:1.55in;height:1.1in;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--serif);font-size:15px;text-align:center;line-height:1.5}
/* tables */
.sheet-table{width:100%;border-collapse:collapse;font-size:12px;margin-top:4px}
.sheet-table th{background:#f0eef6;color:#1f2233;font-size:11px;border:1px solid #1f2233;padding:6px 8px}
.sheet-table td{border:1px solid #1f2233;height:.62in;padding:4px 8px;color:#1f2233}
.sheet-table.compact td{height:.36in}
/* sub plans */
.sub-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.sub-box{border:1.5px solid #1f2233;border-radius:6px;padding:10px 12px}
.sub-wide{grid-column:1/-1}
.sub-box h3{font-size:15px;margin:0 0 4px}
.sub-box p{margin:6px 0 0;font-size:11px;font-weight:700}
.sub-box .rule{height:22px}
/* checklist */
.checklist section{margin-bottom:16px}
.checklist h3{font-size:20px;margin:0 0 6px;border-bottom:1px solid #b5b7c4;padding-bottom:4px}
.checklist ul{list-style:none;padding:0;margin:0}
.checklist li{position:relative;padding:7px 0 7px 32px;font-size:14px;line-height:1.45}
.checklist li::before{content:"";position:absolute;left:2px;top:7px;width:17px;height:17px;border:1.5px solid #1f2233;border-radius:3px}

/* ---------- studio workspace tweaks ---------- */
.workspace .brand{font-size:24px}
.workspace .sidebar nav a{text-decoration:none}

/* ---------- responsive ---------- */
@media(max-width:1100px){
 .hub-grid{grid-template-columns:repeat(2,1fr)}
 .hub-grid>.hub-card,.hub-section .hub-grid>.hub-card:nth-child(4),.hub-section .hub-grid>.hub-card:nth-child(5){grid-column:auto}
 .hub-section .hub-grid>.hub-card:nth-child(5){grid-column:1/-1}
 .tools-grid .hub-card:last-child:nth-child(odd){grid-column:1/-1}
 .print-grid,.post-grid{grid-template-columns:repeat(2,1fr)}
 .resource-group{grid-template-columns:1fr;gap:18px}
 .printable-layout{grid-template-columns:1fr;gap:28px}
 .printable-info{position:static}
 .site-header nav{gap:16px}
 .wordmark{font-size:30px}
}
@media(max-width:900px){
 .site-header>nav,.site-header .header-cta{display:none}
 .mobile-menu{display:block}
 .marketing footer.site-footer{grid-template-columns:1fr}
 .tool-grid{grid-template-columns:1fr}
 .ai-rule-banner{grid-template-columns:1fr;gap:12px}
}
@media(max-width:800px){
 .marketing .site-header{min-height:80px}
}
@media(max-width:700px){
 .print-grid,.post-grid,.prompt-grid,.resource-list,.hub-grid{grid-template-columns:1fr}
 .hub-section .hub-grid>.hub-card:nth-child(5),.tools-grid .hub-card:last-child:nth-child(odd){grid-column:auto}
 .hub-card{min-height:0}
 .tips-list .tip{grid-template-columns:1fr;gap:4px}
 .post-body{font-size:17px}
 .home-section .section-title{display:block}
 .home-section .section-title>a{display:inline-block;margin-top:14px;font-size:13px}
 .serif-title,.home-section .section-title h2{font-size:31px}
 .sheet-wrap{padding:10px;margin:0 -6%;border-radius:0}
 .sheet{padding:22px 16px;font-size:12px}
 .sheet-head h2{font-size:22px}
 .ticket-grid,.org-grid{grid-template-columns:1fr}
 .ticket,.ticket:nth-child(odd){border-right:0;border-bottom:1.5px dashed #8a8c99;min-height:0}
 .ticket:last-child{border-bottom:0}
 .org-grid .org-card{border-right:0;border-bottom:1.5px dashed #8a8c99;min-height:0}
 .org-grid .org-card:last-child{border-bottom:0}
 .planner{overflow-x:auto}
 .planner-grid{min-width:520px}
 .planner-foot,.table-legs,.sub-grid{grid-template-columns:1fr}
 .table-legs{margin:0}
 .table-legs>div{border-top:2px solid #1f2233;border-radius:6px;margin-top:8px}
 .frac-row span{height:56px;font-size:13px}
 .frayer>div{height:150px}
 .frayer-word{width:110px;height:84px;font-size:13px}
 .sheet-table td{height:40px}
 .sheet-like{padding:22px 16px}
 .timer-tool{padding:28px 14px}
 .footer-cols{grid-template-columns:1fr 1fr}
}
@media(max-width:550px){
 .wordmark{font-size:27px}
 .wordmark span{font-size:22px}
 .marketing .site-header{padding:16px 5%;min-height:72px}
 .site-footer .wordmark{font-size:26px}
 .resource-list .cost{display:block;width:max-content;margin:6px 0 0}
 .tool-actions .btn{flex:1 1 auto}
 .jump-links{gap:8px}
}
@media(max-width:600px){
 .workspace .sidebar nav a:nth-of-type(n+4){display:none}
 .workspace .sidebar nav a:nth-of-type(3){display:flex}
}
@media(prefers-reduced-motion:reduce){.hub-card:hover,.print-card:hover,.need-card:hover{transform:none}}

/* ---------- print ---------- */
@page{size:letter;margin:.5in}
@media print{
 .site-header,.site-footer,.crumbs,.skip,#toast{display:none!important}
 body.marketing{background:#fff}
 .marketing main{padding:0!important;max-width:none}
 .printable-page .printable-info,.printable-page main>.section-title,.printable-page main>.print-grid{display:none!important}
 .printable-layout{display:block;margin:0}
 .sheet-wrap{background:none;padding:0;margin:0}
 .sheet{box-shadow:none;max-width:none;padding:0;font-size:12.5px}
 .sheet [contenteditable]:hover{outline:none}
 .tool-page .page-header,.tool-page .tool-notes,.tool-page main>.section-title,.tool-page main>.hub-grid,.tool-page .tool-actions,.tool-page #groups-form,.tool-page .helper{display:none!important}
 .tool-grid{display:block}
 .tool-output{background:none;padding:0}
 .group-card{break-inside:avoid;border-color:#999}
 .sheet-like{border:0;padding:0}
 .rubric-scroll{overflow:visible}
 .rubric-table{min-width:0}
 .rubric-table [contenteditable]:hover{outline:none}
 .rubric-table thead th,.rubric-table tbody th{background:#f2f2f2!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
 .post-page .section-title,.post-page .post-grid{display:none}
}

/* ---------- overflow guards (found in 320–768px sweep) ---------- */
.printable-layout>*,.tool-grid>*,.studio-grid>*{min-width:0}
.sheet{overflow-wrap:anywhere}
@media(max-width:700px){.sheet-wrap{margin:0;padding:8px}}
@media(max-width:380px){.home-hero h1{font-size:13.5vw}.workspace .studio-grid{grid-template-columns:minmax(0,1fr)}}

/* blog topic filter */
.blog-filter .chip[aria-pressed="true"]{background:var(--navy);color:#fffdf4;border-color:var(--navy)}
.post-card[hidden]{display:none}
