/* =========================================================
   EXNOR — admin
   ========================================================= */
body.admin { --font: var(--font-ui); background: #080807; color: var(--ink); }   /* 관리자는 Pretendard 하나로 (맑은 고딕 · 헬베티카 섞임 없이) */

/* 로그인 전엔 로그인 화면만, 로그인 뒤엔 관리 화면만 */
html:not(.is-authed) body.admin { background: var(--bg); color: var(--y); }
html:not(.is-authed) .adm-top, html:not(.is-authed) .adm-body { display: none; }
.is-authed .auth-page { display: none; }

.adm-top { position: sticky; top: 0; z-index: 30; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 10px clamp(16px, 3vw, 32px); border-bottom: 1px solid rgba(242,239,232,.08); background: rgba(8,8,7,.92); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.adm-brand { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; color: var(--y); text-decoration: none; }
.adm-brand:hover { color: var(--y); }
.adm-brand img { width: 84px; height: auto; }
.adm-actions { display: flex; align-items: center; gap: 4px; }
.adm-link, .btn-text { display: inline-flex; align-items: center; min-height: 40px; padding: 0 12px; border: 0; border-radius: 999px; background: none; color: #CFC8BC; font-size: 13px; white-space: nowrap; text-decoration: none; cursor: pointer; }
.adm-link:hover, .btn-text:hover { color: #fff; background: rgba(242,239,232,.07); }
.btn-text:disabled { opacity: .45; cursor: default; color: #CFC8BC; background: none; }

.adm-body { display: flex; align-items: flex-start; }
.adm-nav { position: sticky; top: 65px; flex: none; width: 200px; padding: 28px 12px; display: flex; flex-direction: column; gap: 2px; }
.adm-nav a, .adm-nav span { display: flex; align-items: center; justify-content: space-between; min-height: 40px; padding: 0 12px; border-radius: 8px; font-size: 14px; color: #8F887C; text-decoration: none; }
.adm-nav a[aria-current="page"] { background: rgba(255,199,44,.12); color: var(--y); }
.adm-nav em { font-style: normal; font-size: 11px; color: #8F887C; }
.adm-main { flex: 1; min-width: 0; max-width: 1240px; padding: 32px clamp(16px, 3vw, 40px) 40px; }
.adm-head h1 { font-size: 28px; font-weight: 500; letter-spacing: -.03em; }
.adm-head p { margin-top: 8px; font-size: 14px; line-height: 1.6; color: #A39C90; }

.seg { margin-top: 24px; display: inline-flex; flex-wrap: wrap; gap: 2px; padding: 4px; border-radius: 999px; background: rgba(242,239,232,.06); }
.seg button { min-height: 40px; padding: 0 18px; border: 0; border-radius: 999px; background: none; color: #CFC8BC; font-size: 14px; cursor: pointer; }
.seg button:hover { color: #fff; }
.seg button[aria-selected="true"], .seg button[aria-pressed="true"] { background: var(--y); color: #0A0805; font-weight: 500; }
.seg-cap { margin-top: 18px; font-size: 12.5px; color: #8F887C; }
.seg-cap + .seg { margin-top: 8px; }
.seg button b { display: inline-grid; place-items: center; width: 18px; height: 18px; margin-right: 7px; border: 1px solid currentColor; border-radius: 50%; font-size: 10px; font-weight: 500; vertical-align: 1px; opacity: .8; }

.adm-grid { margin-top: 20px; display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 16px; align-items: start; }
.card { padding: 20px; border: 1px solid rgba(242,239,232,.1); border-radius: 16px; background: #0E0D0B; }
.card-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; }
.card-head h2, .card > h2 { font-size: 15px; font-weight: 500; }
.card-note { font-size: 12px; color: #A39C90; }
.legend { display: flex; gap: 16px; font-size: 12px; color: #CFC8BC; }
.legend span { display: inline-flex; align-items: center; gap: 6px; }
.legend span::before { content: ""; width: 18px; border-top: 2px solid var(--y); }
.legend .lg-mob::before { border-top: 2px dashed #fff; }
/* 중심을 정할 화면 — 웹 · 모바일 */
.frame-mode { display: inline-flex; padding: 3px; border-radius: 999px; background: rgba(242,239,232,.06); }
.frame-mode button { display: inline-flex; align-items: center; gap: 8px; min-height: 32px; padding: 0 14px 0 12px; border: 0; border-radius: 999px; background: transparent; color: #CFC8BC; font: inherit; font-size: 13px; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.frame-mode button:hover { color: #fff; }
.frame-mode button[aria-checked="true"] { background: rgba(242,239,232,.12); color: #fff; }
.frame-mode .lg-web, .frame-mode .lg-mob { display: block; width: 18px; border-top: 2px solid var(--y); }
.frame-mode .lg-mob { border-top: 2px dashed #fff; }
.frame.is-mob { cursor: crosshair; }
.frame.is-mob .crop-web { box-shadow: none; opacity: .45; }
.frame.is-mob .crop-mob { border-width: 2.5px; box-shadow: 0 0 0 9999px rgba(0,0,0,.55); }
.frame.is-mob .focus { border-color: #fff; }
.frame.is-mob .focus::after { background: #fff; }
.mob-row { margin-top: 12px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; }
/* 창 너비 — 웹 크롭 가이드 · 웹 미리보기가 그 너비로 (넓은 모니터일수록 위아래가 더 잘려요) */
.web-row { margin-top: 12px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
.web-row[hidden] { display: none; }
.web-lbl { font-size: 13px; color: #CFC8BC; }
.wsel { display: inline-flex; padding: 3px; border-radius: 999px; background: rgba(242,239,232,.06); }
.wsel button { min-height: 30px; padding: 0 12px; border: 0; border-radius: 999px; background: transparent; color: #CFC8BC; font: inherit; font-size: 13px; font-variant-numeric: tabular-nums; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.wsel button:hover { color: #fff; }
.wsel button[aria-checked="true"] { background: var(--y); color: #0A0805; font-weight: 500; }
.web-note { font-size: 12.5px; color: #A39C90; }
.pv-hint { color: #6F695F; }
.mob-zoom { display: inline-flex; align-items: center; gap: 12px; font-size: 13px; color: #CFC8BC; }
.mob-zoom input { width: 200px; accent-color: #fff; }
.mob-zoom output { min-width: 40px; font-size: 13px; color: #fff; font-variant-numeric: tabular-nums; }
/* 한글 버튼 — 웹폰트(Noto Sans KR)는 작은 글씨에서 픽셀 맞춤(힌팅)이 없어 '이'처럼 획이 가는 글자만 흐리게 보여요.
   관리자 버튼 글자는 시스템 한글 글꼴로 (윈도우: 맑은 고딕 — 화면용으로 픽셀이 맞춰져 있어요 · 맥: Apple SD 산돌고딕 Neo) */
body.admin .btn-line { font-family: var(--font-ui); font-size: 14px; letter-spacing: 0; }

/* image + crop guides */
.stage { position: relative; margin-top: 16px; display: flex; align-items: center; justify-content: center; min-height: 280px; padding: 16px; border-radius: 12px; background: repeating-conic-gradient(#141311 0 25%, #0F0E0C 0 50%) 0 0 / 20px 20px; outline: 2px dashed transparent; outline-offset: -8px; transition: outline-color .2s; }
.stage.is-over { outline-color: var(--y); }
.tools #center svg { margin-right: 6px; }
.sp-fields.is-over { border-color: var(--y); background: rgba(255,199,44,.09); }
.stage-empty { max-width: 420px; padding: 40px 12px; text-align: center; font-size: 14px; line-height: 1.8; color: #CFC8BC; }
.frame[hidden] { display: none !important; }

/* page map — which section of the main page */
.pagemap-wrap { margin-bottom: 20px; padding-bottom: 18px; border-bottom: 1px solid rgba(242,239,232,.08); }
.pagemap { margin: 10px 0 0; padding: 0; list-style: none; display: grid; gap: 3px; }
.pm-row { width: 100%; display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; align-items: center; gap: 8px; min-height: 34px; padding: 0 10px; border: 1px solid rgba(242,239,232,.1); border-radius: 8px; background: rgba(242,239,232,.03); color: #CFC8BC; font: inherit; font-size: 13px; text-align: left; cursor: pointer; }
.pm-row:hover { border-color: rgba(255,199,44,.4); color: #fff; }
.pm-row.is-on { border-color: var(--y); background: rgba(255,199,44,.12); color: var(--y); }
.pm-n { font-size: 11px; color: #8F887C; }
.pm-row.is-on .pm-n { color: var(--y); }
.pm-state { font-size: 11px; color: #8F887C; }
/* 섹션 순서 바꾸기 — 손잡이로 끌기 · ↑↓ (메인 상단 · 하단은 고정) */
.pm-li { display: flex; align-items: center; gap: 4px; }
.pm-li .pm-row { flex: 1; min-width: 0; }
.pm-grip { flex: none; display: grid; place-items: center; width: 18px; height: 34px; color: #6F695F; cursor: grab; touch-action: none; user-select: none; -webkit-user-select: none; }
.pm-grip:hover { color: var(--y); }
.pm-grip.is-fixed { cursor: default; }
.pm-li.is-drag .pm-row { border-color: var(--y); background: rgba(255,199,44,.16); box-shadow: 0 8px 20px rgba(0,0,0,.45); }
.pm-li.is-drag .pm-grip { color: var(--y); cursor: grabbing; }
.pm-mv { flex: none; display: grid; place-items: center; width: 28px; height: 34px; padding: 0; border: 1px solid rgba(242,239,232,.1); border-radius: 8px; background: rgba(242,239,232,.03); color: #CFC8BC; cursor: pointer; }
.pm-mv:hover:not(:disabled), .pm-mv:focus-visible { border-color: var(--y); color: var(--y); outline: none; }
.pm-mv:disabled { opacity: .28; cursor: default; }
.pm-fixed { flex: none; width: 60px; text-align: center; font-size: 11px; color: #6F695F; }
.pm-msg { margin-top: 8px; font-size: 12px; line-height: 1.5; color: var(--y); }
.pm-msg:empty { display: none; }
.frame { position: relative; display: inline-block; max-width: 100%; line-height: 0; overflow: hidden; touch-action: none; cursor: crosshair; user-select: none; -webkit-user-select: none; }
.frame img { display: block; max-width: 100%; max-height: 440px; width: auto; height: auto; -webkit-user-drag: none; }
.crop, .focus { display: none; }
.frame.is-ready .crop, .frame.is-ready .focus { display: block; }
.crop { position: absolute; pointer-events: none; }
.crop-web { border: 2px solid var(--y); box-shadow: 0 0 0 9999px rgba(0,0,0,.5); }
.crop-mob { border: 2px dashed #fff; }
.crop span { position: absolute; left: 6px; top: 6px; padding: 3px 7px; border-radius: 4px; background: var(--y); color: #0A0805; font-size: 11px; line-height: 1.2; }
.crop-mob span { top: auto; bottom: 6px; background: #fff; }
.focus { position: absolute; width: 30px; height: 30px; margin: -15px 0 0 -15px; border: 2px solid var(--y); border-radius: 50%; box-shadow: 0 0 0 2px rgba(0,0,0,.55), inset 0 0 0 2px rgba(0,0,0,.35); pointer-events: none; }
.focus::after { content: ""; position: absolute; left: 50%; top: 50%; width: 6px; height: 6px; margin: -3px 0 0 -3px; border-radius: 50%; background: var(--y); }
.hint { margin-top: 12px; font-size: 13px; line-height: 1.6; color: #A39C90; }
.tools { margin-top: 16px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.btn-sm { min-width: 0; min-height: 40px; padding: 0 20px; }
.check { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; font-size: 13px; color: #CFC8BC; cursor: pointer; }
.check input { width: 18px; height: 18px; margin: 0; accent-color: var(--y); }
.meta { margin-top: 16px; padding-top: 16px; border-top: 1px solid rgba(242,239,232,.08); display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 12px 16px; }
.meta dt { font-size: 11px; color: #8F887C; }
.meta dd { margin-top: 4px; font-size: 13px; line-height: 1.5; color: var(--ink); overflow-wrap: anywhere; }
.meta dd.ok { color: var(--y); }
.meta dd.warn { color: #FF9F6E; }

/* size guide */
.spec-kicker { font-size: 12px; color: #A39C90; }
.spec-size { margin-top: 6px; font-size: 30px; font-weight: 300; letter-spacing: -.03em; color: var(--y); }
.schema-wrap { margin: 16px 0 0; }
.schema { position: relative; overflow: hidden; border: 1px solid rgba(242,239,232,.22); border-radius: 6px; background: linear-gradient(135deg, #26221B, #0F0E0C); }
.schema span { position: absolute; }
.schema em { position: absolute; padding: 3px 5px; border-radius: 3px; font-style: normal; font-size: 10px; line-height: 1; white-space: nowrap; }
.z-text { background: repeating-linear-gradient(45deg, rgba(255,199,44,.3) 0 5px, transparent 5px 10px); }
.z-text em { left: 6px; bottom: 6px; background: var(--y); color: #0A0805; }
.z-mob { top: 0; bottom: 0; border-left: 1.5px dashed #fff; border-right: 1.5px dashed #fff; background: rgba(255,255,255,.06); }
.z-mob em { left: 50%; top: 6px; transform: translateX(-50%); background: #fff; color: #0A0805; }
.z-subj { width: 22px; height: 22px; margin: -11px 0 0 -11px; border: 2px solid var(--y); border-radius: 50%; }
.z-subj em { left: 50%; top: 100%; margin-top: 3px; padding: 0; transform: translateX(-50%); color: var(--y); }
.schema-wrap figcaption { margin-top: 8px; font-size: 11px; line-height: 1.5; color: #A39C90; }
.spec-list { margin-top: 16px; }
.spec-list div { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 8px; padding: 10px 0; border-top: 1px solid rgba(242,239,232,.08); font-size: 13px; line-height: 1.5; }
.spec-list dt { color: #8F887C; }
.spec-note { margin-top: 12px; padding: 12px; border-radius: 10px; background: rgba(255,199,44,.08); font-size: 12px; line-height: 1.6; color: #E9DDBF; }
/* 세부정보 — 자잘한 건 눌러야 보여요 */
.spec-more { margin-top: 14px; border-top: 1px solid rgba(242,239,232,.08); }
.spec-more summary { display: flex; align-items: center; justify-content: space-between; padding: 12px 2px 0; list-style: none; font-size: 13px; color: #CFC8BC; cursor: pointer; }
.spec-more summary::-webkit-details-marker { display: none; }
.spec-more summary::after { content: ""; width: 7px; height: 7px; margin-right: 4px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg) translateY(-2px); transition: transform .15s ease; }
.spec-more[open] summary::after { transform: rotate(-135deg) translateY(-2px); }
.spec-more summary:hover, .spec-more summary:focus-visible { color: var(--y); outline: none; }
.spec-more .spec-list { margin-top: 10px; }

/* live previews (real index.html in scaled iframes) */
.preview { margin-top: 16px; }
.pv-row { margin-top: 16px; display: flex; align-items: flex-end; gap: 24px; }
.pv { min-width: 0; margin: 0; }
.pv-web { flex: 1; }
.pv-mob { flex: none; width: clamp(160px, 17vw, 210px); }
.pv figcaption { margin-bottom: 8px; font-size: 12px; color: #A39C90; }
.pv-screen { position: relative; overflow: hidden; border: 1px solid rgba(242,239,232,.14); border-radius: 10px; background: #050505; }
.pv-web .pv-screen { aspect-ratio: 1440 / 900; }
.pv-mob .pv-screen { aspect-ratio: 390 / 844; border: 6px solid #1D1C19; border-radius: 26px; }
.pv-screen iframe { position: absolute; left: 0; top: 0; border: 0; transform-origin: 0 0; pointer-events: none; background: #050505; }

/* save bar */
.savebar { position: sticky; bottom: 16px; z-index: 20; margin-top: 20px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; padding: 10px 10px 10px 20px; border: 1px solid rgba(242,239,232,.12); border-radius: 999px; background: rgba(14,13,11,.94); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); box-shadow: 0 16px 40px rgba(0,0,0,.45); }
.savebar p { font-size: 13px; line-height: 1.5; color: #CFC8BC; }
.savebar p.ok { color: var(--y); }
.savebar p.err { color: #FF9F6E; }
.savebar-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; }
.btn-fill { min-height: 36px; padding: 0 18px; border: 1.5px solid var(--y); border-radius: 999px; background: var(--y); color: #0A0805; font-size: 13px; font-weight: 500; cursor: pointer; }   /* 구분(클래스 · 마라톤) 알약과 같은 크기 */
.btn-fill:disabled { border-color: rgba(242,239,232,.18); background: transparent; color: #8F887C; cursor: default; }

/* notices */
.banner { margin-bottom: 24px; padding: 14px 18px; border: 1px solid rgba(255,199,44,.28); border-radius: 12px; background: rgba(255,199,44,.07); font-size: 13px; line-height: 1.6; color: #E9DDBF; }
.banner a, .needs-api a { color: var(--y); text-underline-offset: 3px; }
.banner--err { border-color: rgba(255,159,110,.4); background: rgba(255,159,110,.08); color: #FFC6A8; }
.banner--upd { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; }
/* 업데이트 알림이 화면 위로 지나가면 → 위에 작은 띠 (다른 메뉴로 가도 · 내려도) — 아직 업데이트 전이라는 걸 늘 알게 */
.upd-mini { position: fixed; top: 74px; left: 50%; z-index: 35; display: flex; align-items: center; gap: 12px; width: min(720px, calc(100% - 32px)); padding: 7px 7px 7px 18px; transform: translateX(-50%); border: 1px solid rgba(255,199,44,.5); border-radius: 999px; background: #17140E; box-shadow: 0 12px 30px rgba(0,0,0,.5); font-size: 13px; line-height: 1.4; color: #E9DDBF; }
.upd-mini[hidden] { display: none; }
.upd-mini span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.upd-mini .btn-fill { flex: none; min-height: 34px; padding: 0 16px; font-size: 12.5px; }
.upd-mini .btn-fill[hidden] { display: none; }
.banner--upd[hidden] { display: none; }
.banner--upd p { flex: 1 1 280px; margin: 0; }
.banner--upd .btn-fill { flex: none; }
.upd-prog { flex: 1 1 100%; display: flex; align-items: center; gap: 14px; }       /* '지금 업데이트' 진행 — 게이지 + 몇 % */
.upd-prog[hidden] { display: none; }
.upd-prog .gauge { flex: 1 1 auto; margin: 0; }
.upd-prog b { flex: none; min-width: 3.2em; text-align: right; font-weight: 500; font-variant-numeric: tabular-nums; color: var(--y); }
/* 처음 불러올 때 · 오래 걸리는 일 — 글자 + 게이지 */
.banner--load { position: fixed; top: 82px; left: 50%; z-index: 40; width: min(620px, calc(100% - 32px)); margin: 0; transform: translateX(-50%); border-color: rgba(255,199,44,.45); background: #15130F; box-shadow: 0 18px 50px rgba(0,0,0,.55); }   /* 위에 떠 있어요 — 사라질 때 아래 내용이 들썩이지 않게 */
.banner--load[hidden] { display: none; }
@media (max-width: 760px) { .banner--load { top: 124px; } .upd-mini { top: 128px; padding: 6px 6px 6px 14px; border-radius: 14px; font-size: 12px; } .upd-mini span { white-space: normal; } }     /* 폰: 위 메뉴 줄 아래 */
.load-top { display: flex; align-items: center; gap: 10px; margin: 0; font-size: 14px; color: var(--ink); }
.load-top b { font-weight: 500; }
.load-dot { flex: none; width: 14px; height: 14px; border: 2px solid rgba(255,199,44,.25); border-top-color: var(--y); border-radius: 50%; animation: icSpin .8s linear infinite; }
.load-sub { margin: 8px 0 0; font-size: 12.5px; color: #A39C90; }
.gauge { position: relative; height: 6px; margin-top: 10px; overflow: hidden; border-radius: 999px; background: rgba(242,239,232,.1); }
.gauge i { position: absolute; left: 0; top: 0; bottom: 0; width: 0; border-radius: inherit; background: var(--y); transition: width .3s ease; }
.gauge i::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,.55), rgba(255,255,255,0)); transform: translateX(-100%); animation: gaugeShine 1.3s ease-in-out infinite; }
@keyframes gaugeShine { to { transform: translateX(100%); } }
@media (prefers-reduced-motion: reduce) { .gauge i::after, .load-dot { animation: none; } }
.adm-main.is-loading [data-panel] { opacity: .4; pointer-events: none; transition: opacity .3s ease; }
.prog { margin-bottom: 4px; }
.adm-dlg-foot .prog { flex: 1 1 100%; }
.prog[hidden] { display: none; }
.prog-top { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin: 0; font-size: 13px; color: var(--ink); }
.prog-top b { flex: none; font-weight: 500; font-variant-numeric: tabular-nums; color: var(--y); }
.prog .gauge { margin-top: 8px; }
.banner--upd.is-warn { border-color: rgba(255,159,110,.4); background: rgba(255,159,110,.08); color: #FFC6A8; }   /* 새 기능이 아직 안 되는 예전 코드 */
.needs-api { margin-top: 20px; padding: 18px 20px; border: 1px dashed rgba(242,239,232,.2); border-radius: 14px; font-size: 14px; line-height: 1.6; color: #CFC8BC; }

/* layouts */
.adm-grid--form { grid-template-columns: minmax(0, 1fr) 340px; }
.adm-grid--half { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.side { display: grid; gap: 16px; align-content: start; }
.card-actions { display: flex; flex-wrap: wrap; gap: 4px; }
.card-foot { margin-top: 12px; }
.muted { margin-top: 8px; font-size: 13px; line-height: 1.6; color: #A39C90; }

/* forms */
fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.form h2 { font-size: 15px; font-weight: 500; }
.fld { display: block; margin-top: 14px; }
.fld span { display: block; margin-bottom: 6px; font-size: 12px; color: #A39C90; }
.fld input { width: 100%; min-height: 42px; padding: 0 12px; border: 1px solid rgba(242,239,232,.16); border-radius: 10px; background: #0A0908; color: var(--ink); font: inherit; font-size: 14px; color-scheme: dark; }
.fld input:focus { outline: none; border-color: var(--y); box-shadow: 0 0 0 3px rgba(255,199,44,.18); }
.fld textarea, .fld select { width: 100%; min-height: 42px; padding: 10px 12px; border: 1px solid rgba(242,239,232,.16); border-radius: 10px; background: #0A0908; color: var(--ink); font: inherit; font-size: 14px; line-height: 1.5; color-scheme: dark; }
.fld textarea { resize: vertical; min-height: 64px; }
.fld select { padding-top: 0; padding-bottom: 0; cursor: pointer; }
.fld textarea:focus, .fld select:focus { outline: none; border-color: var(--y); box-shadow: 0 0 0 3px rgba(255,199,44,.18); }
.fld span em { margin-left: 6px; font-style: normal; color: #8F887C; }
.fld textarea::placeholder, .fld input::placeholder { color: #6F695F; }
.sp-fields { margin-top: 22px; padding: 16px 14px 14px; border: 1px solid rgba(255,199,44,.28); border-radius: 14px; background: rgba(255,199,44,.035); }
.sp-fields legend { float: left; width: 100%; margin-bottom: 6px; padding: 0; font-size: 14px; font-weight: 500; color: var(--y); }
.sp-fields legend small { display: block; margin-top: 4px; font-size: 12px; font-weight: 400; color: #A39C90; }
.sp-fields > :not(legend) { clear: both; }
.sp-fields textarea { overflow: hidden; }
.sp-photos { display: flex; flex-wrap: wrap; gap: 8px; }
.sp-ph { position: relative; width: 112px; margin: 0; }
.sp-ph img { display: block; width: 112px; height: 76px; object-fit: cover; border-radius: 8px; background: #1A1814; }
.sp-ph-x { position: absolute; top: 4px; right: 4px; display: grid; place-items: center; width: 26px; height: 26px; padding: 0; border: 0; border-radius: 50%; background: rgba(5,5,5,.75); color: #fff; cursor: pointer; }
.sp-ph-x:hover, .sp-ph-x:focus-visible { background: var(--y); color: #0A0805; }
.sp-ph-add { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; width: 112px; height: 76px; border: 1px dashed rgba(255,199,44,.5); border-radius: 8px; color: var(--y); font-size: 12px; cursor: pointer; transition: background-color .15s ease; }
.sp-ph-add:hover, .sp-ph-add:focus-within { background: rgba(255,199,44,.1); }
.sp-preview { margin-top: 12px; color: var(--y); }
/* 날짜·시간 아이콘 — 누를 수 있는 게 보이게: 노란 아이콘 + 손 모양 + 올리면 밝아짐 (Chrome · Edge · Whale · Safari) */
.fld input::-webkit-calendar-picker-indicator { width: 18px; height: 18px; margin: 0 -4px 0 6px; padding: 5px; border-radius: 8px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFC72C' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='5' width='17' height='15.5' rx='2.5'/%3E%3Cpath d='M3.5 10h17M8 3v4M16 3v4'/%3E%3C/svg%3E") center / 18px 18px no-repeat; opacity: .75; cursor: pointer; transition: opacity .15s ease, background-color .15s ease; }
.fld input[type="time"]::-webkit-calendar-picker-indicator { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFC72C' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Cpath d='M12 7.5V12l3 2'/%3E%3C/svg%3E"); }
.fld input:hover::-webkit-calendar-picker-indicator, .fld input:focus::-webkit-calendar-picker-indicator { opacity: 1; }
.fld input::-webkit-calendar-picker-indicator:hover { opacity: 1; background-color: rgba(255,199,44,.2); }
.form .check { margin-top: 10px; }
.form-actions { margin-top: 16px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.form-note { min-height: 20px; margin-top: 12px; font-size: 13px; line-height: 1.6; color: #CFC8BC; }
.form-note a { color: var(--y); text-underline-offset: 3px; }
.btn-fill:disabled { opacity: 1; }

/* schedule table */
.table-wrap { margin-top: 12px; overflow-x: auto; }
.tbl { width: 100%; border-collapse: collapse; font-size: 13px; }
.tbl th { padding: 10px 10px 10px 0; border-bottom: 1px solid rgba(242,239,232,.14); font-weight: 400; font-size: 11px; color: #8F887C; text-align: left; white-space: nowrap; }
.tbl td { padding: 10px 10px 10px 0; border-bottom: 1px solid rgba(242,239,232,.07); color: #CFC8BC; vertical-align: middle; }
.tbl .strong { color: var(--ink); font-weight: 500; }
.tbl .nowrap { white-space: nowrap; }
.tbl .acts { padding-right: 0; text-align: right; white-space: nowrap; }
.tbl th, .tbl td { padding-right: 22px; }
.tbl .c-title { width: 100%; }                       /* 남는 폭은 세션 이름 칸이 — 장소 · 공개 · 수정 사이가 벌어지지 않게 */
.tbl .c-date, .tbl .c-time, .tbl .c-type, .tbl .c-site { white-space: nowrap; }
.tbl .c-site { padding-right: 8px; }
.tbl .c-place > span { display: block; width: max-content; max-width: 200px; }   /* 한 줄로, 아주 길 때만 200px에서 줄바꿈 */
.tbl tr.is-past td { color: #8F887C; }
.tbl tr.is-past .strong { color: #A39C90; }
.tbl tr.is-editing td { background: rgba(255,199,44,.07); }
.tbl-empty { padding: 28px 0 !important; text-align: center; color: #A39C90 !important; }
.badge { display: inline-flex; align-items: center; min-height: 22px; padding: 0 9px; border: 1px solid rgba(242,239,232,.2); border-radius: 999px; font-size: 11px; color: #A39C90; white-space: nowrap; }
.badge.is-on { border-color: rgba(255,199,44,.6); color: var(--y); }
.btn-text.danger { color: #FFB08A; }
.btn-text.is-armed { background: rgba(255,120,80,.16); color: #FFD0BC; }

/* archive list */
.albums { margin-top: 12px; }
.album-row { position: relative; display: grid; grid-template-columns: 28px 64px minmax(0, 1fr) auto; align-items: center; gap: 12px 14px; padding: 12px 0; border-bottom: 1px solid rgba(242,239,232,.07); background: #0E0D0B; }
.drag { display: grid; place-items: center; width: 28px; height: 44px; padding: 0; border: 0; border-radius: 8px; background: transparent; color: #8F887C; cursor: grab; touch-action: none; }
.drag:hover, .drag:focus-visible { background: rgba(255,199,44,.12); color: var(--y); }
.album-row.is-dragging { z-index: 2; border-radius: 12px; outline: 1.5px solid var(--y); box-shadow: 0 14px 36px rgba(0,0,0,.55); }
.album-row.is-dragging .drag { cursor: grabbing; color: var(--y); }
.album-row.is-dragging.is-out { outline-style: dashed; background: rgba(255,199,44,.06); }   /* 폴더 밖으로 끌어내는 중 — 놓으면 빠져요 */
.albums.is-sorting { user-select: none; -webkit-user-select: none; }
html:has(.albums.is-sorting) { overflow-anchor: none; }   /* 끄는 동안 브라우저가 화면을 제멋대로 옮기지 않게 */
.order-hint { margin-top: 6px; font-size: 12px; }
.order-hint span { color: var(--y); }
.badge.cat { border-color: rgba(242,239,232,.28); color: #E9E3D7; }
.badge.cat-marathon { border-color: var(--y); background: var(--y); color: #0A0805; }
.cat-fld legend { float: left; width: 100%; padding: 0; margin-bottom: 6px; font-size: 12px; color: #A39C90; }
.cat-fld legend + * { clear: both; }
.seg-radio { display: inline-flex; padding: 3px; border-radius: 999px; background: rgba(242,239,232,.06); }
.seg-radio label { position: relative; cursor: pointer; }
.seg-radio input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.seg-radio span { display: inline-flex; align-items: center; min-height: 36px; padding: 0 18px; border-radius: 999px; font-size: 13px; color: #CFC8BC; transition: background-color .15s ease, color .15s ease; }
.seg-radio label:hover span { color: var(--y); }
.seg-radio input:checked + span { background: var(--y); color: #0A0805; font-weight: 500; }
.seg-radio input:focus-visible + span { outline: 2px solid var(--y); outline-offset: 2px; }
.album-thumb { width: 56px; height: 56px; overflow: hidden; border-radius: 8px; background: #1A1814; }
.album-thumb img { width: 100%; height: 100%; object-fit: cover; }
.album-thumb img.is-broken { opacity: 0; }
.album-info { display: grid; gap: 4px; min-width: 0; }
.album-info strong { overflow: hidden; color: var(--ink); font-size: 14px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.album-info span { font-size: 12px; color: #A39C90; }
.album-acts { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 2px; }
.albums-empty { padding: 28px 0; text-align: center; font-size: 13px; color: #A39C90; }

/* page copy */
.adm-grid--texts { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); }
.tx-group { margin: 0; padding: 0; border: 0; }
.texts-form .tx-group + .tx-group { margin-top: 0; padding-top: 0; border-top: 0; }
.tx-ptabs { display: flex; flex-wrap: wrap; gap: 6px; }   /* 페이지 탭 */
.tx-ptabs button { min-height: 38px; padding: 0 16px; border: 1px solid rgba(242,239,232,.16); border-radius: 999px; background: none; color: #CFC8BC; font: inherit; font-size: 13.5px; cursor: pointer; }
.tx-ptabs button.is-on { background: var(--y); border-color: var(--y); color: #050505; font-weight: 600; }
.tx-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }   /* 섹션 칩 */
.tx-chips button { display: inline-flex; align-items: center; gap: 6px; min-height: 34px; padding: 0 12px; border: 0; border-radius: 10px; background: #161512; color: #CFC8BC; font: inherit; font-size: 12.5px; cursor: pointer; }
.tx-chips button b { color: var(--y); font-size: 10.5px; font-weight: 700; }
.tx-chips button.is-on { background: rgba(255,199,44,.14); color: var(--y); box-shadow: inset 0 0 0 1px rgba(255,199,44,.5); }
.tx-sec-h { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 4px 12px; margin-top: 16px; padding-top: 16px; border-top: 1px solid rgba(242,239,232,.08); }
.tx-sec-h h3 { font-size: 16px; font-weight: 600; color: var(--ink); }
.tx-sec-h small { font-size: 12px; color: #8F887C; }
.tx-group + .tx-group { margin-top: 18px; padding-top: 18px; border-top: 1px solid rgba(242,239,232,.08); }
.tx-group legend { float: left; width: 100%; padding: 0; font-size: 14px; font-weight: 500; color: var(--ink); }
.tx-group legend + * { clear: both; }
.tx-field { margin-top: 10px; }
.tx-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.tx-head label { font-size: 12px; color: #A39C90; }
.tx-field textarea { display: block; width: 100%; margin-top: 4px; padding: 10px 12px; border: 1px solid rgba(242,239,232,.16); border-radius: 10px; background: #0A0908; color: var(--ink); font: inherit; font-size: 14px; line-height: 1.6; resize: vertical; }
.tx-field textarea:focus { outline: none; border-color: var(--y); box-shadow: 0 0 0 3px rgba(255,199,44,.18); }
.btn-xs { min-height: 28px; padding: 0 8px; font-size: 12px; }
.texts-preview { position: sticky; top: 81px; margin-top: 0; }
.adm-main.has-upd .texts-preview { top: calc(81px + var(--upd-h, 0px)); }   /* 업데이트 알림 밑으로 */
.texts-preview .pv-screen { margin-top: 12px; aspect-ratio: 1440 / 900; }
.album-info .badge { min-height: 20px; margin-left: 6px; padding: 0 8px; font-size: 11px; vertical-align: 1px; }
.tips h2 { font-size: 15px; font-weight: 500; }
.tips ol { margin: 12px 0 0; padding-left: 18px; list-style: decimal; font-size: 13px; line-height: 1.7; color: #CFC8BC; }
.tips dl { margin-top: 12px; }
.tips dl div { padding: 10px 0; border-top: 1px solid rgba(242,239,232,.08); font-size: 12px; line-height: 1.6; }
.tips dt { color: #8F887C; }
.tips dd { margin-top: 2px; color: #CFC8BC; }
code { padding: 1px 5px; border-radius: 4px; background: rgba(242,239,232,.08); font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .92em; color: var(--ink); }

/* connect */
.conn-state { margin-top: 12px; display: flex; align-items: center; gap: 8px; font-size: 18px; font-weight: 500; }
.conn-state::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: #8F887C; }
.conn-state.is-on::before { background: var(--y); box-shadow: 0 0 0 4px rgba(255,199,44,.18); }
.conn-url { margin-top: 8px; font-size: 12px; line-height: 1.6; color: #A39C90; overflow-wrap: anywhere; }
.links { margin-top: 12px; padding-top: 8px; border-top: 1px solid rgba(242,239,232,.08); }
.links a { display: inline-flex; align-items: center; min-height: 36px; font-size: 13px; color: #CFC8BC; text-underline-offset: 3px; }
.links a:hover { color: #fff; }

@media (max-width: 1080px) {
  .adm-grid, .adm-grid--form, .adm-grid--half, .adm-grid--texts { grid-template-columns: 1fr; }
  .texts-preview { position: static; }
}
@media (max-width: 760px) {
  .adm-body { flex-direction: column; align-items: stretch; }
  .adm-nav { position: static; width: auto; flex-direction: row; overflow-x: auto; padding: 12px 16px 0; }
  .adm-nav a, .adm-nav span { flex: none; gap: 6px; }
  .pv-row { flex-direction: column; align-items: stretch; }
  .pv-mob { width: 200px; align-self: center; }
  .savebar { border-radius: 16px; }
  .savebar .open-site { display: none; }
}
@media (max-width: 480px) {
  .adm-brand .pill { display: none; }
  .adm-link { padding: 0 8px; }
}

/* ---------- 일정 — 목록 / 달력 ---------- */
.sc-head-l { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
.seg--sm { margin-top: 0; padding: 3px; }
.seg--sm button { min-height: 32px; padding: 0 14px; font-size: 13px; }
.cal { margin-top: 14px; }
.cal-head { display: flex; align-items: center; gap: 4px; }
.cal-nav { display: grid; place-items: center; width: 36px; height: 36px; padding: 0; border: 0; border-radius: 50%; background: none; color: var(--y); cursor: pointer; }
.cal-nav:hover, .cal-nav:focus-visible { background: rgba(255,199,44,.14); }
.cal-title { min-width: 92px; font-size: 16px; font-weight: 500; letter-spacing: .02em; text-align: center; color: var(--ink); }
.cal-today { margin-left: auto; }
.cal-dow { margin-top: 10px; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); font-size: 11px; color: #8F887C; }
.cal-dow span { padding: 0 8px 6px; }
.cal-dow span:first-child { color: #FF9C7A; }
.cal-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border-top: 1px solid rgba(242,239,232,.1); border-left: 1px solid rgba(242,239,232,.07); }
.cal-cell { position: relative; display: flex; flex-direction: column; gap: 3px; min-width: 0; min-height: 104px; padding: 4px 4px 6px; border-right: 1px solid rgba(242,239,232,.07); border-bottom: 1px solid rgba(242,239,232,.07); cursor: pointer; transition: background-color .15s ease; }
.cal-cell:hover { background: rgba(255,199,44,.05); }
.cal-cell.is-out { background: rgba(0,0,0,.28); }
.cal-cell.is-out .cal-num { opacity: .4; }
.cal-cell.is-drop { background: rgba(255,199,44,.12); outline: 1.5px dashed var(--y); outline-offset: -2px; }
.cal-add { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 26px; padding: 0 4px; border: 0; border-radius: 6px; background: none; color: #CFC8BC; font-size: 12px; cursor: pointer; }
.cal-num { display: inline-grid; place-items: center; min-width: 22px; height: 22px; border-radius: 50%; }
.cal-cell.is-sun .cal-num { color: #FF9C7A; }
.cal-cell.is-today .cal-num { background: var(--y); color: #0A0805; font-weight: 600; }
.cal-plus { font-size: 16px; line-height: 1; color: var(--y); opacity: 0; transition: opacity .15s ease; }
.cal-cell:hover .cal-plus, .cal-add:focus-visible .cal-plus { opacity: 1; }
.cal-ev { display: flex; align-items: baseline; gap: 5px; width: 100%; min-width: 0; padding: 3px 6px; border: 1px solid rgba(255,199,44,.35); border-radius: 6px; background: rgba(255,199,44,.08); color: var(--ink); font-size: 11.5px; line-height: 1.35; text-align: left; cursor: grab; }
.cal-ev:hover { border-color: var(--y); }
.cal-t { flex: none; color: var(--y); font-variant-numeric: tabular-nums; }
.cal-n { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cal-ev.k-int { border-color: var(--y); background: var(--y); color: #0A0805; }
.cal-ev.k-int .cal-t { color: #0A0805; font-weight: 600; }
.cal-ev.k-mar { border-color: var(--y); background: transparent; }
.cal-ev.k-baro { border: 1px solid rgba(242,239,232,.85); background: transparent; }
.cal-cell.is-past .cal-ev { opacity: .55; }
.cal-ev.is-hidden { border-style: dashed; opacity: .6; }
.cal-ev.is-editing { outline: 2px solid #fff; outline-offset: 1px; }
.cal-ev.is-dragging { opacity: .35; }
.cal-hint { margin-top: 10px; font-size: 12px; color: #8F887C; }
@media (max-width: 640px) {
  .cal-cell { min-height: 72px; padding: 2px 2px 4px; }
  .cal-n { display: none; }
  .cal-ev { justify-content: center; padding: 2px 3px; font-size: 10.5px; }
}

/* ---------- 일정 추가 · 수정 창 ---------- */
.adm-grid--one { grid-template-columns: minmax(0, 1fr); }
.sc-head-r { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; }
.pill-add { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 0 18px 0 14px; border: 0; border-radius: 999px; background: var(--y); color: #0A0805; font-size: 14px; font-weight: 500; cursor: pointer; transition: background-color .15s ease; }
.pill-add:focus-visible { background: #fff; }
@media (hover: hover) { .pill-add:hover { background: #fff; } }
.sc-msg { margin-top: 8px; min-height: 0; }
.sc-msg:empty { display: none; }
.adm-dlg { width: min(580px, calc(100% - 32px)); max-width: none; max-height: calc(100% - 40px); margin: auto; padding: 0; overflow: hidden; border: 1px solid rgba(255,199,44,.3); border-radius: 18px; background: #0E0D0B; color: var(--ink); box-shadow: 0 30px 80px rgba(0,0,0,.6); }
.adm-dlg::backdrop { background: rgba(0,0,0,.72); }
.adm-dlg[open] { animation: dlgIn .22s ease-out; }
@keyframes dlgIn { from { opacity: 0; transform: translateY(10px); } }
.adm-dlg-form { display: flex; flex-direction: column; max-height: calc(100vh - 40px); max-height: calc(100dvh - 40px); }
.adm-dlg-head { flex: none; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 16px 14px 22px; border-bottom: 1px solid rgba(242,239,232,.08); }
.adm-dlg-head h2 { font-size: 17px; font-weight: 500; color: var(--ink); }
.adm-dlg-x { display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 1px solid rgba(255,199,44,.35); border-radius: 50%; background: transparent; color: var(--y); cursor: pointer; transition: background-color .15s ease, color .15s ease; }
.adm-dlg-x:hover, .adm-dlg-x:focus-visible { background: var(--y); color: #0A0805; }
.adm-dlg-body { flex: 1 1 auto; min-height: 0; overflow: auto; overscroll-behavior: contain; padding: 4px 22px 22px; }
.adm-dlg-foot { flex: none; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 12px; padding: 12px 16px 14px 22px; border-top: 1px solid rgba(242,239,232,.08); background: #0E0D0B; }
.adm-dlg-foot .form-note { flex: 1 1 200px; margin-top: 0; }
.adm-dlg-foot .form-actions { margin-top: 0; margin-left: auto; flex-wrap: nowrap; }
.adm-dlg-foot [data-dlg-cancel] { min-height: 36px; padding: 0 18px; background: rgba(242,239,232,.07); color: #F2EFE8; }   /* 닫기도 저장처럼 알약 */
.adm-dlg-foot [data-dlg-cancel]:hover { background: rgba(242,239,232,.13); }
/* 고치기 창 — 링크 주소 · 아래쪽 출처 */
.link-box { position: relative; }
.link-box input { padding-left: 38px; padding-right: 80px; text-overflow: ellipsis; }
.fld textarea.url-ta { display: block; min-height: 42px; height: 42px; padding: 10px 12px; resize: none; overflow: hidden; word-break: break-all; }   /* 링크 칸 — 한 줄, R2 주소를 여러 줄 넣으면 늘어나요 */
.link-box textarea.url-ta { padding-left: 38px; padding-right: 80px; }
.link-box .link-ic { top: 21px; }
.link-box .link-go { top: 21px; }
.link-fld textarea[readonly] { color: #A39C90; cursor: default; }
.link-fld textarea[readonly]:focus { border-color: rgba(242,239,232,.16); box-shadow: none; }
.src-r2 { font-size: 9px; font-weight: 800; letter-spacing: .02em; color: #F6821F; }   /* 목록 사진 위 출처: R2 */
.r2-det { display: grid; gap: 6px; margin-top: 8px; }   /* R2 영상 주소 — 열어 본 결과 */
.r2-det[hidden] { display: none; }
.r2-v { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 6px; border: 1px solid rgba(126,226,154,.25); border-radius: 10px; background: rgba(126,226,154,.05); }
.r2-v.is-wait { border-color: rgba(242,239,232,.14); background: none; }
.r2-v.is-bad { border-color: rgba(255,155,106,.35); background: rgba(255,155,106,.05); }
.r2-v i { position: relative; display: block; aspect-ratio: 16 / 9; border-radius: 5px; background: #1a1915 center / cover no-repeat; overflow: hidden; }
.r2-v i::after { content: '▶'; position: absolute; inset: 0; display: grid; place-items: center; color: rgba(255,255,255,.8); font-size: 10px; font-style: normal; }
.r2-v b { display: block; overflow: hidden; font-size: 13px; font-weight: 500; color: var(--ink); white-space: nowrap; text-overflow: ellipsis; }
.r2-v small { display: block; margin-top: 2px; font-size: 11.5px; color: #8F887C; }
.r2-v .r2-st { font-size: 11.5px; color: #7EE29A; white-space: nowrap; }
.r2p-open { display: flex; align-items: center; gap: 8px; width: 100%; margin-top: 8px; padding: 9px 12px; border: 1px dashed rgba(126,226,154,.4); border-radius: 10px; background: rgba(126,226,154,.04); color: #7EE29A; font: inherit; font-size: 13px; font-weight: 500; cursor: pointer; text-align: left; }   /* R2 에서 고르기 */
.r2p-open small { margin-left: auto; font-size: 11.5px; font-weight: 400; color: #8F887C; }
.r2p-open:hover { border-style: solid; background: rgba(126,226,154,.08); }
.r2p-dlg .adm-dlg-head { gap: 10px; }
.r2p-key { margin-left: auto; padding: 5px 10px; border: 1px solid rgba(242,239,232,.16); border-radius: 999px; background: none; color: #A39C90; font: inherit; font-size: 12px; cursor: pointer; }
.r2p-key:hover { color: var(--ink); border-color: rgba(242,239,232,.32); }
.r2p-key[hidden] { display: none; }
.r2p-guide { margin: 0 0 14px; padding: 12px 14px 12px 32px; border-radius: 12px; background: rgba(242,239,232,.05); font-size: 13px; line-height: 1.6; color: #CFC8BB; }
.r2p-guide b { color: var(--ink); font-weight: 600; }
.r2p-guide em { display: block; font-style: normal; font-size: 12px; color: #FFC72C; }
.r2p-safe { margin: 4px 0 0; font-size: 12px; line-height: 1.5; color: #8F887C; }
.r2p-cfg-act { display: flex; justify-content: flex-end; gap: 8px; margin-top: 14px; }
.r2p-cfg-act [hidden] { display: none; }
.r2p-crumb { display: flex; flex-wrap: wrap; align-items: center; gap: 2px; margin-bottom: 10px; font-size: 13px; color: #6F695F; }
.r2p-crumb button { padding: 3px 6px; border: 0; border-radius: 6px; background: none; color: #A39C90; font: inherit; cursor: pointer; }
.r2p-crumb button:last-child { color: var(--ink); font-weight: 600; }
.r2p-crumb button:hover { background: rgba(242,239,232,.08); }
.r2p-all { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-bottom: 1px solid rgba(242,239,232,.1); font-size: 13px; color: #CFC8BB; cursor: pointer; }
.r2p-all[hidden] { display: none; }
.r2p-all em { margin-left: auto; font-style: normal; font-size: 12px; color: #FFC72C; }
.r2p-rows { display: grid; max-height: min(52vh, 460px); overflow-y: auto; overscroll-behavior: contain; }
.r2p-row { display: flex; align-items: center; gap: 10px; min-height: 46px; padding: 6px 10px; border: 0; border-bottom: 1px solid rgba(242,239,232,.06); background: none; color: var(--ink); font: inherit; font-size: 13.5px; text-align: left; cursor: pointer; }
.r2p-row:hover { background: rgba(242,239,232,.04); }
.r2p-row.is-dir svg { flex: none; color: #FFC72C; }
.r2p-row.is-dir span { flex: 1; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.r2p-row.is-dir i { font-style: normal; color: #6F695F; }
.r2p-row input { flex: none; width: 17px; height: 17px; accent-color: #FFC72C; }
.r2p-all input { width: 17px; height: 17px; accent-color: #FFC72C; }
.r2p-row.is-file span { flex: 1; min-width: 0; }
.r2p-row b { display: block; overflow: hidden; font-weight: 500; white-space: nowrap; text-overflow: ellipsis; }
.r2p-row small { display: block; margin-top: 1px; overflow: hidden; font-size: 11.5px; color: #8F887C; white-space: nowrap; text-overflow: ellipsis; }
.r2p-row.is-used { cursor: default; opacity: .5; }
.r2p-row em { flex: none; padding: 2px 8px; border-radius: 999px; background: rgba(126,226,154,.12); font-style: normal; font-size: 11px; color: #7EE29A; }
.r2p-empty { margin: 0; padding: 18px 10px; font-size: 13px; color: #8F887C; text-align: center; }
.r2p-dlg .adm-dlg-foot[hidden] { display: none; }
.r2p-as { flex: 1 1 100%; width: 100%; margin-bottom: 10px; }
.kseg.kseg--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.r2-v.is-bad .r2-st { color: #FF9B6A; }
.r2-v.is-wait .r2-st { color: #8F887C; }
.r2-sum { font-size: 12.5px; color: #CFC8BC; }
.r2-sum b { color: var(--y); font-weight: 600; }
.link-ic { position: absolute; left: 13px; top: 50%; display: block; width: 16px; height: 16px; margin-top: -8px; color: var(--y); pointer-events: none; }
.link-ic svg { display: block; width: 16px; height: 16px; }
.link-go { position: absolute; right: 6px; top: 50%; display: inline-flex; align-items: center; gap: 4px; min-height: 30px; padding: 0 10px; border-radius: 999px; background: rgba(242,239,232,.07); color: #CFC8BC; font-size: 12px; text-decoration: none; transform: translateY(-50%); }
.link-go:hover { background: rgba(242,239,232,.13); color: #fff; }
.link-fld input[readonly] { color: #A39C90; cursor: default; }
.link-fld input[readonly]:focus { border-color: rgba(242,239,232,.16); box-shadow: none; }
.fld-note { margin-top: 6px; font-size: 12px; line-height: 1.5; color: #8F887C; }
.fld-note:empty { display: none; }
.adm-dlg-foot .dlg-src { flex: 1 1 200px; display: flex; align-items: center; gap: 6px; min-width: 0; margin: 0; font-size: 12.5px; color: #A39C90; }
.dlg-src svg { flex: none; width: 14px; height: 14px; color: var(--y); }
.adm-dlg-foot [data-ar-edit-msg]:empty { display: none; }
.adm-dlg-foot [data-ar-edit-msg]:not(:empty) + .dlg-src { display: none; }
@media (max-width: 640px) {
  .adm-dlg { width: calc(100% - 16px); max-height: calc(100% - 16px); border-radius: 14px; }
  .adm-dlg-form { max-height: calc(100vh - 16px); max-height: calc(100dvh - 16px); }
  .adm-dlg-body { padding: 4px 16px 18px; }
}

/* ---------- 일정 창 — 웹은 아이패드 가로 비율 (4:3) 두 칸, 폰 · 좁은 창은 한 줄 그대로 ---------- */
@media (min-width: 900px) {
  .adm-dlg--wide { width: min(1040px, calc(100vw - 64px), calc((100vh - 40px) * 4 / 3)); width: min(1040px, calc(100vw - 64px), calc((100dvh - 40px) * 4 / 3)); aspect-ratio: 4 / 3; }
  .adm-dlg--wide[open] { display: flex; flex-direction: column; }
  .adm-dlg--wide .adm-dlg-form { flex: 1 1 auto; min-height: 0; max-height: none; }
  .adm-dlg--wide .adm-dlg-head, .adm-dlg--wide .adm-dlg-foot { padding-left: 28px; }
  .adm-dlg--wide .adm-dlg-body { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 8fr); grid-template-rows: repeat(5, auto) 1fr; column-gap: 28px; align-content: start; padding: 4px 28px 4px; }
  .adm-dlg--wide .adm-dlg-body > * { grid-column: 1; }
  .adm-dlg--wide .adm-dlg-body > .check { justify-self: start; }
  .adm-dlg--wide .adm-dlg-body > .sp-fields { grid-column: 2; grid-row: 1 / -1; align-self: start; margin-top: 10px; }
  .sp-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 12px; align-items: start; }
  .sp-fields > * { grid-column: 1 / -1; min-width: 0; }
  .sp-fields > .fld { margin-top: 12px; }
  .sp-fields legend { margin-bottom: 0; }
  .sp-fields > .sp-half, .sp-fields > .sp-photo-fld { grid-column: auto; }
  .sp-fields > .sp-preview { grid-column: 2; justify-self: end; align-self: end; }
}

/* ---------- 아카이브 — 목록 한 칸 · 링크 연결 / 새 폴더는 창으로 ---------- */
.adm-dlg--sm { width: min(480px, calc(100% - 32px)); }
.adm-dlg--sm .adm-dlg-body { padding-bottom: 18px; }
.dlg-note { margin-top: 12px; font-size: 12.5px; line-height: 1.6; color: #A39C90; }
.dlg-note code { padding: 1px 5px; border-radius: 4px; background: rgba(242,239,232,.08); font-size: 11.5px; color: #E9E3D7; }
.ar-head-r { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 6px; margin-left: auto; }   /* 줄이 넘어가도 오른쪽 끝 */
.ar-tool { gap: 6px; }
.ar-head-r .pill-add { min-height: 36px; padding: 0 16px 0 12px; font-size: 13px; }
.pill-add.is-line { background: transparent; color: var(--y); box-shadow: inset 0 0 0 1.5px rgba(255,199,44,.6); }
@media (hover: hover) { .pill-add.is-line:hover { background: rgba(255,199,44,.12); } }
.album-thumb, .album-info { cursor: pointer; }
.album-row .ar-more { display: none; }
[data-order-msg]:empty { display: none; }
a.sc-m-item { text-decoration: none; }

/* ---------- 아카이브 — 메인 페이지 모양 · 목록 / 카드 보기 ---------- */
.ar-layout { padding: 4px 20px; }
.ar-lrow { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; min-height: 60px; padding: 8px 0; }
.ar-lrow + .ar-lrow { border-top: 1px solid rgba(242,239,232,.08); }
.ar-lrow h2 { flex: none; width: 128px; font-size: 14px; font-weight: 500; }
.ar-layout .seg-radio span { gap: 8px; }
.ar-lgo { margin-left: auto; }
.ar-sw-note { font-size: 12.5px; color: #A39C90; }
.ar-tabs-mini { display: flex; align-items: flex-end; gap: 14px; margin-left: auto; padding: 7px 14px; border-radius: 10px; background: #050505; font-size: 17px; font-weight: 300; line-height: 1; letter-spacing: -.02em; color: rgba(255,199,44,.45); }
.ar-tabs-mini span:last-child { color: var(--y); transition: color .2s ease; }
.ar-tabs-mini.is-off span:last-child { color: rgba(255,199,44,.22); text-decoration: line-through; }
.ar-layout .form-note { margin: 0 0 12px; }
.ar-layout .form-note:empty { display: none; }
@media (max-width: 760px) {
  .ar-layout { padding: 2px 16px; }
  .ar-lrow h2 { width: 100%; }
  .ar-tabs-mini { display: none; }
}
.ar-head-l { flex: none; display: flex; align-items: center; gap: 10px 14px; }
.ar-head-l .seg { flex-wrap: nowrap; white-space: nowrap; }
.album-row { grid-template-columns: 22px 24px 56px minmax(0, 1fr) auto; justify-content: stretch; gap: 10px 14px; padding: 10px 0; }
.drag { width: 24px; }
.album-thumb { position: relative; overflow: visible; background: #1A1814; }
.album-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 8px; background: #1A1814; }
.src-chip { position: absolute; right: -6px; bottom: -6px; display: grid; place-items: center; width: 24px; height: 24px; border: 1px solid rgba(255,199,44,.6); border-radius: 50%; background: #0E0D0B; color: var(--y); }
.src-chip svg { display: block; width: 12px; height: 12px; }
.album-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; }
.album-row .album-meta { margin-top: 0; font-size: 12px; }   /* 사이트 앨범 머리글(.album-meta)의 위 여백이 끼어들지 않게 */
.ai-credit { display: inline-flex; align-items: center; gap: 4px; }
.album-info .badge { margin-left: 0; }
.ai-title { display: flex; align-items: center; gap: 8px; min-width: 0; }
.ai-title strong { min-width: 0; }
.ai-title .badge { flex: none; }
.album-acts { flex-wrap: nowrap; justify-content: flex-end; gap: 4px; }   /* 오른쪽 끝 정렬 */
.album-cell, .album-cols { display: none; }
.ic-btn { position: relative; display: grid; place-items: center; flex: none; width: 30px; height: 30px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: #CFC8BC; cursor: pointer; transition: color .15s ease, background-color .15s ease; }
.ic-btn:hover, .ic-btn:focus-visible { color: var(--y); background: rgba(255,199,44,.14); }
.ic-btn.danger { color: #FFB08A; }
.ic-btn.danger:hover, .ic-btn.danger:focus-visible { color: #FFB08A; background: rgba(255,120,80,.14); }
.ic-btn.is-armed, .ic-btn.is-armed:hover { background: #E5704A; color: #0A0805; }
.ic-slot { display: block; flex: none; width: 30px; height: 30px; }
.ic-btn:disabled { opacity: .5; cursor: default; }
.ic-btn.is-busy svg { animation: icSpin 1s linear infinite; }
@keyframes icSpin { to { transform: rotate(360deg); } }
.ic-btn[data-tip]::after, .src-chip[data-tip]::after { content: attr(data-tip); position: absolute; bottom: calc(100% + 8px); left: 50%; z-index: 8; padding: 5px 9px; border-radius: 6px; background: #F2EFE8; color: #0A0805; font-size: 11.5px; line-height: 1.3; white-space: nowrap; pointer-events: none; opacity: 0; transform: translate(-50%, 4px); transition: opacity .15s ease, transform .15s ease; }
.ic-btn[data-tip]:hover::after, .ic-btn[data-tip]:focus-visible::after, .src-chip[data-tip]:hover::after { opacity: 1; transform: translate(-50%, 0); }
@media (hover: none) { .ic-btn[data-tip]::after, .src-chip[data-tip]::after { display: none; } }
/* 카드 보기 — 마우스를 올리면 사진 아래에 아이콘 막대 */
.albums--card { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 18px 14px; }
.albums--card .album-row { grid-template-columns: minmax(0, 1fr); grid-template-areas: "cover" "info"; align-items: start; justify-content: stretch; gap: 10px; padding: 0; border: 0; background: none; }
.albums--card .album-thumb { grid-area: cover; width: 100%; height: auto; aspect-ratio: 4 / 3; }
.albums--card .album-thumb, .albums--card .album-thumb img { border-radius: 12px; }
.albums--card .src-chip { top: 10px; left: 46px; right: auto; bottom: auto; width: 30px; height: 30px; border: 0; background: rgba(5,5,5,.62); }
.albums--card .src-chip svg { width: 16px; height: 16px; }
.albums--card .drag { grid-area: cover; align-self: start; justify-self: end; z-index: 3; width: 32px; height: 32px; margin: 8px; border-radius: 50%; background: rgba(5,5,5,.62); color: #F2EFE8; }
.albums--card .album-acts { grid-area: cover; align-self: end; justify-self: center; z-index: 3; margin-bottom: 10px; gap: 2px; padding: 4px; border-radius: 999px; background: rgba(14,13,11,.92); box-shadow: 0 8px 24px rgba(0,0,0,.5); opacity: 0; transform: translateY(6px); pointer-events: none; transition: opacity .2s ease, transform .2s ease; }
.albums--card .album-row:hover .album-acts, .albums--card .album-row:focus-within .album-acts { opacity: 1; transform: none; pointer-events: auto; }
.albums--card .ic-btn { width: 34px; height: 34px; border: 0; color: #F2EFE8; }
.albums--card .ic-btn:hover, .albums--card .ic-btn:focus-visible { background: var(--y); color: #0A0805; }
.albums--card .ic-btn.danger { color: #FFB08A; }
.albums--card .ic-btn.danger:hover, .albums--card .ic-btn.danger:focus-visible, .albums--card .ic-btn.is-armed { background: #E5704A; color: #0A0805; }
.albums--card .album-info { grid-area: info; }
.albums--card .album-info strong { display: -webkit-box; overflow: hidden; white-space: normal; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.albums--card .album-row.is-dragging { outline-offset: 4px; box-shadow: none; }
.albums--card .albums-empty { grid-column: 1 / -1; }
.albums--card .ic-slot { display: none; }
.albums--card .ai-title { display: block; }

/* 목록 보기 — 넓으면 표처럼 한 줄 (C안): 세션 · 날짜 · 사진·영상 · 작가 · 구분 · 버튼 (오른쪽 끝) */
.ar-list { container: arlist / inline-size; }
@container arlist (min-width: 980px) {
  .album-cols:not([hidden]), .albums:not(.albums--card) .album-row { grid-template-columns: 22px 24px 52px minmax(0, 2fr) 118px minmax(150px, 1.3fr) minmax(112px, 1.2fr) 72px 150px; column-gap: 14px; }   /* 남는 폭은 세션 · 종류 · 작가가 나눠요 (작가가 잘리지 않게) */
  .album-cols:not([hidden]) { display: grid; align-items: end; margin-top: 12px; padding-bottom: 10px; border-bottom: 1px solid rgba(242,239,232,.1); font-size: 12.5px; color: #8F887C; }
  .albums:not(.albums--card) { margin-top: 0; }
  .albums:not(.albums--card) .album-row { padding: 10px 0; }
  .albums:not(.albums--card) .album-thumb { width: 52px; height: 52px; }
  .albums:not(.albums--card) .src-chip { right: -6px; bottom: -6px; width: 22px; height: 22px; }
  .albums:not(.albums--card) .src-chip svg { width: 12px; height: 12px; }
  .albums:not(.albums--card) .album-info strong { font-size: 14px; }   /* 세션 이름도 옆 칸(날짜 · 종류 · 작가)과 같은 크기 */
  .albums:not(.albums--card) .album-meta { display: none; }
  .albums:not(.albums--card) .album-cell { display: block; overflow: hidden; font-size: 14px; color: #CFC8BC; white-space: nowrap; text-overflow: ellipsis; cursor: pointer; }
  .albums:not(.albums--card) .c-credit.is-empty { color: #6F695F; }
  .albums:not(.albums--card) .c-cat .badge { min-height: 23px; padding: 0 10px; font-size: 12px; }
  .albums:not(.albums--card) .ic-btn, .albums:not(.albums--card) .ic-slot { width: 30px; height: 30px; }   /* 오른쪽 버튼 사이를 좁게 */
  .albums:not(.albums--card) .album-acts { gap: 0; }
  .albums:not(.albums--card) .ic-btn svg { width: 17px; height: 17px; }
  .albums:not(.albums--card) .ai-sub { display: inline; }
  .albums:not(.albums--card) .album-row.is-child .album-thumb { width: 40px; height: 40px; }
}

/* ---------- 두 칸씩 (날짜 · 시간 / 세션 이름 · 구분) ---------- */
.fld-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 12px; }
.fld-row .fld { min-width: 0; }
.fld-row input { min-width: 0; }

/* ---------- 스크롤바 — 노랑 (A안) ---------- */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track, ::-webkit-scrollbar-corner { background: transparent; }
::-webkit-scrollbar-thumb { border: 2px solid transparent; border-radius: 999px; background: var(--y) padding-box; }
::-webkit-scrollbar-thumb:hover { background-color: #FFD966; }
@supports not selector(::-webkit-scrollbar) {
  html { scrollbar-width: thin; scrollbar-color: var(--y) transparent; }
}

/* ---------- 일정 — 폰 목록 ---------- */
.sc-m { display: none; }
.sc-m li { position: relative; display: flex; align-items: center; gap: 4px; border-bottom: 1px solid rgba(242,239,232,.07); }
.sc-m li:last-child { border-bottom: 0; }
.sc-m li.is-menu { z-index: 6; }
.sc-m-main { flex: 1 1 auto; min-width: 0; display: flex; align-items: center; gap: 12px; padding: 12px 0; border: 0; background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.sc-tile { flex: none; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; width: 56px; height: 56px; border: 1px solid rgba(255,199,44,.55); border-radius: 12px; color: var(--y); line-height: 1; }
.sc-tile b { font-size: 17px; font-weight: 300; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.sc-tile small { font-size: 11px; color: #CFC8BC; }
.sc-m-txt { min-width: 0; display: flex; flex-direction: column; gap: 5px; }
.sc-m-t { display: flex; align-items: center; gap: 6px; min-width: 0; }
.sc-m-name { min-width: 0; font-size: 15px; font-weight: 500; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sc-m-t .badge { flex: none; min-height: 20px; padding: 0 8px; }
.sc-m-meta { font-size: 12px; color: #A39C90; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sc-m-meta b { font-weight: 500; color: #E9E3D7; }
.sc-m-more { flex: none; display: grid; place-items: center; width: 44px; height: 44px; margin-right: -12px; padding: 0; border: 0; border-radius: 50%; background: none; color: #CFC8BC; cursor: pointer; }
.sc-m-more[aria-expanded="true"] { background: rgba(255,199,44,.14); color: var(--y); }
.sc-m-menu { position: absolute; top: calc(100% - 14px); right: -8px; z-index: 5; width: 188px; padding: 6px; border: 1px solid rgba(255,199,44,.3); border-radius: 12px; background: #171612; box-shadow: 0 18px 40px rgba(0,0,0,.6); }
.sc-m-item { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 44px; padding: 0 12px; border: 0; border-radius: 8px; background: none; color: var(--ink); font-size: 14px; text-align: left; cursor: pointer; }
.sc-m-item svg { flex: none; }
.sc-m-item.is-vis { color: var(--y); }
.sc-m-item.danger { color: #FFB08A; }
.sc-m-item.is-armed { background: rgba(255,120,80,.16); color: #FFD0BC; }
.sc-m-item:disabled { opacity: .5; cursor: default; }
@media (hover: hover) {
  .sc-m-main:hover .sc-m-name { color: #fff; }
  .sc-m-more:hover { background: rgba(242,239,232,.07); }
  .sc-m-item:hover { background: rgba(242,239,232,.07); }
}
.sc-m li.is-hidden .sc-tile { border-style: dashed; border-color: rgba(242,239,232,.32); color: #8F887C; }
.sc-m li.is-hidden .sc-tile small, .sc-m li.is-hidden .sc-m-meta { color: #8F887C; }
.sc-m li.is-hidden .sc-m-name, .sc-m li.is-hidden .sc-m-meta b { color: #A39C90; }
.sc-m li.is-past .sc-m-main { opacity: .6; }
.sc-m-empty { padding: 20px 0; text-align: center; font-size: 13px; color: #A39C90; }

/* ---------- 모바일 관리자 ---------- */
@media (max-width: 760px) {
  .adm-nav { position: sticky; top: 65px; z-index: 25; gap: 4px; padding: 8px 16px; border-bottom: 1px solid rgba(242,239,232,.08); background: rgba(8,8,7,.94); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
    scrollbar-width: none; -ms-overflow-style: none; -webkit-mask-image: linear-gradient(to right, #000 88%, transparent); mask-image: linear-gradient(to right, #000 88%, transparent); }
  .adm-nav::-webkit-scrollbar { display: none; }
  .adm-nav a { min-height: 38px; padding: 0 12px; font-size: 14px; white-space: nowrap; }
  .adm-nav span[aria-disabled] { display: none; }
  .adm-main { padding-top: 22px; }
  .adm-head h1 { font-size: 24px; }
  .card { padding: 16px; border-radius: 14px; }
}
@media (max-width: 640px) {
  /* 일정: 표 대신 폰 목록 (날짜 칸 + 한 줄 요약 + ⋯ 메뉴) */
  [data-sc-list] .tbl { display: none; }
  .sc-m { display: block; margin-top: 6px; }
  .table-wrap { overflow: visible; }
  .hide-sm { display: none; }
  .card-head:has(.sc-head-l) { flex-wrap: nowrap; }
  .sc-head-l h2 { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .sc-head-r { flex: 1 1 auto; flex-wrap: nowrap; gap: 8px; }
  .sc-head-r .check { min-height: 36px; font-size: 13px; white-space: nowrap; }
  .pill-add { margin-left: auto; min-height: 36px; padding: 0 14px 0 11px; font-size: 13px; }
  .seg--sm button { padding: 0 12px; }
  .card-head:has(.ar-head-r) { flex-wrap: nowrap; }
  #ar-list { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .card-head:has(.ar-head-r) { column-gap: 10px; }
  .ar-head-l .seg--sm button { padding: 0 11px; }
  .ar-head-r { flex: 1 1 auto; flex-wrap: nowrap; justify-content: flex-start; gap: 4px; }
  .ar-head-r .pill-add { order: -1; gap: 4px; padding: 0 12px 0 9px; }
  .ar-head-r .ar-tool { width: 32px; padding: 0; justify-content: center; }   /* 새로고침 · 백업 — 아이콘만 (한 줄에 다 들어가게) */
  .ar-head-r .ar-tool:first-of-type { margin-left: auto; }
  .order-hint { display: none; }
  .album-row { grid-template-columns: 20px 22px 52px minmax(0, 1fr) 32px; justify-content: stretch; gap: 10px 10px; }
  .album-thumb { width: 52px; height: 52px; }
  .ar-selbar { border-radius: 16px; padding: 6px 6px 10px 14px; }
  .sbtn { padding: 0 12px; }
  .ar-selbar .ar-selcount { flex: 1 1 55%; }             /* 첫 줄: 개수 · 선택 해제 / 둘째 줄: 옮기기 · 삭제 */
  .ar-selbar [data-ar-selclear] { order: 1; }
  .ar-selbar .ar-movewrap, .ar-selbar [data-ar-pair] { order: 2; }
  .ar-selbar .sbtn.is-del { order: 3; }
  .ar-head-r .ar-tool[data-link] { display: none; }
  .ar-head-l h2 { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .albums--card { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 10px; }
  .albums--card .album-row { grid-template-columns: minmax(0, 1fr) 28px; grid-template-areas: "cover cover" "info more"; gap: 8px 4px; }
  .albums--card .album-row .ar-more { grid-area: more; align-self: start; width: 32px; height: 32px; margin: -4px -8px 0 0; }
  .albums--card .album-meta .badge { display: none; }
  .album-acts { display: none; }
  .album-row .ar-more { display: grid; }
  .album-row.is-menu { z-index: 6; }
  .album-info .ai-credit { display: none; }
  .cal-grid { margin: 0 -6px; }
  .cal-title { min-width: 80px; font-size: 15px; }
}
@media (max-width: 360px) {
  .fld-row { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- 아카이브 — 고르기 · 폴더 ---------- */
.ar-ck { position: relative; display: grid; place-items: center; width: 22px; height: 22px; cursor: pointer; }
.ar-ck input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.ar-ck-box { display: grid; place-items: center; width: 20px; height: 20px; border: 1.5px solid rgba(242,239,232,.35); border-radius: 6px; color: transparent; transition: background-color .12s ease, border-color .12s ease; }
.ar-ck-box svg { display: block; }
.ar-ck:hover .ar-ck-box { border-color: rgba(255,199,44,.7); }
.ar-ck input:checked + .ar-ck-box { border-color: var(--y); background: var(--y); color: #0A0805; }
.ar-ck input:indeterminate + .ar-ck-box { border-color: var(--y); background: var(--y); color: transparent; box-shadow: inset 0 0 0 5px var(--y), inset 0 0 0 10px #0A0805; }
.ar-ck input:focus-visible + .ar-ck-box { outline: 2px solid var(--y); outline-offset: 2px; }
.album-row.is-sel { background: rgba(255,199,44,.07); box-shadow: inset 3px 0 0 var(--y); }
/* 묶음 — 대표 앨범 '묶음 +N' · 묶인 앨범 '묶임' (사이트에서는 대표 앨범 안에) */
.badge.pair { display: inline-flex; align-items: center; gap: 4px; border-color: rgba(255,199,44,.55); color: var(--y); white-space: nowrap; }
.badge.pair.is-sub { border-color: rgba(242,239,232,.25); color: #A39C90; }
.album-row.is-paired .album-thumb img, .album-row.is-paired .album-cell, .album-row.is-paired .ai-name { opacity: .6; }
/* 백업 창 */
.bk-head { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; align-items: center; gap: 12px; margin-top: 14px; padding: 0 2px 8px; border-bottom: 1px solid rgba(242,239,232,.1); font-size: 12px; color: #8F887C; }
.bk-list { display: grid; margin: 0; padding: 0; list-style: none; max-height: 52vh; overflow: auto; }
.bk-row { position: relative; display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; align-items: center; gap: 4px 12px; padding: 10px 2px 12px; border-bottom: 1px solid rgba(242,239,232,.07); }
.bk-row.is-now { background: rgba(255,199,44,.06); }
.bk-name { display: grid; gap: 2px; min-width: 0; }
.bk-name b { overflow: hidden; font-size: 14px; font-weight: 500; color: var(--ink); white-space: nowrap; text-overflow: ellipsis; }
.bk-name small { overflow: hidden; font-size: 12px; color: #8F887C; white-space: nowrap; text-overflow: ellipsis; }
.bk-st { display: flex; align-items: center; gap: 10px; font-size: 12.5px; color: #CFC8BC; white-space: nowrap; }
.bk-row.is-done .bk-txt { color: var(--y); }
.bk-st a { color: var(--y); }
.bk-bar { position: absolute; left: 36px; right: 2px; bottom: 4px; height: 2px; border-radius: 2px; background: rgba(242,239,232,.08); overflow: hidden; }
.bk-bar i { display: block; height: 100%; background: var(--y); transition: width .3s ease; }
.bk-empty { padding: 18px 2px; font-size: 13px; color: #A39C90; }
.bk-set { display: grid; margin-top: 4px; border: 1px solid rgba(255,199,44,.22); border-radius: 14px; background: rgba(255,199,44,.035); }   /* 매일 밤 자동 · 사진 크기 */
.bk-opt { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 14px; }
.bk-opt + .bk-opt { border-top: 1px solid rgba(242,239,232,.08); }
.bk-opt-t { display: grid; gap: 3px; min-width: 0; }
.bk-opt-t b { font-size: 14px; font-weight: 600; color: var(--ink); }
.bk-opt-t small { font-size: 12px; line-height: 1.5; color: #8F887C; }
.bk-opt-t small em { font-style: normal; color: #7EE29A; }
.seg-radio--sm span { min-height: 30px; padding: 0 12px; font-size: 12.5px; }
.bk-where { flex-wrap: wrap; }
.bk-where .bk-opt-t { flex: 1 1 0; }   /* 저장 위치: 기본 (EXNOR 사이트 › 백업) · 다른 계정 공유 드라이브 폴더 */
.bk-opt-t small b { font-weight: 500; color: #CFC8BC; }
.bk-opt-t small .is-warn { color: #FF9B6A; }
.bk-root-f { display: flex; flex-wrap: wrap; gap: 8px; width: 100%; }
.bk-root-f[hidden] { display: none; }
.bk-root-b { display: inline-flex; align-items: center; gap: 6px; flex: none; }
.bk-root-b [hidden] { display: none; }
.bk-root-f input { flex: 1 1 260px; min-width: 0; min-height: 36px; padding: 0 12px; border: 1px solid rgba(242,239,232,.16); border-radius: 10px; background: #0A0908; color: var(--ink); font: inherit; font-size: 13px; }
.bk-root-f input:focus { outline: none; border-color: var(--y); }
.bk-tabs { display: flex; flex-wrap: wrap; width: max-content; max-width: 100%; margin-top: 14px; }   /* 백업 목록: 사진 · 영상 · 릴스 · 전체 */
.bk-tabs button small { margin-left: 4px; opacity: .7; font-size: 11px; }
.bk-use { margin-top: 10px; font-size: 12px; color: #8F887C; }
.bk-use b { font-weight: 500; color: #CFC8BC; }
.bk-txt.is-gone { color: #FF9B6A; }
.bk-badge { margin-left: 6px; padding: 1px 7px; border-radius: 99px; background: rgba(120,220,140,.15); color: #7EE29A; font-size: 11px; font-weight: 600; }
.bk-badge[hidden] { display: none; }
.bk-float { position: fixed; right: 20px; bottom: 20px; z-index: 60; display: flex; align-items: center; gap: 12px; max-width: min(420px, calc(100vw - 32px)); padding: 12px 16px; border: 1px solid rgba(255,199,44,.5); border-radius: 16px; background: #141311; color: var(--ink); font: inherit; text-align: left; box-shadow: 0 16px 44px rgba(0,0,0,.55); cursor: pointer; }   /* 창을 닫아도 '백업 중입니다' */
.bk-float[hidden] { display: none; }
.bk-float > span:nth-child(2) { display: grid; gap: 2px; min-width: 0; }
.bk-float b { font-size: 13.5px; font-weight: 600; color: var(--y); }
.bk-float small { overflow: hidden; font-size: 12px; color: #CFC8BC; white-space: nowrap; text-overflow: ellipsis; }
.bk-float-i { flex: none; width: 18px; height: 18px; border: 2px solid rgba(255,199,44,.25); border-top-color: var(--y); border-radius: 50%; animation: bkSpin .9s linear infinite; }
@keyframes bkSpin { to { transform: rotate(360deg); } }
.bk-float-go { flex: none; padding: 5px 11px; border-radius: 99px; background: var(--y); color: #0A0805; font-size: 12px; font-weight: 700; }
.bk-float.is-done { cursor: default; font-size: 13px; }
@media (prefers-reduced-motion: reduce) { .bk-float-i { animation: none; border-color: var(--y); } }
@media (max-width: 720px) { .bk-float { left: 12px; right: 12px; bottom: 12px; max-width: none; } }
.ar-notice { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 10px 16px; margin: 0 0 16px; padding: 14px 16px; border: 1px solid rgba(255,199,44,.45); border-radius: 14px; background: rgba(255,199,44,.07); }   /* 원본이 안 열려서 백업 폴더로 바꾼 앨범 알림 */
.ar-notice[hidden] { display: none; }
.ar-notice ul { flex: 1 1 320px; display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.ar-notice li { font-size: 13.5px; line-height: 1.55; color: var(--ink); }
.ar-notice li b { color: var(--y); font-weight: 600; }
.ar-notice li small { margin-left: 6px; font-size: 12px; color: #8F887C; }
.badge.is-bk { border: 1px solid rgba(255,199,44,.5); background: none; color: var(--y); }
@media (max-width: 380px) {                        /* 아주 좁은 폰: 추가 · 폴더도 아이콘만 (한 줄에) */
  .ar-head-r .pill-add { width: 36px; padding: 0; justify-content: center; }
  .ar-head-r .pill-add > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
}
@media (max-width: 640px) {
  .bk-row { grid-template-columns: 22px minmax(0, 1fr); }
  .bk-st { grid-column: 2; white-space: normal; flex-wrap: wrap; }
}
.ar-selbar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 10px; padding: 7px 8px 7px 16px; border: 1px solid rgba(255,199,44,.45); border-radius: 999px; background: rgba(255,199,44,.06); }
.ar-selcount { margin-right: auto; font-size: 13.5px; color: var(--ink); }
.sbtn { display: inline-flex; align-items: center; gap: 6px; min-height: 34px; padding: 0 14px; border: 0; border-radius: 999px; background: rgba(242,239,232,.07); color: var(--ink); font: inherit; font-size: 13px; white-space: nowrap; cursor: pointer; }
.sbtn.is-on { background: var(--y); color: #0A0805; font-weight: 500; }
.sbtn.is-del { background: rgba(255,120,80,.14); color: #FFB08A; }
.sbtn.is-ghost { background: transparent; color: #A39C90; }
.sbtn:disabled { opacity: .45; cursor: default; }
@media (hover: hover) { .sbtn:not(:disabled):hover { filter: brightness(1.12); } .sbtn.is-ghost:hover { color: var(--ink); } }
.ar-movewrap { position: relative; display: inline-flex; }
.ar-menu { position: absolute; top: calc(100% + 8px); left: 0; z-index: 12; width: 270px; padding: 6px; border: 1px solid rgba(255,199,44,.3); border-radius: 12px; background: #171612; box-shadow: 0 18px 40px rgba(0,0,0,.6); }
.ar-menu .sc-m-item span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ar-menu .sc-m-item small { flex: none; margin-left: auto; font-size: 12px; color: #8F887C; }
/* 폴더 줄 */
.album-thumb.is-folder { position: relative; }
.album-thumb.is-folder .f-stack { position: absolute; inset: 0; border-radius: 8px; background: #2c2821; transform: translate(4px, -4px); }
.album-thumb.is-folder img { position: relative; z-index: 1; }
.f-chip { position: absolute; right: -6px; bottom: -6px; z-index: 2; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--y); color: #0A0805; }
.ai-sub { display: none; flex: none; font-size: 12px; font-weight: 400; color: #8F887C; }
.folder-row.is-drop { background: rgba(255,199,44,.14); outline: 1.5px dashed var(--y); outline-offset: -2px; border-radius: 10px; }
.albums:not(.albums--card) .album-row.is-child::before { content: ""; position: absolute; left: 80px; top: 0; bottom: 0; width: 1px; background: rgba(255,199,44,.32); }
.albums:not(.albums--card) .album-row.is-child .album-thumb { justify-self: end; width: 44px; height: 44px; }
.albums:not(.albums--card) .album-row.is-folded { display: none; }
.album-row.is-carried { display: none; }
.album-row.is-dragfold { display: none; }        /* 맨 바깥 줄을 끄는 동안 폴더 안 줄은 잠깐 접어 둬요 */
.drag-count { position: absolute; right: -8px; top: -10px; z-index: 4; display: grid; place-items: center; min-width: 30px; height: 24px; padding: 0 9px; border-radius: 999px; background: var(--y); color: #0A0805; font-size: 12px; font-weight: 600; box-shadow: 0 4px 12px rgba(0,0,0,.45); pointer-events: none; }
.ai-folder { display: none; }
.albums--card .folder-row { display: none; }
.albums--card .ai-folder { display: inline-flex; align-items: center; gap: 4px; color: var(--y); }
.albums--card .ar-ck { grid-area: cover; align-self: start; justify-self: start; z-index: 3; width: 30px; height: 30px; margin: 8px; border-radius: 8px; background: rgba(5,5,5,.6); }
/* 삭제 확인 */
.del-list { display: grid; gap: 8px; margin: 8px 0 0; padding: 0; list-style: none; max-height: 46vh; overflow: auto; }
.del-list li { display: grid; grid-template-columns: 40px minmax(0, 1fr); align-items: center; gap: 12px; padding: 8px 10px; border: 1px solid rgba(242,239,232,.1); border-radius: 12px; background: #0A0908; }
.del-list img, .del-ic { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 6px; object-fit: cover; background: #1A1814; color: #8F887C; }
.del-list img.is-reel { justify-self: center; width: 24px; }
.del-list b { display: block; overflow: hidden; font-size: 14px; font-weight: 500; color: var(--ink); white-space: nowrap; text-overflow: ellipsis; }
.del-list span { display: block; margin-top: 3px; font-size: 12px; line-height: 1.5; color: #A39C90; }
.del-list em { font-style: normal; color: #FFB08A; }
.btn-fill.is-danger { background: #E5704A; color: #0A0805; }
.dlg-alt { margin: 12px 0 0 -12px; color: var(--y); }
[data-ar-folder-note][hidden], [data-ar-del-note][hidden] { display: none; }
@media (max-width: 640px) {
  .albums:not(.albums--card) .album-row.is-child::before { left: 68px; }
  .albums:not(.albums--card) .album-row.is-child .album-thumb { width: 40px; height: 40px; }
}

/* ---------- 대표 사진 — 고치기 창 칸 · 고르는 창 ---------- */
.cover-box { display: flex; align-items: center; gap: 14px; }
.cover-pic { position: relative; flex: none; width: 116px; aspect-ratio: 4 / 3; padding: 0; overflow: hidden; border: 0; border-radius: 10px; background: #1A1814; cursor: pointer; }
.cover-pic img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .25s ease; }
.cover-pic img:not([src]) { visibility: hidden; }
.cover-pic:disabled { cursor: default; }
@media (hover: hover) { .cover-pic:not(:disabled):hover img { transform: scale(1.05); } }
.cover-fld .cover-txt { display: flex; flex-direction: column; align-items: flex-start; gap: 9px; min-width: 0; margin: 0; }
.cover-fld .cover-note { display: block; margin: 0; font-size: 12.5px; line-height: 1.45; color: #A39C90; }
.cover-btn { display: inline-flex; align-items: center; gap: 7px; min-height: 34px; padding: 0 14px 0 12px; border: 1px solid rgba(255,199,44,.55); border-radius: 999px; background: transparent; color: var(--y); font: inherit; font-size: 13px; white-space: nowrap; cursor: pointer; transition: background-color .15s ease, color .15s ease; }
.cover-btn:hover, .cover-btn:focus-visible { background: var(--y); color: #0A0805; }
.cover-btn:disabled { opacity: .4; cursor: default; background: transparent; color: var(--y); }
.adm-dlg--cover { width: min(900px, calc(100% - 32px)); }
.adm-dlg--cover .adm-dlg-form { height: min(760px, calc(100vh - 40px)); height: min(760px, calc(100dvh - 40px)); }
.cover-head { min-width: 0; }
.cover-sub { margin-top: 3px; font-size: 12.5px; color: #A39C90; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cover-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(124px, 1fr)); gap: 6px; margin-top: 14px; align-content: start; }
.cover-item { position: relative; aspect-ratio: 1; padding: 0; overflow: hidden; border: 0; border-radius: 8px; background: #1A1814; cursor: pointer; }
.cover-item img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .25s ease, filter .2s ease; }
.cover-item::after { content: ""; position: absolute; inset: 0; border-radius: inherit; box-shadow: inset 0 0 0 0 var(--y); transition: box-shadow .12s ease; pointer-events: none; }
@media (hover: hover) { .cover-item:hover img { transform: scale(1.05); } }
.cover-item:focus-visible { outline: none; }
.cover-item:focus-visible::after { box-shadow: inset 0 0 0 2px rgba(255,199,44,.75); }
.cover-item[aria-selected="true"]::after { box-shadow: inset 0 0 0 3px var(--y); }
.cover-grid.has-pick .cover-item:not([aria-selected="true"]) img { filter: brightness(.62); }
.ci-check { position: absolute; right: 7px; top: 7px; display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--y); color: #0A0805; opacity: 0; transform: scale(.6); transition: opacity .15s ease, transform .15s ease; }
.cover-item[aria-selected="true"] .ci-check { opacity: 1; transform: none; }
.ci-now { position: absolute; left: 7px; bottom: 7px; padding: 3px 8px; border-radius: 999px; background: rgba(5,5,5,.8); color: var(--y); font-size: 11px; line-height: 1.3; }
.ci-play { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); color: var(--y); filter: drop-shadow(0 1px 6px rgba(0,0,0,.65)); pointer-events: none; }
.cover-empty { grid-column: 1 / -1; padding: 56px 0; text-align: center; font-size: 13px; color: #A39C90; }
.ci-name { position: absolute; left: 8px; right: 8px; top: 8px; display: none; overflow: hidden; font-size: 11px; line-height: 1.35; color: #CFC8BC; word-break: break-all; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; }
.cover-item img.is-broken { visibility: hidden; }
.cover-item img.is-broken ~ .ci-name { display: -webkit-box; }
.adm-dlg-foot [data-ar-cover-msg]:empty { display: none; }
.adm-dlg-foot .cover-auto { min-height: 36px; padding: 0 2px; color: #A39C90; font-size: 13px; text-decoration: underline; text-underline-offset: 3px; }
.adm-dlg-foot .cover-auto:hover { color: var(--ink); }
.adm-dlg-foot .cover-rot { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 0 12px; border: 1px solid rgba(255,199,44,.4); border-radius: 999px; color: var(--y); font-size: 13px; }
.adm-dlg-foot .cover-rot:disabled { opacity: .35; cursor: default; }
.adm-dlg-foot .cover-rot:not(:disabled):hover { border-color: var(--y); background: rgba(255,199,44,.1); }
@media (max-width: 640px) {
  .cover-pic { width: 96px; }
  .cover-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; }
  .adm-dlg--cover .adm-dlg-form { height: calc(100vh - 16px); height: calc(100dvh - 16px); }
}

/* ---------- 폴더 대표 사진 — 고르는 창 위 앨범 칩 (앨범 표지 · 앨범마다) ---------- */
.cover-albums { display: flex; gap: 6px; margin-top: 12px; padding-bottom: 4px; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: thin; }
.cover-albums button { flex: none; display: inline-flex; align-items: center; gap: 6px; max-width: 240px; min-height: 34px; padding: 0 14px; border: 1px solid rgba(242,239,232,.16); border-radius: 999px; background: transparent; color: #CFC8BC; font: inherit; font-size: 13px; white-space: nowrap; cursor: pointer; transition: background-color .15s ease, color .15s ease, border-color .15s ease; }
.cover-albums button:hover { border-color: rgba(255,199,44,.55); color: var(--y); }
.cover-albums button[aria-selected="true"] { border-color: var(--y); background: var(--y); color: #0A0805; font-weight: 500; }
.cover-albums .cc-t { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.cover-albums small { flex: none; font-size: 11.5px; opacity: .72; }
.cover-grid.is-albums { grid-template-columns: repeat(auto-fill, minmax(168px, 1fr)); }
.cover-grid.is-albums .cover-item { aspect-ratio: 4 / 3; }
.ci-cap { position: absolute; left: 0; right: 0; bottom: 0; padding: 22px 9px 7px; background: linear-gradient(to top, rgba(5,5,5,.86), rgba(5,5,5,0)); color: #F2EFE8; font-size: 12px; line-height: 1.3; text-align: left; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; pointer-events: none; }
.cover-grid.is-albums .ci-now { top: 7px; bottom: auto; }

/* ---------- 대회 로고 — 고치기 창 칸 (구분이 마라톤일 때) ---------- */
.logo-fld { margin-top: 16px; }
.logo-box { display: flex; align-items: center; gap: 14px; }
.logo-pic { position: relative; flex: none; display: grid; place-items: center; width: 116px; aspect-ratio: 4 / 3; padding: 12px; overflow: hidden; border-radius: 10px; background: conic-gradient(#191713 25%, #221f1a 0 50%, #191713 0 75%, #221f1a 0) 0 0 / 14px 14px; box-shadow: inset 0 0 0 1px rgba(242,239,232,.1); }
.logo-pic img { display: block; max-width: 100%; max-height: 100%; object-fit: contain; }
.logo-pic i { font-style: normal; font-size: 12px; color: #8F887C; }
.logo-fld .cover-txt { flex: 1 1 auto; display: flex; flex-direction: column; align-items: flex-start; gap: 9px; min-width: 0; }
.logo-fld .cover-note { display: block; margin: 0; font-size: 12.5px; line-height: 1.45; color: #A39C90; }
.logo-acts { display: flex; flex-wrap: wrap; gap: 6px; }
.logo-up { position: relative; }
.logo-up:focus-within { outline: 2px solid var(--y); outline-offset: 2px; }
.cover-btn.is-mute { border-color: rgba(242,239,232,.18); color: #CFC8BC; }
.cover-btn.is-mute:hover, .cover-btn.is-mute:focus-visible { border-color: rgba(255,176,138,.5); background: rgba(255,120,80,.14); color: #FFD0BC; }
.logo-mini { position: relative; flex: none; display: block; width: 78px; aspect-ratio: 3 / 4; overflow: hidden; border-radius: 6px; background: #0b0b0b; }
.logo-mini .logo-mini-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); }
.logo-mini .logo-mini-shade { position: absolute; inset: 0; background: rgba(5,5,5,.45); }
.logo-mini .logo-mini-mark { position: absolute; left: 22%; top: 35%; width: 56%; height: 30%; object-fit: contain; }
.logo-mini small { position: absolute; left: 0; right: 0; bottom: 4px; font-size: 10px; color: rgba(242,239,232,.7); text-align: center; }
.logo-fld.is-busy .logo-box { opacity: .55; }
@media (max-width: 640px) {
  .logo-box { flex-wrap: wrap; }
  .logo-pic { width: 96px; }
  .logo-mini { width: 64px; }
}

/* ---------- 인물 — 고치기 창 칸: 찾기 · 진행 · 숨기기 ---------- */
.ppl-fld { margin-top: 18px; }
.ppl-run { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.ppl-state { margin: 0; font-size: 12.5px; line-height: 1.5; color: #A39C90; }
.ppl-run .cover-btn { flex: none; }
.ppl-run .cover-btn b { font-weight: 400; }
.ppl-prog { margin-top: 12px; padding: 12px 14px; border: 1px solid rgba(255,199,44,.25); border-radius: 12px; background: rgba(255,199,44,.06); }
.ppl-prog-top { display: flex; align-items: center; gap: 10px; margin: 0; font-size: 12.5px; line-height: 1.45; color: var(--y); }
.ppl-fld .ppl-prog-top span { display: inline; margin: 0; font-size: 12.5px; color: var(--y); }
.ppl-stop { flex: none; margin-left: auto; min-height: 28px; padding: 0 12px; border: 0; border-radius: 999px; background: rgba(242,239,232,.08); color: #CFC8BC; font: inherit; font-size: 12px; cursor: pointer; }
.ppl-stop:hover { background: rgba(242,239,232,.14); color: var(--ink); }
.ppl-bar { height: 4px; margin-top: 10px; overflow: hidden; border-radius: 4px; background: rgba(242,239,232,.1); }
.ppl-bar i { display: block; width: 0; height: 100%; border-radius: 4px; background: var(--y); transition: width .3s ease; }
.ppl-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(76px, 1fr)); gap: 14px 6px; margin-top: 14px; }
.ppl-grid:empty { display: none; }
.ppl-item { position: relative; display: flex; flex-direction: column; align-items: center; gap: 6px; }
.ppl-item img { display: block; width: 60px; height: 60px; border-radius: 50%; object-fit: cover; background: #1A1814; transition: opacity .2s ease; }
.ppl-item small { font-size: 11.5px; color: #CFC8BC; }
.ppl-item.is-off img { opacity: .3; }
.ppl-item.is-off small { color: #8F887C; }
.ppl-eye { position: absolute; top: -4px; left: calc(50% + 14px); display: grid; place-items: center; width: 26px; height: 26px; padding: 0; border: 1px solid rgba(242,239,232,.2); border-radius: 50%; background: rgba(14,13,11,.94); color: #CFC8BC; cursor: pointer; }
.ppl-eye:hover, .ppl-eye:focus-visible { border-color: var(--y); color: var(--y); }
.ppl-eye[aria-pressed="true"] { border-color: var(--y); background: var(--y); color: #0A0805; }
.ppl-eye:disabled { opacity: .5; cursor: default; }
/* 지우기 × — 얼굴 왼쪽 위 (마우스를 올리면 · 폰은 늘). 한 번 누르면 빨갛게 → 한 번 더 누르면 지워요 */
.ppl-del { position: absolute; top: -4px; right: calc(50% + 14px); display: grid; place-items: center; width: 26px; height: 26px; padding: 0; border: 1px solid rgba(242,239,232,.2); border-radius: 50%; background: rgba(14,13,11,.94); color: #A39C90; cursor: pointer; opacity: 0; transition: opacity .15s ease, background-color .15s ease, color .15s ease, border-color .15s ease; }
.ppl-item:hover .ppl-del, .ppl-del:focus-visible, .ppl-item.is-armed .ppl-del { opacity: 1; }
@media (hover: none) { .ppl-del { opacity: 1; } }
.ppl-del:hover, .ppl-del:focus-visible { border-color: #FF8A65; color: #FF8A65; }
.ppl-item.is-armed .ppl-del { border-color: #FF6B4A; background: #FF6B4A; color: #0A0805; }
.ppl-item.is-armed img { opacity: .35; box-shadow: 0 0 0 2px #0E0D0B, 0 0 0 4px #FF6B4A; }
.ppl-item.is-armed small { color: #FF8A65; font-size: 11px; white-space: nowrap; }
.ppl-del:disabled { opacity: .25 !important; cursor: default; }
.ppl-del[data-tip]::after { content: attr(data-tip); position: absolute; bottom: calc(100% + 8px); left: 50%; z-index: 8; padding: 5px 9px; border-radius: 6px; background: #F2EFE8; color: #0A0805; font-size: 11.5px; line-height: 1.3; white-space: nowrap; pointer-events: none; opacity: 0; transform: translate(-50%, 4px); transition: opacity .15s ease, transform .15s ease; }
.ppl-del[data-tip]:hover::after, .ppl-del[data-tip]:focus-visible::after { opacity: 1; transform: translate(-50%, 0); }
@media (hover: none) { .ppl-del[data-tip]::after { display: none; } }
.ppl-sel-btn.is-del { border-color: rgba(255,138,101,.6); color: #FF8A65; }
.ppl-sel-btn.is-del.is-armed { border-color: #FF6B4A; background: #FF6B4A; color: #0A0805; font-weight: 500; }
/* 얼굴을 눌러 여러 명 고르기 → 한 번에 숨기기 · 보이기 (아래 띠는 창 아래에 붙어 따라와요) */
.ppl-pick { position: relative; display: block; padding: 0; border: 0; border-radius: 50%; background: none; cursor: pointer; }
.ppl-pick:focus-visible { outline: 2px solid var(--y); outline-offset: 4px; }
.ppl-fld .ppl-check { position: absolute; right: -3px; bottom: -3px; display: none; place-items: center; width: 22px; height: 22px; margin: 0; border: 2px solid #0E0D0B; border-radius: 50%; background: var(--y); color: #0A0805; }   /* .fld span 보다 먼저 */
.ppl-item.is-sel img { box-shadow: 0 0 0 3px #0E0D0B, 0 0 0 5px var(--y); }
.ppl-fld .ppl-item.is-sel .ppl-check { display: grid; }
.ppl-item.is-sel.is-off img { opacity: .55; }
.ppl-sel { position: sticky; bottom: 0; z-index: 2; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-top: 14px; padding: 10px 10px 10px 14px; border: 1px solid rgba(255,199,44,.4); border-radius: 12px; background: rgba(22,20,16,.97); box-shadow: 0 -12px 24px rgba(0,0,0,.5); }
.ppl-sel[hidden] { display: none; }
.ppl-sel-l, .ppl-sel-r { display: flex; align-items: center; gap: 12px; }
.ppl-sel-r { margin-left: auto; gap: 8px; }                 /* 좁으면 단추 줄이 아래로 (오른쪽 끝) */
.ppl-sel-n { font-size: 13px; font-weight: 500; color: var(--y); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ppl-sel-link { padding: 0; border: 0; background: none; color: #A39C90; font: inherit; font-size: 12px; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.ppl-sel-link:hover { color: var(--ink); }
.ppl-sel-link[hidden] { display: none; }
.ppl-sel-btn { min-height: 32px; padding: 0 14px; border: 1px solid rgba(255,199,44,.5); border-radius: 999px; background: transparent; color: var(--y); font: inherit; font-size: 12.5px; cursor: pointer; }
.ppl-sel-btn.is-main { border-color: var(--y); background: var(--y); color: #0A0805; font-weight: 500; }
.ppl-sel-btn:disabled { opacity: .35; cursor: default; }
.ppl-note { margin: 12px 0 0; font-size: 12px; line-height: 1.6; color: #8F887C; }
/* 옷차림도 같이 보기 (단체복이면 끄기) */
.ppl-fld .ppl-opt { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; margin: 10px 0 0; font-size: 12.5px; color: #CFC8BC; cursor: pointer; }
.ppl-fld .ppl-opt[hidden] { display: none; }
.ppl-fld .ppl-opt input { flex: none; width: 16px; height: 16px; min-height: 0; margin: 0; padding: 0; border: 0; border-radius: 3px; accent-color: var(--y); transform: translateY(3px); cursor: pointer; }   /* .fld input (칸 모양) 말고 체크 상자 */
.ppl-opt b { font-weight: 500; }
.ppl-fld .ppl-opt em { flex: 1 1 100%; margin: 0 0 0 23px; font-style: normal; font-size: 11.5px; color: #8F887C; }
.ppl-sel-btn[hidden] { display: none; }
.ppl-run .cover-btn.is-armed { border-color: #FFB08A; color: #FFB08A; }
/* 인물 사진 창 — 사진마다 그 사람 얼굴만 크게 (얼굴 자리가 없는 예전 결과는 사진 전체) */
.pp-head { display: flex; align-items: center; gap: 12px; min-width: 0; }
.pp-face { flex: none; width: 44px; height: 44px; border-radius: 50%; object-fit: cover; background: #1A1814; }
.pp-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(112px, 1fr)); gap: 8px; margin-top: 14px; align-content: start; }
.pp-item { position: relative; display: flex; flex-direction: column; gap: 5px; padding: 0; border: 0; background: none; color: #A39C90; font: inherit; font-size: 11px; text-align: center; cursor: pointer; }
.pp-crop { position: relative; display: block; aspect-ratio: 1; overflow: hidden; border-radius: 10px; background: #1A1814; }
.pp-crop img { position: absolute; display: block; max-width: none; }
.pp-crop img.is-whole { inset: 0; width: 100%; height: 100%; object-fit: cover; }
.pp-crop::after { content: ""; position: absolute; inset: 0; border-radius: inherit; box-shadow: inset 0 0 0 0 var(--y); transition: box-shadow .12s ease; pointer-events: none; }
.pp-item:focus-visible { outline: none; }
.pp-item:focus-visible .pp-crop::after { box-shadow: inset 0 0 0 2px rgba(255,199,44,.75); }
.pp-item[aria-selected="true"] .pp-crop::after { box-shadow: inset 0 0 0 3px var(--y); }
.pp-grid.has-pick .pp-item:not([aria-selected="true"]) img { filter: brightness(.7); }
.pp-item[aria-selected="true"] { color: var(--y); }
.pp-item .ci-check { right: 6px; top: 6px; }
.pp-item[aria-selected="true"] .ci-check { opacity: 1; transform: none; }
.pp-split { min-height: 40px; padding: 0 16px; border: 1px solid rgba(255,199,44,.55); border-radius: 999px; background: transparent; color: var(--y); font: inherit; font-size: 13.5px; cursor: pointer; }
.pp-split:disabled { opacity: .35; cursor: default; }
@media (max-width: 640px) { .pp-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; } }
/* 인물 추가 — 얼굴 목록 끝의 + 칸 · 창 (사진 고르기 → 얼굴 고르기 → 찾은 사진) */
.ppl-add { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.ppl-add small { font-size: 11.5px; color: var(--y); }
.ppl-addbtn { display: grid; place-items: center; width: 60px; height: 60px; padding: 0; border: 1.5px dashed rgba(255,199,44,.55); border-radius: 50%; background: transparent; color: var(--y); cursor: pointer; transition: background-color .15s ease, border-color .15s ease; }
.ppl-addbtn:hover, .ppl-addbtn:focus-visible { border-style: solid; border-color: var(--y); background: rgba(255,199,44,.12); outline: none; }
.ppl-addbtn:disabled { opacity: .35; cursor: default; background: transparent; }
.ap-face { flex: none; width: 44px; height: 44px; overflow: hidden; border-radius: 50%; }
.ap-face .pp-crop { width: 100%; height: 100%; border-radius: 50%; }
.ap-nav { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 14px; margin-top: 10px; }
.ap-nav:not(:has(> :not([hidden]))) { display: none; }
.ap-back, .ap-more { display: inline-flex; align-items: center; gap: 4px; padding: 4px 0; border: 0; background: none; color: var(--y); font: inherit; font-size: 13px; cursor: pointer; }
.ap-more { padding: 6px 12px; border: 1px solid rgba(255,199,44,.45); border-radius: 999px; font-size: 12.5px; }
.ap-back[hidden], .ap-more[hidden], .ap-all[hidden] { display: none; }
.ap-nav-r { display: flex; align-items: center; gap: 14px; margin-left: auto; }
.ap-all { padding: 4px 0; border: 0; background: none; color: #CFC8BC; font: inherit; font-size: 12.5px; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.ap-all:hover, .ap-all:focus-visible { color: var(--y); outline: none; }
.ap-back:hover span, .ap-back:focus-visible span { text-decoration: underline; text-underline-offset: 3px; }
.ap-more:hover, .ap-more:focus-visible { background: rgba(255,199,44,.12); outline: none; }
.ap-photo { position: relative; margin: 12px auto 0; overflow: hidden; border-radius: 10px; background: #1A1814; }
.ap-photo img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
.ap-rw { position: absolute; min-width: 30px; min-height: 30px; transform: translate(-50%, -50%); }   /* 고리 + 지우기(×) 자리 */
.ap-ring { position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; border: 2px solid var(--y); border-radius: 50%; background: transparent; box-shadow: 0 0 0 2px rgba(5,5,5,.5); cursor: pointer; transition: background-color .12s ease, transform .12s ease; }
.ap-ring:hover, .ap-ring:focus-visible { background: rgba(255,199,44,.22); transform: scale(1.06); outline: none; }
.ap-x { position: absolute; left: 85.4%; top: 14.6%; z-index: 1; display: grid; place-items: center; width: 20px; height: 20px; padding: 0; border: 1px solid rgba(242,239,232,.35); border-radius: 50%; background: rgba(5,5,5,.82); color: #E9E3D7; transform: translate(-50%, -50%); opacity: .8; cursor: pointer; transition: opacity .12s ease, background-color .12s ease, color .12s ease; }
.ap-x:hover, .ap-x:focus-visible { opacity: 1; border-color: #FFB08A; color: #FFB08A; outline: none; }
.ap-rw.is-armed .ap-ring { border-color: #FFB08A; background: rgba(229,112,74,.18); }
.ap-rw.is-armed .ap-x { opacity: 1; border-color: #E5704A; background: #E5704A; color: #0A0805; }
.ap-rw.is-armed::after { content: "한 번 더 누르면 지워요"; position: absolute; left: 50%; top: 100%; transform: translate(-50%, 5px); padding: 1px 7px; border-radius: 999px; background: #E5704A; color: #0A0805; font-size: 10.5px; line-height: 1.5; white-space: nowrap; pointer-events: none; }
.ap-rw.is-busy { opacity: .35; pointer-events: none; }
.ap-rw.is-armed .ap-ring.is-guess::after { display: none; }
.ap-ring.is-known { border-style: dashed; border-color: rgba(255,199,44,.75); }
.ap-ring.is-guess { background: rgba(255,199,44,.16); box-shadow: 0 0 0 2px rgba(5,5,5,.5), 0 0 0 6px rgba(255,199,44,.32); }
.ap-ring.is-guess::after { content: "닮은 얼굴"; position: absolute; left: 50%; top: 100%; transform: translate(-50%, 5px); padding: 1px 7px; border-radius: 999px; background: var(--y); color: #0A0805; font-size: 10.5px; line-height: 1.5; white-space: nowrap; pointer-events: none; }
/* 더할 때: 사진을 누르면 그 자리에 원 (뒷모습 · 얼굴이 안 잡힌 사람) */
.ap-photo.is-place { cursor: crosshair; touch-action: none; user-select: none; -webkit-user-select: none; }   /* 누른 채 끌어서 원 그리기 (폰에서 화면이 안 움직이게) */
.ap-custom { position: absolute; min-width: 8px; min-height: 8px; border: 2px dashed #FFF6DD; border-radius: 50%; background: rgba(255,199,44,.2); box-shadow: 0 0 0 2px rgba(5,5,5,.55); transform: translate(-50%, -50%); pointer-events: none; will-change: width, height; }
.ap-photo.is-drawing .ap-custom { border-style: solid; border-color: var(--y); }
.ap-size { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; margin: 10px auto 0; max-width: 560px; }
.ap-size[hidden] { display: none; }
.ap-size label { display: flex; align-items: center; gap: 10px; flex: 1 1 220px; min-width: 0; font-size: 12.5px; color: #CFC8BC; }
.ap-size input { flex: 1; min-width: 0; accent-color: var(--y); }
.ap-more.is-main { border-color: var(--y); background: var(--y); color: #0A0805; font-weight: 500; }
.ap-more.is-main:hover, .ap-more.is-main:focus-visible { background: #FFD45C; }
.ap-more.is-main:disabled { opacity: .4; cursor: default; background: var(--y); }
.pp-item.is-in { cursor: default; }
.pp-item.is-in img, .pp-grid.has-pick .pp-item.is-in img { filter: brightness(.42) grayscale(.5); }
.ap-sec { grid-column: 1 / -1; margin: 14px 0 0; padding-top: 12px; border-top: 1px solid rgba(242,239,232,.1); font-size: 12px; color: #A39C90; }
.ap-n { position: absolute; left: 6px; bottom: 26px; padding: 2px 7px; border-radius: 999px; background: rgba(5,5,5,.75); color: #E9E3D7; font-size: 10.5px; line-height: 1.4; }
.pp-item .ap-tag { color: var(--y); }
.pp-item.is-seed { cursor: default; }
.ppl-clear { padding: 0; border: 0; background: none; color: #A39C90; font: inherit; font-size: 12px; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.ppl-clear:hover { color: var(--ink); }
.ppl-clear.is-armed { color: #FFB08A; }

/* ---------- 아카이브 › 종류 (사진 · 영상 · 릴스 · ETC) — 한 목록 ---------- */
.kp { display: inline-flex; align-items: center; flex: none; min-height: 20px; padding: 0 7px; border: 1px solid rgba(242,239,232,.28); border-radius: 6px; font-size: 11px; line-height: 1; color: #E6E1D8; white-space: nowrap; vertical-align: middle; }
.kp.k-reel { border-color: var(--y); background: var(--y); color: #0A0805; font-weight: 500; }
.kp.k-etc { border-color: rgba(255,199,44,.6); color: var(--y); }
.c-kind .kp { margin-right: 8px; }
.album-meta .kp { min-height: 18px; padding: 0 6px; font-size: 10.5px; }
/* 릴스 · 세로 영상도 다른 앨범과 같은 네모 칸 가득 (목록 1:1 · 카드 4:3) — 가운데를 잘라 보여요 */
.album-thumb.is-reel img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.fld.is-readonly input { color: #8F887C; }
/* 추가 창 — 종류 고르기 */
.kind-fld legend { float: left; width: 100%; padding: 0; margin-bottom: 6px; font-size: 12px; color: #A39C90; }
.kind-fld legend em { margin-left: 6px; font-style: normal; color: #8F887C; }
.kind-fld legend + * { clear: both; }
.kseg { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; padding: 4px; border-radius: 14px; background: rgba(242,239,232,.06); }
.kseg--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.kseg label { position: relative; display: block; cursor: pointer; }
.kseg input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.fld .kseg span, .r2p-as span { display: grid; justify-items: center; gap: 3px; margin: 0; padding: 9px 4px 8px; border-radius: 10px; font-size: 14px; line-height: 1.2; color: #CFC8BC; text-align: center; transition: background-color .15s ease, color .15s ease; }
.kseg small { font-size: 10.5px; color: #8F887C; }
.kseg label:hover span { color: var(--y); }
.kseg input:checked + span { background: var(--y); color: #0A0805; font-weight: 500; }
.kseg input:checked + span small { color: rgba(10,8,5,.7); }
.kseg input:focus-visible + span { outline: 2px solid var(--y); outline-offset: 2px; }
.knote { display: flex; align-items: flex-start; gap: 8px; margin-top: 10px; padding: 10px 12px; border-radius: 10px; background: rgba(255,199,44,.07); font-size: 12.5px; line-height: 1.55; color: #E6E1D8; }
.knote b { flex: none; font-weight: 500; color: var(--y); }
.knote em { font-style: normal; color: #FFB08A; }
.knote:empty { display: none; }
.lbl-t { font-weight: inherit; }
@media (hover: none) { .kseg label:hover span { color: #CFC8BC; } .kseg input:checked + span { color: #0A0805; } }

/* ---------- 일정 창 — 매주 반복 · 클래스 고르기 ---------- */
.rep { margin-top: 12px; }
.sw { position: relative; display: inline-flex; align-items: center; gap: 10px; min-height: 36px; font-size: 13.5px; color: #E9E3D7; cursor: pointer; }
.sw input { position: absolute; width: 1px; height: 1px; margin: 0; opacity: 0; }
.sw-track { position: relative; flex: none; width: 40px; height: 24px; border-radius: 999px; background: rgba(242,239,232,.18); transition: background-color .2s ease; }
.sw-track::after { content: ""; position: absolute; left: 3px; top: 3px; width: 18px; height: 18px; border-radius: 50%; background: #F2EFE8; transition: transform .2s ease; }
.sw input:checked + .sw-track { background: var(--y); }
.sw input:checked + .sw-track::after { transform: translateX(16px); background: #0A0805; }
.sw input:focus-visible + .sw-track { outline: 2px solid var(--y); outline-offset: 2px; }
.rep-body { display: grid; gap: 10px; margin-top: 8px; padding: 12px 14px 14px; border: 1px solid rgba(255,199,44,.25); border-radius: 12px; background: rgba(255,199,44,.04); }
.rep-body[hidden] { display: none; }
.rep-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.rep-days button { min-height: 36px; padding: 0; border: 1px solid rgba(242,239,232,.16); border-radius: 10px; background: transparent; color: #CFC8BC; font: inherit; font-size: 13px; cursor: pointer; }
.rep-days button[aria-pressed="true"] { border-color: var(--y); background: var(--y); color: #0A0805; font-weight: 500; }
.rep-body .fld { margin-top: 0; }
.rep-meets { display: grid; gap: 8px; }
.rep-meets:empty { display: none; }
.rep-preview { font-size: 12.5px; line-height: 1.6; color: #A39C90; }
.rep-preview:empty { display: none; }
.rep-preview b { color: var(--y); font-weight: 500; }
.rep-preview ul { margin: 6px 0 0; padding: 0; list-style: none; display: grid; gap: 2px; }
.rep-preview li { display: flex; justify-content: space-between; gap: 10px; }
.rep-preview li span:last-child { color: #8F887C; text-align: right; }
.rep-preview .rep-more { color: #8F887C; }
.type-picks { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 8px; font-size: 12px; color: #8F887C; }
.type-picks > span { margin-right: 2px; }
.type-picks button { min-height: 30px; padding: 0 12px; border: 1px solid rgba(242,239,232,.18); border-radius: 999px; background: transparent; color: #CFC8BC; font: inherit; font-size: 12px; cursor: pointer; }
.type-picks button:hover { border-color: rgba(255,199,44,.5); color: var(--y); }
.type-picks button.is-on { border-color: var(--y); color: var(--y); }

/* ---------- 목록 — 제목을 눌러 바로 이름 바꾸기 ---------- */
.ai-name { cursor: text; border-radius: 4px; }
.ai-name[hidden] { display: none !important; }
.ai-name.is-saving { opacity: .55; }
@media (hover: hover) { .ai-name:hover { text-decoration: underline dashed rgba(255,199,44,.75); text-decoration-thickness: 1px; text-underline-offset: 4px; } }
.ai-name:focus-visible { outline: 2px solid var(--y); outline-offset: 2px; }
.ai-edit { flex: 1 1 auto; width: 100%; min-width: 0; height: 34px; margin: -6px 0; padding: 0 10px; border: 1px solid var(--y); border-radius: 8px; background: #0A0908; color: var(--ink); font: inherit; font-size: 15px; font-weight: 500; }
.ai-edit:focus { outline: none; box-shadow: 0 0 0 3px rgba(255,199,44,.18); }
.ai-edit:disabled { opacity: .6; }
.albums--card .ai-edit { margin: 0; }

/* ---------- 회원 (1.19) ---------- */
.nav-badge { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 999px; background: var(--y); color: #0A0805; font-size: 11px; font-weight: 700; font-style: normal; }
.nav-badge[hidden] { display: none; }
.mb-wrap { margin-top: 20px; display: flex; flex-direction: column; gap: 16px; max-width: 900px; }
.mb-n { margin-left: 4px; color: var(--y); font-weight: 500; }
.mb-list { margin-top: 12px; }
.mb-row { display: grid; grid-template-columns: 30px 36px minmax(0, 1fr) auto; align-items: center; gap: 4px 12px; padding: 12px 0; border-top: 1px solid rgba(242,239,232,.08); }
.mb-no { font-size: 13px; font-variant-numeric: tabular-nums; text-align: right; color: #8F887C; }
.mb-row.is-wait { background: linear-gradient(90deg, rgba(255,199,44,.06), transparent 60%); }
.mb-av { position: relative; display: grid; place-items: center; width: 36px; height: 36px; overflow: hidden; border-radius: 50%; background: #1E1C18; color: var(--y); font-size: 14px; font-weight: 500; }
.mb-av img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.mb-av img.is-broken { display: none; }
.mb-tag { display: inline-block; margin-left: 8px; padding: 1px 8px; border-radius: 999px; background: rgba(255,199,44,.16); color: var(--y); font-size: 11px; font-weight: 500; vertical-align: 1px; }
.mb-who { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.mb-who b { font-size: 14.5px; font-weight: 500; color: var(--ink); }
.mb-who small { font-size: 12px; color: #A39C90; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mb-acts { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.mb-btn { min-height: 34px; padding: 0 14px; border: 1px solid rgba(255,199,44,.45); border-radius: 999px; background: none; color: var(--y); font: inherit; font-size: 12.5px; cursor: pointer; white-space: nowrap; }
.mb-btn.is-main { border-color: var(--y); background: var(--y); color: #0A0805; font-weight: 500; }
.mb-btn.is-del { border-color: rgba(255,138,101,.55); color: #FF8A65; }
.mb-btn.is-staff { border-color: rgba(242,239,232,.22); color: #A39C90; }
.mb-btn.is-staff[aria-pressed="true"] { border-color: var(--y); background: rgba(255,199,44,.16); color: var(--y); font-weight: 500; }
.mb-btn.is-armed { border-color: #FF6B4A; background: #FF6B4A; color: #0A0805; font-weight: 500; }
.mb-btn:disabled { opacity: .4; cursor: default; }
.mb-temp { grid-column: 3 / -1; margin-top: 6px; font-size: 13px; line-height: 1.6; color: #CFC8BC; }
.mb-temp code { padding: 2px 8px; border-radius: 6px; background: var(--y); color: #0A0805; font-size: 14px; font-weight: 700; letter-spacing: .06em; user-select: all; }
.mb-empty { margin-top: 12px; font-size: 13px; color: #8F887C; }
.mb-empty[hidden] { display: none; }
.mb-q input { min-height: 36px; width: 210px; padding: 0 12px; border: 1px solid rgba(242,239,232,.16); border-radius: 999px; background: #0A0908; color: var(--ink); font: inherit; font-size: 13px; }
.mb-q input:focus { outline: none; border-color: var(--y); }
@media (max-width: 760px) {
  .mb-row { grid-template-columns: 24px 36px minmax(0, 1fr); }
  .mb-acts { grid-column: 3; justify-content: flex-start; }
  .mb-q input { width: 100%; }
}

/* ---------- R-Log 주기화 · 대회 (1.19) ---------- */
.rlp-form { max-width: 900px; margin-top: 20px; }
.rlp-form fieldset { margin: 0; padding: 0; border: 0; }
.rlp-head, .rlp-cy { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) 150px 150px 36px; gap: 8px; align-items: center; }
.rlp-head { margin-top: 2px; font-size: 11px; color: #8F887C; }
.fld .rlp-head span { display: block; margin: 0; font-size: 11px; color: #8F887C; }
.rlp-rows { display: flex; flex-direction: column; gap: 8px; margin-top: 8px; }
.rlp-rows:empty { display: none; }
.rlp-ra { display: grid; grid-template-columns: 150px minmax(0, 1fr) 36px; gap: 8px; align-items: center; }
.rlp-row input { width: 100%; min-height: 40px; padding: 0 10px; border: 1px solid rgba(242,239,232,.16); border-radius: 10px; background: #0A0908; color: var(--ink); font: inherit; font-size: 13.5px; color-scheme: dark; }
.rlp-row input:focus { outline: none; border-color: var(--y); box-shadow: 0 0 0 3px rgba(255,199,44,.18); }
.rlp-x { width: 36px; height: 36px; }
.rlp-add { margin-top: 10px; }
@media (max-width: 760px) {
  .rlp-head { display: none; }
  .rlp-cy { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 36px; }
  .rlp-cy [name="from"] { grid-column: 1; }
  .rlp-cy [name="to"] { grid-column: 2; }
  .rlp-cy .rlp-x { grid-column: 3; grid-row: 1; }
  .rlp-ra { grid-template-columns: 130px minmax(0, 1fr) 36px; }
}

/* 섹션 배경 — 섹션 알약: 좁은 화면에서는 3 × 2 칸을 같은 너비로 (가운데 맞춤) */
@media (max-width: 760px) {
  .seg--slots { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; width: 100%; padding: 5px; border-radius: 22px; }
  .seg--slots button { display: flex; align-items: center; justify-content: center; min-width: 0; min-height: 44px; padding: 0 6px; border-radius: 17px; white-space: nowrap; font-size: 13.5px; }
  .seg--slots button b { flex: none; margin-right: 6px; }
}

/* 날짜 · 시간 칸 — 아이폰 사파리의 기본 모양(가운데 글자 · 다른 높이 · 옆으로 넘침) 대신 다른 칸과 같은 모양 */
.fld input[type="date"], .fld input[type="time"] { -webkit-appearance: none; appearance: none; display: flex; align-items: center; box-sizing: border-box; width: 100%; max-width: 100%; min-width: 0; height: 42px; text-align: left; }
.fld input[type="date"]::-webkit-date-and-time-value, .fld input[type="time"]::-webkit-date-and-time-value { margin: 0; text-align: left; }
.fld input[type="date"]::-webkit-datetime-edit, .fld input[type="time"]::-webkit-datetime-edit { padding: 0; }
.adm-dlg-body { overflow-x: hidden; }

/* ---------- 일정 창 — 폰: 전체 화면 (A안) · 위 줄(취소 · 제목 · 저장)만 붙고 화면 전체가 내려가요 ---------- */
.sdlg-m, .sp-row { display: none; }
@media (max-width: 640px) {
  [data-session-dlg] { width: 100%; max-width: none; height: 100vh; height: 100dvh; max-height: none; margin: 0; border: 0; border-radius: 0; background: #0A0908; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: none; }
  [data-session-dlg]::-webkit-scrollbar { display: none; }
  [data-session-dlg][open] { animation: sdlgUp .28s cubic-bezier(.2,.8,.2,1); }
  @keyframes sdlgUp { from { transform: translateY(24px); opacity: 0; } }
  [data-session-dlg] .adm-dlg-form { display: block; max-height: none; }
  [data-session-dlg] .adm-dlg-head { position: sticky; top: 0; z-index: 5; display: grid; grid-template-columns: 1fr auto 1fr; height: 52px; padding: 0 6px; padding-top: env(safe-area-inset-top); box-sizing: content-box; background: rgba(10,9,8,.92); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border-bottom: 1px solid rgba(242,239,232,.08); }
  [data-session-dlg] .adm-dlg-head h2 { font-size: 16px; font-weight: 600; }
  [data-session-dlg] .adm-dlg-x { display: none; }
  [data-session-dlg] .sdlg-m { display: inline-flex; align-items: center; min-height: 44px; padding: 0 12px; border: 0; background: none; font: inherit; font-size: 15.5px; cursor: pointer; }
  [data-session-dlg] .sdlg-cancel { justify-self: start; color: #CFC8BC; }
  [data-session-dlg] .sdlg-save { justify-self: end; color: var(--y); font-weight: 600; }
  /* 내용: 묶음마다 카드 (기본 → 언제 → 팝업 안내 → 메모) */
  [data-session-dlg] .adm-dlg-body { display: flex; flex-direction: column; overflow: visible; padding: 6px 14px 8px; }
  [data-session-dlg] .sg-name { order: 1; } [data-session-dlg] .type-picks { order: 2; }
  [data-session-dlg] .sg-when { order: 3; } [data-session-dlg] .rep { order: 4; }
  [data-session-dlg] .sp-fields { order: 5; } [data-session-dlg] .sg-place { order: 6; } [data-session-dlg] .sg-memo { order: 7; } [data-session-dlg] .adm-dlg-body > .check { order: 8; }
  [data-session-dlg] .sg-name, [data-session-dlg] .sg-when { display: block; margin-top: 22px; padding: 2px 14px; border-radius: 14px 14px 0 0; background: #141311; position: relative; }
  [data-session-dlg] .sg-when { border-radius: 14px; }   /* 수정할 땐 '매주 반복' 줄이 없어요 */
  [data-session-dlg] .sg-when:has(+ .rep:not([hidden])) { border-radius: 14px 14px 0 0; }
  [data-session-dlg] .rep[hidden] { display: none; }
  [data-session-dlg] .sg-name::before, [data-session-dlg] .sg-when::before, [data-session-dlg] .sg-place::before { position: absolute; top: -20px; left: 4px; font-size: 12px; color: #8F887C; }
  [data-session-dlg] .sg-name::before { content: "기본"; } [data-session-dlg] .sg-when::before { content: "언제"; } [data-session-dlg] .sg-place::before { content: "운영진만 보는 메모"; }
  [data-session-dlg] .type-picks, [data-session-dlg] .rep { margin-top: 0; padding: 10px 14px 12px; border-top: 1px solid rgba(242,239,232,.08); border-radius: 0 0 14px 14px; background: #141311; }
  [data-session-dlg] .sg-name .fld { margin: 0; padding: 9px 0; border-top: 1px solid rgba(242,239,232,.08); }
  [data-session-dlg] .sg-name .fld:first-child { border-top: 0; }
  [data-session-dlg] .sg-name .fld span { margin-bottom: 2px; font-size: 11px; color: #8F887C; }
  [data-session-dlg] .sg-name .fld input { min-height: 30px; padding: 0; border: 0; border-radius: 0; background: transparent; font-size: 15.5px; box-shadow: none; }
  /* 언제: 이름은 왼쪽 · 값은 오른쪽 알약 (누르면 기본 선택창) */
  [data-session-dlg] .sg-when .fld { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0; min-height: 52px; border-top: 1px solid rgba(242,239,232,.08); }
  [data-session-dlg] .sg-when .fld:first-child { border-top: 0; }
  [data-session-dlg] .sg-when .fld span { margin: 0; font-size: 15.5px; color: #CFC8BC; }
  [data-session-dlg] .sg-when .fld input { width: auto; flex: none; height: 36px; min-height: 36px; padding: 0 12px; border: 0; border-radius: 9px; background: #26241F; font-size: 15px; }
  [data-session-dlg] .sg-when .fld input::-webkit-calendar-picker-indicator { display: none; }
  [data-session-dlg] .rep .sw { width: 100%; justify-content: space-between; flex-direction: row-reverse; font-size: 15.5px; }
  /* 팝업 안내: 한 줄 목록 — 누르면 그 칸만 열려요 */
  [data-session-dlg] .sp-fields { display: block; margin-top: 34px; padding: 0 14px; border: 0; border-radius: 14px; background: #141311; position: relative; }
  [data-session-dlg] .sp-fields legend { position: absolute; top: -22px; left: 4px; width: auto; margin: 0; font-size: 12px; font-weight: 400; color: #8F887C; }
  [data-session-dlg] .sp-fields legend small { display: none; }
  [data-session-dlg] .sp-fields > label.fld:not([data-sp-copy-wrap]) { display: none; margin: 0; padding: 0 0 12px; }
  [data-session-dlg] .sp-fields > label.fld.is-open { display: block; }
  [data-session-dlg] .sp-fields > label.fld > span { display: none; }
  [data-session-dlg] .sp-fields > [data-sp-copy-wrap] { margin: 0; padding: 12px 0; }
  [data-session-dlg] .sp-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 10px; width: 100%; min-height: 50px; padding: 0; border: 0; border-top: 1px solid rgba(242,239,232,.08); background: none; color: var(--ink); font: inherit; text-align: left; cursor: pointer; }
  [data-session-dlg] .sp-fields > .sp-row:first-of-type { border-top: 0; }
  [data-session-dlg] .sp-row-k { font-size: 15.5px; color: #CFC8BC; }
  [data-session-dlg] .sp-row-v { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: right; font-size: 14px; color: #A39C90; }
  [data-session-dlg] .sp-row.is-empty .sp-row-v { color: #6F695F; }
  [data-session-dlg] .sp-row-c { color: #6F695F; font-size: 18px; transition: transform .2s ease; }
  [data-session-dlg] .sp-row[aria-expanded="true"] .sp-row-c { transform: rotate(90deg); color: var(--y); }
  [data-session-dlg] .sp-photo-fld { margin: 0; padding: 12px 0; border-top: 1px solid rgba(242,239,232,.08); }
  [data-session-dlg] .sp-preview { display: block; margin: 0 auto; padding: 12px 0 14px; }
  [data-session-dlg] .sg-place, [data-session-dlg] .sg-memo { margin: 0; padding: 9px 14px; background: #141311; position: relative; }
  [data-session-dlg] .sg-place { margin-top: 34px; border-radius: 14px 14px 0 0; }
  [data-session-dlg] .sg-memo { border-top: 1px solid rgba(242,239,232,.08); border-radius: 0 0 14px 14px; }
  [data-session-dlg] .sg-place span, [data-session-dlg] .sg-memo span { margin-bottom: 2px; font-size: 11px; color: #8F887C; }
  [data-session-dlg] .sg-place input, [data-session-dlg] .sg-memo input { min-height: 30px; padding: 0; border: 0; background: transparent; font-size: 15px; box-shadow: none; }
  [data-session-dlg] .adm-dlg-body > .check { margin-top: 12px; padding: 0 4px; }
  /* 아래: 저장 · 닫기는 위 줄로 — 일정 삭제만 카드 한 줄 */
  [data-session-dlg] .adm-dlg-foot { display: block; padding: 6px 14px calc(36px + env(safe-area-inset-bottom)); border: 0; background: none; }
  [data-session-dlg] .adm-dlg-foot .form-actions { display: block; margin: 0; }
  [data-session-dlg] .adm-dlg-foot [data-form-cancel], [data-session-dlg] .adm-dlg-foot [type="submit"] { display: none; }
  [data-session-dlg] .adm-dlg-foot .danger { display: block; width: 100%; min-height: 50px; margin-top: 10px; border-radius: 14px; background: #141311; color: #FF7A5C; font-size: 15.5px; text-align: center; }
  [data-session-dlg] .adm-dlg-foot .danger[hidden] { display: none; }
  [data-session-dlg] .adm-dlg-foot .danger.is-armed { background: #FF6B4A; color: #0A0805; font-weight: 600; }
  [data-session-dlg] .adm-dlg-foot .form-note:not(:empty) { position: fixed; left: 14px; right: 14px; bottom: calc(18px + env(safe-area-inset-bottom)); z-index: 6; margin: 0; padding: 12px 16px; border: 1px solid rgba(255,199,44,.4); border-radius: 14px; background: rgba(14,13,11,.97); color: var(--ink); text-align: center; box-shadow: 0 14px 40px rgba(0,0,0,.6); }
}

/* 운영진 회원으로 들어오는 중 — 로그인 칸은 감추고 안내 글만 */
html.staff-auto .auth-page { visibility: hidden; }   /* 운영진 회원: 로그인 화면 없이 바로 관리 화면으로 (안 되면 그때 로그인 칸) */

/* ---------- 클래스 페이지 고치기 ---------- */
.cl-form .tx-group legend { color: var(--y); }
.cl-f { display: flex; flex-direction: column; gap: 4px; margin-top: 10px; min-width: 0; }
.cl-f > span { font-size: 12.5px; color: #A39C90; }
.cl-f input, .cl-f textarea, .cl-row input { width: 100%; min-width: 0; padding: 9px 12px; border: 1px solid rgba(242,239,232,.16); border-radius: 10px; background: #0A0908; color: var(--ink); font: inherit; font-size: 14px; line-height: 1.5; }
.cl-f textarea { resize: vertical; }
.cl-f input:focus, .cl-f textarea:focus, .cl-row input:focus { outline: none; border-color: var(--y); box-shadow: 0 0 0 3px rgba(255,199,44,.18); }
.cl-f input::placeholder, .cl-f textarea::placeholder, .cl-row input::placeholder { color: #4A463F; }
.cl-two { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0 10px; }
.cl-addbox { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin-top: 22px; }   /* + 클래스 더하기 */
.cl-addbox small { font-size: 12px; color: #8F887C; }
.cl-card.is-extra > legend { color: var(--y); }
.cl-rm { float: right; margin-top: -2px; color: #FF7A5C; }
.cl-rm.is-armed { font-weight: 600; }
.cl-photo { display: flex; align-items: center; gap: 14px; margin-top: 12px; }
.cl-thumb { flex: none; width: 168px; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 10px; background: #1A1916; position: relative; }
.cl-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.cl-photo-acts { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.cl-photo-acts small { font-size: 11.5px; color: #8F887C; }
.cl-thumb img { transition: none; }
.cl-adj { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 22px; margin-top: 12px; }   /* 사진 위아래 · 크기 */
.cl-adj label { display: flex; align-items: center; gap: 10px; font-size: 13px; color: #CFC8BC; }
.cl-adj label span { flex: none; min-width: 40px; }
.cl-adj input[type=range] { width: 150px; accent-color: var(--y); }
.cl-adj output { min-width: 56px; font-size: 12px; color: #8F887C; font-variant-numeric: tabular-nums; }
.cl-rows { display: flex; flex-direction: column; gap: 6px; }
.cl-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2.2fr) 30px; gap: 6px; align-items: center; }
.cl-x { width: 28px; height: 28px; padding: 0; border: 0; border-radius: 50%; background: rgba(255,107,74,.15); color: #FF7A5C; font-size: 16px; font-weight: 700; cursor: pointer; }
.cl-x:hover { background: #FF6B4A; color: #0A0805; }
.cl-add { align-self: flex-start; margin-top: 4px; }
@media (max-width: 720px) {
  .cl-two { grid-template-columns: 1fr; }
  .cl-thumb { width: 128px; }
  .cl-f input, .cl-f textarea, .cl-row input { font-size: 16px; }
}

.sg-times { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 6px; }   /* 일정 창: 시작 ~ 끝 */
.sg-times > span { color: #8F887C; }
.sg-times input { min-width: 0; width: 100%; }
.r2p-fast { margin-top: 6px; padding-top: 12px; border-top: 1px solid rgba(242,239,232,.08); }   /* 빠른 재생 주소 (Workers) */
.r2p-fast-how { margin-top: 8px; font-size: 13px; color: #A39C90; }
.r2p-fast-how summary { cursor: pointer; color: #7EE29A; }
.r2p-fast-how .r2p-guide { margin: 8px 0 0; }
.r2p-copy { margin: 0 2px; padding: 2px 9px; border: 1px solid rgba(126,226,154,.45); border-radius: 999px; background: rgba(126,226,154,.08); color: #7EE29A; font: inherit; font-size: 12px; cursor: pointer; }
.r2-repost { align-items: flex-start; margin-top: 2px; }   /* 릴스 고치기 — 표지를 첫 장면으로 다시 (R2) */
.r2-repost[hidden] { display: none; }
.r2-repost input { margin-top: 2px; }
.r2-repost em { display: block; margin-top: 2px; font-style: normal; font-size: 11.5px; color: #8F887C; }
.bulk-note { margin: 0 0 12px; padding: 10px 12px; border-radius: 10px; background: rgba(242,239,232,.05); font-size: 12.5px; line-height: 1.55; color: #CFC8BB; }   /* 정보 고치기 (여러 개) */
.bulk-clear { margin: -4px 0 6px; }
.sbtn[data-ar-bulk]:disabled { opacity: .45; cursor: default; }
/* 영상 전송량 (CloudFront 이번 달) */
.cf-box { flex: 1 1 280px; min-width: 0; max-width: 520px; cursor: default; }
.cf-top { display: flex; align-items: baseline; gap: 2px; font-size: 13px; color: #A39C90; }
.cf-top b { font-size: 18px; font-weight: 600; color: var(--ink); letter-spacing: -.01em; }
.cf-top em { margin-left: auto; font-style: normal; font-size: 13px; font-weight: 600; color: var(--y); }
.cf-bar { position: relative; height: 8px; margin: 6px 0 5px; border-radius: 999px; background: rgba(242,239,232,.1); overflow: hidden; }
.cf-bar i { position: absolute; left: 0; top: 0; bottom: 0; width: 0; border-radius: 999px; background: var(--y); transition: width .5s ease; }
.cf-box.is-warn .cf-bar i { background: #FF9B6A; }
.cf-box.is-warn .cf-top em { color: #FF9B6A; }
.cf-box.is-over .cf-bar i { background: #FF5A5A; }
.cf-box.is-over .cf-top em { color: #FF5A5A; }
.cf-box.is-off .cf-top b { color: #6F695F; }
.cf-sub { display: block; font-size: 11.5px; line-height: 1.45; color: #8F887C; }
.cf-acts { display: flex; gap: 4px; margin-left: auto; }
.cf-acts [hidden] { display: none; }
.cf-form { margin: 0 0 14px; padding: 14px 16px; border: 1px solid rgba(242,239,232,.1); border-radius: 14px; background: rgba(242,239,232,.03); }
.cf-form[hidden] { display: none; }
.cf-lim .seg-radio { width: 100%; }
.cf-form-act { display: flex; justify-content: flex-end; gap: 8px; margin-top: 12px; }
.cf-form .form-note:empty { display: none; }
/* 영상 속도 재기 — 이 기기 · 지금 인터넷 */
.spd { position: relative; display: flex; gap: 14px; align-items: flex-start; margin: 0 0 14px; padding: 14px 16px; border: 1px solid rgba(242,239,232,.1); border-radius: 14px; background: rgba(242,239,232,.03); }
.spd[hidden] { display: none; }
.spd-vid { flex: 0 0 54px; height: 96px; border-radius: 8px; background: #000; overflow: hidden; }
.spd-vid video { display: block; width: 100%; height: 100%; object-fit: cover; }
.spd-out { flex: 1 1 auto; min-width: 0; }
.spd-head { margin: 0 0 8px; font-size: 13px; line-height: 1.5; color: var(--ink); }
.spd-tab { width: 100%; border-collapse: collapse; font-size: 12.5px; font-variant-numeric: tabular-nums; }
.spd-tab th, .spd-tab td { padding: 5px 8px 5px 0; text-align: left; vertical-align: top; border-top: 1px solid rgba(242,239,232,.08); }
.spd-tab th { font-weight: 500; color: #8F887C; }
.spd-tab tr:first-child th { white-space: nowrap; font-size: 11.5px; }
.spd-tab tr + tr th { font-weight: 400; color: var(--ink); word-break: keep-all; overflow-wrap: anywhere; }
.spd-tab td { color: var(--ink); white-space: nowrap; }
.spd-tab th small, .spd-tab td small { display: block; margin-top: 1px; font-size: 11px; font-weight: 400; color: #8F887C; }
.spd-tab .is-slow { color: #FF9B6A; }
.spd-tab .is-ok { color: #7EE29A; }
.spd-msg { margin: 8px 0 0; font-size: 12px; line-height: 1.5; color: #A39C90; }
.spd-msg:empty { display: none; }
@media (max-width: 560px) {                     /* 폰: 표를 넓게 — 재생 화면은 오른쪽 위에 작게 */
  .spd { display: block; padding: 12px 14px; }
  .spd-vid { position: absolute; right: 12px; top: 12px; width: 36px; height: 64px; }
  .spd-head { min-height: 64px; padding-right: 46px; }
  .spd-tab { font-size: 12px; }
}
/* 영상 창고 — R2 → S3 (서울) 옮기기 · CloudFront 원본 바꾸기 */
.s3-row { border-top: 1px solid rgba(242,239,232,.08); }
.s3-box { flex: 1 1 280px; min-width: 0; max-width: 520px; }
.s3-state { display: block; font-size: 15px; font-weight: 600; color: var(--ink); overflow-wrap: anywhere; }
.s3-row.is-live .s3-state { color: #7EE29A; }
.s3-move { margin: 0 0 14px; padding: 14px 16px; border: 1px solid rgba(242,239,232,.1); border-radius: 14px; background: rgba(242,239,232,.03); }
.s3-move[hidden] { display: none; }
.s3-head { margin: 0; font-size: 13px; line-height: 1.5; color: var(--ink); font-variant-numeric: tabular-nums; }
.s3-files { max-height: 236px; margin: 4px 0 0; padding: 0; list-style: none; overflow: auto; font-size: 12.5px; }
.s3-files:empty { display: none; }
.s3-files li { display: flex; gap: 10px; align-items: baseline; padding: 5px 0; border-top: 1px solid rgba(242,239,232,.08); }
.s3-files li span { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #CFC8BB; }
.s3-files li small { flex: none; font-size: 11.5px; color: #8F887C; font-variant-numeric: tabular-nums; }
.s3-files li.is-done small { color: #7EE29A; }
.s3-files li.is-run small { color: var(--y); }
.s3-files li.is-err small { color: #FF9B6A; }
.s3-msg { margin: 10px 0 0; font-size: 12.5px; line-height: 1.65; color: #CFC8BB; white-space: pre-line; }
.s3-msg:empty { display: none; }
.s3-next { margin-top: 12px; }
.s3-next[hidden] { display: none; }
.s3-next-h { margin: 0 0 8px; font-size: 13px; font-weight: 600; color: var(--ink); }
.s3-next .r2p-guide { margin: 0; }
.s3-row ~ .cf-form .r2p-guide a, .s3-next .r2p-guide a { color: #7EE29A; }
.s3-dom { word-break: break-all; }
.s3-next .r2p-copy:disabled { opacity: .5; cursor: default; }
.s3-next .r2p-guide, .s3-row ~ .cf-form .r2p-guide { list-style: decimal; }   /* 확인 결과가 '4번' 처럼 번호로 말해요 */
.s3-next .r2p-guide li::marker, .s3-row ~ .cf-form .r2p-guide li::marker { color: #8F887C; font-size: 12px; }
.s3-row .cf-sub a { color: #7EE29A; }
/* 골라 보기 — 종류 · 구분 */
.ar-filter { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: 8px 20px; margin: 14px 0 2px; }
.ar-filter[hidden] { display: none; }
.arf-grp { display: flex; align-items: center; gap: 8px; min-width: 0; max-width: 100%; }
.arf-l { flex: none; font-size: 12px; color: #8F887C; }
.ar-filter .seg { flex-wrap: nowrap; max-width: 100%; overflow-x: auto; scrollbar-width: none; }
.ar-filter .seg::-webkit-scrollbar { display: none; }
.ar-filter .seg button { flex: none; white-space: nowrap; }
.ar-filter .seg button small { margin-left: 5px; font-size: 11px; opacity: .6; font-variant-numeric: tabular-nums; }
.arf-note { flex: 1 1 100%; margin: 0; font-size: 12px; line-height: 1.5; color: #A39C90; }
.arf-off { min-height: 0; padding: 0 2px; font-size: 12px; color: var(--y); }
.albums.is-filtered .drag { visibility: hidden; pointer-events: none; }
/* 영상 창고 — 옮길 목록 (고른 것만) · 어디 → 어디 */
.s3-route { margin: 0 0 12px; padding: 10px 12px; border-radius: 10px; background: rgba(255,199,44,.07); border: 1px solid rgba(255,199,44,.22); }
.s3-path { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin: 0; font-size: 13.5px; }
.s3-path b { font-weight: 600; color: var(--ink); overflow-wrap: anywhere; }
.s3-path span { color: var(--y); font-weight: 700; }
.s3-rnote { margin: 4px 0 0; font-size: 12px; line-height: 1.55; color: #A39C90; }
.s3-pick { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin: 0 0 10px; }
.s3-pick[hidden] { display: none; }
.s3-all { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; color: var(--ink); cursor: pointer; }
.s3-cnt { font-size: 12.5px; color: #A39C90; font-variant-numeric: tabular-nums; }
.s3-go { margin-left: auto; min-height: 36px; padding: 0 16px; font-size: 13px; }
.s3-go:disabled { opacity: .45; cursor: default; }
.s3-move input[type="checkbox"] { width: 16px; height: 16px; margin: 0; flex: none; accent-color: #FFC72C; cursor: pointer; }
.s3-move input[type="checkbox"]:disabled { cursor: default; opacity: .5; }
.s3-files li { padding: 0; }
.s3-files li label { display: flex; flex: 1 1 auto; min-width: 0; gap: 10px; align-items: center; padding: 6px 0; cursor: pointer; }
.s3-files li.is-done label { cursor: default; }
.s3-files li label span { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #CFC8BB; }
.s3-files li.is-done label span { color: #8F887C; }
.s3-stop { margin-left: auto; min-height: 36px; padding: 0 16px; font-size: 13px; }
.s3-stop[hidden], .s3-go[hidden] { display: none; }
.s3-files li.is-stop small { color: #FF9B6A; }
/* 관리자 열 때 — 지난번 내용을 먼저 보여 주고 새로 읽는 건 오른쪽 아래 작게 (그동안 고치기는 잠가요) */
.banner--load.is-mini { top: auto; bottom: 20px; left: auto; right: 20px; width: min(360px, calc(100% - 32px)); padding: 10px 14px; transform: none; }
.banner--load.is-mini .load-top { font-size: 13px; }
.banner--load.is-mini .gauge { height: 4px; margin-top: 8px; }
.banner--load.is-mini .load-sub { margin-top: 6px; font-size: 11.5px; line-height: 1.5; }
@media (max-width: 760px) { .banner--load.is-mini { top: auto; left: 16px; right: 16px; bottom: 16px; width: auto; } }
.adm-main.is-stale [data-panel] { cursor: progress; }
/* 배경 › 페이지 바탕 — 실크 무늬 · 단색 · 그라데이션 (+ 나머지 페이지에도?) */
.pg-fill { margin: 0 0 14px; padding: 12px 14px; border: 1px solid rgba(242,239,232,.1); border-radius: 12px; background: rgba(242,239,232,.03); }
.pg-fill[hidden] { display: none; }
.pg-fill .seg button[aria-checked="true"] { background: var(--y); color: #0A0805; font-weight: 500; }
.pgf-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.pgf-row + .pgf-row { margin-top: 10px; }
.pgf-row[hidden], .pgf-to[hidden], .pgf-dirs[hidden] { display: none; }
.pgf-l { flex: none; width: 34px; font-size: 12.5px; color: #8F887C; }
.pgf-c { display: inline-flex; align-items: center; gap: 6px; }
.pgf-c input[type="color"] { width: 34px; height: 34px; padding: 0; border: 1px solid rgba(242,239,232,.25); border-radius: 8px; background: none; cursor: pointer; }
.pgf-c input[type="color"]::-webkit-color-swatch-wrapper { padding: 2px; }
.pgf-c input[type="color"]::-webkit-color-swatch { border: 0; border-radius: 6px; }
.pgf-c input[type="color"]::-moz-color-swatch { border: 0; border-radius: 6px; }
.pgf-hex { width: 86px; min-height: 34px; padding: 0 8px; border: 1px solid rgba(242,239,232,.18); border-radius: 8px; background: rgba(0,0,0,.25); color: var(--ink); font: 500 12.5px/1 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; text-transform: uppercase; }
.pgf-to { display: inline-flex; align-items: center; gap: 8px; color: #8F887C; }
.pgf-dirs { flex-wrap: wrap; }
.pgf-note { margin: 10px 0 0; font-size: 11.5px; line-height: 1.5; color: #8F887C; }
.pgf-ask { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-top: 10px; padding: 10px 12px; border: 1px solid rgba(255,199,44,.25); border-radius: 10px; background: rgba(255,199,44,.08); font-size: 12.5px; line-height: 1.5; color: #E9DDBF; }
.pgf-ask[hidden] { display: none; }
.pgf-ask-btns { display: inline-flex; align-items: center; gap: 6px; margin-left: auto; }
/* 회원 › 수강권 (마라톤 · 인터벌 · 실내보강 · 시즌패스) — 관리자가 직접 표시 · 위에서 수강권별로 골라 보기 */
.mb-pass { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; margin-top: 4px; }
.mb-pass-l { margin-right: 2px; font-size: 11.5px; color: #8F887C; }
.mb-chip { min-height: 26px; padding: 0 10px; border: 1px solid rgba(242,239,232,.2); border-radius: 999px; background: none; color: #A39C90; font: inherit; font-size: 12px; cursor: pointer; }
.mb-chip:hover { color: var(--ink); border-color: rgba(242,239,232,.4); }
.mb-chip[aria-pressed="true"] { border-color: var(--y); background: var(--y); color: #0A0805; font-weight: 500; }
.mb-chip:disabled { opacity: .5; cursor: default; }
.mb-pf { margin: 2px 0 10px; flex-wrap: wrap; }
.mb-pf[hidden] { display: none; }
.mb-pf button small { margin-left: 5px; font-size: 11px; opacity: .6; font-variant-numeric: tabular-nums; }
/* 회원 목록 (B-2 + 여러 명 고르기) — 표 · 수강권 칸을 누르면 체크 목록 · 역할 버튼 · ⋯ · 고른 사람에게 수강권 주기 · 폰은 시트 */
.mb-okcard { position: relative; }
.pd-marathon { background: #FFC72C; } .pd-interval { background: #FF9B6A; } .pd-indoor { background: #7FB2FF; } .pd-season { background: #7EE29A; }
.pb { display: inline-flex; align-items: center; gap: 5px; font-size: 12.5px; color: var(--ink); white-space: nowrap; }
.pb i, .mb-pf button i, .mbs-chip i { flex: none; width: 7px; height: 7px; border-radius: 50%; }
.pb.is-none { color: #8F887C; }
.mb-pf button { display: inline-flex; align-items: center; gap: 5px; }
.mr-head, .mr { display: grid; grid-template-columns: 22px 24px minmax(150px, 1.3fr) minmax(150px, 1.4fr) 132px 76px 32px; align-items: center; gap: 0 12px; }
.mr-head { padding: 4px 0 8px; border-bottom: 1px solid rgba(242,239,232,.08); font-size: 11.5px; color: #8F887C; }
.mr-head[hidden] { display: none; }
.mr-ck-l { display: none; }
.mr-list { margin: 0; padding: 0; list-style: none; }
.mr { position: relative; padding: 10px 0; border-bottom: 1px solid rgba(242,239,232,.06); }
.mr.is-sel { background: linear-gradient(90deg, rgba(255,199,44,.07), rgba(255,199,44,.02)); }
.mr-ck { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; }
.mr-no { font-size: 12px; color: #8F887C; text-align: center; font-variant-numeric: tabular-nums; }
.mr-who { display: flex; align-items: center; gap: 10px; min-width: 0; }
.mr-who .mb-av, .mbs-who .mb-av { flex: none; }
.mr-nm { min-width: 0; }
.mr-nm b { display: block; font-size: 14px; font-weight: 600; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mr-nm small { display: block; margin-top: 2px; font-size: 11.5px; color: #8F887C; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mr-nm .mb-tag { display: none; }
.mb-tag.is-c { background: rgba(242,239,232,.1); color: #CFC8BC; }
.mr-pass { min-width: 0; }
.mr-pbtn { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; max-width: 100%; margin: -5px -8px; padding: 5px 8px; border: 0; border-radius: 8px; background: none; font: inherit; text-align: left; cursor: pointer; }
.mr-pbtn:hover, .mr-pbtn[aria-expanded="true"] { background: rgba(242,239,232,.07); }
.mr-pbtn .caret { color: #8F887C; font-size: 9px; }
.mr-role { display: flex; gap: 5px; }
.mini { display: inline-flex; align-items: center; height: 26px; padding: 0 10px; border: 1px solid rgba(242,239,232,.16); border-radius: 999px; background: none; color: #8F887C; font: inherit; font-size: 12px; cursor: pointer; white-space: nowrap; }
.mini:hover { color: var(--ink); border-color: rgba(242,239,232,.35); }
.mini[aria-pressed="true"] { border-color: rgba(255,199,44,.55); background: rgba(255,199,44,.12); color: var(--y); font-weight: 600; }
.mini:disabled { opacity: .5; cursor: default; }
.mr-last { font-size: 12px; color: #A39C90; white-space: nowrap; font-variant-numeric: tabular-nums; }
.mr-dots { width: 30px; height: 30px; border: 0; border-radius: 8px; background: none; color: #A39C90; font-size: 17px; line-height: 1; cursor: pointer; }
.mr-dots:hover, .mr-dots[aria-expanded="true"] { background: rgba(242,239,232,.08); color: var(--ink); }
.mr .mb-temp { grid-column: 3 / -1; margin: 8px 0 0; }
/* 고른 사람 막대 */
.mb-sel { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 2px 0 10px; padding: 8px 10px 8px 14px; border: 1px solid rgba(255,199,44,.35); border-radius: 12px; background: #1d1a13; font-size: 13px; }
.mb-sel[hidden] { display: none; }
.mb-sel b { margin-right: 4px; color: var(--y); font-weight: 600; }
.mb-sbtn { display: inline-flex; align-items: center; gap: 5px; height: 32px; padding: 0 13px; border: 1px solid rgba(255,199,44,.45); border-radius: 999px; background: none; color: var(--y); font: inherit; font-size: 12.5px; cursor: pointer; }
.mb-sbtn.is-main { border-color: var(--y); background: var(--y); color: #0A0805; font-weight: 600; }
.mb-sbtn:disabled { opacity: .5; cursor: default; }
.mb-sclear { margin-left: auto; padding: 0 4px; border: 0; background: none; color: #8F887C; font: inherit; font-size: 12.5px; cursor: pointer; }
/* 떠 있는 작은 창 */
.mb-pop { position: absolute; z-index: 30; min-width: 190px; padding: 6px; border: 1px solid rgba(242,239,232,.14); border-radius: 12px; background: #1b1916; box-shadow: 0 14px 40px rgba(0,0,0,.55); }
.mb-pop[hidden] { display: none; }
.mbp-h { margin: 0; padding: 6px 8px 4px; font-size: 11px; color: #8F887C; }
.mbp-it { display: flex; align-items: center; gap: 9px; width: 100%; padding: 8px 8px; border: 0; border-radius: 8px; background: none; color: var(--ink); font: inherit; font-size: 13px; text-align: left; cursor: pointer; white-space: nowrap; }
.mbp-it:hover, .mbp-it:focus-visible { background: rgba(242,239,232,.07); outline: none; }
.mbp-it.is-del { color: #FF8A65; }
.mbp-it.is-armed { background: #FF6B4A; color: #0A0805; font-weight: 600; }
.mbp-ck { width: 16px; height: 16px; flex: none; display: grid; place-items: center; border: 1.5px solid rgba(242,239,232,.35); border-radius: 5px; color: #0A0805; font-size: 11px; font-weight: 700; }
.mbp-it[aria-checked="true"] .mbp-ck { border-color: var(--y); background: var(--y); }
/* 폰 시트 */
.mb-sheet-bg { position: fixed; inset: 0; z-index: 80; background: rgba(0,0,0,.55); }
.mb-sheet { position: fixed; left: 0; right: 0; bottom: 0; z-index: 81; max-height: 82vh; overflow: auto; padding: 8px 16px calc(20px + env(safe-area-inset-bottom)); border-top: 1px solid rgba(242,239,232,.12); border-radius: 20px 20px 0 0; background: #191714; }
.mb-sheet[hidden], .mb-sheet-bg[hidden] { display: none; }
html.mb-sheet-open { overflow: hidden; }
.mbs-grab { width: 38px; height: 4px; margin: 2px auto 12px; border-radius: 999px; background: rgba(242,239,232,.25); }
.mbs-who { display: flex; align-items: center; gap: 10px; }
.mbs-who .mr-nm { flex: 1; }
.mbs-x { width: 34px; height: 34px; border: 0; border-radius: 50%; background: rgba(242,239,232,.08); color: #CFC8BC; font: inherit; cursor: pointer; }
.mbs-h { margin: 16px 0 8px; font-size: 11.5px; color: #8F887C; }
.mbs-tg { display: flex; flex-wrap: wrap; gap: 6px; }
.mbs-chip { display: inline-flex; align-items: center; gap: 7px; height: 38px; padding: 0 14px; border: 1px solid rgba(242,239,232,.16); border-radius: 11px; background: none; color: #CFC8BC; font: inherit; font-size: 13.5px; cursor: pointer; }
.mbs-chip i { opacity: .5; }
.mbs-chip[aria-pressed="true"] { border-color: rgba(255,199,44,.6); background: rgba(255,199,44,.1); color: var(--ink); font-weight: 600; }
.mbs-chip[aria-pressed="true"] i { opacity: 1; }
.mbs-chip[aria-pressed="true"]::after { content: "✓"; color: var(--y); font-size: 12px; }
.mbs-role { display: flex; gap: 6px; }
.mbs-role .mini { height: 34px; padding: 0 14px; font-size: 13px; }
.mbs-acts { display: flex; gap: 8px; margin-top: 18px; }
.mbs-act { flex: 1; height: 42px; border: 1px solid rgba(242,239,232,.16); border-radius: 12px; background: none; color: var(--y); font: inherit; font-size: 13.5px; cursor: pointer; }
.mbs-act.is-del { border-color: rgba(255,138,101,.4); color: #FF8A65; }
.mbs-act.is-armed { border-color: #FF6B4A; background: #FF6B4A; color: #0A0805; font-weight: 600; }
.mbs-act:disabled, .mbs-chip:disabled { opacity: .5; }
@media (max-width: 760px) {
  .mr-head { grid-template-columns: 22px minmax(0, 1fr); padding: 2px 0 8px; }
  .mr-head > span { display: none; }
  .mr-ck-l { display: inline; font-size: 12px; color: #A39C90; }
  .mr { grid-template-columns: 22px minmax(0, 1fr) 30px; grid-template-rows: auto auto; gap: 4px 10px; padding: 11px 0; }
  .mr-ck { grid-row: 1 / span 2; align-self: center; }
  .mr-no, .mr-role, .mr-last { display: none; }
  .mr-who { grid-column: 2; grid-row: 1; }
  .mr-pass { grid-column: 2; grid-row: 2; padding-left: 44px; }
  .mr-more { grid-column: 3; grid-row: 1 / span 2; align-self: center; }
  .mr-nm b { display: flex; align-items: center; gap: 0; }
  .mr-nm .mb-tag { display: inline-block; flex: none; }
  .mr-nm small { display: none; }
  .mr-pbtn .caret { display: none; }
  .mr .mb-temp { grid-column: 2 / -1; }
  .mb-okcard.has-sel { padding-bottom: 76px; }
  .mb-sel { position: fixed; left: 12px; right: 12px; bottom: calc(14px + env(safe-area-inset-bottom)); z-index: 70; margin: 0; box-shadow: 0 10px 30px rgba(0,0,0,.6); }
  .mb-sel b { margin-right: auto; }
  .mb-sclear { margin-left: 0; }
}
.mb-pop.is-fixed { position: fixed; top: auto !important; left: 12px !important; right: 12px !important; bottom: calc(74px + env(safe-area-inset-bottom)); z-index: 75; }
@media (max-width: 760px) {
  .mb-pf { flex-wrap: nowrap; max-width: 100%; overflow-x: auto; scrollbar-width: none; }   /* 폰: 수강권별로 보기는 한 줄 (옆으로 밀어서) */
  .mb-pf::-webkit-scrollbar { display: none; }
  .mb-pf button { flex: none; white-space: nowrap; }
  .mr-head .mr-ck { grid-column: 1 / -1; white-space: nowrap; }
}
/* 1.40.4b 회원 표 — 이름 칸 좁게 (수강권을 왼쪽으로) · 수강권 4개여도 ▾ 는 같은 줄 */
.mr-head, .mr { grid-template-columns: 22px 22px minmax(120px, 170px) minmax(0, 1fr) 124px 70px 32px; gap: 0 10px; }
.mr-pbtn { flex-wrap: nowrap; gap: 0 6px; }
.mr-pbs { display: flex; align-items: center; gap: 0 9px; min-width: 0; overflow: hidden; white-space: nowrap; }
.mr-pbtn .caret { flex: none; }
@media (max-width: 760px) {
  .mr-head, .mr { grid-template-columns: 22px minmax(0, 1fr) 30px; }
  .mr-pbs { flex-wrap: wrap; gap: 3px 9px; white-space: normal; }
  /* 폰: 수강권별로 보기 작게 · 자간 좁게 */
  .mb-pf { padding: 2px; gap: 0; }
  .mb-pf button { min-height: 28px; padding: 0 9px; gap: 4px; font-size: 12px; letter-spacing: -.03em; }
  .mb-pf button small { margin-left: 2px; font-size: 10.5px; letter-spacing: 0; }
  .mb-pf button i { width: 6px; height: 6px; }
  /* 폰 시트 작게 */
  .mb-sheet { padding: 6px 14px calc(16px + env(safe-area-inset-bottom)); }
  .mbs-grab { margin-bottom: 10px; }
  .mbs-who .mb-av { width: 30px; height: 30px; font-size: 12px; }
  .mbs-who .mr-nm b { font-size: 14px; }
  .mbs-x { width: 30px; height: 30px; font-size: 12px; }
  .mbs-h { margin: 12px 0 6px; font-size: 11px; }
  .mbs-tg { gap: 5px; }
  .mbs-chip { height: 32px; padding: 0 10px; gap: 5px; border-radius: 9px; font-size: 12.5px; letter-spacing: -.02em; }
  .mbs-chip i { width: 6px; height: 6px; }
  .mbs-chip[aria-pressed="true"]::after { font-size: 10.5px; }
  .mbs-role .mini { height: 28px; padding: 0 11px; font-size: 12px; }
  .mbs-acts { gap: 6px; margin-top: 14px; }
  .mbs-act { height: 36px; border-radius: 10px; font-size: 12.5px; }
}
/* 1.40.4c 회원 표 체크 칸 — 아카이브 목록과 같은 칸 (A) · 일부만 고르면 가운데 줄 */
.mr-ck .ar-ck-box svg { grid-area: 1 / 1; }
.mr-head > span { white-space: nowrap; }   /* '마지막 로그인' 두 줄로 안 꺾이게 */
.mr-ck .ar-ck input:indeterminate + .ar-ck-box { box-shadow: none; }
.mr-ck .ar-ck input:indeterminate + .ar-ck-box::before { content: ""; grid-area: 1 / 1; width: 9px; height: 2px; border-radius: 2px; background: #0A0805; }
/* 1.40.4d 폰: 프로필 사진은 줄 가운데 (이름 · 수강권 두 줄 사이) */
@media (max-width: 760px) {
  .mr { grid-template-columns: 22px 36px minmax(0, 1fr) 30px; }
  .mr-who { display: contents; }
  .mr-who .mb-av { grid-column: 2; grid-row: 1 / span 2; align-self: center; }
  .mr-nm { grid-column: 3; grid-row: 1; }
  .mr-pass { grid-column: 3; grid-row: 2; padding-left: 0; }
  .mr-more { grid-column: 4; }
}
/* 1.40.4e 폰: 수강권별로 보기 — 양옆 끝까지 (칸 사이 고르게) */
@media (max-width: 760px) {
  .mb-pf { display: flex; width: 100%; }
  .mb-pf button { flex: 1 0 auto; justify-content: center; }
}
/* 1.41 R-Log 대회 — 손잡이 (끌기) · 날짜 · 출발 시간 · 이름 · 출발지 · ↑↓ · 빼기 */
[data-rlp-races] { container: rlpra / inline-size; }
.rlp-ra { grid-template-columns: 20px 150px 156px minmax(0, 1fr) minmax(0, 1fr) 26px 36px; }
.rlp-grip { display: grid; place-items: center; width: 20px; height: 40px; padding: 0; border: 0; border-radius: 6px; background: none; color: #6F695F; cursor: grab; touch-action: none; user-select: none; -webkit-user-select: none; }
.rlp-grip:hover, .rlp-grip:focus-visible { color: var(--y); outline: none; }
.rlp-ra.is-drag { position: relative; z-index: 2; border-radius: 12px; background: rgba(255,199,44,.08); box-shadow: 0 0 0 1px rgba(255,199,44,.55), 0 12px 26px rgba(0,0,0,.55); }
.rlp-ra.is-drag .rlp-grip { color: var(--y); cursor: grabbing; }
.rlp-time { position: relative; display: block; min-width: 0; margin: 0; }
.rlp-time b { position: absolute; left: 10px; top: 50%; z-index: 1; transform: translateY(-50%); font-size: 11.5px; font-weight: 500; color: #8F887C; pointer-events: none; }
.rlp-row .rlp-time input { padding-left: 40px; }
.rlp-row input::-webkit-date-and-time-value { text-align: left; }
.rlp-mv { display: flex; flex-direction: column; gap: 2px; }
.rlp-mvb { display: grid; place-items: center; width: 26px; height: 19px; padding: 0; border: 1px solid rgba(242,239,232,.1); border-radius: 6px; background: rgba(242,239,232,.03); color: #CFC8BC; cursor: pointer; }
.rlp-mvb:hover:not(:disabled), .rlp-mvb:focus-visible { border-color: var(--y); color: var(--y); outline: none; }
.rlp-mvb:disabled { opacity: .28; cursor: default; }
/* 좁을 때 (폰 · 좁은 창): 날짜 · 출발 시간 / 이름 / 출발지 세 줄 — 오른쪽에 빼기 · ↑ · ↓ */
@container rlpra (max-width: 700px) {
  .rlp-ra { grid-template-columns: 20px minmax(0, 150px) minmax(0, 156px) minmax(0, 1fr) 36px; gap: 6px; padding: 2px 0 12px; border-bottom: 1px solid rgba(242,239,232,.08); }
  .rlp-ra .rlp-grip { grid-column: 1; grid-row: 1 / span 3; height: 100%; min-height: 40px; }
  .rlp-ra [name="date"] { grid-column: 2; grid-row: 1; }
  .rlp-ra .rlp-time { grid-column: 3; grid-row: 1; }
  .rlp-ra [name="name"] { grid-column: 2 / span 3; grid-row: 2; }
  .rlp-ra [name="place"] { grid-column: 2 / span 3; grid-row: 3; }
  .rlp-ra .rlp-x { grid-column: 5; grid-row: 1; justify-self: center; }
  .rlp-ra .rlp-mv { grid-column: 5; grid-row: 2 / span 2; gap: 6px; }
  .rlp-ra .rlp-mvb { width: 36px; height: 40px; border-radius: 10px; }
}
@container rlpra (max-width: 460px) {             /* 폰: 시계 아이콘은 빼고 (누르면 폰 시간 고르기가 떠요) */
  .rlp-time input::-webkit-calendar-picker-indicator { display: none; }
  .rlp-row .rlp-time input { padding-right: 6px; }
}
@media (max-width: 760px) {                         /* (container query 를 모르는 브라우저도 폰에서는 세 줄로) */
  .rlp-ra { grid-template-columns: 20px minmax(0, 150px) minmax(0, 156px) minmax(0, 1fr) 36px; gap: 6px; padding: 2px 0 12px; border-bottom: 1px solid rgba(242,239,232,.08); }
  .rlp-ra .rlp-grip { grid-column: 1; grid-row: 1 / span 3; height: 100%; min-height: 40px; }
  .rlp-ra [name="date"] { grid-column: 2; grid-row: 1; }
  .rlp-ra .rlp-time { grid-column: 3; grid-row: 1; }
  .rlp-ra [name="name"] { grid-column: 2 / span 3; grid-row: 2; }
  .rlp-ra [name="place"] { grid-column: 2 / span 3; grid-row: 3; }
  .rlp-ra .rlp-x { grid-column: 5; grid-row: 1; justify-self: center; }
  .rlp-ra .rlp-mv { grid-column: 5; grid-row: 2 / span 2; gap: 6px; }
  .rlp-ra .rlp-mvb { width: 36px; height: 40px; border-radius: 10px; }
}
@media (max-width: 480px) {
  .rlp-time input::-webkit-calendar-picker-indicator { display: none; }
  .rlp-row .rlp-time input { padding-right: 6px; }
}
/* 1.41.1b 아카이브 › '영상 설정' 탭 — 전송량 · 영상 창고는 따로 (코치님이 보기 쉽게) */
.ar-ptabs { justify-self: start; margin: 0; }
.ar-ptabs button { display: inline-flex; align-items: center; gap: 7px; min-height: 38px; padding: 0 18px; font-size: 13.5px; }
.ar-video-note { margin: 14px 0 2px; font-size: 12.5px; color: #8F887C; }
