/* UNITY RACING — 레이싱 공용 디자인 (이용자 화면 · 관리자 화면 · 팝업 공용)
 *   톤: 깊은 바다 남색 + 신호기(빨강·노랑·파랑) + 트로피 금색 + 흰 돛
 */
:root{
  --r-navy:#061a3a; --r-navy2:#0b2a5b; --r-sea:#1665b8; --r-sky:#5fb4f0; --r-foam:#e9f5ff;
  --r-red:#e63946; --r-yellow:#ffc72c; --r-blue:#1d4ed8; --r-gold:#d4a017; --r-gold2:#ffd36e;
  --r-ink:#0f172a; --r-sub:#64748b; --r-line:#e2e8f0; --r-bg:#f4f7fb; --r-card:#fff;
  --r-ok:#16a34a; --r-warn:#f59e0b; --r-bad:#dc2626;
  --r-rad:14px; --r-sh:0 10px 30px rgba(6,26,58,.12);
}
.rc *{box-sizing:border-box}
.rc{font-family:Pretendard,"Apple SD Gothic Neo","Noto Sans KR",sans-serif;color:var(--r-ink)}
.rc img{max-width:100%}

/* 버튼 */
.rc-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:44px;padding:0 18px;border-radius:12px;border:1.5px solid var(--r-line);
  background:#fff;color:var(--r-ink);font:inherit;font-size:14px;font-weight:800;cursor:pointer;text-decoration:none;white-space:nowrap;transition:transform .12s,box-shadow .12s}
.rc-btn:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(6,26,58,.12)}
.rc-btn:disabled{opacity:.45;cursor:default;transform:none;box-shadow:none}
.rc-btn.pri{background:var(--r-sea);border-color:var(--r-sea);color:#fff}
.rc-btn.navy{background:var(--r-navy);border-color:var(--r-navy);color:#fff}
.rc-btn.gold{background:var(--r-gold2);border-color:var(--r-gold2);color:var(--r-navy)}
.rc-btn.red{background:var(--r-red);border-color:var(--r-red);color:#fff}
.rc-btn.ghost{background:transparent;border-color:rgba(255,255,255,.55);color:#fff}
.rc-btn.sm{height:36px;padding:0 12px;font-size:13px;border-radius:10px}
.rc-btn.xs{height:30px;padding:0 10px;font-size:12px;border-radius:8px}
.rc-btn.lg{height:54px;padding:0 26px;font-size:16px;border-radius:14px}
.rc-btn .i{width:18px;height:18px}

/* 상태 배지 — 예정·진행·종료·취소 */
.rc-st{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:900;white-space:nowrap}
.rc-st::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}
.rc-st.plan{background:#eef5ff;color:#1e6fd9}
.rc-st.live{background:#fee2e2;color:#dc2626}
.rc-st.live::before{animation:rcBlink 1s infinite}
.rc-st.end{background:#ecfdf3;color:#15803d}
.rc-st.cancel{background:#f1f5f9;color:#64748b;text-decoration:line-through}
.rc-st.cancel::before{background:#94a3b8}
@keyframes rcBlink{50%{opacity:.2}}
.rc-chip{display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 9px;border-radius:999px;background:#eef2f7;color:#334155;font-size:12px;font-weight:800}
.rc-chip.test{background:#fff7e0;color:#a16207}
.rc-chip.real{background:#ecfdf3;color:#15803d}
.rc-dot{display:inline-block;width:12px;height:12px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.15);vertical-align:-1px}

/* 모달 (alert·confirm 대신) */
.rc-mask{position:fixed;inset:0;z-index:9000;background:rgba(6,26,58,.55);display:flex;align-items:center;justify-content:center;padding:16px;animation:rcFade .15s}
@keyframes rcFade{from{opacity:0}}
.rc-modal{background:#fff;border-radius:18px;box-shadow:0 30px 80px rgba(0,0,0,.35);width:100%;max-width:560px;max-height:calc(100vh - 32px);display:flex;flex-direction:column;overflow:hidden;animation:rcUp .2s cubic-bezier(.2,.8,.2,1)}
@keyframes rcUp{from{transform:translateY(16px);opacity:0}}
.rc-modal.sm{max-width:420px}.rc-modal.lg{max-width:860px}.rc-modal.xl{max-width:1180px}
.rc-modal.full{max-width:none;width:calc(100vw - 32px);height:calc(100vh - 32px)}
.rc-mh{display:flex;align-items:center;gap:10px;padding:16px 18px;border-bottom:1px solid var(--r-line);background:linear-gradient(90deg,var(--r-navy),var(--r-navy2));color:#fff}
.rc-mh h3{margin:0;font-size:17px;font-weight:900;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rc-mh .x{width:40px;height:40px;border-radius:10px;border:0;background:rgba(255,255,255,.14);color:#fff;font-size:22px;cursor:pointer;flex:0 0 auto}
.rc-mb{padding:18px;overflow:auto;flex:1;min-height:0}
.rc-mb.nopad{padding:0}
.rc-mf{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid var(--r-line);background:#f8fafc;flex-wrap:wrap}
.rc-msg{font-size:15px;line-height:1.6;color:#334155;white-space:pre-line}
.rc-toast{position:fixed;left:50%;bottom:32px;transform:translateX(-50%);z-index:10500;background:var(--r-navy);color:#fff;padding:12px 20px;border-radius:12px;font-weight:700;font-size:14px;box-shadow:var(--r-sh);animation:rcUp .2s}

/* 폼 */
.rc-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px}
.rc-form .full{grid-column:1/-1}
.rc-f label{display:block;font-size:12px;font-weight:800;color:#475569;margin-bottom:5px}
.rc-f label .req{color:var(--r-red)}
.rc-f input[type=text],.rc-f input[type=number],.rc-f input[type=tel],.rc-f input[type=email],.rc-f input[type=date],.rc-f input[type=time],
.rc-f input[type=datetime-local],.rc-f select,.rc-f textarea{width:100%;height:44px;padding:0 12px;border:1.5px solid var(--r-line);border-radius:10px;font:inherit;font-size:14px;background:#fff;color:var(--r-ink)}
.rc-f textarea{height:auto;min-height:90px;padding:10px 12px;resize:vertical}
.rc-f input:focus,.rc-f select:focus,.rc-f textarea:focus{outline:0;border-color:var(--r-sea);box-shadow:0 0 0 3px rgba(22,101,184,.15)}
.rc-f .hint{font-size:12px;color:var(--r-sub);margin-top:4px}
.rc-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.rc-seg{display:inline-flex;border:1.5px solid var(--r-line);border-radius:10px;overflow:hidden}
.rc-seg button{height:40px;padding:0 14px;border:0;background:#fff;font:inherit;font-size:13px;font-weight:800;color:#64748b;cursor:pointer}
.rc-seg button.on{background:var(--r-navy);color:#fff}
.rc-chk{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;cursor:pointer;user-select:none;min-height:32px}
.rc-chk input{width:18px;height:18px;accent-color:var(--r-sea)}
.rc-sec-t{font-size:13px;font-weight:900;color:var(--r-navy);margin:18px 0 8px;display:flex;align-items:center;gap:8px}
.rc-sec-t::before{content:"";width:4px;height:14px;border-radius:2px;background:var(--r-red)}
.rc-sec-t:first-child{margin-top:0}
.rc-tabs{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid var(--r-line);margin:-4px -18px 16px;padding:0 14px}
.rc-tabs::-webkit-scrollbar{display:none}
.rc-tabs button{flex:0 0 auto;height:44px;padding:0 14px;border:0;background:none;font:inherit;font-size:14px;font-weight:800;color:#64748b;cursor:pointer;border-bottom:3px solid transparent}
.rc-tabs button.on{color:var(--r-navy);border-bottom-color:var(--r-red)}

/* 이미지 고르기 */
.rc-img{position:relative;width:100%;aspect-ratio:16/9;border:2px dashed #cbd5e1;border-radius:12px;background:#f8fafc center/cover no-repeat;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#94a3b8;font-size:13px;font-weight:800;overflow:hidden}
.rc-img.sq{aspect-ratio:1/1}.rc-img.port{aspect-ratio:3/4}
.rc-img.has{border-style:solid;border-color:var(--r-line);color:transparent}
.rc-img .del{position:absolute;right:6px;top:6px;width:30px;height:30px;border-radius:8px;border:0;background:rgba(15,23,42,.7);color:#fff;font-size:16px;cursor:pointer;display:none}
.rc-img.has .del{display:block}
.rc-img input{display:none}

/* 표 · 목록 */
.rc-list{display:flex;flex-direction:column;gap:8px}
.rc-item{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid var(--r-line);border-radius:12px;background:#fff}
.rc-item .grow{flex:1;min-width:0}
.rc-item .t{font-weight:900;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rc-item .s{font-size:12px;color:var(--r-sub);margin-top:2px}
.rc-item .acts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.rc-thumb{width:46px;height:46px;border-radius:10px;background:#eef2f7 center/cover no-repeat;flex:0 0 auto}
.rc-thumb.round{border-radius:50%}
.rc-empty{padding:28px;text-align:center;color:#94a3b8;font-weight:700;font-size:14px;border:1px dashed #cbd5e1;border-radius:12px}
.rc-tbl{width:100%;border-collapse:collapse;font-size:13px}
.rc-tbl th{background:#f1f5f9;font-weight:800;color:#475569;text-align:left;padding:9px 10px;white-space:nowrap}
.rc-tbl td{border-bottom:1px solid #eef1f5;padding:9px 10px;vertical-align:middle}
.rc-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}

/* 지도 고르기 */
.rc-pick{position:relative;height:min(62vh,560px);border-radius:12px;overflow:hidden;background:#aad3df}
.rc-pick .map{position:absolute;inset:0}
.rc-pick .map img{max-width:none !important}
.rc-pick .tip{position:absolute;z-index:600;left:56px;top:12px;right:12px;background:rgba(6,26,58,.88);color:#fff;border-radius:10px;padding:8px 12px;font-size:13px;font-weight:700;pointer-events:none}
.rc-mk{width:30px;height:30px;border-radius:50%;border:3px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.35);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:900;font-size:13px}
.rc-mk.s{background:var(--r-ok)}.rc-mk.m{background:var(--r-warn)}.rc-mk.f{background:var(--r-red)}.rc-mk.p{background:var(--r-sea)}

/* 시상대 */
.rc-podium{display:grid;grid-template-columns:1fr 1.25fr 1fr;align-items:end;gap:14px;max-width:880px;margin:0 auto}
.rc-pod{position:relative;text-align:center;background:#fff;border-radius:18px;box-shadow:var(--r-sh);padding:16px 12px 0;overflow:hidden}
.rc-pod .img{width:100%;aspect-ratio:4/3;border-radius:12px;background:#eef2f7 center/cover no-repeat;margin-bottom:10px}
.rc-pod .logo{width:58px;height:58px;border-radius:50%;background:#fff center/cover no-repeat;border:3px solid #fff;box-shadow:0 4px 12px rgba(0,0,0,.2);margin:-38px auto 6px;position:relative}
.rc-pod .nm{font-weight:900;font-size:16px}
.rc-pod .tm{font-size:12px;color:var(--r-sub);margin:2px 0 8px}
.rc-pod .base{height:46px;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:900;color:#fff;margin:0 -12px}
.rc-pod.p1{padding-top:92px;border:3px solid var(--r-gold2);box-shadow:0 0 0 6px rgba(255,211,110,.25),0 20px 50px rgba(212,160,23,.35);background:linear-gradient(180deg,#fffaf0,#fff 40%)}
.rc-pod.p1 .base{height:70px;background:linear-gradient(180deg,#f7c948,#d4a017);font-size:32px}
.rc-pod.p2 .base{background:linear-gradient(180deg,#cbd5e1,#94a3b8)}
.rc-pod.p3 .base{background:linear-gradient(180deg,#e7a977,#b45309)}
.rc-pod .crown{position:absolute;left:50%;top:6px;transform:translateX(-50%);width:156px;height:80px;filter:drop-shadow(0 3px 6px rgba(212,160,23,.4))}
.rc-pod.p1 .nm{font-size:19px}
.rc-pod .tm2{font-size:12px;font-weight:800;color:var(--r-sea)}
.rc-ranks{max-width:880px;margin:18px auto 0;display:flex;flex-direction:column;gap:6px}
.rc-rank{display:flex;align-items:center;gap:12px;background:#fff;border-radius:12px;padding:8px 12px;border:1px solid var(--r-line)}
.rc-rank .n{width:34px;font-size:18px;font-weight:900;color:#94a3b8;text-align:center}
.rc-rank .grow{flex:1;min-width:0}
.rc-rank .t{font-weight:900;font-size:14px}
.rc-rank .s{font-size:12px;color:var(--r-sub)}
@media (max-width:640px){
  .rc-podium{grid-template-columns:1fr 1fr;gap:10px}
  .rc-pod.p1{grid-column:1/-1;order:-1}
  .rc-form{grid-template-columns:1fr}
}

/* ─── 경기 지도 (중계 · 다시보기) ─── */
.rm-wrap{position:relative;width:100%;height:100%;background:#0c3d70;overflow:hidden;isolation:isolate}
.rm-map{position:absolute;inset:0}
.rm-map img{max-width:none !important;display:inline}
.rm-cv{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:450}
.rm-boat{position:relative;width:40px;height:40px}
.rm-boat svg{position:absolute;inset:0;filter:drop-shadow(0 2px 3px rgba(0,0,0,.45));transition:transform .18s linear}
.rm-boat .lb{position:absolute;left:50%;top:40px;transform:translateX(-50%);white-space:nowrap;font-size:11px;font-weight:900;color:#fff;padding:0 6px;border-radius:7px;box-shadow:0 1px 4px rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.7)}
.rm-boat .lb small{font-weight:700;opacity:.9;margin-left:3px}
.rm-boat.lost svg{opacity:.45}
.rm-boat.lost .lb::after{content:" · 통신 끊김";font-weight:700}
.rm-boat.me .lb{outline:2px solid #fff}
.rm-boat.sel::before{content:"";position:absolute;inset:-10px;border-radius:50%;border:3px solid #fff;animation:rmPing 1.4s infinite}
@keyframes rmPing{0%{transform:scale(.7);opacity:1}100%{transform:scale(1.4);opacity:0}}
.rm-mark{width:26px;height:26px;border-radius:50%;border:3px solid #fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:900;color:#0f172a;box-shadow:0 2px 6px rgba(0,0,0,.4)}
.rm-mark.start{background:#22c55e;color:#fff}.rm-mark.mark{background:#ffc72c}.rm-mark.finish{background:#e63946;color:#fff}
.rm-mark.live::after{content:"";position:absolute;width:40px;height:40px;border-radius:50%;border:2px solid #ffc72c;animation:rmPing 1.8s infinite}
.rm-mlb{white-space:nowrap;font-size:11px;font-weight:800;color:#fff;background:rgba(6,26,58,.8);padding:1px 6px;border-radius:6px}
.rm-ov{position:absolute;z-index:600}
.rm-board{left:12px;top:12px;width:300px;max-height:calc(100% - 190px);background:rgba(6,26,58,.88);backdrop-filter:blur(8px);color:#fff;border-radius:16px;box-shadow:var(--r-sh);display:flex;flex-direction:column;overflow:hidden}
.rm-board .hd{padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.12)}
.rm-board .hd .t{font-weight:900;font-size:15px;display:flex;align-items:center;gap:8px}
.rm-board .hd .s{font-size:12px;color:#9fc3ea;margin-top:3px}
.rm-board .bd{overflow:auto;padding:4px 6px}
.rm-board .more{border:0;border-top:1px solid rgba(255,255,255,.12);background:transparent;color:#ffd36e;font:inherit;font-size:12px;font-weight:800;height:34px;cursor:pointer;flex:0 0 auto}
.rm-board .row{display:flex;align-items:center;gap:8px;padding:3px 8px;border-radius:9px;cursor:pointer;font-size:12px;min-height:32px}
.rm-board .row:hover,.rm-board .row.on{background:rgba(255,255,255,.12)}
.rm-board .row .n{width:24px;font-weight:900;color:#ffd36e;text-align:center}
.rm-board .row .c{width:8px;height:22px;border-radius:3px;flex:0 0 auto}
.rm-board .row .g{flex:1;min-width:0}
.rm-board .row .g b{display:block;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rm-board .row .g span{font-size:11px;color:#9fc3ea}
.rm-board .row .v{font-size:12px;font-weight:800;text-align:right;white-space:nowrap}
.rm-board .row .v small{display:block;font-weight:600;color:#9fc3ea}
.rm-board .row.lost .g span{color:#fbbf24}
.rm-board.mini{width:auto;max-height:none}
.rm-board.mini .bd{display:none}
.rm-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.rm-grid div{background:#f8fafc;border-radius:10px;padding:8px 10px}
.rm-grid .l{font-size:11px;color:#64748b;font-weight:700}
.rm-grid .v{font-size:15px;font-weight:900}
.rm-chart{height:120px}
.rm-lost{display:inline-flex;align-items:center;gap:4px;background:#fff7e0;color:#a16207;border-radius:8px;padding:4px 8px;font-size:12px;font-weight:800}
@media (max-width:760px){
  .rm-board{width:auto;left:56px;right:12px;max-height:48px}
  .rm-board.open{max-height:45%}
  .rm-board .bd{display:none}.rm-board.open .bd{display:block}
                }

/* ─── 응원 talk ─── */
.rt-box{display:flex;flex-direction:column;height:100%;background:#fff}
.rt-hd{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--r-line);font-weight:900;font-size:14px}
.rt-hd .cnt{font-size:12px;color:var(--r-sub);font-weight:700}
.rt-list{flex:1;overflow:auto;padding:10px 12px;display:flex;flex-direction:column;gap:10px;min-height:0}
.rt-av{width:32px;height:32px;border-radius:50%;background:#e2e8f0 center/cover no-repeat;flex:0 0 auto;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:900;color:#fff}
.rt-in{border-top:1px solid var(--r-line);padding:8px;display:flex;flex-direction:column;gap:6px}
.rt-in .tm-pick{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}
.rt-in .tm-pick::-webkit-scrollbar{display:none}
.rt-in .tm-pick button{flex:0 0 auto;height:30px;padding:0 10px;border-radius:999px;border:1.5px solid var(--r-line);background:#fff;font:inherit;font-size:12px;font-weight:800;cursor:pointer;display:flex;align-items:center;gap:4px}
.rt-in .tm-pick button.on{border-color:var(--r-navy);background:var(--r-navy);color:#fff}
.rt-in form{display:flex;gap:6px}
.rt-in input{flex:1;min-width:0;height:44px;border:1.5px solid var(--r-line);border-radius:12px;padding:0 12px;font:inherit;font-size:14px}
.rt-in button.send{height:44px;padding:0 16px;border-radius:12px;border:0;background:var(--r-red);color:#fff;font:inherit;font-weight:900;cursor:pointer}
.rt-join{padding:12px;text-align:center;font-size:13px;color:#475569;display:flex;flex-direction:column;gap:8px;align-items:center}
.rt-float{position:absolute;z-index:620;left:50%;transform:translateX(-50%);bottom:96px;width:min(440px,calc(100% - 24px));display:flex;flex-direction:column;gap:6px;pointer-events:none;align-items:center}
.rt-bub{background:rgba(255,255,255,.95);border-radius:999px;padding:6px 14px 6px 6px;box-shadow:0 6px 18px rgba(0,0,0,.25);display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;max-width:100%;animation:rtBub 5.5s forwards}
.rt-bub .rt-av{width:26px;height:26px;font-size:11px}
.rt-bub span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rt-bub b{flex:0 0 auto}
@keyframes rtBub{0%{opacity:0;transform:translateY(16px) scale(.9)}8%{opacity:1;transform:none}80%{opacity:1}100%{opacity:0;transform:translateY(-14px)}}

/* ─── 2026-10-06 레이아웃: 하단 컨트롤 바 · 정보 박스 · 레이어 스택(애플 바) ─── */
.rm-glass{background:rgba(255,255,255,.72);backdrop-filter:blur(22px) saturate(1.7);-webkit-backdrop-filter:blur(22px) saturate(1.7);border:1px solid rgba(255,255,255,.55);box-shadow:0 12px 40px rgba(6,26,58,.22)}
.rm-info{top:12px;left:322px;display:flex;flex-direction:column;gap:8px;padding:10px 12px;border-radius:16px;font-size:12px;color:#334155;max-width:300px;
  background:rgba(255,255,255,.72);backdrop-filter:blur(22px) saturate(1.7);-webkit-backdrop-filter:blur(22px) saturate(1.7);border:1px solid rgba(255,255,255,.55);box-shadow:0 10px 30px rgba(6,26,58,.18)}
.rm-info .wx{display:grid;grid-template-columns:34px 1fr;gap:6px 8px;align-items:center}
.rm-info .wx .ar{width:34px;height:34px;border-radius:50%;background:#eef5ff;display:flex;align-items:center;justify-content:center}
.rm-info .wx b{font-size:14px;color:#0f172a}
.rm-info .bar{display:inline-block;width:56px;height:5px;border-radius:3px;vertical-align:middle;background:linear-gradient(90deg,rgb(37,99,235),rgb(6,182,212),rgb(34,197,94),rgb(234,179,8),rgb(249,115,22),rgb(220,38,38))}
.rm-info .bar.c{background:linear-gradient(90deg,rgb(196,181,253),rgb(139,92,246),rgb(192,38,211),rgb(219,39,119))}
.rm-info .lg{display:flex;flex-wrap:wrap;gap:4px 10px;font-weight:700;color:#475569}
.rm-info .lg:empty{display:none}
.rm-info .lg .ln{display:inline-block;width:18px;height:0;vertical-align:middle;margin-right:4px}
.rm-info .lg .ln.dash{border-top:2px dashed #0f172a}
.rm-info .lg .ln.ring{width:12px;height:12px;border-radius:50%;border:2px solid #ffc72c}
.rm-info .lg .ln.guide{border-top:2px dotted #e63946}
.rm-info .lg .ln.solid{border-top:3px solid #1d4ed8}
/* 레이어 스택 — 앞 카드(응원 talk) · 뒤 카드(선체 정보) 같은 자리 */
.rm-stack{right:12px;top:12px;bottom:150px;width:360px;max-width:calc(100% - 24px);pointer-events:none;z-index:700}
.rm-card{position:absolute;left:0;right:0;top:0;bottom:0;pointer-events:auto;border-radius:22px;overflow:hidden;display:flex;flex-direction:column;transition:top .3s cubic-bezier(.2,.8,.2,1),transform .3s,opacity .3s,height .3s,bottom .3s;
  background:rgba(255,255,255,.62);backdrop-filter:blur(24px) saturate(1.7);-webkit-backdrop-filter:blur(24px) saturate(1.7);border:1px solid rgba(255,255,255,.6);box-shadow:0 16px 44px rgba(6,26,58,.26)}
.rm-stack .rm-card.hid{display:none !important}
.rm-stack.empty{display:none}
.rm-stack.two .rm-card.front{top:54px;z-index:2}
.rm-stack.two .rm-card.back{z-index:1;bottom:auto;height:calc(100% - 54px);transform:scale(.93);transform-origin:top center;opacity:.9;filter:saturate(.8)}
.rm-stack.two .rm-card.back:hover{opacity:1}
.rm-card.back > :not(.rm-ch):not(.rt-hd){pointer-events:none}
.rm-stack.min .rm-card.front{bottom:auto;height:60px}
.rm-stack.min.two .rm-card.back{height:110px}
.rm-ch,.rm-card .rt-hd{position:relative;display:flex;align-items:center;gap:10px;padding:16px 14px 10px;cursor:pointer;flex:0 0 auto;background:transparent;border-bottom:1px solid rgba(15,23,42,.08)}
.rm-ch .grab,.rm-card .rt-hd::before{content:"";position:absolute;left:50%;top:6px;transform:translateX(-50%);width:38px;height:5px;border-radius:3px;background:rgba(15,23,42,.22)}
.rm-ch.hd{border-left:0}
.rm-ch .lg{width:40px;height:40px;border-radius:50%;background:#fff center/cover no-repeat;border:2px solid var(--c);flex:0 0 auto}
.rm-ch .tt{flex:1;min-width:0}
.rm-ch .tt b{display:block;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rm-ch .tt span{font-size:11.5px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.rm-ch .x{width:34px;height:34px;border:0;border-radius:50%;background:rgba(15,23,42,.08);font-size:18px;cursor:pointer;flex:0 0 auto}
.rm-card.detail .bd{flex:1;overflow:auto;padding:12px 14px;display:flex;flex-direction:column;gap:10px}
.rm-card .rm-grid div{background:rgba(255,255,255,.65)}
.rm-card.rt-box{position:absolute;height:auto;background:rgba(255,255,255,.62)}
.rm-stack.min .rm-card.rt-box.front{height:60px}
.rm-card .rm-card .rt-in{border-top:1px solid rgba(15,23,42,.08)}
.rt-float{bottom:150px !important}
@media (max-width:760px){
    .rm-card.rt-box{height:auto}
    .rm-info{left:auto !important;right:8px;top:66px;max-width:200px;padding:8px 10px}
  .rm-info .lg{display:none}
}
.rt-box{position:relative}
.rt-cheer{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:800;color:#64748b}
.rt-cheer .pick{height:28px;padding:0 10px;border-radius:999px;border:1.5px solid rgba(15,23,42,.14);background:rgba(255,255,255,.75);font:inherit;font-size:12px;font-weight:800;color:#0f172a;cursor:pointer;display:inline-flex;align-items:center;gap:5px;max-width:220px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.rt-pop{position:absolute;inset:0;z-index:20;background:rgba(6,26,58,.28);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:flex-end;animation:rcFade .15s}
.rt-pop .in{width:100%;max-height:85%;display:flex;flex-direction:column;border-radius:20px 20px 0 0;padding:14px 14px 10px;animation:rcUp .22s cubic-bezier(.2,.8,.2,1);
  background:rgba(255,255,255,.88);backdrop-filter:blur(24px) saturate(1.7);-webkit-backdrop-filter:blur(24px) saturate(1.7);box-shadow:0 -10px 30px rgba(6,26,58,.2)}
.rt-pop .h{display:flex;align-items:center;margin-bottom:8px}
.rt-pop .h b{flex:1;font-size:15px}
.rt-pop .h .x{width:32px;height:32px;border:0;border-radius:50%;background:rgba(15,23,42,.08);font-size:18px;cursor:pointer}
.rt-pop .q{height:38px;border:1.5px solid rgba(15,23,42,.12);border-radius:10px;padding:0 10px;font:inherit;font-size:13px;margin-bottom:8px;background:rgba(255,255,255,.8)}
.rt-pop .ls{overflow:auto;display:grid;grid-template-columns:1fr 1fr;gap:6px;padding-bottom:4px}
.rt-pop .ls button{display:flex;align-items:center;gap:6px;flex-wrap:wrap;text-align:left;padding:8px 10px;border-radius:12px;border:1.5px solid rgba(15,23,42,.1);background:rgba(255,255,255,.75);font:inherit;font-size:12.5px;cursor:pointer;min-height:44px}
.rt-pop .ls button small{flex-basis:100%;font-size:11px;color:#64748b;padding-left:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rt-pop .ls button.on{border-color:#061a3a;background:#061a3a;color:#fff}
.rt-pop .ls button.on small{color:#9fc3ea}

.rm-stack .rm-card{position:absolute}
.rm-card 
/* 요트 목록 — 전체 스크롤, 넉넉한 칸 (국기 · 팀번호 · 명칭 / 팀 · 탑승 인원 · 선급 / 진행) */
.rm-board{width:320px}
.rm-board .bd{padding:6px 8px;display:flex;flex-direction:column;gap:6px;overscroll-behavior:contain}
.rm-board .row{align-items:center;gap:10px;padding:10px 12px 10px 10px;min-height:68px;border-radius:12px;background:rgba(255,255,255,.05);border-left:4px solid var(--c);font-size:12px}
.rm-board .row:hover{background:rgba(255,255,255,.1)}
.rm-board .row.on{background:rgba(255,255,255,.16)}
.rm-board .row .n{width:24px;font-size:17px;flex:0 0 auto}
.rm-board .row .g{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.rm-board .row .g .l1{display:flex;align-items:center;gap:6px;min-width:0}
.rm-board .row .g .l1 b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline}
.rm-board .row .fg{flex:0 0 auto;display:inline-flex;line-height:0;border-radius:2px;overflow:hidden}
.rm-board .row .fg.cc{line-height:1;font-size:11px;font-weight:900;background:#fff;color:#0f172a;padding:2px 3px}
.rm-board .row .no{font-style:normal;flex:0 0 auto;background:var(--c);color:#fff;font-size:11px;font-weight:900;padding:1px 6px;border-radius:6px}
.rm-board .row .g .l2{display:flex;align-items:center;gap:8px;font-size:11px;color:#bcd4f0;min-width:0;white-space:nowrap;overflow:hidden}
.rm-board .row .g .l2 .tm{overflow:hidden;text-overflow:ellipsis;min-width:0}
.rm-board .row .g .l2 .crew{display:inline-flex;align-items:center;gap:2px;color:#fff;font-weight:800;flex:0 0 auto}
.rm-board .row .g .l3{font-size:11px;color:#9fc3ea}
.rm-board .row.lost .g .l3{color:#fbbf24}
.rm-board .row .v{font-size:15px;font-weight:900}
.rm-board .row .v i{font-style:normal;font-size:11px;margin-left:1px;color:#9fc3ea}
.rm-board .row .v small{font-size:11px}

/* 응원 talk 말풍선 (카카오톡 형식) */
.rt-list{gap:4px}
.rt-msg{display:flex;gap:8px;align-items:flex-start;animation:rcUp .2s;margin-top:8px}
.rt-msg.cont{margin-top:0;padding-left:40px}
.rt-msg .b{min-width:0;max-width:calc(100% - 40px);display:flex;flex-direction:column;align-items:flex-start;gap:3px}
.rt-msg .n{display:flex;align-items:center;gap:6px;font-size:12px;color:#334155;min-width:0;max-width:100%}
.rt-msg .n b{font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rt-msg .n .tm{flex:0 0 auto;font-size:11px;font-weight:900;padding:1px 7px;border-radius:999px;color:#fff;white-space:nowrap}
.rt-msg .ln{display:flex;align-items:flex-end;gap:5px;max-width:100%}
.rt-msg .tx{background:#fff;border-radius:4px 16px 16px 16px;padding:8px 12px;font-size:14px;line-height:1.45;word-break:break-word;overflow-wrap:anywhere;white-space:pre-wrap;box-shadow:0 1px 2px rgba(15,23,42,.08);min-width:0}
.rt-msg.cont .tx{border-radius:16px}
.rt-msg time{flex:0 0 auto;font-size:11px;color:#64748b;padding-bottom:2px}
.rt-msg .hide{flex:0 0 auto;width:20px;height:20px;border:0;border-radius:50%;background:rgba(15,23,42,.08);color:#64748b;font-size:13px;line-height:1;cursor:pointer;opacity:0;transition:opacity .15s}
.rt-msg:hover .hide{opacity:1}
.rt-msg.me{justify-content:flex-end}
.rt-msg.me .b{align-items:flex-end;max-width:85%}
.rt-msg.me.cont{padding-left:0}
.rt-msg.me .ln{flex-direction:row-reverse}
.rt-msg.me .tx{background:#1665b8;color:#fff;border-radius:16px 4px 16px 16px}
.rt-msg.me.cont .tx{border-radius:16px}
.rm-card .rt-msg .tx{background:rgba(255,255,255,.88)}
.rm-card .rt-msg.me .tx{background:#1665b8;color:#fff}
.rm-card .rt-list{padding:8px 12px 12px}

/* ═══ 2026-10-06 유니티 플로터 디자인 (v2 다크 글래스 · 파랑 강조) — 중계·다시보기 지도 ═══ */
.rm-wrap{--k:1;--dock:110px;--u-card:rgba(0,0,0,.72);--u-line:rgba(255,255,255,.14);--u-sheet:rgba(14,18,24,.92);--u-acc:#0a6cff;--u-acc2:#2fb3ff;
  --u-txt:#f1f5f9;--u-dim:#94a3b8;--u-ok:#22d36b;--u-warn:#ffb020;--u-red:#ff2d2d;--u-num:"SF Pro Display","Roboto","Helvetica Neue",-apple-system,"Segoe UI",sans-serif;background:#0e1218}
/* 요트 목록 — 플로터 카드 */
.rm-wrap .rm-board{left:calc(12px*var(--k));top:calc(12px*var(--k));bottom:calc(var(--dock) + 12px);max-height:none;width:calc(320px*var(--k));
  background:var(--u-card);border:1px solid var(--u-line);border-radius:calc(16px*var(--k));backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 4px 18px rgba(0,0,0,.45)}
.rm-wrap .rm-board .hd{padding:calc(12px*var(--k)) calc(14px*var(--k));border-bottom:1px solid var(--u-line)}
.rm-wrap .rm-board .hd .t{font-size:calc(15px*var(--k));color:var(--u-txt)}
.rm-wrap .rm-board .hd .s{color:var(--u-dim);font-size:calc(11.5px*var(--k))}
.rm-wrap .rm-board .hd .rc-st.live{background:var(--u-red);color:#fff}
.rm-wrap .rm-board .hd .rc-st.end{background:var(--u-acc);color:#fff}
.rm-wrap .rm-board .row{background:rgba(255,255,255,.04);min-height:calc(68px*var(--k));padding:calc(10px*var(--k)) calc(12px*var(--k)) calc(10px*var(--k)) calc(10px*var(--k));border-radius:calc(12px*var(--k));font-size:calc(12px*var(--k))}
.rm-wrap .rm-board .row:hover{background:rgba(255,255,255,.09)}
.rm-wrap .rm-board .row.on{background:rgba(10,108,255,.28);box-shadow:inset 0 0 0 1px var(--u-acc)}
.rm-wrap .rm-board .row .n{color:var(--u-acc2);font-family:var(--u-num);font-size:calc(18px*var(--k));width:calc(26px*var(--k))}
.rm-wrap .rm-board .row .g .l1 b{font-size:calc(14px*var(--k));color:var(--u-txt)}
.rm-wrap .rm-board .row .no{font-size:calc(11px*var(--k))}
.rm-wrap .rm-board .row .g .l2{font-size:calc(11px*var(--k));color:var(--u-dim)}
.rm-wrap .rm-board .row .g .l2 .crew{color:var(--u-txt)}
.rm-wrap .rm-board .row .g .l3{font-size:calc(11px*var(--k));color:var(--u-acc2)}
.rm-wrap .rm-board .row.lost .g .l3{color:var(--u-warn)}
.rm-wrap .rm-board .row .v{color:var(--u-txt);font-family:var(--u-num);font-size:calc(16px*var(--k))}
.rm-wrap .rm-board .row .v small,.rm-wrap .rm-board .row .v i{color:var(--u-dim)}
.rm-wrap .rm-board .row .fg svg{width:calc(21px*var(--k));height:calc(14px*var(--k))}
/* 기상·범례 — 플로터 HUD 카드 */
.rm-wrap .rm-info{background:var(--u-card);border:1px solid var(--u-line);color:var(--u-txt);border-radius:calc(14px*var(--k));top:calc(12px*var(--k));
  padding:calc(9px*var(--k)) calc(12px*var(--k));font-size:calc(12px*var(--k));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 3px 14px rgba(0,0,0,.28);max-width:calc(320px*var(--k))}
.rm-wrap .rm-info .wx{grid-template-columns:calc(34px*var(--k)) 1fr}
.rm-wrap .rm-info .wx .ar{width:calc(34px*var(--k));height:calc(34px*var(--k));background:rgba(255,255,255,.08)}
.rm-wrap .rm-info .wx .ar path{fill:var(--u-acc2)}
.rm-wrap .rm-info .wx .ar[title^="조류"] path{fill:#b794f6}
.rm-wrap .rm-info .wx b{color:#fff;font-family:var(--u-num);font-size:calc(17px*var(--k))}
.rm-wrap .rm-info .lg{color:var(--u-dim);border-top:1px solid var(--u-line);padding-top:calc(7px*var(--k))}
.rm-wrap .rm-info .lg .ln.dash{border-top-color:#fff}
.rm-wrap .rm-info .lg .ln.guide{border-top-color:#fff}
.rm-wrap .rm-info .lg .ln.solid{border-top-color:var(--u-acc2)}
/* 하단 독 — 플로터 하단 메뉴 */
.rm-dock{left:0;right:0;bottom:0;z-index:800;background:var(--u-sheet);border:1px solid var(--u-line);border-bottom:0;border-radius:calc(22px*var(--k)) calc(22px*var(--k)) 0 0;
  box-shadow:0 -8px 36px rgba(0,0,0,.4);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);color:var(--u-txt);padding-bottom:env(safe-area-inset-bottom,0px)}
.rm-dock .grab{height:calc(16px*var(--k));display:flex;align-items:center;justify-content:center}
.rm-dock .grab i{width:calc(48px*var(--k));height:5px;border-radius:99px;background:rgba(255,255,255,.18)}
.rm-dock .sl{padding:0 calc(16px*var(--k)) calc(4px*var(--k))}
.rm-dock .sl input{-webkit-appearance:none;appearance:none;width:100%;height:calc(6px*var(--k));border-radius:99px;background:rgba(255,255,255,.18);outline:none;margin:calc(6px*var(--k)) 0}
.rm-dock .sl input::-webkit-slider-thumb{-webkit-appearance:none;width:calc(22px*var(--k));height:calc(22px*var(--k));border-radius:50%;background:#fff;border:4px solid var(--u-acc);box-shadow:0 2px 8px rgba(0,0,0,.4);cursor:pointer}
.rm-dock .sl input::-moz-range-thumb{width:calc(18px*var(--k));height:calc(18px*var(--k));border-radius:50%;background:#fff;border:4px solid var(--u-acc)}
.rm-dock .row{display:flex;align-items:center;gap:calc(10px*var(--k));padding:0 calc(10px*var(--k)) calc(8px*var(--k))}
.rm-dock .pl{display:flex;align-items:center;gap:calc(10px*var(--k));flex:0 0 auto;padding-right:calc(10px*var(--k));border-right:1px solid var(--u-line)}
.rm-dock .pl .lv{background:var(--u-red);color:#fff;font-weight:900;font-size:calc(13px*var(--k));padding:calc(6px*var(--k)) calc(12px*var(--k));border-radius:calc(10px*var(--k));letter-spacing:1px;animation:rcBlink 1.6s infinite}
.rm-dock .pl .pb{width:calc(56px*var(--k));height:calc(56px*var(--k));border-radius:calc(16px*var(--k));border:0;background:var(--u-acc);display:flex;align-items:center;justify-content:center;cursor:pointer}
.rm-dock .pl .pb svg{width:calc(30px*var(--k));height:calc(30px*var(--k));fill:#fff}
.rm-dock .pl .tm{display:flex;flex-direction:column;min-width:calc(78px*var(--k))}
.rm-dock .pl .tm b{font-family:var(--u-num);font-size:calc(20px*var(--k));font-weight:700;letter-spacing:.5px;color:#fff}
.rm-dock .pl .tm small{font-size:calc(11px*var(--k));color:var(--u-dim);font-weight:700}
.rm-dock .pl .sp{display:flex;gap:calc(3px*var(--k));background:rgba(255,255,255,.07);border-radius:calc(12px*var(--k));padding:calc(3px*var(--k))}
.rm-dock .pl .sp button{min-width:calc(38px*var(--k));height:calc(34px*var(--k));border:0;border-radius:calc(9px*var(--k));background:transparent;color:var(--u-dim);font-family:var(--u-num);font-size:calc(13px*var(--k));font-weight:800;cursor:pointer}
.rm-dock .pl .sp button.on{background:var(--u-acc);color:#fff}
.rm-dock .qk{flex:1;min-width:0}
.rm-dock .qk .in{display:flex;align-items:center;gap:calc(2px*var(--k));overflow-x:auto;scrollbar-width:none;justify-content:flex-start}
.rm-dock .qk .in::before,.rm-dock .qk .in::after{content:"";flex:1 0 0}
.rm-dock .qk .in::-webkit-scrollbar{display:none}
.rm-dock .qk .tg{display:contents}
.rm-dock .q{flex:none;min-width:calc(72px*var(--k));height:calc(64px*var(--k));border-radius:calc(16px*var(--k));border:0;background:transparent;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:calc(4px*var(--k));padding:calc(6px*var(--k)) calc(6px*var(--k));-webkit-tap-highlight-color:transparent}
.rm-dock .q svg{width:calc(28px*var(--k));height:calc(28px*var(--k));fill:#fff}
.rm-dock .q span{font-size:calc(12px*var(--k));font-weight:800;color:var(--u-dim);white-space:nowrap}
.rm-dock .q:hover{background:rgba(255,255,255,.07)}
.rm-dock .q:active{background:rgba(255,255,255,.12)}
.rm-dock .q.on{background:var(--u-acc)}
.rm-dock .q.on span{color:#fff}
.rm-dock .q[title]:not([title=""])::after{content:"관리";position:absolute;margin:-40px 0 0 40px;font-size:11px;font-weight:900;color:var(--u-warn)}
.rm-dock .sep{flex:none;width:1px;height:calc(40px*var(--k));background:var(--u-line);margin:0 calc(4px*var(--k))}
/* 오른쪽 레이어 — 플로터 시트 색 (반투명 + 블러) */
.rm-wrap .rm-stack{right:calc(12px*var(--k));top:calc(12px*var(--k));bottom:calc(var(--dock) + 12px);width:calc(370px*var(--k))}
.rm-wrap .rm-card,.rm-wrap .rm-card.rt-box{background:rgba(14,18,24,.72);border:1px solid var(--u-line);color:var(--u-txt);box-shadow:0 12px 40px rgba(0,0,0,.45);
  backdrop-filter:blur(22px) saturate(1.4);-webkit-backdrop-filter:blur(22px) saturate(1.4);border-radius:calc(22px*var(--k))}
.rm-wrap .rm-ch,.rm-wrap .rm-card .rt-hd{border-bottom:1px solid var(--u-line);color:var(--u-txt);font-size:calc(14px*var(--k))}
.rm-wrap .rm-ch .grab,.rm-wrap .rm-card .rt-hd::before{background:rgba(255,255,255,.22)}
.rm-wrap .rm-ch .tt b{color:#fff;font-size:calc(15px*var(--k))}
.rm-wrap .rm-ch .tt span,.rm-wrap .rm-card .rt-hd .cnt{color:var(--u-dim)}
.rm-wrap .rm-ch .x{background:rgba(255,255,255,.1);color:#fff}
.rm-wrap .rm-card .rm-grid div{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.06)}
.rm-wrap .rm-card .rm-grid .l{color:var(--u-dim);font-size:calc(11px*var(--k))}
.rm-wrap .rm-card .rm-grid .v{color:#fff;font-family:var(--u-num);font-size:calc(16px*var(--k))}
.rm-wrap .rm-card .rm-chart{background:rgba(255,255,255,.05) !important}
.rm-wrap .rm-card.detail .bd > div[style*="color:#64748b"],.rm-wrap .rm-card.detail .rc-row{color:var(--u-dim) !important}
.rm-wrap .rm-card .rc-chk{color:var(--u-txt)}
.rm-wrap .rm-card .rt-msg .n{color:var(--u-txt)}
.rm-wrap .rm-card .rt-msg .tx{background:rgba(255,255,255,.12);color:#fff;box-shadow:none}
.rm-wrap .rm-card .rt-msg.me .tx{background:var(--u-acc)}
.rm-wrap .rm-card .rt-msg time{color:var(--u-dim)}
.rm-wrap .rm-card .rt-in{border-top:1px solid var(--u-line)}
.rm-wrap .rm-card .rt-in input{background:rgba(255,255,255,.08);border-color:var(--u-line);color:#fff}
.rm-wrap .rm-card .rt-in input::placeholder{color:var(--u-dim)}
.rm-wrap .rm-card .rt-in button.send{background:var(--u-acc)}
.rm-wrap .rm-card .rt-cheer{color:var(--u-dim)}
.rm-wrap .rm-card .rt-cheer .pick{background:rgba(255,255,255,.08);border-color:var(--u-line);color:#fff}
.rm-wrap .rm-card .rt-join{color:var(--u-dim)}
.rm-wrap .rm-card .rc-empty{color:var(--u-dim)}
.rm-wrap .rt-pop{background:rgba(0,0,0,.35)}
.rm-wrap .rt-pop .in{background:rgba(14,18,24,.94);color:var(--u-txt)}
.rm-wrap .rt-pop .h .x{background:rgba(255,255,255,.1);color:#fff}
.rm-wrap .rt-pop .q{background:rgba(255,255,255,.08);border-color:var(--u-line);color:#fff}
.rm-wrap .rt-pop .ls button{background:rgba(255,255,255,.06);border-color:var(--u-line);color:#fff}
.rm-wrap .rt-pop .ls button small{color:var(--u-dim)}
.rm-wrap .rt-pop .ls button.on{background:var(--u-acc);border-color:var(--u-acc)}
.rm-wrap .rt-float{bottom:calc(var(--dock) + 16px) !important}
/* 선박 — 다른 선박 흐리게 (고른 선박만 또렷) */
.rm-boat.dim{opacity:.38}
.rm-boat.dim .lb{filter:grayscale(1)}
/* 휴대폰 */
@media (max-width:760px){
  .rm-wrap .rm-board{left:8px;right:8px;width:auto;top:8px;bottom:auto;max-height:52px}
  .rm-wrap .rm-board.open{max-height:calc(100% - var(--dock) - 24px)}
  .rm-wrap .rm-info{top:66px;right:8px;left:auto !important;max-width:190px}
  .rm-dock .row{flex-wrap:wrap;gap:6px;padding:0 8px 6px}
  .rm-dock .pl{border-right:0;padding-right:0;width:100%;justify-content:space-between}
  .rm-dock .pl .pb{width:44px;height:44px}
  .rm-dock .pl .tm b{font-size:16px}
  .rm-dock .qk .in{justify-content:flex-start}
  .rm-dock .q{min-width:60px;height:54px}
  .rm-dock .q svg{width:24px;height:24px}
  .rm-dock .q span{font-size:11px}
}
/* 대형 모니터 — 레이어·목록 넓게 */
@media (min-width:2200px){ .rm-wrap .rm-board .row .g .l2{gap:12px} }

/* 1~3위 월계수 (금·은·동) */
.rm-wrap .rm-board .row .n{position:relative;display:flex;align-items:center;justify-content:center;width:calc(44px*var(--k));height:calc(46px*var(--k));flex:0 0 auto}
.rm-wrap .rm-board .row .n b{position:relative;font-family:var(--u-num);font-weight:900}
.rm-wrap .rm-board .row .n .laurel{position:absolute;inset:0;width:100%;height:100%}
.rm-wrap .rm-board .row .n.r1 b{color:#ffd54a;text-shadow:0 0 10px rgba(247,201,72,.6)}
.rm-wrap .rm-board .row .n.r2 b{color:#e8edf3}
.rm-wrap .rm-board .row .n.r3 b{color:#f0b47e}
.rm-wrap .rm-board .row:has(.n.r1){background:linear-gradient(90deg,rgba(247,201,72,.18),rgba(255,255,255,.04) 60%)}
.rm-wrap .rm-board .row:has(.n.r2){background:linear-gradient(90deg,rgba(223,229,236,.13),rgba(255,255,255,.04) 60%)}
.rm-wrap .rm-board .row:has(.n.r3){background:linear-gradient(90deg,rgba(227,163,107,.15),rgba(255,255,255,.04) 60%)}
.pod-lr{position:absolute;left:50%;top:6px;transform:translateX(-50%);width:64px;height:61px;display:flex;align-items:center;justify-content:center}
.pod-lr .laurel{position:absolute;inset:0}
.pod-lr b{position:relative;font-size:22px;font-weight:900}
.rc-pod.p2,.rc-pod.p3{padding-top:70px}
.rc-pod.p2 .pod-lr b{color:#8a96a6}.rc-pod.p3 .pod-lr b{color:#9a5a22}

/* 국적 선택 */
.rc-flag{font-size:1.15em;line-height:1;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif}
.rc-cin{display:flex;align-items:center;gap:8px;width:100%;height:44px;padding:0 12px;border:1.5px solid var(--r-line);border-radius:10px;background:#fff;font:inherit;font-size:14px;cursor:pointer;text-align:left;color:var(--r-ink)}
.rc-cin .fl,.rc-ct .fl{font-size:22px;line-height:1;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif}
.rc-cin small{color:#64748b;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rc-cin i{margin-left:auto;font-style:normal;color:#94a3b8}
.rc-cin:hover{border-color:var(--r-sea)}
.rc-ct{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px;margin-top:10px;max-height:min(58vh,520px);overflow:auto;padding:2px}
.rc-ct button{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1.5px solid var(--r-line);border-radius:12px;background:#fff;font:inherit;cursor:pointer;text-align:left;min-height:52px}
.rc-ct button:hover{border-color:var(--r-sea);background:#f5f9ff}
.rc-ct button.on{border-color:var(--r-navy);background:#eef5ff;box-shadow:0 0 0 2px rgba(10,108,255,.2)}
.rc-ct .nm{display:flex;flex-direction:column;min-width:0;flex:1}
.rc-ct .nm b{font-size:14px}
.rc-ct .nm small{font-size:11.5px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rc-ct em{font-style:normal;font-size:11px;font-weight:900;color:#64748b;background:#f1f5f9;border-radius:6px;padding:2px 6px}
.rm-wrap .rm-board .row .fg.em{font-size:calc(17px*var(--k));line-height:1;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif}
.rm-boat.fin svg{opacity:.5}
.rm-boat.fin .lb::after{content:" · 완주";font-weight:900;color:#ffd54a}
.rm-wrap .rm-board .row .n.lr b{font-size:calc(17px*var(--k));margin-top:calc(-3px*var(--k))}
.rm-wrap .rm-board .row .n.r1 .laurel{filter:drop-shadow(0 0 6px rgba(247,201,72,.55))}
/* 따라가기 — 토글 객체 */
.rm-follow{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;border-radius:16px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);color:#f1f5f9;font:inherit;text-align:left;cursor:pointer;transition:background .2s,border-color .2s}
.rm-follow > svg{width:26px;height:26px;fill:#94a3b8;flex:0 0 auto;transition:fill .2s}
.rm-follow .tx{flex:1;display:flex;flex-direction:column;min-width:0}
.rm-follow .tx b{font-size:14px}
.rm-follow .tx small{font-size:11.5px;color:#94a3b8}
.rm-follow .sw{position:relative;width:48px;height:28px;border-radius:99px;background:rgba(255,255,255,.18);flex:0 0 auto;transition:background .2s}
.rm-follow .sw i{position:absolute;left:3px;top:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.35);transition:left .2s}
.rm-follow.on{background:rgba(10,108,255,.22);border-color:#0a6cff}
.rm-follow.on > svg{fill:#2fb3ff}
.rm-follow.on .sw{background:#0a6cff}
.rm-follow.on .sw i{left:23px}
.rm-wrap .rm-card .rm-lost{background:rgba(255,176,32,.14) !important;color:#ffb020 !important;border:1px solid rgba(255,176,32,.3)}
.rm-wrap .rm-card .rm-lost[style*="1e6fd9"]{background:rgba(47,179,255,.12) !important;color:#2fb3ff !important;border-color:rgba(47,179,255,.3)}
.rm-wrap .rm-card .rm-lost svg{fill:currentColor}
/* PC·태블릿 — 하단 독은 폭을 제한하고 가운데 (휴대폰만 전체 폭) */
@media (min-width:761px){
  .rm-dock{left:50%;right:auto;transform:translateX(-50%);width:max-content;max-width:min(calc(100% - 24px), calc(1180px*var(--k)))}
  .rm-dock .qk .in::before,.rm-dock .qk .in::after{display:none}
}
/* 하단 독 아래 여백 — 바닥에 붙지 않게 */
.rm-dock{padding-bottom:calc(12px*var(--k) + env(safe-area-inset-bottom,0px))}
.rm-dock .row{padding-bottom:calc(4px*var(--k))}
/* 하단 독은 모든 기기에서 바닥에 붙임 (안쪽 아래 여백만) */
.rm-dock{bottom:0 !important}
/* 코스 마크 — 출발 · 경유 · 도착 */
.rm-mk2{position:relative;width:40px;height:40px;border-radius:50%;border:3px solid #fff;box-shadow:0 3px 10px rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;color:#fff;font-family:"SF Pro Display","Roboto",sans-serif}
.rm-mk2 svg{width:22px;height:22px}
.rm-mk2 b{font-size:18px;font-weight:900;color:#1a1300}
.rm-mk2.start{background:#16a34a}
.rm-mk2.mark{background:#ffb020}
.rm-mk2.finish{background:conic-gradient(#111 0 25%,#fff 0 50%,#111 0 75%,#fff 0) 0 0/14px 14px;border-color:#ff4d5e;border-width:4px}
.rm-mk2.sf{background:linear-gradient(90deg,#16a34a 50%,transparent 50%),conic-gradient(#111 0 25%,#fff 0 50%,#111 0 75%,#fff 0) 0 0/12px 12px;border-color:#fff}
.rm-mk2.live::after{content:"";position:absolute;inset:-9px;border-radius:50%;border:2px solid currentColor;animation:rmPing 1.8s infinite}
.rm-mk2.start.live::after,.rm-mk2.sf.live::after{border-color:#22d36b}.rm-mk2.mark.live::after{border-color:#ffb020}.rm-mk2.finish.live::after{border-color:#ff4d5e}
.rm-mlb2{position:absolute;left:50%;top:44px;transform:translateX(-50%);white-space:nowrap;font-size:12px;font-weight:900;color:#fff;padding:2px 9px;border-radius:999px;box-shadow:0 2px 6px rgba(0,0,0,.35)}
.rm-mlb2.start,.rm-mlb2.sf{background:#16a34a}.rm-mlb2.mark{background:#d97706}.rm-mlb2.finish{background:#e11d2a}
.rc-hub-foot{margin:16px -18px -18px;position:sticky;bottom:-18px}
/* ─── 경기 신호 (신호수 · 관리 팝업 공용) — 유니티 다크 ─── */
.rsg{--a:#0a6cff;display:flex;flex-direction:column;gap:12px;color:#f1f5f9}
.rsg-now{border-radius:20px;padding:16px 18px;background:#11161e;border:1px solid rgba(255,255,255,.12);text-align:center}
.rsg-now .t{font-size:14px;font-weight:800;color:#94a3b8}
.rsg-now .big{font-family:"SF Pro Display","Roboto",sans-serif;font-size:56px;font-weight:800;letter-spacing:1px;line-height:1.1;margin:4px 0}
.rsg-now .s{font-size:13px;color:#cbd5e1}
.rsg-now.seq{background:linear-gradient(180deg,#3a2c00,#11161e);border-color:#ffb020}.rsg-now.seq .big{color:#ffc72c}
.rsg-now.seq.hot .big{color:#ff4d5e}
.rsg-now.racing{background:linear-gradient(180deg,#06301a,#11161e);border-color:#22d36b}.rsg-now.racing .big{color:#22d36b}
.rsg-main{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.rsg-b{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:118px;border-radius:20px;border:2px solid rgba(255,255,255,.12);background:#1a212c;color:#fff;cursor:pointer;font:inherit;padding:10px;-webkit-tap-highlight-color:transparent;transition:transform .08s}
.rsg-b:active{transform:scale(.97)}
.rsg-b b{font-size:22px;font-weight:900}
.rsg-b small{font-size:11.5px;color:#94a3b8}
.rsg-b.warn:not(:disabled){border-color:#ffc72c;background:#2e2507}
.rsg-b.start:not(:disabled){border-color:#22d36b;background:#08301b}
.rsg-b.end:not(:disabled){border-color:#2fb3ff;background:#0a2440}
.rsg-b:disabled,.rsg-s:disabled{opacity:.28;cursor:default}
.rsg-sub{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.rsg-s{display:flex;flex-direction:column;align-items:center;gap:5px;padding:10px 4px;border-radius:14px;border:1px solid rgba(255,255,255,.12);background:#1a212c;color:#e2e8f0;font:inherit;font-size:11.5px;font-weight:800;cursor:pointer;min-height:70px}
.rsg-opt{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:13px;color:#94a3b8}
.rsg-opt select{height:38px;border-radius:10px;background:#1a212c;color:#fff;border:1px solid rgba(255,255,255,.15);padding:0 8px;font:inherit;margin-left:6px}
.rsg-snd{height:38px;padding:0 14px;border-radius:999px;border:1px solid rgba(255,255,255,.15);background:#1a212c;color:#94a3b8;font:inherit;font-weight:800;cursor:pointer}
.rsg-snd.on{background:#0a6cff;border-color:#0a6cff;color:#fff}
.rsg-sec{font-size:12px;font-weight:900;color:#94a3b8;letter-spacing:.5px;margin-top:4px}
.rsg-heats,.rsg-log{display:flex;flex-direction:column;gap:6px}
.rsg-h{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;padding:10px 12px;border-radius:12px;background:#151b24;border-left:4px solid #475569;font-size:13px}
.rsg-h.racing{border-left-color:#22d36b}.rsg-h.seq{border-left-color:#ffc72c}.rsg-h.finished{border-left-color:#2fb3ff}.rsg-h.abandoned{border-left-color:#ff4d5e;opacity:.7}
.rsg-h span{color:#94a3b8}.rsg-h em{font-style:normal;color:#ffd54a;font-size:12px;flex-basis:100%}
.rsg-l{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:10px;background:#151b24;font-size:13px}
.rsg-l span{color:#94a3b8}.rsg-l time{margin-left:auto;font-family:"SF Pro Display","Roboto",sans-serif;color:#cbd5e1}.rsg-l small{color:#64748b;min-width:44px;text-align:right}
.rsg-empty{padding:14px;text-align:center;color:#64748b;font-size:13px;border:1px dashed rgba(255,255,255,.12);border-radius:12px}
.sig-flag{border-radius:2px;flex:0 0 auto;display:block}
.rc-modal .rsg{background:#0e1218;margin:-18px;padding:18px;border-radius:0 0 18px 18px}
/* 레이스 배너 — 상단 가운데 */
.rm-wrap .rm-heat{left:50%;transform:translateX(-50%);top:calc(12px*var(--k));z-index:650;display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none;max-width:calc(100% - 24px)}
.rm-wrap .rm-heat[hidden]{display:none}
.rm-heat .hb{pointer-events:auto;display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;column-gap:10px;align-items:center;padding:calc(8px*var(--k)) calc(16px*var(--k));border-radius:calc(16px*var(--k));
  background:rgba(0,0,0,.78);border:1px solid rgba(255,255,255,.14);color:#fff;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 6px 20px rgba(0,0,0,.4)}
.rm-heat .hb .sig-flag,.rm-heat .hb .hsym{grid-row:1/3}
.rm-heat .hb .hsym{width:calc(40px*var(--k));height:calc(40px*var(--k));border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(circle at 35% 30%,color-mix(in srgb,var(--hc) 38%,transparent),color-mix(in srgb,var(--hc) 16%,transparent));border:1.5px solid var(--hc);box-shadow:0 0 14px color-mix(in srgb,var(--hc) 35%,transparent)}
.rm-heat .hb .hsym svg{width:56%;height:56%;fill:var(--hc)}
.rm-heat .hb.seq.hot .hsym{--hc:#ff4d5e}
.rm-heat .hb .hel{grid-column:3;grid-row:1/3;display:flex;flex-direction:column;align-items:flex-end;padding-left:12px;margin-left:2px;border-left:1px solid rgba(255,255,255,.14);line-height:1.15}
.rm-heat .hb .hel small{font-size:calc(11px*var(--k));color:#94a3b8;font-weight:700;white-space:nowrap}
.rm-heat .hb .hel b{font-family:"SF Pro Display","Roboto",sans-serif;font-size:calc(16px*var(--k));color:#fff;font-weight:800}
.rm-heat .hb.idle .hel{grid-column:2;grid-row:1/3;justify-self:end}
.rm-heat .hb b{font-size:calc(15px*var(--k));white-space:nowrap}
.rm-heat .hb b em{font-style:normal;font-family:"SF Pro Display","Roboto",sans-serif;font-size:calc(19px*var(--k));margin-left:4px}
.rm-heat .hb span{font-size:calc(11.5px*var(--k));color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rm-heat .hb.seq{border-color:#ffc72c}.rm-heat .hb.seq em{color:#ffc72c}
.rm-heat .hb.seq.hot em{color:#ff4d5e}
.rm-heat .hb b em{display:inline-block}
.rm-heat .hb.racing{border-color:#22d36b}.rm-heat .hb.racing em{color:#22d36b}
.rm-heat .hb.fin{border-color:#2fb3ff}.rm-heat .hb.off{border-color:#ff4d5e}
.rm-heat .hb.idle{grid-template-columns:1fr auto}
.rm-heat .hc{pointer-events:auto;display:flex;gap:4px}
.rm-heat .hc button{height:calc(24px*var(--k));padding:0 calc(8px*var(--k));border-radius:999px;border:1px solid rgba(255,255,255,.18);background:rgba(0,0,0,.6);color:#cbd5e1;font:inherit;font-size:calc(11px*var(--k));font-weight:800;cursor:pointer;display:flex;gap:3px;align-items:center}
.rm-heat .hc button i{font-style:normal;font-size:11px}
.rm-heat .hc button.finished i{color:#2fb3ff}.rm-heat .hc button.racing i{color:#22d36b}.rm-heat .hc button.abandoned{opacity:.55}
.rm-heat .hc button.on{background:#0a6cff;border-color:#0a6cff;color:#fff}
.rm-dock .sl{position:relative}
.rm-dock .sl .hseg{position:relative;height:calc(14px*var(--k));margin:0 2px -2px}
.rm-dock .sl .hseg i{position:absolute;top:0;height:100%;border-radius:4px;background:rgba(47,179,255,.25);border:1px solid rgba(47,179,255,.5);font-style:normal;font-size:11px;font-weight:900;color:#2fb3ff;display:flex;align-items:center;justify-content:center;overflow:hidden}
.rm-dock .sl .hseg i.abandoned{background:rgba(255,77,94,.15);border-color:rgba(255,77,94,.4);color:#ff4d5e}
@media (max-width:760px){.rm-wrap .rm-heat{top:64px}.rm-heat .hb span{max-width:220px}}
/* 선체 정보 — 히어로(선체 사진 배경 · 로고 · 국기 · 번호 · 선명) · 선수 카드 */
.rm-hero{position:relative;border-radius:18px;min-height:170px;background:#1a212c center/cover no-repeat;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;padding:14px;border:1px solid rgba(255,255,255,.14);flex:0 0 auto}
.rm-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.05) 30%,rgba(0,0,0,.82))}
.rm-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:var(--c)}
.rm-hero > *{position:relative}
.rm-hero .lg{position:absolute;left:12px;top:12px;width:52px;height:52px;border-radius:50%;background:#fff center/cover;border:3px solid #fff;box-shadow:0 3px 10px rgba(0,0,0,.4)}
.rm-hero .rk{position:absolute;right:10px;top:10px;min-width:46px;height:48px;display:flex;align-items:center;justify-content:center;gap:1px;background:rgba(0,0,0,.55);border-radius:14px;padding:0 6px}
.rm-hero .rk:empty{display:none}
.rm-hero .rk b{font-family:"SF Pro Display","Roboto",sans-serif;font-size:20px;font-weight:900;color:#fff;position:relative}
.rm-hero .rk small{font-size:11px;color:#cbd5e1}
.rm-hero .rk.lr{background:rgba(0,0,0,.35)}.rm-hero .rk .laurel{position:absolute;inset:0;margin:auto}
.rm-hero .rk.r1 b{color:#ffd54a}.rm-hero .rk.r2 b{color:#e8edf3}.rm-hero .rk.r3 b{color:#f0b47e}
.rm-hero .nm{display:flex;align-items:center;gap:8px;min-width:0}
.rm-hero .nm .fl{font-size:24px;line-height:1;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif}
.rm-hero .nm em{font-style:normal;background:var(--c);color:#fff;font-weight:900;font-size:14px;padding:2px 9px;border-radius:8px;flex:0 0 auto}
.rm-hero .nm b{font-size:22px;font-weight:900;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 2px 8px rgba(0,0,0,.5)}
.rm-hero .sub{font-size:12.5px;color:#dbe4ef;margin-top:4px}
.rm-st{font-size:12px;font-weight:800;color:#94a3b8;margin:2px 0 6px}
.rm-crew{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.rm-crew .cm{display:grid;grid-template-columns:44px 1fr;grid-template-rows:auto auto auto;column-gap:10px;row-gap:4px;align-items:center;padding:10px 8px;border-radius:12px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.06);min-width:0}
.rm-crew .ph{grid-row:1/4;width:44px;height:44px;border-radius:50%;background:#334155 center/cover;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:900;font-size:16px}
.rm-crew b{font-size:14.5px;line-height:1.3;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rm-crew .nat{font-style:normal;font-size:11px;font-weight:900;background:#e11d2a;color:#fff;border-radius:5px;padding:0 4px;margin-left:4px;vertical-align:1px}
.rm-crew span{font-size:11.5px;color:#cbd5e1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rm-crew small{font-size:11px;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rm-wrap .rm-card.detail .rm-chart{background:rgba(255,255,255,.05)}
.rm-wrap.has-heat .rm-info{top:calc(96px*var(--k))}
@media (max-width:760px){.rm-wrap.has-heat .rm-info{top:150px}}

/* 출발선 · 도착선 양 끝 — 부이(주황 원) · 심판선(흰 사각 + 심) */
.rm-end{width:22px;height:22px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;font:800 11px/1 system-ui,sans-serif;color:#0b1220;box-shadow:0 1px 4px rgba(0,0,0,.5)}
.rm-end.by{border-radius:50%;background:#ffb020;border:3px solid #fff}
.rm-end.cb{border-radius:5px;background:#fff;border:2px solid #0b1220}

/* 스텝선 — 요트보다 작은 오각 선체 + 역할 글자 + 이름표 (한 줄) */
.rm-staff{position:relative;width:28px;height:28px}
.rm-staff svg{position:absolute;inset:0;transform-origin:50% 50%;filter:drop-shadow(0 1px 2px rgba(0,0,0,.55))}
.rm-staff>b{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:800 11px/1 system-ui,sans-serif;color:#fff;text-shadow:0 0 3px #000,0 0 2px #000;pointer-events:none}
.rm-staff .lb{position:absolute;left:50%;top:30px;transform:translateX(-50%);white-space:nowrap;width:max-content;padding:2px 7px;border-radius:999px;
  background:rgba(0,0,0,.72);border:1px solid var(--c,#fff);color:#fff;font:700 11px/1.25 system-ui,sans-serif;pointer-events:none}

/* 응원 talk — 닫기 버튼 · 닫으면 말풍선 아이콘(끌어서 옮기기) + 작은 댓글 미리보기 */
.rm-card .rt-hd .rt-x{margin-left:auto;width:32px;height:32px;border:0;border-radius:50%;background:rgba(255,255,255,.12);color:inherit;font-size:19px;line-height:1;cursor:pointer;flex:0 0 auto}
.rm-card .rt-hd .rt-x:hover{background:rgba(255,255,255,.22)}
.rt-fab{position:absolute;z-index:830;width:calc(60px*var(--k,1));height:calc(60px*var(--k,1));touch-action:none}
.rt-fab[hidden]{display:none}
.rt-fab .ic{position:relative;width:100%;height:100%;border-radius:50%;border:0;cursor:grab;padding:0;display:flex;align-items:center;justify-content:center;
  background:#0a6cff;background-image:linear-gradient(150deg,#3cc0ff 0%,#0a6cff 70%);box-shadow:0 10px 26px rgba(10,108,255,.45),0 2px 6px rgba(0,0,0,.35);touch-action:none;animation:rtFabIn .35s cubic-bezier(.2,.9,.3,1.3)}
/* 말풍선 꼬리 — 아이콘이 화면 오른쪽이면 오른쪽 아래, 왼쪽이면 왼쪽 아래 */
/* 꼬리 — 뾰족한 삼각형 대신 한쪽으로 부드럽게 휘는 곡선 */
.rt-fab .ic::after{content:"";position:absolute;bottom:-3px;left:1px;width:24px;height:22px;background:#1f8dff;
  clip-path:path("M15 0 C15 9 11 16 2 20.5 C0.8 21.1 1.2 22 2.6 22 C11 22 18.5 18 24 10 Z")}
.rt-fab.lft .ic::after{left:auto;right:1px;background:#0a6cff;transform:scaleX(-1)}
.rt-fab.drag .ic{cursor:grabbing;transform:scale(1.08);box-shadow:0 16px 34px rgba(10,108,255,.55),0 2px 6px rgba(0,0,0,.35)}
.rt-fab .ic svg{position:relative;z-index:1;width:46%;height:46%;fill:#fff;margin-top:2px}
.rt-fab .ic:has(.n:not([hidden])){animation:rtFabIn .35s cubic-bezier(.2,.9,.3,1.3),rtPulse 2s 1s infinite}
@keyframes rtPulse{0%,100%{box-shadow:0 10px 26px rgba(10,108,255,.45),0 0 0 0 rgba(47,179,255,.55)}50%{box-shadow:0 10px 26px rgba(10,108,255,.45),0 0 0 12px rgba(47,179,255,0)}}
.rt-fab .n{position:absolute;top:-3px;right:-3px;min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:#ff2d2d;color:#fff;font:800 12px/22px system-ui,sans-serif;font-style:normal;box-shadow:0 0 0 2px #0b1220}
.rt-fab .tz{position:absolute;top:50%;left:calc(100% + 10px);transform:translateY(-50%) scale(.85);transform-origin:left center;opacity:0;pointer-events:none;
  display:flex;align-items:center;gap:8px;width:max-content;max-width:min(300px,62vw);padding:7px 14px 7px 7px;border-radius:18px 18px 18px 6px;cursor:pointer;
  background:rgba(0,0,0,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.14);color:#fff;font-size:calc(13px*var(--k,1));
  box-shadow:0 8px 22px rgba(0,0,0,.35);transition:opacity .25s,transform .25s cubic-bezier(.2,.9,.3,1.3)}
.rt-fab.lft .tz{left:auto;right:calc(100% + 10px);transform-origin:right center;border-radius:18px 18px 6px 18px}
.rt-fab .tz.on{opacity:1;transform:translateY(-50%) scale(1);pointer-events:auto}
.rt-fab .tz.new{border-color:rgba(47,179,255,.6)}
.rt-fab .tz .rt-av{width:26px;height:26px;font-size:11px;flex:0 0 auto}
.rt-fab .tz span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rt-fab .tz span b{margin-right:6px;font-weight:800}
@keyframes rtFabIn{from{transform:scale(.3);opacity:0}to{transform:scale(1);opacity:1}}

/* 출발 10초 전부터 — 숫자가 바뀌는 순간 크게 켜졌다가 다음 초 직전에 흐려짐 (1초 1회) */
.sec{animation:rcSec 1s linear}
@keyframes rcSec{0%{opacity:1;transform:scale(1.22);text-shadow:0 0 18px rgba(255,77,94,.9)}18%{transform:scale(1)}60%{opacity:1}100%{opacity:.18;text-shadow:none}}

/* 휴대폰 · 태블릿 — 선체 정보 · 응원 talk 각각 아래에 붙는 시트 (애플 바: 둘 다 열리면 뒤 카드 머리가 위로 살짝) */
.rm-wrap.sheet .rm-stack{left:0;right:0;top:calc(64px*var(--k));bottom:0;width:auto;max-width:none;height:auto}
.rm-wrap.sheet .rm-card,.rm-wrap.sheet .rm-card.rt-box{top:auto !important;bottom:0;left:6px;right:6px;border-radius:22px 22px 0 0;border-bottom:0;
  transition:height .32s cubic-bezier(.2,.9,.25,1),transform .3s,opacity .3s;box-shadow:0 -8px 30px rgba(0,0,0,.4)}
.rm-wrap.sheet .rm-card.front{z-index:2;transform:none;opacity:1}
.rm-wrap.sheet .rm-card.back{bottom:0 !important;z-index:1;transform:scale(.94);transform-origin:top center;opacity:.92;filter:saturate(.8)}
.rm-wrap.sheet .rm-card.drag{transition:none}
.rm-wrap.sheet .rm-card .rm-ch,.rm-wrap.sheet .rm-card .rt-hd{touch-action:none;cursor:grab;min-height:52px;box-sizing:border-box}
.rm-wrap.sheet .rm-card.peek > :not(.rm-ch):not(.rt-hd){visibility:hidden}
.rm-wrap.sheet .rm-stack.min .rm-card.front{height:auto}
/* 시트가 열릴 때 — 아래에서 위로 올라옴 */
.rm-wrap.sheet .rm-stack .rm-card:not(.hid){animation:rmSheetUp .38s cubic-bezier(.2,.9,.25,1)}
.rm-wrap:not(.sheet) .rm-stack .rm-card.person:not(.hid){animation:rmPpIn .32s cubic-bezier(.2,.9,.25,1)}
@keyframes rmSheetUp{from{transform:translateY(105%)}}

/* 팀 검색 (초성 가능) */
.rm-board .fq{position:relative;display:flex;align-items:center;margin:calc(8px*var(--k)) calc(10px*var(--k)) calc(4px*var(--k));flex:0 0 auto}
.rm-board .fq svg{position:absolute;left:10px;width:calc(17px*var(--k));height:calc(17px*var(--k));fill:#94a3b8;pointer-events:none}
.rm-board .fq input{width:100%;box-sizing:border-box;height:calc(38px*var(--k));padding:0 34px 0 calc(34px*var(--k));border-radius:calc(12px*var(--k));border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.07);color:#fff;font:inherit;font-size:calc(13.5px*var(--k));outline:none;-webkit-appearance:none;appearance:none}
.rm-board .fq input::-webkit-search-cancel-button{display:none}
.rm-board .fq input::placeholder{color:#7d8a9c}
.rm-board .fq input:focus{border-color:#2fb3ff;background:rgba(47,179,255,.1)}
.rm-board .fq .cl{position:absolute;right:6px;width:26px;height:26px;border:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:15px;line-height:1;cursor:pointer}
.rm-board .bd .emp{padding:18px 10px;text-align:center;color:#94a3b8;font-size:calc(13px*var(--k))}

/* PC — 카드 머리를 끌어 내리면 닫힘 */
.rm-wrap:not(.sheet) .rm-card .rm-ch,.rm-wrap:not(.sheet) .rm-card .rt-hd{touch-action:none}
.rm-wrap:not(.sheet) .rm-card.drag{transition:none}
@media (max-width:760px){.rm-wrap .rm-board.open{z-index:760}}

/* 스텝선 — 누를 수 있음 · 고르면 테두리 */
.rm-staff{cursor:pointer}
.rm-staff.sel svg{filter:drop-shadow(0 0 0 #fff) drop-shadow(0 0 6px var(--c,#fff)) drop-shadow(0 0 2px #fff)}
.rm-staff.sel .lb{background:var(--c,#fff);color:#0b1220;border-color:#fff}
/* 스텝선 정보 카드 */
.rm-hero.staff{min-height:150px;background-image:linear-gradient(135deg,#132036,#0b1220)}
.rm-hero .lg.sym{display:flex;align-items:center;justify-content:center;background:var(--c);border-color:#fff}
.rm-hero .lg.sym b{font-size:22px;font-weight:900;color:#0b1220;text-shadow:0 0 2px rgba(255,255,255,.6)}
.rm-hero .nm em.role{background:var(--c);color:#0b1220;font-size:12.5px}
.rm-sinfo{font-size:13px;line-height:1.55;color:#dbe4ef;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:10px 12px}
.rm-crew.one{grid-template-columns:1fr}
.rm-crew.one .cm{grid-template-columns:52px 1fr}
.rm-crew.one .ph{width:52px;height:52px}
.rm-crew.one small{white-space:normal;line-height:1.45;color:#aab6c6}
.rm-crew .nat.job{background:rgba(47,179,255,.18);color:#7dd3fc;border:1px solid rgba(47,179,255,.35)}
.rc-img.mini{border-radius:50%;font-size:11px}
.rc-img.mini .del{width:18px;height:18px;font-size:11px;right:0;top:0;border-radius:50%}

/* ─── 인물 팝업 (선수 · 심판 · 코치 · 구조 · 스텝) — 상단은 사진(가운데 cover) 우선 ─── */
.rm-crew .cm[data-mi]{cursor:pointer;transition:background .15s,transform .1s}
.rm-crew .cm[data-mi]:hover{background:rgba(255,255,255,.12)}
.rm-crew .cm[data-mi]:active{transform:scale(.98)}
.rm-crew .nat.job.k-judge{background:rgba(255,199,44,.16);color:#ffd36e;border-color:rgba(255,199,44,.4)}
.rm-crew .nat.job.k-coach{background:rgba(34,211,107,.15);color:#6ee7a0;border-color:rgba(34,211,107,.4)}
.rm-crew .nat.job.k-rescue{background:rgba(255,77,94,.16);color:#ff9aa5;border-color:rgba(255,77,94,.4)}
.rm-card.person .card{position:relative;width:min(440px,100%);max-height:calc(100% - 20px);display:flex;flex-direction:column;overflow:hidden;border-radius:24px;background:rgba(14,18,24,.94);
  border:1px solid rgba(255,255,255,.14);box-shadow:0 24px 60px rgba(0,0,0,.6);color:#f1f5f9;animation:rmPpIn .32s cubic-bezier(.2,.9,.25,1);transition:transform .25s}
@keyframes rmPpIn{from{transform:translateY(24px) scale(.96);opacity:0}}
.rm-card.person .pp-ph{position:relative;flex:0 0 auto;height:min(340px,46vh);background:#1a212c center/cover no-repeat;touch-action:none}
.rm-card.person .pp-ph::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.35) 0%,rgba(0,0,0,0) 22%,rgba(0,0,0,0) 45%,rgba(8,12,18,.94) 100%)}
.rm-card.person .pp-ph .ini{position:absolute;inset:0 0 30%;display:flex;align-items:center;justify-content:center;font-size:96px;font-weight:900;color:rgba(255,255,255,.85);text-shadow:0 6px 30px rgba(0,0,0,.4)}
.rm-card.person .pp-ph .grab{position:absolute;z-index:2;left:50%;top:8px;transform:translateX(-50%);width:40px;height:5px;border-radius:3px;background:rgba(255,255,255,.55)}
.rm-card.person .pp-ph .x{position:absolute;z-index:2;right:12px;top:12px;width:38px;height:38px;border:0;border-radius:50%;background:rgba(0,0,0,.5);color:#fff;font-size:22px;line-height:1;cursor:pointer;backdrop-filter:blur(6px)}
.rm-card.person .ov{position:absolute;z-index:1;left:18px;right:18px;bottom:14px}
.rm-card.person .tt{display:inline-flex;align-items:center;gap:6px;padding:4px 12px 4px 5px;border-radius:999px;background:var(--pc);color:#0b1220;box-shadow:0 4px 14px rgba(0,0,0,.35)}
.rm-card.person .tt .sym{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:rgba(11,18,32,.88)}
.rm-card.person .tt .sym svg{fill:var(--pc)}
.rm-card.person .tt em{font-style:normal;font-weight:900;font-size:13.5px}
.rm-card.person .nm{display:block;margin-top:8px;font-size:30px;font-weight:900;color:#fff;line-height:1.15;text-shadow:0 2px 12px rgba(0,0,0,.6)}
.rm-card.person .na{margin-top:4px;font-size:14px;color:#dbe4ef;font-weight:600}
.rm-card.person .na .fl{font-size:18px;margin-right:6px;vertical-align:-2px;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif}
.rm-card.person .bd{overflow:auto;padding:14px 18px 18px;display:flex;flex-direction:column;gap:10px}
.rm-card.person .tags{display:flex;flex-wrap:wrap;gap:6px}
.rm-card.person .tg{font-size:12.5px;font-weight:800;padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);color:#e2e8f0}
.rm-card.person .tg.nat{background:#e11d2a;border-color:#e11d2a;color:#fff}
.rm-card.person .sec{font-size:12px;font-weight:800;color:#94a3b8;margin-top:2px}
.rm-card.person .car{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}
.rm-card.person .car li{position:relative;padding:8px 12px 8px 26px;border-radius:12px;background:rgba(255,255,255,.05);font-size:13.5px;line-height:1.45}
.rm-card.person .car li::before{content:"";position:absolute;left:12px;top:15px;width:6px;height:6px;border-radius:50%;background:var(--pc)}
.rm-card.person .ctx{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border-radius:16px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);color:#fff;font:inherit;text-align:left;cursor:pointer;border-left:4px solid var(--tc)}
.rm-card.person .ctx:hover{background:rgba(255,255,255,.1)}
.rm-card.person .ctx .cs{flex:0 0 auto;min-width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:15px;color:#0b1220;padding:0 6px;box-sizing:border-box}
.rm-card.person .ctx .ct{flex:1;min-width:0;display:flex;flex-direction:column}
.rm-card.person .ctx .ct b{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rm-card.person .ctx .ct small{font-size:12px;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rm-card.person .ctx .lv{display:flex;flex-direction:column;align-items:flex-end;line-height:1.1}
.rm-card.person .ctx .lv b{font-family:"SF Pro Display","Roboto",sans-serif;font-size:20px;font-weight:900}
.rm-card.person .ctx .lv b small{font-size:11px;color:#94a3b8;margin-left:1px}
.rm-card.person .ctx .lv small{font-size:12px;color:#cbd5e1}
.rm-card.person .ctx .lv .fin{color:#ffd36e;font-size:14px}
.rm-card.person .ctx > i{font-style:normal;font-size:22px;color:#64748b}
/* 인물 카드 — 같은 레이어 자리 (PC 오른쪽 · 휴대폰/태블릿 아래 시트) */
.rm-card.person .card{display:none}
.rm-card.person .pp-ph{display:block;padding:0;border:0;cursor:grab}
.rm-card.person .pp-ph .tt{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:0;background:none;box-shadow:none;color:#fff}
.rm-card.person .pp-ph .tt .sym{width:30px;height:30px;background:var(--pc)}
.rm-card.person .pp-ph .tt .sym svg{fill:#0b1220}
.rm-card.person .pp-ph .tt em{font-style:normal;font-weight:900;font-size:13px;color:#0b1220;background:var(--pc);padding:3px 10px;border-radius:999px}
.rm-card.person .pp-ph .tt .nm{display:inline;margin:0;font-size:26px}
.rm-card.person .pp-bd{flex:1;overflow:auto}
.rm-wrap.sheet .rm-card.person .pp-ph{height:min(300px,46%)}
.rm-wrap.sheet .rm-card.person.peek .pp-ph{height:100%}
/* 레이스 배너 — 글 길이 · 숫자에 따라 폭이 흔들리지 않게 고정 폭 + 고정폭 숫자 */
.rm-heat .hb{box-sizing:border-box;width:calc(460px*var(--k));max-width:100%;font-variant-numeric:tabular-nums}
.rm-heat .hb b,.rm-heat .hb span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.rm-heat .hb b em,.rm-heat .hb .hel b{font-variant-numeric:tabular-nums;display:inline-block;min-width:3.6ch;text-align:left}
.rm-heat .hb .hel{min-width:calc(64px*var(--k))}
@media (max-width:760px){.rm-wrap .rm-heat{left:8px;right:8px;transform:none;max-width:none}.rm-heat .hb{width:100%}}

/* 중계 화면 — 글자·그림 끌기(선택) 막기 (입력칸은 그대로) */
.lv-page,.rm-wrap,.rm-wrap *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.lv-page img,.rm-wrap img{-webkit-user-drag:none;user-drag:none}
.rm-wrap input,.rm-wrap textarea,.lv-page input,.lv-page textarea{-webkit-user-select:text;user-select:text}

/* 팀 목록 — 라운드 기록 (R1 | 1 · R2 | 4 …) · 종합 순위 (2라운드부터) */
.rm-wrap .rm-board .row{position:relative}
.rm-wrap .rm-board .row .l0{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:3px}
.rm-wrap .rm-board .row .rr{display:inline-flex;align-items:center;font-style:normal;font-size:calc(11px*var(--k));font-weight:800;line-height:1;color:#e2e8f0;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:6px;overflow:hidden;font-variant-numeric:tabular-nums}
.rm-wrap .rm-board .row .rr em{font-style:normal;padding:3px 4px;background:rgba(255,255,255,.1);color:#94a3b8;border-right:1px solid rgba(255,255,255,.12);margin-right:5px}
.rm-wrap .rm-board .row .rr{padding-right:6px}
.rm-wrap .rm-board .row .rr.g{border-color:rgba(255,213,74,.55);color:#ffd54a}
.rm-wrap .rm-board .row .rr.s{border-color:rgba(226,232,240,.5);color:#e8edf3}
.rm-wrap .rm-board .row .rr.b{border-color:rgba(240,180,126,.55);color:#f0b47e}
.rm-wrap .rm-board .row .rr.x{color:#ff8a95}
.rm-wrap .rm-board .row .ov{display:flex;width:max-content;margin:0 0 4px auto;white-space:nowrap;align-items:center;gap:4px;padding:2px 8px 2px 6px;border-radius:999px;
  background:rgba(10,108,255,.22);border:1px solid rgba(47,179,255,.5);color:#fff;line-height:1.2}
.rm-wrap .rm-board .row .ov small{font-size:calc(11px*var(--k));color:#9fd6ff;font-weight:800}
.rm-wrap .rm-board .row .ov b{font-size:calc(13px*var(--k));font-weight:900;font-variant-numeric:tabular-nums}
.rm-wrap .rm-board .row .ov.t1{background:rgba(255,213,74,.2);border-color:rgba(255,213,74,.7)}.rm-wrap .rm-board .row .ov.t1 b{color:#ffd54a}
.rm-wrap .rm-board .row .ov.t2{background:rgba(226,232,240,.14);border-color:rgba(226,232,240,.6)}
.rm-wrap .rm-board .row .ov.t3{background:rgba(240,180,126,.18);border-color:rgba(240,180,126,.7)}.rm-wrap .rm-board .row .ov.t3 b{color:#f0b47e}
.rm-wrap .rm-board .row .v .ov + *{margin-top:0}
.rm-wrap .rm-board .row .g .l0 .rr{display:inline-flex !important;flex-direction:row !important;align-items:center;white-space:nowrap}
.rm-wrap .rm-board .row .g .l0 .rr em{display:inline-block !important}
.rm-wrap .rm-board .row .g .l0{flex-direction:row !important;align-items:center}
.rm-wrap .rm-board .bd .row{flex-shrink:0}

/* 팀 정보 — 라운드 기록 (라운드마다 한 칸, 스크롤 없이) */
.rm-rounds .rm-st .ovr{margin-left:6px;font-size:12px;color:#9fd6ff;font-weight:800}
.rm-rounds .rm-st .ovr b{color:#fff;font-size:14px}
.rr-list{display:grid;grid-template-columns:1fr;gap:6px}
.rr-list .rrc{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;padding:8px 10px;border-radius:12px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08)}
.rr-list .rrc.g{border-color:rgba(255,213,74,.45);background:rgba(255,213,74,.07)}
.rr-list .rrc.s{border-color:rgba(226,232,240,.35)}
.rr-list .rrc.b{border-color:rgba(240,180,126,.45);background:rgba(240,180,126,.06)}
.rr-list .rrc .hd{position:relative;display:flex;align-items:center;gap:6px;min-width:84px}
.rr-list .rrc .no{font-size:11px;font-weight:900;color:#94a3b8;background:rgba(255,255,255,.08);border-radius:6px;padding:2px 6px}
.rr-list .rrc .laurel{position:absolute;left:30px;top:50%;transform:translateY(-50%);width:34px;height:34px}
.rr-list .rrc .rk{position:relative;min-width:34px;text-align:center;font-family:"SF Pro Display","Roboto",sans-serif;font-size:18px;font-weight:900;color:#fff}
.rr-list .rrc .rk small{font-size:11px;color:#94a3b8;margin-left:1px}
.rr-list .rrc.g .rk{color:#ffd54a}.rr-list .rrc.s .rk{color:#e8edf3}.rr-list .rrc.b .rk{color:#f0b47e}
.rr-list .rrc .kv{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}
.rr-list .rrc .kv span{display:flex;flex-direction:column;font-size:12.5px;font-weight:800;color:#f1f5f9;white-space:nowrap;font-variant-numeric:tabular-nums}
.rr-list .rrc .kv i{font-style:normal;font-size:11px;font-weight:700;color:#94a3b8}

/* 휴대폰 · 태블릿 — 카드는 화면 바닥까지 붙고 하단 메뉴가 그 위를 덮음 (카드 안쪽 아래 여백 = 하단 메뉴 높이) · 하단 메뉴 폭 = 카드 폭 */
.rm-wrap.sheet .rm-card,.rm-wrap.sheet .rm-card.rt-box{box-sizing:border-box;padding-bottom:var(--dock)}
.rm-wrap.sheet .rm-card.peek{padding-bottom:var(--dock)}
.rm-wrap.sheet .rm-dock{left:6px !important;right:6px !important;width:auto !important;max-width:none !important;transform:none !important}
.rm-wrap.sheet .rm-stack:not(.empty) ~ .rm-dock,.rm-wrap.sheet .rm-dock{border-radius:22px 22px 0 0}
/* 메뉴 카드 */
.rm-card.menu .mn-bd{display:flex;flex-direction:column;gap:8px}
.rm-card.menu .mg{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px}
.rm-card.menu .mt{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:78px;border-radius:16px;border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.06);color:#e2e8f0;font:inherit;font-size:12.5px;font-weight:800;cursor:pointer;padding:8px 4px}
.rm-card.menu .mt svg{width:26px;height:26px;fill:currentColor}
.rm-card.menu .mt.on{background:#0a6cff;border-color:#2f8bff;color:#fff}
.rm-card.menu .mt:active{transform:scale(.97)}
/* 기상 상자 — 누를 수 있음 */
.rm-wrap .rm-info{cursor:pointer}
.rm-wrap .rm-info:hover{border-color:rgba(47,179,255,.6)}
/* 기상 카드 */
.rm-card.wxc .wx-bd{display:flex;flex-direction:column;gap:10px}
.wx-scene{position:relative;height:230px;border-radius:16px;overflow:hidden;flex:0 0 auto;border:1px solid rgba(255,255,255,.12);background:#0b1220}
.wx-scene canvas{width:100%;height:100%;display:block}
.wx-cur .big{display:flex;align-items:center;gap:12px}
.wx-cur .big .t{font-size:12px;color:#94a3b8;font-weight:800}
.wx-cur .big .tmp{font-size:38px;font-weight:900;line-height:1;color:#fff;font-family:"SF Pro Display","Roboto",sans-serif}
.wx-cur .big .nm{font-size:14px;font-weight:800;color:#e2e8f0}
.wx-cur .kv{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:8px}
.wx-cur .kv span{display:flex;flex-direction:column;gap:1px;padding:8px;border-radius:12px;background:rgba(255,255,255,.06);min-width:0}
.wx-cur .kv i{font-style:normal;font-size:11px;color:#94a3b8;font-weight:700}
.wx-cur .kv b{display:flex;align-items:center;gap:3px;font-size:17px;font-weight:900;color:#fff;font-variant-numeric:tabular-nums}
.wx-cur .kv b.sm{font-size:15px}
.wx-cur .kv b small{font-size:11px;color:#94a3b8;margin-left:1px}
.wx-cur .kv b svg{color:#2fb3ff;flex:0 0 auto}
.wx-cur .kv em{font-style:normal;font-size:11px;color:#aab6c6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wx-hours{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:4px}
.wx-hours .hc{display:flex;flex-direction:column;align-items:center;gap:1px;padding:6px 2px;border-radius:12px;background:rgba(255,255,255,.04);border:1px solid transparent;min-width:0}
.wx-hours .hc.on{border-color:#ff4d5e;background:rgba(255,77,94,.1)}
.wx-hours .hc small{font-size:11px;color:#94a3b8;font-weight:800}
.wx-hours .hc b{font-size:13.5px;color:#fff;font-weight:900}
.wx-hours .hc em{font-style:normal;font-size:11px;color:#9fd6ff;font-weight:700}
.wx-hours .hc i{font-style:normal;font-size:11px;color:#7dd3fc}
.wx-days{display:flex;flex-direction:column;gap:4px}
.wx-days .dc{display:grid;grid-template-columns:48px 34px 1fr minmax(96px,34%) 44px;align-items:center;gap:8px;padding:6px 10px;border-radius:12px;border:1px solid transparent;
  background:rgba(255,255,255,.04);color:#e2e8f0;font:inherit;text-align:left;cursor:pointer}
.wx-days .dc.on{border-color:#2f8bff;background:rgba(10,108,255,.14)}
.wx-days .dn{display:flex;flex-direction:column;line-height:1.15}.wx-days .dn b{font-size:13.5px}.wx-days .dn small{font-size:11px;color:#94a3b8}
.wx-days .ds{font-size:12.5px;font-weight:700;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wx-days .ds i{font-style:normal;color:#7dd3fc;margin-left:6px;font-size:11.5px}
.wx-days .tr{display:flex;align-items:center;gap:6px;font-variant-numeric:tabular-nums}.wx-days .tr small{color:#94a3b8;font-size:12px;min-width:26px;text-align:right}.wx-days .tr b{font-size:13px;min-width:26px}
.wx-days .tr .bar{position:relative;flex:1;height:5px;border-radius:3px;background:rgba(255,255,255,.1)}
.wx-days .tr .bar i{position:absolute;top:0;bottom:0;border-radius:3px;background:linear-gradient(90deg,#38bdf8,#fbbf24)}
.wx-days .wn{font-size:12.5px;font-weight:800;text-align:right;color:#9fd6ff}.wx-days .wn small{font-size:11px;color:#94a3b8}
@media (max-width:520px){.wx-hours{grid-template-columns:repeat(4,minmax(0,1fr))}.wx-cur .kv{grid-template-columns:repeat(2,minmax(0,1fr))}.wx-days .dc{grid-template-columns:42px 30px 1fr 88px 36px;gap:6px}}


/* 레이스 기록 카드 — R1 · R2 · R3 … 마다 1~3위 */
.rm-card.races .rc-bd{display:flex;flex-direction:column;gap:8px}
.rcl{display:flex;flex-direction:column;gap:6px;width:100%;padding:10px 12px;border-radius:14px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.05);color:#f1f5f9;font:inherit;text-align:left;cursor:pointer}
.rcl:hover{background:rgba(255,255,255,.09)}
.rcl.on{border-color:#2f8bff;background:rgba(10,108,255,.16);box-shadow:inset 3px 0 0 #2f8bff}
.rcl .hd{display:flex;align-items:center;gap:8px;min-width:0}
.rcl .no{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:26px;border-radius:8px;background:#0a6cff;color:#fff;font-size:13px;font-weight:900}
.rcl.abandoned .no{background:#ff4d5e}.rcl.racing .no{background:#22d36b;color:#0b1220}.rcl.seq .no{background:#ffc72c;color:#0b1220}
.rcl .st{font-size:13px;font-weight:800}
.rcl .tm{margin-left:auto;font-size:12px;color:#94a3b8;white-space:nowrap}
.rcl .tp{display:flex;flex-direction:column;gap:4px}
.rcl .tr{display:grid;grid-template-columns:34px auto auto 1fr auto;align-items:center;gap:8px;min-height:36px}
.rcl .tr .rk{position:relative;width:34px;height:36px;display:flex;align-items:center;justify-content:center}
.rcl .tr .rk .laurel{position:absolute;inset:0;width:34px;height:36px}
.rcl .tr .rk b{position:relative;font-size:13px;font-weight:900}
.rcl .tr.r1 .rk b{color:#ffd54a}.rcl .tr.r2 .rk b{color:#e8edf3}.rcl .tr.r3 .rk b{color:#f0b47e}
.rcl .tr .fl{font-size:15px;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif}
.rcl .tr em{font-style:normal;font-size:12px;font-weight:900;color:#fff;padding:2px 8px;border-radius:7px}
.rcl .tr .nm{font-size:14px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.rcl .tr small{font-size:12px;color:#cbd5e1;font-variant-numeric:tabular-nums}
.rcl .nt{font-size:13px;color:#94a3b8}
.rm-heat .hc button{cursor:pointer}
/* 팀 목록 — 속력 · 1위와의 거리 크게, 칸 사이 넓게 */
.rm-wrap .rm-board .bd{gap:calc(9px*var(--k))}
.rm-wrap .rm-board .row .v{display:flex;flex-direction:column;align-items:flex-end;gap:3px;min-width:calc(78px*var(--k))}
.rm-wrap .rm-board .row .v .sp{font-size:calc(22px*var(--k));font-weight:900;line-height:1;color:#fff;font-variant-numeric:tabular-nums}
.rm-wrap .rm-board .row .v .sp i{font-style:normal;font-size:calc(12px*var(--k));color:var(--u-dim);margin-left:2px;font-weight:700}
.rm-wrap .rm-board .row .v .gap{font-size:calc(14px*var(--k));font-weight:800;color:#ffb4bd;font-variant-numeric:tabular-nums}
.rm-wrap .rm-board .row .v .gap.lead{color:#ffd54a}
.rm-wrap .rm-board .row .v > span{font-size:calc(17px*var(--k));font-weight:900}
.rm-wrap .rm-board .row .v .ov{margin:0 0 2px auto}
/* 메뉴 · 기상 · 레이스 기록 카드 — 안쪽 여백 (벽에 붙지 않게) */
.rm-card.menu .mn-bd,.rm-card.wxc .wx-bd,.rm-card.races .rc-bd{flex:1;overflow:auto;padding:12px 16px 18px;box-sizing:border-box}
.rm-card.menu .mn-bd .rm-st{margin-top:6px}
