/* ===========================
   Cresvora Image Optimizer UI
   Brand:
   - Orange: #f97316
   - Blue:   #1e40af
   - Font:   Poppins (fallbacks)
   =========================== */

/* Scope variables to the tool card so it won’t bleed site-wide */
#cresvora-app{
  clear: both;
  max-width: 100%;
  width: 100%;
  overflow-x: clip;
  /* Keep breathing room before the site footer without introducing a colored band. */
  margin-bottom: 80px;
}

.cresvora-tools-card{
  --cv-orange: #f97316;
  --cv-blue: #1e40af;

  --cv-text: #0f172a;
  --cv-muted: #475569;
  --cv-border: #e5e7eb;
  --cv-border-2: #d1d5db;
  --cv-panel: #ffffff;
  --cv-panel-muted: #f8fafc;

  --cv-radius: 12px;
  --cv-radius-sm: 6px;

  font-family: Poppins, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color: var(--cv-text);

  border: 1px solid var(--cv-border);
  border-radius: var(--cv-radius);
  padding: 18px;
  background: #fff;
  width: 100%;
  box-sizing: border-box;
  margin: 16px auto;
  box-shadow: 0 10px 30px rgba(15, 23, 42, 0.06);
}

/* Headings */
.cresvora-tools-card h2,
.cresvora-tools-card h3,
.cresvora-tools-card h4{
  font-weight: 600; /* Poppins Semi-bold-ish */
  letter-spacing: -0.01em;
}

.cresvora-tools-muted{
  color: var(--cv-muted);
  margin-top: 6px;
  font-size: 13px;
  line-height: 1.45;
}

/* ===========================
   In-app navigation (shown to logged-in users)
   =========================== */
.cresvora-app-nav{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  margin: 10px 0 14px;
}

.cresvora-app-nav a{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding: 8px 10px;
  border: 1px solid var(--cv-border);
  border-radius: var(--cv-radius-sm);
  background: #fff;
  color: var(--cv-text);
  text-decoration: none;
  font-size: 13px;
}

.cresvora-app-nav a:hover{
  border-color: var(--cv-border-2);
}

.cresvora-app-nav a.is-active{
  border-color: rgba(249, 115, 22, 0.55);
  background: rgba(249, 115, 22, 0.08);
}

/* Main 2-col layout
   NOTE: Divi often constrains content width (rows/sections) to ~700-900px.
   The prior 900px breakpoint caused the optimizer to collapse into a single
   column on normal desktop layouts.
*/
.cresvora-tools-grid{
  display: grid;
  grid-template-columns: minmax(320px, 1.15fr) minmax(320px, 1fr);
  gap: 18px;
}

/* Extra-safe: prevent theme CSS from overriding our grid layout. */
.cresvora-tools-card .cresvora-tools-grid{
  display: grid !important;
}

@media (max-width: 720px){
  .cresvora-tools-grid{ grid-template-columns: 1fr; }
}

/* Panels */
.cresvora-panel{
  border: 1px solid var(--cv-border);
  border-radius: var(--cv-radius);
  padding: 14px;
  background: var(--cv-panel-muted);
}

.cresvora-panel-title{
  margin: 0 0 12px;
  font-size: 14px;
  font-weight: 600;
  color: var(--cv-text);
}

/* Labels + help */
.cresvora-tools-label{
  display: block;
  margin: 12px 0 6px;
  font-weight: 600;
  font-size: 13px;
  color: var(--cv-text);
}

.cresvora-help{
  margin: 6px 0 0;
  color: var(--cv-muted);
  font-size: 12px;
  line-height: 1.4;
}

.cresvora-writer-type-use-grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  align-items: end;
}

.cresvora-writer-type-use-grid .cresvora-tools-label{
  margin-top: 12px;
}

@media (max-width: 720px){
  .cresvora-writer-type-use-grid{
    grid-template-columns: 1fr;
  }
}

/* Rows */
.cresvora-tools-row{
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}

/* Inputs */
.cresvora-input,
.cresvora-textarea,
.cresvora-tools-card select,
.cresvora-tools-card input[type="text"],
.cresvora-tools-card input[type="number"]{
  width: 100%;
  padding: 10px 12px;
  border: 1px solid var(--cv-border-2);
  border-radius: var(--cv-radius-sm);
  background: #fff;
  font-size: 14px;
  color: var(--cv-text);
  outline: none;
}

.cresvora-tools-card input[type="file"]{
  font-size: 13px;
}

.cresvora-tools-card input[type="text"]:focus,
.cresvora-tools-card input[type="number"]:focus,
.cresvora-tools-card select:focus,
.cresvora-tools-card textarea:focus{
  border-color: rgba(249, 115, 22, 0.9);
  box-shadow: 0 0 0 3px rgba(249, 115, 22, 0.18);
}

/* Small inputs (like max kb) */
.cresvora-field-small{
  max-width: 160px;
}

/* Filename block */
.cresvora-filename-input{ width: 100%; }

.cresvora-filename-wrap{
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 220px;
}

.cresvora-filename-label{
  font-size: 12px;
  line-height: 1.2;
  color: var(--cv-muted);
}

/* Checkbox/radio labels */
.cresvora-checkboxes label{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 6px 14px 6px 0;
  color: var(--cv-text);
  font-size: 13px;
}
.cresvora-checkboxes input{
  transform: translateY(1px);
}

/* Action buttons */
.cresvora-tools-actions{
  display: flex;
  gap: 10px;
  margin-top: 12px;
  flex-wrap: wrap;
}

@media (min-width: 640px){
  .cresvora-tools-actions{ flex-wrap: nowrap; }
}

.cresvora-btn{
  border: 1px solid var(--cv-orange);
  background: var(--cv-orange);
  color: #fff;
  padding: 10px 14px;
  border-radius: 6px;
  cursor: pointer;
  font-size: 14px;
  line-height: 1;
  font-weight: 600;
  transition: transform 0.06s ease, box-shadow 0.15s ease, background 0.15s ease, border-color 0.15s ease;
}

.cresvora-btn:hover{
  background: #ea6a10;
  border-color: #ea6a10;
  box-shadow: 0 10px 20px rgba(249, 115, 22, 0.22);
}

.cresvora-btn:active{
  transform: translateY(1px);
}

.cresvora-btn[disabled]{
  opacity: 0.45;
  cursor: not-allowed;
  box-shadow: none;
}

.cresvora-btn-secondary{
  background: #fff;
  color: var(--cv-blue);
  border-color: rgba(30, 64, 175, 0.4);
}

.cresvora-btn-secondary:hover{
  background: rgba(30, 64, 175, 0.06);
  border-color: rgba(30, 64, 175, 0.7);
  box-shadow: 0 10px 20px rgba(30, 64, 175, 0.14);
}

/* Crop area */
.cresvora-crop-wrap{
  width: 100%;
  min-height: 360px;
  border: 1px dashed rgba(148, 163, 184, 0.8);
  border-radius: var(--cv-radius);
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.cresvora-crop-wrap img{
  max-width: 100%;
  display: block;
}

/* Crop tool buttons (Zoom/Rotate/Reset) */
.cresvora-panel button,
.cresvora-panel .button,
.cresvora-panel input[type="button"]{
  border-radius: var(--cv-radius-sm);
}

/* Horizontal divider */
.cresvora-tools-hr{
  margin: 18px 0;
  border: none;
  border-top: 1px solid var(--cv-border);
}

/* Output preview */
.cresvora-output{
  margin-top: 14px;
}

.cresvora-output-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 6px;
}

.cresvora-copy{
  padding: 8px 10px;
  font-size: 13px;
  border-radius: var(--cv-radius-sm);
}


/* Writer outputs (cards) */
.cresvora-output-card{
  margin-top: 14px;
  padding: 12px;
  border: 1px solid var(--cv-border);
  border-radius: var(--cv-radius);
  background: var(--cv-bg);
}

.cresvora-output-header{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 8px;
}

.cresvora-output-actions{
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

.cv-hidden{
  display: none !important;
}


/* Output actions - compact buttons inside output cards */
.cresvora-output-card .cresvora-btn.cv-mini{
  padding: 6px 10px;
  font-size: 12px;
  line-height: 1.1;
}


/* Universal panel: prefer HTML vs prefer text (just changes button order) */
#cresvora-outputs-universal.cv-prefer-html .cresvora-output-actions .cresvora-copy[data-mode="html"]{ order: 1; }
#cresvora-outputs-universal.cv-prefer-html .cresvora-output-actions .cresvora-copy[data-mode="text"]{ order: 2; }
#cresvora-outputs-universal.cv-prefer-text .cresvora-output-actions .cresvora-copy[data-mode="text"]{ order: 1; }
#cresvora-outputs-universal.cv-prefer-text .cresvora-output-actions .cresvora-copy[data-mode="html"]{ order: 2; }
/* Regen always last */
#cresvora-outputs-universal .cresvora-output-actions .cresvora-regen{ order: 3; }

/* Make the regen icon button feel intentional */
.cresvora-output-card .cresvora-regen.cv-mini{
  width: 34px;
  padding: 6px 0;
  text-align: center;
}


/* Etsy-specific output layout */
.cresvora-input-etsy-title{ width:100%; }

.cresvora-etsy-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 10px;
}

@media (max-width: 640px){
  .cresvora-etsy-grid{ grid-template-columns: 1fr; }
}

.cresvora-etsy-item{
  border: 1px dashed var(--cv-border);
  border-radius: calc(var(--cv-radius) - 2px);
  padding: 10px;
  background: var(--cv-bg-soft, #fff);
}

.cresvora-etsy-item-label{
  font-size: 12px;
  font-weight: 600;
  color: var(--cv-text-muted, #666);
}

.cresvora-etsy-item-actions{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  margin-top:6px;
  margin-bottom:8px;
}

.cresvora-input-etsy{ width:100%; }

/* Amazon-specific output layout */
.cresvora-input-amazon-title{
  width: 100%;
}

.cresvora-amazon-bullets{
  display: grid;
  gap: 10px;
  margin-top: 10px;
}

.cresvora-amazon-bullet{
  border: 1px dashed var(--cv-border);
  border-radius: calc(var(--cv-radius) - 2px);
  padding: 10px;
  background: var(--cv-bg-soft, #fff);
}

.cresvora-amazon-bullet-label{
  font-size: 12px;
  font-weight: 600;
  color: var(--cv-text-muted, #666);
}

.cresvora-amazon-bullet-actions{
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 6px;
  margin-bottom: 8px;
}

.cresvora-input-amazon-bullet{
  width: 100%;
}

/* Status text */
.cresvora-tools-status{
  margin-top: 12px;
  font-size: 13px;
  color: var(--cv-text);
}

.cresvora-writer-clarifications{
  margin-top: 10px;
  padding: 10px;
  border: 1px solid var(--cv-border);
  border-radius: var(--cv-radius-sm);
  background: #fff;
}

.cresvora-writer-clarifications-title{
  display: block;
  font-size: 12px;
  margin-bottom: 8px;
}

.cresvora-writer-clarifications-list{
  display: grid;
  gap: 8px;
}

.cresvora-writer-clar-item{
  padding: 8px;
  border: 1px dashed var(--cv-border);
  border-radius: var(--cv-radius-sm);
  background: var(--cv-panel-muted);
}

.cresvora-writer-clar-question{
  margin: 0 0 6px;
  font-size: 12px;
  color: var(--cv-text);
}

.cresvora-writer-clar-chips{
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 6px;
}

.cresvora-writer-clar-chip{
  border: 1px solid var(--cv-border-2);
  background: #fff;
  color: var(--cv-text);
  border-radius: 999px;
  padding: 4px 10px;
  font-size: 12px;
  line-height: 1.2;
  cursor: pointer;
}

.cresvora-writer-clar-chip.is-active{
  border-color: rgba(249, 115, 22, 0.9);
  background: rgba(249, 115, 22, 0.08);
  color: #9a3412;
}

.cresvora-input.cresvora-input-clar{
  padding: 8px 10px;
  font-size: 13px;
}

/* ===========================
   Pro gating / locked features
   =========================== */

/* Pro badge (visible but locked features) */
.cresvora-pro-badge{
  display: inline-block;
  margin-left: 6px;
  padding: 3px 8px;
  font-size: 11px;
  font-weight: 700;
  border-radius: var(--cv-radius-sm);
  background: rgba(30, 64, 175, 0.08);
  color: var(--cv-blue);
  vertical-align: middle;
}

/* ===========================
   Preset / Background / Size layout
   =========================== */

.cresvora-settings-grid{
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr;
  gap: 14px;
  align-items: start;
  margin-top: 10px;
}

@media (max-width: 980px){
  .cresvora-settings-grid{
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 560px){
  .cresvora-settings-grid{
    grid-template-columns: 1fr;
  }
}

.cresvora-settings-group{
  background: #fff;
  border: 1px solid var(--cv-border);
  border-radius: var(--cv-radius-sm);
  padding: 12px;
}

.cresvora-settings-group .cresvora-tools-label{
  margin-top: 0;
}

/* Background: align swatch + hex nicely */
.cresvora-settings-group--bg .cresvora-tools-row{
  gap: 10px;
  align-items: center;
}

.cresvora-settings-group--bg input[type="color"]{
  width: 44px;
  height: 40px;
  padding: 0;
  border: 1px solid var(--cv-border-2);
  border-radius: var(--cv-radius-sm);
  background: #fff;
}

.cresvora-settings-group--bg #cresvora-image-bg-hex{
  width: 100%;
  max-width: 140px;
}

/* Crop controls should wrap nicely */
.cresvora-crop-controls{
  margin-top: 12px;
  gap: 10px;
  flex-wrap: wrap;
}

/* Locked input wrapper */
.cresvora-locked-wrap{
  position: relative;
}

.cresvora-locked-input{
  opacity: 0.65;
  cursor: not-allowed;
}

.cresvora-locked-overlay{
  position: absolute;
  inset: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}

/* ===========================
   Modal (keep yours, minor polish)
   =========================== */

#cresvora-modal-root{
  position: relative;
  z-index: 99999;
}

.cresvora-modal-backdrop{
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.55);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}

.cresvora-modal{
  width: min(560px, 100%);
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.28);
  overflow: hidden;
}

.cresvora-modal-header{
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.cresvora-modal-title{
  font-weight: 700;
  font-size: 16px;
}

.cresvora-modal-x{
  appearance: none;
  border: 0;
  background: transparent;
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  padding: 6px 10px;
  border-radius: 10px;
}

.cresvora-modal-x:hover{
  background: rgba(0, 0, 0, 0.06);
}

.cresvora-modal-body{
  padding: 14px 16px;
  color: var(--cv-text);
}

.cresvora-modal-actions{
  display: flex;
  gap: 10px;
  justify-content: flex-end;
  padding: 14px 16px;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
}

/* Preview canvas limit */
#cresvora-image-preview-canvas{
  max-width: 1000px;
  width: 100%;
  height: auto;
}

/* Minor: make range slider feel less “default” */
.cresvora-tools-card input[type="range"]{
  width: 100%;
  accent-color: var(--cv-orange);
}

/* Utility */
.cresvora-tools-actions-bar{ margin-top: 12px; }

/* ===========================
   Responsive form layout helpers
   =========================== */

/* When container is wider than 1100, keep it visually tidy */
@media (min-width: 1200px){
  .cresvora-tools-card{
    max-width: 100%; /* optional - or leave at 1100 */
  }
}

/* If your UI wraps Format/Quality/Max KB in a row, this makes it behave like a grid */
.cresvora-inline-fields,
.cresvora-tools-row.cresvora-inline-fields{
  display: grid;
  grid-template-columns: 1.25fr 1fr 0.75fr;
  gap: 12px;
  /* Align labels across columns (Quality slider column is taller) */
  align-items: start;
}

/* Ensure each field stacks label + control cleanly inside grid columns */
.cresvora-inline-fields .cresvora-field{
  display: flex;
  flex-direction: column;
}

/* Quality slider: keep spacing tight so label aligns visually */
#cresvora-image-quality{
  margin-top: 2px;
}

/* Medium screens - 2 columns */
@media (max-width: 980px){
  .cresvora-inline-fields,
  .cresvora-tools-row.cresvora-inline-fields{
    grid-template-columns: 1fr 1fr;
  }
}

/* Mobile - 1 column */
@media (max-width: 520px){
  .cresvora-inline-fields,
  .cresvora-tools-row.cresvora-inline-fields{
    grid-template-columns: 1fr;
  }
}

/* Make the crop control buttons look like normal buttons (not pills) */
.cresvora-panel button,
.cresvora-panel .button{
  padding: 9px 12px;
  border-radius: var(--cv-radius-sm);
}

/* Modal primary CTA - never allow white-on-white */
.cresvora-btn-primary{
  background: #f97316;
  border-color: #f97316;
  color: #fff;
  text-decoration: none;
}

.cresvora-btn-primary:hover{
  background: #ea6a10;
  border-color: #ea6a10;
  color: #fff;
}

.cresvora-btn.cresvora-btn-secondary{
  background: #fff;
  color: #1e40af;
  border-color: rgba(30, 64, 175, 0.4);
  text-decoration: none;
}

.cresvora-btn.cresvora-btn-secondary:hover{
  background: rgba(30, 64, 175, 0.06);
  border-color: rgba(30, 64, 175, 0.7);
}
/* Writer: character counters */
.cv-counter{
  font-size:12px;
  opacity:.75;
  margin-top:6px;
}
.cv-counter.cv-counter-over{
  opacity:1;
  font-weight:600;
  color:#b91c1c;
}


/* eBay-specific output layout */
.cresvora-ebay-specifics{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 10px;
}

@media (max-width: 700px){
  .cresvora-ebay-specifics{
    grid-template-columns: 1fr;
  }
}

.cresvora-ebay-specific{
  border: 1px dashed var(--cv-border);
  border-radius: calc(var(--cv-radius) - 2px);
  padding: 10px;
  background: var(--cv-bg-soft, #fff);
}

.cresvora-ebay-specific-label{
  display:block;
  font-size: 12px;
  font-weight: 600;
  color: var(--cv-text-muted, #666);
  margin-bottom: 6px;
}

.cresvora-input-ebay{ width:100%; }

/* ===========================
   Cresvora Auth Shell (minimal)
   =========================== */
.cresvora-auth h2 { margin-top: 0; }
.cresvora-auth .cresvora-form label { display:block; font-weight:600; margin:12px 0 6px; }
.cresvora-auth .cresvora-form input[type="text"],
.cresvora-auth .cresvora-form input[type="email"],
.cresvora-auth .cresvora-form input[type="password"]{
  width:100%;
  max-width:520px;
}
.cresvora-auth .cresvora-checkbox{ display:flex; gap:8px; align-items:center; margin:12px 0; }
.cresvora-auth .cresvora-auth-links{ margin-top:14px; }
.cresvora-auth .cresvora-auth-links .sep{ padding:0 8px; color: var(--cv-muted); }
.cresvora-account-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.cresvora-brand-profile-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:12px;
}
.cresvora-brand-profile-grid-full{
  grid-column:1 / -1;
}
@media (max-width: 700px){
  .cresvora-brand-profile-grid{
    grid-template-columns: 1fr;
  }
}
.cresvora-brand-claims-wrap{
  margin-top: 12px;
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:14px;
}
@media (max-width: 700px){
  .cresvora-brand-claims-wrap{
    grid-template-columns: 1fr;
  }
}
.cresvora-brand-claims{
  margin-top:6px;
  display:grid;
  gap:6px;
}
#cresvora-app .cresvora-alert{ border:1px solid var(--cv-border); border-radius:10px; padding:10px 12px; margin:10px 0; }
#cresvora-app .cresvora-alert.error{ border-color:#fecaca; background:#fff1f2; color:#7f1d1d; }
#cresvora-app .cresvora-alert.success{ border-color:#bbf7d0; background:#f0fdf4; color:#14532d; }
#cresvora-app .cresvora-hr{ border:0; border-top:1px solid var(--cv-border); margin:16px 0; }
#cresvora-app .cresvora-muted{ color: var(--cv-muted); }
#cresvora-app .cresvora-link{ text-decoration: none; }

/* Shared app header */
#cresvora-app .cv-app-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:0 0 14px;
}
#cresvora-app .cv-app-header .cv-app-header__left{
  flex:1 1 auto;
  min-width:0;
  max-width:420px;
}
#cresvora-app .cv-app-header .cv-app-switcher{
  margin:0;
  max-width:100%;
  width:100%;
}
#cresvora-app .cv-app-header .cv-app-header__right{
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
  min-width:0;
  white-space:nowrap;
  font-size:13px;
}
#cresvora-app .cv-app-header .cv-app-user{
  font-weight:600;
  max-width:160px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
#cresvora-app .cv-app-header .cv-app-sep{
  opacity:0.55;
}
@media (max-width: 720px){
  #cresvora-app .cv-app-header{
    gap:8px;
  }
  #cresvora-app .cv-app-header .cv-app-header__right{
    gap:6px;
    font-size:12px;
  }
  #cresvora-app .cv-app-header .cv-app-user{
    max-width:95px;
  }
}

/* Dashboard layout */
#cresvora-app .cv-dashboard h1{
  margin: 0;
}
#cresvora-app .cv-dashboard{
  max-width:100%;
  overflow-x:hidden;
  width:100%;
  contain:inline-size;
  isolation:isolate;
}
#cresvora-app .cv-dashboard .cv-dashboard-head{
  display:flex;
  flex-direction:column;
  gap:6px;
}
#cresvora-app .cv-dashboard .cv-dashboard-plan-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px 14px;
  align-items:center;
  margin:12px 0 0;
}
#cresvora-app .cv-dashboard .cv-dashboard-section-title{
  margin:0 0 14px;
  font-size:26px;
  line-height:1.3;
  font-weight:600;
  letter-spacing:-0.01em;
  text-transform:none;
  color:var(--cv-text);
}
#cresvora-app .cv-dashboard .cv-status{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:12px;
  padding:12px 14px;
  border:1px solid rgba(15, 23, 42, 0.08);
  border-radius:var(--cv-radius);
  background:#f8fafc;
  margin:10px 0 24px;
}
#cresvora-app .cv-dashboard .cv-status__item{
  min-width:0;
}
#cresvora-app .cv-dashboard .cv-status__label{
  font-size:12px;
  color:var(--cv-muted);
  font-weight:600;
  text-transform:none;
  margin:0 0 2px;
}
#cresvora-app .cv-dashboard .cv-status__value{
  font-size:13px;
  line-height:1.4;
  color:var(--cv-text);
}
#cresvora-app .cv-dashboard .cv-status-interval{
  font-size:13px;
  color:#64748b;
  margin-top:4px;
}
#cresvora-app .cv-dashboard .cv-status__line{
  display:block;
}
#cresvora-app .cv-dashboard .cv-status__line + .cv-status__line{
  margin-top:2px;
}
#cresvora-app .cv-dashboard .cv-dashboard-tools-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:12px;
  min-width:0;
}
#cresvora-app .cv-dashboard .cv-dashboard-tool-card{
  margin:0;
  width:auto;
  min-width:0;
  box-sizing:border-box;
  box-shadow:none;
  padding:14px;
  overflow:hidden;
}
#cresvora-app .cv-dashboard .cv-dashboard-tool-card h3{
  margin:0;
  font-size:22px;
  line-height:1.3;
}
#cresvora-app .cv-dashboard .cv-dashboard-tool-desc{
  margin:6px 0 10px;
  font-size:14px;
  line-height:1.5;
  overflow-wrap:anywhere;
}
#cresvora-app .cv-dashboard .cv-dashboard-tool-meta{
  margin:4px 0;
}
#cresvora-app .cv-dashboard .cv-dashboard-tool-actions{
  margin-top:10px;
}
#cresvora-app .cv-dashboard .cv-unlock-section{
  margin-top:40px;
  padding-top:28px;
  border-top:1px solid rgba(0,0,0,0.06);
}
#cresvora-app .cv-dashboard .cv-unlock-section h2{
  margin-top:0;
  margin-bottom:18px;
}
#cresvora-app .cv-dashboard .cv-unlock-section .cv-dashboard-unlock-card{
  background:#f8fafc;
  border-color:#e5e7eb;
}
#cresvora-app .cv-dashboard .cv-dashboard-tool-list{
  margin:6px 0 0 18px;
  padding:0;
}
#cresvora-app .cv-dashboard .cv-dashboard-tool-list li + li{
  margin-top:4px;
}
@media (max-width: 720px){
  #cresvora-app .cv-dashboard .cv-status{
    grid-template-columns:1fr;
  }
  #cresvora-app .cv-dashboard .cv-dashboard-tools-grid{
    grid-template-columns: 1fr;
  }
}

/* ===========================
   Cresvora Route Scoped Polish
   =========================== */
body.cresvora-route .entry-title,
body.cresvora-route .et_post_meta_wrapper,
body.cresvora-route .et_pb_post_title,
body.cresvora-route .et_pb_title_container{
  display: none !important;
}

body.cresvora-route .cresvora-tools-card{
  box-shadow: 0 2px 10px rgba(15, 23, 42, 0.04);
  border-color: var(--cv-border);
}

body.cresvora-route #cresvora-app .cv-dashboard.cresvora-tools-card{
  box-shadow: none;
  border-color: var(--cv-border);
}

body.cresvora-route #cresvora-app .cv-app-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:0 0 14px;
  padding-bottom:10px;
  border-bottom:1px solid var(--cv-border);
}

body.cresvora-route #cresvora-app .cv-app-header .cv-app-header__left{
  flex:1 1 340px;
  min-width:0;
  max-width:460px;
}

body.cresvora-route #cresvora-app .cv-app-header .cv-app-switcher{
  margin:0;
  width:100%;
  height:40px;
  padding-top:8px;
  padding-bottom:8px;
  border-color: var(--cv-border);
  background: var(--cv-panel-muted);
  font-size:13px;
  font-weight:500;
}

body.cresvora-route #cresvora-app .cv-app-header .cv-app-header__right{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:6px 10px;
  font-size:12px;
  color: var(--cv-muted);
}

body.cresvora-route #cresvora-app .cv-app-header .cv-app-user{
  max-width:180px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-weight:600;
  color: var(--cv-text);
}

body.cresvora-route #cresvora-app .cv-app-header .cv-app-sep{
  opacity:0.45;
}

body.cresvora-route #cresvora-app .cv-dashboard .cv-dashboard-tools-grid{
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:14px;
}

body.cresvora-route #cresvora-app .cv-dashboard .cv-dashboard-tool-card{
  border-color: var(--cv-border);
  background: #fff;
}

body.cresvora-route #cresvora-app .cv-dashboard .cv-unlock-section .cv-dashboard-unlock-card{
  background:#f8fafc;
  border-color:#e5e7eb;
}

body.cresvora-route #cresvora-app .cv-dashboard .cv-unlock-section{
  border-top-color:var(--cv-border);
}

body.cresvora-route #cresvora-app .cv-dashboard .cv-dashboard-tool-meta{
  margin:4px 0;
}

body.cresvora-route #cresvora-app .cv-dashboard .cv-dashboard-tool-meta--secondary{
  margin-top:6px;
  font-size:12px;
  opacity:0.72;
}

body.cresvora-route #cresvora-app .cv-progress{
  margin:6px 0 2px;
}

body.cresvora-route #cresvora-app .cv-progress__track{
  height:6px;
  border-radius:999px;
  overflow:hidden;
  background: rgba(15, 23, 42, 0.1);
}

body.cresvora-route #cresvora-app .cv-progress__fill{
  display:block;
  height:100%;
  width:0;
  border-radius:inherit;
  background: var(--cv-orange);
}

body.cresvora-route #cresvora-app .cv-dashboard .cv-dashboard-tool-actions{
  margin-top:12px;
}

body.cresvora-route #cresvora-app .cv-tool-open{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 12px;
  min-height:36px;
  font-size:13px;
  text-decoration:none;
}

@media (max-width: 780px){
  body.cresvora-route #cresvora-app .cv-app-header{
    flex-wrap:wrap;
    align-items:stretch;
    gap:10px;
  }

  body.cresvora-route #cresvora-app .cv-app-header .cv-app-header__left,
  body.cresvora-route #cresvora-app .cv-app-header .cv-app-header__right{
    flex:1 1 100%;
    max-width:none;
  }

  body.cresvora-route #cresvora-app .cv-app-header .cv-app-switcher{
    width:100%;
  }

  body.cresvora-route #cresvora-app .cv-app-header .cv-app-header__right{
    justify-content:flex-start;
  }

  body.cresvora-route #cresvora-app .cv-dashboard .cv-dashboard-tools-grid{
    grid-template-columns: 1fr;
  }
}

/* Dashboard title above main card (inside Cresvora app shell only). */
#cresvora-app .cv-page-title{
  margin:0 0 14px;
  font-size:34px;
  line-height:1.15;
  font-weight:600;
  letter-spacing:-0.01em;
  color:var(--cv-text);
}

/* Dashboard-specific right header block: two compact rows. */
#cresvora-app .cv-app-header .cv-app-header__right--dashboard,
body.cresvora-route #cresvora-app .cv-app-header .cv-app-header__right--dashboard{
  display:flex;
  flex-direction:column;
  flex-wrap:nowrap;
  align-items:flex-end;
  justify-content:center;
  gap:4px;
  min-width:0;
  white-space:normal;
}

#cresvora-app .cv-app-header__right--dashboard .cv-app-user{
  max-width:none;
  overflow:visible;
  text-overflow:clip;
  white-space:normal;
}

#cresvora-app .cv-app-meta-line{
  margin:0;
  line-height:1.35;
}

#cresvora-app .cv-app-meta-line--top{
  font-size:12px;
  color:var(--cv-muted);
  text-align:right;
}

#cresvora-app .cv-app-meta-line--top strong{
  color:var(--cv-text);
  font-weight:600;
}

#cresvora-app .cv-app-meta-divider{
  margin:0 4px;
  opacity:0.65;
}

#cresvora-app .cv-app-upgrade-wrap{
  margin-left:8px;
}

#cresvora-app .cv-app-upgrade-link{
  font-size:12px;
}

#cresvora-app .cv-app-meta-line--links{
  font-size:13px;
  color:var(--cv-text);
  display:block;
  width:100%;
  text-align:right;
}

#cresvora-app .cv-app-meta-line--links .cv-app-sep{
  margin:0 6px;
}

/* Tighter dashboard vertical rhythm after moving page title outside card. */
#cresvora-app .cv-dashboard .cv-dashboard-section-title{
  margin:0 0 14px;
}

/* Ensure "Open" keeps Cresvora primary styling and wins against Divi link/button styles. */
#cresvora-app .cv-tool-open.cresvora-btn.cresvora-btn-primary{
  background:var(--cv-orange) !important;
  border-color:var(--cv-orange) !important;
  color:#fff !important;
  text-decoration:none !important;
}

#cresvora-app .cv-tool-open.cresvora-btn.cresvora-btn-primary:hover{
  background:#ea6a10 !important;
  border-color:#ea6a10 !important;
  color:#fff !important;
}

#cresvora-app .cv-dashboard .cv-tool-open{
  max-width:100%;
}

@media (max-width: 720px){
  #cresvora-app .cv-page-title{
    margin-bottom:12px;
    font-size:30px;
  }

  #cresvora-app .cv-app-header .cv-app-header__right--dashboard{
    align-items:flex-start;
    width:100%;
  }

  #cresvora-app .cv-app-meta-line--top,
  #cresvora-app .cv-app-meta-line--links{
    text-align:left;
  }

  #cresvora-app .cv-dashboard .cv-tool-open{
    width:100%;
  }
}

/* =========================================================
   Cresvora App Page Layout System
   Shared styles for Dashboard, Tools, Account
   ========================================================= */
#cresvora-app .cv-app-page{
  max-width:100%;
  width:100%;
}

#cresvora-app .cv-page-header{
  max-width:100%;
}

#cresvora-app .cv-page-header .cv-page-title{
  margin:0 0 8px;
}

#cresvora-app .cv-page-description{
  margin:0;
  max-width:72ch;
  font-size:14px;
  line-height:1.5;
  color:var(--cv-muted);
}

#cresvora-app .cv-page-dashboard .cv-page-header .cv-page-title{
  margin:0 0 14px;
}

#cresvora-app .cv-app-page .cv-app-container{
  margin:16px auto;
}

#cresvora-app .cv-app-page .cv-app-content{
  margin-top:0;
}

#cresvora-app .cv-app-page:not(.cv-page-dashboard) .cv-app-content{
  margin-top:4px;
}

#cresvora-app .cv-app-page .cv-tool-helper{
  margin:0 0 16px;
  max-width:72ch;
  font-size:13px;
  line-height:1.5;
  color:var(--cv-muted);
}

@media (max-width: 720px){
  #cresvora-app .cv-page-description{
    font-size:13px;
  }

  #cresvora-app .cv-app-page .cv-tool-helper{
    margin-bottom:14px;
  }
}

/* =========================================================
   Cresvora App - Form Controls + Helper Text
   Scoped to app pages
   ========================================================= */
#cresvora-app .cv-app-page .cv-app-content select,
#cresvora-app .cv-app-page .cv-app-content input[type="text"],
#cresvora-app .cv-app-page .cv-app-content input[type="number"],
#cresvora-app .cv-app-page .cv-app-content input[type="email"],
#cresvora-app .cv-app-page .cv-app-content input[type="password"],
#cresvora-app .cv-app-page .cv-app-content textarea,
#cresvora-app .cresvora-auth .cresvora-form select,
#cresvora-app .cresvora-auth .cresvora-form input[type="text"],
#cresvora-app .cresvora-auth .cresvora-form input[type="number"],
#cresvora-app .cresvora-auth .cresvora-form input[type="email"],
#cresvora-app .cresvora-auth .cresvora-form input[type="password"],
#cresvora-app .cresvora-auth .cresvora-form textarea{
  font-family: inherit;
  font-size:14px;
  font-weight:400;
  line-height:1.45;
  background-color:#fff;
  color:var(--cv-text);
  border:1px solid var(--cv-border-2);
  border-radius:var(--cv-radius-sm);
  padding:10px 12px;
}

#cresvora-app .cv-app-page .cv-app-content input[type="text"]:focus,
#cresvora-app .cv-app-page .cv-app-content input[type="number"]:focus,
#cresvora-app .cv-app-page .cv-app-content input[type="email"]:focus,
#cresvora-app .cv-app-page .cv-app-content input[type="password"]:focus,
#cresvora-app .cv-app-page .cv-app-content select:focus,
#cresvora-app .cv-app-page .cv-app-content textarea:focus,
#cresvora-app .cresvora-auth .cresvora-form input[type="text"]:focus,
#cresvora-app .cresvora-auth .cresvora-form input[type="number"]:focus,
#cresvora-app .cresvora-auth .cresvora-form input[type="email"]:focus,
#cresvora-app .cresvora-auth .cresvora-form input[type="password"]:focus,
#cresvora-app .cresvora-auth .cresvora-form select:focus,
#cresvora-app .cresvora-auth .cresvora-form textarea:focus{
  outline:none;
  border-color: rgba(249, 115, 22, 0.9);
  box-shadow: 0 0 0 3px rgba(249, 115, 22, 0.18);
}

#cresvora-app .cv-app-page .cv-app-content input[type="text"]::placeholder,
#cresvora-app .cv-app-page .cv-app-content input[type="number"]::placeholder,
#cresvora-app .cv-app-page .cv-app-content input[type="email"]::placeholder,
#cresvora-app .cv-app-page .cv-app-content input[type="password"]::placeholder,
#cresvora-app .cv-app-page .cv-app-content textarea::placeholder,
#cresvora-app .cresvora-auth .cresvora-form input[type="text"]::placeholder,
#cresvora-app .cresvora-auth .cresvora-form input[type="number"]::placeholder,
#cresvora-app .cresvora-auth .cresvora-form input[type="email"]::placeholder,
#cresvora-app .cresvora-auth .cresvora-form input[type="password"]::placeholder,
#cresvora-app .cresvora-auth .cresvora-form textarea::placeholder{
  color:var(--cv-muted);
  opacity:0.9;
}

#cresvora-app .cv-app-page .cv-app-content select:disabled,
#cresvora-app .cv-app-page .cv-app-content input[type="text"]:disabled,
#cresvora-app .cv-app-page .cv-app-content input[type="number"]:disabled,
#cresvora-app .cv-app-page .cv-app-content input[type="email"]:disabled,
#cresvora-app .cv-app-page .cv-app-content input[type="password"]:disabled,
#cresvora-app .cv-app-page .cv-app-content textarea:disabled,
#cresvora-app .cresvora-auth .cresvora-form select:disabled,
#cresvora-app .cresvora-auth .cresvora-form input[type="text"]:disabled,
#cresvora-app .cresvora-auth .cresvora-form input[type="number"]:disabled,
#cresvora-app .cresvora-auth .cresvora-form input[type="email"]:disabled,
#cresvora-app .cresvora-auth .cresvora-form input[type="password"]:disabled,
#cresvora-app .cresvora-auth .cresvora-form textarea:disabled{
  background-color:var(--cv-panel-muted);
  color:var(--cv-muted);
  cursor:not-allowed;
}

#cresvora-app .cv-app-page .cv-app-content input[type="text"]:-webkit-autofill,
#cresvora-app .cv-app-page .cv-app-content input[type="text"]:-webkit-autofill:hover,
#cresvora-app .cv-app-page .cv-app-content input[type="text"]:-webkit-autofill:focus,
#cresvora-app .cv-app-page .cv-app-content input[type="number"]:-webkit-autofill,
#cresvora-app .cv-app-page .cv-app-content input[type="number"]:-webkit-autofill:hover,
#cresvora-app .cv-app-page .cv-app-content input[type="number"]:-webkit-autofill:focus,
#cresvora-app .cv-app-page .cv-app-content input[type="email"]:-webkit-autofill,
#cresvora-app .cv-app-page .cv-app-content input[type="email"]:-webkit-autofill:hover,
#cresvora-app .cv-app-page .cv-app-content input[type="email"]:-webkit-autofill:focus,
#cresvora-app .cv-app-page .cv-app-content input[type="password"]:-webkit-autofill,
#cresvora-app .cv-app-page .cv-app-content input[type="password"]:-webkit-autofill:hover,
#cresvora-app .cv-app-page .cv-app-content input[type="password"]:-webkit-autofill:focus,
#cresvora-app .cv-app-page .cv-app-content textarea:-webkit-autofill,
#cresvora-app .cv-app-page .cv-app-content textarea:-webkit-autofill:hover,
#cresvora-app .cv-app-page .cv-app-content textarea:-webkit-autofill:focus,
#cresvora-app .cv-app-page .cv-app-content select:-webkit-autofill,
#cresvora-app .cv-app-page .cv-app-content select:-webkit-autofill:hover,
#cresvora-app .cv-app-page .cv-app-content select:-webkit-autofill:focus,
#cresvora-app .cresvora-auth .cresvora-form input[type="text"]:-webkit-autofill,
#cresvora-app .cresvora-auth .cresvora-form input[type="text"]:-webkit-autofill:hover,
#cresvora-app .cresvora-auth .cresvora-form input[type="text"]:-webkit-autofill:focus,
#cresvora-app .cresvora-auth .cresvora-form input[type="number"]:-webkit-autofill,
#cresvora-app .cresvora-auth .cresvora-form input[type="number"]:-webkit-autofill:hover,
#cresvora-app .cresvora-auth .cresvora-form input[type="number"]:-webkit-autofill:focus,
#cresvora-app .cresvora-auth .cresvora-form input[type="email"]:-webkit-autofill,
#cresvora-app .cresvora-auth .cresvora-form input[type="email"]:-webkit-autofill:hover,
#cresvora-app .cresvora-auth .cresvora-form input[type="email"]:-webkit-autofill:focus,
#cresvora-app .cresvora-auth .cresvora-form input[type="password"]:-webkit-autofill,
#cresvora-app .cresvora-auth .cresvora-form input[type="password"]:-webkit-autofill:hover,
#cresvora-app .cresvora-auth .cresvora-form input[type="password"]:-webkit-autofill:focus,
#cresvora-app .cresvora-auth .cresvora-form textarea:-webkit-autofill,
#cresvora-app .cresvora-auth .cresvora-form textarea:-webkit-autofill:hover,
#cresvora-app .cresvora-auth .cresvora-form textarea:-webkit-autofill:focus,
#cresvora-app .cresvora-auth .cresvora-form select:-webkit-autofill,
#cresvora-app .cresvora-auth .cresvora-form select:-webkit-autofill:hover,
#cresvora-app .cresvora-auth .cresvora-form select:-webkit-autofill:focus{
  -webkit-text-fill-color:var(--cv-text);
  caret-color:var(--cv-text);
  border:1px solid var(--cv-border-2);
  -webkit-box-shadow:0 0 0 1000px #fff inset;
  box-shadow:0 0 0 1000px #fff inset;
}

#cresvora-app .cv-app-page .cv-help-text{
  margin:6px 0 12px;
  color:var(--cv-muted);
  font-size:12px;
  line-height:1.45;
}

#cresvora-app .cv-app-page .cv-section-divider{
  width:100%;
  height:1px;
  margin:20px 0;
  background:var(--cv-border);
  opacity:0.75;
}

/* =========================================================
   Cresvora App - Card Headers with Actions
   Scoped to tool pages
   ========================================================= */
#cresvora-app .cv-page-tool .cv-card-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin:0 0 10px;
}

#cresvora-app .cv-page-tool .cv-card-title{
  flex:1 1 auto;
  min-width:0;
}

#cresvora-app .cv-page-tool .cv-card-title .cresvora-panel-title{
  margin:0;
}

#cresvora-app .cv-page-tool .cv-card-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:14px;
  flex:0 0 auto;
  min-width:0;
}

#cresvora-app .cv-page-tool .cv-card-actions label{
  margin:0;
  display:inline-flex;
  align-items:center;
  gap:8px;
  white-space:nowrap;
}

@media (max-width: 720px){
  #cresvora-app .cv-page-tool .cv-card-header{
    align-items:flex-start;
  }

  #cresvora-app .cv-page-tool .cv-card-actions{
    width:100%;
    justify-content:flex-start;
    flex-wrap:wrap;
    gap:10px 14px;
  }
}

/* =========================================================
   Cresvora Account Page
   Scoped to account route only
   ========================================================= */
#cresvora-app .cv-page-account .cv-app-content{
  display:grid;
  gap:14px;
}

#cresvora-app .cv-page-account .cv-account-overview{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  margin:0;
}

#cresvora-app .cv-page-account .cv-account-overview__identity{
  flex:1 1 auto;
  min-width:0;
}

#cresvora-app .cv-page-account .cv-account-overview__label{
  margin:0 0 4px;
  font-size:12px;
  font-weight:600;
  color:var(--cv-muted);
  letter-spacing:0.01em;
  text-transform:uppercase;
}

#cresvora-app .cv-page-account .cv-account-overview__value{
  margin:0 0 10px;
  font-size:16px;
  line-height:1.35;
  color:var(--cv-text);
  word-break:break-word;
}

#cresvora-app .cv-page-account .cv-account-overview__value:last-child{
  margin-bottom:0;
}

#cresvora-app .cv-page-account .cv-account-overview__right{
  display:grid;
  justify-items:end;
  gap:8px;
  flex:0 0 auto;
}

#cresvora-app .cv-page-account .cv-account-plan-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
  padding:4px 12px;
  border-radius:999px;
  border:1px solid rgba(30, 64, 175, 0.24);
  background:rgba(30, 64, 175, 0.08);
  color:var(--cv-blue);
  font-size:12px;
  font-weight:600;
}

#cresvora-app .cv-page-account .cv-account-overview__actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:8px;
}

#cresvora-app .cv-page-account .cv-account-edit-card{
  margin:0;
}

#cresvora-app .cv-page-account .cv-account-edit-card__header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:12px;
}

#cresvora-app .cv-page-account .cv-account-edit-card__cancel{
  font-size:13px;
}

#cresvora-app .cv-page-account .cv-account-edit-form{
  margin-top:0;
}

#cresvora-app .cv-page-account .cv-account-edit-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
}

/* Account section nav: compact navigation links for Subscription/Brand Profile views. */
#cresvora-app .cv-page-account .cv-account-section-nav,
#cresvora-app .cv-page-account .cresvora-account-tabs.cv-account-section-nav{
  display:inline-flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px;
  padding:6px;
  background:#ffffff;
  border:1px solid #e6eaf0;
  border-radius:12px;
  box-shadow:0 8px 20px rgba(15, 23, 42, 0.04);
  margin:18px 0 22px;
}

#cresvora-app .cv-page-account .cv-account-section-nav .cv-tab{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 12px;
  border:0;
  border-radius:8px;
  background:transparent;
  color:#64748b;
  font-size:13px;
  font-weight:600;
  line-height:1.2;
  text-decoration:none;
  cursor:pointer;
  box-shadow:none;
}

#cresvora-app .cv-page-account .cv-account-section-nav .cv-tab:hover{
  background:#f8fafc;
  color:#475569;
  box-shadow:none;
}

#cresvora-app .cv-page-account .cv-account-section-nav .cv-tab:active{
  transform:none;
}

#cresvora-app .cv-page-account .cv-account-section-nav .cv-tab:visited{
  color:#64748b;
}

#cresvora-app .cv-page-account .cv-account-section-nav .cv-tab.active,
#cresvora-app .cv-page-account .cv-account-section-nav .cv-tab[aria-current="page"]{
  background:#eef4ff;
  color:#1d4ed8;
}

#cresvora-app .cv-page-account .cv-account-section-nav .cv-tab.active:visited,
#cresvora-app .cv-page-account .cv-account-section-nav .cv-tab[aria-current="page"]:visited{
  color:#1d4ed8;
}

#cresvora-app .cv-page-account .cv-account-section-card{
  margin:0;
}

#cresvora-app .cv-page-account .cv-account-section-group--billing{
  margin-top:0;
  padding-top:12px;
  border-top:1px solid var(--cv-border);
}

#cresvora-app .cv-page-account .cv-account-section-title{
  margin:0;
}

#cresvora-app .cv-page-account .cv-account-section-copy{
  margin:6px 0 0;
}

#cresvora-app .cv-page-account .cv-account-brand-form{
  margin-top:10px;
}

/* Brand Profile spacing cleanup (Account > Brand Profile tab only). */
#cresvora-app .cv-page-account .cv-account-brand-form .cresvora-brand-profile-grid{
  row-gap:18px;
  column-gap:16px;
}

#cresvora-app .cv-page-account .cv-account-brand-form .cv-brand-claims{
  margin-top:24px;
  padding-top:16px;
  border-top:1px solid #e6eaf0;
  gap:18px;
}

#cresvora-app .cv-page-account .cv-account-brand-form .cv-brand-claims-list{
  margin-top:10px;
  gap:10px;
}

#cresvora-app .cv-page-account .cv-account-brand-form .cv-brand-claims-list .cresvora-checkbox{
  display:flex;
  align-items:flex-start;
  gap:8px;
  margin:0;
}

#cresvora-app .cv-page-account .cv-account-brand-form .cv-brand-claims-list .cresvora-checkbox input{
  margin-top:2px;
}

#cresvora-app .cv-page-account .cv-account-brand-form .cv-brand-save{
  margin-top:24px;
}

#cresvora-app .cv-page-account .cv-account-plan-summary{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:10px;
  margin-top:10px;
}

#cresvora-app .cv-page-account .cv-account-plan-summary__item{
  border:1px solid var(--cv-border);
  border-radius:var(--cv-radius-sm);
  background:#fff;
  padding:10px 12px;
}

#cresvora-app .cv-page-account .cv-account-plan-summary__label{
  display:block;
  margin:0 0 4px;
  font-size:12px;
  color:var(--cv-muted);
}

#cresvora-app .cv-page-account .cv-account-plan-summary__value{
  display:block;
  margin:0;
  font-size:13px;
  color:var(--cv-text);
}

#cresvora-app .cv-page-account .cv-account-billing-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:10px;
}

/* Account page warning state for writer top-up. */
#cresvora-app .cv-page-account .cv-alert-warning{
  background:#fff7ed;
  border:1px solid #fed7aa;
  border-radius:10px;
  padding:16px;
}

/* Account mini stat cards (renewal/status/bundle). */
#cresvora-app .cv-page-account .cv-mini-stat{
  background:#f9fafb;
  border:1px solid #e6eaf0;
  border-radius:10px;
  padding:14px 16px;
}

#cresvora-app .cv-page-account .cv-mini-stat strong{
  display:block;
  font-size:14px;
  color:#111827;
  margin-top:4px;
}

/* Account billing button hierarchy. Scoped to Account page only. */
#cresvora-app .cv-page-account .cv-btn-primary{
  background:#2f5cff !important;
  border-color:#2f5cff !important;
  color:#fff !important;
}

#cresvora-app .cv-page-account .cv-btn-primary:hover{
  background:#264de0 !important;
  border-color:#264de0 !important;
  color:#fff !important;
}

#cresvora-app .cv-page-account .cv-btn-secondary{
  background:#f97316 !important;
  border-color:#f97316 !important;
  color:#fff !important;
}

#cresvora-app .cv-page-account .cv-btn-secondary:hover{
  background:#ea6a10 !important;
  border-color:#ea6a10 !important;
  color:#fff !important;
}

#cresvora-app .cv-page-account .cv-btn-ghost{
  background:transparent !important;
  border:1px solid #d1d5db !important;
  color:#111827 !important;
}

#cresvora-app .cv-page-account .cv-btn-ghost:hover{
  background:#f9fafb !important;
  border-color:#cbd5e1 !important;
  color:#111827 !important;
}

#cresvora-app .cv-page-account .cv-btn-primary[disabled],
#cresvora-app .cv-page-account .cv-btn-secondary[disabled],
#cresvora-app .cv-page-account .cv-btn-ghost[disabled]{
  opacity:0.55;
  cursor:not-allowed;
}

@media (max-width: 820px){
  #cresvora-app .cv-page-account .cv-account-section-nav{
    margin:14px 0 18px;
  }

  #cresvora-app .cv-page-account .cv-account-overview{
    flex-direction:column;
    gap:12px;
  }

  #cresvora-app .cv-page-account .cv-account-overview__right{
    width:100%;
    justify-items:start;
  }

  #cresvora-app .cv-page-account .cv-account-overview__actions{
    justify-content:flex-start;
  }

  #cresvora-app .cv-page-account .cv-account-edit-grid{
    grid-template-columns:1fr;
  }

  #cresvora-app .cv-page-account .cv-account-plan-summary{
    grid-template-columns:1fr;
  }

  #cresvora-app .cv-page-account .cv-account-brand-form .cresvora-brand-profile-grid{
    row-gap:16px;
  }
}

/* =========================================================
   Shared SaaS App Polish
   Notes:
   - Presentation-only layer for logged-in app screens.
   - Keeps existing selectors/ids/data attributes intact.
   ========================================================= */
body.cresvora-route{
  background:transparent;
}

#cresvora-app{
  --cv-bg-app:#f7f9fc;
  --cv-panel-white:#ffffff;
  --cv-border-app:#e6eaf0;
  --cv-shadow-soft:0 10px 28px rgba(15, 23, 42, 0.06);
  --cv-shadow-card:0 6px 18px rgba(15, 23, 42, 0.05);
  --cv-text-strong:#111827;
  --cv-muted-text:#64748b;
  --cv-primary-blue:#2454d6;
  --cv-primary-blue-hover:#1d4ed8;
  --cv-orange-accent:#f97316;
  --cv-orange-accent-hover:#ea6a10;
  background:var(--cv-bg-app);
  color:var(--cv-text-strong);
  border-radius:24px;
  padding:26px 18px 50px;
}

#cresvora-app .cv-app-shell{
  width:100%;
}

#cresvora-app .cv-app-container{
  max-width:1180px;
  margin:0 auto 14px;
}

/* Prevent the shell from leaving a trailing colored strip before footer. */
#cresvora-app .cv-app-page > .cv-app-container:last-child{
  margin-bottom:0;
}

#cresvora-app .cv-app-panel{
  background:var(--cv-panel-white);
  border:1px solid var(--cv-border-app);
  border-radius:18px;
  box-shadow:var(--cv-shadow-soft);
  padding:24px;
}

#cresvora-app .cv-page-header{
  max-width:1180px;
  margin:0 auto 14px;
}

#cresvora-app .cv-page-title{
  color:var(--cv-text-strong);
  margin:0;
}

#cresvora-app .cv-page-description{
  color:var(--cv-muted-text);
}

#cresvora-app .cv-app-header{
  margin:0 0 18px;
  padding-bottom:12px;
  border-bottom:1px solid var(--cv-border-app);
}

#cresvora-app .cv-app-header .cv-app-switcher{
  min-height:42px;
  border-color:var(--cv-border-app);
  background:#fbfcff;
}

#cresvora-app .cv-muted,
#cresvora-app .cresvora-muted{
  color:var(--cv-muted-text);
}

#cresvora-app .cv-card{
  background:var(--cv-panel-white);
  border:1px solid var(--cv-border-app);
  border-radius:16px;
  box-shadow:var(--cv-shadow-card);
}

#cresvora-app .cv-card-grid{
  display:grid;
  gap:14px;
}

#cresvora-app .cv-dashboard-stats{
  grid-template-columns:repeat(4, minmax(0, 1fr));
  margin:6px 0 24px;
}

#cresvora-app .cv-stat-card{
  padding:16px;
  min-width:0;
}

#cresvora-app .cv-stat-card__head{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 10px;
}

#cresvora-app .cv-stat-card__value{
  font-size:14px;
  line-height:1.45;
}

#cresvora-app .cv-dashboard .cv-status__label{
  margin:0;
  font-size:12px;
  letter-spacing:0.02em;
  text-transform:uppercase;
  color:var(--cv-muted-text);
}

#cresvora-app .cv-dashboard .cv-status__value{
  color:var(--cv-text-strong);
}

#cresvora-app .cv-dashboard .cv-status__line + .cv-status__line{
  margin-top:4px;
}

#cresvora-app .cv-dashboard .cv-dashboard-section-title{
  margin:0 0 14px;
  font-size:24px;
}

#cresvora-app .cv-dashboard .cv-dashboard-tools-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:16px;
}

#cresvora-app .cv-tool-card{
  padding:18px;
}

#cresvora-app .cv-tool-card__header{
  display:flex;
  align-items:flex-start;
  gap:12px;
  margin-bottom:8px;
}

#cresvora-app .cv-tool-card__title-wrap{
  min-width:0;
  flex:1 1 auto;
}

#cresvora-app .cv-tool-card h3{
  margin:0;
  font-size:20px;
  line-height:1.3;
  color:var(--cv-text-strong);
}

#cresvora-app .cv-tool-card .cv-dashboard-tool-desc{
  margin:6px 0 0;
  font-size:14px;
}

#cresvora-app .cv-dashboard .cv-dashboard-tool-actions{
  margin-top:12px;
}

#cresvora-app .cv-tool-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  min-width:42px;
  border-radius:999px;
  border:1px solid transparent;
}

#cresvora-app .cv-tool-icon svg{
  width:20px;
  height:20px;
  fill:currentColor;
}

#cresvora-app .cv-tool-icon--writer{
  color:var(--cv-primary-blue);
  background:rgba(36, 84, 214, 0.1);
  border-color:rgba(36, 84, 214, 0.2);
}

#cresvora-app .cv-tool-icon--plan,
#cresvora-app .cv-tool-icon--usage{
  color:#1e3a8a;
  background:rgba(30, 58, 138, 0.08);
  border-color:rgba(30, 58, 138, 0.18);
}

#cresvora-app .cv-tool-icon--optimizer{
  color:var(--cv-orange-accent);
  background:rgba(249, 115, 22, 0.12);
  border-color:rgba(249, 115, 22, 0.24);
}

#cresvora-app .cv-progress{
  margin:8px 0 4px;
}

#cresvora-app .cv-progress__track{
  height:8px;
  border-radius:999px;
  overflow:hidden;
  background:#e8edf5;
}

#cresvora-app .cv-progress__fill,
#cresvora-app .cv-progress-bar{
  display:block;
  height:100%;
  width:0;
  border-radius:inherit;
  background:var(--cv-primary-blue);
}

#cresvora-app .cv-tool-card--ecom-image-optimizer .cv-progress__fill,
#cresvora-app .cv-tool-card--ecom-image-optimizer .cv-progress-bar{
  background:var(--cv-orange-accent);
}

#cresvora-app .cv-btn,
#cresvora-app .cresvora-btn.cv-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:10px;
  min-height:40px;
  padding:10px 14px;
  font-weight:600;
  text-decoration:none;
}

#cresvora-app .cv-btn-primary{
  background:var(--cv-primary-blue) !important;
  border-color:var(--cv-primary-blue) !important;
  color:#fff !important;
}

#cresvora-app .cv-btn-primary:hover{
  background:var(--cv-primary-blue-hover) !important;
  border-color:var(--cv-primary-blue-hover) !important;
}

#cresvora-app .cv-btn-orange{
  background:var(--cv-orange-accent) !important;
  border-color:var(--cv-orange-accent) !important;
  color:#fff !important;
}

#cresvora-app .cv-btn-orange:hover{
  background:var(--cv-orange-accent-hover) !important;
  border-color:var(--cv-orange-accent-hover) !important;
}

#cresvora-app .cv-tool-open.cv-btn-primary{
  background:var(--cv-primary-blue) !important;
  border-color:var(--cv-primary-blue) !important;
}

#cresvora-app .cv-tool-open.cv-btn-primary:hover{
  background:var(--cv-primary-blue-hover) !important;
  border-color:var(--cv-primary-blue-hover) !important;
}

#cresvora-app .cv-tool-open.cv-btn-orange{
  background:var(--cv-orange-accent) !important;
  border-color:var(--cv-orange-accent) !important;
}

#cresvora-app .cv-tool-open.cv-btn-orange:hover{
  background:var(--cv-orange-accent-hover) !important;
  border-color:var(--cv-orange-accent-hover) !important;
}

/* Product Writer pages favor blue for primary actions. */
#cresvora-app .cv-page-tool-ai-product-writer .cresvora-btn:not(.cresvora-btn-secondary):not([data-cv-topup-cta="1"]){
  background:var(--cv-primary-blue);
  border-color:var(--cv-primary-blue);
}

#cresvora-app .cv-page-tool-ai-product-writer .cresvora-btn:not(.cresvora-btn-secondary):not([data-cv-topup-cta="1"]):hover{
  background:var(--cv-primary-blue-hover);
  border-color:var(--cv-primary-blue-hover);
}

#cresvora-app .cv-page-tool .cresvora-tools-grid{
  gap:20px;
}

#cresvora-app .cv-page-tool .cresvora-panel{
  background:#ffffff;
  border-color:var(--cv-border-app);
  border-radius:14px;
  box-shadow:var(--cv-shadow-card);
}

#cresvora-app .cv-page-tool .cresvora-output-card{
  border-color:var(--cv-border-app);
  background:#fbfcff;
}

#cresvora-app .cv-page-tool .cresvora-tools-actions{
  gap:8px;
}

#cresvora-app .cv-page-account .cv-account-overview,
#cresvora-app .cv-page-account .cv-account-section-card,
#cresvora-app .cv-page-account .cv-account-edit-card{
  border:1px solid var(--cv-border-app);
  border-radius:14px;
  background:#fff;
  box-shadow:var(--cv-shadow-card);
}

#cresvora-app .cv-page-account .cv-account-overview{
  padding:18px;
}

#cresvora-app .cv-page-account .cv-account-section-card,
#cresvora-app .cv-page-account .cv-account-edit-card{
  padding:18px;
}

@media (max-width: 1080px){
  #cresvora-app .cv-dashboard-stats{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 900px){
  #cresvora-app .cv-dashboard .cv-dashboard-tools-grid{
    grid-template-columns:1fr;
  }
}

@media (max-width: 720px){
  #cresvora-app{
    border-radius:16px;
    padding:18px 12px 50px;
  }

  #cresvora-app .cv-app-panel{
    padding:16px;
  }

  #cresvora-app .cv-dashboard-stats{
    grid-template-columns:1fr;
  }

  #cresvora-app .cv-tool-card__header{
    align-items:center;
  }
}
