:root{color:#234035;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--heading:#183329;--muted:#5f7266;--accent:#2d8058;--accent-strong:#1f5c43;--accent-ring:#2d805838;--surface-soft:#f6faf4f0;--card-border:#1833291f;--input-border:#24403533;background:radial-gradient(circle at top,#a5cfb08c,#0000 36%),linear-gradient(#f7f4ea 0%,#eef4ea 100%);font-family:Avenir Next,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*,:before,:after{box-sizing:border-box}html{background:radial-gradient(circle at top,#a5cfb08c,#0000 36%),linear-gradient(#f7f4ea 0%,#eef4ea 100%)}body{min-width:320px;min-height:100svh;margin:0}body,button,input,textarea{font:inherit;color:inherit}button{font-family:inherit}img{max-width:100%;display:block}a{color:inherit}p,h1,h2,h3{margin-top:0}#root{min-height:100svh}.app-shell{min-height:100svh;padding:18px 14px 32px}.app-shell__inner{width:min(1120px,100%);margin:0 auto}.auth-shell{align-items:center;display:flex}.auth-card,.section-card,.dashboard-header{border:1px solid var(--card-border);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffeb;border-radius:24px;box-shadow:0 18px 48px #13261f1f}.auth-card{max-width:520px;margin:0 auto;padding:28px 20px}.dashboard-shell{flex-direction:column;gap:20px;display:flex}.dashboard-header{padding:24px 20px}.dashboard-header__top{flex-direction:column;gap:18px;display:flex}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--accent-strong);margin:0 0 10px;font-size:.8rem;font-weight:700}.app-title{color:var(--heading);letter-spacing:-.04em;margin:0;font-size:clamp(2rem,4vw,3.3rem);line-height:.98}.app-subtitle{max-width:58ch;color:var(--muted);margin:14px 0 0;font-size:1rem}.dashboard-nav{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.dashboard-nav__link{border:1px solid var(--card-border);min-height:46px;color:var(--heading);background:#fff;border-radius:14px;justify-content:center;align-items:center;padding:12px 16px;font-weight:700;text-decoration:none;transition:transform .2s,box-shadow .2s,border-color .2s;display:inline-flex}.dashboard-nav__link:hover{transform:translateY(-1px)}.dashboard-nav__link.is-active{background:linear-gradient(135deg, var(--accent), var(--accent-strong));color:#fff;border-color:#0000;box-shadow:0 12px 24px #26664838}.user-bar{flex-direction:column;gap:12px;display:flex}.user-chip{border:1px solid var(--card-border);background:var(--surface-soft);color:var(--heading);border-radius:18px;flex-direction:column;gap:4px;padding:14px 16px;display:flex}.user-chip__label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:.82rem;font-weight:700}.user-chip__detail{color:var(--muted);word-break:break-word;font-size:.95rem}.section-grid{gap:20px;display:grid}.section-card{padding:22px 18px}.section-card--summary,.dashboard-list-section{min-width:0}.section-card__header{margin-bottom:18px}.section-card__header h2{color:var(--heading);margin:0;font-size:1.45rem}.section-card__copy{color:var(--muted);margin:8px 0 0}.form-stack{flex-direction:column;gap:16px;display:flex}.field-grid{gap:16px;display:grid}.form-field{flex-direction:column;gap:8px;min-width:0;display:flex}.form-field label{color:var(--heading);font-size:.95rem;font-weight:700}.form-hint{color:var(--muted);margin:-2px 0 0;font-size:.92rem}.player-names-fieldset{border:0;flex-direction:column;gap:12px;min-width:0;margin:0;padding:0;display:flex}.player-names-fieldset legend{color:var(--heading);margin-bottom:8px;font-size:.95rem;font-weight:700}.player-name-grid{gap:14px;display:grid}.confirmation-panel{background:#fff8eb;border:1px solid #f0d19d;border-radius:16px;flex-direction:column;gap:14px;padding:14px;display:flex}.confirmation-panel p{color:var(--heading);margin:0;font-weight:700}.confirmation-panel__actions{flex-direction:column;gap:10px;display:flex}.form-actions{flex-direction:column;gap:12px;display:flex}.auth-toggle{background:var(--surface-soft);border-radius:18px;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:26px 0 18px;padding:6px;display:grid}.auth-toggle__button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:14px;padding:12px 14px;font-weight:700}.auth-toggle__button.is-active{background:linear-gradient(135deg, var(--accent), var(--accent-strong));color:#fff;box-shadow:0 10px 24px #26664838}.auth-panel-heading{margin-bottom:16px}.status-message{border:1px solid #0000;border-radius:16px;margin:0;padding:12px 14px;font-weight:600}.status-message--error{color:#a4402f;background:#fff1ee;border-color:#f5c0b5}.status-message--success{color:#1f6f44;background:#edf8f0;border-color:#b8e0c2}.loading-panel,.loading-state,.empty-state{text-align:center}.loading-panel{padding:48px 24px}.loading-state,.empty-state{border:1px dashed var(--card-border);background:var(--surface-soft);color:var(--muted);border-radius:18px;padding:24px 18px}.tee-time-list{gap:14px;display:grid}.capacity-overview,.alternative-view{flex-direction:column;gap:16px;display:flex}.members-table-wrap{border:1px solid var(--card-border);background:#fff;border-radius:16px;overflow-x:auto}.members-table{border-collapse:collapse;width:100%;min-width:420px}.members-table th,.members-table td{text-align:left;border-bottom:1px solid #1833291a;padding:14px 16px}.members-table th{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.78rem;font-weight:800}.members-table td{color:var(--heading);font-weight:700}.members-table tbody tr:last-child td{border-bottom:0}.members-table__paid-row{background:#eef8f1}.member-status-pill{color:#1f6f44;letter-spacing:.04em;text-transform:uppercase;background:#d7efdd;border-radius:999px;align-items:center;min-height:32px;padding:6px 10px;font-size:.88rem;font-weight:800;display:inline-flex}.capacity-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.capacity-card{text-align:left;cursor:pointer;border:1px solid #0000;border-radius:18px;flex-direction:column;gap:6px;min-width:0;padding:16px 14px;transition:border-color .2s,box-shadow .2s,transform .2s;display:flex}.capacity-card:hover{transform:translateY(-1px);box-shadow:0 12px 26px #1833291f}.capacity-card:focus-visible{outline:3px solid var(--accent-ring);outline-offset:2px}.capacity-card--green{background:#edf8f0;border-color:#bedfca}.capacity-card--amber{background:#fff5e5;border-color:#f0d19d}.capacity-card--red{background:#fff0ed;border-color:#f2bdb4}.capacity-card.is-selected{border-color:var(--accent-strong);box-shadow:0 0 0 3px var(--accent-ring)}.capacity-card__header{flex-direction:column;gap:2px;display:flex}.capacity-card__weekday{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.8rem;font-weight:700}.capacity-card__date{color:var(--heading);margin:0;font-size:1rem}.capacity-card__count{color:var(--heading);font-size:2rem;font-weight:800;line-height:1}.capacity-card__booked{color:var(--heading);margin:0;font-size:.92rem;font-weight:700}.capacity-card__availability{color:var(--muted);margin:0;font-size:.82rem;font-weight:700;line-height:1.25}.capacity-details{border:1px solid var(--card-border);background:#fff;border-radius:18px;flex-direction:column;gap:14px;padding:16px;display:flex}.capacity-details h3{color:var(--accent-strong);margin:0;font-size:1.08rem}.capacity-details__list{gap:10px;display:grid}.capacity-booking{background:var(--surface-soft);border:1px solid #1833291a;border-radius:14px;gap:6px;padding:14px;display:grid}.capacity-booking p,.capacity-details__empty{margin:0}.capacity-booking__time{color:var(--heading);font-size:1.02rem;font-weight:800}.capacity-booking span{color:var(--heading);font-weight:800}.capacity-details__empty{color:var(--muted);font-weight:700}.capacity-details-mobile{display:none}.alternative-grid{grid-template-columns:minmax(0,1fr);gap:14px;display:grid}.alternative-card{border:1px solid #0000;border-radius:18px;min-width:0;transition:border-color .2s,box-shadow .2s,transform .2s;overflow:hidden}.alternative-card:hover{transform:translateY(-1px);box-shadow:0 12px 26px #1833291f}.alternative-card--green{background:#edf8f0;border-color:#bedfca}.alternative-card--amber{background:#fff5e5;border-color:#f0d19d}.alternative-card--red{background:#fff0ed;border-color:#f2bdb4}.alternative-card.is-selected{border-color:var(--accent-strong);box-shadow:0 0 0 3px var(--accent-ring);grid-column:1/-1}.alternative-card__select{width:100%;min-width:0;color:var(--heading);text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;gap:14px;padding:16px;display:flex}.alternative-card__select:focus-visible{outline:3px solid var(--accent-ring);outline-offset:-3px}.alternative-card__header{flex-direction:column;gap:2px;display:flex}.alternative-card__capacity,.alternative-card__bookings{gap:6px;min-width:0;display:grid}.alternative-card__capacity span,.alternative-card__bookings>span{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:.78rem;font-weight:800}.alternative-card__capacity strong{font-size:1rem}.alternative-booking-list{gap:8px;min-width:0;display:grid}.alternative-booking{background:#ffffffb8;border:1px solid #1833291a;border-radius:12px;grid-template-columns:minmax(0,1fr);gap:4px;min-width:0;padding:10px;display:grid}.alternative-booking__details{gap:4px;min-width:0;display:grid}.alternative-booking strong{color:var(--heading);font-size:.96rem}.alternative-booking p,.alternative-card__empty{color:var(--muted);overflow-wrap:anywhere;margin:0;font-weight:700}.alternative-booking__delete{place-self:start;padding:9px 12px;font-size:.86rem}.alternative-card__action{color:var(--accent-strong);text-underline-offset:.18em;font-weight:800;text-decoration:underline}.alternative-booking-form{background:#fff;border-top:1px solid #1833291a;flex-direction:column;gap:16px;padding:16px;display:flex}.alternative-booking-form__actions{flex-direction:column;gap:10px;display:flex}.tee-time-card{border:1px solid var(--card-border);background:var(--surface-soft);border-radius:20px;flex-direction:column;gap:16px;padding:18px;display:flex}.tee-time-card__content{flex-direction:column;gap:14px;display:flex}.tee-time-card__date{color:var(--heading);margin:0;font-size:1.15rem}.tee-time-card__time{color:var(--accent-strong);margin:0;font-weight:700}.tee-time-meta{gap:12px;display:grid}.tee-time-meta__item{background:#fff;border:1px solid #1c2e2514;border-radius:16px;padding:12px 14px}.tee-time-meta__label{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px;font-size:.78rem;font-weight:700;display:block}.tee-time-meta__value{color:var(--heading);font-weight:700}.tee-time-player-names{color:var(--muted);white-space:pre-wrap;margin:0}.tee-time-card__actions{flex-wrap:wrap;justify-content:flex-start;gap:10px;display:flex}.tee-time-edit-form{background:#fff;border:1px solid #1833291a;border-radius:16px;flex-direction:column;flex:1 0 100%;gap:16px;width:100%;padding:16px;display:flex}.tee-time-edit-form__actions{flex-direction:column;gap:10px;display:flex}input,select,textarea{border:1px solid var(--input-border);width:100%;min-width:0;max-width:100%;color:var(--heading);background:#fff;border-radius:14px;padding:14px 16px;transition:border-color .2s,box-shadow .2s,transform .2s}textarea{resize:vertical;min-height:120px}input::placeholder,select:invalid,textarea::placeholder{color:#819081}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-ring);outline:none}input[readonly]{background:var(--surface-soft);color:var(--muted)}input[type=date]{appearance:none;box-sizing:border-box;width:100%;min-width:0}.primary-button,.secondary-button,.danger-button{cursor:pointer;border:1px solid #0000;border-radius:14px;padding:14px 18px;font-weight:700;line-height:1.1;transition:transform .2s,box-shadow .2s,opacity .2s}.primary-button:hover,.secondary-button:hover,.danger-button:hover{transform:translateY(-1px)}.primary-button{background:linear-gradient(135deg, var(--accent), var(--accent-strong));color:#fff;box-shadow:0 12px 24px #2666483d}.secondary-button{color:var(--heading);border-color:var(--card-border);background:#fff}.danger-button{color:#9d3b2c;background:#fff1ee;border-color:#f4c0b4}.primary-button:disabled,.secondary-button:disabled,.danger-button:disabled{opacity:.65;cursor:not-allowed;box-shadow:none;transform:none}.primary-button:focus-visible,.secondary-button:focus-visible,.danger-button:focus-visible,.auth-toggle__button:focus-visible,.text-link-button:focus-visible,.dashboard-nav__link:focus-visible{outline:3px solid var(--accent-ring);outline-offset:2px}.text-link-button{color:var(--accent-strong);text-underline-offset:.18em;cursor:pointer;background:0 0;border:0;align-self:flex-start;padding:0;font-weight:700;text-decoration:underline}.text-link-button:hover{color:var(--accent)}@media (width<=700px){.capacity-details-mobile{display:flex}.capacity-details-desktop{display:none}}@media (width>=701px){.capacity-details-mobile{display:none}.capacity-details-desktop{display:flex}}@media (width>=768px){.app-shell{padding:32px 22px 48px}.auth-card{padding:34px 32px}.dashboard-header,.section-card{padding:26px 24px}.dashboard-header__top{flex-direction:row;justify-content:space-between;align-items:flex-start}.user-bar{align-items:stretch;min-width:280px}.field-grid--two,.tee-time-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.capacity-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.alternative-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.alternative-booking{grid-template-columns:minmax(0,1fr) auto;align-items:start}.form-actions,.alternative-booking-form__actions,.tee-time-edit-form__actions,.confirmation-panel__actions{flex-direction:row;align-items:center}.form-actions .primary-button{min-width:200px}.section-grid{grid-template-columns:minmax(320px,390px) minmax(0,1fr);align-items:start}.section-card--summary{min-height:100%}.tee-time-card{flex-flow:wrap;justify-content:space-between;align-items:flex-start}.tee-time-card__actions{padding-left:16px}}@media (width>=1080px){.capacity-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.alternative-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.time-wheel{--time-wheel-item-height:40px;--time-wheel-visible-rows:5;height:calc(var(--time-wheel-item-height) * var(--time-wheel-visible-rows));border:1px solid var(--input-border);background:var(--surface-soft);-webkit-user-select:none;user-select:none;border-radius:16px;justify-content:center;align-items:center;gap:6px;padding:0 12px;display:flex;position:relative;overflow:hidden}.time-wheel__column{flex:0 0 56px;height:100%}.time-wheel__scroll{padding:calc(var(--time-wheel-item-height) * 2) 0;touch-action:pan-y;scroll-snap-type:y mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;height:100%;margin:0;list-style:none;overflow:hidden scroll}.time-wheel__scroll::-webkit-scrollbar{display:none}.time-wheel__item{height:var(--time-wheel-item-height);scroll-snap-align:center;font-variant-numeric:tabular-nums;color:var(--muted);cursor:pointer;opacity:.55;justify-content:center;align-items:center;font-size:1.4rem;transition:color .15s,transform .15s,opacity .15s;display:flex}.time-wheel__item.is-selected{color:var(--heading);opacity:1;font-weight:600;transform:scale(1.05)}.time-wheel__separator{color:var(--heading);font-size:1.4rem;font-weight:600}.time-wheel__highlight{height:var(--time-wheel-item-height);background:var(--accent-ring);pointer-events:none;border-radius:12px;position:absolute;top:50%;left:8px;right:8px;transform:translateY(-50%)}
