:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b0f0d;--bg-elevated:#121815;--card:#161f1b;--card-border:#223129;--text:#eef3f0;--text-secondary:#8fa39a;--text-muted:#5f7269;--accent:#34d058;--accent-strong:#22c55e;--accent-bg:#34d05824;--danger:#f87171;--danger-bg:#f8717124;--shadow:0 12px 24px #00000059;--radius-lg:20px;--radius-md:14px;--radius-sm:10px;--nav-height:64px;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);min-height:100dvh;margin:0;padding:0}#root{background:var(--bg);justify-content:center;min-height:100dvh;display:flex}button,input{color:inherit;font-family:inherit}.app-shell{background:var(--bg);flex-direction:column;width:100%;max-width:430px;min-height:100dvh;display:flex;position:relative}.app-content{padding:20px 16px calc(var(--nav-height) + 24px);flex:auto;overflow-y:auto}.screen{flex-direction:column;gap:12px;display:flex}.screen__title{margin:4px 0;font-size:22px;font-weight:700}.section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);margin:12px 0 4px;font-size:13px;font-weight:600}.home-screen__greeting h1{margin:0 0 4px;font-size:24px}.home-screen__greeting p{color:var(--text-secondary);margin:0;font-size:14px}.date-selector{gap:8px;margin-top:8px;display:flex}.date-chip{border-radius:var(--radius-md);background:var(--card);border:1px solid var(--card-border);color:var(--text);cursor:pointer;text-align:center;flex:1;justify-content:center;align-items:center;padding:10px 8px;font-size:14px;font-weight:600;display:flex;position:relative}.date-chip.is-active{background:var(--accent-bg);border-color:var(--accent);color:var(--accent)}.date-chip--calendar{overflow:hidden}.date-chip__input{opacity:0;cursor:pointer;position:absolute;inset:0}.state-notice{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-md);align-items:center;gap:10px;padding:12px 14px;display:flex}.state-notice--error{background:var(--danger-bg);border-color:#f8717166}.state-notice__icon{flex-shrink:0;font-size:18px;line-height:1}.state-notice__text{flex:1;min-width:0}.state-notice__title{font-size:14px;font-weight:700}.state-notice--error .state-notice__title{color:var(--danger)}.state-notice__description{color:var(--text-secondary);overflow-wrap:break-word;margin-top:2px;font-size:12px}.court-list{flex-direction:column;gap:10px;display:flex}.court-card{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-lg);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.court-card.is-free{border-color:#34d05859}.court-card__name{font-size:16px;font-weight:700}.court-card__time{color:var(--text-secondary);margin-top:2px;font-size:13px}.court-card__status-row{flex-direction:column;align-items:flex-end;gap:8px;display:flex}.status-badge{white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700}.status-badge--free{background:var(--accent-bg);color:var(--accent)}.status-badge--booked{background:var(--danger-bg);color:var(--danger)}.btn{border-radius:var(--radius-md);cursor:pointer;border:none;padding:12px 18px;font-size:15px;font-weight:700;transition:transform .15s,opacity .15s}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn--primary{background:var(--accent-strong);color:#06210f}.btn--ghost{color:var(--text-secondary);border:1px solid var(--card-border);background:0 0}.btn--small{padding:8px 14px;font-size:13px}.btn--full{width:100%;margin-top:8px}.modal-overlay{z-index:100;background:#0009;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal-sheet{background:var(--bg-elevated);width:100%;max-width:430px;padding:12px 20px calc(24px + env(safe-area-inset-bottom));box-shadow:var(--shadow);border-radius:24px 24px 0 0;flex-direction:column;gap:10px;animation:.2s slide-up;display:flex}@keyframes slide-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.modal-sheet__handle{background:var(--card-border);border-radius:999px;width:40px;height:4px;margin:0 auto 4px}.modal-sheet__title{margin:0;font-size:19px;font-weight:700}.modal-sheet__subtitle{color:var(--text-secondary);margin:0;font-size:14px}.modal-sheet__label{color:var(--text-secondary);margin:8px 0 2px;font-size:13px}.modal-sheet__actions{gap:10px;margin-top:12px;display:flex}.modal-sheet__actions .btn{flex:1}.time-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.time-slot{border-radius:var(--radius-sm);background:var(--card);border:1px solid var(--card-border);cursor:pointer;padding:10px 0;font-weight:600}.time-slot.is-selected{background:var(--accent-bg);border-color:var(--accent);color:var(--accent)}.time-slot.is-disabled{opacity:.35;cursor:not-allowed;text-decoration:line-through}.confirm-summary{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-md);flex-direction:column;gap:8px;padding:12px 16px;display:flex}.confirm-summary__row{color:var(--text-secondary);justify-content:space-between;font-size:14px;display:flex}.confirm-summary__row strong{color:var(--text)}.success-step{text-align:center;flex-direction:column;align-items:center;gap:6px;padding:12px 0 4px;display:flex}.success-step__icon{font-size:40px}.success-step .btn{width:100%;margin-top:12px}.game-list{flex-direction:column;gap:10px;display:flex}.game-card{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-lg);align-items:center;gap:12px;padding:12px 14px;display:flex}.game-card__date{border-right:1px solid var(--card-border);flex-direction:column;align-items:center;min-width:56px;padding-right:12px;display:flex}.game-card__day{color:var(--text-secondary);text-transform:capitalize;text-align:center;font-size:12px}.game-card__time{margin-top:2px;font-size:15px;font-weight:700}.game-card__body{flex:1;min-width:0}.game-card__court{font-size:14px;font-weight:700}.game-card__opponent{color:var(--text-secondary);margin-top:2px;font-size:13px}.status-pill{background:var(--card-border);color:var(--text-secondary);white-space:nowrap;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:700}.status-pill--upcoming,.status-pill--win{background:var(--accent-bg);color:var(--accent)}.status-pill--loss{background:var(--danger-bg);color:var(--danger)}.empty-state{color:var(--text-muted);padding:12px 0;font-size:14px}.rating-list{flex-direction:column;gap:8px;display:flex}.rating-row{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-md);align-items:center;gap:12px;padding:10px 14px;display:flex}.rating-row.is-current{border-color:var(--accent);background:var(--accent-bg)}.rating-row__place{width:24px;color:var(--text-secondary);text-align:center;font-weight:700}.rating-row__avatar{background:var(--card-border);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-weight:700;display:flex}.rating-row.is-current .rating-row__avatar{background:var(--accent-strong);color:#06210f}.rating-row__name{flex:1;font-size:14px;font-weight:600}.rating-row__rating{color:var(--accent);font-weight:700}.profile-card{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-lg);flex-direction:column;align-items:center;gap:6px;padding:24px 16px;display:flex}.profile-card__avatar{background:var(--accent-strong);color:#06210f;border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;font-size:28px;font-weight:800;display:flex}.profile-card__name{margin-top:6px;font-size:19px;font-weight:700}.profile-card__rating{color:var(--text-secondary);font-size:14px}.stats-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.stat-tile{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius-md);text-align:center;padding:14px 8px}.stat-tile__value{color:var(--accent);font-size:20px;font-weight:800}.stat-tile__label{color:var(--text-secondary);margin-top:4px;font-size:11px}.bottom-nav{height:var(--nav-height);background:var(--bg-elevated);border-top:1px solid var(--card-border);padding-bottom:env(safe-area-inset-bottom);display:flex;position:sticky;bottom:0}.bottom-nav__item{color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:11px;display:flex}.bottom-nav__icon{font-size:20px}.bottom-nav__item.is-active{color:var(--accent)}
