/* 아이로 비서 오디션 탭 — spaceeum.info 디자인 토큰을 그대로 사용 (다크 기본, [data-theme="light"] 대응)
 * 사이트 메인 CSS 와 함께 넣어도 충돌하지 않도록 오디션 전용 요소는 .au- 접두사를 씀. */
:root {
  --primary:#2EC4A5; --primary-rgb:46,196,165; --primary-dark:#25A48B; --primary-soft:#11362E; --primary-ink:#06130F;
  --ink:#E9F5F0; --ink2:#C2D1CB; --gray:#7A8A85; --gray2:#556561; --line:#2C3F38; --line-soft:#1A2924;
  --bg:#020607; --bg-soft:#0E1916; --bg-card:#1F2E29; --bg-card-hi:#263530; --accent-yellow:#D4A847; --warn:#DF5A3F;
  --shadow-card:0 8px 24px rgba(0,0,0,.45); --shadow-card-hover:0 16px 40px rgba(0,0,0,.55);
  --inset-hi:inset 0 1px 0 rgba(255,255,255,.04);
  --header-bg:rgba(2,6,7,.85); --footer-bg:#010404;
  --hero-glow:radial-gradient(ellipse 80% 60% at 50% 0%, rgba(var(--primary-rgb),.1) 0%, transparent 70%), var(--bg);
}
[data-theme="light"] {
  --primary:#3182F6; --primary-rgb:49,130,246; --primary-dark:#1B64DA; --primary-soft:#E8F2FF; --primary-ink:#FFFFFF;
  --ink:#191F28; --ink2:#333D4B; --gray:#6B7684; --gray2:#8B95A1; --line:#E5E8EB; --line-soft:#F1F3F5;
  --bg:#FFFFFF; --bg-soft:#F9FAFB; --bg-card:#FFFFFF; --bg-card-hi:#FFFFFF; --accent-yellow:#B08300; --warn:#D14A2F;
  --shadow-card:0 4px 14px rgba(0,0,0,.06); --shadow-card-hover:0 12px 32px rgba(0,0,0,.1); --inset-hi:none;
  --header-bg:rgba(255,255,255,.85); --footer-bg:#191F28; --hero-glow:linear-gradient(180deg,#FAFCFF 0%,#FFFFFF 100%);
}
* { margin:0; padding:0; box-sizing:border-box; -webkit-font-smoothing:antialiased; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body { font-family:'Pretendard',-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo','Noto Sans KR','Noto Sans CJK KR',sans-serif;
  color:var(--ink); background:var(--bg); line-height:1.5; letter-spacing:-0.3px; word-break:keep-all; overflow-wrap:anywhere; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
button { font:inherit; color:inherit; cursor:pointer; }
body.au-lock { overflow:hidden; }
.au-sr { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

/* ---- 헤더 (사이트와 동일) ---- */
header.site { position:fixed; top:0; left:0; right:0; z-index:100; background:var(--header-bg);
  backdrop-filter:saturate(180%) blur(20px); -webkit-backdrop-filter:saturate(180%) blur(20px); border-bottom:1px solid var(--line); }
.header-inner { max-width:1180px; margin:0 auto; padding:0 24px; height:64px; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.brand { display:flex; align-items:center; gap:8px; font-weight:800; font-size:18px; letter-spacing:-0.5px; flex:none; }
.brand-logo { width:32px; height:32px; border-radius:8px; object-fit:cover; background:#0E1916; }
header.site nav { display:flex; gap:32px; align-items:center; }
header.site nav a { color:var(--gray); font-weight:600; font-size:15px; transition:color .15s; white-space:nowrap; }
header.site nav a:hover, header.site nav a[aria-current="page"] { color:var(--ink); }
header.site nav a[aria-current="page"] { position:relative; }
header.site nav a[aria-current="page"]::after { content:''; position:absolute; left:0; right:0; bottom:-6px; height:2px; border-radius:2px; background:var(--primary); }
.btn-cta-nav { padding:9px 18px; background:var(--primary); color:var(--primary-ink)!important; border-radius:8px; font-size:14px!important; font-weight:800; }
.btn-cta-nav:hover { background:var(--primary-dark); }
@media (max-width:880px) {
  header.site nav a:not(.btn-cta-nav):not(.nav-blog):not(.nav-audition) { display:none; }
  header.site nav { gap:16px; }
}
@media (max-width:420px) {
  .header-inner { padding:0 16px; }
  header.site nav { gap:12px; }
  header.site nav a { font-size:14px; }
  .btn-cta-nav { padding:8px 12px; }
}

/* ---- 공통 ---- */
.au-inner { max-width:1180px; margin:0 auto; }
.au-sec { padding:72px 20px; position:relative; }
.au-sec + .au-sec::before { content:''; position:absolute; top:0; left:50%; transform:translateX(-50%); width:60px; height:1px;
  background:linear-gradient(90deg,transparent,rgba(var(--primary-rgb),.4),transparent); }
.au-label { display:inline-block; font-size:13px; font-weight:800; color:var(--primary); letter-spacing:.06em; margin-bottom:10px; }
.au-h2 { font-size:clamp(24px,4vw,36px); font-weight:800; letter-spacing:-1px; line-height:1.3; margin-bottom:10px; }
.au-desc { font-size:16px; color:var(--gray); line-height:1.7; max-width:640px; }
.au-btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:15px 24px; border-radius:12px; border:none;
  font-size:16px; font-weight:800; transition:transform .15s, background .15s, box-shadow .15s, opacity .15s; }
.au-btn-primary { background:var(--primary); color:var(--primary-ink); box-shadow:0 4px 16px rgba(var(--primary-rgb),.25); }
.au-btn-primary:hover { background:var(--primary-dark); }
.au-btn-primary:disabled { opacity:.4; cursor:not-allowed; box-shadow:none; }
.au-btn-ghost { background:var(--bg-card); color:var(--ink); border:1px solid var(--line); }
.au-btn-ghost:hover { border-color:var(--primary); }
.au-mock-flag { position:fixed; left:12px; top:72px; z-index:90; padding:5px 10px; border-radius:999px; font-size:12px; font-weight:800;
  background:rgba(212,168,71,.15); color:var(--accent-yellow); border:1px solid rgba(212,168,71,.45); }

/* ---- 히어로 ---- */
.au-hero { padding:112px 20px 56px; background:var(--hero-glow); }
.au-hero .au-inner { max-width:880px; text-align:center; }
.au-badge { display:inline-flex; align-items:center; gap:8px; padding:6px 14px; background:rgba(var(--primary-rgb),.1); color:var(--primary);
  border:1px solid rgba(var(--primary-rgb),.3); border-radius:20px; font-size:13px; font-weight:700; margin-bottom:20px; }
.au-badge::before { content:''; width:6px; height:6px; background:var(--primary); box-shadow:0 0 8px var(--primary); border-radius:50%; animation:au-pulse 2s infinite; }
.au-badge.closed { color:var(--gray); border-color:var(--line); background:var(--bg-soft); }
.au-badge.closed::before { background:var(--gray); box-shadow:none; animation:none; }
@keyframes au-pulse { 0%,100%{opacity:1} 50%{opacity:.35} }
.au-hero h1 { font-size:clamp(32px,6.4vw,56px); font-weight:900; line-height:1.2; letter-spacing:-1.4px; margin-bottom:16px; }
.au-hero h1 .accent { color:var(--primary); }
.au-lead { font-size:clamp(17px,2.4vw,20px); font-weight:700; color:var(--ink); margin-bottom:8px; }
.au-sub { font-size:16px; color:var(--gray); line-height:1.7; margin-bottom:28px; }
.au-sub strong { color:var(--ink2); }
.au-count-cap { font-size:13px; font-weight:800; color:var(--primary); letter-spacing:.2px; margin:0 0 8px; }
.au-count { display:inline-grid; grid-template-columns:repeat(4,minmax(60px,1fr)); gap:8px; margin-bottom:10px; }
.au-count div { background:var(--bg-card); border:1px solid var(--line); border-radius:14px; padding:12px 6px 8px; box-shadow:var(--inset-hi); }
.au-count b { display:block; font-size:clamp(24px,5vw,32px); font-weight:900; font-variant-numeric:tabular-nums; letter-spacing:-0.5px; line-height:1.1; }
.au-count span { font-size:12px; color:var(--gray); font-weight:700; }
.au-deadline { font-size:13.5px; color:var(--gray); margin-bottom:24px; }
.au-deadline em { font-style:normal; color:var(--ink2); font-weight:700; }
.au-facts { display:flex; flex-wrap:wrap; justify-content:center; gap:8px; margin-bottom:28px; }
.au-facts span { font-size:13.5px; font-weight:700; color:var(--ink2); padding:7px 12px; border-radius:999px; background:var(--bg-soft); border:1px solid var(--line); }
.au-hero-cta { display:flex; gap:10px; justify-content:center; flex-wrap:wrap; }
.au-hero-cta .au-btn { min-width:150px; }

/* ---- 투표 방법 ---- */
.au-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:24px; }
.au-step { background:var(--bg-card); border:1px solid var(--line); border-radius:18px; padding:20px; box-shadow:var(--inset-hi); }
.au-step i { display:inline-flex; width:30px; height:30px; border-radius:50%; align-items:center; justify-content:center; font-style:normal;
  background:var(--primary); color:var(--primary-ink); font-weight:900; font-size:14px; margin-bottom:10px; }
.au-step b { display:block; font-size:16.5px; margin-bottom:4px; }
.au-step p { font-size:14.5px; color:var(--gray); line-height:1.6; }
.au-tip { margin-top:14px; font-size:14px; color:var(--ink2); background:var(--bg-soft); border:1px dashed var(--line); border-radius:14px; padding:12px 16px; }
@media (max-width:720px) { .au-steps { grid-template-columns:1fr; } }

/* ---- 후보 그리드 ---- */
.au-grid-head { display:flex; justify-content:space-between; align-items:flex-end; gap:16px; flex-wrap:wrap; margin-bottom:22px; }
.au-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
@media (min-width:640px) { .au-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; } }
@media (min-width:1000px) { .au-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; } }
.au-card { position:relative; display:flex; flex-direction:column; background:var(--bg-card); border:1.5px solid var(--line); border-radius:18px;
  overflow:hidden; box-shadow:var(--shadow-card); transition:transform .15s, border-color .15s, box-shadow .15s; }
.au-card:hover { transform:translateY(-2px); box-shadow:var(--shadow-card-hover); }
.au-card.is-selected { border-color:var(--primary); box-shadow:0 0 0 3px rgba(var(--primary-rgb),.25), var(--shadow-card); }
.au-card-open { display:block; text-align:left; background:none; border:0; padding:0; width:100%; }
.au-ph { position:relative; aspect-ratio:3/4; display:flex; flex-direction:column; justify-content:flex-end; padding:14px; overflow:hidden; }
.au-ph::before { content:''; position:absolute; inset:0; background:radial-gradient(120% 70% at 80% 0%, rgba(255,255,255,.18), transparent 60%); }
.au-ph img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center top; }
.au-ph .ph-no { position:relative; font-size:clamp(28px,7vw,40px); font-weight:900; letter-spacing:-1px; line-height:1; }
.au-ph .ph-kw { position:relative; font-size:clamp(15px,3.6vw,18px); font-weight:800; margin-top:4px; }
.au-ph .ph-note { position:absolute; top:12px; left:12px; font-size:11px; font-weight:700; opacity:.75; letter-spacing:.02em; }
.au-ph.has-img .ph-no, .au-ph.has-img .ph-kw, .au-ph.has-img .ph-note { display:none; }
.au-card-body { padding:12px 14px 4px; flex:1; }
.au-card-label { font-size:13px; font-weight:800; color:var(--primary); margin-bottom:4px; display:flex; align-items:center; gap:6px; }
.au-card-label i { width:8px; height:8px; border-radius:50%; flex:none; box-shadow:0 0 0 1px rgba(255,255,255,.25); }
.au-card-line { font-size:14.5px; font-weight:700; line-height:1.5; color:var(--ink); display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.au-card-foot { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:10px 14px 12px; }
.au-disc { font-size:11px; color:var(--gray); font-weight:600; line-height:1.4; }
.au-pick { position:absolute; top:10px; right:10px; z-index:2; width:40px; height:40px; border-radius:50%; border:2px solid rgba(255,255,255,.85);
  background:rgba(2,6,7,.45); backdrop-filter:blur(6px); display:flex; align-items:center; justify-content:center; transition:background .15s, transform .1s; }
.au-pick svg { width:20px; height:20px; opacity:.0; }
.au-pick:active { transform:scale(.94); }
.au-card.is-selected .au-pick { background:var(--primary); border-color:var(--primary); }
.au-card.is-selected .au-pick svg { opacity:1; color:var(--primary-ink); }
.au-pick .ord { position:absolute; font-size:15px; font-weight:900; color:var(--primary-ink); }
.au-card.is-selected .au-pick .ord + svg { opacity:0; }
.au-pick:disabled { opacity:.35; cursor:not-allowed; }
.au-card-more { font-size:12.5px; font-weight:800; color:var(--gray); white-space:nowrap; }

/* ---- 하단 고정 투표 바 ---- */
.au-bar { position:fixed; left:0; right:0; bottom:0; z-index:80; padding:10px 16px calc(10px + env(safe-area-inset-bottom));
  background:var(--header-bg); backdrop-filter:saturate(180%) blur(20px); -webkit-backdrop-filter:saturate(180%) blur(20px); border-top:1px solid var(--line);
  transform:translateY(110%); transition:transform .2s; }
.au-bar.show { transform:none; }
.au-bar-inner { max-width:1180px; margin:0 auto; display:flex; align-items:center; gap:12px; }
.au-bar-info { flex:1; min-width:0; }
.au-bar-info b { font-size:15px; }
.au-bar-info b em { font-style:normal; color:var(--primary); }
.au-bar-chips { display:flex; gap:6px; margin-top:4px; overflow:hidden; }
.au-bar-chips span { font-size:12px; font-weight:700; padding:3px 8px; border-radius:999px; background:var(--bg-card); border:1px solid var(--line); white-space:nowrap; }
.au-bar .au-btn { padding:13px 22px; flex:none; }
body.has-bar { padding-bottom:84px; }

/* ---- 대시보드 ---- */
.au-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:22px 0 16px; }
.au-stat { background:var(--bg-card); border:1px solid var(--line); border-radius:16px; padding:14px 16px; }
.au-stat span { display:block; font-size:12.5px; color:var(--gray); font-weight:700; }
.au-stat b { font-size:clamp(20px,4vw,28px); font-weight:900; font-variant-numeric:tabular-nums; }
.au-stat b.sm { font-size:15px; font-weight:800; line-height:1.9; }
@media (max-width:520px) { .au-stats { grid-template-columns:1fr 1fr; } .au-stat.wide { grid-column:1/-1; } }
.au-rank { list-style:none; display:grid; gap:8px; }
.au-rank li { display:grid; grid-template-columns:34px minmax(0,1fr) auto; align-items:center; gap:10px; background:var(--bg-card); border:1px solid var(--line);
  border-radius:14px; padding:10px 14px; }
.au-rank li.top { border-color:rgba(var(--primary-rgb),.45); }
.au-rank .r { font-weight:900; font-size:16px; text-align:center; font-variant-numeric:tabular-nums; color:var(--ink2); }
.au-rank li.top .r { color:var(--primary); }
.au-rank .nm { font-size:14px; font-weight:800; margin-bottom:6px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.au-rank .nm small { font-weight:700; color:var(--gray); margin-left:4px; }
.au-rank .track { height:8px; border-radius:6px; background:var(--line-soft); overflow:hidden; }
.au-rank .fill { height:100%; border-radius:6px; transition:width .6s ease; }
.au-rank .v { text-align:right; font-variant-numeric:tabular-nums; }
.au-rank .v b { display:block; font-size:16px; font-weight:900; }
.au-rank .v span { font-size:12px; color:var(--gray); font-weight:700; }
.au-rank li.au-cut { display:block; padding:2px 0; background:none; border:0; box-shadow:none; }
.au-rank li.au-cut span { display:block; text-align:center; font-size:12px; font-weight:800; color:var(--primary); border-top:1px dashed currentColor; padding-top:8px; }
.au-rank-note { font-size:13px; color:var(--gray); margin-top:12px; line-height:1.6; }
.au-hidden-box { background:var(--bg-card); border:1px dashed var(--line); border-radius:16px; padding:28px 20px; text-align:center; color:var(--gray); font-weight:700; }
.au-demo { display:inline-block; margin-left:8px; font-size:12px; font-weight:800; color:var(--accent-yellow); border:1px solid rgba(212,168,71,.45); border-radius:999px; padding:2px 8px; vertical-align:middle; }

/* ---- 안내(법적 고지) + 푸터 ---- */
.au-notice { background:var(--bg-card); border:1px solid var(--line); border-radius:18px; padding:4px 18px; }
.au-notice summary { cursor:pointer; list-style:none; padding:14px 0; font-weight:800; font-size:16px; display:flex; justify-content:space-between; align-items:center; }
.au-notice summary::-webkit-details-marker { display:none; }
.au-notice summary::after { content:'+'; font-size:22px; color:var(--gray); font-weight:400; }
.au-notice[open] summary::after { content:'–'; }
.au-notice .nt { padding:0 0 18px; font-size:14.5px; color:var(--ink2); line-height:1.75; }
.au-notice h4 { font-size:15px; margin:14px 0 6px; color:var(--ink); }
.au-notice ul { padding-left:18px; }
.au-notice li { margin:3px 0; }
.au-notice .src { font-size:12px; color:var(--gray); margin-top:10px; }
footer.au-foot { background:var(--footer-bg); color:#7A8A85; padding:36px 20px 40px; font-size:13px; text-align:center; line-height:1.8; }
footer.au-foot b { color:#C2D1CB; }
footer.au-foot a { text-decoration:underline; text-underline-offset:3px; }

/* ---- 모달(상세·확인·완료) ---- */
.au-modal { position:fixed; inset:0; z-index:200; display:none; align-items:flex-end; justify-content:center; background:rgba(0,0,0,.6); }
.au-modal.open { display:flex; }
.au-sheet { position:relative; width:100%; max-width:560px; max-height:92vh; max-height:92dvh; overflow:auto; overscroll-behavior:contain; background:var(--bg-soft);
  border:1px solid var(--line); border-radius:24px 24px 0 0; box-shadow:0 -10px 40px rgba(0,0,0,.5); animation:au-up .22s ease; }
@keyframes au-up { from { transform:translateY(40px); opacity:0 } to { transform:none; opacity:1 } }
@media (min-width:720px) { .au-modal { align-items:center; padding:24px; } .au-sheet { border-radius:24px; max-height:88vh; } }
.au-close { position:sticky; top:10px; float:right; margin:10px 10px 0 0; z-index:5; width:40px; height:40px; border-radius:50%; border:1px solid var(--line);
  background:rgba(2,6,7,.55); backdrop-filter:blur(6px); color:#fff; display:flex; align-items:center; justify-content:center; }
.au-close svg { width:18px; height:18px; }

/* 상세 */
.dt-hero { position:relative; margin-top:-50px; }
.dt-hero .au-ph { aspect-ratio:4/3; padding:22px; }
.dt-hero .au-ph .ph-no { font-size:48px; }
.dt-hero .au-ph .ph-kw { font-size:22px; }
.dt-head { padding:18px 20px 4px; }
.dt-label { font-size:13px; font-weight:800; color:var(--primary); }
.dt-head h3 { font-size:28px; font-weight:900; letter-spacing:-1px; margin:2px 0 6px; }
.dt-one { font-size:17px; font-weight:700; color:var(--ink); line-height:1.5; }
.dt-quote { margin-top:10px; font-size:15px; color:var(--ink2); }
.dt-card { background:var(--bg-card); border:1px solid var(--line); border-radius:18px; margin:12px 16px 0; padding:18px; }
.dt-card h4 { font-size:16px; font-weight:900; margin-bottom:10px; display:flex; align-items:center; gap:8px; }
.dt-card h4::before { content:''; width:5px; height:16px; border-radius:3px; background:var(--c1,var(--primary)); }
.dt-kv { display:grid; grid-template-columns:64px 1fr; gap:8px 10px; font-size:14.5px; }
.dt-kv dt { color:var(--gray); font-weight:700; }
.dt-kv dd { font-weight:600; color:var(--ink2); }
.dt-dots { list-style:none; }
.dt-dots li { position:relative; padding-left:14px; font-size:14.5px; margin:6px 0; color:var(--ink2); line-height:1.6; }
.dt-dots li::before { content:''; position:absolute; left:1px; top:.62em; width:6px; height:6px; border-radius:50%; background:var(--c1,var(--primary)); }
.dt-motto { margin-top:12px; border-radius:14px; padding:12px 14px; text-align:center; background:var(--bg-soft); border:1px solid var(--line); }
.dt-motto small { display:block; font-size:11.5px; color:var(--gray); font-weight:800; letter-spacing:.08em; }
.dt-motto b { font-size:17px; }
.dt-likes { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.dt-likes div { border-radius:14px; padding:12px; background:var(--bg-soft); border:1px solid var(--line); font-size:14px; color:var(--ink2); line-height:1.7; }
.dt-likes h5 { font-size:13px; margin-bottom:4px; color:var(--ink); }
.dt-tbd { font-size:13.5px; color:var(--gray); }
.dt-speech { font-size:14.5px; color:var(--ink2); margin-bottom:8px; line-height:1.6; }
.dt-line { background:var(--bg-soft); border:1px solid var(--line); border-radius:16px 16px 16px 4px; padding:11px 14px; margin:8px 0; font-size:15px; font-weight:700; line-height:1.55; }
.dt-line small { display:block; font-size:11.5px; color:var(--gray); font-weight:700; margin-bottom:2px; }
.dt-gap { display:grid; gap:8px; }
.dt-gap div { border-radius:14px; padding:11px 14px; border:1.5px dashed var(--line); }
.dt-gap b { display:block; font-size:14.5px; color:var(--ink); margin-bottom:2px; }
.dt-gap p { font-size:14px; color:var(--ink2); line-height:1.55; }
.dt-rel { font-size:14.5px; color:var(--ink2); line-height:1.6; }
.dt-rel b { color:var(--ink); }
.dt-closing { margin-top:10px; border-radius:14px; padding:12px; text-align:center; font-weight:800; font-size:15px; background:var(--bg-soft); border:1px solid var(--line); }
.dt-closing small { display:block; font-size:11.5px; color:var(--gray); font-weight:700; }
.dt-chips { display:grid; grid-template-columns:repeat(auto-fit,minmax(110px,1fr)); gap:8px; }
.dt-chip { border-radius:12px; overflow:hidden; border:1px solid var(--line); }
.dt-chip i { display:block; height:44px; }
.dt-chip span { display:block; padding:6px 10px; font-size:12.5px; font-weight:800; }
.dt-chip em { display:block; font-style:normal; color:var(--gray); font-weight:700; font-size:11.5px; }
.dt-props { display:flex; flex-wrap:wrap; gap:6px; }
.dt-props span { padding:6px 12px; border-radius:999px; font-size:13.5px; font-weight:700; background:var(--bg-soft); border:1px solid var(--line); color:var(--ink2); }
.dt-actions { position:sticky; bottom:0; display:flex; gap:8px; padding:14px 16px calc(14px + env(safe-area-inset-bottom)); margin-top:16px;
  background:linear-gradient(180deg, transparent, var(--bg-soft) 28%); }
.dt-actions .au-btn { flex:1; }
.dt-actions .au-btn-ghost { flex:0 0 52px; padding:0; }
.dt-actions svg { width:18px; height:18px; }
.dt-disc { text-align:center; font-size:12px; color:var(--gray); font-weight:600; padding:10px 16px 0; }

/* 확인·완료 */
.cf-body { padding:26px 20px 20px; }
.cf-body h3 { font-size:22px; font-weight:900; letter-spacing:-0.6px; margin-bottom:6px; }
.cf-body > p { font-size:14.5px; color:var(--gray); line-height:1.6; }
.cf-list { list-style:none; display:grid; gap:8px; margin:16px 0; }
.cf-list li { display:flex; align-items:center; gap:12px; background:var(--bg-card); border:1px solid var(--line); border-radius:14px; padding:10px 12px; }
.cf-sw { width:44px; height:44px; border-radius:10px; flex:none; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:900; }
.cf-list b { display:block; font-size:15px; }
.cf-list span { font-size:12px; color:var(--gray); }
.cf-list q { display:block; font-size:14px; color:var(--ink2); margin-top:2px; quotes:'“' '”'; }
.cf-agree { font-size:13px; color:var(--gray); line-height:1.6; background:var(--bg-card); border:1px solid var(--line); border-radius:12px; padding:10px 12px; margin-bottom:12px; }
.cf-agree a { color:var(--primary); font-weight:700; text-decoration:underline; text-underline-offset:3px; }
.cf-err { color:var(--warn); font-size:14px; font-weight:700; margin-bottom:10px; min-height:1px; }
.cf-btns { display:flex; gap:8px; }
.cf-btns .au-btn { flex:1; }
.cf-done-mark { width:56px; height:56px; border-radius:50%; background:rgba(var(--primary-rgb),.15); color:var(--primary); display:flex; align-items:center; justify-content:center; margin-bottom:14px; }
.cf-done-mark svg { width:28px; height:28px; }
.cf-btns.col { flex-direction:column; }
.au-toast { position:fixed; left:50%; bottom:100px; transform:translateX(-50%); z-index:300; background:var(--ink); color:var(--bg); font-size:14px; font-weight:700;
  padding:10px 16px; border-radius:999px; opacity:0; pointer-events:none; transition:opacity .2s; max-width:90vw; text-align:center; }
.au-toast.show { opacity:1; }

/* ===== v2 (2026-10-18): 1표 + 친구 초대 보너스 · 대시보드 · 안내문 표 ===== */
.au-warn { color:var(--warn); font-weight:700; }
.au-btn-xs { padding:6px 12px; font-size:13px; margin-left:6px; border-radius:10px; }
.au-btn svg { width:18px; height:18px; flex:none; }
.au-kicker { font-size:14px; font-weight:800; color:var(--ink2); letter-spacing:.02em; margin:14px 0 6px; }
.au-strip { margin:0 auto 18px; max-width:640px; font-size:14px; line-height:1.6; color:var(--ink); background:rgba(var(--primary-rgb),.1);
  border:1px solid rgba(var(--primary-rgb),.35); border-radius:14px; padding:10px 14px; }
.au-strip b { color:var(--primary); }
.au-strip a { color:var(--primary); font-weight:800; text-decoration:underline; text-underline-offset:3px; white-space:nowrap; }
.au-live-link { margin-top:14px; font-size:14px; font-weight:700; }
.au-live-link a { color:var(--primary); }
.au-live-link[hidden] { display:none; }
.au-sec-tight { padding-top:8px; padding-bottom:24px; }
.au-sec-tight::before { display:none; }
.au-narrow { max-width:820px; }
.au-desc + .au-desc { margin-top:10px; }

/* 일정 3칸 */
.au-sched { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:16px; }
.au-sched div { background:var(--bg-card); border:1px solid var(--line); border-radius:16px; padding:14px 16px; }
.au-sched span { display:block; font-size:12.5px; color:var(--gray); font-weight:700; }
.au-sched b { display:block; font-size:17px; font-weight:900; margin:2px 0; }
.au-sched small { font-size:12.5px; color:var(--gray); }
@media (max-width:720px) { .au-sched { grid-template-columns:1fr; } }

/* 카드: 1명 선택(라디오) · 내 표 배지 · 대표 대사 */
.au-card-quote { font-size:13px; color:var(--gray); line-height:1.5; margin-top:6px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.au-mine { position:absolute; top:14px; left:12px; z-index:2; font-size:11.5px; font-weight:900; padding:4px 9px; border-radius:999px;
  background:var(--primary); color:var(--primary-ink); box-shadow:0 2px 8px rgba(0,0,0,.3); }
.au-mine[hidden] { display:none; }
.au-card .au-mine:not([hidden]) ~ .au-card-open .ph-note { display:none; }

/* 하단 바 선택 칩 */
.au-bar-chips span.on { border-color:var(--primary); color:var(--primary); }

/* 친구 초대 카드 */
.au-ref { background:var(--bg-card); border:1px solid rgba(var(--primary-rgb),.35); border-radius:18px; padding:16px; margin:14px 0; box-shadow:var(--inset-hi); }
.au-ref-top { display:flex; gap:12px; align-items:flex-start; justify-content:space-between; }
.au-ref-head { display:block; font-size:16px; font-weight:900; color:var(--ink); }
.au-ref-top p { font-size:13.5px; color:var(--ink2); line-height:1.55; margin-top:2px; }
.au-ref-meter { flex:none; text-align:center; }
.au-ref-meter .dots { display:flex; gap:5px; justify-content:center; }
.au-ref-meter .dots i { width:14px; height:14px; border-radius:50%; border:2px solid var(--line); background:transparent; }
.au-ref-meter .dots i.on { background:var(--primary); border-color:var(--primary); box-shadow:0 0 8px rgba(var(--primary-rgb),.5); }
.au-ref-meter em { display:block; font-style:normal; font-weight:900; font-size:18px; color:var(--primary); font-variant-numeric:tabular-nums; margin-top:2px; }
.au-ref-votes { display:flex; align-items:baseline; gap:6px; flex-wrap:wrap; margin:12px 0 10px; padding:10px 12px; border-radius:12px; background:var(--bg-soft); border:1px solid var(--line); }
.au-ref-votes span { font-size:13px; color:var(--gray); font-weight:700; }
.au-ref-votes b { font-size:22px; font-weight:900; color:var(--ink); font-variant-numeric:tabular-nums; }
.au-ref-url { margin-bottom:10px; }
.au-ref-url code { display:block; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:12.5px; color:var(--ink2); background:var(--bg-soft);
  border:1px dashed var(--line); border-radius:10px; padding:8px 10px; overflow-wrap:anywhere; user-select:all; }
.au-ref-btns { display:flex; gap:8px; flex-wrap:wrap; }
.au-ref-btns .au-btn { flex:1 1 140px; padding:13px 16px; }
.au-btn-kakao { background:#FEE500; color:#191600; flex-basis:100% !important; }
.au-ref-how { font-size:12.5px; color:var(--gray); line-height:1.6; margin-top:10px; }

/* 내 투표 현황 */
.au-my-grid { display:grid; gap:14px; grid-template-columns:1fr; }
@media (min-width:900px) { .au-my-grid { grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); align-items:start; } .au-my-grid .au-ref { margin:0; } }
.au-my-h { font-size:20px; font-weight:900; margin:2px 0 4px; }
.au-my-h em { font-style:normal; color:var(--primary); }
.au-my-grid .cf-list { margin:10px 0 0; }
.au-my-note { font-size:14px; color:var(--ink2); margin-top:10px; }

/* 확인·완료 */
.cf-to { color:var(--ink); }
.cf-again { display:block; font-size:12.5px !important; color:var(--accent-yellow) !important; font-weight:700; }
.cf-left { font-size:14px; color:var(--ink); background:rgba(var(--primary-rgb),.1); border:1px solid rgba(var(--primary-rgb),.3); border-radius:12px; padding:10px 12px; margin:6px 0 2px; }
.cf-left b { color:var(--primary); }
.cf-foot { text-align:center; font-size:11.5px; color:var(--gray); margin-top:14px; font-weight:600; }
.cf-btns { flex-wrap:wrap; }
.cf-btns .au-btn { flex:1 1 140px; }

/* 상세 */
.dt-safe { font-size:13px; color:var(--primary); font-weight:800; margin-top:2px; }

/* 대시보드 */
.au-rank .nm small.me { color:var(--primary); border:1px solid rgba(var(--primary-rgb),.4); border-radius:999px; padding:0 6px; font-size:11px; }

/* 안내문 표 */
.au-notice .nt > p { margin:4px 0 8px; }
.au-table-wrap { overflow-x:auto; margin:8px 0 10px; }
.au-table { width:100%; border-collapse:collapse; font-size:14px; min-width:0; }
.au-table th, .au-table td { text-align:left; padding:9px 10px; border-bottom:1px solid var(--line); vertical-align:top; }
.au-table th { color:var(--gray); font-size:12.5px; font-weight:800; }
.au-table td:first-child { color:var(--ink); font-weight:600; width:58%; }
.au-notice a { color:var(--primary); text-decoration:underline; text-underline-offset:3px; }
.au-law { font-size:13.5px; background:var(--bg-soft); border-left:3px solid var(--primary); border-radius:6px; padding:8px 12px; margin:8px 0; }
.au-thanks { margin-top:14px; font-weight:700; }
footer.au-foot p { margin-top:6px; }
footer.au-foot .au-foot-co { margin-top:10px; color:#556561; }
/* 닫기 버튼: float 대신 높이 0 의 sticky 블록 → 상세 히어로가 시트 폭을 꽉 채움 */
.au-close { float:none; position:sticky; top:10px; display:flex; align-items:center; justify-content:center; margin:10px 10px -50px auto; }
.dt-hero { margin-top:0; }
.cf-body h3 { padding-right:48px; }
.au-ref-btns .au-btn { white-space:nowrap; }
@media (max-width:480px) { .au-ref-btns .au-btn { flex-basis:100%; } }

.au-foot-links { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }

/* 상세: 캐릭터 시트 전체 보기 (10/19) */
.dt-sheet { position:relative; display:block; background:#f1ede6; }
.dt-sheet img { display:block; width:100%; height:auto; aspect-ratio:16/9; object-fit:contain; }
.dt-sheet-hint { position:absolute; right:10px; bottom:10px; font-size:11px; font-weight:700; color:#fff; background:rgba(0,0,0,.55); padding:4px 9px; border-radius:999px; }
.dt-ph-fallback { display:none; }
.dt-hero.no-sheet .dt-sheet { display:none; }
.dt-hero.no-sheet .dt-ph-fallback { display:block; }
