/* ===== 장사(jangsa) — 모바일 우선 스타일 ===== */
@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendard-dynamic-subset.css");
:root{
  --blue:#2563eb; --blue-soft:#dbeafe; --blue-ink:#1d4ed8;
  --ink:#1f2937; --gray:#6b7280; --line:#edeff3; --bg:#f6f7f9;
  --card:#fff; --radius:16px;
  /* 파스텔 톤 — 긍정(에메랄드)·부정(로즈)·별(앰버) */
  --green:#0f9d78; --green-soft:#e8f6f1;
  --red:#dd5b5b;   --red-soft:#fbeeee;
  --warn:#f2a935;  --warn-soft:#fdf3e2;
  --star:#f6ab1e;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
body{
  font-family:'Pretendard Variable',Pretendard,-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo','Malgun Gothic',sans-serif;
  background:var(--bg); color:var(--ink); line-height:1.5;
  font-size:15px; -webkit-font-smoothing:antialiased;letter-spacing:-.01em;
}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none}

/* 앱 셸 */
.app{max-width:480px;margin:0 auto;min-height:100vh;background:var(--bg);
  display:flex;flex-direction:column;position:relative}
.content{flex:1;padding-bottom:76px}
.pad{padding:16px}

/* 상단바 */
.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:8px;
  background:#fff;padding:12px 14px;border-bottom:1px solid var(--line);min-height:54px}
.topbar-title{font-size:17px;font-weight:700;margin:0;flex:1;text-align:left}
.brand{font-size:20px;font-weight:800;color:var(--blue);flex:1}
.topbar-right{margin-left:auto;display:flex;align-items:center;gap:6px}
.icon-btn{font-size:22px;color:#374151;padding:4px 8px;border-radius:8px;line-height:1}
.point-chip{background:var(--blue-soft);color:var(--blue-ink);font-weight:700;
  padding:6px 12px;border-radius:20px;font-size:14px}
.store-switch{display:flex;align-items:center;gap:4px;font-size:18px;font-weight:800}
.store-switch .caret{font-size:13px;color:var(--gray)}

/* 가게 전환 시트 */
.store-sheet{position:sticky;top:54px;z-index:25}
.store-sheet-inner{background:#fff;margin:8px 14px;border-radius:14px;
  box-shadow:0 12px 30px rgba(0,0,0,.12);overflow:hidden}
.store-item{display:flex;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line);font-weight:600}
.store-item.on{color:var(--blue)}
.store-item.add{color:var(--gray);font-weight:600}
.store-item:last-child{border-bottom:none}

/* 하단 탭바 */
.tabbar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);
  width:100%;max-width:480px;background:#fff;border-top:1px solid var(--line);
  display:flex;justify-content:space-around;padding:6px 0 calc(6px + env(safe-area-inset-bottom));z-index:40}
.tab{display:flex;flex-direction:column;align-items:center;gap:3px;color:#9aa6b2;font-size:10.5px;padding:4px 3px;flex:1;min-width:0}
.tab .tab-ic{line-height:0}
.tab .tab-ic svg{width:22px;height:22px;display:block}
.tab-tx{white-space:nowrap}
.tab.on{color:var(--blue);font-weight:700}

/* 공통 텍스트 */
.section-title{font-size:15px;font-weight:800;margin:22px 0 10px}
.screen-title{font-size:22px;font-weight:800;line-height:1.35;margin:6px 0 8px}
.muted{color:var(--gray)}
.muted-sm{color:var(--gray);font-size:13px}
.muted-sm a{color:var(--blue);font-weight:600}

/* 버튼/필드 */
.btn-primary{background:var(--blue);color:#fff;font-weight:700;padding:14px;border-radius:12px;width:100%;font-size:16px}
.btn-primary.sm{width:auto;padding:10px 16px;font-size:14px}
.btn-primary.full{width:100%;margin-top:14px}
.btn-ghost{background:#f1f3f7;color:#374151;font-weight:600;padding:10px 14px;border-radius:10px;font-size:14px}
.field{width:100%;padding:14px;border:1px solid #e3e6ec;border-radius:12px;font-size:16px;background:#fff}
.field:focus{outline:none;border-color:var(--blue)}
.stack{display:flex;flex-direction:column;gap:12px;margin-top:16px}
.flash{background:#ecfdf5;color:#065f46;border:1px solid #a7f3d0;padding:12px 14px;border-radius:12px;margin:12px 0;font-size:14px;font-weight:600}

/* 로그인 */
.auth{max-width:380px;margin:0 auto;padding:64px 24px;min-height:100vh;display:flex;flex-direction:column;justify-content:center}
.auth-logo{font-size:40px;font-weight:900;color:var(--blue);text-align:center}
.auth-tag{text-align:center;color:var(--gray);margin:6px 0 28px}
.auth-form{display:flex;flex-direction:column;gap:12px}
.auth-form input{padding:15px;border:1px solid #e3e6ec;border-radius:12px;font-size:16px}
.auth-form input:focus{outline:none;border-color:var(--blue)}
.auth-error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca;padding:12px;border-radius:12px;margin-bottom:14px;font-size:14px}
.auth-demo{text-align:center;color:var(--gray);margin-top:20px;font-size:13px}

/* 홈 — 히어로/알림 카드 */
.hero-card{display:block;background:linear-gradient(135deg,#2563eb,#3b82f6);color:#fff;border-radius:var(--radius);padding:20px;box-shadow:0 10px 24px rgba(37,99,235,.25)}
.hero-label{opacity:.85;font-size:13px}
.hero-point{font-size:34px;font-weight:900;margin:2px 0 6px}
.hero-point span{font-size:18px}
.hero-sub{font-size:13px;opacity:.9}
.alert-card{display:flex;align-items:center;gap:12px;background:#fff;border-radius:var(--radius);padding:16px;margin-top:12px;border:1px solid var(--line)}
.alert-card.warn{border-color:#fde68a;background:#fffbeb}
.alert-ic{line-height:0;color:var(--warn)}
.alert-ic svg{width:24px;height:24px;display:block}
.alert-card:not(.warn) .alert-ic{color:var(--green)}
.alert-body{flex:1;display:flex;flex-direction:column}
.alert-body b{font-size:15px}
.alert-body span{font-size:13px;color:var(--gray)}
.chev{color:#c0c5cf;font-size:22px}

/* 가게진단 */
.diag-empty{text-align:center;padding:32px 8px}
.diag-emoji{font-size:48px}
.diag-head{background:linear-gradient(135deg,#1e293b,#334155);color:#fff;border-radius:var(--radius);padding:18px;margin-top:12px}
.diag-when{font-size:12px;opacity:.8;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.diag-headline{font-size:18px;font-weight:800;line-height:1.4;margin:8px 0 0}
.src-badge{font-size:11px;padding:3px 8px;border-radius:8px;font-weight:700}
.src-badge.ai{background:#7c3aed;color:#fff}
.src-badge.kw{background:#475569;color:#cbd5e1}
.action-list{display:flex;flex-direction:column;gap:8px}
.action-row{display:flex;align-items:flex-start;gap:10px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px}
.act-ic{font-size:14px;margin-top:2px}
.act-body{flex:1;font-size:14px;line-height:1.5}
.act-tag{display:inline-block;font-size:11px;font-weight:800;color:var(--gray);background:#f1f3f7;padding:1px 7px;border-radius:6px;margin-right:6px}
.diag-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:4px}
.diag-card p{margin:4px 0}
.diag-metric{display:flex;justify-content:space-around;text-align:center}
.diag-metric>div{display:flex;flex-direction:column;gap:2px}
.diag-metric b{font-size:18px}
.diag-metric b.up{color:var(--green)}
.diag-metric b.down{color:var(--red)}
.diag-metric span{font-size:12px;color:var(--gray)}
.kw-h{font-weight:800;font-size:13px;margin:14px 0 8px}
.kw-h.pos{color:var(--green)}
.kw-h.neg{color:#b45309}
.kw-chips{display:flex;flex-wrap:wrap;gap:6px}
.kw-chip2{font-size:13px;padding:5px 10px;border-radius:8px;font-weight:600}
.kw-chip2.pos{background:#ecfdf5;color:#065f46}
.issue-list{display:flex;flex-direction:column;gap:8px}
.issue-row{display:flex;align-items:baseline;gap:8px;background:#fffbeb;border:1px solid #fde68a;border-radius:10px;padding:10px 12px}
.issue-row.sev-high{background:#fef2f2;border-color:#fecaca}
.issue-cat{font-weight:800;font-size:12px;color:#92400e;white-space:nowrap}
.issue-row.sev-high .issue-cat{color:#991b1b}
.issue-sum{flex:1;font-size:13px;line-height:1.5;color:#374151}
.issue-cnt{font-size:11px;color:var(--gray);white-space:nowrap}
.recent-neg{margin-top:14px;border-top:1px solid var(--line);padding-top:10px;display:flex;flex-direction:column;gap:6px}
.rn-row{font-size:13px;color:#4b5563}
.rn-star{color:#ef4444;font-size:11px}
.diag-regen{margin-top:16px;text-align:center}

/* KPI 카드 */
.kpi-row{display:flex;gap:10px;margin-top:12px}
.kpi{flex:1;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 8px;text-align:center;display:flex;flex-direction:column;gap:2px}
.kpi b{font-size:20px;font-weight:800}
.kpi span{font-size:12px;color:var(--gray)}
.kpi.warn b{color:var(--warn)}

/* 빠른 메뉴 */
.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.quick{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 8px;text-align:center;font-size:13px;font-weight:600;display:flex;flex-direction:column;gap:10px;align-items:center;transition:border-color .15s,box-shadow .15s}
.quick:hover{border-color:#d5dae3;box-shadow:0 2px 10px rgba(17,24,39,.05)}
.quick .q-ic{line-height:0;color:var(--blue);width:44px;height:44px;border-radius:12px;
  background:var(--blue-soft);display:flex;align-items:center;justify-content:center}
.quick .q-ic svg{width:24px;height:24px;display:block}

/* 연동 현황 점 */
.link-status{display:flex;gap:8px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px}
.dot-pf{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:13px;font-weight:800;color:#fff;background:#cbd5e1;opacity:.45}
.dot-pf.on{opacity:1;background:var(--c)}
.muted-sm{font-weight:600}

/* 내 가게 */
.store-meta{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px}
.store-name{font-size:18px;font-weight:800}
.cat-chip{display:inline-block;margin-top:8px;background:var(--blue-soft);color:var(--blue-ink);font-size:12px;font-weight:700;padding:5px 10px;border-radius:8px}
.pf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.pf-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:0;overflow:hidden;text-align:center;position:relative}
.pf-card .pf-btn{width:100%;padding:0 0 12px}
.pf-badge{font-size:11px;font-weight:700;color:#fff;background:var(--green);padding:5px;text-align:center}
.pf-badge.link{background:#ef4444}
.pf-logo{width:44px;height:44px;border-radius:12px;margin:12px auto 8px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:18px}
.pf-logo.ghost{background:#e5e7eb;color:#9ca3af;filter:grayscale(1)}
.pf-name{font-size:13px;font-weight:700;padding-bottom:12px}
.pf-card.on .pf-name{padding-bottom:0}

/* 플랫폼 허브 카드 */
.hub-list{display:flex;flex-direction:column;gap:10px}
.hub-card{display:block;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;border-left:4px solid var(--c,#cbd5e1)}
.hub-card.off{display:flex;align-items:center;gap:12px;border-left-color:#e5e7eb}
.hub-top{display:flex;align-items:center;gap:10px}
.hub-logo{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:15px;flex-shrink:0}
.hub-logo.ghost{background:#e5e7eb;color:#9ca3af}
.hub-title{flex:1;display:flex;flex-direction:column;min-width:0}
.hub-title b{font-size:15px}
.hub-sync{font-size:12px;color:var(--gray)}
.hub-badge{font-size:11px;font-weight:800;padding:4px 9px;border-radius:8px;white-space:nowrap}
.hub-badge.warn{background:#fef2f2;color:#b91c1c}
.hub-badge.ok{background:#ecfdf5;color:#047857}
.hub-badge.link{background:var(--blue-soft);color:var(--blue-ink)}
.hub-kpi{display:flex;gap:18px;margin:10px 0 0;padding-left:46px}
.hub-kpi span{font-size:13px;color:var(--gray)}
.hub-kpi b{font-size:16px;color:var(--ink);font-weight:800}
.hub-actions{margin-top:12px;padding-left:46px}
.hub-btn{display:inline-block;font-size:14px;font-weight:700;padding:9px 16px;border-radius:10px;background:#f1f3f7;color:#374151}
.hub-btn.primary{background:var(--blue);color:#fff}

/* 연동 온보딩 */
.connect-hero{text-align:center;padding:20px 8px 8px}
.connect-logo{width:56px;height:56px;border-radius:16px;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:24px}
.steps{display:flex;flex-direction:column;gap:10px}
.step{display:flex;gap:12px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px}
.step-no{width:24px;height:24px;border-radius:50%;background:var(--blue);color:#fff;font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.step div{display:flex;flex-direction:column}
.step b{font-size:14px}
.step span{font-size:13px;color:var(--gray)}

/* 매출 카드 */
.sales-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px;text-align:center}
.sales-title{font-weight:800;font-size:16px;margin-bottom:12px}
.sales-region{background:var(--blue-soft);color:var(--blue-ink);font-weight:800;padding:10px;border-radius:10px}
.sales-cat{background:#eef2ff;color:#4338ca;font-size:13px;font-weight:600;padding:8px;border-radius:8px;margin-top:8px}
.sales-note{background:#fffbeb;color:#92400e;font-size:13px;padding:12px;border-radius:10px;margin-top:12px;line-height:1.5}
.logout-link{display:block;text-align:center;color:var(--blue);font-weight:700;margin-top:18px;padding:12px}

/* 리뷰 */
.reviews{padding-bottom:16px}
.pf-tabs{display:flex;gap:18px;padding:12px 16px 0;overflow-x:auto;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:54px;z-index:20}
.pf-tab{padding:6px 0 12px;font-weight:700;color:#9aa1ad;white-space:nowrap;border-bottom:2px solid transparent}
.pf-tab.on{color:var(--ink);border-bottom-color:var(--ink)}
.filters{display:flex;gap:8px;padding:12px 16px}
.chip{background:#f1f3f7;color:#4b5563;font-weight:600;padding:7px 14px;border-radius:20px;font-size:13px}
.chip.on{background:#1f2937;color:#fff}
.empty{text-align:center;color:var(--gray);padding:48px 0}
.review{background:#fff;margin:0 16px 12px;border-radius:var(--radius);padding:16px;border:1px solid var(--line)}
.rv-head{display:flex;align-items:center;gap:10px}
.avatar{width:38px;height:38px;border-radius:50%;background:var(--blue-soft);color:var(--blue-ink);display:flex;align-items:center;justify-content:center;font-weight:800}
.avatar.lg{width:54px;height:54px;font-size:22px}
.rv-author{font-weight:700}
.rv-stars{margin-left:auto;color:#fbbf24;font-size:15px;letter-spacing:1px}
.rv-stars.low{color:#ef4444}
.rv-body{margin:12px 0;font-size:15px}
.rv-tags{display:flex;gap:6px;flex-wrap:wrap}
.tag{background:#f1f3f7;color:#4b5563;font-size:12px;padding:5px 10px;border-radius:8px}
.btn-generate{width:100%;margin-top:14px;background:var(--blue-soft);color:var(--blue-ink);font-weight:800;padding:14px;border-radius:12px;font-size:15px}
.rv-reply{margin-top:14px;background:#f8fafc;border:1px solid #e6e9ef;border-radius:12px;padding:12px}
.rv-reply.posted{background:#f0fdf4;border-color:#bbf7d0}
.rv-reply-label{font-size:13px;font-weight:700;color:#374151;margin-bottom:8px;display:flex;align-items:center;gap:8px}
.ok-badge{background:var(--green);color:#fff;font-size:11px;padding:3px 8px;border-radius:8px}
.draft-badge{background:#fef3c7;color:#92400e;font-size:11px;padding:3px 8px;border-radius:8px;font-weight:700}
.reply-area{width:100%;border:1px solid #dfe3ea;border-radius:10px;padding:12px;font-size:14px;font-family:inherit;resize:vertical}
.reply-area:focus{outline:none;border-color:var(--blue)}
.rv-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap;justify-content:flex-end}

/* 말투 설정 */
.seg{display:flex;background:#eef0f4;border-radius:12px;padding:4px;gap:4px;overflow:hidden}
.seg-item{flex:1;text-align:center;padding:10px;border-radius:9px;font-weight:700;font-size:13px;color:var(--gray)}
.seg-item.on{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.08)}
.info-box{background:#f8fafc;border:1px solid #e6e9ef;border-radius:12px;padding:12px 14px;font-size:13px;margin:14px 0;line-height:1.6}
.tone-list{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.tone-row{display:block;background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px}
.tone-row.sel{border-color:var(--blue)}
.tone-head{display:flex;align-items:center;gap:10px}
.tone-emoji{font-size:20px}
.tone-label{font-weight:700;flex:1}
.rec{background:var(--blue-soft);color:var(--blue-ink);font-size:11px;padding:2px 7px;border-radius:6px;font-weight:700;margin-left:4px}
.tone-row input[type=radio]{display:none}
.radio-dot{width:22px;height:22px;border-radius:50%;border:2px solid #cbd5e1;position:relative}
.tone-row.sel .radio-dot{border-color:var(--blue)}
.tone-row.sel .radio-dot:after{content:'';position:absolute;inset:4px;border-radius:50%;background:var(--blue)}
.tone-sample{margin-top:12px;background:#f4f6fb;border-radius:10px;padding:12px;font-size:14px;color:#374151;line-height:1.6}

/* 키워드 */
.kw-add{display:flex;gap:8px;margin:14px 0}
.kw-add .field{flex:1}
.kw-list{display:flex;flex-wrap:wrap;gap:8px}
.kw-chip{display:inline-flex;align-items:center;gap:6px;background:#fef2f2;color:#991b1b;border:1px solid #fecaca;border-radius:20px;padding:7px 12px;font-size:13px;font-weight:600}
.kw-chip button{color:#991b1b;font-size:13px}

/* FAQ */
.faq{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:8px}
.faq summary{font-weight:700;cursor:pointer;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq p{margin:10px 0 0;color:var(--gray);font-size:14px}

/* 포인트 */
.point-balance{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin:14px 0;display:flex;flex-direction:column;align-items:flex-start}
.pb-label{color:var(--gray);font-size:13px}
.pb-value{font-size:38px;font-weight:900}
.pb-value span{font-size:20px;color:var(--blue)}
.point-actions{display:flex;gap:10px}
.pa-btn{flex:1;background:var(--blue-soft);color:var(--blue-ink);font-weight:800;padding:14px;border-radius:12px}
.earn-list,.hist-list{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.earn-row,.hist-row{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line)}
.earn-row:last-child,.hist-row:last-child{border-bottom:none}
.earn-ic{font-size:20px}
.earn-name{flex:1;font-weight:600}
.earn-pt{background:var(--blue-soft);color:var(--blue-ink);font-weight:700;font-size:13px;padding:5px 10px;border-radius:8px}
.hist-row{justify-content:space-between}
.hist-desc{font-weight:600}
.hist-amt{font-weight:800}
.hist-amt.plus{color:var(--blue)}
.hist-amt.minus{color:var(--gray)}

/* 서비스 */
.svc-list{display:flex;flex-direction:column;gap:10px}
.svc-card{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px}
.svc-card .svc-ic{line-height:0;color:var(--blue);display:flex;align-items:center}
.svc-card .svc-ic svg{width:23px;height:23px;display:block}
.svc-card div{flex:1;display:flex;flex-direction:column}
.svc-card b{font-size:15px}
.svc-card span{font-size:13px;color:var(--gray)}
.svc-card.soon{opacity:.6}

/* 프로필 */
.profile-head{display:flex;align-items:center;gap:14px;padding:8px 0 18px}
.profile-stats{display:flex;gap:10px}
.pstat{flex:1;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;text-align:center;display:flex;flex-direction:column;gap:2px}
.pstat b{font-size:16px}
.pstat span{font-size:12px;color:var(--gray)}

/* 브랜드 로고 */
.brand-logo{height:28px;max-width:140px;object-fit:contain}

/* 관리자 폼 */
.fld{display:flex;flex-direction:column;gap:6px}
.fld-label{font-size:13px;font-weight:700;color:#374151}
.color-row{display:flex;align-items:center;gap:10px}
.color-row input[type=color]{width:48px;height:36px;border:1px solid #e3e6ec;border-radius:8px;background:#fff;padding:2px}
.logo-box{display:flex;flex-direction:column;gap:10px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px}
.logo-preview{height:48px;max-width:180px;object-fit:contain;align-self:flex-start}
.favicon-preview{width:40px;height:40px;object-fit:contain;border:1px solid var(--line);border-radius:8px;background:#fff;padding:4px}
.chk{display:flex;align-items:center;gap:8px;font-size:13px;color:#6b7280}
textarea.field{font-family:inherit;resize:vertical}
.data-status{display:flex;gap:10px}
.ds-col{flex:1;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px}
.ds-col b{display:block;margin-bottom:8px}
.ds-row{display:flex;justify-content:space-between;font-size:13px;padding:4px 0;color:#4b5563}
.ds-row span{font-weight:700;color:var(--ink)}

/* 매출 스파크라인 */
.spark{display:flex;align-items:flex-end;gap:4px;height:72px;margin:8px 0 14px;padding:0 2px}
.spark-bar{flex:1;background:linear-gradient(180deg,#3b82f6,#93c5fd);border-radius:3px 3px 0 0;min-height:4px}
.sales-meta{display:flex;justify-content:space-around;border-top:1px solid var(--line);padding-top:12px}
.sales-meta div{display:flex;flex-direction:column;align-items:center;gap:2px}
.sales-meta b{font-size:15px}
.sales-meta span{font-size:12px;color:var(--gray)}

/* 상권분석 바 */
.bar-val{font-size:12px;color:var(--gray);min-width:40px;text-align:right;font-weight:600}
.bars{display:flex;flex-direction:column;gap:12px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px}
.bar-row{display:flex;align-items:center;gap:10px}
.bar-label{width:84px;font-size:13px;font-weight:600}
.bar-track{flex:1;background:#eef0f4;border-radius:8px;height:14px;overflow:hidden}
.bar-fill{height:100%;background:#cbd5e1;border-radius:8px}
.bar-row.me .bar-fill{background:var(--blue)}
.bar-row.me .bar-label{color:var(--blue);font-weight:800}

/* ───────── 리뷰 요약 대시보드 / 카드 배지 ───────── */
.kw-chip2.neg{background:#fef2f2;color:#b91c1c}
.chip.sm{padding:5px 11px;font-size:12px}

.sum-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;margin-top:12px}
.sum-title{font-weight:800;font-size:14px;margin-bottom:10px;display:flex;align-items:baseline;gap:6px}

/* 별점 분포 */
.rdist{display:flex;flex-direction:column;gap:7px}
.rdist-row{display:flex;align-items:center;gap:8px}
.rdist-lb{width:34px;font-size:12px;font-weight:700;color:var(--gray);flex:none}
.rdist-lb.mut{color:#9ca3af}
.rdist-bar{flex:1;background:#eef0f4;border-radius:6px;height:13px;overflow:hidden}
.rdist-fill{display:block;height:100%;background:var(--warn);border-radius:6px;min-width:2px}
.rdist-fill.low{background:#f87171}
.rdist-fill.mut{background:#cbd5e1}
.rdist-cnt{width:42px;text-align:right;font-size:12px;font-weight:700;color:var(--ink);flex:none}

/* 플랫폼별 카드 */
.pfk-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.pfk-card{display:flex;flex-direction:column;gap:3px;border:1px solid var(--line);border-left:4px solid var(--c,#94a3b8);border-radius:10px;padding:10px 12px}
.pfk-name{font-weight:700;font-size:13px}
.pfk-rate{font-size:15px;font-weight:800;color:var(--warn)}
.pfk-sub{font-size:12px;color:var(--gray)}
.pfk-sub .warn{color:var(--red)}

/* 리뷰 카드 감정/카테고리 배지 */
.rv-senti{font-size:11px;font-weight:700;padding:2px 7px;border-radius:6px;margin-left:6px;vertical-align:middle}
.rv-senti.pos{background:#ecfdf5;color:#047857}
.rv-senti.neg{background:#fef2f2;color:#b91c1c}
.rv-cats{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.rv-cat{font-size:12px;font-weight:600;padding:3px 9px;border-radius:14px;border:1px solid}
.rv-cat.pos{background:#f0fdf4;color:#15803d;border-color:#bbf7d0}
.rv-cat.neg{background:#fef2f2;color:#b91c1c;border-color:#fecaca}

/* 리뷰 사진 */
.rv-photos{display:flex;gap:8px;margin-top:10px}
.rv-photo{display:block;width:84px;height:84px;border-radius:10px;overflow:hidden;border:1px solid var(--line)}
.rv-photo img{width:100%;height:100%;object-fit:cover;display:block}

/* AI 답글 말투 3종 후보 */
.cand-list{display:flex;flex-direction:column;gap:8px;margin:8px 0}
.cand{display:block;border:1px solid var(--line);border-radius:10px;padding:10px 12px;cursor:pointer}
.cand.on{border-color:var(--blue);background:#eff6ff}
.cand input{margin-right:6px}
.cand-tone{font-weight:700;font-size:13px}
.cand-text{display:block;margin-top:4px;font-size:13px;color:#374151;line-height:1.5}

/* 자동답글 규칙 설정 */
.rule-form{display:flex;flex-direction:column;gap:12px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;margin-top:10px}
.rule-row2{display:flex;gap:10px}
.rule-row2 .fld{flex:1}
.opt-chips{display:flex;flex-wrap:wrap;gap:8px;margin:-2px 0 4px}
.opt-chip{display:inline-flex;align-items:center;gap:4px;background:#f1f3f7;border-radius:20px;padding:6px 12px;font-size:13px;font-weight:600;cursor:pointer}
.opt-chip input{margin:0}
.rule-list{display:flex;flex-direction:column;gap:10px}
.rule-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.rule-card.off{opacity:.55}
.rule-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.rule-badge{font-size:11px;font-weight:700;padding:2px 8px;border-radius:6px}
.rule-badge.now{background:#fee2e2;color:#b91c1c}
.rule-badge.hold{background:#e0e7ff;color:#3730a3}
.rule-meta{font-size:12px;color:var(--gray);margin-top:5px}
.rule-acts{display:flex;gap:8px;margin-top:10px}
.rule-acts form{margin:0}
.btn-ghost.xs{font-size:12px;padding:5px 12px}
.btn-ghost.danger{color:var(--red)}

/* 답변 현황(답변률 바) */
.ans-bar{height:12px;background:#fee2e2;border-radius:6px;overflow:hidden;margin:2px 0 10px}
.ans-done{display:block;height:100%;background:var(--green);border-radius:6px;min-width:2px}
.ans-legend{display:flex;gap:16px;flex-wrap:wrap}
.ans-legend a{font-size:13px;color:var(--ink)}
.ans-legend a b{font-size:16px;font-weight:800;margin-right:3px}
.ans-legend a.warn b{color:var(--red)}

/* 플랫폼별 매출·정산 */
.rev-list{display:flex;flex-direction:column;gap:8px}
.rev-row{display:flex;align-items:center;justify-content:space-between;gap:10px;border-left:4px solid var(--c,#94a3b8);padding:8px 12px;background:#f8fafc;border-radius:8px}
.rev-pf{font-size:13px;font-weight:700}
.rev-pf small{font-weight:500;color:var(--gray);margin-left:4px}
.rev-amt{font-size:15px;font-weight:800}
.rev-amt i{font-size:12px;font-weight:700;font-style:normal;margin-left:4px}
.rev-amt i.up{color:var(--green)}
.rev-amt i.down{color:var(--red)}

/* 통합 매출(월별) */
.umonth{padding:8px 0;border-bottom:1px solid var(--line)}
.umonth:last-of-type{border-bottom:0}
.umonth-head{display:flex;align-items:baseline;justify-content:space-between}
.umonth-head b{font-size:14px}
.umonth-total{font-size:16px;font-weight:800}
.umonth-bar{display:flex;height:12px;border-radius:6px;overflow:hidden;margin:6px 0;background:#eef0f4}
.umonth-bar i{display:block;height:100%}
.umonth-leg{display:flex;flex-wrap:wrap;gap:12px}
.umonth-leg span{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--gray)}
.umonth-leg i{width:9px;height:9px;border-radius:2px;display:inline-block}
.ord-stat{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px;font-size:12px;color:var(--gray)}
.ord-stat b{font-size:14px;color:var(--ink);font-weight:800;margin-right:2px}
.ord-stat .ok b{color:var(--green)}
.ord-stat .bad b{color:var(--red)}

/* 주문 관리 목록 */
.ord-list{display:flex;flex-direction:column;gap:8px;padding:8px 16px 20px}
.ord-item{background:#fff;border:1px solid var(--line);border-left:4px solid var(--c,#94a3b8);border-radius:12px;padding:11px 13px}
.ord-top{display:flex;align-items:center;justify-content:space-between}
.ord-pf{font-size:12px;font-weight:700;color:var(--gray)}
.ord-amt{font-size:16px;font-weight:800}
.ord-mid{font-size:13px;color:var(--ink);margin:5px 0;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ord-bot{display:flex;align-items:center;justify-content:space-between}
.ord-when{font-size:12px;color:var(--gray)}
.ord-badge{font-size:11px;font-weight:700;padding:2px 8px;border-radius:6px}
.ord-badge.completed{background:#ecfdf5;color:#047857}
.ord-badge.cancelled{background:#fef2f2;color:#b91c1c}
.ord-badge.refunded{background:#fff7ed;color:#c2410c}

/* ───────── 리뷰 요약 디자인 폴리시 ───────── */
.sum-card{box-shadow:0 1px 3px rgba(17,24,39,.04)}
.sum-title{font-size:15px}
.dot{width:10px;height:10px;border-radius:3px;display:inline-block;flex:none}
.dot.pos{background:var(--green)} .dot.neg{background:var(--red)} .dot.neu{background:#cbd5e1}

/* 긍/부정 도넛 */
.senti-wrap{display:flex;align-items:center;gap:22px;padding:6px 0}
.senti-donut{width:134px;height:134px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 2px 6px rgba(17,24,39,.06))}
.senti-hole{width:94px;height:94px;background:#fff;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:inset 0 0 0 1px #f1f5f9}
.senti-hole b{font-size:23px;font-weight:800;color:var(--green);line-height:1}
.senti-hole span{font-size:11px;color:var(--gray);margin-top:2px}
.senti-leg{display:flex;flex-direction:column;gap:9px;font-size:13px}
.senti-leg span{display:flex;align-items:center;gap:7px}
.senti-leg b{font-weight:800}
.senti-leg em{font-style:normal;color:var(--gray);font-size:12px}

/* 워드클라우드 */
.wcloud{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:3px 12px;padding:14px 6px 8px;line-height:1.2;text-align:center;min-height:120px}
.wc{font-weight:800;letter-spacing:-.4px;display:inline-block}
.wcol .wcloud .wc:first-child{font-weight:900}
/* wordcloud2 canvas */
.wc-canvas{width:100%;height:auto;display:block;margin:2px auto 0}

/* ═════════ v23 — SVG 도넛·기간·토글 폴리시 ═════════ */
/* 도넛: 데이터(범례) 하단 배치 → 도넛 확대 */
.donut-wrap{display:flex;flex-direction:column;align-items:center;gap:16px;padding:8px 0}
.donut{width:200px;height:200px;flex:none}
.donut circle[stroke-dasharray]{cursor:pointer;transition:opacity .12s}
.donut circle[stroke-dasharray]:hover{opacity:.82}
.donut-lbl{fill:#9ca3af;font-size:12px;font-weight:600;text-anchor:middle}
.donut-big{fill:var(--ink);font-size:28px;font-weight:900;text-anchor:middle;letter-spacing:-.5px}
.donut-wrap .senti-leg,.donut-wrap .senti-leg.kw-leg{display:flex;flex-direction:row;flex-wrap:wrap;
  justify-content:center;gap:9px 18px;width:100%}
.senti-leg span{white-space:nowrap}

/* 차트 커스텀 툴팁 */
.chart-tip{position:fixed;pointer-events:none;z-index:200;background:#1f2937;color:#fff;
  font-size:12px;font-weight:700;padding:7px 11px;border-radius:9px;white-space:nowrap;
  box-shadow:0 6px 20px rgba(17,24,39,.28);opacity:0;transform:translateY(3px);
  transition:opacity .12s,transform .12s;letter-spacing:-.2px}
.chart-tip.on{opacity:1;transform:translateY(0)}
.chart-tip::after{content:'';position:absolute;left:14px;top:100%;border:5px solid transparent;border-top-color:#1f2937}

/* 모바일 하단바: 보조 메뉴 숨김(데스크톱 사이드바엔 표시) */
.tab-more{display:none}

/* ═════════ v25 — 상권분석·포인트 표준화 ═════════ */
.store-info-card{padding:18px 20px}
.sic-name{font-size:17px;font-weight:800;margin-bottom:2px}
.hbars{display:flex;flex-direction:column;gap:12px}
.hbar{display:flex;align-items:center;gap:10px;cursor:default}
.hbar-lb{width:74px;font-size:13px;font-weight:600;color:var(--gray);flex:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hbar-lb.top{color:var(--blue);font-weight:800}
.hbar-track{flex:1;background:#eef0f4;border-radius:8px;height:16px;overflow:hidden}
.hbar-fill{display:block;height:100%;background:#cbd5e1;border-radius:8px;min-width:4px;transition:width .3s}
.hbar-fill.top{background:var(--blue)}
.hbar-val{width:46px;text-align:right;font-size:13px;font-weight:800;color:var(--ink);flex:none}
.region-best{display:flex;align-items:flex-start;gap:14px}
.rb-ic{font-size:28px;line-height:1}
.rb-body{flex:1;font-size:14px;line-height:1.6}
.rb-seg{margin-top:6px;font-size:13px;color:var(--gray)}
.rb-seg b{color:var(--ink);font-weight:800}

/* 포인트 적립 아이콘 → 소프트 스퀘어 */
.earn-ic{width:38px;height:38px;border-radius:10px;background:var(--blue-soft);color:var(--blue);display:flex;align-items:center;justify-content:center;flex:none;line-height:0}
.earn-ic svg{width:20px;height:20px}

/* 상단바 아이콘 버튼 SVG */
.icon-btn svg{width:21px;height:21px;vertical-align:-4px;stroke:#4b5563}

/* ═════════ v27 — 요금제/구독 ═════════ */
.bill-current{padding:18px 20px}
.bc-top{display:flex;align-items:center;justify-content:space-between}
.bc-lb{font-size:12px;color:var(--gray);font-weight:700;display:block}
.bc-plan{font-size:22px;font-weight:900}
.bc-price{font-size:15px;font-weight:800;color:var(--blue)}
.bc-usage{display:flex;flex-direction:column;gap:11px;margin-top:15px}
.bc-u>span{font-size:13px;color:#475569}
.bc-u b{color:var(--ink);font-weight:800}
.bc-bar{display:block;height:8px;background:#eef0f4;border-radius:5px;overflow:hidden;margin-top:5px}
.bc-bar b{display:block;height:100%;background:var(--blue);border-radius:5px}

.plan-grid{display:grid;grid-template-columns:1fr;gap:14px;margin-top:12px}
@media(min-width:760px){.plan-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1160px){.plan-grid{grid-template-columns:repeat(3,1fr)}}
.plan-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px 20px;box-shadow:0 1px 3px rgba(17,24,39,.04)}
.plan-card.current{box-shadow:0 0 0 2px var(--pc) inset,0 1px 3px rgba(17,24,39,.04)}
.plan-card.rec{border-color:#2563eb}
.plan-badge{position:absolute;top:-10px;left:20px;font-size:11px;font-weight:800;padding:3px 11px;border-radius:20px;color:#fff}
.plan-badge.cur{background:var(--pc)}
.plan-badge.rec{background:#2563eb}
.plan-name{font-size:18px;font-weight:900}
.plan-price{font-size:26px;font-weight:900;letter-spacing:-1px;margin:4px 0 2px}
.plan-price small{font-size:14px;font-weight:700;color:var(--gray);letter-spacing:0;margin-left:2px}
.plan-desc{font-size:13px;color:var(--gray);margin-bottom:15px}
.plan-feats{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-direction:column;gap:9px}
.plan-feats li{font-size:13.5px;color:#374151;display:flex;align-items:center;gap:8px}
.plan-feats li.off{color:#c0c5cf}
.plan-feats em{color:var(--gray);font-style:normal;font-size:12px;margin-left:auto;font-weight:700}
.pf-o{color:var(--green);font-weight:900;width:14px;text-align:center;flex:none}
.pf-x{color:#cbd5e1;width:14px;text-align:center;flex:none}
.plan-btn{display:block;width:100%;text-align:center;padding:12px;border-radius:11px;font-weight:800;font-size:14px;background:#f1f3f7;color:#374151;cursor:pointer;border:none}
.plan-btn.up{background:var(--blue);color:#fff}
.plan-btn.cur{background:#eef2ff;color:var(--blue-ink);cursor:default}
.plan-btn.ghost{background:#f1f3f7;color:#475569}

/* 리뷰관리 서브탭 (요약│리뷰│설정) */
.subnav{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:0 0 14px;padding:0}
.subnav-item{padding:11px 18px;font-size:15px;font-weight:700;color:var(--gray);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;transition:color .12s}
.subnav-item:hover{color:#475569}
.subnav-item.on{color:var(--blue-ink);border-bottom-color:var(--blue)}
.reviews .subnav{padding:0 16px;margin-bottom:0}
@media(min-width:960px){.reviews .subnav{padding:0}}

/* ═════════ v29 — 홈 리뉴얼 (인사·AI성과·오늘할일) ═════════ */
.home-greet{margin:2px 0 14px}
.home-greet h2{font-size:22px;font-weight:900;margin:0;letter-spacing:-.5px}
.home-greet p{font-size:14px;color:var(--gray);margin:4px 0 0}

.perf-card,.todo-card{padding:18px 20px;margin-top:12px}
.perf-head{display:flex;align-items:baseline;gap:8px;margin-bottom:16px}
.perf-head b{font-size:15px;font-weight:800}
.perf-head span{font-size:12px;color:var(--gray)}
.perf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.perf-item{display:flex;flex-direction:column;align-items:center;text-align:center;gap:3px}
.perf-ic{width:46px;height:46px;border-radius:13px;display:flex;align-items:center;justify-content:center;margin-bottom:5px}
.perf-ic svg{width:24px;height:24px}
.perf-ic.v1{background:#ede9fe;color:#7c3aed}
.perf-ic.v2{background:#dcfce7;color:#16a34a}
.perf-ic.v3{background:#fef3c7;color:#d97706}
.perf-item>b{font-size:22px;font-weight:900;letter-spacing:-.5px;line-height:1}
.perf-item>b small{font-size:13px;font-weight:700;color:var(--gray);margin-left:1px}
.perf-item>span{font-size:12.5px;font-weight:700;color:#475569}
.perf-item em{font-size:11px;color:var(--gray);font-style:normal}

.todo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.todo-item{display:flex;flex-direction:column;gap:8px;background:#f7f8fa;border:1px solid var(--line);border-radius:12px;padding:14px 13px;text-align:left}
.todo-item.hot{background:var(--blue-soft);border-color:#c7d7fb}
.td-lb{font-size:12.5px;font-weight:700;color:#475569;display:flex;align-items:center;gap:6px}
.td-dot{width:7px;height:7px;border-radius:50%;background:#94a3b8;flex:none}
.td-dot.blue{background:var(--blue)} .td-dot.neg{background:var(--red)}
.todo-item>b{font-size:24px;font-weight:900;letter-spacing:-.5px}
.todo-item.off{opacity:.65}
.td-soon{font-size:13px !important;color:var(--gray);font-weight:800}

/* 매장별 요약 기간 문구 */
.rs-sub2{font-size:13px;color:var(--gray);margin:-4px 0 13px;display:flex;align-items:center;gap:5px}
.rs-sub2 b{color:#475569;font-weight:700}

/* 좋아하는 점 / 개선점 간격 확대 */
.rs-ai-h.neg{margin-top:30px}

/* 키워드 추이 토글(툴바) 폴리시 */
.kwt-tabs{display:inline-flex;background:#f3f5f8;border:1px solid #eceff3;border-radius:10px;padding:4px;gap:3px;margin-bottom:14px}
.kwt-tabs label{font-size:13px;font-weight:700;color:#64748b;padding:6px 20px;border-radius:8px;cursor:pointer;transition:background .12s,color .12s}
.kwt-tabs label:hover{color:#334155}
#kwtPos:checked ~ .kwt-tabs label[for=kwtPos]{background:#fff;color:#0c7a5d;box-shadow:0 1px 3px rgba(17,24,39,.10)}
#kwtNeg:checked ~ .kwt-tabs label[for=kwtNeg]{background:#fff;color:#c2453f;box-shadow:0 1px 3px rgba(17,24,39,.10)}
.wc.pos{color:#16a34a} .wc.neg{color:#dc2626}
.wcloud-leg{font-size:11px;color:var(--gray);display:flex;align-items:center;gap:5px;margin-top:6px;flex-wrap:wrap}
.wcloud-leg .dot{width:8px;height:8px}

/* 강점 문장 bullet (😊 좋아하는 점) */
.pt-list{list-style:none;margin:6px 0 2px;padding:0;display:flex;flex-direction:column;gap:8px}
.pt-list li{position:relative;padding-left:15px;font-size:13px;line-height:1.55;color:var(--ink)}
.pt-list.pos li::before{content:'';position:absolute;left:3px;top:8px;width:6px;height:6px;border-radius:50%;background:var(--green)}
.pt-list li b{font-weight:800}
.pt-cnt{font-size:11px;color:var(--gray);background:#f1f5f9;border-radius:6px;padding:1px 6px;margin-left:3px}
.kw-h{font-size:14px}

/* ═════════ v12 리디자인 — 파스텔·별점·반응형 ═════════ */

/* 부드러운 톤 재보정 (기존 강한 색 → 파스텔) */
.senti-hole b{color:var(--green)}
.rdist-fill{background:var(--star)}
.rdist-fill.low{background:#e6a6a6}
.ans-bar{background:#eef0f4}
.ans-done{background:var(--green)}
.rn-star{color:var(--star)}
.kw-h.neg{color:#c2544f}
.issue-row{background:var(--warn-soft);border-color:#f4dcae}
.issue-row.sev-high{background:var(--red-soft);border-color:#f3cccc}
.issue-cat{color:#a26a12}.issue-row.sev-high .issue-cat{color:#b2504b}
.wc.pos{color:var(--green)} .wc.neg{color:var(--red)}
.dot.pos{background:var(--green)} .dot.neg{background:var(--red)}

/* ── 별점 히어로 (평균 큰 숫자 + 통통한 앰버 SVG 별) ── */
.rev-hero{background:#fff;border:1px solid var(--line);border-radius:18px;
  padding:22px 20px;margin-top:12px;box-shadow:0 1px 3px rgba(17,24,39,.04);
  display:flex;align-items:center;gap:22px}
.rev-hero-num{font-size:52px;font-weight:900;line-height:.95;color:var(--ink);letter-spacing:-1px}
.rev-hero-num small{font-size:20px;font-weight:700;color:var(--gray)}
.rev-hero-mid{display:flex;flex-direction:column;gap:7px}
.rev-hero-sub{font-size:13px;color:var(--gray)}
.rev-hero-sub b{color:var(--ink);font-weight:800}
.stars5{position:relative;display:inline-flex;width:max-content;height:28px}
.stars5 .srow{display:inline-flex;gap:3px;height:28px}
.stars5 .srow.on{position:absolute;top:0;left:0;overflow:hidden;white-space:nowrap}
.stars5 svg{width:28px;height:28px;display:block;flex:none}
.stars5 .srow.base svg path{fill:#e7e9ee}
.stars5 .srow.on svg path{fill:var(--star)}

/* ── 워드클라우드 긍정/부정 분리 ── */
.wcloud-split{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.wcol{border:1px solid var(--line);border-radius:12px;padding:12px 12px 14px;background:#fcfdfd}
.wcol.pos{background:var(--green-soft);border-color:#cdeadf}
.wcol.neg{background:var(--red-soft);border-color:#f2d6d6}
.wcol-h{font-size:12px;font-weight:800;margin-bottom:8px;display:flex;align-items:center;gap:5px}
.wcol.pos .wcol-h{color:#0c7a5d} .wcol.neg .wcol-h{color:#b2504b}
.wcol .wcloud{padding:0;gap:4px 11px}
.wcol.pos .wc{color:#0f8f6d}.wcol.neg .wc{color:#c85a55}
.wcol-empty{font-size:12px;color:var(--gray);padding:6px 0}

/* ── 추천 액션: 이모지 점 제거 → 무딘 pill + 좌측 보더 ── */
.action-row{border-left:3px solid #e2e5ea;align-items:center}
.action-row.pri-high{border-left-color:var(--red)}
.action-row.pri-mid{border-left-color:var(--warn)}
.action-row.pri-low{border-left-color:#cbd5e1}
.act-pill{font-size:11px;font-weight:800;padding:3px 9px;border-radius:20px;white-space:nowrap;flex:none}
.act-pill.pri-high{background:var(--red-soft);color:#b2504b}
.act-pill.pri-mid{background:var(--warn-soft);color:#a26a12}
.act-pill.pri-low{background:#f1f3f7;color:#64748b}
.action-row .act-body{margin-left:2px}
.action-row .act-tag{display:none}

/* ── 데스크톱: 좌측 사이드바 + 넓은 2단 카드 그리드 ── */
@media(min-width:960px){
  body{font-size:15px}
  .app{max-width:1140px;padding-left:210px}
  .content{padding-bottom:32px}
  .topbar{padding:16px 22px;min-height:62px}
  .topbar-title{font-size:20px}
  .store-switch{font-size:20px}

  /* 하단 탭바 → 좌측 세로 네비 */
  .tabbar{top:0;bottom:auto;left:max(0px,calc(50% - 570px));transform:none;
    width:210px;height:100vh;flex-direction:column;justify-content:flex-start;
    border-top:none;border-right:1px solid var(--line);padding:18px 12px;gap:2px;
    box-shadow:2px 0 16px rgba(17,24,39,.03)}
  .tabbar::before{content:'장사메이트';display:block;font-size:19px;font-weight:900;
    color:var(--blue);letter-spacing:-.5px;padding:8px 12px 16px;margin-bottom:8px;
    border-bottom:1px solid var(--line)}
  .tab{flex:none;flex-direction:row;justify-content:flex-start;gap:12px;font-size:14.5px;
    font-weight:600;padding:11px 12px;border-radius:10px;width:100%;color:#5b6472}
  .tab .tab-ic svg{width:21px;height:21px;stroke-width:1.8}
  .tab:hover{background:#f4f6fa}
  .tab.on{background:var(--blue-soft);color:var(--blue-ink);font-weight:700}
  .tab-more{display:flex}   /* 데스크톱 사이드바엔 보조 메뉴 표시 */

  .pad{padding:24px 28px}
  .store-sheet{top:62px}

  /* 요약 카드들을 반응형 그리드로 */
  .sum-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;align-items:start;margin-top:14px}
  .sum-grid .rev-hero,.sum-grid .sum-card{margin-top:0}
  .sum-grid .rev-hero,.sum-grid .span2{grid-column:1 / -1}
  .rev-hero{padding:28px 30px;gap:30px}
  .rev-hero-num{font-size:64px}
  .stars5 svg{width:34px;height:34px}.stars5,.stars5 .srow{height:34px}

  /* AI 리포트도 시원하게 */
  .action-list{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
  .diag-headline{font-size:22px}
  .section-title{font-size:17px;margin:26px 0 12px}
}
@media(min-width:1280px){
  .sum-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* ═════════ v16 — 리뷰 요약(토더형) ═════════ */
.rs-head{margin:6px 0 2px}
.rs-h1{font-size:22px;font-weight:900;margin:0;letter-spacing:-.5px}
.rs-sub{font-size:13px;color:var(--gray);margin:5px 0 0}
.rs-sub b{color:var(--ink);font-weight:800}
.rs-block-h{font-size:16px;font-weight:800;margin:26px 0 12px;display:flex;align-items:center;gap:8px;letter-spacing:-.3px}
.rs-badge{font-size:11px;font-weight:700;background:#ede9fe;color:#6d28d9;padding:3px 9px;border-radius:20px}
.rs-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:0 1px 3px rgba(17,24,39,.04)}
.rs-card-h{font-size:14px;font-weight:800;margin-bottom:14px}
.rs-grid2{display:grid;grid-template-columns:1fr;gap:14px;margin-top:12px}

/* 전체 평균 */
.rs-avg{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center}
.rs-avg-label{font-size:13px;color:var(--gray);font-weight:700}
.rs-avg-num{font-size:56px;font-weight:900;line-height:.9;letter-spacing:-2px;color:var(--ink)}
.rs-avg .stars5 svg{width:30px;height:30px}.rs-avg .stars5,.rs-avg .stars5 .srow{height:30px}

/* 평점별 리뷰 수 (세로 막대) */
.vbars{display:flex;gap:8px;align-items:flex-end}
.vbar{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px}
.vbar-cnt{font-size:11px;font-weight:800;color:var(--gray);height:14px}
.vbar-track{width:100%;max-width:30px;height:92px;background:#f1f3f7;border-radius:7px;display:flex;align-items:flex-end;overflow:hidden}
.vbar-fill{width:100%;background:var(--star);border-radius:7px 7px 0 0;min-height:3px;transition:height .3s}
.vbar-fill.low{background:#e6a6a6}
.vbar-fill.none{background:#cbd5e1}
.vbar-lb{font-size:11px;color:var(--gray);white-space:nowrap}

/* 플랫폼별 리뷰 카드 (가로 스크롤) */
.rs-pf-row{display:flex;gap:12px;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch}
.rs-pf{flex:0 0 auto;min-width:160px;background:#fff;border:1px solid var(--line);
  border-top:3px solid var(--c,#94a3b8);border-radius:14px;padding:15px 16px;
  display:flex;flex-direction:column;gap:8px;box-shadow:0 1px 3px rgba(17,24,39,.04)}
.rs-pf-name{font-weight:800;font-size:14px}
.rs-pf-rate{display:flex;align-items:center;gap:7px}
.rs-pf-rate b{font-size:16px;font-weight:800}
.rs-pf-rate .stars5 svg{width:15px !important;height:15px !important}
.rs-pf-rate .stars5,.rs-pf-rate .stars5 .srow{height:15px}
.rs-pf-cnt{font-size:12px;color:var(--gray)}
.rs-pf-cnt em{color:var(--red);font-style:normal;font-weight:700}

/* AI 요약 */
.rs-ai{padding:24px 26px}
.rs-ai-h{font-size:16px;font-weight:800;margin:4px 0 13px}
.rs-ai-h.pos{color:#0c7a5d}.rs-ai-h.neg{color:#b2504b}
.rs-ai-list{list-style:none;margin:0 0 22px;padding:0;display:flex;flex-direction:column;gap:12px}
.rs-ai-list:last-of-type{margin-bottom:0}
.rs-ai-list li{position:relative;padding-left:19px;font-size:15.5px;line-height:1.68;color:#374151}
.rs-ai-list li::before{content:'';position:absolute;left:4px;top:9px;width:6px;height:6px;border-radius:50%}
.rs-ai-list.pos li::before{background:var(--green)}
.rs-ai-list.neg li::before{background:var(--red)}
.rs-regen{margin-top:16px;text-align:right}
.rs-ai-empty{text-align:center;padding:10px 4px}

/* 도넛 중앙 Total */
.senti-hole span{font-size:11px;color:var(--gray)}
.senti-hole b.tot{font-size:23px;font-weight:900;color:var(--ink);margin-top:2px;letter-spacing:-.5px}
.senti-leg.kw-leg{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px}
.senti-leg.kw-leg .dot{border-radius:3px}

@media(min-width:760px){
  .rs-grid2{grid-template-columns:1fr 1fr}
  .rs-avg-num{font-size:64px}
}

/* 서비스/프로필 리스트 아이콘 소프트 배경 */
.svc-card .svc-ic{width:42px;height:42px;border-radius:12px;background:var(--blue-soft);justify-content:center;flex:none}
.svc-card.soon .svc-ic{background:#f1f5f9;color:#94a3b8}

/* ── 로그인 리디자인 ── */
.auth{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg)}
.auth-card{width:100%;max-width:400px;background:#fff;border:1px solid var(--line);border-radius:20px;
  padding:38px 30px 30px;box-shadow:0 12px 44px rgba(17,24,39,.07)}
.auth-brand{text-align:center;margin-bottom:26px}
.auth-mark{width:58px;height:58px;border-radius:17px;background:linear-gradient(135deg,var(--blue),#3b82f6);
  color:#fff;display:flex;align-items:center;justify-content:center;margin:0 auto 15px;
  box-shadow:0 10px 22px rgba(37,99,235,.30)}
.auth-mark svg{width:30px;height:30px;stroke:#fff}
.auth-logo{font-size:26px;font-weight:900;color:var(--ink);letter-spacing:-.6px}
.auth-tag{color:var(--gray);font-size:13px;margin:6px 0 0}
.auth-field{display:block;margin-bottom:14px}
.auth-field>span{display:block;font-size:12px;font-weight:700;color:#475569;margin-bottom:6px}
.auth-field input{width:100%;padding:13px 14px;border:1px solid #e3e6ec;border-radius:11px;font-size:15px;background:#fff}
.auth-field input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}
.auth-form .btn-primary{margin-top:8px}
.auth-error{background:var(--red-soft);color:#b2504b;border:1px solid #f3cccc;padding:12px;border-radius:11px;margin-bottom:16px;font-size:14px}
.auth-demo{text-align:center;color:var(--gray);margin-top:20px;font-size:13px}
.auth-demo b{color:#475569;font-weight:800}

/* ── store 리뷰채널 카드 리디자인 ── */
a.hub-card{transition:border-color .15s,box-shadow .15s,transform .05s}
a.hub-card:hover{box-shadow:0 4px 16px rgba(17,24,39,.08);border-color:#dfe3ea}
a.hub-card:active{transform:scale(.995)}
.hub-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin-top:13px;padding-top:13px;border-top:1px solid var(--line)}
.hub-stats{display:flex;gap:20px}
.hub-stats span{font-size:13px;color:var(--gray)}
.hub-stats b{font-size:17px;color:var(--ink);font-weight:800;margin-right:3px}
.hub-go{font-size:14px;font-weight:800;color:var(--blue);display:inline-flex;align-items:center;gap:1px;white-space:nowrap;flex:none}
.hub-go .chev{color:var(--blue);font-size:20px}
.hub-foot .muted-sm{color:#9ca3af;font-weight:600}

/* ═════════ v19 — 토더형 현황카드·차트 ═════════ */
/* 리뷰 현황 요약 (총 리뷰 / 미답변) */
.rstat-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.rstat-card{display:block;background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px 18px;box-shadow:0 1px 3px rgba(17,24,39,.04);transition:box-shadow .15s}
.rstat-card:hover{box-shadow:0 4px 16px rgba(17,24,39,.08)}
.rstat-card.primary{background:linear-gradient(135deg,var(--blue),#3b82f6);border-color:transparent;color:#fff;box-shadow:0 10px 24px rgba(37,99,235,.22)}
.rstat-top{display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:800}
.rstat-card:not(.primary) .rstat-top{color:#475569}
.rstat-go{font-size:12px;font-weight:700;opacity:.92}
.rstat-card:not(.primary) .rstat-go{color:var(--blue)}
.rstat-mid{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:8px 0 8px}
.rstat-num{font-size:30px;font-weight:900;letter-spacing:-1px;line-height:1}
.rstat-num small{font-size:15px;font-weight:700;margin-left:2px;opacity:.7}
.rstat-num.warn{color:var(--warn)}
.rstat-delta{font-size:12px;font-weight:700;display:inline-flex;align-items:center;gap:3px}
.rstat-card.primary .rstat-delta{color:rgba(255,255,255,.92)}
.rstat-card:not(.primary) .rstat-delta.up{color:var(--green)}
.rstat-card:not(.primary) .rstat-delta.down{color:var(--gray)}

/* 미니 막대 스파크라인 */
.mbars{display:inline-flex;align-items:flex-end;gap:3px;height:38px;width:100px;flex:none}
.mbars i{flex:1;background:var(--blue);border-radius:2px;min-height:3px;display:block}

/* 플랫폼별 카드(그래프형) */
.rs-pf{min-width:190px}
.rs-pf-h{display:flex;align-items:center;justify-content:space-between;gap:8px}
.rs-pf-name{font-weight:800;font-size:14px}
.rs-pf-star{font-size:13px;font-weight:800;color:var(--star)}
.rs-pf-mid{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin:6px 0 7px}
.rs-pf-cnt{font-size:22px;font-weight:900;letter-spacing:-1px;line-height:1}
.rs-pf-cnt small{font-size:13px;font-weight:700;color:var(--gray);margin-left:1px}
.rs-pf-delta{font-size:11px;font-weight:700}
.rs-pf-delta.up{color:var(--green)}.rs-pf-delta.down{color:var(--gray)}
.rs-pf .mbars{height:30px;width:82px}

/* 매장별 요약 헤더 부가 */
.rs-scope{margin-left:auto;font-size:12px;font-weight:700;color:#475569;background:#f1f3f7;padding:3px 11px;border-radius:20px}
.rs-ai-cap{font-size:12px;font-weight:800;color:var(--blue);margin-bottom:12px}

/* 감정 도넛 중립 색 */
.dot.mid{background:#cbd5e1}

/* 긍/부정 추이 (주간 그룹 막대) */
.gbars{display:flex;align-items:flex-end;gap:6px;height:124px;padding-top:6px}
.gbar-wk{flex:1;display:flex;flex-direction:column;align-items:center;gap:7px;height:100%}
.gbar-pair{flex:1;display:flex;align-items:flex-end;justify-content:center;gap:3px;width:100%}
.gbar{width:11px;border-radius:3px 3px 0 0;min-height:3px}
.gbar.pos{background:var(--green)}
.gbar.neg{background:var(--red)}
.gbar-lb{font-size:10px;color:var(--gray);white-space:nowrap}
.gbar-leg{display:flex;gap:16px;justify-content:center;margin-top:12px;font-size:12px;color:var(--gray)}
.gbar-leg span{display:inline-flex;align-items:center;gap:5px}

/* 키워드별 추이 (선그래프 + 토글) */
.kw-trend input[type=radio]{position:absolute;opacity:0;pointer-events:none}
.kwt-tabs{display:inline-flex;background:#f1f3f7;border-radius:9px;padding:3px;gap:2px;margin-bottom:12px}
.kwt-tabs label{font-size:12px;font-weight:700;color:var(--gray);padding:5px 16px;border-radius:7px;cursor:pointer}
#kwtPos:checked ~ .kwt-tabs label[for=kwtPos],
#kwtNeg:checked ~ .kwt-tabs label[for=kwtNeg]{background:#fff;color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.08)}
.kwt-body{display:none}
#kwtPos:checked ~ .kwt-body.pos{display:block}
#kwtNeg:checked ~ .kwt-body.neg{display:block}
.lchart{width:100%;height:auto;display:block}
.lchart circle,.lchart rect{cursor:pointer}
.lc-grid{stroke:#eef1f4;stroke-width:1}
.lc-yl{fill:#9aa1ad;font-size:9px;text-anchor:end}
.lc-xl{fill:#9aa1ad;font-size:9px;text-anchor:middle}
.lc-leg{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 14px;margin-top:12px}
.lc-leg span{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--gray)}
.lc-leg i{width:10px;height:10px;border-radius:3px}
.lc-empty{padding:34px 22px;text-align:center;color:var(--gray);font-size:13px}

/* SVG 별 — 소형(5개 부분채움) / 단일 */
.stars5.sm{height:15px}
.stars5.sm .srow{height:15px}
.stars5.sm svg{width:15px;height:15px}
.istar{line-height:0;display:inline-flex;vertical-align:-2px}
.istar svg{width:15px;height:15px}
.istar svg path{fill:var(--star)}
.rv-stars{display:inline-flex;align-items:center;line-height:0}
.rs-pf-star{display:inline-flex;align-items:center;gap:3px;color:var(--ink)}
.rs-pf-star b{font-size:13px;font-weight:800}

/* 추세 아이콘 */
.tico{width:13px;height:13px;display:inline-block;vertical-align:-1px}

/* ═════════ v30 — 답글기한 D-day · AI답글길이 · 메뉴별불만 ═════════ */
/* 답글 기한 배지 (리뷰 카드 날짜줄) */
.dday{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;
  font-size:11px;font-weight:800;background:#eef2ff;color:#4f46e5;vertical-align:1px}
.dday.soon{background:#fff7ed;color:#c2410c}
.dday.over{background:#fee2e2;color:#b91c1c}

/* AI 답글 길이 설정 (설정>AI엔진) */
.set-subhead{margin:22px 0 4px;font-size:15px;font-weight:800;color:var(--ink)}
.len-seg{display:flex;gap:9px;margin:10px 0 14px}
.len-opt{flex:1;display:flex;flex-direction:column;gap:3px;padding:13px 12px;cursor:pointer;
  border:1.5px solid var(--line);border-radius:13px;background:#fff;transition:.15s;text-align:center}
.len-opt:hover{border-color:var(--blue-soft)}
.len-opt.on{border-color:var(--blue);background:var(--blue-soft)}
.len-opt input{position:absolute;opacity:0;pointer-events:none}
.len-label{font-size:14px;font-weight:800;color:var(--ink)}
.len-opt.on .len-label{color:var(--blue)}
.len-desc{font-size:11.5px;color:var(--gray)}

/* 메뉴별 불만 분석 */
.menu-comp{display:flex;flex-direction:column;gap:11px;padding:4px 2px}
.mc-row{display:flex;align-items:center;gap:11px}
.mc-rank{flex:0 0 22px;height:22px;line-height:22px;text-align:center;border-radius:7px;
  background:#f1f5f9;color:#64748b;font-size:12px;font-weight:800}
.mc-row:nth-child(1) .mc-rank{background:#fee2e2;color:#dc2626}
.mc-row:nth-child(2) .mc-rank{background:#ffedd5;color:#ea580c}
.mc-row:nth-child(3) .mc-rank{background:#fef9c3;color:#ca8a04}
.mc-name{flex:0 0 34%;font-size:13.5px;font-weight:700;color:var(--ink);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mc-bar{flex:1;height:9px;border-radius:999px;background:#f1f5f9;overflow:hidden}
.mc-fill{display:block;height:100%;border-radius:999px;
  background:linear-gradient(90deg,#f87171,#dc2626)}
.mc-count{flex:0 0 auto;font-size:12.5px;font-weight:800;color:#dc2626}
.mc-note{margin-top:13px;padding-top:11px;border-top:1px solid var(--line);
  font-size:12.5px;color:var(--gray)}

/* ═════════ v31 — 매출 30일 통일 · AI엔진 플랫폼관리 안내 ═════════ */
.ai-engine-note{display:flex;gap:14px;align-items:flex-start;padding:18px 18px;margin:6px 0 20px;
  border:1.5px solid var(--blue-soft);border-radius:15px;
  background:linear-gradient(180deg,#f5f8ff,#fff)}
.aen-ic{flex:0 0 auto;width:44px;height:44px;border-radius:12px;display:flex;align-items:center;
  justify-content:center;font-size:23px;background:#fff;border:1px solid var(--blue-soft)}
.aen-title{font-size:15px;font-weight:800;color:var(--ink);line-height:1.4}
.aen-title b{color:var(--blue)}
.aen-desc{margin-top:5px;font-size:13px;color:var(--gray);line-height:1.55}
.aen-cur{margin-top:10px;font-size:12.5px;color:#475569;font-weight:700}
.aen-badge{display:inline-block;margin-left:5px;padding:2px 10px;border-radius:999px;
  background:var(--blue);color:#fff;font-size:12px;font-weight:800}

/* ═════════════════ v32 — 공개 랜딩(landing.php) ═════════════════ */
.lp-body{background:#fff;color:var(--ink);font-family:'Pretendard',system-ui,sans-serif;margin:0}
.lp-body *{box-sizing:border-box}
.lp-body h1,.lp-body h2,.lp-body h3{margin:0;letter-spacing:-.02em}
.lp-body section{padding-inline:20px}

/* 버튼 */
.lp-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;
  padding:11px 20px;border-radius:11px;font-size:14.5px;font-weight:700;
  text-decoration:none;border:1.5px solid transparent;cursor:pointer;transition:.15s;white-space:nowrap}
.lp-btn.primary{background:var(--blue);color:#fff}
.lp-btn.primary:hover{background:#1d4ed8}
.lp-btn.ghost{background:#fff;color:var(--ink);border-color:var(--line)}
.lp-btn.ghost:hover{border-color:var(--blue);color:var(--blue)}
.lp-btn.lg{padding:14px 26px;font-size:15.5px;border-radius:13px}
.lp-btn.full{width:100%}

/* 상단바 */
.lp-nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.88);
  backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid var(--line)}
.lp-nav-in{max-width:1080px;margin:0 auto;height:62px;display:flex;align-items:center;gap:20px;padding:0 20px}
.lp-brand{display:flex;align-items:center;gap:9px;font-size:19px;font-weight:900;color:var(--ink);text-decoration:none}
.lp-brand-mark{width:32px;height:32px;border-radius:9px;background:var(--blue);color:#fff;
  display:flex;align-items:center;justify-content:center}
.lp-brand-mark svg{width:18px;height:18px}
.lp-nav-links{display:flex;gap:22px;margin-left:14px}
.lp-nav-links a{color:#475569;text-decoration:none;font-size:14.5px;font-weight:600}
.lp-nav-links a:hover{color:var(--blue)}
.lp-nav-cta{margin-left:auto;display:flex;gap:9px}

/* 히어로 */
.lp-hero{background:linear-gradient(180deg,#f5f8ff 0%,#fff 100%);padding-top:56px;padding-bottom:56px}
.lp-hero-in{max-width:1080px;margin:0 auto;display:grid;grid-template-columns:1.05fr .95fr;gap:44px;align-items:center}
.lp-badge{display:inline-block;padding:6px 13px;border-radius:999px;background:var(--blue-soft);
  color:var(--blue-ink,#1e40af);font-size:13px;font-weight:800;margin-bottom:18px}
.lp-hero-copy h1{font-size:46px;line-height:1.15;font-weight:900}
.lp-hero-sub{margin:18px 0 26px;font-size:18px;line-height:1.6;color:#475569}
.lp-hero-sub b{color:var(--ink)}
.lp-hero-btns{display:flex;gap:11px;flex-wrap:wrap}
.lp-hero-note{margin-top:16px;font-size:13px;color:var(--gray)}
.lp-hero-note b{color:#475569}

/* 히어로 데모 카드 */
.lp-demo{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;
  box-shadow:0 24px 50px -22px rgba(30,58,138,.30)}
.lp-demo-h{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:800;color:var(--blue);margin-bottom:14px}
.lp-demo-dot{width:8px;height:8px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 4px var(--blue-soft)}
.lp-demo-review{background:#f8fafc;border-radius:12px;padding:14px}
.lp-demo-stars{margin-bottom:7px}
.lp-demo-review p{margin:0;font-size:14.5px;line-height:1.55;color:#334155}
.lp-demo-arrow{text-align:center;font-size:12.5px;font-weight:700;color:var(--gray);margin:11px 0}
.lp-demo-reply{background:var(--blue-soft);border-radius:12px;padding:14px;
  font-size:14px;line-height:1.6;color:#1e3a8a}

/* 플랫폼 스트립 */
.lp-strip{max-width:1080px;margin:0 auto;padding:30px 20px;display:flex;align-items:center;
  gap:20px;flex-wrap:wrap;justify-content:center;border-bottom:1px solid var(--line)}
.lp-strip-label{font-size:13.5px;font-weight:700;color:var(--gray)}
.lp-strip-logos{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.lp-plat{padding:8px 16px;border-radius:10px;font-size:15px;font-weight:800;color:#fff;background:var(--c)}
.lp-plat.soon{background:#f1f5f9;color:#94a3b8}
.lp-plat.soon em{font-style:normal;font-size:11px;font-weight:700}

/* 공감 */
.lp-empathy{max-width:760px;margin:0 auto;padding:64px 20px;text-align:center}
.lp-empathy h2{font-size:30px;line-height:1.3;font-weight:900}
.lp-empathy p{margin-top:16px;font-size:16px;line-height:1.7;color:#475569}

/* 섹션 공통 */
.lp-section{max-width:1080px;margin:0 auto;padding:64px 20px}
.lp-sec-head{text-align:center;margin-bottom:38px}
.lp-eyebrow{display:inline-block;font-size:12.5px;font-weight:800;letter-spacing:.12em;color:var(--blue)}
.lp-sec-head h2{margin-top:8px;font-size:30px;font-weight:900}
.lp-sec-sub{margin-top:12px;font-size:15.5px;color:#475569}

/* 기능 그리드 */
.lp-feat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.lp-feat{background:#fff;border:1px solid var(--line);border-radius:16px;padding:26px 24px}
.lp-feat.hl{border-color:var(--blue);background:linear-gradient(180deg,#f5f8ff,#fff)}
.lp-feat-ic{width:48px;height:48px;border-radius:13px;background:var(--blue-soft);color:var(--blue);
  display:flex;align-items:center;justify-content:center;margin-bottom:15px}
.lp-feat-ic svg{width:24px;height:24px}
.lp-feat h3{font-size:18px;font-weight:800;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.lp-only{font-style:normal;font-size:11.5px;font-weight:800;color:#fff;background:var(--blue);
  padding:2px 8px;border-radius:999px}
.lp-feat p{margin:10px 0 0;font-size:14.5px;line-height:1.6;color:#475569}

/* 신뢰 */
.lp-trust{background:#0f172a;color:#e2e8f0}
.lp-trust-in{max-width:1080px;margin:0 auto;padding:44px 20px;display:grid;
  grid-template-columns:repeat(3,1fr);gap:26px}
.lp-trust-stat{text-align:center}
.lp-trust-stat b{display:block;font-size:19px;font-weight:900;color:#fff}
.lp-trust-stat span{display:block;margin-top:7px;font-size:13.5px;line-height:1.55;color:#94a3b8}

/* 요금제 */
.lp-plan-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;align-items:stretch}
.lp-plan{position:relative;background:#fff;border:1.5px solid var(--line);border-radius:16px;
  padding:24px 18px;display:flex;flex-direction:column}
.lp-plan.rec{border-color:var(--pc);box-shadow:0 18px 40px -20px rgba(37,99,235,.4);transform:translateY(-6px)}
.lp-plan-tag{position:absolute;top:-11px;left:50%;transform:translateX(-50%);
  background:var(--pc);color:#fff;font-size:12px;font-weight:800;padding:3px 13px;border-radius:999px}
.lp-plan-name{font-size:17px;font-weight:900;color:var(--pc)}
.lp-plan-desc{margin-top:4px;font-size:12.5px;color:var(--gray)}
.lp-plan-price{margin:14px 0 16px}
.lp-plan-price b{font-size:26px;font-weight:900;color:var(--ink)}
.lp-plan-price small{font-size:13px;color:var(--gray);font-weight:700;margin-left:2px}
.lp-plan-feat{list-style:none;margin:0 0 18px;padding:0;flex:1}
.lp-plan-feat li{position:relative;padding:6px 0 6px 22px;font-size:13px;color:#334155;line-height:1.4}
.lp-plan-feat li::before{content:'✓';position:absolute;left:0;color:var(--green);font-weight:800}
.lp-plan-note{max-width:1080px;margin:20px auto 0;text-align:center;font-size:12.5px;color:var(--gray)}

/* FAQ */
.lp-faq{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:11px}
.lp-faq-item{border:1px solid var(--line);border-radius:13px;padding:4px 18px;background:#fff}
.lp-faq-item summary{list-style:none;cursor:pointer;padding:15px 0;font-size:15.5px;
  font-weight:700;color:var(--ink);position:relative;padding-right:28px}
.lp-faq-item summary::-webkit-details-marker{display:none}
.lp-faq-item summary::after{content:'+';position:absolute;right:2px;top:13px;font-size:20px;color:var(--blue);font-weight:400}
.lp-faq-item[open] summary::after{content:'-'}
.lp-faq-item p{margin:0 0 16px;font-size:14.5px;line-height:1.65;color:#475569}

/* 최종 CTA */
.lp-final{background:linear-gradient(135deg,var(--blue),#4f46e5);color:#fff;text-align:center;padding:70px 20px}
.lp-final h2{font-size:30px;font-weight:900}
.lp-final p{margin:14px 0 26px;font-size:16px;color:#dbeafe}
.lp-final .lp-btn.primary{background:#fff;color:var(--blue)}
.lp-final .lp-btn.primary:hover{background:#f1f5f9}

/* 푸터 */
.lp-foot{background:#0f172a;color:#94a3b8;padding:36px 20px}
.lp-foot-in{max-width:1080px;margin:0 auto;display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.lp-foot .lp-brand{color:#fff}
.lp-foot-links{display:flex;gap:18px}
.lp-foot-links a{color:#cbd5e1;text-decoration:none;font-size:14px}
.lp-foot-links a:hover{color:#fff}
.lp-foot-copy{margin-left:auto;font-size:12.5px}

/* 반응형 */
@media (max-width:900px){
  .lp-plan-grid{grid-template-columns:repeat(2,1fr)}
  .lp-plan.rec{transform:none}
}
@media (max-width:760px){
  .lp-nav-links{display:none}
  .lp-hero{padding-top:36px;padding-bottom:40px}
  .lp-hero-in{grid-template-columns:1fr;gap:32px}
  .lp-hero-copy h1{font-size:34px}
  .lp-hero-sub{font-size:16px}
  .lp-feat-grid{grid-template-columns:1fr}
  .lp-trust-in{grid-template-columns:1fr;gap:20px}
  .lp-empathy h2,.lp-sec-head h2,.lp-final h2{font-size:24px}
  .lp-foot-copy{margin-left:0;width:100%}
}
@media (max-width:520px){
  .lp-plan-grid{grid-template-columns:1fr}
  .lp-nav-cta .lp-btn.ghost{display:none}
}

/* ═════════════════ v33 — 랜딩 리듬·타이포·구조 개선 ═════════════════ */
/* 풀블리드 블록 + 내부 래퍼(교차 배경으로 섹션 리듬) */
.lp-block{padding:98px 20px}
.lp-block.tint{background:#f6f8fc}
.lp-wrap{max-width:1080px;margin:0 auto}

/* 섹션 헤더 확대 */
.lp-sec-head{margin-bottom:50px}
.lp-sec-head h2{font-size:clamp(27px,3.3vw,35px);line-height:1.22}
.lp-eyebrow{font-size:13px;letter-spacing:.14em}

/* 히어로 — 타이포 확대 + 여백 */
.lp-hero{padding:86px 20px 96px}
.lp-hero-in{gap:50px;align-items:center}
.lp-hero-copy h1{font-size:clamp(40px,5.4vw,64px);line-height:1.1;font-weight:900;letter-spacing:-.03em}
.lp-accent{color:var(--blue)}
.lp-badge{margin-bottom:22px}
.lp-hero-sub{font-size:19px;line-height:1.62;margin:22px 0 30px}
.lp-hero-btns{gap:12px}

/* 히어로 비주얼 — 리뷰+답글 카드 스택(겹침) */
.lp-hero-visual{position:relative;display:flex;flex-direction:column;padding:6px 0}
.lp-rvcard{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px 20px;
  box-shadow:0 24px 54px -24px rgba(30,58,138,.32);width:92%}
.lp-rvcard.c1{align-self:flex-start;transform:rotate(-1.4deg);z-index:2}
.lp-rvcard.c2{align-self:flex-end;margin-top:-20px;transform:rotate(1.4deg);z-index:1}
.lp-rv-head{display:flex;align-items:center;gap:9px;margin-bottom:11px}
.lp-rv-plat{width:36px;height:36px;border-radius:50%;color:#fff;font-size:12px;font-weight:800;
  display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.lp-rv-name{font-size:14.5px;font-weight:800;color:var(--ink)}
.lp-rv-stars{margin-left:auto;line-height:0;display:inline-flex}
.lp-rv-text{margin:0 0 13px;font-size:14px;line-height:1.55;color:#334155}
.lp-rv-reply{background:#f1f5f9;border-radius:13px;padding:12px 14px;font-size:13.4px;line-height:1.58;color:#475569}
.lp-rv-reply-tag{display:block;font-size:11.5px;font-weight:800;color:var(--blue);margin-bottom:5px}

/* 공감 여백 확대 */
.lp-empathy{padding:98px 20px}
.lp-empathy h2{font-size:clamp(24px,3.2vw,32px)}

/* 제품 미리보기 */
.lp-preview{background:linear-gradient(180deg,#f5f7ff 0%,#eaf0fe 100%);padding:98px 20px}
.lp-preview-in{max-width:1080px;margin:0 auto;display:grid;grid-template-columns:.92fr 1.08fr;gap:52px;align-items:center}
.lp-preview-copy h2{font-size:clamp(27px,3.4vw,37px);font-weight:900;line-height:1.18;margin:10px 0 16px}
.lp-preview-copy p{font-size:16px;line-height:1.7;color:#475569;margin:0 0 24px}

/* 대시보드 목업 */
.lp-dash{background:#fff;border:1px solid var(--line);border-radius:17px;overflow:hidden;
  box-shadow:0 34px 66px -30px rgba(30,58,138,.38)}
.lp-dash-bar{display:flex;align-items:center;gap:6px;padding:12px 16px;background:#f8fafc;border-bottom:1px solid var(--line)}
.lp-dash-bar span{width:10px;height:10px;border-radius:50%}
.lp-dash-bar span:nth-child(1){background:#fca5a5}
.lp-dash-bar span:nth-child(2){background:#fcd34d}
.lp-dash-bar span:nth-child(3){background:#86efac}
.lp-dash-bar i{margin-left:10px;font-style:normal;font-size:12.5px;font-weight:700;color:var(--gray)}
.lp-dash-body{padding:20px}
.lp-dash-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}
.lp-dash-metric{background:#f8fafc;border-radius:12px;padding:15px 12px;text-align:center}
.lp-dash-metric b{display:block;font-size:25px;font-weight:900;color:var(--ink);line-height:1}
.lp-dash-metric span{display:block;margin-top:6px;font-size:12px;color:var(--gray)}
.lp-dash-metric.v1 b{color:#7c3aed}
.lp-dash-metric.v2 b{color:#dd5b5b}
.lp-dash-metric.v3 b{color:#f59e0b}
.lp-dash-chart{display:flex;align-items:flex-end;gap:8px;height:96px;padding:12px 4px 0}
.lp-dash-chart i{flex:1;background:linear-gradient(180deg,#93c5fd,#2563eb);border-radius:5px 5px 0 0}
.lp-dash-row{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}
.lp-dash-tag{font-size:12px;font-weight:700;padding:6px 12px;border-radius:999px}
.lp-dash-tag.pos{background:#dcfce7;color:#15803d}
.lp-dash-tag.neg{background:#fee2e2;color:#b91c1c}

/* 신뢰/최종 여백 확대 */
.lp-trust-in{padding:58px 20px}
.lp-final{padding:92px 20px}

/* 기능 카드 여백 */
.lp-feat{padding:28px 26px}
.lp-feat-grid{gap:20px}

/* 반응형 보강 */
@media (max-width:820px){
  .lp-preview-in{grid-template-columns:1fr;gap:30px}
}
@media (max-width:760px){
  .lp-block,.lp-empathy,.lp-preview,.lp-hero{padding:60px 18px}
  .lp-hero{padding-top:40px}
  .lp-hero-visual{padding-top:4px}
  .lp-rvcard{width:100%}
  .lp-rvcard.c1,.lp-rvcard.c2{transform:none}
  .lp-rvcard.c2{margin-top:14px}
  .lp-sec-head{margin-bottom:34px}
}

/* ═════════════════ v34 — 기능 카드 미니 예시 ═════════════════ */
.lp-feat{display:flex;flex-direction:column}
.lp-feat p{flex:0 0 auto}
.lp-feat-demo{margin-top:auto;padding-top:16px;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.lp-feat-demo:empty{display:none}

/* 플랫폼 칩 */
.lp-fchip{font-size:12px;font-weight:800;color:#fff;background:var(--c);padding:5px 11px;border-radius:8px}
.lp-fchip.ghost{background:#eef2f7;color:#94a3b8}

/* 길이 세그먼트 */
.lp-fseg{font-size:12.5px;font-weight:700;color:#64748b;background:#f1f5f9;padding:6px 13px;border-radius:8px}
.lp-fseg.on{background:var(--blue);color:#fff}
.lp-fnote{font-size:12px;color:var(--gray);margin-left:2px}

/* 매출 미니 지표 */
.lp-fstat{flex:1;min-width:130px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.lp-fstat b{display:block;font-size:20px;font-weight:900;color:var(--ink);line-height:1}
.lp-fstat b small{font-size:12px;font-weight:700;color:var(--gray);margin-left:1px}
.lp-fstat span{display:block;margin-top:5px;font-size:11.5px;color:var(--gray)}

/* 불만 메뉴 미니바 */
.lp-fbar{display:flex;align-items:center;gap:10px;width:100%}
.lp-fbar>span{flex:0 0 100px;font-size:12.5px;font-weight:600;color:#475569;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lp-ftrack{flex:1;height:8px;border-radius:999px;background:#f1f5f9;overflow:hidden}
.lp-ftrack b{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#f87171,#dc2626)}
.lp-fbar em{flex:0 0 auto;font-style:normal;font-size:12.5px;font-weight:800;color:#dc2626}

/* ── 모바일 매출카드 가로 오버플로우 수정 ─────────────────────
   .rstat-card(총매출/완료주문)의 큰 금액+고정폭 스파크라인이 1fr 트랙을
   뷰포트보다 넓게 밀어 페이지 가로 스크롤 + 고정 탭바 밀림을 유발.
   좁은 화면에서 그리드 축소 허용 + 카드 내부 세로 배치. */
@media (max-width:460px){
  .rstat-card{min-width:0}
  .rstat-mid{flex-direction:column;align-items:flex-start;gap:7px;min-width:0}
  .rstat-num{font-size:23px;letter-spacing:-.5px}
  .rstat-mid .mbars{width:100%;height:30px}
}

/* ═════════════════ AI 사용 로그 (admin_ai_logs.php) ═════════════════ */
.ailog-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:10px 0 16px}
.ailog-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px}
.ailog-card-lbl{font-size:12px;color:var(--gray);font-weight:700}
.ailog-card-num{font-size:22px;font-weight:900;color:var(--ink);margin-top:5px;line-height:1}
.ailog-card-num small{font-size:12px;font-weight:700;color:var(--gray);margin-left:3px}
.ailog-card-sub{font-size:11px;color:var(--gray);margin-top:6px;line-height:1.4}
.ailog-break{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:8px}
.ailog-bcol{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px}
.ailog-bcol>b{font-size:13px;display:block;margin-bottom:8px}
.ailog-brow{display:flex;justify-content:space-between;gap:8px;font-size:12.5px;padding:4px 0;color:#475569}
.ailog-brow em{font-style:normal;font-weight:700;color:var(--ink);white-space:nowrap}
.ailog-list{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.ailog-item{border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}
.ailog-item summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:9px;padding:12px 14px;font-size:13px}
.ailog-item summary::-webkit-details-marker{display:none}
.ailog-badge{font-size:11px;font-weight:800;padding:2px 8px;border-radius:6px;text-transform:uppercase}
.ailog-badge.ok{background:#dcfce7;color:#15803d}
.ailog-badge.err{background:#fee2e2;color:#b91c1c}
.ailog-badge.warn{background:#fef9c3;color:#a16207}
.ailog-feat{font-weight:800;color:var(--ink)}
.ailog-prov{color:var(--gray)}
.ailog-tok{margin-left:auto;font-weight:800;color:var(--blue);white-space:nowrap}
.ailog-when{color:var(--gray);font-size:12px;white-space:nowrap}
.ailog-detail{padding:0 14px 14px;border-top:1px solid var(--line)}
.ailog-meta{font-size:12px;color:#475569;margin:12px 0;line-height:1.6}
.ailog-err-txt{color:#b91c1c;font-weight:600}
.ailog-pblock{margin-top:10px}
.ailog-pblock>span{font-size:11px;font-weight:800;color:var(--gray);text-transform:uppercase}
.ailog-pblock pre{margin:4px 0 0;background:#f8fafc;border:1px solid var(--line);border-radius:8px;padding:10px;font-size:12px;line-height:1.5;white-space:pre-wrap;word-break:break-word;max-height:240px;overflow:auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
@media (max-width:520px){
  .ailog-cards{grid-template-columns:1fr}
  .ailog-break{grid-template-columns:1fr}
  .ailog-item summary{flex-wrap:wrap}
  .ailog-tok{margin-left:0}
}

/* ── AI 생성 로딩 오버레이 ───────────────────────────────── */
.ai-loading{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;
  background:rgba(15,23,42,.45);backdrop-filter:blur(2px);opacity:0;transition:opacity .18s}
.ai-loading.on{opacity:1}
.ai-loading-box{display:flex;flex-direction:column;align-items:center;gap:11px;
  background:#fff;border-radius:18px;padding:30px 34px;box-shadow:0 20px 50px -12px rgba(0,0,0,.4);
  max-width:82vw;text-align:center}
.ai-loading-box b{font-size:15px;font-weight:800;color:var(--ink);line-height:1.4}
.ai-loading-sub{font-size:12.5px;color:var(--gray)}
.ai-spin{width:38px;height:38px;border-radius:50%;border:4px solid var(--blue-soft);
  border-top-color:var(--blue);animation:aispin .7s linear infinite}
@keyframes aispin{to{transform:rotate(360deg)}}

/* ═════════════════ 플레이스 순위 (rank.php) ═════════════════ */
.rk-add-wrap{border:1px solid var(--line);border-radius:14px;background:#fff;margin-bottom:16px;overflow:hidden}
.rk-add-toggle{list-style:none;cursor:pointer;padding:14px 16px;font-size:14.5px;font-weight:800;color:var(--blue)}
.rk-add-toggle::-webkit-details-marker{display:none}
.rk-add{padding:4px 16px 18px;display:flex;flex-direction:column;gap:12px;border-top:1px solid var(--line)}
.rk-seg{display:flex;gap:8px}
.rk-seg-opt{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px;border:1.5px solid var(--line);
  border-radius:11px;font-size:13.5px;font-weight:700;color:#475569;cursor:pointer}
.rk-seg-opt:has(input:checked){border-color:var(--blue);background:var(--blue-soft);color:var(--blue)}
.rk-seg-opt input{position:absolute;opacity:0;pointer-events:none}

.rk-list{display:flex;flex-direction:column;gap:11px}
.rk-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:15px 16px}
.rk-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.rk-keyword{font-size:16px;font-weight:800;color:var(--ink)}
.rk-place{margin-top:3px;font-size:12.5px;color:var(--gray);max-width:52vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rk-mode{display:inline-block;margin-left:4px;padding:1px 7px;border-radius:999px;background:#f1f5f9;color:#64748b;font-size:11px;font-weight:700}
.rk-today{display:flex;align-items:center;gap:7px;flex:none}
.rk-b{font-size:15px;font-weight:900;padding:3px 11px;border-radius:9px;white-space:nowrap}
.rk-b.top{background:#dcfce7;color:#15803d}
.rk-b.good{background:var(--blue-soft);color:var(--blue)}
.rk-b.mid{background:#f1f5f9;color:#475569}
.rk-b.out{background:#fef3c7;color:#b45309}
.rk-b.fail{background:#fee2e2;color:#b91c1c}
.rk-b.none{background:#f1f5f9;color:#94a3b8}
.rk-d{font-size:12.5px;font-weight:800}
.rk-d.up{color:#16a34a}
.rk-d.down{color:#dc2626}
.rk-d.flat{color:#94a3b8}

.rk-mid{display:flex;align-items:center;gap:14px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.rk-spark{width:132px;height:34px;flex:none}
.rk-spark-empty{width:132px;font-size:11.5px;color:var(--gray)}
.rk-stats{display:flex;gap:14px;font-size:12.5px;color:var(--gray)}
.rk-stats b{color:var(--ink);font-weight:800}

.rk-actions{display:flex;align-items:center;gap:8px;margin-top:12px;flex-wrap:wrap}
.rk-synced{font-size:11.5px;color:var(--gray);margin-right:auto}
.rk-inline{display:inline}
.btn-ghost.xs{font-size:12.5px;padding:6px 12px;border-radius:9px}
.btn-ghost.xs.danger{color:#dc2626;border-color:#fecaca}
.btn-ghost.xs.danger:hover{background:#fef2f2}

/* 순위 슬롯 초과 배너 */
.rk-slotfull{display:block;background:#fff7ed;border:1px solid #fed7aa;border-radius:12px;
  padding:13px 15px;margin-bottom:14px;color:#9a3412;font-size:13.5px;font-weight:600;text-decoration:none}
.rk-slotfull b{color:#c2410c}

/* ═════════════════ 플레이스 순위 v2 — 리치 카드 ═════════════════ */
.rk-addr{margin-top:3px;font-size:11.5px;color:var(--gray);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:62vw}
.rk-metrics{display:flex;gap:16px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid var(--line);font-size:12.5px;color:var(--gray)}
.rk-metric b{color:var(--ink);font-weight:800;margin-left:2px}
.rk-related{display:flex;gap:5px;flex-wrap:wrap;margin-top:10px}
.rk-rel{font-size:11px;color:#475569;background:#eef2f7;padding:3px 9px;border-radius:7px}

/* 날짜별 카드 (가로 스크롤) */
.rk-days{display:flex;gap:6px;overflow-x:auto;padding:4px 0 2px;margin-top:12px;-webkit-overflow-scrolling:touch}
.rk-day{flex:0 0 auto;width:90px;background:#f8fafc;border:1px solid var(--line);border-radius:11px;padding:9px 7px;text-align:center}
.rk-day.empty{opacity:.45}
.rk-day-d{display:block;font-size:11px;color:var(--gray);font-weight:700}
.rk-day-r{display:block;font-size:21px;font-weight:900;margin-top:3px;color:var(--ink);line-height:1.1}
.rk-day-r.top{color:#15803d}
.rk-day-r.good{color:var(--blue)}
.rk-day-r.mid{color:#475569}
.rk-day-r.out{color:#b45309;font-size:14px}
.rk-day-r.fail{color:#b91c1c}
.rk-day-dl{display:block;font-size:11px;font-weight:800;margin-top:1px}
.rk-day-dl.up{color:#16a34a}
.rk-day-dl.down{color:#dc2626}
.rk-day-rv{margin-top:7px;padding-top:6px;border-top:1px dashed var(--line);font-size:10.5px;color:#64748b;line-height:1.5}
.rk-day-n{margin-top:5px;font-size:9.5px;color:#94a3b8;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;line-height:1.55;text-align:left}

/* ── 날짜 카드 v3: 순위 상단 / 메트릭 하단 고정, 블·방·저·N1~3 각 한 줄 ── */
.rk-days{align-items:stretch}
.rk-day{width:98px;display:flex;flex-direction:column;padding:9px 8px 10px}
.rk-day.empty{opacity:.5}
.rk-day-hd{text-align:center}
.rk-day-r{display:block;font-size:21px;font-weight:900;margin-top:3px;line-height:1.05;color:var(--ink)}
.rk-day-r.none{color:#cbd5e1;font-size:18px}
.rk-day-dl{display:block;text-align:center;font-size:11px;font-weight:800;margin-top:1px}
.rk-day-dl.flat{color:#cbd5e1}
.rk-day-body{margin-top:auto;padding-top:8px}
.rk-day-rv,.rk-day-n{display:flex;flex-direction:column;gap:2px}
.rk-day-rv{border-top:1px dashed var(--line);padding-top:7px}
.rk-day-rv span,.rk-day-n span{display:flex;justify-content:space-between;align-items:baseline;gap:5px}
.rk-day-rv span{font-size:10.5px;color:#94a3b8}
.rk-day-rv b{font-size:11px;font-weight:800;color:#334155}
.rk-day-n{margin-top:7px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.rk-day-n span{font-size:9.5px;color:#aab2be}
.rk-day-n b{font-size:10px;font-weight:600;color:#64748b}

/* ── 날짜 카드 v4: 리뷰 증감 + N지수 색상 ── */
.rk-day-rv em,.rk-day-n em{font-style:normal}
.rk-vg{display:inline-flex;align-items:baseline;gap:3px}
.rk-vg i{font-style:normal;font-size:9px;font-weight:800}
.rk-vg i.up{color:#16a34a}
.rk-vg i.down{color:#dc2626}
.rk-day-n .n-1 b{color:#2563eb}   /* N1 파랑 */
.rk-day-n .n-2 b{color:#16a34a}   /* N2 초록 */
.rk-day-n .n-3 b{color:#ea8a00}   /* N3 주황 */
