/* The teacher's own page, in blocks (client 37–45, 27/09). Loaded only by a teacher page that
   has blocks; everything else comes from /site.css (tokens, .wrap, .h2, .btn, .pcard, .shelf).
   The teacher's colour is --t (set on <main>); the university's gold stays for money and codes. */

.tb{padding-block:clamp(52px,7vw,96px);background:var(--paper);color:var(--on-paper)}
.tb.tb-alt{background:var(--paper-2)}
.tb + .tb{border-top:1px solid var(--hair-paper)}
/* three widths (client 40): compact = a reading column; wide = the site's own column;
   full = edge to edge (the gutter stays, so nothing touches the glass on a phone) */
.tb-inner{margin-inline:auto}
.tb-compact .tb-inner{max-width:720px}
.tb-full .wrap{max-width:none}
.tb-head{margin-bottom:clamp(22px,3vw,34px)}
.tb-h{font-size:clamp(1.9rem,3.6vw,2.9rem);line-height:1.08;margin:0}
.tb-h::after{content:"";display:block;width:54px;height:2px;margin-top:18px;background:var(--t,var(--gold))}
.tb-intro{margin-top:16px;max-width:62ch;color:var(--on-paper-2);font-size:1.05rem}
.tb-h3{font-family:var(--display);font-weight:600;font-size:1.3rem;line-height:1.2;margin:0 0 8px}

/* ---- rich text (the allowlist in blocks.mjs is the whole vocabulary) ---- */
.tb-rich{font-size:1.08rem;line-height:1.78;max-width:70ch}
.tb-full .tb-rich,.tb-wide .tb-rich{max-width:76ch}
.tb-rich > * + *{margin-top:1em}
.tb-rich p{margin:0}
.tb-rich h3{font-family:var(--display);font-weight:600;font-size:1.45rem;line-height:1.25;margin-top:1.4em}
.tb-rich b,.tb-rich strong{font-weight:800}
.tb-rich .light{color:var(--on-paper-2);font-weight:500}
.tb-rich u{text-decoration-thickness:1px;text-underline-offset:3px}
.tb-rich a{color:var(--gold-text);text-decoration:underline;text-underline-offset:3px}
.tb-rich ul,.tb-rich ol{padding-inline-start:1.3em;margin-block:0}
.tb-rich li + li{margin-top:.35em}
.tb-rich blockquote{margin:1.4em 0;padding:4px 0 4px 22px;padding-inline:22px 0;border-inline-start:3px solid var(--t,var(--gold));
  font-family:var(--voice);font-style:italic;font-size:1.4rem;line-height:1.45}
.tb-rich figure{margin:1.4em 0}
.tb-rich img{border-radius:12px;max-width:100%;height:auto}
.tb-rich figcaption{font-size:.85rem;color:var(--on-paper-3);margin-top:8px}
.frame{border:1px solid var(--hair-paper);border-radius:16px;padding:clamp(16px,2.4vw,26px)}
.frame > * + *{margin-top:.8em}
.frame.frame-gold{border-color:color-mix(in srgb,var(--gold) 60%,transparent);background:color-mix(in srgb,var(--gold) 7%,transparent)}
.frame.frame-soft{border-color:transparent;background:color-mix(in srgb,var(--t,var(--gold)) 9%,var(--paper))}
.frame.frame-dash{border-style:dashed;border-color:color-mix(in srgb,var(--on-paper) 30%,transparent)}

/* ---- media: pictures, videos, documents, links ---- */
.tb-media{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-top:28px}
.tb-media-vid{margin-top:22px;max-width:960px}
.tb-cards{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}
.tb-cards .tb-card{flex:0 1 320px}
.tb-fig{margin:0}
.tb-fig img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;background:var(--paper-2)}
.tb-fig figcaption,.tb-vid figcaption{font-size:.85rem;color:var(--on-paper-3);margin-top:8px}
.tb-vid{margin:0}
.tb-vid video{width:100%;border-radius:14px;background:#000;display:block}
.tb-frame{position:relative;aspect-ratio:16/9;border-radius:14px;overflow:hidden;background:#000}
.tb-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.tb-vid.tall .tb-frame{aspect-ratio:9/16;max-width:380px;margin-inline:auto}
.tbk-intro_video.tb-compact .tb-vid{max-width:560px;margin-inline:auto}
.tbk-intro_video.tb-wide .tb-vid{max-width:960px;margin-inline:auto}
.tbk-intro_video.tb-compact .tb-head,.tbk-intro_video.tb-wide .tb-head{text-align:center}
.tbk-intro_video.tb-compact .tb-h::after,.tbk-intro_video.tb-wide .tb-h::after{margin-inline:auto}
.tbk-intro_video.tb-compact .tb-intro,.tbk-intro_video.tb-wide .tb-intro{margin-inline:auto}
.tb-card{display:flex;gap:14px;align-items:center;padding:14px 16px;border:1px solid var(--hair-paper);
  border-radius:14px;background:var(--paper);transition:border-color .2s,transform .2s;min-height:64px}
.tb-card:hover{border-color:var(--t,var(--gold));transform:translateY(-2px)}
.tb-card-ic{flex:0 0 40px;height:40px;border-radius:10px;display:grid;place-items:center;font-size:1.1rem;
  background:color-mix(in srgb,var(--t,var(--gold)) 14%,transparent);color:var(--on-paper)}
.tb-card b{display:block;font-weight:800;font-size:.95rem;line-height:1.3;overflow-wrap:anywhere}
.tb-card small{display:block;color:var(--on-paper-3);font-size:.8rem}

/* ---- like / follow / recommendations ---- */
.tb-social{display:flex;gap:10px;flex-wrap:wrap;margin-top:30px}
.tb-like,.tb-followbtn{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 18px;border-radius:100px;
  border:1px solid var(--hair-paper);background:none;color:inherit;font:inherit;font-size:.86rem;font-weight:800;cursor:pointer;
  transition:border-color .2s,background .2s,color .2s}
.tb-like:hover,.tb-followbtn:hover{border-color:var(--t,var(--gold))}
.tb-like[aria-pressed="true"]{border-color:#b3261e;color:#9b2c2c;background:color-mix(in srgb,#b3261e 8%,transparent)}
.tb-like b:empty{display:none}
.tb-like:disabled,.tb-followbtn:disabled{opacity:.55;cursor:progress}
.tb-followrow{display:flex;align-items:center;gap:12px;margin-top:14px;flex-wrap:wrap}
.thero-txt .tb-followbtn{border-color:var(--hair-umber);color:var(--on-umber)}
.thero-txt .tb-followbtn[aria-pressed="true"]{background:var(--on-umber);color:var(--umber);border-color:var(--on-umber)}
.tb-followers{font-size:.8rem;font-weight:700;color:var(--on-umber-2)}
.tb-recs{margin-top:40px;padding-top:28px;border-top:1px solid var(--hair-paper)}
.tb-reclist{list-style:none;padding:0;margin:0 0 18px;display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.tb-reclist li{border:1px solid var(--hair-paper);border-radius:14px;padding:18px 20px;background:var(--paper)}
.tb-alt .tb-reclist li,.tb-alt .tb-card{background:var(--paper)}
.tb-reclist q{display:block;font-family:var(--voice);font-style:italic;font-size:1.15rem;line-height:1.5;quotes:"“" "”"}
.tb-reclist cite{display:block;margin-top:10px;font-style:normal;font-size:.8rem;font-weight:800;color:var(--on-paper-3)}
.tb-reclist .none{border-style:dashed;color:var(--on-paper-3);font-size:.9rem}
.tb-signin{display:inline-flex;min-height:44px;align-items:center;font-weight:800;font-size:.9rem;color:var(--gold-text);text-decoration:underline;text-underline-offset:3px}

/* ---- forms ---- */
.tb-form{display:flex;flex-direction:column;gap:14px;max-width:640px}
.tb-form label{display:flex;flex-direction:column;gap:7px;font-size:.74rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--on-paper-2)}
html[lang="he"] .tb-form label{letter-spacing:.02em}
.tb-form input,.tb-form textarea,.tb-chatform input,.tb-chatform textarea{width:100%;font:inherit;font-size:1rem;font-weight:500;letter-spacing:0;text-transform:none;
  color:var(--on-paper);padding:13px 15px;border-radius:12px;border:1px solid color-mix(in srgb,var(--on-paper) 22%,transparent);background:var(--paper)}
.tb-form textarea,.tb-chatform textarea{resize:vertical;line-height:1.5}
.tb-form input:focus,.tb-form textarea:focus,.tb-chatform input:focus,.tb-chatform textarea:focus{outline:2px solid var(--t,var(--gold));outline-offset:1px;border-color:transparent}
.tb-form input[type=tel]{text-align:start}
html[dir="rtl"] .tb-form input[type=tel]{text-align:right}
.tb-row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.tb-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:4px}
.tb-row .btn,.tb-chatrow .btn{border:0;cursor:pointer;font:inherit;font-weight:800;min-height:48px}
.tb-say{font-size:.84rem;color:var(--on-paper-3);font-weight:600}
.tb-say.ok{color:#2f6f5e;font-weight:800}
.tb-say.bad{color:#9b2c2c;font-weight:800}
@media(max-width:560px){.tb-row2{grid-template-columns:1fr}}

/* ---- events, shelves' own items, promotions ---- */
.tb-events,.tb-items{display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.tb-compact .tb-events,.tb-compact .tb-items{grid-template-columns:1fr}
.tb-event,.tb-item{display:flex;flex-direction:column;border:1px solid var(--hair-paper);border-radius:16px;overflow:hidden;background:var(--paper)}
.tb-event-img,.tb-item-img{width:100%;aspect-ratio:16/10;object-fit:cover;background:var(--paper-2)}
.tb-event-body,.tb-item-body{padding:18px 20px 20px;display:flex;flex-direction:column;gap:8px;flex:1}
.tb-event-body p,.tb-item-body p{font-size:.95rem;color:var(--on-paper-2)}
.tb-event .tb-vid{margin-top:6px}
.tb-event.past{opacity:.62}
.tb-when{font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-text)}
html[lang="he"] .tb-when{letter-spacing:.02em}
.tb-past{display:inline-block;margin-inline-start:6px;padding:2px 8px;border-radius:100px;background:var(--paper-2);color:var(--on-paper-3);font-size:.7rem}
.tb-more{margin-top:auto;padding-top:6px;font-weight:800;font-size:.88rem;color:var(--gold-text)}
.tb-audio{width:100%;margin-top:6px;height:40px}
.tb-item.has-audio{border-color:color-mix(in srgb,var(--t,var(--gold)) 40%,transparent)}
.tb-price{font-weight:800;color:var(--on-paper)!important}
.tb-shelf + .tb-items{margin-top:22px}
.tb-promos{display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.tb-offer{position:relative;border:1.5px dashed color-mix(in srgb,var(--gold) 70%,transparent);border-radius:18px;
  padding:22px 24px;background:color-mix(in srgb,var(--gold) 6%,var(--paper));display:flex;flex-direction:column;gap:10px}
.tb-offer p{color:var(--on-paper-2)}
.tb-code{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.tb-code span{font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--on-paper-3)}
.tb-code b{font-family:ui-monospace,Menlo,monospace;font-size:1.05rem;letter-spacing:.08em;padding:6px 12px;border-radius:8px;
  background:var(--paper);border:1px solid var(--hair-paper);color:var(--on-paper)}
.tb-code button{min-height:36px;padding:0 12px;border-radius:100px;border:1px solid var(--hair-paper);background:none;font:inherit;font-size:.78rem;font-weight:800;cursor:pointer;color:inherit}
.tb-offer[hidden]{display:none}

/* ---- S.O.S ---- */
.tb-sos{display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.tb-sosbtn{position:relative;display:inline-flex;align-items:center;gap:16px;min-height:72px;padding:0 34px 0 18px;border-radius:100px;border:0;cursor:pointer;
  background:#b3261e;color:#fff;font:inherit;box-shadow:0 18px 40px -18px rgba(179,38,30,.7);transition:transform .15s,background .2s}
.tb-sosbtn:hover{background:#9c1f18;transform:translateY(-2px)}
.tb-sosbtn:focus-visible{outline:3px solid #1d1610;outline-offset:3px}
.tb-sosbtn b{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:#fff;color:#b3261e;font-weight:800;font-size:.86rem;letter-spacing:.02em}
.tb-sosbtn > span:last-child{font-weight:800;font-size:1.1rem}
.tb-sos-ring{position:absolute;inset-inline-start:18px;top:50%;width:54px;height:54px;margin-top:-27px;border-radius:50%;
  box-shadow:0 0 0 0 rgba(255,255,255,.6);animation:tbPulse 2.2s infinite;pointer-events:none}
@keyframes tbPulse{0%{box-shadow:0 0 0 0 rgba(255,255,255,.55)}70%{box-shadow:0 0 0 16px rgba(255,255,255,0)}100%{box-shadow:0 0 0 0 rgba(255,255,255,0)}}
@media(prefers-reduced-motion:reduce){.tb-sos-ring{animation:none}}
.tb-sosbtn:disabled{opacity:.6;cursor:progress}

/* ---- chat ---- */
.tb-chat{max-width:680px;border:1px solid var(--hair-paper);border-radius:20px;background:var(--paper);overflow:hidden}
.tb-full .tb-chat,.tb-wide .tb-chat{max-width:760px}
.tb-chatlog{list-style:none;margin:0;padding:18px;display:flex;flex-direction:column;gap:10px;min-height:120px;max-height:420px;overflow-y:auto;
  background:color-mix(in srgb,var(--t,var(--gold)) 5%,var(--paper))}
.tb-chatlog:empty::before{content:attr(data-empty);color:var(--on-paper-3);font-size:.9rem;margin:auto;text-align:center}
.tb-chatlog li{max-width:80%;padding:10px 14px;border-radius:16px;font-size:.95rem;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}
.tb-chatlog li.me{align-self:flex-end;background:var(--ink);color:var(--paper);border-end-end-radius:4px}
.tb-chatlog li.them{align-self:flex-start;background:var(--paper);border:1px solid var(--hair-paper);border-end-start-radius:4px}
.tb-chatlog li time{display:block;font-size:.7rem;opacity:.6;margin-top:4px}
.tb-chatform{display:flex;flex-direction:column;gap:10px;padding:14px;border-top:1px solid var(--hair-paper)}
.tb-chatrow{display:flex;gap:10px;align-items:stretch}
.tb-chatrow textarea{flex:1;min-height:52px}
.tb-chatform input[hidden]{display:none}
@media(max-width:560px){.tb-chatrow{flex-direction:column}.tb-chatlog li{max-width:90%}}
