/* R52 (Claude, 2026-10-22): the small extra pieces the Version 4 family / teacher / owner screens need (school messages, incidents, emergency
   contacts, consent ledger, AI policy, billing sandbox, gradebook, attendance, student support, parents, resources). Everything else is the
   Lab's own components (panel, btn, pill, tbl, list, ts-*), so Versions 3 and 4 style them already. Colours come from currentColor or are
   tinted with transparency, so they read on V3's dark glass and on V4's white glass; html[data-look=v4] gets a few navy/gold touches.
   Logical properties (inline-start / end) keep Arabic (dir=rtl) right. */
.v52-tabs,.v52-chips{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 12px}
.v52-tabs .btn{min-height:44px}
.v52-chip{min-height:44px;padding:0 14px;border-radius:999px;border:1px solid rgba(127,160,220,.5);background:transparent;color:inherit;font:inherit;cursor:pointer}
.v52-chip[aria-pressed=true]{background:rgba(255,200,74,.22);border-color:#ffc84a;font-weight:700}
.v52-item{position:relative}
.v52-unread{border-inline-start:4px solid #ffc84a!important}
.v52-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#ffc84a;margin-inline-end:8px;vertical-align:middle}
.v52-item-head{gap:8px;flex-wrap:wrap}.v52-item-title{min-width:0;overflow-wrap:anywhere}
.v52-text{white-space:pre-wrap;overflow-wrap:anywhere;margin:6px 0}
.v52-meta{margin:2px 0 6px;overflow-wrap:anywhere}
.v52-actions{gap:8px;flex-wrap:wrap}.v52-actions .btn{min-height:44px}
.v52-talk{align-items:start}
.v52-threads .li{min-height:56px}.v52-here{outline:2px solid #ffc84a;outline-offset:-2px;border-radius:12px}
.v52-bubbles{list-style:none;margin:8px 0;padding:6px;display:flex;flex-direction:column;gap:8px;max-height:52vh;overflow:auto}
.v52-bubble{max-width:85%;padding:10px 14px;border-radius:16px;background:rgba(127,160,220,.16);border:1px solid rgba(127,160,220,.35);overflow-wrap:anywhere}
.v52-bubble p{margin:0 0 4px;white-space:pre-wrap}
.v52-bubble.mine{align-self:flex-end;background:rgba(255,200,74,.2);border-color:rgba(255,200,74,.6)}
.v52-bubble.theirs{align-self:flex-start}
.linkbtn{background:none;border:0;color:inherit;text-decoration:underline;cursor:pointer;font:inherit;min-height:32px;padding:0 4px}
.v52-send textarea,.v52-form textarea{width:100%;box-sizing:border-box}
.v52-urgency{border:1px solid rgba(127,160,220,.45);border-radius:14px;padding:8px 12px;display:flex;flex-wrap:wrap;gap:4px 16px}
.v52-urgency .check{min-height:44px;display:inline-flex;align-items:center;gap:8px}
.v52-incident{padding:10px 0;border-bottom:1px solid rgba(127,160,220,.3)}.v52-incident:last-child{border-bottom:0}
.v52-contacts .li{flex-wrap:wrap;gap:8px}.v52-ico{font-size:22px}
.v52-switch{display:inline-flex;align-items:center;gap:8px;min-height:44px;cursor:pointer}.v52-switch input{width:22px;height:22px;flex:none}
.v52-ledger td,.v52-ledger th{vertical-align:top}.v52-old{opacity:.6}
.v52-filters .row{gap:10px;flex-wrap:wrap;align-items:flex-end}.v52-filters label{display:inline-flex;flex-direction:column;gap:4px}.v52-filters label.check{flex-direction:row;align-items:center;min-height:44px}
.v52-filters select,.v52-filters input[type=date],.v52-filters input[type=search]{min-height:44px}
.v52-fields{display:grid;gap:12px}.v52-field label{display:block}.v52-field input:not([type=checkbox]),.v52-field select{width:100%;min-height:44px;box-sizing:border-box}
.v52-test-banner{font-size:1.05em}
.v52-steps{padding-inline-start:20px;margin:6px 0}.v52-card{display:inline-flex;flex-direction:column;gap:4px}.v52-card input{min-height:44px;font-family:ui-monospace,monospace}
.v52-run[data-status=completed]{border-inline-start:4px solid #2ecc71!important}.v52-run[data-status=declined]{border-inline-start:4px solid #e74c3c!important}
/* Teacher Studio tabs */
.v52-gbwrap{overflow:auto;max-width:100%;-webkit-overflow-scrolling:touch}
.v52-gb th,.v52-gb td,.v52-hist th,.v52-hist td{white-space:nowrap;text-align:center}
.v52-gb thead th{font-size:.85em;vertical-align:bottom}.v52-gb thead small,.v52-hist thead small{display:block;opacity:.75;font-weight:400}
.v52-gb th[scope=row],.v52-hist th[scope=row]{text-align:start}
.v52-sticky{position:sticky;inset-inline-start:0;z-index:1;background:inherit;backdrop-filter:blur(6px)}
.v52-cell b{display:block}.v52-cell small{display:block;font-size:.78em;opacity:.85}
.v52-missing,.v52-cell.v52-missing{color:#ff8a8a}.v52-cell.v52-handed_in{background:rgba(255,200,74,.16)}.v52-cell.v52-graded,.v52-cell.v52-answered{background:rgba(46,204,113,.12)}
.v52-badge{display:inline-block;min-width:22px;padding:1px 8px;border-radius:999px;background:#ffc84a;color:#2a1700;font-size:.8em;font-weight:700;text-align:center}
.v52-seg{display:inline-flex;flex-wrap:wrap;gap:4px}.v52-seg button{min-height:44px;padding:0 10px}
.v52-seg button[aria-pressed=true]{background:linear-gradient(180deg,#fff2bf,#ffd15c 50%,#f0a400);color:#2a1700;border-color:#fff3c8;font-weight:700}
.v52-register li{align-items:center}.v52-register input[data-note]{flex:1 1 140px;min-height:44px}
.v52-hist td.v52-absent{color:#ff8a8a}.v52-hist td.v52-none{opacity:.4}
.v52-checkin{border-bottom:1px dashed rgba(127,160,220,.35);padding-bottom:6px}
.v52-share{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:4px}
.v52-ts .card{min-width:0}
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (max-width:700px){.v52-talk{grid-template-columns:1fr!important}.v52-bubble{max-width:95%}.v52-register li{flex-direction:column;align-items:stretch}.v52-seg button{flex:1 1 40%}}
/* Version 4 (bright day): navy text on white glass, gold accents */
:root[data-look=v4] .v52-chip{border-color:#a6c9e4;color:#06316f;background:#fff}
:root[data-look=v4] .v52-chip[aria-pressed=true]{background:linear-gradient(125deg,#ffdf3a,#ffa811);border-color:#edac00;color:#092a6b}
:root[data-look=v4] .v52-bubble{background:#eaf7ff;border-color:#b9e8ff;color:#06316f}
:root[data-look=v4] .v52-bubble.mine{background:#fff6cf;border-color:#ffd65a}
:root[data-look=v4] .v52-unread{border-inline-start-color:#edac00!important}
:root[data-look=v4] .v52-missing,:root[data-look=v4] .v52-cell.v52-missing,:root[data-look=v4] .v52-hist td.v52-absent{color:#b3261e}
:root[data-look=v4] .v52-sticky{background:#fff}
:root[data-look=v4] body.ts-page .v52-ts .ts-list li{background:#fff;border-color:#d3f2ff;color:#06316f}
/* while one of the Lab's dialogs (core.js modal / formBox / confirmBox) is open, the floating Teddy, "All places" and Home buttons step aside:
   on a phone they otherwise cover the dialog's own Save / Send button */
body:has(.overlay[role=dialog]) :is(.ta-orb,.hs-orb,.hs-home,#tfl-quick){visibility:hidden!important}
/* callouts (a slip waiting, the owner's answer, TEST MODE): readable in every look */
.v52-callout{margin:8px 0;padding:10px 14px;border-radius:14px;border:2px solid #e0a800;background:#fff6cf!important;color:#2a1d00!important;overflow-wrap:anywhere}
.v52-callout b{color:#2a1d00}
.v52-test-banner{border-style:dashed;font-weight:600}
