
:root{
  --bg:#0f1216; --panel:#141922; --muted:#9aa3af; --text:#eaf0f7; --button:#0f1520; --accent:#6ee7b7; --accent2:#60a5fa;
  --radius:16px; --gap:16px; --container:1100px;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0; font:16px/1.5 Inter,system-ui,Segoe UI,Roboto,Helvetica,Arial; color:var(--text); background:#0f1216}
.container{max-width:var(--container); margin-inline:auto; padding:20px 16px}
.topbar{display:flex; align-items:center; justify-content:flex-start}
.brand{display:flex; gap:10px; align-items:center}
.brand .droplet{font-size:28px}
.brand .bt h1{margin:0; font-size:20px}
.brand .bt p{margin:0; color:var(--muted); font-size:12px}

.stack{display:flex; flex-direction:column; gap:18px}
.card{background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
  border:1px solid rgba(255,255,255,.06); border-radius:var(--radius); padding:18px; box-shadow:0 10px 30px rgba(0,0,0,.25)}
.card h2{margin:0 0 6px}

.focus-card .big-clock{font-weight:800; font-size:clamp(52px, 7vw, 92px); text-align:center; letter-spacing:1px}
.controls-row{display:flex; gap:10px; justify-content:center; margin:12px 0 6px}
.btn{background:var(--button); color:var(--text); border:1px solid rgba(255,255,255,.08); border-radius:10px; padding:8px 12px; cursor:pointer}
.btn.primary{background:linear-gradient(180deg, var(--accent), #34d399); color:#0b1220; border-color:transparent; font-weight:700}
.btn.ghost{background:transparent}
.btn[disabled]{opacity:.55; cursor:not-allowed}

.settings-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(170px, 1fr)); gap:10px; margin-top:8px}
.field{display:flex; flex-direction:column; gap:6px}
.field input, .field select{background:#0b0f14; border:1px solid rgba(255,255,255,.08); color:var(--text); padding:10px; border-radius:10px}
.field.check label{display:flex; gap:8px; align-items:center;}
.sound-row{display:flex; gap:8px; align-items:center}

.quick-row{display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:10px; flex-wrap:wrap}
.chips{display:flex; gap:6px; flex-wrap:wrap}
.chip{background:#0b0f14; border:1px solid rgba(255,255,255,.08); color:#eaf0f7; padding:6px 10px; border-radius:999px; cursor:pointer}
.meta{display:flex; gap:8px; align-items:center; flex-wrap:wrap}
.badge{background:#0b0f14; border:1px solid rgba(255,255,255,.08); color:#eaf0f7; padding:6px 10px; border-radius:999px; font-size:12px}

.display-row{display:grid; grid-template-columns: 210px 1fr; gap:18px; align-items:center}
.ring-wrap{position:relative; width:210px; height:210px}
.ring{width:210px; height:210px}
.ring .bg{fill:none; stroke:rgba(255,255,255,.12); stroke-width:10;}
.ring .fg{fill:none; stroke:#6ee7b7; stroke-width:10; stroke-linecap:round; transform:rotate(-90deg); transform-origin:50% 50%}
.ring-center{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; text-align:center}
.ring-pct{font-weight:700; font-size:18px}
.ring-ml{font-size:12px; color:var(--muted)}
.ring-cups{font-size:12px; color:var(--muted)}

.muted{color:var(--muted)} .small{font-size:12px}
.last-line{margin-top:8px}
.footer small{color:var(--muted)}

/* click-through safety */
.ring-wrap, .ring-wrap *{pointer-events:none}
.controls-row *, .chips *{pointer-events:auto}


.section-title{display:flex; align-items:center; gap:12px; margin:0 0 10px}
.title-icon-wrap{display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; border-radius:12px; background:rgba(110,231,183,.06); border:1px solid rgba(110,231,183,.18); box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}
.timer-icon{width:22px; height:22px; stroke:var(--accent); stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; fill:none; opacity:.96}


/* header logo from uploaded SVG */
.topbar{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  padding-top:18px;
  padding-bottom:6px;
}
.brand-lockup{
  display:block;
  width:100%;
}
.header-logo-svg{
  display:block;
  width:min(280px, 100%);
  height:auto;
  max-width:100%;
}
.sr-only{
  position:absolute!important;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
@media (max-width: 700px){
  .topbar{padding-top:14px; padding-bottom:4px}
  .header-logo-svg{width:min(190px, 100%)}
}


.move-icon-solid{fill:var(--accent); stroke:none; width:20px; height:20px}


/* notification controls and in-page alerts */
.notify-panel{padding-top:0; padding-bottom:4px}
.notify-controls{display:flex; align-items:center; gap:10px; flex-wrap:wrap}
.notify-status{color:var(--muted)}
.notify-repeat{display:flex; align-items:center; gap:8px; color:var(--muted); font-size:13px; background:#0b0f14; border:1px solid rgba(255,255,255,.08); border-radius:999px; padding:6px 10px}
.notify-repeat input{accent-color:var(--accent)}
.app-alert{position:fixed; left:50%; bottom:22px; transform:translateX(-50%); z-index:9999; width:min(680px, calc(100vw - 28px)); display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px; border-radius:18px; color:var(--text); background:linear-gradient(180deg, rgba(21,28,38,.98), rgba(12,17,25,.98)); border:1px solid rgba(110,231,183,.45); box-shadow:0 24px 70px rgba(0,0,0,.45), 0 0 0 1px rgba(110,231,183,.08)}
.app-alert[hidden]{display:none}
.app-alert strong{display:block; font-size:15px; color:#fff}
.app-alert p{margin:3px 0 0; color:var(--muted); font-size:13px}
.app-alert.pulse{animation:alertPulse 1.35s ease-in-out infinite}
.card.alerting{border-color:rgba(110,231,183,.62); box-shadow:0 14px 40px rgba(0,0,0,.28), 0 0 0 1px rgba(110,231,183,.22), 0 0 34px rgba(110,231,183,.10)}
body.tab-hidden .card.alerting{border-color:rgba(96,165,250,.65)}
@keyframes alertPulse{0%,100%{box-shadow:0 24px 70px rgba(0,0,0,.45), 0 0 0 1px rgba(110,231,183,.08)}50%{box-shadow:0 24px 70px rgba(0,0,0,.45), 0 0 0 1px rgba(110,231,183,.28), 0 0 34px rgba(110,231,183,.22)}}
@media (max-width: 640px){.notify-controls{align-items:stretch}.notify-controls .btn,.notify-status,.notify-repeat{width:100%; justify-content:center}.app-alert{flex-direction:column; align-items:stretch}.app-alert .btn{width:100%}}


/* desktop notification polish */
.notify-controls #notify-test:disabled{opacity:.55; cursor:not-allowed}
.notify-status{white-space:nowrap}


/* notification permission fix */
.notify-controls #notify-test:not(:disabled){cursor:pointer}
.notify-status{min-width:0}


/* Move exercise modal */
.move-modal-backdrop{
  position:fixed;
  inset:0;
  z-index:9998;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
  background:rgba(5,8,12,.66);
  backdrop-filter:blur(8px);
}
.move-modal-backdrop[hidden]{display:none}
.move-modal{
  width:min(560px, calc(100vw - 28px));
  border-radius:22px;
  border:1px solid rgba(110,231,183,.36);
  background:linear-gradient(180deg, rgba(22,29,39,.98), rgba(11,16,23,.98));
  box-shadow:0 28px 90px rgba(0,0,0,.55), 0 0 0 1px rgba(110,231,183,.08);
  padding:20px;
}
.move-modal-head{display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:12px}
.move-modal-kicker{margin:0 0 3px; color:var(--accent); font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.08em}
.move-modal h3{margin:0; font-size:24px; line-height:1.1; letter-spacing:-.03em}
.move-modal-timer{flex:0 0 auto; min-width:82px; text-align:center; padding:8px 10px; border-radius:14px; background:#0b0f14; border:1px solid rgba(255,255,255,.09); font-weight:900; font-size:20px; color:#fff}
.move-modal-summary{margin:0 0 14px; color:var(--muted)}
.move-modal-steps{margin:0; padding-left:20px; color:#eaf0f7}
.move-modal-steps li{margin:7px 0}
.move-modal-safety{margin:14px 0 0; padding:10px 12px; border-radius:14px; background:rgba(110,231,183,.06); border:1px solid rgba(110,231,183,.16); color:var(--muted); font-size:13px}
.move-modal-actions{display:flex; justify-content:flex-end; gap:10px; flex-wrap:wrap; margin-top:16px}
@media (max-width:640px){.move-modal{padding:16px}.move-modal-head{flex-direction:column}.move-modal-timer{width:100%; text-align:left}.move-modal-actions .btn{width:100%}}

/* Learn Sprint V1 */
.learn-controls{flex-wrap:wrap}
.learn-settings-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
.learn-modal-backdrop{
  position:fixed;
  inset:0;
  z-index:9998;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:rgba(0,0,0,.62);
  backdrop-filter:blur(10px);
}
.learn-modal-backdrop[hidden]{display:none}
.learn-modal{
  width:min(720px, 100%);
  max-height:calc(100vh - 40px);
  overflow:auto;
  padding:22px;
  border-radius:24px;
  color:var(--text);
  background:linear-gradient(180deg, rgba(25,32,42,.98), rgba(11,15,21,.98));
  border:1px solid rgba(110,231,183,.34);
  box-shadow:0 28px 90px rgba(0,0,0,.58), 0 0 0 1px rgba(110,231,183,.08);
}
.learn-modal-head{display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:10px}
.learn-modal-kicker{margin:0 0 3px; color:var(--accent); font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.08em}
.learn-modal h3{margin:0; font-size:26px; line-height:1.1; letter-spacing:-.03em}
.learn-modal-timer{flex:0 0 auto; min-width:92px; text-align:center; padding:8px 10px; border-radius:14px; background:#0b0f14; border:1px solid rgba(255,255,255,.09); font-weight:900; font-size:20px; color:#fff}
.learn-modal-deck{display:inline-flex; margin:0 0 14px; padding:6px 10px; border-radius:999px; color:var(--accent); background:rgba(110,231,183,.08); border:1px solid rgba(110,231,183,.18); font-size:12px; font-weight:800}
.learn-card-copy p{margin:0 0 13px; color:#eaf0f7; line-height:1.55}
.learn-card-copy p strong{color:#fff}
.learn-shortcuts{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:12px 0 14px}
.learn-shortcuts div{padding:12px; border-radius:16px; background:#0b0f14; border:1px solid rgba(255,255,255,.09)}
.learn-shortcuts span{display:block; margin-bottom:6px; color:var(--muted); font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.06em}
.learn-shortcuts strong{display:block; color:#fff; font-size:18px}
.learn-question{font-size:18px}
.learn-answer-box{margin:12px 0 14px; padding:14px; border-radius:16px; background:rgba(110,231,183,.08); border:1px solid rgba(110,231,183,.18); color:#fff}
.learn-answer-box p{margin:6px 0 0}
.learn-modal-note{margin-top:12px!important; padding:10px 12px; border-radius:14px; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); color:var(--muted)!important; font-size:13px}
.learn-modal-actions{display:flex; justify-content:flex-end; gap:10px; flex-wrap:wrap; margin-top:16px}
@media (max-width: 980px){.learn-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.learn-settings-grid{grid-template-columns:1fr}.learn-modal{padding:16px}.learn-modal-head{flex-direction:column}.learn-modal-timer{width:100%; text-align:left}.learn-shortcuts{grid-template-columns:1fr}.learn-modal-actions .btn{width:100%}}
