:root{
  --deep-pine:#04100E;
  --forest:#0D2B27;
  --dark-teal:#164036;
  --emerald:#2B7A5A;
  --fresh:#46B07F;
  --mint:#78C89F;
  --soft-mint:#D7EDE1;
  --off-white:#F2EDE8;
  --paper:#FFFDFB;
  --white:#FFFFFF;
  --ink:#071713;
  --muted:#687873;
  --line:#D4DFDA;
  --shadow:0 18px 48px rgba(4,16,14,.10);
  --soft-shadow:0 10px 28px rgba(4,16,14,.07);
}

*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;font-family:"Noto Sans",Arial,sans-serif;color:var(--ink);background:var(--paper);font-size:16px}
body{overflow:hidden}
button,input{font:inherit}
button{cursor:pointer}
[hidden]{display:none!important}

/* Shared language control: same component on auth and dashboard. */
.language-control{position:relative;z-index:120;display:flex;align-items:center;height:38px;border:1px solid #C8D5D0;border-radius:12px;background:#fff;box-shadow:0 3px 10px rgba(4,16,14,.025);white-space:nowrap;overflow:visible}
.language-codes{display:flex;align-items:center;gap:1px;padding:3px 5px}
.language-codes button{height:30px;min-width:31px;padding:0 7px;border:0;border-radius:8px;background:transparent;color:#284039;font-size:10px;font-weight:900;letter-spacing:.015em}
.language-codes button:hover{background:#F0F7F3}
.language-codes button.is-active{background:var(--emerald);color:#fff}
.language-name{height:30px;min-width:112px;padding:0 10px 0 12px;border:0;border-left:1px solid #CDD8D4;background:#fff;color:#172B25;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:11px;font-weight:800;border-radius:0 9px 9px 0}
.language-name:hover{background:#FAFCFB}
.chevron{color:var(--emerald);font-size:14px;line-height:1}
.language-menu{position:absolute;top:46px;right:0;width:154px;padding:6px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 18px 48px rgba(4,16,14,.17);z-index:9999}
.language-menu button{display:block;width:100%;padding:9px 10px;border:0;border-radius:8px;background:transparent;text-align:left;color:var(--ink);font-size:12px;font-weight:700}
.language-menu button:hover,.language-menu button.is-active{background:var(--soft-mint);color:var(--forest)}

/* AUTH: laptop/tablet are the same layout and fit in one viewport. */
.auth-page{height:100dvh;display:grid;grid-template-columns:48.5% 51.5%;overflow:hidden;background:var(--paper)}
.brand-panel{height:100dvh;min-width:0;background:var(--deep-pine);display:grid;place-items:center;padding:22px;overflow:hidden}
.brand-panel img{display:block;width:min(86%,620px);max-height:88dvh;height:auto;object-fit:contain}
.auth-panel{height:100dvh;min-width:0;background:#fff;display:flex;justify-content:center;overflow:visible}
.auth-inner{width:min(100%,780px);height:100dvh;padding:22px clamp(30px,4.2vw,62px);display:grid;grid-template-rows:58px minmax(0,1fr);overflow:visible}
.auth-topbar{height:58px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);overflow:visible}
.auth-tabs{height:58px;display:flex;align-items:stretch;gap:8px}
.auth-tab{position:relative;height:58px;padding:0 16px;border:0;background:transparent;color:#66756F;font-size:14px;font-weight:800}
.auth-tab::after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:3px;border-radius:3px;background:transparent}
.auth-tab.is-active{color:var(--emerald)}
.auth-tab.is-active::after{background:var(--emerald)}
.auth-content{min-height:0;display:flex;align-items:center;padding:20px 0 10px}
.auth-view{display:none;width:100%}
.auth-view.is-active{display:block}
.form-heading{margin:0 0 22px}
.eyebrow{margin:0 0 9px;color:var(--emerald);font-size:10px;font-weight:900;letter-spacing:.16em}
.form-heading h1{margin:0;max-width:640px;font-size:clamp(29px,2.55vw,39px);line-height:1.08;letter-spacing:-.04em;font-weight:800}
.form-heading>p:last-child{margin:9px 0 0;color:var(--muted);font-size:14px;line-height:1.42}
.auth-form{display:grid;gap:13px}
.auth-form label{display:grid;gap:6px;color:#12231E;font-size:13px;font-weight:800}
.auth-form input{width:100%;height:50px;border:1px solid #C9D6D1;border-radius:11px;background:#fff;padding:0 14px;color:var(--ink);outline:none;transition:border-color .15s,box-shadow .15s}
.auth-form input:focus{border-color:var(--fresh);box-shadow:0 0 0 4px rgba(70,176,127,.12)}
.password-field{position:relative}
.password-field input{padding-right:96px}
.password-field button{position:absolute;right:7px;top:6px;height:38px;padding:0 10px;border:0;border-radius:8px;background:transparent;color:var(--emerald);font-size:11px;font-weight:800}
.password-field button:hover{background:var(--soft-mint)}
.password-note{margin:-5px 0 -1px;color:var(--muted);font-size:11px}
.form-message{min-height:0;margin:-2px 0;color:#9B2C2C;font-size:12px;font-weight:700}
.form-message:empty{display:none}
.submit-btn{height:52px;border:0;border-radius:11px;background:linear-gradient(100deg,var(--emerald),var(--fresh));color:#fff;font-size:15px;font-weight:900;box-shadow:0 13px 26px rgba(43,122,90,.18);transition:transform .12s,box-shadow .12s}
.submit-btn:hover{transform:translateY(-1px);box-shadow:0 16px 32px rgba(43,122,90,.23)}
.switch-copy{margin:0;text-align:center;color:var(--muted);font-size:12px}
.switch-copy button{border:0;background:transparent;color:var(--emerald);font-weight:900;padding:0}
.auth-view[data-view="register"] .form-heading{margin-bottom:16px}
.auth-view[data-view="register"] .auth-form{gap:9px}
.auth-view[data-view="register"] .auth-form input{height:44px}
.auth-view[data-view="register"] .password-field button{top:3px}
.auth-view[data-view="register"] .submit-btn{height:48px;margin-top:1px}
.runtime-error{height:100dvh;display:grid;place-items:center;background:var(--deep-pine);padding:24px;overflow:hidden}
.runtime-error section{max-width:620px;background:#fff;border-radius:20px;padding:30px;box-shadow:var(--shadow)}
.runtime-error h1{margin-top:0}.runtime-error code{display:block;margin-top:18px;color:var(--emerald)}

/* DASHBOARD: same composition for laptop and tablet >= 10-inch class. */
.dashboard-body{background:#F7F9F8;overflow:hidden}
.dashboard-shell{width:100%;height:100dvh;display:grid;grid-template-columns:218px minmax(0,1fr);overflow:hidden}
.dashboard-sidebar{height:100dvh;background:linear-gradient(180deg,#061B17 0%,var(--deep-pine) 100%);color:#fff;padding:16px 14px 14px;display:grid;grid-template-rows:146px minmax(0,1fr) 66px;gap:12px;overflow:hidden}
.sidebar-brand{display:grid;place-items:center;overflow:hidden;border-bottom:1px solid rgba(255,255,255,.08);padding:4px 0 8px}
.sidebar-brand img{display:block;width:132px;height:132px;object-fit:contain;transform:translateY(4px)}
.sidebar-nav{display:grid;align-content:start;gap:7px;padding-top:3px}
.sidebar-nav a{min-height:48px;padding:0 12px;border-radius:13px;display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:8px;color:rgba(255,255,255,.78);text-decoration:none;font-size:14px;font-weight:800}
.sidebar-nav a:hover{background:rgba(255,255,255,.055);color:#fff}
.sidebar-nav a.is-active{background:rgba(120,200,159,.12);color:#fff;box-shadow:inset 3px 0 var(--fresh)}
.sidebar-nav a[aria-disabled="true"]{cursor:default}
.nav-icon{font-size:17px;color:var(--mint);text-align:center}
.sidebar-user{display:grid;grid-template-columns:38px minmax(0,1fr) 24px;align-items:center;gap:9px;border-top:1px solid rgba(255,255,255,.08);padding:11px 4px 0}
.user-avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--fresh),var(--emerald));font-weight:900}
.sidebar-user strong{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user small{display:block;margin-top:1px;color:rgba(255,255,255,.47);font-size:10px}.logout-link{color:var(--mint);text-decoration:none;font-weight:900;font-size:15px}
.dashboard-area{height:100dvh;min-width:0;display:grid;grid-template-rows:58px minmax(0,1fr);overflow:hidden}
.dashboard-topbar{height:58px;background:#fff;border-bottom:1px solid var(--line);padding:0 22px;display:flex;align-items:center;justify-content:space-between;gap:20px;overflow:visible}
.dashboard-wordmark{font-size:12px;font-weight:900;letter-spacing:.06em;color:var(--forest);text-transform:lowercase}
.dashboard-content{height:calc(100dvh - 58px);padding:16px 22px 18px;display:grid;grid-template-rows:70px minmax(0,1fr);gap:12px;overflow:hidden;background:radial-gradient(circle at 25% 18%,rgba(215,237,225,.48),transparent 32%),#F7F9F8}
.dashboard-heading{display:flex;flex-direction:column;justify-content:center;min-width:0}
.dashboard-heading p{margin:0 0 4px;color:var(--emerald);font-size:10px;font-weight:900;letter-spacing:.11em;text-transform:uppercase}
.dashboard-heading h1{margin:0;font-size:clamp(27px,2.8vw,38px);line-height:1.04;letter-spacing:-.045em;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dashboard-grid{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 300px;grid-template-rows:minmax(0,1fr) 92px;gap:14px 16px;overflow:hidden}
.hero-card{position:relative;min-width:0;min-height:0;overflow:hidden;border-radius:24px;padding:20px 22px;background:linear-gradient(135deg,var(--deep-pine) 0%,var(--forest) 58%,var(--dark-teal) 100%);color:#fff;box-shadow:0 24px 55px rgba(4,16,14,.19);display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.hero-card::before{content:"";position:absolute;right:-120px;top:-170px;width:390px;height:390px;border-radius:50%;background:radial-gradient(circle,rgba(120,200,159,.17),transparent 67%);pointer-events:none}
.hero-top{position:relative;z-index:1;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:7px;font-size:10px;font-weight:900;letter-spacing:.06em}
.status-dot{width:8px;height:8px;border-radius:50%;background:var(--fresh);box-shadow:0 0 0 5px rgba(70,176,127,.12)}
.hero-top time{font-size:12px;letter-spacing:0;font-variant-numeric:tabular-nums}
.hero-content{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) 128px;align-items:center;gap:18px;min-height:0;padding:10px 0}
.hero-copy{min-width:0}.hero-kicker{margin:0 0 9px;color:var(--mint);font-size:10px;font-weight:900;letter-spacing:.12em}.hero-copy h2{margin:0;max-width:720px;font-size:clamp(32px,4.15vw,55px);line-height:1.02;letter-spacing:-.052em;font-weight:900}.hero-copy>p:last-child{margin:12px 0 0;color:rgba(255,255,255,.79);font-size:14px;line-height:1.45}
.timer-ring{width:118px;height:118px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--fresh) var(--progress),rgba(255,255,255,.13) 0);padding:8px;justify-self:end}.timer-ring>div{width:100%;height:100%;border-radius:50%;display:grid;place-items:center;align-content:center;background:var(--deep-pine)}.timer-ring strong{font-size:30px;line-height:1;font-weight:900}.timer-ring small{margin-top:4px;font-size:9px;color:rgba(255,255,255,.66)}
.hero-actions{position:relative;z-index:1;display:flex;align-items:center;gap:9px}.secondary-action{height:42px;padding:0 15px;border:1px solid rgba(255,255,255,.18);border-radius:12px;background:rgba(255,255,255,.07);color:#fff;font-weight:800;font-size:12px}.secondary-action:disabled{opacity:.78;cursor:default}
.next-panel{grid-column:2;grid-row:1 / span 2;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:9px;align-content:start;overflow:hidden}.next-heading{display:flex;align-items:end;justify-content:space-between;gap:10px;padding:2px 2px 0}.next-heading p{margin:0 0 3px;color:var(--emerald);font-size:9px;font-weight:900;letter-spacing:.12em}.next-heading h2{margin:0;font-size:22px;line-height:1.1;letter-spacing:-.035em}.next-heading>span{color:var(--emerald);font-size:12px;font-weight:900;white-space:nowrap}.next-card{align-self:start;min-height:112px;padding:18px;border:1px dashed #CBD9D3;border-radius:20px;background:rgba(255,255,255,.84);display:grid;align-content:center;text-align:center}.next-card time{display:block;color:var(--emerald);font-size:11px;font-weight:900;margin-bottom:5px}.next-card strong{display:block;font-size:15px}.next-card p{margin:6px 0 0;color:var(--muted);font-size:12px;line-height:1.45}
.flow-card{grid-column:1;grid-row:2;min-height:0;border:1px solid rgba(43,122,90,.18);border-radius:18px;background:linear-gradient(100deg,rgba(215,237,225,.62),rgba(255,255,255,.8));padding:13px 16px;display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:12px;overflow:hidden}.flow-face{width:38px;height:38px;border-radius:13px;background:var(--emerald);display:grid;place-items:center}.flow-face svg{width:27px;height:27px;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.flow-face svg circle:first-child{fill:rgba(255,255,255,.08)}.flow-card span{display:block;color:var(--emerald);font-size:9px;font-weight:900;letter-spacing:.12em}.flow-card p{margin:4px 0 0;font-size:12.5px;line-height:1.38;font-weight:750}

/* Tablet/laptop tuning: same layout, only proportion refinement. */
@media (min-width:900px) and (max-width:1120px){
  .dashboard-shell{grid-template-columns:188px minmax(0,1fr)}
  .dashboard-sidebar{padding-left:10px;padding-right:10px;grid-template-rows:112px minmax(0,1fr) 64px}
  .sidebar-brand img{width:136px;height:136px}
  .sidebar-nav a{padding:0 9px;grid-template-columns:25px minmax(0,1fr);font-size:13px;gap:6px}
  .dashboard-content{padding-left:16px;padding-right:16px}
  .dashboard-grid{grid-template-columns:minmax(0,1fr) 252px;gap:12px}
  .hero-card{padding:18px}.hero-content{grid-template-columns:minmax(0,1fr) 105px;gap:12px}.timer-ring{width:100px;height:100px}.timer-ring strong{font-size:25px}
  .hero-copy h2{font-size:clamp(30px,4vw,44px)}
  .next-heading h2{font-size:19px}.next-heading>span{font-size:10px}
}

/* Mobile only: responsive mode below the agreed 10-inch class breakpoint. */
@media (max-width:899px){
  body{overflow:hidden}
  .auth-page{height:100dvh;grid-template-columns:1fr;grid-template-rows:29dvh 71dvh}
  .brand-panel{height:29dvh;min-height:0;padding:8px;background:var(--deep-pine)}
  .brand-panel img{width:auto;height:100%;max-width:92vw;max-height:27dvh}
  .auth-panel{height:71dvh;min-height:0;overflow:visible}
  .auth-inner{height:71dvh;padding:8px 18px 10px;grid-template-rows:82px minmax(0,1fr)}
  .auth-topbar{height:82px;display:grid;grid-template-rows:40px 38px;gap:3px;border-bottom:0}
  .auth-tabs{height:40px;border-bottom:1px solid var(--line)}.auth-tab{height:40px;padding:0 13px;font-size:13px}
  .language-control{justify-self:start;max-width:100%;height:36px}.language-codes button{height:28px;min-width:28px;padding:0 5px;font-size:9px}.language-name{height:28px;min-width:98px;font-size:10px}
  .language-menu{top:42px}
  .auth-content{padding:6px 0 3px;align-items:start}
  .form-heading{margin-bottom:11px}.form-heading h1{font-size:25px}.form-heading>p:last-child{margin-top:5px;font-size:12px}.eyebrow{margin-bottom:5px;font-size:9px}
  .auth-form{gap:8px}.auth-form label{gap:4px;font-size:11px}.auth-form input,.auth-view[data-view="register"] .auth-form input{height:39px;border-radius:9px;padding:0 11px}.password-field button{top:2px;height:35px;font-size:10px}.password-note{font-size:9px}.submit-btn,.auth-view[data-view="register"] .submit-btn{height:42px;font-size:13px}.switch-copy{font-size:10px}

  .dashboard-shell{grid-template-columns:1fr;height:100dvh}.dashboard-sidebar{display:none}.dashboard-area{height:100dvh;grid-template-rows:54px minmax(0,1fr)}
  .dashboard-topbar{height:54px;padding:0 10px;gap:8px}.dashboard-wordmark{font-size:11px}.dashboard-topbar .language-control{transform:scale(.91);transform-origin:right center}
  .dashboard-content{height:calc(100dvh - 54px);padding:10px 12px 12px;grid-template-rows:54px minmax(0,1fr);gap:8px}
  .dashboard-heading p{font-size:8px;margin-bottom:2px}.dashboard-heading h1{font-size:25px}
  .dashboard-grid{display:grid;grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) 96px 72px;gap:8px;overflow:hidden}
  .hero-card{grid-column:1;grid-row:1;border-radius:20px;padding:15px}.hero-content{grid-template-columns:minmax(0,1fr) 84px;gap:8px}.hero-copy h2{font-size:clamp(28px,9vw,38px)}.hero-copy>p:last-child{font-size:11px;margin-top:8px}.timer-ring{width:80px;height:80px;padding:6px}.timer-ring strong{font-size:20px}.hero-actions{display:none}
  .next-panel{grid-column:1;grid-row:2;display:grid;grid-template-columns:120px minmax(0,1fr);grid-template-rows:1fr;gap:8px}.next-heading{align-items:center}.next-heading>span{display:none}.next-heading h2{font-size:17px}.next-card{min-height:0;padding:10px 12px;border-radius:15px;text-align:left}.next-card strong{font-size:13px}.next-card p{font-size:10px;margin-top:3px}
  .flow-card{grid-column:1;grid-row:3;padding:9px 11px;border-radius:14px;grid-template-columns:32px minmax(0,1fr);gap:8px}.flow-face{width:30px;height:30px;border-radius:10px}.flow-face svg{width:21px;height:21px}.flow-card span{font-size:7px}.flow-card p{font-size:9.7px;line-height:1.3;margin-top:2px}
}

@media (max-height:680px) and (min-width:900px){
  .auth-inner{padding-top:12px;padding-bottom:12px;grid-template-rows:52px minmax(0,1fr)}.auth-topbar,.auth-tabs,.auth-tab{height:52px}.auth-content{padding-top:10px}.form-heading{margin-bottom:14px}.form-heading h1{font-size:30px}.auth-form{gap:9px}.auth-form input{height:44px}.submit-btn{height:46px}
  .dashboard-area{grid-template-rows:52px minmax(0,1fr)}.dashboard-topbar{height:52px}.dashboard-content{height:calc(100dvh - 52px);padding-top:10px;padding-bottom:10px;grid-template-rows:56px minmax(0,1fr)}.dashboard-grid{grid-template-rows:minmax(0,1fr) 76px}.hero-card{padding:16px 18px}.hero-copy h2{font-size:38px}.flow-card{padding-top:9px;padding-bottom:9px}
}

/* Final viewport discipline for tall tablets and sidebar branding. */
@media (min-width:900px){
  .dashboard-grid{height:min(560px,100%);align-self:start}
  .sidebar-brand img{width:132px;height:132px;transform:translateY(4px);clip-path:none}
}
.brand-panel{background:#000}

/* Extended homemade language menu: visible bar remains GR / FR / ES / GB / DE. */
.language-menu{width:360px;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;padding:8px}
.language-menu:not([hidden]){display:grid}
.language-menu button{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:34px;padding:7px 9px}
.language-menu button small{color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.08em}
.language-menu button.is-active small{color:var(--emerald)}
@media (max-width:899px){
  .language-menu{position:fixed;top:52px;right:8px;left:8px;width:auto;grid-template-columns:repeat(2,minmax(0,1fr));max-height:calc(100dvh - 60px);overflow:auto}
}

/* Dashboard flow refinements requested for the branded UI. */
@media (min-width:900px){
  .dashboard-content{grid-template-rows:60px minmax(0,1fr);padding-top:10px}
  .dashboard-heading h1{font-size:clamp(27px,2.55vw,35px);overflow:visible;text-overflow:clip}
  .dashboard-grid{grid-template-rows:minmax(0,1fr) 78px}
  .hero-card{padding:17px 20px;border-radius:22px}
  .hero-content{padding:5px 0;grid-template-columns:minmax(0,1fr) 116px}
  .hero-copy h2{font-size:clamp(31px,3.7vw,50px);line-height:1.02}
  .hero-copy>p:last-child{margin-top:9px;font-size:13px}
  .hero-kicker[hidden]{display:none}
  .timer-ring{width:108px;height:108px}
  .hero-actions{gap:7px}.secondary-action{height:39px;padding:0 13px;font-size:11px;cursor:pointer}.secondary-action.primary-complete{background:var(--emerald);border-color:var(--fresh)}
  .next-panel{grid-template-rows:auto minmax(0,1fr)}.next-heading{justify-content:flex-start}.next-heading>span{display:none!important}
  .next-card{height:100%;min-height:0;padding:12px;text-align:left;align-content:start;overflow:hidden}
  .next-live-list{display:grid;gap:8px}.next-live-list article{padding:9px 10px;border:1px solid #d9e5df;border-radius:12px;background:#fff}.next-live-list time{margin:0 0 3px;color:var(--emerald);font-size:9px;font-weight:900}.next-live-list strong{font-size:12px;line-height:1.15}.next-live-list small{display:block;margin-top:3px;color:var(--muted);font-size:9px;font-weight:750}
  .flow-card{padding:10px 14px}.flow-card p{font-size:11.5px}
}

/* v6 palette layer */
body[data-palette="forest"]{--accent:#238A60;--accent-2:#4CCB8C;--accent-soft:#D9F5E7}
body[data-palette="emerald"]{--accent:#00A86B;--accent-2:#31D690;--accent-soft:#D5F8E8}
body[data-palette="mint"]{--accent:#13A88A;--accent-2:#55D7B7;--accent-soft:#DDF9F1}
body[data-palette="lime"]{--accent:#78A91B;--accent-2:#ADD846;--accent-soft:#F0F8D6}
body[data-palette="sunset"]{--accent:#E56B2F;--accent-2:#FF9D52;--accent-soft:#FFE7D7}
body[data-palette="berry"]{--accent:#C13E76;--accent-2:#EE6B9D;--accent-soft:#FBE0EC}
body[data-palette="violet"]{--accent:#7053D6;--accent-2:#A182F0;--accent-soft:#EEE7FF}
body[data-palette="ocean"]{--accent:#168DB2;--accent-2:#46BDE0;--accent-soft:#DBF2FA}
body[data-palette="coral"]{--accent:#E45A50;--accent-2:#FF8177;--accent-soft:#FDE2DF}
body[data-palette="amber"]{--accent:#C88B12;--accent-2:#F2BB3A;--accent-soft:#FFF0C8}
body[data-palette="turquoise"]{--accent:#00A49C;--accent-2:#31D1C7;--accent-soft:#D8F7F3}
body[data-palette="indigo"]{--accent:#496BC7;--accent-2:#7896EA;--accent-soft:#E3E9FB}
body[data-palette] .language-quick.is-active,body[data-palette] .user-avatar{background:var(--accent)!important}
body[data-palette] .sidebar-nav a.is-active{border-left-color:var(--accent-2)!important;background:color-mix(in srgb,var(--accent) 28%,transparent)!important}
body[data-palette] .hero-card{background:linear-gradient(135deg,var(--deep-pine),color-mix(in srgb,var(--forest) 86%,var(--accent)),color-mix(in srgb,var(--dark-teal) 82%,var(--accent)))!important}
body[data-palette] .flow-face{background:var(--accent)!important}
body[data-palette] .flow-card span,body[data-palette] .next-heading p{color:var(--accent)!important}
.timer-ring.is-hidden{visibility:hidden;opacity:0}.timer-ring.is-countdown{background:conic-gradient(var(--accent-2) var(--progress),rgba(255,255,255,.13) 0)}
.student-messages{position:fixed;right:18px;bottom:18px;z-index:500;width:min(390px,calc(100vw - 36px));display:grid;gap:10px;pointer-events:none}
.student-message{position:relative;padding:15px 42px 15px 16px;border-radius:18px;background:linear-gradient(135deg,var(--deep-pine),var(--forest));color:#fff;box-shadow:0 22px 60px rgba(4,16,14,.28);pointer-events:auto;border:1px solid rgba(255,255,255,.12)}
.student-message>button{position:absolute;right:10px;top:9px;width:28px;height:28px;border:1px solid rgba(255,255,255,.18);border-radius:9px;background:rgba(255,255,255,.08);color:#fff;font-size:18px;cursor:pointer}.student-message span{font-size:9px;letter-spacing:.12em;font-weight:900;color:var(--mint)}.student-message p{margin:5px 0 0;font-size:13px;line-height:1.45;font-weight:700}
@media(min-width:800px){.dashboard-heading h1{font-size:clamp(26px,2.25vw,34px)!important}.dashboard-content{grid-template-rows:58px minmax(0,1fr)!important}.hero-card{padding-top:16px!important;padding-bottom:16px!important}}
/* Readability floor for the >=10-inch laptop/tablet interface. */
@media (min-width:900px){
  .sidebar-nav a{font-size:15px}
  .sidebar-user strong{font-size:14px}.sidebar-user small{font-size:11px}
  .next-live-list time{font-size:10.5px}.next-live-list strong{font-size:13px}.next-live-list small{font-size:10px}
}
@media (min-width:900px) and (max-width:1120px){.sidebar-nav a{font-size:14px}}

/* v9 dashboard action polish */
.secondary-action{display:inline-flex;align-items:center;justify-content:center;gap:7px;border-color:rgba(255,255,255,.24)!important;background:linear-gradient(180deg,rgba(255,255,255,.11),rgba(255,255,255,.055))!important;box-shadow:inset 0 1px rgba(255,255,255,.12),0 6px 16px rgba(0,0,0,.10);transition:transform .14s,background .14s,border-color .14s,box-shadow .14s}
.secondary-action:hover{transform:translateY(-1px);background:rgba(255,255,255,.15)!important;border-color:rgba(255,255,255,.38)!important;box-shadow:inset 0 1px rgba(255,255,255,.14),0 10px 22px rgba(0,0,0,.16)}
.secondary-action.primary-complete{background:linear-gradient(135deg,var(--accent),var(--accent-2))!important;border-color:transparent!important;box-shadow:0 8px 18px color-mix(in srgb,var(--accent) 30%,transparent)}
@media(max-width:899px){.dashboard-heading h1{font-size:clamp(24px,7vw,31px)!important}.hero-copy h2{font-size:clamp(25px,8.5vw,36px)!important;line-height:1.04!important}.next-live-list strong{font-size:13px!important}.next-live-list time{font-size:11px!important}.flow-card p{font-size:10.5px!important;line-height:1.36!important}}

/* v10 full-theme palette engine: a palette changes the application, not just buttons. */
body[data-palette="forest"]{--deep-pine:#04100E;--forest:#0A3328;--dark-teal:#15523F;--paper:#F2FAF6;--line:#BFD9CD;--muted:#55736A}
body[data-palette="emerald"]{--deep-pine:#021813;--forest:#07563D;--dark-teal:#087552;--paper:#F0FBF5;--line:#BDE3D1;--muted:#53776A}
body[data-palette="mint"]{--deep-pine:#061B17;--forest:#145F50;--dark-teal:#1B806B;--paper:#F1FBF8;--line:#C0E3D8;--muted:#55766E}
body[data-palette="lime"]{--deep-pine:#101B06;--forest:#49670F;--dark-teal:#668A19;--paper:#FAFDED;--line:#D9E7B8;--muted:#667253}
body[data-palette="sunset"]{--deep-pine:#261006;--forest:#7B3215;--dark-teal:#A44B1E;--paper:#FFF6F0;--line:#E9CCBA;--muted:#7A665A}
body[data-palette="berry"]{--deep-pine:#240A17;--forest:#6C2446;--dark-teal:#92315D;--paper:#FFF4F9;--line:#E8C6D6;--muted:#795F6B}
body[data-palette="violet"]{--deep-pine:#140D2E;--forest:#3F2B7D;--dark-teal:#5A409C;--paper:#F8F5FF;--line:#D9D0ED;--muted:#6C647B}
body[data-palette="ocean"]{--deep-pine:#051A24;--forest:#0F526A;--dark-teal:#14718D;--paper:#F1FAFD;--line:#C3DFE7;--muted:#59747C}
body[data-palette="coral"]{--deep-pine:#280E0D;--forest:#81332F;--dark-teal:#A94640;--paper:#FFF5F4;--line:#E9CBC8;--muted:#7A625E}
body[data-palette="amber"]{--deep-pine:#211704;--forest:#74500B;--dark-teal:#966B10;--paper:#FFF9EA;--line:#E9D7A9;--muted:#77694E}
body[data-palette="turquoise"]{--deep-pine:#021A18;--forest:#075D58;--dark-teal:#087E77;--paper:#F0FBFA;--line:#BDE3DF;--muted:#557672}
body[data-palette="indigo"]{--deep-pine:#091126;--forest:#2B4279;--dark-teal:#3B59A0;--paper:#F4F7FE;--line:#CAD5EA;--muted:#606B82}
body[data-palette]{background:var(--paper)!important}
body[data-palette] .dashboard-sidebar{background:linear-gradient(180deg,color-mix(in srgb,var(--forest) 86%,#000),var(--deep-pine))!important}
body[data-palette] .dashboard-topbar{background:color-mix(in srgb,#fff 94%,var(--accent-soft))!important;border-bottom-color:var(--line)!important}
body[data-palette] .dashboard-content,
body[data-palette] .performance-content,
body[data-palette] .settings-content{background:radial-gradient(circle at 18% 3%,color-mix(in srgb,var(--accent-soft) 76%,transparent),transparent 31%),var(--paper)!important}
body[data-palette] .next-card,
body[data-palette] .metric:not(.metric-main),
body[data-palette] .chart-card,
body[data-palette] .settings-card,
body[data-palette] .supervisor-row{border-color:var(--line)!important;background:color-mix(in srgb,#fff 96%,var(--accent-soft))!important}
body[data-palette] .flow-card,
body[data-palette] .insight-card{background:linear-gradient(120deg,color-mix(in srgb,var(--accent-soft) 72%,#fff),#fff)!important;border-color:color-mix(in srgb,var(--accent) 25%,var(--line))!important}
body[data-palette] .metric-main{background:linear-gradient(135deg,var(--forest),color-mix(in srgb,var(--dark-teal) 74%,var(--accent)))!important}
body[data-palette] .plan-canvas-shell,
body[data-palette] .week-canvas-shell{border-color:color-mix(in srgb,var(--accent) 24%,var(--line))!important;box-shadow:0 14px 38px color-mix(in srgb,var(--forest) 10%,transparent)!important}
body[data-palette] .plan-day>header,
body[data-palette] .week-day>header{background:linear-gradient(180deg,#fff,color-mix(in srgb,var(--accent-soft) 24%,#fff))!important}
body[data-palette] .language-menu button:hover,
body[data-palette] .language-menu button.is-active{background:var(--accent-soft)!important;color:var(--forest)!important}

/* v10 palette coverage across every built application surface. */
body[data-palette] .plan-area,body[data-palette] .week-area{background:var(--paper)!important}
body[data-palette] .plan-content,body[data-palette] .week-content{background:radial-gradient(circle at 20% 0%,color-mix(in srgb,var(--accent-soft) 68%,transparent),transparent 27%),var(--paper)!important}
body[data-palette] .plan-masterbar,body[data-palette] .week-masterbar{background:color-mix(in srgb,#fff 94%,var(--accent-soft))!important;border-color:var(--line)!important}
body[data-palette] .plan-time-rail,body[data-palette] .week-time-rail{background:color-mix(in srgb,#fff 84%,var(--accent-soft))!important;border-color:var(--line)!important}
body[data-palette] .plan-day-body,body[data-palette] .week-day-body{background:color-mix(in srgb,#fff 97%,var(--accent-soft))!important}
body[data-palette] .performance-filter button.is-active,body[data-palette] .settings-card button[type="submit"],body[data-palette] #newSupervisorBtn{background:linear-gradient(135deg,var(--accent),var(--accent-2))!important;border-color:transparent!important;color:#fff!important}
body[data-palette] input:focus,body[data-palette] select:focus,body[data-palette] textarea:focus{border-color:var(--accent)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 13%,transparent)!important}

/* v11 palette coverage: every application surface follows the selected corporate theme. */
body[data-palette] .dashboard-area{background:var(--paper)!important}
body[data-palette] .dashboard-topbar,body[data-palette] .plan-masterbar,body[data-palette] .week-masterbar{background:linear-gradient(180deg,color-mix(in srgb,#fff 92%,var(--accent-soft)),color-mix(in srgb,#fff 97%,var(--accent-soft)))!important;border-color:var(--line)!important}
body[data-palette] .dashboard-content,body[data-palette] .plan-content,body[data-palette] .week-content,body[data-palette] .performance-content,body[data-palette] .settings-content{background:radial-gradient(circle at 14% 2%,color-mix(in srgb,var(--accent-soft) 78%,transparent),transparent 32%),var(--paper)!important}
body[data-palette] .plan-canvas-shell,body[data-palette] .week-canvas,body[data-palette] .chart-card,body[data-palette] .insights-card,body[data-palette] .settings-card,body[data-palette] .metric:not(.metric-main){background:color-mix(in srgb,#fff 96%,var(--accent-soft))!important;border-color:var(--line)!important}
body[data-palette] .plan-day-body,body[data-palette] .week-day-body{background:color-mix(in srgb,#fff 97%,var(--accent-soft))!important}
body[data-palette] .plan-icon-btn.primary,body[data-palette] .dialog-primary,body[data-palette] .week-primary,body[data-palette] #newSupervisorBtn,body[data-palette] #yearForm button{background:linear-gradient(135deg,var(--accent),var(--accent-2))!important;color:#fff!important;border-color:transparent!important;box-shadow:0 7px 18px color-mix(in srgb,var(--accent) 20%,transparent)!important}
body[data-palette] .performance-filter button.is-active{background:linear-gradient(135deg,var(--accent),var(--accent-2))!important;color:#fff!important}
body[data-palette] .category-track,body[data-palette] .weekly-track{background:color-mix(in srgb,var(--accent-soft) 50%,#edf2f0)!important}
.login-mode{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:4px;border:1px solid #cad8d3;border-radius:13px;background:#f4f8f6;margin-bottom:4px}.login-mode button{height:38px;border:0;border-radius:9px;background:transparent;color:#526760;font:inherit;font-size:12px;font-weight:850;cursor:pointer}.login-mode button.is-active{background:linear-gradient(135deg,#2B7A5A,#46B07F);color:#fff;box-shadow:0 6px 16px rgba(43,122,90,.18)}

/* v13 — explicit student engagement state inside active study/prep blocks */
.engagement-toggle{position:absolute;z-index:5;right:clamp(132px,14vw,188px);bottom:76px;width:74px;height:74px;border:1px solid rgba(255,255,255,.22);border-radius:50%;background:rgba(255,255,255,.07);color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:inset 0 0 0 1px rgba(255,255,255,.04),0 10px 28px rgba(0,0,0,.12);transition:transform .18s ease,background .18s ease,box-shadow .18s ease,border-color .18s ease}.engagement-toggle[hidden]{display:none!important}.engagement-toggle strong{position:relative;z-index:2;font-size:20px;letter-spacing:.08em}.engagement-glow{position:absolute;inset:7px;border-radius:50%;background:rgba(255,255,255,.05);transition:.18s ease}.engagement-toggle:hover{transform:translateY(-1px);border-color:rgba(255,255,255,.36)}.engagement-toggle.is-on{background:linear-gradient(145deg,var(--accent),var(--accent-2));border-color:rgba(255,255,255,.55);box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 18%,transparent),0 0 32px color-mix(in srgb,var(--accent-2) 58%,transparent),0 14px 34px rgba(0,0,0,.2)}.engagement-toggle.is-on .engagement-glow{background:rgba(255,255,255,.18);box-shadow:0 0 22px rgba(255,255,255,.18)}.engagement-toggle:disabled{cursor:default;opacity:.96}.engagement-toggle:disabled:hover{transform:none}
@media(max-width:899px){.engagement-toggle{right:102px;bottom:20px;width:58px;height:58px}.engagement-toggle strong{font-size:16px}}
@media(min-width:900px) and (max-height:690px){.engagement-toggle{bottom:60px;width:64px;height:64px;right:120px}}

/* v15 — the brand row must actually contain the logo instead of clipping it. */
@media(min-width:900px){
  .dashboard-sidebar{grid-template-rows:146px minmax(0,1fr) 66px!important}
  .sidebar-brand{padding-top:7px!important;padding-bottom:7px!important;overflow:visible!important;align-items:center!important}
  .sidebar-brand img{width:132px!important;height:132px!important;max-height:132px!important;transform:none!important;object-fit:contain!important}
  .sidebar-nav{align-content:start!important;gap:5px!important;padding-top:4px!important}
  .sidebar-nav a{min-height:43px!important}
}

/* v16 — Plan is a platform-coloured workspace, not a white document floating on top. */
body[data-palette] .plan-content{
  background:radial-gradient(circle at 16% 0%,color-mix(in srgb,var(--accent) 12%,transparent),transparent 31%),color-mix(in srgb,var(--paper) 70%,var(--accent-soft))!important;
}
body[data-palette] .plan-canvas-shell{
  background:color-mix(in srgb,var(--paper) 66%,var(--accent-soft))!important;
  border-color:color-mix(in srgb,var(--accent) 22%,var(--line))!important;
}
body[data-palette] .plan-day-body{
  background:color-mix(in srgb,var(--paper) 82%,var(--accent-soft))!important;
}
body[data-palette] .plan-day>header,body[data-palette] .plan-time-rail{
  background:color-mix(in srgb,var(--paper) 68%,var(--accent-soft))!important;
}
