:root{--bg:#f4f6fb;--panel:#fff;--text:#172033;--muted:#647089;--line:#dbe3f1;--primary:#2f66ff;--dark:#121a2b;--danger:#c63d3d;--ok:#158454;--warn:#a76a00;--shadow:0 14px 34px rgba(18,26,43,.08)}*{box-sizing:border-box}body{margin:0;background:linear-gradient(180deg,#eaf0ff 0,var(--bg) 260px);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text)}.app{width:min(1180px,calc(100% - 28px));margin:auto;padding:34px 0 70px}.eyebrow{margin:0 0 8px;color:var(--primary);font-weight:900;letter-spacing:.08em;text-transform:uppercase}.hero h1{margin:0 0 10px;font-size:clamp(28px,4vw,44px)}p,.hint{color:var(--muted);line-height:1.55}.panel{background:var(--panel);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:22px;margin-top:18px}.notice{background:#fffdf3;display:flex;gap:12px}.section-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}label{display:grid;gap:8px;margin-bottom:16px;font-weight:900;color:#34405c}small{font-size:12px;color:var(--muted);font-weight:700}input,select,textarea{width:100%;border:1px solid #c7d1e4;border-radius:12px;font-size:14px;background:#fff}input,select{height:42px;padding:0 10px}textarea{min-height:96px;padding:12px;resize:vertical}button{border:0;border-radius:999px;height:44px;padding:0 20px;font-weight:900;cursor:pointer}.primary{background:var(--primary);color:#fff}.secondary{background:#edf3ff;color:var(--primary)}.status{margin-top:14px;font-weight:800;color:var(--muted);white-space:pre-wrap}.status.error{color:var(--danger)}.status.ok{color:var(--ok)}.status.warn{color:var(--warn)}.hidden{display:none}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.card{border:1px solid var(--line);border-radius:18px;padding:16px;background:#fbfcff}.card small{display:inline-flex;background:#edf3ff;color:var(--primary);border-radius:999px;padding:4px 9px;font-weight:900}.card strong{display:block;font-size:30px;margin:10px 0 6px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:980px}th,td{border-bottom:1px solid var(--line);padding:10px 8px;text-align:center;font-size:14px}th{background:#f8faff}.reason{text-align:left}code{background:#edf3ff;color:#1d45ad;padding:2px 6px;border-radius:6px}@media(max-width:820px){.grid,.cards{grid-template-columns:1fr}.panel{padding:16px}.notice,.section-head{display:block}button{width:100%}}

.progress-wrap{margin-top:16px;border:1px solid var(--line);background:#f8faff;border-radius:16px;padding:14px}.progress-top{display:flex;justify-content:space-between;gap:12px;align-items:center;font-weight:900;color:#34405c}.progress-bar{height:12px;background:#e4ebf8;border-radius:999px;overflow:hidden;margin-top:10px}.progress-bar>div{height:100%;width:0%;background:var(--primary);border-radius:999px;transition:width .35s ease}.progress-help{margin:8px 0 0;font-size:13px;color:var(--muted)}
.pdf-box{display:flex;justify-content:space-between;gap:16px;align-items:center;border:1px solid var(--line);background:#f8faff;border-radius:18px;padding:16px;margin:4px 0 18px}.pdf-box h3{margin:0 0 6px}.pdf-box p{margin:0}.pdf-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.link-btn{display:inline-flex;align-items:center;justify-content:center;height:44px;border-radius:999px;padding:0 18px;background:#121a2b;color:#fff;text-decoration:none;font-weight:900}.pdf-ok{color:var(--ok)!important}.pdf-missing{color:var(--danger)!important}.pdf-warn{color:var(--warn)!important}@media(max-width:820px){.pdf-box{display:block}.pdf-actions{margin-top:12px}.link-btn{width:100%}}

.result-actions{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.sort-label{margin:0;min-width:220px}.confidence{font-weight:900}.conf-red{color:#e00000}.conf-blue{color:#1e5bff}.conf-green{color:#0b8f3a}.conf-black{color:#111}.detail-btn{height:34px;border-radius:999px;padding:0 12px;background:#121a2b;color:#fff;font-size:13px}.modal.hidden{display:none}.modal{position:fixed;inset:0;z-index:9999}.modal-backdrop{position:absolute;inset:0;background:rgba(11,18,32,.55)}.modal-card{position:relative;width:min(1100px,calc(100% - 28px));max-height:88vh;overflow:auto;margin:6vh auto;background:#fff;border-radius:22px;padding:22px;box-shadow:0 24px 70px rgba(0,0,0,.28)}.modal-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:16px}.modal-close{width:auto}.modal-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.summary-chip{border:1px solid var(--line);border-radius:14px;background:#f8faff;padding:12px}.summary-chip b{display:block;font-size:22px;margin-top:4px}.horse-graph{display:grid;gap:10px;margin:12px 0 20px}.graph-row{display:grid;grid-template-columns:90px 1fr 56px;gap:10px;align-items:center}.graph-label{font-weight:900;color:#34405c}.graph-track{height:20px;background:#e8eef8;border-radius:999px;overflow:hidden}.graph-fill{height:100%;background:var(--primary);border-radius:999px;min-width:3px}.graph-value{text-align:right;font-weight:900}.detail-table{min-width:1000px}.detail-table td:last-child{text-align:left}@media(max-width:820px){.result-actions{display:block}.sort-label{min-width:0;margin-bottom:10px}.modal-summary{grid-template-columns:1fr}.graph-row{grid-template-columns:70px 1fr 46px}.modal-card{margin:3vh auto;max-height:94vh;padding:16px}}


.dark-inline{display:inline-flex;align-items:center;gap:5px;margin-left:10px;font-size:14px;font-weight:800;color:#111;vertical-align:middle}.table-dark-inline{display:inline-flex;align-items:center;gap:5px;margin-left:8px;font-size:13px;font-weight:800;white-space:nowrap}.dark-circles{display:inline-flex;gap:3px;align-items:center;vertical-align:middle}.circle-num{font-size:22px;line-height:1;font-weight:900;color:#111;letter-spacing:-1px}.summary-chip .circle-num{font-size:26px}.muted{color:#888;font-weight:700}@media(max-width:720px){.dark-inline{display:flex;margin:6px 0 0;font-size:13px}.table-dark-inline{display:flex;margin:4px 0 0}.circle-num{font-size:20px}}


.modal-race-info{margin:-4px 0 18px;padding:12px 14px;border:1px solid #cfe0ff;background:#f3f7ff;border-radius:14px;color:#164bb5;font-weight:900;line-height:1.45}.plain-dark-num{font-size:22px;font-weight:900;color:#111}.table-dark-inline .plain-dark-num{font-size:15px}.summary-chip .plain-dark-num{font-size:24px}


/* v8: 결과표 글자 크기 통일 */
#resultBody td,#resultBody td b,#resultBody small,.detail-table td,.detail-table td b{font-size:14px!important;line-height:1.45}.modal-race-info{display:block;margin:0 0 20px!important;clear:both}.modal-summary{margin-bottom:10px!important}


/* v9 API 연결 확인 영역 축소 + 상태등 + 팝업 */
.api-panel{padding:14px 18px!important}.api-check-row{display:flex;align-items:center;justify-content:space-between;gap:14px}.api-title{display:flex;align-items:center;gap:10px}.api-title h2{margin:0;font-size:20px}.api-light{width:14px;height:14px;border-radius:50%;display:inline-block;box-shadow:0 0 0 4px rgba(100,112,137,.12);background:#9aa4b5}.api-light.ok{background:#16a34a;box-shadow:0 0 0 4px rgba(22,163,74,.16),0 0 12px rgba(22,163,74,.5)}.api-light.error{background:#dc2626;box-shadow:0 0 0 4px rgba(220,38,38,.15),0 0 12px rgba(220,38,38,.45)}.api-light.off{background:#9aa4b5}.api-popup.hidden{display:none}.api-popup{position:fixed;inset:0;z-index:10020}.api-popup-backdrop{position:absolute;inset:0;background:rgba(11,18,32,.45)}.api-popup-card{position:relative;width:min(430px,calc(100% - 32px));margin:18vh auto;background:#fff;border-radius:18px;padding:18px;box-shadow:0 24px 70px rgba(0,0,0,.26);border:1px solid var(--line)}.api-popup-head{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:12px}.api-popup-head strong{font-size:20px}.api-popup.ok .api-popup-head strong{color:#158454}.api-popup.error .api-popup-head strong{color:#c63d3d}.api-popup-close{height:34px;width:auto;padding:0 14px}.api-popup-body{white-space:pre-wrap;margin:0;background:#f8faff;border:1px solid var(--line);border-radius:14px;padding:14px;font-family:inherit;font-size:15px;font-weight:800;line-height:1.7;color:#172033}@media(max-width:720px){.api-check-row{display:block}.api-title{margin-bottom:12px}.api-panel .secondary{width:100%}}


/* v10 결과 알림 아이콘 */
.result-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.result-title-row h2{margin:0}.notice-icon{height:34px;width:auto;padding:0 12px;border-radius:999px;background:#fff7db;color:#8a5a00;border:1px solid #f2d077;font-size:13px;box-shadow:none}.notice-icon:hover{background:#fff0ba}@media(max-width:720px){.result-title-row{justify-content:space-between}.notice-icon{width:auto}}


/* v11 API 상태등/팝업 동작 보강 */
.api-light{flex:0 0 16px!important;width:16px!important;height:16px!important;min-width:16px!important;min-height:16px!important;border-radius:50%!important;display:inline-block!important}.api-popup:not(.hidden){display:block!important}.api-popup-card{z-index:10021}.api-popup-body{min-height:96px}

/* v12 notice popup + result redesign */
.notice-popup.hidden{display:none}.notice-popup{position:fixed;inset:0;z-index:10030}.notice-popup-backdrop{position:absolute;inset:0;background:rgba(11,18,32,.45)}.notice-popup-card{position:relative;width:min(560px,calc(100% - 32px));margin:16vh auto;background:#fff;border-radius:18px;padding:18px;box-shadow:0 24px 70px rgba(0,0,0,.26);border:1px solid var(--line);z-index:10031}.notice-popup-head{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:12px}.notice-popup-head strong{font-size:20px;color:#172033}.notice-popup-close{height:34px;width:auto;padding:0 14px}.notice-popup-body{white-space:pre-wrap;margin:0;background:#f8faff;border:1px solid var(--line);border-radius:14px;padding:14px;font-family:inherit;font-size:15px;font-weight:800;line-height:1.7;color:#172033;max-height:52vh;overflow:auto}

.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.result-card{border:1px solid #d7deee;border-radius:28px;padding:26px 24px 22px;background:#fbfcff;box-shadow:none;display:flex;flex-direction:column;gap:14px}.result-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.race-pill{display:inline-flex;align-items:center;justify-content:center;background:#edf2ff;color:#3a67ff;border-radius:999px;padding:12px 22px;font-size:18px;font-weight:900;line-height:1}.result-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:15px;font-weight:900;color:#111}.result-dividend{font-weight:900}.dividend-mid{color:#356cff}.dividend-high{color:#d61f1f}.dividend-low{color:#14803b}.result-index{color:#111}.race-info-stack{display:flex;flex-direction:column;gap:6px;font-size:17px;font-weight:900;line-height:1.4;color:#111}.race-info-stack .secondary-info{display:block}.pick-row{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap}.pick-main{display:flex;align-items:flex-end;flex-wrap:wrap;font-size:58px;font-weight:900;line-height:1;letter-spacing:-2px;color:#0b1408}.pick-num,.summary-pick-num,.table-pick-num,.darkhorse-num{font-weight:900;color:#0b1408}.pick-sep{display:inline-block;margin:0 1px;color:#0b1408}.darkhorse-inline-text{display:flex;align-items:flex-end;gap:8px;font-size:20px;font-weight:900;color:#111}.darkhorse-value{font-size:58px;line-height:1;color:#0b1408}.conf-line{font-size:24px;font-weight:900;color:#111;line-height:1.2}.result-card .detail-btn{margin-top:auto;align-self:flex-start;height:56px;padding:0 28px;border-radius:999px;background:#000;color:#fff;font-size:18px}.excluded-text{color:#d81e1e!important}.excluded-row td{background:rgba(216,30,30,.03)}.excluded-fill{background:#d81e1e!important}.table-picks,.summary-pick{display:inline-flex;align-items:center;gap:0;flex-wrap:wrap}.summary-pick-num{font-size:24px}.table-pick-num{font-size:16px}.graph-label{font-weight:900;color:#34405c}.graph-fill{background:#335fff}.summary-chip{display:flex;flex-direction:column;justify-content:center}.summary-chip b{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.modal-summary{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.modal-race-info{margin:6px 0 20px!important}.detail-table td,.detail-table th,#resultBody td,#resultBody th{font-size:14px!important}.reason .detail-btn{height:34px;font-size:13px;padding:0 12px}.notice-icon{display:inline-flex;align-items:center;justify-content:center}

@media(max-width:980px){.cards{grid-template-columns:1fr}.modal-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.pick-main{font-size:46px}.darkhorse-value{font-size:44px}}
@media(max-width:640px){.result-card{padding:20px 18px}.race-pill{font-size:16px;padding:10px 16px}.result-meta{font-size:14px}.race-info-stack{font-size:15px}.pick-main{font-size:40px}.darkhorse-inline-text{font-size:17px}.darkhorse-value{font-size:36px}.conf-line{font-size:20px}.result-card .detail-btn{height:48px;font-size:16px}.modal-summary{grid-template-columns:1fr}.notice-popup-card{margin:8vh auto}}


/* v13 정렬 방식 문구 삭제 */
.sort-label-no-text{font-size:0!important;line-height:0}.sort-label-no-text select{font-size:14px;line-height:normal}


/* v14 API 상태 텍스트는 팝업에서만 표시 */
#healthStatus{display:none!important}


/* v20 결과 카드 4개씩 표시 */
.cards{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:14px!important}
.result-card{padding:18px 14px 16px!important;border-radius:20px!important;gap:10px!important;min-width:0}
.result-card-top{gap:8px!important}
.race-pill{font-size:14px!important;padding:8px 13px!important}
.result-meta{font-size:12px!important;gap:5px!important;line-height:1.35}
.race-info-stack{font-size:13px!important;gap:3px!important;line-height:1.35}
.pick-main{font-size:34px!important;letter-spacing:-1.5px!important}
.darkhorse-inline-text{font-size:13px!important;gap:5px!important}
.darkhorse-value{font-size:30px!important}
.conf-line{font-size:15px!important}
.result-card .detail-btn{height:38px!important;padding:0 16px!important;font-size:13px!important}
@media(max-width:1100px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))!important}.pick-main{font-size:42px!important}.darkhorse-value{font-size:38px!important}.race-info-stack{font-size:15px!important}.result-meta{font-size:14px!important}}
@media(max-width:640px){.cards{grid-template-columns:1fr!important}.pick-main{font-size:42px!important}.darkhorse-value{font-size:38px!important}}


/* v22 자세히 보기 그래프 가로폭 축소 */
.modal-card .horse-graph{max-width:880px;width:82%;margin:12px 0 20px}
.modal-card .graph-row{grid-template-columns:120px minmax(260px,1fr) 48px}
@media(max-width:900px){.modal-card .horse-graph{width:100%;max-width:none}.modal-card .graph-row{grid-template-columns:86px 1fr 44px}}


/* v23 카드 상단 출발시간 제거 후 배당정보만 표시 */
.result-card .result-meta{justify-content:flex-start}


/* v24 근거 칸 간략 분석 표시 */
.basis-cell{text-align:left!important;line-height:1.45}
.basis-cell b{font-size:14px!important;color:#111}
.basis-cell small{display:block;margin-top:4px;color:#647089;font-size:12px!important}
.basis-meta{opacity:.9}


/* v25 AI 경주 예상결과 타이틀과 콘텐츠 간격 */
#resultPanel .section-head{margin-bottom:24px!important}
#resultPanel .cards{margin-top:4px}


/* v28 상세팝업 그래프 정렬/마명 영역 확대 */
.modal-card .horse-graph{
  max-width: 1120px !important;
  width: 96% !important;
  margin: 12px 0 20px auto !important;
}
.modal-card .graph-row{
  grid-template-columns: 180px minmax(320px, 1fr) 52px !important;
  column-gap: 14px !important;
  align-items: center !important;
}
.modal-card .graph-label{
  font-size: 15px !important;
  line-height: 1.3 !important;
  word-break: keep-all !important;
  overflow-wrap: anywhere !important;
  text-align: left !important;
}
.modal-card .graph-track{
  width: 100% !important;
}
.modal-card .graph-value{
  text-align: right !important;
  min-width: 52px !important;
}
@media (max-width: 1100px){
  .modal-card .horse-graph{width: 100% !important; max-width:none !important; margin: 12px 0 20px !important;}
  .modal-card .graph-row{grid-template-columns: 130px minmax(220px, 1fr) 46px !important; column-gap: 10px !important;}
  .modal-card .graph-label{font-size: 14px !important;}
}
@media (max-width: 700px){
  .modal-card .graph-row{grid-template-columns: 100px minmax(140px, 1fr) 42px !important;}
  .modal-card .graph-label{font-size: 13px !important;}
}


/* v30 날씨/주로 조건 설정 */
.condition-box{border:1px solid var(--line);background:#f8faff;border-radius:18px;padding:16px;margin:4px 0 18px}
.condition-head h3{margin:0 0 4px;font-size:18px}
.condition-head .hint{margin:0 0 14px}
.condition-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.condition-grid label{margin:0;font-size:13px}
.condition-tip{margin:12px 0 0;color:#31518f;font-size:13px;font-weight:800;line-height:1.45}
@media(max-width:1000px){.condition-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.condition-grid{grid-template-columns:1fr}}


/* v34 출력 경주 강제 설정 */
.force-race-box{background:#fffaf2;border-color:#f0d8aa}
.force-race-row{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:12px;flex-wrap:wrap}
.force-check{display:flex!important;align-items:center;gap:8px;margin:0!important;font-size:14px!important;font-weight:900;color:#222}
.force-check input{width:auto!important;height:auto!important;margin:0}
.small-btn{padding:8px 12px!important;min-height:34px!important}
.force-race-plan{min-height:74px!important;font-weight:800;letter-spacing:.01em}


/* v35 경주 선택 버튼 */
.track-button-box{background:#f7fbff;border-color:#cfe0ff}
.race-track-buttons{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0 4px}
.race-track-btn{border:1px solid #cfd8ea;background:#fff;color:#23314d;border-radius:999px;padding:10px 18px;font-weight:900;cursor:pointer;transition:.15s}
.race-track-btn:hover{border-color:#315cff;color:#315cff}
.race-track-btn.active{background:#315cff;color:#fff;border-color:#315cff;box-shadow:0 6px 16px rgba(49,92,255,.18)}
.race-track-btn.disabled{opacity:.45;cursor:not-allowed}
@media(max-width:620px){.race-track-btn{width:100%;border-radius:12px}}


/* v36 함수 기반 번호 유추 표시 */
.function-pick-line{margin-top:8px;font-size:12px;font-weight:900;color:#31518f;line-height:1.45;background:#eef4ff;border:1px solid #d7e4ff;border-radius:10px;padding:7px 9px}
.basis-cell .function-pick-line{margin:7px 0 2px;background:#f3f7ff}
.function-pick-num{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;margin:0 2px;border-radius:999px;background:#315cff;color:#fff;font-size:12px;font-weight:900}


/* v37 API 분석 / 함수 분석 버튼 */
.analyze-button-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:8px}
.analyze-button-row .primary,.analyze-button-row .secondary{flex:1;min-width:180px}
.function-analyze-btn{background:#fff!important;border:1px solid #315cff!important;color:#315cff!important;font-weight:900!important}
.function-analyze-btn:hover{background:#eef4ff!important}


/* v37 API 분석 / 함수 분석 버튼 */
.analyze-button-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:8px}
.analyze-button-row .primary,.analyze-button-row .secondary{flex:1;min-width:180px}
.function-analyze-btn{background:#fff!important;border:1px solid #315cff!important;color:#315cff!important;font-weight:900!important}
.function-analyze-btn:hover{background:#eef4ff!important}


/* v41 PDF 확인 영역 엑셀 파일 상태 */
.excel-status-box{margin-top:10px;display:grid;gap:6px}
.excel-status-item{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;font-weight:800;color:#526079}
.excel-status-item .badge{display:inline-flex;align-items:center;justify-content:center;min-width:44px;padding:4px 8px;border-radius:999px;font-size:12px;font-weight:900}
.excel-status-item.ok .badge{background:#e9f8ef;color:#12823b}
.excel-status-item.missing .badge{background:#fff0f0;color:#c92929}
.excel-status-item .path{color:#7a8498;font-weight:700}


/* v66: 엑셀 출전마 확인 팝업 복원 */
.excel-check-modal.hidden{display:none!important}.excel-check-modal{position:fixed;inset:0;z-index:10000}.excel-check-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.55)}.excel-check-card{position:relative;width:min(1180px,calc(100% - 28px));max-height:90vh;overflow:auto;margin:5vh auto;background:#fff;border-radius:22px;box-shadow:0 24px 70px rgba(0,0,0,.28);padding:22px}.excel-check-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:14px}.excel-check-head h2{margin:0 0 6px}.excel-check-summary{border:1px solid var(--line);background:#f8faff;border-radius:16px;padding:14px;margin-bottom:14px}.excel-check-summary-line{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.excel-check-files{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.excel-check-files span{border-radius:999px;padding:6px 10px;font-size:13px;background:#f1f5f9;color:#334155}.excel-check-files span.ok{background:#ecfdf5;color:#047857}.excel-check-files span.missing{background:#fef2f2;color:#b91c1c}.excel-check-empty{padding:16px;border:1px dashed var(--line);border-radius:14px;background:#fbfcff;color:var(--muted)}.excel-check-empty.error{background:#fef2f2;color:#b91c1c}.excel-race-card{border:1px solid var(--line);border-radius:16px;margin:12px 0;overflow:hidden;background:#fff}.excel-race-head{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:#f8faff;padding:12px 14px}.excel-race-head b{font-size:16px}.excel-race-head span{color:var(--muted);font-weight:800}.excel-race-head em{font-style:normal;color:var(--primary);font-weight:900}.excel-horse-list{display:flex;flex-wrap:wrap;gap:7px;padding:14px}.excel-horse-list span{display:inline-flex;gap:5px;align-items:center;border-radius:10px;background:#eef2ff;color:#1e40af;padding:7px 10px;font-weight:800}.excel-horse-list span b{color:#111}@media(max-width:820px){.excel-check-card{width:calc(100% - 16px);margin:8px auto;max-height:96vh;padding:16px}.excel-check-head{display:block}.excel-check-head .modal-close{margin-top:10px;width:100%}}


/* v73: 엑셀 출전마 확인 팝업 compact table */
.excel-check-card{width:min(1320px,calc(100% - 20px));padding:18px;}
.excel-check-head{padding-bottom:10px;margin-bottom:10px;}
.excel-check-head h2{font-size:19px;margin-bottom:4px;}
.excel-check-head p{font-size:13px;}
.excel-check-summary{padding:10px 12px;margin-bottom:10px;border-radius:12px;}
.excel-check-summary-line{font-size:13px;}
.excel-check-files{gap:6px;margin-top:8px;}
.excel-check-files span{font-size:12px;padding:5px 8px;}
.excel-race-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
.excel-race-card.compact{margin:0;border-radius:12px;overflow:hidden;box-shadow:none;}
.excel-race-head.compact-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:8px 10px;background:#f8fafc;}
.excel-race-head.compact-head b{font-size:14px;white-space:nowrap;}
.excel-race-head.compact-head span{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.excel-race-head.compact-head em{font-size:12px;background:#eef4ff;color:var(--primary);border-radius:999px;padding:3px 7px;}
.excel-table-wrap{overflow:auto;max-height:260px;}
.excel-horse-table{width:100%;border-collapse:collapse;font-size:12px;line-height:1.25;}
.excel-horse-table th,.excel-horse-table td{border-top:1px solid #edf1f7;padding:5px 7px;text-align:left;vertical-align:middle;}
.excel-horse-table th{position:sticky;top:0;background:#f1f5f9;color:#334155;font-weight:900;z-index:1;}
.excel-horse-table .num{width:42px;text-align:center;font-weight:900;color:#111;background:#fbfdff;}
.excel-horse-table .name{font-weight:900;color:#0f172a;white-space:nowrap;}
.excel-horse-table td:nth-child(3),.excel-horse-table td:nth-child(4){color:#64748b;max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.empty-mini{text-align:center;color:#94a3b8;padding:14px!important;}
@media(max-width:980px){.excel-race-grid{grid-template-columns:1fr}.excel-table-wrap{max-height:none}}
@media(max-width:640px){.excel-check-card{padding:12px;width:calc(100% - 10px);margin:5px auto}.excel-race-head.compact-head{grid-template-columns:1fr auto}.excel-race-head.compact-head span{grid-column:1/-1}.excel-horse-table th,.excel-horse-table td{padding:5px}.excel-horse-table td:nth-child(3),.excel-horse-table td:nth-child(4){display:none}.excel-horse-table th:nth-child(3),.excel-horse-table th:nth-child(4){display:none}}

/* v74: 엑셀 출전마 확인 팝업 높이 축소 */
.excel-check-card{max-height:94vh;margin:3vh auto;padding:12px 14px;}
.excel-check-head{padding-bottom:8px;margin-bottom:8px;}
.excel-check-head h2{font-size:18px;margin:0 0 2px;}
.excel-check-head p{font-size:12px;line-height:1.35;}
.excel-check-summary{padding:8px 10px;margin-bottom:8px;}
.excel-check-summary-line{gap:6px;font-size:12px;}
.excel-check-files{margin-top:6px;gap:5px;}
.excel-check-files span{font-size:11px;padding:4px 7px;}
.excel-race-grid{gap:7px;}
.excel-race-head.compact-head{padding:6px 8px;gap:6px;}
.excel-race-head.compact-head b{font-size:13px;}
.excel-race-head.compact-head span{font-size:11px;}
.excel-race-head.compact-head em{font-size:11px;padding:2px 6px;}
.excel-table-wrap{max-height:205px;}
.excel-horse-table{font-size:11px;line-height:1.12;}
.excel-horse-table th,.excel-horse-table td{padding:3px 5px;}
.excel-horse-table .num{width:34px;}
.excel-horse-table td:nth-child(3),.excel-horse-table td:nth-child(4){max-width:72px;}
@media(max-width:980px){.excel-table-wrap{max-height:190px}}
@media(max-width:640px){.excel-check-card{max-height:96vh;margin:2vh auto;padding:10px}.excel-horse-table{font-size:11px}.excel-horse-table th,.excel-horse-table td{padding:3px 4px}}


/* v75: 엑셀 출전마 확인은 마번 텍스트만 표시 */
.excel-race-grid.numbers-only{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;}
.excel-race-card.numbers-card{min-height:0;}
.excel-race-card.numbers-card .excel-race-head.compact-head{grid-template-columns:auto 1fr auto;padding:5px 8px;}
.excel-number-text{padding:7px 9px;font-size:13px;font-weight:900;line-height:1.45;color:#111;letter-spacing:.02em;word-break:keep-all;background:#fff;}
.excel-number-text::before{content:'마번 ';color:#64748b;font-size:12px;font-weight:800;margin-right:4px;}
.excel-horse-table,.excel-table-wrap{display:none;}
@media(max-width:1180px){.excel-race-grid.numbers-only{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:640px){.excel-race-grid.numbers-only{grid-template-columns:1fr}.excel-number-text{font-size:13px;padding:6px 8px}}

/* v76: 엑셀 마번 텍스트 크기 +2px */
.excel-number-text{font-size:15px;line-height:1.5;}
.excel-number-text::before{font-size:14px;}
@media(max-width:640px){.excel-number-text{font-size:15px}}

/* v77: 엑셀 출전마 팝업 중앙 정렬 + 안쪽 여백 */
.excel-check-modal{display:flex;align-items:center;justify-content:center;padding:22px;}
.excel-check-modal.hidden{display:none!important;}
.excel-check-card{margin:0 auto;max-height:calc(100vh - 44px);padding:20px 22px;border-radius:22px;}
.excel-check-summary{margin:10px 0 12px;padding:12px 14px;}
.excel-race-grid.numbers-only{gap:10px;}
.excel-race-card.numbers-card{padding:8px;background:#fff;border-radius:14px;}
.excel-race-card.numbers-card .excel-race-head.compact-head{padding:7px 9px;border-radius:10px;background:#f8faff;}
.excel-number-text{padding:10px 12px;margin-top:6px;border-radius:10px;background:#fbfdff;}
@media(max-width:640px){.excel-check-modal{padding:10px}.excel-check-card{max-height:calc(100vh - 20px);padding:14px}.excel-race-card.numbers-card{padding:7px}.excel-number-text{padding:9px 10px}}

/* v78: 팝업 배경 흐림 효과 */
.excel-check-backdrop{
  background:rgba(15,23,42,.48);
  backdrop-filter:blur(5px);
  -webkit-backdrop-filter:blur(5px);
}

/* v79: 전체 팝업 공통 배경 흐림 효과 */
.modal-backdrop,
.api-popup-backdrop,
.notice-popup-backdrop,
.excel-check-backdrop,
.horse-check-backdrop{
  background:rgba(15,23,42,.48)!important;
  backdrop-filter:blur(5px);
  -webkit-backdrop-filter:blur(5px);
}

/* v80: 엑셀 출전마 확인 팝업 2열 + 가로폭 축소 */
.excel-check-card{width:min(920px,calc(100% - 32px))!important;}
.excel-race-grid.numbers-only{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
@media(max-width:720px){.excel-check-card{width:calc(100% - 16px)!important}.excel-race-grid.numbers-only{grid-template-columns:1fr!important}}

/* v81: 모든 팝업 공통 중앙 정렬 */
.modal:not(.hidden),
.api-popup:not(.hidden),
.notice-popup:not(.hidden),
.excel-check-modal:not(.hidden),
.horse-check-modal:not(.hidden){
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:22px!important;
}
.modal-card,
.api-popup-card,
.notice-popup-card,
.excel-check-card,
.horse-check-dialog{
  margin:0 auto!important;
}
.modal-card{max-height:calc(100vh - 44px)!important;}
.api-popup-card{max-height:calc(100vh - 44px)!important;overflow:auto;}
.notice-popup-card{max-height:calc(100vh - 44px)!important;overflow:auto;}
.excel-check-card{max-height:calc(100vh - 44px)!important;}
.horse-check-dialog{max-height:calc(100vh - 44px)!important;}
@media(max-width:640px){
  .modal:not(.hidden),
  .api-popup:not(.hidden),
  .notice-popup:not(.hidden),
  .excel-check-modal:not(.hidden),
  .horse-check-modal:not(.hidden){padding:10px!important;}
  .modal-card,.api-popup-card,.notice-popup-card,.excel-check-card,.horse-check-dialog{max-height:calc(100vh - 20px)!important;}
}

/* v86: FTP PDF 파일 확인 영역 공간 축소 */
.pdf-box{padding:10px 14px!important;margin:4px 0 12px!important;border-radius:14px!important;align-items:center!important;gap:10px!important;}
.pdf-box h3{font-size:16px!important;margin:0 0 3px!important;}
.pdf-box p{font-size:12px!important;line-height:1.35!important;margin:0!important;}
.pdf-box .hint{font-size:12px!important;}
.pdf-actions{gap:6px!important;}
.pdf-actions button,.pdf-actions .link-btn{height:34px!important;padding:0 12px!important;font-size:12px!important;}
.excel-status-box{margin-top:6px!important;gap:4px!important;}
.excel-status-item{font-size:12px!important;gap:5px!important;}
.excel-status-item .badge{min-width:36px!important;padding:3px 7px!important;font-size:11px!important;}
@media(max-width:820px){.pdf-box{padding:10px!important}.pdf-actions{margin-top:8px}.pdf-actions button,.pdf-actions .link-btn{width:auto;min-width:120px}}

/* v87: PDF 확인 영역 글자 크기 복구 + 텍스트 입력 2열 배치 */
.pdf-box h3{font-size:1.17em!important;}
.pdf-box p,.pdf-box .hint{font-size:14px!important;line-height:1.55!important;}
.excel-status-item{font-size:13px!important;}
.excel-status-item .badge{font-size:12px!important;}
.prompt-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:10px;}
.prompt-row label{margin-bottom:16px;}
.prompt-row textarea{min-height:88px;}
@media(max-width:820px){.prompt-row{grid-template-columns:1fr;gap:0}.prompt-row textarea{min-height:96px}}


/* v89: 보정 텍스트 내용보기 버튼 */
.prompt-label-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;font-weight:900;color:#34405c;}
.prompt-label-with-btn{gap:0;}
.mini-view-btn{height:28px!important;padding:0 10px!important;border-radius:999px!important;background:#edf3ff!important;color:var(--primary)!important;font-size:12px!important;font-weight:900!important;white-space:nowrap;}
.mini-view-btn:disabled{opacity:.45;cursor:not-allowed;}
.prompt-label-with-btn textarea{margin-top:0;}


/* v96: '앞표지 PDF 추출 내용 / 보정 텍스트' 전용 디자인 - 기존 엑셀 출전마 확인 스타일 참고 */
.notice-popup.sheet-text-view .notice-popup-card{
  width:min(900px,calc(100% - 32px))!important;
  max-height:calc(100vh - 48px)!important;
  margin:0!important;
  padding:22px!important;
  border-radius:22px!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
}
.notice-popup.sheet-text-view .notice-popup-head{
  flex:0 0 auto!important;
  margin-bottom:14px!important;
  padding-bottom:14px!important;
}
.notice-popup.sheet-text-view .notice-popup-body{
  flex:1 1 auto!important;
  max-height:none!important;
  overflow:auto!important;
  background:transparent!important;
  border:0!important;
  padding:0!important;
  font-weight:700!important;
}
.sn-summary{border:1px solid var(--line);background:#f8faff;border-radius:16px;padding:14px;margin-bottom:14px;color:#34405c;font-size:14px;font-weight:900;}
.sn-summary strong{color:var(--primary);font-size:18px;}
.sn-table-wrap{border:1px solid var(--line);border-radius:16px;overflow:auto;background:#fff;box-shadow:0 8px 20px rgba(18,26,43,.06);}
.sn-table{width:100%;min-width:760px;border-collapse:separate;border-spacing:0;font-size:14px;}
.sn-table th{background:#f8faff;color:#34405c;font-weight:900;text-align:center;padding:12px 10px;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:1;}
.sn-table td{padding:11px 10px;border-bottom:1px solid #edf1f7;text-align:center;vertical-align:middle;background:#fff;}
.sn-table tr:nth-child(even) td{background:#fbfcff;}
.sn-table tr:hover td{background:#f3f7ff;}
.sn-track{display:inline-flex;align-items:center;justify-content:center;min-width:54px;border-radius:999px;padding:6px 10px;background:#edf3ff;color:var(--primary);font-weight:900;}
.sn-race{font-weight:900;color:#172033;font-size:15px;}
.sn-nums{display:flex;flex-wrap:wrap;gap:5px;align-items:center;justify-content:center;}
.sn-nums b{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 7px;border-radius:9px;background:#eef2ff;color:#1e40af;font-size:14px;font-weight:900;line-height:1;}
.sn-nums.apply b{background:#ecfdf5;color:#047857;border:1px solid #bbf7d0;}
.sn-nums.comp b{background:#eef4ff;color:#1d4ed8;border:1px solid #dbe7ff;}
.sn-nums.box b{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa;}
.sn-nums.circle b{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca;}
.sn-empty{color:#94a3b8;font-weight:800;}
.sn-empty-box{padding:26px;border:1px dashed var(--line);border-radius:16px;background:#fbfcff;color:var(--muted);font-size:15px;font-weight:900;text-align:center;}
.sn-plain{border:1px solid var(--line);border-radius:16px;background:#fff;overflow:hidden;}
.sn-plain pre{margin:0;padding:16px;white-space:pre-wrap;word-break:break-word;font-family:inherit;font-size:15px;line-height:1.7;color:#172033;}
@media(max-width:720px){.notice-popup.sheet-text-view .notice-popup-card{width:calc(100% - 20px)!important;max-height:calc(100vh - 20px)!important;padding:16px!important}.sn-table{min-width:720px}.sn-nums b{min-width:27px;height:27px;font-size:13px}}

/* v97: 앞표지 PDF 추출 내용 / 보정 텍스트 본문 폰트 축소 */
.notice-popup.sheet-text-view .notice-popup-body{font-size:13px!important;}
.sn-summary{font-size:13px!important;padding:10px 12px!important;margin-bottom:10px!important;}
.sn-summary strong{font-size:15px!important;}
.sn-table{font-size:13px!important;min-width:700px!important;}
.sn-table th{font-size:12px!important;padding:9px 8px!important;}
.sn-table td{font-size:13px!important;padding:8px 8px!important;}
.sn-race{font-size:13px!important;}
.sn-track{min-width:48px!important;padding:5px 9px!important;font-size:13px!important;}
.sn-nums{gap:4px!important;}
.sn-nums b{min-width:25px!important;height:25px!important;padding:0 6px!important;border-radius:8px!important;font-size:13px!important;}
.sn-empty-box{font-size:13px!important;padding:22px!important;}
.sn-plain pre{font-size:13px!important;line-height:1.6!important;padding:14px!important;}
@media(max-width:720px){.sn-table{min-width:660px!important}.sn-nums b{min-width:24px!important;height:24px!important;font-size:12px!important}}


/* v100: 결과 카드 배당 범주 버튼 */
.bet-category-buttons{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap;max-width:360px;}
.bet-category-btn{height:32px!important;padding:0 11px!important;border-radius:999px!important;border:1px solid #d4dbe8!important;background:#fff!important;color:#334155!important;font-size:13px!important;font-weight:900!important;line-height:1!important;cursor:default!important;box-shadow:none!important;}
.bet-category-btn.active{background:#111827!important;color:#fff!important;border-color:#111827!important;}
@media(max-width:640px){.bet-category-buttons{justify-content:flex-start;max-width:none}.bet-category-btn{height:30px!important;font-size:12px!important;padding:0 9px!important}}


/* v102: 배당 범주 버튼 실시간 적용 */
.bet-category-btn{cursor:pointer!important;transition:background .18s ease,color .18s ease,border-color .18s ease,transform .12s ease!important;}
.bet-category-btn:hover{border-color:#111827!important;color:#111827!important;transform:translateY(-1px);}
.bet-category-btn.active{background:#111827!important;color:#fff!important;border-color:#111827!important;}


/* v105: 배당 범주 버튼을 자세히 보기 버튼 위에 배치 */
.result-card > .bet-category-buttons{justify-content:flex-start!important;max-width:none!important;margin-top:2px;margin-bottom:2px;}
.result-card > .bet-category-buttons .bet-category-btn{height:34px!important;}


/* v106: 배당 범주 버튼 4개 한 줄 표시용 크기 축소 */
.result-card > .bet-category-buttons{
  flex-wrap:nowrap!important;
  gap:4px!important;
  width:100%!important;
  justify-content:flex-start!important;
}
.result-card > .bet-category-buttons .bet-category-btn{
  height:28px!important;
  min-width:0!important;
  padding:0 8px!important;
  font-size:12px!important;
  letter-spacing:-0.04em!important;
  flex:0 0 auto!important;
}
@media(max-width:640px){
  .result-card > .bet-category-buttons{gap:3px!important;}
  .result-card > .bet-category-buttons .bet-category-btn{
    height:27px!important;
    padding:0 6px!important;
    font-size:11px!important;
  }
}


/* v109: 경주 지역별 색상 구분 - 서울 파랑, 부산 녹색, 제주 빨강 */
.race-pill.track-seoul,.track-badge.track-seoul{background:#eaf2ff!important;color:#2458d8!important;border:1px solid #bcd1ff!important;}
.race-pill.track-busan,.track-badge.track-busan{background:#eaf8ef!important;color:#168349!important;border:1px solid #bfe8cf!important;}
.race-pill.track-jeju,.track-badge.track-jeju{background:#fff0f0!important;color:#d93333!important;border:1px solid #ffc9c9!important;}
.track-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:6px 11px;font-weight:900;white-space:nowrap;}
.race-track-btn.track-seoul{border-color:#bcd1ff!important;color:#2458d8!important;background:#f7faff!important;}
.race-track-btn.track-busan{border-color:#bfe8cf!important;color:#168349!important;background:#f6fff9!important;}
.race-track-btn.track-jeju{border-color:#ffc9c9!important;color:#d93333!important;background:#fff8f8!important;}
.race-track-btn.track-seoul.active{background:#2458d8!important;color:#fff!important;border-color:#2458d8!important;box-shadow:0 6px 16px rgba(36,88,216,.18)!important;}
.race-track-btn.track-busan.active{background:#168349!important;color:#fff!important;border-color:#168349!important;box-shadow:0 6px 16px rgba(22,131,73,.18)!important;}
.race-track-btn.track-jeju.active{background:#d93333!important;color:#fff!important;border-color:#d93333!important;box-shadow:0 6px 16px rgba(217,51,51,.18)!important;}


/* v111: FTP PDF 파일 확인 드롭다운 + 간략 업로드 상태 */
.pdf-dropdown-box{display:block!important;padding:12px 14px!important;}
.pdf-summary-row{display:flex;align-items:center;gap:10px;width:100%;}
.pdf-drop-toggle{height:34px!important;padding:0 12px!important;border-radius:999px!important;background:#111827!important;color:#fff!important;font-size:13px!important;font-weight:900!important;white-space:nowrap!important;display:inline-flex;align-items:center;gap:8px;width:auto!important;}
.pdf-drop-toggle span{font-size:10px;line-height:1;}
.pdf-quick-status{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0;flex:1;}
.pdf-quick-chip{display:inline-flex;align-items:center;justify-content:center;height:26px;padding:0 9px;border-radius:999px;font-size:12px;font-weight:900;border:1px solid #d9e2ef;background:#f8fafc;color:#334155;white-space:nowrap;}
.pdf-quick-chip.ok{background:#ecfdf5!important;color:#047857!important;border-color:#a7f3d0!important;}
.pdf-quick-chip.missing{background:#fef2f2!important;color:#b91c1c!important;border-color:#fecaca!important;}
.pdf-quick-chip.pending{background:#f1f5f9!important;color:#475569!important;border-color:#cbd5e1!important;}
.pdf-summary-row .pdf-actions{margin-left:auto;display:flex;align-items:center;justify-content:flex-end;gap:6px;flex:0 0 auto;}
.pdf-drop-body{margin-top:10px;border-top:1px solid var(--line);padding-top:10px;}
.pdf-drop-body.hidden{display:none!important;}
@media(max-width:860px){.pdf-summary-row{flex-wrap:wrap}.pdf-quick-status{order:3;flex-basis:100%}.pdf-summary-row .pdf-actions{margin-left:0}.pdf-drop-toggle{width:auto!important}}
@media(max-width:560px){.pdf-summary-row .pdf-actions{width:100%;justify-content:flex-start;flex-wrap:wrap}.pdf-quick-chip{font-size:11px;padding:0 7px}.pdf-drop-toggle{width:100%!important;justify-content:center}}

/* v115: 상단 타이틀 텍스트 중앙 정렬 */
.hero{text-align:center!important;}
.hero .eyebrow,.hero h1,.hero p{text-align:center!important;}

/* v116: 작은 화면에서 배당 버튼이 결과 카드 밖으로 넘치지 않도록 보정 */
.result-card > .bet-category-buttons{max-width:100%!important;overflow:hidden!important;}
@media(max-width:720px){
  .result-card > .bet-category-buttons{
    flex-wrap:wrap!important;
    gap:5px!important;
    width:100%!important;
  }
  .result-card > .bet-category-buttons .bet-category-btn{
    flex:1 1 calc(50% - 5px)!important;
    width:auto!important;
    min-width:0!important;
    max-width:calc(50% - 3px)!important;
    padding:0 4px!important;
    font-size:11px!important;
    letter-spacing:-0.06em!important;
  }
}
@media(max-width:360px){
  .result-card > .bet-category-buttons .bet-category-btn{
    font-size:10px!important;
    padding:0 2px!important;
  }
}

/* v117: 작은 화면에서도 배당 버튼 4개를 한 줄로 유지 */
.result-card > .bet-category-buttons{
  flex-wrap:nowrap!important;
  gap:3px!important;
  width:100%!important;
  max-width:100%!important;
  overflow:visible!important;
}
.result-card > .bet-category-buttons .bet-category-btn{
  flex:1 1 0!important;
  width:0!important;
  min-width:0!important;
  max-width:none!important;
  height:27px!important;
  padding:0 2px!important;
  font-size:11px!important;
  letter-spacing:-0.08em!important;
  white-space:nowrap!important;
}
@media(max-width:420px){
  .result-card > .bet-category-buttons{gap:2px!important;}
  .result-card > .bet-category-buttons .bet-category-btn{
    height:26px!important;
    font-size:10px!important;
    padding:0 1px!important;
  }
}
@media(max-width:340px){
  .result-card > .bet-category-buttons .bet-category-btn{
    font-size:9px!important;
    letter-spacing:-0.1em!important;
  }
}


/* v118: 출발시간을 경주명 오른쪽으로 이동 */
.race-title-time{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0;}
.race-time-pill{display:inline-flex;align-items:center;justify-content:center;height:34px;padding:0 12px;border-radius:999px;background:#f1f5f9;color:#334155;border:1px solid #dbe3f1;font-size:14px;font-weight:900;white-space:nowrap;}
@media(max-width:560px){.race-title-time{gap:6px}.race-time-pill{height:30px;padding:0 9px;font-size:12px}}

/* v119: 출발시간은 박스 없이 텍스트만 표시 */
.race-time-pill{
  height:auto!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:#334155!important;
  font-size:14px!important;
  font-weight:900!important;
  line-height:1.2!important;
}
@media(max-width:560px){.race-time-pill{height:auto!important;padding:0!important;font-size:12px!important}}


/* v120: 배당 버튼별 색상 구분 */
.bet-category-btn.bet-low{background:#ecfdf5!important;color:#047857!important;border-color:#86efac!important;}
.bet-category-btn.bet-mid{background:#eff6ff!important;color:#2563eb!important;border-color:#bfdbfe!important;}
.bet-category-btn.bet-high{background:#fff7ed!important;color:#ea580c!important;border-color:#fed7aa!important;}
.bet-category-btn.bet-super{background:#fef2f2!important;color:#dc2626!important;border-color:#fecaca!important;}
.bet-category-btn.bet-low.active{background:#16a34a!important;color:#fff!important;border-color:#16a34a!important;}
.bet-category-btn.bet-mid.active{background:#2563eb!important;color:#fff!important;border-color:#2563eb!important;}
.bet-category-btn.bet-high.active{background:#f97316!important;color:#fff!important;border-color:#f97316!important;}
.bet-category-btn.bet-super.active{background:#dc2626!important;color:#fff!important;border-color:#dc2626!important;}
.bet-category-btn.bet-low:hover{border-color:#16a34a!important;color:#047857!important;}
.bet-category-btn.bet-mid:hover{border-color:#2563eb!important;color:#2563eb!important;}
.bet-category-btn.bet-high:hover{border-color:#f97316!important;color:#ea580c!important;}
.bet-category-btn.bet-super:hover{border-color:#dc2626!important;color:#dc2626!important;}
.bet-category-btn.active:hover{color:#fff!important;}

/* v121: 선택되지 않은 배당 버튼은 회색톤으로 정리 */
.bet-category-btn.bet-low,
.bet-category-btn.bet-mid,
.bet-category-btn.bet-high,
.bet-category-btn.bet-super{
  background:#f3f4f6!important;
  color:#64748b!important;
  border-color:#d1d5db!important;
}
.bet-category-btn.bet-low:hover,
.bet-category-btn.bet-mid:hover,
.bet-category-btn.bet-high:hover,
.bet-category-btn.bet-super:hover{
  background:#e5e7eb!important;
  color:#334155!important;
  border-color:#cbd5e1!important;
}
.bet-category-btn.bet-low.active{background:#16a34a!important;color:#fff!important;border-color:#16a34a!important;}
.bet-category-btn.bet-mid.active{background:#2563eb!important;color:#fff!important;border-color:#2563eb!important;}
.bet-category-btn.bet-high.active{background:#f97316!important;color:#fff!important;border-color:#f97316!important;}
.bet-category-btn.bet-super.active{background:#dc2626!important;color:#fff!important;border-color:#dc2626!important;}
.bet-category-btn.active:hover{color:#fff!important;filter:brightness(.96);}

/* v122: 배당 버튼 텍스트 두께 완화 */
.bet-category-btn{
  font-weight:700!important;
}
.result-card > .bet-category-buttons .bet-category-btn{
  font-weight:700!important;
}

/* v123: 배당 버튼 텍스트 두께 한 단계 추가 완화 */
.bet-category-btn,
.result-card > .bet-category-buttons .bet-category-btn{
  font-weight:600!important;
}

/* v124: 배당 버튼 텍스트 두께 400으로 고정 */
button.bet-category-btn,
.bet-category-btn,
.result-card > .bet-category-buttons .bet-category-btn,
.result-card > .bet-category-buttons button.bet-category-btn{
  font-weight:400!important;
}


/* v127: 경주 카드 날씨 자동 적용 상태 표시 */
.weather-status-line{
  display:flex;
  align-items:center;
  gap:7px;
  width:100%;
  padding:7px 10px;
  border:1px solid #e2e8f0;
  background:#f8fafc;
  border-radius:12px;
  color:#334155;
  font-size:13px;
  line-height:1.35;
  box-shadow:none;
}
.weather-status-line span{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:22px;
  padding:0 8px;
  border-radius:999px;
  background:#e5e7eb;
  color:#374151;
  font-size:12px;
  font-weight:500;
}
.weather-status-line b{
  font-weight:500;
  color:#111827;
  word-break:keep-all;
  overflow-wrap:anywhere;
}
@media(max-width:640px){
  .weather-status-line{font-size:12px;padding:6px 8px;gap:5px;}
  .weather-status-line span{height:20px;font-size:11px;padding:0 7px;}
}


/* v130: FTP PDF 파일 확인 영역 - 날씨 엑셀 상태 표시 */
.excel-status-item .weather-badge{background:#e0f2fe!important;color:#0369a1!important;border-color:#bae6fd!important;}
.pdf-quick-chip.weather-chip.ok{background:#e0f2fe!important;color:#0369a1!important;border-color:#7dd3fc!important;}
.pdf-quick-chip.weather-chip.missing{background:#f1f5f9!important;color:#64748b!important;border-color:#cbd5e1!important;}

/* v135: FTP 드롭다운 버튼 + 날씨 정상 배지 스타일 통합 */
.pdf-drop-toggle{
  background:var(--primary)!important;
  color:#fff!important;
  border-color:var(--primary)!important;
  box-shadow:none!important;
}
.pdf-drop-toggle:hover,
.pdf-drop-toggle:focus{
  background:#2457e6!important;
  color:#fff!important;
  border-color:#2457e6!important;
}
.pdf-quick-chip.weather-chip.ok,
.pdf-quick-chip.ok.weather-chip{
  background:#ecfdf5!important;
  color:#047857!important;
  border-color:#a7f3d0!important;
}
.excel-status-item.ok .weather-badge,
.excel-status-item .weather-badge.ok{
  background:#e9f8ef!important;
  color:#12823b!important;
  border-color:#a7f3d0!important;
}


/* v137: 관리자 모드 / 사용자 모드 */
.mode-bar{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:14px;flex-wrap:wrap}
.mode-badge{display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 13px;border-radius:999px;font-size:13px;font-weight:700;border:1px solid #d7deee;background:#fff;color:#475569}
.mode-badge.admin{background:#eef4ff;border-color:#bfd4ff;color:#2458d6}
.mode-badge.user{background:#f8fafc;border-color:#d7deee;color:#475569}
.admin-login-btn{width:auto!important;height:34px!important;padding:0 15px!important;border-radius:999px!important;background:#111827!important;color:#fff!important;font-size:13px!important;font-weight:700!important}
.admin-login-modal.hidden{display:none!important}
.admin-login-modal{position:fixed;inset:0;z-index:10050}
.admin-login-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.55);backdrop-filter:blur(4px)}
.admin-login-card{position:relative;width:min(380px,calc(100% - 28px));margin:18vh auto 0;background:#fff;border-radius:20px;border:1px solid #dce5f5;box-shadow:0 26px 80px rgba(15,23,42,.25);padding:22px}
.admin-login-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.admin-login-head strong{font-size:20px;color:#111827}
.admin-login-close{width:auto!important;height:34px!important;padding:0 12px!important;font-size:13px!important}
.admin-password-input{height:44px!important;border-radius:12px!important;margin:10px 0 8px!important;padding:0 13px!important;font-size:15px!important}
.admin-login-submit{width:100%!important;margin-top:8px!important}
.admin-login-message{min-height:20px;font-size:13px;font-weight:700;color:#64748b}
.admin-login-message.error{color:#dc2626}
body.user-mode .api-panel,
body.user-mode .pdf-dropdown-box,
body.user-mode .prompt-row,
body.user-mode .track-button-box,
body.user-mode .analyze-button-row .primary,
body.user-mode .result-actions{display:none!important}
body.user-mode .analyze-button-row{justify-content:center!important;margin-top:18px}
body.user-mode .function-analyze-btn{background:var(--primary)!important;color:#fff!important;min-width:220px}
body.user-mode .condition-box{margin-top:16px}
body.admin-mode .function-analyze-btn{ }
@media(max-width:640px){.admin-login-card{margin-top:13vh}.mode-bar{gap:8px}.admin-login-btn,.mode-badge{font-size:12px!important}}

/* v138: 사용자 모드 화면 정리
   - 경주 조건 숨김
   - 함수 분석 후 하단 표(table-wrap) 숨김 */
body.user-mode .condition-box:not(.track-button-box){
  display:none!important;
}
body.user-mode #resultPanel > .table-wrap{
  display:none!important;
}

/* v142: 전체 배경 흰색으로 변경 */
:root{
  --bg:#ffffff!important;
}
html,
body{
  background:#ffffff!important;
}
body{
  background:#ffffff!important;
}

/* v143: hero subtitle black */
.eyebrow{color:#111!important;}


/* v146: 7~8월 무료 이용 안내 팝업 */
.free-use-modal.hidden{display:none!important;}
.free-use-modal{
  position:fixed;
  inset:0;
  z-index:20000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
}
.free-use-backdrop{
  position:absolute;
  inset:0;
  background:rgba(15,23,42,.55);
}
.free-use-card{
  position:relative;
  width:min(420px,calc(100% - 24px));
  background:#fff;
  border-radius:22px;
  box-shadow:0 24px 70px rgba(0,0,0,.28);
  padding:30px 24px 24px;
  text-align:center;
  border:1px solid #e5eaf4;
}
.free-use-card h2{
  margin:0 0 14px;
  font-size:24px;
  color:#111;
  font-weight:900;
}
.free-use-main{
  margin:0 0 8px;
  font-size:20px;
  line-height:1.45;
  color:#111;
  font-weight:900;
}
.free-use-sub{
  margin:0 0 22px;
  font-size:15px;
  line-height:1.55;
  color:#444;
  font-weight:700;
}
.free-use-close{
  width:100%;
  height:44px;
  border-radius:999px;
  background:var(--primary,#2f66ff);
  color:#fff;
  font-weight:900;
}
@media(max-width:640px){
  .free-use-card{padding:26px 20px 20px;border-radius:18px;}
  .free-use-card h2{font-size:22px;}
  .free-use-main{font-size:18px;}
}


/* v149: 무료 이용 안내 팝업 배경 흐림 효과 강제 적용 */
.free-use-modal{
  background:rgba(15,23,42,.38)!important;
  backdrop-filter:blur(8px)!important;
  -webkit-backdrop-filter:blur(8px)!important;
}
.free-use-backdrop{
  position:absolute!important;
  inset:0!important;
  background:rgba(15,23,42,.48)!important;
  backdrop-filter:blur(8px)!important;
  -webkit-backdrop-filter:blur(8px)!important;
}
.free-use-card{
  z-index:1!important;
}


/* v150: 금/토/일 경주 날짜 선택 카드 + 달력 */
.race-date-field{
  grid-column:1 / -1;
  display:block;
  margin-bottom:16px;
}
.race-date-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
  font-weight:900;
  color:#34405c;
}
.race-date-top input{
  max-width:190px;
}
.race-calendar-mini{
  width:100%;
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  padding:14px;
  margin-bottom:14px;
  box-shadow:0 8px 24px rgba(18,26,43,.05);
}
.race-cal-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:10px;
}
.race-cal-head strong{
  font-size:18px;
  color:#111;
}
.race-cal-nav{
  width:36px;
  height:36px;
  padding:0;
  border-radius:50%;
  background:#edf3ff;
  color:var(--primary);
  font-size:24px;
  line-height:1;
}
.race-cal-week,
.race-cal-grid{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:7px;
}
.race-cal-week span{
  text-align:center;
  font-size:12px;
  font-weight:900;
  color:#64748b;
  padding-bottom:2px;
}
.race-cal-cell{
  height:38px;
  border-radius:12px;
  padding:0;
  background:#f6f8fc;
  color:#9aa4b2;
  font-weight:900;
  border:1px solid transparent;
  cursor:default;
}
.race-cal-cell.empty{
  background:transparent;
}
.race-cal-cell.has-race{
  color:#fff;
  cursor:pointer;
  transform:translateY(0);
  transition:.18s ease;
}
.race-cal-cell.has-race:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 18px rgba(0,0,0,.14);
}
.race-cal-cell.fri{background:#484a50;}
.race-cal-cell.sat{background:#2f8df4;}
.race-cal-cell.sun{background:#ff424b;}
.race-cal-cell.active{
  outline:3px solid rgba(17,17,17,.18);
  box-shadow:0 0 0 4px rgba(255,255,255,.9) inset;
}
.race-day-cards{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:15px;
}
.race-day-card{
  min-height:150px;
  border-radius:28px;
  padding:26px 18px 22px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  color:#fff;
  border:0;
  transition:.18s ease;
  box-shadow:none;
}
.race-day-card:hover{
  transform:translateY(-4px);
  box-shadow:0 16px 34px rgba(0,0,0,.18);
}
.race-day-card.active{
  outline:4px solid rgba(17,17,17,.22);
  box-shadow:0 0 0 5px rgba(255,255,255,.95) inset, 0 16px 34px rgba(0,0,0,.18);
}
.race-day-card.fri{background:#484a50;}
.race-day-card.sat{background:#2f8df4;}
.race-day-card.sun{background:#ff424b;}
.race-day-card .race-day-date{
  font-size:26px;
  font-weight:900;
  line-height:1;
}
.race-day-card strong{
  font-size:40px;
  line-height:1.05;
  letter-spacing:-.04em;
}
.race-day-card em{
  font-style:normal;
  font-size:24px;
  line-height:1;
  font-weight:900;
}
@media(max-width:820px){
  .race-date-top{display:block;}
  .race-date-top input{max-width:none;margin-top:8px;}
  .race-day-cards{gap:9px;}
  .race-day-card{min-height:116px;border-radius:20px;padding:18px 8px;}
  .race-day-card .race-day-date{font-size:19px;}
  .race-day-card strong{font-size:28px;}
  .race-day-card em{font-size:17px;}
  .race-calendar-mini{padding:10px;border-radius:14px;}
  .race-cal-grid,.race-cal-week{gap:4px;}
  .race-cal-cell{height:34px;border-radius:9px;}
}
@media(max-width:430px){
  .race-day-card{min-height:98px;border-radius:17px;}
  .race-day-card .race-day-date{font-size:16px;}
  .race-day-card strong{font-size:23px;}
  .race-day-card em{font-size:15px;}
}


/* v151: 날짜 기본 드롭다운 제거 + 달력 드롭다운 + FTP 데이터 있는 날짜만 색상 표시 */
.race-date-top{display:none!important;}
.race-date-field input[type="date"]{display:none!important;}
.race-calendar-toggle{
  width:100%;
  height:auto;
  min-height:54px;
  border-radius:18px;
  padding:10px 16px;
  background:#fff;
  color:#111;
  border:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  box-shadow:0 8px 24px rgba(18,26,43,.05);
  margin-bottom:12px;
}
.race-calendar-toggle span{
  color:#64748b;
  font-size:14px;
  font-weight:900;
}
.race-calendar-toggle strong{
  font-size:18px;
  font-weight:900;
  color:#111;
  margin-left:auto;
}
.race-calendar-toggle em{
  font-style:normal;
  color:var(--primary);
  font-weight:900;
  transition:.18s ease;
}
.race-calendar-toggle.open em{
  transform:rotate(180deg);
}
.race-calendar-mini.hidden{
  display:none!important;
}
.race-day-card.no-data,
.race-day-card.checking{
  background:#e5e7eb!important;
  color:#9aa2af!important;
}
.race-day-card.no-data:hover,
.race-day-card.checking:hover{
  transform:none;
  box-shadow:none;
}
.race-day-card.has-data.fri{background:#484a50!important;color:#fff!important;}
.race-day-card.has-data.sat{background:#2f8df4!important;color:#fff!important;}
.race-day-card.has-data.sun{background:#ff424b!important;color:#fff!important;}
.race-day-card.no-data em,
.race-day-card.checking em{
  color:#8a94a3;
}
.race-cal-cell.has-race.no-data,
.race-cal-cell.has-race.checking{
  background:#e5e7eb!important;
  color:#9aa2af!important;
  box-shadow:none!important;
}
.race-cal-cell.has-race.has-data.fri{background:#484a50!important;color:#fff!important;}
.race-cal-cell.has-race.has-data.sat{background:#2f8df4!important;color:#fff!important;}
.race-cal-cell.has-race.has-data.sun{background:#ff424b!important;color:#fff!important;}
.race-cal-cell.has-race.no-data:hover,
.race-cal-cell.has-race.checking:hover{
  transform:none;
  box-shadow:none;
}
@media(max-width:640px){
  .race-calendar-toggle{
    display:block;
    text-align:left;
  }
  .race-calendar-toggle strong{
    display:block;
    margin:4px 0 0;
  }
  .race-calendar-toggle em{
    position:absolute;
    right:18px;
    margin-top:-20px;
  }
}


/* v152: 금/토/일 선택 버튼 가로폭 축소 */
.race-day-cards{
  max-width:1320px!important;
  margin:0 auto!important;
  gap:22px!important;
}
.race-day-card{
  min-height:138px!important;
  border-radius:26px!important;
  padding:22px 14px 20px!important;
}
.race-day-card .race-day-date{
  font-size:24px!important;
}
.race-day-card strong{
  font-size:36px!important;
}
.race-day-card em{
  font-size:22px!important;
}
@media(max-width:820px){
  .race-day-cards{
    max-width:none!important;
    gap:9px!important;
  }
  .race-day-card{
    min-height:106px!important;
    border-radius:18px!important;
    padding:15px 8px!important;
  }
  .race-day-card .race-day-date{
    font-size:17px!important;
  }
  .race-day-card strong{
    font-size:25px!important;
  }
  .race-day-card em{
    font-size:16px!important;
  }
}


/* v155: 경주 날짜 라벨/드롭다운 스타일 정리 */
.race-date-field{
  display:grid!important;
  gap:8px!important;
  margin-bottom:16px!important;
  font-weight:900!important;
  color:#34405c!important;
}
.race-calendar-label{
  display:block!important;
  font-weight:900!important;
  color:#34405c!important;
}
.race-calendar-toggle{
  position:relative!important;
  width:100%!important;
  height:42px!important;
  min-height:42px!important;
  border:1px solid #c7d1e4!important;
  border-radius:12px!important;
  background:#fff!important;
  color:#111!important;
  padding:0 42px 0 10px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:8px!important;
  box-shadow:none!important;
  margin-bottom:12px!important;
  text-align:left!important;
}
.race-calendar-toggle span{
  display:none!important;
}
.race-calendar-toggle strong{
  display:block!important;
  width:100%!important;
  margin:0!important;
  color:#111!important;
  font-size:14px!important;
  font-weight:700!important;
  line-height:42px!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.race-calendar-toggle em{
  position:absolute!important;
  right:14px!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  margin:0!important;
  color:#647089!important;
  font-size:12px!important;
  line-height:1!important;
  pointer-events:none!important;
  transition:.18s ease!important;
}
.race-calendar-toggle.open em{
  transform:translateY(-50%) rotate(180deg)!important;
}
@media(max-width:640px){
  .race-calendar-toggle{
    display:flex!important;
    height:42px!important;
    min-height:42px!important;
    padding:0 40px 0 10px!important;
    text-align:left!important;
  }
  .race-calendar-toggle strong{
    display:block!important;
    margin:0!important;
    line-height:42px!important;
  }
  .race-calendar-toggle em{
    position:absolute!important;
    right:13px!important;
    top:50%!important;
    margin:0!important;
    transform:translateY(-50%)!important;
  }
  .race-calendar-toggle.open em{
    transform:translateY(-50%) rotate(180deg)!important;
  }
}


/* v158: 금/토/일 카드 크기 확대 + 데이터 없음 텍스트 축소 */
.race-day-cards{
  max-width:940px!important;
  margin:0 auto!important;
  gap:24px!important;
}
.race-day-card{
  min-height:190px!important;
  border-radius:32px!important;
  padding:30px 20px 24px!important;
}
.race-day-card .race-day-date{
  font-size:34px!important;
  line-height:1!important;
}
.race-day-card strong{
  font-size:54px!important;
  line-height:1.02!important;
}
.race-day-card em{
  font-size:22px!important;
  line-height:1!important;
  font-weight:700!important;
}
.race-day-card.no-data em,
.race-day-card.checking em{
  font-size:21px!important;
  font-weight:600!important;
  color:#8d98a8!important;
}
.race-day-card.no-data,
.race-day-card.checking{
  color:#96a1b1!important;
}
@media(max-width:820px){
  .race-day-cards{
    max-width:none!important;
    gap:10px!important;
  }
  .race-day-card{
    min-height:132px!important;
    border-radius:22px!important;
    padding:20px 8px 16px!important;
  }
  .race-day-card .race-day-date{
    font-size:22px!important;
  }
  .race-day-card strong{
    font-size:34px!important;
  }
  .race-day-card em{
    font-size:15px!important;
    font-weight:700!important;
  }
  .race-day-card.no-data em,
  .race-day-card.checking em{
    font-size:14px!important;
    font-weight:600!important;
  }
}
@media(max-width:430px){
  .race-day-card{
    min-height:112px!important;
    border-radius:18px!important;
  }
  .race-day-card .race-day-date{
    font-size:18px!important;
  }
  .race-day-card strong{
    font-size:28px!important;
  }
  .race-day-card em{
    font-size:13px!important;
  }
  .race-day-card.no-data em,
  .race-day-card.checking em{
    font-size:12px!important;
    font-weight:600!important;
  }
}


/* v160: 사용자 모드에서 지역 선택 숨김 */
body.user-mode label:has(#trackSelect){
  display:none!important;
}


/* v161: 사용자 모드에서도 결과 정렬 선택 허용 */
body.user-mode .result-actions{
  display:flex!important;
  justify-content:flex-end!important;
  align-items:end!important;
  gap:10px!important;
  margin-top:10px!important;
}
body.user-mode .result-actions .sort-label{
  display:block!important;
  min-width:220px!important;
}
body.user-mode .result-actions #copyBtn{
  display:none!important;
}
@media(max-width:640px){
  body.user-mode .result-actions{
    width:100%!important;
    justify-content:stretch!important;
  }
  body.user-mode .result-actions .sort-label{
    width:100%!important;
    min-width:0!important;
  }
}


/* v162: 달력에서 월/화/수/목 숫자 박스 제거 */
.race-cal-cell:not(.has-race):not(.empty){
  background:transparent!important;
  border-color:transparent!important;
  box-shadow:none!important;
  border-radius:0!important;
  color:#9aa4b2!important;
  cursor:default!important;
}
.race-cal-cell:not(.has-race):not(.empty):disabled{
  opacity:1!important;
}
.race-cal-cell:not(.has-race):not(.empty).active{
  outline:none!important;
  box-shadow:none!important;
}


/* v163: 달력 드롭다운을 팝업 형태로 변경 */
.race-calendar-mini:not(.hidden){
  position:fixed!important;
  left:50%!important;
  top:50%!important;
  transform:translate(-50%,-50%)!important;
  width:min(760px,calc(100vw - 28px))!important;
  max-height:calc(100vh - 40px)!important;
  overflow:auto!important;
  z-index:21000!important;
  margin:0!important;
  padding:20px!important;
  border-radius:24px!important;
  box-shadow:0 26px 80px rgba(0,0,0,.28)!important;
}
.race-calendar-mini:not(.hidden)::before{
  content:""!important;
  position:fixed!important;
  inset:-100vh!important;
  background:rgba(15,23,42,.48)!important;
  backdrop-filter:blur(8px)!important;
  -webkit-backdrop-filter:blur(8px)!important;
  z-index:-1!important;
}
.race-cal-head{
  position:sticky;
  top:0;
  z-index:2;
  background:#fff;
  padding-bottom:10px;
}
@media(max-width:640px){
  .race-calendar-mini:not(.hidden){
    width:calc(100vw - 18px)!important;
    max-height:calc(100vh - 24px)!important;
    padding:14px!important;
    border-radius:18px!important;
  }
}


/* v164: 달력 팝업 흰색 바탕 + 여백 확대 + 스크롤바 방지 */
.race-calendar-mini:not(.hidden){
  background:#fff!important;
  width:min(880px,calc(100vw - 80px))!important;
  max-height:none!important;
  overflow:visible!important;
  padding:34px 42px 38px!important;
  border-radius:28px!important;
}
.race-calendar-mini:not(.hidden)::before{
  background:rgba(255,255,255,.72)!important;
  backdrop-filter:blur(8px)!important;
  -webkit-backdrop-filter:blur(8px)!important;
}
.race-calendar-mini .race-cal-head{
  background:#fff!important;
  position:relative!important;
  top:auto!important;
  padding-bottom:18px!important;
  margin-bottom:6px!important;
}
.race-calendar-mini .race-cal-grid,
.race-calendar-mini .race-cal-week{
  gap:10px!important;
}
.race-calendar-mini .race-cal-cell{
  height:42px!important;
}
@media(max-width:820px){
  .race-calendar-mini:not(.hidden){
    width:calc(100vw - 32px)!important;
    padding:24px 18px 26px!important;
    border-radius:22px!important;
  }
  .race-calendar-mini .race-cal-grid,
  .race-calendar-mini .race-cal-week{
    gap:6px!important;
  }
  .race-calendar-mini .race-cal-cell{
    height:36px!important;
  }
}
@media(max-width:430px){
  .race-calendar-mini:not(.hidden){
    width:calc(100vw - 18px)!important;
    padding:20px 12px 22px!important;
    border-radius:18px!important;
  }
  .race-calendar-mini .race-cal-grid,
  .race-calendar-mini .race-cal-week{
    gap:4px!important;
  }
  .race-calendar-mini .race-cal-cell{
    height:32px!important;
    font-size:14px!important;
  }
}


/* v165: 달력 팝업을 무료이용안내 팝업 스타일과 동일하게 정리 */
.race-calendar-mini:not(.hidden){
  background:#fff!important;
  width:min(760px,calc(100vw - 40px))!important;
  max-height:calc(100vh - 60px)!important;
  overflow:visible!important;
  padding:30px 24px 28px!important;
  border-radius:22px!important;
  border:1px solid #e5eaf4!important;
  box-shadow:0 24px 70px rgba(0,0,0,.28)!important;
  text-align:center!important;
}
.race-calendar-mini:not(.hidden)::before{
  background:rgba(15,23,42,.55)!important;
  backdrop-filter:blur(8px)!important;
  -webkit-backdrop-filter:blur(8px)!important;
}
.race-calendar-mini .race-cal-head{
  background:#fff!important;
  position:relative!important;
  top:auto!important;
  padding:0 0 18px!important;
  margin:0 0 10px!important;
}
.race-calendar-mini .race-cal-head strong{
  font-size:24px!important;
  color:#111!important;
  font-weight:900!important;
}
.race-calendar-mini .race-cal-nav{
  width:44px!important;
  height:44px!important;
  border-radius:999px!important;
  background:#edf3ff!important;
  color:var(--primary,#2f66ff)!important;
  font-size:28px!important;
  font-weight:900!important;
}
.race-calendar-mini .race-cal-week span{
  color:#64748b!important;
  font-size:14px!important;
  font-weight:900!important;
}
.race-calendar-mini .race-cal-grid,
.race-calendar-mini .race-cal-week{
  gap:8px!important;
}
.race-calendar-mini .race-cal-cell{
  height:42px!important;
  border-radius:12px!important;
}
@media(max-width:640px){
  .race-calendar-mini:not(.hidden){
    width:calc(100vw - 28px)!important;
    max-height:calc(100vh - 36px)!important;
    padding:26px 16px 22px!important;
    border-radius:18px!important;
  }
  .race-calendar-mini .race-cal-head strong{
    font-size:22px!important;
  }
  .race-calendar-mini .race-cal-nav{
    width:38px!important;
    height:38px!important;
    font-size:24px!important;
  }
  .race-calendar-mini .race-cal-grid,
  .race-calendar-mini .race-cal-week{
    gap:5px!important;
  }
  .race-calendar-mini .race-cal-cell{
    height:34px!important;
    border-radius:9px!important;
  }
}


/* v166: 달력 팝업 카드 배경 불투명 처리 */
.race-calendar-mini:not(.hidden){
  background:#fff!important;
  position:fixed!important;
  overflow:hidden!important;
  isolation:isolate!important;
}
.race-calendar-mini:not(.hidden)::before{
  z-index:-2!important;
}
.race-calendar-mini:not(.hidden)::after{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  background:#fff!important;
  border-radius:22px!important;
  border:1px solid #e5eaf4!important;
  z-index:-1!important;
  pointer-events:none!important;
}
.race-calendar-mini .race-cal-head,
.race-calendar-mini .race-cal-week,
.race-calendar-mini .race-cal-grid{
  position:relative!important;
  z-index:1!important;
}
@media(max-width:640px){
  .race-calendar-mini:not(.hidden)::after{
    border-radius:18px!important;
  }
}


/* v167: 달력 팝업 뒤 배경 blur 강제 적용 */
.race-calendar-mini:not(.hidden){
  overflow:visible!important;
  isolation:isolate!important;
  z-index:21000!important;
}
.race-calendar-mini:not(.hidden)::before{
  content:""!important;
  position:fixed!important;
  inset:0!important;
  background:rgba(15,23,42,.55)!important;
  backdrop-filter:blur(8px)!important;
  -webkit-backdrop-filter:blur(8px)!important;
  z-index:-1!important;
  pointer-events:auto!important;
}
.race-calendar-mini:not(.hidden)::after{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  background:#fff!important;
  border-radius:22px!important;
  border:1px solid #e5eaf4!important;
  z-index:0!important;
  pointer-events:none!important;
}
.race-calendar-mini .race-cal-head,
.race-calendar-mini .race-cal-week,
.race-calendar-mini .race-cal-grid{
  position:relative!important;
  z-index:1!important;
}
@media(max-width:640px){
  .race-calendar-mini:not(.hidden)::after{
    border-radius:18px!important;
  }
}


/* v168: 달력 팝업 전체 화면 배경 흐림용 실제 backdrop */
.race-calendar-backdrop.hidden{
  display:none!important;
}
.race-calendar-backdrop{
  position:fixed!important;
  inset:0!important;
  z-index:20990!important;
  background:rgba(15,23,42,.55)!important;
  backdrop-filter:blur(8px)!important;
  -webkit-backdrop-filter:blur(8px)!important;
}
body.calendar-popup-open{
  overflow:hidden!important;
}
.race-calendar-mini:not(.hidden){
  z-index:21000!important;
}
.race-calendar-mini:not(.hidden)::before{
  display:none!important;
}


/* v169: 경주 날짜는 드롭다운이 아닌 설정 버튼 방식 */
.race-calendar-label{
  display:none!important;
}
.race-calendar-button{
  width:100%!important;
  height:52px!important;
  min-height:52px!important;
  border:1px solid #c7d1e4!important;
  border-radius:14px!important;
  background:#fff!important;
  color:#111!important;
  padding:0 18px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:14px!important;
  box-shadow:none!important;
  margin-bottom:12px!important;
  text-align:left!important;
}
.race-calendar-button-label{
  color:#34405c!important;
  font-size:16px!important;
  font-weight:900!important;
  white-space:nowrap!important;
}
.race-calendar-button-date{
  color:#111!important;
  font-size:16px!important;
  font-weight:800!important;
  white-space:nowrap!important;
  margin-left:auto!important;
}
.race-calendar-toggle{
  display:none!important;
}
@media(max-width:640px){
  .race-calendar-button{
    height:50px!important;
    min-height:50px!important;
    padding:0 14px!important;
    gap:8px!important;
  }
  .race-calendar-button-label,
  .race-calendar-button-date{
    font-size:14px!important;
  }
}
@media(max-width:380px){
  .race-calendar-button{
    display:block!important;
    height:auto!important;
    padding:12px 14px!important;
  }
  .race-calendar-button-label,
  .race-calendar-button-date{
    display:block!important;
  }
  .race-calendar-button-date{
    margin-top:4px!important;
  }
}


/* v170: 달력 팝업 하단 닫기 버튼 */
.race-cal-close-wrap{
  position:relative!important;
  z-index:1!important;
  margin-top:22px!important;
  padding-top:18px!important;
  border-top:1px solid #eef2f7!important;
}
.race-cal-close-btn{
  width:100%!important;
  height:44px!important;
  border-radius:999px!important;
  background:var(--primary,#2f66ff)!important;
  color:#fff!important;
  font-size:15px!important;
  font-weight:900!important;
}
@media(max-width:640px){
  .race-cal-close-wrap{
    margin-top:16px!important;
    padding-top:14px!important;
  }
  .race-cal-close-btn{
    height:42px!important;
  }
}


/* v171: 경주요일이 아닌 날짜 분석 안내 팝업 */
.non-race-modal.hidden{
  display:none!important;
}
.non-race-modal{
  position:fixed!important;
  inset:0!important;
  z-index:22000!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:20px!important;
}
.non-race-backdrop{
  position:absolute!important;
  inset:0!important;
  background:rgba(15,23,42,.55)!important;
  backdrop-filter:blur(8px)!important;
  -webkit-backdrop-filter:blur(8px)!important;
}
.non-race-card{
  position:relative!important;
  width:min(420px,calc(100% - 24px))!important;
  background:#fff!important;
  border-radius:22px!important;
  border:1px solid #e5eaf4!important;
  box-shadow:0 24px 70px rgba(0,0,0,.28)!important;
  padding:30px 24px 24px!important;
  text-align:center!important;
}
.non-race-card h2{
  margin:0 0 14px!important;
  font-size:24px!important;
  color:#111!important;
  font-weight:900!important;
}
.non-race-card p{
  margin:0 0 22px!important;
  font-size:18px!important;
  line-height:1.55!important;
  color:#111!important;
  font-weight:800!important;
}
.non-race-close{
  width:100%!important;
  height:44px!important;
  border-radius:999px!important;
  background:var(--primary,#2f66ff)!important;
  color:#fff!important;
  font-size:15px!important;
  font-weight:900!important;
}


/* v177: 상단 타이틀 위 녹색 라인 추가 */
.hero::before{
  content:""!important;
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  height:7px!important;
  background:#8bc53f!important;
  margin:0 auto 22px!important;
}
@media(max-width:640px){
  .hero::before{
    height:5px!important;
    margin-bottom:18px!important;
  }
}


/* 모바일 더비온 실행 버튼 */
.derbyon-mobile-launch {
  display: none !important;
}

@media (max-width: 768px) {
  .derbyon-mobile-launch {
    position: fixed;
    right: 12px;
    bottom: 18px;
    z-index: 9999;
    display: block !important;
    width: 55px;
    height: 81px;
    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
  }

  .derbyon-mobile-icon {
    width: 55px;
    height: 81px;
    display: block;
    object-fit: contain;
    filter: drop-shadow(0 8px 14px rgba(0, 0, 0, 0.28));
  }

  .derbyon-mobile-text {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 7px;
    display: block;
    padding: 0 5px;
    color: #333;
    font-size: 10px;
    font-weight: 800;
    line-height: 1.15;
    text-align: center;
    letter-spacing: -0.07em;
    text-shadow: none;
    pointer-events: none;
  }

  body.admin-mode .derbyon-mobile-launch {
    bottom: 18px;
  }
}

/* v183 모바일 상세보기 요약 박스 2열 정렬 */
@media (max-width: 640px) {
  #detailModal .modal-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  #detailModal .summary-chip {
    min-width: 0 !important;
    padding: 10px 8px !important;
    border-radius: 12px !important;
  }

  #detailModal .summary-chip span,
  #detailModal .summary-chip small {
    font-size: 12px !important;
    line-height: 1.25 !important;
  }

  #detailModal .summary-chip b {
    font-size: 18px !important;
    line-height: 1.25 !important;
    word-break: keep-all !important;
  }
}


/* v184 모바일 상세보기 요약 숫자 크기 보정 */
@media (max-width: 640px) {
  #detailModal .summary-chip b,
  #detailModal .summary-chip b .summary-pick-num,
  #detailModal .summary-chip b .pick-num,
  #detailModal .summary-chip b .plain-dark-num,
  #detailModal .summary-chip b .circle-num,
  #detailModal .summary-chip b .darkhorse-num,
  #detailModal .summary-chip b .table-pick-num {
    font-size: 22px !important;
    line-height: 1.15 !important;
  }
}


/* v185 더비온 모바일 아이콘 이미지 크기 2/3 축소 - 폰트 크기 유지 */
@media (max-width: 768px) {
  .derbyon-mobile-launch {
    width: 55px !important;
    height: 81px !important;
  }

  .derbyon-mobile-icon {
    width: 55px !important;
    height: 81px !important;
  }

  .derbyon-mobile-text {
    bottom: 7px !important;
    font-size: 10px !important;
    line-height: 1.15 !important;
  }
}


/* v147: 공개 사용자 화면 핵심 분석정보 보호 */
body.user-mode #resultPanel .table-wrap{
  display: none !important;
}

.protected-detail-text {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  padding: 0 10px;
  border-radius: 999px;
  background: #f1f5f9;
  color: #64748b;
  font-size: 13px;
  font-weight: 800;
}
.free-use-paid {
  margin: 12px 0 16px;
  padding-top: 12px;
  border-top: 1px solid #e5e7eb;
  color: #555;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.5;
  text-align: center;
}


/* v202: 공지사항 버튼 상단 우측 정렬 */
.hero-with-notice{position:relative!important;padding-top:6px}
.notice-board-float-btn{
  position:absolute;
  top:24px;
  right:0;
  z-index:30;
  width:auto!important;
  height:40px;
  padding:0 18px;
  border-radius:999px;
  background:#111827;
  color:#fff;
  font-size:14px;
  font-weight:900;
  box-shadow:0 10px 24px rgba(15,23,42,.22);
}
.notice-board-float-btn:hover{background:#000}
.notice-board-modal.hidden{display:none}
.notice-board-modal{position:fixed;inset:0;z-index:10060}
.notice-board-backdrop{position:absolute;inset:0;background:rgba(11,18,32,.52)}
.notice-board-card{
  position:relative;
  width:min(760px,calc(100% - 32px));
  max-height:88vh;
  overflow:auto;
  margin:6vh auto;
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  padding:20px;
  box-shadow:0 24px 70px rgba(0,0,0,.28);
  z-index:10061;
}
.notice-board-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:16px}
.notice-board-head h2{margin:0;font-size:24px;color:#172033}
.notice-board-head .hint{margin:6px 0 0}
.notice-board-close{width:auto!important;height:36px;padding:0 14px}
.notice-board-admin{border:1px solid #dbeafe;background:#f8fbff;border-radius:18px;padding:14px;margin-bottom:14px}
.notice-board-form-grid{display:grid;gap:10px}
.notice-board-input,.notice-board-textarea{width:100%;border:1px solid #c7d1e4;border-radius:12px;background:#fff;font-size:14px;color:#172033}
.notice-board-input{height:42px;padding:0 12px}
.notice-board-textarea{min-height:108px;padding:12px;resize:vertical}
.notice-board-admin-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:10px;flex-wrap:wrap}
.notice-board-save,.notice-board-reset{width:auto!important;height:40px;padding:0 16px}
.notice-board-status{margin:0 0 12px;padding:10px 12px;border-radius:12px;font-size:13px;font-weight:800;line-height:1.45}
.notice-board-status.ok{display:block;background:#ecfdf5;color:#047857}
.notice-board-status.error{display:block;background:#fef2f2;color:#b91c1c}
.notice-board-status.info{display:block;background:#eef2ff;color:#1e40af}
.notice-board-list{display:grid;gap:12px}
.notice-board-empty{padding:18px;border:1px dashed #cbd5e1;border-radius:16px;background:#f8fafc;color:#64748b;text-align:center;font-weight:800}
.notice-board-item{border:1px solid var(--line);border-radius:18px;background:#fbfcff;padding:16px}
.notice-board-item-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:8px}
.notice-board-item-title{margin:0;font-size:18px;color:#111827;line-height:1.35}
.notice-board-item-date{font-size:12px;font-weight:800;color:#647089;white-space:nowrap;margin-top:4px}
.notice-board-item-body{white-space:pre-wrap;font-size:15px;line-height:1.65;color:#34405c;font-weight:700}
.notice-board-item-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}
.notice-board-delete{width:auto!important;height:34px;padding:0 12px;background:#fee2e2;color:#b91c1c;border-radius:999px;font-size:12px}
body.user-mode .notice-board-admin{display:none!important}
@media(max-width:720px){
  .hero-with-notice{position:relative!important;padding-top:0!important}
  .notice-board-float-btn{
    position:absolute!important;
    top:20px!important;
    right:0!important;
    left:auto!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    margin:0!important;
    width:auto!important;
    height:36px!important;
    padding:0 13px!important;
    font-size:13px!important;
    z-index:40!important;
  }
  .notice-board-card{width:calc(100% - 20px);margin:4vh auto;padding:16px;max-height:92vh}
  .notice-board-head{align-items:flex-start}
  .notice-board-head h2{font-size:21px}
  .notice-board-close{height:34px}
  .notice-board-admin-actions{display:grid;grid-template-columns:1fr 1fr}
  .notice-board-save,.notice-board-reset{width:100%!important}
  .notice-board-item-head{display:block}
}









/* v211: 사용자 모드 상세보기 팝업 스타일 관리자 모드와 동일 적용 */
body.user-mode #detailModal:not(.hidden){
  display:block!important;
}

body.user-mode #detailModal .modal-card{
  display:block!important;
  background:#fff!important;
  border-radius:22px!important;
  padding:22px!important;
  box-shadow:0 24px 70px rgba(0,0,0,.28)!important;
}

body.user-mode #detailModal .modal-head{
  display:flex!important;
  justify-content:space-between!important;
  gap:16px!important;
  align-items:flex-start!important;
  border-bottom:1px solid var(--line)!important;
  padding-bottom:14px!important;
  margin-bottom:16px!important;
}

body.user-mode #detailModal .modal-summary{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:10px!important;
  margin-bottom:10px!important;
}

body.user-mode #detailModal .summary-chip{
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
}

body.user-mode #detailModal .horse-graph{
  display:grid!important;
}

body.user-mode #detailModal .graph-row{
  display:grid!important;
}

body.user-mode .result-card .detail-btn,
body.user-mode .detail-btn{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
}

/* 사용자 모드에서는 관리자 상세 팝업에서 점수 상세 표 영역만 숨김 */
body.user-mode #detailModal .score-detail-only{
  display:none!important;
}

@media(max-width:980px){
  body.user-mode #detailModal .modal-summary{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media(max-width:640px){
  body.user-mode #detailModal .modal-card{
    padding:16px!important;
  }
  body.user-mode #detailModal .modal-summary{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}


/* v212: 모바일 상세보기 팝업 박스 크기 축소 */
@media(max-width:640px){
  #detailModal .modal-card,
  body.user-mode #detailModal .modal-card{
    width:calc(100% - 44px)!important;
    max-height:calc(100vh - 120px)!important;
    margin:52px auto 28px!important;
    padding:14px!important;
    border-radius:18px!important;
  }

  #detailModal .modal-head,
  body.user-mode #detailModal .modal-head{
    padding-bottom:10px!important;
    margin-bottom:12px!important;
  }

  #detailModal .modal-close,
  body.user-mode #detailModal .modal-close{
    height:32px!important;
    padding:0 12px!important;
    font-size:13px!important;
    flex:0 0 auto!important;
  }

  #detailModal .modal-head h2,
  body.user-mode #detailModal .modal-head h2{
    font-size:20px!important;
    line-height:1.25!important;
  }
}


/* v213: 모바일 상세보기 팝업 높이값 추가 축소 */
@media(max-width:640px){
  #detailModal .modal-card,
  body.user-mode #detailModal .modal-card{
    max-height:calc(100vh - 180px)!important;
    margin:72px auto 36px!important;
    overflow:auto!important;
  }
}


/* v214: 모바일 상세보기 팝업 높이값 소폭 추가 축소 */
@media(max-width:640px){
  #detailModal .modal-card,
  body.user-mode #detailModal .modal-card{
    max-height:calc(100vh - 220px)!important;
    margin:88px auto 44px!important;
    overflow:auto!important;
  }
}


/* v215: 모바일 상세보기 그래프 숫자 여백 + 막대 모션 */
@media(max-width:640px){
  #detailModal .horse-graph,
  body.user-mode #detailModal .horse-graph{
    gap:9px!important;
  }

  #detailModal .graph-row,
  body.user-mode #detailModal .graph-row{
    grid-template-columns:76px minmax(0,1fr) 64px!important;
    gap:9px!important;
    align-items:center!important;
  }

  #detailModal .graph-value,
  body.user-mode #detailModal .graph-value{
    text-align:left!important;
    padding-left:8px!important;
    padding-right:8px!important;
    box-sizing:border-box!important;
  }

  #detailModal .graph-fill,
  body.user-mode #detailModal .graph-fill{
    transform-origin:left center!important;
    animation: mobileGraphFillIn .72s ease-out both!important;
  }

  #detailModal .graph-row:nth-child(2) .graph-fill{animation-delay:.04s!important}
  #detailModal .graph-row:nth-child(3) .graph-fill{animation-delay:.08s!important}
  #detailModal .graph-row:nth-child(4) .graph-fill{animation-delay:.12s!important}
  #detailModal .graph-row:nth-child(5) .graph-fill{animation-delay:.16s!important}
  #detailModal .graph-row:nth-child(6) .graph-fill{animation-delay:.20s!important}
}

@keyframes mobileGraphFillIn{
  from{
    transform:scaleX(0);
    opacity:.35;
  }
  to{
    transform:scaleX(1);
    opacity:1;
  }
}


/* v216: PC/모바일 공통 상세보기 그래프 막대 모션 */
#detailModal .graph-fill,
body.user-mode #detailModal .graph-fill{
  transform-origin:left center!important;
  animation: detailGraphFillIn .72s ease-out both!important;
}

#detailModal .graph-row:nth-child(2) .graph-fill{animation-delay:.04s!important}
#detailModal .graph-row:nth-child(3) .graph-fill{animation-delay:.08s!important}
#detailModal .graph-row:nth-child(4) .graph-fill{animation-delay:.12s!important}
#detailModal .graph-row:nth-child(5) .graph-fill{animation-delay:.16s!important}
#detailModal .graph-row:nth-child(6) .graph-fill{animation-delay:.20s!important}
#detailModal .graph-row:nth-child(7) .graph-fill{animation-delay:.24s!important}
#detailModal .graph-row:nth-child(8) .graph-fill{animation-delay:.28s!important}

@keyframes detailGraphFillIn{
  from{
    transform:scaleX(0);
    opacity:.35;
  }
  to{
    transform:scaleX(1);
    opacity:1;
  }
}


/* v217: 그래프 막대 모션 마지막 감속 부드럽게 보정 */
#detailModal .graph-fill,
body.user-mode #detailModal .graph-fill{
  animation-name: detailGraphFillSmooth!important;
  animation-duration:.92s!important;
  animation-timing-function:cubic-bezier(.16, 1, .3, 1)!important;
  animation-fill-mode:both!important;
}

@keyframes detailGraphFillSmooth{
  0%{
    transform:scaleX(0);
    opacity:.28;
  }
  70%{
    transform:scaleX(.965);
    opacity:.92;
  }
  88%{
    transform:scaleX(.992);
    opacity:1;
  }
  100%{
    transform:scaleX(1);
    opacity:1;
  }
}


/* v218: 상세보기 그래프 점수 숫자 오른쪽 정렬 보정 */
#detailModal .horse-graph,
body.user-mode #detailModal .horse-graph{
  width:100%!important;
  max-width:100%!important;
}

#detailModal .graph-row,
body.user-mode #detailModal .graph-row{
  grid-template-columns:120px minmax(0,1fr) 56px!important;
  column-gap:10px!important;
}

#detailModal .graph-value,
body.user-mode #detailModal .graph-value{
  text-align:right!important;
  padding-left:0!important;
  padding-right:0!important;
  justify-self:stretch!important;
  box-sizing:border-box!important;
}

@media(max-width:640px){
  #detailModal .horse-graph,
  body.user-mode #detailModal .horse-graph{
    width:100%!important;
    max-width:100%!important;
  }

  #detailModal .graph-row,
  body.user-mode #detailModal .graph-row{
    grid-template-columns:76px minmax(0,1fr) 46px!important;
    column-gap:8px!important;
  }

  #detailModal .graph-value,
  body.user-mode #detailModal .graph-value{
    text-align:right!important;
    padding-left:0!important;
    padding-right:0!important;
    justify-self:stretch!important;
  }
}


/* v219: 상세보기 그래프 마명 영역 폭 확대 */
#detailModal .graph-row,
body.user-mode #detailModal .graph-row{
  grid-template-columns:170px minmax(0,1fr) 56px!important;
  column-gap:10px!important;
}

#detailModal .graph-label,
body.user-mode #detailModal .graph-label{
  min-width:0!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}

@media(max-width:640px){
  #detailModal .graph-row,
  body.user-mode #detailModal .graph-row{
    grid-template-columns:104px minmax(0,1fr) 46px!important;
    column-gap:8px!important;
  }

  #detailModal .graph-label,
  body.user-mode #detailModal .graph-label{
    font-size:12px!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
}


/* v220: 그래프 숫자 오른쪽 라인을 신뢰도 박스와 정렬 */
#detailModal .horse-graph,
body.user-mode #detailModal .horse-graph{
  width:100%!important;
}

#detailModal .graph-row,
body.user-mode #detailModal .graph-row{
  grid-template-columns:170px minmax(0,1fr) 44px!important;
}

#detailModal .graph-value,
body.user-mode #detailModal .graph-value{
  width:44px!important;
  min-width:44px!important;
  text-align:right!important;
  justify-self:end!important;
  padding:0!important;
  margin-right:0!important;
}

@media(max-width:640px){
  #detailModal .graph-row,
  body.user-mode #detailModal .graph-row{
    grid-template-columns:104px minmax(0,1fr) 40px!important;
  }

  #detailModal .graph-value,
  body.user-mode #detailModal .graph-value{
    width:40px!important;
    min-width:40px!important;
    text-align:right!important;
    justify-self:end!important;
    padding:0!important;
    margin-right:0!important;
  }
}


/* v222: PC 상세보기 그래프 모션을 처음 적용했던 기본 모션으로 복구 */
@media(min-width:641px){
  #detailModal .graph-fill,
  body.user-mode #detailModal .graph-fill{
    animation-name: detailGraphFillIn!important;
    animation-duration:.72s!important;
    animation-timing-function:ease-out!important;
    animation-fill-mode:both!important;
    transform-origin:left center!important;
  }
}






/* v226: 홍보 팝업 상세 내용 위아래 여백 추가 축소 */
.notice-popup.promo-view .notice-popup-card{
  padding-top:10px!important;
  padding-bottom:10px!important;
}

.notice-popup.promo-view .notice-popup-head{
  padding-bottom:6px!important;
  margin-bottom:6px!important;
}

.notice-popup.promo-view .notice-popup-body{
  padding-top:0!important;
  padding-bottom:0!important;
}

.promo-popup-wrap{
  gap:5px!important;
  padding-top:0!important;
  padding-bottom:0!important;
}

.promo-popup-text{
  margin:0!important;
  line-height:1.34!important;
}

.promo-popup-image{
  margin:0!important;
}

.promo-popup-buy-btn{
  margin-top:0!important;
  height:42px!important;
}

@media(max-width:640px){
  .notice-popup.promo-view .notice-popup-card{
    padding-top:9px!important;
    padding-bottom:9px!important;
  }

  .notice-popup.promo-view .notice-popup-head{
    padding-bottom:5px!important;
    margin-bottom:5px!important;
  }

  .promo-popup-wrap{
    gap:4px!important;
  }

  .promo-popup-text{
    line-height:1.32!important;
  }

  .promo-popup-buy-btn{
    height:40px!important;
  }
}


/* v230: 현재 접속 이용고객수 표시 */
.online-users-badge{
  position:fixed;
  right:18px;
  top:18px;
  z-index:1200;
  display:flex;
  align-items:center;
  gap:6px;
  height:34px;
  padding:0 12px;
  border-radius:999px;
  background:rgba(17,24,39,.88);
  color:#fff;
  font-size:13px;
  font-weight:800;
  box-shadow:0 10px 24px rgba(15,23,42,.18);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}

.online-users-badge b{
  min-width:18px;
  text-align:right;
  font-size:14px;
  color:#86efac;
}

.online-dot{
  width:8px;
  height:8px;
  border-radius:50%;
  background:#22c55e;
  box-shadow:0 0 0 4px rgba(34,197,94,.18);
}

@media(max-width:640px){
  .online-users-badge{
    top:auto;
    right:12px;
    bottom:72px;
    height:32px;
    padding:0 10px;
    font-size:12px;
    z-index:1300;
  }

  .online-users-badge b{
    font-size:13px;
  }
}


/* v231: 현재 접속 이용고객수 배지 항상 최상단 오른쪽 고정 */
.online-users-badge{
  position:fixed!important;
  top:10px!important;
  right:10px!important;
  bottom:auto!important;
  left:auto!important;
  z-index:9999!important;
}

@media(max-width:640px){
  .online-users-badge{
    top:10px!important;
    right:10px!important;
    bottom:auto!important;
    left:auto!important;
  }
}


/* v232: 모바일 공지사항 버튼을 더비온 실행하기 버튼 위에 동일 가로폭으로 배치 */
@media(max-width:640px){
  .notice-board-float-btn{
    position:fixed!important;
    right:14px!important;
    left:auto!important;
    top:auto!important;
    bottom:86px!important;
    width:118px!important;
    min-width:118px!important;
    max-width:118px!important;
    height:34px!important;
    padding:0 8px!important;
    border-radius:999px!important;
    font-size:12px!important;
    font-weight:900!important;
    justify-content:center!important;
    z-index:9998!important;
    box-sizing:border-box!important;
  }

  .derbyon-float-btn,
  .derbyon-mobile-btn,
  #derbyonFloatBtn{
    right:14px!important;
    bottom:44px!important;
    width:118px!important;
    min-width:118px!important;
    max-width:118px!important;
    box-sizing:border-box!important;
  }
}


/* v233: 모바일 공지사항 버튼 샘플 이미지처럼 세로형으로 수정 */
@media(max-width:640px){
  .notice-board-float-btn{
    position:fixed!important;
    right:14px!important;
    left:auto!important;
    top:auto!important;
    bottom:122px!important;
    width:54px!important;
    min-width:54px!important;
    max-width:54px!important;
    height:56px!important;
    min-height:56px!important;
    padding:0!important;
    border-radius:17px!important;
    background:#242424!important;
    color:#fff!important;
    border:0!important;
    box-shadow:0 10px 24px rgba(0,0,0,.20)!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    text-align:center!important;
    font-size:0!important;
    line-height:1!important;
    z-index:9998!important;
    box-sizing:border-box!important;
  }

  .notice-board-float-btn::before{
    content:"공지\A사항";
    white-space:pre;
    display:block;
    font-size:14px!important;
    line-height:1.18!important;
    font-weight:900!important;
    letter-spacing:-.06em;
    color:#fff!important;
  }

  .notice-board-float-btn > *{
    display:none!important;
  }

  .derbyon-float-btn,
  .derbyon-mobile-btn,
  #derbyonFloatBtn{
    position:fixed!important;
    right:14px!important;
    bottom:44px!important;
    width:54px!important;
    min-width:54px!important;
    max-width:54px!important;
    box-sizing:border-box!important;
    z-index:9997!important;
  }
}


/* v234: 모바일 공지사항 버튼 위치를 조금 아래로 이동 */
@media(max-width:640px){
  .notice-board-float-btn{
    bottom:112px!important;
  }
}


/* v245: 적중 보기 결과표는 반드시 중앙 팝업으로 표시 */
#hitResultModal.hit-result-modal{
  position:fixed!important;
  inset:0!important;
  z-index:99999!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:18px!important;
  box-sizing:border-box!important;
}

#hitResultModal.hit-result-modal.hidden{
  display:none!important;
}

#hitResultBackdrop.hit-result-backdrop{
  position:absolute!important;
  inset:0!important;
  background:rgba(15,23,42,.62)!important;
  backdrop-filter:blur(5px)!important;
  -webkit-backdrop-filter:blur(5px)!important;
}

#hitResultModal .hit-result-card{
  position:relative!important;
  z-index:1!important;
  width:min(1120px, 100%)!important;
  max-height:86vh!important;
  margin:0!important;
  padding:22px!important;
  border-radius:24px!important;
  background:#fff!important;
  box-shadow:0 30px 90px rgba(15,23,42,.35)!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
}

#hitResultModal .hit-result-head{
  display:flex!important;
  justify-content:space-between!important;
  align-items:flex-start!important;
  gap:14px!important;
  padding-bottom:14px!important;
  border-bottom:1px solid #e5e7eb!important;
}

#hitResultModal .hit-result-head h2{
  margin:0 0 4px!important;
  font-size:22px!important;
  line-height:1.2!important;
  letter-spacing:-.04em!important;
  color:#111827!important;
}

#hitResultModal .hit-result-body{
  padding-top:14px!important;
  overflow:auto!important;
}

#hitResultModal .hit-result-file-tabs{
  display:flex!important;
  gap:8px!important;
  flex-wrap:wrap!important;
  margin:0 0 12px!important;
}

#hitResultModal .hit-result-file-tab{
  border:1px solid #e5e7eb!important;
  background:#f8fafc!important;
  color:#111827!important;
  border-radius:999px!important;
  padding:8px 12px!important;
  font-size:13px!important;
  font-weight:900!important;
  cursor:pointer!important;
}

#hitResultModal .hit-result-file-tab.active{
  background:#111827!important;
  color:#fff!important;
  border-color:#111827!important;
}

#hitResultModal .hit-result-legend{
  display:flex!important;
  gap:8px!important;
  flex-wrap:wrap!important;
  align-items:center!important;
  margin:0 0 12px!important;
  font-size:12px!important;
  font-weight:900!important;
  color:#64748b!important;
}

#hitResultModal .hit-result-legend span{
  display:inline-flex!important;
  align-items:center!important;
  gap:5px!important;
  padding:6px 9px!important;
  border:1px solid #e5e7eb!important;
  border-radius:999px!important;
  background:#f8fafc!important;
}

#hitResultModal .hit-result-table-wrap{
  border:1px solid #e5e7eb!important;
  border-radius:18px!important;
  overflow:auto!important;
  background:#fff!important;
}

#hitResultModal .hit-result-table{
  width:100%!important;
  border-collapse:separate!important;
  border-spacing:0!important;
  min-width:760px!important;
  font-size:13px!important;
}

#hitResultModal .hit-result-table th,
#hitResultModal .hit-result-table td{
  padding:10px 11px!important;
  border-bottom:1px solid #eef2f7!important;
  border-right:1px solid #eef2f7!important;
  text-align:center!important;
  white-space:nowrap!important;
  color:#111827;
}

#hitResultModal .hit-result-table th{
  position:sticky!important;
  top:0!important;
  z-index:2!important;
  background:#f8fafc!important;
  color:#111827!important;
  font-size:12px!important;
  font-weight:900!important;
}

#hitResultModal .hit-result-table tr:last-child td{
  border-bottom:0!important;
}

#hitResultModal .hit-result-table td:last-child,
#hitResultModal .hit-result-table th:last-child{
  border-right:0!important;
}

#hitResultModal .hit-odds-low{
  color:#111827!important;
  font-weight:700!important;
}

#hitResultModal .hit-odds-mid{
  color:#1d4ed8!important;
  font-weight:900!important;
}

#hitResultModal .hit-odds-high{
  color:#dc2626!important;
  font-weight:950!important;
}

#hitResultModal .hit-result-empty{
  padding:28px 16px!important;
  border:1px dashed #e5e7eb!important;
  border-radius:18px!important;
  background:#f8fafc!important;
  color:#64748b!important;
  text-align:center!important;
  font-weight:800!important;
}

body.hit-result-popup-open{
  overflow:hidden!important;
}

@media(max-width:640px){
  #hitResultModal.hit-result-modal{
    padding:10px!important;
    align-items:center!important;
  }

  #hitResultModal .hit-result-card{
    max-height:88vh!important;
    padding:16px!important;
    border-radius:20px!important;
  }

  #hitResultModal .hit-result-head h2{
    font-size:19px!important;
  }

  #hitResultModal .hit-result-table{
    min-width:680px!important;
    font-size:12px!important;
  }

  #hitResultModal .hit-result-table th,
  #hitResultModal .hit-result-table td{
    padding:8px 9px!important;
  }
}


/* v246: 페이지 전체 가로 스크롤 방지 + 적중 결과표 팝업 내부 맞춤 */
html,
body{
  max-width:100%!important;
  overflow-x:hidden!important;
}

*{
  box-sizing:border-box;
}

main,
.container,
.panel,
.card,
#resultPanel{
  max-width:100%!important;
}

#hitResultModal,
#hitResultModal *{
  max-width:100%;
}

#hitResultModal .hit-result-card{
  width:min(1120px, calc(100vw - 32px))!important;
  max-width:calc(100vw - 32px)!important;
}

#hitResultModal .hit-result-body{
  max-width:100%!important;
  overflow-x:hidden!important;
}

#hitResultModal .hit-result-table-wrap{
  width:100%!important;
  max-width:100%!important;
  overflow-x:auto!important;
  -webkit-overflow-scrolling:touch!important;
}

#hitResultModal .hit-result-table{
  min-width:0!important;
  width:100%!important;
  table-layout:auto!important;
}

#hitResultModal .hit-result-table th,
#hitResultModal .hit-result-table td{
  white-space:normal!important;
  word-break:keep-all!important;
  overflow-wrap:anywhere!important;
  line-height:1.35!important;
}

@media(max-width:640px){
  #hitResultModal .hit-result-card{
    width:calc(100vw - 20px)!important;
    max-width:calc(100vw - 20px)!important;
  }

  #hitResultModal .hit-result-table{
    min-width:0!important;
    font-size:11px!important;
  }

  #hitResultModal .hit-result-table th,
  #hitResultModal .hit-result-table td{
    padding:7px 6px!important;
  }
}


/* v247: 적중 결과 팝업 요약/범례 문구 제거 */
#hitResultModal .hit-result-head .hint:empty{
  display:none!important;
  margin:0!important;
}

#hitResultModal .hit-result-legend{
  display:none!important;
}


/* v248: 적중 결과표 지역/경주 합치기 */
#hitResultModal .hit-result-table th:first-child,
#hitResultModal .hit-result-table td:first-child{
  width:58px!important;
  min-width:58px!important;
  max-width:64px!important;
  padding-left:6px!important;
  padding-right:6px!important;
}

#hitResultModal .hit-race-cell{
  display:inline-flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:2px!important;
  line-height:1.05!important;
  white-space:normal!important;
}

#hitResultModal .hit-race-cell b{
  display:block!important;
  font-weight:950!important;
  color:#111827!important;
  font-size:12px!important;
}

#hitResultModal .hit-race-cell em{
  display:none!important;
}

@media(max-width:640px){
  #hitResultModal .hit-result-table th:first-child,
  #hitResultModal .hit-result-table td:first-child{
    width:46px!important;
    min-width:46px!important;
    max-width:50px!important;
    padding-left:4px!important;
    padding-right:4px!important;
  }

  #hitResultModal .hit-race-cell b{
    font-size:11px!important;
  }
}


/* v250: 모바일 적중 결과 팝업 높이를 상세보기 팝업과 동일하게 조정 */
@media(max-width:640px){
  #hitResultModal.hit-result-modal{
    align-items:center!important;
    padding:10px!important;
  }

  #hitResultModal .hit-result-card{
    height:86vh!important;
    max-height:86vh!important;
    min-height:86vh!important;
    margin:0 auto!important;
  }

  #hitResultModal .hit-result-body{
    flex:1 1 auto!important;
    min-height:0!important;
    overflow:auto!important;
  }
}


/* v304: 경주분석 버튼 바로 위 유신 버튼 */
#yousinShortcutBtn.yousin-analysis-btn{
  background:#8bc53f!important;
  border-color:#8bc53f!important;
  color:#fff!important;
  text-decoration:none!important;
  cursor:pointer!important;
  margin:0 0 8px 0!important;
  box-sizing:border-box!important;
  text-align:center!important;
}
#yousinShortcutBtn.yousin-analysis-btn:hover{
  background:#7bb536!important;
  border-color:#7bb536!important;
  color:#fff!important;
}


/* v305: 유신 버튼 텍스트 정중앙 */
#yousinShortcutBtn.yousin-analysis-btn{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  line-height:1!important;
  padding-top:0!important;
  padding-bottom:0!important;
}




/* v309: outline 녹색 안전 적용 - 기존 팝업 스타일 유지 */
button:focus,
button:focus-visible,
a:focus,
a:focus-visible,
input:focus,
input:focus-visible,
select:focus,
select:focus-visible,
textarea:focus,
textarea:focus-visible,
[tabindex]:focus,
[tabindex]:focus-visible{
  outline:2px solid #8bc53f!important;
  outline-offset:2px!important;
}


/* v310: notice-popup-card 내용 복구 - 공지 팝업 전용 */
.notice-popup:not(.hidden){
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:22px!important;
}
.notice-popup.hidden{
  display:none!important;
}
.notice-popup-card{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
}
.notice-popup-card img,
.notice-popup-card p,
.notice-popup-card div,
.notice-popup-card span,
.notice-popup-card strong,
.notice-popup-card a,
.notice-popup-card button,
.notice-popup-body,
.notice-popup-head{
  visibility:visible!important;
  opacity:1!important;
}
.notice-popup-card img{
  display:block!important;
  max-width:100%!important;
  height:auto!important;
}



/* v270: 함수 예상결과 편성 추천 버튼 */
.result-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.formation-recommend-btn{height:34px;padding:0 14px;border:1px solid #2563eb;border-radius:999px;background:#2563eb;color:#fff;font-size:13px;font-weight:800;line-height:1;cursor:pointer;box-shadow:0 4px 10px rgba(37,99,235,.18);}
.formation-recommend-btn:hover{background:#1d4ed8;border-color:#1d4ed8;transform:translateY(-1px);}
@media(max-width:640px){.formation-recommend-btn{height:31px;padding:0 11px;font-size:12px;}}

/* v271: 편성 추천 적용 상태 및 완료 세리머니 */
.formation-recommend-btn{position:relative;overflow:visible;transition:transform .18s ease,box-shadow .18s ease,background .18s ease;border-color .18s ease;}
.formation-recommend-btn:disabled{cursor:wait;opacity:1;}
.formation-recommend-btn.recommend-running{animation:formationRecommendPulse .65s ease-in-out infinite;}
.formation-recommend-btn.recommend-success{background:#16a34a;border-color:#16a34a;box-shadow:0 0 0 5px rgba(22,163,74,.14),0 8px 18px rgba(22,163,74,.28);animation:formationRecommendPop .45s ease both;}
.formation-recommend-burst{position:absolute;left:50%;top:50%;width:1px;height:1px;pointer-events:none;z-index:5;}
.formation-recommend-burst i{position:absolute;left:0;top:0;width:6px;height:6px;border-radius:50%;background:currentColor;animation:formationRecommendBurst .85s ease-out forwards;}
.formation-recommend-burst i:nth-child(1){--x:0px;--y:-38px;}
.formation-recommend-burst i:nth-child(2){--x:28px;--y:-28px;}
.formation-recommend-burst i:nth-child(3){--x:40px;--y:0px;}
.formation-recommend-burst i:nth-child(4){--x:28px;--y:28px;}
.formation-recommend-burst i:nth-child(5){--x:0px;--y:38px;}
.formation-recommend-burst i:nth-child(6){--x:-28px;--y:28px;}
.formation-recommend-burst i:nth-child(7){--x:-40px;--y:0px;}
.formation-recommend-burst i:nth-child(8){--x:-28px;--y:-28px;}
@keyframes formationRecommendPulse{0%,100%{transform:scale(1);box-shadow:0 4px 10px rgba(37,99,235,.18);}50%{transform:scale(1.045);box-shadow:0 0 0 6px rgba(37,99,235,.14),0 8px 18px rgba(37,99,235,.24);}}
@keyframes formationRecommendPop{0%{transform:scale(.94);}60%{transform:scale(1.08);}100%{transform:scale(1);}}
@keyframes formationRecommendBurst{0%{opacity:1;transform:translate(-50%,-50%) scale(1);}100%{opacity:0;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) scale(.25);}}
/* v20260724: 관리자 전용 실제 접속이용자수 표시 */
#onlineUsersRealBadge.online-users-real-badge{
  position:fixed;
  right:10px;
  top:52px;
  z-index:1000002;
  display:none;
  align-items:center;
  gap:6px;
  height:34px;
  padding:0 12px;
  border-radius:999px;
  background:rgba(17,24,39,.88);
  color:#fff;
  font-size:13px;
  font-weight:800;
  box-shadow:0 10px 24px rgba(15,23,42,.18);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
#onlineUsersRealBadge.online-users-real-badge b{
  min-width:18px;
  text-align:right;
  font-size:14px;
  color:#86efac;
}
#onlineUsersRealBadge.online-users-real-badge .online-dot{
  background:#22c55e;
  box-shadow:0 0 0 4px rgba(34,197,94,.18);
}
body.admin-mode #onlineUsersRealBadge.online-users-real-badge{
  display:flex;
}
body:not(.admin-mode) #onlineUsersRealBadge.online-users-real-badge,
#onlineUsersRealBadge.online-users-real-badge.hidden{
  display:none;
}
body.admin-mode #memberAuthStatus.member-auth-status{
  display:none;
  visibility:hidden;
}
@media(max-width:640px){
  #onlineUsersRealBadge.online-users-real-badge{
    right:10px;
    top:52px;
    height:32px;
    padding:0 10px;
    font-size:12px;
  }
  #onlineUsersRealBadge.online-users-real-badge b{
    font-size:13px;
  }
}

/* v20260724-online-count-motion-strong: 접속자 숫자 등장 모션 강화 */
#onlineUsersCount,
#onlineUsersRealCount{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:2.4em;
  height:1.2em;
  line-height:1;
  text-align:center;
  font-variant-numeric:tabular-nums;
  overflow:hidden;
  vertical-align:middle;
}
#onlineUsersCount.online-count-motion-wrap,
#onlineUsersRealCount.online-count-motion-wrap{
  overflow:hidden;
}
#onlineUsersCount .online-count-digit-rise,
#onlineUsersRealCount .online-count-digit-rise,
#onlineUsersCount .online-count-digit-fall,
#onlineUsersRealCount .online-count-digit-fall{
  display:inline-block;
  min-width:100%;
  line-height:1;
  will-change:transform,opacity;
}
#onlineUsersCount .online-count-digit-rise,
#onlineUsersRealCount .online-count-digit-rise{
  animation:onlineCountDigitRiseV20260724 .72s cubic-bezier(.16,1,.3,1) both;
}
#onlineUsersCount .online-count-digit-fall,
#onlineUsersRealCount .online-count-digit-fall{
  animation:onlineCountDigitFallV20260724 .72s cubic-bezier(.16,1,.3,1) both;
}
@keyframes onlineCountDigitRiseV20260724{
  0%{opacity:0;transform:translateY(110%) scale(.92);filter:blur(2px)}
  48%{opacity:1;transform:translateY(-16%) scale(1.08);filter:blur(0)}
  72%{opacity:1;transform:translateY(6%) scale(.99)}
  100%{opacity:1;transform:translateY(0) scale(1)}
}
@keyframes onlineCountDigitFallV20260724{
  0%{opacity:0;transform:translateY(-110%) scale(.92);filter:blur(2px)}
  48%{opacity:1;transform:translateY(16%) scale(1.08);filter:blur(0)}
  72%{opacity:1;transform:translateY(-6%) scale(.99)}
  100%{opacity:1;transform:translateY(0) scale(1)}
}
@media (prefers-reduced-motion:reduce){
  #onlineUsersCount .online-count-digit-rise,
  #onlineUsersCount .online-count-digit-fall,
  #onlineUsersRealCount .online-count-digit-rise,
  #onlineUsersRealCount .online-count-digit-fall{
    animation:none;
    transform:none;
    opacity:1;
    filter:none;
  }
}

/* v20260724-race-in-progress-label-time-right: 진행중 문구를 경주시간 오른쪽에 표시 */
#cards .result-card.is-race-in-progress{
  border:2px solid #dc2626!important;
  background:rgba(220,38,38,.055)!important;
  box-shadow:0 0 0 1px rgba(220,38,38,.12),0 14px 30px rgba(220,38,38,.12)!important;
}
#cards .race-title-time.is-race-in-progress-title{
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:flex-start!important;
  flex-wrap:wrap!important;
  gap:8px!important;
  min-width:0!important;
}
#cards .race-title-time.is-race-in-progress-title .race-progress-label{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  margin:0!important;
  padding:0!important;
  color:#dc2626!important;
  font-size:11px!important;
  font-weight:950!important;
  line-height:1.1!important;
  letter-spacing:-.04em!important;
  white-space:nowrap!important;
}
#cards .race-pill.is-race-in-progress-pill{
  color:#fff!important;
  border-color:transparent!important;
  box-shadow:0 8px 18px rgba(15,23,42,.18)!important;
}
#cards .race-pill.track-jeju.is-race-in-progress-pill{
  background:#d93333!important;
}
#cards .race-pill.track-busan.is-race-in-progress-pill{
  background:#168349!important;
}
#cards .race-pill.track-seoul.is-race-in-progress-pill{
  background:#3a67ff!important;
}
#cards .race-pill.track-default.is-race-in-progress-pill{
  background:#111827!important;
}
@media(max-width:560px){
  #cards .race-title-time.is-race-in-progress-title{
    gap:6px!important;
  }
  #cards .race-title-time.is-race-in-progress-title .race-progress-label{
    font-size:10px!important;
  }
}

/* v20260724-race-in-progress-card-red-line: 진행중 경주 컨텐츠 박스 빨간 라인 */
#cards .result-card.is-race-in-progress{
  border:2px solid #dc2626!important;
  background:rgba(220,38,38,.055)!important;
  box-shadow:0 0 0 1px rgba(220,38,38,.12),0 14px 30px rgba(220,38,38,.12)!important;
}

/* v20260724-race-in-progress-card-red-fill: 진행중 경주 컨텐츠 박스 투명 빨강 면 */
#cards .result-card.is-race-in-progress{
  border:2px solid #dc2626!important;
  background:rgba(220,38,38,.055)!important;
  box-shadow:0 0 0 1px rgba(220,38,38,.12),0 14px 30px rgba(220,38,38,.12)!important;
}


/* v20260727-race-week-selector-rebuild-v3
   주간 이동 / 달력 / 금토일 카드의 유일한 최종 정의 */
.sr-only{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
.race-date-field{
  position:relative!important;
  display:block!important;
  grid-column:1 / -1!important;
  width:100%!important;
  margin:0 0 18px!important;
}
.race-week-selector-shell{
  position:relative!important;
  width:100%!important;
  max-width:1160px!important;
  margin:0 auto!important;
  padding:56px 0 34px!important;
  overflow:visible!important;
}
.race-week-selector-top{
  position:absolute!important;
  top:0!important;
  right:0!important;
  z-index:30!important;
  display:flex!important;
  justify-content:flex-end!important;
}
.race-calendar-icon-button{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  width:auto!important;
  height:44px!important;
  min-height:44px!important;
  padding:0 16px!important;
  border:1px solid #d5deeb!important;
  border-radius:999px!important;
  background:#fff!important;
  color:#203b63!important;
  box-shadow:0 8px 20px rgba(15,23,42,.08)!important;
  font-size:14px!important;
  font-weight:900!important;
  line-height:1!important;
  white-space:nowrap!important;
}
.race-calendar-icon{font-size:17px!important;line-height:1!important}
.race-week-selector-row{
  display:grid!important;
  grid-template-columns:142px minmax(0,848px) 142px!important;
  align-items:center!important;
  justify-content:center!important;
  column-gap:14px!important;
  width:100%!important;
  min-width:0!important;
}
.race-week-cards-panel{
  position:relative!important;
  width:100%!important;
  min-width:0!important;
  overflow:visible!important;
}
.race-week-move-btn{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  width:100%!important;
  min-width:0!important;
  height:54px!important;
  min-height:54px!important;
  padding:0 10px!important;
  border:1px solid #d4dceb!important;
  border-radius:999px!important;
  background:#fff!important;
  color:#123963!important;
  box-shadow:0 10px 22px rgba(15,23,42,.06)!important;
  font-weight:900!important;
  line-height:1!important;
  white-space:nowrap!important;
}
.race-week-move-prefix{font-size:14px!important}
.race-week-move-btn strong{font-size:19px!important;line-height:1!important;white-space:nowrap!important}
.race-week-move-btn.prev::before{content:'‹';font-size:18px;font-weight:900;line-height:1}
.race-week-move-btn.next::after{content:'›';font-size:18px;font-weight:900;line-height:1}
.race-week-move-btn:disabled{
  border-color:#e3e7ed!important;
  background:#f1f3f6!important;
  color:#b2bbc8!important;
  box-shadow:none!important;
  cursor:not-allowed!important;
  opacity:.78!important;
}
.race-week-cards-panel .race-calendar-mini{
  position:absolute!important;
  top:48px!important;
  right:0!important;
  z-index:21000!important;
  width:min(330px,calc(100vw - 34px))!important;
}

#raceDayCards.race-day-cards{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  align-items:start!important;
  justify-content:center!important;
  gap:20px!important;
  width:100%!important;
  max-width:848px!important;
  margin:0 auto!important;
  padding:8px 10px 42px!important;
  overflow:visible!important;
}
#raceDayCards .race-day-card{
  -webkit-appearance:none!important;
  appearance:none!important;
  position:relative!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:0!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  height:auto!important;
  min-height:0!important;
  aspect-ratio:1 / 1.03!important;
  margin:0!important;
  padding:22px 8px 18px!important;
  border:0!important;
  border-radius:40px!important;
  background:#e4e7ec!important;
  color:#99a7bc!important;
  box-shadow:none!important;
  opacity:1!important;
  overflow:visible!important;
  transform:none!important;
  text-align:center!important;
  box-sizing:border-box!important;
}
#raceDayCards .race-day-card:hover,
#raceDayCards .race-day-card:focus,
#raceDayCards .race-day-card:focus-visible{
  transform:none!important;
}
#raceDayCards .race-day-card.has-data.fri{background:#51545c!important;color:#fff!important}
#raceDayCards .race-day-card.has-data.sat{background:#398cf0!important;color:#fff!important}
#raceDayCards .race-day-card.has-data.sun{background:#ff434d!important;color:#fff!important}
#raceDayCards .race-day-card.no-data,
#raceDayCards .race-day-card.checking,
#raceDayCards .race-day-card:disabled{
  background:#e4e7ec!important;
  color:#99a7bc!important;
  opacity:1!important;
}
#raceDayCards .race-day-card.active{
  box-shadow:
    0 0 0 5px #fff,
    0 0 0 10px #c7c7c7,
    0 15px 32px rgba(15,23,42,.12)!important;
}
#raceDayCards .race-day-date{
  display:block!important;
  width:100%!important;
  margin:0 0 9px!important;
  color:inherit!important;
  font-size:42px!important;
  font-weight:950!important;
  line-height:1!important;
  letter-spacing:.01em!important;
  white-space:nowrap!important;
  word-break:keep-all!important;
  overflow-wrap:normal!important;
}
#raceDayCards .race-day-card > strong{
  display:block!important;
  width:100%!important;
  margin:0!important;
  color:inherit!important;
  font-size:62px!important;
  font-weight:800!important;
  line-height:.98!important;
  letter-spacing:-.075em!important;
  white-space:nowrap!important;
  word-break:keep-all!important;
  overflow-wrap:normal!important;
}
#raceDayCards .race-day-card > em{
  display:block!important;
  width:100%!important;
  margin:13px 0 0!important;
  color:inherit!important;
  font-size:27px!important;
  font-style:normal!important;
  font-weight:900!important;
  line-height:1!important;
  letter-spacing:-.055em!important;
  white-space:nowrap!important;
  word-break:keep-all!important;
  overflow-wrap:normal!important;
}
#raceDayCards .race-day-card.no-data > em,
#raceDayCards .race-day-card.checking > em,
#raceDayCards .race-day-card:disabled > em{
  color:#8f9caf!important;
  font-weight:850!important;
}
#raceDayCards .race-day-tracks{
  position:absolute!important;
  left:50%!important;
  top:calc(100% + 13px)!important;
  transform:translateX(-50%)!important;
  display:block!important;
  width:max-content!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  font-size:18px!important;
  font-style:normal!important;
  font-weight:950!important;
  line-height:1!important;
  letter-spacing:-.05em!important;
  white-space:nowrap!important;
  word-break:keep-all!important;
  pointer-events:none!important;
}
#raceDayCards .race-day-card.has-data.fri .race-day-tracks{color:#374151!important}
#raceDayCards .race-day-card.has-data.sat .race-day-tracks{color:#2563eb!important}
#raceDayCards .race-day-card.has-data.sun .race-day-tracks{color:#ef4444!important}
#raceDayCards .race-day-card.no-data .race-day-tracks,
#raceDayCards .race-day-card.checking .race-day-tracks,
#raceDayCards .race-day-card:disabled .race-day-tracks{color:#96a1b1!important}

@media(max-width:980px){
  .race-week-selector-shell{padding:54px 4px 28px!important}
  .race-week-selector-row{
    grid-template-columns:1fr 1fr!important;
    gap:14px!important;
  }
  .race-week-cards-panel{grid-column:1 / -1!important;grid-row:1!important}
  .race-week-move-btn.prev{grid-column:1!important;grid-row:2!important}
  .race-week-move-btn.next{grid-column:2!important;grid-row:2!important}
  #raceDayCards.race-day-cards{
    max-width:780px!important;
    gap:16px!important;
    padding:8px 12px 40px!important;
  }
  #raceDayCards .race-day-card{border-radius:34px!important;padding:18px 7px 16px!important}
  #raceDayCards .race-day-date{font-size:clamp(30px,4.9vw,40px)!important}
  #raceDayCards .race-day-card > strong{font-size:clamp(44px,7.4vw,58px)!important}
  #raceDayCards .race-day-card > em{margin-top:10px!important;font-size:clamp(20px,3.2vw,25px)!important}
  #raceDayCards .race-day-tracks{font-size:clamp(15px,2.4vw,18px)!important}
}
@media(max-width:640px){
  .race-week-selector-shell{padding:48px 0 22px!important}
  .race-week-selector-top{top:0!important;right:0!important}
  .race-calendar-icon-button{height:38px!important;min-height:38px!important;padding:0 12px!important;font-size:12px!important}
  .race-calendar-icon{font-size:15px!important}
  .race-week-selector-row{
    grid-template-columns:auto auto!important;
    justify-content:center!important;
    column-gap:12px!important;
    row-gap:10px!important;
  }
  .race-week-move-btn.prev{justify-self:end!important}
  .race-week-move-btn.next{justify-self:start!important}
  .race-week-move-btn{
    width:128px!important;
    max-width:128px!important;
    min-width:0!important;
    height:46px!important;
    min-height:46px!important;
    padding:0 12px!important;
  }
  .race-week-move-btn strong{font-size:16px!important}
  #raceDayCards.race-day-cards{
    gap:8px!important;
    padding:7px 4px 28px!important;
  }
  #raceDayCards .race-day-card{
    aspect-ratio:1 / 1.04!important;
    border-radius:22px!important;
    padding:11px 3px 9px!important;
  }
  #raceDayCards .race-day-card.active{
    box-shadow:
      0 0 0 3px #fff,
      0 0 0 6px #c7c7c7,
      0 8px 18px rgba(15,23,42,.1)!important;
  }
  #raceDayCards .race-day-date{
    margin-bottom:4px!important;
    font-size:clamp(16px,calc(6.2vw - 2px),25px)!important;
  }
  #raceDayCards .race-day-card > strong{
    font-size:clamp(23px,calc(8.4vw - 2px),36px)!important;
    letter-spacing:-.08em!important;
  }
  #raceDayCards .race-day-card > em{
    margin-top:6px!important;
    font-size:clamp(10px,calc(3.8vw - 2px),15px)!important;
  }
  #raceDayCards .race-day-tracks{
    top:calc(100% + 7px)!important;
    font-size:clamp(11px,3.4vw,14px)!important;
  }
  .race-week-cards-panel .race-calendar-mini{top:44px!important;right:0!important;width:min(310px,calc(100vw - 20px))!important}
}
@media(max-width:360px){
  #raceDayCards.race-day-cards{gap:6px!important;padding-left:2px!important;padding-right:2px!important}
  #raceDayCards .race-day-date{font-size:16px!important}
  #raceDayCards .race-day-card > strong{font-size:23px!important}
  #raceDayCards .race-day-card > em{font-size:10px!important}
  #raceDayCards .race-day-tracks{font-size:10.5px!important}
}

/* v20260727: 모바일 경주 주간 이동 버튼 사이에 달력 아이콘 배치 */
@media (max-width:640px){
  .race-week-selector-shell{
    /* 상단의 별도 달력 버튼 공간을 제거하고 카드부터 시작 */
    padding:8px 0 22px!important;
  }
  .race-week-selector-row{
    position:relative!important;
    grid-template-columns:minmax(0,1fr) 42px minmax(0,1fr)!important;
    column-gap:6px!important;
    row-gap:10px!important;
    align-items:center!important;
    justify-content:stretch!important;
  }
  .race-week-cards-panel{
    grid-column:1 / -1!important;
    grid-row:1!important;
  }
  .race-week-move-btn.prev{
    grid-column:1!important;
    grid-row:2!important;
    justify-self:end!important;
  }
  .race-week-move-btn.next{
    grid-column:3!important;
    grid-row:2!important;
    justify-self:start!important;
  }
  .race-week-move-btn{
    width:100%!important;
    max-width:128px!important;
    height:46px!important;
    min-height:46px!important;
  }

  /* 기존 경주날짜 선택 버튼을 좌우 날짜 버튼 사이 중앙에 고정 */
  .race-week-selector-top{
    position:absolute!important;
    top:auto!important;
    right:auto!important;
    bottom:22px!important;
    left:50%!important;
    z-index:40!important;
    width:42px!important;
    height:46px!important;
    transform:translateX(-50%)!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
  }
  .race-calendar-icon-button{
    width:42px!important;
    min-width:42px!important;
    max-width:42px!important;
    height:46px!important;
    min-height:46px!important;
    padding:0!important;
    gap:0!important;
    border-radius:999px!important;
  }
  .race-calendar-button-label{
    display:none!important;
  }
  .race-calendar-icon{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    font-size:18px!important;
    line-height:1!important;
  }
}

