:root{
  --blue:#0649b8;--deep:#052d75;--navy:#031c4d;--yellow:#ffd726;
  --sky:#eaf3ff;--white:#fff;--text:#101828;--muted:#657087;--line:#d8e3f4;
  --shadow:0 16px 40px rgba(4,43,108,.14)
}
*{box-sizing:border-box}
html,body{margin:0;background:linear-gradient(180deg,#dfeaff,#f6f9ff 42%,#edf3ff);font-family:Apple SD Gothic Neo,Pretendard,Malgun Gothic,sans-serif;color:var(--text)}
body{min-height:100vh}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.wrap{max-width:1120px;margin:0 auto;padding:18px}
.top{display:flex;justify-content:space-between;align-items:center;gap:14px;background:linear-gradient(135deg,var(--deep),var(--blue));color:#fff;border-radius:24px;padding:18px 20px;box-shadow:var(--shadow)}
.brand b{display:block;font-size:23px;letter-spacing:-.04em}
.brand span{display:block;font-size:12px;opacity:.84;margin-top:5px}
.top-pill{background:var(--yellow);color:#142957;border-radius:999px;padding:9px 13px;font-size:12px;font-weight:950}
.layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:18px;margin-top:18px}
.card{background:rgba(255,255,255,.94);border:1px solid rgba(255,255,255,.9);border-radius:23px;padding:17px;box-shadow:var(--shadow)}
.hero{position:relative;overflow:hidden;border-radius:19px;background:#07357d}
.hero img{width:100%;display:block;aspect-ratio:4/5;object-fit:cover}
.stage-chip,.count-chip{position:absolute;top:12px;padding:8px 11px;border-radius:999px;font-size:12px;font-weight:950;backdrop-filter:blur(8px)}
.stage-chip{left:12px;background:rgba(3,20,60,.8);color:#fff}
.count-chip{right:12px;background:#fff;color:#06439f}
.title{margin:14px 0 5px;font-size:25px;line-height:1.17;letter-spacing:-.05em}
.subtitle{margin:0;color:var(--muted);font-size:14px;line-height:1.55}
.progress{margin-top:14px;border:1px solid var(--line);border-radius:16px;padding:12px;background:#f8fbff}
.progress-top{display:flex;justify-content:space-between;gap:10px;font-size:12px;font-weight:850;color:#31517f}
.track{height:13px;background:#dfe8f7;border-radius:999px;overflow:hidden;margin-top:9px}
.fill{height:100%;width:0;background:linear-gradient(90deg,#0b4db9,#28a1ff);transition:width .5s}
.stages{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:9px}
.stage-mini{border:1px solid var(--line);border-radius:12px;padding:8px 3px;text-align:center;font-size:10px;color:#718099;background:#fff}
.stage-mini.on{background:#0b4db9;color:#fff;border-color:#0b4db9}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:12px}
.stat{border:1px solid var(--line);border-radius:15px;padding:11px;background:#fbfdff}
.stat span{display:block;font-size:10px;color:var(--muted)}
.stat b{display:block;font-size:21px;color:#063a90;margin-top:3px}
.section-title{font-size:18px;margin:0 0 5px;letter-spacing:-.03em}
.section-desc{font-size:12px;color:var(--muted);line-height:1.5;margin:0 0 12px}
.form-grid{display:grid;gap:10px}
input,select,textarea{width:100%;border:1px solid var(--line);border-radius:13px;padding:13px;background:#fbfdff;outline:none}
textarea{min-height:90px;resize:vertical}
input:focus,select:focus,textarea:focus{border-color:#0b4db9;box-shadow:0 0 0 4px rgba(11,77,185,.08)}
.check{display:flex;gap:8px;align-items:flex-start;font-size:11px;color:#5c6a80;margin:10px 0}
.check input{width:auto;margin-top:2px}
.btn{border:0;border-radius:14px;padding:14px;font-weight:950}
.btn-primary{background:linear-gradient(135deg,#0b4db9,#052f77);color:white}
.btn-kakao{background:#fee500;color:#291f00}
.btn-soft{background:#eaf2ff;color:#0847a6}
.btn-danger{background:#fff0f1;color:#b42318}
.btns{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.participant-card{display:none;margin-top:12px;border-radius:17px;padding:14px;background:linear-gradient(135deg,#052f77,#0b4db9);color:#fff}
.participant-card.show{display:block}
.runner-no{font-size:28px;font-weight:950}
.message{margin-top:7px;padding:9px 10px;background:rgba(255,255,255,.13);border-radius:12px;font-size:12px;line-height:1.5}
.list{display:grid;gap:8px;max-height:480px;overflow:auto}
.item{border:1px solid var(--line);border-radius:14px;padding:11px;background:#fcfdff}
.item-top{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:var(--muted)}
.item-msg{font-size:12px;line-height:1.5;margin-top:5px;font-weight:750}
.regions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px}
.region{border-radius:13px;background:#f3f7ff;padding:10px}
.region span{font-size:10px;color:#66758c}
.region b{display:block;color:#08479f;margin-top:2px}
.baton{display:none;margin-bottom:13px;padding:13px;border-radius:16px;background:#fff4b7;border:1px solid #ead16d;color:#624900}
.baton.show{display:block}
.baton b{font-size:14px}
.baton p{font-size:11px;margin:4px 0 0;line-height:1.45}
.notice{font-size:10px;color:#7a879b;line-height:1.5;margin-top:10px}
.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:#101c3d;color:#fff;padding:10px 14px;border-radius:999px;font-size:12px;font-weight:900;opacity:0;transition:.2s;pointer-events:none;z-index:99}
.toast.show{opacity:1}
.admin-bar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.admin-table{width:100%;border-collapse:collapse;font-size:12px}
.admin-table th,.admin-table td{padding:9px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.admin-table th{color:#44546b;background:#f6f8fc}
.admin-table .actions{display:flex;gap:5px}
.admin-table button{border:0;border-radius:8px;padding:7px;font-size:10px;font-weight:850}
@media(max-width:860px){.layout{grid-template-columns:1fr}.wrap{padding:12px}.top{border-radius:19px}.stats{grid-template-columns:1fr 1fr}.btns{grid-template-columns:1fr}}

.type-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.type-btn{border:1px solid var(--line);border-radius:14px;background:#fbfdff;color:#263a59;padding:11px;font-weight:900}
.type-btn small{font-size:10px;color:#7a879b;font-weight:700}
.type-btn.active{background:#eaf2ff;border:2px solid var(--blue);color:var(--blue)}
.quick-messages{display:flex;gap:6px;overflow:auto;scrollbar-width:none}
.quick-messages::-webkit-scrollbar{display:none}
.quick-messages button{flex:0 0 auto;border:1px solid #cbd9ee;background:#f6f9ff;color:#27538e;border-radius:999px;padding:7px 9px;font-size:10px;font-weight:850}
button:disabled{opacity:.65;cursor:not-allowed}
