/* ---------------- Rechenrahmen (Abakus) ---------------- */
.rr{
  --rr-ink:#2B2D5B; --rr-soft:#6C6F97; --rr-card:#fff;
  --rr-c1:#E4572E; --rr-c2:#2E86DE;          /* Perlen 1–5 / 6–10 */
  --rr-c1-off:#F6CBBE; --rr-c2-off:#C3DCF4;  /* nicht gezaehlt (rechts) */
  --rr-p1:#F2A516; --rr-p2:#3FA866;          /* Teil 1 / Teil 2 */
  --rr-off:#E9DFD0;
  --rr-R:#8B6FCF; --rr-P:#2FA6B8; --rr-rest:#E86A6A;
  --rr-wood:#C68B4E; --rr-wood-dark:#9C6634;
  --slot:24px;
  display:flex;flex-direction:column;gap:12px;color:var(--rr-ink);
  -webkit-user-select:none;user-select:none;
}
.rr button{font-family:inherit;touch-action:manipulation;}

/* Modus-Umschalter */
.rr-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;background:#E9ECF1;padding:5px;border-radius:16px;}
.rr-tab{
  border:none;cursor:pointer;min-height:44px;border-radius:12px;background:transparent;
  font-size:14px;font-weight:800;color:var(--rr-soft);padding:6px 4px;line-height:1.15;
}
.rr-tab.on{background:var(--rr-card);color:var(--rr-ink);box-shadow:0 2px 8px rgba(43,45,91,.12);}
@media (max-width:520px){ .rr-tabs{grid-template-columns:repeat(2,1fr);} }

.rr-tipp{font-size:15px;font-weight:700;color:var(--rr-soft);text-align:center;line-height:1.35;}

/* Vorrat beim Verteilen/Aufteilen */
.rr-tray{background:#F3EEE6;border-radius:16px;padding:10px 12px;min-height:58px;}
.rr-tray-lbl{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--rr-soft);margin-bottom:6px;}
.rr-tray-beads{display:flex;flex-wrap:wrap;gap:4px;min-height:18px;}
.rr-tbead{
  width:16px;height:16px;border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#fff8 0 18%,transparent 40%),var(--rr-R);
  box-shadow:inset 0 -2px 0 rgba(0,0,0,.18);
}
.rr-tbead.rest{background:radial-gradient(circle at 35% 30%,#fff8 0 18%,transparent 40%),var(--rr-rest);
  box-shadow:0 0 0 3px #fff,0 0 0 5px var(--rr-rest);animation:rr-puls 1.2s ease-in-out infinite;margin:0 4px;}
.rr-tray-msg{font-size:15px;font-weight:800;margin-top:8px;display:none;}
.rr-tray-msg.rest{display:block;color:#b64545;}
.rr-tray-msg.ok{display:block;color:#2f7a4e;}
@keyframes rr-puls{50%{transform:scale(1.18);}}

/* Rahmen */
.rr-frame{
  background:#FFF7E8;border-radius:16px;padding:8px 6px 8px 10px;
  border:10px solid var(--rr-wood);
  box-shadow:inset 0 0 0 2px var(--rr-wood-dark),0 6px 16px rgba(43,45,91,.14);
}
.rr-rows{touch-action:none;cursor:pointer;}
.rr-row{display:flex;align-items:center;height:max(44px,calc(var(--slot)*1.25));}
.rr-rod{position:relative;flex:1;height:100%;}
.rr-rod::before{
  content:"";position:absolute;left:0;right:0;top:50%;height:4px;margin-top:-2px;
  background:linear-gradient(#cdbca5,#9d8a72);border-radius:2px;
}
.rr-band{
  position:absolute;left:calc(var(--slot)*0.3 - 4px);top:0;bottom:0;
  width:calc(var(--slot)*var(--w,0) + 8px);
  background:rgba(251,192,45,.28);display:none;
}
.rr-band.on{display:block;}
.rr-band.first{border-top-left-radius:10px;border-top-right-radius:10px;}
.rr-band.last{border-bottom-left-radius:10px;border-bottom-right-radius:10px;}
.rr-bead{
  position:absolute;left:0;top:50%;
  width:calc(var(--slot)*0.94);height:clamp(calc(var(--slot)*1.02),26px,40px);
  margin-left:calc(var(--slot)*0.03);
  border-radius:50% / 46%;
  transform:translate(calc(var(--slot)*var(--x,0)),-50%);
  transition:transform .22s cubic-bezier(.3,.7,.4,1),background-color .2s;
  background-color:var(--bc,#ccc);
  background-image:radial-gradient(ellipse at 34% 28%,rgba(255,255,255,.7) 0 14%,rgba(255,255,255,0) 42%),
                   linear-gradient(rgba(0,0,0,0) 55%,rgba(0,0,0,.18));
  box-shadow:0 1px 2px rgba(0,0,0,.2);
  pointer-events:none;
}
.rr-still .rr-bead{transition:none;}
.rr-bead.c1{--bc:var(--rr-c1);}
.rr-bead.c2{--bc:var(--rr-c2);}
.rr-bead.c1.off{--bc:var(--rr-c1-off);}
.rr-bead.c2.off{--bc:var(--rr-c2-off);}
.rr-bead.p1{--bc:var(--rr-p1);}
.rr-bead.p2{--bc:var(--rr-p2);}
.rr-bead.off:not(.c1):not(.c2){--bc:var(--rr-off);}
.rr-val{width:34px;flex:0 0 34px;text-align:center;font-size:17px;font-weight:800;color:var(--rr-soft);}
.rr-ohne-zahlen .rr-val{visibility:hidden;}
.rr-ohne-zahlen .rr-total{visibility:hidden;}
.rr-hint .rr-val,.rr-hint .rr-total{display:none;}

.rr-total{text-align:center;font-size:18px;font-weight:700;color:var(--rr-soft);margin-top:-4px;}
.rr-total b{color:var(--rr-ink);font-size:22px;}

/* Knoepfe */
.rr-play,.rr-tools{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;}
.rr-btn{
  border:none;cursor:pointer;min-height:44px;padding:10px 18px;border-radius:14px;
  background:var(--rr-card);color:var(--rr-ink);font-size:16px;font-weight:800;
  box-shadow:0 4px 12px rgba(43,45,91,.10);
}
.rr-btn:active{transform:scale(.96);}
.rr-btn:disabled{opacity:.4;}
.rr-btn-main{background:var(--rr-R);color:#fff;}
.rr-toggle{display:flex;align-items:center;gap:8px;color:var(--rr-soft);}
.rr-toggle i{width:38px;height:22px;border-radius:11px;background:#d8dae3;position:relative;flex:0 0 38px;transition:background .15s;}
.rr-toggle i::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .15s;box-shadow:0 1px 3px rgba(0,0,0,.25);}
.rr-toggle.on i{background:#4CAF6E;}
.rr-toggle.on i::after{transform:translateX(16px);}

/* Aufgabenfamilie */
.rr-family{background:var(--rr-card);border-radius:18px;padding:12px 14px;box-shadow:0 4px 12px rgba(43,45,91,.10);}
.rr-fam-lbl{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--rr-soft);margin-bottom:6px;}
.rr-fam-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:4px 16px;}
.rr-eq{font-size:20px;font-weight:700;padding:4px 8px;border-radius:10px;line-height:1.35;}
.rr-eq:empty{display:none;}
.rr-eq.lang{grid-column:1/-1;}
.rr-eq.fokus{background:#FFF2C9;box-shadow:inset 0 0 0 2px #FBC02D;}
.rr-op{color:var(--rr-soft);font-weight:700;}
.rr-n{font-weight:800;}
.rr-n-t1{color:#C98200;}
.rr-n-t2{color:#2f8a52;}
.rr-n-R{color:var(--rr-R);}
.rr-n-P{color:#1f8796;}
.rr-n-r,.rr-rest-txt{color:var(--rr-rest);font-weight:800;}
.rr-rest-txt{font-size:.85em;white-space:nowrap;}
.rr-q{
  display:inline-block;min-width:1.5em;text-align:center;border-radius:8px;
  background:#EEF0F6;color:var(--rr-soft);font-weight:800;padding:0 4px;
}

/* Stepper */
.rr-steppers{display:flex;flex-wrap:wrap;gap:10px 18px;justify-content:center;}
.rr-step,.rr-aktiv{display:flex;align-items:center;gap:8px;}
.rr-step-lbl{font-size:14px;font-weight:800;color:var(--rr-soft);}
.rr-sbtn{
  width:44px;height:44px;border:none;border-radius:14px;cursor:pointer;
  background:var(--rr-card);box-shadow:0 4px 12px rgba(43,45,91,.10);
  font-size:24px;font-weight:800;color:var(--rr-ink);
}
.rr-sbtn:active{transform:scale(.94);}
.rr-step-val{min-width:30px;text-align:center;font-size:22px;}
.rr-step-t1 .rr-step-val{color:#C98200;}
.rr-step-t2 .rr-step-val{color:#2f8a52;}
.rr-aktiv{width:100%;justify-content:center;}
.rr-chip{
  border:none;cursor:pointer;min-height:44px;padding:8px 14px;border-radius:22px;
  font-size:15px;font-weight:800;background:#EEF0F6;color:var(--rr-soft);
}
.rr-chip.p1.on{background:var(--rr-p1);color:#fff;}
.rr-chip.p2.on{background:var(--rr-p2);color:#fff;}

/* ---- Popup ---- */
.rr-overlay{
  position:fixed;inset:0;z-index:100;background:rgba(30,32,60,.55);
  display:flex;align-items:center;justify-content:center;padding:12px;
  opacity:0;transition:opacity .18s;overscroll-behavior:contain;
}
.rr-overlay.auf{opacity:1;}
.rr-modal{
  background:#F5F7F6;border-radius:24px;width:min(820px,100%);max-height:100%;
  display:flex;flex-direction:column;box-shadow:0 20px 50px rgba(0,0,0,.3);overflow:hidden;
}
.rr-modal-head{display:flex;align-items:center;gap:10px;padding:10px 10px 4px 18px;}
.rr-modal-title{font-size:19px;font-weight:800;color:#2B2D5B;}
.rr-close{
  margin-left:auto;width:52px;height:52px;border:none;border-radius:16px;cursor:pointer;
  background:#fff;box-shadow:0 4px 12px rgba(43,45,91,.12);font-size:24px;font-weight:800;color:#2B2D5B;
}
.rr-close:active{transform:scale(.94);}
.rr-modal-body{overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:6px 14px 16px;}

/* Schmale Bildschirme (iPhone hochkant): weniger Rand, mehr Platz fuer Perlen */
@media (max-width:520px){
  .rr-frame{border-width:7px;padding:6px 2px 6px 6px;}
  .rr-val{width:26px;flex-basis:26px;font-size:15px;}
  .rr-overlay{padding:8px;}
  .rr-modal-body{padding:4px 10px 14px;}
  .rr-eq{font-size:18px;}
}

/* Querformat auf kleinen Geraeten: kompakterer Kopf, Inhalt scrollt im Popup */
@media (orientation:landscape) and (max-height:520px){
  .rr-modal-head{padding-top:6px;}
  .rr-frame{width:100%;max-width:540px;margin:0 auto;}
  .rr-close{width:46px;height:46px;}
}

@media (prefers-reduced-motion:reduce){
  .rr-bead{transition:none;}
  .rr-tbead.rest{animation:none;}
}
