/* Таймер, тосты, конфетти */
.tb{position:fixed;left:12px;right:12px;bottom:12px;background:linear-gradient(140deg,#3a1a4d,#2a1140);border:1px solid rgba(255,255,255,.12);padding:12px 14px;display:none;align-items:center;gap:10px;z-index:40;box-shadow:0 12px 30px rgba(0,0,0,.5);border-radius:18px}
.tb.open{display:flex}
.tb .info{flex:1;min-width:0}
.tb .nm{font-weight:700;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#ffe9b8}
.tb .cl{font-variant-numeric:tabular-nums;color:#ffe9b8;font-weight:800;font-size:22px}
.tb button{border:0;border-radius:12px;padding:10px 14px;font-weight:600;cursor:pointer;font-size:13px;min-height:44px}
.tb .b-fin{background:linear-gradient(140deg,#7a3fbf,#b85cd6);color:#ffe9b8}
.tb .b-stp{background:rgba(255,255,255,.08);color:#eec97e}
.tb .b-cl{background:rgba(255,255,255,.08);color:#eec97e;font-size:18px;padding:0;width:44px}
.tb .st{font-size:11.5px;color:#dcae5c;margin-top:2px}
.toast{position:fixed;left:50%;bottom:90px;transform:translateX(-50%) translateY(20px);background:linear-gradient(140deg,#3a1a4d,#2a1140);color:#ffe9b8;border:1px solid rgba(255,255,255,.12);padding:12px 18px;border-radius:14px;font-weight:600;font-size:14px;box-shadow:0 12px 30px rgba(0,0,0,.5);transition:all .25s;z-index:60;display:flex;gap:6px;align-items:center;max-width:90vw;opacity:0;pointer-events:none}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.toast.good{border-color:rgba(180,140,255,.4)}
.conf{position:fixed;pointer-events:none;inset:0;z-index:70;overflow:hidden}
.conf i{position:absolute;top:-20px;width:8px;height:14px;border-radius:2px;animation:fall 1.4s linear forwards}
@keyframes fall{to{transform:translateY(110vh) rotate(720deg);opacity:0}}

/* Вкладки: крупная область нажатия и заметная активная вкладка */
.tabs button{
  min-height:56px;padding:10px 4px;font-size:13.5px;font-weight:700;
  touch-action:manipulation;-webkit-tap-highlight-color:transparent;
  cursor:pointer;user-select:none;white-space:nowrap;overflow:hidden;
}
.tabs button:active{transform:scale(.96)}
.tabs button.on{
  background:linear-gradient(140deg,#7a3fbf,#b85cd6);
  color:#ffe9b8;box-shadow:0 0 0 2px rgba(255,233,184,.65),0 6px 18px rgba(91,42,140,.6)
}
@media(max-width:520px){
  .tabs{grid-template-columns:repeat(3,1fr);gap:8px}
  .tabs button{font-size:12.5px;letter-spacing:-.2px}
}
@media(max-width:340px){
  .tabs{grid-template-columns:repeat(2,1fr)}
}
button:focus-visible,input:focus-visible{outline:3px solid #ffe9b8;outline-offset:3px}
button:disabled{cursor:not-allowed;opacity:.55}
.row.inactive .bd{opacity:.65}
.sw{height:44px;min-height:44px;border:0;width:56px}
.sw::after{top:10px}
.sw.on::after{transform:translateX(26px)}
.tabs button:active{transform:none}
@media(max-width:520px){
  .tb{flex-wrap:wrap}
  .tb .info{flex:1 0 calc(100% - 90px)}
  .tb .b-fin,.tb .b-stp{flex:1}
  body:has(.tb.open){padding-bottom:150px}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .conf{display:none}
}
