@import url("./foundations/tokens.9296f7adb45c.css");
@import url("./foundations/base.b1f40f851086.css");
@import url("./foundations/components.d99be086ba23.css");
@import url("./foundations/forms.3d5470c47359.css");

/* Layout: Topbar, sidebar, account navigation */
.topbar{
  position:sticky;
  top:0;
  z-index:100;
  display:flex;
  align-items:center;
  gap:0.9rem;
  min-height:var(--topbar-height);
  padding:0.75rem 1rem;
  box-sizing:border-box;
  background:rgba(255,255,255,0.94);
  border-bottom:1px solid var(--color-border);
  box-shadow:0 10px 26px rgba(65,111,167,0.06);
  backdrop-filter:blur(12px);
}
.brand{display:flex;align-items:center;min-width:0}
.brand__link{display:inline-flex;align-items:center;text-decoration:none}
.brand__logo{
  display:block;
  height:40px;
  width:auto;
  max-width:min(220px, 46vw);
  filter:contrast(1.34) saturate(1.08) brightness(.97) drop-shadow(0 0 10px rgba(144,184,228,.18));
}
.burger{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  padding:0;
  border:1px solid var(--color-border);
  border-radius:var(--radius-button);
  background:var(--color-bg-surface);
  color:var(--color-text-strong);
  font-size:1.15rem;
  cursor:pointer;
  transition:border-color var(--transition-base),background var(--transition-base),box-shadow var(--transition-base);
}
.burger:hover{
  border-color:var(--color-border-hover);
  background:var(--color-bg-subtle);
}
.burger:focus-visible{
  outline:none;
  box-shadow:var(--shadow-focus);
}
.sidebar{
  position:fixed;
  left:0;
  top:var(--topbar-height);
  bottom:0;
  z-index:120;
  width:min(260px, calc(100vw - 2.5rem));
  padding:1rem 0.85rem;
  border-right:1px solid var(--color-border);
  background:var(--color-bg-surface);
  box-shadow:none;
  opacity:0;
  pointer-events:none;
  transform:translateX(-100%);
  transition:transform .22s ease,opacity .18s ease;
  box-sizing:border-box;
  overflow-y:auto;
}
.sidebar.open{
  opacity:1;
  pointer-events:auto;
  transform:translateX(0);
}
.sidebar-nav{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:0.35rem}
.sidebar-nav__link{
  display:flex;
  align-items:center;
  min-height:44px;
  padding:0.8rem 0.95rem;
  border:1px solid transparent;
  border-radius:var(--radius-button);
  color:var(--color-text-secondary);
  text-decoration:none;
  font-weight:600;
  font-size:1rem;
  transition:background var(--transition-base),border-color var(--transition-base),color var(--transition-base);
}
.sidebar-nav__link:hover{
  background:var(--color-bg-subtle);
  border-color:var(--color-border);
  color:var(--color-text-title);
}
.sidebar-nav__link.is-active{
  background:var(--color-primary-tint);
  border-color:var(--color-primary-alpha-35);
  color:var(--color-primary-strong);
}
.content{padding:1.5rem;margin-left:0;transition:margin-left .22s}
body.sidebar-open .content{margin-left:260px}
.spacer{flex:1}
.profile{position:relative}
.profile-btn{
  display:inline-flex;
  align-items:center;
  gap:0.35rem;
  background:var(--color-bg-surface);
  border:1px solid var(--color-border);
  border-radius:999px;
  padding:0.5rem 0.85rem;
  color:var(--color-text-strong);
  font-weight:600;
  cursor:pointer;
}
.profile-name{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block}
.profile-caret{font-size:0.9rem}
.profile-menu{
  position:absolute;
  right:0;
  top:52px;
  background:var(--color-bg-surface);
  color:var(--color-text);
  padding:0.5rem;
  border:1px solid var(--color-border);
  border-radius:var(--radius-sm);
  display:none;
  box-shadow:var(--shadow-panel);
  min-width:180px;
}
.profile-menu.open{display:block}
.profile-menu a{display:block;padding:0.55rem 0.9rem;color:inherit;text-decoration:none;border-radius:8px}
.profile-menu a:hover{background:var(--color-bg-subtle)}

@media (max-width: 700px){
  body.sidebar-open .content{
    margin-left:0;
  }
  .topbar{
    padding:0.65rem 0.85rem;
  }
  .brand__logo{
    height:34px;
    max-width:min(180px, 52vw);
  }
  .sidebar{
    width:min(240px, calc(100vw - 1.5rem));
  }
}

.form-actions--spaced{margin-top:1rem}
.icon-sprite{display:none}
.settings-page{padding-top:1rem}

.auth-page{
  padding-top:1rem;
}
.auth-card{
  margin-bottom:0;
}
.auth-support{
  margin:1.4rem 0 0;
  color:var(--color-text-secondary);
  font-size:0.86rem;
  line-height:1.5;
  text-align:center;
}
.auth-support a{
  color:var(--color-text-secondary);
  font-weight:var(--weight-semibold);
  text-decoration:none;
}
.auth-support strong{
  font-weight:var(--weight-bold);
}
.auth-support a:hover{
  text-decoration:underline;
}
.auth-card .card-body{
  gap:1rem;
}
.auth-form{
  gap:0.9rem;
}
.auth-form__alert{
  margin-bottom:0.1rem;
}
.auth-form__meta{
  display:flex;
  justify-content:flex-end;
  margin-top:-0.1rem;
}
.auth-form__forgot,
.auth-form__signup-link{
  color:var(--color-text-muted);
  font-size:0.92rem;
  font-weight:var(--weight-semibold);
  text-decoration:none;
}
.auth-form__forgot:hover,
.auth-form__signup-link:hover{
  color:var(--color-primary-strong);
  text-decoration:underline;
}
.auth-form__actions{
  margin-top:0.15rem;
}
.auth-form__submit{
  width:100%;
  min-width:0 !important;
}
.auth-form__signup{
  margin:0;
  margin-top:5px;
  display:flex;
  justify-content:center;
  align-items:center;
  gap:0.3rem;
  width:100%;
  color:var(--color-text-secondary);
  font-size:0.95rem;
  line-height:1.5;
  text-align:center;
}
.auth-form__signup span{
  margin-right:0;
}

/* Campaign Create + Campaign Detail layout */
.campaign-create-page{
  --campaign-create-shell-width:70%;
  --campaign-create-shell-max:1040px;
  padding-top:1rem;
  padding-bottom:2rem;
  display:flex;
  flex-direction:column;
  align-items:center;
}
.campaign-page{
  --campaign-create-shell-width:100%;
  --campaign-create-shell-max:var(--page-shell-max, 1040px);
  --campaign-page-header-width:92%;
  --campaign-page-header-max:1440px;
  --campaign-page-surface:#f7fbff;
  --campaign-page-surface-strong:#eef5fc;
  --campaign-page-border:rgba(122,169,218,0.26);
  --campaign-page-border-strong:rgba(122,169,218,0.42);
  --campaign-page-shadow:0 14px 34px rgba(122,169,218,0.08);
}
.campaign-create-page .page-header,
.campaign-create-page .campaign-create-form{
  width:min(var(--campaign-create-shell-width), var(--campaign-create-shell-max));
  max-width:100%;
}
.campaign-create-hero{max-width:none}
.campaign-create-hero p{line-height:1.55}
.campaign-create-hero .section-header__kicker{margin-bottom:0.2rem;font-size:0.82rem}
.campaign-create-form{gap:1rem;align-items:stretch}
.campaign-create-card{
  position:relative;
  overflow:hidden;
  width:100%;
  box-sizing:border-box;
  background:var(--color-bg-surface);
  border-color:var(--color-border);
  box-shadow:var(--shadow-soft);
}
.campaign-create-card:hover{box-shadow:var(--shadow-soft-hover)}
.campaign-create-card .card-body{width:100%;max-width:none}
.campaign-create-section-header{gap:0.35rem}
.campaign-create-section-header .section-header__kicker{
  font-size:0.95rem;
  letter-spacing:0.015em;
  color:var(--color-panel-kicker);
  text-transform:none;
}
.campaign-create-section-header .section-header__kicker-number{font-weight:600;color:var(--color-panel-kicker-strong)}
.campaign-create-section-header .section-header__kicker-divider{color:var(--color-panel-kicker-divider)}
.campaign-create-section-header .section-header__kicker-text{font-weight:600;color:var(--color-panel-kicker-strong)}
.campaign-create-section-header .section-header__description{font-size:1rem;color:var(--color-panel-copy);margin-top:8px;line-height:1.48;}
.campaign-create-card .compact-form-stack{width:100%;max-width:none}
.campaign-create-card .form-field--wide{width:100%;max-width:none;margin-bottom:1rem;}
.campaign-create-card .form-field--wide:has(+ .chip-list){margin-bottom:0}
.campaign-create-card .form-field:has(+ .chip-list) > label{margin-bottom:0rem}
.campaign-create-card .choice-grid{width:100%;max-width:none}
.campaign-create-card .field-tools--wide{width:100%;max-width:none}
.campaign-create-card .choice-card{
  min-height:44px;
  border-color:var(--color-panel-border-choice);
  background:var(--color-bg-surface);
}
.campaign-create-card .choice-card:has(input:checked){
  border-color:var(--color-primary);
  box-shadow:none;
}
.campaign-create-card .form-field > label{
  margin-bottom:0.35rem;
  font-size:1.05rem;
  font-weight:700;
  color:var(--color-panel-heading);
  letter-spacing:-0.01em;
}
.campaign-create-card .helper-text{
  margin-top:0.3rem;
  font-size:0.95rem;
  color:var(--color-panel-copy);
  line-height:1.38;
}
.campaign-create-card .helper-text + .helper-text{margin-top:0.15rem}
.campaign-create-card .chip-list{padding-top:0}
.campaign-create-card--export .card-body{gap:0}
.campaign-create-card--export .campaign-create-subsection:not(:last-child){padding-bottom:1rem}
.campaign-create-card--export .campaign-create-subsection + .campaign-create-subsection{
  margin-top:0;
  padding-top:1rem;
  border-top:1px solid var(--color-panel-border-soft);
}
.campaign-create-card--export .campaign-create-subsection--preview{
  margin-top:1rem;
  padding:1rem 1.1rem;
  border-top:none;
  border-radius:var(--radius-md);
  background:var(--color-panel-surface-soft);
}
.campaign-create-card--export .campaign-create-subsection + .campaign-create-subsection.campaign-create-subsection--preview{
  padding:1.1rem;
  border-top:none;
  margin-top:1rem;
}
.campaign-create-card--export .campaign-create-schedule-block{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:0.55rem;
}
.campaign-create-card--export .campaign-create-schedule-line{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:0.55rem;
  min-height:44px;
}
.campaign-create-card--export .campaign-create-schedule-copy{
  font-size:1rem;
  font-weight:600;
  color:var(--color-panel-body);
}
.campaign-create-card--export .campaign-create-schedule-line .input{
  width:auto;
  min-width:4.5rem;
}
.campaign-create-card--export .campaign-create-schedule-line select.input{
  min-width:4.5rem;
}
.campaign-create-card--export .campaign-create-schedule-line input[type="time"].input{
  min-width:5rem;
  padding-right:0.7rem;
  padding-left:0.7rem;
  border-color:var(--color-border);
  background:var(--color-bg-surface);
  color:var(--color-text);
  accent-color:var(--color-primary);
  color-scheme:light;
  appearance:none;
  -webkit-appearance:none;
}
.campaign-create-card--export .campaign-create-schedule-line input[type="time"].input:hover{
  border-color:var(--color-border-hover);
  background:var(--color-bg-surface);
}
.campaign-create-card--export .campaign-create-schedule-line input[type="time"].input:focus-visible{
  border-color:var(--color-primary);
  background:var(--color-bg-surface);
  box-shadow:var(--shadow-focus);
}
.campaign-create-card--export .campaign-create-schedule-line input[type="time"].input::-webkit-calendar-picker-indicator{
  opacity:0.48;
  cursor:pointer;
  filter:saturate(0.75);
}
.campaign-create-card--export .campaign-create-schedule-line input[type="time"].input::-webkit-datetime-edit{
  color:var(--color-text);
}
.campaign-create-card--export .campaign-create-schedule-line input[type="time"].input::-webkit-datetime-edit-fields-wrapper{
  padding:0;
}
.campaign-create-card--export .campaign-create-schedule-line input[type="time"].input::-webkit-datetime-edit-hour-field,
.campaign-create-card--export .campaign-create-schedule-line input[type="time"].input::-webkit-datetime-edit-minute-field{
  padding:0;
}
.campaign-create-card .campaign-create-preview{
  display:flex;
  flex-direction:column;
  gap:0.5rem;
}
.campaign-create-card .campaign-create-preview__title{
  margin:0;
  font-size:1.05rem;
  font-weight:700;
  color:var(--color-panel-heading);
  letter-spacing:-0.01em;
}
.campaign-create-card .campaign-create-preview__text{
  margin:0;
  color:var(--color-panel-copy-strong);
  font-size:1rem;
  font-weight:500;
  line-height:1.45;
}
.campaign-create-card .campaign-create-preview__helper{
  margin:0;
  font-size:0.95rem;
  color:var(--color-panel-copy-muted);
}
.campaign-create-card--export .campaign-create-field--collection > .input,
.campaign-create-card--export .campaign-create-field--collection > input,
.campaign-create-card--export .campaign-create-field--collection > select{
  width:calc((100% - 0.85rem) / 2);
  max-width:none;
  box-sizing:border-box;
}
.campaign-fields-editor__input-group,
.campaign-create-card #fields-input{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:0;
  width: calc((100% - 0.85rem) / 2);
  align-items:stretch;
  border:1px solid var(--color-panel-border-input);
  border-radius:var(--radius-sm);
  background:var(--color-bg-surface);
  overflow:hidden;
  transition:border-color var(--transition-base), box-shadow var(--transition-base), background-color var(--transition-base);
}
.campaign-fields-editor__input-group:focus-within,
.campaign-create-card #fields-input:focus-within{
  border-color:var(--color-primary);
  box-shadow:var(--shadow-focus);
  background:var(--color-bg-surface);
}
.campaign-fields-editor__input-group .input,
.campaign-create-card #fields-input .input{
  min-width:0;
  border:none;
  border-radius:0;
  margin:0;
  box-shadow:none;
  background:transparent;
}
.campaign-fields-editor__input-group .input:hover,
.campaign-fields-editor__input-group .input:focus-visible,
.campaign-create-card #fields-input .input:hover,
.campaign-create-card #fields-input .input:focus-visible{
  border:none;
  box-shadow:none;
  background:transparent;
}
.campaign-fields-editor__input-group .campaign-fields-editor__add-button,
.campaign-create-card #fields-input #add-field{
  min-width:48px;
  min-height:100%;
  padding:0 0.95rem;
  border:none;
  border-left:1px solid var(--color-panel-border-muted);
  border-radius:0;
  background:var(--color-panel-surface-soft);
  color:var(--color-primary);
  font-size:1.1rem;
  line-height:1;
}
.campaign-fields-editor__input-group .campaign-fields-editor__add-button:hover,
.campaign-create-card #fields-input #add-field:hover{
  background:var(--color-panel-surface-hover);
  border-color:var(--color-panel-border-muted);
}
.campaign-fields-editor__input-group .campaign-fields-editor__add-button:disabled,
.campaign-create-card #fields-input #add-field:disabled{
  cursor:not-allowed;
  opacity:0.55;
  background:var(--color-panel-surface-soft);
  color:var(--color-panel-disabled);
}
.campaign-fields-editor__input-group .campaign-fields-editor__add-button:focus-visible,
.campaign-create-card #fields-input #add-field:focus-visible{
  box-shadow:none;
}
[data-field-name-error]{
  margin-top:0.35rem;
}
.campaign-create-card [data-coupon-section]{display:flex;flex-direction:column;gap:1rem}
.campaign-create-card [data-coupon-section][hidden]{display:none !important}
.campaign-create-card .toggle-field{padding-top:0;width:100%}
.campaign-create-card .toggle-field__main{
  display:inline-flex;
  flex-direction:row-reverse;
  gap:0.6rem;
  align-items:center;
  justify-content:flex-end;
  width:auto;
}
.campaign-create-card .toggle-field__copy{
  display:flex;
  flex-direction:row;
  align-items:center;
  gap:0.6rem;
  padding-top:0;
}
.campaign-create-card .toggle-field__copy label{
  margin:0;
}
.campaign-create-card .toggle-field__copy .form-error{
  margin-left:0.5rem;
}
.campaign-create-card .coupon-upload-panel{
  margin-top:0.6rem;
  display:flex;
  flex-direction:column;
  gap:0.85rem;
}
.campaign-create-card .coupon-upload-block{
  position:relative;
}
.campaign-create-card .coupon-upload-dropzone{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:0.8rem;
  min-height:11.5rem;
  padding:1.25rem;
  border:1px dashed var(--color-border);
  border-radius:var(--radius-md);
  background:var(--color-panel-surface-soft);
  text-align:center;
  cursor:pointer;
  transition:border-color var(--transition-base), background-color var(--transition-base), box-shadow var(--transition-base);
}
.campaign-create-card .coupon-upload-dropzone.is-hidden,
.campaign-create-card .coupon-upload-loading.is-hidden,
.campaign-create-card .coupon-upload-file.is-hidden{
  display:none !important;
}
.campaign-create-card .coupon-upload-dropzone:hover,
.campaign-create-card .coupon-upload-dropzone.is-dragover{
  border-color:var(--color-border-focus);
  background:var(--color-primary-tint);
  box-shadow:var(--shadow-focus);
}
.campaign-create-card .coupon-upload-file.is-dragover{
  border-color:var(--color-border-focus);
  background:var(--color-primary-tint);
  box-shadow:var(--shadow-focus);
}
.campaign-create-card .coupon-upload-dropzone__headline{
  margin:0;
  font-size:1.05rem;
  font-weight:700;
  color:var(--color-panel-heading);
  letter-spacing:-0.01em;
}
.campaign-create-card .coupon-upload-dropzone__subline{
  margin:0;
  font-size:0.95rem;
  color:var(--color-panel-copy);
  line-height:1.45;
}
.campaign-create-card .coupon-upload-dropzone__link{
  color:var(--color-primary);
  font-weight:600;
}
.campaign-create-card .coupon-upload-input{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0, 0, 0, 0);
  white-space:nowrap;
  border:0;
}
.campaign-create-card .coupon-upload-action{
  min-width:0;
}
.campaign-create-card .coupon-upload-loading,
.campaign-create-card .coupon-upload-file{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:0.65rem;
  min-height:11.5rem;
  padding:1.25rem;
  border:1px dashed var(--color-border);
  border-radius:var(--radius-md);
  background:var(--color-bg-subtle);
  text-align:center;
}
.campaign-create-card .coupon-upload-file[hidden]{
  display:none !important;
}
.campaign-create-card .coupon-upload-loading{
  flex-direction:row;
  color:var(--color-panel-copy);
  font-size:0.95rem;
}
.campaign-create-card .coupon-upload-loading__spinner{
  width:1rem;
  height:1rem;
  border:2px solid var(--color-panel-border-muted);
  border-top-color:var(--color-primary);
  border-radius:50%;
  animation:coupon-upload-spin 0.7s linear infinite;
}
.campaign-create-card .coupon-upload-file__row{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:0.75rem;
}
.campaign-create-card .coupon-upload-file__name{
  margin:0;
  font-size:0.98rem;
  font-weight:600;
  color:var(--color-text);
}
.campaign-create-card .coupon-upload-file__check{
  color:var(--color-success);
}
.campaign-create-card .coupon-upload-helper{
  display:flex;
  flex-direction:column;
  gap:0.25rem;
}
.campaign-create-card .coupon-upload-helper p{
  margin:0;
  font-size:0.86rem;
  color:var(--color-panel-copy-soft);
  line-height:1.4;
  margin-bottom:5px;
}
.campaign-create-card .coupon-upload-preview{
  margin-top:0.15rem;
}
.campaign-create-card .campaign-create-subsection--preview.coupon-upload-preview{
  margin-top:1rem;
  padding:1rem 1.1rem;
  border-top:none;
  border-radius:var(--radius-md);
  background:var(--color-panel-surface-soft);
  border:none;
}
.campaign-create-card .coupon-upload-error{
  margin:0;
}
.campaign-create-card .coupon-upload-feedback{
  display:flex;
  flex-direction:column;
  gap:0.35rem;
}
.campaign-create-card .coupon-upload-feedback[hidden],
.campaign-create-card .coupon-upload-feedback.is-hidden{
  display:none;
}
.campaign-create-card .coupon-upload-status{
  margin:0;
  display:flex;
  align-items:flex-start;
  gap:0.45rem;
  font-size:0.95rem;
  line-height:1.4;
}
.campaign-create-card .coupon-upload-status__icon{
  flex:0 0 auto;
  font-weight:700;
}
.campaign-create-card .coupon-upload-status--success{
  color:var(--color-success);
  font-weight:600;
}
.campaign-create-card .coupon-upload-status--warning{
  color:var(--color-panel-warning);
  padding-left:0.5rem;
}
.campaign-create-card .coupon-upload-status--error{
  color:var(--color-danger);
  padding-top:0.2rem;
}
.campaign-form-error{
  margin-bottom:1rem;
}
.campaign-form-error[hidden],
.campaign-form-error.is-hidden{
  display:none;
}
.campaign-form-error .campaign-status-card{
  box-shadow:none;
}
.campaign-create-card .coupon-upload-preview__body{
  margin-top:0.9rem;
  padding:0.7rem 0.9rem;
  border:1px solid var(--color-panel-border-subtle);
  border-radius:var(--radius-md);
  background:var(--color-panel-surface-overlay);
}
.campaign-create-card .coupon-upload-preview__list{
  margin:0;
  display:flex;
  flex-direction:column;
  gap:0;
}
.campaign-create-card .coupon-upload-preview__item{
  margin:0;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:0.45rem;
  font-size:0.96rem;
  line-height:1.45;
  color:var(--color-panel-body);
  padding:0.72rem 0;
}
.campaign-create-card .coupon-upload-preview__item + .coupon-upload-preview__item{
  border-top:1px solid var(--color-panel-border-soft);
}
.campaign-create-card .coupon-upload-preview__value--code{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:min(28rem, 100%);
  color:var(--color-panel-copy-strong);
}
.campaign-create-card .coupon-upload-preview__value--discount,
.campaign-create-card .coupon-upload-preview__value--expiry{
  white-space:nowrap;
  color:var(--color-panel-copy-muted);
}
.campaign-create-card .coupon-upload-preview__divider{
  color:var(--color-panel-placeholder);
  flex:0 0 auto;
}
.campaign-create-card .coupon-upload-preview__summary{
  margin:0.35rem 0 0;
}
@keyframes coupon-upload-spin{
  to{transform:rotate(360deg);}
}
.campaign-page{
  display:flex;
  flex-direction:column;
  gap:1rem;
}
.campaign-page-shell{
  padding-top:0;
  padding-bottom:2rem;
  display:flex;
  flex-direction:column;
  align-items:center;
}
.campaign-page-content-shell{
  width:min(var(--campaign-create-shell-width), var(--campaign-create-shell-max));
  max-width:100%;
  box-sizing:border-box;
}
.campaign-page-content-shell{
  display:flex;
  flex-direction:column;
  gap:1rem;
  min-width:0;
}
.campaign-page-frame{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  min-width:0;
  overflow:visible;
}
.campaign-page-body{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  min-width:0;
  padding:0 0 1.6rem;
}
.campaign-page-header{
  display:block;
  margin-bottom:0;
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  min-width:0;
  background:var(--color-bg-surface);
  border:1px solid var(--color-border);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-soft);
  overflow:hidden;
}
.campaign-page-header--plain{
  background:transparent;
  border:none;
  box-shadow:none;
  overflow:visible;
}
.campaign-page-hero{
  display:flex;
  flex-direction:column;
  position:relative;
  overflow:visible;
  gap:0.7rem;
  min-width:0;
  border:none;
  border-radius:0;
  background:transparent;
}
.campaign-page-hero--v2{
  gap:0.35rem;
  padding-top:0.8rem;
  padding-bottom:0.7rem;
}
.campaign-page-hero__topline{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.25rem;
}
.campaign-page-hero__title-group{
  flex:1 1 auto;
  min-width:0;
}
.campaign-page-hero__meta-row{
  display:flex;
  align-items:center;
  gap:0.55rem;
  margin-bottom:0.5rem;
}
.campaign-page-hero__eyebrow{
  margin:0;
  color:var(--color-text-secondary);
  font-weight:600;
  font-size:0.95rem;
}
p.campaign-page-hero__eyebrow {
    margin: 0;
}
.campaign-page-hero__title-group h1{
  margin:0;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.campaign-page-hero__inline-form{
  display:flex;
  flex-direction:column;
  gap:0.35rem;
  min-width:0;
}
.campaign-page-hero__inline-form--header{
  align-items:flex-start;
}
.campaign-page-hero__inline-display{
  display:inline-flex;
  align-items:center;
  gap:0.45rem;
  min-width:0;
  max-width:100%;
}
.campaign-page-hero__inline-display--title{
  max-width:100%;
}
.campaign-page-hero__inline-display--title h1{
  margin:0;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.campaign-page-hero__inline-display--submeta{
  min-width:0;
}
.campaign-page-hero__inline-edit{
  display:inline-flex;
  align-items:center;
  min-width:0;
  max-width:100%;
}
.campaign-page-hero__inline-edit[hidden],
.campaign-page-hero__inline-display[hidden]{
  display:none !important;
}
.campaign-page-hero__inline-edit input{
  min-width:0;
  max-width:100%;
  margin:0;
  padding:0;
  border:none;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  -webkit-appearance:none;
  appearance:none;
  color:var(--color-text-header);
  font:inherit;
}
.campaign-page-hero__inline-edit input:hover,
.campaign-page-hero__inline-edit input:focus,
.campaign-page-hero__inline-edit input:focus-visible{
  border:none;
  outline:none;
  background:transparent;
  box-shadow:none;
}
.campaign-page-hero__inline-edit--title input{
  min-width:0;
  width:100%;
  font-size:1.8rem;
  font-weight:bold;
  line-height:var(--line-height-tight);
  color:var(--color-text-strong);
  letter-spacing:-0.025em;
}
.campaign-page-hero__inline-edit--submeta input{
  width:100%;
  font-weight:700;
  line-height:1.4;
  font-size:0.95rem;
}
.campaign-page-hero__submeta{
  color:var(--color-text-secondary);
  font-size:0.95rem;
  line-height:1.4;
}
.campaign-page-hero__submeta--inline{
  display:inline-flex;
  align-items:center;
  gap:0.45rem;
  flex-wrap:nowrap;
  max-width:100%;
}
.campaign-page-hero__inline-edit--submeta{
  display:inline-flex;
  align-items:center;
  min-width:0;
  max-width:100%;
  flex-wrap:nowrap;
}
.campaign-page-hero__submeta-control{
  min-width:0;
}
.campaign-page-hero__submeta-control input{
  width:100%;
}
.campaign-page-hero__submeta-control input::placeholder{
  color:var(--color-text-muted);
  opacity:1;
}
.campaign-page-hero__inline-edit-btn{
  flex:0 0 auto;
}
.campaign-page-hero__inline-edit-spacer{
  flex:0 0 auto;
  width:calc(1.25rem + 0.6rem + 2px);
  height:calc(1.25rem + 0.6rem + 2px);
  visibility:hidden;
  pointer-events:none;
}
.campaign-page-hero__submeta-label{
  font-weight:600;
}
.campaign-page-hero__submeta-value{
  font-weight:700;
}
.campaign-page-hero__submeta.is-warning .campaign-page-hero__submeta-value{
  color:var(--color-danger);
}
.campaign-page-hero .form-error{
  color:var(--color-danger);
  font-weight:600;
}
.campaign-page-actions{
  flex:0 0 auto;
  align-self:center;
  display:flex;
  align-items:center;
  gap:0.6rem;
  justify-content:flex-end;
  padding-top:0;
}
.campaign-page-actions .btn{
  min-width:0;
}
.campaign-page-actions .btn.secondary{
  background:var(--color-primary-alpha-18);
  border-color:var(--color-primary-alpha-35);
  color:var(--color-text-header);
  font-weight:var(--weight-semibold);
  min-height:50px;
}
.campaign-actions-menu{
  position:relative;
}
.campaign-actions-menu summary{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  list-style:none;
  min-height:40px;
  padding:0.55rem 0.9rem;
  box-sizing:border-box;
  cursor:pointer;
  -webkit-appearance:none;
  appearance:none;
}
.campaign-actions-menu summary::-webkit-details-marker{
  display:none;
}
.campaign-actions-menu[open] summary{
  background:var(--color-primary-alpha-18);
}
.campaign-actions-menu__panel{
  position:absolute;
  right:0;
  top:calc(100% + 0.35rem);
  z-index:20;
  min-width:220px;
  padding:0.4rem;
  background:var(--color-bg-surface);
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-soft);
}
.campaign-actions-menu__form + .campaign-actions-menu__form{
  margin-top:0.15rem;
}
.campaign-actions-menu__item{
  width:100%;
  padding:0.75rem 0.85rem;
  border:none;
  border-radius:var(--radius-sm);
  background:transparent;
  color:var(--color-text-header);
  text-align:left;
  font:inherit;
  cursor:pointer;
}
.campaign-actions-menu__item:hover{
  background:var(--color-panel-surface-soft);
}
.campaign-actions-menu__item:disabled{
  opacity:0.55;
  cursor:not-allowed;
}
.campaign-tab-panel{
  width:100%;
  min-width:0;
}
.campaign-status-card{
  display:flex;
  flex-direction:column;
  gap:0.7rem;
  padding:1rem 1.1rem;
  border:1px solid var(--color-border);
  border-radius:var(--radius-md);
  background:var(--color-bg-surface);
  box-shadow:var(--shadow-soft);
}
.campaign-status-card.is-success{
  background:var(--color-success-bg);
  border-color:var(--color-success-border);
  color:var(--color-success);
}
.campaign-status-card.is-warning{
  background:var(--color-status-draft-bg);
  border-color:var(--color-status-draft-border);
  color:var(--color-status-draft);
}
.campaign-status-card.is-error{
  background:var(--color-status-paused-bg);
  border-color:var(--color-status-paused-border);
  color:var(--color-status-paused);
}
.campaign-status-card.is-paused{
  background:var(--color-status-paused-bg);
  border-color:var(--color-status-paused-border);
  color:var(--color-status-paused);
}
.campaign-status-card.is-info{
  background:var(--color-status-draft-bg);
  border-color:var(--color-status-draft-border);
  color:var(--color-status-draft);
}
.campaign-status-card__body{
  display:flex;
  flex-direction:column;
  gap:0.25rem;
}
.campaign-status-card__line{
  margin:0;
  line-height:1.5;
}
.campaign-status-card__title{
  font-size:1rem;
  font-weight:var(--weight-bold);
  color:currentColor;
}
.campaign-status-card__text{
  color:currentColor;
  margin-left:0.35rem;
}
.campaign-page .form-actions{
  width:100%;
  margin-top:0.2rem;
}
.campaign-page .records-table{
  background:#fff;
}
.campaign-page .table-wrapper,
.campaign-page .records-wrapper,
.campaign-page .records-table{
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
}
.campaign-page .records-table{
  border-radius:var(--radius-md);
  overflow:hidden;
}

/* Campaign detail: summary, records, status */
.campaign-summary-card__editor{
  display:block;
}
.campaign-summary-card__editor > header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}
.campaign-summary-card__editor-toggle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  list-style:none;
  cursor:pointer;
  flex:0 0 auto;
  margin:0;
}
.campaign-summary-card__editor-toggle::-webkit-details-marker{
  display:none;
}
.campaign-summary-card__preview{
  padding-right:0;
  display:flex;
  flex-direction:column;
  gap:1rem;
}
.campaign-summary-status{
  padding:1rem 1.1rem;
  border-radius:var(--radius-md);
}
.campaign-summary-card__editor-form{
  margin-top:1rem;
  display:none;
}
.campaign-summary-card__editor-form[hidden]{
  display:none !important;
}
.campaign-summary-card__editor.is-open .campaign-summary-card__preview,
.campaign-summary-card__editor.is-open .campaign-summary-card__editor-toggle{
  display:none;
}
.campaign-summary-card__editor.is-open .campaign-summary-card__editor-form:not([hidden]){
  display:flex !important;
}
.campaign-overview-fields{
  display:flex;
  flex-direction:column;
  gap:0.75rem;
  margin-bottom:1rem;
  padding-bottom:1rem;
  border-bottom:1px solid #e5e7eb;
}
.campaign-overview-fields--subtle{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:0.45rem;
  margin-top:0.15rem;
  margin-bottom:0;
  padding-bottom:0;
  border-bottom:none;
}
.campaign-overview-fields__summary{
  min-width:0;
  display:inline-flex;
  align-items:center;
  flex-wrap:wrap;
  gap:0.35rem;
  color:var(--color-text-secondary);
  font-size:0.95rem;
  line-height:1.45;
}
.campaign-overview-fields__label{
  color:var(--color-text-secondary);
}
.campaign-overview-fields__value{
  color:var(--color-text-secondary);
}
.campaign-overview-fields__trigger{
  flex:0 0 auto;
  margin-left:0.1rem;
  transform:scale(0.92);
}
.campaign-fields-modal{
  max-width:820px;
}
.campaign-fields-modal__form{
  gap:1rem;
}
.campaign-coupons-modal{
  max-width:820px;
}
.campaign-coupons-modal__form{
  gap:1rem;
}
.campaign-coupons-modal .card,
.campaign-coupons-modal .campaign-create-card{
  border:none;
  box-shadow:none;
  padding:0;
  margin:0;
  background:transparent;
}
.campaign-coupons-modal .card-body{
  padding:0;
}
.campaign-fields-modal .card,
.campaign-fields-modal .campaign-create-card{
  border:none;
  box-shadow:none;
  padding:0;
  margin:0;
  background:transparent;
}
.campaign-fields-modal .card-body{
  padding:0;
}
.campaign-fields-modal .form-field > label{
  margin-bottom:0;
}
.campaign-fields-readonly-list{
  gap:0.35rem;
}
.campaign-fields-modal .chip.campaign-fields-readonly-chip{
  display:inline-flex;
  align-items:center;
  grid-template-columns:minmax(0,auto);
  column-gap:0;
  min-height:0;
  padding:0.35rem 0.6rem;
  font-size:0.92rem;
}
.campaign-fields-readonly-copy{
  margin:0.35rem 0 0;
  color:var(--color-text-secondary);
  font-size:0.95rem;
  line-height:1.45;
}
.campaign-coupons-card__toggle-form{
  gap:0.65rem;
}
.campaign-coupon-status{
  margin-top:0.85rem;
  padding:0.95rem 1rem;
  border-radius:var(--radius-md);
  border:1px solid var(--color-border);
  background:var(--color-bg-subtle);
}
.campaign-coupon-status.is-error{
  border-color:var(--color-danger-border);
  background:var(--color-danger-bg);
  color:var(--color-danger);
}
.campaign-coupon-status.is-warning{
  border-color:var(--color-warning-border);
  background:var(--color-warning-bg);
  color:var(--color-warning);
}
.campaign-coupon-status.is-success{
  border-color:var(--color-success-border);
  background:var(--color-success-bg);
  color:var(--color-success);
}
.campaign-coupon-status__availability,
.campaign-coupon-status__headline,
.campaign-coupon-status__text{
  margin:0;
}
.campaign-coupon-status__availability{
  color:var(--color-text-secondary);
  font-size:0.95rem;
  line-height:1.45;
}
.campaign-coupon-status__headline{
  margin-top:0.3rem;
  font-weight:700;
  color:var(--color-panel-heading);
}
.campaign-coupon-status.is-error .campaign-coupon-status__headline{
  color:var(--color-danger);
}
.campaign-coupon-status.is-warning .campaign-coupon-status__headline{
  color:var(--color-warning);
}
.campaign-coupon-status.is-success .campaign-coupon-status__headline{
  color:var(--color-success);
}
.campaign-coupon-status__text{
  margin-top:0.2rem;
  color:var(--color-text-secondary);
  font-size:0.95rem;
  line-height:1.45;
}
.campaign-coupons-card__actions{
  margin-top:0.85rem;
}
.card-actions-row{
  display:flex;
  gap:0.6rem;
  width:100%;
  flex-wrap:wrap;
  align-items:flex-start;
}
.campaign-page .table-wrapper,
.campaign-page .records-wrapper{
  overflow-x:auto;
}
.campaign-draft-hero .section-header__kicker{margin-bottom:0}
.campaign-settings-form{
  display:flex;
  flex-direction:column;
  gap:1rem;
}
@media (max-width: 640px){
  .campaign-page-body{
    padding:0 0 1.2rem;
  }
  .campaign-page-hero__topline{
    flex-direction:column;
    align-items:flex-start;
  }
  .campaign-page-content-shell{
    width:100%;
  }
  .campaign-page-actions{
    width:100%;
    justify-content:flex-start;
  }
  .campaign-draft-hero{
    padding:0.95rem 1rem 1rem;
  }
}
.campaign-draft-api-summary{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:0.8rem;
}
.campaign-draft-api-summary__actions{
  margin-top:5px;
}
.campaign-create-form .form-actions{
  width:100%;
}

.settings-layout-card{
  padding:1.25rem;
  background:var(--color-bg-surface);
}
.settings-tab-nav{
  display:flex;
  flex-wrap:wrap;
  gap:0.65rem;
  margin-bottom:1.1rem;
  padding-bottom:1rem;
  border-bottom:1px solid var(--color-panel-border-soft);
}
.tab-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:0.65rem 1rem;
  border:1px solid var(--color-pill-border);
  border-radius:var(--radius-pill);
  background:var(--color-pill-bg);
  color:var(--color-pill-text);
  font:inherit;
  font-weight:var(--weight-semibold);
  cursor:pointer;
  transition:
    background-color var(--transition-base),
    border-color var(--transition-base),
    color var(--transition-base),
    box-shadow var(--transition-base);
}
.tab-button:hover{
  border-color:var(--color-border-hover);
  background:var(--color-primary-tint);
}
.tab-button:focus-visible{
  outline:none;
  box-shadow:var(--shadow-focus);
}
.tab-button.active{
  border-color:var(--color-primary-alpha-35);
  background:var(--color-primary);
  color:#f7fbff;
}
.tab-panel{display:none}
.tab-panel.active{display:block}
.settings-tab-panel{padding:0.1rem 0}
.settings-panel-stack{
  display:flex;
  flex-direction:column;
  gap:1rem;
}
.settings-meta-line{margin:0;color:var(--color-text)}
.billing-panel{margin:0}
.billing-panel--summary,.billing-panel--plans{margin-top:0}
.billing-panel-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}
.billing-panel-header h3{margin:0;font-size:1.35rem;color:var(--color-text-title)}
.billing-panel-header p{margin:0.3rem 0 0;color:var(--color-text-secondary)}
.billing-badge-row{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.55rem}
.billing-plan-badge{display:inline-flex;align-items:center;padding:0.45rem 0.85rem;border:1px solid var(--color-pill-border);border-radius:999px;background:var(--color-pill-bg);font-weight:700;color:var(--color-pill-text)}
.billing-usage-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem}
.billing-usage-label{margin:0;color:var(--color-text-soft);font-weight:600}
.billing-usage-value{margin:0.35rem 0 0.35rem;font-size:2rem;font-weight:800;color:var(--color-text-title)}
.billing-progress{height:14px;border-radius:999px;background:var(--color-primary-tint-strong);overflow:hidden;margin:0.9rem 0 1.1rem}
.billing-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--color-primary-strong) 0%,var(--color-primary-soft) 100%)}
.billing-note-row{padding-bottom:0.45rem;border-bottom:1px solid var(--color-panel-border-soft);margin-bottom:0.55rem}
.billing-note-row .helper-text + .helper-text{margin-top:0.35rem}
.billing-panel .message-box{margin-bottom:0.25rem}
.billing-subsection{padding:0.9rem 0}
.billing-subsection + .billing-subsection{margin-top:0.3rem;border-top:1px solid var(--color-panel-border-soft)}
.billing-subsection h4{margin:0 0 0.7rem;font-size:0.95rem;letter-spacing:.02em;color:var(--color-panel-body)}
.billing-subsection--date{padding-top:0.2rem}
.billing-subsection--usage{padding-bottom:0}
.billing-date-value{margin:0;font-size:1.1rem;font-weight:700;color:var(--color-text-title)}
.billing-meta{margin:0;display:flex;flex-direction:column;gap:0.55rem}
.billing-meta div{display:flex;justify-content:space-between;gap:1rem;padding-bottom:0.45rem;border-bottom:1px solid var(--color-panel-border-soft)}
.billing-meta div:last-child{border-bottom:none;padding-bottom:0}
.billing-meta .billing-meta-total{padding-top:0.15rem}
.billing-meta .billing-meta-total dt,.billing-meta .billing-meta-total dd{font-size:1.05rem;font-weight:800;color:var(--color-text-title)}
.billing-meta dt{font-weight:600;color:var(--color-text-soft)}
.billing-meta dd{margin:0;font-weight:600;color:#101828;text-align:right}
.billing-panel-actions{display:flex;flex-wrap:wrap;gap:0.55rem;margin-top:1rem}
.billing-plan-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;align-items:stretch;margin:1rem 0 1rem}
.billing-plan-card{position:relative;border:1px solid var(--color-border);border-radius:var(--radius-card);background:linear-gradient(180deg,var(--color-panel-surface-soft) 0%,#ffffff 100%);padding:1.15rem;display:flex;flex-direction:column;align-items:center;text-align:center;gap:0.75rem;justify-content:flex-start}
.billing-plan-card.is-active{border-color:var(--color-success-border);box-shadow:0 0 0 3px rgba(31,111,74,0.1);background:linear-gradient(180deg,var(--color-success-bg) 0%,#ffffff 100%)}
.billing-plan-card.is-scheduled{border-color:var(--color-border-hover)}
.billing-plan-tag{display:inline-flex;align-items:center;justify-content:center;padding:0.2rem 0.7rem;border-radius:var(--radius-pill);background:var(--color-success);color:var(--color-bg-surface);font-size:0.8rem;font-weight:700;margin-bottom:0.15rem}
.billing-plan-icon{width:3rem;height:3rem;border-radius:14px;display:flex;align-items:center;justify-content:center;background:var(--color-primary-tint);color:var(--color-primary-strong);font-weight:800;font-size:1.1rem}
.billing-plan-card h4{margin:0;font-size:1.35rem;color:#19365d}
.billing-plan-price{margin:0;font-size:1.8rem;font-weight:800;color:#101828}
.billing-plan-copy,.billing-plan-detail{margin:0;color:var(--color-text-secondary)}
.billing-plan-actions{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:0.5rem;width:100%;margin-top:auto;padding-top:0.25rem}
.billing-panel--plans .helper-text{display:block;margin-top:0}

@media (max-width: 900px){
  .billing-plan-grid{grid-template-columns:1fr}
}

/* Shared cards, empty states, list cards, records */
.compact-copy{gap:0.45rem}
.compact-copy p{margin:0;line-height:1.52}
.card footer{margin-top:0.75rem}
.card-actions{display:flex;gap:0.5rem;flex-wrap:wrap;justify-content:flex-end}
.card-list{display:flex;flex-direction:column;gap:1rem}
.card-link-area{display:block;color:inherit;text-decoration:none}
.card-link-area:focus-visible{outline:2px solid #2563eb;outline-offset:6px;border-radius:10px}
.card--clickable{position:relative}
.card-link-area--overlay{position:absolute;inset:0;z-index:1;border-radius:var(--radius-card)}
.card--clickable .inline-form{position:relative;z-index:2}
.meta-text{color:var(--color-text-subtle);font-size:0.9rem;margin:0.2rem 0 0}
.legal-text{line-height:1.75;font-size:1.02rem}
.legal-text p{margin:0}
.legal-text a{color:#1d4ed8;text-decoration:underline;font-weight:600;word-break:break-word}
.terms-page{display:flex;flex-direction:column;gap:1.5rem;padding-top:0.5rem}
.terms-page h1{margin:0;font-size:2rem}
.terms-docs h2{margin:0 0 0.35rem;font-size:1.2rem;color:var(--color-text-title)}
.doc-list{list-style:disc;padding-left:1.25rem;margin:0;display:flex;flex-direction:column;gap:0.6rem}
.doc-list a{color:#1d4ed8;font-weight:600;text-decoration:none;word-break:break-word}
.doc-list a:hover{text-decoration:underline}
.campaign-list-card__body{gap:0.85rem}
.campaign-list-card__export-line{display:flex;flex-wrap:wrap;gap:0.35rem;margin:0;color:var(--color-panel-body);line-height:1.5}
.campaign-list-card__label{font-weight:700;color:var(--color-text-title)}
.campaign-list-card__value{font-weight:500;color:var(--color-panel-copy-strong)}
.campaign-list-card__status{
  display:flex;
  align-items:center;
  gap:0.45rem;
  margin:0;
  font-weight:600;
  line-height:1.4;
  color:var(--color-text-secondary);
}
.campaign-list-card__status-dot{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:0.6rem;
  height:0.6rem;
  border-radius:999px;
  background:currentColor;
  flex:0 0 auto;
}
.campaign-list-card__status--warning{
  color:var(--color-warning);
}
.empty-state{background:var(--color-bg-surface);border-style:dashed;text-align:center}
.empty-state .card-body{align-items:center;text-align:center}
.empty-state h3{margin:0;font-size:1.3rem}

.token-actions{display:flex;flex-wrap:wrap;gap:0.5rem}
.inline-form{margin:0}
.token-value{
  display:flex;
  flex-direction:column;
  gap:0.45rem;
}
.token-value__label{
  margin:0;
  font-size:0.9rem;
  font-weight:var(--weight-semibold);
  color:var(--color-info);
}
.token-value__actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:0.65rem;
}
.token-value pre{margin:0;overflow-x:auto;font-size:0.9rem;background:transparent;border:none;color:var(--color-text-header)}
.copy-token{width:fit-content;color:var(--color-primary-strong)}
.copy-token:hover{background:transparent;color:var(--color-primary)}
.is-hidden{display:none !important}
.form-actions .btn-submit-secondary{padding:0.15rem 0.1rem;border:none;background:transparent;color:#64748b;font-weight:500;min-width:auto;text-align:center}
.form-actions .btn-submit-secondary:hover{text-decoration:underline;background:transparent;border-color:transparent}
.chip-list{display:flex;flex-wrap:wrap;gap:0.5rem;margin:0}
.chip{display:inline-grid;grid-template-columns:minmax(0,auto) 0.9rem;align-items:center;column-gap:0.35rem}
.chip.chip--static{grid-template-columns:minmax(0,auto)}
.chip.records{min-width:80px;}
.chip.fixed{background:var(--color-primary-tint);color:var(--color-primary);border-color:rgba(122,169,218,0.46)}
.chip .chip-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}
.chip .chip-slot{
  width:0.9rem;
  height:0.9rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1;
  transform:translateY(-0.02em);
}
.chip .chip-slot--placeholder{visibility:hidden}
.chip .chip-slot--action{visibility:visible}
.chip button{border:none;background:transparent;cursor:pointer;color:inherit;font-weight:bold;padding:0;line-height:1;-webkit-appearance:none;appearance:none}
.chip.ghost{
  background:transparent;
  border-color:#94a3b8;
  color:var(--color-text-soft);
  font:inherit;
  line-height:1;
  cursor:pointer;
  -webkit-appearance:none;
  appearance:none;
  text-align:inherit;
}
.campaign-fields-editor__active-list .chip,
.campaign-fields-editor__available-list .chip,
.campaign-create-card #fields-preview .chip,
.campaign-create-card #available-fixed .chip{
  min-height:32px;
  max-width:220px;
  width:auto;
  box-sizing:border-box;
  border-width:1px;
  border-style:solid;
  border-radius:999px;
}
.campaign-fields-editor__active-list .chip,
.campaign-create-card #fields-preview .chip{
  background:#e7f0fb;
  color:#315f98;
  border-color:#b8cde6;
  font-size:0.88rem;
  font-weight:750;
}
.campaign-fields-editor__available-list .chip,
.campaign-create-card #available-fixed .chip{
  background:var(--color-bg-surface);
  color:var(--color-text-soft);
  border-color:#9fb2c8;
  font-size:0.88rem;
  font-weight:700;
}
.campaign-fields-editor__active-list,
.campaign-fields-editor__available-list,
.campaign-create-card #fields-preview,
.campaign-create-card #available-fixed{
  align-content:flex-start;
  min-height:42px;
  margin-bottom:1rem;
}
.campaign-fields-editor__available-list .chip,
.campaign-create-card #available-fixed .chip{cursor:pointer}
.chip-list-empty{
  margin:0;
  padding:0.1rem 0;
  color:#6b7c8f;
  font-size:0.88rem;
  line-height:1.45;
}
.chip.waiting{background:#fff4e5;color:#b45309;border:1px solid #f8d7b2}
.chip.success{background:#e7f5ec;color:#166534;border:1px solid #cfead6}
.chip.danger{background:#fdecea;color:#b42318;border:1px solid #f5c2bc}

.modal-open{overflow:hidden}
.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,0.45);display:none;align-items:flex-start;justify-content:center;z-index:50;padding:2rem 1rem;overflow:auto}
.modal-backdrop.is-open{display:flex;z-index:200;}
.modal-dialog{max-width:960px;width:100%;background:var(--color-bg-surface);border-radius:var(--radius-button);box-shadow:var(--shadow-modal);padding:1.25rem;animation:modalIn .18s ease-out}
.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.modal-title{margin:0}
.modal-actions{display:flex;gap:0.5rem;align-items:center}
.modal-header .btn.plain{font-size:1.5rem;line-height:1;padding:0.1rem 0.35rem}
.billing-confirm-dialog,
.confirm-dialog{max-width:728px}
.billing-confirm-copy p,
.confirm-copy__line{margin:0.35rem 0 0;color:var(--color-text-secondary);line-height:1.5;font-size:0.95rem}
.billing-confirm-copy p + p{margin-top:0.75rem}
.billing-confirm-actions,
.confirm-actions{margin-top:1.25rem}
.create-exit-dialog{max-width:520px}
.create-exit-actions{justify-content:flex-start}
.record-modal-actions{margin-top:1rem}
.record-modal-title{margin-bottom:0.35rem}
.records-table{width:100%}
.records-table tbody tr:nth-child(odd){background:#f8f9fb}
.records-table th,.records-table td{padding:0.45rem 0.85rem;text-align:center;color:var(--color-text-soft)}
.records-table__empty td{color:#64748b;font-style:italic}
.records-wrapper{padding:0}

@media (max-width: 640px){
  .choice-grid{grid-template-columns:1fr}
  .form-field--wide,.field-tools--wide{max-width:none}
  .form-actions{flex-direction:column;align-items:flex-start}
  .campaign-create-page .page-header,
  .campaign-create-page .campaign-create-form{width:100%}
}
.record-state-summary{gap:0.75rem}
.record-state-item{text-decoration:none;color:inherit;border-radius:999px;padding:0.35rem 0.6rem}
.record-state-item.is-active{background:#e5edf8;color:#1f2937}
.record-actions{display:inline-flex;gap:0.5rem;align-items:center;justify-content:center}
.record-actions .inline-form{display:inline-flex}
.record-actions .icon-btn{display:inline-flex;align-items:center;justify-content:center}
.record-actions .inline-form .icon-btn{margin:0}
.pagination{display:flex;justify-content:center;align-items:center;gap:1rem;margin-top:1rem}
.pagination a{text-decoration:none}
@keyframes modalIn{from{transform:translateY(-8px);opacity:0}to{transform:translateY(0);opacity:1}}

/* API modal */
.api-helper{display:flex;flex-direction:column;gap:0.9rem}
.api-instructions{display:flex;flex-direction:column;gap:1rem;margin-top:0.75rem}
.api-instructions__title{margin:0;color:var(--color-panel-copy);font-weight:400;line-height:1.55}
.api-step__title{margin:0;color:var(--color-text-title);font-weight:600}
.api-step{display:flex;flex-direction:column;gap:0.55rem;padding:0.9rem 1rem;border:1px solid var(--color-border-soft);border-radius:14px;background:var(--color-panel-surface-soft)}
.api-step__actions{display:flex;align-items:center;justify-content:space-between;gap:0.75rem;width:100%}
.api-line{display:grid;grid-template-columns:auto 1fr auto;align-items:center;column-gap:0.9rem;row-gap:0.35rem}
.api-line + .api-line{margin-top:0.15rem}
.api-line code{border-radius:var(--radius-xs);padding:0.45rem 0.65rem;display:inline-block;color:var(--color-text-title);border:2px solid var(--color-border-strong)}
.api-line--stacked{grid-template-columns:auto 1fr auto}
.api-label{min-width:140px;font-weight:600;color:var(--color-text-title)}
.api-label-muted{font-weight:500;color:var(--color-text-tertiary);font-size:0.95rem}
.api-value{display:flex;align-items:center;gap:0.35rem;flex-wrap:wrap}
.api-value p{margin:0.2rem 0 0;font-size:0.9rem}
.api-body-wrapper{flex:none;min-width:0;width:min(60%, 36rem);max-width:100%}
.api-body-wrapper .code-block{
  display:block;
  width:100%;
  box-sizing:border-box;
  margin:0;
  background:var(--color-bg-surface);
  color:var(--color-text-title);
  padding:0.45rem 0.65rem;
  border-radius:var(--radius-xs);
  border:2px solid var(--color-border-strong);
  font-family:inherit;
  font-size:0.95rem;
  line-height:1.5;
}
.api-body-preview{display:flex;flex-direction:column;gap:0.65rem}
.api-body-preview summary{cursor:pointer;list-style:none}
.api-body-preview summary::-webkit-details-marker{display:none}
.api-body-preview__toggle{display:inline-flex;align-items:center;color:var(--color-text-title);font-weight:600}
.api-body-preview__toggle::after{content:" \25BE";font-weight:400;color:var(--color-text-tertiary)}
.api-body-preview[open] .api-body-preview__toggle::after{content:" \25B4"}
.api-copy-btn{width:180px;min-width:140px;text-align:center;justify-content:center}
.api-test-box{margin-top:1rem;padding:0.85rem;border:1px solid var(--color-border-soft);border-radius:var(--radius-sm);background:var(--color-bg-soft);display:flex;flex-direction:column;gap:0.5rem}
.api-step--testing .api-test-box{margin-top:0}
.api-test-status{display:flex;align-items:flex-start;gap:0.5rem}
.api-test-status strong{display:block;color:var(--color-text-title)}
.api-test-status .helper-text{margin-top:0.15rem}
.api-test-status.is-idle .api-test-dot{background:#94a3b8}
.api-test-status.is-ok strong{color:#15803d}
.api-test-status.is-error strong{color:#b91c1c}
.api-test-dot{width:10px;height:10px;border-radius:50%;margin-top:0.25rem;background:#10b981}
.api-test-status.is-error .api-test-dot{background:#ef4444}
.api-test-timestamp{margin:0.35rem 0 0;color:var(--color-text-tertiary);font-size:0.9rem}
.api-test-details{display:flex;flex-direction:column;gap:0.45rem;padding-left:1rem}
.api-test-details summary{cursor:pointer;list-style:none;padding:0.15rem 0}
.api-test-details summary::-webkit-details-marker{display:none}
.api-test-details__toggle{display:inline-flex;align-items:center;color:var(--color-text-title);font-weight:600}
.api-test-details__toggle::after{content:" \25BE";font-weight:400;color:var(--color-text-tertiary)}
.api-test-details[open] .api-test-details__toggle::after{content:" \25B4"}
.api-test-details__body{padding:0.2rem 0 0}
.api-test-missing-fields{width:min(60%, 36rem);max-width:100%;padding:0.85rem 0.95rem;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-bg-surface);box-sizing:border-box}
.api-test-missing-fields__label{margin:0;color:var(--color-text-title);font-weight:600}
.api-test-missing-fields__list{margin:0.5rem 0 0 1.1rem;padding:0;line-height:1.55}
.api-test-errors{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}
.api-test-fields .chip-list{margin-top:0.4rem}
.record-state-summary{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:0.9rem}
.record-state-item{display:flex;align-items:center;gap:0.45rem;background:var(--color-bg-soft);border:1px solid var(--color-border-soft);border-radius:var(--radius-pill);padding:0.35rem 0.7rem;font-size:0.95rem}
.record-state-dot{width:10px;height:10px;border-radius:50%;background:#94a3b8}
.record-state-dot.waiting{background:#f59e0b}
.record-state-dot.success{background:#10b981}
.record-state-dot.error{background:#ef4444}
.record-state-count{font-weight:700;color:var(--color-text-title)}
.record-state-label{color:var(--color-text-tertiary)}
.api-helper-tabs{display:flex;flex-direction:column;gap:0}
.api-tablist{display:flex;flex-wrap:wrap;gap:0.5rem;position:relative;z-index:1}
.api-tab{border:1px solid #9fb2c8;border-radius:var(--radius-pill);padding:0.45rem 0.85rem;background:var(--color-bg-surface);cursor:pointer;font:inherit;color:var(--color-text-soft);font-weight:500;transition:background-color var(--transition-base),border-color var(--transition-base),color var(--transition-base),box-shadow var(--transition-base)}
.api-tab.is-active{background:var(--color-primary-tint);color:var(--color-primary);border-color:var(--color-primary-alpha-58);font-weight:750;box-shadow:0 1px 0 var(--color-primary-alpha-08)}
.api-panel{display:none;margin-top:0.45rem;border:1px solid var(--color-primary-alpha-46);border-radius:var(--radius-card);background:var(--color-primary-tint);padding:1rem 1rem 1.05rem;box-shadow:inset 0 1px 0 rgba(255,255,255,0.5)}
.api-panel.is-active{display:block}
@media (max-width: 720px){
  .api-step__actions{justify-content:flex-start;flex-wrap:wrap}
  .api-body-wrapper{width:100%}
  .api-test-missing-fields{width:100%}
}
.code-block{background:#111827;color:#e5e7eb;padding:0.75rem;border-radius:10px;overflow:auto;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:0.9rem}

/* Settings */
.settings-summary-list{margin:0;display:flex;flex-direction:column;gap:0.65rem}
.settings-summary-list div{display:flex;justify-content:space-between;align-items:center;gap:1rem;border-bottom:1px solid var(--color-panel-border-soft);padding-bottom:0.45rem}
.settings-summary-list div:last-child{border-bottom:none;padding-bottom:0}
.settings-summary-list dt{font-weight:600;color:var(--color-text-secondary)}
.settings-summary-list dd{margin:0;color:var(--color-text);font-weight:500;text-align:right}
.settings-inline-actions{margin-top:0}
.settings-actions{display:flex;flex-wrap:wrap;gap:0.75rem;margin-top:10px;}
.text-success{color:#047857}
.text-danger{color:#b91c1c}

@media (max-width: 700px){
  .settings-layout-card{padding:1rem}
  .settings-tab-nav{gap:0.5rem}
  .tab-button{flex:1 1 calc(50% - 0.5rem)}
  .settings-summary-list div{
    flex-direction:column;
    align-items:flex-start;
  }
  .settings-summary-list dd{text-align:left}
}

.flash-container{display:flex;flex-direction:column;gap:0.5rem;margin-bottom:1rem}
.flash{padding:0.6rem 0.8rem;border-radius:8px;font-weight:600;border:1px solid transparent}
.flash.success{background:#ecfdf5;border-color:#a7f3d0;color:#047857}
.flash.error{background:#fef2f2;border-color:#fecaca;color:#b91c1c}
.flash.warning{background:#fffbeb;border-color:#fcd34d;color:#92400e}
