.cvi-portal,
.cvi-portal * { box-sizing: border-box; }
.cvi-portal {
  --cvi-navy: #102b3a;
  --cvi-blue: #147fa4;
  --cvi-aqua: #62d4cf;
  --cvi-sun: #f5bd59;
  --cvi-coral: #ef8067;
  --cvi-paper: #f6f2eb;
  --cvi-white: #fff;
  --cvi-muted: #6f7f88;
  --cvi-line: #dfe7e9;
  --cvi-shadow: 0 20px 60px rgba(15, 45, 59, .13);
  color: var(--cvi-navy);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.5;
  min-width: 0;
}
.cvi-portal button,
.cvi-portal input,
.cvi-portal textarea,
.cvi-portal select { font: inherit; }
.cvi-portal button { cursor: pointer; }
.cvi-portal img { display: block; max-width: 100%; }
.cvi-portal [hidden] { display: none !important; }

/* Auth */
.cvi-auth-page {
  min-height: 760px;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(420px, .92fr);
  background: var(--cvi-white);
  overflow: hidden;
  border-radius: 28px;
  box-shadow: var(--cvi-shadow);
}
.cvi-auth-art {
  position: relative;
  min-height: 760px;
  padding: 42px clamp(34px, 5vw, 78px);
  background:
    radial-gradient(circle at 85% 15%, rgba(98,212,207,.35), transparent 34%),
    radial-gradient(circle at 8% 80%, rgba(245,189,89,.25), transparent 32%),
    linear-gradient(145deg, #0c617f 0%, #103d54 55%, #102b3a 100%);
  color: #fff;
  isolation: isolate;
  overflow: hidden;
}
.cvi-auth-art::before,
.cvi-auth-art::after {
  content: "";
  position: absolute;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.14);
  z-index: -1;
}
.cvi-auth-art::before { width: 460px; height: 460px; right: -180px; bottom: -120px; }
.cvi-auth-art::after { width: 280px; height: 280px; right: -80px; bottom: -30px; }
.cvi-auth-art__glow {
  position: absolute;
  width: 250px;
  height: 250px;
  left: -80px;
  top: 120px;
  border-radius: 50%;
  background: rgba(245,189,89,.17);
  filter: blur(1px);
  z-index: -1;
}
.cvi-auth-brand,
.cvi-auth-mobile-brand,
.cvi-app-logo { display: flex; align-items: center; gap: 11px; }
.cvi-auth-brand { font-size: 18px; letter-spacing: -.02em; }
.cvi-auth-brand__mark,
.cvi-app-logo span,
.cvi-auth-mobile-brand span {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 12px;
  background: var(--cvi-sun);
  color: #513a0a;
  box-shadow: 0 8px 24px rgba(245,189,89,.25);
}
.cvi-auth-art__copy { position: relative; z-index: 2; max-width: 650px; margin-top: clamp(95px, 13vh, 145px); }
.cvi-auth-eyebrow,
.cvi-section-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--cvi-blue);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.cvi-auth-eyebrow { color: var(--cvi-aqua); }
.cvi-auth-art__copy h1 { margin: 15px 0 18px; font-size: clamp(42px, 5.3vw, 74px); line-height: .98; letter-spacing: -.055em; max-width: 760px; }
.cvi-auth-art__copy p { margin: 0; max-width: 570px; font-size: clamp(17px, 1.5vw, 20px); color: rgba(255,255,255,.77); }
.cvi-auth-features { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 30px; }
.cvi-auth-features span { padding: 9px 13px; border: 1px solid rgba(255,255,255,.17); border-radius: 999px; background: rgba(255,255,255,.08); font-size: 13px; font-weight: 700; }
.cvi-auth-preview {
  position: absolute;
  right: clamp(-100px, -4vw, -40px);
  bottom: -80px;
  width: min(530px, 65%);
  padding: 13px;
  border: 1px solid rgba(255,255,255,.23);
  border-radius: 24px;
  background: rgba(255,255,255,.12);
  backdrop-filter: blur(18px);
  transform: rotate(-4deg);
  box-shadow: 0 30px 70px rgba(0,0,0,.25);
}
.cvi-auth-preview__top { display: flex; gap: 6px; padding: 3px 4px 10px; }
.cvi-auth-preview__top i { width: 7px; height: 7px; border-radius: 50%; background: rgba(255,255,255,.45); }
.cvi-auth-preview__hero { min-height: 180px; padding: 34px; display: flex; flex-direction: column; justify-content: flex-end; border-radius: 16px; background: radial-gradient(circle at 72% 20%, rgba(98,212,207,.62), transparent 27%), radial-gradient(circle at 28% 75%, rgba(245,189,89,.38), transparent 31%), linear-gradient(145deg, #1d829f, #10384b); }
.cvi-auth-preview__hero small { font-weight: 800; letter-spacing: .15em; }
.cvi-auth-preview__hero strong { margin-top: 7px; font-size: 29px; letter-spacing: -.04em; }
.cvi-auth-preview__cards { display: grid; grid-template-columns: 1.2fr .8fr .8fr; gap: 8px; margin-top: 8px; }
.cvi-auth-preview__cards span { height: 75px; border-radius: 12px; background: rgba(255,255,255,.2); }
.cvi-auth-preview__cards span:first-child { background: rgba(98,212,207,.48); }

.cvi-auth-panel { display: grid; place-items: center; padding: 42px clamp(28px, 5vw, 78px); background: #fff; }
.cvi-auth-panel__inner { width: min(100%, 470px); }
.cvi-auth-mobile-brand { display: none; margin-bottom: 32px; font-weight: 800; }
.cvi-auth-tabs { display: grid; grid-template-columns: repeat(2, 1fr); gap: 4px; padding: 4px; border-radius: 14px; background: #edf3f4; }
.cvi-auth-tabs button { border: 0; padding: 12px 14px; border-radius: 11px; color: #72818a; background: transparent; font-weight: 800; }
.cvi-auth-tabs button.is-active { color: var(--cvi-navy); background: #fff; box-shadow: 0 5px 16px rgba(15,43,57,.08); }
.cvi-auth-form { display: none; padding-top: 34px; }
.cvi-auth-form.is-active { display: block; }
.cvi-auth-heading h2 { margin: 0; font-size: 31px; letter-spacing: -.045em; }
.cvi-auth-heading p { margin: 7px 0 28px; color: var(--cvi-muted); }
.cvi-auth-form > label:not(.cvi-check) { display: block; margin-bottom: 17px; }
.cvi-auth-form label > span:first-child,
.cvi-field > span { display: block; margin-bottom: 7px; font-size: 13px; font-weight: 800; color: #354d58; }
.cvi-auth-form input,
.cvi-field input,
.cvi-field textarea,
.cvi-field select {
  width: 100%;
  border: 1px solid #d8e3e6;
  border-radius: 12px;
  padding: 13px 14px;
  background: #fbfcfc;
  color: var(--cvi-navy);
  outline: 0;
  transition: border-color .2s, box-shadow .2s, background .2s;
}
.cvi-auth-form input:focus,
.cvi-field input:focus,
.cvi-field textarea:focus,
.cvi-field select:focus { border-color: var(--cvi-blue); box-shadow: 0 0 0 4px rgba(20,127,164,.11); background: #fff; }
.cvi-auth-form small { display: block; margin-top: 5px; color: #88959c; }
.cvi-password-field { position: relative; }
.cvi-password-field input { padding-right: 62px; }
.cvi-password-field button { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); border: 0; padding: 6px; background: transparent; color: var(--cvi-blue); font-size: 12px; font-weight: 800; }
.cvi-check { display: flex; align-items: flex-start; gap: 9px; margin: 8px 0 18px; color: #566a74; font-size: 13px; }
.cvi-check input { width: 17px; height: 17px; margin-top: 2px; accent-color: var(--cvi-blue); }
.cvi-auth-error { min-height: 20px; margin-bottom: 9px; color: #c64635; font-size: 13px; font-weight: 700; }
.cvi-forgot { display: block; margin-top: 17px; text-align: center; color: var(--cvi-blue); font-size: 13px; font-weight: 800; text-decoration: none; }

/* Buttons */
.cvi-primary-button,
.cvi-secondary-button,
.cvi-back-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: 12px;
  padding: 11px 16px;
  font-weight: 800;
  text-decoration: none;
  transition: transform .18s, box-shadow .18s, background .18s;
}
.cvi-primary-button { border: 1px solid var(--cvi-blue); color: #fff; background: var(--cvi-blue); box-shadow: 0 9px 25px rgba(20,127,164,.21); }
.cvi-primary-button:hover { transform: translateY(-1px); background: #0d6c8d; box-shadow: 0 12px 28px rgba(20,127,164,.27); }
.cvi-primary-button--wide { width: 100%; padding: 14px 17px; }
.cvi-secondary-button { border: 1px solid #d5e0e3; color: var(--cvi-navy); background: #fff; }
.cvi-secondary-button:hover { background: #f3f7f8; }
.cvi-back-button { border: 0; padding-left: 0; background: transparent; color: #506671; }
.cvi-link-danger { border: 0; padding: 6px; background: transparent; color: #c94b3b; font-size: 13px; font-weight: 800; }
.cvi-primary-button[disabled], .cvi-secondary-button[disabled] { opacity: .6; cursor: progress; transform: none; }

/* App shell */
.cvi-app-shell { min-height: 820px; display: grid; grid-template-columns: 248px minmax(0, 1fr); border-radius: 28px; overflow: hidden; background: #f5f7f6; box-shadow: var(--cvi-shadow); }
.cvi-app-sidebar { min-height: 820px; display: flex; flex-direction: column; padding: 30px 20px 22px; color: #fff; background: linear-gradient(180deg, #12394b, #0e2937); }
.cvi-app-logo { margin: 0 9px 34px; color: #fff; text-decoration: none; font-size: 17px; }
.cvi-app-sidebar nav { display: grid; gap: 7px; }
.cvi-app-sidebar nav button { width: 100%; display: flex; align-items: center; gap: 12px; border: 0; padding: 12px 13px; border-radius: 12px; color: rgba(255,255,255,.68); background: transparent; text-align: left; font-weight: 750; }
.cvi-app-sidebar nav button span { font-size: 19px; }
.cvi-app-sidebar nav button:hover,
.cvi-app-sidebar nav button.is-active { color: #fff; background: rgba(255,255,255,.11); }
.cvi-app-sidebar__tip { margin-top: auto; padding: 15px; border: 1px solid rgba(255,255,255,.11); border-radius: 15px; background: rgba(255,255,255,.06); }
.cvi-app-sidebar__tip > span { font-size: 22px; }
.cvi-app-sidebar__tip strong { display: block; margin-top: 8px; }
.cvi-app-sidebar__tip p { margin: 4px 0 0; color: rgba(255,255,255,.62); font-size: 12px; }
.cvi-app-logout { margin: 15px 10px 0; color: rgba(255,255,255,.58); font-size: 13px; font-weight: 700; text-decoration: none; }
.cvi-app-main { min-width: 0; }
.cvi-app-topbar { height: 86px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 0 clamp(24px, 4vw, 48px); border-bottom: 1px solid #e5ebec; background: rgba(255,255,255,.91); }
.cvi-app-topbar > div:first-of-type { display: flex; flex-direction: column; }
.cvi-app-topbar > div:first-of-type span { color: #79878e; font-size: 12px; }
.cvi-app-topbar > div:first-of-type strong { letter-spacing: -.02em; }
.cvi-user-chip { display: flex; align-items: center; gap: 10px; }
.cvi-user-chip > span { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; color: #fff; background: var(--cvi-blue); font-weight: 900; }
.cvi-user-chip div { display: flex; flex-direction: column; max-width: 200px; }
.cvi-user-chip small { color: #859198; overflow: hidden; text-overflow: ellipsis; }
.cvi-mobile-menu { display: none; border: 0; background: transparent; font-size: 24px; }
.cvi-dashboard-view,
.cvi-editor-view { padding: clamp(27px, 4vw, 48px); }
.cvi-dashboard-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; }
.cvi-dashboard-heading h1,
.cvi-editor-heading input { margin: 7px 0 4px; font-size: clamp(32px, 4vw, 47px); line-height: 1; letter-spacing: -.055em; font-weight: 850; }
.cvi-dashboard-heading p { margin: 0; color: var(--cvi-muted); }
.cvi-dashboard-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 15px; margin: 27px 0; }
.cvi-dashboard-stat { padding: 17px 19px; border: 1px solid #e0e8e9; border-radius: 16px; background: #fff; }
.cvi-dashboard-stat strong { display: block; font-size: 25px; letter-spacing: -.04em; }
.cvi-dashboard-stat span { color: #7c8b92; font-size: 12px; font-weight: 750; }
.cvi-album-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.cvi-album-card { position: relative; min-width: 0; overflow: hidden; border: 1px solid #dde6e8; border-radius: 20px; background: #fff; transition: transform .22s, box-shadow .22s; }
.cvi-album-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(18,50,64,.12); }
.cvi-album-cover { position: relative; height: 190px; background: linear-gradient(135deg, #bfdcdd, #77b9ca); overflow: hidden; }
.cvi-album-cover img { width: 100%; height: 100%; object-fit: cover; }
.cvi-album-cover__empty { width: 100%; height: 100%; display: grid; place-items: center; color: rgba(16,43,58,.42); font-size: 38px; background: radial-gradient(circle at 20% 20%, rgba(255,255,255,.5), transparent 35%), linear-gradient(135deg, #cce5e4, #88c1cf); }
.cvi-status-pill { position: absolute; left: 13px; top: 13px; padding: 6px 9px; border-radius: 999px; color: #fff; background: rgba(15,43,57,.75); backdrop-filter: blur(8px); font-size: 10px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.cvi-status-pill.is-public { background: rgba(25,132,92,.87); }
.cvi-status-pill.is-password { background: rgba(155,104,24,.9); }
.cvi-album-card__body { padding: 18px; }
.cvi-album-card__body h3 { margin: 0 0 4px; font-size: 20px; letter-spacing: -.035em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cvi-album-meta { display: flex; gap: 13px; color: #74848b; font-size: 12px; }
.cvi-album-updated { display: block; margin-top: 12px; color: #9aa5aa; font-size: 10px; }
.cvi-album-actions { display: grid; grid-template-columns: 1fr auto; gap: 8px; margin-top: 14px; }
.cvi-album-actions .cvi-primary-button { padding: 9px 11px; font-size: 13px; }
.cvi-card-menu { position: relative; }
.cvi-card-menu > button { width: 38px; height: 38px; border: 1px solid #dbe5e7; border-radius: 11px; background: #fff; font-size: 20px; }
.cvi-card-menu__dropdown { position: absolute; right: 0; bottom: 45px; z-index: 20; width: 170px; padding: 6px; border: 1px solid #dbe3e5; border-radius: 12px; background: #fff; box-shadow: 0 15px 35px rgba(15,43,57,.16); }
.cvi-card-menu__dropdown button,
.cvi-card-menu__dropdown a { width: 100%; display: block; border: 0; padding: 9px 10px; border-radius: 8px; color: #334b56; background: transparent; text-align: left; text-decoration: none; font-size: 12px; font-weight: 750; }
.cvi-card-menu__dropdown button:hover,
.cvi-card-menu__dropdown a:hover { background: #f0f5f5; }
.cvi-card-menu__dropdown .is-danger { color: #c54a3d; }
.cvi-empty-dashboard,
.cvi-empty-days { padding: 70px 30px; border: 1px dashed #cedbdd; border-radius: 22px; background: rgba(255,255,255,.7); text-align: center; }
.cvi-empty-dashboard > div { font-size: 45px; color: var(--cvi-sun); }
.cvi-empty-dashboard h2,
.cvi-empty-days h3 { margin: 10px 0 5px; letter-spacing: -.04em; }
.cvi-empty-dashboard p,
.cvi-empty-days p { margin: 0 0 18px; color: var(--cvi-muted); }

/* Editor */
.cvi-editor-view { padding-top: 24px; }
.cvi-editor-topline { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 20px; }
.cvi-editor-actions { display: flex; justify-content: flex-end; gap: 9px; }
.cvi-editor-status { display: flex; align-items: center; gap: 7px; color: #76868d; font-size: 12px; font-weight: 750; }
.cvi-editor-status i { width: 8px; height: 8px; border-radius: 50%; background: #2da678; }
.cvi-editor-status.is-dirty i { background: var(--cvi-sun); }
.cvi-editor-status.is-saving i { background: var(--cvi-blue); animation: cviPulse 1s infinite; }
@keyframes cviPulse { 50% { opacity: .3; transform: scale(.75); } }
.cvi-editor-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 25px; margin-top: 31px; }
.cvi-editor-heading input { width: min(720px, 100%); border: 0; border-bottom: 2px solid transparent; padding: 0 0 5px; color: var(--cvi-navy); background: transparent; outline: 0; }
.cvi-editor-heading input:focus { border-bottom-color: var(--cvi-aqua); }
.cvi-editor-progress { width: 190px; text-align: right; color: #718087; font-size: 11px; font-weight: 800; }
.cvi-editor-progress i { display: block; height: 6px; margin-top: 7px; border-radius: 999px; background: #dde6e8; overflow: hidden; }
.cvi-editor-progress b { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--cvi-blue), var(--cvi-aqua)); transition: width .3s; }
.cvi-editor-tabs { position: sticky; top: 0; z-index: 30; display: flex; gap: 8px; margin: 28px -10px 24px; padding: 10px; border: 1px solid #e0e7e8; border-radius: 15px; background: rgba(245,247,246,.93); backdrop-filter: blur(15px); overflow-x: auto; }
.cvi-editor-tabs button { flex: 0 0 auto; border: 0; padding: 10px 15px; border-radius: 10px; color: #6f8088; background: transparent; font-weight: 800; }
.cvi-editor-tabs button.is-active { color: var(--cvi-navy); background: #fff; box-shadow: 0 7px 20px rgba(17,48,62,.08); }
.cvi-editor-tabs button span { margin-left: 4px; padding: 2px 6px; border-radius: 999px; background: #e7eff0; font-size: 10px; }
.cvi-editor-panel { display: none; }
.cvi-editor-panel.is-active { display: block; }
.cvi-editor-grid { display: grid; gap: 19px; }
.cvi-editor-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cvi-editor-card { min-width: 0; padding: clamp(20px, 3vw, 29px); border: 1px solid #dde6e7; border-radius: 21px; background: #fff; box-shadow: 0 8px 25px rgba(20,50,64,.035); }
.cvi-card-title { display: flex; align-items: flex-start; gap: 13px; margin-bottom: 23px; }
.cvi-card-title > span { flex: 0 0 35px; height: 35px; display: grid; place-items: center; border-radius: 11px; color: var(--cvi-blue); background: #e7f4f6; font-size: 12px; font-weight: 900; }
.cvi-card-title h2 { margin: 0; font-size: 20px; letter-spacing: -.035em; }
.cvi-card-title p { margin: 3px 0 0; color: #839097; font-size: 12px; }
.cvi-cover-picker { position: relative; height: 320px; display: grid; place-items: center; overflow: hidden; border: 1px dashed #cddbdd; border-radius: 17px; background: #f4f8f8; }
.cvi-cover-picker img { display: none; width: 100%; height: 100%; object-fit: cover; }
.cvi-cover-picker.has-image img { display: block; }
.cvi-cover-picker.has-image .cvi-cover-placeholder { display: none; }
.cvi-cover-placeholder { display: grid; place-items: center; gap: 5px; color: #778a92; text-align: center; }
.cvi-cover-placeholder span { font-size: 42px; color: #92b9c2; }
.cvi-cover-placeholder small { color: #9ba8ad; }
.cvi-cover-actions { position: absolute; right: 13px; bottom: 13px; display: none; gap: 7px; padding: 6px; border-radius: 13px; background: rgba(255,255,255,.91); box-shadow: 0 10px 26px rgba(14,43,57,.15); }
.cvi-cover-picker.has-image .cvi-cover-actions { display: flex; }
.cvi-cover-picker:not(.has-image) { cursor: pointer; }
.cvi-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.cvi-field { display: block; min-width: 0; }
.cvi-field--wide { grid-column: 1 / -1; }
.cvi-field textarea { resize: vertical; min-height: 98px; }
.cvi-stat-editor { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 13px; }
.cvi-stat-item { padding: 14px; border: 1px solid #e0e8e9; border-radius: 14px; background: #f8faf9; }
.cvi-stat-item input { width: 100%; border: 0; border-bottom: 1px solid #dbe5e7; padding: 6px 0; background: transparent; outline: 0; }
.cvi-stat-item input:first-child { font-size: 24px; font-weight: 850; }
.cvi-days-toolbar { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; margin-bottom: 18px; }
.cvi-days-toolbar h2 { margin: 0; font-size: 25px; letter-spacing: -.04em; }
.cvi-days-toolbar p { margin: 4px 0 0; color: #7e8c93; }
.cvi-days-editor { display: grid; gap: 14px; }
.cvi-day-editor { border: 1px solid #dce6e8; border-radius: 19px; background: #fff; overflow: hidden; }
.cvi-day-editor__head { display: grid; grid-template-columns: auto auto minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 14px 16px; background: #fbfcfc; }
.cvi-drag-handle { border: 0; padding: 7px; color: #8ea0a8; background: transparent; font-size: 19px; cursor: grab; }
.cvi-day-number { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 12px; color: #fff; background: var(--cvi-blue); font-size: 12px; font-weight: 900; }
.cvi-day-summary { min-width: 0; }
.cvi-day-summary strong { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cvi-day-summary small { color: #87959b; }
.cvi-day-head-actions { display: flex; gap: 5px; }
.cvi-day-head-actions button { border: 1px solid #dce5e7; border-radius: 9px; padding: 7px 9px; color: #526b75; background: #fff; font-size: 12px; }
.cvi-day-editor__body { padding: 22px; border-top: 1px solid #e6ecee; }
.cvi-day-editor.is-collapsed .cvi-day-editor__body { display: none; }
.cvi-day-editor-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 13px; }
.cvi-day-editor-grid .cvi-field--span2 { grid-column: span 2; }
.cvi-day-editor-grid .cvi-field--span4 { grid-column: 1 / -1; }
.cvi-day-media-row { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 18px; margin-top: 20px; }
.cvi-feature-picker { min-height: 180px; position: relative; display: grid; place-items: center; overflow: hidden; border: 1px dashed #cddbdd; border-radius: 15px; background: #f3f7f7; }
.cvi-feature-picker img { display: none; width: 100%; height: 100%; object-fit: cover; }
.cvi-feature-picker.has-image img { display: block; }
.cvi-feature-picker.has-image .cvi-feature-placeholder { display: none; }
.cvi-feature-picker button { position: absolute; right: 9px; bottom: 9px; border: 0; padding: 8px 10px; border-radius: 9px; background: rgba(255,255,255,.92); font-size: 11px; font-weight: 800; }
.cvi-feature-placeholder { text-align: center; color: #87979e; font-size: 12px; }
.cvi-feature-placeholder span { display: block; font-size: 30px; color: #9cbfc7; }
.cvi-memories-block { margin-top: 21px; padding-top: 20px; border-top: 1px solid #e6ecee; }
.cvi-memories-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 12px; }
.cvi-memories-toolbar h3 { margin: 0; font-size: 16px; }
.cvi-memories-toolbar small { color: #8a989e; }
.cvi-memories-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.cvi-memory-editor { position: relative; min-width: 0; overflow: hidden; border: 1px solid #dbe5e7; border-radius: 14px; background: #fff; }
.cvi-memory-editor__image { height: 145px; position: relative; background: #e9f0f1; }
.cvi-memory-editor__image img { width: 100%; height: 100%; object-fit: cover; }
.cvi-memory-editor__drag { position: absolute; left: 8px; top: 8px; border: 0; width: 30px; height: 30px; border-radius: 9px; color: #fff; background: rgba(13,42,56,.68); cursor: grab; }
.cvi-memory-editor__remove { position: absolute; right: 8px; top: 8px; border: 0; width: 30px; height: 30px; border-radius: 9px; color: #fff; background: rgba(163,52,42,.78); }
.cvi-memory-editor__fields { display: grid; gap: 8px; padding: 11px; }
.cvi-memory-editor__fields input,
.cvi-memory-editor__fields select { width: 100%; border: 1px solid #dfe7e9; border-radius: 9px; padding: 8px 9px; color: #334b55; background: #fafcfc; font-size: 11px; }
.cvi-memory-editor__fields .cvi-memory-row { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.cvi-sort-placeholder { min-height: 90px; border: 2px dashed var(--cvi-aqua); border-radius: 14px; background: rgba(98,212,207,.09); }
.cvi-colors-editor { display: grid; gap: 10px; margin-bottom: 18px; }
.cvi-color-row { display: grid; grid-template-columns: 1fr auto 100px; align-items: center; gap: 10px; }
.cvi-color-row label { font-size: 13px; font-weight: 800; }
.cvi-color-row input[type="color"] { width: 39px; height: 39px; padding: 2px; border: 1px solid #d6e1e3; border-radius: 10px; background: #fff; }
.cvi-color-row input[type="text"] { width: 100%; border: 1px solid #dbe5e7; border-radius: 9px; padding: 9px; font-family: ui-monospace, monospace; }
.cvi-design-preview { min-height: 340px; display: flex; flex-direction: column; justify-content: flex-end; padding: 35px; border-radius: 19px; color: #fff; background: linear-gradient(145deg, var(--preview-blue), var(--preview-deep)); overflow: hidden; position: relative; }
.cvi-design-preview::before { content: ""; position: absolute; width: 190px; height: 190px; right: -50px; top: -50px; border-radius: 50%; background: var(--preview-aqua); opacity: .25; }
.cvi-design-preview small { position: relative; font-weight: 850; letter-spacing: .16em; }
.cvi-design-preview strong { position: relative; max-width: 330px; margin: 10px 0 18px; font-size: 38px; line-height: 1; letter-spacing: -.05em; }
.cvi-design-preview span { position: relative; width: fit-content; padding: 10px 13px; border-radius: 10px; color: #3f310f; background: var(--preview-sun); font-weight: 850; }
.cvi-visibility-options { display: grid; gap: 9px; }
.cvi-visibility-options label { display: flex; align-items: flex-start; gap: 11px; padding: 13px; border: 1px solid #dde6e8; border-radius: 13px; cursor: pointer; }
.cvi-visibility-options label:has(input:checked) { border-color: var(--cvi-blue); background: rgba(20,127,164,.055); box-shadow: 0 0 0 3px rgba(20,127,164,.08); }
.cvi-visibility-options input { margin-top: 4px; accent-color: var(--cvi-blue); }
.cvi-visibility-options span { display: flex; flex-direction: column; }
.cvi-visibility-options small { color: #819097; }
.cvi-password-option { margin-top: 15px; }
.cvi-switch-field { display: grid; grid-template-columns: auto 1fr; gap: 11px; margin-bottom: 17px; cursor: pointer; }
.cvi-switch-field > input { position: absolute; opacity: 0; }
.cvi-switch-field > span { width: 44px; height: 24px; position: relative; border-radius: 999px; background: #cad7da; transition: background .2s; }
.cvi-switch-field > span::after { content: ""; position: absolute; width: 18px; height: 18px; left: 3px; top: 3px; border-radius: 50%; background: #fff; box-shadow: 0 2px 7px rgba(0,0,0,.18); transition: transform .2s; }
.cvi-switch-field input:checked + span { background: var(--cvi-blue); }
.cvi-switch-field input:checked + span::after { transform: translateX(20px); }
.cvi-switch-field div { display: flex; flex-direction: column; }
.cvi-switch-field small { color: #819097; }
.cvi-publish-box { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 20px; padding: 28px; border-radius: 20px; color: #fff; background: linear-gradient(135deg, #10384b, #0e6b89); }
.cvi-publish-box h2 { margin: 6px 0 5px; letter-spacing: -.04em; }
.cvi-publish-box p { margin: 0; color: rgba(255,255,255,.7); }
.cvi-publish-box > div:last-child { display: flex; gap: 9px; flex: 0 0 auto; }
.cvi-publish-box .cvi-secondary-button { background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.2); color: #fff; }
.cvi-publish-box .cvi-primary-button { border-color: var(--cvi-sun); color: #3e310e; background: var(--cvi-sun); }

/* Toast + public password */
.cvi-portal-toast { position: fixed; right: 24px; bottom: 24px; z-index: 99999; max-width: min(390px, calc(100vw - 40px)); padding: 13px 16px; border-radius: 12px; color: #fff; background: #153846; box-shadow: 0 15px 45px rgba(0,0,0,.22); opacity: 0; transform: translateY(16px); pointer-events: none; transition: opacity .2s, transform .2s; }
.cvi-portal-toast.is-visible { opacity: 1; transform: translateY(0); }
.cvi-portal-toast.is-error { background: #a93f34; }
.cvi-public-album { min-height: 70vh; }
.cvi-password-gate { min-height: 74vh; display: grid; place-items: center; padding: 60px 20px; background: radial-gradient(circle at 20% 20%, rgba(98,212,207,.2), transparent 34%), #f4f1ea; }
.cvi-password-gate__card { width: min(520px, 100%); padding: 42px; border: 1px solid #dce5e7; border-radius: 25px; background: #fff; box-shadow: 0 25px 65px rgba(15,43,57,.14); text-align: center; }
.cvi-password-gate__icon { display: block; font-size: 39px; }
.cvi-password-gate__eyebrow { display: block; margin-top: 14px; color: #147fa4; font-size: 11px; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }
.cvi-password-gate h1 { margin: 8px 0; letter-spacing: -.045em; }
.cvi-password-gate p { color: #6d7d85; }
.cvi-password-gate form p { margin: 15px 0 0; }
.cvi-password-gate input[type="password"] { width: 100%; border: 1px solid #d7e2e4; border-radius: 12px; padding: 13px; }
.cvi-password-gate input[type="submit"] { width: 100%; margin-top: 10px; border: 0; border-radius: 12px; padding: 13px; color: #fff; background: #147fa4; font-weight: 800; cursor: pointer; }

@media (max-width: 1180px) {
  .cvi-album-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cvi-memories-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cvi-stat-editor { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 950px) {
  .cvi-auth-page { grid-template-columns: 1fr; }
  .cvi-auth-art { min-height: 520px; }
  .cvi-auth-art__copy { margin-top: 75px; }
  .cvi-auth-preview { width: 52%; }
  .cvi-auth-panel { min-height: 650px; }
  .cvi-app-shell { grid-template-columns: 1fr; }
  .cvi-app-sidebar { position: fixed; left: 0; top: 0; bottom: 0; z-index: 1000; width: 260px; min-height: 100%; transform: translateX(-105%); transition: transform .25s; box-shadow: 20px 0 50px rgba(0,0,0,.22); }
  .cvi-app-shell.is-menu-open .cvi-app-sidebar { transform: translateX(0); }
  .cvi-mobile-menu { display: block; }
  .cvi-app-topbar > div:first-of-type { display: none; }
  .cvi-editor-grid--2 { grid-template-columns: 1fr; }
  .cvi-day-editor-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cvi-day-editor-grid .cvi-field--span2 { grid-column: span 1; }
  .cvi-day-editor-grid .cvi-field--span4 { grid-column: 1 / -1; }
}
@media (max-width: 700px) {
  .cvi-auth-page { border-radius: 0; box-shadow: none; }
  .cvi-auth-art { display: none; }
  .cvi-auth-panel { min-height: 100svh; padding: 28px 20px; }
  .cvi-auth-mobile-brand { display: flex; }
  .cvi-app-shell { border-radius: 0; box-shadow: none; }
  .cvi-app-topbar { height: 70px; padding: 0 16px; }
  .cvi-user-chip div { display: none; }
  .cvi-dashboard-view, .cvi-editor-view { padding: 24px 16px 38px; }
  .cvi-dashboard-heading { align-items: flex-start; flex-direction: column; }
  .cvi-dashboard-heading .cvi-primary-button { width: 100%; }
  .cvi-dashboard-stats { grid-template-columns: 1fr 1fr; }
  .cvi-dashboard-stat:last-child { grid-column: 1 / -1; }
  .cvi-album-grid { grid-template-columns: 1fr; }
  .cvi-editor-topline { grid-template-columns: 1fr auto; }
  .cvi-editor-status { display: none; }
  .cvi-editor-actions .cvi-secondary-button { display: none; }
  .cvi-editor-heading { align-items: flex-start; flex-direction: column; }
  .cvi-editor-progress { width: 100%; text-align: left; }
  .cvi-editor-tabs { margin-left: -16px; margin-right: -16px; border-left: 0; border-right: 0; border-radius: 0; }
  .cvi-editor-card { padding: 19px 16px; }
  .cvi-cover-picker { height: 245px; }
  .cvi-form-grid { grid-template-columns: 1fr; }
  .cvi-field--wide { grid-column: auto; }
  .cvi-stat-editor { grid-template-columns: 1fr 1fr; }
  .cvi-days-toolbar { align-items: stretch; flex-direction: column; }
  .cvi-days-toolbar .cvi-primary-button { width: 100%; }
  .cvi-day-editor__head { grid-template-columns: auto auto minmax(0, 1fr); }
  .cvi-day-head-actions { grid-column: 1 / -1; justify-content: flex-end; }
  .cvi-day-editor__body { padding: 16px; }
  .cvi-day-editor-grid { grid-template-columns: 1fr; }
  .cvi-day-editor-grid .cvi-field--span4 { grid-column: auto; }
  .cvi-day-media-row { grid-template-columns: 1fr; }
  .cvi-feature-picker { min-height: 220px; }
  .cvi-memories-grid { grid-template-columns: 1fr; }
  .cvi-memory-editor__image { height: 200px; }
  .cvi-publish-box { align-items: stretch; flex-direction: column; padding: 23px 18px; }
  .cvi-publish-box > div:last-child { flex-direction: column; }
  .cvi-color-row { grid-template-columns: 1fr auto 90px; }
}
@media (prefers-reduced-motion: reduce) {
  .cvi-portal *, .cvi-portal *::before, .cvi-portal *::after { scroll-behavior: auto !important; animation-duration: .001ms !important; transition-duration: .001ms !important; }
}

/* Pages Studio autonomes */
body.cvi-studio-standalone { margin:0; background:#eef3f3; }
body.cvi-studio-standalone .cvi-studio-page-shell { min-height:100vh; }
body.cvi-studio-login-page .cvi-studio-page-shell,
body.cvi-studio-portal-page .cvi-studio-page-shell { padding:22px; }
body.cvi-studio-login-page .cvi-portal,
body.cvi-studio-portal-page .cvi-portal { width:min(1500px,100%); margin:0 auto; }
body.cvi-studio-login-page .cvi-auth-page { min-height:calc(100vh - 44px); }
body.cvi-studio-portal-page .cvi-app-shell { min-height:calc(100vh - 44px); }
.cvi-auth-brand { color:#fff; text-decoration:none; }
.cvi-auth-mobile-brand { color:var(--cvi-navy); text-decoration:none; }
.cvi-auth-home-link { display:inline-flex; margin-bottom:20px; color:#6b7d85; font-size:13px; font-weight:800; text-decoration:none; }
.cvi-auth-home-link:hover { color:var(--cvi-blue); }
.cvi-login-already { width:min(620px,calc(100% - 28px)); margin:9vh auto; padding:55px 40px; border-radius:27px; background:#fff; box-shadow:var(--cvi-shadow); text-align:center; }
.cvi-login-already > span { display:grid; place-items:center; width:58px; height:58px; margin:0 auto 20px; border-radius:18px; color:#513a0a; background:var(--cvi-sun); font-size:25px; }
.cvi-login-already h1 { margin:0; font-size:clamp(34px,6vw,52px); line-height:1; letter-spacing:-.055em; }
.cvi-login-already p { margin:13px 0 25px; color:var(--cvi-muted); }
@media (max-width:760px) {
  body.cvi-studio-login-page .cvi-studio-page-shell,
  body.cvi-studio-portal-page .cvi-studio-page-shell { padding:0; }
  body.cvi-studio-login-page .cvi-auth-page,
  body.cvi-studio-portal-page .cvi-app-shell { min-height:100vh; border-radius:0; }
  .cvi-auth-home-link { margin-bottom:16px; }
}

/* Carnet Studio V4 */
.cvi-hp{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.cvi-auth-notice{padding:13px 15px;border-radius:14px;margin:0 0 16px;font-size:14px;line-height:1.5;background:#fff4ef;color:#a13d2e;border:1px solid #ffd4c8}
.cvi-auth-notice.is-success,.cvi-auth-error.is-success{background:#ecfbf4;color:#176b47;border-color:#bcebd4}
.cvi-resend-link{border:0;background:none;color:#0f7ea8;text-decoration:underline;cursor:pointer;padding:6px 0;font:inherit}
.cvi-resend-form{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:8px}.cvi-resend-form[hidden]{display:none}.cvi-resend-form input{min-width:0;border:1px solid #dfe8eb;border-radius:12px;padding:10px}.cvi-resend-form button{border:0;border-radius:12px;background:#102b3a;color:#fff;padding:10px 13px;cursor:pointer}.cvi-resend-form small{grid-column:1/-1;color:#55707d}
.cvi-icon-button{width:40px;height:40px;border:1px solid #d8e3e7;border-radius:12px;background:#fff;color:#173746;font-size:22px;cursor:pointer}.cvi-icon-button:disabled{opacity:.35;cursor:not-allowed}
.cvi-theme-grid,.cvi-onboarding-themes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0 18px}.cvi-theme-card,.cvi-onboarding-theme{border:1px solid #dfe8eb;background:#fff;border-radius:16px;padding:12px;text-align:left;cursor:pointer;transition:.2s ease}.cvi-theme-card:hover,.cvi-onboarding-theme:hover,.cvi-theme-card.is-active,.cvi-onboarding-theme.is-active{border-color:#0f7ea8;box-shadow:0 8px 25px rgba(15,126,168,.12);transform:translateY(-1px)}.cvi-theme-card>span,.cvi-onboarding-theme>span{display:flex;height:34px;border-radius:10px;overflow:hidden;margin-bottom:9px}.cvi-theme-card>span i,.cvi-onboarding-theme>span i{flex:1}.cvi-theme-card>span i:nth-child(1),.cvi-onboarding-theme>span i:nth-child(1){background:var(--a)}.cvi-theme-card>span i:nth-child(2),.cvi-onboarding-theme>span i:nth-child(2){background:var(--b)}.cvi-theme-card>span i:nth-child(3),.cvi-onboarding-theme>span i:nth-child(3){background:var(--c)}.cvi-theme-card strong,.cvi-onboarding-theme strong{display:block;color:#173746}.cvi-theme-card small,.cvi-onboarding-theme small{display:block;color:#6b8089;line-height:1.35;margin-top:3px}
.cvi-modal[hidden],.cvi-upload-overlay[hidden],.cvi-live-preview-panel[hidden]{display:none!important}.cvi-modal{position:fixed;inset:0;z-index:100050;display:grid;place-items:center;padding:20px}.cvi-modal__backdrop{position:absolute;inset:0;background:rgba(7,28,38,.68);backdrop-filter:blur(8px)}html.cvi-modal-open{overflow:hidden}.cvi-onboarding,.cvi-account-modal{position:relative;z-index:1;width:min(720px,100%);max-height:min(90vh,820px);overflow:auto;background:#fff;border-radius:26px;box-shadow:0 30px 90px rgba(0,0,0,.25)}.cvi-onboarding>header,.cvi-account-modal>header{display:flex;align-items:center;gap:13px;padding:22px 24px;border-bottom:1px solid #e9eff1}.cvi-onboarding>header>span{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:#e9f8fb;color:#0f7ea8;font-size:22px}.cvi-onboarding>header div,.cvi-account-modal>header div{flex:1}.cvi-onboarding>header small,.cvi-account-modal>header small{display:block;letter-spacing:.12em;color:#7b9098;font-size:11px}.cvi-onboarding>header strong{display:block;font-size:20px;color:#173746}.cvi-onboarding>header button,.cvi-account-modal>header button,.cvi-live-preview-panel header button{border:0;background:#edf3f5;border-radius:50%;width:36px;height:36px;font-size:22px;cursor:pointer}.cvi-onboarding-progress{display:flex;align-items:center;justify-content:center;padding:22px}.cvi-onboarding-progress i{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;font-style:normal;background:#edf3f5;color:#7c9098;font-weight:700}.cvi-onboarding-progress i.is-active{background:#0f7ea8;color:#fff}.cvi-onboarding-progress span{height:3px;width:70px;background:#e2eaed}.cvi-onboarding section{padding:4px 28px 24px}.cvi-onboarding section h2{font-size:28px;margin:0 0 7px;color:#173746}.cvi-onboarding section>p{color:#6a7f88;margin:0 0 22px}.cvi-onboarding section>label,.cvi-onboarding section>div>label{display:grid;gap:7px;font-weight:650;color:#294754;margin:13px 0}.cvi-onboarding section>div{display:grid;grid-template-columns:1fr 1fr;gap:12px}.cvi-onboarding input{width:100%;border:1px solid #d9e5e8;border-radius:13px;padding:13px 14px;font:inherit}.cvi-onboarding footer{display:flex;justify-content:flex-end;gap:10px;padding:18px 24px;border-top:1px solid #e9eff1}.cvi-onboarding-drop{display:flex!important;align-items:center;gap:12px!important;grid-template-columns:1fr auto!important;background:#f4fafb;border:1px dashed #b9d7df;border-radius:18px;padding:17px;margin-top:18px}.cvi-onboarding-drop strong,.cvi-onboarding-drop small{display:block}.cvi-onboarding-drop small{color:#69808a}
.cvi-account-modal{width:min(780px,100%)}.cvi-account-modal h2{margin:2px 0 0;color:#173746}.cvi-account-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:24px}.cvi-account-grid article{border:1px solid #e2eaed;border-radius:20px;padding:20px}.cvi-account-grid article>span{font-size:28px}.cvi-account-grid h3{margin:8px 0;color:#173746}.cvi-account-grid p{color:#6c8089;line-height:1.5}.cvi-account-grid label{display:grid;gap:6px;margin:11px 0;font-size:13px;color:#425e6a}.cvi-account-grid input{border:1px solid #dce7ea;border-radius:12px;padding:11px}.cvi-account-grid article.is-danger{border-color:#ffd4ca;background:#fff9f7}.cvi-danger-button{border:0;border-radius:13px;background:#c84632;color:#fff;padding:12px 15px;font-weight:700;cursor:pointer}
.cvi-upload-overlay{position:fixed;inset:0;z-index:100100;background:rgba(7,30,40,.74);display:grid;place-items:center;backdrop-filter:blur(7px)}.cvi-upload-overlay>div{width:min(390px,calc(100% - 36px));background:#fff;border-radius:22px;padding:26px;text-align:center;box-shadow:0 30px 80px rgba(0,0,0,.28)}.cvi-upload-spinner{display:block;width:46px;height:46px;border:4px solid #dceff3;border-top-color:#0f7ea8;border-radius:50%;margin:0 auto 13px;animation:cvi-spin .8s linear infinite}.cvi-upload-overlay strong{display:block;color:#173746}.cvi-upload-overlay>div>div{height:8px;background:#eaf1f3;border-radius:99px;overflow:hidden;margin:16px 0 7px}.cvi-upload-overlay i{display:block;height:100%;width:0;background:linear-gradient(90deg,#0f7ea8,#67d5d1);transition:width .2s}.cvi-upload-overlay small{color:#66808a}@keyframes cvi-spin{to{transform:rotate(360deg)}}
.cvi-editor-view{position:relative}.cvi-live-preview-panel{position:fixed;z-index:9999;top:20px;right:20px;width:min(430px,calc(100vw - 40px));height:calc(100vh - 40px);background:#f5f7f7;border:1px solid #dbe5e8;border-radius:22px;box-shadow:0 24px 70px rgba(9,42,55,.22);overflow:hidden}.cvi-live-preview-panel header{height:56px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;background:#fff;border-bottom:1px solid #dfe8eb;color:#173746}.cvi-live-preview-device{height:calc(100% - 56px);overflow:auto;padding:18px}.cvi-lp-page{min-height:100%;background:var(--lp-paper);border-radius:16px;overflow:hidden;box-shadow:0 8px 30px rgba(0,0,0,.12)}.cvi-lp-hero{min-height:270px;background:linear-gradient(135deg,var(--lp-deep),var(--lp-blue));background-size:cover;background-position:center;color:#fff;padding:34px 25px;display:flex;flex-direction:column;justify-content:flex-end}.cvi-lp-hero small{letter-spacing:.13em;opacity:.8}.cvi-lp-hero h3{font-size:34px;line-height:1.05;margin:8px 0}.cvi-lp-hero h3 em{color:#ffe0a0;font-style:normal}.cvi-lp-hero p{opacity:.9;line-height:1.5}.cvi-lp-days{padding:20px}.cvi-lp-days article{display:grid;grid-template-columns:42px 1fr;gap:13px;padding:15px 0;border-bottom:1px solid rgba(20,60,75,.13)}.cvi-lp-days article>b{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--lp-blue);color:#fff}.cvi-lp-days small,.cvi-lp-days strong,.cvi-lp-days p,.cvi-lp-days span{display:block}.cvi-lp-days small{color:#71858d}.cvi-lp-days strong{color:#173746;margin:3px 0}.cvi-lp-days p{font-size:12px;line-height:1.45;color:#59717b;margin:4px 0}.cvi-lp-days span{font-size:11px;color:var(--lp-coral)}.cvi-lp-empty{padding:35px;text-align:center;color:#71858d}
@media(max-width:780px){.cvi-theme-grid,.cvi-onboarding-themes,.cvi-account-grid{grid-template-columns:1fr}.cvi-onboarding section>div{grid-template-columns:1fr}.cvi-onboarding-drop{display:grid!important;grid-template-columns:1fr!important}.cvi-editor-actions .cvi-icon-button{display:none}.cvi-live-preview-panel{inset:8px;width:auto;height:auto}.cvi-onboarding,.cvi-account-modal{border-radius:20px}.cvi-account-grid{padding:16px}.cvi-resend-form{grid-template-columns:1fr}.cvi-resend-form button{width:100%}}
@media(max-width:780px){.cvi-editor-actions [data-toggle-live-preview]{display:flex!important;font-size:0;width:42px;padding:0;align-items:center;justify-content:center}.cvi-editor-actions [data-toggle-live-preview]::before{content:'◉';font-size:18px}.cvi-editor-actions [data-editor-preview]{display:none!important}}

/* Carnet Studio V5 : import intelligent, collaboration, QR et PWA */
.cvi-sidebar-install{width:100%;margin-top:10px;border:1px solid rgba(255,255,255,.16);border-radius:13px;padding:11px 13px;color:#fff;background:rgba(255,255,255,.08);font:inherit;font-weight:750;cursor:pointer}.cvi-sidebar-install.is-ready{background:linear-gradient(135deg,#0f7ea8,#56c9c5);border-color:transparent}.cvi-sidebar-install.is-installed{opacity:.72;cursor:default}
.cvi-days-toolbar__actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.cvi-smart-import{border-color:#b9dee8!important;background:linear-gradient(135deg,#f0fbfd,#fff)!important;color:#0a718f!important}.cvi-smart-import:hover{box-shadow:0 9px 25px rgba(15,126,168,.13)}
.cvi-role-pill{display:inline-flex;align-items:center;width:max-content;margin-top:8px;padding:5px 9px;border-radius:999px;color:#0b6f8c;background:#e8f7fb;font-size:11px;font-weight:850;letter-spacing:.02em}.cvi-album-card[data-role="viewer"]{border-style:dashed}.cvi-album-card[data-role="editor"] .cvi-role-pill{color:#176a48;background:#eaf9f1}.cvi-album-card[data-role="contributor"] .cvi-role-pill{color:#7f5d0a;background:#fff7da}
.cvi-collab-invite{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(150px,.8fr) auto;gap:9px;margin:16px 0}.cvi-collab-invite input,.cvi-collab-invite select,.cvi-collab-row select{min-width:0;border:1px solid #dbe6e9;border-radius:12px;padding:11px 12px;background:#fff;font:inherit;color:#294754}.cvi-collab-list{display:grid;gap:9px}.cvi-collab-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto auto;align-items:center;gap:11px;padding:11px;border:1px solid #e2eaed;border-radius:15px;background:#fbfdfd}.cvi-collab-row>span:first-child{display:grid;place-items:center;width:40px;height:40px;border-radius:13px;color:#fff;background:linear-gradient(135deg,#0f7ea8,#61d2cd);font-weight:900}.cvi-collab-row.is-owner>span:first-child{background:linear-gradient(135deg,#173746,#315f70)}.cvi-collab-row.is-pending{border-style:dashed;background:#fffdf4}.cvi-collab-row.is-pending>span:first-child{color:#785812;background:#fff0b8}.cvi-collab-row strong,.cvi-collab-row small{display:block}.cvi-collab-row strong{color:#173746}.cvi-collab-row small{margin-top:2px;color:#758991}.cvi-collab-row em{font-style:normal;color:#607781;font-size:12px;font-weight:750}.cvi-collab-row button{width:34px;height:34px;border:0;border-radius:10px;color:#a54235;background:#fff0ec;font-size:19px;cursor:pointer}.cvi-collab-empty{margin:0;padding:13px;border-radius:13px;color:#6e828a;background:#f4f8f9;text-align:center}.cvi-collaboration-card.is-readonly .cvi-collab-list{margin-top:15px}
.cvi-share-kit{display:grid;grid-template-columns:180px minmax(0,1fr);align-items:center;gap:22px;margin-top:17px}.cvi-share-qr{display:grid;place-items:center;width:180px;min-height:180px;padding:14px;border:1px solid #e1e9eb;border-radius:20px;background:#fff;color:#71858d;text-align:center;box-shadow:0 10px 28px rgba(22,58,72,.08)}.cvi-share-qr img,.cvi-share-qr canvas{display:block;max-width:100%;height:auto}.cvi-share-kit>div:last-child{display:grid;gap:9px;align-content:center}.cvi-share-kit small{color:#6d828a;line-height:1.45}.cvi-share-kit [data-cvi-install-app].is-ready{border-color:#75d5d1;background:#eafafa;color:#126d78}.cvi-share-kit [data-cvi-install-app].is-installed{opacity:.65}
.cvi-memory-editor.ui-sortable-helper{transform:rotate(1deg);box-shadow:0 22px 55px rgba(10,46,59,.24)}.cvi-memory-sort-placeholder{min-height:245px;border:2px dashed #65c7d2;border-radius:18px;background:#edfafa}.cvi-day-editor.is-smart-target{outline:3px solid rgba(15,126,168,.15);outline-offset:4px}.cvi-editor-view.is-readonly .cvi-editor-card:not(.cvi-share-kit-card):not(.cvi-collaboration-card){opacity:.88}.cvi-editor-view.is-readonly input:disabled,.cvi-editor-view.is-readonly textarea:disabled,.cvi-editor-view.is-readonly select:disabled{color:#526a74;background:#f4f7f8;opacity:1}
@media(max-width:850px){.cvi-collab-invite{grid-template-columns:1fr 1fr}.cvi-collab-invite button{grid-column:1/-1}.cvi-share-kit{grid-template-columns:1fr}.cvi-share-qr{margin:auto}.cvi-days-toolbar__actions{justify-content:stretch}.cvi-days-toolbar__actions>*{flex:1}}
@media(max-width:560px){.cvi-collab-invite{grid-template-columns:1fr}.cvi-collab-invite button{grid-column:auto}.cvi-collab-row{grid-template-columns:40px minmax(0,1fr) auto}.cvi-collab-row select,.cvi-collab-row em{grid-column:2/3}.cvi-collab-row button{grid-column:3;grid-row:1/3}.cvi-days-toolbar__actions{display:grid}.cvi-share-qr{width:170px;min-height:170px}}
