/* Components added on top of styles.css: three-way tabs, platforms, planner, heatmap, settings sheet. */
:root {
  --purple: #bf5af2;
  --grouped: #2c2c2e;
}

.masthead-actions { display: flex; gap: 10px; }

/* Three-segment control (overrides the two-segment layout) */
.segmented { grid-template-columns: repeat(3, 1fr); }
.segmented-thumb { width: calc((100% - 4px) / 3); }
.segmented[data-selected="1"] .segmented-thumb { transform: translateX(100%); }
.segmented[data-selected="2"] .segmented-thumb { transform: translateX(200%); }

/* "Go now or wait" verdict */
.verdict { display: flex; flex-direction: column; gap: 2px; margin-top: 14px; padding: 10px 12px; border-radius: 12px; background: var(--fill); }
.verdict strong { font-size: 17px; font-weight: 600; }
.verdict span { font-size: 15px; color: var(--label-2); }
.verdict.go strong { color: var(--green); }
.verdict.wait strong { color: var(--orange); }
.verdict.closed strong { color: var(--label-2); }

/* Lifting platforms (ALPHA classes) */
.rows li.class-row { grid-template-columns: auto 1fr; }
.class-detail { display: flex; flex-direction: column; align-items: flex-end; text-align: right; padding: 6px 0; }
.class-name { font-size: 15px; }
.class-room { font-size: 13px; color: var(--label-2); }
.class-row.is-past { opacity: 0.4; }
#platforms-status { color: var(--purple); }

/* Workout planner */
.planner-controls { display: flex; align-items: center; gap: 12px; margin: 12px 0; }
.field { display: flex; align-items: center; gap: 8px; font-size: 15px; color: var(--label-2); }
.field select, .toggle-row select {
  appearance: none; -webkit-appearance: none; border: 0; border-radius: 8px;
  padding: 6px 12px; font: inherit; font-size: 15px; color: var(--blue); background: var(--fill);
}
.segmented.small { flex: 1; margin: 0; height: 32px; }
.segmented.small button { border-radius: 7px; }
.segmented.small button[aria-checked="true"] { background: #636366; font-weight: 600; }
.planner-result { padding-top: 12px; border-top: 0.5px solid var(--separator); }
.planner-headline { font-size: 17px; font-weight: 600; }
.planner-detail, .planner-empty { margin: 4px 0 0; font-size: 15px; color: var(--label-2); }
.planner-warning { margin: 8px 0 0; font-size: 15px; color: var(--purple); }

/* ALPHA strip on the hourly chart */
.class-band { position: absolute; bottom: -6px; height: 3px; border-radius: 2px; background: var(--purple); }

/* Week heatmap */
.heatmap { display: grid; gap: 3px; margin-top: 12px; }
.heat-row { display: grid; grid-template-columns: 44px repeat(var(--columns), 1fr); gap: 2px; align-items: center; }
.heat-day { font-size: 13px; color: var(--label-2); }
.heat-tick { font-size: 10px; color: var(--label-3); white-space: nowrap; overflow: visible; }
.heat-cell { position: relative; height: 22px; border-radius: 3px; padding: 0; }
.heat-cell:active { opacity: 1; }
.heat-cell.closed { background: rgba(120, 120, 128, 0.12); }
.heat-cell.selected { outline: 2px solid var(--label); outline-offset: 1px; z-index: 1; }
.heat-alpha { position: absolute; right: 2px; top: 2px; width: 5px; height: 5px; border-radius: 50%; background: var(--purple); box-shadow: 0 0 0 1px var(--card); }
.heatmap-legend { display: flex; align-items: center; gap: 6px; margin-top: 8px; font-size: 12px; color: var(--label-3); }
.legend-alpha { width: 6px; height: 6px; border-radius: 50%; background: var(--purple); }

/* Settings sheet */
.sheet {
  width: 100%; max-width: 520px; max-height: 92vh; margin: auto auto 0; padding: 0;
  border: 0; border-radius: 14px 14px 0 0; color: var(--label); background: var(--card);
}
.sheet::backdrop { background: rgba(0, 0, 0, 0.5); }
.sheet[open] { animation: sheet-in 0.35s var(--ease); }
.sheet-head {
  position: sticky; top: 0; display: flex; justify-content: center; align-items: center;
  padding: 14px 16px; background: var(--card); border-bottom: 0.5px solid var(--separator);
}
.sheet-head h3 { margin: 0; font-size: 17px; font-weight: 600; }
.text-btn { position: absolute; right: 16px; font-size: 17px; font-weight: 600; color: var(--blue); }
.sheet-body { padding: 8px 16px calc(env(safe-area-inset-bottom) + 24px); }
.sheet-body h2 { margin: 20px 16px 6px; }
.group { border-radius: 10px; background: var(--grouped); overflow: hidden; }
.group > * { margin: 0; padding: 11px 16px; border-bottom: 0.5px solid var(--separator); }
.group > *:last-child { border-bottom: 0; }
.group-note { font-size: 13px; line-height: 18px; color: var(--label-2); }
.group-note:empty { display: none; }
.group-btn { display: block; width: 100%; text-align: left; font-size: 17px; color: var(--blue); }
.group-btn.danger { color: var(--red); }
.group-btn:disabled { color: var(--label-3); }
.toggle-row, .info-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; font-size: 17px; }
.info-value { color: var(--label-2); text-align: right; }

/* iOS-style switch */
.toggle-row input[type="checkbox"] {
  appearance: none; -webkit-appearance: none; position: relative; flex: none;
  width: 51px; height: 31px; margin: 0; border-radius: 16px; background: var(--fill); transition: background 0.2s;
}
.toggle-row input[type="checkbox"]::after {
  content: ""; position: absolute; top: 2px; left: 2px; width: 27px; height: 27px; border-radius: 50%;
  background: #fff; box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15); transition: transform 0.25s var(--ease);
}
.toggle-row input[type="checkbox"]:checked { background: var(--green); }
.toggle-row input[type="checkbox"]:checked::after { transform: translateX(20px); }

@keyframes sheet-in { from { transform: translateY(100%); } to { transform: translateY(0); } }
