/* ============================================================
   Everglow Studio — design system + layout
   Violet identity carried over from the print rate card,
   refined for screen. One stylesheet for the whole app.
   ============================================================ */

:root {
  --ink: #1A1330;
  --ink-soft: #4A3E68;
  --ink-mute: #8A82A0;
  --line: #E8E2EE;
  --line-strong: #D0C5DC;
  --cream: #FAF8FC;
  --cream-deep: #F2ECF8;
  --accent: #5A2E8C;
  --accent-deep: #3A155F;
  --accent-bright: #7B4BC4;
  --accent-soft: #E8DEEF;
  --gold: #C9A24B;
  --price-package: #166534;
  --price-saving: #C81E2E;
  --price-saving-soft: #FFF1F2;
  --price-applied: #C81E2E;
  --price-applied-soft: #FFF1F2;
  --shadow-sm: 0 1px 2px rgba(40, 20, 70, .06), 0 2px 8px rgba(40, 20, 70, .05);
  --shadow-md: 0 4px 14px rgba(40, 20, 70, .09), 0 10px 36px rgba(40, 20, 70, .08);
  --shadow-lg: 0 12px 48px rgba(40, 20, 70, .16);
  --r-sm: 8px;
  --r-md: 14px;
  --r-lg: 22px;
  --font: 'Noto Sans KR', 'Helvetica Neue', Arial, sans-serif;
}

.rc-theme-realtor,
body.rc-app-theme-realtor {
  --re-pink: #D05CB5;
  --re-purple: #8D6AD3;
  --re-blue: #5B82D3;
  --re-gradient: linear-gradient(105deg, var(--re-pink) 0%, var(--re-purple) 52%, var(--re-blue) 100%);
  --line: #E7E3EF;
  --line-strong: #D2CADE;
  --cream: #FAF8FC;
  --cream-deep: #F1EDF8;
  --accent: #8066C5;
  --accent-deep: #4C3C8B;
  --accent-bright: #D05CB5;
  --accent-soft: #EEE9F8;
  --price-applied: #6550AE;
  --price-applied-soft: #F1EDFA;
}

body.rc-app-theme-realtor .topbar .btn.primary {
  border-color: transparent; background: var(--re-gradient);
}
body.rc-app-theme-realtor .topbar .btn.primary:hover {
  border-color: transparent; background: var(--re-gradient); filter: brightness(.93);
}
body.rc-app-theme-realtor .cv-nav button.active { background: var(--re-gradient); }

* { box-sizing: border-box; margin: 0; padding: 0; }

html, body {
  font-family: var(--font);
  color: var(--ink);
  background: #EDE7F4;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
button { font-family: inherit; cursor: pointer; }
ul { list-style: none; }

/* ===================== APP SHELL ===================== */
.app { min-height: 100vh; }

.topbar {
  position: sticky; top: 0; z-index: 50;
  display: flex; align-items: center; gap: 18px;
  padding: 0 22px; height: 60px;
  background: rgba(255,255,255,.86);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--line);
}
.topbar .brand-lockup { display: flex; align-items: center; gap: 11px; }
.topbar .brand-lockup img { width: 30px; height: 30px; border-radius: 50%; }
.topbar .brand-lockup .bname { font-family: 'Bricolage Grotesque', system-ui, sans-serif; font-weight: 700; letter-spacing: -.01em; font-size: 16px; line-height: 1; text-transform: uppercase; white-space: nowrap; }
.topbar .brand-lockup .bname small { display: none; }

.mode-switch { display: flex; gap: 4px; background: var(--cream-deep); padding: 4px; border-radius: 999px; }
.mode-switch button {
  border: 0; background: transparent; padding: 8px 16px; border-radius: 999px;
  font-size: 13px; font-weight: 600; color: var(--ink-mute); transition: all .15s;
}
.mode-switch button.active { background: #fff; color: var(--accent-deep); box-shadow: var(--shadow-sm); }
.mode-switch button:hover:not(.active) { color: var(--ink-soft); }

.spacer { flex: 1; }

.btn {
  border: 1px solid var(--line-strong); background: #fff; color: var(--ink-soft);
  padding: 9px 15px; border-radius: var(--r-sm); font-size: 13px; font-weight: 600;
  display: inline-flex; align-items: center; gap: 7px; transition: all .15s;
}
.btn:hover { border-color: var(--accent); color: var(--accent-deep); }
.btn.primary { background: var(--accent); border-color: var(--accent); color: #fff; }
.btn.primary:hover { background: var(--accent-deep); }
.btn.ghost { border-color: transparent; background: transparent; }
.btn.tiny { padding: 5px 9px; font-size: 12px; }
.btn:disabled { opacity: .5; cursor: default; }

.lang-pill {
  border: 1px solid var(--line-strong); background: #fff; border-radius: 999px;
  padding: 8px 14px; font-size: 12px; font-weight: 700; color: var(--accent-deep);
  letter-spacing: .04em; transition: all .15s;
}
.lang-pill:hover { background: var(--accent-soft); }

.save-state { font-size: 12px; color: var(--ink-mute); display: flex; align-items: center; gap: 6px; }
.save-dot { width: 7px; height: 7px; border-radius: 50%; background: #5BB36A; }
.save-dot.busy { background: var(--gold); }

/* ===================== EDITOR ===================== */
.editor-split { display: grid; grid-template-columns: minmax(360px, 460px) 1fr; height: calc(100vh - 60px); }
.editor-pane { overflow-y: auto; border-right: 1px solid var(--line); background: #fff; }
.editor-inner { padding: 22px 22px 120px; }
.preview-pane { overflow-y: auto; background: #EDE7F4; padding: 30px; }
.preview-frame { max-width: 820px; margin: 0 auto; }

.editor-toolbar { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }

.acc { border: 1px solid var(--line); border-radius: var(--r-md); margin-bottom: 12px; overflow: hidden; background: #fff; }
.ed-cat-group { margin-top: 26px; padding-top: 4px; }
.ed-cat-head { display: flex; align-items: center; gap: 9px; font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--accent-deep); padding: 11px 14px; margin-bottom: 12px; background: var(--cream-deep); border: 1px solid var(--line); border-radius: var(--r-sm); }
.ed-cat-dot { width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0; }
.ed-cat-dot.re { background: var(--accent); }
.ed-cat-dot.com { background: var(--gold); }
.ed-cat-dot.common { background: var(--ink-mute); }
.acc-head-wrap { display: flex; align-items: stretch; }
.acc-mover { display: flex; align-items: center; gap: 4px; padding: 0 10px; background: var(--cream); border-left: 1px solid var(--line); }
.acc-mover-lbl { font-size: 10px; color: var(--ink-mute); font-weight: 600; }
.acc-head {
  display: flex; align-items: center; gap: 10px; flex: 1; min-width: 0;
  padding: 14px 16px; border: 0; background: var(--cream); text-align: left;
}
.acc-head:hover { background: var(--cream-deep); }
.acc-head .chev { transition: transform .2s; color: var(--ink-mute); font-size: 12px; }
.acc-head.open .chev { transform: rotate(90deg); }
.acc-head .ttl { font-weight: 700; font-size: 14px; flex: 1; }
.acc-head .count { font-size: 11px; color: var(--ink-mute); background: #fff; border: 1px solid var(--line); border-radius: 999px; padding: 2px 9px; }
.acc-body { padding: 16px; border-top: 1px solid var(--line); }

.field { margin-bottom: 13px; }
.field > label { display: block; font-size: 11px; font-weight: 700; color: var(--ink-mute); text-transform: uppercase; letter-spacing: .06em; margin-bottom: 5px; }
.field input, .field textarea {
  width: 100%; border: 1px solid var(--line-strong); border-radius: var(--r-sm);
  padding: 9px 11px; font-family: inherit; font-size: 13.5px; color: var(--ink); background: #fff;
  transition: border-color .15s, box-shadow .15s; resize: vertical;
}
.field input:focus, .field textarea:focus { outline: 0; border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.field-row.p1u2 { grid-template-columns: 1fr 1.3fr; }

.card-edit { border: 1px solid var(--line); border-radius: var(--r-md); padding: 14px; margin-bottom: 12px; background: var(--cream); }
.card-edit.featured-edit { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); }
.card-edit-head { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; }
.card-edit-head .idx { width: 24px; height: 24px; border-radius: 7px; background: var(--accent); color: #fff; font-size: 12px; font-weight: 700; display: grid; place-items: center; }
.card-edit-head .nm { font-weight: 700; font-size: 13.5px; flex: 1; }
.row-tools { display: flex; gap: 4px; }
.icon-btn { border: 1px solid var(--line-strong); background: #fff; width: 28px; height: 28px; border-radius: 6px; color: var(--ink-mute); font-size: 13px; display: grid; place-items: center; transition: all .12s; }
.icon-btn:hover { border-color: var(--accent); color: var(--accent); }
.icon-btn.danger:hover { border-color: #C0392B; color: #C0392B; }

.line-edit { display: flex; gap: 6px; align-items: flex-start; margin-bottom: 7px; }
.badge-edit { display: flex; gap: 6px; align-items: center; margin-bottom: 7px; }
.badge-edit input { flex: 1; min-width: 0; }
.badge-edit select { flex: 0 0 96px; padding: 8px 6px; border: 1px solid var(--line-strong); border-radius: var(--r-sm); background: #fff; font: inherit; font-size: 12.5px; color: var(--ink-soft); }
.line-edit textarea { flex: 1; min-height: 38px; }
.add-line { font-size: 12.5px; color: var(--accent); background: var(--accent-soft); border: 0; padding: 7px 12px; border-radius: var(--r-sm); font-weight: 600; transition: background .15s; }
.add-line:hover { background: #DCCDEA; }
.toggle-field { display: flex; align-items: center; gap: 9px; margin-bottom: 12px; }
.toggle-field input { width: 18px; height: 18px; accent-color: var(--accent); }
.toggle-field label { font-size: 13px; font-weight: 600; color: var(--ink-soft); }

/* ===================== RATE CARD (shared doc) ===================== */
.ratecard { background: #fff; border-radius: var(--r-lg); box-shadow: var(--shadow-md); overflow: hidden; }
.ratecard.web { border-radius: 0; box-shadow: none; background: transparent; }
.ratecard.rc-theme-realtor .rc-hero {
  background: linear-gradient(108deg, #9F4D9C 0%, #7158B7 53%, #4C6FB5 100%);
}

/* hero */
.rc-hero {
  position: relative; color: #fff; padding: 42px 52px 34px;
  background: radial-gradient(120% 140% at 80% -10%, #6E3CB0 0%, var(--accent-deep) 45%, #220B3C 100%);
  overflow: hidden;
}
.rc-hero::after { content: ""; position: absolute; inset: 0; background-image: radial-gradient(1.4px 1.4px at 20% 30%, rgba(255,255,255,.7), transparent), radial-gradient(1.4px 1.4px at 65% 18%, rgba(255,255,255,.5), transparent), radial-gradient(1.2px 1.2px at 84% 60%, rgba(255,255,255,.6), transparent), radial-gradient(1.6px 1.6px at 40% 75%, rgba(255,255,255,.45), transparent), radial-gradient(1.1px 1.1px at 12% 80%, rgba(255,255,255,.5), transparent); pointer-events: none; }
.rc-hero > * { position: relative; z-index: 1; }
.rc-hero-top { display: flex; align-items: center; gap: 10px; margin-bottom: 28px; }
.ratecard.web .rc-hero-top { display: none; }
.rc-hero-top img { width: 30px; height: 30px; border-radius: 50%; box-shadow: 0 0 0 1px rgba(255,255,255,.18), 0 6px 18px rgba(0,0,0,.3); }
.rc-hero-top .lock { line-height: 1.2; }
.rc-hero-top .lock b { font-family: 'Bricolage Grotesque', system-ui, sans-serif; font-size: 16px; font-weight: 700; letter-spacing: -.01em; line-height: 1; text-transform: uppercase; }
.rc-hero-mark { font-size: 11px; font-weight: 600; letter-spacing: .28em; text-transform: uppercase; color: #D9C4F2; }
.rc-hero-title { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; }
.rc-hero h1 { margin: 0; max-width: none; font-size: 38px; font-weight: 700; letter-spacing: 0; line-height: 1.15; }
.rc-hero-year { flex: 0 0 auto; font-size: 24px; font-weight: 600; line-height: 1; }
.rc-hero-note { margin-top: 9px; color: #D9C4F2; font-size: 13px; line-height: 1.5; }
.rc-prepared { display: inline-flex; align-items: center; gap: 8px; margin-top: 22px; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.2); padding: 7px 15px; border-radius: 999px; font-size: 13px; }
.rc-prepared b { font-weight: 700; }
.rc-prepared .lbl { color: #D9C4F2; font-size: 11px; text-transform: uppercase; letter-spacing: .12em; }

/* body sections */
.rc-body { padding: 44px 52px 50px; }
.rc-section { margin-bottom: 46px; scroll-margin-top: 80px; }
.rc-section:last-child { margin-bottom: 0; }
.rc-sec-head { margin-bottom: 18px; }
.rc-sec-tag { display: inline-block; font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--accent); background: var(--accent-soft); padding: 4px 11px; border-radius: 999px; margin-bottom: 9px; }
.rc-sec-title { margin: 0; font-size: 25px; font-weight: 700; letter-spacing: 0; }
.rc-sec-sub { font-size: 13.5px; color: var(--ink-mute); margin-top: 5px; }

/* rate group */
.rc-group { margin-bottom: 26px; }
.rc-group-head { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; padding-bottom: 9px; border-bottom: 1px solid var(--line); }
.rc-group-head .ltr { width: 30px; height: 30px; border-radius: 9px; background: var(--accent); color: #fff; font-size: 15px; font-weight: 800; display: grid; place-items: center; }
.rc-group-head .gname { margin: 0; font-size: 17px; font-weight: 700; }
.rc-group-head .gname small { font-weight: 500; color: var(--ink-mute); margin-left: 8px; font-size: 13px; }

/* item row = notion toggle */
.rc-item { border: 1px solid var(--line); border-radius: var(--r-md); margin-bottom: 9px; overflow: hidden; background: #fff; transition: box-shadow .18s, border-color .18s; }
.rc-item.open { box-shadow: var(--shadow-sm); border-color: var(--line-strong); }
.rc-item-head { display: flex; align-items: center; gap: 14px; width: 100%; border: 0; background: transparent; padding: 16px 18px; text-align: left; transition: background .15s; }
.rc-item-head:hover { background: var(--cream); }
.rc-item-head .chev { color: var(--accent); font-size: 13px; transition: transform .22s cubic-bezier(.4,0,.2,1); flex-shrink: 0; }
.rc-item.open .chev { transform: rotate(90deg); }
.rc-item-name { flex: 1; font-size: 15.5px; font-weight: 600; }
.rc-item-name small { display: block; font-size: 11.5px; font-weight: 400; color: var(--ink-mute); margin-top: 2px; }
.rc-item-hook { display: block; font-size: 12.5px; font-weight: 600; font-style: normal; color: var(--accent); margin-top: 3px; white-space: pre-line; line-height: 1.4; }
.rc-item-price { text-align: right; font-size: 18px; font-weight: 800; color: var(--accent-deep); white-space: nowrap; flex-shrink: 0; }
.rc-item-price small { display: block; font-size: 10.5px; font-weight: 500; color: var(--ink-mute); }
.rc-item-body { overflow: hidden; max-height: 0; transition: max-height .3s ease; }
.rc-item.open .rc-item-body { max-height: 680px; }
.rc-item-detail { padding: 2px 18px 18px 44px; }
.rc-item-detail li { position: relative; padding-left: 18px; font-size: 13.5px; color: var(--ink-soft); margin-bottom: 6px; }
.rc-item-detail li:last-child { margin-bottom: 0; }
.rc-item-detail li::before { content: ""; position: absolute; left: 2px; top: 9px; width: 5px; height: 5px; border-radius: 50%; background: var(--accent-bright); }
.rc-hint { font-size: 11px; color: var(--ink-mute); margin-left: auto; padding-left: 10px; opacity: .7; flex-shrink: 0; }

/* packages */
.rc-cat-switch { display: flex; gap: 24px; margin-bottom: 36px; border-bottom: 1px solid var(--line); }
.rc-cat-btn {
  position: relative; flex: 0 0 auto; display: block; cursor: pointer;
  border: 0; border-bottom: 3px solid transparent; border-radius: 0; background: transparent;
  padding: 11px 2px 10px; color: var(--ink-mute);
  transition: border-color .16s, color .16s;
}
.rc-cat-btn:hover { color: var(--accent-deep); }
.rc-cat-btn.active { border-bottom-color: var(--accent); color: var(--accent-deep); }
.rc-cat-idx {
  position: absolute; top: 15px; right: 17px; font-family: var(--mono, ui-monospace, "SF Mono", Menlo, monospace);
  font-size: 12px; font-weight: 700; color: var(--line-strong); letter-spacing: .04em; transition: color .2s;
}
.rc-cat-btn.active .rc-cat-idx { color: rgba(255,255,255,.6); }
.rc-cat-name { font-size: 15px; font-weight: 600; letter-spacing: 0; color: inherit; }
.rc-cat-tag { font-size: 11.5px; font-weight: 600; color: var(--ink-mute); letter-spacing: .01em; transition: color .2s; }
.rc-cat-btn.active .rc-cat-tag { color: rgba(255,255,255,.82); }

.rc-listing-packages > .rc-listing-size {
  margin-bottom: 20px;
  border: 1px solid var(--line-strong); border-radius: var(--r-md);
  background: #fff; box-shadow: var(--shadow-sm);
}
.rc-listing-size {
  padding: 17px 20px 14px; border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line); background: var(--cream);
}
.rc-listing-size-head {
  display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 10px;
}
.rc-listing-size-head label { color: var(--ink); font-size: 13px; font-weight: 600; }
.rc-listing-size-value { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.rc-listing-size-value output {
  color: var(--ink); font-size: 18px; font-weight: 700; white-space: nowrap;
}
.rc-listing-size-value span {
  color: var(--ink-mute); font-size: 9.5px; font-weight: 600; white-space: nowrap;
}
.rc-listing-size-track { position: relative; }
.rc-listing-size-markers {
  position: absolute; z-index: 3; inset: 0 11px; pointer-events: none;
}
.rc-listing-size-markers i {
  position: absolute; top: 8px; width: 8px; height: 8px;
  transform: translateX(-50%); background: var(--accent); border-radius: 50%;
  box-shadow: 0 0 0 2px #fff;
}
.rc-listing-size input[type="range"] {
  position: relative; z-index: 2; width: 100%; height: 24px; display: block;
  appearance: none; -webkit-appearance: none;
  border: 0; background: transparent; cursor: grab;
}
.rc-listing-size input[type="range"]:active { cursor: grabbing; }
.rc-listing-size input[type="range"]::-webkit-slider-runnable-track {
  height: 6px; border-radius: 999px;
  background: linear-gradient(to right,
    var(--accent) 0 var(--listing-size-progress),
    var(--line-strong) var(--listing-size-progress) 100%);
}
.rc-listing-size input[type="range"]::-moz-range-track {
  height: 6px; border-radius: 999px; background: var(--line-strong);
}
.rc-listing-size input[type="range"]::-moz-range-progress {
  height: 6px; border-radius: 999px; background: var(--accent);
}
.rc-theme-realtor .rc-listing-size input[type="range"]::-webkit-slider-runnable-track {
  background:
    linear-gradient(to right,
      transparent 0 var(--listing-size-progress),
      var(--line-strong) var(--listing-size-progress) 100%),
    var(--re-gradient);
}
.rc-theme-realtor .rc-listing-size input[type="range"]::-moz-range-progress {
  background: var(--re-gradient);
}
.rc-theme-realtor .rc-listing-size-markers i:nth-child(3n + 1) { background: var(--re-pink); }
.rc-theme-realtor .rc-listing-size-markers i:nth-child(3n + 2) { background: var(--re-purple); }
.rc-theme-realtor .rc-listing-size-markers i:nth-child(3n) { background: var(--re-blue); }
.rc-listing-size input[type="range"]::-webkit-slider-thumb {
  width: 22px; height: 22px; margin-top: -8px; appearance: none; -webkit-appearance: none;
  border: 6px solid var(--accent); border-radius: 50%; background: #fff;
  box-shadow: 0 2px 7px rgba(33,28,69,.18);
}
.rc-listing-size input[type="range"]::-moz-range-thumb {
  width: 12px; height: 12px; border: 5px solid var(--accent);
  border-radius: 50%; background: #fff; box-shadow: 0 2px 7px rgba(33,28,69,.18);
}
.rc-listing-size input[type="range"]:focus-visible { outline: 0; }
.rc-listing-size input[type="range"]:focus-visible::-webkit-slider-thumb {
  box-shadow: 0 0 0 4px var(--accent-soft), 0 2px 7px rgba(33,28,69,.18);
}
.rc-listing-size-scale {
  position: relative; height: 17px; margin: 1px 11px 0;
  color: var(--ink-mute); font-size: 9.5px; font-weight: 500;
}
.rc-listing-size-scale span {
  position: absolute; top: 0; transform: translateX(-50%); white-space: nowrap;
}
.rc-listing-size-scale span.start { transform: none; }
.rc-listing-size-scale span.end { transform: translateX(-100%); }
.rc-listing-size-scale span.breakpoint {
  color: var(--accent); font-weight: 700;
}
.rc-theme-realtor .rc-listing-size-scale span.breakpoint:nth-of-type(3n + 2) { color: var(--re-pink); }
.rc-theme-realtor .rc-listing-size-scale span.breakpoint:nth-of-type(3n) { color: var(--re-purple); }
.rc-theme-realtor .rc-listing-size-scale span.breakpoint:nth-of-type(3n + 1) { color: var(--re-blue); }
.rc-listing-size.in-modal {
  margin: 0; padding: 17px 28px 14px; border-top: 0; border-bottom: 1px solid var(--line);
}
.rc-listing-size.in-quote {
  margin-top: 14px; padding: 14px 0 0; border-top: 1px solid var(--line);
  border-bottom: 0; background: transparent;
}

/* detail-table heading: label + chips on one line, consistent typography.
   space-between = 칩이 토글 행의 '상세 작업 내용' 칩과 같은 오른쪽 라인에 정렬 */
.rc-detail-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; width: 100%; }
.rc-detail-heading .rc-detail-name { display: inline; padding: 0; }
.rc-detail-sample {
  display: inline-flex; align-items: center; justify-content: center; gap: 4px; flex: 0 0 auto;
  padding: 1px 8px; border: 1px solid transparent; border-radius: 4px;
  background: var(--accent); color: #fff;
  /* 12px matches the effective '상세 작업 내용' chip text size (typography meta) */
  font-size: 12px; font-weight: 700; text-decoration: none; line-height: 1.3;
  white-space: nowrap; transition: background .16s;
  width: 96px; box-sizing: border-box; /* 상세 작업 내용 칩과 동일 폭 */
}
.rc-detail-sample:hover { background: var(--accent-deep); }
.rc-detail-sample span[aria-hidden] { font-size: 9px; line-height: 1; }

/* 패키지 상세: 기준 패키지 하위 구성 행 — 들여쓰기 + └ 마커로 위계 표시 */
.rc-detail-subrow .rc-detail-heading { position: relative; padding-left: 20px; }
.rc-detail-subrow .rc-detail-heading::before {
  content: "└"; position: absolute; left: 2px; top: 50%; transform: translateY(-50%);
  color: var(--ink-mute); font-size: 12px; line-height: 1; pointer-events: none;
}
.rc-detail-subrow th { font-weight: 500; }
.rc-detail-subrow.has-details .rc-detail-heading { padding-left: 0; }
.rc-detail-subrow.has-details .rc-detail-toggle { padding-left: 34px; }
.rc-detail-subrow.has-details .rc-detail-heading::before { left: 16px; }

/* reference-total footer row */
.rc-detail-table tfoot th, .rc-detail-table tfoot td {
  border-top: 2px solid var(--line-strong); border-bottom: 0; background: var(--cream);
}
.rc-detail-total-row th { color: var(--ink); font-weight: 700; }
.rc-compare-tone-upgrade { color: var(--price-saving) !important; }
.rc-detail-total-row .rc-detail-reference strong { color: #7B5105; }
.rc-detail-total-row .included strong { color: var(--price-package); font-size: 15px; }
/* Keep the two-column spacer at every viewport. The footer then retains the
   table's five-column geometry, so both totals stay under their price columns. */

/* Prices always share the package-name typeface (EG Signature 등과 동일 서체) */
.rc-pkg-tier b, .rc-pkg-final, .rc-pkg-list, .rc-pkg-size-price b,
.rc-listing-size-value output, .rc-item-price, .rc-ztable-fee {
  font-family: var(--eg-ui, var(--font));
}

.rc-pkg-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items: stretch; }
.rc-pkg { border: 1px solid var(--line-strong); border-radius: var(--r-md); background: #fff; position: relative; overflow: hidden; transition: box-shadow .18s, border-color .18s; display: flex; flex-direction: column; min-height: 0; }
.rc-pkg:hover { box-shadow: var(--shadow-md); }
.rc-pkg.featured { background: linear-gradient(170deg, #FBF8FE, #F3EBFB); border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent), var(--shadow-md); }
.rc-pkg-main { display: flex; flex-direction: column; flex: 1 0 auto; width: 100%; text-align: left; padding: 20px 22px 14px; }
.rc-pkg-topline { display: flex; align-items: flex-start; justify-content: flex-start; margin-bottom: 9px; }
.rc-pkg-badges { display: flex; flex-wrap: wrap; gap: 6px; }
.rc-badge { display: inline-flex; align-items: center; font-size: 10.5px; font-weight: 700; letter-spacing: .015em; padding: 4px 10px; border-radius: 999px; line-height: 1.25; white-space: nowrap; }
.rc-badge-rec { background: linear-gradient(135deg, #E7C871, var(--gold)); color: #463109; box-shadow: 0 1px 5px rgba(201,162,75,.45); }
.rc-badge-save { background: var(--price-saving); color: #fff; }
.rc-badge-fast { background: var(--accent-soft); color: var(--accent-deep); }
.rc-badge-feature { background: var(--cream-deep); color: var(--ink-soft); border: 1px solid var(--line); }
.rc-pkg.featured .rc-badge-feature { background: #fff; }
.rc-pkg-cat { font-size: 11px; font-weight: 700; letter-spacing: .04em; color: var(--accent); text-transform: uppercase; flex: 1; min-width: 0; padding-top: 3px; line-height: 1.4; }
.rc-pkg.featured .rc-pkg-cat { color: var(--accent-deep); }
.rc-pkg-name { font-size: 22px; font-weight: 700; letter-spacing: 0; }
.rc-pkg-sample { position: absolute; top: 20px; right: 22px; z-index: 3; display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; width: 62px; height: 62px; padding: 6px; border-radius: 14px; background: var(--accent); color: #fff; font-size: 9.5px; font-weight: 700; letter-spacing: 0; line-height: 1.18; text-align: center; text-decoration: none; box-shadow: var(--shadow-sm); transition: background .16s, transform .16s, box-shadow .16s; }
.rc-pkg-sample:hover { background: var(--accent-deep); transform: translateY(-1px); box-shadow: var(--shadow-md); }
.rc-pkg-sample-ico { font-size: 16px; line-height: 1; }
.rc-pkg.has-sample .rc-pkg-name, .rc-pkg.has-sample .rc-pkg-vol, .rc-pkg.has-sample .rc-pkg-badges { padding-right: 74px; }
.rc-pkg-vol {
  font-size: 13px; color: var(--ink-mute); margin: 5px 0 18px;
  word-break: keep-all; text-wrap: pretty;
}
.rc-pkg-hook { font-size: 13.5px; font-weight: 600; color: var(--accent-deep); line-height: 1.45; margin-bottom: 14px; padding-left: 12px; border-left: 3px solid var(--gold); white-space: pre-line; }
.rc-pkg-price, .rc-pkg-tiers, .rc-pkg-size-price { margin-top: auto; }
.rc-pkg-price { display: flex; align-items: baseline; gap: 10px; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.rc-pkg-tiers { display: flex; flex-direction: column; gap: 0; padding-bottom: 6px; border-bottom: 1px solid var(--line); margin-bottom: 2px; }
.rc-pkg-tier { display: flex; align-items: baseline; justify-content: space-between; padding: 7px 0; border-bottom: 1px dashed var(--line); }
.rc-pkg-tier:last-child { border-bottom: 0; }
.rc-pkg-tier span { font-size: 13px; color: var(--ink-mute); font-weight: 600; }
.rc-pkg-tier b { font-size: 20px; font-weight: 700; color: var(--price-package); letter-spacing: 0; }
.rc-pkg.featured .rc-pkg-tier b { color: var(--price-package); }
.rc-pkg-size-price {
  min-height: 62px; display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 9px 0 14px; border-bottom: 1px solid var(--line);
}
.rc-pkg-size-price > span {
  color: var(--ink-mute); font-size: 10px; font-weight: 600; line-height: 1.35;
}
.rc-pkg-size-price small {
  display: block; margin-top: 3px; color: var(--ink-soft); font-size: 12px; font-weight: 600;
  word-break: keep-all; text-wrap: pretty;
}
.rc-pkg-size-price b {
  flex: 0 0 auto; color: var(--price-package); font-size: 28px; font-weight: 700;
  line-height: 1.1; white-space: nowrap;
}
.rc-pkg-size-price b.custom { color: var(--ink-soft); font-size: 17px; }
.rc-pkg-list { font-size: 16px; color: var(--ink-mute); text-decoration: line-through; }
.rc-pkg-final { font-size: 30px; font-weight: 700; color: var(--price-package); }
.rc-pkg-final small { font-size: 14px; font-weight: 600; color: var(--ink-mute); }
.rc-pkg-actions { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 8px; padding: 0 22px 20px; }
.rc-pkg-detail-btn {
  min-height: 42px; border: 1px solid var(--accent); border-radius: 6px;
  background: var(--accent); color: #fff; padding: 9px 12px;
  font-size: 13px; font-weight: 700; line-height: 1.35;
  transition: background .16s, border-color .16s;
}
.rc-pkg-detail-btn:hover { background: var(--accent-deep); border-color: var(--accent-deep); }
.rc-pkg-detail-btn:focus-visible, .rc-compare-check:focus-within {
  outline: 3px solid rgba(123,75,196,.25); outline-offset: 2px;
}
.rc-compare-check {
  min-height: 42px; display: flex; align-items: center; justify-content: center; gap: 7px;
  border: 1px solid var(--line-strong); border-radius: 6px; background: #fff;
  color: var(--ink-soft); padding: 8px 10px; cursor: pointer;
  font-size: 12px; font-weight: 600; line-height: 1.35; text-align: center;
  transition: border-color .16s, background .16s, color .16s;
}
.rc-compare-check:hover { border-color: var(--accent); color: var(--accent-deep); }
.rc-compare-check input { position: absolute; opacity: 0; pointer-events: none; }
.rc-compare-box {
  width: 16px; height: 16px; border: 1.5px solid var(--line-strong); border-radius: 4px;
  background: #fff; flex: 0 0 auto; position: relative;
}
.rc-compare-check.selected { border-color: #2D7B56; background: #EFF8F3; color: #17543A; }
.rc-compare-check.selected .rc-compare-box { border-color: #2D7B56; background: #2D7B56; }
.rc-compare-check.selected .rc-compare-box::after {
  content: ""; position: absolute; left: 4px; top: 1px; width: 5px; height: 9px;
  border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg);
}
.rc-compare-check.disabled { opacity: .42; cursor: not-allowed; }
.rc-pkg-print-detail { display: none; }
.rc-pkg-complbl { font-size: 10.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-mute); margin-bottom: 5px; }
.rc-pkg-comp { font-size: 13px; color: var(--ink-soft); margin-bottom: 14px; line-height: 1.5; }
.rc-pkg-benefits li { position: relative; padding-left: 22px; font-size: 13px; color: var(--ink-soft); margin-bottom: 8px; }
.rc-pkg-benefits li::before { content: "✦"; position: absolute; left: 0; top: 0; color: var(--gold); font-size: 12px; }

/* package detail + comparison dialogs */
body.rc-modal-open { overflow: hidden; }
.sr-only {
  position: absolute !important; width: 1px !important; height: 1px !important;
  padding: 0 !important; margin: -1px !important; overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important;
}
.rc-modal-backdrop {
  position: fixed; inset: 0; z-index: 120; display: grid; place-items: center;
  padding: 24px; background: rgba(26,19,48,.58);
}
.rc-modal {
  width: min(860px, 100%); max-height: calc(100dvh - 48px); overflow: auto;
  background: #fff; border: 1px solid rgba(255,255,255,.25); border-radius: 8px;
  box-shadow: 0 22px 70px rgba(20,9,39,.34); color: var(--ink);
  overscroll-behavior: contain;
}
.rc-modal.rc-modal-top-anchored {
  align-self: start;
  margin-top: var(--rc-modal-anchor-top, 24px);
  max-height: calc(100dvh - var(--rc-modal-anchor-top, 24px) - 24px);
}
.rc-modal.rc-modal-wide { width: min(1120px, 100%); }
.rc-modal-head {
  position: sticky; top: 0; z-index: 5; display: flex; align-items: flex-start;
  justify-content: space-between; gap: 24px; padding: 23px 28px 19px;
  background: rgba(255,255,255,.97); border-bottom: 1px solid var(--line);
}
.rc-modal-eyebrow {
  margin-bottom: 4px; color: var(--accent); font-size: 11px; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase;
}
.rc-modal-head h2 { font-size: 25px; line-height: 1.2; font-weight: 700; letter-spacing: 0; text-wrap: balance; }
.rc-modal-head p { margin-top: 5px; color: var(--ink-mute); font-size: 13px; text-wrap: pretty; }
.rc-modal-close {
  width: 40px; height: 40px; flex: 0 0 auto; display: grid; place-items: center;
  border: 1px solid var(--line-strong); border-radius: 6px; background: #fff;
  color: var(--ink-soft); font-size: 25px; font-weight: 400; line-height: 1;
}
.rc-modal-close:hover { border-color: var(--accent); color: var(--accent-deep); background: var(--cream); }
.rc-modal-close:focus-visible { outline: 3px solid rgba(123,75,196,.25); outline-offset: 2px; }

.rc-tier-picker { padding: 20px 28px 4px; }
.rc-tier-label { margin-bottom: 8px; color: var(--ink-mute); font-size: 11px; font-weight: 700; }
.rc-tier-options { display: flex; width: 100%; overflow-x: auto; padding-bottom: 3px; }
.rc-tier-options button {
  flex: 1 0 180px; min-height: 58px; display: flex; flex-direction: column; align-items: flex-start;
  justify-content: center; gap: 2px; border: 1px solid var(--line-strong); border-right: 0;
  border-radius: 0; background: #fff; color: var(--ink-soft); padding: 9px 12px; text-align: left;
}
.rc-tier-options button:first-child { border-radius: 6px 0 0 6px; }
.rc-tier-options button:last-child { border-right: 1px solid var(--line-strong); border-radius: 0 6px 6px 0; }
.rc-tier-options button span { font-size: 11.5px; font-weight: 600; }
.rc-tier-options button b { color: var(--accent-deep); font-size: 18px; font-weight: 700; }
.rc-tier-options button.active { border-color: var(--accent); background: var(--accent); color: #fff; }
.rc-tier-options button.active + button { border-left-color: var(--accent); }

/* variant picker (리스팅 영상 선택): equal-width options, distinct selected states.
   base(AI) = light blue fill · premium(현장 촬영) = EG blue→purple gradient.
   위치: '항목별 기준가와 패키지 적용' 제목 바로 아래, 표에 붙여 배치 */
.rc-modal-section .rc-variant-picker {
  padding: 0; margin: 0 0 10px;
  /* 상세표(.rc-detail-scroll)와 동일한 외곽선 체계 — 1px var(--line-strong) + radius 6 */
  border: 1px solid var(--line-strong); border-radius: 6px; overflow: hidden;
}
/* 표 헤더처럼 보이는 제목 줄 — 2개 열을 하나로 통합, 짙은 배경 + 밝은 글자 (260803) */
.rc-variant-picker .rc-tier-label {
  margin: 0; padding: 8px 12px; text-align: center;
  background: var(--accent-deep); color: #fff;
  border: 0; border-radius: 0;
  font-size: 12px; font-weight: 700; letter-spacing: .01em;
}
.rc-variant-picker .rc-tier-options {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  overflow: visible; padding-bottom: 0;
}

.rc-variant-picker .rc-tier-options button {
  width: 100%; min-height: 62px;
  border: 0; border-radius: 0;
  position: relative; padding-left: 27px;  /* 좌측 ✓ 자리 확보 */
}
.rc-variant-picker .rc-tier-options button + button { border-left: 1px solid var(--line); }
.rc-variant-picker .rc-tier-options button b { font-size: 15px; }
/* 선택 표식 ✓ — 색만으로 구분하던 방식 보강 (260804).
   기존: 선택/미선택 배경 대비 1.02:1 로 기본 선택이 미선택처럼 보임. */
.rc-variant-picker .rc-tier-options button.active::before {
  content: "✓"; position: absolute; left: 9px; top: 50%; transform: translateY(-50%);
  font-size: 13px; font-weight: 800; line-height: 1;
}
.rc-variant-picker button.rc-variant-base.active {
  background: #E3D9F5;                     /* color-mix 미지원 브라우저 폴백 */
  background: linear-gradient(170deg,
              color-mix(in srgb, var(--accent) 9%, #fff),
              color-mix(in srgb, var(--accent) 26%, #fff));
  box-shadow: inset 3px 0 0 var(--accent); /* 좌측 선택 인디케이터 */
  color: var(--ink);
}
.rc-variant-picker button.rc-variant-base.active b { color: var(--accent-deep); }
.rc-variant-picker button.rc-variant-base.active::before { color: var(--accent-deep); }
.rc-variant-picker button.rc-variant-premium.active::before { color: #fff; }
/* premium(현장 촬영) 미선택: 흰 바탕 + EG 그라데이션 텍스트로 시선 유도.
   미선택은 반드시 순백 — 틴트를 주면 선택 상태와 구분되지 않는다. */
.rc-variant-picker button.rc-variant-premium {
  background: #fff;
}
.rc-variant-picker button.rc-variant-premium span {
  background: linear-gradient(108deg, #4C6FB5 0%, #7158B7 53%, #9F4D9C 100%);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent; font-weight: 700;
}
.rc-variant-picker button.rc-variant-premium b { color: #7158B7; }
/* premium 선택: 그라데이션 전체 채움 + 흰 텍스트 */
.rc-variant-picker button.rc-variant-premium.active {
  background: linear-gradient(108deg, #4C6FB5 0%, #7158B7 53%, #9F4D9C 100%);
  color: #fff;
}
.rc-variant-picker button.rc-variant-premium.active span {
  background: none; -webkit-background-clip: initial; background-clip: initial;
  -webkit-text-fill-color: #fff; color: #fff;
}
.rc-variant-picker button.rc-variant-premium.active b { color: #fff; }
.rc-tier-options button.active b { color: #fff; }

.rc-price-summary {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 20px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
  background: var(--cream);
}
.rc-price-summary > div { min-width: 0; padding: 18px 28px; border-right: 1px solid var(--line); }
.rc-price-summary > div:last-child { border-right: 0; }
.rc-price-summary span { display: block; color: var(--ink-mute); font-size: 11px; font-weight: 600; }
.rc-price-summary strong {
  display: block; margin-top: 4px; color: var(--ink); font-size: 23px;
  font-weight: 700; line-height: 1.25; word-break: keep-all; overflow-wrap: normal;
}
.rc-price-summary .primary strong { color: var(--price-package); }
.rc-price-summary .saving strong { color: var(--price-saving); }

.rc-modal-section { padding: 23px 28px 25px; }
.rc-modal-section > h3, .rc-modal-copy h3 {
  margin-bottom: 11px; color: var(--ink); font-size: 15px; font-weight: 700; letter-spacing: 0;
}
.rc-detail-scroll, .rc-compare-scroll {
  width: 100%; overflow: auto; border: 1px solid var(--line-strong); border-radius: 6px;
  overscroll-behavior-inline: contain;
}
.rc-detail-table { width: 100%; min-width: 790px; border-collapse: collapse; }
.rc-detail-table th, .rc-detail-table td {
  padding: 12px 14px; border-bottom: 1px solid var(--line);
  color: var(--ink-soft); font-size: 13px; font-weight: 400; text-align: left; vertical-align: middle;
}
.rc-detail-table thead th {
  background: var(--cream); color: var(--ink-mute); font-size: 11px; font-weight: 700;
  letter-spacing: .04em; text-transform: uppercase;
}
.rc-detail-table tbody th { width: 27%; color: var(--ink); font-weight: 600; }
/* 변형(영상 선택) 탭 전환 시 표 형상 고정 — 라벨 줄수와 무관하게 행 높이 동일.
   변형 테이블은 최악 케이스(2줄 라벨)를 기준으로 모든 행을 78px 로 고정해
   어느 탭에서도 행 높이·총 높이가 완전히 같도록 강제한다. */
.rc-detail-table tbody th, .rc-detail-table tbody td { height: 64px; }
.rc-detail-table tfoot th, .rc-detail-table tfoot td { height: 56px; }
.rc-detail-variant tbody th, .rc-detail-variant tbody td { height: 78px; }
/* 컬럼 폭까지 고정(table-layout: fixed) — 탭 전환 시 내용 길이와 무관하게
   두 탭의 컬럼 경계가 픽셀 단위로 동일해진다. */
.rc-detail-variant { table-layout: fixed; }
.rc-detail-variant thead th:nth-child(1) { width: 30%; }
.rc-detail-variant thead th:nth-child(2) { width: 17%; }
.rc-detail-variant thead th:nth-child(3) { width: 14%; }
.rc-detail-variant thead th:nth-child(4) { width: 19%; }
.rc-detail-variant thead th:nth-child(5) { width: 20%; }
.rc-detail-table tbody tr:last-child th, .rc-detail-table tbody tr:last-child td { border-bottom: 0; }
.rc-detail-name { display: block; padding: 12px 14px; }
.rc-detail-main-row.has-details > th { padding: 0; }
.rc-detail-toggle {
  width: 100%; min-height: 40px; display: grid; grid-template-columns: minmax(0, 1fr) auto;
  align-items: center; gap: 10px; border: 0; background: transparent; color: var(--ink);
  padding: 10px 14px; text-align: left;
  font-size: inherit; font-weight: 600;
}
.rc-detail-main-row.has-details .rc-detail-heading { display: block; }
.rc-detail-toggle:hover { background: var(--cream); }
.rc-detail-toggle:focus-visible { outline: 3px solid rgba(123,75,196,.25); outline-offset: -3px; }
.rc-detail-action {
  display: inline-flex; align-items: center; justify-content: center; gap: 3px;
  border: 1px solid var(--accent); border-radius: 4px; background: #fff;
  color: var(--accent); padding: 2px 5px; white-space: nowrap;
  width: 96px; box-sizing: border-box; /* 샘플영상 칩과 동일 폭 — 칩 컬럼 정렬 */
}
.rc-detail-chevron {
  display: inline-block; color: currentColor; font-size: 6px; font-weight: 700; line-height: 1;
}
.rc-detail-toggle small {
  color: currentColor; font-size: 8.5px; font-weight: 700; line-height: 1.3;
}
.rc-detail-reference strong, .rc-detail-table .included strong {
  display: block; font-size: 14px; font-weight: 700; line-height: 1.35;
}
.rc-detail-reference strong { color: #7B5105; }
.rc-detail-reference small, .rc-detail-table .included small {
  display: block; margin-top: 3px; color: var(--ink-mute); font-size: 10.5px; line-height: 1.35;
}
.rc-detail-table .included {
  border-left: 3px solid var(--price-applied); background: var(--price-applied-soft); color: var(--price-applied);
}
.rc-detail-table .included strong, .rc-detail-table .included small { color: var(--price-applied); }
.rc-detail-expand td { padding: 0; background: #FBF9FD; }
.rc-detail-expand ul { margin: 0; padding: 13px 18px 15px 46px; }
.rc-detail-expand li {
  position: relative; margin-bottom: 5px; color: var(--ink-soft); font-size: 12.5px;
  line-height: 1.55; text-wrap: pretty;
}
.rc-detail-expand li:last-child { margin-bottom: 0; }
.rc-detail-expand li::before {
  content: ""; position: absolute; left: -16px; top: .68em; width: 5px; height: 5px;
  border-radius: 50%; background: var(--accent);
}
.rc-reference-help { margin-top: 9px; color: var(--ink-mute); font-size: 10.5px; line-height: 1.55; text-wrap: pretty; }

.rc-modal-copy {
  display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: 34px; border-top: 1px solid var(--line);
}
.rc-modal-copy p, .rc-modal-copy li { color: var(--ink-soft); font-size: 13.5px; line-height: 1.65; text-wrap: pretty; }
.rc-modal-copy li { position: relative; padding-left: 18px; margin-bottom: 6px; }
.rc-modal-copy li::before {
  content: ""; position: absolute; left: 2px; top: .72em; width: 5px; height: 5px;
  border-radius: 50%; background: var(--gold);
}
.rc-modal-notes { border-top: 1px solid var(--line); }
.rc-modal-notes ul { display: grid; gap: 6px; }
.rc-modal-notes li {
  position: relative; padding-left: 16px; color: var(--ink-soft); font-size: 13px; line-height: 1.55;
}
.rc-modal-notes li::before {
  content: ""; position: absolute; left: 1px; top: .68em;
  width: 5px; height: 5px; border-radius: 50%; background: var(--accent);
}
.rc-modal-note {
  padding: 15px 28px 17px; border-top: 1px solid var(--line); background: var(--cream);
}
.rc-modal-note p { color: var(--ink-mute); font-size: 11.5px; line-height: 1.6; text-wrap: pretty; }

.rc-compare-table { width: 100%; min-width: 760px; border-collapse: separate; border-spacing: 0; }
.rc-compare-table th, .rc-compare-table td {
  min-width: 180px; padding: 13px 15px; border-bottom: 1px solid var(--line);
  color: var(--ink-soft); font-size: 13px;
  font-weight: 400; line-height: 1.5; text-align: center; vertical-align: middle; text-wrap: pretty;
}
.rc-compare-table th:first-child {
  position: sticky; left: 0; z-index: 3; min-width: 190px; max-width: 190px;
  background: #fff; color: var(--ink); font-weight: 600; text-align: left;
}
.rc-compare-table thead th { position: sticky; top: 0; z-index: 2; background: #fff; }
.rc-compare-table thead th:first-child { z-index: 4; }
.rc-compare-table thead th:not(:first-child) { padding-top: 18px; padding-bottom: 18px; }
.rc-compare-tone-neutral { --compare-accent: #D8D3DC; --compare-index: #6F6876; --compare-ink: #2E2835; --compare-soft: #FFFFFF; --compare-line: #D8D3DC; }
.rc-compare-tone-blue { --compare-accent: #35779E; --compare-ink: #245B78; --compare-soft: #ECF5FA; --compare-line: #BCD6E5; }
.rc-compare-tone-purple { --compare-accent: #6B3FA0; --compare-ink: #55317F; --compare-soft: #F3EDF9; --compare-line: #D6C5E7; }
.rc-compare-table thead th.rc-compare-column {
  background: var(--compare-soft); box-shadow: inset 0 4px 0 var(--compare-accent);
}
.rc-compare-table .rc-compare-column.is-selected {
  background: var(--compare-soft);
}
.rc-compare-table thead th.rc-compare-column.is-selected {
  box-shadow: inset 0 4px 0 var(--compare-accent);
}
.rc-compare-index {
  display: inline-grid; place-items: center; width: 21px; height: 21px; margin-bottom: 7px;
  border-radius: 50%; background: var(--compare-index, var(--compare-accent)); color: #fff; font-size: 10px; font-weight: 700;
}
.rc-compare-cat {
  display: block; margin-bottom: 4px; color: var(--compare-ink, var(--accent)); font-size: 10.5px;
  font-weight: 700; letter-spacing: .03em; text-transform: uppercase;
}
.rc-compare-selected {
  display: inline-flex; align-items: center; gap: 4px; margin: 0 0 7px 6px;
  color: var(--price-package); font-size: 9.5px; font-weight: 700; vertical-align: top;
}
.rc-compare-table thead strong { display: block; color: var(--ink); font-size: 16px; font-weight: 700; }
.rc-compare-table tr:last-child th, .rc-compare-table tr:last-child td { border-bottom: 0; }
.rc-compare-table td.price { color: var(--price-package); font-size: 18px; font-weight: 700; }
.rc-compare-table td.saving { color: var(--price-saving); font-weight: 700; }
.rc-compare-row-title {
  display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 7px;
}
.rc-compare-detail-toggle {
  display: inline-flex; align-items: center; gap: 4px;
  border: 1px solid var(--accent); border-radius: 6px; background: #fff;
  color: var(--accent); padding: 4px 7px; font-size: 9.5px; font-weight: 700; line-height: 1.3;
}
.rc-compare-detail-toggle:hover { background: var(--accent-soft); color: var(--accent-deep); }
.rc-compare-detail-toggle:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.rc-compare-detail-chevron {
  display: inline-block; font-size: 7px; line-height: 1;
}
.rc-compare-table tr.details-open > th,
.rc-compare-table tr.details-open > td { border-bottom: 0; }
.rc-compare-feature { padding: 9px 10px !important; }
.rc-compare-cell {
  min-height: 54px; display: flex; flex-direction: column; align-items: flex-start;
  justify-content: center; gap: 5px; border: 1px solid var(--compare-line); border-left: 4px solid var(--compare-accent);
  border-radius: 6px; background: var(--compare-soft); padding: 9px 10px; text-align: left;
}
.rc-compare-cell-head {
  width: 100%; display: flex; align-items: flex-start; justify-content: space-between; gap: 8px;
}
.rc-compare-cell strong { color: var(--compare-ink); font-size: 13px; font-weight: 700; line-height: 1.4; }
.rc-compare-cell small {
  color: var(--compare-ink); font-size: 9.5px; font-weight: 700; line-height: 1.35;
}
.rc-compare-only {
  flex: 0 0 auto; display: inline-flex; align-items: center; gap: 4px;
  color: var(--price-applied); font-size: 9px; font-weight: 700; line-height: 1.25; text-align: right;
}
.rc-compare-only > span:first-child { font-size: 11px; }
.rc-compare-most { color: #76510A !important; }
.rc-compare-missing {
  display: inline-flex; align-items: center; gap: 6px; border-radius: 999px;
  background: #F1EFF3; color: #756E7D; padding: 6px 10px; font-size: 11.5px; font-weight: 600;
}
.rc-compare-missing span { font-size: 15px; line-height: 1; }
.rc-compare-detail-row th {
  color: var(--ink-mute) !important; font-size: 10px !important; font-weight: 700 !important;
}
.rc-compare-detail-row td { padding: 11px 13px; text-align: left; vertical-align: top; }
.rc-compare-detail-row ul { margin: 0; padding-left: 14px; }
.rc-compare-detail-row li {
  position: relative; margin-bottom: 5px; color: var(--ink-soft); font-size: 10.5px;
  line-height: 1.45; text-wrap: pretty;
}
.rc-compare-detail-row li:last-child { margin-bottom: 0; }
.rc-compare-detail-row li::marker { color: var(--compare-accent); }
.rc-compare-detail-row p, .rc-compare-detail-missing {
  color: var(--ink-mute); font-size: 10.5px; line-height: 1.45;
}
.rc-compare-table.is-compact th, .rc-compare-table.is-compact td { min-width: 160px; }
.rc-compare-table.is-compact th:first-child { min-width: 170px; max-width: 170px; }
.rc-compare-table .rc-compare-group th {
  position: static; max-width: none; padding: 9px 15px; background: var(--accent-soft);
  color: var(--accent-deep); font-size: 11px; font-weight: 700; letter-spacing: .05em;
  text-transform: uppercase; text-align: left;
}
.rc-modal-wide .rc-compare-scroll { margin: 24px 28px; width: calc(100% - 56px); }
.rc-compare-footer {
  display: flex; justify-content: flex-end; padding: 0 28px 24px;
}
.rc-quote-open, .rc-quote-submit, .rc-quote-close {
  min-height: 44px; border: 1px solid var(--accent); border-radius: 6px;
  background: var(--accent); color: #fff; padding: 10px 18px;
  font-size: 13px; font-weight: 700;
}
.rc-quote-open:hover, .rc-quote-submit:hover, .rc-quote-close:hover {
  border-color: var(--accent-deep); background: var(--accent-deep);
}
.rc-quote-open:focus-visible, .rc-quote-submit:focus-visible, .rc-quote-close:focus-visible,
.rc-quote-form input:focus-visible, .rc-quote-form textarea:focus-visible,
.rc-quote-form select:focus-visible {
  outline: 3px solid rgba(123,75,196,.25); outline-offset: 2px;
}

/* quote inquiry */
.rc-quote-form { padding-bottom: 26px; }
.rc-quote-section {
  min-width: 0; margin: 0; padding: 22px 28px; border: 0; border-bottom: 1px solid var(--line);
}
.rc-quote-section legend {
  width: 100%; margin: 0 0 12px; padding: 0; color: var(--ink);
  font-size: 15px; font-weight: 700;
}
.rc-quote-package-list {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--line-strong);
  border-radius: 6px; overflow: hidden;
}
.rc-quote-package-option {
  min-width: 0; display: grid; grid-template-columns: 18px minmax(0, 1fr);
  align-items: center; gap: 9px; padding: 13px 14px; border-right: 1px solid var(--line);
  background: var(--compare-soft); color: var(--compare-ink); cursor: pointer;
}
.rc-quote-package-option:last-child { border-right: 0; }
.rc-quote-package-option:has(input:checked) { box-shadow: inset 0 4px 0 var(--compare-accent); }
.rc-quote-package-option input, .rc-quote-social-list input {
  width: 16px; height: 16px; margin: 0; accent-color: var(--accent);
}
.rc-quote-package-option span { min-width: 0; }
.rc-quote-package-option strong, .rc-quote-package-option small { display: block; }
.rc-quote-package-option strong {
  overflow: hidden; color: var(--compare-ink); font-size: 13px; font-weight: 700;
  text-overflow: ellipsis; white-space: nowrap;
}
.rc-quote-package-option small {
  margin-top: 3px; color: var(--price-package); font-size: 10.5px; font-weight: 600;
}
.rc-quote-tier {
  display: grid; grid-template-columns: 110px minmax(0, 1fr); align-items: center; gap: 12px; margin-top: 13px;
}
.rc-quote-tier > span, .rc-quote-fields label > span {
  color: var(--ink-soft); font-size: 11px; font-weight: 600;
}
.rc-quote-tier select, .rc-quote-fields input, .rc-quote-fields textarea {
  width: 100%; border: 1px solid var(--line-strong); border-radius: 6px;
  background: #fff; color: var(--ink); font: inherit; font-size: 13px;
}
.rc-quote-tier select, .rc-quote-fields input { min-height: 42px; padding: 9px 11px; }
.rc-quote-fields textarea { min-height: 84px; padding: 10px 11px; resize: vertical; }
.rc-quote-help { margin: -5px 0 10px; color: var(--ink-mute); font-size: 11.5px; line-height: 1.55; }
.rc-quote-social-list { border-top: 1px solid var(--line); }
.rc-quote-social-list label {
  display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; align-items: center;
  gap: 9px; padding: 11px 2px; border-bottom: 1px solid var(--line); cursor: pointer;
}
.rc-quote-social-list label:has(input:disabled) { cursor: default; }
.rc-quote-social-list strong { color: var(--ink); font-size: 13px; font-weight: 600; }
.rc-quote-social-list small { color: var(--ink-soft); font-size: 11.5px; font-weight: 600; }
.rc-quote-rate-kind { margin-top: 8px; color: var(--accent); font-size: 10.5px; font-weight: 700; }
.rc-quote-summary {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  background: var(--cream); border-bottom: 1px solid var(--line);
}
.rc-quote-summary > div { padding: 16px 20px; border-right: 1px solid var(--line); }
.rc-quote-summary > div:last-of-type { border-right: 0; }
.rc-quote-summary span, .rc-quote-success span {
  display: block; color: var(--ink-mute); font-size: 10.5px; font-weight: 600;
}
.rc-quote-summary strong {
  display: block; margin-top: 4px; color: var(--ink); font-size: 18px; font-weight: 700; line-height: 1.3;
}
.rc-quote-summary .base strong, .rc-quote-summary .total strong { color: var(--price-package); }
.rc-quote-summary > small {
  grid-column: 1 / -1; padding: 9px 20px; border-top: 1px solid var(--line);
  color: var(--ink-mute); font-size: 10.5px;
}
.rc-quote-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }
.rc-quote-fields label { min-width: 0; display: grid; gap: 6px; }
.rc-quote-fields .wide { grid-column: 1 / -1; }
.rc-quote-hp { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.rc-quote-error { margin: 13px 28px 0; color: #A43838; font-size: 12px; font-weight: 600; }
.rc-quote-submit { display: block; width: calc(100% - 56px); margin: 18px 28px 0; }
.rc-quote-submit:disabled { opacity: .58; cursor: wait; }
.rc-quote-success { padding: 52px 28px; text-align: center; }
.rc-quote-success h3 { color: var(--ink); font-size: 20px; font-weight: 700; }
.rc-quote-success p { margin-top: 12px; color: var(--ink-soft); font-size: 13px; line-height: 1.6; }
.rc-quote-success p strong { display: block; margin-top: 4px; color: var(--accent-deep); font-size: 18px; font-weight: 700; }
.rc-quote-close { margin-top: 24px; }

.rc-quote-review { border-bottom: 1px solid var(--line); background: #fff; }
.rc-quote-review-toggle {
  width: 100%; min-height: 50px; display: grid;
  grid-template-columns: 20px minmax(0, 1fr) auto; align-items: center; gap: 9px;
  border: 0; background: var(--cream); color: var(--ink); padding: 13px 28px; text-align: left;
  font-size: 13px; font-weight: 700;
}
.rc-quote-review-toggle:hover { background: var(--cream-deep); }
.rc-quote-review-toggle:focus-visible { outline: 3px solid rgba(123,75,196,.25); outline-offset: -3px; }
.rc-quote-review-icon { color: var(--accent); font-size: 17px; line-height: 1; }
.rc-quote-review-state {
  display: inline-flex; align-items: center; gap: 5px; color: var(--accent);
  font-size: 10px; font-weight: 700; white-space: nowrap;
}
.rc-quote-review-chevron {
  display: inline-block; font-size: 15px; line-height: 1; transition: transform .18s ease;
}
.rc-quote-review-toggle[aria-expanded="true"] .rc-quote-review-chevron { transform: rotate(180deg); }
.rc-quote-review-scroll {
  width: calc(100% - 56px); margin: 18px 28px 22px; overflow: auto;
  border: 1px solid var(--line-strong); border-radius: 6px; overscroll-behavior-inline: contain;
}

.rc-compare-bar {
  position: fixed; left: 50%; bottom: 18px; z-index: 100; transform: translateX(-50%);
  width: min(820px, calc(100% - 32px)); display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: 14px;
  padding: 12px 12px 12px 16px; border: 1px solid rgba(255,255,255,.18); border-radius: 8px;
  background: #1A1330; color: #fff; box-shadow: 0 16px 42px rgba(26,19,48,.28);
}
.rc-compare-bar-copy { display: flex; align-items: baseline; gap: 8px; white-space: nowrap; }
.rc-compare-bar-copy strong { font-size: 14px; font-weight: 700; }
.rc-compare-bar-copy span { color: #CFC3DF; font-size: 11px; font-weight: 600; }
.rc-compare-chips { min-width: 0; overflow: hidden; color: #E9E0F4; font-size: 12px; white-space: nowrap; text-overflow: ellipsis; }
.rc-compare-chips span + span::before { content: " · "; color: #8F82A8; }
.rc-compare-clear, .rc-compare-go {
  min-height: 38px; border-radius: 6px; padding: 8px 12px; font-size: 12px; font-weight: 700; white-space: nowrap;
}
.rc-compare-clear { border: 0; background: transparent; color: #D8CEE6; }
.rc-compare-clear:hover { color: #fff; }
.rc-compare-go { border: 1px solid #fff; background: #fff; color: var(--accent-deep); }
.rc-compare-go:hover { background: var(--accent-soft); border-color: var(--accent-soft); }
.rc-compare-go:disabled { opacity: .48; cursor: not-allowed; }

/* travel zones — compact table */
.rc-ztable { border: 1px solid var(--line-strong); border-radius: var(--r-md); overflow: hidden; margin-bottom: 12px; background: #fff; }
.rc-ztable-row { display: grid; grid-template-columns: minmax(140px, 1fr) 2.3fr auto; gap: 18px; align-items: center; padding: 14px 18px; border-bottom: 1px solid var(--line); }
.rc-ztable-row:last-child { border-bottom: 0; }
.rc-ztable-head { background: var(--cream); padding-top: 11px; padding-bottom: 11px; }
.rc-ztable-head span { font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-mute); }
.rc-ztable-zone { display: inline-flex; align-items: center; gap: 9px; font-size: 13.5px; font-weight: 700; color: var(--accent-deep); }
.rc-ztable-area { font-size: 12.5px; color: var(--ink-soft); line-height: 1.55; }
.rc-ztable-fee { font-size: 20px; font-weight: 800; color: var(--ink); white-space: nowrap; text-align: right; }
.rc-ztable-fee small { font-size: 11.5px; font-weight: 500; color: var(--ink-mute); margin-left: 4px; }
.rc-ztable-head .rc-ztable-zone, .rc-ztable-head .rc-ztable-fee { font-size: 11px; font-weight: 700; color: var(--ink-mute); }
.rc-ztable-head .rc-ztable-fee { text-align: right; }

/* travel details toggle */
.rc-traveldetails .rc-item-name { font-weight: 700; }
.rc-traveldetails.open .rc-item-body { max-height: 460px; }
.rc-traveldetails-inner { padding: 2px 18px 18px 44px; }
.rc-td-policy { font-size: 13px; color: var(--ink-soft); line-height: 1.65; margin: 0 0 11px; }
.rc-td-list { margin: 0; padding-left: 18px; }
.rc-td-list li { font-size: 12.5px; color: var(--ink-soft); line-height: 1.6; margin-bottom: 5px; }
.rc-td-list b { color: var(--accent-deep); font-weight: 700; }
.rc-zone-note { font-size: 11.5px; color: var(--ink-mute); margin-top: 9px; font-style: italic; line-height: 1.55; }

/* terms */
.rc-terms { border-top: 1px solid var(--line); }
.rc-term { display: grid; grid-template-columns: 168px 1fr; gap: 18px; padding: 15px 4px; border-bottom: 1px solid var(--line); }
.rc-term-lbl { font-size: 14px; font-weight: 700; color: var(--accent-deep); }
.rc-term-lbl small { display: block; font-size: 11.5px; font-weight: 500; color: var(--ink-mute); margin-top: 2px; }
.rc-term-content { font-size: 13.5px; color: var(--ink-soft); }
.rc-terms-more-body { overflow: hidden; max-height: 0; transition: max-height .32s ease; }
.rc-terms-more.open .rc-terms-more-body { max-height: 1600px; }
.rc-terms-toggle { display: flex; align-items: center; gap: 8px; width: 100%; justify-content: center; border: 0; background: var(--cream); color: var(--accent); font-size: 13px; font-weight: 700; padding: 13px; border-radius: var(--r-sm); margin-top: 12px; transition: background .15s; }
.rc-terms-toggle:hover { background: var(--cream-deep); }
.rc-terms-toggle .chev { font-size: 11px; transition: transform .22s; }
.rc-terms-more.open .rc-terms-toggle .chev { transform: rotate(90deg); }

/* zone map */
.rc-zonemap .rc-item-name { font-weight: 700; }
.rc-zonemap.open .rc-item-body { max-height: 560px; }
.rc-zonemap-inner { padding: 4px 16px 18px; }
.rc-zonemap-legend { display: flex; flex-wrap: wrap; gap: 16px; margin-bottom: 12px; font-size: 12.5px; color: var(--ink-soft); }
.rc-zonemap-legend span { display: inline-flex; align-items: center; gap: 7px; }
.zdot { width: 13px; height: 13px; border-radius: 50%; flex-shrink: 0; }
.zdot.a { background: rgba(90,46,140,.45); border: 2px solid var(--accent); }
.zdot.b { background: rgba(138,130,160,.30); border: 1.5px solid var(--ink-mute); }
.zdot.c { background: transparent; border: 1.5px dashed var(--ink-mute); }
.zdot.s { background: var(--gold); border: 2px solid #fff; box-shadow: 0 0 0 1px var(--gold); }
.rc-zonemap-canvas { height: 340px; width: 100%; border-radius: var(--r-sm); border: 1px solid var(--line-strong); overflow: hidden; background: #EDE7F4; }
.rc-zonemap-canvas .leaflet-container { font: inherit; }

/* footer */
.rc-footer { background: var(--accent-deep); color: #fff; padding: 32px 52px; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 18px; }
.rc-footer .f-brand { display: flex; align-items: center; gap: 12px; }
.rc-footer .f-brand img { width: 40px; height: 40px; border-radius: 50%; }
.rc-footer .f-brand b { font-size: 17px; font-weight: 800; }
.rc-footer .f-contact { font-size: 13px; color: #E4D6F4; text-align: right; line-height: 1.7; }
.rc-footer .f-contact a { color: #fff; text-decoration: none; }

/* ===================== CLIENT VIEW chrome ===================== */
.cv-wrap { max-width: 920px; margin: 0 auto; padding: 28px 20px 60px; }
.cv-nav { position: sticky; top: 60px; z-index: 30; display: flex; gap: 6px; padding: 10px; margin: 0 auto 18px; max-width: 920px; background: rgba(255,255,255,.9); backdrop-filter: blur(10px); border: 1px solid var(--line); border-radius: 999px; box-shadow: var(--shadow-sm); width: fit-content; }
.cv-nav button { border: 0; background: transparent; padding: 8px 18px; border-radius: 999px; font-size: 13px; font-weight: 600; color: var(--ink-soft); transition: all .15s; }
.cv-nav button:hover { background: var(--cream-deep); }
.cv-nav button.active { background: var(--accent); color: #fff; }

/* expand-all hint bar in view */
.cv-tip { text-align: center; font-size: 12.5px; color: var(--accent-deep); background: var(--accent-soft); border-radius: 999px; padding: 8px 16px; margin: 0 auto 20px; width: fit-content; }

/* ===================== OWNER ANALYTICS ===================== */
.an-dashboard {
  max-width: 1120px; margin: 0 auto; padding: 34px 24px 80px;
  word-break: keep-all; overflow-wrap: normal;
}
.an-header {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: 20px; margin-bottom: 22px;
}
.an-header h1 { font-size: 26px; font-weight: 700; line-height: 1.25; text-wrap: balance; }
.an-header p, .an-section-head p {
  margin-top: 5px; color: var(--ink-mute); font-size: 14px; font-weight: 400; text-wrap: pretty;
}
.an-period {
  display: flex; gap: 3px; padding: 3px; border: 1px solid var(--line);
  border-radius: var(--r-sm); background: #fff; flex-shrink: 0;
}
.an-period button {
  min-width: 54px; padding: 7px 10px; border: 0; border-radius: 5px;
  background: transparent; color: var(--ink-mute); font-size: 12px; font-weight: 600;
}
.an-period button.active { background: var(--accent); color: #fff; }
.an-fetch-error {
  margin: -8px 0 22px; padding: 11px 13px; border: 1px solid #D7A8A8;
  border-radius: var(--r-sm); background: #FFF5F5; color: #7E2626;
  font-size: 12px; font-weight: 600; line-height: 1.5; text-wrap: pretty;
}

.an-metrics {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px;
}
.an-metric {
  min-height: 116px; padding: 18px; border: 1px solid var(--line);
  border-radius: var(--r-sm); background: #fff; box-shadow: var(--shadow-sm);
}
.an-metric strong { display: block; color: var(--ink); font-size: 28px; font-weight: 700; line-height: 1.15; }
.an-metric > span { display: block; margin-top: 9px; color: var(--ink); font-size: 14px; font-weight: 600; }
.an-metric small { display: block; margin-top: 3px; color: var(--ink-mute); font-size: 11px; font-weight: 400; }
.an-metric.accent { border-top: 3px solid var(--accent); }
.an-metric.accent strong { color: var(--accent-deep); }

.an-section {
  margin-top: 34px; padding-top: 24px; border-top: 1px solid var(--line);
}
.an-section-head {
  display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 14px;
}
.an-section-head h2, .an-link-manager h2, .an-recent h2 {
  font-size: 18px; font-weight: 700; line-height: 1.3; text-wrap: balance;
}

.an-funnel {
  padding: 10px 18px; border: 1px solid var(--line); border-radius: var(--r-sm); background: #fff;
}
.an-funnel-row {
  display: grid; grid-template-columns: minmax(180px, .8fr) minmax(220px, 2fr) 42px;
  align-items: center; gap: 16px; min-height: 62px; border-top: 1px solid var(--line);
}
.an-funnel-row:first-child { border-top: 0; }
.an-funnel-label span { display: block; color: var(--ink); font-size: 14px; font-weight: 600; }
.an-funnel-label small { display: block; margin-top: 2px; color: var(--ink-mute); font-size: 11px; font-weight: 400; }
.an-funnel-track { height: 9px; overflow: hidden; border-radius: 5px; background: var(--cream-deep); }
.an-funnel-track span {
  display: block; min-width: 0; height: 100%; border-radius: inherit; background: var(--accent-bright);
}
.an-funnel-row strong { color: var(--accent-deep); font-size: 16px; font-weight: 700; text-align: right; }

.an-insights { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.an-insights.count-1 { grid-template-columns: minmax(0, 620px); }
.an-insights.count-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.an-insight {
  display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 11px;
  min-height: 176px; padding: 17px; border: 1px solid var(--line);
  border-left: 4px solid var(--gold); border-radius: var(--r-sm); background: #fff;
}
.an-insight-index {
  display: grid; place-items: center; width: 24px; height: 24px;
  border-radius: 50%; background: var(--accent-soft); color: var(--accent-deep);
  font-size: 11px; font-weight: 700;
}
.an-insight h3 { color: var(--ink); font-size: 15px; font-weight: 700; line-height: 1.4; text-wrap: pretty; }
.an-insight p { margin-top: 7px; color: var(--ink-soft); font-size: 12px; font-weight: 400; line-height: 1.65; text-wrap: pretty; }
.an-insight strong {
  display: block; margin-top: 10px; color: var(--accent-deep); font-size: 12px; font-weight: 600; line-height: 1.5;
}

.an-two-column { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 28px; }
.an-two-column > .an-section { min-width: 0; }
.an-table-wrap {
  overflow-x: auto; border: 1px solid var(--line); border-radius: var(--r-sm); background: #fff;
}
.an-table { width: 100%; border-collapse: collapse; min-width: 480px; }
.an-table th, .an-table td {
  padding: 11px 13px; border-top: 1px solid var(--line); color: var(--ink-soft);
  font-size: 12px; font-weight: 400; text-align: right; vertical-align: middle;
}
.an-table thead th {
  border-top: 0; background: var(--cream); color: var(--ink-mute); font-size: 11px; font-weight: 600;
}
.an-table th:first-child, .an-table td:first-child { text-align: left; }
.an-table tbody th { color: var(--ink); font-weight: 600; }
.an-customer-table { min-width: 840px; }
.an-customer-table th:nth-child(1) { width: 18%; }
.an-customer-table th:nth-child(2) { width: 14%; text-align: left; }
.an-customer-table th:nth-child(3) { width: 24%; text-align: left; }
.an-customer-table th:nth-child(4) { text-align: left; }
.an-customer-table th:nth-child(5) { width: 9%; }
.an-customer-table td:nth-child(2),
.an-customer-table td:nth-child(3),
.an-customer-table td:nth-child(4) { text-align: left; }
.an-stage {
  display: inline-flex; padding: 3px 7px; border-radius: 5px;
  background: var(--cream-deep); color: var(--ink-soft); font-size: 10.5px; font-weight: 600;
}
.an-stage.stage-5, .an-stage.stage-6 { background: #E5F6EC; color: #166534; }
.an-stage.stage-3, .an-stage.stage-4 { background: var(--accent-soft); color: var(--accent-deep); }

.an-work-list {
  border: 1px solid var(--line); border-radius: var(--r-sm); background: #fff; overflow: hidden;
}
.an-work-list > div {
  display: grid; grid-template-columns: 22px minmax(0, 1fr) 28px;
  align-items: center; gap: 9px; min-height: 54px; padding: 9px 13px; border-top: 1px solid var(--line);
}
.an-work-list > div:first-child { border-top: 0; }
.an-work-list > div > span { color: var(--ink-mute); font-size: 10px; font-weight: 600; }
.an-work-list p { min-width: 0; }
.an-work-list p strong { display: block; color: var(--ink); font-size: 12px; font-weight: 600; }
.an-work-list p small {
  display: block; overflow: hidden; margin-top: 2px; color: var(--ink-mute);
  font-size: 10px; font-weight: 400; text-overflow: ellipsis; white-space: nowrap;
}
.an-work-list > div > b { color: var(--accent-deep); font-size: 13px; font-weight: 700; text-align: right; }
.an-empty-inline { padding: 18px; color: var(--ink-mute); font-size: 12px; font-weight: 400; }

.an-empty {
  margin-top: 28px; padding: 42px 24px; border: 1px dashed var(--line-strong);
  border-radius: var(--r-sm); background: rgba(255,255,255,.5); text-align: center;
}
.an-empty h2 { font-size: 17px; font-weight: 700; }
.an-empty p { margin-top: 7px; color: var(--ink-mute); font-size: 13px; font-weight: 400; }

.an-link-manager { margin-top: 30px; }
.an-recent { margin-top: 28px; }
.an-link-create { display: flex; gap: 8px; margin-top: 12px; }
.an-link-create input {
  flex: 1; min-width: 0; padding: 9px 11px; border: 1px solid var(--line-strong);
  border-radius: var(--r-sm); background: #fff; color: var(--ink); font-family: inherit; font-size: 13px;
}
.an-link-row {
  display: grid; grid-template-columns: minmax(0, 1fr) auto auto 32px;
  align-items: center; gap: 8px; min-height: 52px; border-top: 1px solid var(--line);
}
.an-link-row:first-of-type { margin-top: 12px; }
.an-link-row strong { font-size: 13px; font-weight: 600; }
.an-recent > div { margin-top: 12px; border: 1px solid var(--line); border-radius: var(--r-sm); background: #fff; overflow: hidden; }
.an-recent-row {
  display: grid; grid-template-columns: 8px minmax(120px, .7fr) minmax(0, 1.8fr) auto;
  align-items: center; gap: 10px; min-height: 46px; padding: 8px 12px; border-top: 1px solid var(--line);
}
.an-recent-row:first-child { border-top: 0; }
.an-recent-row > span { width: 7px; height: 7px; border-radius: 50%; background: var(--accent-bright); }
.an-recent-row strong { overflow: hidden; font-size: 11px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.an-recent-row p { color: var(--ink-soft); font-size: 11px; font-weight: 400; }
.an-recent-row small { color: var(--ink-mute); font-size: 10px; font-weight: 400; white-space: nowrap; }
.an-recent-empty { padding: 16px 12px; color: var(--ink-mute); font-size: 12px; }
.an-load-more { display: block; margin: 12px auto 0; }
.an-data-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.an-note { margin-top: 12px; color: var(--ink-mute); font-size: 11px; font-weight: 400; }

/* ===================== EMPTY / MISC ===================== */
.muted { color: var(--ink-mute); }
.center-msg { text-align: center; padding: 60px 20px; color: var(--ink-mute); }

/* ===================== RESPONSIVE ===================== */
@media (max-width: 900px) {
  .editor-split { grid-template-columns: 1fr; height: auto; }
  .editor-pane { border-right: 0; border-bottom: 1px solid var(--line); max-height: 60vh; }
  .preview-pane { padding: 16px; }
  .rc-pkg-grid { grid-template-columns: 1fr; }
  .an-insights { grid-template-columns: 1fr; }
  .an-insight { min-height: 0; }
  .an-two-column { grid-template-columns: 1fr; gap: 0; }
}
@media (max-width: 620px) {
  .topbar {
    height: auto; min-height: 60px; flex-wrap: wrap; gap: 7px;
    padding-top: 8px; padding-bottom: 8px;
  }
  .topbar .brand-lockup { order: 1; }
  .topbar .spacer { order: 2; }
  .topbar .save-state { display: none; }
  .topbar > .btn { order: 3; }
  .topbar > .lang-pill { order: 4; }
  .topbar .mode-switch {
    order: 5; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
    width: 100%; border-radius: var(--r-sm);
  }
  .topbar .mode-switch button { min-width: 0; padding: 8px 5px; border-radius: 5px; white-space: nowrap; }
  body:has(.topbar .mode-switch) .cv-nav { top: 111px; }
  .an-dashboard { padding: 24px 14px 60px; }
  .an-header { align-items: stretch; flex-direction: column; gap: 14px; }
  .an-header h1 { font-size: 22px; }
  .an-period { width: 100%; }
  .an-period button { flex: 1; min-width: 0; }
  .an-metrics { grid-template-columns: 1fr 1fr; }
  .an-metric { min-height: 106px; padding: 15px; }
  .an-metric strong { font-size: 24px; }
  .an-section { margin-top: 28px; padding-top: 20px; }
  .an-funnel { padding: 6px 13px; }
  .an-funnel-row {
    grid-template-columns: minmax(112px, .8fr) minmax(74px, 1fr) 28px;
    gap: 10px; min-height: 64px;
  }
  .an-funnel-label span { font-size: 12px; }
  .an-funnel-label small { font-size: 9px; line-height: 1.35; }
  .an-insights.count-1, .an-insights.count-2 { grid-template-columns: 1fr; }
  .an-insight { grid-template-columns: 24px minmax(0, 1fr); padding: 14px; }
  .an-two-column > .an-section, .an-section { min-width: 0; }
  .an-table-wrap { width: 100%; max-width: 100%; }
  .an-link-row { grid-template-columns: minmax(0, 1fr) auto 32px; padding: 8px 0; }
  .an-link-row a { display: none; }
  .an-recent-row { grid-template-columns: 7px minmax(86px, .8fr) minmax(0, 1.4fr); }
  .an-recent-row small { grid-column: 2 / -1; }
  .rc-ztable-head { display: none; }
  .rc-ztable-row { grid-template-columns: 1fr auto; column-gap: 12px; row-gap: 5px; }
  .rc-ztable-area { grid-column: 1 / -1; order: 3; }
  .rc-traveldetails-inner { padding-left: 18px; }
  .rc-hero { padding: 36px 24px 30px; }
  .rc-hero h1 { font-size: 30px; }
  .rc-body { padding: 30px 22px; }
  .rc-footer { padding: 26px 24px; }
  .rc-term { grid-template-columns: 1fr; gap: 4px; }
  .rc-item-price { font-size: 16px; }
  .topbar { gap: 10px; padding: 0 12px; }
  .topbar .brand-lockup .bname { font-size: 14px; }
  .rc-pkg-topline { flex-direction: column; gap: 7px; min-height: 0; }
  .rc-pkg-cat { width: 100%; }
  .rc-pkg-badges { flex-wrap: wrap; justify-content: flex-start; }
  .rc-pkg-actions { grid-template-columns: 1fr 1fr; }
  .rc-listing-size { padding: 15px 14px 12px; }
  .rc-listing-size.in-modal { padding: 15px 18px 12px; }
  .rc-listing-size.in-quote { padding: 13px 0 0; }
  .rc-listing-size-head { gap: 10px; }
  .rc-listing-size-head label { font-size: 12px; }
  .rc-listing-size-value output { font-size: 16px; }
  .rc-listing-size-value span { font-size: 9px; }
  .rc-listing-size-scale { font-size: 8.5px; }
  .rc-pkg-size-price { align-items: flex-end; }
  .rc-modal-backdrop { place-items: end center; padding: 0; }
  .rc-modal, .rc-modal.rc-modal-wide {
    width: 100%; max-height: 94dvh; border-width: 1px 0 0; border-radius: 8px 8px 0 0;
  }
  .rc-modal-head { padding: 18px 18px 15px; }
  .rc-modal-head h2 { font-size: 22px; }
  .rc-modal-close { width: 38px; height: 38px; }
  .rc-tier-picker { padding: 17px 18px 0; }
  .rc-tier-options button { flex-basis: 168px; }
  .rc-price-summary { margin-top: 17px; }
  .rc-price-summary > div { padding: 14px 10px; }
  .rc-price-summary span { font-size: 10px; }
  .rc-price-summary strong { font-size: 18px; }
  .rc-modal-section { padding: 20px 18px 22px; }
  .rc-detail-scroll { overflow: visible; border: 0; border-radius: 0; }
  .rc-detail-table { display: block; min-width: 0; }
  /* 모바일에서도 데스크톱과 같은 '표' 형태 유지 — 카드 분해 대신 화면 폭에 맞춰 축소 (260803 Shawn).
     가로 스크롤 없이 5개 열이 모두 보이도록 고정 레이아웃 + 축소 타이포. */
  .rc-detail-scroll { overflow-x: hidden; }
  .rc-detail-table, .rc-detail-variant { min-width: 0; width: 100%; table-layout: fixed; }
  .rc-detail-table thead th:nth-child(1), .rc-detail-variant thead th:nth-child(1) { width: 31%; }
  .rc-detail-table thead th:nth-child(2), .rc-detail-variant thead th:nth-child(2) { width: 18%; }
  .rc-detail-table thead th:nth-child(3), .rc-detail-variant thead th:nth-child(3) { width: 13%; }
  .rc-detail-table thead th:nth-child(4), .rc-detail-variant thead th:nth-child(4) { width: 19%; }
  .rc-detail-table thead th:nth-child(5), .rc-detail-variant thead th:nth-child(5) { width: 19%; }
  .rc-detail-table th, .rc-detail-table td {
    padding: 7px 5px; font-size: 10px; word-break: keep-all; overflow-wrap: anywhere;
  }
  .rc-detail-table thead th { padding: 6px 5px; font-size: 8.5px; letter-spacing: 0; }
  .rc-detail-table tbody th { width: auto; font-size: 10px; }
  .rc-detail-table tbody th, .rc-detail-table tbody td { height: 58px; }
  .rc-detail-variant tbody th, .rc-detail-variant tbody td { height: 66px; }
  .rc-detail-table tfoot th, .rc-detail-table tfoot td { height: 46px; }
  .rc-detail-reference strong, .rc-detail-table .included strong { font-size: 11px; line-height: 1.25; }
  .rc-detail-reference small, .rc-detail-table .included small { font-size: 8px; margin-top: 2px; }
  .rc-detail-total-row .included strong { font-size: 11.5px; }
  /* 항목 칩 — 열 폭 안에서 라벨 아래로 자연스럽게 흐르게 */
  .rc-detail-heading { gap: 3px; justify-content: flex-start; }
  .rc-detail-action, .rc-detail-sample {
    width: auto; max-width: 100%; padding: 1px 4px; font-size: 8px; border-radius: 3px;
  }
  .rc-detail-toggle { padding: 6px 5px; min-height: 0; gap: 3px; grid-template-columns: minmax(0, 1fr); }
  .rc-detail-toggle small { font-size: 8px; }
  .rc-detail-action { justify-content: flex-start; }
  .rc-detail-chevron { font-size: 5px; }
  .rc-detail-sample span[aria-hidden] { font-size: 6px; }
  .rc-detail-name { padding: 0; }
  .rc-detail-subrow .rc-detail-heading { padding-left: 11px; }
  .rc-detail-subrow.has-details .rc-detail-toggle { padding-left: 16px; }
  .rc-detail-subrow.has-details .rc-detail-heading::before { left: 6px; }
  .rc-detail-subrow .rc-detail-heading::before { font-size: 9px; }
  /* 상세 펼침 행 */
  .rc-detail-expand ul { padding: 9px 11px 11px 22px; }
  .rc-detail-expand li { font-size: 10px; }
  .rc-modal-copy { grid-template-columns: 1fr; gap: 22px; }
  .rc-modal-note { padding: 14px 18px 16px; }
  .rc-modal-wide .rc-compare-scroll { margin: 18px; width: calc(100% - 36px); }
  .rc-compare-table { min-width: 660px; }
  .rc-compare-table th, .rc-compare-table td { min-width: 142px; padding: 11px 10px; font-size: 12px; }
  .rc-compare-table th:first-child { min-width: 142px; max-width: 142px; }
  .rc-compare-footer { padding: 0 18px 18px; }
  .rc-quote-open { width: 100%; }
  .rc-quote-section { padding: 19px 18px; }
  .rc-quote-package-list { grid-template-columns: 1fr; }
  .rc-quote-package-option { border-right: 0; border-bottom: 1px solid var(--line); }
  .rc-quote-package-option:last-child { border-bottom: 0; }
  .rc-quote-tier { grid-template-columns: 1fr; gap: 6px; }
  .rc-quote-review-toggle { padding: 13px 18px; }
  .rc-quote-review-scroll { margin: 14px 18px 18px; width: calc(100% - 36px); }
  .rc-quote-summary { grid-template-columns: 1fr; }
  .rc-quote-summary > div { padding: 13px 18px; border-right: 0; border-bottom: 1px solid var(--line); }
  .rc-quote-summary > div:last-of-type { border-bottom: 0; }
  .rc-quote-summary > small { padding: 9px 18px; }
  .rc-quote-fields { grid-template-columns: 1fr; }
  .rc-quote-fields .wide { grid-column: auto; }
  .rc-quote-error { margin-right: 18px; margin-left: 18px; }
  .rc-quote-submit { width: calc(100% - 36px); margin-right: 18px; margin-left: 18px; }
  .rc-quote-success { padding: 44px 18px; }
  .rc-compare-bar {
    bottom: 8px; width: calc(100% - 16px); grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px 10px; padding: 11px 11px 10px 13px;
  }
  .rc-compare-bar-copy { grid-column: 1; grid-row: 1; }
  .rc-compare-chips { grid-column: 1 / -1; grid-row: 2; }
  .rc-compare-clear { grid-column: 2; grid-row: 1; padding: 6px 4px; }
  .rc-compare-go { grid-column: 1 / -1; grid-row: 3; width: 100%; }
}

@media print {
  .rc-pkg-actions, .rc-modal-backdrop, .rc-compare-bar { display: none !important; }
  .ratecard.web .rc-hero-top { display: flex; }
  .rc-pkg-print-detail { display: block; padding: 0 22px 20px; }
}

/* 결제 방식 등 강조 안내 — 빨간 표시 */
.rc-modal-notes li.rc-benefit-alert, li.rc-benefit-alert { color: var(--price-saving) !important; font-weight: 700; }

@media (max-width: 640px) {
  .rc-variant-picker .rc-tier-label { padding: 6px 9px; font-size: 10.5px; }
}
