@font-face{font-family:"Noto Sans Arabic";font-style:normal;font-weight:100 900;font-display:swap;src:url("/theme/noto-sans-arabic.woff2") format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0897-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC}
/* MyClassKit design system: public site, student portal, sign-in, demo shell and teacher panel pages. */
@font-face{font-family:"Inter";font-style:normal;font-weight:100 900;font-display:swap;src:url("/theme/inter-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Inter";font-style:normal;font-weight:100 900;font-display:swap;src:url("/theme/inter-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
:root{
  --tgh-bg:#efe9dd;--tgh-card:#fbf8f1;--tgh-card2:#f6f1e7;--tgh-row:#f6f1e7;--tgh-row2:#fbf8f1;--tgh-pop:#f6f1e7;
  --tgh-line:rgba(22,21,20,0.132);--tgh-line2:rgba(22,21,20,0.195);--tgh-ink:#161514;--tgh-soft:#8d8a83;--tgh-mute:#5a534b;
  --tgh-acc:#2f62d9;--tgh-acc-soft:rgba(47,98,217,0.184);--tgh-acc-line:rgba(47,98,217,0.632);--tgh-red:#d8383b;--tgh-logo:#fbf8f1;
  --tgh-font:"Inter","Noto Sans Arabic","Noto Kufi Arabic",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  color-scheme:light;
}
html{background:var(--tgh-bg)!important}
body{background:var(--tgh-bg)!important;color:var(--tgh-ink)!important;font-family:var(--tgh-font)!important;font-weight:400!important;font-size:15px!important;line-height:1.55!important;-webkit-font-smoothing:antialiased;letter-spacing:-.003em}
*,*::before,*::after,dialog::backdrop{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
button,input,select,textarea,a,code{font-family:var(--tgh-font)!important}
::selection{background:rgba(47,98,217,0.345)}
:focus-visible{outline:2px solid var(--tgh-acc)!important;outline-offset:2px}
::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:rgba(var(--ink-rgb,22,21,20),0.14);border-radius:99px;border:2px solid var(--tgh-bg)}::-webkit-scrollbar-track{background:transparent}
h1{font-weight:650!important;letter-spacing:-.03em!important;color:var(--tgh-ink)!important}
h2,h3{font-weight:560!important;letter-spacing:-.015em!important;color:var(--tgh-ink)!important}
.eyebrow,.onboarding-kicker{color:var(--tgh-acc)!important;font-size:12px!important;font-weight:540!important;letter-spacing:.16em!important;text-transform:uppercase}
.ambient,.shell::before{display:none!important}

/* shared controls */
.button,.back,.share,.pin-share,.install-app,.change-class,.feedback-launch,.manage button,.actions button,.actions a,.tour-card button,.text-button,.feedback-actions button,.offline-card button{
  display:inline-flex;align-items:center;justify-content:center;min-height:42px!important;padding:8px 18px!important;border:1px solid var(--tgh-line2)!important;border-radius:999px!important;
  background:rgba(255,253,248,calc(0.295 * var(--wash-k,1)))!important;color:var(--tgh-soft)!important;font-size:14px!important;font-weight:500!important;text-decoration:none!important;box-shadow:none!important;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}
.button:hover,.back:hover,.share:hover,.pin-share:hover,.install-app:hover,.change-class:hover,.feedback-launch:hover,.manage button:hover,.actions button:hover,.actions a:hover,.tour-card button:hover,.feedback-actions button:hover{
  background:rgba(47,98,217,0.092)!important;border-color:rgba(47,98,217,0.517)!important;color:var(--n-ink,#161514)!important}
.button.primary,.actions .primary,.tour-card .primary,.submit,body[data-page="migration"] button:not(.tgh-theme-btn){background:var(--n-ink,#161514)!important;color:var(--n-onink,#fffdf8)!important;border-color:var(--n-edge,#161514)!important;font-weight:540!important}
.button.primary:hover,.actions .primary:hover,.tour-card .primary:hover,.submit:hover{background:var(--n-ink,#161514)!important;color:var(--n-onink,#fffdf8)!important}
.text-button{min-height:auto!important;padding:4px 0!important;border:0!important;background:transparent!important;color:var(--tgh-mute)!important;justify-content:flex-start}
.text-button:hover{color:var(--tgh-acc)!important;background:transparent!important}
input,select,textarea{background:rgba(255,253,248,calc(0.26 * var(--wash-k,1)))!important;border:1px solid var(--tgh-line2)!important;color:var(--tgh-ink)!important;font-size:15px!important;box-shadow:none!important}
input:focus,select:focus,textarea:focus{border-color:var(--tgh-acc-line)!important;background:rgba(47,98,217,0.057)!important;outline:0!important}
input::placeholder,textarea::placeholder{color:var(--n-mute2,#7a7268)!important}
select option{background:var(--tgh-card2);color:var(--tgh-ink)}
.segmented,.auth-tabs{display:flex;gap:4px;padding:4px!important;border:1px solid var(--tgh-line)!important;border-radius:999px!important;background:rgba(255,253,248,calc(0.295 * var(--wash-k,1)))!important}
.segmented button,.auth-tabs button{min-height:40px!important;border:1px solid transparent!important;border-radius:999px!important;background:transparent!important;color:var(--tgh-mute)!important;font-size:14px!important;font-weight:500!important}
.segmented button[aria-selected="true"],.auth-tabs button[aria-selected="true"]{background:var(--tgh-acc-soft)!important;border-color:var(--tgh-acc-line)!important;color:var(--n-ink,#161514)!important}
.error{color:var(--t-red,#b0242a)!important;font-size:13px!important}
.message,.feedback-status{color:var(--tgh-acc)!important;font-size:13px!important}

/* panel bar (teacher panel, schedule, demo) */
.bar,.demo-bar{background:var(--n-card,#fbf8f1)!important;border-bottom:1px solid var(--tgh-line)!important;box-shadow:none!important}
.brand{display:inline-flex;align-items:center;gap:10px;color:var(--tgh-ink)!important;font-weight:560!important;letter-spacing:-.01em!important;font-size:15px}
.brand-symbol{display:block;width:30px;height:30px;flex:0 0 auto;padding:5px;border:1px solid var(--tgh-line2);border-radius:10px;background:var(--tgh-logo)}
.brand-wordmark{display:block;width:132px;height:auto}
.brand-suffix{color:var(--tgh-mute);font-weight:500}
.bar .brand::before{content:"";display:block;width:30px;height:30px;flex:0 0 auto;border:1px solid var(--tgh-line2);border-radius:10px;background:var(--tgh-logo) url("/theme/logo-mark.svg") center/20px no-repeat}
.demo-bar .brand::before{content:"";display:block;width:124px;height:32px;flex:0 0 auto;border:0;border-radius:0;background:transparent url("/theme/teachtally-logo-on-light.svg") center/contain no-repeat}
nav a,nav button,.demo-nav button{border-radius:999px!important;color:var(--tgh-mute)!important;font-size:14px!important;font-weight:500!important;padding:7px 13px!important;border:1px solid transparent!important;background:transparent!important}
nav a:hover,nav button:hover,.demo-nav button:hover{color:var(--n-ink,#161514)!important;background:rgba(255,253,248,calc(0.33 * var(--wash-k,1)))!important}
nav a[aria-current="page"],.demo-nav button[aria-current="page"]{color:var(--n-ink,#161514)!important;background:var(--tgh-acc-soft)!important;border-color:var(--tgh-acc-line)!important}
.network{color:var(--tgh-mute)!important;font-size:12px!important}
.network[data-offline="true"]{color:var(--tgh-red)!important}
iframe{background:var(--tgh-bg)!important}

/* cards */
.card,.top,.hero,.access-head,.pin-card,.stat,.message,.pin-message,.access-card,.performance,.homework,.demo-entry,.feedback-card,.event-card,
body[data-page="admin"] .panel,body[data-page="legal"] main{
  background:var(--tgh-card)!important;border:1px solid var(--tgh-line)!important;box-shadow:none!important;border-radius:24px!important}
.demo-entry,.feedback-card,.event-card,.stat{background:var(--tgh-row)!important;border-radius:18px!important}
.pin-card code,.card code{padding:16px!important;border:1px solid var(--tgh-acc-line)!important;border-radius:14px!important;background:var(--tgh-acc-soft)!important;color:var(--n-ink,#161514)!important;font-size:24px!important;font-weight:600!important;letter-spacing:.16em!important}
.pin-card p,.card p{color:var(--tgh-mute)!important;font-size:13px!important}
.pin-card h2,.card h2{font-size:20px!important}
.stat strong{font-size:30px!important;font-weight:620!important;letter-spacing:-.03em}
.stat span,.panel-copy{color:var(--tgh-mute)!important;font-size:12px!important}
.status{background:var(--tgh-acc-soft)!important;color:var(--tgh-acc)!important;font-size:12px!important}
.status.suspended,.severity.error{background:rgba(216,56,59,0.138)!important;color:var(--t-red,#b0242a)!important}
.health{color:var(--tgh-acc)!important}.health.alert{color:var(--tgh-red)!important}
.table th{color:var(--tgh-mute)!important;font-size:12px!important;font-weight:540!important}
.table td{font-weight:400!important}

/* dialogs */
.feedback-dialog,dialog{background:var(--tgh-pop)!important;border:1px solid rgba(47,98,217,0.402)!important;border-radius:26px!important;box-shadow:none!important;color:var(--tgh-ink)!important}
.feedback-dialog::backdrop,dialog::backdrop{background:rgba(22,21,20,0.434)!important}
.feedback-card select,.feedback-card textarea{border-radius:14px!important}
.designer-credit{color:var(--n-mute2,#7a7268)!important;font-size:12px!important;letter-spacing:0!important}

/* ===== sign-in gate (teacher panel + schedule) */
body[data-page="panel"] .gate,body[data-page="schedule"] .gate{background:var(--tgh-bg)}
body[data-page="panel"] .card,body[data-page="schedule"] .card{width:min(100%,540px)!important;padding:40px!important;border-radius:28px!important;background:var(--tgh-pop)!important;border-color:rgba(47,98,217,0.287)!important}
.gate-wordmark{display:block;width:min(220px,65%);height:auto;margin:0 0 26px}
body[data-page="panel"] .gate .card,body[data-page="schedule"] .gate .card{text-align:center}
body[data-page="panel"] .gate .card::before,body[data-page="schedule"] .gate .card::before{content:"";display:block;width:min(220px,65%);height:48px;margin:0 auto 28px;background:url("/theme/teachtally-logo-on-light.svg") center/contain no-repeat}
body[data-page="panel"] .gate .eyebrow,body[data-page="schedule"] .gate .eyebrow{display:none}
body[data-page="panel"] .card h1,body[data-page="schedule"] .card h1{font-size:clamp(34px,6vw,46px)!important;line-height:1.04!important}
body[data-page="panel"] .card p{color:var(--tgh-soft)!important}
body[data-page="panel"] .card h1,body[data-page="panel"] .card>p,body[data-page="schedule"] .card h1,body[data-page="schedule"] .card>p{text-align:center}
body[data-page="panel"] input{border-radius:999px!important;min-height:48px;padding:12px 18px!important}
body[data-page="panel"] .early-access{display:inline-flex;align-items:center;justify-content:center;margin:-6px auto 20px!important;padding:6px 12px;border:1px solid rgba(31,138,90,0.287);border-radius:999px;background:rgba(31,138,90,0.092);color:var(--t-green,#1f8a5a)!important;font-size:12px!important}
body[data-page="panel"] .auth-tabs{margin-inline:auto!important}
body[data-page="panel"] .auth-tabs button:first-child[aria-selected="true"]{background:rgba(47,98,217,0.23)!important;border-color:#2f62d9!important;color:var(--n-ink,#161514)!important}
body[data-page="panel"] .auth-tabs button:last-child[aria-selected="true"]{background:rgba(31,138,90,0.207)!important;border-color:#1f8a5a!important;color:var(--n-ink,#161514)!important}
body[data-page="panel"] #authSubmit{background:#2f62d9!important;border-color:#2f62d9!important;color:#fffdf8!important}
body[data-page="panel"] .card:has([data-auth-mode="signup"][aria-selected="true"]) #authSubmit{background:#1f8a5a!important;border-color:#1f8a5a!important;color:#161514!important}
body[data-page="panel"] .auth-row{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;margin-top:12px!important}
body[data-page="panel"] #googleSignIn{grid-row:1;position:relative;width:100%;min-height:48px!important;padding-left:48px!important;background:var(--n-ink,#161514)!important;border-color:var(--n-edge,#161514)!important;color:var(--n-onink,#fffdf8)!important;font-weight:540!important}
body[data-page="panel"] #googleSignIn::before{content:"";position:absolute;left:18px;width:21px;height:21px;background:url("/theme/google-g.svg") center/contain no-repeat}
body[data-page="panel"] #googleSignIn:hover{background:var(--n-ink,#161514)!important;border-color:var(--n-edge,#161514)!important;color:var(--n-onink,#fffdf8)!important}
body[data-page="panel"] #forgotPassword{grid-row:2;justify-self:center!important;width:auto!important;color:var(--tgh-acc)!important;text-align:center!important}
body[data-page="panel"] .divider{color:var(--tgh-mute)!important;font-size:12px!important}
body[data-page="panel"] .divider::before,body[data-page="panel"] .divider::after{background:var(--tgh-line)!important}
body[data-page="panel"] .demo-entry{align-items:center!important;flex-direction:column!important;justify-content:center!important;text-align:center!important;border-color:rgba(107,79,216,0.322)!important;background:rgba(107,79,216,0.069)!important}
body[data-page="panel"] .demo-entry span{color:var(--tgh-mute)!important;font-size:13px!important}
body[data-page="panel"] .demo-entry strong{font-weight:540!important}
body[data-page="panel"] .demo-entry .button{min-width:132px!important;background:rgba(107,79,216,0.207)!important;border-color:#583cc0!important;color:var(--n-ink,#161514)!important}
body[data-page="panel"] .demo-entry .button:hover{background:rgba(107,79,216,0.322)!important}
body[data-page="panel"] .legal-links a{color:var(--tgh-mute)!important;font-size:12px!important}
body[data-page="panel"] .legacy{border-top-color:var(--tgh-line)!important}
body[data-page="panel"] .legacy .text-button{justify-content:center!important;width:100%!important;text-align:center!important}
body[data-page="panel"] .access-head h1{font-size:40px!important}

/* ===== demo shell */
body[data-page="demo"] .veil{background:rgba(22,21,20,0.35)!important}
body[data-page="demo"] .spotlight{border:1.5px solid rgba(47,98,217,0.862)!important;box-shadow:0 0 0 4000px rgba(var(--ink-rgb,22,21,20),0.12)!important;border-radius:16px!important}
body[data-page="demo"] .tour-card{background:var(--tgh-pop)!important;border:1px solid rgba(47,98,217,0.402)!important;border-radius:26px!important;box-shadow:none!important;padding:26px!important}
body[data-page="demo"] .tour-card h1{font-size:26px!important;font-weight:620!important}
body[data-page="demo"] .tour-card p{color:var(--tgh-soft)!important;font-size:15px!important}
body[data-page="demo"] .tour-card .eyebrow{color:var(--tgh-mute)!important}
body[data-page="demo"] .progress i{background:rgba(255,253,248,calc(0.89 * var(--wash-k,1)))!important}
body[data-page="demo"] .progress i.active{background:var(--tgh-acc)!important}
body[data-page="demo"] .brand{gap:12px}
body[data-page="demo"] .brand-wordmark{width:124px}
body[data-page="demo"] .demo-bar .brand{font-size:0}
body[data-page="demo"] .demo-bar .brand::after{content:"Interactive demo";color:var(--tgh-mute);font-size:13px;font-weight:500}

/* ===== student portal */
body[data-page="portal"]{font-size:15px!important}
body[data-page="portal"] .shell{padding:clamp(10px,2.4vw,28px)!important}
body[data-page="portal"] .window{background:transparent!important;border:0!important;box-shadow:none!important;border-radius:0!important;overflow:visible!important}
body[data-page="portal"] header{border-bottom:1px solid var(--tgh-line)!important;min-height:76px!important}
body[data-page="portal"] .mark{width:44px!important;height:44px!important;border:0!important;border-radius:14px!important;background:var(--tgh-logo)!important;color:var(--n-soft,#2e2a26)!important;font-size:0!important;position:relative}
body[data-page="portal"] .mark::after{content:"";position:absolute;inset:9px;background:url("/theme/logo-mark.svg") center/contain no-repeat}
body[data-page="portal"] .brand{font-size:16px!important}
body[data-page="portal"] .brand small{color:var(--tgh-mute)!important;font-size:11px!important;font-weight:540!important;letter-spacing:.16em!important}
body[data-page="portal"] .read-only,body[data-page="portal"] .pwa-actions{color:var(--tgh-mute)!important;font-size:13px!important}
body[data-page="portal"] .read-only::before,body[data-page="portal"] .status-dot{background:var(--tgh-acc)!important;box-shadow:none!important}
body[data-page="portal"] .access{min-height:calc(100vh - 170px)!important}
body[data-page="portal"] .intro h1{font-size:clamp(44px,6.4vw,84px)!important;line-height:.98!important;letter-spacing:-.04em!important}
body[data-page="portal"] .intro h1 br+*{color:var(--tgh-acc)}
body[data-page="portal"] .intro p{color:var(--tgh-soft)!important;font-size:18px!important;max-width:520px!important}
body[data-page="portal"] .intro .eyebrow{font-size:13px!important}
body[data-page="portal"] .access-note{color:var(--tgh-mute)!important;font-size:14px!important;border-top-color:var(--tgh-line)!important}
body[data-page="portal"] .access-card{padding:28px!important;border-radius:28px!important;background:var(--tgh-pop)!important;border-color:rgba(47,98,217,0.287)!important}
body[data-page="portal"] .card-title{font-size:17px!important;font-weight:560;border-bottom-color:var(--tgh-line)!important}
body[data-page="portal"] label{color:var(--tgh-mute)!important;font-size:12px!important;font-weight:540!important;letter-spacing:.12em!important}
body[data-page="portal"] #classPin{border-radius:16px!important;min-height:58px;font-size:22px!important;font-weight:600!important;letter-spacing:.2em!important;text-align:center}
body[data-page="portal"] #classPin::placeholder{font-size:15px!important;font-weight:400!important;letter-spacing:0!important}
body[data-page="portal"] .submit{border-radius:999px!important;min-height:52px;padding:12px 22px!important;font-size:15px!important}
body[data-page="portal"] .controls{background:transparent!important;border-bottom-color:var(--tgh-line)!important}
body[data-page="portal"] .heading h1{font-size:clamp(26px,3vw,38px)!important}
body[data-page="portal"] .heading p{color:var(--tgh-mute)!important;font-size:14px!important}
body[data-page="portal"] .summary{color:var(--tgh-mute)!important;font-size:14px!important;border-bottom-color:var(--tgh-line)!important}
body[data-page="portal"] .class-name{font-size:18px!important;font-weight:600}
body[data-page="portal"] .summary-stats strong{font-weight:600!important}
body[data-page="portal"] .legend{font-size:12px!important}
body[data-page="portal"]{--green:#1f8a5a;--blue:#2f62d9;--gold:#f2b31d;--rose:#d8383b}
body[data-page="portal"] .table-wrap{border-bottom:1px solid var(--tgh-line)}
body[data-page="portal"] table{background:transparent!important}
body[data-page="portal"] th,body[data-page="portal"] td{border-color:var(--tgh-line)!important;font-size:14px}
body[data-page="portal"] thead th{background:var(--n-card,#fbf8f1)!important;color:var(--n-soft,#2e2a26)!important;font-size:12px!important;font-weight:540!important}
body[data-page="portal"] thead tr:nth-child(2) th,body[data-page="portal"] thead tr:nth-child(3) th{background:var(--tgh-row)!important;color:var(--tgh-mute)!important;font-size:12px!important}
body[data-page="portal"] thead .number-head,body[data-page="portal"] thead .name-head,body[data-page="portal"] thead .average-head{background:var(--n-card,#fbf8f1)!important}
body[data-page="portal"] tbody td{background:var(--tgh-card)!important}
body[data-page="portal"] tbody tr:nth-child(even) td{background:var(--tgh-row2)!important}
body[data-page="portal"] tbody tr:hover td{background:var(--n-raise,#f6f1e7)!important}
body[data-page="portal"] tbody .number-cell,body[data-page="portal"] tbody .name-cell{background:var(--tgh-card)!important;box-shadow:none!important}
body[data-page="portal"] tbody tr:nth-child(even) .number-cell,body[data-page="portal"] tbody tr:nth-child(even) .name-cell{background:var(--tgh-row2)!important}
body[data-page="portal"] tbody .name-cell,body[data-page="portal"] .name-cell{font:500 15px/1.35 var(--tgh-font)!important}
body[data-page="portal"] .score{color:var(--tgh-soft)!important}
body[data-page="portal"] .average-cell{background:color-mix(in srgb,var(--tone) 14%,var(--n-card,#fbf8f1))!important;font-weight:600!important;font-size:15px!important;box-shadow:none!important}
body[data-page="portal"] .note-cell{color:var(--tgh-soft)!important;font-size:13px!important}
body[data-page="portal"] .week-badge{text-shadow:none!important}
body[data-page="portal"] .student-rank-medal,body[data-page="portal"] .student-rank-medal .rank-star{filter:none!important}
body[data-page="portal"] .performance,body[data-page="portal"] .homework{margin:22px 0!important;padding:28px!important;border-radius:28px!important}
body[data-page="portal"] .chart-head h2,body[data-page="portal"] .homework h2{font-size:24px!important}
body[data-page="portal"] .chart-head p,body[data-page="portal"] .weekly-podium-copy{color:var(--tgh-mute)!important;font-size:14px!important}
body[data-page="portal"] .chart-badge{color:var(--tgh-soft)!important;font-size:12px!important;border-color:var(--tgh-line)!important}
body[data-page="portal"] .chart-stage,body[data-page="portal"] .weekly-podium{background:var(--tgh-row)!important;border-color:var(--tgh-line)!important;border-radius:20px!important}
body[data-page="portal"] .weekly-podium h3{font-size:19px!important}
body[data-page="portal"] .axis-label{font:12px var(--tgh-font)!important;fill:var(--tgh-mute)!important}
body[data-page="portal"] .x-label{font:13px var(--tgh-font)!important;fill:var(--tgh-soft)!important}
body[data-page="portal"] .chart-grid{stroke:rgba(var(--ink-rgb,22,21,20),0.108)!important}
body[data-page="portal"] .chart-dot{stroke:#413f3c!important;stroke-width:2!important}
body[data-page="portal"] .chart-tooltip,body[data-page="portal"] .podium-radar{background:var(--tgh-pop)!important;border:1px solid rgba(47,98,217,0.46)!important;border-radius:16px!important;box-shadow:none!important}
body[data-page="portal"] .chart-tooltip-title,body[data-page="portal"] .radar-title span{color:var(--tgh-mute)!important;font-size:12px!important}
body[data-page="portal"] .chart-tooltip-person,body[data-page="portal"] .legend-person,body[data-page="portal"] .podium-name,body[data-page="portal"] .radar-title strong{font-family:var(--tgh-font)!important;font-weight:500!important}
body[data-page="portal"] .chart-tooltip-person{font-size:14px!important}
body[data-page="portal"] .legend-person{font-size:13px!important;color:var(--tgh-soft)!important}
body[data-page="portal"] .podium-name{font-size:14px!important;font-weight:540!important}
body[data-page="portal"] .podium-points{font-size:12px!important;color:var(--tgh-mute)!important}
body[data-page="portal"] .podium-person{background:rgba(47,98,217,0.069)!important;border-color:var(--tgh-line2)!important;border-radius:16px 16px 8px 8px!important}
body[data-page="portal"] .podium-person.rank-1{background:rgba(47,98,217,0.184)!important;border-color:var(--tgh-acc-line)!important}
body[data-page="portal"] .radar-shape{fill:var(--t-blue,rgba(47,98,217,0.23))!important;stroke:var(--tgh-acc)!important}
body[data-page="portal"] .radar-label{font:12px var(--tgh-font)!important}
body[data-page="portal"] .radar-value{font:540 13px var(--tgh-font)!important}
body[data-page="portal"] .homework p{color:var(--tgh-soft)!important;font-size:16px!important}
body[data-page="portal"] footer{color:var(--n-mute2,#7a7268)!important;font-size:12px!important;letter-spacing:0!important;padding:26px 20px!important}
body[data-page="portal"] footer a:hover{color:var(--tgh-acc)!important}

/* ===== small pages */
body[data-page="access"] h1,body[data-page="admin"] .hero h1{font-size:40px!important}
body[data-page="access"] .top p:last-child,body[data-page="admin"] .hero p:last-child{color:var(--tgh-soft)!important}
body[data-page="legal"] main{padding:44px!important;border-radius:28px!important}
body[data-page="legal"] h1{font-size:40px!important}
body[data-page="legal"] h2{font-size:20px!important;margin-top:30px!important}
body[data-page="legal"] p,body[data-page="legal"] li{color:var(--tgh-soft)!important;font-size:16px!important}
body[data-page="legal"] a{color:var(--tgh-acc)!important}
body[data-page="offline"] .card,body[data-page="migration"] .card{padding:40px!important;border-radius:28px!important;background:var(--tgh-pop)!important}
body[data-page="offline"] h1,body[data-page="migration"] h1{font-size:40px!important}
body[data-page="offline"] p,body[data-page="migration"] p{color:var(--tgh-soft)!important}
body[data-page="offline"] button{border-radius:999px!important;background:var(--n-ink,#161514)!important;color:var(--n-onink,#fffdf8)!important;border-color:var(--n-edge,#161514)!important;font-weight:540!important;min-height:44px;padding:10px 20px!important}
body[data-page="migration"] button:not(.tgh-theme-btn){border-radius:999px!important;min-height:48px}
.actions button,.actions a{gap:.3em}
/* compact bars on small screens */
.demo-shell,.panel{min-width:0;max-width:100vw}
.demo-bar,.bar{min-width:0;max-width:100vw}
@media(max-width:900px){
  .demo-nav button,nav a,nav button{font-size:13px!important;padding:6px 9px!important}
  .actions button,.actions a{min-height:36px!important;padding:6px 12px!important;font-size:13px!important}
}
@media(max-width:620px){
  .demo-bar{gap:4px!important;padding:0 6px!important}
  .demo-nav{min-width:0;overflow-x:auto;scrollbar-width:none;flex:1 1 auto;justify-content:flex-start!important;margin:0!important}
  .demo-nav::-webkit-scrollbar{display:none}
  .demo-nav button{font-size:12px!important;padding:5px 8px!important;white-space:nowrap;flex:0 0 auto}
  .actions{flex:0 0 auto;gap:4px!important}
  .actions button,.actions a{min-height:32px!important;padding:5px 9px!important;font-size:12px!important;white-space:nowrap}
  nav{min-width:0;overflow-x:auto;scrollbar-width:none}
  nav::-webkit-scrollbar{display:none}
  nav a,nav button{font-size:12px!important;padding:5px 8px!important;white-space:nowrap;flex:0 0 auto}
  body[data-page="panel"] .card,body[data-page="schedule"] .card{padding:28px 22px!important}
  body[data-page="portal"] .controls .segmented button{min-height:36px!important;font-size:13px!important}
}
body[data-page="portal"] .summary-main{flex-wrap:wrap;row-gap:4px}
body[data-page="portal"] .class-name{white-space:nowrap}

/* credit sits at the end of the page instead of floating over content */
.designer-credit{position:static!important;transform:none!important;display:block;margin:28px auto 22px!important;text-align:center;white-space:normal!important;pointer-events:auto!important}
body[data-page="demo"] .designer-credit,body:has(.panel.ready) .designer-credit{display:none!important}
body[data-page="panel"],body[data-page="schedule"]{height:auto!important;min-height:100%}
body:has(.panel.ready){height:100%!important}
/* connection status: left side, green online, red offline */
.bar-left{display:inline-flex;align-items:center;gap:14px;min-width:0}
.bar .network,body[data-page] .bar .network{display:inline-flex!important;align-items:center;gap:7px;padding:4px 11px;border-radius:999px;border:1px solid rgba(31,138,90,0.402);background:rgba(31,138,90,0.092);color:var(--t-green,#1f8a5a)!important;font-size:12px!important;font-weight:540;white-space:nowrap}
.bar .network::before{content:"";width:7px;height:7px;border-radius:50%;background:#1f8a5a}
body[data-page] .bar .network[data-offline="true"],.bar .network[data-offline="true"]{border-color:rgba(216,56,59,0.517);background:rgba(216,56,59,0.115);color:var(--tgh-red)!important}
.bar .network[data-offline="true"]::before{background:var(--tgh-red)}
/* feedback dialog */
.feedback-dialog{width:min(560px,calc(100% - 24px))!important;padding:0!important}
.feedback-dialog form,.feedback-dialog .feedback-card{display:block!important;padding:28px!important;background:transparent!important;border:0!important;border-radius:0!important}
.feedback-card h2{font-size:24px!important;margin:0 0 6px!important}
.feedback-card p{color:var(--tgh-soft)!important;font-size:14px!important;margin:0 0 16px!important}
.feedback-card label{display:grid!important;gap:7px!important;margin-top:14px!important;color:var(--tgh-mute)!important;font-size:12px!important;font-weight:540;letter-spacing:.08em;text-transform:uppercase}
.feedback-card select,.feedback-card textarea{width:100%!important;min-height:46px;padding:11px 14px!important;border-radius:14px!important;text-transform:none;letter-spacing:0;font-weight:400}
.feedback-card textarea{min-height:140px!important;resize:vertical}
.feedback-actions{display:flex!important;justify-content:flex-end!important;gap:10px!important;margin-top:18px!important}
.feedback-actions .button{min-height:44px!important;padding:8px 20px!important;flex:0 0 auto}
.feedback-launch{min-height:38px!important;font-size:13px!important}

/* ===== v17: lively palette accents ===== */
:root{--tgh-blue:#2f62d9;--tgh-mint:#1f8a5a;--tgh-coral:#d8383b;--tgh-amber:#f2b31d;--tgh-violet:#6b4fd8}
body[data-page]{background:var(--tgh-bg)!important;background-attachment:fixed!important}
h1,h2,h3{font-weight:600!important}
strong,b,th{font-weight:560!important}

/* ===== v17: compact sign-in (fits one screen) ===== */
body[data-page="panel"] .gate{min-height:100svh!important;display:grid!important;place-items:center!important;padding:18px 14px!important;box-sizing:border-box;background:transparent!important}
body[data-page="panel"] .gate .card{width:min(400px,100%)!important;max-width:400px!important;box-sizing:border-box;padding:24px 24px 16px!important;border-radius:22px!important;margin:0 auto!important}
body[data-page="panel"] .gate .card::before{height:32px!important;width:170px!important;margin:0 auto 14px!important}
body[data-page="panel"] .gate h1{font-size:22px!important;line-height:1.25!important;font-weight:600!important;letter-spacing:-.02em!important;margin:0 0 6px!important}
body[data-page="panel"] .gate h1 br{display:none}
body[data-page="panel"] #gateText{font-size:13.5px!important;line-height:1.45!important;margin:0 0 10px!important;color:var(--tgh-mute)!important}
body[data-page="panel"] .early-access{margin:0 auto 14px!important;padding:3px 10px!important;font-size:11.5px!important;font-weight:500!important}
body[data-page="panel"] .auth-tabs{margin:0 auto 10px!important;padding:3px!important}
body[data-page="panel"] .auth-tabs button{min-height:34px!important;height:34px!important;padding:0 10px!important;font-size:13.5px!important}
body[data-page="panel"] .auth-form{display:grid!important;gap:8px!important;margin:0!important}
body[data-page="panel"] .auth-form input{min-height:42px!important;height:42px!important;padding:0 14px!important;font-size:14.5px!important;border-radius:12px!important}
body[data-page="panel"] #authSubmit{min-height:42px!important;height:42px!important;border-radius:12px!important;font-size:14.5px!important;font-weight:560!important;margin:0!important}
body[data-page="panel"] .auth-row{gap:6px!important;margin-top:8px!important}
body[data-page="panel"] #googleSignIn{min-height:42px!important;height:42px!important;border-radius:12px!important;font-size:14px!important;font-weight:500!important}
body[data-page="panel"] #forgotPassword{font-size:13px!important;min-height:28px!important;padding:2px 8px!important}
body[data-page="panel"] .demo-entry{flex-direction:row!important;justify-content:space-between!important;text-align:left!important;gap:12px!important;padding:10px 12px 10px 14px!important;margin-top:10px!important;border-radius:14px!important}
body[data-page="panel"] .demo-entry>div{display:grid;gap:1px;min-width:0}
body[data-page="panel"] .demo-entry strong{font-size:13.5px!important}
body[data-page="panel"] .demo-entry span{font-size:12px!important;line-height:1.35!important}
body[data-page="panel"] .demo-entry .button{min-width:0!important;min-height:36px!important;padding:0 16px!important;flex:0 0 auto;font-size:13.5px!important}
body[data-page="panel"] .gate .message:empty,body[data-page="panel"] .gate .error:empty{display:none!important}
body[data-page="panel"] .gate .message,body[data-page="panel"] .gate .error{margin:8px 0 0!important;padding:8px 12px!important;font-size:13px!important}
body[data-page="panel"] .legacy{margin-top:10px!important;padding-top:8px!important}
body[data-page="panel"] .legacy .text-button{font-size:12.5px!important;min-height:28px!important;color:var(--tgh-mute)!important}
body[data-page="panel"] .student-entry{display:flex;justify-content:center;gap:6px;margin:8px 0 0;padding:8px 10px;border-radius:12px;background:rgba(242,179,29,0.092);border:1px solid rgba(242,179,29,0.253);color:var(--tgh-soft);font-size:13px;text-decoration:none}
body[data-page="panel"] .student-entry span{color:var(--tgh-amber);font-weight:500}
body[data-page="panel"] .student-entry:hover{background:rgba(242,179,29,0.161)}
body[data-page="panel"] .legal-links{margin-top:8px!important;gap:14px!important}
@media (max-width:480px){
  body[data-page="panel"] .gate{padding:12px 10px!important;place-items:start center!important}
  body[data-page="panel"] .gate .card{padding:20px 16px 14px!important;border-radius:20px!important}
  body[data-page="panel"] .gate h1{font-size:20px!important}
  body[data-page="panel"] .early-access{display:none!important}
}

/* ===== v17: phone top bars — two rows, nothing cut off ===== */
h1{font-weight:560!important}
#scheduleTitle,#tourTitle{font-weight:560!important}
@media (max-width:620px){
  .demo-shell{grid-template-rows:auto 1fr!important}
  .panel.ready{grid-template-rows:auto 1fr!important}
  .demo-bar,.bar{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;row-gap:6px!important;column-gap:8px!important;height:auto!important;min-height:0!important;padding:8px 10px 6px!important}
  .demo-bar,.bar{overflow-x:clip!important}
  .demo-bar .brand,.bar .bar-left{flex:1 1 auto;min-width:0}
  body[data-page="demo"] .demo-bar .brand::before{width:104px!important;height:26px!important}
  body[data-page="demo"] .demo-bar .brand::after{display:none!important}
  .demo-bar .actions{flex:0 0 auto;margin-left:auto}
  .demo-bar .actions .reset-label,.demo-bar .actions .sign-label{display:none}
  #restartTour{font-size:0!important;width:34px;padding:0!important;justify-content:center}
  #restartTour::before{content:"?";font-size:15px;font-weight:600}
  .demo-nav,.bar nav{grid-column:1/-1!important;grid-row:2;justify-content:flex-start!important;margin:0!important;width:100%;max-width:100%!important;min-width:0!important;box-sizing:border-box;display:flex!important;gap:4px!important;overflow-x:auto!important;padding-bottom:2px}
  .bar .brand{font-size:14px!important}
  .bar .brand::before{width:26px!important;height:26px!important;background-size:17px!important}
  .bar .network{font-size:11.5px!important;padding:3px 9px!important}
}

/* ===== v17: student portal accents ===== */
body[data-page="portal"] .access .eyebrow{color:var(--tgh-amber)!important}
body[data-page="portal"] .access h1{font-weight:560!important;letter-spacing:-.035em!important}
body[data-page="portal"] #submit{background:var(--tgh-blue)!important;border-color:var(--tgh-blue)!important;color:#161514!important;font-weight:560!important}
body[data-page="portal"] #submit:hover{background:#2f62d9!important}
body[data-page="portal"] .segmented button[aria-selected="true"]{background:var(--tgh-blue)!important;border-color:var(--tgh-blue)!important;color:#161514!important}
body[data-page="portal"] .status-dot{background:var(--tgh-mint)!important}
body[data-page="portal"] .access-card{border-color:rgba(47,98,217,0.322)!important}
body[data-page="portal"] .access-note{border-left:0!important;color:var(--tgh-mute)!important}
body[data-page="portal"] .change-class{color:var(--tgh-amber)!important;border-color:rgba(242,179,29,0.368)!important;background:rgba(242,179,29,0.081)!important}
body[data-page="portal"] .read-only{color:var(--tgh-amber)!important}
body[data-page="portal"] .read-only::before{background:var(--tgh-amber)!important}
/* panel bar: coloured active tab */
.bar nav a[aria-current="page"],.demo-nav button[aria-current="page"]{background:var(--tgh-blue)!important;border-color:var(--tgh-blue)!important;color:#161514!important}
body[data-page="demo"] .actions .primary{background:var(--tgh-mint)!important;border-color:var(--tgh-mint)!important;color:#161514!important}
/* v17: student portal on phones */
.podium-name{white-space:normal!important;text-overflow:clip!important;overflow-wrap:anywhere;display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.25!important;direction:auto!important;unicode-bidi:plaintext}
@media (max-width:620px){
  body[data-page="portal"] .chart-badge{white-space:nowrap;align-self:flex-start;max-width:100%;overflow:hidden;text-overflow:ellipsis}
  body[data-page="portal"] .performance>*:first-child,body[data-page="portal"] .performance header{flex-wrap:wrap!important;gap:8px!important}
  body[data-page="portal"] .controls .segmented button{white-space:nowrap;font-size:12.5px!important;padding:0 10px!important}
  body[data-page="portal"] .podium-name{font-size:12.5px!important}
}
/* v17.1: a hidden sign-in card must stay hidden once the teacher is signed in */
body[data-page] .gate[hidden],body[data-page="panel"] .gate[hidden],body[data-page="schedule"] .gate[hidden]{display:none!important}
[hidden]{display:none!important}
/* v19: student names in Times New Roman (student portal) */
body[data-page="portal"] .name-cell,body[data-page="portal"] .podium-name,body[data-page="portal"] .student-name-line{font-family:"Times New Roman",Times,"Noto Sans Arabic",serif!important;font-weight:600!important}
body[data-page="portal"] .name-cell{font-size:15px!important}

/* ===== v23: welcome greeting when the teacher panel opens ===== */
.tgh-greeting{position:fixed;z-index:80;left:50%;top:72px;display:grid;grid-template-columns:auto 1fr;column-gap:12px;align-items:center;width:max-content;max-width:min(440px,calc(100vw - 24px));box-sizing:border-box;padding:14px 20px 14px 16px;border:1px solid rgba(242,179,29,0.402);border-radius:18px;background:var(--n-card,#fbf8f1);box-shadow:none;color:var(--tgh-ink,#161514);font-family:var(--tgh-font);cursor:pointer;opacity:0;transform:translate(-50%,-12px);transition:opacity .35s ease,transform .35s ease}
.tgh-greeting.show{opacity:1;transform:translate(-50%,0)}
.tgh-greeting i{grid-row:1/3;font-style:normal;font-size:28px;line-height:1;animation:tgh-wave 1.4s ease .3s 2}
.tgh-greeting strong{font-size:17px;font-weight:600;letter-spacing:-.01em;color:var(--n-ink,#161514)}
.tgh-greeting span{font-size:13px;color:var(--tgh-mute)}
@keyframes tgh-wave{0%,100%{transform:rotate(0)}25%{transform:rotate(18deg)}50%{transform:rotate(-8deg)}75%{transform:rotate(14deg)}}
@media (max-width:620px){.tgh-greeting{top:96px;width:calc(100vw - 24px)}}
@media (prefers-reduced-motion:reduce){.tgh-greeting{transition:none}.tgh-greeting i{animation:none}}
/* v24: choose the name used in the greeting */
.tgh-greeting{grid-template-columns:auto 1fr auto;padding-right:12px}
.tgh-greeting i{grid-row:1/3}
.tgh-greeting strong{grid-column:2}
.tgh-greeting span{grid-column:2}
.tgh-greeting-close{grid-column:3;grid-row:1/3;align-self:start;width:28px;height:28px;margin:-4px -4px 0 6px;padding:0!important;border:0!important;border-radius:999px!important;background:transparent!important;color:var(--tgh-mute)!important;font-size:20px!important;line-height:1!important;cursor:pointer}
.tgh-greeting-close:hover{background:rgba(255,253,248,calc(0.61 * var(--wash-k,1)))!important;color:var(--n-ink,#161514)!important}
.tgh-name-link{display:inline;padding:0!important;margin:0!important;min-height:0!important;border:0!important;background:none!important;color:var(--tgh-amber,#8a5a00)!important;font:inherit!important;font-weight:500!important;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.tgh-greeting{cursor:default}
.tgh-name-form{grid-column:1/-1;display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--tgh-line)}
.tgh-name-form[hidden]{display:none!important}
.tgh-name-form label{grid-column:1/-1;display:grid;gap:6px;color:var(--tgh-soft);font-size:13px}
.tgh-name-form input{height:40px;padding:0 12px;border:1px solid var(--tgh-line2,rgba(22,21,20,0.195))!important;border-radius:12px!important;background:rgba(255,253,248,calc(0.4 * var(--wash-k,1)))!important;color:var(--n-ink,#161514)!important;font:400 15px/1 var(--tgh-font)!important}
.tgh-name-form label{grid-template-columns:1fr}
.tgh-name-form button{height:40px;padding:0 18px!important;border:0!important;border-radius:12px!important;background:var(--tgh-blue,#2f62d9)!important;color:#161514!important;font:600 14px/1 var(--tgh-font)!important;cursor:pointer}
.tgh-name-form label{grid-column:1/2}
.tgh-name-form button{align-self:end}
.tgh-name-form small{grid-column:1/-1;color:var(--tgh-amber,#8a5a00);font-size:12px}
.tgh-name-form small:empty{display:none}
.tgh-greeting.editing{width:min(440px,calc(100vw - 24px))}

/* ===== v33: student portal chart + leaders in the glowing deck style (same as the teacher panel) */
body[data-page="portal"] .performance{position:relative;
  background:var(--n-raise,#f6f1e7) !important;
  border:1px solid rgba(47,98,217,0.207)!important;margin-top:34px!important;
  box-shadow:0 -9px 0 -5px rgba(var(--ink-rgb,22,21,20),0.9),0 -17px 0 -10px rgba(var(--ink-rgb,22,21,20),0.5),inset 0 1px 0 rgba(var(--ink-rgb,22,21,20),0.095)!important}
body[data-page="portal"] .chart-stage{background:var(--n-raise,#f5efe3)!important;border-color:rgba(47,98,217,0.161)!important}
body[data-page="portal"] .chart-grid{stroke:rgba(var(--ink-rgb,22,21,20),0.17)!important;stroke-dasharray:3 6}
body[data-page="portal"] .chart-vgrid{stroke:rgba(var(--ink-rgb,22,21,20),0.195);stroke-width:1;stroke-dasharray:2 6}
body[data-page="portal"] .chart-line{stroke-width:1.3!important;opacity:.8}
body[data-page="portal"] .chart-line.is-top{stroke-width:2!important;opacity:1}
body[data-page="portal"] .chart-dot{stroke:var(--n-ink,#161514)!important;stroke-width:1.4!important;r:3.2px;filter:none}
body[data-page="portal"] .axis-label{fill:var(--n-mid,#b9b4ab)!important}
body[data-page="portal"] .x-label{fill:var(--n-mute2,#8d8a83)!important}
body[data-page="portal"] .legend-person i{box-shadow:0 0 0 2px rgba(var(--ink-rgb,22,21,20),0.108)}
body[data-page="portal"] .weekly-podium{position:relative;isolation:isolate;
  background:var(--n-raise,#f6f1e7) !important;border-color:rgba(107,79,216,0.253)!important}
body[data-page="portal"] .weekly-podium::after{content:"";position:absolute;left:14%;right:14%;bottom:-1px;height:2px;border-radius:2px;pointer-events:none;background:#6b4fd8;box-shadow:none}
body[data-page="portal"] .radar-grid{stroke:rgba(var(--ink-rgb,22,21,20),0.195)!important;stroke-dasharray:3 5}
body[data-page="portal"] .radar-shape{fill:var(--t-blue,rgba(47,98,217,0.184))!important;stroke:var(--t-blue,#2550b8)!important;stroke-width:1.5!important;stroke-linejoin:round;filter:none}
body[data-page="portal"] .homework{background:var(--n-raise,#f6f1e7) !important;border:1px solid rgba(242,179,29,0.207)!important}

/* ===== v37: student portal · tests and final grade */
body[data-page="portal"] .exam-head,body[data-page="portal"] .bonus-head,body[data-page="portal"] .final-head{text-align:center;line-height:1.25}
body[data-page="portal"] .exam-head small,body[data-page="portal"] .bonus-head small,body[data-page="portal"] .final-head small{display:block;margin-top:2px;opacity:.7;font-size:.78em}
body[data-page="portal"] .bonus-head,body[data-page="portal"] .bonus-cell{color:var(--t-violet,#583cc0)!important}
body[data-page="portal"] .bonus-cell{font-size:.9em;font-weight:600}
body[data-page="portal"] .final-head{color:var(--t-green,#1f8a5a)!important}
body[data-page="portal"] .final-cell{text-align:center;white-space:nowrap;color:var(--tone)}
body[data-page="portal"] .final-cell strong{font-size:1.12em;font-weight:700;color:var(--tone)}
body[data-page="portal"] .final-cell small{opacity:.6;color:var(--tgh-mute)}
body[data-page="portal"] .empty-mark{color:var(--tgh-mute);opacity:.6}

/* v48: homework attachments in the student portal */
body[data-page="portal"] .hw-media{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-top:16px;align-items:start}
body[data-page="portal"] .hw-media[hidden]{display:none}
body[data-page="portal"] .hw-img{display:block;aspect-ratio:4/3;border-radius:16px;overflow:hidden;border:1px solid var(--tgh-line2);background:var(--n-page,#efe9dd)}
body[data-page="portal"] .hw-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s ease}
body[data-page="portal"] .hw-img:hover img{transform:scale(1.03)}
body[data-page="portal"] .hw-av{grid-column:1/-1;margin:0;padding:12px;border:1px solid var(--tgh-line2);border-radius:16px;background:rgba(255,253,248,calc(0.26 * var(--wash-k,1)))}
body[data-page="portal"] .hw-av figcaption{margin:0 0 8px;color:var(--tgh-soft);font-size:14px}
body[data-page="portal"] .hw-av video{display:block;width:100%;max-height:420px;margin-bottom:8px;border-radius:12px;background:var(--n-page,#efe9dd)}
body[data-page="portal"] .hw-av audio{width:100%}
body[data-page="portal"] .hw-file{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--tgh-line2);border-radius:16px;background:rgba(255,253,248,calc(0.26 * var(--wash-k,1)));color:var(--tgh-ink)!important;text-decoration:none!important}
body[data-page="portal"] .hw-file:hover{border-color:rgba(242,179,29,0.517);background:rgba(242,179,29,0.069)}
body[data-page="portal"] .hw-file b{grid-row:1/3;display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:rgba(242,179,29,0.161);color:var(--t-must,#8a5a00);font-size:11px;letter-spacing:.04em}
body[data-page="portal"] .hw-file span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}
body[data-page="portal"] .hw-file small{color:var(--tgh-mute);font-size:12px}
/* ======================================================================
   FLAT POSTER DESIGN (v81) · warm cream base, flat colour blocks, ink outlines,
   black pills, rotated chips, heavy grotesk titles. No glows, no gradients.
   ====================================================================== */
:root{
  --f-bg:#efe9dd;--f-paper:#fbf8f1;--f-paper2:#f5efe3;--f-ink:#161514;--f-soft:#3b3733;--f-mute:#6f685f;--f-line:rgba(22,21,20,.14);--f-line2:rgba(22,21,20,.28);
  --f-verm:#e1502a;--f-must:#f2b31d;--f-red:#d8383b;--f-teal:#1f5d58;--f-blue:#2f62d9;--f-green:#1f8a5a;--f-violet:#6b4fd8;--f-pink:#d43f86;
  --f-hard:4px 4px 0 var(--f-shadow,#161514);--f-hard-lg:7px 7px 0 var(--f-shadow,#161514);
  --tgh-bg:var(--f-bg);--tgh-card:var(--f-paper);--tgh-card2:var(--f-paper2);--tgh-row:var(--f-paper2);--tgh-row2:var(--f-paper);--tgh-pop:var(--f-paper);
  --tgh-line:var(--f-line);--tgh-line2:var(--f-line2);--tgh-ink:var(--f-ink);--tgh-soft:var(--f-soft);--tgh-mute:var(--f-mute);
  --tgh-acc:#c8431f;--tgh-acc-soft:rgba(225,80,42,.12);--tgh-acc-line:rgba(22,21,20,.55);--tgh-red:#c2302f;--tgh-logo:var(--f-paper);
  color-scheme:light;
}
html,body,body[data-page]{background:var(--f-bg)!important;background-image:none!important}
body{color:var(--f-ink)!important}
::selection{background:var(--f-must);color:var(--f-onfill,#161514)}
:focus-visible{outline:1.5px solid var(--f-edge,rgba(22,21,20,.16))!important;outline-offset:2px}
::-webkit-scrollbar-thumb{background:var(--n-raise,#f5efe3)!important;border-color:var(--f-bg)!important}
h1{font-weight:850!important;letter-spacing:-.045em!important;line-height:1.02!important}
h2,h3{font-weight:780!important;letter-spacing:-.03em!important}
strong,b,th{font-weight:700!important}
a{color:inherit}
.eyebrow,.onboarding-kicker{display:inline-block!important;width:auto!important;padding:5px 11px 4px!important;border-radius:999px!important;background:var(--f-ink)!important;color:var(--f-paper)!important;font-size:11px!important;font-weight:750!important;letter-spacing:.14em!important;transform:rotate(-2.5deg);transform-origin:left center}

/* buttons: outlined pill, black pill for the main action */
.button,.back,.share,.pin-share,.install-app,.change-class,.feedback-launch,.manage button,.actions button,.actions a,.tour-card button,.feedback-actions button,.offline-card button{
  border:1.5px solid var(--f-edge,rgba(22,21,20,.16))!important;background:var(--f-paper)!important;color:var(--f-ink)!important;font-weight:680!important;transition:background .12s ease,transform .12s ease,box-shadow .12s ease}
.button:hover,.back:hover,.share:hover,.pin-share:hover,.install-app:hover,.change-class:hover,.feedback-launch:hover,.manage button:hover,.actions button:hover,.actions a:hover,.tour-card button:hover,.feedback-actions button:hover,.offline-card button:hover{
  background:var(--f-must)!important;border-color:var(--f-ink)!important;color:var(--f-onfill,#161514)!important}
.button.primary,.actions .primary,.tour-card .primary,.submit,body[data-page="migration"] button:not(.tgh-theme-btn),body[data-page="panel"] #authSubmit,body[data-page="panel"] .card:has([data-auth-mode="signup"][aria-selected="true"]) #authSubmit{
  background:var(--f-ink)!important;color:var(--f-paper)!important;border:1.5px solid var(--f-edge,rgba(22,21,20,.16))!important;font-weight:720!important}
.button.primary:hover,.actions .primary:hover,.tour-card .primary:hover,.submit:hover,body[data-page="panel"] #authSubmit:hover{background:var(--f-verm)!important;border-color:var(--f-ink)!important;color:var(--f-onfill,#161514)!important}
.button:active,.submit:active,.tour-card button:active{transform:translate(1px,1px)}
.text-button{color:var(--f-soft)!important;font-weight:600!important;text-decoration:underline!important;text-decoration-thickness:1.5px!important;text-underline-offset:3px}
.text-button:hover{color:var(--f-verm)!important}

/* fields */
input,select,textarea{background:var(--f-paper)!important;border:2px solid rgba(var(--ink-rgb,22,21,20),0.22)!important;color:var(--f-ink)!important}
input:hover,select:hover,textarea:hover{border-color:rgba(var(--ink-rgb,22,21,20),0.45)!important}
input:focus,select:focus,textarea:focus{border-color:var(--f-ink)!important;background:var(--n-white,#fffdf8)!important;box-shadow:0 0 0 3px var(--f-must)!important}
input::placeholder,textarea::placeholder{color:var(--n-mute2,#8d857a)!important}
input[type=checkbox],input[type=radio]{accent-color:var(--f-ink)}

/* segmented tabs: ink outline, black active pill */
.segmented,.auth-tabs{border:1.5px solid var(--f-edge,rgba(22,21,20,.16))!important;background:var(--f-paper)!important}
.segmented button,.auth-tabs button{color:var(--f-soft)!important;font-weight:650!important}
.segmented button:hover,.auth-tabs button:hover{color:var(--f-ink)!important;background:rgba(242,179,29,.28)!important}
.segmented button[aria-selected="true"],.auth-tabs button[aria-selected="true"],
body[data-page="panel"] .auth-tabs button:first-child[aria-selected="true"],body[data-page="panel"] .auth-tabs button:last-child[aria-selected="true"]{background:var(--f-ink)!important;border-color:var(--f-ink)!important;color:var(--f-paper)!important}
.error{color:var(--t-red,#b0242a)!important;font-weight:600!important}
.message,.feedback-status{color:var(--f-soft)!important}

/* bars */
.bar,.demo-bar{background:var(--f-bg)!important;border-bottom:1.5px solid var(--f-edge,rgba(22,21,20,.16))!important}
.brand{font-weight:800!important;letter-spacing:-.02em!important}
.bar .brand::before,.brand-symbol{border:1.5px solid var(--f-edge,rgba(22,21,20,.16))!important;background-color:var(--f-must)!important}
nav a,nav button,.demo-nav button{color:var(--f-soft)!important;font-weight:620!important;border:2px solid transparent!important}
nav a:hover,nav button:hover,.demo-nav button:hover{background:rgba(242,179,29,.3)!important;color:var(--f-ink)!important}
nav a[aria-current="page"],.demo-nav button[aria-current="page"]{background:var(--f-ink)!important;color:var(--f-paper)!important;border-color:var(--f-ink)!important}

/* cards: paper with an ink outline */
.card,.top,.hero,.access-head,.pin-card,.stat,.message,.pin-message,.access-card,.performance,.homework,.demo-entry,.feedback-card,.event-card,
body[data-page="admin"] .panel,body[data-page="legal"] main{background:var(--f-paper)!important;border:1.5px solid var(--f-edge,rgba(22,21,20,.16))!important;border-radius:22px!important}
.demo-entry,.feedback-card,.event-card,.stat{background:var(--f-paper2)!important;border-radius:16px!important}
.pin-card code,.card code{border:1.5px solid var(--f-edge,rgba(22,21,20,.16))!important;background:var(--f-must)!important;color:var(--f-onfill,#161514)!important;font-weight:800!important}
.stat strong{font-weight:850!important}
.status{background:var(--f-ink)!important;color:var(--f-paper)!important;font-weight:700!important}
.status.suspended,.severity.error{background:var(--f-red)!important;color:#fffdf8!important}
.table th{color:var(--f-ink)!important;font-weight:750!important;text-transform:uppercase;letter-spacing:.08em;font-size:11px!important}
.table td,.table th{border-color:var(--f-line)!important}

/* dialogs: paper sheet, ink outline, hard shadow */
.feedback-dialog,dialog{background:var(--f-paper)!important;border:1.5px solid var(--f-edge,rgba(22,21,20,.16))!important;box-shadow:var(--f-hard-lg)!important}
.feedback-dialog::backdrop,dialog::backdrop{background:rgba(22,21,20,.45)!important}

/* sign-in gate */
body[data-page="panel"] .card,body[data-page="schedule"] .card{background:var(--f-paper)!important;border:1.5px solid var(--f-edge,rgba(22,21,20,.16))!important;box-shadow:var(--f-hard-lg)!important}
body[data-page="panel"] .gate .card{position:relative}
body[data-page="panel"] .gate h1{font-weight:850!important;letter-spacing:-.04em!important;font-size:25px!important}
body[data-page="panel"] .early-access{border:0!important;background:var(--f-must)!important;color:var(--f-onfill,#161514)!important;font-weight:700!important;transform:rotate(-1.5deg)}
body[data-page="panel"] input{border-radius:14px!important}
body[data-page="panel"] #googleSignIn{background:var(--f-paper)!important;border:1.5px solid var(--f-edge,rgba(22,21,20,.16))!important;color:var(--f-ink)!important;font-weight:680!important}
body[data-page="panel"] #googleSignIn:hover{background:var(--f-must)!important;border-color:var(--f-ink)!important;color:var(--f-onfill,#161514)!important}
body[data-page="panel"] #forgotPassword{color:var(--f-soft)!important;text-decoration:underline;text-underline-offset:3px}
body[data-page="panel"] .demo-entry{background:var(--f-blue)!important;border:1.5px solid var(--f-edge,rgba(22,21,20,.16))!important;color:#fffdf8!important}
body[data-page="panel"] .demo-entry strong{color:#fffdf8!important;font-weight:780!important}
body[data-page="panel"] .demo-entry span{color:rgba(255,253,248,.85)!important}
body[data-page="panel"] .demo-entry .button{background:var(--f-paper)!important;border:1.5px solid var(--f-edge,rgba(22,21,20,.16))!important;color:var(--f-ink)!important}
body[data-page="panel"] .demo-entry .button:hover{background:var(--f-must)!important}
body[data-page="panel"] .student-entry{background:var(--f-must)!important;border:1.5px solid var(--f-edge,rgba(22,21,20,.16))!important;color:var(--f-onfill,#161514)!important;font-weight:600}
body[data-page="panel"] .student-entry a,body[data-page="panel"] .student-entry span{color:var(--f-ink)!important;font-weight:750!important}
body[data-page="panel"] .legacy{border-top:2px dashed rgba(var(--ink-rgb,22,21,20),0.25)!important}
body[data-page="panel"] .legal-links a,.designer-credit,.designer-credit a{color:var(--f-mute)!important}

/* demo shell */
body[data-page="demo"] .veil{background:rgba(22,21,20,.4)!important}
body[data-page="demo"] .spotlight{border:1.5px solid var(--f-edge,rgba(22,21,20,.16))!important;box-shadow:0 0 0 4px var(--f-must),0 0 0 4000px rgba(var(--ink-rgb,22,21,20),0.32)!important}
body[data-page="demo"] .tour-card{background:var(--f-paper)!important;border:1.5px solid var(--f-edge,rgba(22,21,20,.16))!important;box-shadow:var(--f-hard-lg)!important}
body[data-page="demo"] .tour-card h1{font-weight:850!important;letter-spacing:-.04em!important}
body[data-page="demo"] .tour-card .eyebrow{color:var(--f-paper)!important}
body[data-page="demo"] .progress i{background:var(--n-raise,#f5efe3)!important}
body[data-page="demo"] .progress i.active{background:var(--f-verm)!important}

/* student portal */
body[data-page="portal"] header{border-bottom:1.5px solid var(--f-edge,rgba(22,21,20,.16))!important}
body[data-page="portal"] .mark{background:var(--f-must)!important;border:1.5px solid var(--f-edge,rgba(22,21,20,.16))!important}
body[data-page="portal"] .read-only::before,body[data-page="portal"] .status-dot{background:var(--f-green)!important}

body[data-page="panel"] .gate .eyebrow,body[data-page="schedule"] .gate .eyebrow{display:none!important}
body[data-page="migration"] .tgh-theme-btn{width:auto!important}
body[data-page="portal"] #submit,body[data-page="portal"] .submit{background:var(--f-ink)!important;border:1.5px solid var(--f-edge,rgba(22,21,20,.16))!important;color:var(--f-paper)!important;font-weight:720!important}
body[data-page="portal"] #submit:hover,body[data-page="portal"] .submit:hover{background:var(--f-verm)!important;color:var(--f-onfill,#161514)!important}
body[data-page="portal"] .segmented button[aria-selected="true"]{background:var(--f-ink)!important;border-color:var(--f-ink)!important;color:var(--f-paper)!important}
body[data-page="portal"] .read-only{color:var(--f-ink)!important;font-weight:650}
body[data-page="portal"] .access-card,body[data-page="portal"] .access form,body[data-page="portal"] .access>aside{border:1.5px solid var(--f-edge,rgba(22,21,20,.16))!important;box-shadow:var(--f-hard-lg)!important;background:var(--f-paper)!important}
body[data-page="portal"] h1{font-weight:880!important;letter-spacing:-.05em!important}
body[data-page] .eyebrow,body[data-page="portal"] .access .eyebrow,body[data-page="portal"] .intro .eyebrow{color:var(--f-paper)!important}
body[data-page="portal"] .access .eyebrow{background:var(--f-verm)!important;color:var(--f-onfill,#161514)!important}
body[data-page] .change-class{background:var(--f-paper)!important;border:1.5px solid var(--f-edge,rgba(22,21,20,.16))!important;color:var(--f-ink)!important;font-weight:680!important;border-radius:999px!important}
body[data-page] .change-class:hover{background:var(--f-must)!important}
body[data-page] .podium-person{background:var(--f-paper)!important;border:1.5px solid var(--f-edge,rgba(22,21,20,.16))!important}
body[data-page] .podium-person.rank-1{background:var(--f-must)!important;border-color:var(--f-ink)!important;box-shadow:var(--f-hard)}
body[data-page] .podium-person.rank-2{background:#dfe6f7!important}
body[data-page] .podium-person.rank-3{background:#f6dcd2!important}
body[data-page="portal"] .table-wrap{border:1.5px solid var(--f-edge,rgba(22,21,20,.16))!important;border-radius:18px!important;background:var(--f-paper)!important}
body[data-page="portal"] thead tr:first-child th{background:var(--f-ink)!important;color:var(--f-paper)!important}
body[data-page="portal"] .legend span,body[data-page="portal"] .summary{color:var(--f-soft)!important}
body[data-page="portal"] .chart-head p.eyebrow,body[data-page="portal"] p.eyebrow{color:var(--f-paper)!important;font-size:11px!important}
.pin-card button{border:1.5px solid var(--f-edge,rgba(22,21,20,.16))!important;background:var(--f-paper)!important;color:var(--f-ink)!important;font-weight:680!important}
.pin-card button:hover{background:var(--f-must)!important}

/* ======================================================================
   DARK THEME (v82) · the same flat poster design on warm near-black.
   Surfaces lift with lightness, outlines turn cream, colour fills stay the same,
   coloured text and icons get lighter tones so they read on dark.
   ====================================================================== */
html[data-tgh-theme="dark"]{
  color-scheme:dark;
  --n-page:#141311;--n-card:#1e1c19;--n-raise:#282521;--n-zebra:#221f1c;--n-white:#2a2723;
  --n-ink:#efe9dd;--n-edge:#cfc7b9;--n-shadow:#000;--n-soft:#d6cfc3;--n-mute:#aca497;--n-mute2:#8f877c;--n-mid:#3d3934;--n-onink:#141311;
  --ink-rgb:239,233,221;--wash-k:.12;
  --t-red:#ff8a85;--t-verm:#ff9a74;--t-must:#f6c64f;--t-green:#6fd3a0;--t-teal:#6cc9bd;--t-blue:#93b2ff;--t-violet:#b9a6ff;--t-pink:#ff8fc6;
  --f-bg:#141311;--f-paper:#1e1c19;--f-paper2:#282521;--f-ink:#efe9dd;--f-soft:#d6cfc3;--f-mute:#aca497;--f-line:rgba(239,233,221,.14);--f-line2:rgba(239,233,221,.3);
  --f-onfill:#161514;--f-shadow:#000;--f-hard:4px 4px 0 #000;--f-hard-lg:7px 7px 0 #000;
  --tgh-bg:#141311!important;--tgh-card:#1e1c19!important;--tgh-card2:#282521!important;--tgh-row:#24211d!important;--tgh-row2:#1e1c19!important;--tgh-pop:#1e1c19!important;--tgh-logo:#1e1c19!important;
  --tgh-line:rgba(239,233,221,.14)!important;--tgh-line2:rgba(239,233,221,.26)!important;--tgh-ink:#efe9dd!important;--tgh-soft:#d6cfc3!important;--tgh-mute:#aca497!important;
  --tgh-acc:#ff9a74!important;--tgh-acc-soft:rgba(242,179,29,.22)!important;--tgh-acc-line:#cfc7b9!important;--tgh-red:#ff8a85!important;
  --tgh-girl:255,143,198!important;--tgh-boy:147,178,255!important;
  --g-bg:#141311;--g-card:#1e1c19;--g-card2:#282521;--g-line:rgba(239,233,221,.14);--g-line2:rgba(239,233,221,.3);--g-ink:#efe9dd;--g-soft:#d6cfc3;--g-mute:#aca497;
  --ink:#efe9dd!important;--muted:#aca497!important;--paper:#1e1c19!important;--canvas:#141311!important;--line:rgba(239,233,221,.14)!important;
  --navy:#282521!important;--navy-2:#282521!important;--glass:#1e1c19!important;--glass-strong:#282521!important;--dark-ink:#efe9dd!important;
  --rank-star:#efe9dd;--rank-shell:#aca497;--rank-ribbon:#8f877c;--rank-inner:#d6cfc3;
}
html[data-tgh-theme="dark"],html[data-tgh-theme="dark"] body,html[data-tgh-theme="dark"] body[data-page],html[data-tgh-theme="dark"] body.jn{background:#141311!important;color:#efe9dd!important}
html[data-tgh-theme="dark"] ::selection{background:#f2b31d;color:#161514}
html[data-tgh-theme="dark"] input::placeholder,html[data-tgh-theme="dark"] textarea::placeholder{color:#8f877c!important}
html[data-tgh-theme="dark"] select option{background:#1e1c19;color:#efe9dd}
html[data-tgh-theme="dark"] input[type=checkbox],html[data-tgh-theme="dark"] input[type=radio]{accent-color:#f2b31d}
/* hard shadows: black blocks read as depth on the dark page */
html[data-tgh-theme="dark"] .p-tile{box-shadow:0 6px 0 #000!important}
html[data-tgh-theme="dark"] .p-tile:not(.done):hover{box-shadow:0 9px 0 #000!important}
html[data-tgh-theme="dark"] .p-tile{border-color:#000!important}
html[data-tgh-theme="dark"] .p-tile.done{border-color:rgba(239,233,221,.18)!important;color:rgba(239,233,221,.3)!important}
/* logos */
html[data-tgh-theme="dark"] .tgh-side-word,html[data-tgh-theme="dark"] .jn-logo,html[data-tgh-theme="dark"] .pl-logo,
html[data-tgh-theme="dark"] .demo-bar .brand::before,html[data-tgh-theme="dark"] body[data-page="panel"] .gate .card::before,html[data-tgh-theme="dark"] body[data-page="schedule"] .gate .card::before{background-image:url("/theme/teachtally-logo-dark-v2.svg")!important}
/* the class chart canvas draws dark labels: flip it, colours keep their hue */
html[data-tgh-theme="dark"] #performanceChart{filter:invert(1) hue-rotate(180deg)}
/* white surfaces that must stay white: QR codes, paper previews */
html[data-tgh-theme="dark"] .lv-qr,html[data-tgh-theme="dark"] .g-qr,html[data-tgh-theme="dark"] .tgh-rb-pagewrap,html[data-tgh-theme="dark"] .tgh-rub-prev canvas{background:#fff!important}
/* tinted states that were light on cream */
html[data-tgh-theme="dark"] tbody tr:hover td,html[data-tgh-theme="dark"] tbody tr:hover .name-cell,html[data-tgh-theme="dark"] tbody tr:hover .total-cell,html[data-tgh-theme="dark"] tbody tr:hover .absence-cell{background:#2f2a1d!important}
html[data-tgh-theme="dark"] .seat.absent{background:#3a1f1c!important}
html[data-tgh-theme="dark"] .p-theme[aria-pressed="true"],html[data-tgh-theme="dark"] .p-row-all,html[data-tgh-theme="dark"] .sex-student-option:has(input:checked),html[data-tgh-theme="dark"] .add-lesson:hover{background:#3a3020!important}
html[data-tgh-theme="dark"] .p-q-box.golden{background:#2c2618!important}
html[data-tgh-theme="dark"] .p-order.good .line{background:#17291f!important}
html[data-tgh-theme="dark"] .p-order.bad .line{background:#301b19!important}
html[data-tgh-theme="dark"] .podium-person.rank-2{background:#232a3d!important}
html[data-tgh-theme="dark"] .podium-person.rank-3{background:#3a2621!important}
html[data-tgh-theme="dark"] .p-lb.crowns .pod.p2 .block{background:#232a3d!important}
html[data-tgh-theme="dark"] .p-lb.crowns .pod.p3 .block{background:#3a2621!important}
html[data-tgh-theme="dark"] .p-cteam li.f,html[data-tgh-theme="dark"] .p-class-teams.v2 li.f{color:#ff8fc6!important}
html[data-tgh-theme="dark"] tbody td.today,html[data-tgh-theme="dark"] td.today,html[data-tgh-theme="dark"] .today-col{background:#2f2a1d!important}
/* questions and answers on colour fills keep dark ink text */
html[data-tgh-theme="dark"] .p-opt[style*="#f2b31d"],html[data-tgh-theme="dark"] .lv-opt[style*="#f2b31d"],html[data-tgh-theme="dark"] .jn-opts button[style*="#f2b31d"]{color:#161514!important}
html[data-tgh-theme="dark"] .tgh-side-mark,html[data-tgh-theme="dark"] body[data-page="portal"] .mark::after{background-image:url("/theme/logo-mark-on-dark.svg")!important}
/* dark: text that sits on mustard / light fills stays ink */
html[data-tgh-theme="dark"] body[data-page="panel"] .card p.early-access,html[data-tgh-theme="dark"] .podium-person.rank-1,html[data-tgh-theme="dark"] .podium-person.rank-1 *,
html[data-tgh-theme="dark"] .timer-card.complete .timer-display,html[data-tgh-theme="dark"] .p-lb.crowns .pod.p1 .block em{color:#161514!important}
html[data-tgh-theme="dark"] body[data-page="panel"] .student-entry,html[data-tgh-theme="dark"] body[data-page="panel"] .student-entry *{color:#161514!important}

/* ===== v83: blue identity ===== */
:root{--b:#161514;--b-deep:#2e2a26;--b-tint:#ebe4d6;--b-on:#fbf8f1}
html[data-tgh-theme="dark"]{--b:#efe9dd;--b-deep:#ffffff;--b-tint:#2c2925;--b-on:#141311}
::selection{background:var(--b)!important;color:var(--b-on,#fbf8f1)!important}
:focus-visible{outline-color:var(--b)!important}
code::selection,.pin-card code::selection,.pin-card code *::selection{background:#161514!important;color:#f2b31d!important}
.button.primary,.actions .primary,.tour-card .primary,.submit,body[data-page="panel"] #authSubmit,body[data-page="panel"] .card:has([data-auth-mode="signup"][aria-selected="true"]) #authSubmit,body[data-page="portal"] #submit,body[data-page="portal"] .submit,body[data-page="migration"] button:not(.tgh-theme-btn){background:var(--b)!important;border-color:var(--n-edge,#161514)!important;color:var(--b-on,#fbf8f1)!important}
.button.primary:hover,.actions .primary:hover,.tour-card .primary:hover,.submit:hover,body[data-page="panel"] #authSubmit:hover,body[data-page="portal"] #submit:hover{background:var(--b-deep)!important;color:var(--b-on,#fbf8f1)!important}
.segmented button[aria-selected="true"],.auth-tabs button[aria-selected="true"],body[data-page="panel"] .auth-tabs button:first-child[aria-selected="true"],body[data-page="panel"] .auth-tabs button:last-child[aria-selected="true"],body[data-page="portal"] .segmented button[aria-selected="true"],nav a[aria-current="page"],.demo-nav button[aria-current="page"]{background:var(--b)!important;border-color:var(--b)!important;color:var(--b-on,#fbf8f1)!important}
.button:hover,.back:hover,.share:hover,.pin-share:hover,.install-app:hover,.change-class:hover,body[data-page] .change-class:hover,.feedback-launch:hover,.manage button:hover,.actions button:not(.primary):hover,.actions a:not(.primary):hover,.tour-card button:not(.primary):hover,.feedback-actions button:hover,.offline-card button:hover,.pin-card button:hover,.segmented button:not([aria-selected="true"]):hover,.auth-tabs button:not([aria-selected="true"]):hover,body[data-page="panel"] #googleSignIn:hover,body[data-page="panel"] .demo-entry .button:hover{background:var(--b-tint)!important;color:var(--n-ink,#161514)!important}
.bar .brand::before,.brand-symbol,body[data-page="portal"] .mark{background-color:var(--b)!important}
body[data-page="portal"] thead tr:first-child th,body[data-page="portal"] thead th{background:var(--b)!important;color:var(--b-on,#fbf8f1)!important;border-color:color-mix(in srgb,var(--b-on,#fbf8f1) 16%,transparent)!important}
body[data-page="demo"] .progress i.active{background:var(--b)!important}
input:focus,select:focus,textarea:focus{box-shadow:0 0 0 3px rgba(47,98,217,.35)!important}

/* ===== v84: calm palette for the site pages ===== */
.eyebrow,.onboarding-kicker{transform:none!important}
body[data-page="panel"] .early-access{background:var(--n-raise,#f5efe3)!important;color:var(--n-soft,#3b3733)!important;transform:none!important;border:1.5px solid rgba(var(--ink-rgb,22,21,20),.18)!important}
body[data-page="panel"] .demo-entry{background:var(--n-raise,#f5efe3)!important;color:var(--n-ink,#161514)!important;border:1.5px solid rgba(var(--ink-rgb,22,21,20),.22)!important}
body[data-page="panel"] .demo-entry strong{color:var(--n-ink,#161514)!important}
body[data-page="panel"] .demo-entry span{color:var(--n-mute,#6f685f)!important}
body[data-page="panel"] .student-entry{background:transparent!important;border:1.5px dashed rgba(var(--ink-rgb,22,21,20),.3)!important}
html[data-tgh-theme="dark"] body[data-page="panel"] .student-entry,html[data-tgh-theme="dark"] body[data-page="panel"] .student-entry *,html[data-tgh-theme="dark"] body[data-page="panel"] .card p.early-access{color:var(--n-ink)!important}
body[data-page="panel"] .student-entry a,body[data-page="panel"] .student-entry span,body[data-page="panel"] .student-entry{color:var(--n-ink,#161514)!important}
.pin-card code,.card code{background:var(--n-raise,#f5efe3)!important;color:var(--n-ink,#161514)!important;border:1.5px solid rgba(var(--ink-rgb,22,21,20),.25)!important}
code::selection,.pin-card code::selection,.pin-card code *::selection{background:var(--b)!important;color:var(--b-on,#fbf8f1)!important}
body[data-page] .podium-person.rank-1,body[data-page] .podium-person.rank-2,body[data-page] .podium-person.rank-3,html[data-tgh-theme="dark"] .podium-person.rank-2,html[data-tgh-theme="dark"] .podium-person.rank-3{background:var(--n-card,#fbf8f1)!important;box-shadow:none!important}
body[data-page] .podium-person.rank-1{border-width:2.5px!important}
html[data-tgh-theme="dark"] .podium-person.rank-1,html[data-tgh-theme="dark"] .podium-person.rank-1 *{color:inherit!important}
body[data-page="portal"] .access .eyebrow{background:var(--b)!important;color:var(--b-on,#fbf8f1)!important}
body[data-page="portal"] .mark,.bar .brand::before,.brand-symbol{background-color:var(--n-card,#fbf8f1)!important}
:root{--t-blue:#3b3733;--t-violet:#3b3733;--t-pink:#3b3733;--t-teal:#3b3733}html[data-tgh-theme="dark"]{--t-blue:#d6cfc3;--t-violet:#d6cfc3;--t-pink:#d6cfc3;--t-teal:#d6cfc3}input[type=checkbox],input[type=radio]{accent-color:var(--n-ink,#161514)!important}
html body[data-page="portal"] table thead tr th,html body[data-page="portal"] table thead tr:nth-child(n) th{background:var(--b)!important;color:var(--b-on,#fbf8f1)!important;border-color:color-mix(in srgb,var(--b-on,#fbf8f1) 16%,transparent)!important}
/* ===== v85: bright pastel palette (sky, mint, sun, coral + lilac, rose). Soft outlines, no hard shadows. ===== */
:root{
  --p-sky:#2f62d9;--p-mint:#36a874;--p-sun:#f5c244;--p-coral:#ee6a45;--p-lilac:#8b7bd8;--p-rose:#e47aa2;--p-teal:#2fa5a0;--p-peach:#f6a26b;
  --p-sky-t:#e2f0fb;--p-mint-t:#dff4e9;--p-sun-t:#fdf0cc;--p-coral-t:#fde2d9;--p-lilac-t:#ece9fa;--p-rose-t:#fce4ec;
  --f-edge:rgba(22,21,20,.14);--n-edge:rgba(22,21,20,.16);--n-shadow:transparent;--f-shadow:transparent;--f-hard:0 0 0 transparent;--f-hard-lg:0 10px 30px rgba(22,21,20,.10);
  --b:var(--p-sky);--b-deep:#4596d6;--b-tint:var(--p-sky-t);--b-on:#161514;
}
html[data-tgh-theme="dark"]{
  --p-sky-t:#2a2622;--p-mint-t:#18302a;--p-sun-t:#332b16;--p-coral-t:#38211b;--p-lilac-t:#2c2630;--p-rose-t:#36222b;
  --f-edge:rgba(239,233,221,.14);--n-edge:rgba(239,233,221,.16);--n-shadow:transparent;--f-shadow:transparent;--f-hard:0 0 0 transparent;--f-hard-lg:0 10px 30px rgba(0,0,0,.4);
  --b:var(--p-sky);--b-deep:#7bbcef;--b-tint:#1c2b38;--b-on:#141311;
}
::selection{background:var(--p-sky)!important;color:#161514!important}
/* v85 site pages */
.eyebrow,.onboarding-kicker{background:var(--p-sun-t)!important;color:var(--n-ink,#161514)!important}
body[data-page="panel"] .gate .card,body[data-page="schedule"] .card,body[data-page="panel"] .card{box-shadow:0 14px 40px rgba(22,21,20,.08)!important}
body[data-page="panel"] .demo-entry{background:var(--p-sky-t)!important;border-color:color-mix(in srgb,var(--p-sky) 40%,transparent)!important}
body[data-page="panel"] .early-access{background:var(--p-mint-t)!important;border:0!important}
body[data-page="panel"] .student-entry{background:var(--p-sun-t)!important;border:0!important}
.pin-card code,.card code{background:var(--p-sun-t)!important;border:1.5px solid color-mix(in srgb,var(--p-sun) 55%,transparent)!important;color:#161514!important}
html body[data-page="portal"] table thead tr th,html body[data-page="portal"] table thead tr:nth-child(n) th{background:var(--p-sky-t)!important;color:var(--n-ink,#161514)!important;border-color:color-mix(in srgb,var(--p-sky) 30%,transparent)!important}
body[data-page] .podium-person.rank-1{background:var(--p-sun-t)!important}
body[data-page] .podium-person.rank-2{background:var(--p-sky-t)!important}
body[data-page] .podium-person.rank-3{background:var(--p-coral-t)!important}
body[data-page="portal"] .mark,.bar .brand::before,.brand-symbol{background-color:var(--p-sky-t)!important}
.eyebrow,body[data-page] .eyebrow,body[data-page="portal"] p.eyebrow,body[data-page="portal"] .chart-head p.eyebrow{color:var(--n-ink,#161514)!important}
/* v86 */
.status{background:var(--p-mint-t)!important;color:#161514!important}
body[data-page="offline"] button{background:var(--p-sky)!important;color:#161514!important;border-color:var(--p-sky)!important}
body[data-page="panel"] #googleSignIn{background:var(--n-card,#fbf8f1)!important;color:var(--n-ink,#161514)!important;border:1.5px solid var(--f-edge)!important}
body[data-page="panel"] #googleSignIn:hover{background:var(--p-sky-t)!important}
/* v86 dark: no navy surfaces (blue mixed into black). Neutral warm greys + clear pastel accents */
html[data-tgh-theme="dark"] thead th,html[data-tgh-theme="dark"] thead tr:nth-child(2) th,html[data-tgh-theme="dark"] thead tr:nth-child(3) th,html[data-tgh-theme="dark"] thead .name-head,html[data-tgh-theme="dark"] thead .total-head,html[data-tgh-theme="dark"] thead .absence-head{background:#2a2723!important;color:var(--n-ink)!important}
html[data-tgh-theme="dark"] thead tr:first-child th{background:#322e29!important}
html[data-tgh-theme="dark"] .podium-person.rank-2,html[data-tgh-theme="dark"] .p-lb.crowns .pod.p2 .block{background:#2c2a27!important}
html[data-tgh-theme="dark"] .p-opt,html[data-tgh-theme="dark"] .p-opts.choice .p-opt[aria-pressed="false"],html[data-tgh-theme="dark"] .p-opts.toggles .p-opt[aria-pressed="false"]{background:#24211d!important}
@media (min-width:821px){
html[data-tgh-theme="dark"] .tgh-side .tgh-side-item[aria-current="page"],html[data-tgh-theme="dark"] .tgh-side .tgh-side-item[aria-current="page"]:hover{background:var(--c)!important;border-color:var(--c)!important;color:#161514!important}
html[data-tgh-theme="dark"] .tgh-side .tgh-side-item[aria-current="page"] .tgh-ni,html[data-tgh-theme="dark"] .tgh-side .tgh-side-item[aria-current="page"] *{color:#161514!important}
html[data-tgh-theme="dark"] .tgh-side .tgh-side-item:hover{background:rgba(239,233,221,.07)!important}
}
html[data-tgh-theme="dark"] .p-team{background:#24211d!important}
/* ===== v87: deeper blue with white text; white text on coloured fills (black only on soft fills); tilts and button shadows back ===== */
:root,html[data-tgh-theme="dark"]{--b:#2f62d9;--b-deep:#244fb8;--b-on:#ffffff;
  --f-hard:3px 3px 0 rgba(22,21,20,.85);--f-hard-lg:6px 6px 0 rgba(22,21,20,.85);--btn-sh:0 2px 0 rgba(22,21,20,.16);--btn-sh-h:3px 4px 0 rgba(22,21,20,.85)}
html[data-tgh-theme="dark"]{--b-tint:#2a2622;--f-hard:3px 3px 0 #000;--f-hard-lg:6px 6px 0 #000;--btn-sh:0 2px 0 #000;--btn-sh-h:3px 4px 0 #000}
/* blue = the deep blue, always with white text */
.p-src button[aria-pressed="true"],.p-methods button[aria-pressed="true"],.p-timerpick .seg button[aria-pressed="true"],.lv-set .seg button[aria-pressed="true"],.p-count button[aria-pressed="true"],.g-sorts button[aria-pressed="true"],.g-tabs button[aria-selected="true"],
body[data-page="offline"] button{background:var(--b)!important;border-color:var(--b)!important;color:#fff!important}
.p-progress i,.p-progress span,.p-timer i{background:var(--b)!important}
/* game cards: white on strong colours, black on the soft sun colour */
.g-grid .g-card .g-btn.primary{color:#fff!important}
.g-grid .g-card:nth-child(6n+1) .g-btn.primary{background:var(--b)!important}
.g-grid .g-card:nth-child(6n+2) .g-btn.primary{color:#161514!important}
html[data-tgh-theme="dark"] .g-grid .g-card .g-cover{color:#fff!important}
html[data-tgh-theme="dark"] .g-grid .g-card:nth-child(6n+1) .g-cover{background:var(--b)!important}
html[data-tgh-theme="dark"] .g-grid .g-card:nth-child(6n+2) .g-cover{color:#161514!important}
/* tilted labels, like the poster style */
.brand-kicker,.eyebrow,.onboarding-kicker{transform:rotate(-2deg)!important}
.class-tabs button[aria-selected="true"]{transform:rotate(-2deg)!important}
.g-tabs button[aria-selected="true"]{transform:rotate(-2deg)!important}
.g-cover-badge{transform:rotate(-3deg)!important}
.p-setup.v2 .p-sec>h2,.p-setup h3{transform:rotate(-2deg)}
.p-turn b,.p-pteam{transform:rotate(-2deg)}
.g-head h1,.p-q-top .p-pts{transform:rotate(-1deg)}
/* button shadows, stronger on hover */
.action-button,.structure-button,.onboarding-button,.text-button,.g-btn,.p-start,.lv-start,.lv-next,.p-skip,.p-show,.jn-chip,.current-week,#currentWeek,#saveLesson,.tgh-btn,.p-pill,.g-mode,body[data-page="panel"] #googleSignIn,.tgh-tool-btn{box-shadow:var(--btn-sh)!important;transition:transform .14s ease,box-shadow .14s ease,background .14s ease!important}
.action-button:not(:disabled):hover,.structure-button:hover,.onboarding-button:hover,.text-button:hover,.g-btn:not(:disabled):hover,.p-start:not(:disabled):hover,.lv-start:not(:disabled):hover,.lv-next:hover,.p-skip:hover,.p-show:hover,.jn-chip:hover,.current-week:hover,#currentWeek:hover,#saveLesson:hover,.tgh-btn:hover,.p-pill:hover,.g-mode:hover,body[data-page="panel"] #googleSignIn:hover,.tgh-tool-btn:hover{transform:translate(-2px,-2px)!important;box-shadow:var(--btn-sh-h)!important}
.action-button:active,.g-btn:active,.p-start:active{transform:translate(0,0)!important;box-shadow:var(--btn-sh)!important}
.g-grid .g-card .g-btn.primary:hover{filter:none!important}
/* v87b: everything filled with the blue gets white text */
#applyBulk,#applyBulk:hover,.actions .primary,.actions .primary:hover,.auth-tabs button[aria-selected="true"],.button.primary,.button.primary:hover,.class-tabs button[aria-selected="true"],.demo-nav button[aria-current="page"],.g-btn.mint,.g-btn.primary,.g-btn.primary:hover,.g-grid .g-card:nth-child(6n+1) .g-btn.primary,.g-pv-foot .g-btn,.g-pv-mode i,.g-pv-mode:nth-child(3) i,.g-remix,.g-share-code,.g-sorts button.on,.g-sorts button[aria-pressed="true"],.g-sorts button[aria-selected="true"],.g-tabs button[aria-selected="true"],.jn-form button,.lv-join,.lv-set .seg button[aria-pressed="true"],.lv-start,.onboarding-button.primary,.onboarding-button.primary:hover,.p-banner,.p-count button[aria-pressed="true"],.p-gbtn,.p-gbtn:hover,.p-mc button:nth-child(2) i,.p-methods button[aria-pressed="true"],.p-q-box .p-gbtn,.p-q-box .p-gbtn:hover,.p-resume .ico,.p-resume .p-start,.p-show,.p-show:hover,.p-src button[aria-pressed="true"],.p-start,.p-start:hover,.p-stepper button,.p-stepper button:hover,.p-tabs button[aria-pressed="true"],.p-timerpick .seg button[aria-pressed="true"],.pl-form button,.pl-form button:hover,.schedule-actions .primary,.schedule-actions .primary:hover,.segmented button[aria-selected="true"],.semester-switch button.active,.semester-switch button[aria-pressed="true"],.semester-switch button[aria-selected="true"],.settings-actions .primary,.settings-actions .primary:hover,.sex-assignment-actions .primary,.sex-assignment-actions .primary:hover,.sex-choice button[aria-pressed="true"],.spin-wheel,.spin-wheel:hover,.submit,.submit:hover,.timer-presets button[aria-pressed="true"],.tour-card .primary,.tour-card .primary:hover,body[data-page="migration"] button:not(.tgh-theme-btn),body[data-page="offline"] button,body[data-page="panel"] #authSubmit,body[data-page="panel"] #authSubmit:hover,body[data-page="panel"] .auth-tabs button:first-child[aria-selected="true"],body[data-page="panel"] .auth-tabs button:last-child[aria-selected="true"],body[data-page="panel"] .card:has([data-auth-mode="signup"][aria-selected="true"]) #authSubmit,body[data-page="portal"] #submit,body[data-page="portal"] #submit:hover,body[data-page="portal"] .access .eyebrow,body[data-page="portal"] .segmented button[aria-selected="true"],body[data-page="portal"] .submit,button.primary,button.primary:hover,html.tgh-phone .tgh-view-switch button[aria-selected="true"],nav a[aria-current="page"],#applyBulk *,#applyBulk:hover *,.actions .primary *,.actions .primary:hover *,.auth-tabs button[aria-selected="true"] *,.button.primary *,.button.primary:hover *,.class-tabs button[aria-selected="true"] *,.demo-nav button[aria-current="page"] *,.g-btn.mint *,.g-btn.primary *,.g-btn.primary:hover *,.g-grid .g-card:nth-child(6n+1) .g-btn.primary *,.g-pv-foot .g-btn *,.g-pv-mode i *,.g-pv-mode:nth-child(3) i *,.g-remix *,.g-share-code *,.g-sorts button.on *,.g-sorts button[aria-pressed="true"] *,.g-sorts button[aria-selected="true"] *,.g-tabs button[aria-selected="true"] *,.jn-form button *,.lv-join *,.lv-set .seg button[aria-pressed="true"] *,.lv-start *,.onboarding-button.primary *,.onboarding-button.primary:hover *,.p-banner *,.p-count button[aria-pressed="true"] *,.p-gbtn *,.p-gbtn:hover *,.p-mc button:nth-child(2) i *,.p-methods button[aria-pressed="true"] *,.p-q-box .p-gbtn *,.p-q-box .p-gbtn:hover *,.p-resume .ico *,.p-resume .p-start *,.p-show *,.p-show:hover *,.p-src button[aria-pressed="true"] *,.p-start *,.p-start:hover *,.p-stepper button *,.p-stepper button:hover *,.p-tabs button[aria-pressed="true"] *,.p-timerpick .seg button[aria-pressed="true"] *,.pl-form button *,.pl-form button:hover *,.schedule-actions .primary *,.schedule-actions .primary:hover *,.segmented button[aria-selected="true"] *,.semester-switch button.active *,.semester-switch button[aria-pressed="true"] *,.semester-switch button[aria-selected="true"] *,.settings-actions .primary *,.settings-actions .primary:hover *,.sex-assignment-actions .primary *,.sex-assignment-actions .primary:hover *,.sex-choice button[aria-pressed="true"] *,.spin-wheel *,.spin-wheel:hover *,.submit *,.submit:hover *,.timer-presets button[aria-pressed="true"] *,.tour-card .primary *,.tour-card .primary:hover *,body[data-page="migration"] button:not(.tgh-theme-btn) *,body[data-page="offline"] button *,body[data-page="panel"] #authSubmit *,body[data-page="panel"] #authSubmit:hover *,body[data-page="panel"] .auth-tabs button:first-child[aria-selected="true"] *,body[data-page="panel"] .auth-tabs button:last-child[aria-selected="true"] *,body[data-page="panel"] .card:has([data-auth-mode="signup"][aria-selected="true"]) #authSubmit *,body[data-page="portal"] #submit *,body[data-page="portal"] #submit:hover *,body[data-page="portal"] .access .eyebrow *,body[data-page="portal"] .segmented button[aria-selected="true"] *,body[data-page="portal"] .submit *,button.primary *,button.primary:hover *,html.tgh-phone .tgh-view-switch button[aria-selected="true"] *,nav a[aria-current="page"] *{color:#fff!important}
/* v94: the same "lift + shadow" on hover for everything you can click (buttons, seats, tabs, cards, tiles) */
:is(button,.seat:not(.empty),.tray-student,.g-card,.lesson,.p-opt,.class-tabs button,.semester-switch button,.tgh-card,.insight,.chip-button,a.button,[role="button"]):not(:disabled):not(.tgh-side-item):not(.tgh-suggest):not(.tgh-suggest-item):not(.minus):not(.plus):not(.g-icon):not(.editor-close):not(.close-note):not(.p-tile):not(.p-match .mi):not(.tgh-theme-btn):not([aria-label="Close"]){transition:translate .14s ease,box-shadow .14s ease,background .14s ease!important}
:is(button,.seat:not(.empty),.tray-student,.g-card,.lesson,.p-opt,.class-tabs button,.semester-switch button,.tgh-card,.chip-button,a.button,[role="button"]):not(:disabled):not(.tgh-side-item):not(.tgh-suggest):not(.tgh-suggest-item):not(.minus):not(.plus):not(.g-icon):not(.editor-close):not(.close-note):not(.p-tile):not(.tgh-theme-btn):not([aria-label="Close"]):not([aria-selected="true"]):not([aria-pressed="true"]):hover{translate:-2px -2px;box-shadow:var(--btn-sh-h,3px 4px 0 rgba(22,21,20,.85))!important}
.p-match .mi:not(.paired):hover{translate:-2px -2px;box-shadow:3px 4px 0 rgba(22,21,20,.85)!important}
/* the earlier button rule used transform; use translate so tilted labels keep their tilt */
.action-button:not(:disabled):hover,.structure-button:hover,.onboarding-button:hover,.text-button:hover,.g-btn:not(:disabled):hover,.p-start:not(:disabled):hover,.lv-start:not(:disabled):hover,.lv-next:hover,.p-skip:hover,.p-show:hover,.jn-chip:hover,.current-week:hover,#currentWeek:hover,#saveLesson:hover,.tgh-btn:hover,.p-pill:hover,.g-mode:hover,body[data-page="panel"] #googleSignIn:hover,.tgh-tool-btn:hover{transform:none!important;translate:-2px -2px}
.seat:not(.empty):hover{z-index:2}
