:root{--blue:#233a8b;--blue-dark:#182a68;--blue-tint:#e4e9fa;--gold:#f4c20d;--ink:#1b1e28;--muted:#5d6475;--faint:#8a90a0;--line:#dfe2ea;--line-strong:#bfc4d2;--page:#f4f5f9;--card:#fff;--soft:#eef0f5;--amber-tint:#fdf3d7;--amber-ink:#6f4e00;--amber-line:#d3a200;--green-tint:#e2f4e6;--green-ink:#1b6431;--red-tint:#fbe7e5;--red-ink:#a0271b;--radius:10px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{background:var(--page);color:var(--ink);-webkit-text-size-adjust:100%;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.4}h1,h2,h3,p{margin:0}h1{font-size:22px;font-weight:650}h2{font-size:18px;font-weight:650}h3{font-size:15px;font-weight:650}a{color:var(--blue)}button,input,select,textarea{font:inherit;color:inherit}input,select,textarea{background:var(--card);border:1px solid var(--line-strong);border-radius:8px;width:100%;min-height:44px;padding:9px 11px}input[type=checkbox]{width:20px;height:20px;min-height:0;accent-color:var(--blue);flex:none;margin:1px 0 0}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--blue);outline-offset:2px}label,.label{margin-bottom:4px;font-size:14px;font-weight:600;display:block}.button{background:var(--card);border:1px solid var(--line-strong);cursor:pointer;min-height:44px;color:var(--ink);border-radius:8px;justify-content:center;align-items:center;padding:9px 16px;font-weight:600;text-decoration:none;display:inline-flex}.button:hover{background:var(--soft)}.button:disabled{cursor:default;color:var(--faint);background:var(--soft)}.button.primary{background:var(--blue);border-color:var(--blue);color:#fff}.button.primary:hover{background:var(--blue-dark)}.button.primary:disabled{background:var(--line-strong);border-color:var(--line-strong)}.button.danger{color:var(--red-ink);border-color:var(--red-ink)}.button.danger-armed{background:var(--red-ink);border-color:var(--red-ink);color:#fff}.button.small{min-height:36px;padding:5px 12px;font-size:14px}.button.wide{width:100%}.link-button{color:var(--blue);cursor:pointer;background:0 0;border:0;padding:0;font-weight:600;text-decoration:underline}.app{min-height:100vh;padding-bottom:calc(72px + env(safe-area-inset-bottom))}.topbar{z-index:10;background:var(--blue);color:#fff;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex;position:sticky;top:0}.brand{white-space:nowrap;font-weight:700}.brand span{color:var(--gold)}.topbar .who{align-items:center;gap:12px;min-width:0;font-size:14px;display:flex}.topbar .who .name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.topbar .link-button{color:#fff;white-space:nowrap}.tabs{z-index:10;padding-bottom:env(safe-area-inset-bottom);background:var(--card);border-top:1px solid var(--line);display:flex;position:fixed;bottom:0;left:0;right:0}.tabs a{text-align:center;color:var(--muted);flex:1;padding:16px 2px;font-size:13px;font-weight:600;text-decoration:none;position:relative}.tabs a.active{color:var(--blue);box-shadow:inset 0 3px 0 var(--blue)}.badge{background:var(--gold);min-width:18px;color:var(--ink);border-radius:9px;margin-left:3px;padding:0 5px;font-size:12px;line-height:18px;display:inline-block}.page{width:100%;max-width:720px;margin:0 auto;padding:16px}.page.wide{max-width:1760px}.columns{flex-direction:column;gap:24px;margin-top:16px;display:flex}.column{flex-direction:column;gap:24px;min-width:0;display:flex}.column.tight{gap:16px}.card-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:8px;display:grid}.stack{flex-direction:column;gap:12px;display:flex}.row-between{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.inline{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.section{margin-top:24px}.section>h2,.section>.row-between{margin-bottom:10px}.muted{color:var(--muted)}.small{font-size:14px}.tiny{font-size:13px}.note{background:var(--soft);border-radius:8px;padding:10px 12px;font-size:14px}.note.warn{background:var(--amber-tint);color:var(--amber-ink)}.error{background:var(--red-tint);color:var(--red-ink);border-radius:8px;padding:10px 12px;font-size:14px}.empty{text-align:center;color:var(--muted);padding:24px 16px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius)}.card.pad{padding:14px}.pill{white-space:nowrap;border-radius:6px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.pill.confirmed,.pill.approved{background:var(--green-tint);color:var(--green-ink)}.pill.open,.pill.neutral{background:var(--soft);color:var(--muted)}.pill.closed{color:var(--faint);padding-right:0}.pill.cancelled,.pill.denied{background:var(--red-tint);color:var(--red-ink)}.pill.pending{background:var(--amber-tint);color:var(--amber-ink)}.week-nav{justify-content:space-between;align-items:center;gap:8px;display:flex}.week-nav h1{text-align:center;font-size:18px}.nav-arrow{width:44px;padding:0;font-size:20px}.days{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin:12px 0;display:grid}.day-chip{background:var(--card);border:1px solid var(--line);cursor:pointer;border-radius:8px;flex-direction:column;align-items:center;gap:1px;padding:6px 0;font-size:13px;display:flex}.day-chip strong{font-size:16px}.day-chip.selected{background:var(--blue);border-color:var(--blue);color:#fff}.day-chip .dot{background:0 0;border-radius:50%;width:6px;height:6px}.day-chip.has-open .dot{background:var(--line-strong)}.day-chip.has-lessons .dot{background:var(--gold)}.segmented{background:var(--soft);border-radius:8px;padding:2px;display:inline-flex}.segmented button{min-height:36px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:4px 12px;font-size:14px;font-weight:600}.segmented button[aria-pressed=true]{background:var(--card);color:var(--blue);box-shadow:0 0 0 1px var(--line-strong)}.stack>.segmented{align-self:flex-start}.stack>.segmented.full{align-self:stretch}.segmented.full{display:flex}.segmented.full button{flex:1;min-height:42px}.session{background:var(--card);border:1px solid var(--line-strong);border-radius:var(--radius);text-align:left;cursor:pointer;width:100%;padding:12px;display:block}.session:hover{border-color:var(--blue)}.session.confirmed{border-left:4px solid var(--green-ink)}.session.open{border-left:4px solid var(--blue)}.session-head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.session-time{font-weight:650}.session-title{color:var(--muted);font-size:14px}.session-cta{color:var(--blue);margin-top:8px;font-size:14px;font-weight:600}.other{width:100%;color:var(--muted);text-align:left;background:0 0;border:0;align-items:baseline;gap:8px;padding:5px 2px;font-size:13px;line-height:1.3;display:flex}button.other{cursor:pointer}.other .place-dot{border-radius:50%;flex:none;width:8px;height:8px;transform:translateY(-1px)}.other .time{font-variant-numeric:tabular-nums;flex:none;min-width:112px}.other .what{flex:1;min-width:0}.other.cancelled .what,.other.cancelled .time{text-decoration:line-through}.day-list{flex-direction:column;gap:6px;display:flex}.timeline{flex-direction:column;gap:3px;margin-top:10px;display:flex}.timeline-row{height:38px;position:relative}.segment{text-align:center;border-radius:5px;justify-content:center;align-items:center;padding:0 2px;font-size:12px;line-height:1.15;display:flex;position:absolute;top:0;bottom:0;overflow:hidden}.segment-label{min-width:0}.segment-label>span{white-space:nowrap;display:block;overflow:hidden}.unit-short{display:none}.segment.free{border:1px dashed var(--line-strong);color:var(--faint)}.segment.mine{background:var(--blue-tint);color:var(--blue-dark);font-weight:600}.segment.other-coach{background:var(--soft);border:1px solid var(--line);color:var(--muted)}.segment.waiting{background:var(--amber-tint);border:1px dashed var(--amber-line);color:var(--amber-ink)}.week-grid{grid-template-columns:repeat(7,minmax(0,1fr));align-items:start;gap:8px;margin-top:12px;display:grid}.week-column-head{z-index:5;background:var(--page);border-bottom:2px solid var(--line-strong);text-align:center;padding:8px 4px;font-size:14px;font-weight:650;position:sticky;top:52px}.week-column-head.today{color:var(--blue);border-bottom-color:var(--blue)}.week-column .day-list{margin-top:6px}.week-column .session{padding:8px}.week-column .session-head{display:block}.week-column .session-time{font-size:13px}.week-column .session-title{font-size:12px}.week-column .pill{white-space:normal;margin-top:4px}.week-column .timeline-row{height:34px}.week-column .segment{padding:0 1px;font-size:11px;line-height:1.1}.week-column .unit-long{display:none}.week-column .unit-short{display:inline}.week-column .other{flex-wrap:wrap;gap:0 6px;padding:4px 2px;font-size:12px}.week-column .other .time{min-width:0}.week-column .other .what{flex-basis:100%}.legend{flex-wrap:wrap;gap:4px;display:flex}.legend span{border-radius:5px;padding:1px 7px;font-size:12px}.legend .mine{background:var(--blue-tint);color:var(--blue-dark)}.legend .other-coach{background:var(--soft);color:var(--muted)}.legend .waiting{background:var(--amber-tint);color:var(--amber-ink)}.legend .free{border:1px dashed var(--line-strong);color:var(--muted)}.sheet{background:var(--card);width:100%;max-width:100%;max-height:92dvh;color:var(--ink);overscroll-behavior:contain;border:0;border-radius:16px 16px 0 0;margin:auto 0 0;padding:0;overflow:auto}.sheet::backdrop{background:#0f142873}.sheet-body{padding:16px 16px calc(20px + env(safe-area-inset-bottom))}.sheet-head{z-index:1;background:var(--card);border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:8px;margin:-16px -16px 12px;padding:14px 16px 10px;display:flex;position:sticky;top:0}.sheet-close{background:var(--soft);cursor:pointer;border:0;border-radius:50%;flex:none;width:36px;height:36px;padding:0;font-size:18px}.lesson-row{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:12px}.lesson-row .actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.lesson-title{font-weight:650}.bar-row{grid-template-columns:minmax(84px,34%) 1fr 64px;align-items:center;gap:8px;padding:4px 0;font-size:14px;display:grid}.bar-track{background:var(--soft);border-radius:4px;height:8px;overflow:hidden}.bar-fill{background:var(--blue);height:100%}.bar-value{text-align:right;font-variant-numeric:tabular-nums;color:var(--muted)}.day-plan{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 0;display:flex}.day-plan:first-child{border-top:0}.billing-line{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:4px 10px;padding:10px 12px;display:flex}.billing-line:first-of-type{border-top:0}.billing-line .who{flex:1;min-width:170px}.billing-line.waived .who strong,.billing-line.waived .amount{color:var(--faint);text-decoration:line-through}.check{align-items:center;gap:6px;margin:0;font-size:14px;font-weight:500;display:flex}.check.top{align-items:flex-start}.login{background:var(--blue);justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex}.login .card{width:100%;max-width:380px;padding:24px}.code-input{letter-spacing:6px;text-align:center;font-size:24px}.toast{right:16px;bottom:calc(76px + env(safe-area-inset-bottom));z-index:40;background:var(--ink);color:#fff;border-radius:8px;max-width:480px;margin:0 auto;padding:12px 14px;font-size:14px;position:fixed;left:16px}details.help{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);margin-top:24px;padding:12px 14px;font-size:14px}details.help summary{cursor:pointer;font-weight:600}details.help ul{margin:8px 0 0;padding-left:18px}details.help li{margin-bottom:6px}@media (width>=720px){.app{padding-bottom:24px}.topbar{gap:20px;min-height:56px;padding:0 20px}.tabs{background:0 0;border:0;flex:1;gap:2px;min-width:0;padding:0;position:static}.tabs a{color:#d5dcf5;flex:none;padding:18px 12px;font-size:14px}.tabs a:hover{color:#fff}.tabs a.active{color:#fff;box-shadow:inset 0 -3px 0 var(--gold)}.topbar .who .name{display:none}.week-nav{justify-content:center;gap:16px}.stack>.segmented.full{align-self:flex-start}.segmented.full button{flex:none;min-height:36px}.week-column-head{top:56px}.sheet{border-radius:14px;max-width:540px;max-height:88dvh;margin:auto}.toast{bottom:24px}}@media (width>=900px){.topbar .who .name{display:inline}}@media (width>=1000px){.page{padding:24px}.page.roomy{max-width:1240px}.columns{grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start;display:grid}.columns.even{grid-template-columns:repeat(2,minmax(0,1fr))}.side-panel{position:sticky;top:72px}}
