
/* Nextwave Events Wedding Tool — clean + modern UI (white-label ready via CSS variables) */

.nw-wpt-wrap{
  --nw-primary: #111111;
  --nw-primaryText: #ffffff;
  --nw-surface: #ffffff;
  --nw-accent: #111111;
  --nw-danger: #b00020;
}

.nw-wpt-wrap { max-width: 1140px; margin: 28px auto; padding: 0 14px; }
.nw-muted { opacity: .75; }
.nw-help { font-size: 12.5px; opacity: .72; margin-top: 6px; line-height: 1.35; }

/* Fix double bullet points caused by theme/elementor list styles */
.nw-wpt-wrap ul,
.nw-wpt-wrap ol { list-style: none !important; padding-left: 0 !important; margin-left: 0 !important; }
.nw-wpt-wrap li::marker { content: none !important; }

.nw-card {
  background: var(--nw-surface);
  border: 1px solid rgba(0,0,0,.10);
  border-radius: 16px;
  padding: 16px;
  box-shadow: 0 8px 24px rgba(0,0,0,.04);
}

/* Hero */
.nw-hero { margin-bottom: 14px; }
.nw-hero-top { display: grid; gap: 14px; grid-template-columns: 1fr; }
@media (min-width: 980px) { .nw-hero-top { grid-template-columns: 1.4fr .6fr; align-items: start; } }
.nw-hero-copy h2 { margin: 0 0 6px; font-size: 24px; letter-spacing: -0.2px; }
.nw-hero-bullets { display:flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
.nw-pill {
  font-size: 12px;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.12);
  background: rgba(0,0,0,.02);
}
.nw-hero-cta { display:flex; flex-direction: column; gap: 8px; align-items: flex-start; }

.nw-badge {
  display:inline-flex;
  align-items:center;
  gap: 6px;
  padding: 7px 10px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.12);
  background: rgba(0,0,0,.03);
  font-size: 13px;
}
.nw-badge.warn { border-color: color-mix(in srgb, var(--nw-danger) 35%, transparent); color: var(--nw-danger); background: color-mix(in srgb, var(--nw-danger) 7%, transparent); }

/* Buttons */
.nw-btn {
  appearance: none;
  border: 1px solid rgba(0,0,0,.16);
  background: rgba(0,0,0,.03);
  border-radius: 12px;
  padding: 10px 12px;
  cursor: pointer;
  font-size: 14px;
  line-height: 1;
  text-decoration: none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap: 8px;
}
.nw-btn:hover { background: rgba(0,0,0,.06); }
.nw-btn:disabled { opacity: .45; cursor: not-allowed; }
.nw-btn.primary { background: var(--nw-primary); border-color: var(--nw-primary); color: var(--nw-primaryText); }
.nw-btn.primary:hover { filter: brightness(0.92); }
.nw-btn.ghost { background: transparent; }
.nw-btn.danger { border-color: color-mix(in srgb, var(--nw-danger) 35%, transparent); color: var(--nw-danger); background: color-mix(in srgb, var(--nw-danger) 7%, transparent); }
.nw-btn.sm { padding: 8px 10px; border-radius: 11px; font-size: 13px; }

/* Shell layout */
.nw-shell { padding-top: 14px; }
.nw-topbar { display: grid; gap: 12px; grid-template-columns: 1fr; }
@media (min-width: 980px) { .nw-topbar { grid-template-columns: 1.2fr 2fr .8fr; align-items: end; } }
.nw-top-actions { display:flex; gap: 10px; flex-wrap: wrap; }

.nw-actions-row { display:flex; gap: 12px; align-items: center; flex-wrap: wrap; margin: 12px 0 10px; }
.nw-status { font-size: 13px; }
.nw-status.error { color: var(--nw-danger); }

/* Fields */
.nw-field label { display:block; font-size: 13px; margin-bottom: 6px; opacity: .85; }
.nw-field input, .nw-field select,
.nw-copy input, .nw-inline input, .nw-inline select, .nw-inline-tight input, .nw-inline-tight select {
  width: 100%;
  border-radius: 12px;
  border: 1px solid rgba(0,0,0,.16);
  padding: 10px 12px;
  background: #fff;
}

.nw-inline { display:flex; gap: 10px; flex-wrap: wrap; margin: 10px 0; }
.nw-inline > * { flex: 1; min-width: 180px; }
.nw-inline-tight { display:flex; gap: 10px; flex-wrap: wrap; }
.nw-inline-tight > * { flex: 0 0 auto; }

.nw-grid-2 { display:grid; gap: 12px; grid-template-columns: 1fr; }
@media (min-width: 760px) { .nw-grid-2 { grid-template-columns: 1fr 1fr; } }

/* Toggle */
.nw-toggle { display:inline-flex; gap: 8px; align-items:center; padding: 8px 10px; border-radius: 999px; border: 1px solid rgba(0,0,0,.12); background: rgba(0,0,0,.02); }
.nw-toggle input { transform: translateY(1px); }

/* Tabs */
.nw-tabs {
  margin-top: 12px;
  display:flex;
  gap: 8px;
  flex-wrap: wrap;
  border-bottom: 1px solid rgba(0,0,0,.08);
  padding-bottom: 10px;
}
.nw-tab {
  border: 1px solid rgba(0,0,0,.12);
  background: rgba(0,0,0,.02);
  border-radius: 999px;
  padding: 8px 12px;
  cursor: pointer;
  font-size: 13.5px;
}
.nw-tab.active { background: var(--nw-primary); border-color: var(--nw-primary); color: var(--nw-primaryText); }

.nw-panels { margin-top: 12px; }
.nw-panel { display:none; animation: nwFade .16s ease-out; }
.nw-panel.active { display:block; }

@keyframes nwFade { from { opacity: .4; transform: translateY(2px);} to { opacity: 1; transform: translateY(0);} }

.nw-panel-head { margin-bottom: 8px; }
.nw-panel-head h3 { margin: 0 0 4px; font-size: 18px; letter-spacing: -0.2px; }

/* Callouts */
.nw-callout {
  border: 1px solid rgba(0,0,0,.10);
  background: rgba(0,0,0,.02);
  border-radius: 16px;
  padding: 12px;
  margin: 10px 0;
  display:flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

/* Tables */
.nw-table-wrap { overflow:auto; border-radius: 14px; border: 1px solid rgba(0,0,0,.08); margin-top: 10px; }
.nw-table { width: 100%; border-collapse: collapse; min-width: 760px; background: #fff; }
.nw-table th, .nw-table td { padding: 10px 12px; border-bottom: 1px solid rgba(0,0,0,.06); vertical-align: top; }
.nw-table th { text-align:left; font-size: 12.5px; opacity: .8; background: rgba(0,0,0,.02); }
.nw-table input.cell, .nw-table select.cell {
  width: 100%;
  border-radius: 12px;
  border: 1px solid rgba(0,0,0,.14);
  padding: 9px 10px;
}

/* Task list */
.nw-list { padding: 0; margin: 0; display: grid; gap: 10px; }
.nw-task {
  border: 1px solid rgba(0,0,0,.10);
  border-radius: 14px;
  padding: 10px 10px;
  display:grid;
  gap: 10px;
  grid-template-columns: auto 1fr;
  background: #fff;
}
@media (min-width: 980px) {
  .nw-task { grid-template-columns: auto 1.5fr .6fr .6fr auto; align-items: center; }
}
.nw-drag {
  border: 1px solid rgba(0,0,0,.12);
  background: rgba(0,0,0,.02);
  border-radius: 12px;
  width: 36px;
  height: 36px;
  cursor: grab;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size: 16px;
  line-height: 1;
  user-select:none;
}
.nw-drag:active { cursor: grabbing; }
.nw-sort-placeholder { border: 2px dashed rgba(0,0,0,.18); border-radius: 14px; height: 56px; background: rgba(0,0,0,.01); }

.nw-task-left { display:flex; align-items:center; gap: 10px; }
.nw-task-cat, .nw-task-due { width: 100%; border-radius: 12px; border: 1px solid rgba(0,0,0,.14); padding: 9px 10px; }

/* Filters */
.nw-filters { display:flex; gap: 10px; flex-wrap: wrap; margin: 10px 0; }
.nw-filters > * { flex: 1; min-width: 200px; }

/* Timeline */
.nw-tl-month { border: 1px solid rgba(0,0,0,.10); border-radius: 16px; padding: 12px; margin-bottom: 12px; background: #fff; }
.nw-tl-title { font-weight: 700; margin-bottom: 8px; }
.nw-tl-list { margin: 0; padding-left: 16px; display: grid; gap: 6px; }
.nw-chip {
  display:inline-block;
  font-size: 11px;
  padding: 3px 8px;
  border: 1px solid rgba(0,0,0,.14);
  border-radius: 999px;
  margin-left: 8px;
  opacity: .85;
}

/* Dashboard */
.nw-kpis { display:grid; gap: 12px; grid-template-columns: 1fr; margin: 10px 0; }
@media (min-width: 980px) { .nw-kpis { grid-template-columns: 1fr 1fr 1fr; } }
.nw-kpi { border: 1px solid rgba(0,0,0,.10); border-radius: 16px; padding: 12px; background: #fff; }
.nw-kpi-label { font-size: 12.5px; opacity: .75; }
.nw-kpi-value { font-size: 22px; font-weight: 800; margin: 6px 0 2px; letter-spacing: -0.3px; }

.nw-split { display:grid; gap: 12px; grid-template-columns: 1fr; }
@media (min-width: 980px) { .nw-split { grid-template-columns: 1fr 1fr; } }
.nw-inner { padding: 14px; }
.nw-next { padding: 0; margin: 10px 0 0; display:grid; gap: 10px; }
.nw-next li { border: 1px solid rgba(0,0,0,.08); background: rgba(0,0,0,.02); border-radius: 14px; padding: 10px 12px; }
.nw-quick { display:flex; flex-direction: column; gap: 8px; margin-top: 10px; }
.nw-summary { margin-top: 10px; font-size: 13px; opacity: .85; }

/* Share */
.nw-share-grid { display:grid; gap: 12px; grid-template-columns: 1fr; }
@media (min-width: 980px) { .nw-share-grid { grid-template-columns: 1fr 1fr 1fr; } }
.nw-share-item { border: 1px solid rgba(0,0,0,.10); border-radius: 16px; padding: 12px; background: #fff; }
.nw-tag { font-size: 12px; opacity: .75; margin-bottom: 8px; }
.nw-copy { display:flex; gap: 8px; }
.nw-copy input { flex: 1; }
.nw-export-actions { display:flex; gap: 10px; flex-wrap: wrap; margin-top: 12px; }

/* Auth card */
.nw-auth { max-width: 760px; margin: 0 auto; }
.nw-auth-actions { display:flex; gap: 10px; flex-wrap: wrap; margin-top: 10px; }

.nw-hidden{display:none!important}

#nwLauncher{padding:40px;text-align:center}

#nwEnterPlanner{
  margin-top:20px;
  padding:14px 28px;
  font-size:16px;
}

/* Launcher spacing refinement */
#nwLauncher{
  padding:60px 40px;
}

#nwEnterPlanner{
  margin-top:30px;
}
@media (max-width: 768px){
  #nwLauncher{
    padding:40px 20px;
  }
}

/* Launcher confidence + spacing */
#nwLauncher{
  padding:70px 50px;
}
#nwLauncher .nw-btn.primary{
  margin-top:30px;
}
.nw-launcher-help{
  margin-top:30px;
  padding:20px;
  border-radius:14px;
  background:#fafafa;
  border:1px solid rgba(0,0,0,.08);
}
.nw-launcher-help ol{
  margin:12px 0 0 18px;
}
.nw-launcher-help li{
  margin-bottom:8px;
}
@media(max-width:768px){
  #nwLauncher{
    padding:40px 20px;
  }
}

/* Deep fix: cache-busted + high-specificity launcher spacing */
#nwLauncher input{ margin-bottom: 18px !important; }
#nwLauncher #nwEnterPlanner{ margin-top: 22px !important; }

/* Launcher input padding consistency */
#nwLauncher input{
  padding: 10px 14px !important;
  box-sizing: border-box;
}

/* Copy code button visibility */
#nwCodeBar .nw-btn,
#nwCodeBar button{
  background: #fff !important;
  border: 1px solid rgba(0,0,0,.25) !important;
  color: rgba(0,0,0,.9) !important;
  opacity: 1 !important;
}
#nwCodeBar .nw-btn:hover,
#nwCodeBar button:hover{
  background: rgba(0,0,0,.06) !important;
}

/* Open access: hide any auth UI remnants */
#nwAuth, .nw-auth, .nw-login, .nw-register { display:none !important; }

/* Open access: remove auth buttons */
#nwContinueGuest_removed{display:none!important}

/* Launcher: code create/load (client-side) */
#nwLauncherForm{ margin-top: 18px; }
#nwLauncherForm .nw-field{ margin-bottom: 16px; text-align:left; }
#nwLauncherForm label{ display:block; font-weight:600; margin-bottom:6px; }
#nwLauncherForm input{ width:100%; padding:10px 14px !important; box-sizing:border-box; }
#nwLauncherForm .nw-hint{ font-size: 13px; opacity:.75; margin-top:6px; }
#nwLauncherForm .nw-help{ margin-top:14px; font-size:13px; opacity:.85; }
#nwLauncherForm .nw-btn.primary{ width:100%; margin-top: 8px; }
.nw-divider{ display:flex; align-items:center; gap:10px; margin: 10px 0 14px; opacity:.7; }
.nw-divider:before, .nw-divider:after{ content:""; flex:1; height:1px; background: rgba(0,0,0,.12); }
.nw-divider span{ font-size:12px; text-transform:uppercase; letter-spacing:.08em; }

/* Admin helper */
.wrap .description{ max-width:640px; }
