/* Lehrzeug – Bühne für den Beamer (Rituale, Stundenabschluss, Bewegungspause). Kern 2.4 */
.bu { position: relative; display: flex; flex-direction: column; gap: 14px; min-height: 480px; padding: 22px 26px 20px; border-radius: 24px; color: #fff; overflow: hidden; outline: none;
  background: radial-gradient(circle at 90% 8%, rgba(18, 199, 163, .38), transparent 42%), radial-gradient(circle at 6% 100%, rgba(46, 124, 246, .42), transparent 48%), radial-gradient(circle at 60% 120%, rgba(155, 89, 255, .3), transparent 40%), #071B4A;
  box-shadow: 0 24px 50px -30px rgba(7, 27, 74, .8); }
.bu[data-ton="warm"] { background: radial-gradient(circle at 88% 10%, rgba(245, 166, 35, .42), transparent 44%), radial-gradient(circle at 8% 100%, rgba(242, 96, 79, .4), transparent 48%), radial-gradient(circle at 60% 120%, rgba(155, 89, 255, .26), transparent 40%), #1B1440; }
.bu[data-ton="ruhig"] { background: radial-gradient(circle at 85% 10%, rgba(155, 89, 255, .4), transparent 44%), radial-gradient(circle at 10% 100%, rgba(18, 199, 163, .32), transparent 50%), #0E1A3F; }
.bu-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.bu-kick { margin: 0; display: inline-block; padding: 5px 14px; border-radius: 99px; background: rgba(18, 199, 163, .18); border: 1px solid rgba(18, 199, 163, .45); color: #5FF0D2; font-size: 13.5px; font-weight: 700; }
.bu-kick:empty { visibility: hidden; }
.bu-tools { display: flex; gap: 6px; margin-left: auto; }
.bu-ib { display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border-radius: 99px; border: 1px solid rgba(255, 255, 255, .25); background: rgba(255, 255, 255, .07); color: #DCE6F5; font-size: 13.5px; font-weight: 500; cursor: pointer; }
.bu-ib:hover { background: rgba(255, 255, 255, .16); color: #fff; }
.bu-ib .i { width: 17px; height: 17px; }
.bu-ib[aria-pressed="true"] { border-color: #5FF0D2; color: #5FF0D2; }
.bu-steps { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.bu-steps li { display: inline-flex; align-items: center; gap: 7px; padding: 5px 12px 5px 5px; border-radius: 99px; background: rgba(255, 255, 255, .07); color: #A9B8D3; font-size: 13.5px; font-weight: 500; }
.bu-steps li span { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: rgba(255, 255, 255, .14); font-size: 12px; font-weight: 700; }
.bu-steps li.is-now { background: #12C7A3; color: #04241D; font-weight: 700; }
.bu-steps li.is-now span { background: rgba(4, 36, 29, .2); }
.bu-steps li.is-past { color: #7F92B5; }
.bu-steps li.is-past span { background: rgba(18, 199, 163, .35); color: #fff; }
.bu-body { flex: 1; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; gap: 10px; padding: 10px 0; min-height: 250px; }
.bu-idle { max-width: 34em; color: #C9D5EA; font-size: 17px; line-height: 1.6; }
.bu-idle .bu-emoji { margin-bottom: 6px; }
.bu-idle b { color: #fff; }
.bu-title { margin: 0; color: #5FF0D2; font-weight: 700; font-size: 15px; letter-spacing: .02em; text-transform: uppercase; }
.bu-title.is-small { font-size: 13px; opacity: .8; }
.bu-label { margin: 0; color: #F5C04A; font-weight: 700; font-size: clamp(1rem, 1.6vw, 1.25rem); }
.bu-emoji { margin: 0; font-size: clamp(3rem, 7vw, 5rem); line-height: 1.1; }
.bu-text { margin: 0; max-width: 22em; font-size: clamp(1.7rem, 3.6vw, 2.9rem); line-height: 1.18; letter-spacing: -.02em; font-weight: 700; text-wrap: balance; }
.bu-text.is-long { font-size: clamp(1.4rem, 2.8vw, 2.2rem); }
.bu-sub { margin: 0; max-width: 36em; color: #C9D5EA; font-size: clamp(1rem, 1.7vw, 1.3rem); line-height: 1.5; }
.bu-list { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 8px; text-align: left; font-size: clamp(1rem, 1.8vw, 1.35rem); }
.bu-list li { position: relative; padding-left: 30px; color: #E6EDF8; }
.bu-list li::before { content: ""; position: absolute; left: 6px; top: .45em; width: 12px; height: 12px; border-radius: 50%; background: #12C7A3; }
.bu-reveal { margin-top: 6px; padding: 12px 18px; border-radius: 16px; background: rgba(245, 166, 35, .16); border: 1px solid rgba(245, 166, 35, .5); max-width: 32em; }
.bu-reveal[hidden] { display: none; }
.bu-reveal b { color: #F5C04A; text-transform: uppercase; font-size: 13px; letter-spacing: .06em; }
.bu-reveal p { margin: 4px 0 0; font-size: clamp(1.1rem, 2vw, 1.5rem); font-weight: 600; }
.bu-breath { position: relative; display: grid; place-items: center; width: clamp(170px, 26vw, 260px); aspect-ratio: 1; margin: 4px 0; }
.bu-circle { position: absolute; inset: 0; border-radius: 50%; background: radial-gradient(circle at 40% 35%, #8FF5DF, #12C7A3 55%, #0B8F74); box-shadow: 0 0 60px rgba(18, 199, 163, .55); transform: scale(.55); }
.bu-breath b { position: relative; z-index: 1; color: #04241D; font-size: clamp(1rem, 1.8vw, 1.35rem); }
.bu-foot { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.bu-foot[hidden] { display: none; }
.bu-time { flex: 1 1 260px; display: flex; align-items: center; gap: 14px; min-width: 0; }
.bu-time b { font-size: clamp(2rem, 4.4vw, 3.4rem); font-variant-numeric: tabular-nums; line-height: 1; letter-spacing: -.02em; min-width: 3.2ch; }
.bu:not(.has-time) .bu-time b { color: #7F92B5; }
.bu-bar { flex: 1; height: 12px; border-radius: 99px; background: rgba(255, 255, 255, .12); overflow: hidden; }
.bu-bar i { display: block; height: 100%; width: 0; border-radius: inherit; background: linear-gradient(90deg, #12C7A3, #5FF0D2); }
.bu.is-last10 .bu-time b { color: #F5C04A; }
.bu.is-last10 .bu-bar i { background: linear-gradient(90deg, #F5A623, #F2604F); }
.bu-ctrl { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.bu-btn { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-width: 48px; height: 48px; padding: 0 14px; border-radius: 99px; border: 1px solid rgba(255, 255, 255, .28); background: rgba(255, 255, 255, .08); color: #fff; font-weight: 600; font-size: 15px; cursor: pointer; touch-action: manipulation; }
.bu-btn:hover { background: rgba(255, 255, 255, .18); }
.bu-btn:disabled { opacity: .35; cursor: default; }
.bu-btn .i { width: 20px; height: 20px; }
.bu-btn[hidden] { display: none; }
.bu-main { width: 60px; height: 60px; background: #12C7A3; border-color: #12C7A3; color: #04241D; box-shadow: 0 2px 0 #0B8F74; }
.bu-main:hover { background: #33D7B6; }
.bu-main .i { width: 26px; height: 26px; }
.bu-next { margin: 0; min-height: 1.4em; color: #A9B8D3; font-size: 14.5px; }
.bu-end { display: grid; justify-items: center; gap: 12px; }
.bu-end-btns { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 8px; }
.bu :focus-visible { outline: 3px solid #F5C04A; outline-offset: 2px; }
.bu-exit { position: absolute; top: 14px; right: 14px; z-index: 3; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .3); background: rgba(7, 27, 74, .6); color: #fff; cursor: pointer; }
.bu-exit[hidden] { display: none; }
/* Vollbild */
.bu.is-full { position: fixed; inset: 0; z-index: 1000; border-radius: 0; padding: 3vh 4vw; min-height: 100vh; }
.bu.is-full .bu-tools { margin-right: 54px; }
.bu.is-full .bu-text { font-size: clamp(2rem, 5.2vw, 4.6rem); }
.bu.is-full .bu-text.is-long { font-size: clamp(1.7rem, 3.8vw, 3.2rem); }
.bu.is-full .bu-sub { font-size: clamp(1.1rem, 2.2vw, 1.8rem); }
.bu.is-full .bu-list { font-size: clamp(1.2rem, 2.4vw, 2rem); }
.bu.is-full .bu-emoji { font-size: clamp(4rem, 10vw, 8rem); }
.bu.is-full .bu-time b { font-size: clamp(2.6rem, 6vw, 5rem); }
.bu.is-full .bu-steps li { font-size: clamp(.9rem, 1.4vw, 1.2rem); }
body.bu-full-open { overflow: hidden; }
@media (max-width: 640px) {
  .bu { padding: 16px 14px; min-height: 420px; border-radius: 20px; }
  .bu-ib span { display: none; }
  .bu-ib { padding: 8px; }
  .bu-steps li { font-size: 12.5px; }
  .bu-foot { gap: 10px; }
  .bu-time { flex-basis: 100%; }
  .bu-ctrl { width: 100%; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) { .bu-circle { transition: none; } }
@media print { .bu { display: none !important; } }

/* Gemeinsame Teile der Auswahl links (Rituale, Abschluss, Bewegung) */
.ri-go { white-space: normal; text-align: center; justify-content: center; font-size: 1.15rem; padding: 14px 18px; }
.ri-go .i { width: 22px; height: 22px; }
.ri-cards { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; max-height: 420px; overflow: auto; padding-right: 2px; }
.ri-card { position: relative; }
.ri-card > button:first-child { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 2px 10px; width: 100%; text-align: left; padding: 9px 44px 9px 10px; border-radius: 14px; border: 1px solid var(--line); background: var(--surface-2, var(--surface)); color: var(--ink); cursor: pointer; }
.ri-card > button:first-child:hover { border-color: var(--teal); background: var(--teal-soft); }
.ri-card .ri-em { grid-row: span 2; font-size: 24px; line-height: 1; }
.ri-card b { font-size: 14.5px; font-weight: 600; line-height: 1.3; }
.ri-card small { color: var(--ink-3); font-size: 12.5px; line-height: 1.35; }
.ri-card .ri-fav { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); display: grid; place-items: center; width: 32px; height: 32px; border: 0; border-radius: 10px; background: none; color: var(--ink-3); cursor: pointer; }
.ri-card .ri-fav:hover { background: var(--sunken); color: #E59500; }
.ri-card .ri-fav .i { width: 18px; height: 18px; }
.ri-card .ri-fav[aria-pressed="true"] { color: #E59500; }
.ri-card .ri-fav[aria-pressed="true"] .i { fill: #F5A623; stroke: #C77E00; }
.ri-count { color: var(--ink-3); font-size: 13px; margin: 0; }
.ri-empty { margin: 0; padding: 12px; border-radius: 12px; background: var(--sunken); color: var(--ink-2); font-size: 14px; }
.ri-keys { margin: 14px 0 0; color: var(--ink-3); font-size: 13px; }
.ri-keys kbd { display: inline-block; min-width: 1.6em; padding: 1px 6px; border-radius: 6px; border: 1px solid var(--line-2); background: var(--surface); font: inherit; font-size: 12px; text-align: center; }
/* Lehrzeug 1.5: große Aufgaben, Lösungen in Spalten */
.bu-text.is-big { font-size: clamp(2.6rem, 7vw, 5.4rem); letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
.bu.is-full .bu-text.is-big { font-size: clamp(3.4rem, 10vw, 8rem); }
.bu-list.is-cols { display: block; columns: 3 12em; column-gap: 28px; font-variant-numeric: tabular-nums; max-width: 100%; }
.bu-list.is-cols li { break-inside: avoid; margin: 0 0 6px; }
@media (max-width: 640px) { .bu-list.is-cols { columns: 2 9em; } }
.bu-steps li.is-solo { padding: 5px 14px; gap: 10px; }
.bu-steps li.is-solo small { font-weight: 600; opacity: .7; }
