/* ============================================================================
   방탈로그 — 데스크탑 레이아웃 오버레이 (styles.css 뒤에 로드)
   원칙: "One DOM, Two Layouts" — app.js 렌더 마크업은 모바일과 100% 동일하고,
   여기서는 ≥1000px 에서만 CSS 로 재배치한다. 이 파일의 모든 규칙은 아래
   @media (min-width:1000px) 안에만 산다 (모바일 가드 2줄 제외).
   - <1000px(모바일·APK WebView·태블릿 폰프레임)은 이 파일의 영향을 받지 않는다.
   - 새 화면/컴포넌트를 추가할 때: styles.css(모바일 기준) 작성 후, 데스크탑에서
     폭·배치 보정이 필요하면 이 파일의 해당 뷰 섹션에 오버라이드를 추가할 것.
   ========================================================================== */

/* ---- 모바일 가드 — 데스크탑 전용 마크업(레일 브랜드·기록 추가 라벨·유용한 기능 탭·탐색 툴바 카운트/정렬·채팅 목록 사이드) 숨김 ---- */
.railbrand{display:none}
.tab .qalb{display:none}
.chatside{display:none}
.desktop-tools-tab{display:none}
.toolbar .emcount,.toolbar .em-sort{display:none}

@media (min-width:1000px){

/* ============================== SHELL ==============================
   폰 프레임(480px+ 목업)을 해제하고 전폭 데스크탑 셸로.
   nav-first 마크업 순서(.tabbar, .view)를 flex-direction:row 로 그대로 보여준다. */
body{padding:0;display:block;
  background-image:
    radial-gradient(1300px 820px at 10% -12%,#0d1014,transparent 62%),
    radial-gradient(1100px 760px at 106% 110%,rgba(228,3,43,.055),transparent 60%),
    radial-gradient(900px 620px at 92% -10%,rgba(63,224,208,.05),transparent 55%)}
.frame{
  width:100%;max-width:1760px;height:100vh;height:100dvh;margin:0 auto;
  flex-direction:row;border-radius:0;border:none;
  box-shadow:0 0 0 1px #14181d}
/* 홈 화면 웹앱(standalone)은 dvh·%(ICB) 모두 상태바만큼 짧게 계산되는 WebKit 버그 →
   실측 --app-h(app.js 주입)를 html,body 에 얹는 styles.css standalone 체인을 100% 로 상속
   (아이패드 가로 등 ≥1000px 에서 위 100dvh 가 체인을 끊지 않게 되돌림) */
@media(display-mode:standalone){.frame{height:100%}}
html.ios-app .frame{height:100%} /* Capacitor iOS — standalone 블록의 클래스 짝 */
.frame::before{background-size:100% 96px;opacity:.4}
.view{flex:1;min-width:0;--dcol:1080px}

/* 데스크탑은 포인터 환경 — 콘텐츠 스크롤바를 얇게 표시 (모바일은 width:0 유지) */
.scroll{scrollbar-width:thin;scrollbar-color:var(--surface3) transparent}
.scroll::-webkit-scrollbar{width:9px}
.scroll::-webkit-scrollbar-thumb{background:var(--surface3);border-radius:8px;border:2px solid transparent;background-clip:padding-box}
.scroll::-webkit-scrollbar-thumb:hover{background:var(--border)}

/* ============================== NAV RAIL ==============================
   하단 탭바 → 좌측 수직 레일. 마크업 동일(.tabbar>.tab), CSS 재배치만. */
.tabbar{
  flex-direction:column;align-items:stretch;justify-content:flex-start;
  width:236px;flex:0 0 236px;gap:5px;padding:22px 16px 18px;
  border-top:none;border-right:1px solid var(--border);
  background:linear-gradient(180deg,rgba(10,12,14,.95),rgba(8,9,11,.9))}
.railbrand{display:flex;align-items:center;gap:12px;padding:2px 8px 20px;margin-bottom:14px;border-bottom:1px solid var(--hairline);cursor:pointer;transition:opacity .15s}
.railbrand:hover{opacity:.82}
.railbrand .rbt{display:flex;flex-direction:column;gap:3px}
.railbrand .rbt b{font-weight:900;font-size:19px;letter-spacing:-.03em;line-height:1}
.railbrand .rbt span{font-family:var(--fe);text-transform:uppercase;letter-spacing:.22em;font-size:8.5px;color:var(--gold);opacity:.8;font-weight:700}
.tab{flex:0 0 auto;flex-direction:row;justify-content:flex-start;gap:12px;padding:11px 14px;border-radius:10px;border:1px solid transparent;transition:.16s}
.tab svg{width:20px;height:20px}
.tab .lb{font-size:13.5px;font-weight:700}
.tab:hover{color:var(--text);background:var(--surface)}
.tab.on{color:color-mix(in srgb,var(--p5) 86%,var(--text));background:color-mix(in srgb,var(--p5) 9%,transparent);border-color:color-mix(in srgb,var(--p5) 22%,transparent)}
.tab.on::before{top:0;bottom:0;left:-1px;margin:auto 0;transform:none;width:3px;height:18px;border-radius:0 3px 3px 0}
.tab .navdot{top:50%;left:auto;right:12px;transform:translateY(-50%)}
/* 모바일 프로필의 하위 진입점을 데스크탑에선 프로필 바로 아래의 독립 메뉴로 승격한다. */
.tabbar .desktop-tools-tab{display:flex;position:relative;margin-top:8px}
.tabbar .desktop-tools-tab::after{content:"";position:absolute;left:14px;right:14px;top:-7px;height:1px;background:var(--hairline)}
/* 유용한 기능 화면에선 모바일용 프로필 .on 을 일반 탭과 똑같이 — 렌즈 그림자·흰 아이콘·전환 애니메이션까지 해제 */
.tabbar:has(.desktop-tools-tab.on) .tab.on[data-act="tab:me"]{color:var(--faint);background:transparent;border-color:transparent;box-shadow:none}
.tabbar:has(.desktop-tools-tab.on) .tab.on[data-act="tab:me"]:hover{color:var(--text);background:var(--surface)}
.tabbar:has(.desktop-tools-tab.on) .tab.on[data-act="tab:me"]>:is(svg,.lb){color:inherit;animation:none;stroke-width:1.8;font-weight:700}
.tabbar:has(.desktop-tools-tab.on) .tab[data-act="tab:me"]::before{display:none}
/* 기록 추가(FAB) — 데스크탑 레일에서 브랜드와 탐색 사이의 최상단 액션으로 표시 */
.railbrand{order:-2}
.tabbar .tab:has(.fab){order:-1;margin:2px 0 16px;height:48px;justify-content:center;gap:8px;
  background:linear-gradient(180deg,color-mix(in srgb,var(--p5) 90%,#fff),var(--p5));border:none;border-radius:14px;
  box-shadow:0 10px 22px -10px color-mix(in srgb,var(--p5) 60%,transparent),inset 0 1px 0 rgba(255,255,255,.22)}
.tabbar .tab:has(.fab):hover{filter:brightness(1.06)}
.tabbar .tab:has(.fab):active{transform:translateY(1px)}
.tab .fab{width:auto;height:auto;margin:0;background:none;border-radius:0;box-shadow:none;transform:none}
.tab .fab svg{transform:none;width:19px;height:19px}
.tab .qalb{display:block;color:var(--paper);font-size:14px;font-weight:900;letter-spacing:.01em}
/* 레일 푸터 — HUD 시스템 라벨 */
.tabbar::after{content:"";margin-top:auto;padding:14px 8px 2px;
  font-family:var(--fe);text-transform:uppercase;letter-spacing:.2em;font-size:8.5px;
  color:var(--faint);opacity:.55;border-top:1px solid var(--hairline);text-align:left}
/* 테스트 HUD — 레일 하단 시스템 표식. 조작을 막지 않는 읽기 전용 레이어. */
.runtime-badge{left:16px;top:auto;bottom:66px;width:204px;min-height:30px;padding:8px 11px;
  writing-mode:horizontal-tb;text-orientation:mixed;transform:none;justify-content:flex-start;
  clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,8px 100%,0 calc(100% - 8px));
  font-size:8.5px;letter-spacing:.14em}
.runtime-badge::before{width:4px;height:4px}

/* ============================== 공통 콘텐츠 컬럼 ==============================
   상단 바 종류와 스크롤 직계 자식을 뷰별 컬럼폭(--dcol)으로 중앙 정렬.
   (채팅 로그·달력 스테이지는 아래에서 개별 처리) */
.appbar,.searchbar,.toolbar,.notifbar,.ddaybar,.editbar,.chatbar,.store-filterbar,.store-countline,.reclistctrl,.reclistbar,.stabs,.roomsum-row{
  width:min(100% - 72px,var(--dcol));margin-left:auto;margin-right:auto}
.scroll:not(.chatlog):not(.cal-scroll)>*{
  width:min(100% - 72px,var(--dcol));margin-left:auto;margin-right:auto}
.appbar{padding-left:4px;padding-right:4px}
.roomsum-row{padding-left:4px;padding-right:4px} /* 방 수 요약 — 제목과 같은 왼쪽 선 */
.appbar .title{font-size:24px}
.toolbar,.countline{padding-left:4px;padding-right:4px}
.rectabs{width:min(100% - 72px,460px);margin-left:auto;margin-right:auto}
.section{padding-left:4px;padding-right:4px}

/* ============================== SHEET → 중앙 모달 ==============================
   바텀시트를 데스크탑 관례대로 중앙 다이얼로그로. 마크업·JS 동일. */
.sheet-bg{align-items:center;padding:32px}
.sheet{width:min(580px,92vw);max-height:min(820px,88vh);border-radius:16px;
  border:1px solid var(--border);border-top:1px solid var(--border);
  padding-bottom:22px;box-shadow:0 40px 120px rgba(0,0,0,.65),0 0 0 1px rgba(146,164,184,.06);
  transform:translateY(16px);opacity:0;transition:transform .22s cubic-bezier(.2,.9,.3,1),opacity .2s}
.sheet-bg.show .sheet{transform:none;opacity:1}
.sheet .grab{display:none}
.sheet .sh-head{padding:16px 26px 8px}
.sheet .sh-body{padding:8px 26px}
#qaForm .qa-form-actions,.rv-submitbar{margin-left:-26px;margin-right:-26px;padding-left:26px;padding-right:26px} /* 고정 저장 줄 — 모달 본문 여백과 맞춤 */
.admin-control-sheet,.admin-detail-sheet,.admin-poll-editor{width:min(760px,92vw)}.admin-control-sheet .sh-body,.admin-detail-sheet .sh-body,.admin-poll-editor .sh-body{padding-left:26px;padding-right:26px}.admin-control-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.admin-control-empty,.admin-control-create{grid-column:1/-1}.admin-detail-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-detail-actions>.admin-poll-link:last-child:nth-child(odd){grid-column:auto}
/* 모임 일정 불러오기는 작성 모달 안의 독립 단계로 유지 — 넓은 화면에서도 일정한 선택 높이와 2열 진입 카드 */
.group-event-sheet{height:min(760px,88vh)}
.group-event-sheet .evt-import-head{padding-left:24px;padding-right:24px}
.group-event-sheet .evt-import-body{padding:18px 26px 24px}
.group-event-sheet .evt-import-sources{grid-template-columns:repeat(2,minmax(0,1fr))}
.group-event-sheet .evt-import-sources>button{grid-template-columns:44px minmax(0,1fr);align-content:center}.group-event-sheet .evt-import-sources>button>svg{display:none}
.group-event-sheet .evt-import-calendar{padding:14px}.group-event-sheet .evt-import-days>button,.group-event-sheet .evt-import-days>.pad{min-height:48px}
.event-seat-sheet{width:min(660px,92vw)}.event-seat-sheet .event-seat-members{grid-template-columns:repeat(2,minmax(0,1fr))}
.event-save-preview-sheet{width:min(520px,92vw)}
/* 메모는 시트가 아니라 실제 전체 화면을 유지하되, 긴 글의 가독 폭만 중앙에 제한한다. */
.memo-full-head{grid-template-columns:42px minmax(0,1fr) auto;padding-left:max(28px,calc((100vw - 880px)/2));padding-right:max(28px,calc((100vw - 880px)/2))}
.memo-share-foot{padding-left:max(28px,calc((100vw - 880px)/2));padding-right:max(28px,calc((100vw - 880px)/2))}
.memo-pane-tabs.segctl{width:460px;margin:12px auto 0}
.memo-full-body{width:min(840px,calc(100vw - 64px));margin:0 auto}
.memo-edit-pane,.memo-read-pane{padding-left:0;padding-right:0;padding-bottom:28px}
/* 데스크탑 서식 툴바 — 소형·좌측 몰기 대신 마크 토글과 색 스와치를 가운데에 여유 있게 */
.memo-toolbar{width:auto;justify-content:center;gap:16px;align-self:center;margin:2px 0 10px;padding:4px}
.mt-marks button{width:64px;height:46px;gap:3px;font-size:11.5px}
.mt-marks button>b,.mt-marks button>i{font-size:15px}
.mt-marks button>strong{font-size:17px}
.mt-marks button>svg{width:15px;height:15px}
.mt-colors{gap:8px;padding:0 12px}
.mtc{width:24px;height:24px}
.mtc span{font-size:11px}
.memo-editor{padding:32px 44px 50px;font-size:17px}
.memo-rich-doc{font-size:18px;line-height:1.9}
.memo-scroll-view,.memo-page-viewport{padding:36px 54px 58px}.memo-page-viewport{--memo-page-pad-x:54px}
.memo-page-nav{grid-template-columns:160px 160px;justify-content:center}
.tester-intro-sheet{width:min(580px,92vw)}
.tester-intro-sheet .ti-real-picture{height:354px}
.tester-intro-sheet .ti-real-screen{transform:translateX(-50%) scale(.9)}
.tester-intro-sheet .ti-actions{padding-left:26px;padding-right:26px}
.midnight-intro-sheet{width:min(520px,92vw)}
.record-number-intro-sheet{width:min(480px,92vw)}
.feature-hub-sheet{width:min(480px,92vw)}.reservation-handoff-intro-sheet{width:min(500px,92vw)}.genre-badge-intro-sheet{width:min(500px,92vw)}
.plan-intro-sheet{width:min(520px,92vw)}.plan-intro-sheet .plan-intro-preview{padding:20px}.plan-intro-sheet .plan-intro-card{padding:13px 14px}
.rfi-intro-sheet{width:min(520px,92vw)}
.maintenance-notice-sheet{width:min(520px,92vw)}
.review-export-sheet{width:min(680px,92vw)}
.png-export-sheet{width:min(820px,92vw)}
.record-action-sheet{width:min(620px,92vw)}
.record-party-sheet{width:min(460px,92vw)} /* 기록 시트 위 일행 팝업 — 사람 목록이라 좁게 */
.record-action-sheet .recsheet-open{grid-template-columns:34px minmax(0,1fr) auto;grid-template-areas:"ico copy state";column-gap:11px;padding:11px 13px}.record-action-sheet .recsheet-open>em{justify-self:end}
.record-action-sheet .recsheet-people{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible}.record-action-sheet .recsheet-person{min-width:0;max-width:none}
.record-action-sheet.recsheet-v2 .recsheet-acts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start} /* 새 배치 — 넓은 모달에선 기록 / 테마·메모 두 묶음을 나란히 */
.location-sheet{width:min(680px,92vw)}
.location-sheet .location-map{height:380px}
.location-sheet .sh-body{padding:8px 26px 22px}
.store-themes-sheet{width:min(620px,92vw)}
.plan-theme-info-sheet{width:min(520px,92vw)}.plan-theme-info-sheet .sh-body{padding:10px 26px 24px}.plan-theme-info-hero{grid-template-columns:108px minmax(0,1fr);gap:18px;padding:15px}.plan-theme-info-poster{width:108px}.plan-theme-info-copy h2{font-size:24px}.plan-theme-info-copy>b{font-size:12px}.plan-theme-info-copy p{font-size:11px}.plan-theme-info-facts{grid-template-columns:repeat(4,minmax(0,1fr))}.plan-theme-info-facts>div{min-height:72px;padding:10px}.plan-theme-info-facts b{font-size:12.5px}
.openroom-info-sheet{width:min(460px,92vw)}
.theme-history-sheet{width:min(680px,92vw)}.theme-history-all-sheet{width:min(760px,92vw)}
.p5c{width:396px} /* 로그아웃 P5 다이얼로그 — 데스크탑 모달 스케일에 맞춰 살짝 넓게 (fb:93851b8a) */
.p5c-in{padding:26px 26px 24px}
.toast{bottom:40px;left:calc(50% + 118px);max-width:min(410px,calc(100vw - 284px))} /* 레일 폭 절반만큼 우측 보정 — 콘텐츠 영역 중앙 */
body:has(.view-auth) .toast{left:50%} /* 인증 화면엔 레일이 없음 */
.toast.show{transform:translateX(-50%) translateY(0)}

/* ============================== 탐색 (EXPLORE) ============================== */
.view-explore{--dcol:1120px}
/* 로고는 레일이 대신하고, 일정은 모바일처럼 남은 폭을 쓰며 알림 벨 옆 한 줄에 둔다. */
.view-explore .appbar{justify-content:flex-end;flex-wrap:nowrap;margin-top:22px;padding:0 4px;min-height:0}
.view-explore .appbar .logomark{display:none}
.view-explore .searchbar{margin-top:12px;height:56px}
/* 폭을 제한한 일정 배너가 우측 액션에 붙어 치우치지 않도록 콘텐츠 축에 고정한다. */
.view-explore .appbar:has(.ddaybar){justify-content:center}
.view-explore .appbar .ddaybar{flex:0 1 620px;min-width:0;max-width:calc(100% - 96px);width:620px;margin:0;padding:5px}
/* 예약 오픈 임박 — 디데이와 한 줄 공유: 디데이 좌 · 임박 우 반반. 임박만 있으면 줄 전체(우측 벨 자리 46px 제외), 디데이만 있으면 위 중앙 정렬 유지 */
.view-explore .appbar:has(.rosoon){justify-content:flex-start;align-items:flex-start;flex-wrap:nowrap;gap:12px}
.view-explore .appbar:has(.rosoon) .ddaybar{flex:1 1 0;width:auto;max-width:none}
.view-explore .appbar .rosoon{flex:1 1 0;min-width:0;width:auto;margin:0 46px 0 0}
.view-explore .appbar:has(.ddaybar) .avsearchbtn,.view-explore .appbar:has(.ddaybar) .notifbtn{position:absolute;right:4px}
.view-explore .appbar:has(.rosoon) .avsearchbtn,.view-explore .appbar:has(.rosoon) .notifbtn{position:absolute;right:4px}
.view-explore .appbar .avsearchbtn,.view-explore .appbar .notifbtn{flex:0 0 auto}
.countline{padding-top:12px}
/* 결과 리스트 → 반응형 카드 그리드 (마크업은 동일한 .trow) */
.tlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(430px,1fr));gap:12px 14px;padding:6px 0 26px}
.tlist .trow{border:1px solid var(--hairline);border-radius:12px;padding:14px 16px;
  background:linear-gradient(165deg,var(--surface),rgba(16,19,23,.35))}
.view-explore .tlist .trow{align-items:center}
.view-explore .tlist .trow .mid{position:relative}
.view-explore .tlist .trow .mid .t{flex:1 1 auto}
/* 데스크탑 탐색 제목은 기존처럼 한 줄 말줄임으로 표시. */
.view-explore .trow .mid .t,.view-explore .avtitle{display:block;-webkit-line-clamp:unset;white-space:nowrap;overflow-wrap:normal;line-height:normal}
.view-explore .trow .mid .tline,.view-explore .avtitleline{align-items:center}
.view-explore .theme-category.compact{width:24px;height:24px}.view-explore .theme-category.compact svg{width:18px;height:18px}
.view-explore .tlist .trow .tdur,.view-explore .avtags .tdur{height:22px;gap:5px;padding:0 7px 0 3px}
.view-explore .tlist .trow .tdial,.view-explore .avtags .tdial{width:16px;height:16px}
.view-explore .tlist .trow .tdur-value b,.view-explore .avtags .tdur-value b{font-size:12px}
.view-explore .tlist .trow .tdur-value small,.view-explore .avtags .tdur-value small{font-size:10px}
.view-explore .tlist .trow .tags2{width:auto;max-width:none;gap:7px;margin-top:7px;overflow:hidden}
.view-explore .tlist .trow .tags2 .pmeter{gap:5px;padding:3px 9px}
.view-explore .tlist .trow .tags2 .pmeter .pml{font-size:9px}
.view-explore .tlist .trow .tags2 .pmeter .pms{gap:2px}
.view-explore .tlist .trow .tags2 .pmeter .pms i{width:3.5px;height:9px}
/* 평점 스텁 — 카드 오른쪽 끝을 점선으로 끊은 티켓 꼬리. 등급 아이콘+점수 한 줄, 플레이 수는 같은 중심축 아래.
   카드 위·아래·오른쪽 가장자리까지 채워 모든 카드에서 같은 자리에 선다. --gc(등급색, app.js themeRow)는 옅은 바탕에만 */
.view-explore .tlist .trow .end{align-self:stretch;justify-content:center;align-items:center;gap:6px;width:92px;margin:-14px -16px -14px 2px;padding:0 8px;
  border-left:1px dashed color-mix(in srgb,var(--text) 15%,transparent);border-radius:0 11px 11px 0;
  background:radial-gradient(110% 80% at 50% 40%,color-mix(in srgb,var(--gc,transparent) 13%,transparent),transparent 74%);transition:border-color .14s}
.view-explore .tlist .trow:hover .end{border-left-color:var(--accentDim)}
.view-explore .tlist .trow .end .ratebadge{gap:6px;width:auto;height:auto;background:none}
.view-explore .tlist .trow .end .ratebadge svg{flex:0 0 auto;width:19px;height:19px}
.view-explore .tlist .trow .end .rt{font-size:21px;font-weight:700;line-height:1;letter-spacing:-.06em;font-variant-numeric:tabular-nums}
.view-explore .tlist .trow .end .ratebadge.norating .rt{font-weight:500}
.view-explore .tlist .trow .end .tplays{font-size:10.5px;letter-spacing:.01em;line-height:1}
.tlist .trow:hover{border-color:var(--accentDim);background:var(--surface);
  box-shadow:0 0 0 1px rgba(63,224,208,.14),0 14px 34px rgba(0,0,0,.35)}
.trow .th{width:60px;height:80px}
.themesentinel{padding-bottom:26px}
.treq-cta{max-width:560px;margin:0 auto;padding:10px 0 36px} /* 테마 추가 요청 CTA — 넓은 컬럼(--dcol) 풀폭이면 어색 → 중앙 고정폭 */

/* ============================== 상세 (DETAIL) ==============================
   좌측 포스터 히어로 패널(고정) + 우측 본문 스크롤 2컬럼.
   로딩 중(히어로 없음)에는 기본 플렉스 유지 → :has(.dhero) 게이트. */
.view-detail{--dcol:820px}
.view-detail:has(.dhero){display:grid;max-width:1440px;width:100%;margin:0 auto;
  grid-template-columns:clamp(340px,34%,470px) minmax(0,1fr);
  grid-template-rows:minmax(0,1fr) auto;
  border-left:1px solid var(--hairline);border-right:1px solid var(--hairline)}
.view-detail .dhero{grid-area:1/1/2/2;height:auto;min-height:0;border-right:1px solid var(--border)}
.view-detail .dhero .scrim{background:linear-gradient(180deg,rgba(8,9,11,.3) 0%,rgba(8,9,11,.12) 52%,rgba(8,9,11,.96) 100%)}
.view-detail .dhead .ttl{font-size:34px}
.view-detail .dcategory{max-height:none;margin-bottom:12px;opacity:1;overflow:visible}
/* 컬랩싱 히어로(--dclps) 원복 — 히어로가 좌측 고정 패널이라 우측 본문 스크롤에 축소·디밍이 끼면 안 됨
   (height·scrim·ttl·dbody 는 위/아래 shorthand 규칙이 이미 덮음) */
.view-detail .dhead .rn,.view-detail .dhead .meta,.view-detail .dplan{opacity:1;max-height:none}
.view-detail .dhead .meta{margin-top:9px}
.view-detail .dplan{margin:6px 0 2px;padding:0;overflow:visible} /* 컬랩싱 없음 → 클립 불필요, 배지 글로우 그대로 노출(모바일 패딩·음수마진 원복) */
.view-detail .factbar{grid-area:2/1/3/2;border-right:1px solid var(--border);border-top:1px solid var(--border)}
.view-detail .scroll{grid-area:1/2/3/3;padding-top:0} /* padding-top — 모바일 1:1 스크롤 보정(styles.css) 원복 */
.view-detail .dbody{padding:26px 28px 44px}
.view-detail:has(.reservation-dock) .dbody{padding-bottom:104px}.view-detail .reservation-dock{left:clamp(340px,34%,470px);min-height:84px;grid-template-columns:38px minmax(0,1fr) auto;padding:11px 28px;border-left:1px solid var(--border)}.view-detail .reservation-dock-mark{width:38px;height:38px}.view-detail .reservation-dock-copy strong span{font-size:13px}.view-detail .reservation-dock-copy strong b{font-size:20px}.view-detail .reservation-dock-copy em{-webkit-line-clamp:1;font-size:11.5px}.view-detail .reservation-dock-actions{grid-template-columns:96px 134px;gap:7px}.view-detail .reservation-dock-actions button{min-height:46px;font-size:12.5px}
.view-detail .detail-memo-quick{width:100%;margin-left:0} /* 행동 줄과 같은 폭 — 오른쪽 360px 고정은 줄이 어긋나 보였음 */
.view-detail .detail-memo-row{width:100%;margin-left:0}
.view-detail .detail-memo-row .detail-memo-quick{width:auto;flex:1;margin-left:0}
.view-detail .detail-keq-entry{min-height:94px;padding:14px 15px;grid-template-columns:50px minmax(0,1fr) auto;gap:13px}.view-detail .detail-keq-icon{width:50px;height:50px}.view-detail .detail-keq-copy b{font-size:16px}.view-detail .detail-keq-copy em{font-size:11px}.view-detail .detail-keq-go{min-height:38px;padding-left:11px;padding-right:9px}
.view-detail .admin-comment-card{grid-template-columns:42px minmax(0,1fr);gap:14px;padding:16px}.view-detail .admin-comment-mark{width:42px;height:42px}.view-detail .admin-comment-copy p{font-size:13px}
.view-detail .synopsis{padding:22px 24px 16px}.view-detail .syn-body{max-width:680px;font-size:15px}.view-detail .syn-bg{height:240px} /* 넓은 칸에서 한 줄이 너무 길지 않게 */
.view-detail .sensegrid{max-width:440px;gap:14px}
.view-detail .sensegrid.count-4{grid-template-columns:repeat(4,minmax(0,1fr));max-width:440px}
.view-detail .sensegrid.count-5{grid-template-columns:repeat(5,minmax(0,1fr));max-width:560px}.view-detail .sensegrid.count-5>.senseorb{grid-column:auto}
.view-detail .sensering{width:min(100%,116px)}
/* 장치:자물쇠 캡슐 — 텍스트는 모바일 포함 상시 노출(styles.css), 여기선 폭만 */
.view-detail .dlrcap{max-width:440px}
.view-detail .mx-dials{max-width:420px;gap:14px}.view-detail .mx-dials.count-4{grid-template-columns:repeat(4,minmax(0,1fr));max-width:480px;gap:12px}
.view-detail .mx-dials.count-5{grid-template-columns:repeat(5,minmax(0,1fr));max-width:580px;gap:12px}.view-detail .mx-dials.count-5>.mxdial{grid-column:auto}
.mxradar.compact{max-width:190px} /* 리뷰 카드 작은 오각형 — 체감 지표와 무게를 맞추게 줄인다 */
.mxradar.compact .mx-lab{font-size:14px;font-weight:600}.mxradar.compact .mx-ls{font-size:10.5px} /* 190px 판에서 실제 약 11px — 판을 줄인 만큼 단위 크기를 올려 유지 */
/* 리뷰 카드 체감 지표 — 넓은 칸에서 다이얼·가로 장치:자물쇠 줄을 키운다(좁은 칸은 칸 폭이 먼저 제한) */
.mxdial.compact svg{max-width:80px}
.mx-ck,.mx-cb{font-size:11px}
.mx-rvgrid{gap:10px 6px}
.mxhdlr{gap:8px;max-width:280px}.mxhdlr .n svg{width:14px;height:14px}.mxhdlr .n b{font-size:18px}
.mxhdlr .mxdlr-bar{height:7px}
.view-detail .mxdlr{max-width:420px}.view-detail .mxradar:not(.compact){max-width:320px} /* 리뷰 카드 판(compact)은 위 제한을 따른다 */

/* ============================== 기록 (RECORDS / 친구기록) ============================== */
.view-records,.view-frecords{--dcol:1100px}
#recBody,#frBody{display:grid;grid-template-columns:repeat(auto-fill,minmax(480px,1fr));gap:10px 14px;padding:8px 0 28px}
#recBody>.recrow,#frBody>.recrow{border:1px solid var(--hairline);border-radius:12px;padding:12px 16px;
  background:linear-gradient(165deg,var(--surface),rgba(16,19,23,.3))}
#recBody>.recrow:hover,#frBody>.recrow.hasmain:hover{border-color:var(--accentDim);
  box-shadow:0 0 0 1px rgba(63,224,208,.12),0 12px 30px rgba(0,0,0,.32)}
#recBody>.empty,#frBody>.empty,#recBody>.kh-spin,#frBody>.kh-spin{grid-column:1/-1}
#recBody .ropen,#frBody .ropen{display:flex;align-items:center}
/* 'RESERVATION / OPEN' 2줄 이yebrow 라벨 — 모노 소문자 트래킹 + 우측 신호색 구분선으로 날짜·시각과 분리 */
#recBody .ropen .ro-k,#frBody .ropen .ro-k{display:flex;flex-direction:column;justify-content:center;gap:1px;opacity:1;
  line-height:1;margin-right:1px;padding-right:9px;white-space:nowrap;
  border-right:1px solid color-mix(in srgb,currentColor 34%,transparent)}
#recBody .ropen .ro-k i,#frBody .ropen .ro-k i{font-style:normal;font-family:var(--fe);font-weight:900;
  font-size:8px;line-height:1.12;letter-spacing:.2em;color:currentColor}
#recBody .ropen .ro-k i:first-child,#frBody .ropen .ro-k i:first-child{opacity:.58}
#recBody .ropen .ro-k i:last-child,#frBody .ropen .ro-k i:last-child{opacity:.95}
#recBody .ropen .ro-msg,#frBody .ropen .ro-msg{display:inline;max-width:160px}
.view-detail .bookopen.live{display:flex;gap:9px;padding-right:11px}
.view-detail .bookopen.live .bo-copy b{gap:6px}
.view-detail .bookopen.live em{display:inline}
/* 달력 — 스테이지를 보드처럼 프레이밍, 셀 여유 확대 */
.calhud{width:min(100% - 72px,var(--dcol));margin-left:auto;margin-right:auto;border-bottom:none;padding-top:8px}
.cal-month-sheet{width:min(460px,92vw)}
.cal-scroll .cal-stage{max-width:min(100% - 72px,var(--dcol));margin:6px auto 32px;
  border:1px solid var(--border);border-radius:16px;min-height:0;
  padding:18px 18px 30px;box-shadow:0 26px 70px rgba(0,0,0,.45)}
/* 화면용 데스크탑 달력 규칙은 .cal-scroll 스코프 — 내보내기 샌드박스(.cal-export, 오프스크린)에
   새어 들어가지 않게 격리. 내보내기 스타일은 styles.css 의 .cal-export 블록(기기 공통)이 담당. */
.cal-scroll .cal-stage.layout-grid .dow{padding:9px 0;font-size:10.5px}
.cal-scroll .cal-stage .calflex{margin-top:16px;padding:12px 14px 4px} /* 날짜 미정 칸 — 넓은 그리드 아래라 포스터를 조금 크게 */
.cal-scroll .cal-stage .calflex .cf-items{grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:12px 10px}
.cal-scroll .cal-stage .calflex .cf-t{font-size:12px}
.cal-scroll .cal-stage.layout-grid .cell{min-height:116px;padding:7px 7px 8px}
.cal-scroll .cal-stage.layout-grid .daynum{font-size:13.5px;margin-bottom:6px}
.cal-scroll .cal-stage.layout-grid .fleck .ph{font-size:11px}
.cal-scroll .cal-stage.layout-grid .flecks{gap:4px}
.cal-scroll .cal-stage.layout-grid .more{font-size:9.5px;padding:2px 6px}
.cal-scroll .cal-stage.layout-grid[data-density=compact] .cell{min-height:84px;padding:4px}
.cal-scroll .cal-stage.layout-grid[data-density=compact] .flecks{gap:2px}
/* 조밀 + 하루 5~8개(.many.cN) — 데스크탑은 자르지 않고 전부 표시: 2열 그리드에서 앞 (8-N)개는
   정상 타일(두 줄 스팬, 3/4), 넘치는 2(N-4)개만 반높이(3/2)로 쪼개 한 칸 자리에 두 개씩 —
   총높이는 2×2 정상 배치와 동일. 9개부턴 JS가 .many 를 붙이지 않아 기존 4개+더보기.
   모바일 4개 컷은 styles.css, PNG 동일 규칙은 .cal-export 블록 */
.cal-scroll .cal-stage.mobile.layout-grid[data-density=compact] .flecks.many .fleck{display:flex;grid-row:span 2}
.cal-scroll .cal-stage.mobile.layout-grid[data-density=compact] .flecks.many.c5 .fleck:nth-child(n+4),
.cal-scroll .cal-stage.mobile.layout-grid[data-density=compact] .flecks.many.c6 .fleck:nth-child(n+3),
.cal-scroll .cal-stage.mobile.layout-grid[data-density=compact] .flecks.many.c7 .fleck:nth-child(n+2),
.cal-scroll .cal-stage.mobile.layout-grid[data-density=compact] .flecks.many.c8 .fleck{grid-row:span 1;aspect-ratio:3/2}
.cal-scroll .cal-stage.mobile.layout-grid[data-density=compact] .flecks.many .more{display:none}
/* 몇 번째 기록 순번 칩(#N) — 그리드는 데스크탑 한정 노출(모바일 극소 타일 제외; styles.css 기본 숨김).
   prate(좌하단)와 겹치지 않게 좌상단 미러 — PNG 쪽 동일 기하는 styles.css .cal-export 블록 */
.cal-scroll .cal-stage.layout-grid .fleck .pseq{display:inline-flex;bottom:auto;top:0;border-top:none;border-bottom:1px solid color-mix(in srgb,var(--caccent) 78%,transparent);clip-path:polygon(0 0,100% 0,calc(100% - 6px) 100%,0 100%)}
.cal-scroll .cal-stage.layout-grid[data-density=compact] .fleck .pseq{font-size:8px;padding:2px 6px 2px 3px}
/* 평점 옆 등급 아이콘 — 데스크탑 노출: 칩·서브라인 모두 아이콘+점수(★ 숨김). PNG 동일 기하는 styles.css .cal-export 블록 */
.cal-scroll .cal-stage .prate{align-items:center;gap:3px}
.cal-scroll .cal-stage .prate svg{display:block;width:11px;height:11px}
.cal-scroll .cal-stage .prate i{display:none}
.cal-scroll .cal-stage.layout-grid[data-density=compact] .fleck .prate svg{width:10px;height:10px}
.cal-scroll .cal-stage.mobile.layout-wall .prate svg{width:12px;height:12px}
.cal-scroll .cal-stage.mobile.layout-wall .prate+.pseq{top:42px}
.cal-scroll .cal-stage .subrate svg{display:inline-block;width:12px;height:12px;vertical-align:-2.5px;margin-right:2px}
.cal-scroll .cal-stage .subrate i{display:none}
/* 데스크탑 셀은 넓어서 1개짜리 날의 풀폭 포스터가 과대 — 절반 폭으로 (모바일 쇼케이스 규칙 완화) */
.cal-scroll .cal-stage.layout-grid .flecks.n1{grid-template-columns:1fr 1fr}
.cal-scroll .cal-stage.layout-grid .flecks.n2{aspect-ratio:auto}
.cal-scroll .cal-stage.layout-grid .flecks.n2 .fleck{aspect-ratio:3/4}
/* 표시 항목 1~4개인 포스터 월은 카드가 스테이지 전체 폭으로 과대 확대되지 않게 가운데 모은다. */
.cal-scroll .cal-stage.layout-wall.is-sparse .wall{grid-template-columns:repeat(auto-fit,minmax(126px,180px));justify-content:center;align-content:start}
.cal-scroll .cal-stage.layout-wall.is-sparse[data-density=compact] .wall{grid-template-columns:repeat(auto-fit,minmax(80px,132px))}
/* 아카이브 — 데스크탑: 여유 5열·조밀 7열, PNG 원본 규격(프레임·섀도·타이포 확대). 컬러는 --arch* 변수(다크 자동)
   기록 리스트의 아카이브 스테이지는 공통 컬럼(--dcol 1100)보다 넓게 — PNG 셀 크기(~270px)를 재현 */
.scroll>#recBody:has(.rec-arch),.scroll>#frBody:has(.rec-arch){width:min(100% - 72px,1480px);display:block;padding:8px 0 28px} /* 기록 카드 2열 그리드 해제 — 아카이브 스테이지는 단일 풀폭 */
.cal-stage.mobile.layout-archive{padding:26px 24px 48px}
.cal-stage.mobile.layout-archive .arch{grid-template-columns:repeat(5,minmax(0,1fr));gap:28px 20px}
.cal-stage.mobile.layout-archive[data-density=compact] .arch{grid-template-columns:repeat(7,minmax(0,1fr));gap:21px 15px}
.cal-stage.mobile.layout-archive .apo .thumb{border-width:4px;box-shadow:5px 5px 0 var(--archSh),7px 10px 16px color-mix(in srgb,var(--archSh) 24%,transparent)}
.cal-stage.mobile.layout-archive .apo .thumb.plan,.cal-stage.mobile.layout-archive .apo .thumb.revisit{box-shadow:5px 5px 0 var(--archSh),7px 10px 16px color-mix(in srgb,var(--archSh) 24%,transparent)}
.cal-stage.mobile.layout-archive .apo .thumb.plan{box-shadow:5px 5px 0 var(--archShPlan),7px 10px 16px color-mix(in srgb,var(--archShPlan) 24%,transparent)}
.cal-stage.mobile.layout-archive .acell.life .thumb{box-shadow:5px 5px 0 #6b4d0d,7px 10px 16px color-mix(in srgb,#8a6410 26%,transparent),0 0 16px rgba(232,184,75,.35)}
.cal-stage.mobile.layout-archive .anum{font-size:17px;padding:4px 7px 3px;top:-11px;left:-9px;box-shadow:2.5px 2.5px 0 var(--archRed)}
.cal-stage.mobile.layout-archive .acell.plan .anum{box-shadow:2.5px 2.5px 0 var(--archBlue)}
.cal-stage.mobile.layout-archive .acell.life .anum{box-shadow:2.5px 2.5px 0 #0B0B0D}
.cal-stage.mobile.layout-archive .alife{font-size:11.5px;padding:3px 7px 4px;top:-10px;right:-7px}
.cal-stage.mobile.layout-archive .acap{padding-top:10px;gap:2.5px}
.cal-stage.mobile.layout-archive .at{font-size:14.5px}
.cal-stage.mobile.layout-archive[data-density=compact] .at{font-size:12.5px}
:is(html[data-recfont]:not([data-recfont=bhs]),html:not([data-recfont]):not([data-skin=classic])) .cal-stage.mobile.layout-archive.rec-arch[data-density=compact] .at{font-size:13.5px} /* 굵게가 아닌 기록 테마명 글꼴은 조밀에서 1px 크게 */
.cal-stage.mobile.layout-archive .ast{font-size:10px}
.cal-stage.mobile.layout-archive .arate{gap:4.5px;margin-top:4px}
.cal-stage.mobile.layout-archive .arate b{font-size:16px}
.cal-stage.mobile.layout-archive .arate svg{width:14px;height:14px}
.cal-stage.mobile.layout-archive .appl svg{width:8px;height:11px}
.cal-stage.mobile.layout-archive .appl b{font-size:10.5px}
.cal-stage.mobile.layout-archive .atkt .atd,.cal-stage.mobile.layout-archive .atkt .ats{font-size:13.5px}
.cal-stage.mobile.layout-archive .atkt .atw{font-size:10px}
.cal-stage.mobile.layout-archive .atkt .atarr{display:inline-flex}
.cal-stage.mobile.layout-archive .atkt .ats.end{display:inline}
.cal-stage.mobile.layout-archive .atkt .atarr svg{width:8px;height:8px}
.cal-stage.mobile.layout-archive .atkt .ats.end{font-size:12px}
.cal-stage.mobile.layout-archive .aopen{font-size:10.5px}
.cal-stage.mobile.layout-archive .afail{border-width:3px;padding:3px 10px 5px}
.cal-stage.mobile.layout-archive .afail b{font-size:16px}
.cal-stage.mobile.layout-archive[data-density=compact] .afail b{font-size:13px}
/* 뱃지 — 데스크탑도 밀도(포스터 크기)에 비례해 축소 */
.cal-stage.mobile.layout-archive .cbadges{left:7px;bottom:9px;gap:4px}
.cal-stage.mobile.layout-archive .cbadges .leftbadge i{font-size:10px;padding:3.5px 7px}
.cal-stage.mobile.layout-archive .cbadges .leftbadge b{font-size:13px;padding:3.5px 8px}
.cal-stage.mobile.layout-archive[data-density=compact] .cbadges{left:5px;bottom:6px;gap:3px}
.cal-stage.mobile.layout-archive[data-density=compact] .cbadges .leftbadge i{font-size:8.5px;padding:3px 5.5px}
.cal-stage.mobile.layout-archive[data-density=compact] .cbadges .leftbadge b{font-size:11px;padding:3px 6.5px}
/* 소수 항목은 가운데 정렬(포스터월과 같은 완화) */
.cal-stage.mobile.layout-archive.is-sparse .arch{grid-template-columns:repeat(auto-fit,minmax(130px,172px));justify-content:center;align-content:start}
/* 진입 성능 — 거대한 뷰 전체 transform은 빼고 첫 두 행만 개별 합성한다. 나머지는 스크롤 시 정적으로 표시. */
.view-enter.view-records:has(#recBody .rec-arch){animation:none}
.view-enter #recBody .rec-arch .acell{animation:none}
.view-enter #recBody .rec-arch:not([data-density=compact]) .acell:nth-child(-n+10),.view-enter #recBody .rec-arch[data-density=compact] .acell:nth-child(-n+14){animation:rowInX .34s cubic-bezier(.2,.9,.3,1) both;will-change:transform,opacity;backface-visibility:hidden}
@media(prefers-reduced-motion:reduce){.view-enter #recBody .rec-arch .acell:nth-child(-n+14){animation:none;will-change:auto}}
/* 리스트 탭 월별 보기 — 기록 카드 2열 그리드 대신 날짜 묶음을 2단으로 흘려 넓은 화면을 쓴다(묶음은 단 사이에서 쪼개지 않음) */
.cal-stage.mobile.layout-month{padding:24px 26px 40px}
.cal-stage.mobile.layout-month .mdays{columns:2 380px;column-gap:32px}
.cal-stage.mobile.layout-month .mday,.cal-stage.mobile.layout-month .mday:last-child{break-inside:avoid;padding-bottom:26px}
.cal-stage.mobile.layout-month .mpo .thumb{width:58px}
.cal-stage.mobile.layout-month .mt{font-size:16px}
/* 리스트 탭 전체 보기 — 날짜 묶음이 없으니 카드를 2열 그리드로(옛 기록 카드 그리드와 같은 흐름) */
.cal-stage.mobile.layout-month.rec-all{padding:24px 26px 40px}
.rec-all .rcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(440px,1fr));gap:16px 24px}
.rec-all .rdate{width:54px}.rec-all .rdate .rd{font-size:30px}
.cal-empty{padding-top:80px}

/* ============================== 친구 / 채팅 목록 · 소셜 허브 ============================== */
.view-friends{--dcol:840px}
.view-friends .urow{min-height:72px;border-radius:10px}
.view-friends .chatprev{max-width:100%}
.view-friends .notifbar.mbanner{width:min(100% - 72px,var(--dcol));margin-left:auto;margin-right:auto} /* 무광 배너(button.mbanner 100% 폭)도 공통 컬럼에 맞춘다 */
/* 소셜 — 모바일과 같은 친구·채팅·모임 메뉴를 유지하고 준비 화면만 가독 폭 제한 */
.shub-stage{margin:64px auto;max-width:460px}
/* 소셜 머리 유리 캡슐 — 기록 탭 머리(.record-head-actions)와 같은 크기 */
.soc-acts .rha{height:36px;padding:0 15px;font-size:12.5px}.soc-acts .rha.rha-ic{padding:0 12px}
/* 모임 — 카드 2열 그리드, 일정 카드는 응답 세그먼트를 우측에 */
.group-invite-heading{margin-left:2px;margin-right:2px}.group-invite-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:11px;margin:6px 0 8px}.group-invite-card{height:100%;padding:15px 16px}
.glist{display:grid;grid-template-columns:1fr 1fr;gap:11px}
.grp-event{flex-direction:row;align-items:center}
.grp-event .grp-event-main{flex:1;min-width:0}
.grp-event .rsvpseg,.grp-event .kseg{flex:0 0 auto;width:264px}
.grp-event{flex-wrap:wrap}.grp-event .event-seat-mine{order:3;flex:0 0 100%;max-width:none}.cmu-row.event{grid-template-columns:56px minmax(0,1fr);gap:20px;padding:22px 24px}.cmu-row.event .cmu-event-mark{width:56px;min-height:68px}.cmu-row.event .cmu-row-head b{font-size:17px}.cmu-event-detail{width:min(100% - 72px,var(--dcol));margin-left:auto;margin-right:auto}
.grp-progress-sheet{width:min(680px,calc(100vw - 48px))}.grp-progress-sheet .sh-body{padding-left:24px;padding-right:24px}.grp-progress-grid{gap:12px}.grp-progress-col li{min-height:48px}.grp-progress-col li b{font-size:12px}
.join-builder-sheet,.join-answer-sheet,.join-review-sheet{width:min(680px,calc(100vw - 48px))}.join-builder-sheet .sh-body,.join-answer-sheet .sh-body,.join-review-sheet .sh-body{padding-left:24px;padding-right:24px}.join-survey-list{display:grid;grid-template-columns:1fr 1fr;align-items:start}.join-survey-card{min-width:0}.join-answer-options:not(.multi){grid-template-columns:1fr 1fr}
/* max-content 요소가 공통 컬럼 규칙(.scroll>*)에 전폭으로 늘어나는 것 방지 */
.cmu-theme-chip.linked{width:max-content}
.mini-empty{max-width:520px}
/* U20-A: 채팅 — 목록+상세 2열. .chatside 는 데스크탑 전용 마크업(모바일 가드 목록에 등록) */
.chat-room-menu{display:grid;place-items:center}
.view-chat{position:relative;padding-left:320px}
.view-chat .chatside{display:flex;flex-direction:column;position:absolute;left:0;top:0;bottom:0;width:320px;overflow-y:auto;border-right:1px solid var(--border);background:var(--bg)}
.view-chat .chatside-cap{padding:18px 18px 8px;font-size:17px;font-weight:900;letter-spacing:-.02em}
.view-chat .chatside .urow{min-height:64px}
.view-chat .chatside .urow.current{background:var(--glass-bg);box-shadow:inset 3px 0 0 var(--p5)} /* 지금 연 방 */
.view-chat .chatside .empty{padding:28px 14px}
/* 채팅 상단 카드류 — 본문 컬럼과 같은 축으로 중앙 정렬 */
.view-chat .s-nextline,.view-chat .invite-vote-card,.view-chat .pinbar,.view-chat .chat-connection-strip{width:min(100% - 72px,760px);margin-left:auto;margin-right:auto}
/* 커뮤니티·뉴스 — 모바일과 같은 단일 편집면, 데스크탑은 가독 폭과 높이만 확장.
   컬럼 폭은 앱바·탭과 같은 --dcol 로 통일한다(예전 820px 은 앱바보다 10px 좁아 어긋나 보였다). */
.cmu-compose-chrome{width:min(100% - 72px,var(--dcol));margin-left:auto;margin-right:auto;padding-left:0;padding-right:0;background:transparent}
.cmu-toolbar{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(44px,1fr)} /* 도구 수(9~11)와 무관하게 한 줄 */
.cmu-composer{max-width:none}
.cmu-composer>*{max-width:var(--dcol)}
.cmu-editor{min-height:460px}
/* 본문·작성 시각은 읽기 좋은 720px 을 유지하되 컬럼 가운데가 아니라 왼쪽에 붙인다 —
   가운데 정렬이면 태그 칩·추천 행·댓글(컬럼 폭)보다 안쪽에서 시작해 글만 밀려 보인다.
   공통 컬럼 규칙(.scroll>*)이 margin:auto 를 걸므로 같은 스코프로 덮어야 한다. */
.scroll:not(.chatlog):not(.cal-scroll)>.cmu-doc,
.scroll:not(.chatlog):not(.cal-scroll)>.cmu-post-time{
  margin-left:calc((100% - min(100% - 72px,var(--dcol)))/2);margin-right:auto}
.cmu-doc{max-width:720px}
.cmu-post-time{max-width:720px}
/* 상태 딱지는 .cmu-bands 줄 안의 내용 폭 요소라 별도 규칙이 필요 없다
   (예전엔 각 딱지가 .scroll 직계 자식이라 공통 컬럼 규칙에 한 줄을 꽉 채웠다). */
.cmu-compose{padding-left:max(28px,calc((100% - var(--dcol))/2));padding-right:max(28px,calc((100% - var(--dcol))/2))}
.cmu-search{width:min(100% - 72px,var(--dcol));margin-left:auto;margin-right:auto;padding:12px 0;background:transparent}
.cmu-search-dates{grid-template-columns:max-content minmax(0,220px) minmax(0,220px);align-items:end}.cmu-search-dates .cmu-search-only{grid-column:auto;min-height:40px;margin-right:12px}
.cmu-schedule-search{padding-top:16px;padding-bottom:12px}.cmu-schedule-search .cmu-search-dates{grid-template-columns:auto minmax(0,1fr) minmax(0,1fr);align-items:end;gap:16px}.cmu-schedule-search .cmu-search-dates .cmu-search-only{grid-column:auto;min-height:44px}.cmu-event-detail{padding:24px;gap:20px}.cmu-event-detail .cmu-event-facts{gap:8px;font-size:13px}.cmu-event-detail .cmu-event-facts b{font-size:13px}

.cmu-category-filter{width:min(100% - 72px,var(--dcol));margin-left:auto;margin-right:auto;padding-left:0;padding-right:0;background:transparent}
/* '이전 소식 더 보기'는 글자 폭만 — 컬럼 폭(840)으로 늘어나면 목록 하단이 거대한 띠처럼 보인다 */
.scroll:not(.chatlog):not(.cal-scroll)>.cmu-more{width:max-content;padding-left:22px;padding-right:22px}
.cmu-category-sheet{width:min(720px,calc(100vw - 48px))}.cmu-category-sheet .cmu-template-editor-view .cmu-toolbar{grid-template-columns:repeat(9,minmax(44px,1fr))}.cmu-category-sheet .cmu-template-editor-view .cmu-editor{min-height:360px}
.manual-manager-sheet{width:min(560px,calc(100vw - 48px))}
.manual-link-sheet{width:min(520px,calc(100vw - 48px))}
.flexplan-sheet{width:min(480px,calc(100vw - 48px))} /* 날짜 미정 일정 수정 확인 [fb:c33d599f] */
.pg-manager-sheet{width:min(560px,calc(100vw - 48px))}
.pg-detail-sheet{width:min(600px,calc(100vw - 48px))}
.pg-edit-sheet{width:min(520px,calc(100vw - 48px))}
.plan-companions-sheet{width:min(560px,calc(100vw - 48px))}
.comp-drop{max-height:min(430px,55vh)}.comp-quick-fields{grid-template-columns:minmax(0,.9fr) minmax(0,1.35fr)}
.comp-theme-sheet{width:min(620px,calc(100vw - 48px));height:min(780px,88vh)}
.comp-theme-sheet .sh-body{padding-left:24px;padding-right:24px}
.comp-theme-row.recrow{min-height:88px;margin-bottom:8px;padding:12px 14px;border:1px solid var(--hairline);border-radius:12px;background:linear-gradient(165deg,var(--surface),rgba(16,19,23,.3))}.comp-theme-row.recrow:first-child{border-top:1px solid var(--hairline)}.comp-theme-row.recrow:hover{border-color:var(--accentDim);box-shadow:0 0 0 1px rgba(63,224,208,.10),0 10px 24px rgba(0,0,0,.25)}.comp-theme-row.recrow.on{background:linear-gradient(165deg,color-mix(in srgb,var(--accent) 8%,var(--surface)),rgba(16,19,23,.3))}

/* ============================== 채팅방 ============================== */
.view-chat{--dcol:960px}
.view-chat .appbar{padding-top:18px}
.chatlog{padding-left:max(28px,calc((100% - var(--dcol))/2));padding-right:max(28px,calc((100% - var(--dcol))/2))}
.msg .mb{max-width:56%}
.chatbar{border-top:none;padding-top:6px;padding-bottom:22px}
.chatbar::before{left:0;width:84px}
.view-chat .editbar{border-radius:8px 8px 0 0}

/* ============================== 나 (PROFILE) ============================== */
.view-me{--dcol:900px}
.me-acts .rha{height:36px;padding:0 15px;font-size:12.5px}.me-acts .rha.rha-ic{padding:0 12px} /* 프로필 머리 캡슐 — 기록·소셜 머리와 같은 크기 */
.view-me .scroll>div{padding-left:0!important;padding-right:0!important} /* 인라인 18px 사이드 패딩 해제 — 컬럼 폭으로 정렬 */
.view-me .scroll>.async-stale{padding-left:13px!important;padding-right:11px!important}
.view-me .statgrid{grid-template-columns:repeat(4,1fr);gap:12px;padding-top:6px}
.view-me .scroll>div:first-child{padding-top:12px!important}
.view-me .exreg-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
/* 평점 등급 블레이드 (fb:dfe5aa4f) — 900px 컬럼에선 여유 있게 */
.view-me .legend{gap:10px}
.view-me .legend .lg{padding:12px 4px 10px;gap:5px}
.view-me .legend .lg-n{font-size:12.5px}
.view-me .legend .lg-r{font-size:11px}
/* 장르 분포 도넛 — 900px 컬럼에선 도넛을 키우고 범례에 숨 쉴 틈 */
.view-me .gd-wrap{gap:14px 34px;padding:4px 8px 2px}
.view-me .gd-fig{width:200px;height:200px}
.view-me .gdc-v{font-size:32px}
.view-me .gdc-k{font-size:10px}
.view-me .gd-leg{padding-right:10px;gap:9px}
.view-me .gd-pick{padding:7px 0 7px 10px;gap:11px}
.view-me .gd-leg .n{font-size:13.5px}
.view-me .gd-leg b{font-size:12.5px}
.view-me .gd-leg .c{font-size:11px}
.view-me .gd-open{height:28px;padding:0 8px 0 12px;font-size:11px}
.view-me .grad-profile{gap:42px;padding:8px 24px}
.view-me .grad-profile .grad-ring{width:164px;height:164px}
.view-me .grad-profile-copy{flex:0 1 320px}
.view-me .grad-profile-copy>b{font-size:26px}
.view-me .grad-profile-copy>small{max-width:none;font-size:12px}
.view-me .gpc-body{gap:44px;padding:6px 24px 4px}
.view-me .grad-card .grad-ring{width:156px;height:156px}.view-me .grad-card .grad-ring>b{font-size:30px}
.view-me .gpc-stats{flex:0 1 320px}.view-me .gpc-main em{font-size:40px}.view-me .gpc-main i{font-size:15px}
.view-me .statcard.plan-strip{padding-top:14px;padding-bottom:14px}

/* ============================== 설정 ============================== */
.view-settings{--dcol:760px}
.view-settings .settings-scroll{padding-top:4px}

/* ============================== 유용한 기능 / 연방 짜기 / 구인 PNG ============================== */
.view-tools{--dcol:900px}.view-federation{--dcol:1120px}.view-cancellation{--dcol:900px}.view-recruit{--dcol:1180px}.view-series{--dcol:1180px}
.view-me .util-chip{display:none}.view-me .util-chip+.rha{border-left:0} /* 레일에 유용한 기능이 있으니 캡슐은 피드백 | 설정 — 첫 칸 앞 구분선 제거 */
.view-tools>.subview-appbar>.iconbtn:first-child{display:none}
.view-series>.subview-appbar>.iconbtn:first-child{display:none}
.view-tools .tools-scroll,.view-federation .federation-scroll,.view-cancellation .cancel-scroll,.view-recruit .recruit-scroll,.view-series .series-scroll{padding-left:0;padding-right:0}
.view-tools .tools-scroll{padding-top:14px}.view-tools .tools-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.view-tools .tool-card{min-height:92px;padding:16px 16px 16px 18px}
.theme-add-sheet{width:min(620px,92vw)}
.view-series .series-intro{min-height:184px;padding-top:38px}.view-series .series-intro h1 br{display:none}.view-series .series-workspace{display:grid;grid-template-columns:310px minmax(0,1fr);align-items:start;gap:14px}.view-series .series-workspace .series-list-pane,.view-series .series-workspace.editing .series-list-pane,.view-series .series-workspace .series-editor-pane,.view-series .series-workspace.editing .series-editor-pane{display:block}.view-series .series-list-pane{position:sticky;top:18px}.view-series .series-editor-pane{min-height:560px}.view-series .series-mobile-list{display:none}.view-series .series-editor-head{min-height:82px;padding-left:18px}.view-series .series-editor-scroll{padding:18px}.view-series .series-name-field{max-width:620px}.view-series .series-add-panel{max-width:760px}.view-series .series-order-panel{margin-top:18px}.view-series .series-order-flow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:10px}.view-series .series-editor-step.unordered{margin-top:10px}.view-series .series-savebar{grid-template-columns:auto 280px;justify-content:end}.view-series .series-search-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.view-series .series-search-state{grid-column:1/-1}
.view-detail .series-theme-list,.view-detail .series-step-themes,.view-detail .series-unordered>div:last-child{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.view-detail .series-flow-step{grid-template-columns:30px minmax(0,1fr)}
.view-cancellation .cancel-scroll{padding-top:14px}.view-cancellation .cancel-alert-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.cancel-add-sheet{width:min(860px,92vw)}.cancel-add-sheet .cancel-theme-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-height:520px}.cancel-add-sheet .avg-wrap{max-height:min(56vh,520px)}.cancel-add-sheet .cancel-add-summary{grid-column:1/-1}
.keq-sheet{width:min(720px,92vw)}.keq-sheet .cancel-time-chips{grid-template-columns:repeat(4,1fr)}.keq-sheet .keq-date-grid{grid-template-columns:repeat(7,minmax(0,1fr))}
.view-recruit .recruit-intro{padding-top:38px}.view-recruit .recruit-intro h2 br{display:none}.view-recruit .recruit-builder{grid-template-columns:minmax(0,1fr) 440px;align-items:start;gap:22px}.view-recruit .recruit-style-picker{grid-template-columns:repeat(4,minmax(0,1fr))}.view-recruit .recruit-base-grid{grid-template-columns:1fr 1fr}.view-recruit .recruit-preview-panel{position:sticky;top:24px}.view-recruit .recruit-session-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.view-recruit .recruit-session-grid label.wide{grid-column:span 2}.view-recruit .recruit-session-grid label:first-child{grid-column:1/3}.view-recruit .recruit-session-grid label:nth-child(2){grid-column:3/5}.view-recruit .recruit-session-grid label:last-child{grid-column:1/-1}
.view-federation .fed-tabs{width:min(100% - 72px,520px);margin-left:auto;margin-right:auto}
.view-federation .fed-stage{padding-top:22px}
.view-federation .fed-theme-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.view-federation .fed-theme-list .fed-empty-mini,.view-federation .fed-theme-list .kh-spin{grid-column:1/-1}
.view-federation .fed-search{max-width:620px}
.view-federation .fed-stage.candidates{max-width:980px;margin:0 auto}.view-federation .fed-candidate-intro h2 br{display:none}.view-federation .fed-stage.candidates .fed-selected-list{flex-wrap:wrap;overflow:visible}.view-federation .fed-pick-tools{grid-template-columns:340px minmax(0,1fr);align-items:start}.view-federation .fed-source-card{min-height:132px}.view-federation .fed-catalog-panel{min-height:132px}.fed-wishlist-sheet{width:min(760px,92vw)}.fed-wish-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.view-federation .fed-stage.conditions{max-width:860px;margin:0 auto}
.view-federation .fed-condition-grid{grid-template-columns:repeat(4,1fr)}
.view-federation .fed-condition.wide{grid-column:span 2}
.view-federation .fed-basics .fed-condition-grid{grid-template-columns:1.25fr 1.25fr 1fr 1fr}
.view-federation .fed-basics .fed-date-control,.view-federation .fed-basics .fed-hours,.view-federation .fed-basics .fed-count-control{grid-column:span 2}
.view-federation .fed-buffer-presets.segctl{flex-wrap:nowrap;border-radius:999px}.view-federation .fed-buffer-presets.segctl>*{flex:1 1 0}
.view-federation .fed-stage.results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.view-federation .fed-result-head,.view-federation .fed-excluded{grid-column:1/-1}
.view-federation .fed-result-card{margin:0}
.view-federation .fed-dock{display:flex;justify-content:center;padding-bottom:18px}.view-federation .fed-dock .btn{max-width:560px}

/* ============================== 일괄 입력 (IMPORT) ============================== */
.view-import{--dcol:900px}
.import-edit-sheet{width:min(720px,92vw)}.import-edit-sheet .sh-body{padding-left:24px;padding-right:24px}.import-theme-candidates>div{grid-template-columns:repeat(2,minmax(0,1fr))}.import-resolution{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.import-resolution>legend,.import-resolution>p{grid-column:1/-1}.import-resolution-choice+.import-resolution-choice{margin-top:0}
.view-storesearch{--dcol:900px}
.view-storesearch .store-filterbar{padding-left:4px;padding-right:4px}.view-storesearch .store-regionpick{min-width:190px}
.view-import textarea.input{min-height:280px}

/* ============================== 인증 (AUTH) ==============================
   좌: 브랜드 히어로(키홀·타이프라이터) / 우: 로그인·가입 카드 스플릿. */
.view-auth .auth{display:grid;justify-content:center;align-content:safe center;
  grid-template-columns:minmax(380px,520px) 470px;grid-template-rows:auto auto;
  column-gap:72px;padding:56px 64px;width:100%;overflow-y:auto}
.view-auth .top{grid-area:1/1/3/1;align-self:center;margin:0} /* 시스템 메시지 제거 후 브랜드 히어로를 폼 높이 기준 세로 가운데로 */
.view-auth .authtabs{grid-area:1/2;align-self:end;margin:0}
.view-auth .authcard{grid-area:2/2;margin:0;padding:24px 24px 22px}
.view-auth .auth.recovery .authcard{grid-area:1/2/3/3;align-self:center}
.view-auth .kicker.brand{font-size:14px}
.view-auth .auth .logomark svg{height:96px;width:auto;margin-left:-17px}
.view-auth .keyhole{left:24%;top:50%;transform:translate(-50%,-56%) scale(1.7);opacity:.45}
.view-auth .glow{left:24%;top:50%;transform:translate(-50%,-58%);width:560px;height:560px}
.view-auth .diag{background:linear-gradient(115deg,transparent 55%,rgba(22,28,34,.45) 55%)}
.view-auth .auth.legal-gate .authcard{grid-area:1/2/3/3;align-self:center;margin:0;padding:26px 24px 22px}
.view-auth .legal-gate-card{width:470px}
.view-auth .legal-sheet{width:min(760px,92vw)}

/* ============================== 라이트 모드 (데스크탑 보정) ==============================
   styles.css 라이트 토큰 위에서, 이 파일이 하드코딩한 다크 배경·그림자만 맞춰준다. */
html[data-theme=light] body{background-image:
  radial-gradient(1300px 820px at 10% -12%,#FAFCFE,transparent 62%),
  radial-gradient(1100px 760px at 106% 110%,rgba(228,3,43,.05),transparent 60%),
  radial-gradient(900px 620px at 92% -10%,rgba(11,156,143,.06),transparent 55%)}
html[data-theme=light] .frame{box-shadow:0 0 0 1px #D8DEE7}
html[data-theme=light] .tabbar{background:linear-gradient(180deg,rgba(252,253,254,.95),rgba(244,246,249,.9))}
html[data-theme=light] .tlist .trow{background:linear-gradient(165deg,var(--surface),rgba(240,243,247,.5))}
html[data-theme=light] .tlist .trow:hover{background:var(--surface);box-shadow:0 0 0 1px rgba(11,156,143,.16),0 14px 34px rgba(50,70,90,.16)}
html[data-theme=light] #recBody>.recrow,html[data-theme=light] #frBody>.recrow{background:linear-gradient(165deg,var(--surface),rgba(240,243,247,.45))}
html[data-theme=light] #recBody>.recrow:hover,html[data-theme=light] #frBody>.recrow.hasmain:hover{box-shadow:0 0 0 1px rgba(11,156,143,.14),0 12px 30px rgba(50,70,90,.14)}
html[data-theme=light] .view-detail .dhero .scrim{background:linear-gradient(180deg,rgba(242,244,248,.14) 0%,rgba(242,244,248,.05) 52%,rgba(242,244,248,.96) 100%)}
html[data-theme=light] .sheet{box-shadow:0 40px 120px rgba(40,55,75,.3),0 0 0 1px rgba(34,48,62,.05)}
html[data-theme=light] .cal-scroll .cal-stage{box-shadow:0 26px 70px rgba(50,70,95,.2)}
html[data-theme=light] .view-auth .diag{background:linear-gradient(115deg,transparent 55%,rgba(214,222,232,.5) 55%)}

/* 예약 가능 시간 — 데스크탑도 같은 DOM, 테마별 한 줄을 넓고 빠르게 훑는 레이아웃 */
.view-explore .avcontrols{display:grid;grid-template-columns:minmax(0,1fr);width:min(100% - 72px,820px);margin:0 auto;gap:0}.view-explore .avdates{width:100%;margin:12px 0 6px;padding:7px;gap:7px}.view-explore .avdate{flex-basis:calc((100% - 42px)/7);padding:8px 3px}.view-explore .avdate span{font-size:9px}.view-explore .avdate b{font-size:12px}.view-explore .avtools{width:100%;grid-template-columns:154px minmax(0,1fr) 150px;margin:7px 0 4px}.view-explore .avsort,.view-explore .avrange,.view-explore .avonly{min-height:52px}.view-explore .avmeta,.view-explore .avwarn,.view-explore .avstale,.view-explore .avsum,.view-explore .avlist{width:min(100% - 72px,900px);margin-left:auto;margin-right:auto}.view-explore .avlist{padding-left:0;padding-right:0;gap:9px}.view-explore .avrow{min-height:147px;grid-template-columns:72px minmax(0,1fr) 26px;padding:11px 15px;gap:16px;border-radius:8px;clip-path:none}.view-explore .avrow:hover{border-color:rgba(56,211,159,.52);transform:translateY(-1px);box-shadow:0 13px 30px rgba(0,0,0,.22)}.view-explore .avrow.no-slots:hover{border-color:var(--hairline)}.view-explore .avposter{width:72px;height:100px}.view-explore .trow .th .posterplan,.view-explore .avposter .posterplan{left:5px;right:5px;bottom:5px}.view-explore .avtitle{font-size:16px}.view-explore .avstore{font-size:10px}.view-explore .avintel{grid-template-columns:max-content max-content 154px;justify-content:start;gap:10px}.view-explore .avsenses{gap:10px}.view-explore .avslot{min-height:32px;padding:0 10px;font-size:11px}.view-explore .avslot.openroom{padding:0}.view-explore .avslot.openroom .avs-t,.view-explore .avslot.openroom .avs-n{padding:0 9px}.sortsheet{width:min(620px,92vw)}.avrange-sheet{width:min(600px,92vw)}.avrange-sheet .sh-body{padding:10px 24px 24px}.avweek-sheet{width:min(880px,92vw)}.avweek-sheet .sh-body{padding:10px 24px 22px}.avg-corner,.avg-time{width:62px;min-width:62px}.avg-day{min-width:52px}.avg-cell{height:32px;max-width:72px;font-size:12px}.view-detail .avweekbtn{max-width:360px}.avcadenceseg,.avspeed,.avcapacity,.avcadence .avloadwarn,.avcadence .avdaysscope{max-width:520px}
.view-explore .avtheme{grid-template-columns:72px minmax(0,1fr) 26px;gap:16px}.view-explore .avpickrow{grid-template-columns:72px minmax(0,1fr);gap:16px}.view-explore .avslots[role=group]{cursor:grab;user-select:none;-webkit-user-select:none}.view-explore .avslots[role=group].dragging{cursor:grabbing}.view-explore .avslot{min-height:32px;padding-left:12px;padding-right:12px}
.view-explore .avtoolbar{width:min(100% - 72px,820px);margin:7px auto 0;padding-left:0;padding-right:0}.view-explore .avregionpick{flex:0 1 auto;max-width:220px;height:38px;gap:7px;padding:0 10px 0 6px}.view-explore .avregionpick .avregionpin{width:17px;height:17px}.view-explore .avregionpick .avregionpin svg{width:17px;height:17px}.view-explore .avregionpick>b{font-size:14px}
/* 지역 선택 모달 — 시·도 9열 두 줄, 상권 알약은 넓게 흐르고 적용 버튼은 모달 바닥에 고정 */
.avregion-sheet{width:min(640px,92vw);height:min(520px,86vh)}.avregion-sheet .sh-body{padding:4px 26px 0}.avregion-grid{grid-template-columns:repeat(9,minmax(0,1fr))}.avregion-foot{margin-left:-26px;margin-right:-26px;padding-left:26px;padding-right:26px}
.view-explore .explore-region-toolbar{width:min(100% - 72px,820px);align-items:center;margin:7px auto 0;padding:8px 0 5px;gap:12px}.view-explore .explore-region-toolbar .filtrow{margin-left:auto;justify-content:flex-end}
/* 탐색 툴바 한 줄 통합 — [지역][테마 N개][필터들][정렬(맨 오른쪽)]. 결과 안 카운트라인은 툴바로 승격해 숨기고,
   폭이 모자라면 flex-wrap 으로 자연스럽게 두 줄([지역·개수] / [필터·정렬]) 폴백 */
.view-explore .explore-region-toolbar{flex-wrap:wrap;row-gap:8px;justify-content:flex-start}
.view-explore .toolbar .emcount{display:inline-flex;align-items:baseline;gap:5px;font-size:13px;color:var(--muted);white-space:nowrap;letter-spacing:-.01em}
.view-explore .toolbar .emcount b{color:var(--text);font-weight:800;font-size:14px}
.view-explore .toolbar .em-sort{display:flex;flex:0 0 auto;font-size:12px}
.view-explore .explore-countline{display:none}
/* 목록을 읽기 시작하면 검색은 접고, 선택일과 정렬·시간 설정을 한 줄로 합친다. 선택일을 누르면 전체 날짜 선택기가 다시 열린다. */
.view-explore.avhead-ready .scroll{overflow-anchor:none}
.view-explore.avhead-ready .searchbar{max-height:56px;overflow:hidden;transition:max-height .18s ease,margin .18s ease,opacity .14s ease,border-color .14s ease}
.view-explore.avhead-ready .avtoolbar{min-height:60px;transition:min-height .18s ease,margin .18s ease,padding .18s ease}
.view-explore.avhead-ready .avdates{height:64px;transition:height .18s ease,margin .18s ease,padding .18s ease,gap .18s ease}
.view-explore.avhead-ready .avdate,.view-explore.avhead-ready .avregionpick{transition:height .18s ease,padding .18s ease,opacity .14s ease,transform .18s ease}
.view-explore.avhead-collapsed .searchbar{max-height:0;margin-top:0;opacity:0;border-color:transparent;pointer-events:none}
.view-explore.avhead-collapsed .avtoolbar{min-height:42px;margin-top:3px;padding-top:4px;padding-bottom:4px}
.view-explore.avhead-collapsed .avregionpick{height:34px}
.view-explore.avhead-collapsed .avcontrols{grid-template-columns:116px minmax(0,1fr);align-items:stretch;width:min(100% - 72px,820px);gap:8px;margin-top:4px;margin-bottom:3px}
.view-explore.avhead-collapsed .avdates{position:relative;height:52px;overflow:hidden;margin:0;padding:4px;gap:0}
.view-explore.avhead-collapsed .avdate:not(.on){position:absolute;inset:4px;opacity:0;pointer-events:none;transform:translateY(-4px) scale(.96)}
.view-explore.avhead-collapsed .avdate.on{position:relative;flex:1 1 auto;height:42px;flex-direction:row;justify-content:center;gap:6px;padding:2px 20px 2px 5px;cursor:pointer}
.view-explore.avhead-collapsed .avdate.on::after{content:"";position:absolute;right:10px;top:50%;width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-68%) rotate(45deg)}
.view-explore.avhead-collapsed .avtools{width:100%;grid-template-columns:154px minmax(0,1fr) 150px;margin:0}
.view-explore.avhead-collapsed.avdate-open .avcontrols{grid-template-columns:minmax(0,1fr);gap:7px}
.view-explore.avhead-collapsed.avdate-open .avdates{height:64px;overflow-x:auto;padding:7px;gap:7px}
.view-explore.avhead-collapsed.avdate-open .avdate{position:static;flex:0 0 calc((100% - 42px)/7);height:auto;flex-direction:column;justify-content:flex-start;gap:3px;padding:8px 3px;opacity:1;pointer-events:auto;transform:none}
.view-explore.avhead-collapsed.avdate-open .avdate.on::after{display:none}
@media(prefers-reduced-motion:reduce){.view-explore.avhead-ready .searchbar,.view-explore.avhead-ready .avtoolbar,.view-explore.avhead-ready .avdates,.view-explore.avhead-ready .avdate,.view-explore.avhead-ready .avregionpick{transition:none}}

/* 시리즈 구조형 UI 비교 — 편집 정보 구조와 상세 정보 구조를 함께 전환한다. */
.view-series .series-ui-picker{display:grid;grid-template-columns:200px minmax(0,1fr);align-items:center;gap:18px;margin-top:16px;padding:11px 12px}.view-series .series-ui-picker-head{display:flex;flex-direction:column;align-items:flex-start;gap:3px;margin:0}.view-series .series-ui-options{grid-template-columns:repeat(3,minmax(0,1fr))}.view-series .series-ui-choice{min-height:48px}.view-series .series-workspace{gap:20px}
.view-series .series-journey-setup{grid-template-columns:230px minmax(0,1fr);align-items:start}.view-series .series-journey-setup .series-add-panel{max-width:none;margin-top:0}.view-series .series-journey-editor .series-order-panel{padding-top:20px}.view-series .series-journey-map{max-width:710px;margin:0 auto;padding-left:38px}.view-series .series-journey-map::before{left:17px}.view-series .series-journey-stop::before{left:-29px}.view-series .series-journey-stop>header{grid-template-columns:48px minmax(0,1fr);padding-left:14px}.view-series .series-journey-stop>header>span{font-size:18px}.view-series .series-journey-stop-themes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.view-series .series-journey-stop-themes .series-editor-theme:nth-child(odd):last-child{grid-column:1/-1}.view-series .series-journey-stop-themes .series-editor-theme{grid-template-columns:38px minmax(0,1fr) 28px}.view-series .series-journey-stop-themes .series-editor-theme label{grid-column:1/-1}.view-series .series-journey-stop-themes .series-editor-theme select{width:100%}.view-series .series-journey-stop-themes .series-editor-remove{grid-area:1/3}
.view-series .series-editor-scroll.series-board-editor{padding-left:0;padding-right:0}.view-series .series-board-setup{grid-template-columns:260px minmax(0,1fr);align-items:start;padding:0 18px}.view-series .series-board-setup .series-add-panel{max-width:none;margin-top:0}.view-series .series-board-editor .series-order-panel{margin-left:0;margin-right:0}.view-series .series-board-grid{grid-auto-columns:minmax(220px,1fr);padding-left:18px;padding-right:18px}.view-series .series-board-grid:has(>:nth-child(4)){grid-auto-columns:240px}.view-series .series-board-column .series-editor-theme{grid-template-columns:40px minmax(0,1fr) 28px}
.view-series .series-editor-scroll.series-playlist-editor{padding:22px 24px}.view-series .series-playlist-setup{grid-template-columns:minmax(220px,.7fr) minmax(320px,1.3fr);align-items:start;gap:22px}.view-series .series-playlist-setup .series-add-panel{margin-top:0}.view-series .series-playlist-editor .series-order-panel{margin-top:22px}.view-series .series-playlist-editor{max-width:760px;margin:0 auto}.view-series .series-playlist-editor-row .series-editor-theme{grid-template-columns:38px minmax(0,1fr) 112px 28px}.view-series .series-playlist-editor-row .series-editor-theme select{width:112px}
.view-detail .series-ui-journey .series-flow{display:flex;flex-direction:row;align-items:flex-start;gap:8px;padding-left:0}.view-detail .series-ui-journey .series-flow-step{display:flex;flex:1 1 0;flex-direction:column;gap:8px}.view-detail .series-ui-journey .series-flow-step::after{display:none}.view-detail .series-ui-journey .series-flow-arrow{width:18px;height:31px;margin:0;opacity:.55;transform:none}.view-detail .series-ui-journey .series-step-themes{display:flex;flex-direction:column}.view-detail .series-board-detail{grid-auto-flow:initial;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible}.view-detail .series-playlist-detail{max-width:620px;margin:0 auto}.view-detail .series-ui-picker.compact{display:grid;grid-template-columns:150px minmax(0,1fr);align-items:center;gap:12px}.view-detail .series-ui-picker.compact .series-ui-picker-head{margin:0}.view-detail .series-ui-picker.compact .series-ui-options{grid-template-columns:repeat(3,minmax(0,1fr))}

/* 시리즈 최종 UI */
.view-series .series-workspace{margin-top:24px;gap:20px}.view-series .series-editor-scroll.series-playlist-layout{padding:22px 24px}.view-series .series-playlist-setup{grid-template-columns:minmax(250px,.8fr) minmax(340px,1.2fr);align-items:start;gap:24px}.view-series .series-playlist-setup .series-add-panel{margin-top:0}.view-series .series-playlist-layout .series-order-panel{margin-top:22px}.view-series .series-playlist-editor{max-width:760px;margin:0 auto}.view-series .series-playlist-editor>header{grid-template-columns:42px minmax(0,1fr) 112px 28px}.view-series .series-playlist-editor-row{grid-template-columns:42px minmax(0,1fr)}.view-series .series-playlist-editor-row .series-editor-theme{grid-template-columns:38px minmax(0,1fr) 112px 28px}.view-series .series-playlist-editor-row .series-editor-theme select{width:112px}.view-series .series-savebar{grid-template-columns:112px 280px}.view-detail .series-journey .series-flow{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));align-items:start;gap:12px;padding-left:0}.view-detail .series-journey .series-flow-step{display:flex;min-width:0;flex-direction:column;gap:8px}.view-detail .series-journey .series-flow-step::after{display:none}.view-detail .series-journey .series-flow-arrow{display:none}.view-detail .series-journey .series-step-themes{display:flex;flex-direction:column}.view-detail .series-comment{max-width:620px;margin-left:auto;margin-right:auto}

/* ============================== 계획 (PLANS) ============================== */
.view-plans>.appbar.plan-detail-bar{width:min(calc(100% - 72px),820px);padding-left:0;padding-right:0;row-gap:22px}.view-plans .plan-detail-heading{padding-top:20px}.view-plans .plan-detail-heading .title{font-size:34px}.view-plans .plan-detail-heading .sub{font-size:12px}
.view-plans{--dcol:940px}.view-plans>.appbar{width:min(calc(100% - 72px),var(--dcol));margin-top:20px}.view-plans>.appbar>.btn{flex:0 0 auto}.view-plans .plan-library-scroll{padding-top:22px}.view-plans .plan-library-scroll>*{width:min(calc(100% - 72px),var(--dcol))}.view-plans .plan-library-intro{grid-template-columns:58px minmax(0,1fr);min-height:112px;padding:20px 24px}.view-plans .plan-intro-icon{width:56px;height:56px}.view-plans .plan-intro-icon svg{width:30px;height:30px}.view-plans .plan-library-intro h2{font-size:23px}.view-plans .plan-library-intro p{font-size:11px}.view-plans .plan-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.view-plans .plan-card{min-height:138px;padding:20px}.view-plans .plan-card-copy>b{font-size:18px}.view-plans .plan-kind-tabs{width:min(100% - 72px,640px);margin:4px auto 10px}.view-plans .plan-detail-scroll>section,.view-plans .plan-detail-scroll>.plan-days,.view-plans .plan-detail-scroll>.plan-empty{width:min(100% - 72px,720px)}.view-plans .plan-detail-intro h2{font-size:28px}.view-plans .plan-days{gap:16px}.view-plans .plan-day{border-radius:8px;clip-path:none}.view-plans .plan-timeline{padding:16px 20px 18px}.view-plans .plan-time-item{grid-template-columns:28px 72px minmax(0,1fr);min-height:78px}.view-plans .plan-node{width:28px;height:28px}.view-plans .plan-time-item:not(:last-child)::after{left:13px;top:29px}.view-plans .plan-item-copy b{font-size:14px}.view-plans .plan-dock{left:calc((100% - 720px)/2);right:calc((100% - 720px)/2);bottom:18px;padding:12px;border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--bg) 91%,transparent);box-shadow:0 16px 46px rgba(0,0,0,.36)}.view-plans .plan-detail-spacer{height:112px}.record-head-actions .rha{height:36px;padding:0 15px;font-size:12.5px}.plan-edit-sheet,.plan-fed-setup,.plan-apply-sheet,.plan-save-sheet{width:min(520px,92vw)}
/* 계획 보관함 리디자인(2026-10-01) — 히어로를 가로로 펼치고(숫자 오른쪽) 카드 커버를 키운다 */
.view-plans .plan-folio .plan-folio-hero{grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"copy stats fan";gap:28px;min-height:150px;padding:24px 30px 24px 32px}.view-plans .plan-folio .plan-folio-hero h2{font-size:27px}.view-plans .plan-folio .plan-folio-hero p{font-size:13px}.view-plans .plan-folio-stats{grid-template-columns:repeat(3,auto);margin:0;border-top:0}.view-plans .plan-folio-stats>span{padding:4px 26px 4px 0}.view-plans .plan-folio-stats>span+span{padding-left:26px}.view-plans .plan-folio-stats b{font-size:26px}.view-plans .plan-folio-stats small{font-size:11.5px}.view-plans .plan-folio-fan{width:150px;height:110px}.view-plans .plan-folio-fan .plan-cover-p{left:42px;top:8px;width:64px;height:92px;border-radius:9px}.view-plans .plan-folio-fan.n3 .plan-cover-p:nth-child(1){transform:translateX(-36px) translateY(8px) rotate(-12deg)}.view-plans .plan-folio-fan.n3 .plan-cover-p:nth-child(2){transform:translateX(36px) translateY(8px) rotate(12deg)}
.view-plans .plan-folio .plan-list{gap:16px}.view-plans .plan-card.pc-folio{min-height:148px;grid-template-columns:86px minmax(0,1fr) 18px;gap:18px;padding:18px 20px 18px 16px}.view-plans .plan-card.pc-folio .plan-card-cover,.view-plans .plan-card.pc-folio .plan-cover{width:86px;height:110px}.view-plans .plan-cover .plan-cover-p,.view-plans .plan-cover .plan-cover-empty{top:8px;left:13px;width:60px;height:88px;border-radius:8px}.view-plans .plan-card.pc-folio .plan-card-copy>b{font-size:18px}.view-plans .plan-cover.n3 .plan-cover-p:nth-child(1){transform:translateX(-16px) translateY(4px) rotate(-10deg) scale(.88)}.view-plans .plan-cover.n3 .plan-cover-p:nth-child(2){transform:translateX(16px) translateY(4px) rotate(10deg) scale(.88)}.view-plans .plan-card.pc-folio:hover .plan-cover.n3 .plan-cover-p:nth-child(1){transform:translateX(-20px) translateY(4px) rotate(-13deg) scale(.88)}.view-plans .plan-card.pc-folio:hover .plan-cover.n3 .plan-cover-p:nth-child(2){transform:translateX(20px) translateY(4px) rotate(13deg) scale(.88)}.view-plans .plan-cover.n2 .plan-cover-p:nth-child(1){transform:translateX(14px) translateY(3px) rotate(9deg) scale(.9)}.view-plans .plan-card.pc-folio .plan-card-copy{gap:7px}.view-plans .plan-folio .plan-shared-library{margin-top:38px}
/* 계획 상세 리디자인(2026-10-01) — 부채꼴·일차 카드·타임라인을 키우고 하단 바를 유리로 */
.view-plans .pd-fan{width:108px;height:86px}.view-plans .pd-fan .plan-cover-p{top:6px;left:31px;width:46px;height:68px;border-radius:7px}.view-plans .pd-fan.n3 .plan-cover-p:nth-child(1){transform:translateX(-24px) translateY(6px) rotate(-12deg)}.view-plans .pd-fan.n3 .plan-cover-p:nth-child(2){transform:translateX(24px) translateY(6px) rotate(12deg)}.view-plans .pd-fan.n2 .plan-cover-p:nth-child(1){transform:translateX(-14px) translateY(4px) rotate(-9deg)}.view-plans .pd-fan.n2 .plan-cover-p:nth-child(2){transform:translateX(11px) rotate(4deg)}.view-plans .pd-folio .plan-detail-intro.has-note p{padding:15px 18px;font-size:13px}
.view-plans .plan-basic-day.pb-folio>header{padding:22px 26px 8px}.view-plans .pd-dayno{font-size:32px}.view-plans .plan-basic-day.pb-folio>header b{font-size:17px}.view-plans .plan-basic-day.pb-folio>header small{font-size:12px}.view-plans .plan-basic-variant.pb-folio .plan-basic-kind{padding:12px 26px 4px}.view-plans .plan-basic-variant.pb-folio+.plan-basic-variant.pb-folio::before{left:26px;right:26px}.view-plans .plan-basic-variant.pb-folio .plan-basic-list{gap:12px;padding:14px 26px 24px 18px}
.view-plans .plan-basic-variant.pb-folio .plan-basic-item,.view-plans .plan-basic-gap{grid-template-columns:60px 14px minmax(0,1fr);gap:0 10px}.view-plans .plan-basic-variant.pb-folio .plan-basic-item::after,.view-plans .plan-basic-gap::before{left:76.5px;bottom:-12px}.view-plans .plan-basic-variant.pb-folio .plan-basic-item:first-child::after{top:26px}.view-plans .plan-basic-variant.pb-folio .plan-basic-item:last-child::after{bottom:auto;height:26px}.view-plans .plan-basic-node{width:11px;height:11px;margin-top:18px}.view-plans .plan-basic-variant.pb-folio .plan-basic-time{padding-top:16px}.view-plans .plan-basic-variant.pb-folio .plan-basic-time b{font-size:18px}.view-plans .plan-basic-variant.pb-folio .plan-basic-time small{font-size:12px}
.view-plans .plan-basic-card{grid-template-columns:52px minmax(0,1fr) auto;gap:16px;padding:10px 16px 10px 10px;border-radius:16px}.view-plans .plan-basic-variant.pb-folio .plan-basic-thumb{width:52px;height:72px;border-radius:9px}.view-plans .plan-basic-variant.pb-folio .plan-basic-thumb.meal{height:52px}.view-plans .plan-basic-variant.pb-folio .plan-basic-copy>b{font-size:15.5px}.view-plans .plan-basic-variant.pb-folio .plan-basic-copy>span,.view-plans .plan-basic-variant.pb-folio .plan-basic-meta>small{font-size:12px}
.view-plans .pd-folio~.plan-dock{border-color:var(--glass-line);border-radius:22px;background:color-mix(in srgb,var(--surface) 78%,transparent);box-shadow:var(--glass-hi),0 18px 44px -16px rgba(0,0,0,.7)}html[data-theme=light] .view-plans .pd-folio~.plan-dock{background:rgba(255,255,255,.82);box-shadow:0 14px 34px -14px rgba(45,60,78,.3)}
.chat-plan-detail-sheet{width:min(680px,92vw)}.chat-plan-detail-sheet .sh-body{padding-left:24px;padding-right:24px}.chat-plan-detail-sheet .plan-basic-list{grid-template-columns:1fr;gap:16px}.chat-plan-detail-sheet .chat-plan-snapshot-actions{width:min(100%,520px);margin-left:auto;margin-right:auto}

/* 계획 화면 — 데스크탑에서도 모바일의 부드러운 카드 미감과 정렬을 그대로 확장 */
.view-plans .plan-library-intro{grid-template-columns:52px minmax(0,1fr);min-height:100px;padding:20px 22px;border-radius:19px}.view-plans .plan-intro-icon{width:50px;height:50px;border-radius:15px}.view-plans .plan-intro-icon svg{width:27px;height:27px}.view-plans .plan-library-intro h2{font-size:20px}.view-plans .plan-list{gap:16px}.view-plans .plan-card{min-height:122px;grid-template-columns:50px minmax(0,1fr) 34px;padding:20px;border-radius:19px}.view-plans .plan-card-mark{width:50px;height:50px;border-radius:15px}.view-plans .plan-card-copy>b{font-size:17px}.view-plans .plan-card-go{width:34px;height:34px}.view-plans .plan-day{border-radius:19px}.view-plans .plan-dock{border-radius:18px}.view-plans .plan-kind-tabs button{border-radius:14px}
.view-plans .plan-time-item{grid-template-columns:28px 72px minmax(0,1fr) 32px}.view-plans .plan-variant-head{padding-left:20px;padding-right:14px}.view-plans .plan-dock{grid-template-columns:.9fr .95fr 1.15fr}.view-plans .plan-dock .btn{font-size:11px}.plan-theme-add-sheet{width:min(560px,92vw)}.plan-apply-sheet{width:min(620px,92vw)}.plan-apply-sheet .sh-body{padding-left:24px;padding-right:24px}.plan-apply-days{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.view-plans .plan-detail-scroll>.plan-view-controls,.view-plans .plan-detail-scroll>.plan-archive-days,.view-plans .plan-detail-scroll>.plan-basic-days,.view-plans .plan-detail-scroll>.plan-edit-days{width:min(100% - 72px,820px);margin-left:auto;margin-right:auto}.view-plans .plan-archive-days,.view-plans .plan-basic-days{gap:20px}.view-plans .plan-basic-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px}.view-plans .plan-basic-item:nth-child(2){border-top:0}.view-plans .plan-edit-day{min-height:118px;padding:16px 18px}.view-plans .plan-edit-day-no{width:56px;height:68px;font-size:23px}.view-plans .plan-edit-day-copy b{font-size:16px}.view-plans .plan-edit-kinds{flex-direction:row}.view-plans .plan-edit-kinds>i{min-width:76px;padding:7px 9px}.view-plans .plan-dock.read{grid-template-columns:.9fr 1.1fr}.view-plans .plan-dock.edit{grid-template-columns:1fr}.plan-day-sheet{width:min(680px,92vw)}.plan-day-sheet-kinds{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}.plan-day-sheet-kind>header{align-items:flex-start;flex-direction:column}.plan-day-sheet-kind>header>span:last-child{width:100%}.plan-kind-action{flex:1;justify-content:center}.plan-copy-box{max-width:460px;margin-left:auto;margin-right:auto}

.view-plans .plan-basic-list{grid-template-columns:1fr;gap:16px}
.view-plans .plan-arch[data-density=cozy] .arch[data-theme-count="0"],.view-plans .plan-arch[data-density=cozy] .arch[data-theme-count="1"],.view-plans .plan-arch[data-density=cozy] .arch[data-theme-count="2"],.view-plans .plan-arch[data-density=cozy] .arch[data-theme-count="3"]{grid-template-columns:repeat(3,minmax(0,1fr))!important;padding-left:0!important}.view-plans .plan-arch[data-density=cozy] .arch[data-theme-count="4"]{grid-template-columns:repeat(4,minmax(0,1fr))!important;padding-left:0!important}
.view-plans .plan-arch[data-density=cozy] .arch:is([data-theme-count="1"],[data-theme-count="2"],[data-theme-count="3"]){column-gap:40px}.view-plans .plan-arch[data-density=cozy]:has(>.arch:is([data-theme-count="1"],[data-theme-count="2"],[data-theme-count="3"])) .plan-arch-cell:not(:first-child) .plan-poster-flow::before{left:-32px;border-top-width:15px;border-bottom-width:15px;border-left-width:24px}.view-plans .plan-arch[data-density=cozy] .arch[data-theme-count="4"]{column-gap:36px}.view-plans .plan-arch[data-density=cozy]:has(>.arch[data-theme-count="4"]) .plan-arch-cell:not(:first-child) .plan-poster-flow::before{left:-28px;border-top-width:12.5px;border-bottom-width:12.5px;border-left-width:20px}
.view-plans .plan-arch[data-density=cozy] .arch:is([data-theme-count="0"],[data-theme-count="1"],[data-theme-count="2"],[data-theme-count="3"]) .atkt{gap:5px;padding:5px 8px 5.5px}.view-plans .plan-arch[data-density=cozy] .arch:is([data-theme-count="0"],[data-theme-count="1"],[data-theme-count="2"],[data-theme-count="3"]) .atkt .ats{font-size:17.5px}.view-plans .plan-arch[data-density=cozy] .arch:is([data-theme-count="0"],[data-theme-count="1"],[data-theme-count="2"],[data-theme-count="3"]) .atkt .ats.end{font-size:15.5px}.view-plans .plan-arch[data-density=cozy] .arch:is([data-theme-count="0"],[data-theme-count="1"],[data-theme-count="2"],[data-theme-count="3"]) .plan-time-clock{width:14px;height:14px}.view-plans .plan-arch[data-density=cozy] .arch:is([data-theme-count="0"],[data-theme-count="1"],[data-theme-count="2"],[data-theme-count="3"]) .at{font-size:20px;line-height:1.16}.view-plans .plan-arch[data-density=cozy] .arch:is([data-theme-count="0"],[data-theme-count="1"],[data-theme-count="2"],[data-theme-count="3"]) .ast{font-size:13px}.view-plans .plan-arch[data-density=cozy] .arch:is([data-theme-count="0"],[data-theme-count="1"],[data-theme-count="2"],[data-theme-count="3"]) .appl svg{width:11px;height:16px}.view-plans .plan-arch[data-density=cozy] .arch:is([data-theme-count="0"],[data-theme-count="1"],[data-theme-count="2"],[data-theme-count="3"]) .appl b{font-size:13px}
.view-plans .plan-arch[data-density=cozy] .arch[data-theme-count="4"] .atkt{gap:4px;padding:4.5px 7px 5px}.view-plans .plan-arch[data-density=cozy] .arch[data-theme-count="4"] .atkt .ats{font-size:15.5px}.view-plans .plan-arch[data-density=cozy] .arch[data-theme-count="4"] .atkt .ats.end{font-size:14px}.view-plans .plan-arch[data-density=cozy] .arch[data-theme-count="4"] .plan-time-clock{width:13px;height:13px}.view-plans .plan-arch[data-density=cozy] .arch[data-theme-count="4"] .at{font-size:17.5px;line-height:1.17}.view-plans .plan-arch[data-density=cozy] .arch[data-theme-count="4"] .ast{font-size:11.5px}.view-plans .plan-arch[data-density=cozy] .arch[data-theme-count="4"] .appl svg{width:10px;height:14px}.view-plans .plan-arch[data-density=cozy] .arch[data-theme-count="4"] .appl b{font-size:12px}

.view-plans .plan-detail-scroll>.plan-detail-intro{width:min(100% - 72px,820px);margin-left:auto;margin-right:auto}.view-plans .plan-library-intro p,.view-plans .plan-detail-intro p{font-size:12px}.view-plans .plan-edit-day{grid-template-columns:56px minmax(0,1fr) auto 28px;column-gap:18px}.view-plans .plan-dock .btn{font-size:12px}
.plan-day-sheet-kinds[data-kind-count="1"]{grid-template-columns:minmax(0,1fr)}.plan-day-sheet-kinds[data-kind-count="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}
.view-plans .plan-own-library,.view-plans .plan-shared-library{gap:14px}.view-plans .plan-shared-library{margin-top:34px;padding-top:26px}.view-plans .plan-own-library>header b,.view-plans .plan-shared-library>header b{font-size:15px}.view-plans .plan-share-origin{width:min(100% - 72px,820px);grid-template-columns:52px minmax(0,1fr) 30px;margin-left:auto;margin-right:auto;padding:17px 19px}.view-plans .plan-share-origin>.avatar{width:52px;height:52px}.view-plans .plan-share-origin b{font-size:14px}.view-plans .plan-share-origin small{font-size:11px}.view-plans .plan-dock.read.owner{grid-template-columns:.88fr .94fr 1.18fr}.view-plans .plan-dock.shared{grid-template-columns:1fr}.plan-share-sheet{width:min(560px,92vw)}.plan-share-preview{grid-template-columns:52px minmax(0,1fr);padding:17px}.plan-share-preview>span{width:52px;height:52px}.plan-share-preview b{font-size:17px}.plan-share-preview small,.plan-share-note{font-size:11px}.plan-share-row{min-height:74px;grid-template-columns:46px minmax(0,1fr) auto;padding:12px}.plan-share-row>.avatar{width:46px;height:46px}.plan-share-row b{font-size:13px}.plan-share-row small{font-size:11px}.plan-share-send{height:40px;font-size:11px}

/* 데스크톱 카드가 크기를 재정의해도 예약 시간 버튼은 서로 겹치지 않는 28px를 유지한다. */
.view-explore .avslot{height:32px;min-height:32px;max-height:32px}
/* 예약 가능 시간 카드(지금 디자인) — 탐색 카드 그리드와 같은 평점 티켓 꼬리(점선 구분·등급색 틴트), 아래 칸은 카드 전폭 */
.view-explore .avsum2{width:min(100% - 72px,900px);margin:14px auto 0;padding:0 2px}
.view-explore .avcard{min-height:0;padding:0;border-radius:14px;background:linear-gradient(165deg,var(--surface),rgba(16,19,23,.35))}
.view-explore .avcard.no-slots{background:color-mix(in srgb,var(--surface) 52%,transparent)}
.view-explore .avcard:hover{border-color:var(--glass-line-hi);transform:none;box-shadow:0 12px 28px rgba(0,0,0,.2)}
.view-explore .avcard.no-slots:hover{border-color:var(--glass-line-hi)}
.view-explore .avcard .avtheme{grid-template-columns:72px minmax(0,1fr) 96px;gap:18px;padding:14px 0 14px 16px}
.view-explore .avcard .avposter{width:72px;height:98px}
.view-explore .avcard .avtitle{font-size:16px}
.view-explore .avcard .avstore{font-size:12px}
.view-explore .avtags{gap:7px;margin-top:9px}
.view-explore .avtags .pmeter{gap:5px;padding:3px 9px}.view-explore .avtags .pmeter .pml{font-size:9px}.view-explore .avtags .pmeter .pms{gap:2px}.view-explore .avtags .pmeter .pms i{width:3.5px;height:9px}
.view-explore .avend{gap:6px;margin:-14px 0;padding:0 8px;border-left:1px dashed color-mix(in srgb,var(--text) 15%,transparent)}
.view-explore .avend .ratebadge{gap:6px}.view-explore .avend .ratebadge svg{width:19px;height:19px}.view-explore .avend .rt{font-size:21px}.view-explore .avend .tplays{font-size:10.5px}
.view-explore .avcard .avpickrow{padding:10px 16px 14px;gap:9px}
.view-explore .avcard .avslots{margin:0 -16px;padding:0 16px;scroll-padding-inline:16px}
.view-explore .avstate{font-size:12px}.view-explore .avfresh{font-size:10.5px}
.view-explore .avcard .avslot{padding-left:13px;padding-right:13px;font-size:12.5px}.view-explore .avcard .avslot.openroom{padding:0 4px 0 12px}.view-explore .avcard .avslot.openroom .avs-t{padding:0}.view-explore .avcard .avslot.openroom .avs-n{padding:0 6px}
html[data-theme=light] .view-explore .avcard{background:linear-gradient(165deg,var(--surface),rgba(240,243,247,.5))}html[data-theme=light] .view-explore .avcard.no-slots{background:color-mix(in srgb,var(--surface) 55%,transparent)}html[data-theme=light] .view-explore .avcard:hover{box-shadow:0 12px 28px rgba(50,70,90,.12)}

}/* end @media (min-width:1000px) */

@media(min-width:1000px){
.view-advancedsearch{--dcol:1180px}
.view-advancedsearch .adv-scroll{padding:28px 32px 48px}
.view-advancedsearch .adv-layout{display:grid;grid-template-columns:minmax(340px,450px) minmax(0,1fr);align-items:start;gap:32px;width:100%;max-width:var(--dcol);margin:0 auto}
.view-advancedsearch .adv-results{margin-top:0}
.view-advancedsearch .adv-rule-value.person{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.view-advancedsearch .adv-intro h2{font-size:24px}
.view-advancedsearch .adv-result-list .trow{display:flex;min-height:112px}
}
@media(min-width:1000px){.adv-save-sheet,.adv-saved-sheet{width:min(600px,92vw)}.adv-saved-sheet .sh-body{max-height:70vh;overflow:auto}}
@media(min-width:1000px){.advanced-search-intro-sheet{width:min(520px,92vw)}}
@media(min-width:1000px){
  .admin-search-row{flex-wrap:nowrap}
  .admin-search-row .act{width:auto}
}

@media(min-width:1000px) {
  .sheet.sync-sheet { width:520px; max-width:calc(100vw - 64px); }
  .sync-intro-sheet .sh-body { padding:26px 30px 12px; }
  .sync-intro-sheet .sync-footer { padding:18px 30px 24px; }
}

@media(min-width:1000px){
  .view-userreviews{--dcol:820px}
  .view-userreviews>.appbar{width:100%;max-width:var(--dcol);margin-inline:auto}
  .user-reviews-list{width:100%;max-width:var(--dcol);margin-inline:auto;padding:24px 28px 40px;gap:24px}
  .user-review-theme{padding:18px 22px}.user-review-theme img,.user-review-cover{width:54px;height:72px}
}
