/* Teacher Toolkit — shared chrome for the hub, the tool pages and the locked-tool teaser.
   Generic UI only (no tool logic). Uses the site's tokens from gtb.css. */

.tt-page{max-width:1240px;margin:0 auto;padding:18px clamp(12px,3vw,32px) 56px}

/* ---------- tool page bar ---------- */
.tt-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.tt-back{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:13.5px;color:var(--muted);text-decoration:none;
  padding:8px 12px;border-radius:12px;background:var(--surface);border:1px solid var(--line)}
.tt-back:hover{color:var(--ink);border-color:var(--accent)}
.tt-h{font-family:var(--font-display);font-size:clamp(22px,3.2vw,32px);font-weight:600;letter-spacing:-.015em;line-height:1.1;margin:0;flex:1 1 220px}
.tt-actions{display:flex;gap:8px;flex-wrap:wrap}

/* ---------- buttons / inputs used inside tools ---------- */
.tt-btn{appearance:none;border:1.5px solid var(--accent);background:var(--accent);color:#fff;font:inherit;font-weight:800;font-size:14.5px;
  padding:11px 18px;border-radius:13px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:44px;line-height:1;transition:transform .08s ease,background .15s,color .15s,border-color .15s;-webkit-tap-highlight-color:transparent}
.tt-btn:hover{background:var(--accent-dark);border-color:var(--accent-dark)}
.tt-btn:active{transform:translateY(1px) scale(.99)}
.tt-btn:focus-visible,.tt-in:focus-visible,.tt-chip:focus-visible{outline:3px solid var(--accent-soft);outline-offset:2px;box-shadow:0 0 0 2px var(--accent)}
.tt-btn.ghost{background:var(--surface);color:var(--accent-dark);border-color:var(--line)}
.tt-btn.ghost:hover{border-color:var(--accent);background:var(--accent-soft)}
.tt-btn.sm{padding:8px 12px;font-size:13px;min-height:36px;border-radius:11px}
.tt-btn.lg{padding:16px 28px;font-size:18px;min-height:56px;border-radius:16px}
.tt-btn.danger{background:#d64545;border-color:#d64545}
.tt-btn.danger:hover{background:#b83636;border-color:#b83636}
.tt-btn[disabled]{opacity:.5;cursor:not-allowed}
.tt-in,.tt-ta,.tt-sel{width:100%;box-sizing:border-box;border:1.5px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);
  font:inherit;font-size:15px;padding:10px 12px}
.tt-in:focus,.tt-ta:focus,.tt-sel:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.tt-ta{resize:vertical;line-height:1.5;min-height:120px}
.tt-lbl{display:block;font-size:12.5px;font-weight:800;color:var(--muted);margin:0 0 6px;letter-spacing:.02em}
.tt-chip{appearance:none;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-weight:700;font-size:13.5px;
  padding:8px 13px;border-radius:999px;cursor:pointer}
.tt-chip:hover{border-color:var(--accent)}
.tt-chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-dark)}
.tt-check{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--ink);cursor:pointer;user-select:none}
.tt-check input{width:18px;height:18px;accent-color:var(--accent)}
.tt-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.tt-hint{font-size:12.5px;color:var(--muted);line-height:1.5;margin:6px 0 0}

/* ---------- the stage the tool lives in ---------- */
.tt-stage{background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:clamp(14px,2.4vw,26px);position:relative;
  min-height:420px}
.tt-stage:fullscreen{border-radius:0;border:0;padding:clamp(16px,3vw,40px);overflow:auto;width:100vw;height:100vh}
.tt-stage:-webkit-full-screen{border-radius:0;border:0;padding:clamp(16px,3vw,40px);overflow:auto;width:100vw;height:100vh}
.tt-stage.tt-pfs{position:fixed;inset:0;z-index:9990;border-radius:0;border:0;overflow:auto;padding:clamp(16px,3vw,40px);min-height:0}
body.tt-pfs-on{overflow:hidden}
.tt-panel{background:var(--bg);border:1px solid var(--line);border-radius:16px;padding:14px}
.tt-toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);background:var(--ink);color:#fff;font-weight:700;font-size:14px;
  padding:11px 18px;border-radius:999px;z-index:99999;box-shadow:0 10px 30px rgba(0,0,0,.3);max-width:90vw}

/* ---------- SEO / how-to block under a public tool ---------- */
.tt-seo{max-width:820px;margin:34px auto 0;color:var(--ink)}
.tt-seo h2{font-family:var(--font-display);font-size:24px;font-weight:600;margin:26px 0 8px}
.tt-seo p,.tt-seo li{font-size:15.5px;line-height:1.7;color:#27454a}
.tt-seo ol,.tt-seo ul{padding-left:22px;margin:8px 0}
.tt-seo details{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px 16px;margin:8px 0}
.tt-seo summary{cursor:pointer;font-weight:700}
.tt-more{margin-top:26px;background:linear-gradient(150deg,#0d8f85,#12b3a6 60%,#3fd0c2);border-radius:20px;padding:22px clamp(18px,3vw,30px);color:#fff}
.tt-more h2{margin:0 0 6px;font-family:var(--font-display);font-size:22px;font-weight:600;color:#fff}
.tt-more p{margin:0 0 14px;color:rgba(255,255,255,.9);font-size:15px;line-height:1.6}
.tt-more .tt-btn{background:#fff;color:var(--accent-dark);border-color:#fff}
.tt-more .tt-btn.ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.7)}

/* ---------- hub ---------- */
.tth-hero{background:linear-gradient(150deg,#0d8f85,#12b3a6 55%,#3fd0c2);border-radius:24px;padding:clamp(22px,4vw,38px);color:#fff;margin-bottom:8px}
.tth-hero h1{font-family:var(--font-display);font-size:clamp(28px,4.6vw,44px);font-weight:600;letter-spacing:-.018em;line-height:1.06;margin:0;color:#fff}
.tth-hero p{margin:12px 0 0;font-size:clamp(15px,2vw,17.5px);line-height:1.6;max-width:62ch;color:rgba(255,255,255,.92)}
.tth-state{margin-top:16px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.tth-state .tt-btn{background:#fff;color:var(--accent-dark);border-color:#fff}
.tth-state .tt-btn.ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.7)}
.tth-pill{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.18);border-radius:999px;padding:8px 14px;font-weight:800;font-size:13.5px}
.tth-cat{margin:30px 0 10px;font-family:var(--font-display);font-size:22px;font-weight:600}
.tth-cat small{font-family:var(--font);font-size:13px;font-weight:600;color:var(--muted);margin-left:8px}
.tth-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.tth-card{position:relative;display:flex;flex-direction:column;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:20px;
  padding:18px;text-decoration:none;color:var(--ink);box-shadow:var(--shadow);transition:transform .16s ease,box-shadow .16s ease,border-color .16s}
.tth-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-hover);border-color:var(--accent)}
.tth-ic{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;font-size:28px;background:var(--tint,#e6f7f5);margin-bottom:6px}
.tth-card b{font-family:var(--font-display);font-size:19px;font-weight:600;letter-spacing:-.01em}
.tth-card p{margin:0;font-size:13.5px;line-height:1.55;color:var(--muted);flex:1}
.tth-tag{align-self:flex-start;margin-top:8px;font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:4px 10px;border-radius:999px}
.tth-tag.open{background:#e3f6ec;color:#1a7a46}
.tth-tag.lock{background:#fdf1dc;color:#8a5a00}
.tth-tag.in{background:var(--accent-soft);color:var(--accent-dark)}
.tth-card.locked .tth-ic{filter:saturate(.55)}

/* ---------- locked teaser ---------- */
.ttl{max-width:720px;margin:30px auto 0;text-align:center}
.ttl .tth-ic{width:84px;height:84px;font-size:44px;border-radius:24px;margin:0 auto 14px}
.ttl h1{font-family:var(--font-display);font-size:clamp(28px,4.4vw,40px);font-weight:600;margin:0 0 8px;letter-spacing:-.015em}
.ttl .lead{font-size:17px;line-height:1.6;color:#27454a;margin:0 0 18px}
.ttl .lockbox{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:22px;box-shadow:var(--shadow);text-align:left}
.ttl .lockbox h2{margin:0 0 6px;font-size:18px}
.ttl .lockbox p{margin:0 0 14px;font-size:15px;line-height:1.6;color:#27454a}
.ttl ul{text-align:left;padding-left:22px;margin:0 0 18px}
.ttl li{margin:5px 0;line-height:1.55;font-size:15px}

@media print{.topnav,.tt-bar,.tt-more,footer,#gtb-classshare{display:none!important}.tt-stage{box-shadow:none;border:0}}
@media (prefers-reduced-motion:reduce){.tth-card,.tt-btn{transition:none}}
