/**
 * Event Detail v3.1 — The Compass
 * Full-page event detail: topnav · 13-tab bar · bento overview · messages drawer · days · sub-day
 *
 * Uses CCP token variables from theme-tokens.css.
 * All classes prefixed .ccp-ed-* (event detail).
 * @version 5.57.0
 */

/* ══════════════════════════════════════════════════════════════════
   ROOT WRAPPER — replaces old .ccp-wp-dashboard when v3 active
══════════════════════════════════════════════════════════════════ */
/* Lock html/body so the wrap fills the viewport without page-level scroll */
html:has(.ccp-ed-wrap),
body:has(.ccp-ed-wrap) {
  overflow: hidden !important;
  height: 100% !important;
}
/* Neutralize Elementor/Hello theme reset.css base button styles within portal.
   reset.css sets: button { color: #cc3366; background: transparent }
   We scoped-override to preserve our design. Specificity: 0,1,1 beats 0,0,1. */
.ccp-ed-wrap button {
  color: inherit;
  background: transparent;
  font-family: inherit;
  border-color: transparent !important;
  outline-color: transparent !important;
}

.ccp-ed-wrap {
  display: flex;
  flex-direction: column;
  height: 100vh;          /* fixed height = viewport — no page scroll */
  overflow: hidden;       /* clip; each view scrolls internally */
  background: var(--ccp-bg);
  color: var(--ccp-text-primary);
  font-family: 'IBM Plex Sans', -apple-system, sans-serif;
  font-size: 13.5px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
.ccp-ed-wrap *, .ccp-ed-wrap *::before, .ccp-ed-wrap *::after {
  box-sizing: border-box;
}
.ccp-ed-wrap a { color: inherit; text-decoration: none; }
.ccp-ed-wrap button { font-family: inherit; cursor: pointer; }

/* ══════════════════════════════════════════════════════════════════
   TOP NAV
══════════════════════════════════════════════════════════════════ */
/* portal.css hides all <header> elements; override specifically for v3.1 topnav */
body.ccp-portal-active .ccp-ed-topnav { display: flex !important; }

.ccp-ed-topnav {
  background: var(--ccp-surface);
  border-bottom: 1px solid var(--ccp-border-subtle);
  padding: 0 28px;
  display: flex;
  align-items: center;
  gap: 18px;
  height: 58px;
  z-index: 100;
  flex-shrink: 0;
}
.ccp-ed-nav-logo {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  text-decoration: none;
  line-height: 0;
}
.ccp-ed-nav-logo-img {
  height: 28px;
  width: auto;
  display: block;
}
.ccp-ed-nav-logo-img--dark  { display: block; }
.ccp-ed-nav-logo-img--light { display: none; }
body.ccp-theme-light .ccp-ed-nav-logo-img--dark  { display: none; }
body.ccp-theme-light .ccp-ed-nav-logo-img--light { display: block; }
.ccp-ed-nav-div {
  width: 1px;
  height: 20px;
  background: var(--ccp-border-medium);
  flex-shrink: 0;
}
.ccp-ed-nav-crumb {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 12px;
  color: var(--ccp-text-muted);
  flex-shrink: 0;
  min-width: 0;
}
.ccp-ed-nav-crumb b { color: var(--ccp-text-primary); font-weight: 600; }
.ccp-ed-nav-crumb a { text-transform: uppercase; font-weight: 700; letter-spacing: .6px; color: var(--ccp-text-primary); }
.ccp-ed-nav-crumb .sep { opacity: .35; }
/* mobile back-arrow (hidden on desktop, shown ≤500px) */
.ccp-ed-breadcrumb-back {
  display: none;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  font-weight: 500;
  color: var(--ccp-text-muted);
  text-decoration: none;
  max-width: 200px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  flex-shrink: 1;
  transition: color .15s;
}
.ccp-ed-breadcrumb-back:hover { color: var(--ccp-text-primary); }

/* ── Right-side controls group ── */
.ccp-ed-nav-right {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}
.ccp-ed-nav-bell-wrap {
  position: relative;
  display: flex;
  align-items: center;
}
.ccp-ed-nav-pill {
  font-size: 9px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ccp-gold);
  padding: 4px 12px;
  background: var(--ccp-gold-soft);
  border-radius: 3px;
  flex-shrink: 0;
}
.ccp-ed-nav-iconbtn {
  width: 34px;
  height: 34px;
  border-radius: 8px;
  background: var(--ccp-surface-raised) !important;
  border: none !important;
  display: grid;
  place-items: center;
  cursor: pointer;
  position: relative;
  transition: background .2s;
  color: var(--ccp-text-muted) !important;
  flex-shrink: 0;
}
.ccp-ed-nav-iconbtn:hover { background: var(--ccp-surface-hover) !important; color: var(--ccp-text-primary) !important; }
/* Bell badge: canonical selector — class was ccp-ed-unread-dot (v≤5.51.8), now ccp-notif-bell-badge */
.ccp-ed-nav-iconbtn .ccp-notif-bell-badge {
  position: absolute;
  top: -1px; right: -4px;
  min-width: 16px;
  height: 16px;
  background: var(--ccp-danger, #c0392b);
  color: #fff;
  border-radius: 9px;
  font-size: 9px;
  font-weight: 700;
  font-family: var(--ccp-font-sans);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 3px;
  line-height: 1;
  border: 2px solid var(--ccp-bg);
  pointer-events: none;
}
/* ── Avatar button — full !important armour against Elementor reset ── */
.ccp-ed-nav-avatar {
  width: 36px !important;
  height: 36px !important;
  border-radius: 50% !important;
  background: var(--ccp-gold-deep) !important;
  color: #fff !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-family: var(--ccp-font-sans) !important;
  font-weight: 700 !important;
  font-size: 11px !important;
  letter-spacing: .06em !important;
  padding: 0 0 0 .06em !important;
  margin: 0 !important;
  cursor: pointer !important;
  flex-shrink: 0 !important;
  border: 2px solid transparent !important;
  outline: none !important;
  box-shadow: none !important;
  transition: border-color .18s, box-shadow .18s !important;
  line-height: 1 !important;
}
.ccp-ed-nav-avatar:hover,
.ccp-ed-nav-avatar:focus,
.ccp-ed-nav-avatar:active,
.ccp-ed-avatar-wrap.open .ccp-ed-nav-avatar {
  background: var(--ccp-gold-deep) !important;
  color: #fff !important;
  border-color: var(--ccp-gold) !important;
  box-shadow: 0 0 0 3px rgba(201,169,110,.22) !important;
  outline: none !important;
}

/* ── Avatar dropdown wrapper ── */
.ccp-ed-avatar-wrap {
  position: relative;
  flex-shrink: 0;
}

/* ── Dropdown panel ── */
.ccp-ed-avatar-menu {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  min-width: 200px;
  background: var(--ccp-surface-raised);
  border: 1px solid var(--ccp-border-medium);
  border-radius: 14px;
  box-shadow: 0 8px 32px rgba(0,0,0,.28), 0 2px 8px rgba(0,0,0,.18);
  padding: 6px;
  z-index: 999;
  /* hidden state */
  opacity: 0;
  transform: translateY(-6px) scale(.97);
  pointer-events: none;
  transition: opacity .18s var(--ccp-easing), transform .18s var(--ccp-easing);
}
.ccp-ed-avatar-wrap.open .ccp-ed-avatar-menu {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}

/* ── Header: name + role ── */
.ccp-ed-avatar-menu-header {
  padding: 10px 14px 8px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.ccp-ed-avatar-menu-name {
  font-family: var(--ccp-font-sans);
  font-size: 12px;
  font-weight: 600;
  color: var(--ccp-text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ccp-ed-avatar-menu-role {
  font-family: var(--ccp-font-sans);
  font-size: 10px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ccp-gold);
}

/* ── Separator ── */
.ccp-ed-avatar-menu-sep {
  height: 1px;
  background: var(--ccp-border-subtle);
  margin: 4px 8px;
}

/* ── Menu items ── */
.ccp-ed-avatar-menu-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 14px;
  border-radius: 9px;
  font-family: var(--ccp-font-sans);
  font-size: 12px;
  font-weight: 500;
  color: var(--ccp-text-secondary);
  text-decoration: none;
  transition: background .14s, color .14s;
  cursor: pointer;
  white-space: nowrap;
}
.ccp-ed-avatar-menu-item svg {
  flex-shrink: 0;
  opacity: .7;
  transition: opacity .14s;
}
.ccp-ed-avatar-menu-item:hover {
  background: var(--ccp-bg-hover);
  color: var(--ccp-text-primary);
}
.ccp-ed-avatar-menu-item:hover svg { opacity: 1; }
.ccp-ed-avatar-menu-item--danger:hover {
  background: rgba(192,57,43,.12);
  color: #e74c3c;
}
.ccp-ed-avatar-menu-item--danger:hover svg { opacity: 1; stroke: #e74c3c; }

/* ── Light theme overrides ── */
body.ccp-theme-light .ccp-ed-avatar-menu {
  background: #ffffff;
  border-color: rgba(0,0,0,.1);
  box-shadow: 0 8px 32px rgba(0,0,0,.12), 0 2px 8px rgba(0,0,0,.07);
}
body.ccp-theme-light .ccp-ed-avatar-menu-sep {
  background: rgba(0,0,0,.08);
}
body.ccp-theme-light .ccp-ed-avatar-menu-item:hover {
  background: rgba(0,0,0,.05);
}
body.ccp-theme-light .ccp-ed-avatar-menu-item--danger:hover {
  background: rgba(192,57,43,.08);
}

/* ══════════════════════════════════════════════════════════════════
   13-TAB BAR
══════════════════════════════════════════════════════════════════ */
.ccp-ed-tabbar {
  background: var(--ccp-bg);
  border-bottom: 1px solid var(--ccp-border-subtle);
  padding: 0 36px;
  display: flex;
  gap: 0;
  overflow-x: auto;
  scrollbar-width: none;
  z-index: 90;
  flex-shrink: 0;
  -webkit-mask-image: linear-gradient(to right, black calc(100% - 32px), transparent 100%);
  mask-image: linear-gradient(to right, black calc(100% - 32px), transparent 100%);
}
.ccp-ed-tabbar::-webkit-scrollbar { display: none; }
.ccp-ed-tab {
  padding: 14px 18px;
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--ccp-text-muted) !important;
  background: transparent !important;
  border-bottom: 2px solid transparent;
  cursor: pointer;
  transition: color .2s var(--ccp-easing), border-color .2s var(--ccp-easing);
  display: flex;
  align-items: center;
  gap: 7px;
  white-space: nowrap;
  font-weight: 700;
  user-select: none;
  flex-shrink: 0;
}
.ccp-ed-tab:hover { color: var(--ccp-text-primary) !important; background: transparent !important; }
.ccp-ed-tab.active {
  color: var(--ccp-text-primary) !important;
  border-bottom-color: var(--ccp-gold);
  font-weight: 700;
}
.ccp-ed-tab-badge {
  background: var(--ccp-copper);
  color: #fff;
  font-size: 8.5px;
  font-weight: 700;
  padding: 1px 5px;
  border-radius: 8px;
  letter-spacing: 0;
  line-height: 1.4;
}

/* ══════════════════════════════════════════════════════════════════
   VIEWS
══════════════════════════════════════════════════════════════════ */
.ccp-ed-view { display: none; }
.ccp-ed-view.active {
  display: block;
  flex: 1;           /* fill all remaining height in the flex column */
  min-height: 0;     /* required for flex children to shrink below content size */
  overflow-y: auto;  /* this view scrolls, not the page */
  overscroll-behavior: contain;
}

/* ══════════════════════════════════════════════════════════════════
   PAGE WRAPPER (used inside each view)
══════════════════════════════════════════════════════════════════ */
.ccp-ed-page {
  padding: 24px 32px 60px;
  max-width: 1340px;
  margin: 0 auto;
  width: 100%;
}

/* ══════════════════════════════════════════════════════════════════
   HERO BAND (overview header)
══════════════════════════════════════════════════════════════════ */
.ccp-ed-hero { margin-bottom: 16px; }
.ccp-ed-hero-tag {
  font-size: 9.5px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--ccp-gold);
  margin-bottom: 3px;
}
/* Use Playfair Display (serif) for the couple/event name — elegant, matches mockup design.
   Important flag beats .elementor-kit-XXXX h1 which otherwise overrides to Bebas Neue.
   margin:0 resets browser/theme h1 default top+bottom margins that inflate hero height. */
.ccp-ed-wrap .ccp-ed-hero-name {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-weight: 700 !important;
  font-size: 36px !important;
  letter-spacing: -.01em;
  line-height: 1.05;
  text-transform: none !important;
  margin: 0 !important;
}
.ccp-ed-hero-name .amp {
  color: var(--ccp-gold);
  font-weight: 400;
  font-style: italic;
  padding: 0 6px;
}
.ccp-ed-hero-meta {
  font-size: 12px;
  color: var(--ccp-text-muted);
  letter-spacing: .03em;
  margin-top: 4px;
}
.ccp-ed-hero-meta b { color: var(--ccp-text-secondary); font-weight: 600; }

/* ══════════════════════════════════════════════════════════════════
   BENTO GRID
══════════════════════════════════════════════════════════════════ */
.ccp-ed-bento {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-auto-rows: 118px;
  gap: 12px;
}
.ccp-ed-cell {
  background: var(--ccp-surface);
  border: 1px solid var(--ccp-border-subtle);
  border-radius: 12px;
  padding: 16px 18px;
  position: relative;
  overflow: hidden;
  transition: border-color .25s var(--ccp-easing), transform .25s var(--ccp-easing);
  cursor: pointer;
}
.ccp-ed-cell:hover {
  border-color: var(--ccp-border-strong);
  transform: translateY(-2px);
}
.ccp-ed-cell-lbl {
  font-size: 9px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--ccp-text-muted);
  margin-bottom: 7px;
  display: flex;
  align-items: center;
  gap: 7px;
}
.ccp-ed-cell-lbl .dot {
  width: 5px; height: 5px;
  border-radius: 50%;
  flex-shrink: 0;
}
.ccp-ed-cell-arrow {
  position: absolute;
  top: 14px; right: 14px;
  color: var(--ccp-text-ghost);
  font-size: 13px;
  transition: color .2s var(--ccp-easing), transform .2s var(--ccp-easing);
}
.ccp-ed-cell:hover .ccp-ed-cell-arrow {
  color: var(--ccp-gold);
  transform: translate(2px, -2px);
}

/* COUNTDOWN (5 cols × 2 rows) */
.ccp-ed-c-countdown {
  grid-column: span 5;
  grid-row: span 2;
  padding: 24px 28px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  background: linear-gradient(135deg, var(--ccp-surface) 0%, var(--ccp-surface-sunken) 100%);
}
.ccp-ed-c-countdown::before {
  content: '';
  position: absolute;
  top: -40%; right: -8%;
  width: 65%; height: 130%;
  background: radial-gradient(circle, var(--ccp-gold-soft), transparent 65%);
  pointer-events: none;
}
.ccp-ed-cd-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  position: relative;
  z-index: 1;
}
.ccp-ed-cd-tag {
  font-size: 9.5px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--ccp-gold);
}
.ccp-ed-cd-status {
  font-size: 9.5px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ccp-green);
  display: flex;
  align-items: center;
  gap: 6px;
}
.ccp-ed-cd-status.urgent { color: var(--ccp-copper); }
.ccp-ed-cd-status.past   { color: var(--ccp-text-muted); }
.ccp-ed-cd-status.today  { color: var(--ccp-green); font-weight: 700; letter-spacing: .02em; }
.ccp-ed-cd-status .dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: currentColor;
  box-shadow: 0 0 0 2px var(--ccp-green-soft);
}
.ccp-ed-cd-status.urgent .dot { box-shadow: 0 0 0 2px var(--ccp-copper-soft); }
.ccp-ed-cd-status.today  .dot { box-shadow: 0 0 0 3px rgba(74,170,122,.2); animation: ccp-dot-pulse 1.6s ease-in-out infinite; }
.ccp-ed-cd-mid {
  display: flex;
  align-items: flex-end;
  gap: 20px;
  position: relative;
  z-index: 1;
}
.ccp-ed-cd-num {
  font-family: 'IBM Plex Sans', sans-serif;
  font-weight: 800;
  font-size: 80px;
  line-height: .88;
  color: var(--ccp-gold);
  letter-spacing: -.02em;
}
.ccp-ed-cd-num.urgent { color: var(--ccp-copper); }
.ccp-ed-cd-num.today  { color: var(--ccp-green); }
.ccp-ed-cd-info {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding-bottom: 5px;
}
.ccp-ed-cd-unit {
  font-size: 11px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--ccp-text-secondary);
}
.ccp-ed-cd-date {
  font-size: 16px;
  font-weight: 600;
  color: var(--ccp-text-primary);
}
.ccp-ed-cd-loc {
  font-size: 11.5px;
  color: var(--ccp-text-muted);
  margin-top: 1px;
}
.ccp-ed-cd-btns {
  display: flex;
  gap: 8px;
  position: relative;
  z-index: 1;
}

/* FACT CELLS (2 cols × 1 row) */
.ccp-ed-c-fact {
  grid-column: span 2;
  grid-row: span 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.ccp-ed-c-fact .val {
  font-family: 'IBM Plex Sans', sans-serif;
  font-weight: 800;
  font-size: 28px;
  line-height: 1;
  letter-spacing: -.01em;
}
.ccp-ed-c-fact .sub { font-size: 10.5px; color: var(--ccp-text-muted); margin-top: 3px; }
.ccp-ed-c-fact .gold { color: var(--ccp-gold); }
.ccp-ed-c-fact .copper { color: var(--ccp-copper); }

/* CONTRACT (7 cols × 1 row) */
.ccp-ed-c-contract { grid-column: span 7; grid-row: span 1; }
.ccp-ed-contract-vals {
  display: flex;
  gap: 12px;
  align-items: baseline;
  margin-top: 4px;
}
.ccp-ed-contract-main {
  font-family: 'IBM Plex Sans', sans-serif;
  font-weight: 800;
  font-size: 20px;
  letter-spacing: -.01em;
}
.ccp-ed-contract-paid {
  font-family: 'IBM Plex Sans', sans-serif;
  font-weight: 600;
  font-size: 13px;
  color: var(--ccp-green);
}
.ccp-ed-contract-bar {
  height: 3px;
  background: var(--ccp-surface-raised);
  border-radius: 2px;
  margin-top: 10px;
  overflow: hidden;
}
.ccp-ed-contract-bar-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--ccp-gold), var(--ccp-gold-deep));
  border-radius: 2px;
  transition: width .4s var(--ccp-easing);
}
.ccp-ed-contract-foot {
  display: flex;
  justify-content: space-between;
  margin-top: 5px;
  font-size: 10px;
  color: var(--ccp-text-muted);
}
.ccp-ed-contract-foot .due { color: var(--ccp-copper); font-weight: 600; }

/* NEXT ACTION — copper (5 cols × 1 row) */
.ccp-ed-c-action {
  grid-column: span 5;
  grid-row: span 1;
  background: linear-gradient(110deg, var(--ccp-copper-soft) 0%, rgba(196,127,106,.04) 60%, transparent 100%);
  border-color: var(--ccp-copper-border, rgba(196,127,106,.25));
}
.ccp-ed-c-action .ccp-ed-cell-lbl { color: var(--ccp-copper); }
.ccp-ed-action-rule {
  font-size: 9px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ccp-copper);
  opacity: .65;
  margin-top: -3px;
  margin-bottom: 6px;
}
.ccp-ed-action-title {
  font-size: 14.5px;
  font-weight: 700;
  line-height: 1.25;
  margin-bottom: 4px;
}
.ccp-ed-action-meta { font-size: 11px; color: var(--ccp-text-muted); }

/* DAYS CELL (4 cols × 2 rows) */
.ccp-ed-c-days {
  grid-column: span 4;
  grid-row: span 2;
  padding: 0;
  display: flex;
  flex-direction: column;
}
.ccp-ed-cell-head {
  padding: 13px 18px 9px;
  border-bottom: 1px solid var(--ccp-border-subtle);
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-shrink: 0;
}
.ccp-ed-cell-link {
  font-size: 9.5px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ccp-gold);
  cursor: pointer;
  transition: opacity .2s;
}
.ccp-ed-cell-link:hover { opacity: .7; }
.ccp-ed-day-row {
  padding: 10px 18px;
  display: grid;
  grid-template-columns: 40px 1fr auto;
  gap: 12px;
  align-items: center;
  border-bottom: 1px dashed var(--ccp-border-subtle);
  transition: background .15s;
  cursor: pointer;
}
.ccp-ed-day-row:last-child { border-bottom: 0; }
.ccp-ed-day-row:hover { background: var(--ccp-surface-raised); }
.ccp-ed-day-row.main-day .ccp-ed-day-num { color: var(--ccp-text-primary); }
.ccp-ed-day-row.main-day .ccp-ed-day-name { color: var(--ccp-gold); }
.ccp-ed-day-row.main-day { background: var(--ccp-gold-soft); }
.ccp-ed-day-num {
  font-family: 'IBM Plex Sans', sans-serif;
  font-weight: 800;
  font-size: 17px;
  color: var(--ccp-gold);
  line-height: 1;
  text-align: center;
}
.ccp-ed-day-month {
  display: block;
  font-family: 'IBM Plex Sans', sans-serif;
  font-size: 8.5px;
  color: var(--ccp-text-muted);
  letter-spacing: .1em;
  text-transform: uppercase;
  margin-top: 2px;
  font-weight: 400;
}
.ccp-ed-day-name { font-size: 12.5px; font-weight: 600; }
.ccp-ed-day-meta { font-size: 10.5px; color: var(--ccp-text-muted); margin-top: 1px; }
.ccp-ed-day-tag {
  font-size: 9.5px;
  letter-spacing: .06em;
  color: var(--ccp-ice);
  padding: 2px 7px;
  background: var(--ccp-ice-soft);
  border-radius: 3px;
  white-space: nowrap;
}

/* MESSAGES CELL (4 cols × 2 rows) */
.ccp-ed-c-msgs {
  grid-column: span 4;
  grid-row: span 2;
  padding: 0;
  display: flex;
  flex-direction: column;
}
.ccp-ed-msg-badge {
  background: var(--ccp-copper);
  color: #fff;
  font-size: 8.5px;
  font-weight: 700;
  padding: 1px 6px;
  border-radius: 8px;
  letter-spacing: 0;
  line-height: 1.4;
}
.ccp-ed-msg-row {
  padding: 9px 18px;
  display: grid;
  grid-template-columns: 26px 1fr auto;
  gap: 10px;
  border-bottom: 1px dashed var(--ccp-border-subtle);
  transition: background .15s;
  cursor: pointer;
  align-items: start;
}
.ccp-ed-msg-row:last-child { border-bottom: 0; }
.ccp-ed-msg-row.unread {
  background: var(--ccp-gold-glow, rgba(201,169,110,.04));
  border-left: 2px solid rgba(201,169,110,.25);
  padding-left: 16px;
}
.ccp-ed-msg-row:hover { background: var(--ccp-surface-raised); }
.ccp-ed-msg-av {
  width: 26px; height: 26px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 9.5px;
  font-weight: 700;
  flex-shrink: 0;
}
.ccp-ed-msg-author { font-size: 12px; font-weight: 600; }
.ccp-ed-msg-text {
  font-size: 11px;
  color: var(--ccp-text-muted);
  margin-top: 1px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 230px;
}
.ccp-ed-msg-time { font-size: 9.5px; color: var(--ccp-text-ghost); white-space: nowrap; padding-top: 2px; }

/* PROGRESS (3 cols) */
.ccp-ed-c-progress { grid-column: span 3; grid-row: span 1; }
.ccp-ed-prog-bar {
  height: 5px;
  background: var(--ccp-surface-raised);
  border-radius: 3px;
  margin-top: 8px;
  overflow: hidden;
}
.ccp-ed-prog-bar-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--ccp-green), #6abf95);
  border-radius: 3px;
}
.ccp-ed-prog-foot {
  display: flex;
  justify-content: space-between;
  margin-top: 6px;
  font-size: 10px;
  color: var(--ccp-text-muted);
}
.ccp-ed-prog-foot b { color: var(--ccp-text-primary); font-weight: 700; font-size: 13px; }

/* MINI CELL (3 cols) */
.ccp-ed-c-mini { grid-column: span 3; grid-row: span 1; }
.ccp-ed-mini-val {
  font-family: 'IBM Plex Sans', sans-serif;
  font-style: italic;
  font-size: 15px;
  color: var(--ccp-text-secondary);
  margin-top: 10px;
}
.ccp-ed-mini-sub { font-size: 10px; color: var(--ccp-text-muted); margin-top: 3px; }

/* USERS CELL (3 cols × 1 row) */
.ccp-ed-c-users { grid-column: span 3; grid-row: span 1; }
.ccp-ed-users-list {
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin-top: 6px;
}
.ccp-ed-users-row {
  display: flex;
  align-items: center;
  gap: 8px;
}
.ccp-ed-users-av {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--ccp-gold);
  color: #000;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .02em;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.ccp-ed-users-av[data-idx="1"] { background: var(--ccp-copper); }
.ccp-ed-users-av[data-idx="2"] { background: rgba(99,179,237,.55); color: #fff; }
.ccp-ed-users-av[data-idx="3"] { background: rgba(72,187,120,.45); color: #fff; }
.ccp-ed-users-meta {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.ccp-ed-users-name {
  font-size: 10.5px;
  font-weight: 600;
  color: var(--ccp-text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ccp-ed-users-role {
  font-size: 9.5px;
  color: var(--ccp-text-muted);
  letter-spacing: .04em;
  text-transform: uppercase;
}
.ccp-ed-users-more {
  font-size: 9.5px;
  color: var(--ccp-text-muted);
  padding-left: 30px;
  margin-top: 1px;
}
.ccp-ed-users-empty {
  font-size: 11px;
  color: var(--ccp-text-muted);
  font-style: italic;
  margin-top: 8px;
}

/* ══════════════════════════════════════════════════════════════════
   BUTTONS — all !important to beat portal.css/theme/Elementor kit
══════════════════════════════════════════════════════════════════ */
.ccp-ed-btn {
  padding: 7px 14px !important;
  border-radius: 6px !important;
  font-size: 10.5px !important;
  font-weight: 600 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  border: 1px solid var(--ccp-border-medium) !important;
  background: transparent !important;
  color: var(--ccp-text-secondary) !important;
  transition: all .22s var(--ccp-easing) !important;
  line-height: 1 !important;
  font-family: inherit !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  text-decoration: none !important;
  outline: none !important;
}
.ccp-ed-btn:hover {
  border-color: var(--ccp-gold) !important;
  color: var(--ccp-gold) !important;
  background: transparent !important;
}
.ccp-ed-btn-gold {
  background: var(--ccp-gold) !important;
  color: #111 !important;
  border-color: var(--ccp-gold) !important;
}
.ccp-ed-btn-gold:hover {
  background: var(--ccp-gold-deep) !important;
  border-color: var(--ccp-gold-deep) !important;
  color: #fff !important;
}
.ccp-ed-btn-copper {
  border-color: rgba(196,127,106,.3) !important;
  color: var(--ccp-copper) !important;
  background: transparent !important;
}
.ccp-ed-btn-copper:hover {
  background: var(--ccp-copper-soft) !important;
  border-color: var(--ccp-copper) !important;
}
.ccp-ed-btn-sm {
  padding: 5px 10px !important;
  font-size: 9.5px !important;
}

/* ══════════════════════════════════════════════════════════════════
   MESSAGES DRAWER
══════════════════════════════════════════════════════════════════ */
.ccp-ed-drawer-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, .55);
  z-index: 255;
  opacity: 0;
  pointer-events: none;
  transition: opacity .3s var(--ccp-easing);
}
.ccp-ed-drawer-overlay.open {
  opacity: 1;
  pointer-events: all;
}
.ccp-ed-drawer {
  position: fixed;
  top: 0; right: 0; bottom: 0;
  width: 540px;
  background: var(--ccp-surface);
  border-left: 1px solid var(--ccp-border-medium);
  z-index: 260;
  transform: translateX(100%);
  transition: transform .35s var(--ccp-easing);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.ccp-ed-drawer.open { transform: translateX(0); }
.ccp-ed-drawer-head {
  padding: 18px 22px 14px;
  border-bottom: 1px solid var(--ccp-border-subtle);
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
}
.ccp-ed-drawer-title {
  font-family: 'Bebas Neue', sans-serif;
  letter-spacing: .12em;
  font-size: 19px;
  flex: 1;
}
.ccp-ed-drawer-sub { font-size: 10.5px; color: var(--ccp-text-muted); margin-top: 1px; }
.ccp-ed-drawer-close {
  width: 30px; height: 30px;
  border-radius: 6px;
  background: var(--ccp-surface-raised) !important;
  border: none !important;
  color: var(--ccp-text-muted) !important;
  display: grid;
  place-items: center;
  cursor: pointer;
  font-size: 16px;
  transition: all .2s;
}
.ccp-ed-drawer-close:hover { background: var(--ccp-surface-hover) !important; color: var(--ccp-text-primary) !important; }
.ccp-ed-drawer-tabs {
  display: flex;
  gap: 0;
  padding: 0 22px;
  border-bottom: 1px solid var(--ccp-border-subtle);
  flex-shrink: 0;
}
.ccp-ed-drawer-tab {
  padding: 9px 13px;
  font-size: 10px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ccp-text-muted);
  border-bottom: 2px solid transparent;
  cursor: pointer;
  transition: all .2s;
  font-weight: 500;
}
.ccp-ed-drawer-tab.active { color: var(--ccp-gold); border-bottom-color: var(--ccp-gold); font-weight: 600; }
.ccp-ed-drawer-body {
  flex: 1;
  overflow-y: auto;
}
.ccp-ed-drawer-body::-webkit-scrollbar { width: 4px; }
.ccp-ed-drawer-body::-webkit-scrollbar-thumb { background: var(--ccp-border-medium); border-radius: 2px; }
/* Conversation */
.ccp-ed-conv { padding: 18px 22px; display: flex; flex-direction: column; gap: 13px; }
.ccp-ed-bubble {
  max-width: 85%;
  padding: 10px 14px;
  border-radius: 10px;
  font-size: 12.5px;
  line-height: 1.5;
}
.ccp-ed-bubble.in {
  background: var(--ccp-surface-raised);
  border-radius: 10px 10px 10px 2px;
  align-self: flex-start;
}
.ccp-ed-bubble.out {
  background: var(--ccp-gold-soft);
  border: 1px solid rgba(201,169,110,.15);
  border-radius: 10px 10px 2px 10px;
  align-self: flex-end;
}
.ccp-ed-bubble-meta { font-size: 10px; color: var(--ccp-text-ghost); margin-top: 4px; }
.ccp-ed-bubble-meta.right { text-align: right; }
.ccp-ed-no-reply-pill {
  display: flex;
  justify-content: center;
  margin: 4px 0;
}
.ccp-ed-no-reply-pill span {
  font-size: 9.5px;
  color: var(--ccp-text-ghost);
  letter-spacing: .1em;
  text-transform: uppercase;
  background: var(--ccp-surface-raised);
  padding: 3px 12px;
  border-radius: 20px;
}
/* Compose */
.ccp-ed-compose {
  padding: 12px 18px;
  border-top: 1px solid var(--ccp-border-subtle);
  flex-shrink: 0;
}
.ccp-ed-compose-box {
  background: var(--ccp-surface-raised);
  border: 1px solid var(--ccp-border-medium);
  border-radius: 10px;
  padding: 10px 14px;
  display: flex;
  gap: 10px;
  align-items: flex-end;
  transition: border-color .2s;
}
.ccp-ed-compose-box:focus-within { border-color: var(--ccp-border-strong); }
.ccp-ed-compose-input {
  flex: 1;
  background: none;
  border: none;
  color: var(--ccp-text-primary);
  font-family: 'IBM Plex Sans', sans-serif;
  font-size: 13px;
  resize: none;
  outline: none;
  min-height: 36px;
  max-height: 100px;
}
.ccp-ed-compose-input::placeholder { color: var(--ccp-text-ghost); }
.ccp-ed-compose-send {
  padding: 8px 16px !important;
  background: var(--ccp-gold) !important;
  color: #111 !important;
  border: none !important;
  border-radius: 6px !important;
  font-family: 'IBM Plex Sans', sans-serif !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  transition: background .2s, color .2s, transform .15s !important;
  flex-shrink: 0;
  align-self: flex-end;
  -webkit-appearance: none !important;
  appearance: none !important;
}
.ccp-ed-compose-send:hover { background: var(--ccp-gold-deep) !important; color: #fff !important; }

/* ══════════════════════════════════════════════════════════════════
   DAYS TAB VIEW
══════════════════════════════════════════════════════════════════ */
.ccp-ed-days-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 20px;
}
.ccp-ed-days-title-group .sh {
  font-size: 9.5px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--ccp-gold);
  margin-bottom: 4px;
}
.ccp-ed-days-title {
  font-family: 'IBM Plex Sans', sans-serif;
  font-weight: 800;
  font-size: 26px;
  text-transform: uppercase;
  letter-spacing: -.01em;
}
.ccp-ed-days-list { display: flex; flex-direction: column; gap: 14px; }
.ccp-ed-day-card {
  background: var(--ccp-surface);
  border: 1px solid var(--ccp-border-subtle);
  border-radius: 12px;
  overflow: hidden;
  transition: border-color .25s var(--ccp-easing);
}
.ccp-ed-day-card:hover { border-color: var(--ccp-border-medium); }
.ccp-ed-day-card.main-event { border-color: rgba(201,169,110,.2); }
.ccp-ed-day-card.is-today   { border-color: rgba(74,170,122,.35); box-shadow: 0 0 0 1px rgba(74,170,122,.15) inset; }
.ccp-ed-day-card.is-today .ccp-ed-day-card-head { background: rgba(74,170,122,.06); }
.ccp-ed-day-card-head {
  padding: 16px 22px;
  display: grid;
  grid-template-columns: 52px 1fr auto;
  gap: 16px;
  align-items: center;
  cursor: pointer;
  transition: background .15s;
}
.ccp-ed-day-card.main-event .ccp-ed-day-card-head { background: var(--ccp-gold-soft); }
.ccp-ed-day-card-head:hover { background: rgba(255,255,255,.02); }
.ccp-ed-day-card.main-event .ccp-ed-day-card-head:hover { background: rgba(201,169,110,.06); }
.ccp-ed-dc-date { text-align: center; }
.ccp-ed-dc-num {
  font-family: 'IBM Plex Sans', sans-serif;
  font-weight: 800;
  font-size: 26px;
  color: var(--ccp-gold);
  line-height: 1;
  letter-spacing: -.01em;
}
.ccp-ed-day-card.main-event .ccp-ed-dc-num { color: var(--ccp-gold); }
.ccp-ed-dc-month {
  font-size: 9px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ccp-text-muted);
  margin-top: 2px;
}
.ccp-ed-dc-title { font-size: 15px; font-weight: 700; letter-spacing: .01em; }
.ccp-ed-day-card.main-event .ccp-ed-dc-title { color: var(--ccp-gold); }
.ccp-ed-dc-sub { font-size: 11.5px; color: var(--ccp-text-muted); margin-top: 3px; }
.ccp-ed-dc-tags { display: flex; gap: 7px; margin-top: 7px; flex-wrap: wrap; }
.ccp-ed-tag {
  font-size: 9.5px;
  letter-spacing: .1em;
  text-transform: uppercase;
  padding: 2px 8px;
  border-radius: 4px;
  font-weight: 600;
}
.ccp-ed-tag-gold { background: var(--ccp-gold-soft); color: var(--ccp-gold); }
.ccp-ed-tag-ice  { background: var(--ccp-ice-soft);  color: var(--ccp-ice);  }
.ccp-ed-tag-green{ background: var(--ccp-green-soft); color: var(--ccp-green); }
.ccp-ed-tag-copper{background: var(--ccp-copper-soft); color: var(--ccp-copper); }
.ccp-ed-tag-today{ background: rgba(74,170,122,.15); color: var(--ccp-green); font-weight: 700; letter-spacing: .06em; }
.ccp-ed-day-card-body {
  border-top: 1px solid var(--ccp-border-subtle);
  padding: 20px 24px;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 18px;
}
.ccp-ed-sec-title {
  font-size: 9.5px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ccp-text-muted);
  margin-bottom: 10px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.ccp-ed-sec-title::after { content: ''; flex: 1; height: 1px; background: var(--ccp-border-subtle); }
/* Timeline mini */
.ccp-ed-tl-item {
  display: flex;
  gap: 10px;
  padding: 7px 0;
  position: relative;
}
.ccp-ed-tl-item + .ccp-ed-tl-item::before {
  content: '';
  position: absolute;
  top: 0; left: 9px;
  width: 1px; height: 7px;
  background: var(--ccp-border-medium);
}
.ccp-ed-tl-dot {
  width: 20px; height: 20px;
  border-radius: 50%;
  border: 1px solid var(--ccp-border-medium);
  display: grid;
  place-items: center;
  flex-shrink: 0;
  margin-top: 1px;
}
.ccp-ed-tl-dot.gold  { border-color: rgba(201,169,110,.5); background: var(--ccp-gold-soft); }
.ccp-ed-tl-dot.green { border-color: rgba(74,170,122,.5); background: var(--ccp-green-soft); }
.ccp-ed-tl-dot.gray  { border-color: var(--ccp-border-strong); background: var(--ccp-surface-raised); }
.ccp-ed-tl-time { font-size: 10.5px; color: var(--ccp-text-muted); white-space: nowrap; min-width: 38px; padding-top: 2px; }
.ccp-ed-tl-name { font-size: 12.5px; font-weight: 600; }
.ccp-ed-tl-sub  { font-size: 11px; color: var(--ccp-text-muted); }
/* Staff row */
.ccp-ed-staff-row {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 6px 0;
  border-bottom: 1px dashed var(--ccp-border-subtle);
}
.ccp-ed-staff-row:last-child { border-bottom: 0; }
.ccp-ed-staff-av {
  width: 26px; height: 26px;
  border-radius: 50%;
  background: var(--ccp-gold-deep);
  color: #fff;
  display: grid;
  place-items: center;
  font-size: 9.5px;
  font-weight: 700;
  flex-shrink: 0;
}
.ccp-ed-staff-name { font-size: 12px; font-weight: 500; flex: 1; }
.ccp-ed-staff-role { font-size: 10px; color: var(--ccp-text-muted); }
/* Notes */
.ccp-ed-day-notes {
  font-size: 12px;
  color: var(--ccp-text-secondary);
  line-height: 1.6;
  border-left: 2px solid var(--ccp-border-medium);
  padding-left: 11px;
}
/* Checklist */
.ccp-ed-check-item {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  padding: 7px 0;
  border-bottom: 1px dashed var(--ccp-border-subtle);
  font-size: 12.5px;
}
.ccp-ed-check-item:last-child { border-bottom: 0; }
.ccp-ed-check-item input[type=checkbox] { width: 14px; height: 14px; accent-color: var(--ccp-green); cursor: pointer; flex-shrink: 0; margin-top: 2px; }
.ccp-ed-check-item.done { color: var(--ccp-text-ghost); text-decoration: line-through; }
/* Day CTA bar */
.ccp-ed-day-cta {
  padding: 11px 22px;
  border-top: 1px solid var(--ccp-border-subtle);
  display: flex;
  gap: 9px;
  align-items: center;
  background: rgba(255,255,255,.01);
}

/* ── WP Day card body: 2-column layout ── */
.ccp-ed-day-card-body--wp {
  grid-template-columns: 1fr 1fr !important;
}
.ccp-ed-day-col {}
.ccp-ed-day-info-row {
  display: flex;
  gap: 10px;
  padding: 5px 0;
  font-size: 12px;
  border-bottom: 1px solid var(--ccp-border-subtle);
  align-items: baseline;
}
.ccp-ed-day-info-row:last-child { border-bottom: 0; }
.ccp-ed-day-info-lbl {
  font-size: 9.5px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ccp-text-ghost);
  min-width: 56px;
  flex-shrink: 0;
}
.ccp-ed-day-info-val {
  font-size: 12px;
  color: var(--ccp-text-secondary);
  font-weight: 500;
}
.ccp-ed-day-notes--wp {
  margin-top: 12px;
  font-size: 11.5px;
  color: var(--ccp-text-muted);
  line-height: 1.65;
  padding: 8px 10px;
  background: rgba(255,255,255,.02);
  border-radius: 5px;
  border-left: 2px solid var(--ccp-border-medium);
}

/* ── Day Edit Modal ── */
.ccp-ed-dedit-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.6);
  backdrop-filter: blur(4px);
  z-index: 9000;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity .22s ease;
}
.ccp-ed-dedit-overlay.open {
  opacity: 1;
  pointer-events: auto;
}
.ccp-ed-dedit-panel {
  background: var(--ccp-bg-surface);
  border-radius: 16px 16px 0 0;
  width: 100%;
  max-width: 560px;
  max-height: 90vh;
  overflow-y: auto;
  transform: translateY(24px);
  transition: transform .28s cubic-bezier(.16,1,.3,1);
  border-top: 1px solid var(--ccp-border-medium);
}
.ccp-ed-dedit-overlay.open .ccp-ed-dedit-panel {
  transform: translateY(0);
}
.ccp-ed-dedit-head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 18px 22px 14px;
  border-bottom: 1px solid var(--ccp-border-subtle);
  position: sticky;
  top: 0;
  background: var(--ccp-bg-surface);
  z-index: 1;
}
.ccp-ed-dedit-eyebrow {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 8.5px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--ccp-gold);
  padding: 3px 7px;
  border: 1px solid rgba(201,169,110,.25);
  border-radius: 3px;
}
.ccp-ed-dedit-title {
  font-family: 'IBM Plex Sans', sans-serif;
  font-weight: 700;
  font-size: 15px;
  flex: 1;
}
.ccp-ed-dedit-close {
  background: none;
  border: none;
  color: var(--ccp-text-muted);
  cursor: pointer;
  padding: 6px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  transition: background .15s, color .15s;
}
.ccp-ed-dedit-close:hover { background: var(--ccp-surface-raised); color: var(--ccp-text-primary); }
.ccp-ed-dedit-body { padding: 20px 22px; }
.ccp-ed-dedit-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.ccp-ed-dedit-field { display: flex; flex-direction: column; gap: 5px; }
.ccp-ed-dedit-field--full { grid-column: 1 / -1; }
.ccp-ed-dedit-lbl {
  font-size: 9.5px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ccp-text-muted);
  font-weight: 600;
}
.ccp-ed-dedit-input {
  background: var(--ccp-surface-raised);
  border: 1px solid var(--ccp-border-medium);
  border-radius: 7px;
  color: var(--ccp-text-primary);
  font-family: 'IBM Plex Sans', sans-serif;
  font-size: 13px;
  padding: 9px 12px;
  outline: none;
  transition: border-color .15s, box-shadow .15s;
  width: 100%;
  box-sizing: border-box;
}
.ccp-ed-dedit-input:focus {
  border-color: rgba(201,169,110,.5);
  box-shadow: 0 0 0 3px rgba(201,169,110,.1);
}
.ccp-ed-dedit-textarea { resize: vertical; min-height: 90px; }
.ccp-ed-dedit-foot {
  padding: 14px 22px 20px;
  border-top: 1px solid var(--ccp-border-subtle);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  position: sticky;
  bottom: 0;
  background: var(--ccp-bg-surface);
}
.ccp-ed-dedit-actions { display: flex; gap: 9px; }
.ccp-ed-dedit-status {
  font-size: 11.5px;
  color: var(--ccp-green);
  min-height: 18px;
  transition: opacity .3s;
}

/* Light theme modal */
body.ccp-theme-light .ccp-ed-dedit-panel {
  background: var(--ccp-surface);
  border-color: var(--ccp-border-subtle);
}
body.ccp-theme-light .ccp-ed-dedit-head,
body.ccp-theme-light .ccp-ed-dedit-foot {
  background: var(--ccp-surface);
}
body.ccp-theme-light .ccp-ed-dedit-input {
  background: #fff;
  border-color: var(--ccp-border-subtle);
  color: var(--ccp-text-primary);
}
body.ccp-theme-light .ccp-ed-day-notes--wp {
  background: rgba(0,0,0,.02);
}
body.ccp-theme-light .ccp-ed-day-info-row {
  border-bottom-color: var(--ccp-border-subtle);
}

/* Reduced motion: modal */
@media (prefers-reduced-motion: reduce) {
  .ccp-ed-dedit-overlay,
  .ccp-ed-dedit-panel { transition: none !important; }
}

/* ══════════════════════════════════════════════════════════════════
   SUB-DAY WORKSPACE
══════════════════════════════════════════════════════════════════ */
.ccp-ed-back {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 11px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ccp-text-muted) !important;
  cursor: pointer;
  margin-bottom: 18px;
  transition: color .2s;
  width: fit-content;
  border: none !important;
  background: none !important;
  padding: 0;
}
.ccp-ed-back:hover { color: var(--ccp-gold) !important; background: none !important; }
.ccp-ed-subday-hero { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 22px; }
.ccp-ed-subday-title {
  font-family: 'IBM Plex Sans', sans-serif;
  font-weight: 800;
  font-size: 30px;
  text-transform: uppercase;
  letter-spacing: -.01em;
  line-height: 1;
}
.ccp-ed-subday-title .italic { font-style: italic; font-weight: 300; text-transform: none; color: var(--ccp-text-secondary); }
.ccp-ed-subday-meta { font-size: 12px; color: var(--ccp-text-muted); margin-top: 5px; }
.ccp-ed-subday-grid {
  display: grid;
  grid-template-columns: 1fr 370px;
  gap: 18px;
}
.ccp-ed-subday-main { display: flex; flex-direction: column; gap: 14px; }
.ccp-ed-subday-side { display: flex; flex-direction: column; gap: 14px; }
.ccp-ed-sd-card {
  background: var(--ccp-surface);
  border: 1px solid var(--ccp-border-subtle);
  border-radius: 12px;
  overflow: hidden;
}
.ccp-ed-sd-head {
  padding: 13px 18px 9px;
  border-bottom: 1px solid var(--ccp-border-subtle);
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.ccp-ed-sd-title {
  font-size: 9.5px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ccp-text-muted);
  display: flex;
  align-items: center;
  gap: 7px;
}
.ccp-ed-sd-action {
  font-size: 9.5px;
  letter-spacing: .09em;
  text-transform: uppercase;
  color: var(--ccp-gold);
  cursor: pointer;
  border: none;
  background: none;
  padding: 0;
  transition: opacity .2s;
}
.ccp-ed-sd-action:hover { opacity: .7; }
.ccp-ed-sd-body { padding: 15px 18px; }
/* Full timeline */
.ccp-ed-ftl-item {
  display: grid;
  grid-template-columns: 50px 20px 1fr;
  gap: 10px;
  padding: 8px 0;
  align-items: start;
  position: relative;
}
.ccp-ed-ftl-line {
  position: absolute;
  left: 59px; top: 27px; bottom: -8px;
  width: 1px;
  background: var(--ccp-border-subtle);
}
.ccp-ed-ftl-item:last-child .ccp-ed-ftl-line { display: none; }
.ccp-ed-ftl-time { font-size: 11px; color: var(--ccp-text-muted); font-weight: 500; text-align: right; padding-top: 1px; letter-spacing: .04em; }
.ccp-ed-ftl-dot {
  width: 20px; height: 20px;
  border-radius: 50%;
  border: 1.5px solid var(--ccp-border-medium);
  display: grid;
  place-items: center;
  flex-shrink: 0;
  position: relative;
  z-index: 1;
  background: var(--ccp-surface);
}
.ccp-ed-ftl-dot.gold   { border-color: var(--ccp-gold);   background: var(--ccp-gold-soft); }
.ccp-ed-ftl-dot.green  { border-color: var(--ccp-green);  background: var(--ccp-green-soft); }
.ccp-ed-ftl-dot.copper { border-color: var(--ccp-copper); background: var(--ccp-copper-soft); }
.ccp-ed-ftl-dot.gray   { border-color: var(--ccp-border-strong); background: var(--ccp-surface-raised); }
.ccp-ed-ftl-name { font-size: 13px; font-weight: 600; padding-top: 1px; }
.ccp-ed-ftl-name.gold-text { color: var(--ccp-gold); font-size: 14px; }
.ccp-ed-ftl-detail { font-size: 11.5px; color: var(--ccp-text-muted); margin-top: 3px; }

/* ── NOW needle — live time indicator on today's timeline ── */
.ccp-ed-ftl-now {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 6px 0;
  pointer-events: none;
}
.ccp-ed-ftl-now::before {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--ccp-green);
  opacity: .6;
}
.ccp-ed-ftl-now span {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 9px;
  letter-spacing: .12em;
  color: var(--ccp-green);
  white-space: nowrap;
  line-height: 1;
  padding: 2px 6px;
  border: 1px solid rgba(74,170,122,.35);
  border-radius: 3px;
  background: rgba(74,170,122,.08);
}
.ccp-ed-ftl-now::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--ccp-green);
  opacity: .6;
}
body.ccp-theme-light .ccp-ed-ftl-now span {
  background: rgba(74,170,122,.06);
}
.ccp-ed-vendor-tag {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 10.5px;
  color: var(--ccp-ice);
  background: var(--ccp-ice-soft);
  padding: 2px 8px;
  border-radius: 4px;
  margin-top: 5px;
}
/* Staff grid */
.ccp-ed-staff-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.ccp-ed-staff-card {
  background: var(--ccp-surface-raised);
  border-radius: 8px;
  padding: 10px 12px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.ccp-ed-staff-card .av {
  width: 30px; height: 30px;
  border-radius: 50%;
  background: var(--ccp-gold-deep);
  color: #fff;
  display: grid;
  place-items: center;
  font-size: 10px;
  font-weight: 700;
  flex-shrink: 0;
}
.ccp-ed-staff-card .name { font-size: 12px; font-weight: 600; }
.ccp-ed-staff-card .role { font-size: 10px; color: var(--ccp-text-muted); }
/* Notes edit */
.ccp-ed-notes-area {
  background: var(--ccp-surface-raised);
  border: 1px solid var(--ccp-border-medium);
  border-radius: 8px;
  padding: 11px 13px;
  font-size: 12.5px;
  color: var(--ccp-text-secondary);
  line-height: 1.65;
  min-height: 90px;
  width: 100%;
  resize: vertical;
  outline: none;
  font-family: 'IBM Plex Sans', sans-serif;
  transition: border-color .2s;
}
.ccp-ed-notes-area:focus { border-color: var(--ccp-border-strong); }
/* Stats grid */
.ccp-ed-stats-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ccp-ed-stat-box {
  background: var(--ccp-surface-raised);
  border-radius: 8px;
  padding: 10px 12px;
  text-align: center;
}
.ccp-ed-stat-num { font-family: 'IBM Plex Sans', sans-serif; font-weight: 800; font-size: 22px; letter-spacing: -.01em; }
.ccp-ed-stat-lbl { font-size: 9.5px; color: var(--ccp-text-muted); letter-spacing: .08em; text-transform: uppercase; margin-top: 2px; }

/* ══════════════════════════════════════════════════════════════════
   LOADING / EMPTY STATES
══════════════════════════════════════════════════════════════════ */
.ccp-ed-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 40px;
  color: var(--ccp-text-muted);
  font-size: 12px;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.ccp-ed-empty {
  padding: 28px 20px;
  text-align: center;
  color: var(--ccp-text-muted);
  font-size: 12px;
}

/* ══════════════════════════════════════════════════════════════════
   NOTICE BANNER (replaces suggestion engine box when disabled)
══════════════════════════════════════════════════════════════════ */
.ccp-ed-c-action.no-suggestion {
  background: transparent;
  border-color: var(--ccp-border-subtle);
}
.ccp-ed-c-action.no-suggestion .ccp-ed-cell-lbl { color: var(--ccp-text-muted); }

/* ══════════════════════════════════════════════════════════════════
   SEND MESSAGE SAVING STATE
══════════════════════════════════════════════════════════════════ */
.ccp-ed-compose-send.saving { opacity: .6; pointer-events: none; }
.ccp-ed-compose-send.saving::after { content: '…'; }

/* ══════════════════════════════════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════════════════════════════════ */
@media (max-width: 1100px) {
  .ccp-ed-bento { grid-template-columns: repeat(6, 1fr); }
  .ccp-ed-c-countdown { grid-column: span 6; }
  .ccp-ed-c-action    { grid-column: span 6; }
  .ccp-ed-c-days      { grid-column: span 6; grid-row: span 2; }
  .ccp-ed-c-msgs      { grid-column: span 6; grid-row: span 2; }
  .ccp-ed-c-contract  { grid-column: span 6; }
  .ccp-ed-c-fact      { grid-column: span 2; }
  .ccp-ed-c-users     { grid-column: span 2; }
  .ccp-ed-c-progress  { grid-column: span 4; }
  .ccp-ed-c-mini      { grid-column: span 2; }
  .ccp-ed-subday-grid { grid-template-columns: 1fr; }
  .ccp-ed-day-card-body { grid-template-columns: 1fr 1fr; }
  .ccp-ed-drawer { width: 100%; }
}
@media (max-width: 768px) {
  .ccp-ed-page { padding: 16px 18px 40px; }
  .ccp-ed-topnav { padding: 0 16px; gap: 10px; }
  /* search bar removed v5.53.0 */
  .ccp-ed-bento { grid-template-columns: 1fr 1fr; grid-auto-rows: auto; }
  .ccp-ed-c-countdown { grid-column: span 2; }
  .ccp-ed-c-action    { grid-column: span 2; }
  .ccp-ed-c-days      { grid-column: span 2; }
  .ccp-ed-c-msgs      { grid-column: span 2; }
  .ccp-ed-c-contract  { grid-column: span 2; }
  .ccp-ed-c-fact      { grid-column: span 1; }
  .ccp-ed-c-users     { grid-column: span 2; }
  .ccp-ed-c-progress  { grid-column: span 2; }
  .ccp-ed-c-mini      { grid-column: span 1; }
  .ccp-ed-day-card-body { grid-template-columns: 1fr; }
  /* Spec 4: tabbar sticky on mobile */
  .ccp-ed-tabbar {
    position: sticky;
    top: 0;
    background: var(--ccp-bg);
    padding: 0 14px;
    -webkit-mask-image: linear-gradient(to right, black calc(100% - 24px), transparent 100%);
    mask-image: linear-gradient(to right, black calc(100% - 24px), transparent 100%);
  }
  .ccp-ed-tab { padding: 14px 13px; min-height: 44px; }
}
/* Specs 1 + 2 + 5: sub-500px mobile */
@media (max-width: 500px) {
  /* Spec 1: bento → single column */
  .ccp-ed-bento { grid-template-columns: 1fr; gap: 12px; }
  .ccp-ed-bento > * { grid-column: span 1 !important; }
  .ccp-ed-c-fact, .ccp-ed-c-mini { grid-column: span 1 !important; }
  .ccp-ed-page { padding: 14px 12px 32px; }
  /* Spec 2: topnav compact */
  .ccp-ed-topnav { padding: 0 12px; gap: 8px; height: 52px; }
  .ccp-ed-nav-crumb { display: none; }
  .ccp-ed-breadcrumb-back { display: inline-flex; }
  .ccp-ed-nav-right .ccp-lang-switch { transform: scale(.92); }
  .ccp-ed-nav-iconbtn { width: 36px; height: 36px; }
  /* Spec 5: drawer header compact */
  .ccp-ed-drawer-head { padding: 14px 16px 12px; }
  .ccp-ed-drawer-title { font-size: 17px; }
  .ccp-ed-drawer-tabs { padding: 0 12px; }
  .ccp-ed-drawer-tab { padding: 10px 12px; font-size: 11px; }
  .ccp-ed-drawer-body { padding: 16px 14px 24px; }
}

/* ══════════════════════════════════════════════════════════════════
   TAB CONTENT SHARED
══════════════════════════════════════════════════════════════════ */
.ccp-ed-tab-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 24px;
  flex-wrap: wrap;
}
.ccp-ed-tab-title {
  font-family: 'Bebas Neue', 'Arial Black', sans-serif;
  font-size: 28px;
  font-weight: 400;
  letter-spacing: 1.5px;
  color: var(--ccp-text-primary);
  margin: 0;
}
/* Spec 3: tab title responsive */
@media (max-width: 640px) { .ccp-ed-tab-title { font-size: 22px; } }
@media (max-width: 400px) { .ccp-ed-tab-title { font-size: 19px; letter-spacing: 1px; } }
.ccp-ed-tag {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .5px;
  text-transform: uppercase;
  font-family: 'IBM Plex Sans', sans-serif;
}
.ccp-ed-tag--green  { background: rgba(45,106,79,.25); color: var(--ccp-green); }
.ccp-ed-tag--copper { background: rgba(180,83,9,.25);  color: var(--ccp-copper); }
.ccp-ed-tag--muted  { background: rgba(255,255,255,.07); color: var(--ccp-text-muted); }

.ccp-ed-empty-tab {
  padding: 48px 24px;
  text-align: center;
  color: var(--ccp-text-muted);
  font-size: 14px;
}

.ccp-ed-link {
  color: var(--ccp-gold);
  font-size: 13px;
  text-decoration: none;
  transition: opacity .15s;
}
.ccp-ed-link:hover { opacity: .75; }

/* ── Info card ── */
.ccp-ed-info-card {
  background: var(--ccp-surface-1);
  border: 1px solid var(--ccp-border);
  border-radius: 10px;
  overflow: hidden;
}
.ccp-ed-info-card-title {
  padding: 12px 18px 10px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--ccp-text-muted);
  border-bottom: 1px solid var(--ccp-border);
}
.ccp-ed-info-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 11px 18px;
  font-size: 13px;
  gap: 8px;
  border-bottom: 1px solid rgba(255,255,255,.04);
}
.ccp-ed-info-row:last-child { border-bottom: none; }
.ccp-ed-info-row > span:first-child { color: var(--ccp-text-muted); }
.ccp-ed-info-row > span:last-child  { font-weight: 600; }
.ccp-ed-info-row--total {
  padding-top: 13px;
  padding-bottom: 13px;
  font-weight: 700;
  border-top: 1px solid var(--ccp-border) !important;
}
.ccp-ed-info-row--total > span { color: var(--ccp-text-primary) !important; }

.ccp-ed-btn-sm {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 6px 12px;
  border-radius: 6px;
  border: 1px solid var(--ccp-border);
  background: transparent;
  color: var(--ccp-text-muted);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .3px;
  cursor: pointer;
  transition: all .15s;
  font-family: inherit;
}
.ccp-ed-btn-sm:hover { border-color: var(--ccp-gold); color: var(--ccp-gold); }

/* ══════════════════════════════════════════════════════════════════
   GALLERY TAB
══════════════════════════════════════════════════════════════════ */
.ccp-ed-gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 14px;
}
.ccp-ed-gallery-card {
  background: var(--ccp-surface-1);
  border: 1px solid var(--ccp-border);
  border-radius: 12px;
  padding: 24px 20px 20px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  transition: border-color .2s var(--ccp-easing), box-shadow .2s var(--ccp-easing), transform .18s var(--ccp-easing);
  position: relative;
  overflow: hidden;
}
/* Gold top-accent line for available cards */
.ccp-ed-gallery-card:not(.ccp-ed-gallery-card--empty)::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--ccp-gold), var(--ccp-copper));
  opacity: .7;
}
.ccp-ed-gallery-card:hover {
  border-color: rgba(192,160,98,.5);
  box-shadow: 0 8px 24px rgba(0,0,0,.25);
  transform: translateY(-2px);
}
.ccp-ed-gallery-card:not(.ccp-ed-gallery-card--empty):hover::before { opacity: 1; }
.ccp-ed-gallery-card--empty {
  opacity: .5;
  filter: grayscale(.4);
}
.ccp-ed-gallery-card-icon {
  color: var(--ccp-gold);
  opacity: .9;
  margin-bottom: 2px;
}
.ccp-ed-gallery-card-icon svg { width: 22px; height: 22px; }
.ccp-ed-gallery-card-label {
  font-size: 13.5px;
  font-weight: 700;
  color: var(--ccp-text-primary);
  letter-spacing: .2px;
  line-height: 1.3;
}
.ccp-ed-gallery-card-date {
  font-size: 10.5px;
  color: var(--ccp-text-muted);
  margin-top: -4px;
  letter-spacing: .02em;
}
.ccp-ed-gallery-card-btn {
  margin-top: auto;
  padding-top: 10px;
  color: var(--ccp-gold);
  font-size: 11.5px;
  font-weight: 600;
  text-decoration: none;
  border: 1px solid rgba(192,160,98,.4);
  border-radius: 6px;
  padding: 5px 12px;
  transition: all .18s var(--ccp-easing);
  letter-spacing: .06em;
  text-transform: uppercase;
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.ccp-ed-gallery-card-btn:hover {
  background: var(--ccp-gold);
  color: #111;
  border-color: var(--ccp-gold);
  transform: translateX(2px);
}
.ccp-ed-gallery-card-soon {
  font-size: 10.5px;
  color: var(--ccp-text-ghost);
  font-style: italic;
  letter-spacing: .02em;
}

/* ══════════════════════════════════════════════════════════════════
   MOODBOARD TAB — moodboard.js component integration
══════════════════════════════════════════════════════════════════ */
/* Hide the upload button from our tab header since moodboard.js has its own */
.ccp-ed-view .ccp-moodboard-upload-area {
  margin-bottom: 12px;
}
/* Override moodboard grid to match event detail aesthetic */
.ccp-ed-view .ccp-moodboard-grid,
.ccp-ed-view .ccp-moodboard-wrap {
  background: transparent !important;
  padding: 0 !important;
  border: none !important;
  box-shadow: none !important;
}
.ccp-ed-mood-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 8px;
}
.ccp-ed-mood-item {
  position: relative;
  border-radius: 8px;
  overflow: hidden;
  background: var(--ccp-surface-1);
  aspect-ratio: 1;
}
.ccp-ed-mood-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .3s;
}
.ccp-ed-mood-item:hover img { transform: scale(1.05); }
.ccp-ed-mood-note {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  padding: 6px 8px;
  background: rgba(0,0,0,.6);
  font-size: 11px;
  color: #fff;
  backdrop-filter: blur(4px);
}

/* ══════════════════════════════════════════════════════════════════
   FILES TAB
══════════════════════════════════════════════════════════════════ */
.ccp-ed-file-list {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.ccp-ed-file-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  background: var(--ccp-surface-1);
  border-radius: 8px;
  border: 1px solid var(--ccp-border);
  transition: border-color .15s;
}
.ccp-ed-file-row:hover { border-color: var(--ccp-gold); }
.ccp-ed-file-icon { color: var(--ccp-text-muted); flex-shrink: 0; }
.ccp-ed-file-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
  min-width: 0;
}
.ccp-ed-file-name {
  font-size: 13px;
  font-weight: 500;
  color: var(--ccp-text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ccp-ed-file-date { font-size: 11px; color: var(--ccp-text-muted); }
.ccp-ed-file-dl {
  color: var(--ccp-gold);
  font-size: 18px;
  text-decoration: none;
  flex-shrink: 0;
  transition: opacity .15s;
}
.ccp-ed-file-dl:hover { opacity: .7; }

/* ── Files tab v2 redesign ── */
.ccp-ed-files-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 28px;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--ccp-border, rgba(255,255,255,.08));
}
.ccp-ed-files-title {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: var(--ccp-text-muted);
  margin: 0 0 6px;
}
.ccp-ed-files-meta {
  font-size: 22px;
  font-weight: 300;
  color: var(--ccp-text, #fff);
  letter-spacing: -.5px;
}
.ccp-ed-files-meta strong { font-weight: 700; color: var(--ccp-gold); }
.ccp-ed-files-upload-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 22px;
  background: var(--ccp-gold);
  color: #000;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  border-radius: 2px;
  cursor: pointer;
  transition: opacity .2s;
  white-space: nowrap;
  flex-shrink: 0;
}
.ccp-ed-files-upload-btn:hover { opacity: .82; }
.ccp-ed-file-progress-bar {
  height: 3px;
  background: var(--ccp-surface-raised, rgba(255,255,255,.06));
  border-radius: 2px;
  margin-bottom: 20px;
  overflow: hidden;
  display: none;
}
.ccp-ed-file-progress-bar.active { display: block; }
.ccp-ed-file-progress-fill {
  height: 100%;
  background: var(--ccp-gold);
  width: 0;
  transition: width .3s ease;
  border-radius: 2px;
}
/* Files empty state */
.ccp-ed-files-empty {
  text-align: center;
  padding: 48px 24px 32px;
}
.ccp-ed-files-empty-icon {
  font-size: 36px;
  margin-bottom: 16px;
  opacity: .35;
}
.ccp-ed-files-empty-title {
  font-size: 15px;
  font-weight: 600;
  color: var(--ccp-text, #fff);
  margin: 0 0 8px;
}
.ccp-ed-files-empty-sub {
  font-size: 13px;
  color: var(--ccp-text-muted);
  margin: 0 0 32px;
  line-height: 1.5;
}
.ccp-ed-files-examples-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  max-width: 640px;
  margin: 0 auto;
}
.ccp-ed-files-example-card {
  background: var(--ccp-surface-raised, rgba(255,255,255,.04));
  border: 1px solid var(--ccp-border, rgba(255,255,255,.07));
  border-radius: 8px;
  padding: 14px 16px;
  text-align: left;
}
.ccp-ed-files-example-icon {
  font-size: 20px;
  margin-bottom: 6px;
  display: block;
}
.ccp-ed-files-example-lbl {
  font-size: 12px;
  font-weight: 700;
  color: var(--ccp-text, #fff);
  margin: 0 0 3px;
}
.ccp-ed-files-example-desc {
  font-size: 11px;
  color: var(--ccp-text-muted);
  line-height: 1.45;
}
/* File list v2 */
.ccp-ed-file-list--v2 { display: flex; flex-direction: column; gap: 6px; }
.ccp-ed-file-row--v2 {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 16px;
  background: var(--ccp-surface-raised, rgba(255,255,255,.04));
  border: 1px solid var(--ccp-border, rgba(255,255,255,.06));
  border-radius: 8px;
  transition: border-color .2s, background .2s;
}
.ccp-ed-file-row--v2:hover {
  border-color: var(--ccp-gold);
  background: rgba(212,175,55,.04);
}
.ccp-ed-file-ext {
  min-width: 38px;
  height: 38px;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .8px;
  text-transform: uppercase;
  flex-shrink: 0;
}
.ccp-ed-file-ext.ext-pdf  { background: rgba(239,68,68,.15);  color: #ef4444; }
.ccp-ed-file-ext.ext-jpg,
.ccp-ed-file-ext.ext-jpeg,
.ccp-ed-file-ext.ext-png  { background: rgba(99,220,219,.12); color: #63dcdb; }
.ccp-ed-file-ext.ext-doc,
.ccp-ed-file-ext.ext-docx { background: rgba(59,130,246,.14); color: #60a5fa; }
.ccp-ed-file-ext.ext-xls,
.ccp-ed-file-ext.ext-xlsx { background: rgba(34,197,94,.12);  color: #4ade80; }
.ccp-ed-file-ext.ext-zip  { background: rgba(180,135,90,.14); color: #c4914f; }
.ccp-ed-file-ext.ext-mp4,
.ccp-ed-file-ext.ext-mov  { background: rgba(212,175,55,.15); color: var(--ccp-gold); }
.ccp-ed-file-ext.ext-other{ background: rgba(255,255,255,.07); color: var(--ccp-text-muted); }
/* v2 row context overrides for inner elements */
.ccp-ed-file-row--v2 .ccp-ed-file-info { flex: 1; min-width: 0; }
.ccp-ed-file-row--v2 .ccp-ed-file-name {
  font-size: 13px;
  font-weight: 500;
  color: var(--ccp-text, #fff);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
}
.ccp-ed-file-row--v2 .ccp-ed-file-meta {
  font-size: 11px;
  color: var(--ccp-text-muted);
  margin-top: 2px;
}
.ccp-ed-file-dl--v2 {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--ccp-surface-raised, rgba(255,255,255,.06));
  color: var(--ccp-gold);
  text-decoration: none;
  font-size: 15px;
  flex-shrink: 0;
  transition: background .2s, transform .2s;
}
.ccp-ed-file-dl--v2:hover {
  background: var(--ccp-gold);
  color: #000;
  transform: translateY(-1px);
}

/* Light theme: files v2 */
body.ccp-theme-light .ccp-ed-files-hero { border-bottom-color: rgba(0,0,0,.08); }
body.ccp-theme-light .ccp-ed-files-meta { color: #111; }
body.ccp-theme-light .ccp-ed-files-example-card { background: #fff; border-color: rgba(0,0,0,.08); }
body.ccp-theme-light .ccp-ed-files-example-lbl { color: #111; }
body.ccp-theme-light .ccp-ed-file-row--v2 { background: #fff; border-color: rgba(0,0,0,.08); }
body.ccp-theme-light .ccp-ed-file-row--v2:hover { background: rgba(212,175,55,.04); }
body.ccp-theme-light .ccp-ed-file-row--v2 .ccp-ed-file-name { color: #111; }
body.ccp-theme-light .ccp-ed-file-dl--v2 { background: rgba(0,0,0,.05); }

/* ══════════════════════════════════════════════════════════════════
   VENDORS TAB
══════════════════════════════════════════════════════════════════ */
.ccp-ed-vendor-group { margin-bottom: 20px; }
.ccp-ed-vendor-group-title {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--ccp-text-muted);
  padding: 0 4px 8px;
  border-bottom: 1px solid var(--ccp-border);
  margin-bottom: 8px;
}
.ccp-ed-vendor-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  background: var(--ccp-surface-1);
  border-radius: 8px;
  border: 1px solid var(--ccp-border);
  margin-bottom: 4px;
  transition: border-color .18s, background .18s, transform .18s var(--ccp-easing);
}
.ccp-ed-vendor-row:hover {
  border-color: rgba(192,160,98,.35);
  background: var(--ccp-surface-raised);
  transform: translateX(2px);
}
.ccp-ed-vendor-av {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--ccp-gold);
  color: #0a0a0a;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 700;
  flex-shrink: 0;
  font-family: 'IBM Plex Sans', sans-serif;
}
.ccp-ed-vendor-row:nth-child(4n+2) .ccp-ed-vendor-av { background: var(--ccp-copper); }
.ccp-ed-vendor-row:nth-child(4n+3) .ccp-ed-vendor-av { background: var(--ccp-ice);    color: #fff; font-size: 11px; }
.ccp-ed-vendor-row:nth-child(4n+4) .ccp-ed-vendor-av { background: var(--ccp-green);  }
.ccp-ed-vendor-info { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.ccp-ed-vendor-name { font-size: 13px; font-weight: 600; }
.ccp-ed-vendor-email { font-size: 11px; color: var(--ccp-text-muted); }

/* ── Vendors v2: header, invite form, cards, permissions ── */
.ccp-ed-vnd-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 24px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--ccp-border, rgba(255,255,255,.08));
}
.ccp-ed-vnd-counts {
  font-size: 20px;
  font-weight: 300;
  color: var(--ccp-text, #fff);
}
.ccp-ed-vnd-counts strong { font-weight: 700; }
.ccp-ed-vnd-pending-count { color: var(--ccp-copper, #c4914f); font-size: 14px; }
.ccp-ed-vnd-invite-form {
  background: var(--ccp-surface-raised, rgba(255,255,255,.04));
  border: 1px solid var(--ccp-border, rgba(255,255,255,.07));
  border-radius: 10px;
  padding: 18px 20px;
  margin-bottom: 24px;
}
.ccp-ed-vnd-invite-row {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}
.ccp-ed-vnd-input {
  flex: 2;
  min-width: 180px;
  background: var(--ccp-surface-1, rgba(255,255,255,.06));
  border: 1px solid var(--ccp-border, rgba(255,255,255,.1));
  border-radius: 4px;
  color: var(--ccp-text, #fff);
  padding: 9px 13px;
  font-size: 13px;
  outline: none;
  transition: border-color .15s;
}
.ccp-ed-vnd-input:focus { border-color: var(--ccp-gold); }
.ccp-ed-vnd-select {
  flex: 1;
  min-width: 140px;
  background: var(--ccp-surface-1, rgba(255,255,255,.06));
  border: 1px solid var(--ccp-border, rgba(255,255,255,.1));
  border-radius: 4px;
  color: var(--ccp-text, #fff);
  padding: 9px 13px;
  font-size: 13px;
  outline: none;
  appearance: none;
  cursor: pointer;
}
.ccp-ed-vnd-msg {
  margin-top: 10px;
  font-size: 12px;
  padding: 6px 10px;
  border-radius: 4px;
}
.ccp-ed-vnd-msg.ok { color: var(--ccp-green, #4ade80); }
.ccp-ed-vnd-msg.err { color: #ef4444; }
.ccp-ed-vnd-section-lbl {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--ccp-text-muted);
  margin-bottom: 10px;
}
/* Vendor card */
.ccp-ed-vnd-card {
  background: var(--ccp-surface-raised, rgba(255,255,255,.04));
  border: 1px solid var(--ccp-border, rgba(255,255,255,.06));
  border-radius: 10px;
  margin-bottom: 8px;
  overflow: hidden;
  transition: border-color .2s;
}
.ccp-ed-vnd-card:hover { border-color: rgba(212,175,55,.3); }
.ccp-ed-vnd-card-head {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
}
.ccp-ed-vnd-cat-badge {
  margin-left: auto;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .8px;
  text-transform: uppercase;
  color: var(--ccp-gold);
  background: rgba(212,175,55,.1);
  border-radius: 3px;
  padding: 3px 7px;
  white-space: nowrap;
}
.ccp-ed-vnd-perm-toggle {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--ccp-text-muted);
  padding: 6px;
  border-radius: 4px;
  display: flex;
  align-items: center;
  transition: color .15s, background .15s;
  flex-shrink: 0;
}
.ccp-ed-vnd-perm-toggle:hover,
.ccp-ed-vnd-perm-toggle.active { color: var(--ccp-gold); background: rgba(212,175,55,.08); }
/* Permissions panel */
.ccp-ed-vnd-perm-panel {
  padding: 0 16px 16px;
  border-top: 1px solid var(--ccp-border, rgba(255,255,255,.06));
}
.ccp-ed-vnd-perm-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--ccp-text-muted);
  padding: 12px 0 10px;
}
.ccp-ed-vnd-perm-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 7px;
}
.ccp-ed-vnd-perm-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  cursor: pointer;
  padding: 9px 13px;
  border-radius: 8px;
  border: 1px solid var(--ccp-border, rgba(255,255,255,.08));
  transition: border-color .18s, background .18s;
  user-select: none;
}
.ccp-ed-vnd-perm-item:hover { border-color: rgba(212,175,55,.3); background: rgba(212,175,55,.04); }
.ccp-ed-vnd-perm-item:has(.ccp-ed-vnd-perm-dot.on) {
  border-color: rgba(212,175,55,.28);
  background: rgba(212,175,55,.05);
}
.ccp-ed-vnd-perm-item input[type=checkbox] { display: none; }
/* Toggle switch track */
.ccp-ed-vnd-perm-dot {
  width: 32px;
  height: 18px;
  border-radius: 9px;
  background: rgba(255,255,255,.14);
  position: relative;
  transition: background .2s;
  flex-shrink: 0;
}
.ccp-ed-vnd-perm-dot::after {
  content: '';
  position: absolute;
  top: 3px;
  left: 3px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: rgba(255,255,255,.45);
  transition: transform .2s, background .2s;
}
/* Toggle ON state */
.ccp-ed-vnd-perm-dot.on { background: var(--ccp-gold); }
.ccp-ed-vnd-perm-dot.on::after {
  transform: translateX(14px);
  background: #fff;
}
/* Key label */
.ccp-ed-vnd-perm-key {
  font-size: 12px;
  font-weight: 500;
  color: var(--ccp-text-muted);
  transition: color .18s;
}
.ccp-ed-vnd-perm-item:has(.ccp-ed-vnd-perm-dot.on) .ccp-ed-vnd-perm-key {
  color: var(--ccp-text, #fff);
  font-weight: 600;
}
/* Larger invite button */
.ccp-ed-vnd-invite-toggle--lg {
  padding: 10px 20px !important;
  font-size: 12px !important;
  letter-spacing: .04em;
}
/* Info card (accordion) */
.ccp-ed-vnd-info-card {
  background: rgba(212,175,55,.05);
  border: 1px solid rgba(212,175,55,.18);
  border-radius: 12px;
  margin-bottom: 18px;
  overflow: hidden;
}
.ccp-ed-vnd-info-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 16px 20px;
  cursor: pointer;
  transition: background .18s;
}
.ccp-ed-vnd-info-head:hover { background: rgba(212,175,55,.08); }
.ccp-ed-vnd-info-head-left {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1;
  min-width: 0;
}
.ccp-ed-vnd-info-head-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.ccp-ed-vnd-info-subtitle {
  font-size: 11.5px;
  color: var(--ccp-text-muted);
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
  line-height: 1.4;
}
/* Legacy info panel — keep for backward compat */
.ccp-ed-vnd-info {
  display: flex;
  gap: 13px;
  align-items: flex-start;
  background: rgba(212,175,55,.06);
  border: 1px solid rgba(212,175,55,.15);
  border-radius: 10px;
  padding: 14px 18px;
  margin-bottom: 28px;
}
.ccp-ed-vnd-info-icon {
  color: var(--ccp-gold);
  flex-shrink: 0;
  margin-top: 1px;
}
.ccp-ed-vnd-info-title {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--ccp-gold);
  margin-bottom: 8px;
}
.ccp-ed-vnd-info-ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.ccp-ed-vnd-info-ul li {
  font-size: 12px;
  color: var(--ccp-text-secondary, rgba(255,255,255,.65));
  padding-left: 14px;
  position: relative;
  line-height: 1.5;
}
.ccp-ed-vnd-info-ul li::before {
  content: '–';
  position: absolute;
  left: 0;
  color: var(--ccp-gold);
  opacity: .6;
}
.ccp-ed-vnd-info-ul li strong {
  color: var(--ccp-text, #fff);
  font-weight: 600;
}
.ccp-ed-vnd-info-group-label {
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
  color: var(--ccp-gold);
  opacity: .8;
  margin-top: 12px;
  margin-bottom: 5px;
}
body.ccp-theme-light .ccp-ed-vnd-info-group-label { color: #8a6d1a; opacity: 1; }
body.ccp-theme-light .ccp-ed-vnd-info-ul li { color: #555; }
body.ccp-theme-light .ccp-ed-vnd-info-ul li strong { color: #111; }
/* Pending invite row */
.ccp-ed-vnd-pending-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 16px;
  background: var(--ccp-surface-raised, rgba(255,255,255,.03));
  border: 1px solid var(--ccp-border, rgba(255,255,255,.05));
  border-radius: 8px;
  margin-bottom: 6px;
}
.ccp-ed-vnd-pending-icon { color: var(--ccp-text-muted); flex-shrink: 0; }
.ccp-ed-vnd-pending-info { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.ccp-ed-vnd-pending-email { font-size: 13px; font-weight: 500; }
.ccp-ed-vnd-pending-cat { font-size: 11px; color: var(--ccp-text-muted); }
.ccp-ed-vnd-badge-pending {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .8px;
  text-transform: uppercase;
  color: var(--ccp-copper, #c4914f);
  background: rgba(196,145,79,.1);
  border-radius: 3px;
  padding: 3px 7px;
  flex-shrink: 0;
}
/* Light theme vendors v2 */
body.ccp-theme-light .ccp-ed-vnd-header { border-bottom-color: rgba(0,0,0,.08); }
body.ccp-theme-light .ccp-ed-vnd-counts { color: #111; }
body.ccp-theme-light .ccp-ed-vnd-invite-form { background: #fff; border-color: rgba(0,0,0,.08); }
body.ccp-theme-light .ccp-ed-vnd-input,
body.ccp-theme-light .ccp-ed-vnd-select { background: #f7f7f7; border-color: rgba(0,0,0,.12); color: #111; }
body.ccp-theme-light .ccp-ed-vnd-card { background: #fff; border-color: rgba(0,0,0,.08); }
body.ccp-theme-light .ccp-ed-vnd-perm-panel { border-top-color: rgba(0,0,0,.06); }
body.ccp-theme-light .ccp-ed-vnd-perm-item { border-color: rgba(0,0,0,.1); background: #fafafa; }
body.ccp-theme-light .ccp-ed-vnd-perm-item:has(.ccp-ed-vnd-perm-dot.on) { border-color: rgba(212,175,55,.35); background: rgba(212,175,55,.06); }
body.ccp-theme-light .ccp-ed-vnd-perm-key { color: #888; }
body.ccp-theme-light .ccp-ed-vnd-perm-item:has(.ccp-ed-vnd-perm-dot.on) .ccp-ed-vnd-perm-key { color: #111; }
body.ccp-theme-light .ccp-ed-vnd-perm-dot { background: rgba(0,0,0,.12); }
body.ccp-theme-light .ccp-ed-vnd-perm-dot::after { background: rgba(0,0,0,.3); }
body.ccp-theme-light .ccp-ed-vnd-perm-dot.on { background: var(--ccp-gold); }
body.ccp-theme-light .ccp-ed-vnd-perm-dot.on::after { background: #fff; }
body.ccp-theme-light .ccp-ed-vnd-info { background: rgba(212,175,55,.05); border-color: rgba(212,175,55,.18); }
body.ccp-theme-light .ccp-ed-vnd-pending-row { background: #fff; border-color: rgba(0,0,0,.06); }
body.ccp-theme-light .ccp-ed-vnd-pending-email { color: #111; }

/* Vendor perm sub-section label */
.ccp-ed-vnd-perm-subsec-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ccp-text-muted);
  margin-bottom: 8px;
  padding-bottom: 4px;
  border-bottom: 1px solid var(--ccp-border, rgba(255,255,255,.06));
}
.ccp-ed-vnd-perm-subsec-label--edit { color: var(--ccp-gold); opacity: .75; }

/* Edit perm items — slightly warmer dot */
.ccp-ed-vnd-perm-dot--edit.on { background: linear-gradient(135deg, var(--ccp-gold), rgba(212,175,55,.7)); }

/* Global defaults card */
.ccp-ed-vnd-defaults-card {
  border: 1px solid rgba(212,175,55,.22);
  border-left: 3px solid rgba(212,175,55,.55);
  border-radius: 12px;
  margin-bottom: 24px;
  overflow: hidden;
}
.ccp-ed-vnd-defaults-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 18px;
  cursor: pointer;
  background: rgba(212,175,55,.05);
  transition: background .18s;
  gap: 12px;
}
.ccp-ed-vnd-defaults-head:hover { background: rgba(212,175,55,.09); }
.ccp-ed-vnd-defaults-head-left {
  display: flex;
  align-items: center;
  gap: 13px;
  flex: 1;
  min-width: 0;
}
.ccp-ed-vnd-defaults-head-left > svg { color: var(--ccp-gold); flex-shrink: 0; }
.ccp-ed-vnd-defaults-head-text {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}
.ccp-ed-vnd-defaults-title {
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ccp-gold);
}
.ccp-ed-vnd-defaults-hint {
  font-size: 11.5px;
  color: var(--ccp-text-muted);
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
  line-height: 1.4;
}
.ccp-ed-vnd-defaults-arrow {
  color: var(--ccp-gold);
  opacity: .7;
  flex-shrink: 0;
  transition: transform .2s ease;
}
.ccp-ed-vnd-defaults-arrow.open { transform: rotate(180deg); }

/* Info body (collapsible inner) */
.ccp-ed-vnd-info-body {
  padding: 6px 20px 20px;
  border-top: 1px solid rgba(212,175,55,.14);
}

/* ── Expand CTA pill (used in info card + defaults card) ── */
.ccp-ed-vnd-expand-cta {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 16px;
  background: rgba(212,175,55,.14);
  border: 1px solid rgba(212,175,55,.42);
  border-radius: 999px;
  color: var(--ccp-gold);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .18s, border-color .18s, box-shadow .18s;
  flex-shrink: 0;
  white-space: nowrap;
  font-family: inherit;
}
.ccp-ed-vnd-expand-cta:hover {
  background: rgba(212,175,55,.24);
  border-color: rgba(212,175,55,.65);
}
.ccp-ed-vnd-expand-cta-chev,
.ccp-ed-vnd-expand-cta-plus {
  flex-shrink: 0;
  transition: transform .2s ease;
}
.ccp-ed-vnd-expand-cta.open .ccp-ed-vnd-expand-cta-chev {
  transform: rotate(180deg);
}
.ccp-ed-vnd-expand-cta.open .ccp-ed-vnd-expand-cta-plus {
  transform: rotate(45deg);
}

/* Strong variant (filled gold) — used for Default Permissions */
.ccp-ed-vnd-expand-cta--strong {
  background: var(--ccp-gold);
  border-color: var(--ccp-gold);
  color: #1a1a1a;
  box-shadow: 0 2px 8px rgba(212,175,55,.25);
}
.ccp-ed-vnd-expand-cta--strong:hover {
  background: #d9b54a;
  border-color: #d9b54a;
  box-shadow: 0 3px 12px rgba(212,175,55,.4);
}

/* Light theme: info card + CTA */
body.ccp-theme-light .ccp-ed-vnd-info-card { background: rgba(212,175,55,.05); border-color: rgba(212,175,55,.22); }
body.ccp-theme-light .ccp-ed-vnd-info-head:hover { background: rgba(212,175,55,.10); }
body.ccp-theme-light .ccp-ed-vnd-info-body { border-top-color: rgba(212,175,55,.18); }
body.ccp-theme-light .ccp-ed-vnd-info-subtitle { color: #777; }
body.ccp-theme-light .ccp-ed-vnd-expand-cta {
  background: rgba(212,175,55,.10);
  border-color: rgba(212,175,55,.5);
  color: #8a6d1a;
}
body.ccp-theme-light .ccp-ed-vnd-expand-cta:hover {
  background: rgba(212,175,55,.22);
  border-color: rgba(212,175,55,.7);
}
body.ccp-theme-light .ccp-ed-vnd-expand-cta--strong {
  background: var(--ccp-gold);
  border-color: var(--ccp-gold);
  color: #1a1a1a;
  box-shadow: 0 2px 8px rgba(212,175,55,.3);
}
body.ccp-theme-light .ccp-ed-vnd-expand-cta--strong:hover {
  background: #b8902a;
  border-color: #b8902a;
}
.ccp-ed-vnd-defaults-body {
  padding: 6px 18px 20px;
  border-top: 1px solid rgba(212,175,55,.15);
}
.ccp-ed-vnd-defaults-footer {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid rgba(212,175,55,.12);
}
.ccp-ed-vnd-defaults-apply-hint {
  font-size: 11px;
  color: var(--ccp-text-muted);
  font-style: italic;
}

/* Light theme — defaults card */
body.ccp-theme-light .ccp-ed-vnd-defaults-card { background: #fff; border-color: rgba(212,175,55,.28); border-left-color: rgba(212,175,55,.6); }
body.ccp-theme-light .ccp-ed-vnd-defaults-head { background: rgba(212,175,55,.06); }
body.ccp-theme-light .ccp-ed-vnd-defaults-head:hover { background: rgba(212,175,55,.10); }
body.ccp-theme-light .ccp-ed-vnd-defaults-title { color: #8a6d1a; }
body.ccp-theme-light .ccp-ed-vnd-defaults-head-left svg { color: #8a6d1a; }
body.ccp-theme-light .ccp-ed-vnd-defaults-arrow { color: #8a6d1a; }
body.ccp-theme-light .ccp-ed-vnd-defaults-body { border-top-color: rgba(212,175,55,.18); }
body.ccp-theme-light .ccp-ed-vnd-defaults-footer { border-top-color: rgba(212,175,55,.15); }
body.ccp-theme-light .ccp-ed-vnd-perm-subsec-label { border-bottom-color: rgba(0,0,0,.06); color: #999; }
body.ccp-theme-light .ccp-ed-vnd-perm-subsec-label--edit { color: var(--ccp-gold); }

/* ══════════════════════════════════════════════════════════════════
   IG HANDLES TAB
══════════════════════════════════════════════════════════════════ */
.ccp-ed-ig-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 11px 18px;
  gap: 16px;
  border-bottom: 1px solid rgba(255,255,255,.04);
}
.ccp-ed-ig-row:last-child { border-bottom: none; }
.ccp-ed-ig-row label {
  font-size: 12px;
  color: var(--ccp-text-muted);
  white-space: nowrap;
  min-width: 130px;
}
.ccp-ed-ig-input {
  flex: 1;
  background: rgba(255,255,255,.05);
  border: 1px solid var(--ccp-border);
  border-radius: 5px;
  padding: 6px 10px;
  color: var(--ccp-text-primary);
  font-family: 'IBM Plex Mono', monospace;
  font-size: 13px;
  max-width: 240px;
  transition: border-color .15s;
}
.ccp-ed-ig-input:focus { outline: none; border-color: var(--ccp-gold); }

/* ── IG Handles v2 ── */
.ccp-ed-ig-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 24px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--ccp-border, rgba(255,255,255,.08));
}
.ccp-ed-ig-meta {
  font-size: 20px;
  font-weight: 300;
  color: var(--ccp-text, #fff);
}
.ccp-ed-ig-meta strong { font-weight: 700; }
.ccp-ed-ig-missing-badge {
  display: inline-block;
  margin-left: 10px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .8px;
  color: #ef4444;
  background: rgba(239,68,68,.1);
  border-radius: 3px;
  padding: 2px 7px;
  vertical-align: middle;
}
.ccp-ed-ig-group { margin-bottom: 24px; }
.ccp-ed-ig-row--v2 {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  background: var(--ccp-surface-raised, rgba(255,255,255,.04));
  border: 1px solid var(--ccp-border, rgba(255,255,255,.06));
  border-radius: 8px;
  margin-bottom: 6px;
  transition: border-color .2s;
}
.ccp-ed-ig-row--v2.missing { border-color: rgba(239,68,68,.2); }
.ccp-ed-ig-av {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--ccp-surface-1, rgba(255,255,255,.1));
  color: var(--ccp-text-muted);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 700;
  flex-shrink: 0;
}
.ccp-ed-ig-person { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.ccp-ed-ig-name { font-size: 13px; font-weight: 600; color: var(--ccp-text, #fff); }
.ccp-ed-ig-role { font-size: 11px; color: var(--ccp-text-muted); }
.ccp-ed-ig-handle-val {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 13px;
  color: var(--ccp-gold);
  flex-shrink: 0;
}
.ccp-ed-ig-edit-input {
  width: 140px;
  background: var(--ccp-surface-1, rgba(255,255,255,.06));
  border: 1px solid var(--ccp-gold);
  border-radius: 4px;
  color: var(--ccp-text, #fff);
  padding: 5px 9px;
  font-family: 'IBM Plex Mono', monospace;
  font-size: 12px;
}
.ccp-ed-ig-edit-btn {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--ccp-text-muted);
  padding: 4px;
  border-radius: 4px;
  display: flex;
  align-items: center;
  transition: color .15s;
  flex-shrink: 0;
}
.ccp-ed-ig-edit-btn:hover { color: var(--ccp-gold); }
.ccp-ed-ig-missing {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .8px;
  color: #ef4444;
  text-transform: uppercase;
  background: rgba(239,68,68,.1);
  border-radius: 3px;
  padding: 3px 7px;
  flex-shrink: 0;
}
.ccp-ed-ig-missing-wrap {
  display: flex;
  align-items: center;
  gap: 6px;
}
.ccp-ed-ig-miss-input {
  width: 140px;
  background: var(--ccp-surface-1, rgba(255,255,255,.06));
  border: 1px solid rgba(239,68,68,.4);
  border-radius: 4px;
  color: var(--ccp-text, #fff);
  padding: 5px 9px;
  font-family: 'IBM Plex Mono', monospace;
  font-size: 12px;
  transition: border-color .15s;
}
.ccp-ed-ig-miss-input:focus { border-color: var(--ccp-gold); outline: none; }
.ccp-ed-btn-sm {
  padding: 5px 12px;
  background: var(--ccp-gold);
  color: #000;
  border: none;
  border-radius: 3px;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
  letter-spacing: .8px;
  white-space: nowrap;
  transition: opacity .15s;
}
.ccp-ed-btn-sm:hover { opacity: .82; }
.ccp-ed-ig-toast {
  position: fixed;
  bottom: 28px;
  right: 28px;
  background: #111;
  color: var(--ccp-gold);
  border: 1px solid var(--ccp-gold);
  border-radius: 6px;
  padding: 10px 18px;
  font-size: 13px;
  font-weight: 600;
  z-index: 9999;
  pointer-events: none;
}
/* Light theme IG v2 */
body.ccp-theme-light .ccp-ed-ig-hero { border-bottom-color: rgba(0,0,0,.08); }
body.ccp-theme-light .ccp-ed-ig-meta { color: #111; }
body.ccp-theme-light .ccp-ed-ig-row--v2 { background: #fff; border-color: rgba(0,0,0,.07); }
body.ccp-theme-light .ccp-ed-ig-row--v2.missing { border-color: rgba(239,68,68,.25); }
body.ccp-theme-light .ccp-ed-ig-name { color: #111; }
body.ccp-theme-light .ccp-ed-ig-edit-input,
body.ccp-theme-light .ccp-ed-ig-miss-input { background: #f7f7f7; color: #111; }
body.ccp-theme-light .ccp-ed-ig-toast { background: #fff; color: var(--ccp-gold); }

/* ══════════════════════════════════════════════════════════════════
   PROGRESS TAB
══════════════════════════════════════════════════════════════════ */
.ccp-ed-prog-pct {
  font-family: 'Bebas Neue', 'Arial Black', sans-serif;
  font-size: 22px;
  color: var(--ccp-gold);
  letter-spacing: 1px;
}
.ccp-ed-prog-bar-wrap { margin-bottom: 28px; }
.ccp-ed-prog-bar-track {
  height: 6px;
  background: rgba(255,255,255,.08);
  border-radius: 3px;
  overflow: hidden;
  margin-bottom: 6px;
}
.ccp-ed-prog-bar-fill {
  height: 100%;
  background: var(--ccp-green);
  border-radius: 3px;
  transition: width .4s ease;
}
.ccp-ed-prog-bar-label { font-size: 11px; color: var(--ccp-text-muted); }

.ccp-ed-step-list { display: flex; flex-direction: column; gap: 4px; }
.ccp-ed-step-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 16px;
  background: var(--ccp-surface-1);
  border: 1px solid var(--ccp-border);
  border-radius: 8px;
  font-size: 13px;
  color: var(--ccp-text-muted);
}
.ccp-ed-step-row.done { color: var(--ccp-text-primary); }
.ccp-ed-step-icon { flex-shrink: 0; }
.ccp-ed-step-row .ccp-ed-step-icon { color: rgba(255,255,255,.2); }
.ccp-ed-step-row.done .ccp-ed-step-icon { color: var(--ccp-green); }

/* ── Progress tab v2 ── */
.ccp-ed-prg-hero {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-bottom: 28px;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--ccp-border, rgba(255,255,255,.08));
}
.ccp-ed-prg-numblock {
  display: flex;
  align-items: baseline;
  gap: 3px;
  flex-shrink: 0;
}
.ccp-ed-prg-bignum {
  font-size: 64px;
  font-weight: 200;
  line-height: 1;
  color: var(--ccp-text, #fff);
  letter-spacing: -3px;
}
.ccp-ed-prg-pct-sym {
  font-size: 24px;
  font-weight: 300;
  color: var(--ccp-gold);
  align-self: flex-start;
  margin-top: 12px;
}
.ccp-ed-prg-heroinfo { display: flex; flex-direction: column; gap: 6px; }
.ccp-ed-prg-stat {
  font-size: 14px;
  color: var(--ccp-text-muted);
}
.ccp-ed-prg-stat-done {
  font-size: 20px;
  font-weight: 700;
  color: var(--ccp-green, #4ade80);
}
.ccp-ed-prg-next {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 4px;
}
.ccp-ed-prg-next-lbl {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--ccp-text-muted);
  background: var(--ccp-surface-raised, rgba(255,255,255,.06));
  border-radius: 3px;
  padding: 2px 6px;
  flex-shrink: 0;
}
.ccp-ed-prg-next-val {
  font-size: 13px;
  color: var(--ccp-text, #fff);
}
.ccp-ed-prg-complete {
  font-size: 13px;
  color: var(--ccp-green, #4ade80);
  font-weight: 600;
}
.ccp-ed-prg-track-wrap { margin-bottom: 28px; }
.ccp-ed-prg-track {
  height: 3px;
  background: var(--ccp-surface-raised, rgba(255,255,255,.07));
  border-radius: 2px;
  overflow: hidden;
}
.ccp-ed-prg-track-fill {
  height: 100%;
  background: linear-gradient(90deg, rgba(201,169,110,.45) 0%, var(--ccp-gold) 100%);
  border-radius: 2px;
  transition: width .6s cubic-bezier(.4,0,.2,1);
}
/* Step list v2 */
.ccp-ed-prg-list { display: flex; flex-direction: column; }
.ccp-ed-prg-item {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 13px 16px;
  border-bottom: 1px solid var(--ccp-border, rgba(255,255,255,.05));
  transition: background .15s;
}
.ccp-ed-prg-item:first-child { border-top: 1px solid var(--ccp-border, rgba(255,255,255,.05)); }
.ccp-ed-prg-item:hover { background: rgba(255,255,255,.02); }
.ccp-ed-prg-item-num {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  font-weight: 700;
  flex-shrink: 0;
  border: 1px solid var(--ccp-border, rgba(255,255,255,.12));
  color: var(--ccp-text-muted);
}
.ccp-ed-prg-item.done .ccp-ed-prg-item-num {
  background: var(--ccp-green, #4ade80);
  border-color: var(--ccp-green, #4ade80);
  color: #000;
}
.ccp-ed-prg-item-body { flex: 1; }
.ccp-ed-prg-item-label {
  font-size: 13px;
  color: var(--ccp-text-muted);
}
.ccp-ed-prg-item.done .ccp-ed-prg-item-label { color: var(--ccp-text, #fff); }
.ccp-ed-prg-item-state {
  flex-shrink: 0;
  color: var(--ccp-green, #4ade80);
  display: flex;
  align-items: center;
}
.ccp-ed-prg-dot-pending {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--ccp-border, rgba(255,255,255,.18));
  display: block;
}
/* Light theme progress v2 */
body.ccp-theme-light .ccp-ed-prg-hero { border-bottom-color: rgba(0,0,0,.08); }
body.ccp-theme-light .ccp-ed-prg-bignum { color: #111; }
body.ccp-theme-light .ccp-ed-prg-next-val { color: #111; }
body.ccp-theme-light .ccp-ed-prg-item { border-bottom-color: rgba(0,0,0,.06); }
body.ccp-theme-light .ccp-ed-prg-item:first-child { border-top-color: rgba(0,0,0,.06); }
body.ccp-theme-light .ccp-ed-prg-item:hover { background: rgba(0,0,0,.015); }
body.ccp-theme-light .ccp-ed-prg-item-label { color: #666; }
body.ccp-theme-light .ccp-ed-prg-item.done .ccp-ed-prg-item-label { color: #111; }
body.ccp-theme-light .ccp-ed-prg-item-num { border-color: rgba(0,0,0,.15); color: #888; }
body.ccp-theme-light .ccp-ed-prg-track { background: rgba(0,0,0,.06); }

/* ══════════════════════════════════════════════════════════════════
   LIGHT THEME OVERRIDES — body.ccp-theme-light
   All hard-coded rgba(255,255,255,x) must flip to rgba(0,0,0,x)
   for readability on light backgrounds.
══════════════════════════════════════════════════════════════════ */
body.ccp-theme-light .ccp-ed-wrap {
  background: var(--ccp-bg);
  color: var(--ccp-text-primary);
}
body.ccp-theme-light .ccp-ed-topnav {
  background: var(--ccp-surface);
  border-bottom-color: var(--ccp-border-subtle);
}
body.ccp-theme-light .ccp-ed-tabbar {
  background: var(--ccp-surface);
  border-bottom-color: var(--ccp-border-subtle);
}
body.ccp-theme-light .ccp-ed-tab {
  color: var(--ccp-text-muted);
}
body.ccp-theme-light .ccp-ed-tab.active,
body.ccp-theme-light .ccp-ed-tab:hover {
  color: var(--ccp-text-primary);
}
body.ccp-theme-light .ccp-ed-tab.active {
  border-bottom-color: transparent; /* ::after handles the gold indicator */
}
body.ccp-theme-light .ccp-ed-cell {
  background: var(--ccp-surface);
  border-color: var(--ccp-border-subtle);
}
body.ccp-theme-light .ccp-ed-cell:hover {
  background: var(--ccp-surface-hover);
  border-color: rgba(0,0,0,.15);
}
body.ccp-theme-light .ccp-ed-cell-lbl {
  color: var(--ccp-text-muted);
}
/* Countdown */
body.ccp-theme-light .ccp-ed-c-countdown {
  background: var(--ccp-surface-sunken);
}
/* Day card */
body.ccp-theme-light .ccp-ed-day-card-head:hover {
  background: rgba(0,0,0,.03);
}
body.ccp-theme-light .ccp-ed-day-card.main-event .ccp-ed-day-card-head:hover {
  background: rgba(201,169,110,.08);
}
/* Drawer */
body.ccp-theme-light .ccp-ed-drawer {
  background: var(--ccp-surface);
  border-left-color: var(--ccp-border-subtle);
}
body.ccp-theme-light .ccp-ed-bubble.in {
  background: var(--ccp-surface-sunken);
  color: var(--ccp-text-primary);
}
body.ccp-theme-light .ccp-ed-bubble.out {
  background: var(--ccp-gold);
  color: #111;
}
/* Info cards */
body.ccp-theme-light .ccp-ed-info-card {
  background: var(--ccp-surface);
  border-color: var(--ccp-border-subtle);
}
body.ccp-theme-light .ccp-ed-info-row {
  border-bottom-color: rgba(0,0,0,.06);
}
/* Tags */
body.ccp-theme-light .ccp-ed-tag--muted {
  background: rgba(0,0,0,.07);
  color: var(--ccp-text-muted);
}
/* Progress tab */
body.ccp-theme-light .ccp-ed-prog-bar-track {
  background: rgba(0,0,0,.08);
}
body.ccp-theme-light .ccp-ed-step-row {
  background: var(--ccp-surface);
  border-color: var(--ccp-border-subtle);
  color: var(--ccp-text-muted);
}
body.ccp-theme-light .ccp-ed-step-row.done {
  color: var(--ccp-text-primary);
}
body.ccp-theme-light .ccp-ed-step-row .ccp-ed-step-icon {
  color: rgba(0,0,0,.2);
}
/* Moodboard note overlay */
body.ccp-theme-light .ccp-ed-mood-note {
  background: rgba(0,0,0,.5);
}
/* File list */
body.ccp-theme-light .ccp-ed-file-row {
  background: var(--ccp-surface);
  border-color: var(--ccp-border-subtle);
}
body.ccp-theme-light .ccp-ed-file-row:hover {
  background: var(--ccp-surface-hover);
}
/* Vendor */
body.ccp-theme-light .ccp-ed-vendor-row {
  background: var(--ccp-surface);
  border-color: var(--ccp-border-subtle);
}
/* Gallery card */
body.ccp-theme-light .ccp-ed-gallery-card {
  background: var(--ccp-surface);
  border-color: var(--ccp-border-subtle);
}
/* Compose */
body.ccp-theme-light .ccp-ed-compose {
  background: var(--ccp-surface);
  border-top-color: var(--ccp-border-subtle);
}
body.ccp-theme-light .ccp-ed-compose-input {
  background: var(--ccp-surface-sunken);
  border-color: var(--ccp-border-subtle);
  color: var(--ccp-text-primary);
}
/* Subday back button */
body.ccp-theme-light .ccp-ed-back {
  background: var(--ccp-surface);
  border-color: var(--ccp-border-subtle);
  color: var(--ccp-text-secondary);
}
/* Nav iconbtn */
body.ccp-theme-light .ccp-ed-nav-iconbtn {
  background: var(--ccp-surface-raised);
  color: var(--ccp-text-muted);
}
body.ccp-theme-light .ccp-ed-nav-iconbtn:hover {
  background: var(--ccp-surface-hover);
  color: var(--ccp-text-primary);
}
/* IG input */
body.ccp-theme-light .ccp-ed-ig-input {
  background: var(--ccp-surface);
  border-color: var(--ccp-border-subtle);
  color: var(--ccp-text-primary);
}
/* Tab header */
body.ccp-theme-light .ccp-ed-tab-header {
  border-bottom-color: var(--ccp-border-subtle);
}
/* Empty state */
body.ccp-theme-light .ccp-ed-empty-tab {
  color: var(--ccp-text-muted);
}
/* Timeline embed: override hardcoded dark bg */
body.ccp-theme-light .ccp-tl-dashboard-wrap {
  background: var(--ccp-surface) !important;
}

/* ══════════════════════════════════════════════════════════════════
   GRAPHIC IMPROVEMENTS v5.51.2
   Philosophy: innovative ultra-elegant architect
   — micro-interactions, refined shadows, premium feel
══════════════════════════════════════════════════════════════════ */

/* ── Topnav glass morphism (dark theme) ── */
.ccp-ed-topnav {
  backdrop-filter: blur(16px) saturate(180%);
  -webkit-backdrop-filter: blur(16px) saturate(180%);
}

/* ── Tab bar: premium underline animation ── */
.ccp-ed-tab {
  position: relative;
  overflow: hidden;
}
.ccp-ed-tab::after {
  content: '';
  position: absolute;
  bottom: 0; left: 50%; right: 50%;
  height: 2px;
  background: var(--ccp-gold);
  transition: left .25s var(--ccp-easing), right .25s var(--ccp-easing);
  border-radius: 1px 1px 0 0;
}
/* Remove the static bottom border approach; use ::after for smooth animation */
.ccp-ed-tab.active { border-bottom-color: transparent; }
.ccp-ed-tab.active::after { left: 0; right: 0; }

/* ── Bento cells: elevated hover shadow ── */
.ccp-ed-cell {
  box-shadow: 0 1px 3px rgba(0,0,0,.08);
}
.ccp-ed-cell:hover {
  box-shadow: 0 8px 24px rgba(0,0,0,.22), 0 2px 8px rgba(0,0,0,.12);
}

/* ── Countdown cell: refined glow ── */
.ccp-ed-c-countdown {
  box-shadow: 0 2px 8px rgba(0,0,0,.12);
}
.ccp-ed-c-countdown:hover {
  box-shadow: 0 12px 32px rgba(0,0,0,.28), 0 2px 8px rgba(201,169,110,.12);
}

/* ── Day cards: left accent border for main event ── */
.ccp-ed-day-card.main-event {
  border-left: 3px solid var(--ccp-gold);
}

/* ── Hero: subtle decorative separator ── */
.ccp-ed-hero {
  padding-bottom: 20px;
  border-bottom: 1px solid var(--ccp-border-subtle);
  margin-bottom: 20px;
}

/* ── Info cards: refined shadow ── */
.ccp-ed-info-card {
  box-shadow: 0 1px 4px rgba(0,0,0,.06);
}

/* ── Buttons: elevated hover ── */
.ccp-ed-btn {
  transition: all .2s var(--ccp-easing) !important;
}
.ccp-ed-btn:hover {
  box-shadow: 0 4px 12px rgba(0,0,0,.15);
}
.ccp-ed-btn-gold:hover {
  box-shadow: 0 4px 16px rgba(201,169,110,.35) !important;
  transform: translateY(-1px);
}

/* ── Message bubbles: refined styling ── */
.ccp-ed-bubble.out {
  box-shadow: 0 2px 8px rgba(201,169,110,.2);
}
.ccp-ed-bubble.in {
  box-shadow: 0 1px 3px rgba(0,0,0,.08);
}

/* ── Drawer: luxurious slide-in shadow ── */
.ccp-ed-drawer {
  box-shadow: -24px 0 80px rgba(0,0,0,.5), -4px 0 16px rgba(0,0,0,.25);
}

/* ── Tab active indicator: gold glint on active tab ── */
.ccp-ed-tab.active {
  text-shadow: 0 0 20px rgba(201,169,110,.3);
}

/* ── Countdown number: refined weight/optical sizing ── */
.ccp-ed-cd-num {
  text-shadow: 0 0 40px rgba(201,169,110,.15);
}

/* ── Nav divider: subtle glow ── */
.ccp-ed-nav-div {
  opacity: 0.5;
}

/* ── Gallery card: hover lift ── */
.ccp-ed-gallery-card {
  transition: border-color .25s var(--ccp-easing), transform .25s var(--ccp-easing), box-shadow .25s var(--ccp-easing);
  box-shadow: 0 1px 4px rgba(0,0,0,.06);
}
.ccp-ed-gallery-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(0,0,0,.2);
}

/* ── Progress step rows: refined hover ── */
.ccp-ed-step-row {
  transition: background .15s, border-color .15s, transform .15s;
}
.ccp-ed-step-row:hover {
  transform: translateX(3px);
}
.ccp-ed-step-row.done {
  border-left: 2px solid var(--ccp-green);
}

/* ── Contract bar: gradient pulse animation for incomplete ── */
@keyframes ccp-bar-shimmer {
  0%   { background-position: -200% center; }
  100% { background-position: 200% center; }
}
.ccp-ed-contract-bar-fill {
  background-size: 200% auto;
  background-image: linear-gradient(90deg, var(--ccp-gold), var(--ccp-gold-deep) 40%, var(--ccp-gold));
  animation: ccp-bar-shimmer 3s linear infinite;
}

/* ── Moodboard items: refined hover ── */
.ccp-ed-mood-item {
  box-shadow: 0 1px 4px rgba(0,0,0,.1);
  transition: transform .3s var(--ccp-easing), box-shadow .3s var(--ccp-easing);
}
.ccp-ed-mood-item:hover {
  box-shadow: 0 8px 20px rgba(0,0,0,.3);
}

/* ── Drawer tabs: already use border-bottom indicator (defined above) ── */
.ccp-ed-drawer-tab {
  position: relative;
}

/* ── Light theme: Sub-day workspace ── */
body.ccp-theme-light .ccp-ed-sd-card {
  background: var(--ccp-surface);
  border-color: var(--ccp-border-subtle);
}
body.ccp-theme-light .ccp-ed-sd-head {
  border-bottom-color: var(--ccp-border-subtle);
}
body.ccp-theme-light .ccp-ed-sd-title {
  color: var(--ccp-text-secondary);
}
body.ccp-theme-light .ccp-ed-ftl-dot.gray {
  border-color: rgba(0,0,0,.2);
  background: rgba(0,0,0,.05);
}
body.ccp-theme-light .ccp-ed-ftl-line {
  background: rgba(0,0,0,.1);
}
body.ccp-theme-light .ccp-ed-staff-card .av {
  background: rgba(0,0,0,.08);
  color: var(--ccp-text-primary);
}
body.ccp-theme-light .ccp-ed-notes-area {
  background: var(--ccp-surface-sunken);
  border-color: var(--ccp-border-subtle);
  color: var(--ccp-text-primary);
}
body.ccp-theme-light .ccp-ed-stat-box {
  background: var(--ccp-surface-sunken);
}

/* ── Light theme: Day cards (Days tab) ── */
body.ccp-theme-light .ccp-ed-day-card {
  background: var(--ccp-surface);
  border-color: var(--ccp-border-subtle);
}
body.ccp-theme-light .ccp-ed-day-card.main-event {
  border-color: rgba(201,169,110,.3);
}
body.ccp-theme-light .ccp-ed-day-card.main-event .ccp-ed-day-card-head {
  background: rgba(201,169,110,.08);
}
body.ccp-theme-light .ccp-ed-day-card.is-today {
  border-color: rgba(74,170,122,.4);
  box-shadow: 0 0 0 1px rgba(74,170,122,.12) inset;
}
body.ccp-theme-light .ccp-ed-day-card.is-today .ccp-ed-day-card-head {
  background: rgba(74,170,122,.06);
}
body.ccp-theme-light .ccp-ed-dc-sub {
  color: var(--ccp-text-muted);
}
body.ccp-theme-light .ccp-ed-day-card-body {
  border-top-color: var(--ccp-border-subtle);
  background: var(--ccp-surface-sunken);
}
body.ccp-theme-light .ccp-ed-sec-title {
  color: var(--ccp-text-muted);
}
body.ccp-theme-light .ccp-ed-tl-item .ccp-ed-tl-sub {
  color: var(--ccp-text-muted);
}
body.ccp-theme-light .ccp-ed-staff-av {
  background: rgba(0,0,0,.08);
  color: var(--ccp-text-primary);
}
body.ccp-theme-light .ccp-ed-vendor-row .ccp-ed-vendor-av {
  /* keep gold gradient — brand identity works on white; dark text already set in base */
  color: #0a0a0a;
}
body.ccp-theme-light .ccp-ed-vendor-group-title {
  color: var(--ccp-text-muted);
}
body.ccp-theme-light .ccp-ed-vendor-email {
  color: var(--ccp-text-muted);
}

/* ── Light theme: Days header ── */
body.ccp-theme-light .ccp-ed-days-title {
  color: var(--ccp-text-primary);
}
body.ccp-theme-light .ccp-ed-days-title-group .sh {
  color: var(--ccp-gold);
}

/* ── Light theme: Back button ── */
body.ccp-theme-light .ccp-ed-back {
  background: var(--ccp-surface);
  border-color: var(--ccp-border-subtle);
  color: var(--ccp-text-secondary);
}

/* ── Light theme: Bubble meta ── */
body.ccp-theme-light .ccp-ed-bubble-meta {
  color: var(--ccp-text-muted);
}

/* ── Light theme: Drawer head ── */
body.ccp-theme-light .ccp-ed-drawer-head {
  border-bottom-color: var(--ccp-border-subtle);
}
body.ccp-theme-light .ccp-ed-drawer-title {
  color: var(--ccp-text-primary);
}
body.ccp-theme-light .ccp-ed-drawer-sub {
  color: var(--ccp-text-muted);
}
body.ccp-theme-light .ccp-ed-drawer-close {
  color: var(--ccp-text-muted);
}

/* ── Light theme: Drawer tabs ── */
body.ccp-theme-light .ccp-ed-drawer-tabs {
  border-bottom-color: var(--ccp-border-subtle);
}

/* ── Light theme: File icon ── */
body.ccp-theme-light .ccp-ed-file-icon {
  color: var(--ccp-text-muted);
}
body.ccp-theme-light .ccp-ed-file-name {
  color: var(--ccp-text-primary);
}
body.ccp-theme-light .ccp-ed-file-date {
  color: var(--ccp-text-muted);
}

/* ── Light theme: Nav logo ── */
body.ccp-theme-light .ccp-ed-nav-logo {
  color: var(--ccp-text-primary);
}
body.ccp-theme-light .ccp-ed-nav-crumb a {
  color: var(--ccp-text-muted);
}
body.ccp-theme-light .ccp-ed-nav-crumb b {
  color: var(--ccp-text-primary);
}
body.ccp-theme-light .ccp-ed-nav-div {
  background: rgba(0,0,0,.12);
}

/* ── Light theme: Contract & Gallery tabs ── */
body.ccp-theme-light .ccp-ed-contract-bar {
  background: rgba(0,0,0,.08);
}
body.ccp-theme-light .ccp-ed-tab-title {
  color: var(--ccp-text-primary);
}

/* ── Light theme: bento cell messages ── */
body.ccp-theme-light .ccp-ed-msg-row {
  border-bottom-color: rgba(0,0,0,.06);
}
body.ccp-theme-light .ccp-ed-msg-author {
  color: var(--ccp-text-secondary);
}
body.ccp-theme-light .ccp-ed-msg-text {
  color: var(--ccp-text-muted);
}
body.ccp-theme-light .ccp-ed-msg-time {
  color: var(--ccp-text-ghost);
}

/* ── Light theme: contract bento ── */
body.ccp-theme-light .ccp-ed-c-contract .ccp-ed-contract-bar {
  background: rgba(0,0,0,.08);
}
body.ccp-theme-light .ccp-ed-c-contract .ccp-ed-contract-foot {
  color: var(--ccp-text-muted);
}

/* ══════════════════════════════════════════════════════════════════
   TOPNAV THEME TOGGLE — elegant pill button
   Dark mode  → ☀ sun + "Dark Theme"
   Light mode → ☽ moon + "Light Theme"
══════════════════════════════════════════════════════════════════ */
.ccp-ed-theme-btn {
  display: inline-flex !important;
  align-items: center !important;
  gap: 7px !important;
  padding: 0 16px !important;
  height: 32px !important;
  background: transparent !important;
  border: 1px solid var(--ccp-border-medium) !important;
  border-radius: 100px !important;
  color: var(--ccp-text-muted) !important;
  font-family: var(--ccp-font-sans) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: .03em !important;
  text-transform: none !important;
  cursor: pointer !important;
  transition: border-color .2s, color .2s, background .2s !important;
  white-space: nowrap !important;
  flex-shrink: 0 !important;
  outline: none !important;
  box-shadow: none !important;
  line-height: 1 !important;
}
.ccp-ed-theme-btn:hover,
.ccp-ed-theme-btn:focus,
.ccp-ed-theme-btn:active {
  border-color: var(--ccp-gold) !important;
  color: var(--ccp-gold) !important;
  background: transparent !important;
  outline: none !important;
  box-shadow: none !important;
}
/* Icon: inline block, no flex weirdness */
.ccp-ed-theme-btn .ccp-ed-icon-sun,
.ccp-ed-theme-btn .ccp-ed-icon-moon {
  display: inline-block;
  flex-shrink: 0;
  vertical-align: middle;
}
/* Dark mode: show sun, hide moon */
.ccp-ed-theme-btn .ccp-ed-icon-moon { display: none; }
body.ccp-theme-light .ccp-ed-theme-btn .ccp-ed-icon-moon { display: inline-block; }
body.ccp-theme-light .ccp-ed-theme-btn .ccp-ed-icon-sun  { display: none; }
/* Label spans */
.ccp-ed-theme-lbl-dark,
.ccp-ed-theme-lbl-light { display: inline; }
.ccp-ed-theme-lbl-light              { display: none; }
body.ccp-theme-light .ccp-ed-theme-lbl-dark  { display: none; }
body.ccp-theme-light .ccp-ed-theme-lbl-light { display: inline; }
/* Mobile: icon only */
@media (max-width: 768px) {
  .ccp-ed-theme-btn { padding: 0 10px !important; gap: 0 !important; }
  .ccp-ed-theme-lbl-dark,
  .ccp-ed-theme-lbl-light { display: none !important; }
}

/* ══════════════════════════════════════════════════════════════════
   ELEMENTOR RESET.CSS DEFENSE
   hello-elementor/reset.css loads after our CSS and sets:
     button { color: #cc3366 }
     button:focus, button:hover { background: #cc3366; color: #fff }
   We beat it with !important on :focus/:active for every portal button.
   :hover already wins via higher specificity (class > element selector).
══════════════════════════════════════════════════════════════════ */

/* Navigation icon buttons (search, bell, avatar, theme toggle) */
.ccp-ed-nav-iconbtn:focus,
.ccp-ed-nav-iconbtn:active {
  background: var(--ccp-surface-raised) !important;
  color: var(--ccp-text-muted) !important;
  outline: none !important;
}
.ccp-ed-nav-iconbtn:focus-visible {
  box-shadow: 0 0 0 2px var(--ccp-gold) !important;
  outline: none !important;
}

/* Tab bar buttons */
.ccp-ed-tab:focus,
.ccp-ed-tab:active {
  background: transparent !important;
  color: var(--ccp-text-muted) !important;
  outline: none !important;
}
.ccp-ed-tab.active:focus,
.ccp-ed-tab.active:active {
  color: var(--ccp-gold) !important;
}

/* Drawer close button */
.ccp-ed-drawer-close:focus,
.ccp-ed-drawer-close:active {
  background: var(--ccp-surface-raised) !important;
  color: var(--ccp-text-muted) !important;
  outline: none !important;
}

/* Drawer tab buttons */
.ccp-ed-drawer-tab:focus,
.ccp-ed-drawer-tab:active {
  background: transparent !important;
  color: var(--ccp-text-muted) !important;
  outline: none !important;
}
.ccp-ed-drawer-tab.active:focus {
  color: var(--ccp-gold) !important;
}

/* Compose send button */
.ccp-ed-compose-send:focus,
.ccp-ed-compose-send:active {
  background: var(--ccp-gold) !important;
  color: #111 !important;
  outline: none !important;
}

/* Back button (sub-day) */
.ccp-ed-back:focus,
.ccp-ed-back:active {
  background: transparent !important;
  color: var(--ccp-text-secondary) !important;
  outline: none !important;
}

/* General portal buttons (.ccp-ed-btn variants already have !important on all rules) */
.ccp-ed-btn:focus,
.ccp-ed-btn:active {
  border-color: var(--ccp-gold) !important;
  color: var(--ccp-gold) !important;
  background: transparent !important;
  outline: none !important;
}
.ccp-ed-btn-gold:focus,
.ccp-ed-btn-gold:active {
  background: var(--ccp-gold-deep) !important;
  color: #fff !important;
  outline: none !important;
}
.ccp-ed-btn-copper:focus,
.ccp-ed-btn-copper:active {
  background: var(--ccp-copper-soft) !important;
  border-color: var(--ccp-copper) !important;
  color: var(--ccp-copper) !important;
  outline: none !important;
}

/* Sub-day navigation buttons */
.ccp-ed-subday-nav:focus,
.ccp-ed-subday-nav:active {
  background: var(--ccp-surface-raised) !important;
  color: var(--ccp-text-muted) !important;
  outline: none !important;
}

/* Save notes button */
.ccp-ed-save-notes:focus,
.ccp-ed-save-notes:active {
  background: var(--ccp-surface-raised) !important;
  color: var(--ccp-text-secondary) !important;
  outline: none !important;
}

/* Small secondary buttons (Upload in Files tab, etc.) */
.ccp-ed-btn-sm:focus,
.ccp-ed-btn-sm:active {
  border-color: var(--ccp-gold) !important;
  color: var(--ccp-gold) !important;
  background: transparent !important;
  outline: none !important;
}

/* Sub-day card action buttons (Edit, + Add Event) */
.ccp-ed-sd-action:focus,
.ccp-ed-sd-action:active {
  background: none !important;
  color: var(--ccp-gold) !important;
  outline: none !important;
}

/* ══════════════════════════════════════════════════════════════════
   LIGHT THEME — REMAINING HARD-CODED COLOR FIXES  v5.51.5
   rgba(255,255,255,x) used in dark mode must flip to rgba(0,0,0,x)
   on white backgrounds, and heavy shadows must soften.
══════════════════════════════════════════════════════════════════ */

/* IG handles rows: dark separator → light separator */
body.ccp-theme-light .ccp-ed-ig-row {
  border-bottom-color: rgba(0,0,0,.06);
}
/* Day CTA bar */
body.ccp-theme-light .ccp-ed-day-cta {
  background: rgba(0,0,0,.02);
  border-top-color: var(--ccp-border-subtle);
}
/* Drawer overlay: lighter scrim on white */
body.ccp-theme-light .ccp-ed-drawer-overlay.open {
  background: rgba(0,0,0,.3);
}
/* Drawer: softer shadow + lighter border */
body.ccp-theme-light .ccp-ed-drawer {
  box-shadow: -8px 0 40px rgba(0,0,0,.10), -2px 0 8px rgba(0,0,0,.06);
}
/* Countdown cell: no inner shadow on white */
body.ccp-theme-light .ccp-ed-c-countdown {
  box-shadow: 0 1px 4px rgba(0,0,0,.06);
}
body.ccp-theme-light .ccp-ed-c-countdown:hover {
  box-shadow: 0 4px 16px rgba(0,0,0,.10), 0 1px 4px rgba(184,146,74,.15);
}
/* Countdown number: remove dark glow, add ink shadow */
body.ccp-theme-light .ccp-ed-cd-num {
  text-shadow: none;
}
/* Bento cell shadows: softer on white */
body.ccp-theme-light .ccp-ed-cell {
  box-shadow: 0 1px 3px rgba(0,0,0,.04), 0 0 0 1px rgba(0,0,0,.03);
}
body.ccp-theme-light .ccp-ed-cell:hover {
  box-shadow: 0 4px 16px rgba(0,0,0,.08), 0 1px 4px rgba(0,0,0,.05);
}
/* Info cards: clean on white */
body.ccp-theme-light .ccp-ed-info-card {
  box-shadow: 0 1px 3px rgba(0,0,0,.04);
}
/* Gallery cards: clean elevation */
body.ccp-theme-light .ccp-ed-gallery-card {
  box-shadow: 0 1px 4px rgba(0,0,0,.06);
}
body.ccp-theme-light .ccp-ed-gallery-card:hover {
  box-shadow: 0 4px 16px rgba(0,0,0,.10);
}
/* Progress bar track: same opacity, correct base */
body.ccp-theme-light .ccp-ed-prog-bar-track {
  background: rgba(0,0,0,.08);
}
/* Mood item shadow */
body.ccp-theme-light .ccp-ed-mood-item {
  box-shadow: 0 1px 3px rgba(0,0,0,.08);
}
body.ccp-theme-light .ccp-ed-mood-item:hover {
  box-shadow: 0 4px 12px rgba(0,0,0,.14);
}
/* Message bubbles: softer on light */
body.ccp-theme-light .ccp-ed-bubble.out {
  box-shadow: 0 1px 4px rgba(184,146,74,.2);
}
body.ccp-theme-light .ccp-ed-bubble.in {
  box-shadow: 0 1px 3px rgba(0,0,0,.05);
}
/* Step row active border: green is fine, keep it */
/* Tab active glow: remove dark glow */
body.ccp-theme-light .ccp-ed-tab.active {
  text-shadow: none;
}
/* Avatar ring on light: use border instead of bg box-shadow */
body.ccp-theme-light .ccp-ed-nav-avatar-ring {
  box-shadow: 0 0 0 2px var(--ccp-surface);
}
/* Gallery card empty: slightly deeper bg on white */
body.ccp-theme-light .ccp-ed-gallery-card--empty {
  background: var(--ccp-surface-raised);
}
/* Sub-day card shadows */
body.ccp-theme-light .ccp-ed-sd-card {
  box-shadow: 0 1px 3px rgba(0,0,0,.05);
}
/* Timeline connector line: light gray */
body.ccp-theme-light .ccp-ed-tl-item + .ccp-ed-tl-item::before {
  background: rgba(0,0,0,.1);
}
/* Timeline dot: gray dot bg on light */
body.ccp-theme-light .ccp-ed-tl-dot.gray {
  background: var(--ccp-surface-raised);
  border-color: var(--ccp-border-subtle);
}
/* Vendor avatar: dark text on light bg for legibility */
body.ccp-theme-light .ccp-ed-vendor-av {
  color: var(--ccp-text-primary);
}
/* Gallery card btn: gold border is fine; add soft shadow on hover */
body.ccp-theme-light .ccp-ed-gallery-card-btn:hover {
  box-shadow: 0 2px 8px rgba(184,146,74,.25);
}
/* Msg row hover: clean light hover */
body.ccp-theme-light .ccp-ed-msg-row:hover {
  background: var(--ccp-surface-hover);
}
/* Msg unread indicator: softer gold tint */
body.ccp-theme-light .ccp-ed-msg-row.unread {
  background: rgba(184,146,74,.06);
  border-left-color: rgba(184,146,74,.3);
}
/* Contract bar: clean on white */
body.ccp-theme-light .ccp-ed-contract-bar {
  box-shadow: none;
}
/* Notice banner on light */
body.ccp-theme-light .ccp-ed-notice {
  background: var(--ccp-surface-raised);
  border-color: var(--ccp-border-subtle);
  color: var(--ccp-text-secondary);
}
/* Step icon: very faint on light */
body.ccp-theme-light .ccp-ed-step-row .ccp-ed-step-icon {
  color: rgba(0,0,0,.2);
}

/* ══════════════════════════════════════════════════════════════════
   GRAPHIC IMPROVEMENTS v5.51.5
   Philosophy: innovative ultra-elegant architect
   — premium feel, editorial restraint, purposeful motion
══════════════════════════════════════════════════════════════════ */

/* ── Countdown urgent: subtle pulse on number ── */
@keyframes ccp-count-pulse {
  0%, 100% { opacity: 1; }
  50%       { opacity: .78; }
}
.ccp-ed-cd-num.urgent {
  animation: ccp-count-pulse 2.8s ease-in-out infinite;
}

/* ── Moodboard grid: masonry-feel spacing ── */
.ccp-ed-mood-grid {
  gap: 10px;
}

/* ── File list: refined striped rhythm ── */
.ccp-ed-file-row:nth-child(even) {
  background: var(--ccp-surface-1);
}

/* ── Tab badge: pulse dot for unread ── */
.ccp-ed-tab-badge {
  transition: transform .2s var(--ccp-easing);
}
.ccp-ed-tab:hover .ccp-ed-tab-badge {
  transform: scale(1.15);
}

/* ── Step row: left accent for completed items ── */
.ccp-ed-step-row.done {
  border-left: 2px solid var(--ccp-green);
  padding-left: 14px;
}

/* ── Vendor group title: editorial uppercase ── */
.ccp-ed-vendor-group-title {
  letter-spacing: .14em;
}

/* ── Timeline item: refined hover ── */
.ccp-ed-tl-item {
  transition: transform .15s var(--ccp-easing);
}
.ccp-ed-tl-item:hover {
  transform: translateX(3px);
}


/* ── Gallery card empty state: cleaner ghost ── */
.ccp-ed-gallery-card--empty {
  opacity: .65;
}
.ccp-ed-gallery-card--empty:hover {
  opacity: .85;
  transform: none;
}

/* ── Nav breadcrumb separator: gold tint ── */
.ccp-ed-nav-crumb .sep {
  color: var(--ccp-gold);
  opacity: .4;
}

/* ── Sub-day title: refined italic ── */
.ccp-ed-subday-title .italic {
  letter-spacing: .01em;
}

/* ── Compose textarea: refined focus ring ── */
.ccp-ed-compose-input:focus {
  box-shadow: 0 0 0 2px rgba(201,169,110,.15);
  border-color: var(--ccp-gold);
}
body.ccp-theme-light .ccp-ed-compose-input:focus {
  box-shadow: 0 0 0 2px rgba(184,146,74,.12);
  border-color: var(--ccp-gold);
}

/* ── Day card sub-label: refined color ── */
.ccp-ed-dc-sub {
  letter-spacing: .02em;
}

/* ── Progress percentage: editorial weight ── */
.ccp-ed-prog-pct {
  letter-spacing: .02em;
}

/* ══════════════════════════════════════════════════════════════════
   PREMIUM MOTION  v5.51.5
   Tab-switching fade · drawer slide · scroll reveal
══════════════════════════════════════════════════════════════════ */

/* Tab view entrance: subtle fade + micro-lift */
@keyframes ccp-view-enter {
  from {
    opacity: 0;
    transform: translateY(6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.ccp-ed-view.active {
  animation: ccp-view-enter .22s var(--ccp-easing) both;
}

/* Respect user motion preference */
@media (prefers-reduced-motion: reduce) {
  .ccp-ed-view.active      { animation: none; }
  .ccp-ed-cd-num.urgent    { animation: none; }
  .ccp-ed-contract-bar-fill{ animation: none; }
  .ccp-ed-tl-item          { transition: none; }
  .ccp-ed-step-row         { transition: none; }
  .ccp-ed-vendor-row       { transition: none; }
  .ccp-ed-gallery-card     { transition: none; }
}

/* ── Compose box: micro-expand on focus ── */
.ccp-ed-compose-box {
  transition: border-color .2s var(--ccp-easing), box-shadow .2s var(--ccp-easing);
}
.ccp-ed-compose-box:focus-within {
  border-color: var(--ccp-gold);
  box-shadow: 0 0 0 2px rgba(201,169,110,.1);
}
body.ccp-theme-light .ccp-ed-compose-box:focus-within {
  box-shadow: 0 0 0 2px rgba(184,146,74,.08);
}

/* ── Tabbar: hide scrollbar but keep scroll track visible on hover ── */
.ccp-ed-tabbar:hover { scrollbar-width: thin; }

/* ── Sub-day nav buttons: refined hover ── */
.ccp-ed-subday-nav {
  transition: background .15s var(--ccp-easing), color .15s, transform .12s var(--ccp-easing);
}
.ccp-ed-subday-nav:hover {
  transform: scale(1.08);
}

/* ── Day card: refined transition ── */
.ccp-ed-day-card {
  transition: border-color .2s var(--ccp-easing), background .2s var(--ccp-easing), box-shadow .2s var(--ccp-easing);
}

/* ── File icon: type-color hover ── */
.ccp-ed-file-row:hover .ccp-ed-file-icon {
  color: var(--ccp-gold);
  transition: color .15s;
}

/* ── Light theme: tabbar enhanced contrast ── */
body.ccp-theme-light .ccp-ed-tabbar {
  box-shadow: 0 1px 0 var(--ccp-border-subtle);
}

/* ══════════════════════════════════════════════════════════════════
   TIMELINE COMPONENT — LIGHT THEME RESCUE  v5.51.5
   timeline.css uses hard-coded rgba(255,255,255,x) for all text.
   These overrides restore readability when the portal is light mode.
══════════════════════════════════════════════════════════════════ */

/* Toggle buttons (Day / Detailed) */
body.ccp-theme-light .ccp-tl-toggle-btn {
  color: var(--ccp-text-muted) !important;
  border-color: rgba(0,0,0,.15) !important;
}
body.ccp-theme-light .ccp-tl-toggle-btn:hover:not(.active) {
  color: var(--ccp-text-primary) !important;
  border-color: var(--ccp-gold) !important;
}
body.ccp-theme-light .ccp-tl-toggle-btn.active {
  background: rgba(184,146,74,.12) !important;
  color: var(--ccp-gold) !important;
  border-color: var(--ccp-gold) !important;
}

/* Detail view items */
body.ccp-theme-light .ccp-tl-detail-item {
  border-bottom-color: rgba(0,0,0,.06);
}
body.ccp-theme-light .ccp-tl-detail-dot {
  border-color: var(--ccp-surface-sunken);
}
body.ccp-theme-light .ccp-tl-detail-title {
  color: var(--ccp-text-primary);
}
body.ccp-theme-light .ccp-tl-detail-desc {
  color: var(--ccp-text-muted);
}

/* Edit mode action buttons */
body.ccp-theme-light .ccp-tl-actions button {
  border-color: rgba(0,0,0,.15) !important;
  color: var(--ccp-text-muted) !important;
}

/* Modal close + field labels */
body.ccp-theme-light .ccp-tl-modal-close {
  color: var(--ccp-text-muted);
}
body.ccp-theme-light .ccp-tl-field label {
  color: var(--ccp-text-muted);
}
body.ccp-theme-light .ccp-tl-field input,
body.ccp-theme-light .ccp-tl-field textarea,
body.ccp-theme-light .ccp-tl-field select {
  border-color: var(--ccp-border-subtle);
  background: var(--ccp-surface-sunken);
}
body.ccp-theme-light .ccp-tl-check-row label {
  color: var(--ccp-text-secondary);
}

/* Comments section */
body.ccp-theme-light .ccp-tl-comments {
  border-top-color: var(--ccp-border-subtle);
}
body.ccp-theme-light .ccp-tl-comments-title {
  color: var(--ccp-text-muted);
}
body.ccp-theme-light .ccp-tl-comment {
  border-bottom-color: rgba(0,0,0,.06);
}
body.ccp-theme-light .ccp-tl-comment-meta {
  color: var(--ccp-text-muted);
}
body.ccp-theme-light .ccp-tl-comment-meta strong {
  color: var(--ccp-text-primary);
}
body.ccp-theme-light .ccp-tl-comment-text {
  color: var(--ccp-text-secondary);
}
body.ccp-theme-light .ccp-tl-comment-del {
  color: rgba(0,0,0,.2);
}
body.ccp-theme-light .ccp-tl-comment-form textarea {
  border-color: var(--ccp-border-subtle);
}
body.ccp-theme-light .ccp-tl-empty {
  color: var(--ccp-text-ghost);
}

/* ── Light theme: compose focus ── */
body.ccp-theme-light .ccp-ed-compose-box {
  background: var(--ccp-surface-sunken);
}

/* ── Light theme: overlay for drawer ── */
body.ccp-theme-light .ccp-ed-drawer-overlay {
  background: rgba(26,26,26,.2);
}

/* ── Bento: light theme mini cells (gallery/ig) ── */
body.ccp-theme-light .ccp-ed-c-mini {
  background: var(--ccp-surface);
  border-color: var(--ccp-border-subtle);
}

/* ── Info card titles: slightly bolder ── */
.ccp-ed-info-card-title {
  font-weight: 600;
  letter-spacing: .05em;
}

/* ── Drawer title section: light gradient on dark ── */
.ccp-ed-drawer-head {
  background: linear-gradient(135deg, var(--ccp-surface) 0%, var(--ccp-surface-raised) 100%);
}

/* ── Light theme drawer head ── */
body.ccp-theme-light .ccp-ed-drawer-head {
  background: var(--ccp-surface);
  border-bottom-color: var(--ccp-border-subtle);
}

/* ══════════════════════════════════════════════════════════════════
   MOODBOARD COMPONENT — LIGHT THEME RESCUE  v5.51.5
   moodboard.css uses hard-coded rgba(245,240,235,x) cream text which
   is invisible on white backgrounds. We override it here when the
   portal is in light mode.
══════════════════════════════════════════════════════════════════ */
body.ccp-theme-light .ccp-moodboard-wrap {
  color: var(--ccp-text-primary) !important;
}
body.ccp-theme-light .ccp-mb-upload-label {
  color: var(--ccp-text-muted) !important;
}
body.ccp-theme-light .ccp-mb-upload-label span {
  color: var(--ccp-text-secondary) !important;
}
body.ccp-theme-light .ccp-mb-upload-label small {
  color: var(--ccp-text-muted) !important;
}
/* Moodboard progress bar track on light */
body.ccp-theme-light .ccp-mb-progress {
  background: rgba(0,0,0,.08) !important;
}
/* Comment panel generic text on light */
body.ccp-theme-light .ccp-mb-lb-cp-loading,
body.ccp-theme-light .ccp-mb-lb-cp-empty {
  color: rgba(245,240,235,.5); /* stays on dark lightbox bg — fine */
}
/* Upload hint text */
body.ccp-theme-light .ccp-mb-upload-hint {
  color: var(--ccp-text-muted) !important;
}
/* Items count / meta labels */
body.ccp-theme-light .ccp-mb-meta,
body.ccp-theme-light .ccp-mb-count {
  color: var(--ccp-text-muted) !important;
}

/* ══════════════════════════════════════════════════════════════════
   GRAPHIC IMPROVEMENTS v5.51.6
   Ultra-elegant architect series: entry reveals, premium depth,
   micro-interactions aligned with "The Compass" design language.
   ═══════════════════════════════════════════════════════════════ */

/* ── Progress tab: bar reveals from left when tab activates ── */
@keyframes ccp-prog-reveal {
  from { transform: scaleX(0) translateZ(0); }
  to   { transform: scaleX(1) translateZ(0); }
}
#ccp-ed-view-progress.active .ccp-ed-prog-bar-fill {
  transform-origin: left center;
  animation: ccp-prog-reveal .9s cubic-bezier(0.16, 1, 0.3, 1) both;
  animation-delay: .15s;
}
/* Step rows: staggered slide-in from bottom */
#ccp-ed-view-progress.active .ccp-ed-step-row:nth-child(1) { animation: ccp-view-enter .28s var(--ccp-easing) .10s both; }
#ccp-ed-view-progress.active .ccp-ed-step-row:nth-child(2) { animation: ccp-view-enter .28s var(--ccp-easing) .15s both; }
#ccp-ed-view-progress.active .ccp-ed-step-row:nth-child(3) { animation: ccp-view-enter .28s var(--ccp-easing) .20s both; }
#ccp-ed-view-progress.active .ccp-ed-step-row:nth-child(4) { animation: ccp-view-enter .28s var(--ccp-easing) .24s both; }
#ccp-ed-view-progress.active .ccp-ed-step-row:nth-child(5) { animation: ccp-view-enter .28s var(--ccp-easing) .28s both; }
#ccp-ed-view-progress.active .ccp-ed-step-row:nth-child(6) { animation: ccp-view-enter .28s var(--ccp-easing) .32s both; }
#ccp-ed-view-progress.active .ccp-ed-step-row:nth-child(n+7) { animation: ccp-view-enter .28s var(--ccp-easing) .35s both; }

/* ── Vendor avatar: gradient depth ── */
.ccp-ed-vendor-av {
  background: linear-gradient(135deg, var(--ccp-gold-deep) 0%, var(--ccp-gold) 100%);
  text-shadow: 0 1px 2px rgba(0,0,0,.22);
  transition: transform .18s var(--ccp-easing), box-shadow .18s var(--ccp-easing);
}
.ccp-ed-vendor-row:hover .ccp-ed-vendor-av {
  transform: scale(1.05);
  box-shadow: 0 0 0 2px rgba(201,169,110,.3);
}

/* ── Vendor row: combined hover shadow ── */
.ccp-ed-vendor-row:hover {
  box-shadow: 0 4px 16px rgba(0,0,0,.12);
}

/* ── Gallery card: gold accent line intensifies on hover ── */
/* (Note: ::before already used for the gold top-accent line — no overlay here) */
.ccp-ed-gallery-card:not(.ccp-ed-gallery-card--empty):hover {
  box-shadow: 0 8px 28px rgba(0,0,0,.25), 0 0 0 1px rgba(192,160,98,.35);
}

/* ── IG input: richer focus treatment ── */
.ccp-ed-ig-input:focus {
  box-shadow: 0 0 0 2px rgba(201,169,110,.18) !important;
}

/* ── File row: download icon hover ── */
.ccp-ed-file-dl {
  transition: opacity .15s var(--ccp-easing), transform .18s var(--ccp-easing);
}
.ccp-ed-file-row:hover .ccp-ed-file-dl {
  transform: translateY(-2px);
}

/* ── Done step: checkmark icon glow ── */
.ccp-ed-step-row.done .ccp-ed-step-icon {
  filter: drop-shadow(0 0 5px rgba(45,106,79,.35));
}

/* ── Urgent countdown: copper border pulse ── */
.ccp-ed-c-countdown .ccp-ed-cd-status.urgent {
  color: var(--ccp-copper);
}
.ccp-ed-cd-status .dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  display: inline-block;
  background: currentColor;
  margin-right: 5px;
  vertical-align: middle;
}
.ccp-ed-cd-status.urgent .dot {
  animation: ccp-count-pulse 1.8s ease-in-out infinite;
}

/* ── Suggest action cell: hover arrow ── */
.ccp-ed-c-action {
  transition: border-color .2s var(--ccp-easing), background .2s var(--ccp-easing);
  cursor: pointer;
}

/* ── Tab badge: subtle bounce on unread ── */
@keyframes ccp-badge-pop {
  0%, 100% { transform: scale(1); }
  40%       { transform: scale(1.25); }
  60%       { transform: scale(0.95); }
}
.ccp-ed-tab-badge {
  animation: ccp-badge-pop .4s var(--ccp-easing) 1;
}

/* ── IG save message: fade-in ── */
@keyframes ccp-savemsg {
  from { opacity: 0; transform: translateY(3px); }
  to   { opacity: 1; transform: translateY(0); }
}
#ccp-ed-ig-save-msg { animation: ccp-savemsg .18s var(--ccp-easing) both; }

/* ── Sub-day breadcrumb: refined separator ── */
.ccp-ed-sd-crumb .sep {
  opacity: .35;
  padding: 0 4px;
}

/* ── Progress pct: add subtle glow ── */
.ccp-ed-prog-pct {
  text-shadow: 0 0 24px rgba(184,146,74,.25);
}

/* ── File upload zone: animated border ── */
.ccp-ed-upload-zone {
  transition: border-color .2s var(--ccp-easing), background .2s var(--ccp-easing);
}
.ccp-ed-upload-zone:hover {
  border-color: var(--ccp-gold);
  background: rgba(201,169,110,.04);
}

/* ── Vendor group title: subtle ice separator ── */
.ccp-ed-vendor-group-title {
  letter-spacing: 1.4px;
}

/* ── Message compose: gold focus ring ── */
.ccp-ed-compose-box:focus-within .ccp-ed-compose-send {
  color: var(--ccp-gold);
}

/* ── Vendor group list: staggered appear on Vendors tab activate ── */
#ccp-ed-view-vendors.active .ccp-ed-vendor-row:nth-child(1) { animation: ccp-view-enter .25s var(--ccp-easing) .05s both; }
#ccp-ed-view-vendors.active .ccp-ed-vendor-row:nth-child(2) { animation: ccp-view-enter .25s var(--ccp-easing) .10s both; }
#ccp-ed-view-vendors.active .ccp-ed-vendor-row:nth-child(3) { animation: ccp-view-enter .25s var(--ccp-easing) .15s both; }
#ccp-ed-view-vendors.active .ccp-ed-vendor-row:nth-child(n+4) { animation: ccp-view-enter .25s var(--ccp-easing) .18s both; }


/* ── Files: zebra on light is handled; dark mode also gets subtlety ── */
.ccp-ed-file-list .ccp-ed-file-row:nth-child(odd) {
  background: var(--ccp-surface-1);
}
.ccp-ed-file-list .ccp-ed-file-row:nth-child(even) {
  background: var(--ccp-surface-raised);
}

/* ── prefers-reduced-motion: disable new animations ── */
@media (prefers-reduced-motion: reduce) {
  #ccp-ed-view-progress.active .ccp-ed-prog-bar-fill { animation: none; }
  #ccp-ed-view-progress.active .ccp-ed-step-row      { animation: none; }
  #ccp-ed-view-vendors.active .ccp-ed-vendor-row     { animation: none; }
  #ccp-ed-view-finance.active .ccp-ed-fin-comm-card  { animation: none; }
  .ccp-ed-vendor-av                                  { transition: none; }
  .ccp-ed-file-dl                                    { transition: none; }
  .ccp-ed-gallery-card::before                       { transition: none; }
  .ccp-ed-cd-status.urgent .dot,
  .ccp-ed-cd-status.today .dot                       { animation: none; }
  .ccp-ed-tab-badge                                  { animation: none; }
  #ccp-ed-view-overview.active .ccp-ed-bento > .ccp-ed-cell { animation: none; }
  #ccp-ed-view-overview.active .ccp-ed-hero           { animation: none; }
}

/* ══════════════════════════════════════════════════════════════════
   BENTO OVERVIEW — PREMIUM ENTRANCE SEQUENCE v5.51.6
   The overview is the landing view of The Compass. On activation,
   the hero and each bento cell cascade in with micro-stagger.
   Timing curve: expo-out (0.16, 1, 0.3, 1) = fast deceleration.
   ═══════════════════════════════════════════════════════════════ */

/* ── Hero: elegant fade + lift ── */
@keyframes ccp-hero-enter {
  from { opacity: 0; transform: translateY(4px); }
  to   { opacity: 1; transform: translateY(0); }
}
#ccp-ed-view-overview.active .ccp-ed-hero {
  animation: ccp-hero-enter .4s cubic-bezier(0.16, 1, 0.3, 1) .02s both;
}

/* ── Bento cells: cascading scale+lift ── */
@keyframes ccp-cell-enter {
  from { opacity: 0; transform: translateY(10px) scale(0.985); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
#ccp-ed-view-overview.active .ccp-ed-bento > .ccp-ed-cell:nth-child(1)  { animation: ccp-cell-enter .38s cubic-bezier(0.16,1,0.3,1) .08s both; }
#ccp-ed-view-overview.active .ccp-ed-bento > .ccp-ed-cell:nth-child(2)  { animation: ccp-cell-enter .38s cubic-bezier(0.16,1,0.3,1) .12s both; }
#ccp-ed-view-overview.active .ccp-ed-bento > .ccp-ed-cell:nth-child(3)  { animation: ccp-cell-enter .38s cubic-bezier(0.16,1,0.3,1) .16s both; }
#ccp-ed-view-overview.active .ccp-ed-bento > .ccp-ed-cell:nth-child(4)  { animation: ccp-cell-enter .38s cubic-bezier(0.16,1,0.3,1) .20s both; }
#ccp-ed-view-overview.active .ccp-ed-bento > .ccp-ed-cell:nth-child(5)  { animation: ccp-cell-enter .38s cubic-bezier(0.16,1,0.3,1) .24s both; }
#ccp-ed-view-overview.active .ccp-ed-bento > .ccp-ed-cell:nth-child(6)  { animation: ccp-cell-enter .38s cubic-bezier(0.16,1,0.3,1) .27s both; }
#ccp-ed-view-overview.active .ccp-ed-bento > .ccp-ed-cell:nth-child(7)  { animation: ccp-cell-enter .38s cubic-bezier(0.16,1,0.3,1) .30s both; }
#ccp-ed-view-overview.active .ccp-ed-bento > .ccp-ed-cell:nth-child(8)  { animation: ccp-cell-enter .38s cubic-bezier(0.16,1,0.3,1) .33s both; }
#ccp-ed-view-overview.active .ccp-ed-bento > .ccp-ed-cell:nth-child(n+9){ animation: ccp-cell-enter .38s cubic-bezier(0.16,1,0.3,1) .36s both; }

/* ── Gallery tab: card cascade ── */
#ccp-ed-view-gallery.active .ccp-ed-gallery-card:nth-child(1) { animation: ccp-cell-enter .35s cubic-bezier(0.16,1,0.3,1) .05s both; }
#ccp-ed-view-gallery.active .ccp-ed-gallery-card:nth-child(2) { animation: ccp-cell-enter .35s cubic-bezier(0.16,1,0.3,1) .10s both; }
#ccp-ed-view-gallery.active .ccp-ed-gallery-card:nth-child(3) { animation: ccp-cell-enter .35s cubic-bezier(0.16,1,0.3,1) .15s both; }
#ccp-ed-view-gallery.active .ccp-ed-gallery-card:nth-child(n+4){ animation: ccp-cell-enter .35s cubic-bezier(0.16,1,0.3,1) .19s both; }

/* ── Files tab: rows slide in from left ── */
@keyframes ccp-row-enter {
  from { opacity: 0; transform: translateX(-8px); }
  to   { opacity: 1; transform: translateX(0); }
}
#ccp-ed-view-files.active .ccp-ed-file-row:nth-child(1) { animation: ccp-row-enter .28s var(--ccp-easing) .05s both; }
#ccp-ed-view-files.active .ccp-ed-file-row:nth-child(2) { animation: ccp-row-enter .28s var(--ccp-easing) .10s both; }
#ccp-ed-view-files.active .ccp-ed-file-row:nth-child(3) { animation: ccp-row-enter .28s var(--ccp-easing) .14s both; }
#ccp-ed-view-files.active .ccp-ed-file-row:nth-child(n+4){ animation: ccp-row-enter .28s var(--ccp-easing) .17s both; }

/* ── prefers-reduced-motion additions ── */
@media (prefers-reduced-motion: reduce) {
  #ccp-ed-view-overview.active .ccp-ed-hero              { animation: none; }
  #ccp-ed-view-overview.active .ccp-ed-bento > .ccp-ed-cell { animation: none; }
  #ccp-ed-view-gallery.active .ccp-ed-gallery-card       { animation: none; }
  #ccp-ed-view-files.active .ccp-ed-file-row             { animation: none; }
}

/* ══════════════════════════════════════════════════════════════════
   REMAINING TAB ENTRANCE SEQUENCES + TYPOGRAPHY POLISH — v5.51.7
══════════════════════════════════════════════════════════════════ */

/* ── Days tab: day cards cascade down ── */
#ccp-ed-view-days.active .ccp-ed-day-card:nth-child(1)   { animation: ccp-cell-enter .34s cubic-bezier(0.16,1,0.3,1) .06s both; }
#ccp-ed-view-days.active .ccp-ed-day-card:nth-child(2)   { animation: ccp-cell-enter .34s cubic-bezier(0.16,1,0.3,1) .12s both; }
#ccp-ed-view-days.active .ccp-ed-day-card:nth-child(3)   { animation: ccp-cell-enter .34s cubic-bezier(0.16,1,0.3,1) .17s both; }
#ccp-ed-view-days.active .ccp-ed-day-card:nth-child(n+4) { animation: ccp-cell-enter .34s cubic-bezier(0.16,1,0.3,1) .21s both; }

/* ── Timeline tab: items slide from left ── */
#ccp-ed-view-timeline.active .ccp-ed-tl-item:nth-child(1)   { animation: ccp-row-enter .26s var(--ccp-easing) .04s both; }
#ccp-ed-view-timeline.active .ccp-ed-tl-item:nth-child(2)   { animation: ccp-row-enter .26s var(--ccp-easing) .08s both; }
#ccp-ed-view-timeline.active .ccp-ed-tl-item:nth-child(3)   { animation: ccp-row-enter .26s var(--ccp-easing) .12s both; }
#ccp-ed-view-timeline.active .ccp-ed-tl-item:nth-child(4)   { animation: ccp-row-enter .26s var(--ccp-easing) .15s both; }
#ccp-ed-view-timeline.active .ccp-ed-tl-item:nth-child(5)   { animation: ccp-row-enter .26s var(--ccp-easing) .18s both; }
#ccp-ed-view-timeline.active .ccp-ed-tl-item:nth-child(n+6) { animation: ccp-row-enter .26s var(--ccp-easing) .20s both; }

/* ── Contract tab: info cards + bar fill reveal ── */
@keyframes ccp-bar-grow {
  from { transform: scaleX(0) translateZ(0); }
  to   { transform: scaleX(1) translateZ(0); }
}
#ccp-ed-view-contract.active .ccp-ed-info-card:nth-child(1)   { animation: ccp-view-enter .32s var(--ccp-easing) .05s both; }
#ccp-ed-view-contract.active .ccp-ed-info-card:nth-child(2)   { animation: ccp-view-enter .32s var(--ccp-easing) .12s both; }
#ccp-ed-view-contract.active .ccp-ed-info-card:nth-child(n+3) { animation: ccp-view-enter .32s var(--ccp-easing) .18s both; }
#ccp-ed-view-contract.active .ccp-ed-contract-bar-fill {
  transform-origin: left center;
  animation: ccp-bar-grow .85s cubic-bezier(0.16, 1, 0.3, 1) .3s both;
}

/* ── Moodboard tab: grid items cascade ── */
#ccp-ed-view-moodboard.active .ccp-ed-mood-item:nth-child(1)   { animation: ccp-cell-enter .32s cubic-bezier(0.16,1,0.3,1) .05s both; }
#ccp-ed-view-moodboard.active .ccp-ed-mood-item:nth-child(2)   { animation: ccp-cell-enter .32s cubic-bezier(0.16,1,0.3,1) .09s both; }
#ccp-ed-view-moodboard.active .ccp-ed-mood-item:nth-child(3)   { animation: ccp-cell-enter .32s cubic-bezier(0.16,1,0.3,1) .13s both; }
#ccp-ed-view-moodboard.active .ccp-ed-mood-item:nth-child(4)   { animation: ccp-cell-enter .32s cubic-bezier(0.16,1,0.3,1) .16s both; }
#ccp-ed-view-moodboard.active .ccp-ed-mood-item:nth-child(5)   { animation: ccp-cell-enter .32s cubic-bezier(0.16,1,0.3,1) .19s both; }
#ccp-ed-view-moodboard.active .ccp-ed-mood-item:nth-child(6)   { animation: ccp-cell-enter .32s cubic-bezier(0.16,1,0.3,1) .21s both; }
#ccp-ed-view-moodboard.active .ccp-ed-mood-item:nth-child(n+7) { animation: ccp-cell-enter .32s cubic-bezier(0.16,1,0.3,1) .23s both; }

/* ── IG Caption tab: generator container enters ── */
#ccp-ed-view-ig-caption.active .ccp-caption-generator {
  animation: ccp-view-enter .30s var(--ccp-easing) .05s both;
}

/* ── IG Handles tab: info cards + rows slide in ── */
#ccp-ed-view-ig-handles.active .ccp-ed-info-card:nth-child(1)  { animation: ccp-view-enter .28s var(--ccp-easing) .04s both; }
#ccp-ed-view-ig-handles.active .ccp-ed-info-card:nth-child(2)  { animation: ccp-view-enter .28s var(--ccp-easing) .10s both; }
#ccp-ed-view-ig-handles.active .ccp-ed-ig-row:nth-child(1)     { animation: ccp-row-enter .24s var(--ccp-easing) .06s both; }
#ccp-ed-view-ig-handles.active .ccp-ed-ig-row:nth-child(2)     { animation: ccp-row-enter .24s var(--ccp-easing) .10s both; }
#ccp-ed-view-ig-handles.active .ccp-ed-ig-row:nth-child(3)     { animation: ccp-row-enter .24s var(--ccp-easing) .14s both; }
#ccp-ed-view-ig-handles.active .ccp-ed-ig-row:nth-child(n+4)   { animation: ccp-row-enter .24s var(--ccp-easing) .17s both; }

/* ── Typography: tabular numerals for amounts ── */
.ccp-ed-contract-main,
.ccp-ed-contract-paid,
.ccp-ed-info-row > span:last-child,
.ccp-ed-prog-pct { font-variant-numeric: tabular-nums; }

/* ── prefers-reduced-motion: remaining tab animations ── */
@media (prefers-reduced-motion: reduce) {
  #ccp-ed-view-days.active .ccp-ed-day-card             { animation: none; }
  #ccp-ed-view-timeline.active .ccp-ed-tl-item          { animation: none; }
  #ccp-ed-view-contract.active .ccp-ed-info-card        { animation: none; }
  #ccp-ed-view-contract.active .ccp-ed-contract-bar-fill{ animation: none; }
  #ccp-ed-view-moodboard.active .ccp-ed-mood-item       { animation: none; }
  #ccp-ed-view-ig-caption.active .ccp-caption-generator { animation: none; }
  #ccp-ed-view-ig-handles.active .ccp-ed-info-card      { animation: none; }
  #ccp-ed-view-ig-handles.active .ccp-ed-ig-row         { animation: none; }
}

/* ══════════════════════════════════════════════════════════════════
   SUB-DAY ENTRANCE + SCROLLBAR + PREMIUM POLISH — v5.51.8
══════════════════════════════════════════════════════════════════ */

/* ── Sub-day workspace: cascading entrance ── */
#ccp-ed-view-subday.active .ccp-ed-back {
  animation: ccp-row-enter .22s var(--ccp-easing) .01s both;
}
#ccp-ed-view-subday.active .ccp-ed-subday-hero {
  animation: ccp-hero-enter .35s cubic-bezier(0.16, 1, 0.3, 1) .04s both;
}
#ccp-ed-view-subday.active .ccp-ed-sd-card:nth-child(1)   { animation: ccp-view-enter .30s var(--ccp-easing) .09s both; }
#ccp-ed-view-subday.active .ccp-ed-sd-card:nth-child(2)   { animation: ccp-view-enter .30s var(--ccp-easing) .15s both; }
#ccp-ed-view-subday.active .ccp-ed-sd-card:nth-child(3)   { animation: ccp-view-enter .30s var(--ccp-easing) .20s both; }
#ccp-ed-view-subday.active .ccp-ed-sd-card:nth-child(n+4) { animation: ccp-view-enter .30s var(--ccp-easing) .24s both; }

/* ── Firefox thin scrollbar — views + drawer ── */
.ccp-ed-view.active {
  scrollbar-width: thin;
  scrollbar-color: var(--ccp-border-medium) transparent;
}
.ccp-ed-drawer-body {
  scrollbar-width: thin;
  scrollbar-color: var(--ccp-border-medium) transparent;
}

/* ── Fact cell values: tabular numerals ── */
.ccp-ed-c-fact .val { font-variant-numeric: tabular-nums; }

/* ── Day card hover: depth shadow ── */
.ccp-ed-day-card:hover {
  box-shadow: 0 4px 16px rgba(0,0,0,.12);
}
.ccp-ed-day-card.main-event:hover {
  box-shadow: 0 4px 20px rgba(201,169,110,.14);
}

/* ── Contract bar brightness on cell hover ── */
.ccp-ed-c-contract:hover .ccp-ed-contract-bar-fill {
  filter: brightness(1.08);
  transition: filter .25s var(--ccp-easing);
}

/* ── Staff card: hover lift ── */
.ccp-ed-staff-card {
  transition: background .15s var(--ccp-easing), box-shadow .15s var(--ccp-easing);
}
.ccp-ed-staff-card:hover {
  background: var(--ccp-surface-hover);
  box-shadow: 0 2px 8px rgba(0,0,0,.1);
}

/* ── Full-timeline item: richer dot on hover ── */
.ccp-ed-ftl-item {
  transition: transform .15s var(--ccp-easing);
}
.ccp-ed-ftl-item:hover { transform: translateX(2px); }

/* ── prefers-reduced-motion: sub-day entrance ── */
@media (prefers-reduced-motion: reduce) {
  #ccp-ed-view-subday.active .ccp-ed-back         { animation: none; }
  #ccp-ed-view-subday.active .ccp-ed-subday-hero   { animation: none; }
  #ccp-ed-view-subday.active .ccp-ed-sd-card       { animation: none; }
  .ccp-ed-ftl-item:hover                           { transform: none; }
}

/* ══════════════════════════════════════════════════════════════════
   GRAPHIC IMPROVEMENTS v5.51.9
   Philosophy: innovative ultra-elegant architect
   Focus: Commission card accent · IG handles typography · Files row
          polish · bento overview depth refinement
══════════════════════════════════════════════════════════════════ */

/* ── Finance tab: gold left-border accent on WP Commission card ── */
.ccp-ed-fin-comm-card {
  border-left: 3px solid var(--ccp-gold) !important;
}
.ccp-ed-fin-comm-card .ccp-ed-info-card-title {
  letter-spacing: .04em;
}

/* ── IG Handles tab: monospace handle display ── */
.ccp-ed-ig-input {
  font-variant-numeric: tabular-nums;
  caret-color: var(--ccp-gold);
}
.ccp-ed-ig-input::placeholder { opacity: .45; }

/* ── IG row divider: softer than hard rgba-white ── */
.ccp-ed-ig-row {
  transition: background .15s var(--ccp-easing);
}
.ccp-ed-ig-row:hover { background: var(--ccp-surface-raised); }

/* ── Files tab: row hover elevation ── */
.ccp-ed-file-row {
  transition: background .12s var(--ccp-easing), padding-left .12s var(--ccp-easing);
  border-radius: 6px;
}
.ccp-ed-file-row:hover {
  background: var(--ccp-surface-raised);
  padding-left: 4px;
}

/* ── Day card: main-event glow refinement ── */
.ccp-ed-day-card.main-event {
  box-shadow: 0 0 0 1px rgba(201,169,110,.25), 0 4px 16px rgba(201,169,110,.1);
}
.ccp-ed-day-card.main-event:hover {
  box-shadow: 0 0 0 1px rgba(201,169,110,.4), 0 8px 24px rgba(201,169,110,.16);
}

/* ── Empty tab state: more editorial ── */
.ccp-ed-empty-tab {
  font-family: 'IBM Plex Sans', sans-serif;
  font-size: 13px;
  letter-spacing: .01em;
  opacity: .6;
}

/* ── prefers-reduced-motion: v5.51.9 ── */
@media (prefers-reduced-motion: reduce) {
  .ccp-ed-ig-row:hover   { background: none; }
  .ccp-ed-file-row:hover { padding-left: 0; }
}

/* ══════════════════════════════════════════════════════════════════
   GRAPHIC IMPROVEMENTS v5.52.0
   Philosophy: innovative ultra-elegant architect
   Focus: notes textarea gold polish · ftl entrance cascade ·
          checklist hover · ftl connector gradient · stat-box lift
══════════════════════════════════════════════════════════════════ */

/* ── Notes textarea: gold caret + focus ring to match compose ── */
.ccp-ed-notes-area {
  caret-color: var(--ccp-gold);
}
.ccp-ed-notes-area:focus {
  border-color: var(--ccp-border-strong);
  box-shadow: 0 0 0 2px rgba(201,169,110,.15);
}
body.ccp-theme-light .ccp-ed-notes-area:focus {
  box-shadow: 0 0 0 2px rgba(184,146,74,.12);
}

/* ── Full-timeline items: staggered entrance when sub-day opens ── */
#ccp-ed-view-subday.active .ccp-ed-ftl-item:nth-child(1)   { animation: ccp-row-enter .24s var(--ccp-easing) .18s both; }
#ccp-ed-view-subday.active .ccp-ed-ftl-item:nth-child(2)   { animation: ccp-row-enter .24s var(--ccp-easing) .22s both; }
#ccp-ed-view-subday.active .ccp-ed-ftl-item:nth-child(3)   { animation: ccp-row-enter .24s var(--ccp-easing) .26s both; }
#ccp-ed-view-subday.active .ccp-ed-ftl-item:nth-child(4)   { animation: ccp-row-enter .24s var(--ccp-easing) .29s both; }
#ccp-ed-view-subday.active .ccp-ed-ftl-item:nth-child(n+5) { animation: ccp-row-enter .24s var(--ccp-easing) .32s both; }

/* ── Full-timeline connector line: gradient fade (less mechanical) ── */
.ccp-ed-ftl-line {
  background: linear-gradient(to bottom, var(--ccp-border-medium) 0%, transparent 100%);
}
body.ccp-theme-light .ccp-ed-ftl-line {
  background: linear-gradient(to bottom, rgba(0,0,0,.15) 0%, rgba(0,0,0,.03) 100%);
}

/* ── Checklist items: hover highlight for interactive feel ── */
.ccp-ed-check-item {
  border-radius: 5px;
  padding-left: 5px;
  padding-right: 5px;
  transition: background .12s var(--ccp-easing);
}
.ccp-ed-check-item:hover { background: var(--ccp-surface-raised); }
body.ccp-theme-light .ccp-ed-check-item:hover { background: var(--ccp-surface-hover); }

/* ── Stat boxes: subtle lift on hover (sub-day stats) ── */
.ccp-ed-stat-box {
  transition: background .15s var(--ccp-easing), box-shadow .15s var(--ccp-easing), transform .15s var(--ccp-easing);
  cursor: default;
}
.ccp-ed-stat-box:hover {
  background: var(--ccp-surface-hover);
  box-shadow: 0 2px 8px rgba(0,0,0,.1);
  transform: translateY(-1px);
}
body.ccp-theme-light .ccp-ed-stat-box:hover {
  box-shadow: 0 2px 6px rgba(0,0,0,.07);
}

/* ── Day notes border-left: gold accent on hover ── */
.ccp-ed-day-notes {
  transition: border-color .2s var(--ccp-easing);
}
.ccp-ed-day-card.main-event .ccp-ed-day-notes {
  border-left-color: rgba(201,169,110,.4);
}

/* ── Staff avatar: apply gradient depth (matches vendor-av treatment) ── */
.ccp-ed-staff-av,
.ccp-ed-staff-card .av {
  background: linear-gradient(135deg, var(--ccp-gold-deep) 0%, var(--ccp-gold) 100%);
  color: #0a0a0a;
  text-shadow: 0 1px 2px rgba(0,0,0,.18);
}
/* Light mode: gold gradient visible — override gray bg from earlier rule */
body.ccp-theme-light .ccp-ed-staff-av,
body.ccp-theme-light .ccp-ed-staff-card .av {
  background: linear-gradient(135deg, var(--ccp-gold-deep) 0%, var(--ccp-gold) 100%);
  color: #0a0a0a;
}

/* ── prefers-reduced-motion: v5.52.0 ── */
@media (prefers-reduced-motion: reduce) {
  #ccp-ed-view-subday.active .ccp-ed-ftl-item { animation: none; }
  .ccp-ed-check-item  { transition: none; }
  .ccp-ed-stat-box    { transition: none; }
  .ccp-ed-day-notes   { transition: none; }
}

/* ══════════════════════════════════════════════════════════════════
   GRAPHIC IMPROVEMENTS v5.52.1
   Philosophy: innovative ultra-elegant architect
   Focus: gallery card light shadow · info card hover ·
          countdown gold hover · message row border quality
══════════════════════════════════════════════════════════════════ */

/* ── Gallery card hover: soften shadow in light mode ── */
body.ccp-theme-light .ccp-ed-gallery-card:hover {
  box-shadow: 0 4px 16px rgba(0,0,0,.08), 0 0 0 1px rgba(133,99,50,.2);
}
/* Gallery card ::before accent: full opacity in light mode (more visual weight) */
body.ccp-theme-light .ccp-ed-gallery-card:not(.ccp-ed-gallery-card--empty)::before {
  opacity: 1;
}

/* ── Info cards: add hover elevation (currently static) ── */
.ccp-ed-info-card {
  transition: box-shadow .18s var(--ccp-easing), border-color .18s var(--ccp-easing);
}
.ccp-ed-info-card:hover {
  box-shadow: 0 4px 16px rgba(0,0,0,.1);
  border-color: var(--ccp-border-medium);
}
body.ccp-theme-light .ccp-ed-info-card:hover {
  box-shadow: 0 2px 10px rgba(0,0,0,.06);
  border-color: var(--ccp-border-medium);
}

/* ── Countdown cell: gold glow on hover (hero cell) ── */
.ccp-ed-c-countdown:hover {
  border-color: rgba(201,169,110,.5);
  box-shadow: 0 0 0 1px rgba(201,169,110,.15), 0 8px 32px rgba(201,169,110,.1);
}
body.ccp-theme-light .ccp-ed-c-countdown:hover {
  border-color: rgba(133,99,50,.3);
  box-shadow: 0 0 0 1px rgba(133,99,50,.1), 0 6px 20px rgba(133,99,50,.08);
}

/* ── Message rows: upgrade dashed border → solid micro-line (more refined) ── */
.ccp-ed-msg-row {
  border-bottom-style: solid;
  border-bottom-color: var(--ccp-border-subtle);
  border-bottom-width: 1px;
}

/* ── Info card title: slight color upgrade for better hierarchy ── */
.ccp-ed-info-card-title {
  background: linear-gradient(180deg, transparent, rgba(255,255,255,.02));
}
body.ccp-theme-light .ccp-ed-info-card-title {
  background: linear-gradient(180deg, transparent, rgba(0,0,0,.015));
}

/* ── Tag pills: micro-elevate on info rows for legibility ── */
.ccp-ed-info-row .ccp-ed-tag {
  line-height: 1.3;
}

/* ── prefers-reduced-motion: v5.52.1 ── */
@media (prefers-reduced-motion: reduce) {
  .ccp-ed-info-card  { transition: none; }
  .ccp-ed-c-countdown { transition: none; }
}

/* ══════════════════════════════════════════════════════════════════
   GRAPHIC REFINEMENTS v5.52.3 — Ultra-Elegant Architect Series
   Fine details that elevate the editorial quality of every tab.
══════════════════════════════════════════════════════════════════ */

/* ── Day card: gold accent strip on main-event ── */
/* A 3px left border acts as a visual landmark: "this is the wedding day". */
.ccp-ed-day-card.main-event {
  border-left: 3px solid rgba(201,169,110,.55) !important;
}
body.ccp-theme-light .ccp-ed-day-card.main-event {
  border-left: 3px solid rgba(133,99,50,.45) !important;
}

/* ── Day card body: notes left border → gold gradient pillar ── */
/* Pseudo-element approach: reliable on all backgrounds. */
.ccp-ed-day-notes {
  border-left: none;
  padding-left: 13px;
  position: relative;
}
.ccp-ed-day-notes::before {
  content: '';
  position: absolute;
  left: 0;
  top: 2px;
  bottom: 2px;
  width: 2px;
  background: linear-gradient(to bottom, rgba(201,169,110,.55), rgba(201,169,110,.08));
  border-radius: 1px;
}

/* ── Day card: mini-timeline connector → gold gradient thread ── */
.ccp-ed-tl-item + .ccp-ed-tl-item::before {
  background: linear-gradient(to bottom, rgba(201,169,110,.35), transparent);
  width: 1px;
}

/* ── Staff rows: dashed → solid (matches message-row upgrade) ── */
.ccp-ed-staff-row {
  border-bottom-style: solid;
  border-bottom-color: var(--ccp-border-subtle);
}

/* ── Checklist items: dashed → solid ── */
.ccp-ed-check-item {
  border-bottom-style: solid;
  border-bottom-color: var(--ccp-border-subtle);
}

/* ── Vendor group title: gold-tinted separator (more editorial) ── */
.ccp-ed-vendor-group-title {
  border-bottom-color: rgba(201,169,110,.18);
}
body.ccp-theme-light .ccp-ed-vendor-group-title {
  border-bottom-color: rgba(133,99,50,.15);
}

/* ── Vendor avatar: gold ring on row hover ── */
.ccp-ed-vendor-row:hover .ccp-ed-vendor-av {
  box-shadow: 0 0 0 2px rgba(201,169,110,.4);
}
body.ccp-theme-light .ccp-ed-vendor-row:hover .ccp-ed-vendor-av {
  box-shadow: 0 0 0 2px rgba(133,99,50,.3);
}

/* ── Gallery card: crop label bottom text — more readable ── */
.ccp-ed-gallery-card-label {
  letter-spacing: .04em;
}

/* ── Info card: subtle inner top shadow (depth cue) ── */
.ccp-ed-info-card {
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
}
body.ccp-theme-light .ccp-ed-info-card {
  box-shadow: inset 0 1px 0 rgba(0,0,0,.03);
}

/* ── Day card head: fade transition on hover bg ── */
.ccp-ed-day-card-head {
  transition: background .18s var(--ccp-easing, ease);
}

/* ── Section title separator line: gold tint ── */
.ccp-ed-sec-title::after {
  background: linear-gradient(to right, var(--ccp-border-subtle), transparent);
}

/* ── prefers-reduced-motion: v5.52.3 additions ── */
@media (prefers-reduced-motion: reduce) {
  .ccp-ed-day-card-head { transition: none; }
}

/* ══════════════════════════════════════════════════════════════════
   GRAPHIC IMPROVEMENTS v5.52.4 — Ultra-Elegant Architect Series
   Focus: Progress roadmap threading · file interaction ·
          notes main-event brightening · step done accent ·
          tab overflow indicator · upload zone pulse
══════════════════════════════════════════════════════════════════ */

/* ── Progress steps: gold connector threads between rows ── */
/* A 1px gold thread runs through the 4px gap, turning done
   transitions into a proper roadmap. The icon center is at
   padding-left(16) + half-icon(7) = 23px from the left edge. */
.ccp-ed-step-row:not(:last-child) {
  position: relative;
}
.ccp-ed-step-row:not(:last-child)::after {
  content: '';
  position: absolute;
  left: 22px;
  top: 100%;
  height: 4px;
  width: 1px;
  background: var(--ccp-border-medium);
  pointer-events: none;
  z-index: 1;
}
.ccp-ed-step-row.done:not(:last-child)::after {
  background: rgba(201,169,110,.45);
}

/* ── Step row done: left gold accent strip ── */
/* A 2px solid gold left border marks completed milestones clearly. */
.ccp-ed-step-row.done {
  border-left-color: rgba(201,169,110,.5);
  border-left-width: 2px;
  padding-left: 15px; /* compensate 1px extra border */
}
body.ccp-theme-light .ccp-ed-step-row.done {
  border-left-color: rgba(133,99,50,.4);
}

/* ── Step row: hover micro-nudge (interactive feedback) ── */
.ccp-ed-step-row {
  transition: background .12s var(--ccp-easing), border-color .12s var(--ccp-easing), transform .12s var(--ccp-easing);
  cursor: default;
}
.ccp-ed-step-row:hover {
  background: var(--ccp-surface-raised);
  transform: translateX(2px);
}
body.ccp-theme-light .ccp-ed-step-row:hover {
  background: var(--ccp-surface-hover);
}

/* ── Notes: main-event brightens ::before gradient on hover ── */
.ccp-ed-day-card.main-event .ccp-ed-day-notes::before {
  background: linear-gradient(to bottom, rgba(201,169,110,.7), rgba(201,169,110,.12));
  transition: opacity .2s var(--ccp-easing);
}
.ccp-ed-day-card.main-event:hover .ccp-ed-day-notes::before {
  opacity: 1;
}
body.ccp-theme-light .ccp-ed-day-card.main-event .ccp-ed-day-notes::before {
  background: linear-gradient(to bottom, rgba(133,99,50,.6), rgba(133,99,50,.08));
}

/* ── File download arrow: bounce on hover ── */
@keyframes ccp-dl-bounce {
  0%   { transform: translateY(0); }
  40%  { transform: translateY(3px); }
  70%  { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
.ccp-ed-file-dl:hover {
  animation: ccp-dl-bounce .35s var(--ccp-easing) both;
  opacity: 1;
}

/* ── Tab bar: right-edge fade when tabs overflow on mobile ── */
/* A gradient overlay signals that more tabs exist to the right. */
.ccp-ed-tabbar {
  position: relative;
}
.ccp-ed-tabbar::after {
  content: '';
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 32px;
  background: linear-gradient(to right, transparent, var(--ccp-surface));
  pointer-events: none;
  opacity: 0;
  transition: opacity .2s;
}
/* Visible only when tabbar has horizontal scroll — JS adds .is-overflowing */
.ccp-ed-tabbar.is-overflowing::after { opacity: 1; }

/* ── Upload zone: active drag-over pulse ── */
@keyframes ccp-upload-pulse {
  0%, 100% { border-color: var(--ccp-gold); box-shadow: 0 0 0 2px rgba(201,169,110,.1); }
  50%       { border-color: var(--ccp-gold); box-shadow: 0 0 0 4px rgba(201,169,110,.2); }
}
@keyframes ccp-dot-pulse {
  0%, 100% { box-shadow: 0 0 0 2px rgba(74,170,122,.15); }
  50%       { box-shadow: 0 0 0 5px rgba(74,170,122,.28); }
}
.ccp-ed-upload-zone.drag-over {
  animation: ccp-upload-pulse .8s ease-in-out infinite;
  background: rgba(201,169,110,.05);
}

/* ── IG handles row: focus ring on input ── */
.ccp-ed-ig-row:focus-within {
  background: var(--ccp-surface-raised);
  border-radius: 6px;
}
body.ccp-theme-light .ccp-ed-ig-row:focus-within {
  background: var(--ccp-surface-hover);
}

/* ── prefers-reduced-motion: v5.52.4 additions ── */
@media (prefers-reduced-motion: reduce) {
  .ccp-ed-step-row         { transition: none; transform: none !important; }
  .ccp-ed-file-dl:hover    { animation: none; }
  .ccp-ed-upload-zone.drag-over { animation: none; }
  .ccp-ed-step-row:hover   { transform: none; }
}

/* ══════════════════════════════════════════════════════════════════
   GRAPHIC IMPROVEMENTS v5.52.5 — Ultra-Elegant Architect Series
   Focus: bento overview depth · hero tag separator · countdown glow ·
          gallery icon hover · tag muted light-mode fix · fact nums
══════════════════════════════════════════════════════════════════ */

/* ── Countdown number: gold depth shadow ── */
/* The 80px Bebas Neue number is the emotional core of the overview.
   A very faint radial shadow adds physical weight without ostentation. */
.ccp-ed-cd-num {
  text-shadow: 0 4px 24px rgba(201,169,110,.18);
}
.ccp-ed-cd-num.urgent {
  text-shadow: 0 4px 24px rgba(196,127,106,.18);
}
body.ccp-theme-light .ccp-ed-cd-num {
  text-shadow: 0 2px 10px rgba(133,99,50,.10);
}

/* ── Hero tag: gold micro-separator after text ── */
/* "WEDDING ────" — a 28px gold rule reads as a typographic ornament. */
.ccp-ed-hero-tag {
  display: flex;
  align-items: center;
  gap: 10px;
}
.ccp-ed-hero-tag::after {
  content: '';
  display: inline-block;
  width: 24px;
  height: 1px;
  background: rgba(201,169,110,.5);
  flex-shrink: 0;
}
body.ccp-theme-light .ccp-ed-hero-tag::after {
  background: rgba(133,99,50,.4);
}

/* ── Bento cell: corner micro-glow on hover ── */
/* A very subtle radial gradient in the top-right corner lifts the
   cell toward the viewer — completing the translateY(-2px) hover. */
.ccp-ed-cell::after {
  content: '';
  position: absolute;
  top: 0; right: 0;
  width: 80px; height: 80px;
  background: radial-gradient(circle at top right, rgba(201,169,110,.07), transparent 70%);
  border-radius: 0 12px 0 0;
  pointer-events: none;
  opacity: 0;
  transition: opacity .25s var(--ccp-easing);
}
.ccp-ed-cell:hover::after { opacity: 1; }

/* ── Gallery card icon: scale on hover ── */
.ccp-ed-gallery-card-icon svg {
  transition: transform .25s var(--ccp-easing);
}
.ccp-ed-gallery-card:hover .ccp-ed-gallery-card-icon svg {
  transform: scale(1.12) translateY(-1px);
}

/* ── Tag muted: light mode fix ── */
/* rgba(255,255,255,.07) bg on light = invisible; flip to neutral gray. */
body.ccp-theme-light .ccp-ed-tag--muted {
  background: rgba(0,0,0,.06);
  color: var(--ccp-text-muted);
}

/* ── Fact val: tabular numerals for alignment ── */
.ccp-ed-c-fact .val {
  font-variant-numeric: tabular-nums;
}

/* ── Contract main amount: tabular nums (already on info rows) ── */
/* Belt-and-suspenders: ensure the large overview amount is tabular. */
.ccp-ed-contract-main {
  font-variant-numeric: tabular-nums;
}

/* ── prefers-reduced-motion: v5.52.5 ── */
@media (prefers-reduced-motion: reduce) {
  .ccp-ed-cell::after          { transition: none; }
  .ccp-ed-gallery-card-icon svg { transition: none; }
  .ccp-ed-gallery-card:hover .ccp-ed-gallery-card-icon svg { transform: none; }
}

/* ══════════════════════════════════════════════════════════════════
   Gallery Deliveries — Polaroid B3  (v7.13.0 rev2)
   Card = <a> or <div> · portrait 3:4 · L-brackets · circle icon
══════════════════════════════════════════════════════════════════ */

.ccp-ed-pol-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px 20px;
  padding: 4px 2px 32px;
}

@media (max-width: 980px) {
  .ccp-ed-pol-grid { grid-template-columns: repeat(2, 1fr); gap: 28px 16px; }
}
@media (max-width: 500px) {
  .ccp-ed-pol-grid { grid-template-columns: repeat(2, 1fr); gap: 20px 10px; }
}

/* ── Card wrapper (<a> or <div>) ── */
.ccp-ed-pol-card {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
  cursor: default;
}

a.ccp-ed-pol-card { cursor: pointer; }

/* Hover lift — only on <a> cards that are not pending */
a.ccp-ed-pol-card:not(.ccp-ed-pol-card--pending):hover .ccp-ed-pol-frame {
  transform: translateY(-5px) rotate(-0.35deg);
  box-shadow:
    0 22px 48px rgba(0,0,0,.62),
    0 5px 14px rgba(0,0,0,.35),
    inset 0 0 0 1px rgba(255,255,255,.11);
}

/* Inactive: completely dimmed */
.ccp-ed-pol-card--inactive {
  opacity: .22;
  pointer-events: none;
}

/* Pending: subtle dimming (less aggressive for readability) */
.ccp-ed-pol-card--pending { opacity: .68; transition: opacity .3s ease, transform .3s ease; }
.ccp-ed-pol-card--pending:hover { opacity: .92; }
.ccp-ed-pol-card--pending:hover .ccp-ed-pol-frame {
  transform: translateY(-3px);
  box-shadow:
    0 14px 32px rgba(0,0,0,.5),
    0 4px 10px rgba(0,0,0,.3),
    inset 0 0 0 1px rgba(255,255,255,.09);
}

/* ── Polaroid frame container ── */
.ccp-ed-pol-frame {
  display: flex;
  flex-direction: column;
  flex: 1;
  position: relative;
  background: #1b1a16;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 2px;
  padding: 7px 7px 0;     /* no bottom padding — caption strip provides it */
  overflow: hidden;
  transition: transform .32s cubic-bezier(.16,1,.3,1),
              box-shadow .32s cubic-bezier(.16,1,.3,1);
}

/* ── Stamp bar (top strip inside frame) ── */
.ccp-ed-pol-stamp {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 20px;
  padding: 0 2px;
  margin-bottom: 6px;
}

.ccp-ed-pol-stamp-idx,
.ccp-ed-pol-stamp-iso {
  font-family: 'IBM Plex Mono', 'Courier New', monospace;
  font-size: 9.5px;
  letter-spacing: .14em;
  color: var(--ccp-gold);
  opacity: .82;
  text-transform: uppercase;
  user-select: none;
}

/* ── Photo area — 1:1 square (spec: "1 / 1 SQUARE") ── */
.ccp-ed-pol-photo {
  position: relative;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: #1b1a16;
}

.ccp-ed-pol-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .55s cubic-bezier(.16,1,.3,1);
}

a.ccp-ed-pol-card:not(.ccp-ed-pol-card--pending):hover .ccp-ed-pol-img {
  transform: scale(1.06);
}

/* ── Placeholder (no image) ── */
.ccp-ed-pol-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
}

/* Circle ring around icon — the key detail */
.ccp-ed-pol-ph-ring {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  border: 1px solid rgba(201,169,110,.50);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.ccp-ed-pol-ph-icon {
  width: 20px;
  height: 20px;
  color: var(--ccp-gold);
  opacity: .75;
}

/* ── Hover overlay (OPEN text on photo) ── */
.ccp-ed-pol-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,0);
  transition: background .24s ease;
  pointer-events: none;
}

a.ccp-ed-pol-card:not(.ccp-ed-pol-card--pending):hover .ccp-ed-pol-overlay {
  background: rgba(0,0,0,.52);
}

.ccp-ed-pol-overlay-lbl {
  font-family: 'IBM Plex Mono', 'Courier New', monospace;
  font-size: 9px;
  letter-spacing: .24em;
  color: #fff;
  text-transform: uppercase;
  opacity: 0;
  transform: translateY(6px);
  transition: opacity .24s ease, transform .24s ease;
}

a.ccp-ed-pol-card:not(.ccp-ed-pol-card--pending):hover .ccp-ed-pol-overlay-lbl {
  opacity: 1;
  transform: translateY(0);
}

/* ── L-bracket corner marks — INSIDE .ccp-ed-pol-photo ── */
/* Each .ccp-ed-pol-reg is a 14×14px anchor point                */
/* ::before = horizontal arm, ::after = vertical arm             */

.ccp-ed-pol-reg {
  position: absolute;
  width: 14px;
  height: 14px;
  z-index: 4;
  pointer-events: none;
}

.ccp-ed-pol-reg::before,
.ccp-ed-pol-reg::after {
  content: '';
  position: absolute;
  background: var(--ccp-gold);
  opacity: .68;
}

.ccp-ed-pol-reg::before { width: 12px; height: 1px; } /* horizontal */
.ccp-ed-pol-reg::after  { width: 1px; height: 12px; } /* vertical   */

/* TL ⌐ : horizontal top-left→right, vertical top-left→down */
.ccp-ed-pol-reg--tl           { top: 10px; left: 10px; }
.ccp-ed-pol-reg--tl::before   { top: 0; left: 0; }
.ccp-ed-pol-reg--tl::after    { top: 0; left: 0; }

/* TR ¬ : horizontal top-right→left, vertical top-right→down */
.ccp-ed-pol-reg--tr           { top: 10px; right: 10px; }
.ccp-ed-pol-reg--tr::before   { top: 0; right: 0; }
.ccp-ed-pol-reg--tr::after    { top: 0; right: 0; }

/* BL L : horizontal bottom-left→right, vertical bottom-left→up */
.ccp-ed-pol-reg--bl           { bottom: 10px; left: 10px; }
.ccp-ed-pol-reg--bl::before   { bottom: 0; top: auto; left: 0; }
.ccp-ed-pol-reg--bl::after    { bottom: 0; top: auto; left: 0; }

/* BR J : horizontal bottom-right→left, vertical bottom-right→up */
.ccp-ed-pol-reg--br           { bottom: 10px; right: 10px; }
.ccp-ed-pol-reg--br::before   { bottom: 0; top: auto; right: 0; }
.ccp-ed-pol-reg--br::after    { bottom: 0; top: auto; right: 0; }

/* ── Caption strip — INSIDE the polaroid frame (bottom margin) ── */
.ccp-ed-pol-caption {
  padding: 10px 9px 11px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  border-top: 1px solid rgba(255,255,255,.09);
  background: transparent;
}

/* Italic serif title */
.ccp-ed-pol-title {
  font-family: 'Playfair Display', 'Georgia', 'Times New Roman', serif;
  font-style: italic;
  font-size: 19px;
  font-weight: 500;
  color: var(--ccp-text-primary);
  line-height: 1.2;
  letter-spacing: .01em;
  opacity: 1;
  text-decoration: none;
}
a.ccp-ed-pol-card,
a.ccp-ed-pol-card:hover,
a.ccp-ed-pol-card:focus { text-decoration: none !important; }
a.ccp-ed-pol-card .ccp-ed-pol-caption,
a.ccp-ed-pol-card .ccp-ed-pol-title,
a.ccp-ed-pol-card .ccp-ed-pol-meta,
a.ccp-ed-pol-card .ccp-ed-pol-type,
a.ccp-ed-pol-card .ccp-ed-pol-date { text-decoration: none !important; color: inherit; }

/* Meta row: TYPE left · date right */
.ccp-ed-pol-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
}

.ccp-ed-pol-type {
  font-family: 'IBM Plex Mono', 'Courier New', monospace;
  font-size: 11px;
  letter-spacing: .16em;
  color: var(--ccp-gold);
  text-transform: uppercase;
  opacity: 1;
}

.ccp-ed-pol-date {
  font-family: 'IBM Plex Mono', 'Courier New', monospace;
  font-size: 11px;
  letter-spacing: .08em;
  color: var(--ccp-text-secondary);
  opacity: 1;
  text-align: right;
  white-space: nowrap;
}

.ccp-ed-pol-soon {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 11px;
  letter-spacing: .12em;
  color: var(--ccp-text-secondary);
  opacity: .9;
  text-transform: uppercase;
}

/* ── Entrance animation ── */
#ccp-ed-view-gallery.active .ccp-ed-pol-card:nth-child(1)  { animation: ccp-cell-enter .4s cubic-bezier(.16,1,.3,1) .04s both; }
#ccp-ed-view-gallery.active .ccp-ed-pol-card:nth-child(2)  { animation: ccp-cell-enter .4s cubic-bezier(.16,1,.3,1) .09s both; }
#ccp-ed-view-gallery.active .ccp-ed-pol-card:nth-child(3)  { animation: ccp-cell-enter .4s cubic-bezier(.16,1,.3,1) .14s both; }
#ccp-ed-view-gallery.active .ccp-ed-pol-card:nth-child(n+4){ animation: ccp-cell-enter .4s cubic-bezier(.16,1,.3,1) .18s both; }

/* ══ LIGHT THEME — high contrast ══════════════════════════════════ */

body.ccp-theme-light .ccp-ed-pol-frame {
  background: #ffffff;
  border-color: rgba(0,0,0,.14);
  box-shadow: 0 4px 18px rgba(0,0,0,.12), 0 1px 4px rgba(0,0,0,.07);
}

body.ccp-theme-light a.ccp-ed-pol-card:not(.ccp-ed-pol-card--pending):hover .ccp-ed-pol-frame {
  box-shadow: 0 20px 44px rgba(0,0,0,.15), 0 5px 14px rgba(0,0,0,.09);
}

body.ccp-theme-light .ccp-ed-pol-photo { background: #e8e4de; }

body.ccp-theme-light .ccp-ed-pol-placeholder {
  background: linear-gradient(160deg, #ede9e3 0%, #e4dfd7 100%);
}

/* Caption strip: pure white — same as frame, seamless polaroid */
body.ccp-theme-light .ccp-ed-pol-caption {
  background: #ffffff;
  border-top-color: rgba(0,0,0,.06);
}

/* Circle ring: more visible on light bg */
body.ccp-theme-light .ccp-ed-pol-ph-ring {
  border-color: rgba(184,146,74,.55);
}

body.ccp-theme-light .ccp-ed-pol-ph-icon {
  opacity: .55;
  color: var(--ccp-gold-deep);
}

/* Stamp text: gold-deep at full opacity on light */
body.ccp-theme-light .ccp-ed-pol-stamp-idx,
body.ccp-theme-light .ccp-ed-pol-stamp-iso {
  color: var(--ccp-gold-deep);
  opacity: .85;
}

/* L-brackets: darker on light bg */
body.ccp-theme-light .ccp-ed-pol-reg::before,
body.ccp-theme-light .ccp-ed-pol-reg::after {
  background: var(--ccp-gold-deep);
  opacity: .70;
}

/* Title: deep text */
body.ccp-theme-light .ccp-ed-pol-title,
body.ccp-theme-light a.ccp-ed-pol-card .ccp-ed-pol-title { color: #1a1a1a; opacity: 1; }

/* Meta text: solid readable */
body.ccp-theme-light .ccp-ed-pol-type { color: var(--ccp-gold-deep); opacity: .85; }
body.ccp-theme-light .ccp-ed-pol-date { color: #5a5650; opacity: 1; }
body.ccp-theme-light .ccp-ed-pol-soon { color: #9a9690; opacity: 1; }

body.ccp-theme-light .ccp-ed-pol-card--pending .ccp-ed-pol-frame {
  background: #ffffff;
  border-color: rgba(0,0,0,.10);
  box-shadow: 0 2px 10px rgba(0,0,0,.07);
}

body.ccp-theme-light .ccp-ed-pol-card--pending .ccp-ed-pol-caption {
  background: #ffffff;
}

/* ── Reduced motion ── */
@media (prefers-reduced-motion: reduce) {
  .ccp-ed-pol-frame,
  .ccp-ed-pol-img,
  .ccp-ed-pol-overlay,
  .ccp-ed-pol-overlay-lbl { transition: none !important; }
  a.ccp-ed-pol-card:hover .ccp-ed-pol-img   { transform: none !important; }
  a.ccp-ed-pol-card:hover .ccp-ed-pol-frame { transform: none !important; }
}

/* ══════════════════════════════════════════════════════════════════
   LIGHT THEME — Notification dropdown overrides
   portal.css uses hard-coded rgba(255,255,255,x) throughout
   which becomes invisible on white backgrounds.
══════════════════════════════════════════════════════════════════ */
body.ccp-theme-light .ccp-notif-dropdown {
  background: var(--ccp-bg-surface);
  border-color: var(--ccp-border-subtle);
  box-shadow: 0 8px 32px rgba(0,0,0,.16);
}
body.ccp-theme-light .ccp-notif-header {
  border-bottom-color: var(--ccp-border-subtle);
}
body.ccp-theme-light .ccp-notif-item {
  border-bottom-color: rgba(0,0,0,.05);
}
body.ccp-theme-light .ccp-notif-item:hover {
  background: rgba(0,0,0,.04);
}
body.ccp-theme-light .ccp-notif-item--unread {
  background: rgba(201,169,110,.07);
}
body.ccp-theme-light .ccp-notif-text {
  color: var(--ccp-text-secondary);
}
body.ccp-theme-light .ccp-notif-text strong {
  color: var(--ccp-text-primary);
}
body.ccp-theme-light .ccp-notif-meta {
  color: var(--ccp-text-muted);
}
body.ccp-theme-light .ccp-notif-empty,
body.ccp-theme-light .ccp-notif-loading {
  color: var(--ccp-text-muted);
}
body.ccp-theme-light .ccp-notif-list::-webkit-scrollbar-thumb {
  background: rgba(0,0,0,.15);
}

/* ══════════════════════════════════════════════════════════════════
   GRAPHIC IMPROVEMENTS v5.54.2
   — Commission payout rows: hover lift + total row emphasis
   — Tab bar: smoother active underline in light mode
   — Info-card title: gold left-accent rule
══════════════════════════════════════════════════════════════════ */

/* Payout rows: hover highlight */
.ccp-ed-info-row {
  transition: background .12s var(--ccp-easing);
}
.ccp-ed-info-row:hover {
  background: var(--ccp-surface-hover);
}

/* Commission tab: total row gets gold emphasis */
.ccp-ed-info-row--total {
  background: transparent !important;
  border-top: 1px solid var(--ccp-border-medium) !important;
  border-bottom: none !important;
  margin-top: 4px;
  padding-top: 10px !important;
}
.ccp-ed-info-row--total span:last-child {
  font-weight: 700;
  color: var(--ccp-gold);
  font-size: 15px;
}
body.ccp-theme-light .ccp-ed-info-row--total {
  border-top-color: rgba(0,0,0,.12) !important;
}

/* Payout paid tag: tighter spacing */
.ccp-ed-po-name {
  display: flex;
  align-items: center;
  gap: 6px;
}

/* Info-card title: subtle left gold rule — placed inside the existing 18px left padding */
.ccp-ed-info-card-title {
  position: relative;
}
.ccp-ed-info-card-title::before {
  content: '';
  position: absolute;
  left: 6px;
  top: 50%;
  transform: translateY(-50%);
  width: 2px;
  height: 55%;
  background: var(--ccp-gold);
  border-radius: 1px;
  opacity: .55;
}

/* ══════════════════════════════════════════════════════════════════
   FINANCE TAB — v5.55.0
   Unified Finance tab: hero stats, amount breakdown, payment,
   contract, WP commission, staff payouts, my expenses, net result.
══════════════════════════════════════════════════════════════════ */

/* ── Hero stat grid: 3 cols desktop, 1 col mobile ── */
.ccp-ed-finance-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-bottom: 20px;
}

.ccp-ed-finance-stat {
  background: var(--ccp-bg-surface);
  border: 1px solid var(--ccp-border-subtle);
  border-radius: 10px;
  padding: 22px 24px;
  transition: border-color .15s var(--ccp-easing);
}

.ccp-ed-finance-stat:hover {
  border-color: var(--ccp-gold);
}

.ccp-ed-finance-stat-lbl {
  font-size: 12px;
  color: var(--ccp-text-muted);
  font-weight: 500;
  margin-bottom: 10px;
  letter-spacing: .01em;
}

.ccp-ed-finance-stat-val {
  font-size: 26px;
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--ccp-text-primary);
  margin-bottom: 8px;
  line-height: 1;
}

.ccp-ed-finance-stat-cur {
  color: var(--ccp-text-muted);
  font-weight: 400;
  margin-right: 2px;
  font-size: 20px;
}

.ccp-ed-finance-stat-meta {
  font-size: 12px;
  color: var(--ccp-text-secondary);
}

/* ── Icon square: 32×32 gold-tinted with 18×18 SVG inside ── */
.ccp-ed-fin-ico {
  display: inline-grid;
  place-items: center;
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  border-radius: 8px;
  background: var(--ccp-gold-soft);
  color: var(--ccp-gold);
}

.ccp-ed-fin-ico svg {
  width: 18px;
  height: 18px;
  stroke-width: 1.8;
}

/* ── Card modifier ── */
.ccp-ed-info-card--finance {
  /* No extra border/shadow — inherits .ccp-ed-info-card base */
}

/* ── "excluded from commission" tag ── */
.ccp-ed-fin-tag-excluded {
  display: inline-block;
  font-size: 10px;
  font-weight: 500;
  padding: 2px 7px;
  border-radius: 100px;
  background: rgba(196,127,106,.15);
  color: var(--ccp-copper);
  margin-left: 6px;
  vertical-align: middle;
  letter-spacing: .01em;
}

/* ── Admin-only badge in card titles ── */
.ccp-ed-fin-admin-badge {
  display: inline-block;
  font-size: 10px;
  font-weight: 500;
  padding: 2px 7px;
  border-radius: 100px;
  background: rgba(255,255,255,.06);
  color: var(--ccp-text-muted);
  margin-left: auto;
  letter-spacing: .02em;
}

/* ── Gold tag variant for commission rate ── */
.ccp-ed-tag--gold {
  background: var(--ccp-gold-soft);
  color: var(--ccp-gold);
}

/* ── Net Result card: gold border + subtle gradient ── */
.ccp-ed-fin-net-card {
  border-color: rgba(201,169,110,.35) !important;
  background: linear-gradient(160deg, rgba(201,169,110,.04) 0%, transparent 60%) !important;
}

/* ── Finance-tab entrance animations ── */
#ccp-ed-view-finance.active .ccp-ed-finance-stat:nth-child(1) { animation: ccp-view-enter .28s var(--ccp-easing) .03s both; }
#ccp-ed-view-finance.active .ccp-ed-finance-stat:nth-child(2) { animation: ccp-view-enter .28s var(--ccp-easing) .07s both; }
#ccp-ed-view-finance.active .ccp-ed-finance-stat:nth-child(3) { animation: ccp-view-enter .28s var(--ccp-easing) .11s both; }
#ccp-ed-view-finance.active .ccp-ed-info-card:nth-child(1)    { animation: ccp-view-enter .30s var(--ccp-easing) .14s both; }
#ccp-ed-view-finance.active .ccp-ed-info-card:nth-child(2)    { animation: ccp-view-enter .30s var(--ccp-easing) .19s both; }
#ccp-ed-view-finance.active .ccp-ed-info-card:nth-child(n+3)  { animation: ccp-view-enter .30s var(--ccp-easing) .24s both; }
#ccp-ed-view-finance.active .ccp-ed-contract-bar-fill         {
  animation: ccp-bar-fill .8s cubic-bezier(.16,1,.3,1) .35s both;
}

/* ── Responsive: stack to 2 cols on tablet, 1 col on mobile ── */
@media (max-width: 640px) {
  .ccp-ed-finance-stats {
    grid-template-columns: 1fr;
  }
}
@media (min-width: 641px) and (max-width: 900px) {
  .ccp-ed-finance-stats {
    grid-template-columns: 1fr 1fr;
  }
}

/* ══ LIGHT THEME — Finance tab overrides ══════════════════════════ */

body.ccp-theme-light .ccp-ed-finance-stat {
  background: #ffffff;
  border-color: rgba(0,0,0,.10);
}

body.ccp-theme-light .ccp-ed-finance-stat:hover {
  border-color: var(--ccp-gold);
}

body.ccp-theme-light .ccp-ed-fin-ico {
  background: rgba(168,136,60,.10);
  color: var(--ccp-gold-deep, #a8883c);
}

body.ccp-theme-light .ccp-ed-fin-tag-excluded {
  background: rgba(168,99,62,.12);
  color: var(--ccp-copper, #a8633e);
}

body.ccp-theme-light .ccp-ed-fin-admin-badge {
  background: rgba(0,0,0,.06);
  color: #888;
}

body.ccp-theme-light .ccp-ed-fin-net-card {
  border-color: rgba(168,136,60,.30) !important;
  background: linear-gradient(160deg, rgba(168,136,60,.04) 0%, transparent 60%) !important;
}

body.ccp-theme-light .ccp-ed-tag--gold {
  background: rgba(168,136,60,.10);
  color: #a8883c;
}

/* ── Amount Breakdown: per-item proportion bar ── */
.ccp-ed-fin-item-row {
  flex-direction: column;
  align-items: stretch;
  padding-bottom: 10px;
  gap: 4px;
}
.ccp-ed-fin-item-row > span:last-child {
  align-self: flex-end;
  font-weight: 600;
}
.ccp-ed-fin-item-label-wrap {
  position: relative;
  display: flex;
  align-items: center;
  gap: 6px;
  overflow: hidden;
  border-radius: 3px;
  padding: 2px 0;
}
.ccp-ed-fin-item-bar {
  position: absolute;
  left: 0; top: 0; bottom: 0;
  background: rgba(201,169,110,.06);
  border-radius: 3px;
  transition: width .5s var(--ccp-easing);
  pointer-events: none;
}
.ccp-ed-fin-item-label {
  position: relative;
  z-index: 1;
  font-size: 13px;
  color: var(--ccp-text-muted);
}
body.ccp-theme-light .ccp-ed-fin-item-bar {
  background: rgba(168,136,60,.08);
}

/* ── Reduced motion ── */
@media (prefers-reduced-motion: reduce) {
  #ccp-ed-view-finance.active .ccp-ed-finance-stat,
  #ccp-ed-view-finance.active .ccp-ed-info-card { animation: none !important; }
  #ccp-ed-view-finance.active .ccp-ed-contract-bar-fill { animation: none !important; }
  .ccp-ed-fin-item-bar { transition: none !important; }
}

/* ══════════════════════════════════════════════════════════════════
   AESTHETIC POLISH v5.57.0 — Phase 1-4
   Fixes from browser audit: light theme bugs, palette cycling,
   progress current step, layout refinements.
══════════════════════════════════════════════════════════════════ */

/* ── Phase 1: Elementor container padding reset ── */
body:has(.ccp-ed-wrap) .elementor-widget-container { padding: 0 !important; }
body:has(.ccp-ed-wrap) .elementor-section          { margin-bottom: 0 !important; }
body:has(.ccp-ed-wrap) .elementor-top-section      { margin: 0 !important; }

/* ── Phase 1: Light theme — timeline upload zone text override ── */
body.ccp-theme-light #ccp-tl-upload-zone p { color: rgba(0,0,0,.55) !important; }

/* ── Phase 1: Light theme — vendor section labels readable ── */
body.ccp-theme-light .ccp-ed-vnd-section-lbl { color: #555; }

/* ── Phase 2: Avatar palette cycling — Vendor cards ── */
.ccp-ed-vnd-card:nth-child(4n+2) .ccp-ed-vendor-av { background: var(--ccp-copper); color: #fff; }
.ccp-ed-vnd-card:nth-child(4n+3) .ccp-ed-vendor-av { background: var(--ccp-ice);    color: #fff; }
.ccp-ed-vnd-card:nth-child(4n+4) .ccp-ed-vendor-av { background: var(--ccp-green);  color: #0a0a0a; }

/* ── Phase 2: Avatar palette cycling — IG Handles rows ── */
.ccp-ed-ig-row--v2:nth-child(4n+1) .ccp-ed-ig-av { background: var(--ccp-gold);   color: #0a0a0a; }
.ccp-ed-ig-row--v2:nth-child(4n+2) .ccp-ed-ig-av { background: var(--ccp-copper); color: #fff; }
.ccp-ed-ig-row--v2:nth-child(4n+3) .ccp-ed-ig-av { background: var(--ccp-ice);    color: #fff; }
.ccp-ed-ig-row--v2:nth-child(4n+4) .ccp-ed-ig-av { background: var(--ccp-green);  color: #0a0a0a; }

/* ── Phase 2: Light theme — card borders strengthened ── */
body.ccp-theme-light .ccp-ed-vnd-card      { border-color: rgba(0,0,0,.10); }
body.ccp-theme-light .ccp-ed-ig-row--v2   { border-color: rgba(0,0,0,.10); }
body.ccp-theme-light .ccp-ed-ig-row--v2.missing { border-color: rgba(239,68,68,.3); }
body.ccp-theme-light .ccp-ed-prg-item     { border-bottom-color: rgba(0,0,0,.10); }
body.ccp-theme-light .ccp-ed-prg-item:first-child { border-top-color: rgba(0,0,0,.10); }

/* ── Phase 3: Progress — current (first undone) step highlight ── */
.ccp-ed-prg-item.current .ccp-ed-prg-item-num {
  background: transparent;
  border-color: var(--ccp-gold);
  color: var(--ccp-gold);
}
.ccp-ed-prg-item.current .ccp-ed-prg-item-label { color: var(--ccp-text, #fff); }
.ccp-ed-prg-item.current .ccp-ed-prg-dot-pending {
  background: var(--ccp-gold);
  animation: ccp-dot-pulse-gold 1.8s ease-in-out infinite;
}
@keyframes ccp-dot-pulse-gold {
  0%, 100% { box-shadow: 0 0 0 2px rgba(201,169,110,.15); }
  50%       { box-shadow: 0 0 0 5px rgba(201,169,110,.3); }
}
body.ccp-theme-light .ccp-ed-prg-item.current .ccp-ed-prg-item-label { color: #111; }

/* ── Phase 4: Tab active indicator thicker in light theme ── */
body.ccp-theme-light .ccp-ed-tab::after { height: 3px; }

/* ── Phase 4: Files example grid — 2-col on narrow viewports ── */
@media (max-width: 600px) {
  .ccp-ed-files-examples-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ── Phase 4: Progress track height bump for visibility ── */
.ccp-ed-prg-track { height: 4px; }

/* ── Reduced motion: new additions ── */
@media (prefers-reduced-motion: reduce) {
  .ccp-ed-prg-item.current .ccp-ed-prg-dot-pending { animation: none; }
}

/* ── v5.59.0: Bento explicit grid placement — clean 5×12 rectangle ──────────
   Layout (12 cols × 5 rows):
     Row 1: countdown(1-5) | Days(6-7) | Guests(8-9) | Progress(10-12)
     Row 2: countdown(1-5) | Contract(6-12)
     Row 3: Action(1-5)    | Days glance(6-9) | People(10-12) ↓2 rows
     Row 4: Messages(1-5) ↓2 rows | Days glance(6-9) | People(10-12) cont
     Row 5: Messages(1-5) cont    | Days glance(6-9) | Gallery(10-12)
─────────────────────────────────────────────────────────────────────────── */
@media (min-width: 1101px) {
  .ccp-ed-c-countdown                      { grid-column: 1 / 6;   grid-row: 1 / 3; }
  .ccp-ed-bento > :nth-child(2)            { grid-column: 6 / 8;   grid-row: 1; }
  .ccp-ed-bento > :nth-child(3)            { grid-column: 8 / 10;  grid-row: 1; }
  .ccp-ed-c-progress                       { grid-column: 10 / 13; grid-row: 1; }
  .ccp-ed-c-contract                       { grid-column: 6 / 13;  grid-row: 2; }
  .ccp-ed-c-action                         { grid-column: 1 / 6;   grid-row: 3; }
  .ccp-ed-c-days                           { grid-column: 6 / 10;  grid-row: 3 / 6; }
  .ccp-ed-c-users                          { grid-column: 10 / 13; grid-row: 3 / 5; }
  .ccp-ed-c-msgs                           { grid-column: 1 / 6;   grid-row: 4 / 6; }
  .ccp-ed-c-mini                           { grid-column: 10 / 13; grid-row: 5; }
}

/* ── People + Messages scroll containers ──────────────────────── */
.ccp-ed-c-users,
.ccp-ed-c-msgs {
  overflow: hidden;
}
.ccp-ed-users-list {
  flex: 1;
  overflow-y: auto;
  min-height: 0;
  padding-right: 4px;
}
.ccp-ed-msgs-scroll {
  flex: 1;
  overflow-y: auto;
  min-height: 0;
  padding-right: 4px;
}

/* Elegant scrollbar (gold thread, 3px) */
.ccp-ed-users-list,
.ccp-ed-msgs-scroll {
  scrollbar-width: thin;
  scrollbar-color: rgba(201,169,110,.25) transparent;
}
.ccp-ed-users-list::-webkit-scrollbar,
.ccp-ed-msgs-scroll::-webkit-scrollbar { width: 3px; }
.ccp-ed-users-list::-webkit-scrollbar-track,
.ccp-ed-msgs-scroll::-webkit-scrollbar-track { background: transparent; }
.ccp-ed-users-list::-webkit-scrollbar-thumb,
.ccp-ed-msgs-scroll::-webkit-scrollbar-thumb {
  background: rgba(201,169,110,.28);
  border-radius: 3px;
}
.ccp-ed-users-list::-webkit-scrollbar-thumb:hover,
.ccp-ed-msgs-scroll::-webkit-scrollbar-thumb:hover {
  background: rgba(201,169,110,.6);
}

/* ── Files empty-state: upload button centered above icon ─────── */
.ccp-ed-files-upload-center {
  display: flex !important;
  align-items: center;
  gap: 7px;
  margin: 0 auto 24px !important;
  width: fit-content;
  padding: 10px 22px !important;
  font-size: 11.5px !important;
}

/* ── Language Switcher — scoped to portal wrappers ──────────────── */
.ccp-ed-wrap .ccp-lang-switch,
.ccp-dashboard .ccp-lang-switch {
  display: inline-flex !important;
  align-items: center !important;
  gap: 2px !important;
  padding: 3px 5px !important;
  background: rgba(212,175,55,.08) !important;
  border: 1px solid rgba(212,175,55,.28) !important;
  border-radius: 999px !important;
  flex-shrink: 0;
}
.ccp-ed-wrap .ccp-lang-btn,
.ccp-dashboard .ccp-lang-btn {
  background: transparent !important;
  border: none !important;
  padding: 4px 9px !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  color: var(--ccp-text-muted) !important;
  cursor: pointer !important;
  border-radius: 999px !important;
  line-height: 1 !important;
  transition: background .15s, color .15s !important;
}
.ccp-ed-wrap .ccp-lang-btn.is-active,
.ccp-dashboard .ccp-lang-btn.is-active {
  background: var(--ccp-gold) !important;
  color: #1a1a1a !important;
}
.ccp-ed-wrap .ccp-lang-div,
.ccp-dashboard .ccp-lang-div {
  color: rgba(212,175,55,.35);
  font-size: 9px;
  font-weight: 400;
  pointer-events: none;
  user-select: none;
}

/* Light theme overrides */
body.ccp-theme-light .ccp-ed-wrap .ccp-lang-switch,
body.ccp-theme-light .ccp-dashboard .ccp-lang-switch {
  background: rgba(180,140,30,.07) !important;
  border-color: rgba(180,140,30,.25) !important;
}
body.ccp-theme-light .ccp-ed-wrap .ccp-lang-btn,
body.ccp-theme-light .ccp-dashboard .ccp-lang-btn {
  color: #777 !important;
}
body.ccp-theme-light .ccp-ed-wrap .ccp-lang-btn.is-active,
body.ccp-theme-light .ccp-dashboard .ccp-lang-btn.is-active {
  background: #b8922a !important;
  color: #fff !important;
}

/* Switcher in topnav: right-side alignment */
.ccp-ed-nav-right .ccp-lang-switch {
  margin-right: 6px;
}

/* Switcher in topbar: gap from bell */
.ccp-topbar .ccp-lang-switch {
  margin-left: 8px;
}

/* ══════════════════════════════════════════════════════════════════
   MOBILE — FASE 1 (v5.64.0)
══════════════════════════════════════════════════════════════════ */

/* Spec 7: touch target minima 44×44px su dispositivi touch */
@media (hover: none) {
  .ccp-ed-tab { min-height: 44px; }
  .ccp-ed-nav-iconbtn { min-width: 44px; min-height: 44px; }
  .ccp-ed-drawer-close { min-width: 44px; min-height: 44px; }
  .ccp-ed-lang-switch label { min-width: 36px; min-height: 36px; }
}

/* Spec 8: IG handles row stack su mobile */
@media (max-width: 600px) {
  .ccp-ed-ig-row--v2 {
    flex-wrap: wrap;
    align-items: flex-start;
  }
  .ccp-ed-ig-person {
    flex: 1 1 calc(100% - 46px);
  }
  .ccp-ed-ig-handle-val,
  .ccp-ed-ig-edit-input,
  .ccp-ed-ig-edit-btn,
  .ccp-ed-ig-missing {
    flex-basis: 100%;
    margin-top: 6px;
  }
  .ccp-ed-ig-edit-input { width: 100%; max-width: none; }
}

/* ── Topnav avatar with profile photo (v5.75.0) ── */
.ccp-ed-nav-avatar--photo {
  padding: 0 !important;
  overflow: hidden !important;
  background: transparent !important;
}
.ccp-ed-nav-avatar--photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
  display: block;
}

/* ── Photo support for bento/vendor/message avatars (v5.75.2) ── */
.ccp-ed-users-av.ccp-avatar-has-photo,
.ccp-ed-vendor-av.ccp-avatar-has-photo,
.ccp-ed-msg-av.ccp-avatar-has-photo {
  padding: 0;
  overflow: hidden;
  background: transparent !important;
}
.ccp-ed-users-av.ccp-avatar-has-photo img,
.ccp-ed-vendor-av.ccp-avatar-has-photo img,
.ccp-ed-msg-av.ccp-avatar-has-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
  display: block;
}
