/* Today, Language stack layout (features/today/stack.js; round 10 lane 001). Kit tokens only. The hero is classic's
   card (.hero.today-hero with its atmosphere); the disclosures are the Practice groups' (.pr-group); the session rows
   are classic's plan rows; the quick log is kit chips. */

/* the switcher: the language chips scroll inside their own row (never the page), with a fade at the end while more
   chips are off screen; + stays outside it */
.stack-switch-wrap { display: flex; align-items: center; gap: var(--s-2); margin-bottom: var(--s-3); }
.stack-switch { position: relative; flex: 1; min-width: 0; flex-wrap: nowrap; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none; padding-block: var(--s-1); }
.stack-switch.is-over { -webkit-mask-image: linear-gradient(to right, #000 calc(100% - var(--s-6)), transparent); mask-image: linear-gradient(to right, #000 calc(100% - var(--s-6)), transparent); }
.stack-switch.is-over:dir(rtl) { -webkit-mask-image: linear-gradient(to left, #000 calc(100% - var(--s-6)), transparent); mask-image: linear-gradient(to left, #000 calc(100% - var(--s-6)), transparent); }
.stack-switch::-webkit-scrollbar { display: none; }
.stack-chip { flex: none; gap: var(--s-2); min-height: var(--tap); font-variant-numeric: tabular-nums; text-decoration: none; color: var(--ink); }
.stack-chip-code { font-weight: 600; letter-spacing: 0.02em; }
.stack-chip-val { color: var(--ink-2); }
.stack-chip[aria-pressed="true"] .stack-chip-val { color: inherit; }
.stack-chip-add { flex: none; min-width: var(--tap); justify-content: center; padding-inline: 0; color: var(--ink-2); }

/* the hero */
.stack-hero .hero-count .unit { color: var(--ink-2); }
.stack-of { margin-top: var(--s-2); color: var(--ink-2); }
.stack-date { display: inline-flex; align-items: center; min-height: var(--tap); margin-block: calc(-1 * var(--s-3)); color: var(--accent-ink); }
.stack-set { display: inline-flex; align-items: center; min-height: var(--tap); margin-block: calc(-1 * var(--s-2)) calc(-1 * var(--s-3)); color: var(--accent-ink); }
.stack-pace { display: grid; gap: var(--s-1); margin-top: var(--s-4); }
.stack-pace .label { color: var(--ink); }
.stack-note { margin-top: var(--s-1); color: var(--ink-2); max-width: var(--measure); }
.stack-floor { margin-top: var(--s-4); display: grid; gap: var(--s-2); }
.stack-floor .caption { color: var(--ink-2); }
.stack-meter { max-width: min(100%, 20rem); }
.stack-meter.ui-bar { background: var(--cell-empty); }
.stack-foot .label { color: var(--ink-2); }
.stack-done { display: inline-flex; align-items: center; gap: var(--s-2); color: var(--ink); }

/* the session (a quiet row under the hero) and More for today (a section): the Practice groups' disclosure */
.today-stack .stack-group { margin-top: var(--s-6); padding-top: var(--s-2); }
.today-stack .stack-steps-group { margin-top: var(--s-3); padding-top: 0; border-top: 0; }
.stack-steps-head { min-height: 56px; border-bottom: 1px solid var(--hairline); }
.stack-steps-head .pr-group-title { font: 500 var(--fs-body)/1.4 var(--font-ui); letter-spacing: 0; }
.today-stack .stack-group > h2 { margin: 0; font: inherit; }
.stack-steps { margin: 0; }
.stack-steps-note { margin-top: var(--s-2); color: var(--ink-2); }
.stack-group .pr-group-panel > div > .section:first-child { margin-top: 0; }

/* the quick log: the label with Other amount on its right, then four even chips */
.stack-log { margin-top: var(--s-6); }
.stack-log-head { display: flex; align-items: center; justify-content: space-between; gap: var(--s-3); min-height: var(--tap); margin-bottom: var(--s-2); }
.stack-log-head > h2 { margin: 0; color: var(--ink-2); }
.stack-log-other { margin-inline-end: calc(-1 * var(--s-3)); }
.stack-log-chips { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s-2); }
.stack-log-chips .chip { justify-content: center; padding-inline: var(--s-2); }
.stack-step-val { min-width: 7ch; text-align: center; font: 500 var(--fs-title)/1.3 var(--font-ui); color: var(--ink); }
/* the last row clears the dock by one step (as Practice, Exam and Word building) */
.today-stack.has-dock { padding-bottom: 92px; }
@media (min-width: 900px) { .today-stack.has-dock { padding-bottom: 0; } }

/* Profile › Languages and hours */
.stack-live { margin: var(--s-1) 0 var(--s-4); font: 500 var(--fs-label)/1.4 var(--font-ui); color: var(--ink); }
.stack-date-add { justify-self: start; }

/* the partner card */
.stack-partner { margin-top: var(--s-6); padding: var(--s-5); border-radius: var(--r-card); background: var(--surface); border: 1px solid var(--hairline); }
.stack-partner-name { margin: 0; font: 600 var(--fs-title)/1.3 var(--font-ui); letter-spacing: -0.01em; }
.stack-partner-days { margin: var(--s-2) 0 0; font: 600 var(--fs-title)/1.3 var(--font-ui); }
.stack-partner .caption { color: var(--ink-2); }
.stack-partner .label { margin-top: var(--s-3); }
/* this week's squares on the card (partner.css draws them; here smaller, with no day letters) */
.stack-partner-week { margin-top: var(--s-3); max-width: 15rem; gap: var(--s-1); }
.stack-partner-week .partner-sq-box { max-width: 24px; }
/* a secondary course with no partner: one quiet row and its Hide (lane 014b) */
.stack-ask { display: flex; align-items: center; gap: var(--s-1); margin-top: var(--s-6); border-block: 1px solid var(--hairline); }
.stack-ask-link { flex: 1; min-width: 0; min-height: 56px; }
.stack-ask-link .row-title { color: var(--ink-2); }
.stack-ask-hide { flex: none; min-width: var(--tap); min-height: var(--tap); padding-inline: 0; justify-content: center; color: var(--ink-3); }
.stack-ask-done { margin-top: var(--s-6); color: var(--ink-2); }

@media (min-width: 960px) {
  .stack-grid { grid-template-areas: "a b"; }
  .today-stack .today-b > :first-child { margin-top: 0; }
}
