:root{
  color-scheme:light;
  --sm-graphite:#18252b;
  --sm-petrol:#0b5963;
  --sm-petrol-deep:#073f46;
  --sm-action:#0b7373;
  --sm-accent:#12a6a0;
  --sm-accent-soft:#e8f6f5;
  --sm-accent-softer:#f3f9f8;
  --sm-surface:#ffffff;
  --sm-canvas:#f4f7f7;
  --sm-ink:#18252b;
  --sm-muted:#586a70;
  --sm-line:#d7e3e3;
  --sm-success:#188653;
  --sm-success-soft:#eaf7f0;
  --sm-warning:#9a6500;
  --sm-warning-soft:#fff5da;
  --sm-review:#6b52b5;
  --sm-review-soft:#f3effc;
  --sm-critical:#b83a3a;
  --sm-critical-soft:#fff0f0;
  --sm-shadow:0 10px 30px rgba(24,37,43,.07);
  --sm-shadow-small:0 4px 14px rgba(24,37,43,.055);
  --navy:var(--sm-petrol);
  --blue:var(--sm-action);
  --blue2:var(--sm-accent);
  --light:var(--sm-accent-soft);
  --ink:var(--sm-ink);
  --text:var(--sm-ink);
  --muted:var(--sm-muted);
  --line:var(--sm-line);
  --paper:var(--sm-canvas);
  --bg:var(--sm-canvas);
  --good:var(--sm-success);
  --green:var(--sm-success);
  --warn:var(--sm-warning);
  --yellow:var(--sm-warning);
  --bad:var(--sm-critical);
  --red:var(--sm-critical);
  --purple:var(--sm-review);
  --softgood:var(--sm-success-soft);
  --softwarn:var(--sm-warning-soft);
  --softbad:var(--sm-critical-soft);
  --softpurple:var(--sm-review-soft);
}

body{
  font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,Helvetica,sans-serif;
  color:var(--sm-ink);
  background:
    radial-gradient(circle at 100% 0,rgba(18,166,160,.055),transparent 28rem),
    var(--sm-canvas);
}

header{
  position:relative;
  background:linear-gradient(125deg,var(--sm-graphite) 0%,var(--sm-petrol-deep) 52%,var(--sm-petrol) 100%);
  box-shadow:0 8px 28px rgba(24,37,43,.13);
}
header::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:3px;
  background:linear-gradient(90deg,var(--sm-accent),#67d6cf 62%,#e5a11a);
}
h1{letter-spacing:-.025em}
.eyebrow{color:#a9ece8;opacity:1!important}

.card,.framewrap,aside,.syncbox{
  border-color:var(--sm-line)!important;
  box-shadow:var(--sm-shadow-small);
}
.card,.framewrap,aside{border-radius:13px!important}
.card{overflow:hidden}

.head,.cardhead,.framehead{
  color:var(--sm-graphite)!important;
  background:linear-gradient(90deg,var(--sm-accent-soft),#f8fbfb)!important;
  border-left:4px solid var(--sm-accent);
  border-bottom:1px solid var(--sm-line);
  padding-left:15px!important;
}
.framehead{color:var(--sm-petrol-deep)!important}

.chaptertitle,.scale .shead,th{
  color:var(--sm-petrol-deep)!important;
  background:var(--sm-accent-soft)!important;
}
.chapter{border-color:var(--sm-line)!important;border-radius:11px!important}
.block{transition:background-color .18s ease,border-color .18s ease}
.block:hover{background:var(--sm-accent-softer)}
.block.next-block{
  background:var(--sm-warning-soft);
  box-shadow:inset 4px 0 0 #e5a11a;
}

.status.done{
  color:var(--sm-success)!important;
  background:var(--sm-success-soft)!important;
  box-shadow:inset 0 0 0 1px rgba(24,134,83,.17);
}
.status.current{
  color:#6b4700!important;
  background:var(--sm-warning-soft)!important;
  box-shadow:inset 0 0 0 1px rgba(229,161,26,.35);
}
.status.prepared{color:#65747a!important;background:#eef2f2!important}

a.btn,button.action,.syncbox button{
  color:#fff!important;
  background:var(--sm-action)!important;
  border:1px solid var(--sm-action)!important;
  box-shadow:0 3px 10px rgba(11,115,115,.15);
  transition:transform .15s ease,box-shadow .15s ease,background-color .15s ease;
}
a.btn:hover,button.action:hover,.syncbox button:hover{
  background:var(--sm-petrol)!important;
  transform:translateY(-1px);
  box-shadow:0 6px 16px rgba(11,89,99,.2);
}
a.btn.secondary,button.secondary,.syncbox .alt{
  color:var(--sm-petrol-deep)!important;
  background:#fff!important;
  border:1px solid #aac5c5!important;
  box-shadow:none;
}
a.btn.secondary:hover,button.secondary:hover,.syncbox .alt:hover{background:var(--sm-accent-soft)!important}

.progress{height:12px!important;background:#dfe9e8!important;box-shadow:inset 0 1px 2px rgba(24,37,43,.07)}
.progress span{background:linear-gradient(90deg,var(--sm-petrol),var(--sm-accent))!important}
.pill{color:#6b4700!important;background:var(--sm-warning-soft)!important;border:1px solid rgba(229,161,26,.3)}

.source{border-left-color:var(--sm-petrol)!important;background:#eef6f5!important}
.simple,.prepared:not(.status){border-left-color:var(--sm-accent)!important;background:var(--sm-accent-softer)!important}
.review{border-color:var(--sm-review)!important;background:var(--sm-review-soft)!important}
.trap{border-left-color:var(--sm-critical)!important;background:var(--sm-critical-soft)!important}
.casio,.todo{border-left-color:#e5a11a!important;background:var(--sm-warning-soft)!important}
.memory,.done:not(.status):not(.step):not(.stepnav),.good:not(.feedback){border-left-color:var(--sm-success)!important;background:var(--sm-success-soft)!important}
.exam,.formula-panel,.resultbox,.scorebox{border-color:var(--sm-petrol)!important}
.examlabel,.formula-title,.score .big,.goal b,.term b,.rung b,.symbol b,h2{color:var(--sm-petrol-deep)!important}
.stepno{background:var(--sm-petrol)!important}

.badge{color:var(--sm-petrol-deep)!important;background:var(--sm-accent-soft)!important}
.badge.purple{color:#523b9a!important;background:var(--sm-review-soft)!important}
.badge.green{color:#116c41!important;background:var(--sm-success-soft)!important}
.badge.a,.badge.priority-a{color:#6b4700!important;background:var(--sm-warning-soft)!important;border:1px solid rgba(229,161,26,.32)}
.badge.b,.badge.priority-b{color:#795100!important;background:#fff8e8!important}
.badge.yellow,.badge.neutral{color:#526269!important;background:#eef2f2!important;border:1px solid #d6e0e0}
.badge.casio-active{color:var(--sm-petrol-deep)!important;background:var(--sm-accent-soft)!important;border:1px solid #b9dedd}

/* Masterportal: pro Kapitel genau eine ruhige, aufklappbare Arbeitsflaeche. */
.chapter-card>.head{padding:0!important;border-left:0!important}
.chapter-toggle{
  width:100%;border:0;background:transparent;color:var(--sm-graphite);padding:15px 17px;
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;text-align:left;
  font:700 16px/1.35 Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;cursor:pointer;
}
.chapter-toggle:hover{background:rgba(18,166,160,.055)}
.chapter-toggle-main{display:flex;align-items:center;gap:10px;min-width:0}
.chapter-toggle-main>span:first-child{overflow:hidden;text-overflow:ellipsis}
.chapter-toggle-meta{display:flex;align-items:center;gap:9px;color:var(--sm-muted);font-size:13px;font-weight:600;white-space:nowrap}
.chapter-toggle-status{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:999px;background:#eef2f2;color:#586a70}
.chapter-card.is-current .chapter-toggle-status{color:#6b4700;background:var(--sm-warning-soft)}
.chapter-card.is-complete .chapter-toggle-status{color:#116c41;background:var(--sm-success-soft)}
.chapter-chevron{width:20px;height:20px;transition:transform .18s ease;color:var(--sm-petrol)}
.chapter-toggle[aria-expanded="true"] .chapter-chevron{transform:rotate(180deg)}
.chapter-card>.body{display:none}
.chapter-card.is-open>.body{display:block;animation:chapter-open .2s ease-out}
.chapter-mini-progress{height:5px;background:#dfe9e8;overflow:hidden}
.chapter-mini-progress>span{display:block;height:100%;background:linear-gradient(90deg,var(--sm-petrol),var(--sm-accent));transition:width .25s ease}
@keyframes chapter-open{from{opacity:.35;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}

.master-progress-overview{
  display:flex;align-items:center;gap:18px;margin-bottom:18px;padding:16px;
  border:1px solid var(--sm-line);border-radius:12px;background:linear-gradient(125deg,#fff,var(--sm-accent-softer));
}
.master-progress-ring{
  --progress:0deg;width:104px;height:104px;flex:0 0 104px;border-radius:50%;
  display:grid;place-items:center;position:relative;
  background:conic-gradient(var(--sm-action) var(--progress),#dce8e7 0);
}
.master-progress-ring::after{content:"";position:absolute;inset:10px;border-radius:50%;background:#fff}
.master-progress-ring span{position:relative;z-index:1;color:var(--sm-petrol-deep);font-size:23px;font-weight:800}
.master-progress-copy{display:flex;flex-direction:column;gap:5px;min-width:0}
.master-progress-kicker{color:var(--sm-action);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.master-progress-copy strong{font-size:18px;color:var(--sm-graphite)}
.master-progress-copy small{color:var(--sm-muted);line-height:1.45}
.exam-date-label{display:block;color:var(--sm-muted);font-size:12px}.exam-date-input{display:block;width:100%;min-width:0;margin:5px 0 3px;padding:5px 6px!important;border:1px solid #b9cdcd!important;border-radius:7px;background:#fff;color:var(--sm-petrol-deep);font:700 13px Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}.exam-date-input:focus{outline:3px solid rgba(18,166,160,.2)!important;border-color:var(--sm-accent)!important}.exam-date-input+small{display:block;color:var(--sm-action);font-size:10px;font-weight:700;line-height:1.3}
.premium-insights>.head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.premium-label{padding:4px 8px;border-radius:999px;background:var(--sm-review-soft);color:#523b9a;font-size:11px;font-weight:800;letter-spacing:.06em}
.premium-insight-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.premium-insight{position:relative;overflow:hidden;padding:13px;border:1px solid var(--sm-line);border-radius:10px;background:#f7f9f9;color:inherit;text-decoration:none;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background .16s ease}
.premium-insight:hover{transform:translateY(-2px);border-color:var(--sm-accent);background:#f3fbfa;box-shadow:0 8px 20px rgba(0,91,92,.09)}
.premium-insight:focus-visible{outline:3px solid rgba(18,166,160,.24);outline-offset:2px;border-color:var(--sm-accent)}
.premium-insight span,.premium-insight b,.premium-insight small{display:block}
.premium-insight span{color:var(--sm-muted);font-size:12px;padding-right:24px}
.premium-insight b{margin:6px 0;color:var(--sm-petrol-deep);font-size:15px}
.premium-insight small{color:var(--sm-muted);font-size:11px;line-height:1.35}
.premium-summary-row{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:12px;padding:13px;border-radius:10px;background:var(--sm-warning-soft);border-left:4px solid #e5a11a}
.premium-summary-row b,.premium-summary-row small{display:block}.premium-summary-row small{margin-top:3px;color:var(--sm-muted)}
.portal-utility{max-width:1180px;margin:12px auto 0;padding:0 18px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.portal-utility a{display:inline-flex;align-items:center;min-height:38px;padding:8px 11px;border:1px solid #b9cecd;border-radius:8px;background:#fff;color:var(--sm-petrol-deep);text-decoration:none;font-size:13px;font-weight:700}
.portal-utility a:hover{background:var(--sm-accent-soft);border-color:var(--sm-accent)}
.portal-utility .portal-brand{gap:9px;padding:5px 10px 5px 6px;border-color:transparent;background:transparent}
.portal-brand img{width:35px;height:35px;border-radius:9px}.portal-brand span{display:flex;flex-direction:column;line-height:1}.portal-brand b{font-size:16px}.portal-brand small{margin-top:4px;color:var(--sm-muted);font-size:7px;letter-spacing:.13em;text-transform:uppercase}
.portal-utility-links{display:flex;gap:8px}
.portal-ai-card{border:2px solid transparent!important;background:linear-gradient(#fff,#fff) padding-box,linear-gradient(135deg,var(--sm-accent),#7057b5) border-box!important;box-shadow:0 12px 30px rgba(82,59,154,.1)!important}
.portal-ai-card>.head{display:flex;align-items:center;justify-content:space-between;gap:9px;background:linear-gradient(115deg,#f4efff,#e9faf8)!important;color:var(--sm-petrol-deep)!important;border-left-color:#7057b5!important}
.portal-ai-card>.body>p{margin-top:0;color:var(--sm-muted);font-size:13px}.portal-ai-card .btn{width:100%;text-align:center;background:linear-gradient(110deg,#5d479e,var(--sm-action))!important}
.portal-ai-signals{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.portal-ai-signals>div{padding:11px;border:1px solid var(--sm-line);border-radius:9px;background:#f8faf9}.portal-ai-signals b,.portal-ai-signals small{display:block}.portal-ai-signals b{color:#5d479e;font-size:20px}.portal-ai-signals small{margin-top:2px;color:var(--sm-muted);font-size:10px}
.portal-ai-benefits{list-style:none;padding:0;margin:12px 0;display:grid;gap:6px}.portal-ai-benefits li{position:relative;padding-left:20px;color:var(--sm-graphite);font-size:12px}.portal-ai-benefits li::before{content:"✓";position:absolute;left:0;color:var(--sm-success);font-weight:800}.portal-ai-roadmap{display:flex;align-items:flex-start;gap:7px;margin:11px 0;padding:9px;border-radius:8px;background:#eef2f2;color:var(--sm-muted);font-size:10px}.portal-ai-roadmap b{color:#5d479e;white-space:nowrap}.portal-ai-roadmap span{line-height:1.35}
.portal-ai-roadmap.is-available{background:var(--sm-success-soft);color:#315f49;border-left:3px solid var(--sm-success)}.portal-ai-roadmap.is-available b{color:#116c41}
.portal-info-hub{overflow:hidden}.portal-info-hub details,.portal-info-hub summary{margin:0}.portal-info-hub summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;cursor:pointer;color:var(--sm-petrol-deep);list-style:none}.portal-info-hub summary::-webkit-details-marker{display:none}.portal-info-hub summary span{display:flex;flex-direction:column}.portal-info-hub summary small{margin-top:4px;color:var(--sm-muted);font-size:11px;font-weight:400}.portal-info-hub summary svg{width:19px;height:19px;transition:transform .18s ease}.portal-info-hub details[open] summary svg{transform:rotate(180deg)}.portal-info-body{padding:0 16px 14px;border-top:1px solid var(--sm-line)}.portal-info-body p{display:grid;gap:2px;margin:12px 0 0}.portal-info-body b{font-size:12px;color:var(--sm-petrol-deep)}.portal-info-body span{font-size:12px;color:var(--sm-muted)}
.portal-info-body .portal-preview-note{margin-top:14px;padding-top:11px;border-top:1px dashed #c9d7d6}

.block .btn[data-action-state="preview"]{color:#526269!important;border-color:#ccd8d8!important;background:#fff!important}
.block .btn[data-action-state="complete"]{color:var(--sm-petrol-deep)!important}
.block .btn[data-action-state="continue"]{background:var(--sm-action)!important;color:#fff!important}

button.opt{border-color:#b9cdcd!important;border-radius:8px!important}
button.opt:hover:not(:disabled){background:var(--sm-accent-softer)!important;border-color:var(--sm-accent)!important}
button.opt.correct{border-color:var(--sm-success)!important;background:var(--sm-success-soft)!important}
button.opt.wrong{border-color:var(--sm-critical)!important;background:var(--sm-critical-soft)!important}
.feedback.good{color:#116c41!important;background:var(--sm-success-soft)!important}
.feedback.bad{color:#922f2f!important;background:var(--sm-critical-soft)!important}

input,textarea,select{border-color:#b9cdcd!important}
input:focus,textarea:focus,select:focus{
  outline:3px solid rgba(18,166,160,.2);
  border-color:var(--sm-action)!important;
}
a:focus-visible,button:focus-visible{
  outline:3px solid rgba(18,166,160,.42)!important;
  outline-offset:3px;
}

/* Only links on the dark lesson header; light surfaces keep their own colors. */
header .coursebar a.step:not(.active),header .coursebar a.step:visited:not(.active),
header .coursebar a.stepnav:not(.active),header .coursebar a.stepnav:visited:not(.active){
  color:#fff;
  text-decoration:none;
}
.coursebar .step.active,.coursebar .stepnav.active{
  color:var(--sm-petrol-deep)!important;
  box-shadow:inset 0 -3px 0 var(--sm-accent);
}
.coursebar .step.done{
  color:#fff!important;
  background:rgba(103,214,207,.24)!important;
}

@media(max-width:620px){
  header{padding-left:18px!important;padding-right:18px!important}
  .layout,.shellmain,main{padding-left:12px!important;padding-right:12px!important}
  .cardbody,.body{padding:16px!important}
  .card,.framewrap,aside{border-radius:11px!important}
  a.btn,button.action{min-height:42px;display:inline-flex;align-items:center;justify-content:center}
  .chapter-toggle{padding:14px;grid-template-columns:1fr auto}
  .chapter-toggle-main{align-items:flex-start;flex-direction:column;gap:5px}
  .chapter-toggle-meta{white-space:normal;font-size:12px}
  .chapter-toggle-status{padding:3px 7px}
  .master-progress-overview{align-items:flex-start;padding:14px;gap:13px}
  .master-progress-ring{width:82px;height:82px;flex-basis:82px}.master-progress-ring span{font-size:19px}
  .premium-insight-grid{grid-template-columns:1fr}.premium-summary-row{align-items:stretch;flex-direction:column}.premium-summary-row .btn{width:100%}
  .portal-utility{padding:0 12px}.portal-brand small{display:none}.portal-utility-links a:first-child{display:none}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;transition:none!important}
  .chapter-card.is-open>.body{animation:none}
}

/* Portal rows must fit before and after the favourite action is inserted. */
main .grid>*,main .block>*{min-width:0}
main .block{grid-template-columns:auto minmax(0,1fr) auto}
main .block>:nth-child(2){overflow-wrap:anywhere}
main .block .block-actions{min-width:0;max-width:100%}
@media(max-width:620px){
  main .block{grid-template-columns:30px minmax(0,1fr)}
  main .block>.btn,main .block>.block-actions{grid-column:2;min-width:0;max-width:100%}
  main .block>.btn,main .block .block-actions>.btn{width:100%;white-space:normal;overflow-wrap:anywhere;text-align:center}
  main .block .block-actions>.btn{flex:1 1 auto;min-width:0}
}
