:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Noto Sans KR",sans-serif;color:#ececec;background:#090a0a}*{box-sizing:border-box}body{margin:0}.shell{max-width:820px;margin:auto;padding:28px 20px 70px}header,.brand,.row-title,.inline,.result-head,.source{display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{justify-content:flex-start}.ball{font-size:34px;color:#32d27a}h1{font-size:25px;margin:0}header p,.intro p,.hint,.footnote{color:#a8aaa9}header p{margin:4px 0}.badge{color:#32d27a;background:#11281b;border-radius:30px;padding:6px 12px;white-space:nowrap}.tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:30px 0 26px;padding:5px;background:#181a19;border-radius:18px}.tab{border:0;background:none;color:#aaa;border-radius:14px;padding:14px;font-size:16px;cursor:pointer}.tab.active{background:#303331;color:#fff}.panel{display:none}.panel.active{display:block}.intro h2{margin:0 0 8px;font-size:25px}.intro p{margin:0 0 28px;line-height:1.5}.form{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}label{display:block;color:#cdcfce;font-size:14px;margin:0 0 18px}input,select{width:100%;margin-top:9px;padding:13px 15px;border:1px solid #404341;border-radius:12px;background:#111312;color:#f5f5f5;font:inherit;min-height:49px}input:focus,select:focus,button:focus-visible{outline:2px solid #32d27a;outline-offset:2px}h3{font-size:18px;margin:24px 0 8px}.row-title h3{margin:24px 0 8px}.hint{font-size:13px;margin:0 0 12px}.star{font-size:23px;border:0;background:none;color:#858b87;cursor:pointer}.star.on{color:#f5cf58}.primary,.secondary{border:0;border-radius:13px;padding:14px 22px;font-size:16px;cursor:pointer}.primary{background:#35cb76;color:#07140c;font-weight:700;margin-top:25px}.primary:disabled{opacity:.5;cursor:wait}.secondary{background:#2b2e2c;color:#fff}.message{margin:18px 0;min-height:10px;color:#d7ddda}.message.error{color:#ffaaa2}.source{border:1px solid #303531;border-radius:10px;padding:10px 13px;margin:6px 0;color:#b8c2bb;font-size:13px}.source.bad{color:#f5b0a8}.source small{color:#969f99}.result-count{margin:28px 0 14px}.result{border:1px solid #303531;border-radius:17px;padding:19px 20px;margin:10px 0}.result-head{font-size:17px}.result strong{color:#42d481}.result p{font-size:18px;margin:13px 0}.result a{color:#8ce5ad}.footnote{font-size:13px;line-height:1.6;margin-top:28px}.chips{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0 18px}.chip{border:1px solid #424642;border-radius:30px;padding:9px 16px;background:#111;color:#ddd;cursor:pointer}.chip.active{background:#d7f2df;color:#09210e}.alert-card{border:1px solid #353936;border-radius:14px;padding:15px;margin:10px 0}.alert-card h3{margin:0 0 8px}.alert-card p{color:#b5bbb7}.alert-card button{margin-right:8px}.check{display:flex;align-items:center;gap:10px}.check input{width:18px;min-height:18px;margin:0;accent-color:#36cf78}#worker-status{margin-top:30px;color:#a9b0ab}@media(max-width:640px){.shell{padding:18px 14px 50px}h1{font-size:21px}.form{grid-template-columns:1fr}.tab{font-size:14px;padding:12px 5px}.result-head{font-size:15px}}

[hidden]{display:none!important}

input[type=date]{color-scheme:dark;cursor:pointer}

.result .booking-link{display:block;width:max-content;margin:18px 0 0 auto;color:#8ce5ad;text-decoration:none;font-size:14px;font-weight:600}.result .booking-link:hover{text-decoration:underline}

.result-head .booking-link{display:inline-block;margin:0 0 0 auto;white-space:nowrap}

.selected-courts{display:block;margin:4px 0 14px}
.region-row{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:62px;border:1px solid #363d38;border-radius:13px;padding:10px 13px;margin:8px 0;background:#111512}
.region-detail{display:flex;align-items:center;gap:14px;min-width:0;flex:1}
.region-detail strong{min-width:38px;font-size:16px}
.region-detail small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#a6b1a8;font-size:13px}
.region-toggle{flex:none;min-width:66px;border:1px solid #4b544d;border-radius:999px;background:#252b26;color:#b8c4bb;padding:9px 12px;font-weight:650;cursor:pointer}
.region-toggle.active{border-color:#3ecb75;background:#14321d;color:#6ce69a}
.region-toggle:disabled{opacity:.55;cursor:default}
@media(max-width:640px){.region-detail{display:block}.region-detail strong{display:block;margin-bottom:3px}.region-row{min-height:66px}}
.region-detail{border:0;background:none;color:#eef2ef;text-align:left;padding:0;cursor:pointer;font:inherit}
.region-detail:disabled{cursor:default;opacity:1}
.region-arrow{flex:none;color:#91a297;font-size:20px;margin-left:auto}
.facility-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:-3px 0 10px;padding:0 10px 10px;border:1px solid #363d38;border-top:0;border-radius:0 0 13px 13px;background:#111512}
.region-group.expanded .region-row{border-radius:13px 13px 0 0;border-bottom:0;margin-bottom:0}
.facility-item{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;padding:6px 10px;border:1px solid #37423a;border-radius:10px;background:#161d18}
.facility-item label{display:flex;align-items:center;gap:9px;flex:1;min-width:0;margin:0;cursor:pointer;color:#e7ede9;font-size:14px}
.facility-item label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.facility-item input{width:18px;min-width:18px;min-height:18px;margin:0;accent-color:#39cd79}
.facility-item .star{font-size:21px;padding:0 4px}
@media(max-width:640px){.facility-list{grid-template-columns:1fr}.region-detail{display:flex;flex-wrap:wrap;align-items:center;gap:2px 9px}.region-detail strong{margin:0}.region-detail small{flex-basis:calc(100% - 25px)}.region-arrow{position:absolute;right:96px}.region-row{position:relative}}



.date-field{position:relative;display:block;margin-top:9px}.date-display{display:flex;align-items:center;justify-content:space-between;width:100%;padding:13px 15px;border:1px solid #404341;border-radius:12px;background:#111312;color:#f5f5f5;min-height:49px}.date-display::after{content:'📅';font-size:15px;opacity:.7}.date-field input[type=date]{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.date-field:focus-within .date-display{outline:2px solid #32d27a;outline-offset:2px}

/* Court surface is a compact label, separate from the facility name. */
.facility-item .facility-name{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.surface-badge{display:inline-flex;align-items:center;justify-content:center;flex:none;white-space:nowrap;border:1px solid transparent;border-radius:999px;padding:4px 9px;font-size:11px;font-weight:700;letter-spacing:.01em;line-height:1.25}
.surface-badge.hard{color:#a9d8ff;background:#172b3b;border-color:#315570}
.surface-badge.turf{color:#a5e6ba;background:#183022;border-color:#315d40}
.court-badge{display:inline-flex;align-items:center;justify-content:center;flex:none;white-space:nowrap;border:1px solid #55565f;border-radius:999px;padding:4px 9px;background:#2a2b33;color:#eeeef4;font-size:11px;font-weight:700;line-height:1.25}
.facility-item label .surface-badge{overflow:visible;margin-left:auto}
.facility-item label .court-badge{overflow:visible}
.result-title{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0;font-weight:650}
.result-head .surface-badge,.result-head .court-badge{font-size:12px;padding:5px 10px}
@media(max-width:640px){.result-head{align-items:flex-start}.result-title{flex:1}.result-head .booking-link{font-size:13px}}

.tabs{display:flex;flex-wrap:wrap}.tabs .tab{flex:1 1 110px}
.header-account{display:flex;align-items:center;gap:10px;color:#b8c8bd;font-size:14px}.header-account button{padding:8px 11px;font-size:13px}
.login-shell{min-height:100vh;display:grid;align-content:center;justify-items:center;padding:24px;background:radial-gradient(circle at 50% 0,#163524 0,#090a0a 52%)}
.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:28px}.login-brand p{margin:5px 0 0;color:#a8aaa9}
.login-card,.account-form{width:min(100%,420px);padding:28px;border:1px solid #36443a;border-radius:20px;background:#121713;box-shadow:0 18px 70px #0005}
.login-card h2{margin:0 0 24px}.login-card .primary,.account-form .primary{width:100%;margin-top:4px}
.login-card[hidden]{display:none}.login-card .secondary{width:100%;margin-top:10px}
.account-form{margin-top:18px}.admin-user{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:12px 0;border-bottom:1px solid #303a33}.admin-user span{flex:1 1 160px}.admin-user input{width:190px;min-height:38px;margin:0;padding:8px}.admin-user button{padding:9px 12px;font-size:13px}
@media(max-width:640px){header{align-items:flex-start}.header-account{flex-direction:column;align-items:flex-end}.login-card,.account-form{padding:22px}}
.telegram-card{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:14px 0;padding:15px;border:1px solid #34473a;border-radius:14px;background:#111b14}.telegram-card strong{color:#d8f2df}.telegram-card span{color:#a9c5af}.telegram-card .inline{flex-wrap:wrap}.telegram-card .message{width:100%;margin:4px 0}.telegram-card a{color:#8ce5ad}
.notification-row{padding:12px 15px;margin:7px 0;border:1px solid #303a33;border-radius:12px;background:#111512}.notification-row strong{font-size:13px;color:#a9dbb7}.notification-row p{margin:7px 0 0;color:#c4d0c7;font-size:12px;line-height:1.5;white-space:pre-line}

.search-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.search-actions .secondary{margin-top:25px}.search-actions button:disabled{opacity:.5;cursor:wait}

.row-title .secondary{font-size:13px;padding:9px 12px;white-space:nowrap}
