:root{--surface-900:#182624;--surface-800:#1f302d;--surface-700:#273b37;--surface-000:#000;--ink:#f5f3ec;--ink-muted:#b1c2cf;--ink-faint:#8a9a94;--hairline:#686868;--accent:#b1f963;--on-accent:var(--surface-900);--accent-soft:#b1f96329;--success:#16a679;--info:#258ff8;--warning:#f8742b;--danger:#ff7a8a;--slot-free:var(--surface-800);--slot-busy:#1c2624;--slot-selected:var(--accent);--slot-blocked:#2a2a2a;--overlay:#000000b3;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--radius-sm:3px;--radius-md:8px;--radius-pill:999px;--shadow-focus:0 0 0 3px #b1f963;--shadow-modal:0 24px 48px #00000080;--font-display:"Playfair Display", Georgia, serif;--font-sans:Inter, system-ui, -apple-system, "Segoe UI", sans-serif}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}html,body{overflow-x:clip}body{background:var(--surface-900);color:var(--ink);font:400 16px/24px var(--font-sans);-webkit-font-smoothing:antialiased;min-height:100dvh;margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3{font-family:var(--font-display);color:var(--ink);margin:0;font-weight:500}h1{font-size:32px;line-height:1.15}h2{font-size:24px;line-height:1.2}h3{font:600 20px/28px var(--font-sans)}p{margin:0}.muted{color:var(--ink-muted)}.faint{color:var(--ink-faint)}.caption{font:500 12px/16px var(--font-sans);letter-spacing:.04em}.label{font:500 14px/20px var(--font-sans);color:var(--ink-muted)}.strong{font-weight:600}.num{font-variant-numeric:tabular-nums}.container{width:100%;max-width:1040px;padding:0 var(--space-4);margin:0 auto}.stack{gap:var(--space-4);flex-direction:column;display:flex}.row{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.between{justify-content:space-between}.grid-2{gap:var(--space-4);grid-template-columns:1fr;display:grid}@media (min-width:720px){.grid-2{grid-template-columns:1fr 1fr}.container{padding:0 var(--space-6)}}.card{background:var(--surface-800);border:1px solid var(--hairline);border-radius:var(--radius-md);padding:var(--space-4)}.card--flat{background:0 0}.divider{background:var(--hairline);height:1px;margin:var(--space-4) 0;border:0}.page{padding:var(--space-6) 0 var(--space-12)}.page-head{gap:var(--space-2);margin-bottom:var(--space-6);flex-direction:column;display:flex}.site-header{z-index:20;background:var(--surface-900);border-bottom:1px solid var(--hairline);position:sticky;top:0}.site-header .container{justify-content:space-between;align-items:center;gap:var(--space-3);height:60px;display:flex}.brand{color:var(--ink);font-family:var(--font-display);align-items:center;gap:10px;font-size:22px;display:flex}.brand:hover{text-decoration:none}.brand img{border-radius:3px;width:32px;height:32px}.nav{gap:var(--space-1);align-items:center;display:flex}.nav a{color:var(--ink-muted);border-radius:var(--radius-sm);font:500 14px/20px var(--font-sans);white-space:nowrap;padding:8px 10px}.nav a:hover,.nav a[aria-current=page]{color:var(--ink);background:var(--surface-800);text-decoration:none}.nav a.nav-accent{color:var(--accent)}.nav-toggle{border:1px solid var(--hairline);border-radius:var(--radius-sm);min-height:40px;color:var(--ink);font:500 14px/20px var(--font-sans);cursor:pointer;background:0 0;align-items:center;gap:8px;padding:6px 10px;display:none}.nav-toggle__bars{background:currentColor;border-radius:2px;width:18px;height:2px;transition:background .15s;position:relative}.nav-toggle__bars:before,.nav-toggle__bars:after{content:"";background:currentColor;border-radius:2px;width:18px;height:2px;transition:transform .15s;position:absolute;left:0}.nav-toggle__bars:before{top:-6px}.nav-toggle__bars:after{top:6px}.nav-toggle__bars[data-open=true]{background:0 0}.nav-toggle__bars[data-open=true]:before{transform:translateY(6px)rotate(45deg)}.nav-toggle__bars[data-open=true]:after{transform:translateY(-6px)rotate(-45deg)}.nav-backdrop{display:none}@media (max-width:760px){.nav-toggle{display:inline-flex}.nav{padding:var(--space-2) var(--space-4) var(--space-4);background:var(--surface-900);border-bottom:1px solid var(--hairline);box-shadow:var(--shadow-modal);flex-direction:column;align-items:stretch;gap:0;display:none;position:absolute;top:60px;left:0;right:0}.nav[data-open=true]{display:flex}.nav a{border-bottom:1px solid var(--surface-700);padding:14px 12px;font-size:16px}.nav form{padding-top:var(--space-3)}.nav form .ss-btn{width:100%;min-height:44px!important;font-size:15px!important}.nav-backdrop{background:var(--overlay);z-index:-1;display:block;position:fixed;inset:60px 0 0}.site-header .container{position:relative}}.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid;font-size:14px;line-height:20px}.alert--danger{border-color:var(--danger);color:var(--danger)}.alert--success{border-color:var(--success);color:var(--success)}.alert--info{border-color:var(--info);color:var(--info)}.alert--warning{border-color:var(--warning);color:var(--warning)}.table{border-collapse:collapse;width:100%;font-size:14px;line-height:20px}.table th{text-align:left;color:var(--ink-muted);border-bottom:1px solid var(--hairline);white-space:nowrap;padding:8px 10px;font-weight:500}.table td{border-bottom:1px solid var(--hairline);vertical-align:top;padding:10px}.table tr:hover td{background:var(--surface-700)}.table-wrap{overflow-x:auto}.seg{border:1px solid var(--hairline);border-radius:var(--radius-sm);display:inline-flex;overflow:hidden}.seg a,.seg button{font:500 14px/20px var(--font-sans);color:var(--ink-muted);cursor:pointer;background:0 0;border:0;min-height:44px;padding:10px 14px}.seg a:hover,.seg button:hover{background:var(--surface-800);color:var(--ink);text-decoration:none}.seg a[aria-current=page],.seg button[aria-pressed=true]{background:var(--accent);color:var(--on-accent)}.ss-select{min-height:44px;padding:0 var(--space-4);border-radius:var(--radius-md);border:1px solid var(--hairline);background:var(--surface-700);color:var(--ink);appearance:auto}.ss-select:focus{border-color:var(--accent);box-shadow:var(--shadow-focus);outline:none}textarea.ss-input{min-height:88px;padding:var(--space-3) var(--space-4);resize:vertical}.check{cursor:pointer;align-items:flex-start;gap:10px;display:flex}.check input{width:20px;height:20px;accent-color:var(--accent);margin:2px 0 0}.sched{grid-template-columns:64px repeat(var(--cols),minmax(110px,1fr));gap:2px;font-size:12px;line-height:16px;display:grid}.sched .hd{background:var(--surface-900);color:var(--ink-muted);text-align:center;z-index:1;padding:6px 4px;font-weight:500}.sched .tm{color:var(--ink-faint);font-variant-numeric:tabular-nums;padding:4px}.sched .cell{border:1px solid var(--surface-800);background:var(--surface-900);border-radius:2px;min-height:40px}.sched .cell.booked{background:var(--surface-700);border-color:var(--hairline);color:var(--ink);cursor:pointer;padding:3px 6px;overflow:hidden}.sched .cell.booked.admin{border-left:3px solid var(--info)}.sched .cell.booked.trainer{border-left:3px solid var(--warning)}.sched .cell.closed{background:repeating-linear-gradient(135deg,var(--slot-blocked) 0 6px,var(--hairline) 6px 7px)}.sched .cell.cont{border-top:0;border-top-left-radius:0;border-top-right-radius:0}.sched .cell.free:hover{background:var(--accent-soft);cursor:pointer}.stat{flex-direction:column;gap:4px;display:flex}.stat b{font:600 28px/32px var(--font-sans);font-variant-numeric:tabular-nums}.bar{background:var(--surface-700);border-radius:999px;height:8px;overflow:hidden}.bar i{background:var(--accent);height:100%;display:block}.ss-root{font-family:var(--font-sans);color:var(--ink);background:var(--surface-900);-webkit-font-smoothing:antialiased}.ss-btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:44px;padding:var(--space-3) var(--space-6);border-radius:var(--radius-sm);font:700 16px/24px var(--font-sans);letter-spacing:.02em;text-transform:uppercase;cursor:pointer;border:1px solid #0000;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.ss-btn:focus-visible{box-shadow:var(--shadow-focus);outline:none}.ss-btn--primary{background:var(--accent);color:var(--on-accent)}.ss-btn--primary:hover{background:#c4ff7d}.ss-btn--secondary{color:var(--ink);border-color:var(--ink-muted);background:0 0}.ss-btn--secondary:hover{background:var(--accent-soft);border-color:var(--accent)}.ss-btn--ghost{color:var(--accent);background:0 0}.ss-btn--ghost:hover{background:var(--accent-soft)}.ss-btn--danger{color:var(--danger);border-color:var(--danger);background:0 0}.ss-btn:disabled,.ss-btn[aria-disabled=true]{background:var(--surface-700);color:var(--ink-faint);cursor:not-allowed;border-color:#0000}.ss-btn--block{width:100%;display:flex}.ss-slot{min-height:44px;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--hairline);background:var(--slot-free);color:var(--ink);font:600 15px/20px var(--font-sans);font-variant-numeric:tabular-nums;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex;position:relative}.ss-slot small{font:500 12px/16px var(--font-sans);color:var(--ink-muted);letter-spacing:.02em}.ss-slot:hover{background:var(--accent-soft);border-color:var(--accent)}.ss-slot:focus-visible{box-shadow:var(--shadow-focus);outline:none}.ss-slot--selected,.ss-slot--selected:hover{background:var(--slot-selected);border-color:var(--slot-selected);color:var(--on-accent)}.ss-slot--selected small{color:var(--on-accent)}.ss-slot--busy,.ss-slot--busy:hover{background:var(--slot-busy);color:var(--ink-faint);cursor:not-allowed;border-color:#0000;text-decoration:line-through}.ss-slot--busy small{display:none}.ss-slot--past,.ss-slot--past:hover{color:var(--ink-faint);cursor:default;background:0 0;border-color:#0000}.ss-slot--past small{display:none}.ss-slot--blocked,.ss-slot--blocked:hover{background:repeating-linear-gradient(135deg,var(--slot-blocked) 0 6px,var(--hairline) 6px 7px);color:#0000;cursor:not-allowed;border-color:#0000}.ss-slot--blocked small{display:none}.ss-slot-grid{gap:var(--space-2);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}@media (min-width:720px){.ss-slot-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}@media (max-width:380px){.ss-slot-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.booking-bar{border-color:var(--accent);background:var(--surface-800);box-shadow:var(--shadow-modal);position:sticky;bottom:12px}@media (max-width:600px){.booking-bar{margin:0 calc(-1 * var(--space-4));border-radius:var(--radius-md) var(--radius-md) 0 0;padding:var(--space-3) var(--space-4) calc(var(--space-3) + env(safe-area-inset-bottom));bottom:0}.booking-bar .ss-btn{padding-left:var(--space-3);padding-right:var(--space-3);flex:1;font-size:14px}.court-head{flex-direction:column;align-items:flex-start;gap:2px}}.ss-badge{padding:var(--space-1) 10px;border-radius:var(--radius-pill);font:500 12px/16px var(--font-sans);letter-spacing:.04em;text-transform:uppercase;background:0 0;border:1px solid;align-items:center;gap:6px;display:inline-flex}.ss-badge:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.ss-badge--success{color:var(--success)}.ss-badge--info{color:var(--info)}.ss-badge--warning{color:var(--warning)}.ss-badge--danger{color:var(--danger)}.ss-badge--neutral{color:var(--ink-muted)}.ss-field{gap:var(--space-2);font-family:var(--font-sans);flex-direction:column;display:flex}.ss-field__label{font:500 14px/20px var(--font-sans);color:var(--ink-muted)}.ss-input{min-height:44px;padding:0 var(--space-4);border-radius:var(--radius-md);border:1px solid var(--hairline);background:var(--surface-700);color:var(--ink);font:400 16px/24px var(--font-sans)}.ss-input::placeholder{color:var(--ink-faint)}.ss-input:focus{border-color:var(--accent);box-shadow:var(--shadow-focus);outline:none}.ss-field--error .ss-input{border-color:var(--danger)}.ss-field__hint{font:500 12px/16px var(--font-sans);color:var(--ink-muted)}.ss-field--error .ss-field__hint{color:var(--danger)}.ss-day{min-width:52px;padding:var(--space-2) var(--space-1);border-radius:var(--radius-pill);color:var(--ink);font-family:var(--font-sans);cursor:pointer;background:0 0;border:1px solid #0000;flex-direction:column;align-items:center;gap:2px;display:flex}.ss-day__name{font:500 12px/16px var(--font-sans);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-muted)}.ss-day__num{font:600 20px/28px var(--font-sans);font-variant-numeric:tabular-nums}.ss-day__dot{background:var(--accent);border-radius:50%;width:6px;height:6px}.ss-day__dot--none{background:0 0}.ss-day:hover{background:var(--surface-800)}.ss-day:focus-visible{box-shadow:var(--shadow-focus);outline:none}.ss-day--today{border-color:var(--accent)}.ss-day--selected,.ss-day--selected:hover{background:var(--accent);color:var(--on-accent)}.ss-day--selected .ss-day__name{color:var(--on-accent)}.ss-day--selected .ss-day__dot{background:var(--on-accent)}.ss-day--past{color:var(--ink-faint);cursor:default}.ss-day--past .ss-day__dot{display:none}.ss-day-strip{gap:var(--space-1);scroll-snap-type:x proximity;scrollbar-width:none;padding-bottom:2px;display:flex;overflow-x:auto}.ss-day-strip::-webkit-scrollbar{display:none}.ss-day{scroll-snap-align:start;flex:none}.week-grid{gap:var(--space-2);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.week-col{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.class-card{flex-direction:column;gap:6px;height:238px;padding:12px;display:flex;overflow:hidden}.class-card .clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.class-card .clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.class-card .class-foot{flex-direction:column;gap:6px;margin-top:auto;display:flex}@media (max-width:860px){.class-card{height:auto}}.week-head{border-bottom:1px solid var(--hairline);color:var(--ink-muted);flex-direction:column;align-items:center;gap:2px;padding:6px 0;display:flex}.week-head b{color:inherit;font-size:20px;line-height:24px}@media (max-width:860px){.week-grid{grid-template-columns:1fr}.week-col{flex-direction:column}.week-head{border-bottom:0;flex-direction:row;justify-content:flex-start;gap:10px;padding-top:12px}.week-head .caption{text-transform:capitalize;font-size:14px}}
