/* 현대형 동네 오락실: 간판·오락기 테두리·청록 네온은 살리고 읽기 어려운 장식만 줄입니다.
   공통 전체메뉴는 원본 그대로 두며 외부 글꼴·대형 배경·상시 애니메이션은 추가하지 않습니다. */
body.arcade-modern {
    --arcade-bg:#0b1220; --arcade-surface:#151f30; --arcade-line:#293b54;
    --arcade-ink:#edf3fd; --arcade-muted:#b1c0d6; --arcade-accent:#83e9df;
    /* 게임방의 노랑→청록 실행 버튼을 재사용하고 역할별 보조 면과 고정 입체 테두리만 구분합니다. */
    --arcade-button-primary:linear-gradient(135deg,#fff56a,#69fff1);
    --arcade-button-secondary:linear-gradient(180deg,#294565,#10243e);
    --arcade-button-install:linear-gradient(135deg,#ffe49a,#f2a75f);
    --arcade-button-depth:inset 1px 1px 0 #ffffff38,inset -1px -2px 0 #00000040,0 2px 0 #040b16;
    background:var(--arcade-bg); color:var(--arcade-ink);
    /* 본문 글꼴도 공통 원본을 상속해 메뉴의 글꼴 대체 순서까지 바꾸지 않습니다. */
}
.arcade-modern .content.arcade-wrap { gap:8px; font-size:13px; }
.arcade-modern .top-bar { background:#0d1728; backdrop-filter:none; }
.arcade-modern .arcade-top-stack { border:1px solid #426778; border-radius:8px; background:#111c2b; box-shadow:0 0 0 2px #07101b; }
.arcade-modern .arcade-atmosphere-board { padding:8px 12px; gap:4px; border:0; border-top:2px solid var(--arcade-accent); border-radius:7px 7px 0 0; background:linear-gradient(115deg,#19273e,#102c35); box-shadow:inset 0 1px #243e4f; }
/* 작은 화면에서도 연결 표시가 별도 행을 차지하지 않게 간판과 상태를 두 열로 맞춥니다. */
.arcade-modern .arcade-atmosphere-head { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:6px; }
.arcade-modern .arcade-atmosphere-head > div { min-width:0; }
.arcade-modern .arcade-atmosphere-board::before,
.arcade-modern .arcade-atmosphere-board::after,
.arcade-modern .arcade-era-kicker::before { content:none; }
.arcade-modern .arcade-atmosphere-head h2 { font:800 22px/1.25 "Consolas","Gulim",monospace; letter-spacing:.06em; color:#c3fff6; text-shadow:0 0 14px #71ddcf33; }
.arcade-modern .arcade-era-kicker { font-family:inherit; font-size:12px; font-weight:600; line-height:1.4; color:#f9d890; letter-spacing:0; text-shadow:none; }
.arcade-modern .arcade-atmosphere-stat strong { font-family:inherit; color:var(--arcade-ink); text-shadow:none; }
.arcade-modern .arcade-atmosphere-stat small { color:var(--arcade-muted); }
.arcade-modern .arcade-atmosphere-stat--coin strong { color:#f5b45d; }

/* 전체메뉴의 글꼴·버튼·색·테두리는 layout_main_menu.php의 기존 디자인을 그대로 사용합니다. */

/* 안내는 짧은 한 줄, 설치 버튼은 중앙·44px 이상을 유지해 처음 방문해도 쉽게 찾습니다. */
.arcade-modern .arcade-service-bar { grid-template-columns:minmax(0,1fr); justify-items:center; gap:4px; padding:6px 10px; border:1px solid var(--arcade-line); border-radius:8px; background:var(--arcade-surface); box-shadow:none; text-align:center; }
.arcade-modern .arcade-service-copy { display:flex; flex-wrap:wrap; justify-content:center; align-items:baseline; gap:2px 5px; width:100%; }
.arcade-modern .arcade-service-copy span { margin:0; }
/* 현재 PC의 연결을 확인한 동안만 접습니다. 서버 점검 안내는 유지하고 설치 링크도 도움말에 남깁니다. */
.arcade-modern .arcade-service-bar[data-launcher-state="ready"][data-relay-ready="1"] { display:none; }
.arcade-modern .arcade-service-copy strong { color:var(--arcade-ink); font-size:13px; }
.arcade-modern .arcade-service-copy span { color:var(--arcade-muted); font-size:12px; white-space:normal; overflow:visible; }
.arcade-modern .server-launcher-cta { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:2px 8px; width:min(100%,200px); justify-self:center; min-height:44px; min-width:112px; padding:7px 12px; border:1px solid #ffcf90; border-radius:7px; background:var(--arcade-button-install); color:#2b1c0b; box-sizing:border-box; }
.arcade-modern .server-launcher-cta strong { font-size:14px; }
.arcade-modern .server-launcher-cta small { font-size:10px; color:#493016; }
.arcade-modern .server-launcher-cta:hover { background:linear-gradient(135deg,#fff0bf,#ffc17e); transform:none; }
/* 게임·열린방·랭킹대전·롬추가·게시판 탭도 기존 네온 버튼과 선택 표시를 유지합니다. */

/* 정보 패널은 조용한 바탕으로 통일하고 실제 동작 버튼과 준비 안내에만 강한 대비를 사용합니다. */
.arcade-modern .room-lobby,
.arcade-modern .arcade-presence-panel,
.arcade-modern .arcade-presence-panel.is-stuck,
.arcade-modern .arcade-smart-match,
.arcade-modern .request-board,
.arcade-modern .talk-board,
.arcade-modern .arcade-quests,
.arcade-modern .arcade-event-hero,
.arcade-modern .arcade-event-card,
.arcade-modern .arcade-rank-profile,
.arcade-modern .arcade-rank-week { border:1px solid var(--arcade-line); border-radius:8px; background:var(--arcade-surface); box-shadow:none; }
.arcade-modern .arcade-presence-panel,
.arcade-modern .arcade-presence-panel.is-stuck { padding:12px; transform:none; }
.arcade-modern .arcade-presence-head h2,
.arcade-modern .room-lobby-head h2,
.arcade-modern .arcade-quests h2 { color:var(--arcade-ink); text-shadow:none; }
.arcade-modern .arcade-presence-head p { font-size:12px; color:var(--arcade-muted); }
.arcade-modern .arcade-presence-member,
.arcade-modern .room-card { border:1px solid var(--arcade-line); border-radius:6px; background:#101b2c; box-shadow:none; }
.arcade-modern .arcade-presence-member:hover { background:#1d2c44; transform:none; }
.arcade-modern .arcade-presence-count { color:#c8dcff; border-color:#4d6a93; background:#20334f; box-shadow:none; }
.arcade-modern .arcade-presence-action { font-family:inherit; box-shadow:none; text-decoration:none; }

/* 확인 필요·확인 중·완료·오류는 글자와 배지로도 구분해 색만으로 상태를 전달하지 않습니다. */
.arcade-modern .arcade-launcher-help { min-width:0; border-top:1px solid var(--arcade-line); padding-top:7px; }
.arcade-modern .arcade-launcher-help > summary { color:#bbd1ec; font-size:12px; line-height:1.6; cursor:pointer; overflow-wrap:anywhere; }
.arcade-modern .arcade-launcher-help[open] > summary { margin-bottom:8px; }
.arcade-modern #arcadeChallengeStatus { color:#e0ebff; font-size:13px; line-height:1.6; overflow-wrap:anywhere; }
.arcade-modern #arcadeChallengeHelp .arcade-btn { background:var(--arcade-button-install); color:#2b1c0b; }
.arcade-modern .arcade-launcher-readiness { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:12px; margin:0; padding:14px; border:1px solid #6d96de; border-left:4px solid #84adff; border-radius:10px; background:#1a2c48; }
.arcade-launcher-copy { min-width:0; }
.arcade-launcher-heading { display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; }
.arcade-launcher-heading strong { color:#f0f5ff; font-size:15px; line-height:1.45; }
.arcade-launcher-state { display:inline-flex; padding:2px 7px; border:1px solid #bd8c48; border-radius:4px; background:#372a18; color:#ffd397; font-size:11px; font-weight:700; white-space:nowrap; }
.arcade-modern #arcadeLauncherReadyLabel { margin:6px 0 0; color:#d1def2; font-size:13px; line-height:1.6; overflow-wrap:anywhere; }
.arcade-launcher-actions { display:grid; grid-template-columns:repeat(2,minmax(100px,1fr)); gap:8px; min-width:0; }
.arcade-modern .arcade-launcher-actions .arcade-presence-action { width:100%; min-width:0; min-height:44px; box-sizing:border-box; margin:0; padding:8px 12px; border:1px solid #b6fff3; border-radius:6px; background:var(--arcade-button-primary); color:#07152d; font-size:14px; font-weight:800; line-height:1.4; text-align:center; white-space:normal; }
.arcade-modern .arcade-launcher-actions .arcade-launcher-install { background:var(--arcade-button-install); border-color:#ffcf90; color:#2b1c0b; }
.arcade-modern .arcade-launcher-actions .arcade-launcher-check:hover:not(:disabled) { background:linear-gradient(135deg,#fffbb0,#a1fff5); }
.arcade-modern .arcade-launcher-actions .arcade-launcher-install:hover { background:linear-gradient(135deg,#fff0bf,#ffc17e); }
.arcade-modern .arcade-launcher-readiness button:disabled { opacity:1; cursor:default; background:linear-gradient(180deg,#354f70,#20354e); border-color:#6888b8; color:#edf3fd; }
.arcade-modern .arcade-launcher-readiness[data-state="ready"] { border-color:#598f78; border-left-color:#9bdfba; background:#182e2a; }
.arcade-launcher-readiness[data-state="ready"] .arcade-launcher-state { background:#213f31; border-color:#6ba784; color:#bdf3ce; }
.arcade-launcher-readiness[data-state="checking"] .arcade-launcher-state { background:#243c62; border-color:#84adff; color:#e1ebff; }
.arcade-modern .arcade-launcher-readiness[data-state="error"] { border-color:#c28d83; }
.arcade-launcher-readiness[data-state="error"] .arcade-launcher-state { background:#472b29; border-color:#c98c80; color:#ffcec4; }

/* 게임 카드는 간판 → 화면 → 시작 버튼 순의 오락기 형태를 유지하며 제목 전체를 보여 줍니다. */
.arcade-modern .arcade-toolbar,
.arcade-modern .game-discovery { background:#101b2c; border:1px solid var(--arcade-line); border-radius:8px; box-shadow:none; }
.arcade-modern .arcade-toolbar .arcade-search-fields input,
.arcade-modern .arcade-toolbar .arcade-search-fields select { background:#0b1525; color:var(--arcade-ink); border-color:#465d7c; font-family:inherit; }
.arcade-modern .arcade-toolbar .arcade-search-fields input::placeholder { color:#a6b7ce; }
.arcade-modern .game-filter-tab { border-color:#4b6487; border-radius:5px; background:var(--arcade-button-secondary); color:#e6eefb; }
.arcade-modern .game-filter-tab.is-active { color:#2b1c0b; background:var(--arcade-button-install); border-color:#ffcf90; }
.arcade-modern .game-discovery > summary strong { color:#d8e7ff; }
.arcade-modern .game-discovery > summary span { color:var(--arcade-muted); }
.arcade-modern .arcade-btn { background:var(--arcade-button-secondary); color:#e6eefb; border:1px solid #4b6487; border-radius:6px; font-family:inherit; font-weight:700; transform:none; text-decoration:none; }
.arcade-modern .arcade-btn:hover { background:linear-gradient(180deg,#365b83,#1d3c5c); color:#fff; transform:none; }
.arcade-modern .arcade-btn--primary,
.arcade-modern .arcade-search-submit { background:var(--arcade-button-primary); border-color:#b6fff3; color:#07152d; }
.arcade-modern .arcade-btn--primary:hover,
.arcade-modern .arcade-search-submit:hover { background:linear-gradient(135deg,#fffbb0,#a1fff5); color:#07152d; }
.arcade-modern .arcade-grid { gap:14px; }
.arcade-modern .game-card { padding:6px; border:2px solid #526d85; border-radius:15px 15px 9px 9px; background:linear-gradient(100deg,#0a111c 0 6%,#2b455d 6% 12%,#121f30 12% 88%,#2b455d 88% 94%,#080f19 94%); box-shadow:inset 0 0 0 1px #040b13,3px 4px 0 #050c16; transition:border-color .12s; }
.arcade-modern .game-card:hover { border-color:#83e9df; box-shadow:inset 0 0 0 1px #040b13,3px 4px 0 #050c16; transform:none; }
/* 숨겨졌던 오락기 상단 네온·브랜드·조작부를 정적 CSS로 복원해 별도 이미지 요청을 늘리지 않습니다. */
.arcade-modern .game-card::before { content:''; height:3px; background:linear-gradient(90deg,#ff4d9d,#fff56a,#69fff1); box-shadow:0 0 6px #69fff14d; }
.arcade-modern .game-thumb::after { content:none; }
.arcade-modern .cabinet-screen-bezel { order:0; padding:8px 8px 10px; margin:0 2px; border:2px solid #394b5c; border-radius:5px 5px 10px 10px; background:linear-gradient(145deg,#172433,#03070c 62%,#101c29); box-shadow:inset 2px 2px #ffffff0d,inset -3px -3px #00000055; }
.arcade-modern .game-thumb { height:auto; aspect-ratio:4/3; border:2px solid #00040a; border-radius:8px 8px 12px 12px; background:#080e19; box-shadow:none; }
.arcade-modern .game-thumb img { object-fit:contain; background:#080e19; }
.arcade-modern .game-card:hover .game-thumb img { filter:none; }
.arcade-modern .cabinet-marquee { min-height:48px; margin:3px 2px 6px; padding:7px 9px; place-content:center; border:1px solid #f6d95b; border-radius:8px 8px 4px 4px; background:linear-gradient(135deg,#50123e,#171743 52%,#063b4b); box-shadow:inset 0 1px #fff56a33; text-align:center; }
.arcade-modern .cabinet-marquee::after { content:''; inset:3px; border:1px solid #ffffff20; border-radius:5px 5px 3px 3px; }
.arcade-modern .cabinet-brand { display:block; margin-bottom:3px; color:#92f5ed; font:700 10px/1.3 "Consolas",monospace; letter-spacing:.08em; text-shadow:none; }
.arcade-modern .cabinet-marquee-title { display:block; margin:0; overflow:visible; font:750 14px/1.5 "Malgun Gothic",sans-serif; color:#fffbd0; letter-spacing:0; text-shadow:1px 1px #762447; overflow-wrap:anywhere; -webkit-line-clamp:unset; }
.arcade-modern .cabinet-control-deck { display:flex; min-height:54px; margin:-1px 2px 3px; padding:5px 10px 7px; border-width:1px; border-radius:3px 3px 10px 10px; box-sizing:border-box; box-shadow:inset 0 2px #ffffff12,0 3px #050b12; }
.arcade-modern .cabinet-coin-slot { font-family:"Consolas",monospace; box-shadow:inset 0 0 0 1px #4f5e6a; }
.arcade-modern .game-body { display:flex; flex:1; flex-direction:column; gap:8px; margin:3px 2px 0; padding:9px 7px 7px; border:0; border-radius:0 0 4px 4px; background:#0e1928; box-shadow:none; }
.arcade-modern .game-pill { font-size:11px; font-weight:500; color:#c6d5ea; background:#1a2c44; border-color:#3b5270; }
.arcade-modern .game-pill--ranked { color:#b5edcc; border-color:#6ba684; background:#1c342a; }
.arcade-modern .game-pill--blocked { color:#ffd2c9; border-color:#bc847c; }
.arcade-modern .game-desc { color:#afc0d8; min-height:0; font-size:12px; line-height:1.5; max-height:none; }
.arcade-modern .game-card-actions { margin-top:auto; }
.arcade-modern .game-card-actions .arcade-btn { min-height:36px; font-size:12px; }
.arcade-modern .game-option-details summary { color:#accbff; font-size:12px; }
.arcade-modern .room-status { text-shadow:none; box-shadow:none; }
.arcade-modern .arcade-rank-subtabs a { background:var(--arcade-button-secondary); }
.arcade-modern .arcade-rank-subtabs a.active { background:var(--arcade-button-install); color:#2b1c0b; border-color:#ffcf90; }

/* 고정된 안쪽 명암선으로 게임방의 눌림감을 표현합니다. 외부 이미지·필터·반복 애니메이션은 쓰지 않습니다. */
.arcade-modern :is(.arcade-btn,.server-launcher-cta,.arcade-presence-action,.game-filter-tab,.arcade-rank-subtabs a,.arcade-community-list-button,.arcade-community-write-button) { box-shadow:var(--arcade-button-depth); }
.arcade-modern .arcade-presence-action:not(.arcade-launcher-check):not(.arcade-launcher-install) { background:var(--arcade-button-secondary); }
.arcade-modern .arcade-presence-action.is-join { background:linear-gradient(180deg,#78571a,#47330e); }
.arcade-modern .arcade-community-list-button { background:var(--arcade-button-secondary); }
.arcade-modern .arcade-community-write-button { background:var(--arcade-button-primary); color:#07152d; }
/* 비활성 버튼은 입체 장식과 관계없이 눌릴 수 없음을 유지하고 호버 시에도 실행 버튼처럼 밝아지지 않습니다. */
.arcade-modern .arcade-btn:is(:disabled,[aria-disabled="true"]) { background:linear-gradient(180deg,#354352,#212f3f); border-color:#62758a; color:#c5d0dc; cursor:not-allowed; transform:none; }
.arcade-modern :is(.arcade-btn,.server-launcher-cta,.arcade-presence-action,.game-filter-tab):not(:disabled):not([aria-disabled="true"]):active { box-shadow:inset 1px 2px 0 #00000040,inset -1px -1px 0 #ffffff24; transform:none; }

/* 키보드 조작과 작은 화면을 함께 보호하며 강조를 위해 움직이거나 글자를 자르지 않습니다. */
.arcade-modern :is(a,button,input,select,summary):focus-visible { outline:2px solid #b7d0ff; outline-offset:3px; }
@media (max-width:900px) {
    .arcade-modern .arcade-launcher-readiness { grid-template-columns:minmax(0,1fr); }
    .arcade-launcher-actions { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:700px) {
    .arcade-modern .arcade-atmosphere-board { padding:6px 10px; gap:4px; }
    .arcade-modern .arcade-atmosphere-head h2 { font-size:20px; }
    .arcade-modern .arcade-service-bar { padding:5px 8px; gap:3px; }
    .arcade-modern .game-card { max-width:none; }
    .arcade-modern .arcade-launcher-readiness { padding:12px; gap:10px; }
    .arcade-launcher-heading strong { font-size:14px; }
    .arcade-modern .arcade-launcher-actions .arcade-presence-action { padding:8px; font-size:13px; }
}
/* 휴대폰 검색은 입력 한 줄 + 기종/동일 크기 버튼 한 줄로 압축합니다. 넓은 관리 버튼은 별도 행을 씁니다. */
@media (max-width:520px) {
    .arcade-modern .arcade-toolbar { grid-template-columns:minmax(0,1fr) auto; gap:6px; padding:8px; }
    .arcade-modern .arcade-search-fields { display:contents; }
    .arcade-modern .arcade-toolbar .arcade-search-fields input { grid-column:1/-1; }
    .arcade-modern .arcade-search-actions { grid-column:2; grid-row:2; grid-template-columns:repeat(2,minmax(0,1fr)); gap:5px; }
    .arcade-modern .arcade-toolbar .arcade-search-actions .arcade-btn { min-width:62px; padding:0 10px; }
    .arcade-modern .arcade-toolbar:has(.arcade-search-admin) .arcade-search-actions { grid-row:auto; grid-column:1/-1; }
    .arcade-modern .arcade-toolbar:has(.arcade-search-admin) .arcade-search-fields select { grid-column:1/-1; }
}
@media (prefers-reduced-motion:reduce) {
    .arcade-modern .arcade-wrap *, .arcade-modern .arcade-wrap *::before, .arcade-modern .arcade-wrap *::after { animation:none; transition:none; scroll-behavior:auto; }
}
