:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC",sans-serif;color:#25382f;background:#f5f7f3;font-synthesis:none}*{box-sizing:border-box}body{margin:0}header{max-width:1240px;margin:auto;height:86px;display:flex;align-items:center;justify-content:space-between;padding:0 36px;border-bottom:1px solid #dce3db}.brand{display:flex;align-items:center;gap:12px;font-weight:650;letter-spacing:1px}.brand-icon{background:#24563d;color:#fff;width:34px;height:34px;display:grid;place-items:center;border-radius:10px;font-size:30px}a{color:#466152;text-decoration:none;font-size:14px}a:hover{text-decoration:underline}main{max-width:1240px;margin:0 auto;padding:44px 36px 60px}.intro{display:flex;justify-content:space-between;align-items:center;margin-bottom:34px}.location{font-size:14px;color:#657b6b;margin:0 0 16px}h1{font-size:40px;letter-spacing:-1px;font-weight:650;margin:0 0 16px}h1 span{font-size:24px;font-weight:400;color:#657b6b;margin-left:16px}.intro p:last-child{color:#6d7d70;margin:0;font-size:15px}.court-art{width:184px;height:116px;border:2px solid #94ad93;transform:rotate(-9deg);position:relative;margin-right:20px;opacity:.6;background:#e9efdf}.court-art:before,.court-art:after{content:"";position:absolute;top:12px;bottom:12px;left:0;right:0;border-top:2px solid #94ad93;border-bottom:2px solid #94ad93}.court-art:after{top:0;bottom:0;left:34px;right:34px;border:0;border-left:2px solid #94ad93;border-right:2px solid #94ad93}.court-art div{height:2px;background:#94ad93;position:absolute;left:0;right:0;top:50%}.court-art i{width:2px;background:#94ad93;position:absolute;top:-7px;bottom:-7px;left:50%}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;background:white;padding:20px 24px;border:1px solid #dde5dc;border-radius:14px}.date-control{display:flex;align-items:center;gap:16px;font-size:14px}.date-control label{font-weight:600}.date-control span{color:#6e7c71}input[type=date]{font:inherit;border:1px solid #d6dfd5;border-radius:7px;padding:9px 12px;color:#273e30;background:#fff}.actions{display:flex;gap:10px}button{font:inherit;font-size:14px;cursor:pointer;border:1px solid #24563d;border-radius:7px;padding:10px 16px;background:#24563d;color:#fff;font-weight:550}button:hover{filter:brightness(.94)}button:disabled{opacity:.55;cursor:wait}.secondary{background:#fff;color:#365b43;border-color:#d6dfd5}#message{font-size:14px;line-height:1.7;color:#687c6b;min-height:24px;margin:12px 0 20px}#message.error{color:#a54032}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:30px}.stats>div{border:1px solid #dde5dc;background:#fff;border-radius:12px;padding:22px 24px;position:relative}.stats span:first-child{font-size:14px;color:#6b7d6e}.stats strong{display:block;font-size:34px;font-weight:600;margin-top:10px}.stats .dot,.stat-icon{position:absolute;right:24px;top:26px}.stat-icon{font-size:24px;color:#8b9d87}.schedule{background:white;border:1px solid #dde5dc;border-radius:14px;overflow:hidden}.table-heading{padding:24px;display:flex;align-items:center;justify-content:space-between;gap:20px}h2{font-size:19px;margin:0;font-weight:600}.table-heading p{font-size:13px;margin:8px 0 0;color:#7a887d}.filter{font-size:14px;color:#556f5a;display:flex;gap:7px;align-items:center}input[type=checkbox]{accent-color:#24563d;width:16px;height:16px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap;text-align:center;font-size:14px}thead{background:#f4f7f1;color:#506650}th{font-weight:550;padding:17px 24px;border-top:1px solid #e7ece4;border-bottom:1px solid #e7ece4}tbody th{color:#4f6555;background:#fcfdfb}td{padding:12px 20px;border-bottom:1px solid #edf0e9}tbody tr:last-child>*{border-bottom:0}.badge{display:inline-block;min-width:100px;padding:8px 16px;border-radius:6px;font-size:13px}.s1{background:#e7f2df;color:#3d6938}.s4{background:#f1e8e2;color:#916b53}.s3{background:#fcf1d6;color:#956f26}.s2{background:#edf0ed;color:#849085}.unknown{background:#f3f3f3;color:#777}.legend{border-top:1px solid #e7ece4;display:flex;gap:24px;padding:18px 24px;font-size:13px;color:#79867a}.legend span{display:flex;align-items:center;gap:8px}.dot{display:inline-block;width:10px;height:10px;border-radius:50%}.free{background:#8ab87b}.reserved{background:#c6a28b}.pending{background:#dfbc69}.closed{background:#c7cfc5}.empty{padding:58px 24px;text-align:center;color:#7b877c;line-height:1.8;margin:0}dialog{width:min(580px,calc(100vw - 32px));border:1px solid #dce3db;border-radius:16px;padding:28px;color:#25382f;box-shadow:0 20px 80px #20382533}dialog::backdrop{background:#1c2e2455}.dialog-heading{display:flex;justify-content:space-between;align-items:center}.icon-button{border:0;background:transparent;color:#758273;font-size:26px;padding:0 6px}dialog p{font-size:14px;line-height:1.9;color:#687866}dialog label{display:block;font-size:14px;margin:18px 0 8px}textarea{width:100%;min-height:150px;resize:vertical;border:1px solid #ced9ca;border-radius:8px;padding:12px;font:13px ui-monospace,monospace}code{font-size:12px}#session-error{color:#a54032}:focus-visible{outline:3px solid #b0c4a4;outline-offset:3px}@media(max-width:720px){header{padding:0 20px;height:74px}.brand{font-size:14px}header a{font-size:12px}main{padding:30px 20px}.court-art{display:none}h1{font-size:32px}h1 span{font-size:20px}.toolbar{align-items:stretch;flex-direction:column;padding:16px}.actions{justify-content:flex-end}.date-control{gap:10px;flex-wrap:wrap}.stats{grid-template-columns:repeat(2,1fr);gap:10px}.stats>div{padding:18px}.stats .dot,.stat-icon{right:18px;top:22px}.table-heading{align-items:flex-start;flex-direction:column;padding:20px}.badge{min-width:76px;padding:7px 10px}td,th{padding:12px}.legend{gap:14px;flex-wrap:wrap;padding:18px 20px}}

[hidden]{display:none!important}dialog input[type=text],dialog input[type=password],dialog select{width:100%;font:inherit;padding:11px 12px;border:1px solid #ced9ca;border-radius:8px;background:white;color:#25382f}#captcha-image{width:280px;height:155px;position:relative;margin:16px auto;overflow:hidden}#captcha-background{width:278px;height:155px;position:absolute;left:0;top:0}#captcha-piece{width:278px;height:155px;position:absolute;top:0;left:0}#slider-track{width:280px;height:42px;background:#eef2e9;border:1px solid #d3ddcb;border-radius:6px;position:relative;margin:0 auto 20px;touch-action:none;user-select:none}#slider-track span{display:block;text-align:center;font-size:13px;color:#7a8776;line-height:40px}#slider-handle{position:absolute;top:0;left:0;width:40px;height:40px;padding:0;font-size:22px;touch-action:none;cursor:grab}#choose-role{margin-top:18px}

.buddies{margin-top:28px;padding:24px;background:white;border:1px solid #dde5dc;border-radius:14px}.buddies-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.buddies>p{font-size:14px;color:#6b7d6e;line-height:1.8;margin:16px 0}.buddies>p.error,#buddy-error{color:#a54032}#buddies-list{display:flex;flex-wrap:wrap;gap:12px;list-style:none;margin:0;padding:0}#buddies-list li{display:flex;align-items:center;gap:14px;padding:14px 18px;border:1px solid #e1e8dd;border-radius:9px;background:#f8faf5;font-size:15px}#buddies-list .buddy-uid{font-size:14px;color:#7a887b}@media(max-width:480px){.buddies{padding:20px}#buddies-list{flex-direction:column}#buddies-list li{justify-content:space-between}}

.slot-choice{padding:0;border:0;border-radius:6px;background:transparent;color:inherit;display:inline-block}.slot-choice .badge{cursor:pointer;border:2px solid transparent}.slot-choice[aria-pressed=true] .badge{background:#24563d;color:white;border-color:#173a29}.slot-choice:disabled{cursor:wait}.buddy-choice{display:flex;align-items:center;gap:12px;cursor:pointer}.buddy-choice input{margin:0}.reservation-actions{margin-top:28px;padding:24px;border:1px solid #dde5dc;border-radius:14px;background:white}.reservation-actions p{line-height:1.8;font-size:15px;color:#596f5c}.reservation-actions #reservation-amount{font-weight:600}.protocol-choice,.protocol-choice label{display:flex;align-items:center;gap:8px}.text-button{padding:2px 0;border:0;background:none;color:#24563d;text-decoration:underline}.reservation-actions #reservation-result.error,#reservation-captcha-message.error{color:#a54032}.reservation-actions #reservation-result.success{color:#24563d}#protocol-status:empty,#reservation-result:empty{display:none}#protocol-content{width:100%;height:55vh;margin-top:20px;border:1px solid #e1e8dd;border-radius:8px}#word-captcha-image{position:relative;width:310px;max-width:100%;aspect-ratio:2/1;margin:20px auto;cursor:crosshair}#word-captcha-background{display:block;width:100%;height:100%;object-fit:fill}#word-captcha-markers{position:absolute;inset:0;pointer-events:none}#word-captcha-markers span{position:absolute;transform:translate(-50%,-50%);width:24px;height:24px;border-radius:50%;background:#24563d;color:white;border:2px solid white;text-align:center;line-height:20px;font-size:13px}.captcha-actions{display:flex;justify-content:space-between;gap:12px}.reservation-actions #submit-reservation{margin-top:16px}@media(max-width:480px){.reservation-actions{padding:20px}.captcha-actions{flex-direction:column}#buddies-list li{justify-content:flex-start}.buddy-choice{width:100%}}

.rush-panel{margin-top:28px;padding:24px;background:#fff;border:1px solid #dde5dc;border-radius:14px}.rush-panel p{font-size:15px;line-height:1.8;color:#596f5c}.rush-zone{font-size:14px;color:#637b68;border:1px solid #dce5d8;border-radius:6px;padding:5px 10px}.rush-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px}.rush-panel label{display:block;font-size:14px;margin:16px 0 8px}.rush-panel input[type=text],.rush-panel input[type=password],.rush-panel select{width:100%;font:inherit;padding:11px 12px;border:1px solid #ced9ca;border-radius:8px;background:white;color:#25382f}.rush-panel input:disabled,.rush-panel select:disabled{background:#f3f5f0;color:#7d8c7c}.rush-panel #rush-load-options{margin-top:18px}.rush-panel fieldset{border:1px solid #dde5dc;border-radius:8px;padding:14px;margin:20px 0}#rush-slot-list span{font-size:14px;color:#7d8c7c}.rush-panel legend{font-size:14px;padding:0 6px;color:#556c59}#rush-buddy-list,#rush-slot-list{display:flex;gap:20px;flex-wrap:wrap}#rush-buddy-list label,#rush-slot-list label,.rush-panel .protocol-choice label{display:flex;align-items:center;gap:8px;margin:0}.rush-actions{display:flex;gap:12px;margin-top:20px}#rush-feedback.error{color:#a54032}#rush-job{margin-top:20px;padding:18px;border-radius:10px;background:#f4f7f0}#rush-job h3{font-size:17px;margin:0}#rush-job p{margin:10px 0}#rush-job-times{white-space:pre-line}@media(max-width:600px){.rush-panel{padding:20px}.rush-fields{grid-template-columns:1fr;gap:0}#rush-buddy-list,#rush-slot-list{flex-direction:column;gap:12px}}

/* Auth Landing Page Styles */
.auth-landing-container {
  min-height: calc(100vh - 120px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 40px 20px;
}
.auth-card {
  width: 100%;
  max-width: 460px;
  background: #ffffff;
  border: 1px solid #dce3db;
  border-radius: 16px;
  padding: 32px;
  box-shadow: 0 10px 30px rgba(36, 86, 61, 0.08);
}
.auth-card-header {
  text-align: center;
  margin-bottom: 24px;
}
.auth-card-header h2 {
  font-size: 24px;
  color: #1e3a29;
  margin: 8px 0;
}
.auth-card-header p {
  font-size: 14px;
  color: #657b6b;
  margin: 0;
}
.mode-status-card {
  border-radius: 10px;
  padding: 12px 16px;
  margin-bottom: 20px;
  font-size: 13px;
  line-height: 1.5;
  display: flex;
  align-items: center;
  gap: 10px;
}
.mode-status-card.mode-timed_rush {
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  color: #1e40af;
}
.mode-status-card.mode-peak_lock {
  background: #fef2f2;
  border: 1px solid #fecaca;
  color: #991b1b;
}
.mode-status-card.mode-direct_booking {
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  color: #166534;
}
.auth-tabs {
  display: flex;
  border-bottom: 2px solid #eef2ed;
  margin-bottom: 20px;
}
.auth-tab-btn {
  flex: 1;
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  color: #6d7d70;
  padding: 10px 0;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  margin-bottom: -2px;
  border-radius: 0;
}
.auth-tab-btn:hover {
  color: #24563d;
  filter: none;
}
.auth-tab-btn.active {
  color: #24563d;
  border-bottom-color: #24563d;
}
.auth-form-panel {
  display: none;
}
.auth-form-panel.active {
  display: block;
}
.auth-form-group {
  margin-bottom: 16px;
}
.auth-form-group label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: #3f5546;
  margin-bottom: 6px;
}
.auth-form-group input {
  width: 100%;
  font: inherit;
  font-size: 14px;
  padding: 10px 12px;
  border: 1px solid #ced9ca;
  border-radius: 8px;
  background: white;
  color: #25382f;
}
.auth-form-group input:focus {
  outline: 2px solid #24563d;
  border-color: transparent;
}
.auth-submit-btn {
  width: 100%;
  padding: 12px;
  font-size: 15px;
  margin-top: 10px;
}
.privacy-hint {
  font-size: 12px;
  color: #829285;
  line-height: 1.6;
  margin-top: 16px;
  text-align: center;
}
.mode-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  padding: 4px 10px;
  border-radius: 20px;
  font-weight: 600;
}
.mode-badge.mode-timed_rush {
  background: #dbeafe;
  color: #1e40af;
}
.mode-badge.mode-peak_lock {
  background: #fee2e2;
  color: #991b1b;
}
.mode-badge.mode-direct_booking {
  background: #d1fae5;
  color: #065f46;
}
.kickout-toast {
  position: fixed;
  top: 20px;
  left: 50%;
  transform: translateX(-50%);
  background: #dc2626;
  color: #ffffff;
  padding: 12px 24px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 500;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
  z-index: 9999;
  display: none;
}
