:root{color:#10201d;background:#f7faf9;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;overflow-x:hidden}button{border:1px solid #cbd5d1;background:#fff;color:#10201d;border-radius:8px;min-height:40px;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:650;touch-action:manipulation}.shell{width:min(980px,100%);margin:0 auto;padding:20px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 0 18px}.topActions{display:flex;align-items:center;gap:8px}.eyebrow{color:#0f766e;font-size:14px;font-weight:800}h1,h2{margin:0;letter-spacing:0}h1{font-size:32px}h2{font-size:20px}.primary{background:#0f766e;border-color:#0f766e;color:#fff}.tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:14px}.tabs button{white-space:nowrap}.tabs button[aria-pressed=true]{border-color:#0f766e;color:#0f766e;background:#ecfdf5}.toast{position:sticky;top:8px;z-index:20;margin:0 0 14px;color:#10201d;border:2px solid #0f766e;padding:12px 14px;background:#ecfdf5;border-radius:8px;box-shadow:0 12px 28px #0f172a24;font-weight:750}.toast.success{border-color:#16a34a;background:#dcfce7}.toast.error{border-color:#dc2626;background:#fee2e2;color:#7f1d1d}.panel{background:#fff;border:1px solid #dbe5e1;border-radius:8px;padding:16px}.choiceGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}.choiceCard{display:grid;gap:10px;min-height:150px;border:1px solid #cbd5d1;border-radius:8px;padding:12px;background:#fff}.gameChoice{display:grid;justify-items:start;align-content:start;gap:8px;min-height:80px;padding:0;border:0;background:transparent;text-align:left}.gameChoice span{font-size:20px}.gameChoice small{color:#64748b;font-size:14px}.choiceCard.singleChoice[aria-pressed=true]{border-color:#0f766e;background:#ecfdf5;color:#0f766e}.choiceCard.doubleChoice[aria-pressed=true]{border-color:#f97316;background:#ffedd5;color:#9a3412;box-shadow:inset 0 0 0 1px #f97316}.durationPills{display:flex;flex-wrap:wrap;gap:8px}.durationPill{min-height:36px;padding:0 12px}.singleChoice .durationPill[aria-pressed=true]{border-color:#0f766e;background:#0f766e;color:#fff}.doubleChoice .durationPill[aria-pressed=true]{border-color:#f97316;background:#f97316;color:#fff}.dayStrip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin:16px 0 12px}.dayStrip button{display:grid;gap:3px;min-height:76px;padding:8px;justify-items:center;text-align:center}.dayStrip strong{text-transform:capitalize}.dayStrip span{font-size:15px}.dayStrip small{color:#64748b;font-size:11px}.dayStrip .available{border-color:#16a34a;background:#f0fdf4}.dayStrip .locked{border-color:#cbd5e1;background:#f8fafc;color:#64748b}.dayStrip button[aria-pressed=true]{border-color:#0f766e;box-shadow:inset 0 0 0 1px #0f766e}.formGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}label{display:grid;gap:8px;color:#475569;font-weight:650}select,input{width:100%;min-height:42px;border:1px solid #cbd5d1;border-radius:8px;padding:0 12px;background:#fff;color:#10201d;font:inherit}.phoneInput{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;min-height:42px;border:1px solid #cbd5d1;border-radius:8px;background:#fff;overflow:hidden}.phoneInput span{display:inline-flex;align-items:center;align-self:stretch;padding:0 12px;border-right:1px solid #cbd5d1;background:#f8fafc;color:#334155;font-weight:800}.phoneInput input{min-height:40px;border:0;border-radius:0}.authPanel{margin-bottom:14px}.profileLine{display:block;margin-top:6px;color:#475569;font-weight:650}.wide{width:100%}.legend{display:flex;flex-wrap:wrap;gap:10px 16px;margin:12px 0;color:#475569;font-size:14px}.legend span{display:inline-flex;align-items:center;gap:6px}.dot{width:10px;height:10px;border-radius:999px;display:inline-block}.dot.free{background:#16a34a}.dot.busy{background:#dc2626}.dot.mine{background:#2563eb}.dot.pair{background:#f97316}.dot.trainer{background:#7c3aed}.slotGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(116px,1fr));gap:8px;margin:12px 0 16px}.slotButton{min-height:58px;display:grid;justify-items:start;align-content:center;gap:4px;border-width:2px}.slotButton span{font-size:12px}.slotButton.free{background:#dcfce7;border-color:#16a34a}.slotButton.free.doubleMode{border-color:#f97316;box-shadow:inset 0 0 0 1px #f97316}.slotButton.selected{background:#dbeafe;border-color:#2563eb;color:#1d4ed8}.slotButton.selected.doubleSelection{background:#ffedd5;border-color:#f97316;color:#9a3412}.slotButton.selected.singleSelection{background:#dbeafe;border-color:#2563eb;color:#1d4ed8}.slotButton.busy,.slotButton.admin{background:#fee2e2;border-color:#dc2626;color:#991b1b}.slotButton.mine{background:#dbeafe;border-color:#2563eb;color:#1d4ed8}.slotButton.pair{background:#ffedd5;border-color:#f97316;color:#9a3412}.slotButton.trainer{background:#ede9fe;border-color:#7c3aed;color:#5b21b6}.slotButton.past{background:#f1f5f9;border-color:#cbd5e1;color:#64748b}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-top:14px}.dateGroups{display:grid;gap:18px;margin-top:14px}.scheduleColumns{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:14px;border:1px solid #dbe5e1;border-radius:8px;overflow:hidden}.scheduleDay{display:grid;align-content:start;gap:10px;min-width:0;padding:12px;border-left:1px solid #dbe5e1}.scheduleDay:first-child{border-left:0}.scheduleDay h3{margin:-12px -12px 2px;padding:10px 12px;border-bottom:1px solid #dbe5e1;background:#f8fafc;color:#334155;font-size:15px;text-transform:capitalize}.scheduleDayList,.dateGroup{display:grid;gap:10px}.dateGroup h3{margin:0;padding-bottom:8px;border-bottom:1px solid #dbe5e1;color:#334155;font-size:16px;text-transform:capitalize}.slot,.row{border:1px solid #dbe5e1;border-radius:8px;padding:12px}.slot{display:grid;gap:8px}.slot small{color:#475569;font-weight:650}.slot.single{border-left:6px solid #2563eb}.slot.double{border-left:6px solid #f97316}.slot.trainer_block{border-left:6px solid #7c3aed}.slot.admin_block{border-left:6px solid #dc2626}.row,.sectionHead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}.bookingRow{border-left:6px solid #2563eb}.mineColumns .scheduleDay{min-height:180px}.mineCard{display:grid;gap:10px;align-items:start;border:1px solid #dbe5e1;border-radius:8px;padding:12px}.bookingRow.double{border-color:#f97316;background:#fff7ed}.bookingRow.single{border-left-color:#2563eb}.bookingRow.trainer_block{border-left-color:#7c3aed;background:#f3e8ff}.bookingRow>span{display:grid;gap:4px}.bookingRow small{display:flex;align-items:center;flex-wrap:wrap;gap:8px;color:#475569;font-weight:650}.badge{display:inline-flex;align-items:center;min-height:22px;padding:0 8px;border-radius:999px;font-style:normal;font-size:12px;font-weight:800}.pairBadge{border:1px solid #f97316;background:#ffedd5;color:#9a3412}.adminGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin-top:14px}.adminGrid button[aria-pressed=true]{border-color:#0f766e;background:#ecfdf5;color:#0f766e}.roleHelp{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.roleHelp span{border:1px solid #dbe5e1;border-radius:8px;padding:10px;color:#475569;font-size:14px}.adminBlockForm{display:grid;gap:10px;margin-top:16px;padding:12px;border:1px solid #dbe5e1;border-radius:8px;background:#f8fafc}.adminBlockForm h3{margin:0;font-size:16px}.recurrenceBox{display:grid;gap:10px;margin-top:10px}.weekdayGrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.weekdayGrid button[aria-pressed=true]{border-color:#7c3aed;background:#ede9fe;color:#5b21b6}.trainerNotice{margin-top:10px}.adminLists{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}.adminLists.single{grid-template-columns:1fr}.adminLists section{display:grid;align-content:start;gap:8px}.adminLists h3{margin:0;font-size:16px}.adminFilters{display:grid;grid-template-columns:repeat(2,minmax(0,220px));gap:10px}.adminItem{display:grid;gap:4px;border:1px solid #dbe5e1;border-radius:8px;padding:10px}.adminItem.trainerUser{border-color:#f97316;box-shadow:inset 4px 0 #f97316}.adminItem span{color:#475569;font-size:14px}.quickActions{display:flex;flex-wrap:wrap;gap:8px}.quickActions button{min-height:38px;padding:8px 12px;font-size:14px}.roleButtons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.roleButtons button{min-height:40px;font-size:15px}.roleButtons button[aria-pressed=true]{border-color:#0f766e;background:#0f766e;color:#fff}.adminUserControls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.adminUserControls select,.adminUserControls button{min-height:40px;font-size:16px}.adminCodeIssue{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}.adminCodeIssue label{display:grid;gap:4px;font-size:13px;font-weight:700;color:#475569}.adminCodeIssue input,.adminCodeIssue button{min-height:40px;font-size:16px}.issuedCode{display:inline-flex;width:fit-content;border:1px solid #0f766e;border-radius:999px;padding:4px 10px;background:#ecfdf5;color:#0f766e!important;font-weight:800}.ratingSummary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}.ratingSummary article{display:grid;gap:4px;border:1px solid #dbe5e1;border-radius:8px;padding:12px;background:#f8fafc}.ratingSummary strong{color:#0f766e;font-size:20px}.ratingSummary span,.ratingRules p{color:#475569}.ratingTable{display:grid;margin-top:14px;border:1px solid #dbe5e1;border-radius:8px;overflow:hidden}.ratingRow{display:grid;grid-template-columns:64px minmax(130px,1fr) 90px 70px 80px;gap:8px;align-items:center;padding:10px 12px;border-top:1px solid #dbe5e1}.ratingRow:first-child{border-top:0}.ratingRow.heading{background:#f8fafc;color:#475569;font-size:13px;font-weight:800}.ratingRow.empty{color:#64748b}.bottomAdmin{display:flex;justify-content:flex-end;gap:8px;margin-top:18px;padding-bottom:6px}.bottomAdmin button{color:#475569}.bottomAdmin button[aria-pressed=true]{border-color:#0f766e;color:#0f766e;background:#ecfdf5}.helpText{display:grid;gap:10px;margin-top:14px;max-width:820px}.helpText h3{margin:12px 0 0;font-size:18px}.helpText p{margin:0;color:#475569;line-height:1.5}.muted{color:#64748b}@media(max-width:640px){.shell{padding:10px 10px 92px}.topbar{align-items:stretch;flex-direction:column;gap:10px}.topActions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.topActions .primary:only-child{grid-column:1 / -1}h1{font-size:24px;line-height:1.1}.tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.tabs button{min-width:0;width:100%;min-height:48px;padding:0 10px;white-space:normal}.choiceGrid,.formGrid,.ratingSummary,.adminFilters,.adminLists{grid-template-columns:1fr}.roleButtons{grid-template-columns:repeat(2,minmax(0,1fr))}.adminCodeIssue{grid-template-columns:1fr}.weekdayGrid{grid-template-columns:repeat(4,minmax(0,1fr))}.choiceCard{min-height:0;padding:10px}.gameChoice{min-height:58px;gap:6px}.gameChoice span{font-size:18px}.durationPill{flex:1 1 82px}.dayStrip{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(88px,1fr);grid-template-columns:none;overflow-x:auto;padding-bottom:4px;scroll-snap-type:x proximity}.dayStrip button{min-height:70px;scroll-snap-align:start}.slotGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.slotButton{min-height:54px;padding:8px;justify-items:center;text-align:center}.slotButton strong{font-size:14px}.slotButton span{font-size:12px}.legend{gap:8px 12px;font-size:13px}.row{align-items:stretch;flex-direction:column}.ratingRow{grid-template-columns:44px minmax(120px,1fr) 74px}.ratingRow span:nth-child(4),.ratingRow span:nth-child(5){display:none}.bottomAdmin{justify-content:stretch}.bottomAdmin button{width:100%}.scheduleColumns{grid-template-columns:1fr}.scheduleDay h3{position:sticky;top:0;z-index:1}.roleHelp{grid-template-columns:1fr}.scheduleDay{border-left:0;border-top:1px solid #dbe5e1}.scheduleDay:first-child{border-top:0}.toast{position:fixed;inset:auto 10px 12px;margin:0;max-height:38vh;overflow-y:auto}}@media(max-width:380px){.shell{padding:8px 8px 96px}.panel{padding:12px}.tabs button{font-size:14px;gap:6px}.slotGrid{gap:6px}.slotButton strong{font-size:13px}.quickActions{display:grid;grid-template-columns:1fr}}
