*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
::selection{background:rgba(64,100,95,.18);color:inherit}
::-moz-selection{background:rgba(64,100,95,.18);color:inherit}
:root{
  --ivory:#F8F8F6;--white:var(--ivory);--pearl:var(--ivory);--greige:#EEF2F1;
  --sage:#40645F;--sage-lt:#7A9490;--sage-dk:#2D6A4F;--cream:#F5F0E8;
  --bloodstone:#922630;--bloodstone-dk:#7a1f28;--onyx:#2D1015;--onyx-dk:#221010;
  --forest:var(--sage-dk);--gold:#B8935A;
  --beta-h:0px;
  --border:rgba(45,16,21,.08);--border-d:rgba(45,16,21,.13);
  --sh:0 2px 12px rgba(45,16,21,.06);--shl:0 16px 48px rgba(45,16,21,.12);--sh-hover:0 8px 28px rgba(45,16,21,.10);
  --btn-pad-sm:10px 20px;--btn-pad-md:12px 28px;--btn-pad-lg:16px 36px;
  --overlay-bg:rgba(45,16,21,.7);

  /* Type scale — minimum 0.63rem (≈10px) decorative, 0.69rem labels, 0.82rem body */
  --text-micro: 0.62rem;  /* timestamps, separators */
  --text-xs:    0.69rem;  /* minimum label size */
  --text-sm:    0.75rem;  /* small labels */
  --text-ui:    0.76rem;  /* UI labels, nav tabs, button text */
  --text-base:  0.81rem;  /* field hints, secondary body */
  --text-body:  0.82rem;  /* card body, descriptions */
  --text-md:    0.88rem;  /* medium body, hero sub */
  --h3:         1.05rem;  /* small headings */
  --h2-sm:      clamp(1.5rem, 2.8vw, 2.4rem);
  --h2:         clamp(1.8rem, 3.6vw, 3rem);
  --h2-display: clamp(2.2rem, 5vw, 4rem);
}

/* ── ACCESSIBILITY ── */
*:focus-visible {
  outline: 2px solid var(--bloodstone);
  outline-offset: 2px;
}
html{scroll-behavior:smooth;overflow-x:hidden}
body{font-family:'Montserrat',sans-serif;font-weight:300;background:var(--cream);color:var(--onyx);min-height:100vh;padding-top:calc(var(--hdr-h,120px) + var(--beta-h,0px));padding-bottom:48px}


/* ── PORTAL HEADER ── */
.portal-hdr{
  background:rgba(255,255,255,.96);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  position:fixed;top:var(--beta-h,0px);left:0;right:0;z-index:200;
  border-bottom:1px solid rgba(45,16,21,.08);
}
.hdr-top{
  display:flex;justify-content:space-between;align-items:center;
  padding:18px 64px;gap:16px;position:relative;
}
.hdr-support{
  position:absolute;left:50%;transform:translateX(-50%);
  font-family:'Montserrat',sans-serif;font-size:.72rem;letter-spacing:.06em;
  color:var(--sage);text-decoration:none;white-space:nowrap;transition:color .2s;
  z-index:2;cursor:pointer;
}
.hdr-support strong{color:var(--bloodstone);font-weight:600;font-style:normal}
.hdr-support:hover{color:var(--bloodstone)}
@media (max-width:900px){.hdr-support{display:none}}
@media (max-width:600px){
  .hdr-top{padding:14px 20px}
  .hdr-client-chip .hdr-client-label,.hdr-client-chip .hdr-client-name{display:none}
  .hdr-client-chip{padding:8px 12px}
  .hdr-ref{display:none}
}
.hdr-logo{
  font-family:'Libre Baskerville',serif;font-size:.85rem;
  letter-spacing:.22em;text-transform:uppercase;color:var(--onyx);
  text-decoration:none;white-space:nowrap;
}
.hdr-meta{
  display:flex;align-items:center;gap:16px;flex-shrink:0;
  position:relative;z-index:3;
}
.hdr-account-switcher{position:relative}
.hdr-client-chip{
  display:flex;align-items:center;gap:12px;
  padding:8px 18px;border:1px solid rgba(45,16,21,.08);background:#fff;
  cursor:pointer;transition:border-color .2s;user-select:none;
}
.hdr-client-chip:hover{border-color:rgba(45,16,21,.22)}
.hdr-account-caret{font-size:.78rem;opacity:.45;margin-left:2px}
.hdr-client-label{font-family:'Montserrat',sans-serif;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--sage);font-weight:600}
.hdr-client-name{font-family:'Libre Baskerville',serif;font-size:.9rem;color:var(--onyx)}
.hdr-ref{font-family:'Montserrat',sans-serif;font-size:var(--text-sm);letter-spacing:.16em;text-transform:uppercase;color:var(--sage)}
.hdr-account-dropdown{
  display:none;position:absolute;top:calc(100% + 4px);left:0;
  background:#fff;border:1px solid rgba(45,16,21,.08);
  min-width:180px;z-index:900;box-shadow:0 8px 28px rgba(45,16,21,.1);
}
.hdr-account-switcher.open .hdr-account-dropdown{display:block}
.hdr-account-opt{
  padding:11px 18px;font-family:'Montserrat',sans-serif;font-size:var(--text-sm);
  font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--sage);
  cursor:pointer;border-bottom:1px solid rgba(45,16,21,.06);transition:all .2s;
}
.hdr-account-opt:last-child{border-bottom:none}
.hdr-account-opt:hover{background:var(--greige);color:var(--bloodstone)}

/* ── EVENT SWITCHER ── */
.hdr-event-switcher{position:relative}
.hdr-event-chip{
  display:flex;align-items:center;gap:10px;
  padding:8px 18px;border:1px solid rgba(45,16,21,.08);background:#fff;
  cursor:pointer;transition:border-color .2s;user-select:none;
}
.hdr-event-chip:hover{border-color:rgba(45,16,21,.22)}
.hdr-event-label{font-family:'Montserrat',sans-serif;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--sage);font-weight:600}
.hdr-event-name{font-family:'Libre Baskerville',serif;font-size:.9rem;color:var(--onyx);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hdr-event-dropdown{
  display:none;position:absolute;top:calc(100% + 4px);left:0;
  background:#fff;border:1px solid rgba(45,16,21,.08);
  min-width:220px;z-index:900;box-shadow:0 8px 28px rgba(45,16,21,.1);
}
.hdr-event-switcher.open .hdr-event-dropdown{display:block}
.hdr-event-opt{
  padding:12px 18px;font-family:'Montserrat',sans-serif;font-size:var(--text-sm);
  font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--sage);
  cursor:pointer;border-bottom:1px solid rgba(45,16,21,.06);transition:all .2s;
}
.hdr-event-opt:last-child{border-bottom:none}
.hdr-event-opt:hover{background:var(--greige);color:var(--bloodstone)}
.hdr-event-opt.active{color:var(--bloodstone);background:var(--greige)}
.hdr-event-opt-sub{font-family:'Montserrat',sans-serif;font-size:.6rem;letter-spacing:.1em;color:var(--ash);font-weight:400;text-transform:none;margin-top:2px}

/* ── INBOX BELL ── */
.hdr-bell{
  position:relative;width:36px;height:36px;border-radius:50%;
  background:#fff;border:1px solid rgba(45,16,21,.1);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:border-color .2s,background .2s;flex-shrink:0;
}
.hdr-bell:hover{border-color:rgba(45,16,21,.28);background:var(--greige)}
.hdr-bell svg{width:15px;height:15px;stroke:var(--sage);stroke-width:1.6;fill:none}
.hdr-bell-badge{
  position:absolute;top:-4px;right:-4px;
  min-width:16px;height:16px;border-radius:8px;
  background:var(--bloodstone);color:#fff;
  font-family:'Montserrat',sans-serif;font-size:8px;font-weight:700;
  display:none;align-items:center;justify-content:center;padding:0 4px;
  border:1.5px solid var(--white);
}
.hdr-bell-badge.visible{display:flex}

/* ── INBOX DRAWER ── */
.inbox-overlay{
  position:fixed;top:calc(var(--hdr-h,120px) + var(--beta-h,0px));left:0;right:0;bottom:0;z-index:800;
  background:rgba(45,16,21,.18);opacity:0;pointer-events:none;transition:opacity .25s;
}
.inbox-overlay.open{opacity:1;pointer-events:all}
.inbox-drawer{
  position:fixed;top:calc(var(--hdr-h,120px) + var(--beta-h,0px));right:0;bottom:0;width:340px;max-width:92vw;
  background:var(--white);z-index:801;
  transform:translateX(100%);transition:transform .3s cubic-bezier(.16,1,.3,1);
  display:flex;flex-direction:column;
  border-left:1px solid rgba(45,16,21,.08);box-shadow:-8px 0 32px rgba(45,16,21,.08);
}
.inbox-drawer.open{transform:translateX(0)}
@media(max-width:400px){.inbox-drawer{width:92vw}}
.inbox-hdr{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 20px;border-bottom:1px solid rgba(45,16,21,.08);flex-shrink:0;
}
.inbox-hdr-title{
  font-family:'Montserrat',sans-serif;font-size:.72rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:var(--onyx);
}
.inbox-hdr-actions{display:flex;align-items:center;gap:12px}
.inbox-mark-all{
  font-family:'Montserrat',sans-serif;font-size:.62rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--sage);cursor:pointer;text-decoration:underline;
  text-underline-offset:3px;
}
.inbox-mark-all:hover{color:var(--bloodstone)}
.inbox-close{
  width:28px;height:28px;border-radius:50%;background:transparent;
  border:1px solid rgba(45,16,21,.1);cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  font-size:1rem;color:var(--sage);transition:all .2s;
}
.inbox-close:hover{background:var(--greige);border-color:rgba(45,16,21,.25)}
.inbox-list{flex:1;overflow-y:auto;padding:8px 0}
.inbox-empty{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  height:100%;padding:40px 24px;text-align:center;
}
.inbox-empty-icon{font-size:2rem;opacity:.2;margin-bottom:12px}
.inbox-empty-text{
  font-family:'Montserrat',sans-serif;font-size:.72rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--sage);
}
.inbox-notif{
  padding:14px 20px;border-bottom:1px solid rgba(45,16,21,.06);
  cursor:pointer;transition:background .15s;border-left:3px solid transparent;
}
.inbox-notif:hover{background:var(--greige)}
.inbox-notif.unread{border-left-color:var(--bloodstone)}
.inbox-notif-type{
  font-family:'Montserrat',sans-serif;font-size:.58rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--sage);margin-bottom:4px;
}
.inbox-notif-title{font-size:.82rem;color:var(--onyx);line-height:1.4;margin-bottom:3px}
.inbox-notif-body{font-size:.75rem;color:var(--sage);line-height:1.5;margin-bottom:4px}
.inbox-notif-meta{
  display:flex;align-items:center;justify-content:space-between;
}
.inbox-notif-time{
  font-family:'Montserrat',sans-serif;font-size:.58rem;letter-spacing:.08em;
  color:rgba(64,100,95,.55);
}
.inbox-notif-action{
  font-family:'Montserrat',sans-serif;font-size:.6rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--bloodstone);text-decoration:underline;
  text-underline-offset:2px;
}

/* ── TABS ── */
.portal-tabs{
  display:flex;border-top:1px solid var(--border);background:var(--white);
  overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;
  width:100%;min-width:0;
}
.portal-tabs::-webkit-scrollbar{display:none}
.ptab{
  flex:1 1 0;min-width:0;padding:16px 24px;
  font-size:var(--text-ui);letter-spacing:.16em;text-transform:uppercase;
  color:var(--sage);background:transparent;border:none;
  border-right:1px solid var(--border);cursor:pointer;
  transition:all .25s;font-family:'Montserrat',sans-serif;font-weight:500;
  display:flex;align-items:center;justify-content:flex-start;gap:10px;position:relative;
  white-space:nowrap;overflow:hidden;
}
@media (max-width:900px){
  .ptab{padding:12px 14px;font-size:var(--text-ui);letter-spacing:.14em;gap:8px}
  .ptab-num{display:none}
}
.ptab::after{
  content:'';position:absolute;bottom:0;left:0;right:0;height:2px;
  background:var(--bloodstone);transform:scaleX(0);transition:transform .3s;
}
.ptab:hover{color:var(--onyx);background:rgba(64,100,95,.04)}
.ptab.active{color:var(--onyx)}
.ptab.active::after{transform:scaleX(1)}
.ptab-num{font-size:.78rem;opacity:.8}
.ptab-dot{
  width:6px;height:6px;border-radius:50%;
  background:rgba(45,16,21,.12);transition:background .3s;flex-shrink:0;
}
.ptab.active .ptab-dot{background:var(--bloodstone)}
.ptab.done .ptab-dot{background:var(--sage-dk)}
.ptab.ptab-locked{cursor:not-allowed;pointer-events:none;opacity:.45;}

/* ── TAB PANELS ── */
.tab-panel{display:none}
.tab-panel.active{display:block}
#tab-concept.active{display:flex;flex-direction:column;min-height:calc(100vh - 56px);height:calc(100vh - 56px)}
#tab-concept .concept-pending-placeholder{flex:1;min-height:0}

/* ── BRIEFING HERO ── */
.brief-hero{
  background:var(--white);padding:56px 64px 40px;text-align:left;
  border-bottom:1px solid var(--border);
}
.eyebrow{
  font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--sage);margin-bottom:18px;display:block;font-weight:700;
  font-family:'Montserrat',sans-serif;
}
.hero-title{
  font-family:'Libre Baskerville',serif;font-size:clamp(2.2rem,4.5vw,3.2rem);
  font-weight:400;color:var(--onyx-dk);line-height:1.05;margin-bottom:16px;
}
.hero-title em{font-style:italic;color:var(--bloodstone);display:block;}
.em-approved{color:#2E7D52!important;}
.hero-rule{display:none}
.rl{width:40px;height:1px;background:var(--sage);opacity:.25}
.rd{width:5px;height:5px;border:1px solid var(--bloodstone);transform:rotate(45deg);opacity:.5}
.hero-sub{
  font-family:'Montserrat',sans-serif;font-style:normal;font-weight:300;
  font-size:var(--text-md);color:var(--onyx);max-width:540px;
  margin:0;line-height:1.8;
}

/* ── PACKAGE STRIP ── */
.pkg-strip{
  background:var(--white);border-bottom:1px solid var(--border);
  padding:24px 64px;display:flex;column-gap:40px;row-gap:16px;flex-wrap:wrap;align-items:flex-start;
}
.pkg-item{display:flex;flex-direction:column;gap:6px}
.pkg-lbl{font-family:'Montserrat',sans-serif;font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--sage);font-weight:700}
.pkg-val{font-family:'Libre Baskerville',serif;font-size:var(--h3);color:var(--onyx-dk);font-weight:400;letter-spacing:0}

/* ── FORM WRAPPER ── */
.form-wrap{max-width:760px;margin:0 auto;padding:72px 24px 80px}

/* ── SECTION ── */
.sec{margin-bottom:80px;opacity:0;transform:translateY(24px);transition:opacity .7s,transform .7s}
.sec.vis{opacity:1;transform:translateY(0)}
.sec-hdr{margin-bottom:32px;padding:20px 0 0}
.sec-num{font-family:'Montserrat',sans-serif;font-size:var(--text-xs);letter-spacing:.24em;text-transform:uppercase;color:var(--sage);display:block;margin-bottom:8px;font-weight:600}

/* ── DESIGN PICKER ── */
.dp-rec-label{font-family:'Montserrat',sans-serif;font-size:var(--text-xs);letter-spacing:.26em;text-transform:uppercase;color:var(--bloodstone);display:flex;align-items:center;gap:10px;margin-bottom:10px;font-weight:600}
.dp-rec-label::after{content:'';flex:1;height:1px;background:rgba(146,38,48,.15)}
.dp-rec-note{font-size:var(--text-ui);color:var(--onyx);margin-bottom:16px;line-height:1.65;font-style:italic}
.dp-all-label{font-family:'Montserrat',sans-serif;font-size:var(--text-xs);letter-spacing:.26em;text-transform:uppercase;color:var(--onyx);display:flex;align-items:center;gap:10px;margin-bottom:14px;margin-top:8px;font-weight:600}
.dp-all-label::after{content:'';flex:1;height:1px;background:var(--border)}
.dp-cat-tabs{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:16px}
.dp-cat-tab{font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;padding:5px 13px;border:1px solid var(--border);background:var(--white);color:var(--onyx);cursor:pointer;font-family:'Montserrat',sans-serif;font-weight:500;transition:all .18s}
.dp-cat-tab.active{border-color:var(--onyx);color:var(--onyx);background:rgba(45,16,21,.04)}
.dp-cat-tab:hover:not(.active){border-color:var(--sage);color:var(--onyx)}
.dp-pill-grid{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:20px}
.dp-pill{display:inline-flex;align-items:center;gap:7px;padding:8px 13px;border:1px solid var(--border);background:var(--white);cursor:pointer;transition:all .18s;font-size:.79rem;color:var(--onyx);font-family:'Montserrat',sans-serif;font-weight:400;user-select:none}
.dp-pill:hover{border-color:var(--sage)}
.dp-pill.dp-rec{border-color:rgba(146,38,48,.22)}
.dp-pill.dp-on{border-color:var(--sage);background:rgba(64,100,95,.06)}
.dp-pill.dp-rec.dp-on{border-color:var(--bloodstone);background:rgba(146,38,48,.05);color:var(--onyx)}
.dp-dot{width:8px;height:8px;border:1px solid rgba(64,100,95,.5);flex-shrink:0;transition:all .18s}
.dp-pill.dp-on .dp-dot{background:var(--sage);border-color:var(--sage)}
.dp-pill.dp-rec.dp-on .dp-dot{background:var(--bloodstone);border-color:var(--bloodstone)}
.dp-pill.dp-disabled{opacity:.35;cursor:not-allowed;pointer-events:none}
.dp-pill.dp-bundled{border-style:dashed;border-color:var(--sage);opacity:.85}
.dp-pill.dp-bundled.dp-on{background:rgba(64,100,95,.04)}
.dp-pill.dp-bundled-locked{cursor:default;pointer-events:none;opacity:.7}
.dp-bundled-tag{font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--sage);font-weight:600;padding:1px 5px;border:1px solid rgba(64,100,95,.3);margin-left:2px}
.dp-bar{display:flex;align-items:center;justify-content:space-between;padding:14px 0 0;border-top:1px solid var(--border);margin-top:4px}
.dp-bar-txt{font-size:.78rem;color:var(--onyx);font-family:'Montserrat',sans-serif;font-weight:500}
.dp-bar-txt strong{color:var(--bloodstone);font-family:'Libre Baskerville',serif;font-size:1.1rem;font-weight:700}
.dp-bar-clear{font-size:.71rem;letter-spacing:.1em;color:var(--sage);background:none;border:none;cursor:pointer;text-transform:uppercase;font-family:'Montserrat',sans-serif;font-weight:500}

/* ── PIECE DETAILS (section 08b) ── */
.pd-piece-card{border:1px solid var(--border);margin-bottom:16px;background:var(--white)}
.pd-piece-hdr{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border);background:rgba(64,100,95,.03)}
.pd-piece-name{font-family:'Libre Baskerville',serif;font-size:.9rem;font-weight:400;color:var(--onyx);margin-bottom:4px}
.pd-piece-spec{font-family:'Montserrat',sans-serif;font-size:.65rem;letter-spacing:.06em;color:var(--sage-dk);opacity:.8}
.pd-unit-toggle{display:flex;gap:0;flex-shrink:0;border:1px solid var(--border);overflow:hidden}
.pd-unit-btn{font-family:'Montserrat',sans-serif;font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;font-weight:600;padding:5px 10px;background:transparent;border:none;cursor:pointer;color:var(--onyx);opacity:.5;transition:all .15s}
.pd-unit-btn.pd-unit-active{background:var(--sage);color:var(--white);opacity:1}
.pd-piece-body{padding:16px}
.pd-field-lbl{display:block;font-family:'Montserrat',sans-serif;font-size:.72rem;font-weight:600;letter-spacing:.18em;color:var(--onyx);margin-bottom:6px}
.pd-field-hint{font-family:'Montserrat',sans-serif;font-size:var(--text-ui);font-style:italic;color:var(--onyx);opacity:.55;margin-bottom:10px;line-height:1.55}
.pd-required{color:var(--bloodstone)}
.pd-input{width:100%;font-family:'Montserrat',sans-serif;font-size:.78rem;padding:8px 10px;border:1px solid var(--border);background:var(--white);color:var(--onyx);outline:none;transition:border-color .15s;box-sizing:border-box}
.pd-input:focus{border-color:var(--sage)}
.pd-textarea{width:100%;font-family:'Montserrat',sans-serif;font-size:.78rem;padding:8px 10px;border:1px solid var(--border);background:var(--white);color:var(--onyx);outline:none;resize:vertical;min-height:72px;transition:border-color .15s;box-sizing:border-box;line-height:1.5}
.pd-textarea:focus{border-color:var(--sage)}
.pd-select{font-family:'Montserrat',sans-serif;font-size:.78rem;padding:8px 10px;border:1px solid var(--border);background:var(--white);color:var(--onyx);outline:none;cursor:pointer;min-width:140px}
.pd-rows-container{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}
.pd-row{display:flex;align-items:flex-start;gap:8px}
.pd-row .pd-input{flex:1}
.pd-row .pd-select{flex-shrink:0}
.pd-remove-btn{flex-shrink:0;width:28px;height:28px;background:transparent;border:1px solid rgba(146,38,48,.25);color:var(--bloodstone);cursor:pointer;font-size:.7rem;display:flex;align-items:center;justify-content:center;transition:all .15s;margin-top:2px;font-family:'Montserrat',sans-serif}
.pd-remove-btn:hover{background:rgba(146,38,48,.06);border-color:var(--bloodstone)}
.pd-add-btn{font-family:'Montserrat',sans-serif;font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--sage-dk);background:transparent;border:1px dashed rgba(64,100,95,.4);padding:7px 14px;cursor:pointer;transition:all .15s;margin-top:2px}
.pd-add-btn:hover{background:rgba(64,100,95,.05);border-color:var(--sage)}
.pd-ref-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:rgba(64,100,95,.05);border:1px dashed rgba(64,100,95,.35)}
.pd-ref-banner span{font-family:'Montserrat',sans-serif;font-size:var(--text-body);color:var(--onyx)}
.pd-ref-link{font-family:'Montserrat',sans-serif;font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--sage-dk);background:transparent;border:none;cursor:pointer;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.pd-upload-zone{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px dashed var(--border);background:rgba(45,16,21,.02);margin-top:4px}
.pd-upload-btn{font-family:'Montserrat',sans-serif;font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--white);background:var(--sage);padding:6px 12px;cursor:pointer;white-space:nowrap}
.pd-upload-input{display:none}
.pd-upload-name{font-family:'Montserrat',sans-serif;font-size:.72rem;color:var(--onyx);opacity:.6;font-style:italic}
.pd-seating-table{border:1px solid var(--border);padding:12px;margin-bottom:8px;background:rgba(64,100,95,.02)}
.dp-bar-clear:hover{color:var(--bloodstone)}
.sec-title{font-family:'Libre Baskerville',serif;font-size:clamp(1.6rem,3.2vw,2.4rem);font-weight:400;color:var(--onyx-dk);line-height:1.2;margin-bottom:8px}
.sec-title em{font-style:italic;color:var(--bloodstone-dk)}
.sec-desc{font-family:'Montserrat',sans-serif;font-size:var(--text-md);color:var(--onyx);line-height:1.8;max-width:620px;font-weight:300}

/* ── FIELDS ── */
.fld{margin-bottom:20px}
.fld-lbl{font-family:'Montserrat',sans-serif;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--onyx);display:block;margin-bottom:8px;font-weight:600}
.fld-hint{font-family:'Montserrat',sans-serif;font-size:var(--text-ui);color:var(--onyx);font-style:italic;margin-bottom:6px;display:block;line-height:1.55}
.fld-input,.fld-select,.fld-textarea{
  width:100%;padding:12px 14px;border:1px solid var(--border);
  background:var(--white);font-family:'Montserrat',sans-serif;font-size:.8rem;
  color:var(--onyx);outline:none;transition:border-color .25s,box-shadow .25s;font-weight:300;appearance:none;
}
.fld-input:hover,.fld-select:hover,.fld-textarea:hover{border-color:rgba(45,16,21,.22)}
.fld-input:focus,.fld-select:focus,.fld-textarea:focus{border-color:var(--bloodstone);box-shadow:0 0 0 3px rgba(146,38,48,.06)}
.fld-textarea{resize:vertical;min-height:96px}
.fld-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.fld-err{font-size:.72rem;color:#B84040;margin-top:4px;display:none}
.fld-input.err{border-color:#B84040}
.fld-date-warn{display:none;margin-top:7px;padding:9px 12px;background:rgba(184,147,90,.1);border:1px solid rgba(184,147,90,.35);font-family:'Montserrat',sans-serif;font-size:.74rem;color:#7a5c1e;line-height:1.55}

/* ── PALETTE CARDS ── */
.pal-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}
.pal-card{border:1px solid var(--border);cursor:pointer;transition:all .28s;background:var(--white);position:relative}
.pal-card:hover{border-color:var(--sage);transform:translateY(-2px);box-shadow:var(--shl)}
.pal-card.selected{border-color:var(--bloodstone);border-width:2px}
.pal-card.selected::after{content:"\2756";position:absolute;top:11px;right:13px;font-size:var(--text-ui);color:var(--bloodstone)}
.pal-strips{height:64px;display:flex}
.pal-strip{flex:1;transition:flex .35s}
.pal-card:hover .pal-strip{flex:1.25}
.pal-body{padding:14px 16px}
.pal-name{font-family:'Libre Baskerville',serif;font-size:var(--text-md);color:var(--onyx-dk);margin-bottom:3px}
.pal-mood{font-family:'Montserrat',sans-serif;font-size:var(--text-xs);color:var(--sage);letter-spacing:.06em}

/* ── FEELING / MOODBOARD ── */
.feeling-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.feeling-card{
  border:1px solid var(--border);cursor:pointer;transition:all .28s;
  background:var(--white);position:relative;overflow:hidden;
}
.feeling-card:hover{border-color:var(--sage);transform:translateY(-2px);box-shadow:var(--shl)}
.feeling-card.selected{border-color:var(--bloodstone);border-width:2px}
.feeling-card.selected::after{content:"\2756";position:absolute;top:11px;right:13px;font-size:var(--text-ui);color:var(--bloodstone)}
.feeling-bar{height:8px;width:100%}
.feeling-body{padding:18px 20px}
.feeling-name{font-family:'Libre Baskerville',serif;font-size:.95rem;color:var(--onyx-dk);margin-bottom:5px}
.feeling-desc{font-family:'Montserrat',sans-serif;font-size:.8rem;color:var(--onyx);line-height:1.75;font-weight:300}
.feeling-quote{
  font-family:'Libre Baskerville',serif;font-size:var(--text-ui);color:var(--sage);font-style:italic;
  margin-top:10px;padding-top:10px;border-top:1px solid var(--border);display:block;line-height:1.6;
}

/* ── LANG CHIPS ── */
.lang-grid{display:flex;flex-wrap:wrap;gap:8px}
.lang-opt{
  padding:8px 16px;border:1px solid var(--border);font-size:var(--text-ui);
  font-family:'Montserrat',sans-serif;font-weight:500;
  letter-spacing:.06em;cursor:pointer;transition:all .22s;background:var(--white);user-select:none;color:var(--onyx);
}
.lang-opt:hover{border-color:var(--sage)}
.lang-opt.selected{border-color:var(--bloodstone);background:rgba(146,38,48,.05);color:var(--bloodstone)}

/* ── LANG NATIVE SPEAKER NOTICE ── */
.lang-native-notice{
  display:none;margin-top:14px;padding:14px 18px;
  border-left:3px solid var(--bloodstone);background:rgba(146,38,48,.04);
  border-radius:0;
}
.lang-native-notice p{
  font-size:.8rem;color:var(--onyx);line-height:1.65;margin:0;
}
.lang-native-notice strong{color:var(--bloodstone);font-weight:500}

/* ── SUBMIT ── */
.submit-block{
  background:var(--onyx-dk);padding:64px 48px;text-align:center;margin-top:24px;
  display:flex;flex-direction:column;align-items:center;
}
.submit-ttl{
  font-family:'Libre Baskerville',serif;font-size:clamp(1.6rem,3.5vw,2.8rem);
  font-weight:400;color:var(--ivory);margin-bottom:12px;
}
.submit-ttl em{font-style:italic;color:var(--bloodstone)}
.submit-sub{font-family:'Montserrat',sans-serif;font-size:.72rem;color:var(--ivory);line-height:1.85;margin-bottom:32px;max-width:560px;font-weight:300;text-align:center}
.submit-btn{
  font-family:'Montserrat',sans-serif;font-size:var(--text-sm);letter-spacing:.22em;text-transform:uppercase;
  color:var(--ivory);background:var(--bloodstone);border:none;padding:16px 52px;
  cursor:pointer;transition:background .3s;font-weight:600;
}
.submit-btn:hover{background:var(--bloodstone-dk)}
.submit-btn:disabled{opacity:.55;cursor:not-allowed}
.btn-spinner{display:inline-block;width:12px;height:12px;border:1.5px solid rgba(255,255,255,.25);border-top-color:var(--ivory);border-radius:50%;animation:btnspin .7s linear infinite;vertical-align:-2px;margin-right:8px}
@keyframes btnspin{to{transform:rotate(360deg)}}
.submit-note{font-family:'Montserrat',sans-serif;font-size:.71rem;color:var(--sage);margin-top:14px;letter-spacing:.08em}

/* ── SUCCESS ── */
.success-screen{
  display:none;position:fixed;inset:0;background:var(--ivory);z-index:1000;
  flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:48px;animation:fadeUp .6s ease;overflow-y:auto;
}
.success-screen.on{display:flex}
@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.suc-badge{display:inline-flex;align-items:center;gap:8px;background:var(--white);border:1px solid var(--border);
  border-radius:0;padding:8px 20px;font-family:'Montserrat',sans-serif;font-size:var(--text-sm);
  letter-spacing:.18em;text-transform:uppercase;color:var(--sage-dk);margin-bottom:32px;font-weight:600}
.suc-badge-dot{width:8px;height:8px;border-radius:50%;background:var(--sage-dk)}
.suc-icon{font-size:2rem;margin-bottom:20px;color:rgba(45,16,21,.25)}
.suc-title{font-family:'Libre Baskerville',serif;font-size:clamp(2.2rem,5.5vw,4.2rem);color:var(--onyx-dk);font-weight:500;margin-bottom:8px}
.suc-title em{font-style:italic;color:var(--bloodstone)}
.suc-sub{font-family:'Montserrat',sans-serif;font-size:var(--text-ui);color:rgba(45,16,21,.58);line-height:1.9;max-width:480px;margin:0 auto 36px;font-weight:300}
.suc-card{
  background:var(--white);border:1px solid var(--border);
  padding:28px 36px;max-width:500px;width:100%;margin:0 auto 28px;text-align:left;box-shadow:var(--sh);
}
.suc-card-row{display:flex;justify-content:space-between;align-items:baseline;
  padding:12px 0;border-bottom:1px solid var(--border)}
.suc-card-row:last-child{border-bottom:none}
.suc-card-lbl{font-family:'Montserrat',sans-serif;font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--sage);font-weight:600}
.suc-card-val{font-family:'Libre Baskerville',serif;font-size:var(--text-body);color:var(--onyx-dk);text-align:right;max-width:60%}
.suc-primary-btn{
  display:inline-block;background:var(--bloodstone);color:var(--ivory);
  font-family:'Montserrat',sans-serif;font-size:var(--text-sm);letter-spacing:.22em;text-transform:uppercase;
  padding:16px 40px;border:none;cursor:pointer;transition:background .3s;margin-bottom:16px;font-weight:600;
}
.suc-primary-btn:hover{background:var(--bloodstone-dk)}
.suc-resubmit-btn{
  display:block;font-family:'Montserrat',sans-serif;font-size:var(--text-sm);letter-spacing:.14em;
  text-transform:uppercase;color:var(--sage);background:none;border:none;cursor:pointer;
  text-decoration:underline;text-underline-offset:3px;margin:0 auto;padding:4px 0;
  transition:color .2s;font-weight:500;
}
.suc-resubmit-btn:hover{color:var(--onyx)}
.suc-sig{font-family:'Montserrat',sans-serif;font-size:.71rem;color:rgba(45,16,21,.2);margin-top:24px;letter-spacing:.12em}
.suc-suite-btn{
  margin-top:24px;font-family:'Montserrat',sans-serif;font-size:.71rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--bloodstone);background:transparent;
  border:1px solid rgba(146,38,48,.3);padding:12px 32px;cursor:pointer;
  transition:all .3s;font-weight:600;
}
.suc-suite-btn:hover{border-color:var(--bloodstone);background:rgba(146,38,48,.05)}

/* ── DESIGN SUITE TAB ── */
.suite-hero{
  background:var(--white);padding:36px 48px;
  display:flex;justify-content:space-between;align-items:center;
  border-bottom:1px solid var(--border);flex-wrap:wrap;gap:20px;
  box-shadow:var(--sh);
}
.suite-title-block h2{
  font-family:'Libre Baskerville',serif;font-size:1.9rem;font-weight:400;
  color:var(--onyx-dk);margin-bottom:6px;
}
.suite-title-block p{font-family:'Montserrat',sans-serif;font-size:var(--text-ui);color:var(--sage);letter-spacing:.14em;font-weight:500;text-transform:uppercase}
.status-row{display:flex;align-items:center;gap:8px}
.status-step{
  display:flex;align-items:center;gap:7px;padding:8px 14px;
  border:1px solid var(--border);background:var(--ivory);
}
.status-dot{width:7px;height:7px;border-radius:50%;background:rgba(45,16,21,.12);flex-shrink:0}
.status-step.done .status-dot{background:var(--sage-dk)}
.status-step.active .status-dot{background:var(--bloodstone);animation:pulse 1.8s infinite}
@keyframes pulse{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(146,38,48,.3)}50%{opacity:.8;box-shadow:0 0 0 4px rgba(146,38,48,0)}}
.status-step span{font-family:'Montserrat',sans-serif;font-size:var(--text-sm);letter-spacing:.14em;text-transform:uppercase;color:var(--sage);font-weight:500}
.status-step.active span{color:var(--onyx);font-weight:600}
.status-step.done span{color:var(--sage-dk)}
.status-arrow{font-size:var(--text-sm);color:var(--border)}

.suite-note{
  background:rgba(146,38,48,.05);border-bottom:2px solid var(--bloodstone);padding:0;
}
.suite-note-inner{
  max-width:760px;margin:0 auto;padding:16px 24px;
  display:flex;align-items:center;justify-content:center;gap:14px;
}
.suite-note-icon{font-size:1.4rem;flex-shrink:0;}
.suite-note p{font-family:'Montserrat',sans-serif;font-size:var(--text-body);color:var(--onyx);line-height:1.6;margin:0;text-align:center;font-weight:300}
.suite-note strong{font-weight:600;color:var(--bloodstone);}

.suite-sample-label{
  margin:0 64px;padding:14px 0 12px;
  border-bottom:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;
}
.ssl-txt{font-family:'Montserrat',sans-serif;font-size:var(--text-ui);letter-spacing:.18em;text-transform:uppercase;color:var(--onyx);font-weight:600}
.ssl-badge{
  font-family:'Montserrat',sans-serif;font-size:var(--text-sm);letter-spacing:.14em;text-transform:uppercase;
  padding:6px 16px;border:1px solid rgba(201,168,76,.45);color:rgba(170,138,40,.9);font-weight:700;
}

.suite-iframe-wrap{
  margin:0 48px 48px;
  border:1px solid var(--border);
  position:relative;overflow:hidden;box-shadow:var(--sh);
}
.suite-iframe-wrap iframe{
  width:100%;height:85vh;border:none;display:block;
}
.iframe-expand-btn{
  position:absolute;bottom:16px;right:16px;
  background:var(--white);border:1px solid var(--border);
  padding:9px 18px;font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase;
  color:var(--onyx);cursor:pointer;transition:all .25s;font-family:'Montserrat',sans-serif;font-weight:600;
  box-shadow:var(--sh);
}
.iframe-expand-btn:hover{border-color:var(--bloodstone);color:var(--bloodstone)}

/* ── PIECE TABS (for per-piece design loading) ── */
.piece-tabs-container{
  margin:0 64px 20px;display:flex;gap:8px;flex-wrap:wrap;border-bottom:1px solid var(--border);
  padding-bottom:12px;
}
.piece-tab{
  padding:9px 18px;font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;
  background:var(--white);border:1px solid var(--border);color:var(--sage);cursor:pointer;
  transition:all .25s;font-family:'Montserrat',sans-serif;font-weight:500;
}
.piece-tab:hover{border-color:var(--bloodstone);color:var(--bloodstone)}
.piece-tab.active{background:var(--bloodstone);color:var(--white);border-color:var(--bloodstone)}
.piece-loading-hint{
  margin:0 48px;padding:12px 16px;background:rgba(64,100,95,0.08);border-left:2px solid var(--sage);
  font-family:'Montserrat',sans-serif;font-size:var(--text-ui);color:var(--sage);display:none;font-weight:300;
}
.piece-loading-hint.show{display:block}

/* ── LOGIN SCREEN ── */
.login-screen{
  position:fixed;inset:0;background:var(--onyx-dk);z-index:600;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:40px 24px;text-align:center;
}
.login-screen.hidden{display:none}
.login-logo{font-family:'Libre Baskerville',serif;font-size:.78rem;letter-spacing:.28em;
  text-transform:uppercase;color:rgba(250,246,238,.6);margin-bottom:44px;display:block}
.login-box{
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);
  padding:44px 52px;width:100%;max-width:420px;text-align:left;
}
.login-title{font-family:'Libre Baskerville',serif;font-size:1.8rem;font-weight:400;
  color:var(--ivory);margin-bottom:8px;line-height:1.2}
.login-title em{font-style:italic;color:var(--bloodstone)}
.login-sub{font-family:'Montserrat',sans-serif;font-size:var(--text-xs);color:rgba(250,246,238,.72);margin-bottom:30px;line-height:1.75;font-weight:300}
.login-fld{margin-bottom:16px}
.login-fld label{font-family:'Montserrat',sans-serif;font-size:var(--text-xs);letter-spacing:.22em;text-transform:uppercase;color:var(--sage);
  display:block;margin-bottom:7px;font-weight:600}
.login-fld input{
  width:100%;padding:12px 14px;border:1px solid rgba(64,100,95,.2);
  background:rgba(255,255,255,.05);font-family:'Montserrat',sans-serif;font-size:var(--text-body);
  color:var(--ivory);outline:none;transition:border-color .3s;font-weight:300;
}
.login-fld input:focus{border-color:var(--bloodstone)}
.login-btn{
  width:100%;font-family:'Montserrat',sans-serif;font-size:.72rem;letter-spacing:.24em;
  text-transform:uppercase;color:var(--ivory);background:var(--bloodstone);border:none;
  padding:15px;cursor:pointer;transition:background .3s;margin-top:8px;font-weight:600;
}
.login-btn:hover{background:var(--bloodstone-dk)}
.login-err{font-family:'Montserrat',sans-serif;font-size:var(--text-ui);color:#B84040;margin-top:10px;display:none;line-height:1.5;font-weight:400}
.login-err.show{display:block}
.login-hint{font-family:'Montserrat',sans-serif;font-size:.78rem;color:var(--sage);margin-top:14px;letter-spacing:.04em;text-align:center;font-weight:300}
.login-legal{font-size:var(--text-xs);margin-top:8px;opacity:.7}
.login-text-btn{background:none;border:none;padding:0;cursor:pointer;color:inherit;font:inherit;text-decoration:underline}
.login-pass-wrap{position:relative}
.login-pass-wrap input{width:100%;padding-right:40px;box-sizing:border-box}
.login-eye{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--sage);padding:4px;line-height:0;opacity:.65;transition:opacity .2s}
.login-eye:hover{opacity:1}
/* ── RSVP TAB ── */
/* ── RSVP Hero ── */
.rsvp-hero{
  background:var(--white);padding:40px 64px 28px;border-bottom:none;
}
.rsvp-hero-eyebrow{
  font-family:'Montserrat',sans-serif;font-size:.78rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--sage);font-weight:700;margin-bottom:12px;
}
.rsvp-hero-title{
  font-family:'Libre Baskerville',serif;font-size:2.4rem;font-weight:400;
  color:var(--onyx-dk);text-align:left;margin-bottom:8px;line-height:1.1;
}
.rsvp-hero-title em{font-style:italic;color:var(--bloodstone)}
.rsvp-hero-sub{
  font-family:'Montserrat',sans-serif;font-size:var(--text-body);color:var(--sage);
  text-align:left;margin-bottom:0;max-width:none;line-height:1.8;font-weight:300;white-space:nowrap;
}
.rsvp-security-tip{
  background:#FAF6EE;border-left:3px solid var(--bloodstone);
  padding:10px 14px;margin:16px 0 0;
  font-family:'Montserrat',sans-serif;font-size:.75rem;color:rgba(45,16,21,.65);
  line-height:1.6;font-weight:300;white-space:nowrap;
}
.rsvp-security-tip strong{font-weight:600;color:var(--bloodstone)}

/* 3-stat meta row */
.rsvp-meta-bar{
  display:flex;gap:0;margin-bottom:36px;border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);padding:20px 0;
}
.rsvp-meta-item{padding-right:40px;margin-right:40px;border-right:1px solid var(--border);}
.rsvp-meta-item:last-child{border-right:none;margin-right:0}
.rsvp-meta-lbl{
  font-family:'Montserrat',sans-serif;font-size:.63rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--sage);font-weight:600;margin-bottom:4px;
}
.rsvp-meta-val{
  font-family:'Montserrat',sans-serif;font-size:.84rem;font-weight:600;
  color:var(--onyx-dk);letter-spacing:.02em;
}

/* Big-number counts row */
.rsvp-rag-row{
  display:flex;align-items:flex-end;gap:0;flex-wrap:nowrap;
}
.rsvp-rag-item{
  padding-right:24px;margin-right:24px;border-right:1px solid var(--border);
}
.rsvp-rag-item:last-of-type{border-right:none;margin-right:auto}
.rsvp-rag-num{
  font-family:'Libre Baskerville',serif;font-size:2.4rem;font-weight:400;
  color:var(--onyx-dk);line-height:1;margin-bottom:6px;
}
.rsvp-rag-lbl{
  font-family:'Montserrat',sans-serif;font-size:.63rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--sage);font-weight:600;
}
.rsvp-rag-item.is-attending .rsvp-rag-num{color:var(--sage-dk)}
.rsvp-rag-item.is-attending .rsvp-rag-lbl{
  border-bottom:2px solid var(--sage-dk);padding-bottom:2px;
}
.rsvp-rag-item.is-dietary .rsvp-rag-num{color:var(--gold)}
.rsvp-export-cta{
  font-family:'Montserrat',sans-serif;font-size:var(--text-xs);letter-spacing:.2em;
  text-transform:uppercase;font-weight:700;color:var(--white);
  background:var(--bloodstone-dk);border:none;padding:14px 28px;cursor:pointer;
  align-self:center;transition:background .2s;white-space:nowrap;margin-left:auto;
}
.rsvp-export-cta:hover{background:var(--bloodstone)}

/* Add Guest drawer */
.rsvp-add-drawer{border-top:1px solid var(--border)}
.rsvp-add-summary{
  font-family:'Montserrat',sans-serif;font-size:.72rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--bloodstone);font-weight:600;
  padding:20px 64px;cursor:pointer;list-style:none;
}
.rsvp-add-summary::-webkit-details-marker{display:none}
.rsvp-add-drawer[open] .rsvp-add-summary{border-bottom:1px solid var(--border)}

@media(max-width:700px){
  .rsvp-hero{padding:28px 24px 20px}
  .rsvp-hero-title{font-size:1.75rem}
  .rsvp-hero-sub{font-size:.72rem;margin-bottom:0}
  .guests-empty-state{padding:20px 24px;flex-wrap:wrap;gap:20px}
  .guests-empty-title{font-size:1.05rem;white-space:normal}
  .rsvp-meta-bar{flex-wrap:wrap;gap:20px;padding:16px 0}
  .rsvp-meta-item{border-right:none;margin-right:0;padding-right:0}
  .rsvp-rag-row{gap:20px}
  .rsvp-rag-item{padding-right:0;margin-right:0;border-right:none}
  .rsvp-add-summary{padding:16px 20px}
}
.rsvp-body{max-width:760px;margin:0 auto;padding:48px 24px 80px}
.rsvp-sec-title{font-family:'Libre Baskerville',serif;font-size:1.4rem;color:var(--onyx-dk);margin-bottom:6px}
.rsvp-sec-title em{font-style:italic;color:var(--bloodstone-dk)}
.rsvp-sec-sub{font-family:'Montserrat',sans-serif;font-size:var(--text-ui);color:rgba(45,16,21,.58);margin-bottom:28px;line-height:1.75;font-weight:300}
.rsvp-add-form{
  background:var(--white);border-bottom:1px solid var(--border);
  padding:48px 64px 36px;
}
.rsvp-add-title{
  font-family:'Libre Baskerville',serif;font-size:1.2rem;color:var(--onyx-dk);
  margin-bottom:28px;font-weight:400;letter-spacing:.02em;
}
.rsvp-fld-row{
  display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:18px;
}
@media(max-width:700px){
  .rsvp-add-form{padding:28px 20px 32px}
  .rsvp-fld-row{grid-template-columns:1fr;gap:14px}
}
.rsvp-add-btn{
  font-family:'Montserrat',sans-serif;font-size:.71rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--white);background:var(--bloodstone);border:none;padding:12px 28px;
  cursor:pointer;transition:background .3s;margin-top:4px;font-weight:600;
}
.rsvp-add-btn:hover{background:var(--bloodstone-dk)}
.rsvp-table-wrap{overflow:hidden;border-top:1px solid var(--border);}
.rsvp-list-hdr-outer{
  padding:24px 64px;background:var(--white);border-top:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;
}
@media(max-width:700px){
  .rsvp-list-hdr-outer{
    padding:20px 20px;flex-direction:column;align-items:flex-start;gap:14px;
  }
  .rsvp-list-hdr-outer > div:last-child{width:100%;display:flex;flex-direction:column;gap:10px}
  .rsvp-filter-row{display:flex;gap:6px;width:100%;flex-wrap:wrap}
  .rsvp-export-btn{width:100%;text-align:center}
}
.rsvp-table{width:100%;border-collapse:collapse}
.rsvp-table th{
  font-family:'Montserrat',sans-serif;font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--sage);
  padding:12px 20px 12px 64px;background:var(--ivory);border-bottom:1px solid var(--border);text-align:left;font-weight:600;
}
.rsvp-table th:not(:first-child){padding-left:14px;}
.rsvp-table td{font-family:'Montserrat',sans-serif;padding:13px 14px 13px 64px;font-size:var(--text-body);border-bottom:1px solid var(--border);color:var(--onyx);font-weight:300}
.rsvp-table td:not(:first-child){padding-left:14px;}
.rsvp-table tr:last-child td{border-bottom:none}
.rsvp-badge-yes{font-family:'Montserrat',sans-serif;background:rgba(45,106,79,.1);color:var(--sage-dk);font-size:var(--text-xs);padding:3px 10px;font-weight:600}
.rsvp-badge-no{font-family:'Montserrat',sans-serif;background:rgba(146,38,48,.08);color:var(--bloodstone);font-size:var(--text-xs);padding:3px 10px;font-weight:600}
.rsvp-badge-pending{font-family:'Montserrat',sans-serif;background:rgba(64,100,95,.12);color:var(--sage);font-size:var(--text-xs);padding:3px 10px;font-weight:600}
.rsvp-del-btn{font-size:var(--text-sm);color:var(--sage);background:none;border:none;cursor:pointer;padding:2px 6px;transition:color .2s}
.rsvp-del-btn:hover{color:var(--bloodstone)}
/* Guest edit modal */
.guest-edit-overlay{position:fixed;inset:0;background:var(--overlay-bg);z-index:9000;display:flex;align-items:center;justify-content:center;padding:20px}
.guest-edit-modal{background:var(--linen);border:1px solid var(--border);max-width:640px;width:100%;max-height:90vh;overflow-y:auto;padding:32px 36px}
.guest-edit-modal-hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}
.guest-edit-modal-title{font-family:'Libre Baskerville',serif;font-size:1.1rem;color:var(--onyx)}
.guest-edit-close{background:none;border:none;font-size:1.3rem;color:var(--sage);cursor:pointer;padding:4px 8px;transition:color .2s}
.guest-edit-close:hover{color:var(--bloodstone)}
.guest-edit-footer{display:flex;gap:12px;align-items:center;margin-top:22px;flex-wrap:wrap}
.guest-edit-save{font-family:'Montserrat',sans-serif;font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;padding:11px 24px;background:var(--bloodstone);color:#fff;border:none;cursor:pointer;transition:background .2s;font-weight:600}
.guest-edit-save:hover{background:var(--bloodstone-dk)}
.guest-edit-cancel{font-family:'Montserrat',sans-serif;font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;padding:11px 20px;background:transparent;border:1px solid var(--border);color:var(--onyx);cursor:pointer;transition:all .2s}
.guest-edit-cancel:hover{border-color:var(--bloodstone);color:var(--bloodstone)}
.rsvp-empty{font-family:'Montserrat',sans-serif;text-align:center;padding:40px;font-size:.72rem;color:var(--sage);font-style:italic}

/* ── GUESTS TAB — PHASE STRUCTURE ── */

/* Hero step-progress bar */
.guests-steps{display:flex;gap:0;border-top:1px solid var(--border);margin-top:32px;padding-top:0}
.guests-step{flex:1;padding:14px 0 12px;text-align:center;border-right:1px solid var(--border);border-top:3px solid transparent;transition:all .2s}
.guests-step:last-child{border-right:none}
.guests-step-num{font-family:'Montserrat',sans-serif;font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;color:var(--sage);opacity:.5;margin-bottom:3px}
.guests-step-lbl{font-family:'Montserrat',sans-serif;font-size:.65rem;letter-spacing:.14em;text-transform:uppercase;color:var(--onyx);font-weight:500;opacity:.45}
.guests-step.done{border-top-color:var(--sage-dk)}
.guests-step.done .guests-step-num,.guests-step.done .guests-step-lbl{opacity:1;color:var(--sage-dk)}
.guests-step.active{border-top-color:var(--bloodstone)}
.guests-step.active .guests-step-num,.guests-step.active .guests-step-lbl{opacity:1;color:var(--bloodstone)}
.guests-step:hover{background:rgba(45,16,21,.03);border-top-color:rgba(146,38,48,.35)}

/* Empty state */
.guests-empty-state{
  padding:24px 64px 28px;background:var(--white);border-bottom:1px solid var(--border);
  display:flex;align-items:center;gap:40px;
}
.guests-empty-lhs{flex:1;min-width:0}
.guests-empty-eyebrow{
  font-family:'Montserrat',sans-serif;font-size:.6rem;letter-spacing:.24em;text-transform:uppercase;
  color:var(--sage);font-weight:600;margin-bottom:6px;white-space:nowrap;
}
.guests-empty-title{
  font-family:'Libre Baskerville',serif;font-size:1.25rem;font-weight:400;
  color:var(--onyx-dk);margin-bottom:0;line-height:1.25;white-space:nowrap;
}
.guests-empty-title em{font-style:italic;color:var(--bloodstone)}
.guests-empty-sub{
  font-family:'Montserrat',sans-serif;font-size:var(--text-body);color:rgba(45,16,21,.5);
  line-height:1.4;margin:8px 0 0;
}
.guests-empty-actions{display:flex;gap:14px;align-items:center;flex-wrap:wrap;flex:0 0 auto}

/* Phase blocks */
.guests-phase{background:var(--white);border-top:1px solid var(--border)}
.guests-phase-hd{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:28px 64px 20px;flex-wrap:wrap}
.guests-phase-eyebrow{font-family:'Montserrat',sans-serif;font-size:.65rem;letter-spacing:.22em;text-transform:uppercase;color:var(--sage);font-weight:700;margin-bottom:5px}
.guests-phase-title{font-family:'Libre Baskerville',serif;font-size:1.3rem;font-weight:400;color:var(--onyx-dk)}
.guests-phase-title em{font-style:italic;color:var(--bloodstone)}
.guests-phase-body{padding:0 64px 32px}
.guests-phase-locked-msg{font-family:'Montserrat',sans-serif;font-size:var(--text-ui);color:rgba(45,16,21,.45);font-style:italic;padding:16px 0 24px;line-height:1.7}
@media(max-width:700px){
  .guests-phase-hd{padding:20px 20px 16px}
  .guests-phase-body{padding:0 20px 24px}
}

/* Table Name Generator */
.tng-row{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.tng-generate-btn{font-family:'Montserrat',sans-serif;font-size:.65rem;letter-spacing:.18em;text-transform:uppercase;padding:var(--btn-pad-sm);background:var(--onyx);color:var(--white);border:none;cursor:pointer;transition:background .2s;font-weight:600;white-space:nowrap}
.tng-generate-btn:hover{background:var(--bloodstone)}

/* Tables list */
.tables-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}
.table-card{display:flex;align-items:center;gap:12px;padding:12px 16px;border:1px solid var(--border);background:var(--ivory)}
.table-card-name{font-family:'Libre Baskerville',serif;font-size:.9rem;color:var(--onyx-dk);flex:1}
.table-card-count{font-family:'Montserrat',sans-serif;font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:var(--sage);font-weight:600}
.table-card-del{background:none;border:none;color:var(--sage);cursor:pointer;font-size:.75rem;opacity:.5;transition:all .2s}
.table-card-del:hover{opacity:1;color:var(--bloodstone)}
.add-table-row{display:flex;gap:8px;align-items:stretch}
.add-table-input{border:1px solid var(--border);padding:10px 14px;font-family:'Montserrat',sans-serif;font-size:.82rem;color:var(--onyx);background:var(--white);outline:none;flex:1}
.add-table-input:focus{border-color:var(--bloodstone)}
.add-table-btn{font-family:'Montserrat',sans-serif;font-size:.65rem;letter-spacing:.16em;text-transform:uppercase;padding:var(--btn-pad-sm);background:var(--sage-dk);color:var(--white);border:none;cursor:pointer;font-weight:600;transition:background .2s}
.add-table-btn:hover{background:var(--sage)}

/* Seating map view */
.seating-view-toggle{display:flex;gap:0;margin-bottom:20px;border:1px solid var(--border);overflow:hidden;width:fit-content}
.seating-toggle-btn{font-family:'Montserrat',sans-serif;font-size:.65rem;letter-spacing:.16em;text-transform:uppercase;padding:8px 18px;background:transparent;border:none;cursor:pointer;color:var(--sage);font-weight:500;transition:all .2s}
.seating-toggle-btn.active{background:var(--onyx);color:var(--white)}
.seating-map-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;margin-top:4px}
.seating-table-card{border:1px solid var(--border);background:var(--ivory);padding:14px}
.seating-table-name{font-family:'Libre Baskerville',serif;font-size:.95rem;color:var(--onyx-dk);margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--border)}
.seating-guest-item{font-family:'Montserrat',sans-serif;font-size:.72rem;color:var(--onyx);padding:4px 0;border-bottom:1px solid rgba(45,16,21,.05);font-weight:400}
.seating-guest-item:last-child{border-bottom:none}
.seating-empty-card{font-family:'Montserrat',sans-serif;font-size:.68rem;color:rgba(45,16,21,.35);font-style:italic;padding:8px 0}

/* Design picker — Phase 3 */
.design-picker-row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:28px}
@media(max-width:800px){.design-picker-row{grid-template-columns:1fr}}
.design-picker-card{border:1px solid var(--border);padding:20px;background:var(--ivory);cursor:pointer;transition:all .2s;position:relative}
.design-picker-card:hover{border-color:var(--bloodstone)}
.design-picker-card.mapped{border-color:var(--sage-dk);background:rgba(45,106,79,.04)}
.design-picker-role{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.design-picker-name{font-family:'Libre Baskerville',serif;font-size:.95rem;color:var(--onyx-dk);margin-bottom:4px}
.design-picker-hint{font-family:'Montserrat',sans-serif;font-size:.68rem;color:rgba(45,16,21,.45);font-style:italic}
.design-picker-check{position:absolute;top:12px;right:12px;color:var(--sage-dk);font-size:.8rem;display:none}
.design-picker-card.mapped .design-picker-check{display:block}
.design-picker-empty{font-family:'Montserrat',sans-serif;font-size:var(--text-body);color:rgba(45,16,21,.45);font-style:italic;line-height:1.7;padding:16px 0}
/* Role assignment buttons inside each design picker card */
.design-role-btn{font-family:'Montserrat',sans-serif;font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;padding:5px 12px;border:1px solid var(--border);background:transparent;color:var(--sage);cursor:pointer;font-weight:600;transition:all .2s;white-space:nowrap}
.design-role-btn:hover{border-color:var(--bloodstone);color:var(--bloodstone)}
.design-role-btn.active{background:var(--bloodstone);border-color:var(--bloodstone);color:var(--white)}
/* Empty hint inside tables list */
.tables-empty-hint{font-family:'Montserrat',sans-serif;font-size:var(--text-body);color:rgba(45,16,21,.4);font-style:italic;padding:8px 0;font-weight:300}

/* Generate blocks — Phase 3 */
.gen-block{border:1px solid var(--border);padding:24px;margin-bottom:20px;background:var(--white)}
.gen-block-hd{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.gen-block-title{font-family:'Montserrat',sans-serif;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--onyx);font-weight:600}
.gen-block-status{font-family:'Montserrat',sans-serif;font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:var(--sage);font-weight:500;margin-top:7px}
.gen-block-status.complete{color:var(--sage-dk)}
.gen-block-status.locked{color:rgba(45,16,21,.3)}
.gen-block-status.error{color:#922630}
.gen-progress-bar{height:3px;background:var(--border);margin-bottom:14px;overflow:hidden;display:none}
.gen-progress-fill{height:100%;background:var(--bloodstone);width:0;transition:width .4s}
.gen-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.gen-btn{font-family:'Montserrat',sans-serif;font-size:.65rem;letter-spacing:.18em;text-transform:uppercase;padding:var(--btn-pad-sm);background:var(--bloodstone);color:var(--white);border:none;cursor:pointer;font-weight:600;transition:background .2s;white-space:nowrap}
.gen-btn:hover{background:var(--bloodstone-dk)}
.gen-btn:disabled{opacity:.4;cursor:not-allowed}
.gen-btn-ghost{background:transparent;border:1px solid var(--border);color:var(--onyx)}
.gen-btn-ghost:hover{border-color:var(--bloodstone);color:var(--bloodstone);background:transparent}

/* QR panel */
.qr-panel{border:1px solid var(--border);background:var(--ivory);padding:20px 24px;display:none;align-items:center;gap:24px;flex-wrap:wrap;margin-top:12px}
.qr-panel.visible{display:flex}
.qr-canvas-wrap{width:100px;height:100px;background:var(--white);padding:6px;border:1px solid var(--border);flex-shrink:0;overflow:hidden}
.qr-canvas-wrap canvas,.qr-canvas-wrap img{width:100%!important;height:100%!important;display:block}
.qr-info{flex:1;min-width:180px}
.qr-info-label{font-family:'Montserrat',sans-serif;font-size:.63rem;letter-spacing:.18em;text-transform:uppercase;color:var(--sage);font-weight:700;margin-bottom:6px}
.qr-info-sub{font-family:'Montserrat',sans-serif;font-size:.72rem;color:rgba(45,16,21,.55);line-height:1.6;margin-bottom:12px}
.qr-download-btn{font-family:'Montserrat',sans-serif;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;padding:var(--btn-pad-sm);background:var(--bloodstone);color:var(--white);border:none;cursor:pointer;font-weight:600;transition:background .2s}
.qr-download-btn:hover{background:var(--bloodstone)}

/* Meal summary bars — Phase 4 */
.meal-summary-card{border:1px solid var(--border);background:var(--ivory);padding:24px;margin-bottom:20px}
.meal-summary-title{font-family:'Montserrat',sans-serif;font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:var(--sage);font-weight:700;margin-bottom:18px}
.meal-bar-row{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.meal-bar-label{font-family:'Montserrat',sans-serif;font-size:.72rem;color:var(--onyx);font-weight:500;min-width:90px}
.meal-bar-track{flex:1;height:6px;background:rgba(45,16,21,.08);overflow:hidden}
.meal-bar-fill{height:100%;background:var(--sage-dk);transition:width .5s}
.meal-bar-count{font-family:'Montserrat',sans-serif;font-size:.68rem;color:var(--sage);font-weight:600;min-width:24px;text-align:right}

/* ── APPROVAL BLOCK — EDITORIAL STACK ── */
.approval-section{
  margin:24px 64px 0;padding:56px 32px 40px;text-align:center;
  background:var(--white);border:1px solid var(--border);box-shadow:var(--sh);
}
.approval-eyebrow{
  font-family:'Montserrat',sans-serif;font-size:.72rem;letter-spacing:.34em;text-transform:uppercase;
  color:var(--sage);margin-bottom:14px;font-weight:600;
}
.approval-title{
  font-family:'Libre Baskerville',serif;font-size:2rem;font-weight:400;
  font-style:italic;color:var(--onyx-dk);margin-bottom:28px;line-height:1.2;
}
.approval-title em{font-style:italic;color:var(--bloodstone)}
.approval-sub{font-family:'Montserrat',sans-serif;font-size:.8rem;color:rgba(45,16,21,.58);line-height:1.7;margin:0 auto 36px;max-width:560px;text-align:center;font-weight:300}
.approval-btns{display:flex;gap:14px;margin-bottom:32px;flex-wrap:wrap;justify-content:center}
.approval-foot{
  display:flex;gap:22px;justify-content:center;align-items:center;flex-wrap:wrap;
  padding-top:24px;border-top:1px solid var(--border);
  font-family:'Montserrat',sans-serif;font-size:var(--text-sm);letter-spacing:.18em;text-transform:uppercase;color:var(--sage);
}
.approval-foot em{font-family:'Libre Baskerville',serif;font-style:italic;color:var(--onyx);letter-spacing:0;text-transform:none;font-size:var(--text-md)}
.approval-foot .sep{color:var(--border)}
.approval-foot a{
  font-size:var(--text-sm);letter-spacing:.18em;text-transform:uppercase;color:var(--sage);
  text-decoration:none;border-bottom:1px solid rgba(64,100,95,.35);padding-bottom:2px;cursor:pointer;transition:all .25s;
}
.approval-foot a:hover{color:var(--bloodstone);border-color:var(--bloodstone)}
.btn-approve{
  flex:1;min-width:200px;padding:18px 28px;
  background:var(--sage-dk);border:none;color:var(--white);
  font-family:'Montserrat',sans-serif;font-size:var(--text-ui);letter-spacing:.18em;text-transform:uppercase;
  cursor:pointer;transition:all .3s;font-weight:600;
  display:flex;align-items:center;justify-content:center;gap:14px;
}
.btn-approve:hover{background:#245c3e}
.btn-approve.active{background:#245c3e;box-shadow:0 0 0 3px rgba(45,106,79,.2)}
.btn-decline{
  flex:1;min-width:200px;padding:18px 28px;
  background:var(--white);border:2px solid var(--bloodstone);color:var(--bloodstone);
  font-family:'Montserrat',sans-serif;font-size:var(--text-ui);letter-spacing:.18em;text-transform:uppercase;
  cursor:pointer;transition:all .3s;font-weight:600;
  display:flex;align-items:center;justify-content:center;gap:14px;
}
.btn-decline:hover{background:rgba(146,38,48,.05)}
.btn-decline.active{background:rgba(146,38,48,.08);box-shadow:0 0 0 3px rgba(146,38,48,.15)}
.approval-comment-block{display:none;margin-top:4px}
.approval-comment-block.open{display:block}
.approval-comment-block textarea{
  width:100%;min-height:88px;padding:12px 14px;border:1px solid var(--border);
  background:var(--ivory);font-family:'Montserrat',sans-serif;font-size:.8rem;
  color:var(--onyx);resize:vertical;outline:none;transition:border-color .3s;font-weight:300;
}
.approval-comment-block textarea:focus{border-color:var(--bloodstone)}
.approval-send-btn{
  font-family:'Montserrat',sans-serif;font-size:.71rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--white);background:var(--bloodstone);border:none;padding:12px 28px;
  cursor:pointer;transition:background .3s;margin-top:8px;font-weight:600;
}
.approval-send-btn:hover{background:var(--bloodstone-dk)}
.approval-status-msg{
  font-family:'Montserrat',sans-serif;padding:14px 20px;border:1px solid;font-size:var(--text-ui);margin-top:16px;
  display:none;line-height:1.7;font-weight:500;
}
.approval-status-msg.approved{
  border-color:rgba(45,106,79,.25);background:rgba(45,106,79,.07);
  color:var(--sage-dk);display:block;
}
.approval-status-msg.declined{
  border-color:rgba(146,38,48,.2);background:rgba(146,38,48,.04);
  color:var(--onyx);display:block;
}

/* ── EVENT COUNTDOWN HERO ── */
.event-countdown-hero{
  background:var(--white);padding:40px 48px;text-align:center;
  border-bottom:1px solid var(--border);position:relative;overflow:hidden;
}
.event-countdown-hero::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse at 50% 120%,rgba(146,38,48,.04) 0%,transparent 70%);
  pointer-events:none;
}
.ech-eyebrow{font-family:'Montserrat',sans-serif;font-size:var(--text-xs);letter-spacing:.36em;text-transform:uppercase;color:var(--sage);margin-bottom:14px;display:block;font-weight:600}
.ech-title{font-family:'Libre Baskerville',serif;font-size:clamp(1.4rem,3.5vw,2.6rem);font-weight:400;color:var(--onyx-dk);line-height:1.2;margin-bottom:28px}
.ech-title em{font-style:italic;color:var(--bloodstone)}
.ech-units{display:flex;justify-content:center;gap:0;margin-bottom:16px}
.ech-unit{padding:0 24px;border-right:1px solid var(--border);text-align:center}
.ech-unit:last-child{border-right:none}
.ech-num{font-family:'Libre Baskerville',serif;font-size:clamp(2.4rem,6vw,4.8rem);color:var(--onyx-dk);display:block;line-height:1;letter-spacing:-.02em}
.ech-lbl{font-family:'Montserrat',sans-serif;font-size:.63rem;letter-spacing:.26em;text-transform:uppercase;color:var(--sage);margin-top:6px;display:block;font-weight:600}
.ech-sub{font-family:'Montserrat',sans-serif;font-size:var(--text-sm);color:var(--sage);letter-spacing:.12em;margin-top:4px}

/* ── FINAL SUITE LUXURY COVER ── */
.final-suite-cover{
  background:var(--white);padding:40px 48px;text-align:center;
  border-bottom:1px solid var(--border);position:relative;overflow:hidden;
  display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:auto;
}
.final-suite-cover > *{position:relative;z-index:1}
.fsc-c{
  position:absolute;width:44px;height:44px;
  border-color:rgba(45,16,21,.12);border-style:solid;border-width:0;pointer-events:none;z-index:2;
}
.fsc-c.tl{top:32px;left:32px;border-top-width:1px;border-left-width:1px}
.fsc-c.tr{top:32px;right:32px;border-top-width:1px;border-right-width:1px}
.fsc-c.bl{bottom:32px;left:32px;border-bottom-width:1px;border-left-width:1px}
.fsc-c.br{bottom:32px;right:32px;border-bottom-width:1px;border-right-width:1px}
.fsc-eyebrow{
  font-size:var(--text-ui);letter-spacing:.46em;text-transform:uppercase;
  color:var(--sage);margin-bottom:14px;font-weight:500;
}
.fsc-subtitle{
  font-family:'Libre Baskerville',serif;font-size:.9rem;font-style:italic;
  color:rgba(45,16,21,.45);letter-spacing:.04em;margin-bottom:10px;
}
.fsc-client-name{
  font-family:'Libre Baskerville',serif;font-size:clamp(3rem,7vw,5.5rem);
  font-weight:300;color:var(--onyx);line-height:.95;margin:0 0 6px;
  letter-spacing:-.03em;
}
.fsc-event-details{
  margin-top:18px;margin-bottom:0;
}
.fsc-event-name-date{
  font-size:var(--text-ui);font-family:'Montserrat',sans-serif;letter-spacing:.28em;
  color:var(--onyx);text-transform:uppercase;
}
.fsc-location{
  font-size:var(--text-sm);color:rgba(45,16,21,.25);letter-spacing:.16em;text-transform:uppercase;margin-top:4px;
}
.fsc-divider{
  width:100%;max-width:320px;height:1px;background:rgba(45,16,21,.1);
  margin:18px auto;
}
.fsc-palette{
  margin-bottom:32px;
}
.fsc-palette-swatches{
  display:flex;gap:12px;justify-content:center;flex-wrap:wrap;
}
.fsc-swatch{
  display:flex;flex-direction:column;align-items:center;gap:6px;
}
.fsc-swatch-box{
  width:48px;height:48px;border:1px solid var(--border);
  border-radius:0;
}
.fsc-swatch-label{
  font-size:var(--text-xs);color:rgba(45,16,21,.4);letter-spacing:.08em;text-transform:uppercase;
}
.fsc-mood{
  margin-bottom:32px;max-width:580px;margin-left:auto;margin-right:auto;
}
.fsc-mood p{
  font-family:'Libre Baskerville',serif;font-size:.9rem;font-style:italic;
  color:rgba(45,16,21,.45);line-height:1.7;margin:0;letter-spacing:.04em;
}
.fsc-countdown{
  margin-bottom:16px;
}
.fsc-cd-title{font-size:0}
.fsc-cd-row{
  display:flex;justify-content:center;
}
.fsc-cd-unit{
  display:flex;flex-direction:column;align-items:center;
  padding:0 16px;position:relative;
}
.fsc-cd-unit+.fsc-cd-unit::before{
  content:'';position:absolute;left:0;top:4px;bottom:14px;
  width:1px;background:rgba(45,16,21,.1);
}
.fsc-cd-num{
  font-family:'Libre Baskerville',serif;font-size:clamp(1.8rem,4vw,2.4rem);
  color:var(--onyx);line-height:1;font-weight:300;letter-spacing:-.02em;
  display:block;text-align:center;
}
.fsc-cd-lbl{
  font-size:.63rem;letter-spacing:.3em;text-transform:uppercase;
  color:var(--onyx);margin-top:6px;display:block;
}
.fsc-cd-date{
  font-size:.72rem;color:var(--onyx);letter-spacing:.16em;margin-top:10px;margin-bottom:0;
}
.fsc-view-suite-btn{
  font-family:'Montserrat',sans-serif;font-size:.71rem;letter-spacing:.26em;text-transform:uppercase;
  padding:16px 52px;background:var(--bloodstone);color:var(--white);border:none;
  cursor:pointer;transition:background .3s;margin-top:8px;font-weight:600;
}
.fsc-view-suite-btn:hover{background:var(--bloodstone-dk)}

/* ── KEEPSAKE MODE ── */
.keepsake-banner{
  background:linear-gradient(135deg,rgba(201,168,76,.12),rgba(125,64,71,.08));
  border-bottom:1px solid rgba(201,168,76,.25);
  padding:16px 48px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
}
.keepsake-title{font-family:'Libre Baskerville',serif;font-size:.95rem;color:var(--onyx);font-style:italic}
.keepsake-title em{color:var(--bloodstone)}
.keepsake-sub{font-size:.72rem;color:var(--sage);letter-spacing:.1em}
.keepsake-icon{font-size:1.4rem;opacity:.5}

/* ══════════════════════════════════════════════════════════
   TAB 05 — YOUR EVENT (dossier · live · keepsake · testimonial)
══════════════════════════════════════════════════════════ */

/* DOSSIER (before-state) */
.dossier-wrap{padding:56px 48px 72px;background:var(--ivory);border-top:1px solid var(--border)}
.dossier-hdr{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:32px;padding-bottom:20px;border-bottom:1px solid var(--border)}
.dossier-eyebrow{font-size:var(--text-ui);letter-spacing:.32em;text-transform:uppercase;color:var(--bloodstone);display:block;margin-bottom:8px}
.dossier-title{font-family:'Libre Baskerville',serif;font-size:1.4rem;color:var(--onyx);font-weight:400;margin:0 0 6px}
.dossier-sub{font-size:.78rem;color:rgba(45,16,21,.58);line-height:1.7;max-width:520px;margin:0}
.dossier-print-btn{font-family:'Montserrat',sans-serif;font-size:var(--text-sm);letter-spacing:.16em;text-transform:uppercase;padding:14px 22px;background:var(--white);color:var(--onyx);border:1px solid var(--border);cursor:pointer;transition:all .25s;white-space:nowrap;font-weight:500}
.dossier-print-btn:hover{background:var(--bloodstone)}

.dossier-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:28px}
.dossier-card{background:white;border:1px solid var(--border);padding:24px 26px;position:relative}
.dossier-card-lbl{font-size:var(--text-ui);letter-spacing:.26em;text-transform:uppercase;color:var(--bloodstone);display:block;margin-bottom:12px;font-weight:600}

/* Weather */
.do-weather{min-height:80px}
.do-weather-empty{font-size:var(--text-xs);color:var(--sage);font-style:italic;margin:0;line-height:1.6}
.do-weather-main{display:flex;align-items:center;gap:18px}
.do-weather-icon{font-size:2.4rem;line-height:1}
.do-weather-desc{font-family:'Libre Baskerville',serif;font-size:1rem;color:var(--onyx)}
.do-weather-temp{font-size:.79rem;color:var(--sage);margin-top:3px;letter-spacing:.08em}
.do-weather-meta{font-size:var(--text-sm);color:var(--sage);margin-top:12px;letter-spacing:.08em}
.do-weather-note{font-size:var(--text-xs);color:rgba(182,166,151,.6);margin-top:12px;font-style:italic}

/* Contact card */
.dossier-contact{padding:4px 0}
.do-contact-name{font-family:'Libre Baskerville',serif;font-size:1rem;color:var(--onyx);margin-bottom:3px}
.do-contact-role{font-size:var(--text-sm);color:var(--sage);letter-spacing:.1em;margin-bottom:10px}
.do-contact-phone{font-family:'Montserrat',sans-serif;font-size:.78rem;color:var(--bloodstone);text-decoration:none;display:inline-block;margin-bottom:12px;letter-spacing:.04em;font-weight:400}
.do-contact-note{font-size:var(--text-ui);color:var(--sage);line-height:1.65;font-style:italic;margin:0}

/* Run-of-Show mirror */
.dossier-ros{background:white;border:1px solid var(--border);padding:24px 26px;margin-bottom:18px}
.do-ros-empty{font-size:var(--text-xs);color:var(--sage);font-style:italic;margin:0}
.do-ros-list{}
.do-ros-row{display:flex;align-items:center;gap:14px;padding:10px 0;border-bottom:1px solid rgba(221,213,205,.5);font-size:.72rem}
.do-ros-row:last-child{border-bottom:none}
.do-ros-time{font-family:'Courier New',monospace;color:var(--bloodstone);width:70px;font-size:.79rem}
.do-ros-name{flex:1;color:var(--onyx)}
.do-ros-dur{font-size:.78rem;color:var(--sage);letter-spacing:.08em}

/* Vendors */
.dossier-vendors{background:white;border:1px solid var(--border);padding:24px 26px;margin-bottom:18px}
.dossier-vendors-hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.dossier-vendor-add{font-family:'Montserrat',sans-serif;font-size:.71rem;letter-spacing:.14em;text-transform:uppercase;padding:8px 14px;background:transparent;border:1px solid var(--border);color:var(--bloodstone);cursor:pointer;font-weight:500}
.dossier-vendor-add:hover{border-color:var(--bloodstone)}
.do-empty{font-size:var(--text-xs);color:var(--sage);font-style:italic;margin:0}
.do-vendor-row{display:grid;grid-template-columns:1.1fr 1.3fr 1fr 32px;gap:10px;margin-bottom:8px;align-items:center}
.do-vendor-row .fld-input{padding:9px 12px;font-size:.72rem}
.do-vendor-rm{background:transparent;border:1px solid var(--border);width:28px;height:28px;color:var(--sage);cursor:pointer;font-size:.8rem;padding:0}
.do-vendor-rm:hover{color:var(--bloodstone);border-color:var(--bloodstone)}

/* Checklist */
.dossier-checklist{background:white;border:1px solid var(--border);padding:24px 26px}
.do-check-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid rgba(221,213,205,.35);cursor:pointer;font-size:.78rem;color:var(--onyx);transition:opacity .2s}
.do-check-row:last-child{border-bottom:none}
.do-check-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--bloodstone);cursor:pointer;flex-shrink:0}
.do-check-row input:checked + span{text-decoration:line-through;opacity:.45;font-style:italic}

/* LIVE STATE */
.live-hero{padding:88px 48px;text-align:center;background:linear-gradient(180deg,rgba(146,38,48,.04) 0%,transparent 100%);border-bottom:1px solid var(--border);position:relative}
.live-pulse{display:inline-block;width:10px;height:10px;background:#C1272D;border-radius:50%;margin-bottom:16px;animation:livePulse 1.4s ease-in-out infinite}
@keyframes livePulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.4)}}
.live-eyebrow{font-size:var(--text-xs);letter-spacing:.36em;text-transform:uppercase;color:#C1272D;display:block;margin-bottom:20px;font-weight:500}
.live-title{font-family:'Libre Baskerville',serif;font-size:clamp(1.6rem,4vw,2.4rem);color:var(--onyx);font-weight:400;margin:0 0 14px;letter-spacing:-.01em}
.live-sub{font-size:var(--text-body);color:rgba(45,16,21,.55);font-style:italic;margin:0 0 36px}
.live-progress{max-width:420px;margin:0 auto 14px;height:3px;background:rgba(221,213,205,.6);overflow:hidden}
.live-progress-fill{height:100%;background:var(--bloodstone);transition:width .8s ease;width:0%}
.live-timing{font-size:var(--text-sm);color:var(--sage);letter-spacing:.18em;text-transform:uppercase;margin:0}
.live-upcoming{padding:40px 48px;background:var(--ivory)}
.live-up-row{display:flex;gap:16px;padding:12px 0;border-bottom:1px solid rgba(221,213,205,.5);font-size:.8rem}
.live-up-row span{width:80px;font-family:'Courier New',monospace;color:var(--bloodstone);font-size:.72rem}
.live-up-row.past{opacity:.35;text-decoration:line-through}
.live-up-row.upcoming{color:var(--onyx)}

/* KEEPSAKE STATE */
.keepsake-hero{padding:88px 48px;text-align:center;background:linear-gradient(135deg,rgba(201,168,76,.08),rgba(125,64,71,.04));border-bottom:1px solid var(--border)}
.keepsake-title{font-family:'Libre Baskerville',serif;font-size:clamp(1.8rem,4.4vw,2.8rem);color:var(--onyx);font-weight:400;margin:14px 0 20px;line-height:1.2}
.keepsake-title em{color:var(--bloodstone);font-style:italic}
.keepsake-hero .hero-rule{margin:18px auto}
.keepsake-sub{font-size:var(--text-body);color:var(--sage);line-height:1.8;margin:20px auto 0;max-width:540px;font-style:italic}
.keepsake-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:40px 48px 72px;background:var(--ivory)}
.keepsake-card{background:white;border:1px solid var(--border);padding:28px 30px}
.keepsake-card-title{font-family:'Libre Baskerville',serif;font-size:var(--h3);color:var(--onyx);font-weight:400;margin:6px 0 10px}
.keepsake-card-sub{font-size:.79rem;color:var(--sage);line-height:1.7;margin:0 0 18px}
.keepsake-btn{font-family:'Montserrat',sans-serif;font-size:var(--text-sm);letter-spacing:.18em;text-transform:uppercase;padding:12px 22px;background:transparent;border:1px solid var(--bloodstone);color:var(--bloodstone);cursor:pointer;transition:all .25s;font-weight:500}
.keepsake-btn:hover{background:var(--bloodstone);color:var(--white)}
.keepsake-btn-dark{background:var(--bloodstone);border-color:var(--bloodstone);color:var(--white)}
.keepsake-btn-dark:hover{background:var(--bloodstone-dk);border-color:var(--bloodstone-dk)}
.keepsake-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:8px;margin-top:18px}
.keepsake-photo-tile{aspect-ratio:1;display:block;overflow:hidden;border:1px solid var(--border);background:#FAFAFA}
.keepsake-photo-tile img{width:100%;height:100%;object-fit:cover;display:block}
.keepsake-photos-empty{font-size:var(--text-xs);color:rgba(182,166,151,.6);font-style:italic;padding:18px 0 0;grid-column:1/-1;text-align:center}
.keepsake-card-upsell{background:var(--ivory);color:var(--onyx);border-color:var(--border);border:2px solid rgba(184,147,90,.35)}
.keepsake-card-upsell .dossier-card-lbl{color:var(--gold)}
.keepsake-card-upsell .keepsake-card-title{color:var(--onyx-dk)}
.keepsake-card-upsell .keepsake-card-sub{color:var(--sage)}
.keepsake-upsell-list{list-style:none;padding:0;margin:0 0 22px;font-size:.78rem;color:var(--sage)}
.keepsake-upsell-list li{padding:6px 0;border-bottom:1px solid var(--border);letter-spacing:.04em}
.keepsake-upsell-list li::before{content:'—  ';color:var(--gold)}

/* Testimonial */
.keepsake-card-testimonial{grid-column:1/-1;background:linear-gradient(180deg,white 0%,rgba(201,168,76,.04) 100%)}
.testimonial-stars{display:flex;gap:6px;margin:14px 0 16px}
.tstar{background:transparent;border:none;font-size:1.8rem;color:rgba(201,168,76,.25);cursor:pointer;padding:0;line-height:1;transition:color .15s,transform .15s}
.tstar.filled{color:#C9A84C}
.tstar:hover{transform:scale(1.1)}
.tstar:disabled{cursor:default}
.testimonial-text{width:100%;min-height:90px;padding:14px 16px;font-family:'Libre Baskerville',serif;font-size:var(--text-body);color:var(--onyx);background:white;border:1px solid var(--border);resize:vertical;margin-bottom:14px;line-height:1.7;font-style:italic}
.testimonial-text:focus{outline:none;border-color:var(--bloodstone)}
.testimonial-consent{display:flex;gap:10px;align-items:flex-start;font-size:var(--text-ui);color:var(--sage);line-height:1.6;margin-bottom:18px;cursor:pointer}
.testimonial-consent input{width:16px;height:16px;accent-color:var(--bloodstone);margin-top:1px;flex-shrink:0}
.testimonial-thanks{font-size:.72rem;color:var(--sage-dk);font-style:italic;margin:14px 0 0;letter-spacing:.02em}

@media (max-width:720px){
  .dossier-wrap,.keepsake-grid,.live-hero,.live-upcoming,.keepsake-hero{padding-left:24px;padding-right:24px}
  .dossier-grid,.keepsake-grid{grid-template-columns:1fr}
  .do-vendor-row{grid-template-columns:1fr 32px;grid-auto-rows:auto;gap:6px}
  .do-vendor-row .fld-input:nth-child(1),
  .do-vendor-row .fld-input:nth-child(2),
  .do-vendor-row .fld-input:nth-child(3){grid-column:1/-1}
  .do-vendor-rm{grid-column:1/-1;justify-self:end}
  .dossier-hdr{flex-direction:column;align-items:flex-start}
  .dossier-print-btn{width:100%}
}

/* ── ANNOTATE OVERLAY ── */
.annotate-toolbar{
  margin:0 48px;padding:10px 16px;background:var(--white);border:1px solid var(--border);
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;border-bottom:none;
  box-shadow:var(--sh);
}
.annotate-toggle{
  font-family:'Montserrat',sans-serif;font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;
  padding:7px 16px;border:1px solid var(--border);background:var(--white);color:var(--sage);cursor:pointer;transition:all .25s;font-weight:500;
}
.annotate-toggle.active{background:var(--bloodstone);border-color:var(--bloodstone);color:var(--white)}
.annotate-toggle:hover:not(.active){border-color:var(--bloodstone);color:var(--bloodstone)}
.annotate-hint{font-family:'Montserrat',sans-serif;font-size:.71rem;color:var(--sage);font-style:italic;font-weight:300}
.annotate-clear{font-family:'Montserrat',sans-serif;font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--sage);background:none;border:none;cursor:pointer;margin-left:auto;padding:4px 8px;transition:color .2s;font-weight:500}
.annotate-clear:hover{color:var(--bloodstone)}
.iframe-annotate-wrap{position:relative}
.annotate-overlay{position:absolute;inset:0;z-index:10;cursor:crosshair;display:none}
.annotate-overlay.active{display:block}
.annotate-pin{
  position:absolute;width:24px;height:24px;background:var(--bloodstone);border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-size:.72rem;color:var(--white);
  font-family:'Montserrat',sans-serif;font-weight:700;cursor:pointer;transform:translate(-50%,-50%);
  box-shadow:0 2px 8px rgba(146,38,48,.4);transition:transform .2s;z-index:11;
}
.annotate-pin:hover{transform:translate(-50%,-50%) scale(1.2)}
.annotate-bubble{
  position:absolute;background:var(--white);border:1px solid var(--border);padding:12px 14px;
  min-width:200px;max-width:280px;z-index:20;box-shadow:var(--shl);
  display:none;
}
.annotate-bubble.open{display:block}
.annotate-bubble input{
  width:100%;padding:8px 10px;border:1px solid var(--border);background:var(--ivory);
  font-family:'Montserrat',sans-serif;font-size:var(--text-sm);color:var(--onyx);outline:none;font-weight:300;
}
.annotate-bubble input:focus{border-color:var(--bloodstone)}
.annotate-bubble-btns{display:flex;gap:8px;margin-top:8px}
.annotate-save-btn{flex:1;padding:7px;background:var(--bloodstone);border:none;color:var(--white);font-family:'Montserrat',sans-serif;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;font-weight:600}
.annotate-del-btn{padding:7px 10px;background:var(--white);border:1px solid var(--border);color:var(--sage);font-family:'Montserrat',sans-serif;font-size:var(--text-xs);cursor:pointer;transition:all .2s}
.annotations-list{margin:0 48px;border:1px solid var(--border);border-top:none;background:var(--ivory);display:none}
.annotations-list.has-items{display:block}
.annotations-list-title{font-family:'Montserrat',sans-serif;padding:12px 18px;font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--sage);border-bottom:1px solid var(--border);font-weight:600}
.annotation-row{padding:10px 18px;display:flex;align-items:flex-start;gap:12px;border-bottom:1px solid var(--border);font-size:.79rem;color:var(--onyx)}
.annotation-row:last-child{border-bottom:none}
.ann-num{width:22px;height:22px;background:var(--bloodstone);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.78rem;color:var(--white);font-family:'Montserrat',sans-serif;font-weight:700;flex-shrink:0;margin-top:1px}
.ann-push-btn{margin:10px 18px;font-family:'Montserrat',sans-serif;font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--white);background:var(--bloodstone);border:none;padding:9px 20px;cursor:pointer;transition:background .3s;font-weight:600}
.ann-push-btn:hover{background:var(--bloodstone-dk)}
/* ── QR CODE ── */
/* ── GUEST-SUBMIT RSVP SECTION ── */
.guest-rsvp-section{
  margin-bottom:40px;padding:32px 36px;
  background:linear-gradient(135deg,rgba(146,38,48,.04),rgba(201,168,76,.04));
  border:1px solid rgba(146,38,48,.18);border-left:3px solid var(--bloodstone)
}
.guest-rsvp-hdr{margin-bottom:22px}
.guest-rsvp-hdr .qr-title{font-size:1.1rem;margin:6px 0 8px}
.guest-rsvp-panel{}
.guest-rsvp-enable{
  display:inline-block;padding:16px 34px;font-family:'Montserrat',sans-serif;font-size:var(--text-xs);
  letter-spacing:.22em;text-transform:uppercase;background:var(--bloodstone);color:var(--white);
  border:none;cursor:pointer;transition:background .25s;font-weight:600
}
.guest-rsvp-enable:hover{background:var(--bloodstone)}
.guest-rsvp-hint{font-size:var(--text-ui);color:var(--onyx);margin-top:12px;line-height:1.75}
.guest-rsvp-url-row{display:flex;gap:8px;margin-bottom:24px}
.guest-rsvp-url-row .fld-input{flex:1;font-size:var(--text-sm);padding:11px 14px;font-family:'Courier New',monospace;color:var(--bloodstone);background:white;border-color:rgba(146,38,48,.25)}
.guest-rsvp-qr-wrap{display:flex;gap:28px;align-items:center;flex-wrap:wrap;background:white;padding:24px;border:1px solid var(--border)}
#guestRsvpQrCanvas{flex-shrink:0;background:var(--white);padding:12px;border:1px solid var(--border)}
.guest-rsvp-qr-actions{flex:1;min-width:220px;display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.guest-rsvp-qr-actions .qr-dl-btn{width:100%;max-width:260px;text-align:center}
@media (max-width:720px){
  .guest-rsvp-section{padding:22px 20px}
  .guest-rsvp-qr-wrap{flex-direction:column;align-items:stretch}
  #guestRsvpQrCanvas{align-self:center}
}

.qr-section{margin-bottom:40px;padding:28px 32px;border:1px solid var(--border);background:var(--white)}
.qr-title{font-family:'Libre Baskerville',serif;font-size:1rem;color:var(--onyx);margin-bottom:4px}
.qr-sub{font-size:var(--text-ui);color:var(--onyx);margin-bottom:20px;line-height:1.75}
.qr-input-row{display:flex;gap:0;margin-bottom:16px}
.qr-input{flex:1;padding:11px 14px;border:1px solid var(--border);border-right:none;background:var(--ivory);font-family:'Montserrat',sans-serif;font-size:var(--text-ui);color:var(--onyx);outline:none;transition:border-color .3s;font-weight:300}
.qr-input:focus{border-color:var(--bloodstone)}
.qr-gen-btn{padding:var(--btn-pad-md);background:var(--bloodstone);border:none;color:var(--white);font-family:'Montserrat',sans-serif;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;cursor:pointer;white-space:nowrap;transition:background .3s;font-weight:600}
.qr-gen-btn:hover{background:var(--bloodstone-dk)}
.qr-output{display:none;align-items:flex-start;gap:24px;flex-wrap:wrap}
.qr-output.show{display:flex}
.qr-output .qr-canvas-wrap{padding:16px;background:white;border:1px solid var(--border)}
.qr-actions{display:flex;flex-direction:column;gap:10px;justify-content:center}
.qr-dl-btn{font-family:'Montserrat',sans-serif;font-size:var(--text-ui);letter-spacing:.14em;text-transform:uppercase;color:var(--white);background:var(--bloodstone);border:none;padding:10px 22px;cursor:pointer;transition:background .3s;font-weight:600}
.qr-dl-btn:hover{background:var(--bloodstone-dk)}
.qr-note{font-size:.71rem;color:var(--sage);font-style:italic;max-width:200px;line-height:1.65}
/* ── GUEST ADDRESS COLLECTOR ── */
.addr-section{margin-bottom:40px}
.addr-title{font-family:'Libre Baskerville',serif;font-size:1rem;color:var(--onyx);margin-bottom:4px}
.addr-sub{font-size:var(--text-ui);color:var(--sage);margin-bottom:20px;line-height:1.7}
.addr-form{background:rgba(241,236,230,.5);border:1px solid var(--border);padding:24px 28px;margin-bottom:20px}
.addr-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}
.addr-actions{display:flex;align-items:center;gap:12px;margin-top:14px;flex-wrap:wrap}
.addr-add-btn{font-family:'Montserrat',sans-serif;font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--white);background:var(--bloodstone);border:none;padding:var(--btn-pad-md);cursor:pointer;transition:background .3s;font-weight:600}
.addr-add-btn:hover{background:var(--bloodstone-dk)}
.addr-import-btn,.addr-export-btn{font-family:'Montserrat',sans-serif;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--onyx);background:transparent;border:1px solid var(--border);padding:9px 16px;cursor:pointer;transition:all .25s;font-weight:500}
.addr-import-btn{display:inline-block;font-size:var(--text-ui);letter-spacing:.14em;color:var(--bloodstone);padding:10px 14px}
.addr-import-btn:hover,.addr-export-btn:hover{border-color:var(--bloodstone);color:var(--bloodstone)}
.addr-table-wrap{border:1px solid var(--border);overflow:auto}
.addr-table{width:100%;border-collapse:collapse;min-width:600px}
.addr-table th{font-size:var(--text-ui);letter-spacing:.14em;text-transform:uppercase;color:var(--sage);padding:9px 12px;background:rgba(221,213,205,.3);border-bottom:1px solid var(--border);text-align:left}
.addr-table td{padding:9px 12px;font-size:.72rem;border-bottom:1px solid var(--border);color:var(--onyx)}
.addr-table tr:last-child td{border-bottom:none}
.addr-empty{text-align:center;padding:32px;font-size:.79rem;color:var(--sage)}
.addr-count{font-size:.71rem;color:var(--sage);letter-spacing:.1em}
/* ── SEATING CHART ── */
.seating-section{margin-bottom:60px}
.seating-title{font-family:'Libre Baskerville',serif;font-size:1rem;color:var(--onyx);margin-bottom:4px}
.seating-sub{font-size:var(--text-ui);color:var(--sage);margin-bottom:16px;line-height:1.75}
.seating-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.seating-tb-lbl{font-size:var(--text-ui);letter-spacing:.14em;text-transform:uppercase;color:var(--sage)}
.seating-tb-num{width:52px;padding:8px 10px;border:1px solid var(--border);font-family:'Montserrat',sans-serif;font-size:.78rem;color:var(--onyx);outline:none;text-align:center;background:var(--ivory);font-weight:300}
.seating-tb-num:focus{border-color:var(--bloodstone)}
.seating-apply-btn,.seating-export-btn{font-family:'Montserrat',sans-serif;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;padding:9px 18px;cursor:pointer;transition:all .25s;font-weight:600}
.seating-apply-btn{background:var(--bloodstone);border:none;color:var(--white)}
.seating-apply-btn:hover{background:var(--bloodstone-dk)}
.seating-export-btn{background:transparent;border:1px solid var(--border);color:var(--onyx)}
.seating-export-btn:hover{border-color:var(--bloodstone);color:var(--bloodstone)}
.seating-layout{display:grid;grid-template-columns:200px 1fr;gap:16px;min-height:400px}
.seating-guests-col{border:1px solid var(--border);background:var(--ivory)}
.seating-guests-hdr{padding:10px 14px;background:rgba(221,213,205,.4);border-bottom:1px solid var(--border);font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--sage)}
.seating-guest-chip{padding:8px 14px;font-size:.79rem;color:var(--onyx);border-bottom:1px solid rgba(221,213,205,.5);cursor:grab;transition:background .2s;user-select:none}
.seating-guest-chip:hover{background:rgba(221,213,205,.4)}
.seating-guest-chip.seated{opacity:.35;cursor:default}
.seating-tables-col{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;align-content:start}
.seating-table-box{border:2px solid var(--border);padding:12px;background:white;min-height:120px}
.seating-table-box.drag-over{border-color:var(--bloodstone);background:rgba(125,64,71,.04)}
.seating-table-box .seating-table-name{font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--sage);margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--border)}
.seated-guest{font-size:var(--text-xs);color:var(--onyx);padding:3px 0;display:flex;align-items:center;justify-content:space-between}
.seated-remove{background:none;border:none;color:rgba(182,166,151,.4);cursor:pointer;font-size:.79rem;padding:0 2px}
.seated-remove:hover{color:var(--bloodstone)}
.seating-drop-hint{font-size:.71rem;color:rgba(182,166,151,.3);font-style:italic;text-align:center;margin-top:16px}
/* ── MEAL PREFERENCE ── */
.meal-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-right:5px;vertical-align:middle}
.meal-dot.chicken{background:#C9945A}
.meal-dot.fish{background:#5A90C9}
.meal-dot.vegetarian{background:#5A9E6A}
.meal-dot.vegan{background:#7DB85A}
.meal-dot.kids{background:#C9A84C}
.meal-dot.none{background:rgba(182,166,151,.3)}
.meal-badge{display:inline-flex;align-items:center;font-size:.72rem;padding:2px 8px;border-radius:0;white-space:nowrap}
.meal-badge.chicken{background:rgba(201,148,90,.12);color:#9A6A2E}
.meal-badge.fish{background:rgba(90,144,201,.12);color:#2E5A9A}
.meal-badge.vegetarian{background:rgba(90,158,106,.12);color:#2E7040}
.meal-badge.vegan{background:rgba(125,184,90,.12);color:#3A7020}
.meal-badge.kids{background:rgba(201,168,76,.12);color:#7A5A18}
.meal-badge.none{background:rgba(182,166,151,.1);color:var(--sage)}
/* ── MEAL SUMMARY PANEL ── */
.meal-summary{background:white;border:1px solid var(--border);padding:22px 28px;margin-bottom:32px}
.meal-summary-title{font-family:'Libre Baskerville',serif;font-size:var(--text-md);color:var(--onyx);margin-bottom:16px}
.meal-bars{display:flex;flex-direction:column;gap:10px}
.meal-bar-row{display:flex;align-items:center;gap:10px}
.meal-bar-lbl{font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--onyx);width:100px;flex-shrink:0}
.meal-bar-track{flex:1;height:6px;background:rgba(221,213,205,.4);border-radius:0;overflow:hidden}
.meal-bar-fill{height:100%;border-radius:0;transition:width .5s ease}
.meal-bar-fill.chicken{background:#C9945A}
.meal-bar-fill.fish{background:#5A90C9}
.meal-bar-fill.vegetarian{background:#5A9E6A}
.meal-bar-fill.vegan{background:#7DB85A}
.meal-bar-fill.kids{background:#C9A84C}
.meal-bar-count{font-size:.72rem;color:var(--onyx);min-width:18px;text-align:right}
/* ── RUN OF SHOW ── */
.ros-section{margin-bottom:60px}
.ros-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.ros-start-lbl{font-size:var(--text-ui);letter-spacing:.14em;text-transform:uppercase;color:var(--sage)}
.ros-start-input{padding:8px 10px;border:1px solid var(--border);font-family:'Montserrat',sans-serif;font-size:.78rem;color:var(--onyx);outline:none;background:var(--ivory);width:90px;font-weight:300}
.ros-start-input:focus{border-color:var(--bloodstone)}
.ros-add-btn,.ros-export-btn{font-family:'Montserrat',sans-serif;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;padding:9px 18px;cursor:pointer;transition:all .25s;font-weight:600}
.ros-add-btn{background:var(--bloodstone);border:none;color:var(--white)}
.ros-add-btn:hover{background:var(--bloodstone-dk)}
.ros-export-btn{background:transparent;border:1px solid var(--border);color:var(--onyx)}
.ros-export-btn:hover{border-color:var(--bloodstone);color:var(--bloodstone)}
.ros-list{border:1px solid var(--border);background:white}
.ros-row{display:grid;grid-template-columns:22px 10px 56px 1fr 78px 26px;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border);transition:background .15s}
.ros-row:last-child{border-bottom:none}
.ros-row.drag-over{background:rgba(125,64,71,.04);outline:2px solid var(--bloodstone);outline-offset:-2px}
.ros-row.dragging{opacity:.4}
.ros-drag{color:rgba(182,166,151,.4);font-size:.85rem;cursor:grab;user-select:none;text-align:center}
.ros-drag:active{cursor:grabbing}
.ros-color-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.ros-time{font-family:'Libre Baskerville',serif;font-size:.8rem;color:var(--onyx);white-space:nowrap}
.ros-name-wrap{min-width:0}
.ros-name-input{font-family:'Montserrat',sans-serif;font-size:.78rem;color:var(--onyx);border:none;background:transparent;padding:2px 4px;width:100%;outline:none;border-bottom:1px solid transparent;transition:border-color .2s;font-weight:400}
.ros-name-input:focus{border-bottom-color:var(--bloodstone)}
.ros-notes-input{font-family:'Montserrat',sans-serif;font-size:var(--text-sm);color:var(--sage);border:none;background:transparent;padding:1px 4px;width:100%;outline:none;border-bottom:1px solid transparent;transition:border-color .2s;margin-top:2px;font-weight:300}
.ros-notes-input:focus{border-bottom-color:rgba(182,166,151,.4)}
.ros-dur-wrap{display:flex;align-items:center;gap:4px;justify-content:flex-end}
.ros-dur-input{width:40px;font-family:'Montserrat',sans-serif;font-size:.72rem;color:var(--onyx);border:1px solid transparent;background:transparent;padding:3px 4px;text-align:center;outline:none;transition:border-color .2s;font-weight:300}
.ros-dur-input:focus{border-color:var(--border)}
.ros-dur-lbl{font-size:.63rem;letter-spacing:.08em;text-transform:uppercase;color:var(--sage)}
.ros-del{background:none;border:none;color:rgba(182,166,151,.3);cursor:pointer;font-size:.72rem;padding:2px 4px;transition:color .2s}
.ros-del:hover{color:var(--bloodstone)}
.ros-foot{padding:10px 14px;background:rgba(221,213,205,.2);border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.ros-foot-lbl{font-size:var(--text-ui);letter-spacing:.16em;text-transform:uppercase;color:var(--sage)}
.ros-foot-val{font-family:'Libre Baskerville',serif;font-size:.86rem;color:var(--onyx)}
/* ── TABLE NAME GENERATOR ── */
.tng-toggle-btn{font-family:'Montserrat',sans-serif;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;padding:9px 18px;cursor:pointer;transition:all .25s;background:transparent;border:1px solid var(--border);color:var(--onyx);font-weight:500}
.tng-toggle-btn:hover,.tng-toggle-btn.active{border-color:var(--bloodstone);color:var(--bloodstone)}
.tng-panel{background:rgba(241,236,230,.5);border:1px solid var(--border);border-top:none;padding:20px 24px;margin-bottom:16px;display:none}
.tng-panel.open{display:block}
.tng-inner-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:16px;flex-wrap:wrap}
.tng-lbl{font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--sage);flex-shrink:0}
.tng-select{flex:1;min-width:160px;padding:8px 12px;border:1px solid var(--border);font-family:'Montserrat',sans-serif;font-size:var(--text-ui);color:var(--onyx);background:var(--ivory);outline:none;cursor:pointer;font-weight:300}
.tng-select:focus{border-color:var(--bloodstone)}
.tng-gen-btn{font-family:'Montserrat',sans-serif;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;padding:9px 18px;cursor:pointer;background:var(--bloodstone);border:none;color:var(--white);transition:all .25s;font-weight:600}
.tng-gen-btn:hover{background:var(--bloodstone-dk)}
.tng-shuffle-btn{font-family:'Montserrat',sans-serif;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;padding:9px 14px;cursor:pointer;background:transparent;border:1px solid var(--border);color:var(--onyx);transition:all .25s;font-weight:500}
.tng-shuffle-btn:hover{border-color:var(--bloodstone);color:var(--bloodstone)}
.tng-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px;margin-bottom:12px}
.tng-chip{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--ivory);border:1px solid var(--border)}
.tng-chip-num{font-size:var(--text-ui);letter-spacing:.16em;text-transform:uppercase;color:var(--sage);white-space:nowrap;flex-shrink:0}
.tng-chip-input{flex:1;font-size:.72rem;color:var(--onyx);border:none;background:transparent;outline:none;font-family:'Montserrat',sans-serif;min-width:0;font-weight:300}
.tng-chip-input:focus{border-bottom:1px solid var(--bloodstone)}
.tng-apply-btn{font-family:'Montserrat',sans-serif;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;padding:var(--btn-pad-sm);cursor:pointer;background:var(--bloodstone);border:none;color:var(--white);transition:background .25s;font-weight:600}
.tng-apply-btn:hover{background:var(--bloodstone-dk)}
/* ── RSVP FILTER + EXPORT ROW ── */
.rsvp-list-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;flex-wrap:wrap;gap:10px}
.rsvp-filter-row{display:flex;gap:6px;flex-wrap:wrap}
.rsvp-filter-btn{font-family:'Montserrat',sans-serif;font-size:var(--text-ui);letter-spacing:.12em;text-transform:uppercase;padding:6px 14px;background:transparent;border:1px solid var(--border);color:var(--onyx);cursor:pointer;transition:all .2s;font-weight:500}
.rsvp-filter-btn:hover{border-color:var(--bloodstone);color:var(--bloodstone)}
.rsvp-filter-btn.active{background:var(--bloodstone);border-color:var(--bloodstone);color:var(--white)}
.rsvp-export-btn{font-family:'Montserrat',sans-serif;font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;padding:6px 14px;background:transparent;border:1px solid var(--border);color:var(--onyx);cursor:pointer;transition:all .25s;font-weight:500}
.rsvp-export-btn:hover{border-color:var(--bloodstone);color:var(--bloodstone)}
/* ── PLUS-ONE CHIP ── */
.plus-one-chip{display:inline-block;font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;background:rgba(125,64,71,.08);color:var(--bloodstone);padding:1px 6px;margin-left:5px;vertical-align:middle}

/* ── RELATIONSHIP CHIPS ── */
.rel-chip{display:inline-flex;align-items:center;font-family:'Montserrat',sans-serif;font-size:var(--text-xs);font-weight:600;letter-spacing:.14em;text-transform:uppercase;padding:3px 9px;margin:0;border:none;border-radius:0;white-space:nowrap}
.rel-chip.rel-bride_family{background:rgba(140,92,106,.1);color:#6B3D4E}
.rel-chip.rel-groom_family{background:rgba(58,90,127,.1);color:#2E4A6B}
.rel-chip.rel-family{background:rgba(146,38,48,.08);color:var(--bloodstone)}
.rel-chip.rel-friend{background:rgba(64,100,95,.1);color:var(--sage-dk)}
.rel-chip.rel-work{background:rgba(184,147,90,.12);color:#7A5020}
.rel-chip.rel-plus_one{background:rgba(45,16,21,.06);color:var(--sage)}

/* ── ADDRESS TOGGLE + PANEL (inside guest form) ── */
.rsvp-addr-toggle{background:transparent;border:1px dashed var(--border);width:100%;padding:12px 14px;font-family:'Montserrat',sans-serif;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--onyx);cursor:pointer;margin-top:8px;transition:all .25s;font-weight:400}
.rsvp-addr-toggle:hover{color:var(--bloodstone);border-color:var(--bloodstone)}
.rsvp-addr-panel{background:rgba(221,213,205,.18);padding:18px;margin-top:10px;border:1px solid var(--border)}
.rsvp-addr-panel .rsvp-fld-row{margin-bottom:10px}
.rsvp-addr-line{font-size:.78rem;color:var(--sage);margin-top:4px;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ── MEAL SUMMARY: zero-state bars + hint ── */
.meal-bar-row.is-zero{opacity:.45}
.meal-bar-row.is-zero .meal-bar-fill{background:rgba(182,166,151,.25)!important}
.meal-summary-hint{font-size:.72rem;color:var(--onyx);letter-spacing:.06em;margin-top:14px;text-align:right}

/* ── SEATING PROGRESS BAR ── */
.seating-progress{background:rgba(221,213,205,.2);padding:16px 20px;margin-bottom:18px;border-left:3px solid var(--bloodstone)}
.seating-progress:empty{display:none}
.seating-prog-empty{font-size:.78rem;color:var(--sage);font-style:italic}
.seating-prog-bar{height:6px;background:rgba(221,213,205,.5);overflow:hidden;margin-bottom:8px}
.seating-prog-fill{height:100%;background:var(--bloodstone);transition:width .4s ease}
.seating-prog-fill.done{background:var(--sage-dk)}
.seating-prog-label{font-size:var(--text-xs);color:var(--onyx);letter-spacing:.08em}
.seating-prog-check{color:var(--sage-dk);font-weight:500;margin-left:10px}

/* ── MOBILE CARDS: hidden on desktop, table hidden on mobile ── */
.rsvp-cards{display:none}
.rsvp-card{background:white;border:1px solid var(--border);padding:16px 18px;margin-bottom:10px;position:relative}
.rsvp-card-hdr{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px}
.rsvp-card-name{font-family:'Libre Baskerville',serif;font-size:.95rem;color:var(--onyx);line-height:1.3}
.rsvp-card-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid var(--border)}
.rsvp-card-kv{display:flex;justify-content:space-between;gap:12px;font-size:.72rem;padding:5px 0}
.rsvp-card-kv > span{color:var(--sage);text-transform:uppercase;letter-spacing:.08em;font-size:var(--text-ui)}
.rsvp-card-kv > strong{color:var(--onyx);font-weight:500;text-align:right;max-width:70%;word-break:break-word}
.rsvp-card-empty{text-align:center;padding:32px;font-size:.72rem;color:var(--sage);font-style:italic}
@media (max-width:720px){
  .rsvp-table{display:none!important}
  .rsvp-cards{display:block}
  .rsvp-stats{grid-template-columns:1fr 1fr}
  .rsvp-fld-row{grid-template-columns:1fr!important}
  .seating-toolbar{flex-wrap:wrap;gap:8px}
}
/* ── SEATING CHIP MEAL DOT ── */
.seating-guest-chip{padding:8px 14px;font-size:.79rem;color:var(--onyx);border-bottom:1px solid rgba(221,213,205,.5);cursor:grab;transition:background .2s;user-select:none;display:flex;align-items:center;gap:6px}
/* ── SOCIAL ASSETS ── */
.social-assets-modal{display:none;position:fixed;inset:0;background:var(--overlay-bg);z-index:700;align-items:center;justify-content:center;padding:16px}
.social-assets-modal.open{display:flex}
.social-box{background:var(--white);width:100%;max-width:700px;max-height:92vh;overflow-y:auto;box-shadow:var(--shl)}
.social-box-hdr{background:var(--ivory);padding:22px 28px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border)}
.social-box-title{font-family:'Libre Baskerville',serif;font-size:1rem;color:var(--onyx-dk)}
.social-close{background:none;border:none;color:var(--sage);font-size:1.5rem;cursor:pointer;padding:0;width:32px;height:32px;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:color .2s}
.social-tabs{display:flex;border-bottom:1px solid var(--border)}
.social-tab{flex:1;padding:12px;font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--sage);background:transparent;border:none;cursor:pointer;transition:all .25s;font-family:'Montserrat',sans-serif;font-weight:500}
.social-tab.active{color:var(--onyx);border-bottom:2px solid var(--bloodstone)}
.social-preview-area{padding:24px;display:flex;justify-content:center}
.social-canvas-wrap{position:relative;width:270px;height:480px;flex-shrink:0}
.social-canvas-wrap canvas{width:100%;height:100%}
.social-controls{padding:0 24px 24px;display:flex;flex-direction:column;gap:12px}
.social-dl-btn{font-family:'Montserrat',sans-serif;font-size:.71rem;letter-spacing:.2em;text-transform:uppercase;color:var(--white);background:var(--bloodstone);border:none;padding:12px;cursor:pointer;transition:background .3s;width:100%;font-weight:600}
.social-dl-btn:hover{background:var(--bloodstone-dk)}
.social-regen-btn{font-family:'Montserrat',sans-serif;font-size:.71rem;letter-spacing:.2em;text-transform:uppercase;color:var(--onyx);background:var(--white);border:1px solid var(--border);padding:11px;cursor:pointer;transition:all .25s;width:100%;font-weight:500}
.social-regen-btn:hover{border-color:var(--bloodstone);color:var(--bloodstone)}
/* ── VENDOR KIT MODAL ── */
.vendor-modal{display:none;position:fixed;inset:0;background:var(--overlay-bg);z-index:700;align-items:center;justify-content:center;padding:16px}
.vendor-modal.open{display:flex}
.vendor-box{background:var(--white);width:100%;max-width:640px;max-height:92vh;overflow-y:auto;box-shadow:var(--shl)}
.vendor-box-hdr{background:var(--ivory);padding:22px 28px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border)}
.vendor-box-title{font-family:'Libre Baskerville',serif;font-size:1rem;color:var(--onyx-dk)}
.vendor-close{background:none;border:none;color:var(--sage);font-size:1.5rem;cursor:pointer;padding:0;width:32px;height:32px;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:color .2s}
.vendor-body{padding:32px}
.vendor-event-title{font-family:'Libre Baskerville',serif;font-size:1.8rem;color:var(--onyx);margin-bottom:4px}
.vendor-event-sub{font-size:var(--text-ui);color:var(--sage);letter-spacing:.1em;margin-bottom:28px}
.vendor-section{margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid var(--border)}
.vendor-section:last-of-type{border-bottom:none}
.vendor-sec-lbl{font-size:var(--text-ui);letter-spacing:.26em;text-transform:uppercase;color:var(--sage);margin-bottom:10px;display:block}
.vendor-palette-row{display:flex;gap:8px}
.vendor-swatch{height:48px;flex:1;border:1px solid rgba(0,0,0,.07)}
.vendor-swatch-lbl{font-size:var(--text-xs);color:var(--sage);text-align:center;margin-top:4px}
.vendor-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.vendor-detail-item{}
.vendor-detail-key{font-size:.63rem;letter-spacing:.22em;text-transform:uppercase;color:var(--sage);display:block;margin-bottom:2px}
.vendor-detail-val{font-family:'Libre Baskerville',serif;font-size:var(--text-md);color:var(--onyx)}
.vendor-actions{display:flex;gap:10px;padding:0 32px 28px;flex-wrap:wrap}
.vendor-print-btn{font-family:'Montserrat',sans-serif;font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--white);background:var(--bloodstone);border:none;padding:var(--btn-pad-md);cursor:pointer;transition:background .3s;font-weight:600}
.vendor-print-btn:hover{background:var(--bloodstone-dk)}
.vendor-copy-btn{font-family:'Montserrat',sans-serif;font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--onyx);background:transparent;border:1px solid var(--border);padding:var(--btn-pad-md);cursor:pointer;transition:all .25s;font-weight:500}
.vendor-copy-btn:hover{border-color:var(--bloodstone);color:var(--bloodstone)}
/* ── APPROVE & SIGN CERT PRINT ── */
@media print{
  body > *:not(#certPrint){display:none!important}
  #certPrint{display:block!important}
}
#certPrint{display:none}
/* ── SUITE TOOL BUTTONS ── */
.suite-tools-bar{
  margin:0 48px;padding:14px 0;
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  border-bottom:1px solid var(--border);
}
.suite-tool-btn{
  font-family:'Montserrat',sans-serif;font-size:var(--text-sm);letter-spacing:.16em;text-transform:uppercase;
  padding:10px 20px;border:1px solid var(--border);background:var(--white);color:var(--onyx);
  cursor:pointer;transition:all .25s;font-weight:500;
}
.suite-tool-btn:hover{border-color:var(--bloodstone);color:var(--bloodstone)}
/* ── HIDDEN INTENTIONS ── */
.intentions-card{margin:20px 48px 0;background:var(--white);border:1px solid var(--border);overflow:hidden;box-shadow:var(--sh)}
.intentions-sealed{padding:28px 32px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.intentions-sealed-txt{font-family:'Libre Baskerville',serif;font-size:1rem;color:var(--onyx-dk)}
.intentions-sealed-txt em{font-style:italic;color:var(--bloodstone)}
.intentions-sealed-sub{font-family:'Montserrat',sans-serif;font-size:var(--text-sm);color:var(--sage);margin-top:5px;font-weight:300}
.intentions-reveal-btn{font-family:'Montserrat',sans-serif;font-size:var(--text-xs);letter-spacing:.22em;text-transform:uppercase;color:var(--white);background:var(--bloodstone);border:none;padding:12px 28px;cursor:pointer;transition:background .3s;white-space:nowrap;font-weight:600}
.intentions-reveal-btn:hover{background:var(--bloodstone-dk)}
.intentions-body{display:none;padding:0 32px 32px}
.intentions-body.open{display:block;animation:bfadeIn .5s ease}
.intentions-list{display:flex;flex-direction:column;gap:16px}
.intention-item{border:1px solid var(--border);padding:18px 20px;background:var(--ivory)}
.intention-heard-lbl{font-family:'Montserrat',sans-serif;font-size:.63rem;letter-spacing:.22em;text-transform:uppercase;color:var(--bloodstone);opacity:.8;display:block;margin-bottom:5px;font-weight:600}
.intention-heard{font-family:'Libre Baskerville',serif;font-size:var(--text-md);color:var(--onyx-dk);font-style:italic;margin-bottom:12px}
.intention-built-lbl{font-family:'Montserrat',sans-serif;font-size:.63rem;letter-spacing:.22em;text-transform:uppercase;color:var(--sage);opacity:.8;display:block;margin-bottom:4px;font-weight:600}
.intention-built{font-family:'Montserrat',sans-serif;font-size:.72rem;color:var(--sage);line-height:1.75;font-weight:300}
/* ── INTENTIONS ADMIN EDIT PANEL ── */
.intentions-admin{margin:8px 48px 0;border:2px dashed rgba(201,168,76,.3);padding:24px;background:rgba(201,168,76,.04);display:none}
.intentions-admin.visible{display:block}
.int-admin-lbl{font-size:var(--text-ui);letter-spacing:.22em;text-transform:uppercase;color:var(--sage);display:block;margin-bottom:6px}
.int-admin-textarea{width:100%;padding:10px 12px;border:1px solid var(--border);background:var(--ivory);font-family:'Montserrat',sans-serif;font-size:var(--text-ui);color:var(--onyx);outline:none;resize:vertical;min-height:64px;transition:border-color .3s;margin-bottom:12px;font-weight:300}
.int-admin-textarea:focus{border-color:var(--bloodstone)}
.int-admin-item{border:1px solid var(--border);padding:14px;margin-bottom:10px;background:white}
.int-admin-save{font-family:'Montserrat',sans-serif;font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--white);background:var(--bloodstone);border:none;padding:11px 28px;cursor:pointer;transition:background .3s;font-weight:600}
.int-admin-save:hover{background:var(--bloodstone-dk)}
.int-admin-add{font-family:'Montserrat',sans-serif;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--onyx);background:transparent;border:1px solid var(--border);padding:9px 18px;cursor:pointer;margin-right:10px;transition:all .25s;font-weight:500}
.int-admin-add:hover{border-color:var(--bloodstone);color:var(--bloodstone)}
/* ── SUITE SHARE BUTTON ── */
.suite-share-btn{
  font-family:'Montserrat',sans-serif;font-size:var(--text-sm);letter-spacing:.18em;text-transform:uppercase;
  color:var(--sage);background:var(--white);border:1px solid var(--border);
  padding:10px 20px;cursor:pointer;transition:all .25s;font-weight:500;
}
.suite-share-btn:hover{border-color:var(--bloodstone);color:var(--bloodstone)}

/* ── SUITE DEADLINE COUNTDOWN ── */
.suite-deadline{
  background:rgba(146,38,48,.04);border-bottom:1px solid var(--border);
  padding:14px 48px;text-align:center;
}
.dl-sentence{font-family:'Montserrat',sans-serif;font-size:var(--text-body);color:var(--onyx);font-style:italic;margin:0;line-height:1.7;font-weight:300}
.dl-sentence strong{color:var(--bloodstone);font-style:italic;font-weight:700;font-size:var(--text-body)}

/* ── BRIEF SUMMARY CARD ── */
.brief-summary-card{margin:20px 48px 0;border:1px solid var(--border);overflow:hidden}
.brief-summary-toggle{
  padding:15px 22px;background:rgba(241,236,230,.5);
  display:flex;justify-content:space-between;align-items:center;
  cursor:pointer;transition:background .25s;
}
.brief-summary-toggle:hover{background:var(--greige)}
.brief-summary-toggle-lbl{font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--onyx)}
.brief-summary-toggle-icon{font-size:var(--text-sm);color:var(--sage);transition:transform .3s;line-height:1}
.brief-summary-toggle-icon.open{transform:rotate(45deg)}
.brief-summary-content{display:none;padding:20px 22px}
.brief-summary-content.open{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px}
.bsc-item{display:flex;flex-direction:column;gap:3px}
.bsc-lbl{font-size:.63rem;letter-spacing:.24em;text-transform:uppercase;color:var(--sage)}
.bsc-val{font-family:'Libre Baskerville',serif;font-size:.85rem;color:var(--onyx);line-height:1.3}
.bsc-palette{display:flex;gap:5px;margin-top:4px}
.bsc-swatch{width:22px;height:22px;border:1px solid rgba(0,0,0,.08)}

/* ── ITEMS CHECKLIST ── */
.items-section{margin:20px 48px 0}
.items-sec-hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--border)}
.items-sec-title{font-family:'Montserrat',sans-serif;font-size:var(--text-md);font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--onyx)}
.items-sec-sub{font-size:.84rem;color:rgba(201,168,76,.9);letter-spacing:.08em;font-weight:800}
.items-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.item-card{border:1px solid var(--border);padding:12px 14px;display:flex;flex-direction:column;gap:4px;background:white}
.item-card-top{display:flex;align-items:center;gap:8px}
.item-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.item-status-dot.pending{background:rgba(182,166,151,.3)}
.item-status-dot.in_progress{background:var(--bloodstone);animation:pulse 1.8s infinite}
.item-status-dot.ready{background:var(--sage-dk)}
.item-name{font-size:var(--text-body);color:var(--onyx);font-weight:600}
.item-status-txt{font-size:var(--text-ui);letter-spacing:.14em;text-transform:uppercase;color:var(--onyx);font-weight:600}
.item-view-btn{display:inline-block;margin-top:6px;font-size:var(--text-sm);letter-spacing:.1em;text-transform:uppercase;color:var(--sage);text-decoration:none;border:1px solid var(--sage);border-radius:0;padding:2px 7px;font-weight:600;transition:all .2s}
.item-view-btn:hover{color:var(--onyx);border-color:var(--onyx);background:rgba(0,0,0,.03)}

/* ── BRANDBOOK GRID (per-piece preview slots) ── */
.brandbook-grid{
  display:grid;grid-template-columns:repeat(2,1fr);
  gap:48px;padding:64px 48px;background:var(--ivory);
  align-content:start;
  max-width:1200px;margin:0 auto;
}
.bb-slot{
  background:#fff;border:1px solid rgba(45,16,21,.1);
  display:flex;flex-direction:column;overflow:hidden;
  transition:all .3s ease;
  box-shadow:0 2px 8px rgba(45,16,21,.06);
}
.bb-slot:hover{
  transform:translateY(-4px);
  box-shadow:0 16px 48px rgba(45,16,21,.12);
}
.bb-preview{
  position:relative;aspect-ratio:4/5;background:#2D1015;
  display:flex;align-items:center;justify-content:center;overflow:hidden;
}
.bb-preview.empty::before{
  content:'';position:absolute;inset:0;
  background:
    linear-gradient(135deg,rgba(64,100,95,.04) 25%,transparent 25%,transparent 50%,rgba(64,100,95,.04) 50%,rgba(64,100,95,.04) 75%,transparent 75%) 0/24px 24px,
    #2D1015;
}
.bb-preview-empty-label{
  position:relative;font-family:'Montserrat',sans-serif;font-size:var(--text-xs);
  letter-spacing:.28em;text-transform:uppercase;color:rgba(250,246,238,.4);
  text-align:center;line-height:1.8;
}
.bb-preview-empty-label strong{
  display:block;font-family:'Libre Baskerville',serif;font-size:.85rem;
  letter-spacing:.04em;color:rgba(250,246,238,.85);text-transform:none;
  font-weight:400;font-style:italic;margin-bottom:6px;
}
.bb-preview iframe,.bb-preview img{
  width:100%;height:100%;border:none;display:block;object-fit:cover;background:#fff;
}
.bb-preview iframe{pointer-events:none}
.bb-preview .bb-open{
  position:absolute;top:10px;right:10px;z-index:2;
  background:rgba(45,16,21,.75);color:#FAF6EE;border:none;padding:6px 12px;
  font-family:'Montserrat',sans-serif;font-size:.78rem;letter-spacing:.18em;
  text-transform:uppercase;cursor:pointer;backdrop-filter:blur(4px);font-weight:500;
}
.bb-preview .bb-open:hover{background:var(--bloodstone)}
.bb-meta{padding:42px 32px 36px;border-top:none;flex:1;display:flex;flex-direction:column}
.bb-meta-top{display:flex;flex-direction:column;align-items:flex-start;gap:16px;margin-bottom:24px}
.bb-piece-name{
  font-family:'Libre Baskerville',serif;font-size:1.3rem;color:var(--onyx);font-weight:400;font-style:normal;letter-spacing:.01em;line-height:1.2;
}
.bb-status-pill{
  font-size:.79rem;letter-spacing:.12em;text-transform:uppercase;
  padding:10px 16px;border-radius:0;
  display:inline-flex;align-items:center;gap:0;flex-shrink:0;border:none;
  font-weight:700;
}
.bb-status-pill::before{
  content:'';display:none;
}
.bb-status-pill.pending{color:#40645F;background:rgba(64,100,95,.15);}
.bb-status-pill.in_progress{color:#922630;background:rgba(146,38,48,.15);}
.bb-status-pill.ready,.bb-status-pill.approved{color:#2D6A4F;background:rgba(45,106,79,.15);}
.bb-status-pill.approved::after{content:' ✓';}
.bb-piece-sub{font-size:.78rem;color:var(--onyx);letter-spacing:.04em;line-height:1.55}
.bb-rev-counter{
  font-size:var(--text-ui);letter-spacing:.1em;text-transform:uppercase;font-weight:600;
  color:rgba(58,53,48,.45);margin-top:8px;margin-bottom:16px;
}
.bb-rev-counter.partial{color:rgba(58,53,48,.6);}
.bb-rev-counter.at-limit{color:var(--bloodstone);}
.bb-rev-counter.at-limit a{color:inherit;text-decoration:underline;text-underline-offset:2px;}
.bb-piece-desc{
  margin-top:12px;padding:14px 16px;border:1px solid var(--border);
  background:var(--ivory);
}
.bb-piece-desc-lbl{
  display:block;font-family:'Montserrat',sans-serif;font-size:.63rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--gold);margin-bottom:8px;font-weight:600;font-style:normal;
}
.bb-piece-desc-body{
  font-family:'Libre Baskerville',serif;font-size:.79rem;color:var(--onyx);
  line-height:1.8;font-style:italic;
}
.bb-piece-note{
  display:block;width:100%;box-sizing:border-box;
  margin-top:12px;padding:10px 12px;
  border:1px solid rgba(200,189,182,.3);background:rgba(200,189,182,.04);
  font-family:'Libre Baskerville',serif;font-size:var(--text-ui);color:var(--onyx);
  line-height:1.75;font-style:italic;resize:vertical;min-height:56px;
  outline:none;transition:border-color .2s,background .2s;
}
.bb-piece-note:focus{border-color:rgba(201,168,76,.5);background:#fff}
.bb-piece-note::placeholder{font-style:italic;color:rgba(182,166,151,.45)}
.bb-actions{display:flex;gap:12px;border-top:1px solid rgba(200,189,182,.15)}
.bb-action-approve,.bb-action-revise{
  flex:1;padding:15px 8px;border:none;background:none;cursor:pointer;
  font-family:'Montserrat',sans-serif;font-size:var(--text-sm);letter-spacing:.18em;text-transform:uppercase;
  transition:all .25s;display:flex;align-items:center;justify-content:center;gap:6px;font-weight:500;
}
.bb-action-approve{color:var(--sage-dk);border-right:1px solid rgba(200,189,182,.15)}
.bb-action-approve:hover{background:rgba(45,106,79,.08)}
.bb-action-approve.active{background:rgba(45,106,79,.12);color:#245c3e;cursor:default}
.bb-action-revise{color:var(--bloodstone)}
.bb-action-revise:hover{background:rgba(125,64,71,.08)}
.bb-action-revise.open{background:rgba(125,64,71,.08)}
.bb-action-history{
  flex:1;padding:15px 8px;border:none;background:none;cursor:pointer;
  font-family:'Montserrat',sans-serif;font-size:var(--text-sm);letter-spacing:.18em;text-transform:uppercase;
  font-weight:500;color:var(--text-2);transition:all .25s;display:flex;align-items:center;justify-content:center;
  white-space:nowrap;
}
.bb-action-history:hover{background:rgba(45,16,21,.05)}
.bb-thumb{
  overflow:hidden;height:180px;background:#2D1015;
  position:relative;cursor:pointer;
  border-bottom:1px solid rgba(45,16,21,.08);
}
.bb-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.bb-thumb-frame{
  width:286%;height:514px;
  transform:scale(0.35);transform-origin:top left;
  pointer-events:none;border:none;background:#fff;
}
.bb-thumb-overlay{position:absolute;inset:0;cursor:pointer;}
.bb-thumb-html-badge{
  position:absolute;bottom:12px;left:50%;transform:translateX(-50%);
  background:rgba(45,16,21,.62);backdrop-filter:blur(6px);
  border:1px solid rgba(201,168,76,.28);border-radius:0;
  padding:5px 12px;white-space:nowrap;pointer-events:none;
  font-family:'Montserrat',sans-serif;font-size:var(--text-xs);letter-spacing:.14em;
  text-transform:uppercase;color:#C9A84C;font-weight:600;
}
.bb-file-btns{display:flex;gap:8px;margin-top:auto;padding-top:20px;}
.bb-file-btn{
  padding:10px 20px;font-family:'Montserrat',sans-serif;font-size:.72rem;
  letter-spacing:.16em;text-transform:uppercase;font-weight:600;cursor:pointer;
  border:none;text-decoration:none;display:inline-flex;align-items:center;gap:5px;
  transition:background .2s;
}
.bb-file-open{background:#2D6A4F;color:#FAF6EE;}
.bb-file-open:hover{background:#3A7040;}
.bb-note-block{
  display:none;padding:18px 22px 16px;border-top:2px solid rgba(146,38,48,.1);
  background:var(--cream);
}
.bb-note-block.open{display:block}
.bb-note-ta{
  width:100%;min-height:80px;padding:12px 14px;border:1px solid var(--border-d);
  background:var(--ivory);font-family:'Libre Baskerville',serif;font-size:1rem;font-style:normal;
  color:var(--onyx);resize:none;outline:none;transition:border-color .2s;box-sizing:border-box;line-height:1.75;border-radius:0;
}
.bb-note-ta::placeholder{color:rgba(45,16,21,.28)}
.bb-note-ta:focus{border-color:rgba(146,38,48,.3)}
.bb-note-send{
  font-family:'Montserrat',sans-serif;font-size:.78rem;letter-spacing:.15em;text-transform:uppercase;
  background:rgba(139,68,68,.07);color:#8B4444;border:1px solid rgba(139,68,68,.25);padding:9px 16px;cursor:pointer;
  border-radius:0;transition:background .2s;font-weight:400;
}
.bb-note-send:hover{background:rgba(139,68,68,.14)}
.bb-note-confirm{font-size:.78rem;color:var(--onyx);letter-spacing:.06em}
/* Revision note blocks — client note + history */
.rev-active-section-lbl,.rev-hist-section-lbl,.rev-hist-version-lbl,.rev-hist-date-lbl,.rev-hist-designer-lbl,.rev-hist-pending-lbl{
  display:block;font-family:'Montserrat',sans-serif;font-size:var(--text-xs);letter-spacing:.22em;
  text-transform:uppercase;color:var(--bloodstone);margin-bottom:8px;font-weight:600;font-style:normal;
}
.rev-hist-section-lbl{color:var(--onyx);opacity:.45;margin-bottom:14px;}
.rev-hist-designer-lbl{color:var(--sage);}
.rev-hist-pending-lbl{color:var(--sage);font-style:italic;opacity:.7;}
.rev-active-client-txt,.rev-hist-client-txt,.rev-hist-designer-txt{
  font-family:'Montserrat',sans-serif;font-size:var(--text-body);color:var(--onyx);
  line-height:1.7;font-style:normal;white-space:pre-wrap;word-break:break-word;
}
/* Historical version cards — full .bb-slot format, muted */
.bb-version-separator{
  display:flex;align-items:center;gap:12px;padding:18px 22px 0;
  font-size:.63rem;letter-spacing:.26em;text-transform:uppercase;
  color:rgba(182,166,151,.42);
}
.bb-version-separator::before,.bb-version-separator::after{
  content:'';flex:1;height:1px;background:rgba(200,189,182,.14);
}
.bb-slot-historical{opacity:.72;border-top:1px solid rgba(200,189,182,.08);}
.bb-slot-historical .bb-preview{border-bottom:1px solid rgba(200,189,182,.08);}
.bb-slot-historical .bb-actions{display:none!important;}
/* V0/V1/V2 version toggle strip */
.bb-version-strip{display:flex;border-bottom:1px solid var(--border);background:var(--ivory);gap:4px;padding:8px;border-radius:0;margin-bottom:16px;margin-top:6px;}
.bb-vtab{
  flex:1;padding:12px 10px;background:var(--white);border:1.5px solid var(--border);border-radius:0;
  font-family:'Montserrat',sans-serif;font-size:var(--text-ui);font-weight:500;letter-spacing:.18em;text-transform:uppercase;
  color:var(--sage);cursor:pointer;transition:all .25s;white-space:nowrap;
}
.bb-vtab:last-child{border-right:1.5px solid var(--border)}
.bb-vtab:hover{color:var(--onyx);background:var(--ivory);border-color:var(--sage)}
.bb-vtab.bb-vtab-active{color:var(--white);background:var(--bloodstone);font-weight:700;border-color:var(--bloodstone)}
.reject-all-block{margin-top:20px;border-top:1px solid rgba(200,189,182,.12);padding-top:20px}
.reject-all-toggle{
  background:var(--white);border:1px solid var(--border);color:var(--onyx);
  font-family:'Montserrat',sans-serif;font-size:var(--text-sm);letter-spacing:.2em;text-transform:uppercase;
  padding:12px 28px;cursor:pointer;transition:all .3s;display:inline-flex;align-items:center;gap:10px;font-weight:500;
}
.reject-all-toggle:hover{border-color:var(--bloodstone);color:var(--bloodstone)}
.reject-all-notes{display:none;margin-top:18px;text-align:left}
.reject-all-notes.open{display:block}
.reject-all-notes .bb-piece-note{color:var(--onyx);border-color:var(--border)}
.reject-all-notes .bb-piece-note::placeholder{color:var(--sage)}
.reject-all-label{
  font-size:var(--text-sm);letter-spacing:.18em;text-transform:uppercase;color:var(--onyx);margin-bottom:10px;
}
.brandbook-empty{
  grid-column:1/-1;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  min-height:calc(100vh - 360px);
  text-align:center;color:var(--sage);
  font-family:'Libre Baskerville',serif;font-style:italic;font-size:1.15rem;line-height:1.6;
}
@media (max-width:900px){
  .brandbook-grid{grid-template-columns:1fr;gap:32px;padding:48px 32px}
}
@media (max-width:600px){
  .brandbook-grid{padding:32px 20px;gap:24px}
  .bb-meta{padding:24px}
}

/* ── UPGRADE SECTION ── */
.upgrade-section{margin:32px 48px 8px;display:none;border-top:1px solid var(--border);padding-top:28px}
.upgrade-section.visible{display:block}
.upgrade-hdr{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}
.upgrade-eyebrow{font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--bloodstone);font-family:'Montserrat',sans-serif;font-weight:600}
.upgrade-title{font-family:'Libre Baskerville',serif;font-size:1.15rem;color:var(--onyx);margin-bottom:4px}
.upgrade-sub{font-size:.78rem;color:rgba(45,16,21,.55);line-height:1.7;margin-bottom:24px;max-width:480px}
.upgrade-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.upgrade-card{border:1px solid var(--border);background:var(--white);padding:24px 22px;display:flex;flex-direction:column;gap:6px;position:relative;transition:border-color .25s,box-shadow .25s}
.upgrade-card:hover{border-color:var(--bloodstone);box-shadow:var(--sh-hover)}
.upgrade-card-badge{font-size:var(--text-ui);letter-spacing:.18em;text-transform:uppercase;color:var(--bloodstone);font-family:'Montserrat',sans-serif;margin-bottom:2px;font-weight:600}
.upgrade-card-name{font-family:'Libre Baskerville',serif;font-size:1rem;color:var(--onyx)}
.upgrade-card-pieces{font-size:var(--text-sm);color:rgba(45,16,21,.55);line-height:1.8;margin:6px 0 10px;letter-spacing:.02em}
.upgrade-card-price{font-size:var(--text-ui);letter-spacing:.06em;color:rgba(45,16,21,.45);margin-bottom:14px}
.upgrade-card-price strong{font-size:var(--text-md);color:var(--onyx);font-weight:600;letter-spacing:0}
.upgrade-card-tagline{font-family:'Libre Baskerville',serif;font-size:.78rem;color:var(--bloodstone);font-style:italic;margin-bottom:6px}
.upgrade-card-btn{font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;font-family:'Montserrat',sans-serif;background:var(--bloodstone);color:var(--white);border:none;padding:11px 18px;cursor:pointer;transition:background .25s;text-align:center;text-decoration:none;display:block;margin-top:auto;font-weight:600}
.upgrade-card-btn:hover{background:var(--bloodstone-dk)}
@media(max-width:600px){.upgrade-section{margin:24px 20px 0}}

/* ── ADDON DESIGN PICKER OVERLAY ── */
.addon-overlay{position:fixed;inset:0;background:var(--overlay-bg);z-index:900;display:none;overflow-y:auto;-webkit-overflow-scrolling:touch}
.addon-overlay.open{display:block}
.addon-sheet{background:#FAF6EE;width:100%;max-width:800px;margin:60px auto 0;padding:40px 40px 48px;position:relative}
.addon-sheet-eyebrow{font-size:.63rem;letter-spacing:.32em;text-transform:uppercase;color:var(--bloodstone);margin-bottom:10px}
.addon-sheet-title{font-family:'Libre Baskerville',serif;font-size:1.35rem;font-weight:400;color:var(--onyx);margin-bottom:6px}
.addon-sheet-title em{font-style:italic;color:var(--bloodstone)}
.addon-sheet-sub{font-size:.79rem;color:var(--sage);line-height:1.7;margin-bottom:24px}
.addon-cat-row{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:16px}
.addon-cat-btn{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;padding:5px 13px;border:1px solid rgba(45,16,21,.1);background:var(--ivory);color:var(--sage);cursor:pointer;font-family:'Montserrat',sans-serif;transition:all .18s;font-weight:500}
.addon-cat-btn.active{border-color:var(--onyx);color:var(--onyx);background:rgba(45,16,21,.04)}
.addon-pill-grid{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:20px}
.addon-pill{display:inline-flex;align-items:center;gap:7px;padding:8px 13px;border:1px solid rgba(64,100,95,.3);background:var(--ivory);cursor:pointer;transition:all .18s;font-size:var(--text-xs);color:var(--onyx);font-family:'Montserrat',sans-serif;user-select:none;font-weight:300}
.addon-pill:hover:not(.owned):not(.maxed){border-color:rgba(64,100,95,.7)}
.addon-pill.on{border-color:var(--bloodstone);background:rgba(146,38,48,.07)}
.addon-pill.owned{border-color:rgba(64,100,95,.12);background:#F5F3EF;color:rgba(64,100,95,.4);cursor:default;text-decoration:line-through;pointer-events:none}
.addon-pill.maxed{opacity:.3;cursor:not-allowed}
.addon-pill-dot{width:8px;height:8px;border:1px solid rgba(64,100,95,.5);flex-shrink:0;transition:all .18s}
.addon-pill.on .addon-pill-dot{background:var(--bloodstone);border-color:var(--bloodstone)}
.addon-bottom-bar{display:flex;align-items:center;justify-content:space-between;padding:14px 0 0;border-top:1px solid rgba(45,16,21,.1);flex-wrap:wrap;gap:10px}
.addon-count-txt{font-size:var(--text-ui);color:var(--sage)}
.addon-count-txt strong{font-family:'Libre Baskerville',serif;font-size:.9rem;color:var(--bloodstone)}
.addon-proceed-btn{font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase;font-family:'Montserrat',sans-serif;background:var(--bloodstone);color:var(--white);border:none;padding:13px 28px;cursor:pointer;transition:background .2s;font-weight:600}
.addon-proceed-btn:disabled{opacity:.35;cursor:not-allowed}
.addon-proceed-btn:not(:disabled):hover{background:var(--bloodstone)}
.addon-close{position:absolute;top:16px;right:16px;background:none;border:none;font-size:1.5rem;color:rgba(45,16,21,.3);cursor:pointer;line-height:1;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;transition:color .18s}
.addon-close:hover{color:var(--onyx)}
.addon-back-link{font-family:'Montserrat',sans-serif;font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;font-weight:600;color:var(--sage-dk);background:none;border:none;cursor:pointer;padding:0;margin-bottom:16px;display:inline-block}
.addon-back-link:hover{color:var(--onyx)}
#addonDetailsWrap{margin-top:8px;margin-bottom:8px}
@media(max-width:600px){.addon-sheet{padding:28px 20px 40px}.addon-bottom-bar{flex-direction:column;align-items:flex-start}}

/* ── DOWNLOAD SECTION ── */
.download-section{
  margin:80px 48px 0;display:none;
  border:none;background:transparent;padding:0;
}
.download-section.visible{display:block}
.download-hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:40px;padding-bottom:0;border-bottom:none}
.download-title{font-family:'Libre Baskerville',serif;font-size:1.8rem;color:var(--onyx);font-weight:400}
.download-ready-tag{font-size:.79rem;letter-spacing:.12em;text-transform:uppercase;padding:10px 16px;border:none;background:rgba(45,106,79,.15);color:#2D6A4F;font-weight:700}
.download-grid{display:flex;flex-direction:column;gap:0}
.dl-note{font-size:.9rem;color:#2D1015;margin-top:40px;line-height:1.7;font-style:normal;letter-spacing:.02em}
/* per-piece download card */
.piece-dl-card{border:1px solid rgba(45,16,21,.1);background:#fff;padding:40px;margin-bottom:48px;box-shadow:0 2px 8px rgba(45,16,21,.06);transition:all .3s ease}
.piece-dl-card:hover{box-shadow:var(--sh-hover)}
.piece-dl-name{font-family:'Libre Baskerville',serif;font-size:1.5rem;color:var(--onyx);margin-bottom:32px;padding-bottom:0;border-bottom:none;font-weight:400}
.piece-dl-variants{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
@media(max-width:900px){.piece-dl-variants{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.piece-dl-variants{grid-template-columns:1fr}}
.pdv{border:1px solid rgba(45,16,21,.1);padding:24px;text-align:center;display:flex;flex-direction:column;align-items:center;background:#fff;transition:all .3s;box-shadow:0 1px 4px rgba(45,16,21,.04)}
.pdv:hover{box-shadow:0 8px 24px rgba(45,16,21,.1)}
.pdv.ready{border-color:rgba(45,106,79,.3);background:rgba(45,106,79,.03)}
.pdv-label{font-size:.79rem;letter-spacing:.12em;text-transform:uppercase;color:var(--onyx);margin-bottom:12px;font-weight:600}
.pdv-type{font-size:.78rem;font-weight:600;color:var(--onyx);margin-bottom:2px;font-family:'Libre Baskerville',serif;display:none}
.pdv-spec{font-size:.9rem;color:var(--onyx);margin-bottom:12px;line-height:1.6;letter-spacing:.02em}
.pdv-btn{display:block;width:100%;font-size:.79rem;letter-spacing:.12em;text-transform:uppercase;color:#FAF6EE;background:#922630;border:1.5px solid #922630;padding:12px;cursor:pointer;text-decoration:none;font-family:'Montserrat',sans-serif;transition:all .3s;text-align:center;font-weight:600;margin-top:16px}
.pdv-btn:hover{background:#FAF6EE;color:#922630;border-color:#922630}
.pdv-btn.pending{background:rgba(45,16,21,.08);color:var(--onyx);border-color:rgba(45,16,21,.1);cursor:default}
.pdv-btn.pending:hover{background:rgba(45,16,21,.08);color:var(--onyx)}

/* ── DESIGNER MESSAGE THREAD ── */
.message-thread{margin:20px 48px 0;border:1px solid var(--border);overflow:hidden;box-shadow:var(--sh)}
.thread-hdr{padding:14px 20px;background:var(--white);border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}
.thread-hdr-title{font-family:'Libre Baskerville',serif;font-size:.9rem;color:var(--onyx-dk)}
.thread-hdr-sub{font-family:'Montserrat',sans-serif;font-size:.78rem;color:var(--sage);letter-spacing:.12em;font-weight:500;text-transform:uppercase}
.thread-msgs{padding:16px 20px;display:flex;flex-direction:column;gap:12px;max-height:300px;overflow-y:auto;background:var(--ivory)}
.thread-empty{font-family:'Montserrat',sans-serif;text-align:center;padding:28px;font-size:.78rem;color:var(--sage);font-style:italic}
.msg-wrap{display:flex;flex-direction:column;max-width:82%}
.msg-wrap.from-designer{align-self:flex-start}
.msg-wrap.from-client{align-self:flex-end;align-items:flex-end}
.msg-author{font-family:'Montserrat',sans-serif;font-size:var(--text-ui);letter-spacing:.16em;text-transform:uppercase;color:var(--sage);margin-bottom:4px;font-weight:600}
.msg-body{padding:11px 15px;font-size:.79rem;line-height:1.65}
.from-designer .msg-body{background:var(--white);color:var(--onyx);border:1px solid var(--border)}
.from-client .msg-body{background:rgba(146,38,48,.07);color:var(--onyx);border:1px solid rgba(146,38,48,.14)}
.msg-time{font-family:'Montserrat',sans-serif;font-size:.63rem;color:var(--sage);margin-top:3px}
.thread-compose{border-top:1px solid var(--border);padding:12px 16px;display:flex;gap:10px;align-items:flex-end;background:var(--white)}
.thread-textarea{flex:1;padding:10px 12px;border:1px solid var(--border);background:var(--ivory);font-family:'Montserrat',sans-serif;font-size:var(--text-ui);color:var(--onyx);outline:none;resize:none;min-height:42px;max-height:100px;transition:border-color .3s;font-weight:300}
.thread-textarea:focus{border-color:var(--bloodstone)}
.thread-send{padding:10px 18px;background:var(--bloodstone);border:none;color:var(--white);font-family:'Montserrat',sans-serif;font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase;cursor:pointer;transition:background .3s;white-space:nowrap;align-self:stretch;font-weight:600}
.thread-send:hover{background:var(--bloodstone-dk)}

/* ── REVISION COUNTER STRIP ── */
.rev-counter-strip{display:none;align-items:center;justify-content:center;gap:16px;padding:14px 24px;margin:0 48px 16px;background:rgba(125,64,71,.05);border:1px solid rgba(125,64,71,.18);text-align:center;flex-wrap:wrap}
.rev-counter-strip.show{display:flex}
.rcs-label{font-family:'Montserrat',sans-serif;font-size:var(--text-ui);letter-spacing:.18em;text-transform:uppercase;color:var(--sage);font-weight:600}
.rcs-count{font-family:'Montserrat',sans-serif;font-size:.78rem;font-weight:500;color:var(--onyx)}
.rcs-count strong{color:var(--bloodstone);font-family:'Libre Baskerville',serif;font-size:1rem;font-style:italic;font-weight:400}
.rcs-pips{display:flex;gap:6px;align-items:center}
.rcs-pip{width:10px;height:10px;border-radius:50%;background:rgba(146,38,48,.15);border:1px solid rgba(146,38,48,.25);transition:background .25s}
.rcs-pip.used{background:var(--bloodstone);border-color:var(--bloodstone)}

/* ── REVISION LIMIT MESSAGE ── */
.rev-limit-msg{display:none;margin:0 48px 24px;padding:28px 32px;background:#FAF6EE;border:1px solid rgba(146,38,48,.25);border-left:3px solid var(--bloodstone)}
.rlm-icon{font-family:'Libre Baskerville',serif;font-size:1.1rem;color:var(--bloodstone);margin-bottom:12px}
.rlm-title{font-family:'Libre Baskerville',serif;font-size:1.15rem;font-weight:400;color:var(--onyx);margin-bottom:8px}
.rlm-sub{font-family:'Montserrat',sans-serif;font-size:.84rem;line-height:1.7;color:var(--sage);margin:0 0 18px;max-width:520px}
.rlm-btn{display:inline-block;font-family:'Montserrat',sans-serif;font-size:var(--text-sm);letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:#FAF6EE;background:var(--onyx);padding:12px 28px;text-decoration:none;transition:opacity .18s}
.rlm-btn:hover{opacity:.8}
@media(max-width:700px){
  .rev-counter-strip,.rev-limit-msg{margin-left:0;margin-right:0}
}

/* ── REVISION SUBMIT BAR ── */
.rev-submit-bar{display:none;align-items:center;justify-content:space-between;gap:14px;padding:14px 20px;margin:0 48px 24px;background:var(--white);border:1px solid var(--border);box-shadow:var(--sh)}
.rev-submit-bar.show{display:flex;position:sticky;bottom:54px;z-index:20;box-shadow:0 4px 24px rgba(28,10,13,.12)}
.rsb-note{font-family:'Montserrat',sans-serif;font-size:.72rem;color:var(--sage);flex:1;font-weight:300}
.rsb-note strong{color:var(--onyx);font-weight:600}
.rsb-btn{font-family:'Montserrat',sans-serif;font-size:var(--text-sm);letter-spacing:.14em;text-transform:uppercase;background:var(--bloodstone);color:var(--white);border:none;padding:9px 20px;cursor:pointer;transition:background .2s;white-space:nowrap;font-weight:600}
.rsb-btn:hover{background:var(--bloodstone-dk)}
.rsb-btn:disabled{opacity:.35;cursor:not-allowed}

/* ── LOCKED REVISION STATE ── */
.bb-action-locked{font-size:var(--text-sm);letter-spacing:.1em;text-transform:uppercase;color:rgba(140,58,46,.6);padding:6px 12px;background:rgba(140,58,46,.04);border:1px solid rgba(140,58,46,.18);cursor:default}

/* ── V2 PLACEHOLDER SECTION ── */
.v2-section{display:none;margin:0 48px 24px}
.v2-section.show{display:block}
.v2-section-sep{display:flex;align-items:center;gap:14px;padding:22px 0 16px;margin-top:8px}
.v2-section-sep-label{font-size:var(--text-ui);letter-spacing:.22em;text-transform:uppercase;color:var(--onyx);white-space:nowrap}
.v2-section-sep-badge{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;padding:3px 10px;border:1px solid rgba(45,16,21,.35);color:var(--onyx)}
.v2-section-sep-line{flex:1;height:1px;background:rgba(45,16,21,.07)}

/* ── REVISION HISTORY ── */
.revision-history{margin:20px 48px 0;background:var(--white);border:1px solid var(--border);padding:22px 28px;display:none;box-shadow:var(--sh)}
.revision-history.open{display:block}
.print-specs{display:none}
.print-specs.open{display:block}
.rev-hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:8px}
.rev-title{font-family:'Libre Baskerville',serif;font-size:1.35rem;color:var(--onyx-dk)}
.rev-remaining{font-family:'Montserrat',sans-serif;font-size:var(--text-sm);letter-spacing:.14em;text-transform:uppercase;padding:7px 16px;border:1px solid var(--border);color:var(--sage);font-weight:500}
.rev-list{display:flex;flex-direction:column;gap:12px}
.rev-item{padding:16px 20px;border:1px solid var(--border);display:flex;align-items:center;gap:18px;background:var(--ivory)}
.rev-v{font-family:'Libre Baskerville',serif;font-size:1.3rem;color:var(--onyx-dk);min-width:36px}
.rev-info{flex:1}
.rev-date{font-family:'Montserrat',sans-serif;font-size:.78rem;color:var(--sage);font-weight:400}
.rev-desc{font-family:'Montserrat',sans-serif;font-size:var(--text-ui);color:var(--onyx);font-style:italic;margin-top:4px;line-height:1.6;font-weight:300}
.rev-tag{font-family:'Montserrat',sans-serif;font-size:var(--text-sm);letter-spacing:.14em;text-transform:uppercase;padding:6px 14px;border:1px solid;font-weight:600}
.rev-tag.current{border-color:var(--bloodstone);color:var(--bloodstone)}
.rev-tag.reviewed{border-color:rgba(45,106,79,.35);color:var(--sage-dk)}

/* ── PRINT SPECS — EDITORIAL LEDGER ── */
.print-specs{margin:20px 48px 0}
.print-specs-hdr{font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:var(--onyx);margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--border)}
.print-specs-wrap{overflow-x:auto}
.print-specs-table{width:100%;border-collapse:collapse;min-width:640px}
.print-specs-table thead tr{border-bottom:1px solid var(--onyx)}
.print-specs-table th{padding:14px 16px;text-align:left;font-size:var(--text-sm);letter-spacing:.24em;text-transform:uppercase;color:var(--onyx);font-weight:400;white-space:nowrap}
.print-specs-table th:first-child{padding-left:0}
.print-specs-table td{padding:18px 16px;border-bottom:1px solid var(--border);font-family:'Libre Baskerville',serif;font-size:var(--text-md);color:var(--onyx);line-height:1.4;vertical-align:top}
.print-specs-table td:first-child{padding-left:0}
.print-specs-table tbody tr:hover{background:rgba(241,236,230,.3)}
.ps-piece{font-style:italic;color:var(--bloodstone)}
.ps-piece-idx{font-family:'Montserrat',sans-serif;font-style:normal;font-size:var(--text-sm);letter-spacing:.2em;color:var(--sage);margin-right:10px;vertical-align:middle}

/* ── MOOD BOARD REFERENCE ── */
.moodboard-ref{margin:20px 64px 0;border:1px solid var(--border);overflow:hidden}
.moodboard-toggle{padding:15px 22px;background:rgba(241,236,230,.5);display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:background .25s}
.moodboard-toggle:hover{background:var(--greige)}
.moodboard-toggle-lbl{font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--onyx)}
.moodboard-toggle-icon{font-size:var(--text-sm);color:var(--sage);transition:transform .3s;line-height:1}
.moodboard-toggle-icon.open{transform:rotate(45deg)}
.moodboard-body{display:none}
.moodboard-body.open{display:block}
.moodboard-palette-row{padding:16px 22px;display:flex;gap:8px;border-bottom:1px solid var(--border);align-items:center}
.moodboard-swatch-block{flex:1;height:56px;border:1px solid rgba(0,0,0,.07)}
.moodboard-grid{padding:16px 22px;display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.moodboard-placeholder{aspect-ratio:1;background:rgba(221,213,205,.45);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:var(--text-ui);letter-spacing:.14em;text-transform:uppercase;color:var(--sage);text-align:center;line-height:1.5}

/* ── SHARE MODAL ── */
.share-modal{display:none;position:fixed;inset:0;background:var(--overlay-bg);z-index:700;align-items:center;justify-content:center;padding:24px}
.share-modal.open{display:flex}
.share-box{background:var(--white);border:1px solid var(--border);padding:36px 40px;max-width:480px;width:100%;box-shadow:var(--shl)}
.share-box-title{font-family:'Libre Baskerville',serif;font-size:1.2rem;color:var(--onyx-dk);font-weight:400;margin-bottom:8px}
.share-box-sub{font-family:'Montserrat',sans-serif;font-size:var(--text-xs);color:var(--sage);line-height:1.75;margin-bottom:22px;font-weight:300}
.share-url-row{display:flex;margin-bottom:12px}
.share-url-input{flex:1;padding:11px 14px;border:1px solid var(--border);border-right:none;background:var(--ivory);font-family:'Montserrat',sans-serif;font-size:.79rem;color:var(--onyx);outline:none;overflow:hidden;text-overflow:ellipsis;font-weight:300}
.share-copy-btn{padding:var(--btn-pad-md);background:var(--bloodstone);border:none;color:var(--white);font-family:'Montserrat',sans-serif;font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase;cursor:pointer;white-space:nowrap;transition:background .3s;font-weight:600}
.share-copy-btn:hover{background:var(--bloodstone-dk)}
.share-note{font-family:'Montserrat',sans-serif;font-size:.72rem;color:var(--sage);font-style:italic;line-height:1.65;margin-bottom:20px}
.share-close-btn{font-family:'Montserrat',sans-serif;font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--sage);background:transparent;border:1px solid var(--border);padding:10px 22px;cursor:pointer;transition:all .3s;font-weight:500}
.share-close-btn:hover{border-color:var(--sage);color:var(--onyx)}
/* ── EDIT GUEST MODAL ── */
.edit-guest-box{background:var(--white);border:1px solid var(--border);padding:36px 40px;max-width:720px;width:100%;box-shadow:var(--shl);max-height:90vh;overflow-y:auto}
.edit-guest-hd{display:flex;align-items:center;justify-content:space-between}
.edit-guest-close{background:none;border:none;font-size:1rem;cursor:pointer;color:var(--sage);padding:4px 8px;line-height:1}
.edit-guest-close:hover{color:var(--bloodstone)}
@media(max-width:600px){.edit-guest-box{padding:24px 20px}}
/* ── EDIT / DELETE GUEST BUTTONS ── */
.rsvp-edit-btn{background:none;border:none;color:var(--sage);font-size:.9rem;cursor:pointer;padding:4px 6px;line-height:1;transition:color .2s}
.rsvp-edit-btn:hover{color:var(--onyx-dk)}

/* ── BRIEFING V3 — PROGRESS BAR ── */
.brief-prog{display:flex;align-items:center;gap:12px;padding:14px 48px;background:rgba(125,64,71,.06);border-bottom:1px solid var(--border)}
.brief-prog-lbl{font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:var(--sage)}
.brief-prog-bar{flex:1;max-width:200px;height:1px;background:rgba(46,46,46,.12)}
.brief-prog-fill{height:100%;background:var(--bloodstone);transition:width .6s ease;width:0%}
.brief-prog-pct{font-size:.78rem;color:var(--sage);letter-spacing:.1em;min-width:28px}

/* ── BRIEFING V3 — PREFILLED BAR ── */
.brief-prefilled{background:rgba(125,64,71,.09);border-top:2px solid var(--bloodstone);padding:20px 48px;display:flex;gap:48px;flex-wrap:wrap}
.bpf-item{display:flex;flex-direction:column;gap:3px}
.bpf-lbl{font-size:var(--text-xs);letter-spacing:.28em;text-transform:uppercase;color:var(--sage)}
.bpf-val{font-family:'Libre Baskerville',serif;font-size:.9rem;color:var(--onyx)}
.bpf-note{font-size:.72rem;color:var(--sage);opacity:.7}

/* ── BRIEFING V3 — PALETTE EXPLORER ── */
.palette-explorer{margin-bottom:8px}
.palette-explorer-intro{font-size:.92rem;color:var(--sage);line-height:1.85;margin-bottom:28px;max-width:640px}
.pal-tabs{display:flex;gap:0;border:1px solid var(--border);margin-bottom:28px;overflow:hidden}
.pal-tab{flex:1;padding:14px 10px;font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--onyx);background:var(--ivory);border:none;border-right:1px solid var(--border);cursor:pointer;transition:all .25s;text-align:center;font-family:'Montserrat',sans-serif;font-weight:400}
.pal-tab:last-child{border-right:none}
.pal-tab:hover{background:var(--greige);color:var(--onyx)}
.pal-tab.active{background:var(--bloodstone);color:var(--white)}
.pal-panel{display:none}
.pal-panel.active{display:block}
.pal-regen-row{display:flex;justify-content:flex-end;margin:-14px 0 18px}
.pal-regen-btn{display:flex;align-items:center;gap:8px;padding:9px 18px;font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;color:var(--onyx);background:transparent;border:1px solid var(--border);cursor:pointer;transition:all .25s;font-family:'Montserrat',sans-serif;font-weight:400}
.pal-regen-btn:hover{background:var(--greige);border-color:var(--sage)}
.pal-regen-icon{font-size:.95rem;line-height:1}
.pal-grid-v3{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pal-card-v3{border:1px solid var(--border);cursor:pointer;transition:all .3s;position:relative;overflow:hidden;background:var(--white)}
.pal-card-v3:hover{border-color:var(--sage);transform:translateY(-2px);box-shadow:var(--sh-hover)}
.pal-card-v3.selected{border-color:var(--bloodstone);border-width:2px}
.pal-card-v3.selected::after{content:"\2756";position:absolute;top:12px;right:14px;font-size:.79rem;color:var(--bloodstone)}
.pal-card-strips{height:72px;display:flex}
.pal-strip-v3{flex:1;transition:flex .4s}
.pal-card-v3:hover .pal-strip-v3{flex:1.3}
.pal-card-body-v3{padding:14px 16px}
.pal-card-name-v3{font-family:'Libre Baskerville',serif;font-size:1.15rem;font-weight:400;color:var(--onyx);margin-bottom:6px}
.pal-card-mood-v3{font-size:var(--text-body);color:#2D1015;letter-spacing:.04em;margin-bottom:12px;line-height:1.5}
.pal-card-hexes{display:flex;gap:10px;flex-wrap:wrap}
.pal-hex-chip{display:flex;align-items:center;gap:6px;font-size:var(--text-ui);color:#2D1015;letter-spacing:.02em}
.pal-hex-dot{width:9px;height:9px;border-radius:50%;border:1px solid rgba(0,0,0,.08);flex-shrink:0}
.pal-selected-preview{display:none;margin-top:20px;border:1px solid var(--border);background:var(--white);overflow:hidden}
.pal-selected-preview.show{display:block;animation:bfadeIn .4s ease}
@keyframes bfadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.pal-preview-strips{height:48px;display:flex}
.pal-preview-inner{padding:16px 18px;display:flex;justify-content:space-between;align-items:center}
.pal-preview-name{font-family:'Libre Baskerville',serif;font-size:1.15rem;font-weight:400;color:var(--onyx)}
.pal-preview-name em{font-style:italic;color:var(--bloodstone)}
.pal-preview-change{font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--sage);cursor:pointer;padding:6px 12px;border:1px solid var(--border);transition:all .25s}
.pal-preview-change:hover{border-color:var(--bloodstone);color:var(--bloodstone)}
.pal-divider{display:flex;align-items:center;gap:16px;margin:24px 0}
.pal-divider-line{flex:1;height:1px;background:var(--border)}
.pal-divider-txt{font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:#2D1015;white-space:nowrap}
.custom-pal{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}
.col-fld label{font-size:var(--text-ui);letter-spacing:.16em;text-transform:uppercase;color:#2D1015;display:block;margin-bottom:9px}
.col-wrap{display:flex;gap:8px;align-items:center}
.col-pick{width:42px;height:42px;border:1px solid var(--border);cursor:pointer;padding:2px;background:var(--white);border-radius:0}
.col-hex{flex:1;padding:11px 13px;border:1px solid var(--border);font-family:'Montserrat',sans-serif;font-size:.92rem;color:var(--onyx);outline:none;transition:border-color .3s;background:var(--ivory);font-weight:300}
.col-hex:focus{border-color:var(--bloodstone)}
.col-label-name{font-size:var(--text-body);color:#2D1015;margin-top:7px;font-style:italic;min-height:18px}

/* ── BRIEFING V3 — VIBE GRID ── */
.vibe-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.vibe-opt{border:1px solid var(--border);padding:22px 18px;cursor:pointer;transition:all .3s;background:var(--white);position:relative}
.vibe-opt:hover{border-color:var(--sage);transform:translateY(-2px);box-shadow:0 6px 24px rgba(0,0,0,.07)}
.vibe-opt.selected{border-color:var(--bloodstone);background:rgba(125,64,71,.04)}
.vibe-opt.selected::after{content:"\2756";position:absolute;top:14px;right:16px;font-size:var(--text-sm);color:var(--bloodstone)}
.vibe-name{font-family:'Libre Baskerville',serif;font-size:.95rem;color:var(--onyx);display:block;margin-bottom:5px}
.vibe-desc{font-size:var(--text-xs);color:var(--sage);line-height:1.65}
.vibe-ref{font-size:.72rem;color:rgba(182,166,151,.55);font-style:italic;margin-top:6px;display:block;border-top:1px solid var(--border);padding-top:7px}
.vibe-open{display:block;margin-top:10px;font-size:var(--text-ui);letter-spacing:.18em;text-transform:uppercase;color:var(--bloodstone);font-weight:500}
.vibe-opt:hover .vibe-open{text-decoration:underline}
.mb-tile{aspect-ratio:1/1;padding:18px;border-radius:0;display:flex;flex-direction:column;justify-content:space-between;font-family:'Montserrat',sans-serif;color:#FAF6EE;position:relative;overflow:hidden}
.mb-tile-icon{font-family:'Libre Baskerville',Georgia,serif;font-size:28px;line-height:1;opacity:.85}
.mb-tile-ttl{font-family:'Libre Baskerville',Georgia,serif;font-style:italic;font-size:15px;line-height:1.35;font-weight:400}
.mb-tile-sub{font-size:.63rem;letter-spacing:.24em;text-transform:uppercase;opacity:.75;margin-top:6px}

/* ── BRIEFING V3 — TYPOGRAPHY ── */
.type-opts{display:flex;flex-direction:column;gap:10px}
.type-opt{border:1px solid var(--border);padding:20px 22px;cursor:pointer;transition:all .3s;background:var(--white);display:flex;justify-content:space-between;align-items:center}
.type-opt:hover{border-color:var(--sage)}
.type-opt.selected{border-color:var(--bloodstone)}
.type-sample{font-family:'Libre Baskerville',serif;color:var(--onyx);display:block;margin-bottom:6px}
.type-lbl{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:#2D1015}
.type-lbl-name{font-size:.71rem;letter-spacing:.2em;text-transform:uppercase;color:var(--bloodstone);display:block;margin-bottom:6px;opacity:.8}
.type-mark{font-size:var(--text-sm);color:var(--bloodstone);opacity:0;transition:opacity .2s}
.type-opt.selected .type-mark{opacity:1}

/* ── PRINTING & DELIVERY — option cards ── */
.print-opt-card{border:1px solid var(--border);padding:18px 20px;cursor:pointer;transition:border-color .2s,background .2s;background:var(--white);position:relative}
.print-opt-card:hover{border-color:var(--sage)}
.print-opt-card.selected{border-color:var(--bloodstone);border-width:2px}
.print-opt-card.selected::after{content:"\2756";position:absolute;top:10px;right:12px;font-size:var(--text-ui);color:var(--bloodstone)}
.print-opt-name{font-family:'Montserrat',sans-serif;font-size:.72rem;letter-spacing:.06em;font-weight:600;color:var(--onyx);display:block;margin-bottom:5px}
.print-opt-desc{font-family:'Montserrat',sans-serif;font-size:.79rem;color:var(--onyx);line-height:1.55;font-style:italic}

/* ── BRIEFING V3 — UPLOADS ── */
.upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.upload-zone{border:1px dashed var(--border);padding:28px 18px;text-align:center;cursor:pointer;transition:all .3s;background:var(--ivory);position:relative}
.upload-zone:hover,.upload-zone.drag{border-color:var(--bloodstone);background:rgba(125,64,71,.03)}
.upload-zone input{position:absolute;inset:0;opacity:0;cursor:pointer}
.upload-ico{font-size:1.2rem;margin-bottom:10px;opacity:.4}
.upload-ttl{font-family:'Libre Baskerville',serif;font-size:var(--text-md);color:var(--onyx);margin-bottom:4px}
.upload-sub{font-size:var(--text-ui);color:#2D1015;line-height:1.7}
.upload-prevs{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.upload-prev{width:60px;height:60px;object-fit:cover;border:1px solid var(--border)}

/* ── BRIEFING V3 — CHECKBOXES ── */
.check-list{display:flex;flex-direction:column;gap:10px}
.check-item{display:flex;align-items:flex-start;gap:12px;cursor:pointer;padding:14px 16px;border:1px solid var(--border);background:var(--white);transition:border-color .25s}
.check-item:hover{border-color:var(--sage)}
.check-item.chk{border-color:var(--bloodstone);background:rgba(125,64,71,.04)}
.check-box{width:18px;height:18px;border:1px solid var(--border);flex-shrink:0;margin-top:2px;display:flex;align-items:center;justify-content:center;transition:all .2s}
.check-item.chk .check-box{background:var(--bloodstone);border-color:var(--bloodstone)}
.check-mark{font-size:.72rem;color:white;opacity:0;transition:opacity .2s}
.check-item.chk .check-mark{opacity:1}
.check-txt{font-size:.92rem;color:var(--onyx);line-height:1.55;flex:1}
.check-sub{font-family:'Montserrat',sans-serif;font-size:.78rem;color:var(--onyx);font-style:italic;display:block;margin-top:4px;line-height:1.55}
.check-detail{display:none;max-height:0;overflow:hidden;transition:max-height .3s ease;margin-top:12px;padding-top:12px;border-top:1px dashed rgba(125,64,71,.18)}
.check-detail textarea,.check-detail input{width:100%;padding:11px 13px;border:1px solid var(--border);background:var(--ivory);font-family:'Montserrat',sans-serif;font-size:.78rem;color:var(--onyx);outline:none;transition:border-color .3s;font-weight:300;box-sizing:border-box}
.check-detail textarea{resize:vertical;min-height:76px;line-height:1.6;font-style:italic}
.check-detail textarea::placeholder,.check-detail input::placeholder{color:rgba(125,64,71,.42);font-style:italic}
.check-detail textarea:focus,.check-detail input:focus{border-color:var(--bloodstone)}
.check-item.chk .check-detail{display:block}

/* ── BRIEFING V3 — COLOR WHEEL ── */
.wheel-wrap{display:flex;flex-direction:column;align-items:center;gap:20px;margin:24px 0}
.wheel-canvas-wrap{position:relative;width:200px;height:200px;flex-shrink:0}
.wheel-canvas{border-radius:50%;cursor:crosshair;display:block}
.wheel-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:54px;height:54px;border-radius:50%;border:3px solid white;box-shadow:0 2px 12px rgba(0,0,0,.18);transition:background .2s;pointer-events:none}
.wheel-picked{display:flex;flex-direction:column;gap:12px;width:100%;max-width:340px}
.wheel-picked-preview{height:48px;border:1px solid var(--border);transition:background .2s;display:flex;align-items:center;justify-content:center}
.wheel-picked-hex{font-size:.8rem;color:white;letter-spacing:.12em;font-family:'Montserrat',sans-serif;font-weight:300;text-shadow:0 1px 3px rgba(0,0,0,.4)}
.wheel-actions{display:flex;gap:8px;flex-wrap:wrap}
.wheel-add-btn{flex:1;min-width:100px;padding:9px;font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase;border:1px solid var(--border);background:var(--ivory);color:var(--onyx);cursor:pointer;font-family:'Montserrat',sans-serif;font-weight:500;transition:all .25s}
.wheel-add-btn:hover{border-color:var(--bloodstone);color:var(--bloodstone)}
.wheel-selected-colors{display:flex;gap:8px;flex-wrap:wrap;min-height:36px}
.wheel-chip{width:34px;height:34px;border-radius:50%;border:2px solid white;box-shadow:0 2px 8px rgba(0,0,0,.15);cursor:pointer;position:relative;transition:transform .2s;flex-shrink:0}
.wheel-chip:hover{transform:scale(1.12)}
.wheel-chip::after{content:"×";position:absolute;top:-5px;right:-5px;background:var(--onyx);color:white;font-size:var(--text-xs);width:13px;height:13px;border-radius:50%;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s;line-height:13px;text-align:center}
.wheel-chip:hover::after{opacity:1}
.wheel-add-btn--full{width:100%;flex:none}
.wheel-name-hint{font-size:.76rem;color:var(--sage);line-height:1.7;margin-top:6px}
.wheel-name-found{color:var(--bloodstone);font-weight:500}
.wheel-intro{font-size:.79rem;color:var(--sage);line-height:1.8;margin-bottom:4px}
@media(min-width:600px){.wheel-wrap{flex-direction:row;align-items:flex-start}.wheel-picked{margin-top:8px}}

/* ── MINIMUM READABLE SIZES — clamp against very small root font sizes ── */
.fld-hint,.login-hint,.submit-note{font-size:max(var(--text-ui),12px)}
.thread-textarea,.fld-input,.fld-select,.fld-textarea,.login-fld input{font-size:max(.8rem,13px)}

/* ── ARIA live region ── */
[aria-live]{outline:none}

/* ── TABLET ── */
@media(min-width:681px) and (max-width:1024px){
  .hdr-top{padding:16px 28px}
  .pkg-strip{padding:16px 28px;gap:24px}
  .brief-hero{padding:56px 32px 48px}
  .form-wrap{padding:56px 32px 64px}
  .suite-note,.suite-sample-label,.suite-iframe-wrap,.piece-tabs-container,.piece-loading-hint,
  .approval-section,.annotate-toolbar,.annotations-list,
  .suite-tools-bar,.brief-summary-card,.items-section,
  .download-section,.message-thread,.revision-history,
  .print-specs,.moodboard-ref,.intentions-card,.intentions-admin{margin-left:28px;margin-right:28px}
  .suite-iframe-wrap iframe{height:75vh}
  .suite-hero{padding:28px 28px}
  .rsvp-stats{padding:22px 28px 0}
  .rsvp-body{padding:40px 28px 64px}
  .pal-grid-v3,.vibe-grid,.feeling-grid,.pal-grid{grid-template-columns:1fr 1fr}
  .fld-row{grid-template-columns:1fr 1fr}
  .ptab{padding:13px 18px}
  .brief-prog,.brief-prefilled,.brief-urgency .bub-inner{padding-left:32px;padding-right:32px}
  .keepsake-banner,.suite-deadline{padding-left:28px;padding-right:28px}
}

/* ── RESPONSIVE ── */
@media(max-width:680px){
  .hdr-top{padding:16px 20px}
  .pkg-strip{padding:16px 20px;gap:20px}
  .brief-hero{padding:52px 24px 44px}
  .fld-row{grid-template-columns:1fr}
  .pal-grid,.feeling-grid{grid-template-columns:1fr}
  .submit-block{padding:52px 24px}
  .suite-hero{padding:24px 20px}
  .suite-note,.suite-sample-label,.suite-iframe-wrap,.piece-tabs-container,.piece-loading-hint,.approval-section{margin-left:20px;margin-right:20px}
  .suite-iframe-wrap iframe{height:70vh}
  .ptab{padding:12px 16px;font-size:.78rem}
  .hdr-ref{display:none}
  .status-row{flex-wrap:wrap;gap:4px}
  .status-arrow{display:none}
  .approval-btns{flex-direction:column}
  .btn-approve,.btn-decline{min-width:0;width:100%}
  .rsvp-stats{padding:20px 20px 0;gap:10px}
  .rsvp-body{padding:32px 16px 60px}
  .rsvp-fld-row{grid-template-columns:1fr}
  .login-box{padding:32px 24px}
}

/* ── BRIEFING SUBMITTED PANEL ── */
#briefSubmittedPanel{display:none;flex-direction:column;background:var(--ivory)}
#briefSubmittedPanel.on{display:flex}

/* Status bar */
.bsp-status-bar{
  display:flex;align-items:center;gap:16px;
  padding:11px 64px;background:var(--white);border-bottom:1px solid var(--border);
}
.bsp-status-badge{
  display:inline-flex;align-items:center;gap:6px;
  background:rgba(45,106,79,.08);border:1px solid rgba(45,106,79,.25);
  color:rgba(45,106,79,.9);padding:5px 14px;
  font-family:'Montserrat',sans-serif;font-size:var(--text-xs);font-weight:700;
  letter-spacing:.18em;text-transform:uppercase;
}
.bsp-status-date{font-family:'Montserrat',sans-serif;font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--sage);}

/* "In our hands" hero */
.bsp-hero{
  padding:32px 64px 28px;background:var(--white);border-bottom:1px solid var(--border);
  text-align:left;
}
.bsp-hero-eyebrow{font-family:'Montserrat',sans-serif;font-size:.78rem;letter-spacing:.26em;text-transform:uppercase;color:var(--sage);font-weight:700;margin-bottom:12px;}
.bsp-hero-title{font-family:'Libre Baskerville',serif;font-size:2.4rem;font-weight:400;color:var(--onyx-dk);line-height:1.1;margin-bottom:10px;}
.bsp-hero-title em{color:var(--bloodstone);font-style:italic;display:block;}
.bsp-hero-sub{font-family:'Montserrat',sans-serif;font-size:var(--text-body);font-weight:300;color:var(--sage);line-height:1.8;max-width:520px;}

/* Cards container */
.bsp-inner{display:flex;flex-direction:column;max-width:900px;width:100%;margin:0 auto;padding:40px 0 80px;}

/* Designer note */
.bsp-designer-note{
  display:flex;align-items:flex-start;gap:16px;
  background:var(--white);border:1px solid var(--border);
  padding:22px 28px;margin-bottom:16px;
}
.bsp-dn-avatar{
  width:38px;height:38px;border-radius:50%;background:var(--sage);
  color:var(--white);display:flex;align-items:center;justify-content:center;
  font-family:'Montserrat',sans-serif;font-size:var(--text-xs);font-weight:700;flex-shrink:0;letter-spacing:.04em;
}
.bsp-dn-meta{font-family:'Montserrat',sans-serif;font-size:var(--text-ui);font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--sage);margin-bottom:10px;}
.bsp-dn-msg{font-size:var(--text-body);color:var(--onyx);line-height:1.85;font-style:italic;margin:0;}

/* Section cards */
.bsp-sec{
  background:var(--white);border:1px solid var(--border);margin-bottom:12px;
  border-left:3px solid rgba(45,16,21,.07);
}
.bsp-sec-hdr{
  display:flex;justify-content:space-between;align-items:center;
  padding:18px 28px 16px;border-bottom:1px solid var(--border);
}
.bsp-sec-title{
  font-family:'Libre Baskerville',serif;font-size:.96rem;font-weight:400;
  color:var(--onyx-dk);letter-spacing:-.01em;
}
.bsp-sec-badge{
  font-family:'Montserrat',sans-serif;font-size:var(--text-ui);font-weight:700;
  letter-spacing:.18em;text-transform:uppercase;
  color:rgba(45,106,79,.9);background:rgba(45,106,79,.05);
  border:1px solid rgba(45,106,79,.18);padding:4px 10px;
  display:inline-flex;align-items:center;gap:5px;
}
/* Lock icon before badge text (✓ Locked) */
.bsp-sec-badge::before{
  content:'';display:inline-block;width:8px;height:10px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 10'%3E%3Crect x='0.5' y='4' width='7' height='5.5' rx='.8' fill='%232D6A4F' opacity='.85'/%3E%3Cpath d='M2 4V2.8a2 2 0 0 1 4 0V4' stroke='%232D6A4F' stroke-width='1.2' fill='none' stroke-linecap='round' opacity='.85'/%3E%3C/svg%3E") center/contain no-repeat;
  flex-shrink:0;
}

/* Field grid */
.bsp-sec-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;}
.bsp-field{padding:18px 28px 20px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);}
.bsp-field:nth-child(even),.bsp-field--wide{border-right:none;}
.bsp-field:last-child,.bsp-field:nth-last-child(2):nth-child(odd){border-bottom:none;}
.bsp-field--wide{grid-column:1/-1;border-right:none;}
.bsp-fld-lbl{
  display:block;font-family:'Montserrat',sans-serif;font-size:.63rem;
  letter-spacing:.22em;text-transform:uppercase;color:var(--sage);
  margin-bottom:6px;font-weight:700;
}
/* Locked input-like field values */
.bsp-fld-val{
  display:block;font-family:'Montserrat',sans-serif;font-size:.84rem;
  color:var(--onyx);line-height:1.55;font-weight:300;
  background:var(--ivory);border:1px solid var(--border);
  padding:10px 14px;margin-top:2px;cursor:default;
}
.bsp-fld-val--long{
  font-size:.8rem;line-height:1.85;color:var(--onyx);font-weight:300;
  min-height:68px;
}

/* Blockquote */
.bsp-quote{
  margin:0;padding:18px 28px 20px 36px;border-top:1px solid var(--border);
  border-left:3px solid rgba(201,168,76,.38);
  font-family:'Libre Baskerville',serif;font-size:.84rem;font-style:italic;
  color:var(--onyx);line-height:1.85;
}
.bsp-quote::before{content:'\201C'}.bsp-quote::after{content:'\201D'}

/* Upload thumbnails */
.bsp-upload-thumbs{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;}
.bsp-upload-thumb{width:88px;height:88px;object-fit:cover;border-radius:0;border:1px solid var(--border);cursor:pointer;}
.bsp-upload-thumb:hover{opacity:.85;}

/* Pieces grid */
.bsp-pieces-grid{display:flex;flex-wrap:wrap;gap:8px;padding:20px 28px 24px;}
.bsp-piece-chip{
  font-family:'Montserrat',sans-serif;font-size:.78rem;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;padding:8px 16px;
  border:1px solid var(--border-d);background:var(--ivory);color:var(--onyx);
  display:inline-flex;align-items:center;gap:8px;
}
.bsp-piece-chip--designer{
  color:var(--sage-dk);background:rgba(64,100,95,.06);
  border:1px dashed rgba(64,100,95,.4);font-style:italic;
}
.bsp-bundle-tag{
  font-family:'Montserrat',sans-serif;font-size:.63rem;font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;
  color:var(--gold);border:1px solid rgba(184,147,90,.35);
  background:rgba(184,147,90,.07);padding:2px 7px;white-space:nowrap;
}
.bsp-pieces-count{
  font-family:'Montserrat',sans-serif;font-size:.63rem;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;color:var(--sage);
  background:rgba(45,16,21,.04);border:1px solid var(--border);padding:4px 10px;
}
.bsp-tier-badge{
  font-family:'Montserrat',sans-serif;font-size:.63rem;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;color:var(--gold);
  background:rgba(184,147,90,.07);border:1px solid rgba(184,147,90,.28);padding:4px 10px;
}

/* Palette swatches */
.bsp-palette-row{display:flex;gap:8px;margin-top:6px;align-items:center;flex-wrap:wrap;}
.bsp-palette-swatch{width:26px;height:26px;border-radius:50%;border:1px solid rgba(45,16,21,.12);flex-shrink:0;box-shadow:0 1px 4px rgba(45,16,21,.1);}

/* Footer */
.bsp-footer{padding:36px 0 0;text-align:center;}
.bsp-note{font-size:var(--text-ui);color:var(--sage);font-style:italic;}

/* "Read Only" locked notice bar — shown between hero and sections */
.bsp-readonly-bar{
  background:var(--white);border-bottom:1px solid var(--border);
  padding:10px 64px;display:flex;align-items:center;gap:10px;
}
.bsp-readonly-icon{
  width:16px;height:16px;flex-shrink:0;opacity:.6;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23395A55'%3E%3Crect x='3' y='7' width='10' height='8' rx='1' /%3E%3Cpath d='M5 7V5a3 3 0 0 1 6 0v2' stroke='%23395A55' stroke-width='1.5' fill='none'/%3E%3C/svg%3E") center/contain no-repeat;
}
.bsp-readonly-label{
  font-family:'Montserrat',sans-serif;font-size:var(--text-ui);letter-spacing:.22em;
  text-transform:uppercase;font-weight:700;color:var(--onyx);
}
.bsp-readonly-sub{
  font-family:'Montserrat',sans-serif;font-size:.72rem;color:var(--sage);
  font-weight:300;margin-left:4px;
}
@media(max-width:700px){
  .bsp-readonly-bar{padding:10px 20px;}
}

@media(max-width:700px){
  .bsp-status-bar{padding:11px 20px;}
  .bsp-hero{padding:36px 20px 32px;}
  .bsp-hero-title{font-size:1.6rem;}
  .bsp-inner{padding:24px 0 60px;}
  .bsp-sec-grid{grid-template-columns:1fr;}
  .bsp-field{border-right:none;}
  .bsp-sec-hdr,.bsp-field,.bsp-pieces-grid,.bsp-quote{padding-left:20px;padding-right:20px;}
}

/* ── FEATURE 8: designer working banner ── */
.designer-working-banner{
  display:none;background:rgba(146,38,48,.05);border-bottom:2px solid var(--bloodstone);padding:0;
}
.designer-working-banner.show{display:block;}
.dwb-inner{
  max-width:1000px;margin:0 auto;padding:14px 24px;
  display:flex;align-items:center;gap:14px;
}
.dwb-icon{font-size:1.4rem;flex-shrink:0;}
.dwb-text{font-family:'Montserrat',sans-serif;flex:1;font-size:var(--text-body);color:var(--onyx);line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:300;}
.dwb-text strong{display:inline;font-weight:700;color:var(--bloodstone);white-space:nowrap;}
.dwb-sub{font-family:'Montserrat',sans-serif;font-size:var(--text-body);color:var(--onyx);line-height:1.6;display:inline;font-weight:300;}
.dwb-date{color:var(--bloodstone);font-style:italic}
.dwb-cta{
  font-family:'Montserrat',sans-serif;font-size:var(--text-xs);letter-spacing:.18em;
  text-transform:uppercase;background:var(--bloodstone);color:var(--white);
  border:none;padding:9px 18px;cursor:pointer;transition:background .25s;flex-shrink:0;font-weight:600;
}
.dwb-cta:hover{background:var(--bloodstone-dk);}
@media(max-width:680px){.dwb-inner{flex-wrap:wrap}.dwb-cta{width:100%;text-align:center;padding:10px}}

/* ── CONCEPT PENDING PLACEHOLDER ── */
.concept-pending-placeholder{
  display:grid;
  grid-template-columns:220px 1fr;
  min-height:calc(100vh - 56px);
  flex:1;
}
.concept-pending-placeholder.hide{display:none}

/* Sidebar */
.cpp-sidebar{
  background:var(--onyx);
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  padding:48px 28px;
  position:relative;overflow:hidden;
}
.cpp-sidebar::after{
  content:'';
}
.cpp-sidebar-num{
  font-family:'Montserrat',sans-serif;font-size:.63rem;
  letter-spacing:.28em;text-transform:uppercase;
  color:rgba(255,255,255,.2);margin-bottom:12px;
}
.cpp-sidebar-title{
  font-family:'Libre Baskerville',serif;
  font-size:1rem;font-style:italic;
  color:rgba(255,255,255,.62);
  text-align:center;line-height:1.75;letter-spacing:.04em;
}

/* Content pane */
.cpp-pane{
  background:var(--ivory);
  display:flex;align-items:center;justify-content:flex-start;
  padding:48px 72px;
}
.cpp-inner{max-width:420px;}

.cpp-eyebrow{
  font-family:'Montserrat',sans-serif;font-size:var(--text-ui);
  letter-spacing:.28em;text-transform:uppercase;
  color:var(--bloodstone);font-weight:600;margin-bottom:20px;
  display:flex;align-items:center;gap:12px;
}
.cpp-eyebrow-line{
  display:block;width:28px;height:1px;
  background:var(--bloodstone);opacity:.4;flex-shrink:0;
}
.cpp-headline{
  font-family:'Libre Baskerville',serif;font-size:1.85rem;
  font-style:italic;color:var(--onyx);line-height:1.35;
  margin-bottom:24px;font-weight:500;
}
.cpp-body{
  font-family:'Montserrat',sans-serif;font-size:var(--text-ui);
  font-weight:300;color:rgba(45,16,21,.5);line-height:2;
  margin-bottom:36px;
}
.cpp-progress-row{
  display:flex;align-items:center;gap:16px;
}
.cpp-bar-wrap{
  flex:1;height:1px;background:rgba(45,16,21,.1);
  position:relative;overflow:hidden;
}
.cpp-bar{
  position:absolute;top:0;height:100%;
  background:var(--sage);
}
.cpp-bar--static{
  left:0;width:0%;
}
.cpp-bar--scan{
  left:-50%;width:50%;
  animation:cpp-scan 3s ease-in-out infinite;
}
@keyframes cpp-scan{0%{left:-50%}100%{left:150%}}
.cpp-progress-label{
  font-family:'Montserrat',sans-serif;font-size:var(--text-ui);
  letter-spacing:.18em;text-transform:uppercase;
  color:var(--sage);font-weight:600;white-space:nowrap;
}

@media(max-width:680px){
  .concept-pending-placeholder{grid-template-columns:1fr}
  .cpp-sidebar{display:none}
  .cpp-pane{padding:48px 28px}
  .cpp-headline{font-size:1.35rem}
}

/* ── CREATIVE DIRECTION BANNER ── */
/* ── DESIGNER'S INTENTIONS LETTER CARD ── */
/* ── DESIGNER'S INTENTIONS — integrated section ── */
.creative-direction-banner{
  display:none;
  background:var(--white);
  border-bottom:1px solid var(--border);
  margin:0;
}
.creative-direction-banner.show{display:block}

/* Section header bar — matches portal section rhythm */
.cdl-section-hdr{
  display:flex;align-items:center;gap:16px;
  padding:20px 64px;
  border-bottom:1px solid var(--border);
}
.cdl-eyebrow{
  font-family:'Montserrat',sans-serif;font-size:.63rem;
  letter-spacing:.28em;text-transform:uppercase;
  color:var(--gold);font-weight:700;flex-shrink:0;
}
.cdl-heading{
  font-family:'Libre Baskerville',serif;font-size:1.0rem;font-weight:700;
  color:var(--onyx-dk);letter-spacing:-.01em;margin:0;
}

/* Letter body — comfortable reading width, centred */
.cdl-card{
  max-width:920px;
  margin:0 auto;
  padding:40px 64px 52px;
  position:static;
  background:transparent;
  border:none;
  box-shadow:none;
}
.cdl-card::before,.cdl-card::after{display:none;}

.cdl-salutation{
  font-family:'Libre Baskerville',serif;font-size:.94rem;
  color:var(--onyx);margin-bottom:20px;font-weight:400;line-height:1.6;
}
.cdl-body{
  font-family:'Montserrat',sans-serif;font-size:.85rem;font-weight:300;
  color:var(--onyx);line-height:1.95;
}
.cdl-body p{margin-bottom:16px}
.cdl-body p:last-child{margin-bottom:0}

/* Signature + seal row — seal lives here now, like a real wax stamp */
.cdl-footer{
  display:flex;align-items:flex-end;justify-content:space-between;
  margin-top:28px;gap:32px;
}
.cdl-sign-area{flex:1;}
.cdl-divider{
  border:none;border-top:1px solid rgba(184,147,90,.35);
  margin:0 0 22px;
}
.cdl-signature{
  font-family:'Libre Baskerville',serif;font-size:.87rem;
  color:var(--onyx);font-style:italic;line-height:1.85;
}
.cdl-seal{
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
}
.cdl-seal img{
  transform:rotate(-5deg);
  opacity:.72;
  mix-blend-mode:multiply;
  filter:sepia(.12) contrast(1.08);
  transition:opacity .3s;
}
.cdl-seal img:hover{opacity:.88}
.cdl-seal-text{
  font-family:'Montserrat',sans-serif;font-size:.3rem;
  letter-spacing:.14em;text-transform:uppercase;
  color:rgba(255,255,255,.97);font-weight:700;
  text-align:center;line-height:1.65;
}

/* Old cd-message hidden — replaced by letter card */
.cd-message{display:none!important;}

@media(max-width:680px){
  .cdl-section-hdr{padding:16px 20px;}
  .cdl-card{padding:28px 20px 40px;}
  .cdl-footer{flex-direction:column;align-items:flex-start;gap:20px;}
}

/* ── DOCUMENTS SECTION ── */
.docs-section{display:block;margin:24px 48px 0}
.docs-section-hdr{font-family:'Montserrat',sans-serif;font-size:var(--text-md);font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--onyx);margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--border)}
.docs-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.doc-card{
  border:1px solid var(--border);padding:28px 28px 24px;background:#fff;
  display:flex;align-items:flex-start;gap:16px;
  transition:box-shadow .25s;position:relative;
}
.doc-card:hover{box-shadow:var(--sh-hover)}
.doc-icon{font-size:1.4rem;flex-shrink:0;opacity:.45;line-height:1;margin-top:3px}
.doc-info{flex:1;min-width:0}
.doc-title{font-family:'Montserrat',sans-serif;font-size:var(--text-body);font-weight:600;color:var(--onyx);margin-bottom:5px;letter-spacing:.01em}
.doc-sub{font-family:'Montserrat',sans-serif;font-size:.72rem;color:var(--sage);line-height:1.58;margin-bottom:12px;font-weight:300}
.doc-actions{display:flex;gap:8px;flex-wrap:wrap}
.doc-btn{
  font-size:var(--text-ui);letter-spacing:.14em;text-transform:uppercase;
  color:var(--white);background:var(--bloodstone);border:none;
  padding:8px 14px;cursor:pointer;font-family:'Montserrat',sans-serif;
  transition:background .2s;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;
  white-space:nowrap;border-radius:0;font-weight:600;width:100%;box-sizing:border-box;
}
.doc-btn:hover{background:var(--bloodstone-dk)}
.doc-btn-download{background:var(--sage);}
.doc-btn-download:hover{background:var(--onyx)}
.doc-btn-soon{position:absolute;top:14px;right:14px;font-size:var(--text-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--gold);font-weight:800;font-family:'Montserrat',sans-serif}
.docs-group-divider{margin:20px 0;border-top:1px solid var(--border)}
@media(max-width:900px){.docs-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:540px){.docs-grid{grid-template-columns:1fr}}
@media(max-width:680px){.docs-section{margin:16px 20px 0}}

/* ── UPSELL / UPGRADE SECTION ── */
.upgrade-section{display:none;border-top:1px solid var(--border);padding:56px 64px 60px;background:var(--ivory);}
.upgrade-section.show{display:block}
.upgrade-section-inner{padding:0;background:none;border:none;overflow:visible;}
.upgrade-section-inner::before{display:none}
.upgrade-label{font-size:.63rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:18px;font-family:'Montserrat',sans-serif;}
.upgrade-title{font-family:'Libre Baskerville',serif;font-size:1.9rem;color:var(--onyx-dk);margin-bottom:10px;font-weight:400;line-height:1.15;}
.upgrade-title em{font-style:italic;color:var(--bloodstone)}
.upgrade-sub{font-size:.85rem;color:var(--sage);line-height:1.75;margin-bottom:36px;max-width:520px}
.upgrade-cards{display:block;border-top:1px solid var(--border)}
.upgrade-card{
  display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:32px;
  border:none;background:transparent;padding:22px 12px;box-shadow:none;
  border-bottom:1px solid var(--border);
  transition:background .2s;
}
.upgrade-card:hover{background:rgba(146,38,48,.022)}
.upgrade-card-left{display:flex;flex-direction:column;gap:4px}
.upgrade-card-plan{font-size:var(--text-ui);letter-spacing:.28em;text-transform:uppercase;color:var(--sage-lt);font-family:'Montserrat',sans-serif;font-weight:600}
.upgrade-card-badge{font-size:var(--text-ui);letter-spacing:.28em;text-transform:uppercase;color:var(--sage-lt);font-family:'Montserrat',sans-serif;font-weight:600}
.upgrade-card-title,.upgrade-card-name{font-family:'Libre Baskerville',serif;font-size:var(--h3);color:var(--onyx-dk);font-weight:400}
.upgrade-card-desc{font-size:.72rem;color:var(--sage);line-height:1.65;max-width:500px;margin-top:3px}
.upgrade-card-right{flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;gap:7px}
.upgrade-card-btn{
  display:inline-block;white-space:nowrap;
  font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase;
  background:transparent;color:var(--bloodstone);
  border:1.5px solid var(--bloodstone);
  padding:10px 22px;cursor:pointer;font-family:'Montserrat',sans-serif;
  text-decoration:none;transition:background .22s,color .22s;font-weight:600;
}
.upgrade-card-btn:hover{background:var(--bloodstone);color:var(--ivory)}
.upgrade-card-note{font-size:.78rem;color:rgba(45,16,21,.32);line-height:1.5;text-align:right}
@media(max-width:680px){.upgrade-section{padding:40px 24px 48px;}.upgrade-card{flex-direction:column;align-items:flex-start}.upgrade-card-right{align-items:flex-start}}

/* WELCOME MODAL */
.welcome-modal-overlay {
  position: fixed; inset: 0; background: rgba(45,16,21,0.6);
  backdrop-filter: blur(8px); z-index: 800;
  display: none; align-items: center; justify-content: center; padding: 24px;
}
.welcome-modal-overlay.open { display: flex; }
.welcome-modal {
  background: var(--white); max-width: 520px; width: 100%;
  padding: 52px 48px; text-align: center; position: relative;
  animation: fadeUp .5s ease; box-shadow: var(--shl);
}
.wm-icon { font-size: 2rem; margin-bottom: 20px; opacity: 0.35; color: var(--bloodstone); }
.wm-title {
  font-family: 'Libre Baskerville', serif; font-size: 1.7rem;
  font-weight: 400; color: var(--onyx-dk); margin-bottom: 10px; line-height: 1.2;
}
.wm-title em { font-style: italic; color: var(--bloodstone); }
.wm-sub { font-family: 'Montserrat', sans-serif; font-size: .72rem; color: var(--sage); line-height: 1.85; margin-bottom: 36px; max-width: 380px; margin-left: auto; margin-right: auto; font-weight: 300; }
.wm-steps { display: flex; flex-direction: column; gap: 0; text-align: left; margin-bottom: 36px; border: 1px solid var(--border); }
.wm-step {
  display: flex; align-items: flex-start; gap: 16px; padding: 16px 20px;
  border-bottom: 1px solid var(--border);
}
.wm-step:last-child { border-bottom: none; }
.wm-step-num {
  width: 28px; height: 28px; border-radius: 50%; background: rgba(45,16,21,.08);
  color: var(--sage); font-family: 'Montserrat', sans-serif; font-size: var(--text-xs); font-weight: 700;
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.wm-step.active .wm-step-num { background: var(--bloodstone); color: var(--white); }
.wm-step-info {}
.wm-step-title { font-family: 'Montserrat', sans-serif; font-size: var(--text-ui); font-weight: 600; color: var(--onyx); margin-bottom: 2px; }
.wm-step-desc { font-family: 'Montserrat', sans-serif; font-size: .63rem; color: var(--sage); line-height: 1.55; font-weight: 300; }
.wm-btn {
  font-family: 'Montserrat', sans-serif; font-size: var(--text-xs); letter-spacing: .22em;
  text-transform: uppercase; color: var(--white); background: var(--bloodstone);
  border: none; padding: 15px 48px; cursor: pointer; transition: background .3s; font-weight: 600;
}
.wm-btn:hover { background: var(--bloodstone-dk); }
.wm-dismiss { font-family: 'Montserrat', sans-serif; font-size: var(--text-xs); color: rgba(64,100,95,.5); margin-top: 14px; cursor: pointer; letter-spacing: .08em; display: block; font-weight: 400; }
.wm-dismiss:hover { color: var(--sage); }

/* PORTAL PROGRESS BAR */
.portal-progress {
  background: var(--ivory); padding: 14px 64px;
  display: flex; align-items: center; gap: 0;
  border-bottom: 1px solid var(--border);
  overflow-x: auto; flex-shrink: 0;
}
.pp-step {
  display: flex; align-items: center; gap: 10px;
  font-family: 'Montserrat', sans-serif; font-size: var(--text-xs); font-weight: 500;
  letter-spacing: .16em; text-transform: uppercase;
  color: var(--sage); white-space: nowrap; position: relative;
}
.pp-step.done { color: var(--sage-dk); }
.pp-step.active { color: var(--onyx); }
.pp-dot {
  width: 24px; height: 24px; border-radius: 50%;
  border: 1px solid var(--border);
  display: flex; align-items: center; justify-content: center;
  font-family: 'Montserrat', sans-serif; font-size: var(--text-xs); font-weight: 600;
  flex-shrink: 0; transition: all .3s; color: var(--sage);
}
.pp-step.done .pp-dot { background: var(--sage-dk); border-color: var(--sage-dk); color: var(--white); }
.pp-step.active .pp-dot { background: var(--bloodstone); border-color: var(--bloodstone); color: var(--white); }
.pp-arrow { padding: 0 12px; color: var(--border); font-size: var(--text-md); flex-shrink: 0; }
@media (max-width: 640px) {
  .portal-progress { padding: 12px 20px; }
  .pp-step span:not(.pp-dot) { display: none; }
  .pp-step.active span:not(.pp-dot) { display: inline; }
}

/* URGENCY BANNER */
.brief-urgency {
  background: rgba(146,38,48,.05); border-bottom: 2px solid var(--bloodstone);
  padding: 0;
}
.bub-inner {
  max-width: 760px; margin: 0 auto; padding: 14px 24px;
  display: flex; align-items: center; gap: 14px;
}
.bub-icon { font-size: 1.4rem; flex-shrink: 0; }
.bub-text { font-family: 'Montserrat', sans-serif; flex: 1; font-size: var(--text-body); color: var(--onyx); line-height: 1.6; white-space: nowrap; font-weight: 300; }
.bub-text strong { display: inline; font-weight: 700; color: var(--bloodstone); }
.bub-cta {
  font-family: 'Montserrat', sans-serif; font-size: var(--text-xs); letter-spacing: .18em;
  text-transform: uppercase; background: var(--bloodstone); color: var(--white);
  border: none; padding: 9px 18px; cursor: pointer; transition: background .25s; flex-shrink: 0; font-weight: 600;
}
.bub-cta:hover { background: var(--bloodstone-dk); }

/* RSVP NOTE */
.rsvp-why-note {
  background: var(--ivory); border-bottom: 1px solid var(--border);
}
.rwn-inner {
  max-width: 760px; margin: 0 auto; padding: 16px 24px;
  display: flex; align-items: flex-start; gap: 12px;
}
.rwn-icon { font-size: 1rem; flex-shrink: 0; margin-top: 1px; }
.rwn-inner p { font-family: 'Montserrat', sans-serif; font-size: var(--text-ui); color: var(--onyx); line-height: 1.75; font-weight: 300; }
.rwn-inner p strong { color: var(--onyx); font-weight: 600; }

/* ANNOTATION TOOLTIP */
.annotate-tip-overlay {
  position: absolute; inset: 0; background: rgba(45,16,21,.65);
  z-index: 50; display: none; align-items: center; justify-content: center;
  flex-direction: column; gap: 20px; text-align: center; padding: 32px;
}
.annotate-tip-overlay.show { display: flex; }
.ann-tip-box {
  background: var(--white); border: 1px solid var(--border);
  padding: 36px 40px; max-width: 400px; box-shadow: var(--shl);
}
.ann-tip-title {
  font-family: 'Libre Baskerville', serif; font-size: 1.1rem; color: var(--onyx-dk);
  margin-bottom: 10px; font-weight: 400;
}
.ann-tip-title em { font-style: italic; color: var(--bloodstone); }
.ann-tip-steps { list-style: none; text-align: left; margin: 16px 0; display: flex; flex-direction: column; gap: 10px; }
.ann-tip-steps li {
  display: flex; align-items: center; gap: 12px;
  font-family: 'Montserrat', sans-serif; font-size: var(--text-xs); color: var(--sage); line-height: 1.5; font-weight: 300;
}
.ann-tip-step-num {
  width: 22px; height: 22px; background: var(--bloodstone); border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-family: 'Montserrat', sans-serif; font-size: var(--text-xs); color: var(--white); flex-shrink: 0; font-weight: 700;
}
.ann-tip-btn {
  font-family: 'Montserrat', sans-serif; font-size: var(--text-xs); letter-spacing: .2em;
  text-transform: uppercase; background: var(--bloodstone); color: var(--white);
  border: none; padding: 12px 32px; cursor: pointer; transition: background .3s;
  margin-top: 8px; font-weight: 600;
}
.ann-tip-btn:hover { background: var(--bloodstone-dk); }
.ann-tip-skip { font-family: 'Montserrat', sans-serif; font-size: var(--text-xs); color: rgba(64,100,95,.45); cursor: pointer; margin-top: 10px; display: block; font-weight: 400; }
.ann-tip-skip:hover { color: var(--sage); }

/* ── REVIEW HERO (Tab 03 – Final Suite) ── */
.review-hero-block{padding:52px 64px 44px;background:var(--white);border-bottom:1px solid var(--border);}
.rhb-eyebrow{font-size:var(--text-xs);letter-spacing:.22em;text-transform:uppercase;color:var(--sage);font-weight:700;margin-bottom:20px;}
.rhb-heading{font-family:'Libre Baskerville',serif;font-size:2.4rem;font-weight:400;color:var(--onyx-dk);line-height:1.15;margin-bottom:16px;}
.rhb-heading em{display:block;color:var(--bloodstone);font-style:italic;}
.rhb-sub{font-size:var(--text-body);color:var(--sage);line-height:1.8;max-width:580px;margin-bottom:32px;}
.rhb-divider{border:none;border-top:1px solid var(--border);margin:0 0 26px;}
.rhb-pills{display:flex;flex-wrap:wrap;gap:10px;}
.rhb-pill{display:inline-flex;align-items:center;gap:8px;padding:9px 18px;font-family:'Montserrat',sans-serif;font-size:.72rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;border:1px solid var(--border);background:var(--white);color:var(--sage);}
.rhb-pill.approved{background:rgba(45,106,79,.08);border-color:rgba(45,106,79,.3);color:var(--sage-dk);}
.rhb-pill.pending{color:rgba(64,100,95,.65);}
.rhb-pill.pending.in-review{background:rgba(146,38,48,.06);border-color:rgba(146,38,48,.2);color:rgba(146,38,48,.75);}
.rhb-pill-dot{font-size:var(--text-ui);line-height:1;}
@media(max-width:600px){.review-hero-block{padding:36px 20px 32px;}.rhb-heading{font-size:1.8rem;}}

/* ── RSVP AT A GLANCE ── */
/* ── RSVP SLIM STATS BAR ── */
.rsvp-stats-bar{
  display:flex;justify-content:space-between;align-items:center;
  padding:20px 64px;background:var(--white);border-bottom:1px solid var(--border);
  gap:16px;flex-wrap:wrap;
}
.rsb-stats{display:flex;align-items:flex-end;gap:0;flex-wrap:wrap;}
.rsb-stat{
  display:flex;flex-direction:column;flex-shrink:0;
  padding-right:24px;margin-right:24px;border-right:1px solid var(--border);
}
.rsb-stat:last-of-type{border-right:none;margin-right:0;padding-right:0;}
.rsb-num{
  font-family:'Libre Baskerville',serif;font-size:2.2rem;font-weight:400;
  line-height:1;margin-bottom:5px;color:var(--onyx-dk);
}
.rsb-num--muted{color:var(--sage);}
.rsb-num--gold{color:var(--gold);}
.rsb-lbl{font-size:.63rem;letter-spacing:.18em;text-transform:uppercase;color:var(--sage);font-weight:600;white-space:nowrap;}
.rsb-attending .rsb-num{color:var(--sage-dk);}
.rsb-attending .rsb-lbl{color:var(--sage-dk);}
.rsb-attending{position:relative;padding-bottom:8px;}
.rsb-attending::after{content:'';position:absolute;bottom:0;left:0;right:24px;height:2px;background:var(--sage-dk);opacity:.4;}
.rsb-export-btn{
  font-family:'Montserrat',sans-serif;font-size:var(--text-xs);font-weight:600;letter-spacing:.2em;
  text-transform:uppercase;padding:13px 24px;background:var(--bloodstone-dk);color:var(--white);
  border:none;cursor:pointer;transition:background .2s;white-space:nowrap;flex-shrink:0;
}
.rsb-export-btn:hover{background:var(--bloodstone);}
@media(max-width:700px){
  .rsvp-stats-bar{padding:16px 20px;}
  .rsb-stat{padding-right:16px;margin-right:16px;}
  .rsb-num{font-size:1.8rem;}
}

/* ── ALL GUESTS SECTION (Tab 04) ── */
.rsvp-guest-wrap{background:var(--white);border-top:2px solid var(--border);}
.ag-hdr-wrap{
  padding:48px 64px 28px;background:var(--white);border-bottom:1px solid var(--border);
}
.ag-hdr-row{
  display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:20px;
}
.ag-title-eyebrow{
  font-size:var(--text-ui);letter-spacing:.22em;text-transform:uppercase;color:var(--sage);
  font-weight:600;margin-bottom:6px;
}
.ag-title{
  font-family:'Libre Baskerville',serif;font-size:1.6rem;font-weight:400;
  color:var(--onyx-dk);letter-spacing:.01em;
}
@media(max-width:700px){
  .ag-hdr-wrap{padding:28px 20px 20px}
  .ag-hdr-row{flex-direction:column;align-items:flex-start}
  .ag-title{font-size:1.3rem}
}
.ag-search-row{display:flex;align-items:stretch;border:1px solid var(--border);overflow:hidden;}
.ag-search-input{border:none;outline:none;font-family:'Montserrat',sans-serif;font-size:var(--text-sm);padding:10px 16px;flex:1;background:transparent;color:var(--onyx);min-width:200px;}
.ag-search-input::placeholder{color:rgba(64,100,95,.6);}
.ag-search-btn{background:var(--onyx-dk);color:var(--white);border:none;padding:0 18px;font-size:.85rem;cursor:pointer;font-family:'Montserrat',sans-serif;flex-shrink:0;transition:background .2s;}
.ag-search-btn:hover{background:var(--bloodstone);}
.ag-badge-yes{display:inline-block;font-family:'Montserrat',sans-serif;background:rgba(45,106,79,.1);color:var(--sage-dk);font-size:.78rem;padding:4px 10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;}
.ag-badge-no{display:inline-block;font-family:'Montserrat',sans-serif;background:rgba(146,38,48,.08);color:var(--bloodstone);font-size:.78rem;padding:4px 10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;}
.ag-badge-pending{display:inline-block;font-family:'Montserrat',sans-serif;background:rgba(64,100,95,.1);color:var(--sage);font-size:.78rem;padding:4px 10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;}
.ag-alert-chip{display:inline-flex;align-items:center;gap:3px;font-family:'Montserrat',sans-serif;font-size:var(--text-ui);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#c0390a;margin-top:3px;margin-left:8px;}
.ag-table-chip{display:inline-block;font-family:'Montserrat',sans-serif;font-size:var(--text-sm);font-weight:600;color:var(--onyx-dk);background:rgba(45,16,21,.05);padding:3px 10px;letter-spacing:.04em;white-space:nowrap;}
.ag-footer{display:flex;justify-content:space-between;align-items:center;padding:12px 64px;background:var(--white);border-top:1px solid var(--border);}
.ag-footer-count{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--sage);}
.ag-footer-link{font-family:'Montserrat',sans-serif;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--onyx-dk);background:none;border:none;cursor:pointer;padding:0;}
.ag-footer-link:hover{color:var(--bloodstone);}
.ag-party-txt{display:block;font-size:var(--text-sm);color:rgba(45,16,21,.35);font-weight:400;margin-top:5px;letter-spacing:.02em;}

/* ── NEW DOWNLOAD SECTION (Tab 03) ── */
.ndl-section{padding:48px;background:var(--ivory);}
.ndl-eyebrow{font-size:var(--text-xs);letter-spacing:.22em;text-transform:uppercase;color:var(--sage);font-weight:700;margin-bottom:20px;}
.ndl-heading{font-family:'Libre Baskerville',serif;font-size:1.6rem;font-weight:400;color:var(--onyx-dk);line-height:1.2;margin-bottom:8px;}
.ndl-heading em{color:var(--bloodstone);font-style:italic;}
.ndl-sub{font-size:var(--text-body);color:var(--sage);line-height:1.7;max-width:580px;margin-bottom:36px;}
.ndl-list{display:block;width:100%;}
#finalSuiteGrid.ndl-list{padding:40px 48px;background:var(--ivory);box-sizing:border-box;}
.ndl-piece{background:var(--white);border:1px solid var(--border);margin-bottom:20px;}
.ndl-piece-hdr{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:20px 28px;border-bottom:1px solid var(--border);}
.ndl-piece-hdr-right{display:flex;align-items:center;gap:10px;flex-shrink:0;}
.ndl-piece-name{font-family:'Libre Baskerville',serif;font-size:var(--h3);font-weight:400;color:var(--onyx-dk);text-transform:capitalize;}
.ndl-approved-badge{font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--sage-dk);font-weight:700;font-family:'Montserrat',sans-serif;}
.ndl-formats{display:grid;}
.ndl-fmt{padding:22px 20px 18px;border-right:1px solid var(--border);display:flex;flex-direction:column;}
.ndl-fmt:last-child{border-right:none;}
.ndl-fmt-type{font-size:var(--text-ui);letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--sage);margin-bottom:10px;font-family:'Montserrat',sans-serif;}
.ndl-fmt-spec{font-size:var(--text-md);font-weight:400;color:var(--onyx-dk);margin-bottom:6px;font-family:'Montserrat',sans-serif;letter-spacing:0;text-transform:none;}
.ndl-fmt-sub{font-size:.72rem;color:rgba(64,100,95,.85);line-height:1.55;flex:1;font-family:'Montserrat',sans-serif;font-weight:300;}
.ndl-fmt-btn{font-family:'Montserrat',sans-serif;font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;font-weight:700;padding:12px 10px;cursor:pointer;text-decoration:none;transition:all .2s;display:block;text-align:center;margin-top:16px;}
.ndl-fmt-btn.solid{background:#3A7D57;color:var(--white);border:none;}
.ndl-fmt-btn.solid:hover{background:#2F6647;}
.ndl-fmt-btn.outline{background:transparent;color:var(--onyx-dk);border:1px solid rgba(45,16,21,.3);}
.ndl-fmt-btn.outline:hover{background:rgba(45,16,21,.03);}
.ndl-fmt-btn.waiting{background:rgba(45,16,21,.03);color:rgba(64,100,95,.5);border:1px solid var(--border);cursor:default;pointer-events:none;}
.ndl-fmt-btn.na{background:transparent;color:rgba(64,100,95,.35);border:1px dashed rgba(64,100,95,.25);cursor:default;pointer-events:none;font-style:italic;letter-spacing:.08em;}
.ndl-guest-link-btn{background:transparent;color:var(--sage-dk);border:1px solid rgba(64,100,95,.4);}
.ndl-guest-link-btn:hover{background:rgba(64,100,95,.06);}
.ndl-bundled-badge{font-size:.63rem;letter-spacing:.18em;text-transform:uppercase;color:var(--sage);font-weight:600;padding:2px 7px;border:1px dashed rgba(64,100,95,.4);margin-left:10px;vertical-align:middle;}
.bb-designer-choice-badge{display:inline-block;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(122,148,144,.8);font-weight:600;padding:2px 8px;border:1px dashed rgba(122,148,144,.38);margin-top:7px;font-family:'Montserrat',sans-serif;font-style:normal;white-space:nowrap;}
.bb-meta-name-wrap{display:flex;flex-direction:column;align-items:flex-start;gap:0;}
.ndl-share-btn{font-family:'Montserrat',sans-serif;font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;font-weight:600;padding:5px 10px;cursor:pointer;background:transparent;color:var(--onyx);border:1px solid var(--border);transition:all .18s;}
.ndl-share-btn:hover{border-color:var(--sage);color:var(--sage-dk);}
.ndl-fmt--na{opacity:.42;}
.ndl-fmt-spec--na{color:rgba(64,100,95,.4);font-size:var(--text-sm);}
.ndl-pending-wrap{background:var(--ivory);border-top:1px solid var(--border);padding:32px 64px 36px;display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:28px;margin-bottom:0;}
.ndl-pending-eyebrow{font-size:.63rem;letter-spacing:.24em;text-transform:uppercase;color:var(--sage);font-weight:700;margin-bottom:16px;font-family:'Montserrat',sans-serif;}
.ndl-pending-name{font-family:'Libre Baskerville',serif;font-size:.9rem;font-style:italic;color:var(--sage);line-height:1.8;}
/* Individual pending item rows */
.ndl-pi{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--border);}
.ndl-pi:last-child{border-bottom:none;}
.ndl-pi-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.ndl-pi-dot.in_review{background:rgba(184,147,90,.85);}
.ndl-pi-dot.revision_requested{background:rgba(146,38,48,.45);}
.ndl-pi-dot.in_design{background:rgba(45,16,21,.25);}
.ndl-pi-dot.pending{background:rgba(45,16,21,.15);}
.ndl-pi-name{font-family:'Libre Baskerville',serif;font-size:.85rem;color:var(--onyx-dk);flex:1;}
.ndl-pi-status{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;font-family:'Montserrat',sans-serif;}
.ndl-pi-status.in_review{color:rgba(184,147,90,.9);}
.ndl-pi-status.revision_requested{color:rgba(146,38,48,.6);}
.ndl-pi-status.in_design{color:var(--sage);}
.ndl-pi-status.pending{color:rgba(45,16,21,.3);}
@media(max-width:680px){.ndl-pending-wrap{padding:28px 24px 32px;}}
.ndl-review-btn{font-family:'Montserrat',sans-serif;font-size:var(--text-sm);letter-spacing:.14em;text-transform:uppercase;font-weight:600;padding:12px 24px;background:var(--bloodstone);color:var(--white);border:none;cursor:pointer;flex-shrink:0;transition:all .2s;}
.ndl-review-btn:hover{background:var(--bloodstone-dk);}
@media(max-width:900px){.ndl-formats{grid-template-columns:repeat(2,1fr) !important}}
@media(max-width:600px){
  .ndl-formats{grid-template-columns:1fr !important}
  .ag-hdr-wrap{padding:24px 20px 16px;}
  .ag-footer{padding:12px 20px;}
  .ag-search-input{min-width:140px;}
}

/* ══ DESIGN SUITE CARD — V2 REFERENCE FORMAT ══ */
/* "Full View" button overlay */
.bb-preview .bb-open{top:10px!important;right:10px!important;font-size:var(--text-ui);letter-spacing:.16em;font-weight:600;padding:5px 10px;background:rgba(45,16,21,.72);color:rgba(250,246,238,.9);backdrop-filter:blur(2px);}
/* Corner crop marks */
.bb-corner{position:absolute;width:14px;height:14px;pointer-events:none;}
.bb-corner-tl{top:10px;left:10px;border-top:1px solid rgba(250,246,238,.28);border-left:1px solid rgba(250,246,238,.28);}
.bb-corner-tr{top:10px;right:10px;border-top:1px solid rgba(250,246,238,.28);border-right:1px solid rgba(250,246,238,.28);}
.bb-corner-bl{bottom:24px;left:10px;border-bottom:1px solid rgba(250,246,238,.28);border-left:1px solid rgba(250,246,238,.28);}
.bb-corner-br{bottom:24px;right:10px;border-bottom:1px solid rgba(250,246,238,.28);border-right:1px solid rgba(250,246,238,.28);}
/* Print spec gradient overlay at bottom of preview */
.bb-preview-spec{position:absolute;bottom:0;left:0;right:0;padding:10px 14px;text-align:center;font-family:'Montserrat',sans-serif;font-size:.34rem;letter-spacing:.22em;color:rgba(250,246,238,.38);background:linear-gradient(to top,rgba(45,16,21,.52) 0%,transparent 100%);pointer-events:none;}
/* Meta panel */
.bb-meta{padding:20px 22px 10px!important;}
.bb-meta-top{flex-direction:row!important;justify-content:space-between!important;align-items:flex-start!important;gap:10px!important;margin-bottom:8px!important;}
.bb-piece-name{font-size:1.1rem!important;flex:1!important;min-width:0!important;}
/* Status badge — bordered, minimal fill */
.bb-status-pill{font-size:var(--text-ui)!important;letter-spacing:.12em!important;padding:5px 10px!important;border-radius:0!important;border:1px solid!important;background:transparent!important;flex-shrink:0!important;margin-top:3px!important;font-weight:600!important;}
.bb-status-pill.pending{color:rgba(64,100,95,.6)!important;border-color:rgba(64,100,95,.25)!important;background:transparent!important;}
.bb-status-pill.in_progress{color:rgba(201,168,76,.88)!important;border-color:rgba(201,168,76,.3)!important;background:rgba(201,168,76,.04)!important;}
.bb-status-pill.ready,.bb-status-pill.approved{color:#2D6A4F!important;border-color:rgba(45,106,79,.3)!important;background:rgba(45,106,79,.05)!important;}
.bb-status-pill.approved::after{content:''!important;}
/* Print specs line below piece name */
.bb-piece-specs{font-family:'Montserrat',sans-serif;font-size:var(--text-sm);font-weight:300;color:var(--sage);line-height:1.5;margin-bottom:0;margin-top:6px;}
/* Note / designer note box */
.bb-piece-desc{margin:0 0 10px!important;padding:12px 14px!important;background:rgba(250,246,238,.55)!important;}
.bb-piece-desc-lbl{font-size:var(--text-ui)!important;letter-spacing:.16em!important;color:var(--sage)!important;}
/* Action buttons — full-width 2-column */
.bb-actions{display:flex!important;gap:8px!important;border-top:1px solid var(--border)!important;margin-top:14px!important;padding:12px!important;justify-content:stretch!important;align-items:center!important;}
.bb-actions-compact{margin-top:2px!important;padding:8px 12px!important;}
.bb-action-approve{flex:1!important;padding:11px 8px!important;font-size:.78rem!important;letter-spacing:.15em!important;font-weight:400!important;color:#3A7040!important;background:rgba(45,106,79,.09)!important;border:1px solid rgba(45,106,79,.28)!important;text-align:center!important;justify-content:center!important;}
.bb-action-approve:hover{background:rgba(45,106,79,.16)!important;}
.bb-action-approve.active{color:#2D6A4F!important;cursor:default!important;background:rgba(45,106,79,.06)!important;}
.bb-action-revise{flex:1!important;padding:11px 8px!important;font-size:.78rem!important;letter-spacing:.15em!important;font-weight:400!important;background:rgba(139,68,68,.07)!important;color:#8B4444!important;border:1px solid rgba(139,68,68,.25)!important;border-radius:0!important;text-align:center!important;justify-content:center!important;}
.bb-action-revise:hover{background:rgba(139,68,68,.14)!important;}
.bb-action-history{flex:0;padding:9px 16px;border:1px solid var(--border-d);background:none;cursor:pointer;font-family:'Montserrat',sans-serif;font-size:.78rem;letter-spacing:.15em;text-transform:uppercase;font-weight:400;color:rgba(45,16,21,.45);transition:background .2s;border-radius:0;}
.bb-action-history:hover{background:rgba(45,16,21,.04);}
.bb-action-disabled{flex:0!important;padding:0!important;font-family:'Montserrat',sans-serif!important;font-size:var(--text-ui)!important;letter-spacing:.13em!important;text-transform:uppercase!important;font-weight:400!important;color:rgba(64,100,95,.45)!important;background:none!important;border:none!important;}
.bb-action-norevisions{flex:1!important;padding:11px 8px!important;font-family:'Montserrat',sans-serif!important;font-size:.78rem!important;letter-spacing:.13em!important;text-transform:uppercase!important;font-weight:400!important;color:rgba(64,100,95,.5)!important;background:rgba(64,100,95,.05)!important;border:1px dashed rgba(64,100,95,.25)!important;text-align:center!important;display:flex!important;align-items:center!important;justify-content:center!important;}
.bb-note-block{padding:18px 22px 16px!important;}
@media(max-width:900px){.brandbook-grid{grid-template-columns:1fr!important;gap:32px;}}

/* ── DESIGN SUITE CARD: status pill refinements ── */
/* Awaiting Review — burgundy tone, ◐ icon */
.bb-status-pill.in_review{color:rgba(146,38,48,.85)!important;border-color:rgba(146,38,48,.28)!important;background:rgba(146,38,48,.05)!important;}
.bb-status-pill.in_review::before{content:'\25D0\00a0\00a0';font-style:normal;}
/* In Progress — gold tone, ◑ icon */
.bb-status-pill.in_progress::before{content:'\25D1\00a0\00a0';font-style:normal;}
/* Special (Awaiting Guest List, Post-Event) — muted/flat */
.bb-status-pill.special{color:rgba(64,100,95,.6)!important;border-color:rgba(64,100,95,.22)!important;background:transparent!important;}
/* Pending (Not Yet Started) stays as-is */

/* ── Pending preview placeholder — brownish-gray bg ── */
.bb-preview.empty{background:#726B5F!important;}
.bb-preview.empty::before{background:
  linear-gradient(135deg,rgba(250,246,238,.025) 25%,transparent 25%,transparent 50%,rgba(250,246,238,.025) 50%,rgba(250,246,238,.025) 75%,transparent 75%) 0/20px 20px,
  #726B5F!important;}
.bb-preview-empty-lbl{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;width:80%;}
.bb-preview-empty-name{display:block;font-family:'Montserrat',sans-serif;font-size:var(--text-ui);letter-spacing:.24em;text-transform:uppercase;color:rgba(250,246,238,.42);margin-bottom:9px;}
.bb-preview-empty-sub{display:block;font-family:'Montserrat',sans-serif;font-size:.63rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(250,246,238,.24);}

/* ── Revision notes block redesign ── */
.bb-note-hdr{font-size:.63rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(146,38,48,.42);font-weight:600;margin-bottom:12px;}
.bb-note-cancel{font-family:'Montserrat',sans-serif;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--bloodstone);background:rgba(146,38,48,.06);border:1px solid rgba(146,38,48,.22);padding:8px 16px;cursor:pointer;transition:background .2s;}
.bb-note-cancel:hover{background:rgba(146,38,48,.12);}
.bb-note-send{font-family:'Montserrat',sans-serif;font-size:.78rem!important;letter-spacing:.15em!important;text-transform:uppercase;background:rgba(139,68,68,.07)!important;color:#8B4444!important;border:1px solid rgba(139,68,68,.25)!important;padding:9px 16px!important;cursor:pointer;border-radius:0!important;transition:background .2s!important;font-weight:400!important;}
.bb-note-send:hover{background:rgba(139,68,68,.14)!important;}
.bb-note-footer{display:flex;align-items:center;justify-content:space-between;margin-top:10px;}
.bb-note-autosave{font-family:'Montserrat',sans-serif;font-size:.68rem;letter-spacing:.06em;color:rgba(45,106,79,.7);font-style:italic;}

/* ── DESIGN SUITE HERO ── */
.ds-hero{background:var(--white);border-bottom:1px solid var(--border);display:none;}
.ds-hero.show{display:block;}
.ds-hero-body{padding:52px 64px 40px;}
.ds-hero-eyebrow{font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:var(--sage);font-weight:700;margin-bottom:18px;}
.ds-hero-h1{font-family:'Libre Baskerville',serif;font-size:2.4rem;font-weight:400;color:var(--onyx-dk);line-height:1.1;margin-bottom:18px;}
.ds-hero-h1 em{color:var(--bloodstone);font-style:italic;display:block;}
.ds-hero-sub{font-size:var(--text-body);color:var(--sage);line-height:1.8;max-width:540px;margin-bottom:36px;font-weight:300;}
.ds-hero-stats{display:flex;gap:56px;border-top:1px solid var(--border);padding-top:28px;flex-wrap:wrap;}
.ds-hero-stat-lbl{font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--sage);font-weight:700;margin-bottom:7px;}
.ds-hero-stat-val{font-family:'Libre Baskerville',serif;font-size:var(--h3);color:var(--onyx-dk);font-weight:400;}
.ds-status-bar{display:flex;justify-content:space-between;align-items:center;padding:14px 64px;border-top:1px solid var(--border);background:var(--white);flex-wrap:wrap;gap:12px;}
.ds-status-pills{display:flex;align-items:center;gap:28px;flex-wrap:wrap;}
.ds-spill{display:flex;align-items:center;gap:8px;font-size:.78rem;letter-spacing:.15em;text-transform:uppercase;font-weight:600;color:var(--sage);cursor:default;}
.ds-spill-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.ds-spill-dot.approved{background:var(--sage-dk);}
.ds-spill-dot.review{background:var(--bloodstone);}
.ds-spill-dot.progress{background:var(--gold);}
.ds-spill-dot.pending{background:rgba(64,100,95,.32);}
.ds-spill-count{font-family:'Libre Baskerville',serif;font-size:.95rem;color:var(--onyx-dk);font-weight:400;margin-left:2px;}
.ds-share-btn{font-family:'Montserrat',sans-serif;font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--onyx-dk);background:transparent;border:1px solid rgba(45,16,21,.18);padding:9px 20px;cursor:pointer;transition:all .2s;white-space:nowrap;}
.ds-share-btn:hover{border-color:var(--bloodstone);color:var(--bloodstone);}
@media(max-width:680px){
  .ds-hero-body{padding:32px 20px 24px;}
  .ds-hero-stats{gap:28px;}
  .ds-status-bar{padding:12px 20px;}
}

/* ═══════════════════════════════════════════════════════
   ALL-DESIGNS-COMPLETE CALLOUT (tab 03)
   ═══════════════════════════════════════════════════════ */
.ds-complete-callout{display:flex;align-items:center;gap:24px;padding:28px 64px;background:var(--linen);border-top:1px solid var(--border);border-bottom:1px solid var(--border);}
.dsc-icon{font-size:1.4rem;color:var(--bloodstone);flex-shrink:0;line-height:1;}
.dsc-body{flex:1;min-width:0;}
.dsc-title{font-family:'Libre Baskerville',serif;font-size:.92rem;color:var(--onyx-dk);font-weight:400;margin-bottom:4px;}
.dsc-sub{font-size:.78rem;color:var(--sage);line-height:1.65;}
.dsc-sub strong{color:var(--onyx-dk);font-weight:600;}
.dsc-btn{flex-shrink:0;padding:var(--btn-pad-sm);background:var(--bloodstone);color:#fff;border:none;cursor:pointer;font-family:'Montserrat',sans-serif;font-size:var(--text-sm);letter-spacing:.14em;text-transform:uppercase;font-weight:600;white-space:nowrap;}
.dsc-btn:hover{background:var(--onyx-dk);}
@media(max-width:700px){
  .ds-complete-callout{flex-direction:column;align-items:flex-start;padding:24px 20px;gap:16px;}
  .dsc-btn{width:100%;}
}

/* ═══════════════════════════════════════════════════════
   WHAT'S IN YOUR SUITE — editorial numbered row list
   ═══════════════════════════════════════════════════════ */
.items-section{margin:0!important;background:var(--white);border-top:1px solid var(--border);}
.items-sec-hdr{padding:26px 64px 22px!important;margin-bottom:0!important;border-bottom:1px solid var(--border)!important;}
.items-sec-title{font-family:'Montserrat',sans-serif!important;font-size:.78rem!important;letter-spacing:.26em!important;color:var(--sage)!important;font-weight:700!important;}
.items-sec-sub{font-size:.78rem!important;letter-spacing:.18em!important;color:var(--gold)!important;font-weight:700!important;}
.items-grid{display:block!important;gap:0!important;background:var(--white);}
.item-card{
  display:flex!important;flex-direction:row!important;align-items:center!important;
  padding:15px 64px!important;gap:22px!important;
  border:none!important;border-bottom:1px solid var(--border)!important;
  background:var(--white)!important;transition:background .18s;
}
.item-card:last-child{border-bottom:none!important;}
.item-card:hover{background:rgba(64,100,95,.04)!important;}
.item-num{font-family:'Montserrat',sans-serif;font-size:.43rem;letter-spacing:.18em;color:rgba(64,100,95,.5);font-weight:600;flex-shrink:0;min-width:24px;}
.item-name{font-family:'Libre Baskerville',serif!important;font-size:.92rem!important;color:var(--onyx-dk)!important;font-weight:400!important;flex:1;letter-spacing:0!important;}
.item-card-top{display:none!important;}
.item-status-txt{display:none!important;}
.item-status-dot{display:none!important;}
.item-status-row{display:inline-flex;align-items:center;gap:7px;font-family:'Montserrat',sans-serif;font-size:var(--text-ui);letter-spacing:.15em;text-transform:uppercase;font-weight:600;flex-shrink:0;}
.item-status-row.in_progress{color:var(--sage);}
.item-status-row.in_revision{color:var(--gold);}
.item-status-row.ready{color:#922630;}
.item-status-row.approved{color:var(--sage-dk);}
.item-status-row.not_started{color:rgba(45,16,21,.28);}
.item-sdot{display:inline-block;width:6px;height:6px;border-radius:50%;flex-shrink:0;}
.item-sdot.in_progress{background:var(--sage);}
.item-sdot.in_revision{background:var(--gold);}
.item-sdot.ready{background:#922630;}
.item-sdot.approved{background:var(--sage-dk);}
.item-sdot.not_started{background:rgba(45,16,21,.18);}
.item-num{color:var(--sage-lt)!important;}
@media(max-width:600px){
  .item-card{padding:14px 20px!important;gap:14px!important;}
  .items-sec-hdr{padding:20px 20px 16px!important;}
}

/* ═══════════════════════════════════════════════════════
   LOGIN SCREEN — redesign
   ═══════════════════════════════════════════════════════ */
.login-screen{
  background:#100606!important;
  justify-content:center!important;gap:0!important;
}
.login-logo{
  font-size:.78rem!important;letter-spacing:.32em!important;
  color:rgba(250,246,238,.55)!important;
  margin-bottom:0!important;
  padding-bottom:28px!important;
  border-bottom:1px solid rgba(64,100,95,.14)!important;
  width:100%!important;max-width:440px!important;
  text-align:center!important;
}
.login-box{
  background:transparent!important;border:none!important;
  border-bottom:1px solid rgba(64,100,95,.14)!important;
  padding:44px 0 40px!important;max-width:440px!important;width:100%!important;
}
.login-title{
  font-size:2.3rem!important;line-height:1.22!important;
  letter-spacing:.02em!important;
  color:rgba(250,246,238,.92)!important;margin-bottom:14px!important;
}
.login-title em{color:#8B2332!important;}
.login-sub{
  font-size:var(--text-ui)!important;line-height:1.82!important;
  color:rgba(255,255,255,.9)!important;margin-bottom:38px!important;font-weight:300!important;
}
.login-fld{margin-bottom:0!important;padding-bottom:20px!important;}
.login-fld label{
  font-size:.63rem!important;letter-spacing:.24em!important;
  color:rgba(255,255,255,.9)!important;margin-bottom:9px!important;font-weight:700!important;
}
.login-fld input{
  background:transparent!important;
  border:none!important;border-bottom:1px solid rgba(64,100,95,.22)!important;
  padding:11px 0!important;font-size:.85rem!important;
  color:rgba(250,246,238,.9)!important;font-weight:300!important;
  transition:border-color .25s!important;
}
.login-fld input::placeholder{color:rgba(64,100,95,.3)!important;}
.login-fld input:focus{border-bottom-color:var(--bloodstone)!important;outline:none!important;}
.login-btn{
  margin-top:28px!important;padding:16px!important;
  font-size:var(--text-xs)!important;letter-spacing:.28em!important;
  background:var(--bloodstone)!important;
}
.login-err{font-size:var(--text-sm)!important;margin-top:14px!important;color:rgba(224,112,112,.85)!important;}
.login-hint{
  font-size:var(--text-sm)!important;color:rgba(255,255,255,.9)!important;
  margin-top:22px!important;letter-spacing:.03em!important;text-align:center!important;
}
/* Forgot panel */
#forgotPanel{max-width:440px!important;width:100%!important;}
#forgotPanel > div{
  border-top:none!important;padding-top:0!important;
  padding:28px 0 0!important;
}
#forgotPanel p{color:rgba(64,100,95,.55)!important;font-size:var(--text-ui)!important;}
#forgotPanel input{
  background:transparent!important;
  border:none!important;border-bottom:1px solid rgba(64,100,95,.22)!important;
  color:rgba(250,246,238,.9)!important;padding:11px 0!important;font-size:.85rem!important;
  margin-top:10px!important;
}
#forgotPanel button[onclick]{
  background:var(--bloodstone)!important;font-size:var(--text-xs)!important;
  letter-spacing:.28em!important;padding:15px!important;
}
#forgotMsg{color:rgba(64,100,95,.55)!important;font-size:var(--text-ui)!important;}
@media(max-width:540px){
  .login-box,#forgotPanel{padding-left:0!important;padding-right:0!important;}
}

/* ═══════════════════════════════════════════════════════
   BRIEFING PROGRESS BAR — redesign
   ═══════════════════════════════════════════════════════ */
.brief-prog{
  padding:0 64px!important;background:var(--white)!important;
  border-bottom:1px solid var(--border)!important;
  gap:0!important;height:44px!important;
}
.brief-prog-lbl{
  font-size:.63rem!important;letter-spacing:.24em!important;
  color:var(--sage)!important;font-weight:700!important;
  flex-shrink:0;margin-right:20px!important;
}
.brief-prog-bar{
  flex:1!important;max-width:none!important;
  height:2px!important;background:rgba(45,16,21,.07)!important;
}
.brief-prog-fill{height:2px!important;background:var(--bloodstone)!important;}
.brief-prog-pct{
  font-size:.63rem!important;letter-spacing:.2em!important;
  color:var(--bloodstone)!important;font-weight:700!important;
  flex-shrink:0;margin-left:20px!important;min-width:32px!important;text-align:right!important;
}
@media(max-width:600px){.brief-prog{padding:0 20px!important;}}

/* ═══════════════════════════════════════════════════════
   BRIEFING URGENCY BANNER — redesign
   ═══════════════════════════════════════════════════════ */
.brief-urgency{
  background:var(--white)!important;
  border-bottom:none!important;border-top:none!important;
  border-left:none!important;border-right:none!important;
  border-bottom:2px solid rgba(146,38,48,.18)!important;
}
.bub-inner{
  max-width:none!important;padding:16px 64px!important;gap:18px!important;
}
.bub-icon{font-size:1rem!important;opacity:.6;}
.bub-text{
  font-size:.78rem!important;font-weight:300!important;
  color:var(--onyx)!important;white-space:normal!important;
}
.bub-text strong{font-weight:700!important;color:var(--bloodstone)!important;}
.bub-cta{
  font-size:var(--text-xs)!important;letter-spacing:.22em!important;
  padding:10px 20px!important;flex-shrink:0!important;
  background:var(--bloodstone)!important;
}
@media(max-width:600px){.bub-inner{padding:14px 20px!important;}}

/* ═══════════════════════════════════════════════════════
   YOUR DOCUMENTS — magazine tile grid (Design 3)
   ═══════════════════════════════════════════════════════ */
.docs-section{margin:0!important;background:var(--ivory);}
.docs-section-hdr{font-size:.78rem!important;letter-spacing:.26em!important;color:var(--sage)!important;font-weight:700!important;padding:26px 64px 22px!important;border-bottom:1px solid var(--border)!important;margin-bottom:0!important;background:var(--white);}
.docs-grid{display:grid!important;grid-template-columns:repeat(5,1fr)!important;gap:16px!important;background:transparent!important;padding:24px 64px 32px!important;}
.doc-card{padding:28px 24px!important;background:var(--white)!important;flex-direction:column!important;gap:0!important;align-items:flex-start!important;border:none!important;border-bottom:3px solid transparent!important;position:relative!important;transition:border-color .2s,transform .18s!important;cursor:default!important;aspect-ratio:1!important;overflow:hidden!important;}
.doc-card:hover{border-bottom-color:var(--gold)!important;transform:translateY(-2px)!important;}
.doc-big-num{font-family:'Libre Baskerville',serif!important;font-size:3.8rem!important;font-weight:700!important;color:var(--gold)!important;opacity:.14!important;line-height:1!important;margin-bottom:10px!important;}
.doc-icon{display:none!important;}
.doc-icon-large{display:none!important;}
.doc-info{width:100%;}
.doc-status-tag{display:block;font-size:.63rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);font-weight:700;font-family:'Montserrat',sans-serif;margin-bottom:14px;}
.doc-status-tag.ready{color:var(--sage-dk);}
.doc-title{font-family:'Libre Baskerville',serif!important;font-size:1rem!important;color:var(--onyx-dk)!important;font-weight:400!important;margin-bottom:8px!important;letter-spacing:0!important;line-height:1.4!important;}
.doc-sub{font-size:.72rem!important;color:var(--sage)!important;line-height:1.7!important;margin-bottom:0!important;font-weight:300!important;}
.doc-btn-soon{display:none!important;}
.doc-actions{margin-top:20px!important;}
@media(max-width:900px){.docs-grid{grid-template-columns:1fr 1fr!important;padding:20px 24px 24px!important;}}
@media(max-width:540px){.docs-grid{grid-template-columns:1fr!important;padding:16px 16px 20px!important;}}
@media(max-width:600px){
  .docs-section-hdr{padding:20px 20px 16px!important;}
  .doc-card{padding:28px 24px!important;}
}

/* ═══════════════════════════════════════════════════════
   BRIEFING — UNIFIED PORTAL REDESIGN
   Removes duplicate step-nav; makes form sections match
   the portal's full-width editorial aesthetic.
   ═══════════════════════════════════════════════════════ */

/* 1 ── Remove the duplicate "1 Brief › 2 Design" step nav from every tab */
.portal-progress{display:none!important;}

/* 2 ── Form wrapper — remove narrow centered column */
.form-wrap{
  max-width:none!important;padding:0!important;margin:0!important;
  background:var(--ivory)!important;
}

/* 3 ── Each form section = white portal block */
/* Preserve existing JS-driven fade-in: JS toggles .vis to restore opacity/transform */
.sec{
  background:var(--white)!important;
  border-bottom:1px solid var(--border)!important;
  padding:52px 64px 48px!important;
  margin-bottom:0!important;
}

/* 4 ── Section header — inner divider, portal rhythm */
.sec-hdr{
  padding:0 0 28px!important;
  margin-bottom:36px!important;
  border-bottom:1px solid var(--border)!important;
}

/* 5 ── Eyebrow / section number */
.sec-num{
  font-size:.78rem!important;letter-spacing:.26em!important;
  color:var(--sage)!important;margin-bottom:16px!important;font-weight:700!important;
}

/* 6 ── Section title */
.sec-title{font-size:clamp(1.9rem,3vw,2.6rem)!important;line-height:1.1!important;margin-bottom:12px!important;}

/* 7 ── Section description */
.sec-desc{max-width:560px!important;}

/* 8 ── Cap form content width inside full-bleed sections for readability */
.sec>*:not(.sec-hdr){max-width:720px;}
.sec>.palette-explorer,.sec>#customFontPicker,.sec>.type-opts{max-width:860px!important;}

/* 9 ── Text / email / tel / number / date / time inputs — underline only */
.form-wrap .fld-input{
  border:none!important;
  border-bottom:1px solid rgba(45,16,21,.13)!important;
  padding:12px 0!important;background:transparent!important;box-shadow:none!important;
}
.form-wrap .fld-input:hover{border-bottom-color:rgba(45,16,21,.3)!important;box-shadow:none!important;}
.form-wrap .fld-input:focus{border-bottom-color:var(--bloodstone)!important;box-shadow:none!important;}
.form-wrap .fld-input.err{border-bottom-color:#B84040!important;}

/* 10 ── Selects — underline (appearance:none already strips native arrow) */
.form-wrap .fld-select{
  border:none!important;
  border-bottom:1px solid rgba(45,16,21,.13)!important;
  padding:12px 0!important;background:transparent!important;box-shadow:none!important;
}
.form-wrap .fld-select:hover{border-bottom-color:rgba(45,16,21,.3)!important;}
.form-wrap .fld-select:focus{border-bottom-color:var(--bloodstone)!important;box-shadow:none!important;}
.form-wrap .fld-select option{padding:8px 12px!important;}

/* 11 ── Textareas — keep box (better UX for multi-line editing) */
.form-wrap .fld-textarea{
  border:1px solid rgba(45,16,21,.1)!important;padding:16px!important;
  background:var(--white)!important;box-shadow:none!important;
}
.form-wrap .fld-textarea:hover{border-color:rgba(45,16,21,.22)!important;}
.form-wrap .fld-textarea:focus{border-color:var(--bloodstone)!important;box-shadow:none!important;}

/* 12 ── Submit block — full-width, generous padding */
.submit-block{margin-top:0!important;padding:72px 64px!important;}

/* 13 ── Briefing submitted panel — left-aligned, portal rhythm */
.bsp-inner{max-width:860px!important;padding:44px 64px 80px!important;margin:0!important;}

/* 14 ── Mobile */
@media(max-width:640px){
  .sec{padding:40px 20px 36px!important;}
  .sec>*:not(.sec-hdr){max-width:none;}
  .submit-block{padding:56px 20px!important;}
  .bsp-inner{padding:28px 20px 60px!important;}
}

/* ═══════════════════════════════════════════════════════
   TAB 02 — STATUS PILL FILTER INTERACTIVITY
   ═══════════════════════════════════════════════════════ */
.ds-spill{cursor:pointer!important;transition:opacity .2s,color .2s!important;user-select:none;}
.ds-spill:hover{opacity:.75!important;}
.ds-spill.ds-spill-active{opacity:1!important;}
.ds-spill.ds-spill-active .ds-spill-count{
  color:var(--onyx)!important;font-weight:700!important;
}
/* Dim inactive pills when filter is active */
.ds-filter-on .ds-spill:not(.ds-spill-active){opacity:.35!important;}
/* Show-all reset button */
.ds-filter-reset{
  font-family:'Montserrat',sans-serif;font-size:var(--text-ui);letter-spacing:.18em;
  text-transform:uppercase;color:var(--sage);background:none;border:none;
  cursor:pointer;padding:4px 0;transition:color .2s;font-weight:600;
}
.ds-filter-reset:hover{color:var(--bloodstone);}

/* ═══════════════════════════════════════════════════════
   TAB 03 — QUICK SUMMARY CHIPS
   ═══════════════════════════════════════════════════════ */
.t3-summary-row{
  display:flex!important;flex-wrap:nowrap;gap:6px;overflow-x:auto;
  background:transparent;
  border-bottom:1px solid var(--border);
  padding:10px 24px;
  scrollbar-width:none;
}
.t3-summary-row::-webkit-scrollbar{display:none;}
.t3-sq-card{
  flex:1 1 0;min-width:0;display:flex;align-items:center;gap:10px;
  padding:11px 16px;background:var(--white);cursor:pointer;
  font-family:'Montserrat',sans-serif;font-size:var(--text-xs);
  letter-spacing:.18em;text-transform:uppercase;font-weight:600;
  white-space:nowrap;
  transition:all .18s;border:1px solid var(--border-d);text-align:left;
}
.t3-sq-card:hover{background:var(--ivory);border-color:rgba(45,16,21,.22);}
.t3-sq-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;transition:transform .2s;}
.t3-sq-card:hover .t3-sq-dot{transform:scale(1.3);}
.t3-sq-approved{border-color:rgba(45,106,79,.32);background:rgba(45,106,79,.025);}
.t3-sq-approved .t3-sq-dot{background:var(--sage-dk);}
.t3-sq-approved .t3-sq-name{color:var(--sage-dk);}
.t3-sq-approved:hover{background:rgba(45,106,79,.05);border-color:rgba(45,106,79,.5);}
.t3-sq-pending .t3-sq-dot{background:rgba(45,16,21,.22);}
.t3-sq-pending .t3-sq-name{color:rgba(45,16,21,.5);}
.t3-sq-in-review{border-color:rgba(184,147,90,.32);}
.t3-sq-in-review .t3-sq-dot{background:rgba(184,147,90,.8);}
.t3-sq-in-review .t3-sq-name{color:rgba(184,147,90,.9);}
.t3-sq-in-design .t3-sq-dot{background:rgba(45,16,21,.28);}
.t3-sq-in-design .t3-sq-name{color:rgba(45,16,21,.48);}
@media(max-width:640px){
  .t3-summary-row{padding:10px 16px!important;}
  .t3-sq-card{padding:12px 16px!important;}
}

/* ═══════════════════════════════════════════════════════
   BILLING TAB STYLES
   ═══════════════════════════════════════════════════════ */
.billing-hero{padding:72px 64px 48px;text-align:center;border-bottom:1px solid var(--border)}
.billing-title{font-family:'Libre Baskerville',serif;font-size:2.4rem;font-weight:400;margin-bottom:12px;color:var(--onyx)}
.billing-sub{font-size:.9rem;color:var(--sage);max-width:640px;margin:0 auto}
.billing-container{max-width:960px;margin:0 auto;padding:52px 64px}
.billing-section{margin-bottom:64px}
.billing-section-title{font-family:'Montserrat',sans-serif;font-size:var(--text-sm);letter-spacing:.18em;text-transform:uppercase;color:var(--sage);font-weight:600;margin-bottom:24px;padding-bottom:12px;border-bottom:2px solid var(--border)}
.billing-plan-card{background:var(--white);border:1px solid var(--border);padding:32px;display:grid;grid-template-columns:repeat(3,1fr);gap:32px;border-radius:0}
.plan-detail{display:flex;flex-direction:column;gap:8px}
.plan-label{font-family:'Montserrat',sans-serif;font-size:var(--text-ui);letter-spacing:.15em;text-transform:uppercase;color:var(--sage);font-weight:600}
.plan-value{font-family:'Libre Baskerville',serif;font-size:1.4rem;color:var(--onyx);font-weight:400}
.invoice-table{border-collapse:collapse;width:100%}
.invoice-table tbody tr{border-bottom:1px solid var(--border);transition:background .2s}
.invoice-table tbody tr:hover{background:var(--ivory)}
.invoice-table td{padding:14px 12px;font-size:.85rem;color:var(--onyx)}
.invoice-date{font-weight:500;color:var(--sage)}
.invoice-amount{font-weight:600;color:var(--onyx)}
.invoice-status{font-family:'Montserrat',sans-serif;font-size:var(--text-ui);font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:6px 12px;background:var(--ivory);display:inline-block;border-radius:0}
.invoice-status.paid{background:var(--sage-dk);color:var(--white)}
.invoice-download-btn{background:none;border:none;color:var(--bloodstone);cursor:pointer;font-size:var(--text-sm);font-family:'Montserrat',sans-serif;letter-spacing:.1em;text-decoration:underline;transition:color .2s}
.invoice-download-btn:hover{color:var(--onyx)}
.billing-action-btn{font-family:'Montserrat',sans-serif;font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;padding:12px 24px;border:1.5px solid var(--border);background:var(--white);color:var(--onyx);cursor:pointer;transition:all .2s;border-radius:0}
.billing-action-btn:hover{border-color:var(--bloodstone);color:var(--bloodstone)}
.billing-action-btn:disabled{opacity:.5;cursor:not-allowed}
.upgrade-option-card{background:var(--white);border:1px solid var(--border);border-top:3px solid var(--border);display:flex;flex-direction:column;gap:0;transition:all .3s;overflow:hidden}
.upgrade-option-card:hover{border-color:var(--bloodstone);border-top-color:var(--bloodstone);box-shadow:0 8px 32px rgba(146,38,48,.1)}
.upgrade-option-card--recommended{border-top-color:var(--bloodstone)}
.upgrade-card-header{padding:20px 28px 0;display:flex;align-items:center;gap:12px}
.upgrade-card-tier{font-family:'Libre Baskerville',serif;font-size:1.25rem;font-style:italic;color:var(--onyx)}
.upgrade-recommended-pill{font-family:'Montserrat',sans-serif;font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;background:var(--bloodstone);color:var(--white);padding:4px 10px;border-radius:0;white-space:nowrap}
.upgrade-card-body{padding:16px 28px 24px;flex:1;display:flex;flex-direction:column;gap:16px}
.upgrade-card-tagline{font-size:var(--text-body);color:var(--sage);line-height:1.6;margin:0}
.upgrade-price-block{display:flex;align-items:baseline;gap:8px;padding:16px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.upgrade-price-label{font-family:'Montserrat',sans-serif;font-size:var(--text-sm);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--sage)}
.upgrade-option-price{font-family:'Libre Baskerville',serif;font-size:2.2rem;color:var(--bloodstone);font-weight:400;line-height:1}
.upgrade-price-note{font-size:.72rem;color:var(--sage)}
.upgrade-option-features{font-size:.8rem;color:var(--sage);line-height:1.9;list-style:none;padding:0;margin:0}
.upgrade-option-features li{display:flex;align-items:baseline;gap:10px}
.upgrade-check{color:var(--bloodstone);font-size:var(--text-sm);flex-shrink:0}
.upgrade-btn{display:block;background:var(--bloodstone);color:var(--white);border:none;padding:var(--btn-pad-lg);font-family:'Montserrat',sans-serif;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600;cursor:pointer;transition:background .2s;text-align:center;text-decoration:none;margin-top:auto}
.upgrade-btn:hover{background:var(--bloodstone-dk)}
@media(max-width:640px){
  .billing-hero{padding:48px 20px 32px}
  .billing-title{font-size:1.8rem}
  .billing-container{padding:32px 20px}
  .billing-plan-card{grid-template-columns:1fr;gap:16px;padding:20px}
  .plan-value{font-size:1.2rem}
}

/* ── MOBILE RESPONSIVENESS: Small screens ≤ 600px — stacked equal-width tabs ── */
@media(max-width:600px){
  .portal-hdr{overflow-x:hidden}
  .hdr-logo{letter-spacing:.18em}
  /* Equal-width tabs that all fit on one line — no horizontal scroll needed */
  .portal-tabs{overflow-x:hidden}
  .ptab{
    flex:1 1 0;min-width:0;
    flex-direction:column;align-items:center;justify-content:center;
    gap:3px;padding:9px 4px 8px;
    font-size:.63rem;letter-spacing:.1em;white-space:normal;text-align:center;
  }
  /* Show step number above short label */
  .ptab-num{display:block!important;font-size:.63rem;opacity:.45;margin-bottom:1px}
  /* Swap to short label */
  .ptab-lbl{display:none}
  .ptab-lbl-s{display:block}
  /* Shrink dot to fit the tight layout */
  .ptab-dot{width:4px;height:4px;margin-bottom:1px}
  body{padding-top:calc(110px + var(--beta-h,0px))}
}

/* ── MOBILE RESPONSIVENESS: Extra-small screens < 400px ── */
@media(max-width:400px){
  .portal-hdr{overflow-x:hidden}
  .hdr-top{padding:12px 14px;gap:12px}
  .hdr-logo{font-size:var(--text-ui);letter-spacing:.18em}
  .hdr-meta{gap:8px}
  #logoutBtn{padding:6px 10px;font-size:.78rem;letter-spacing:.12em}
  .ptab{padding:8px 2px 7px;font-size:.63rem;letter-spacing:.08em}
  .ptab-num{font-size:.63rem}
  body{padding-top:calc(100px + var(--beta-h,0px))}
}

/* ── LANDSCAPE ORIENTATION SUPPORT ── */
@media(max-height:500px) and (orientation:landscape){
  .portal-hdr{position:relative}
  .hdr-top{padding:10px 14px}
  .hdr-logo{font-size:.79rem}
  #logoutBtn{padding:4px 10px;font-size:.78rem}
  body{padding-top:80px}
  .portal-tabs{overflow-x:auto}
  .ptab{padding:8px 10px;font-size:var(--text-xs)}
  .brief-hero{padding:24px 20px}
  .hero-title{font-size:clamp(1.4rem,3vw,1.8rem)}
}

/* ── TABLET OPTIMIZATION (640px - 1024px) ── */
@media(max-width:1024px) and (min-width:641px){
  .brief-hero{padding:40px 36px 30px}
  .pkg-strip{padding:20px 36px;gap:40px}
  .form-wrap{padding:60px 20px 60px}
  .suite-hero{padding:28px 32px}
  .suite-sample-label{margin:0 32px}
  .suite-iframe-wrap{margin:0 32px 32px}
  .approval-section{margin:20px 32px 0}
}

/* ── ENSURE NO HORIZONTAL SCROLLING ON MOBILE ── */
@media(max-width:640px){
  .portal-tabs{width:100%!important;max-width:100%!important}
  .hdr-top{width:100%!important;max-width:100%!important}
  .fld-row{grid-template-columns:1fr}
  .pal-grid{grid-template-columns:1fr}
  .feeling-grid{grid-template-columns:1fr}
  .rsvp-fld-row{grid-template-columns:1fr;gap:12px}
  .rsvp-stat-card{padding:16px 12px}
  .rsvp-table th{padding:10px 8px 10px 12px}
  .rsvp-table td{padding:10px 8px 10px 12px}
  .rsvp-add-form{padding:20px;margin:0}
  .rsvp-list-hdr-outer{padding:16px}
  .approval-section{padding:28px 16px;margin:16px 0 0}
  .approval-title{font-size:1.6rem}
  .approval-btns{gap:8px;flex-direction:column}
  .btn-approve,.btn-decline{min-width:auto;width:100%;padding:14px 16px;font-size:.71rem}
  .suite-hero{flex-direction:column;align-items:flex-start;gap:12px}
  .status-row{flex-wrap:wrap}
  .status-step{padding:6px 10px;font-size:.78rem}
  .suite-title-block h2{font-size:1.5rem}
  .ndl-formats{grid-template-columns:repeat(2,1fr) !important}
  .ndl-fmt{padding:14px 10px}
}

/* ── TOUCH TARGET SIZE FOR MOBILE (44px minimum) ── */
@media(max-width:640px){
  .ptab{min-height:44px;display:flex;align-items:center}
  #logoutBtn{min-height:40px;display:flex;align-items:center;justify-content:center}
  .btn-approve,.btn-decline,.rsvp-add-btn,.upgrade-btn,.submit-btn{min-height:44px;padding:12px 16px}
  .fld-input,.fld-select,.fld-textarea{min-height:44px;padding:12px 12px}
}

/* ── DESIGN VERSION TIMELINE ── */
.design-timeline-modal{position:fixed;inset:0;background:var(--overlay-bg);z-index:500;display:none;align-items:center;justify-content:center;padding:20px;animation:fadeIn .3s ease}
.design-timeline-modal.open{display:flex}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.design-timeline-content{background:var(--white);border-radius:0;max-width:600px;width:100%;max-height:85vh;overflow-y:auto;box-shadow:0 20px 60px rgba(45,16,21,.25);animation:slideUp .3s ease}
@keyframes slideUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.design-timeline-hdr{padding:32px 32px 24px;border-bottom:1px solid var(--border);text-align:center}
.design-timeline-piece-name{font-family:'Libre Baskerville',serif;font-size:1.6rem;font-weight:400;color:var(--onyx-dk);margin-bottom:8px}
.design-timeline-piece-sub{font-family:'Montserrat',sans-serif;font-size:var(--text-ui);color:var(--sage);letter-spacing:.08em;text-transform:uppercase}
.design-timeline-body{padding:32px}
.design-timeline-vertical{position:relative;padding-left:40px}
.design-timeline-vertical::before{content:'';position:absolute;left:16px;top:20px;bottom:0;width:2px;background:var(--border)}
.design-timeline-node{position:relative;margin-bottom:32px}
.design-timeline-node::before{content:'';position:absolute;left:-34px;top:0;width:18px;height:18px;border-radius:50%;background:var(--white);border:3px solid var(--border)}
.design-timeline-node.current::before{border-color:var(--bloodstone);background:var(--bloodstone)}
.design-timeline-node.approved::before{border-color:var(--sage-dk);background:var(--sage-dk)}
.design-timeline-node.revision::before{border-color:rgba(146,38,48,.4)}
.design-timeline-event{padding:16px;background:var(--ivory);border-left:3px solid var(--border);border-radius:0}
.design-timeline-node.current .design-timeline-event{border-left-color:var(--bloodstone);background:rgba(146,38,48,.04)}
.design-timeline-node.approved .design-timeline-event{border-left-color:var(--sage-dk);background:rgba(45,106,79,.04)}
.design-timeline-node.revision .design-timeline-event{border-left-color:rgba(146,38,48,.4)}
.design-timeline-version{font-family:'Montserrat',sans-serif;font-size:var(--text-ui);font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--onyx);margin-bottom:4px}
.design-timeline-date{font-family:'Montserrat',sans-serif;font-size:.79rem;color:var(--sage);margin-bottom:6px}
.design-timeline-status{display:inline-block;font-family:'Montserrat',sans-serif;font-size:.71rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;padding:3px 10px;background:var(--ivory);border:1px solid var(--border);color:var(--sage);margin-bottom:6px}
.design-timeline-node.current .design-timeline-status{background:rgba(146,38,48,.1);border-color:var(--bloodstone);color:var(--bloodstone)}
.design-timeline-node.approved .design-timeline-status{background:rgba(45,106,79,.1);border-color:var(--sage-dk);color:var(--sage-dk)}
.design-timeline-details{font-family:'Montserrat',sans-serif;font-size:.78rem;color:rgba(45,16,21,.7);line-height:1.6;margin-top:8px}
.design-timeline-close{position:absolute;top:16px;right:16px;background:none;border:none;font-size:1.5rem;color:var(--sage);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;transition:color .2s}
.design-timeline-close:hover{color:var(--onyx)}
@media(max-width:640px){
  .design-timeline-content{max-width:100%;border-radius:0}
  .design-timeline-hdr{padding:24px 20px 18px}
  .design-timeline-piece-name{font-size:1.4rem}
  .design-timeline-body{padding:20px}
  .design-timeline-node{margin-bottom:24px}
}

/* ── Colour wheel responsive (Fix 6) ── */
@media(max-width:640px){
  .wheel-wrap{flex-direction:column;align-items:center;gap:18px}
  .wheel-canvas-wrap{width:200px;max-width:100%}
  .wheel-canvas{width:100%!important;height:auto!important}
  .palette-explorer{overflow-x:hidden}
  .pal-grid-v3{grid-template-columns:1fr!important}
  .pal-mode-toggle{max-width:100%!important}
  .pal-tabs{flex-wrap:wrap;gap:6px}
}

/* ── Fix 8a: bsp-inner responsive padding ── */
.bsp-inner{padding-left:64px;padding-right:64px}
@media(max-width:720px){.bsp-inner{padding-left:20px;padding-right:20px}}

/* ── Fix 8b: portal loading overlay class ── */
.portal-loading-overlay{position:fixed;inset:0;background:var(--onyx);z-index:500;flex-direction:column;align-items:center;justify-content:center;gap:18px}

/* ── Fix 8c: billing table headers ── */
.billing-th{padding:12px;text-align:left;font-size:var(--text-sm);font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--sage)}

/* ── Tab 03 empty state ── */
.t3-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:100px 40px;min-height:380px}
.t3-es-icon{font-size:.72rem;color:var(--bloodstone);opacity:.35;letter-spacing:.3em;margin-bottom:20px;display:block}
.t3-es-label{font-family:'Montserrat',sans-serif;font-size:var(--text-sm);letter-spacing:.25em;text-transform:uppercase;color:var(--sage);margin-bottom:28px}
.t3-es-title{font-family:'Libre Baskerville',serif;font-size:1.45rem;font-weight:400;font-style:italic;color:var(--onyx);margin:0 0 22px;line-height:1.55}
.t3-es-sub{font-family:'Montserrat',sans-serif;font-size:.72rem;font-weight:300;line-height:1.9;color:var(--sage);max-width:480px;margin:0 0 32px}
.t3-es-sub strong{color:var(--onyx);font-weight:500}
.t3-es-divider{width:40px;height:1px;background:rgba(146,38,48,.2);border:none;margin:0 auto 20px}
.t3-es-tagline{font-family:'Montserrat',sans-serif;font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;color:rgba(57,90,85,.45);margin-bottom:36px}
.t3-es-btn{font-family:'Montserrat',sans-serif;font-size:var(--text-sm);letter-spacing:.22em;text-transform:uppercase;background:var(--bloodstone);color:var(--pearl);border:none;padding:14px 32px;cursor:pointer;transition:opacity .2s}
.t3-es-btn:hover{opacity:.85}

/* ── Download All button ── */
.ndl-dl-all-btn{font-family:'Montserrat',sans-serif;font-size:var(--text-sm);letter-spacing:.2em;text-transform:uppercase;background:var(--bloodstone);color:var(--pearl);border:none;padding:var(--btn-pad-lg);cursor:pointer;transition:opacity .2s}
.ndl-dl-all-btn:hover:not(:disabled){opacity:.85}
.ndl-dl-all-btn:disabled{opacity:.45;cursor:default}

/* ── DESIGN LIGHTBOX (full-screen HTML design preview) ── */
.design-lightbox{display:none;position:fixed;inset:0;background:var(--overlay-bg);z-index:900;align-items:center;justify-content:center;padding:12px}
.design-lightbox.open{display:flex}
.design-lightbox-inner{background:var(--white);width:100%;max-width:1120px;height:92vh;display:flex;flex-direction:column;box-shadow:0 24px 80px rgba(0,0,0,.5);border-radius:0;overflow:hidden}
.design-lightbox-hdr{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;background:var(--ivory);border-bottom:1px solid var(--border);flex-shrink:0}
.design-lightbox-title{font-family:'Libre Baskerville',serif;font-size:.85rem;color:var(--onyx-dk);letter-spacing:.02em}
.design-lightbox-hdr-actions{display:flex;align-items:center;gap:12px}
.design-lightbox-newtab{background:none;border:1px solid var(--border);color:var(--sage);font-size:.72rem;letter-spacing:.04em;padding:4px 10px;cursor:pointer;transition:color .2s,border-color .2s;font-family:'Libre Baskerville',serif}
.design-lightbox-newtab:hover{color:var(--onyx);border-color:var(--onyx)}
.design-lightbox-close{background:none;border:none;color:var(--sage);font-size:1.5rem;cursor:pointer;padding:0;width:32px;height:32px;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:color .2s;line-height:1}
.design-lightbox-close:hover{color:var(--onyx)}
.design-lightbox #designLightboxFrame{flex:1;width:100%;border:none;display:block}

/* ── CDL direction preview button ── */
.cdl-direction-actions{margin-top:24px;display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.cdl-view-btn{font-family:'Montserrat',sans-serif;font-size:var(--text-sm);letter-spacing:.18em;text-transform:uppercase;background:var(--bloodstone);color:var(--pearl);border:none;padding:12px 28px;cursor:pointer;transition:opacity .2s}
.cdl-view-btn:hover{opacity:.85}
.cdl-approval-badge{font-family:'Montserrat',sans-serif;font-size:var(--text-sm);letter-spacing:.14em;text-transform:uppercase;padding:11px 22px;border-radius:0;font-weight:600;border:1px solid;transition:background .3s,color .3s,border-color .3s}

/* Pending — matches view btn height, muted, subtle pulse to signal "waiting" */
.cdl-approval-badge.pending{background:transparent;color:var(--sage);border-color:var(--border);animation:cdl-pulse 2.8s ease-in-out infinite}
@keyframes cdl-pulse{0%,100%{opacity:1}50%{opacity:.45}}

/* Approved — solid green, mirrors the weight of the view button */
.cdl-approval-badge.approved{background:#2D6A4F;color:#fff;border-color:#2D6A4F;animation:none}

/* Revision — solid amber, actionable */
.cdl-approval-badge.revision{background:#B7791F;color:#fff;border-color:#B7791F;animation:none}

/* ── PORTAL LOADING OVERLAY ── */
.portal-loading-overlay{
  position:fixed;inset:0;background:var(--ivory);z-index:700;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;
}
.portal-loading-logo{
  font-family:'Libre Baskerville',serif;font-size:.72rem;letter-spacing:.28em;
  text-transform:uppercase;color:var(--sage);
}
.portal-loading-spinner{
  width:36px;height:36px;border:2px solid rgba(64,100,95,.2);
  border-top-color:var(--bloodstone);border-radius:50%;
  animation:btnspin .8s linear infinite;
}

/* ── LOGIN TEXT BUTTON (replaces inline-styled hint/back buttons) ── */
.login-text-btn{
  background:none;border:none;padding:0;
  color:rgba(255,255,255,.9);font-size:inherit;font-family:inherit;
  font-weight:inherit;letter-spacing:inherit;
  cursor:pointer;text-decoration:underline;
  transition:color .2s;
}
.login-text-btn:hover{color:#fff}

/* ── PALETTE MODE TOGGLE BUTTONS ── */
.pal-mode-btn{
  flex:1;padding:12px 18px;font-family:'Montserrat',sans-serif;
  font-size:var(--text-body);letter-spacing:.24em;text-transform:uppercase;
  background:transparent;color:var(--onyx);border:0;cursor:pointer;
  transition:background .2s,color .2s;
}
.pal-mode-btn.active{background:var(--onyx);color:#FAF6EE}

/* ── FONT PICKER INLINE LABELS ── */
.font-picker-lbl{font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(45,16,21,.82);font-weight:500}
.font-picker-hide{font-size:.72rem;color:var(--bloodstone);cursor:pointer;text-decoration:underline}

/* ── MISC INLINE LABEL OVERRIDES ── */
.fld-lbl--sm{font-size:.78rem}
.login-hint-note{font-size:.72rem;color:var(--sage);line-height:1.7;font-style:italic}
.rsvp-guest-count{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--onyx);font-weight:700}
.admin-section-lbl{font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(201,168,76,.8);margin-bottom:18px}
.autosave-hint{font-size:var(--text-xs);color:#fff;letter-spacing:.12em;margin-bottom:8px;text-align:center}
.submit-fine-print{font-size:var(--text-xs);color:#fff;letter-spacing:.1em;text-align:center;margin-top:12px}

/* ── SOCIAL KIT NOTES ── */
.kit-note{font-size:.72rem;color:var(--sage);line-height:1.7;font-style:italic}
.kit-note-center{font-size:.72rem;color:var(--sage);text-align:center;font-style:italic}

/* ── ACCOUNT CARET ── */
.hdr-caret{font-size:.63rem;opacity:.5}

.submit-terms-lbl{font-size:.78rem;line-height:1.6;color:#FAF6EE;cursor:pointer}


/* ── Inline-style extractions ──────────────────────────────────────── */

/* Monogram input */
#f_mono{letter-spacing:.4em;font-family:'Libre Baskerville',serif;font-size:1.1rem;text-transform:uppercase}
/* Type preview input */
#typePreview{font-family:'Libre Baskerville',serif;font-size:1rem}

/* Primary font picker samples (ts1–ts12) */
#ts1{font-family:'Libre Baskerville',serif;font-weight:400;font-size:1.7rem}
#ts2{font-family:'Libre Baskerville',serif;font-weight:400;font-style:italic;font-size:2rem}
#ts3{font-family:'Playfair Display',serif;font-weight:700;font-size:1.7rem}
#ts4{font-family:'Montserrat','Helvetica Neue',sans-serif;font-weight:300;letter-spacing:.06em;font-size:1.55rem}
#ts5{font-family:'Bodoni Moda','Playfair Display',serif;font-weight:700;font-size:1.7rem}
#ts6{font-family:'EB Garamond',serif;font-weight:400;font-size:1.9rem}
#ts7{font-family:'Great Vibes',cursive;font-weight:400;font-size:2.2rem}
#ts8{font-family:'Cinzel',serif;font-weight:400;letter-spacing:.06em;font-size:1.45rem}
#ts9{font-family:'Raleway',sans-serif;font-weight:200;letter-spacing:.1em;font-size:1.55rem}
#ts10{font-family:'Sacramento',cursive;font-weight:400;font-size:2.4rem}
#ts11{font-family:'Lora',serif;font-weight:400;font-size:1.75rem}
#ts12{font-family:'DM Sans',sans-serif;font-weight:300;letter-spacing:.04em;font-size:1.6rem}

/* Extended artistic/calligraphy samples (ts13–ts20) */
#ts13{font-family:'Zeyada',cursive;font-weight:400;font-size:2.4rem}
#ts14{font-family:'Italianno',cursive;font-weight:400;font-size:2.6rem}
#ts15{font-family:'Qwitcher Grypen',cursive;font-weight:400;font-size:2.2rem}
#ts16{font-family:'Ruthie',cursive;font-weight:400;font-size:2.6rem}
#ts17{font-family:'Alex Brush',cursive;font-weight:400;font-size:2.4rem}
#ts18{font-family:'Niconne',cursive;font-weight:400;font-size:2.2rem}
#ts19{font-family:'Arizonia',cursive;font-weight:400;font-size:2.4rem}
#ts20{font-family:'Euphoria Script',cursive;font-weight:400;font-size:2.4rem}
/* Halloween font samples */
#tsh1{font-family:'Creepster',cursive;font-weight:400;font-size:2rem}
#tsh2{font-family:'Metal Mania',cursive;font-weight:400;font-size:1.8rem}
#tsh3{font-family:'Eater',cursive;font-weight:400;font-size:1.8rem}
#tsh4{font-family:'Butcherman',cursive;font-weight:400;font-size:1.8rem}
#tsh5{font-family:'Nosifer',cursive;font-weight:400;font-size:1.7rem}

/* See more / See fewer button */
.type-see-more{display:block;width:100%;margin:14px 0 0;padding:11px 20px;background:transparent;border:1px solid rgba(250,246,238,.18);color:rgba(250,246,238,.62);font-family:'Montserrat',sans-serif;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;transition:color .2s,border-color .2s}
.type-see-more:hover{color:#B8935A;border-color:rgba(184,147,90,.4)}

/* Custom font picker samples (tsf1–tsf17) */
#tsf1{font-family:'Libre Baskerville',serif;font-weight:400;font-size:1.7rem}
#tsf2{font-family:'Libre Baskerville',serif;font-weight:400;font-style:italic;font-size:1.8rem}
#tsf3{font-family:'Libre Baskerville',serif;font-weight:300;font-size:2rem}
#tsf4{font-family:'Libre Baskerville',serif;font-weight:400;font-style:italic;font-size:2rem}
#tsf5{font-family:'Playfair Display',serif;font-weight:700;font-size:1.6rem}
#tsf6{font-family:'Playfair Display',serif;font-weight:400;font-style:italic;font-size:1.8rem}
#tsf7{font-family:'EB Garamond',serif;font-weight:400;font-size:1.9rem}
#tsf8{font-family:'Bodoni Moda',serif;font-weight:400;font-size:1.65rem}
#tsf9{font-family:'Cinzel',serif;font-weight:400;letter-spacing:.06em;font-size:1.4rem}
#tsf10{font-family:'Cinzel',serif;font-weight:700;letter-spacing:.05em;font-size:1.35rem}
#tsf11{font-family:'Great Vibes',cursive;font-weight:400;font-size:2.2rem}
#tsf12{font-family:'Pinyon Script',cursive;font-weight:400;font-size:2.1rem}
#tsf13{font-family:'Lora',serif;font-weight:400;font-size:1.75rem}
#tsf14{font-family:'Lora',serif;font-weight:400;font-style:italic;font-size:1.85rem}
#tsf15{font-family:'Raleway',sans-serif;font-weight:200;letter-spacing:.1em;font-size:1.55rem}
#tsf16{font-family:'DM Serif Display',serif;font-weight:400;font-size:1.75rem}
#tsf17{font-family:'Josefin Sans',sans-serif;font-weight:300;letter-spacing:.12em;font-size:1.5rem}
#tsf18{font-family:'Give You Glory',cursive;font-weight:400;font-size:2.4rem}

/* Lang dropdown caret */
.lang-caret{font-size:.63rem;opacity:.5}
/* No-pieces placeholder */
.pieces-empty-hint{font-size:.79rem;color:var(--sage);font-style:italic}
/* Terms validation message */
#e_terms{font-size:.72rem;color:rgba(250,246,238,.6);margin-bottom:14px;text-align:center}
/* Piece description panel */
#pieceDescription{margin:0 48px;padding:14px 20px;border-left:3px solid rgba(201,168,76,.4);background:rgba(201,168,76,.04);font-family:'Libre Baskerville',serif;font-size:var(--text-body);font-style:italic;color:var(--onyx);line-height:1.75}
/* Download status */
#ndlDownloadAllStatus{font-family:'Montserrat',sans-serif;font-size:.78rem;color:var(--sage)}
/* RSVP subtitle count */
#rsvpHeroSub{margin-top:-20px;opacity:.65;font-size:.79rem}
/* Upgrade info text */
.upgrade-info-txt{color:var(--sage);font-size:.85rem;margin-bottom:20px}
/* Billing state divs */
#invoiceLoading{text-align:center;padding:32px;color:var(--sage);font-size:.85rem}
#invoiceError{text-align:center;padding:32px;color:#B84040;font-size:.85rem}
#invoiceEmpty,#upgradeMaxedMessage{text-align:center;padding:32px;color:var(--sage);font-size:.85rem}
/* Add-on status */
#addonStatusMsg{font-size:var(--text-ui);color:rgba(64,100,95,.6);margin-top:10px;text-align:right}

/* ── JS-generated HTML classes ──────────────────────────────────────── */

/* Creative direction approval buttons */
.cdl-approve-btn{font-family:'Montserrat',sans-serif;font-size:.71rem;letter-spacing:.16em;text-transform:uppercase;background:rgba(45,106,79,.1);color:#2D6A4F;border:1px solid rgba(45,106,79,.3);padding:8px 16px;cursor:pointer;border-radius:0;white-space:nowrap;transition:background .2s}
.cdl-approve-btn:hover{background:rgba(45,106,79,.18)}
.cdl-approve-btn--2{background:rgba(45,106,79,.05);border-color:rgba(45,106,79,.2)}
.cdl-revise-btn{font-family:'Montserrat',sans-serif;font-size:.71rem;letter-spacing:.16em;text-transform:uppercase;background:rgba(139,68,68,.07);color:#8B4444;border:1px solid rgba(139,68,68,.25);padding:8px 16px;cursor:pointer;border-radius:0;white-space:nowrap;transition:background .2s}
.cdl-revise-btn:hover{background:rgba(139,68,68,.14)}
/* Sent revision note blocks */
.note-sent-lbl{font-size:var(--text-sm);letter-spacing:.18em;text-transform:uppercase;color:var(--onyx);margin-bottom:10px}
.note-sent-content{background:#faf8f6;border:1px solid rgba(182,166,151,.35);padding:14px 16px;font-size:.8rem;color:var(--onyx);line-height:1.7}
.note-sent-action{margin-top:8px;font-size:var(--text-sm);letter-spacing:.14em;text-transform:uppercase;color:rgba(125,64,71,.7);cursor:pointer}
/* Brandbook empty state */
.bb-empty-icon{font-size:2.4rem;margin-bottom:24px;opacity:.45}
.bb-empty-title{font-size:1.55rem;font-weight:700;margin-bottom:14px}
.bb-empty-desc{font-size:.84rem;font-family:'Montserrat',sans-serif;letter-spacing:.06em;max-width:420px;line-height:1.8}
/* Revision history labels */
.rev-hist-section-lbl{font-family:'Montserrat',sans-serif;font-size:var(--text-ui);font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:#B8935A;margin-bottom:18px}
.rev-hist-version-lbl{font-family:'Montserrat',sans-serif;font-size:var(--text-ui);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:rgba(45,16,21,.5);margin-bottom:12px}
.rev-hist-date-lbl{font-family:'Montserrat',sans-serif;font-size:var(--text-sm);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:rgba(146,38,48,.55);margin-bottom:6px}
.rev-hist-client-txt{font-family:'Montserrat',sans-serif;font-style:normal;font-size:var(--text-body);color:var(--onyx);line-height:1.7;padding-left:4px}
.rev-hist-designer-lbl{font-family:'Montserrat',sans-serif;font-size:var(--text-sm);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:rgba(45,106,79,.6);margin-bottom:6px}
.rev-hist-designer-txt{font-family:'Montserrat',sans-serif;font-style:normal;font-size:var(--text-body);color:var(--onyx);line-height:1.7;padding-left:4px}
.rev-hist-pending-lbl{font-family:'Montserrat',sans-serif;font-size:var(--text-sm);letter-spacing:.1em;color:rgba(45,16,21,.38);font-style:italic;margin-top:4px;padding-left:4px}
.rev-active-section-lbl{font-family:'Montserrat',sans-serif;font-size:var(--text-sm);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:rgba(146,38,48,.55);margin-bottom:8px}
.rev-active-client-txt{font-family:'Montserrat',sans-serif;font-size:var(--text-body);color:var(--onyx);line-height:1.7;font-style:normal;margin:0 0 10px;white-space:pre-wrap;word-break:break-word}
.rev-active-block{background:var(--ivory);border-top:2px solid rgba(146,38,48,.1);padding:18px 28px 14px}
.rev-active-status{font-family:'Montserrat',sans-serif;font-size:var(--text-sm);letter-spacing:.13em;text-transform:uppercase;color:rgba(45,16,21,.42)}
/* Revision history timeline thread */
.rh-entry{display:flex;gap:14px}
.rh-spine{display:flex;flex-direction:column;align-items:center;flex-shrink:0;width:24px;padding-top:4px}
.rh-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.rh-dot--client{background:rgba(146,38,48,.35)}
.rh-dot--designer{background:rgba(45,106,79,.4)}
.rh-line{width:1px;background:rgba(45,16,21,.1);flex:1;margin-top:6px}
.rh-content{flex:1;padding-bottom:20px}
.rh-date{font-family:'Montserrat',sans-serif;font-size:.63rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(45,16,21,.25);margin-top:6px}
/* Items / pieces empty states */
.items-empty-hint{font-size:var(--text-sm);color:rgba(45,16,21,.35);font-style:italic;padding:8px 0}
.rev-list-empty{font-size:var(--text-sm);color:rgba(182,166,151,.45);font-style:italic;padding:14px 0}
.spec-empty-cell{padding:24px 0;font-size:var(--text-sm);color:rgba(45,16,21,.4);font-style:italic}
.palette-pending{font-size:var(--text-sm);color:var(--sage);font-style:italic}
.palette-pending-span{font-size:var(--text-ui);color:var(--sage)}
/* Revision request rows */
.rev-req-row{padding:7px 0;border-bottom:1px solid rgba(200,189,182,.1);font-size:.8rem;color:rgba(182,166,151,.85)}
.rev-req-piece{font-family:'Libre Baskerville',serif;font-style:italic;color:var(--sage)}
.rev-req-count{font-size:.79rem;color:var(--sage);margin-top:2px}
/* RSVP table cells */
.rsvp-email-sub{font-size:var(--text-ui);color:var(--sage);margin-top:2px}
.rsvp-dash{color:rgba(64,100,95,.4);font-size:.78rem}
.rsvp-td-cell{font-size:.72rem}
.rsvp-empty-cell{text-align:center;padding:28px;font-size:.72rem;color:var(--sage)}
.meal-dash{color:rgba(182,166,151,.4);font-size:.78rem}
.ag-pdf-link{font-family:'Montserrat',sans-serif;font-size:var(--text-ui);color:var(--bloodstone);text-decoration:underline;text-underline-offset:2px;font-weight:500;transition:opacity .2s}
.ag-pdf-link:hover{opacity:.7}
/* Seating chart helpers */
.seating-empty-msg{padding:16px;font-size:var(--text-xs);color:var(--sage);font-style:italic}
.meal-chip-icon{display:inline-flex;align-items:center;gap:3px;margin-right:8px;font-size:var(--text-ui);color:#888}
.rsvp-plusone-badge{font-size:var(--text-sm);color:#7D4047}
.rsvp-dietary-badge{font-size:var(--text-ui);color:#B6A697}
.seating-meal-pct{color:#B6A697;font-size:var(--text-sm)}
/* Timeline / TNG empty states */
.timeline-empty-msg{padding:28px;font-size:var(--text-ui);color:var(--sage);text-align:center}
.tng-empty-hint{font-size:var(--text-xs);color:var(--sage);font-style:italic}
/* Upgrade diff badge */
.upgrade-diff{font-size:.71rem;color:var(--bloodstone)}
/* Admin remove button */
.int-rm-btn{background:none;border:none;color:rgba(182,166,151,.4);cursor:pointer;font-size:.8rem;line-height:1;padding:0;transition:color .2s}
/* Retry inline button */
.retry-inline-btn{background:none;border:none;color:#fff;text-decoration:underline;cursor:pointer;margin-left:12px;font-size:.78rem;padding:0}
/* bb-piece-sub override (revision pending note) */
.bb-piece-sub{font-family:'Montserrat',sans-serif;font-size:.72rem;color:var(--sage);font-weight:300;margin-top:6px;line-height:1.6}

.note-sent-piece{text-transform:none;font-family:'Libre Baskerville',serif;font-style:italic;font-size:.8rem;letter-spacing:0;color:var(--sage)}
/* CDL revision note textarea + submit */
.cdl-revision-ta{width:100%;box-sizing:border-box;font-family:'Montserrat',sans-serif;font-size:.82rem;font-style:normal;color:rgba(45,16,21,.8);line-height:1.8;padding:13px 14px;border:1px solid rgba(45,16,21,.1);background:var(--ivory);border-radius:0;resize:none;outline:none;min-height:100px;transition:border-color .2s;display:block}
.cdl-revision-ta::placeholder{color:rgba(45,16,21,.35);font-family:'Montserrat',sans-serif;font-style:italic}
.cdl-revision-ta:focus{border-color:rgba(146,38,48,.3)}
.cdl-revision-wrap{background:var(--ivory);border-top:2px solid rgba(146,38,48,.1);padding:18px 0 14px;margin-top:8px}
.cdl-revision-footer{display:flex;align-items:center;justify-content:space-between;margin-top:10px}
.cdl-revision-submit{font-family:'Montserrat',sans-serif;font-size:var(--text-sm);letter-spacing:.18em;text-transform:uppercase;background:var(--bloodstone);color:var(--ivory);border:none;padding:12px 28px;cursor:pointer;transition:background .3s}
.cdl-revision-submit:hover{background:var(--bloodstone-dk)}
.cdl-revision-submit:disabled{opacity:.55;cursor:not-allowed}
/* Downloads tab empty state */
.ndl-empty-hint{font-size:var(--text-sm);color:rgba(45,16,21,.35);font-style:italic;padding:8px 0 8px 64px;white-space:nowrap}
/* Icon in button (close/x) */
.btn-icon{font-size:1.1rem}
/* Retry inline button */
.retry-inline-btn{background:none;border:none;color:#fff;text-decoration:underline;cursor:pointer;margin-left:12px;padding:0}

/* ══════════════════════════════════════════════════════════════
   MOBILE RESPONSIVE — comprehensive breakpoints
   Covers all tablets, phones (iPhone SE → Pro Max, Samsung, etc.)
══════════════════════════════════════════════════════════════ */

/* ── 900px — Tablets landscape / large iPad ── */
@media(max-width:900px){
  /* Header */
  .hdr-top{padding:14px 28px}

  /* Brief */
  .brief-hero{padding:40px 28px 32px}
  .pkg-strip{padding:18px 28px;column-gap:24px}

  /* Suite tab */
  .suite-hero{padding:28px 28px;flex-direction:column;align-items:flex-start}
  .status-row{flex-wrap:wrap;gap:6px}
  .suite-sample-label{margin:0 28px}
  .suite-iframe-wrap{margin:0 28px 32px}
  .piece-tabs-container{margin:0 28px 16px}
  .piece-loading-hint{margin:0 28px}

  /* Concept tab */
  .approval-section{margin:20px 28px 0}
  .annotate-toolbar{margin:0 28px}
  .annotations-list{margin:0 28px}
  .rev-submit-bar{margin:0 28px 20px}
  .revision-history{margin:16px 28px 0}
  .print-specs{margin:16px 28px 0}
  .moodboard-ref{margin:16px 28px 0}
  .message-thread{margin:16px 28px 0}
  .v2-section{margin:0 28px 20px}
  .download-section{margin:40px 28px 0}
  #pieceDescription{margin:0 28px}

  /* Progress + prefilled bars */
  .brief-prog{padding:12px 28px}
  .brief-prefilled{padding:16px 28px;gap:24px}

  /* RSVP table: reduce left indent */
  .rsvp-table th{padding:10px 14px 10px 28px}
  .rsvp-table td{padding:11px 12px 11px 28px}

  /* Keepsake / live */
  .keepsake-banner{padding:14px 28px}
}

/* ── 768px — Tablets portrait / iPad mini ── */
@media(max-width:768px){
  /* Login box */
  .login-box{padding:32px 28px}

  /* 2-col form grids → 1 col */
  .fld-row{grid-template-columns:1fr}
  .pal-grid{grid-template-columns:1fr 1fr} /* keep 2-col on 768 */
  .feeling-grid{grid-template-columns:1fr}

  /* Suite status strip wraps */
  .suite-hero{gap:14px}

  /* Palette explorer → 1 col */
  .pal-grid-v3{grid-template-columns:1fr}

  /* Vibe grid → 1 col */
  .vibe-grid{grid-template-columns:1fr}

  /* Upload grid → 1 col */
  .upload-grid{grid-template-columns:1fr}

  /* Custom palette → 2 col */
  .custom-pal{grid-template-columns:1fr 1fr}

  /* Brief hero tighter */
  .brief-hero{padding:32px 20px 28px}
  .pkg-strip{padding:16px 20px}

  /* Submit block */
  .submit-block{padding:40px 24px}

  /* Success screen */
  .success-screen{padding:32px 20px}
  .suc-card{padding:22px 20px}

  /* Suite */
  .suite-sample-label{margin:0 20px}
  .suite-iframe-wrap{margin:0 20px 28px}
  .suite-iframe-wrap iframe{height:70vh}
  .piece-tabs-container{margin:0 20px 12px}
  .piece-loading-hint{margin:0 20px}

  /* All 48px-margined panels */
  .approval-section{margin:16px 20px 0}
  .annotate-toolbar{margin:0 20px}
  .annotations-list{margin:0 20px}
  .rev-submit-bar{margin:0 20px 16px}
  .revision-history{margin:12px 20px 0}
  .print-specs{margin:12px 20px 0}
  .moodboard-ref{margin:12px 20px 0}
  .message-thread{margin:12px 20px 0}
  .v2-section{margin:0 20px 16px}
  .download-section{margin:32px 20px 0}
  #pieceDescription{margin:0 20px}
  .brief-prog{padding:10px 20px}
  .brief-prefilled{padding:14px 20px;gap:16px}

  /* RSVP */
  .rsvp-table th{padding:10px 12px 10px 20px}
  .rsvp-table td{padding:11px 12px 11px 20px}
  .rsvp-body{padding:32px 20px 60px}

  /* Event countdown */
  .event-countdown-hero{padding:28px 20px}
  .ech-unit{padding:0 14px}

  /* Final suite cover */
  .final-suite-cover{padding:28px 20px}
  .fsc-c.tl{top:16px;left:16px}
  .fsc-c.tr{top:16px;right:16px}
  .fsc-c.bl{bottom:16px;left:16px}
  .fsc-c.br{bottom:16px;right:16px}

  /* Keepsake */
  .keepsake-banner{padding:12px 20px;flex-direction:column;gap:8px}
  .keepsake-grid{padding:28px 20px 48px}

  /* Live */
  .live-hero{padding:56px 20px}
  .live-upcoming{padding:28px 20px}

  /* Dossier */
  .dossier-wrap{padding:32px 20px 48px}
}

/* ── 640px — Large phones landscape / iPhone Pro Max ── */
@media(max-width:640px){
  /* Tabs — show dot + text, hide num (already at 900), tighter */
  .ptab{padding:12px 10px;font-size:.72rem;letter-spacing:.1em;gap:6px}
  .ptab-dot{width:5px;height:5px}

  /* Header */
  .hdr-top{padding:12px 16px}
  .hdr-logo{font-size:var(--text-ui);letter-spacing:.18em}

  /* Login */
  .login-logo{font-size:.78rem;letter-spacing:.22em;margin-bottom:32px}
  .login-box{padding:28px 20px;max-width:100%}
  .login-title{font-size:1.5rem}

  /* Brief hero */
  .brief-hero{padding:28px 16px 24px}
  .hero-title{font-size:clamp(1.6rem,7vw,2.2rem)}
  .pkg-strip{padding:14px 16px;column-gap:18px}
  .form-wrap{padding:40px 16px 60px}

  /* 2-col grids → 1 col on phone */
  .pal-grid{grid-template-columns:1fr}
  .custom-pal{grid-template-columns:1fr}

  /* Section headers */
  .sec{margin-bottom:52px}

  /* Submit */
  .submit-block{padding:32px 16px}
  .submit-ttl{font-size:clamp(1.4rem,6vw,2rem)}
  .submit-btn{padding:15px 32px;width:100%}

  /* Success */
  .success-screen{padding:28px 16px}

  /* Suite */
  .suite-title-block h2{font-size:1.4rem}
  .suite-sample-label{margin:0 16px;flex-direction:column;align-items:flex-start;gap:6px}
  .suite-iframe-wrap{margin:0 16px 24px}
  .suite-iframe-wrap iframe{height:60vh}
  .piece-tabs-container{margin:0 16px 10px;gap:6px}
  .piece-loading-hint{margin:0 16px}
  .piece-tab{padding:8px 12px;font-size:var(--text-xs)}

  /* Concept / designs panels */
  .approval-section{margin:12px 16px 0;padding:36px 20px 32px}
  .approval-title{font-size:1.5rem}
  .btn-approve,.btn-decline{min-width:0;padding:14px 16px;font-size:.72rem}
  .annotate-toolbar{margin:0 16px;gap:8px}
  .annotations-list{margin:0 16px}
  .rev-submit-bar{margin:0 16px 12px;flex-direction:column;align-items:flex-start;gap:10px}
  .rsb-btn{width:100%;text-align:center;padding:12px}
  .revision-history{margin:10px 16px 0;padding:18px 20px}
  .print-specs{margin:10px 16px 0}
  .moodboard-ref{margin:10px 16px 0}
  .message-thread{margin:10px 16px 0}
  .v2-section{margin:0 16px 12px}
  .download-section{margin:28px 16px 0}
  #pieceDescription{margin:0 16px;font-size:var(--text-ui)}
  .brief-prog{padding:10px 16px}
  .brief-prefilled{padding:12px 16px;gap:12px}

  /* RSVP */
  .rsvp-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .rsvp-table{min-width:520px}
  .rsvp-table th{padding:9px 10px 9px 16px}
  .rsvp-table td{padding:10px 10px 10px 16px}

  /* Event countdown */
  .event-countdown-hero{padding:24px 16px}
  .ech-unit{padding:0 10px}
  .ech-num{font-size:clamp(1.8rem,10vw,3rem)}

  /* Final suite */
  .final-suite-cover{padding:24px 16px}
  .fsc-client-name{font-size:clamp(2.2rem,10vw,4rem)}

  /* Keepsake */
  .keepsake-banner{padding:12px 16px}
  .keepsake-grid{padding:20px 16px 40px}

  /* Live */
  .live-hero{padding:44px 16px}
  .live-upcoming{padding:20px 16px}

  /* Dossier */
  .dossier-wrap{padding:24px 16px 40px}
  .dossier-grid{grid-template-columns:1fr}

  /* Brandbook pieces */
  .brandbook-grid{padding:24px 16px!important;gap:20px!important}

  /* Downloads */
  .download-section{margin:24px 16px 0}
  .piece-dl-card{padding:24px 16px;margin-bottom:28px}
  .piece-dl-name{font-size:1.1rem;margin-bottom:20px}
  .bb-file-btns{flex-direction:column}
  .bb-file-btn{width:100%;justify-content:center}

  /* Package info strip */
  .pkg-item{min-width:50%}

  /* Suite note */
  .suite-note-inner{padding:12px 16px;flex-direction:column;text-align:center}

  /* Welcome modal */
  .welcome-modal{padding:28px 20px}

  /* Share modal */
  .share-box{padding:24px 20px}
  .share-url-row{flex-direction:column}
  .share-url-input{border-right:1px solid var(--border);border-bottom:none}
  .share-copy-btn{width:100%;padding:12px}

  /* Progress / status */
  .status-row{gap:4px}
  .status-step{padding:6px 10px}
  .status-step span{font-size:.78rem}
  .status-arrow{display:none}
}

/* ── 480px — Standard phones (iPhone SE, most Androids) ── */
@media(max-width:480px){
  /* Tab text: abbreviate to fit */
  .ptab{padding:10px 8px;font-size:.78rem;letter-spacing:.06em}

  /* Brief */
  .brief-hero{padding:24px 14px 20px}
  .pkg-strip{padding:12px 14px}
  .form-wrap{padding:32px 14px 52px}

  /* Login */
  .login-box{padding:24px 16px}
  .login-title{font-size:1.35rem}

  /* Suite */
  .suite-iframe-wrap{margin:0 14px 20px}
  .suite-iframe-wrap iframe{height:55vh}
  .piece-tabs-container{margin:0 14px 8px}
  .piece-loading-hint{margin:0 14px}
  .suite-sample-label{margin:0 14px}
  .approval-section{margin:10px 14px 0;padding:28px 16px 24px}
  .annotate-toolbar{margin:0 14px}
  .annotations-list{margin:0 14px}
  .rev-submit-bar{margin:0 14px 10px}
  .revision-history{margin:8px 14px 0}
  .print-specs{margin:8px 14px 0}
  .moodboard-ref{margin:8px 14px 0}
  .message-thread{margin:8px 14px 0}
  .v2-section{margin:0 14px 10px}
  .download-section{margin:20px 14px 0}
  #pieceDescription{margin:0 14px}
  .brief-prog{padding:8px 14px}
  .brief-prefilled{padding:10px 14px}

  /* Approval buttons */
  .approval-btns{flex-direction:column}
  .btn-approve,.btn-decline{width:100%}

  /* Event countdown units tighter */
  .ech-unit{padding:0 8px}
  .ech-lbl{font-size:.63rem;letter-spacing:.18em}

  /* Vibe grid stays 1 col */
  .vibe-grid{grid-template-columns:1fr}

  /* RSVP hero */
  .rsvp-hero{padding:24px 14px 20px}
  .rsvp-add-form{padding:20px 14px 24px}
  .rsvp-list-hdr-outer{padding:16px 14px}
  .rsvp-table th{padding:9px 8px 9px 14px}
  .rsvp-table td{padding:10px 8px 10px 14px}
  .rsvp-rag-num{font-size:1.8rem}

  /* Downloads */
  .piece-dl-card{padding:20px 14px;margin-bottom:20px}
  .download-section{margin:18px 14px 0}
  .ndl-empty-hint{padding-left:0;white-space:normal}

  /* Package items full width */
  .pkg-item{min-width:100%;border-bottom:1px solid var(--border);padding-bottom:10px}
  .pkg-item:last-child{border-bottom:none;padding-bottom:0}

  /* Feeling cards already 1-col, keep text readable */
  .feeling-body{padding:14px 16px}

  /* Colour wheel */
  .wheel-canvas-wrap{width:160px;height:160px}

  /* Palette tabs */
  .pal-tab{padding:10px 6px;font-size:.78rem;letter-spacing:.1em}

  /* Dossier */
  .dossier-wrap{padding:20px 14px 32px}
}

/* ── 380px — Small phones (iPhone SE 1st gen, Galaxy A series) ── */
@media(max-width:380px){
  .ptab{padding:10px 6px;font-size:var(--text-ui);letter-spacing:.04em}
  .ptab-dot{display:none}

  .hdr-logo{font-size:.78rem;letter-spacing:.14em}
  .hdr-top{padding:10px 12px}

  .brief-hero{padding:20px 12px 18px}
  .pkg-strip{padding:10px 12px}
  .form-wrap{padding:28px 12px 48px}

  .suite-iframe-wrap{margin:0 12px 16px}
  .suite-iframe-wrap iframe{height:50vh}
  .piece-tabs-container{margin:0 12px 6px}
  .suite-sample-label{margin:0 12px}
  .approval-section{margin:8px 12px 0;padding:24px 14px 20px}
  .annotate-toolbar{margin:0 12px}
  .annotations-list{margin:0 12px}
  .rev-submit-bar{margin:0 12px 8px}
  .revision-history{margin:6px 12px 0}
  .moodboard-ref{margin:6px 12px 0}
  .message-thread{margin:6px 12px 0}
  .v2-section{margin:0 12px 8px}
  .download-section{margin:16px 12px 0}
  #pieceDescription{margin:0 12px}
  .brief-prog{padding:8px 12px}
  .brief-prefilled{padding:10px 12px}

  .submit-block{padding:28px 12px}
  .rsvp-hero{padding:20px 12px 16px}
  .rsvp-add-form{padding:16px 12px 20px}
  .rsvp-list-hdr-outer{padding:14px 12px}
  .rsvp-table th{padding:8px 6px 8px 12px}
  .rsvp-table td{padding:9px 6px 9px 12px}

  .event-countdown-hero{padding:20px 12px}
  .ech-unit{padding:0 6px}
  .final-suite-cover{padding:20px 12px}
  .keepsake-grid{padding:16px 12px 32px}
  .live-hero{padding:36px 12px}
  .dossier-wrap{padding:16px 12px 28px}

  .piece-dl-card{padding:16px 12px}
  .download-section{margin:14px 12px 0}

  .login-box{padding:20px 14px}
}

/* ── Landscape phone: prevent fixed header from eating too much space ── */
@media(max-height:500px) and (orientation:landscape){
  body{padding-top:var(--hdr-h,60px)}
  .portal-tabs .ptab{padding:8px 10px}
  .suite-iframe-wrap iframe{height:80vh}
  .event-countdown-hero{padding:16px 20px}
}

/* ── Touch-friendly tap targets ── */
@media(max-width:900px){
  .ptab,.btn-approve,.btn-decline,.submit-btn,.login-btn,
  .rsvp-add-btn,.rsvp-export-cta,.fsc-view-suite-btn,
  .keepsake-btn,.keepsake-btn-dark,.approval-send-btn,
  .upload-zone,.check-item,.lang-opt,.dp-pill{
    min-height:44px;
  }
  /* Ensure all interactive pills have comfortable tap size */
  .dp-pill{padding:10px 14px}
  .lang-opt{padding:10px 16px}
}

/* ─────────────────────────────────────────────────────────────
   TWO-COLUMN LAYOUT — LIVE CONTEXT ASIDE (desktop ≥1025px)
───────────────────────────────────────────────────────────── */
.tab-split-aside{display:none}

@media(min-width:1025px){
  .tab-panel.active{
    display:block!important;
    min-height:calc(100vh - 56px);
    padding-right:0;
    box-sizing:border-box;
  }
  /* Only indent content when the aside is actually visible */
  body.portal-aside-visible .tab-panel.active{
    padding-right:420px;
  }
  /* Concept tab was display:flex — keep as block */
  #tab-concept.active{
    display:block!important;
    height:auto;
    min-height:calc(100vh - 56px);
  }
  /* Aside: floating card — no border lines, card sits on cream page background */
  .tab-split-aside{
    display:block;
    position:fixed;
    right:20px;
    top:calc(var(--hdr-h,120px) + var(--beta-h,0px) + 20px);
    bottom:20px;
    width:380px;
    overflow:hidden!important;
    overflow-y:hidden!important;
    overscroll-behavior:none;
    scrollbar-width:none;
    background:var(--ivory);
    border:0.5px solid rgba(45,16,21,.14);
    border-radius:8px;
    z-index:10;
  }
  .tab-split-aside::-webkit-scrollbar{display:none}
  /* ── AT A GLANCE — FORMAT B ADAPTIVE ── */
  .gs-glance{height:100%;display:flex;flex-direction:column;background:var(--ivory);overflow:hidden;}
  .gs-glance-hdr{
    flex-shrink:0;display:flex;align-items:center;justify-content:space-between;
    padding:.7em 1.2em;border-bottom:2px solid var(--onyx-dk);
  }
  .gs-glance-hdr-title{
    font-family:'Montserrat',sans-serif;font-size:.58em;letter-spacing:.26em;
    text-transform:uppercase;font-weight:700;color:var(--onyx-dk);
  }
  .gs-glance-hdr-tag{
    font-family:'Montserrat',sans-serif;font-size:.52em;letter-spacing:.12em;
    text-transform:uppercase;font-weight:700;color:var(--white);
    background:var(--sage-dk);padding:.28em .7em;
  }
  .gs-glance-body{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0;}
  .gs-glance::after{content:'';display:block;flex-shrink:0;height:.7em;}
  .gs-sec{flex:none;padding:.7em 1.2em;border-bottom:1px solid var(--border-d);}
  .gs-sec:last-child{border-bottom:none;flex:1;}
  .gs-sec-lbl{
    font-family:'Montserrat',sans-serif;font-size:.5em;letter-spacing:.22em;
    text-transform:uppercase;font-weight:700;color:rgba(58,53,48,.3);margin-bottom:.6em;
  }
  /* Calendar */
  .gs-cal{
    display:flex;align-items:center;gap:.7em;padding:.6em .8em;
    background:var(--white);border:1px solid var(--border-d);margin-bottom:.5em;
  }
  .gs-cal-box{text-align:center;flex-shrink:0;}
  .gs-cal-month{
    font-family:'Montserrat',sans-serif;font-size:.5em;letter-spacing:.18em;
    text-transform:uppercase;font-weight:700;background:var(--bloodstone-dk);
    color:var(--white);display:block;padding:.22em .7em;
  }
  .gs-cal-day{
    font-family:'Libre Baskerville',serif;font-size:1.75em;font-weight:600;
    color:var(--onyx-dk);line-height:1;display:flex;align-items:center;justify-content:center;
    padding:.2em .4em .1em;border:1px solid var(--border-d);border-top:none;
  }
  .gs-cal-info{flex:1;min-width:0;}
  .gs-cal-dow{
    font-family:'Montserrat',sans-serif;font-size:.5em;letter-spacing:.16em;
    text-transform:uppercase;font-weight:700;color:var(--sage);margin-bottom:.2em;
  }
  .gs-cal-venue{
    font-family:'Libre Baskerville',serif;font-size:.95em;
    font-style:italic;color:var(--onyx);line-height:1.28;
  }
  /* Event grid */
  .gs-grid{
    display:grid;grid-template-columns:1fr 1fr;gap:1px;
    background:var(--border-d);border:1px solid var(--border-d);
  }
  .gs-cell{background:var(--white);padding:.48em .65em;}
  .gs-cell-full{grid-column:1/-1;}
  .gs-cell-lbl{
    font-family:'Montserrat',sans-serif;font-size:.5em;letter-spacing:.16em;
    text-transform:uppercase;font-weight:700;color:rgba(58,53,48,.3);margin-bottom:.16em;
  }
  .gs-cell-val{font-family:'Libre Baskerville',serif;font-size:.96em;color:var(--onyx);}
  .gs-swatches{display:flex;align-items:center;gap:5px;margin-top:.15em;}
  .gs-swatch{
    width:14px;height:14px;border-radius:50%;
    border:1px solid rgba(0,0,0,.15);flex-shrink:0;display:inline-block;
  }
  .gs-swatch-name{
    font-family:'Libre Baskerville',serif;font-size:.58em;
    font-style:italic;color:rgba(58,53,48,.55);
  }
  /* Link rows (Creative Direction, file opens) */
  .gs-link-row{
    display:flex;align-items:center;justify-content:space-between;
    padding:.48em .65em;background:var(--white);border:1px solid var(--border-d);
    margin-bottom:.32em;text-decoration:none;cursor:pointer;transition:background .12s;
  }
  .gs-link-row:last-child{margin-bottom:0;}
  .gs-link-row:hover{background:var(--ivory-dk,#F0EBE3);}
  .gs-link-name{
    font-family:'Libre Baskerville',serif;font-size:.8em;color:var(--onyx);flex:1;min-width:0;
  }
  .gs-link-chip{
    font-family:'Montserrat',sans-serif;font-size:.5em;letter-spacing:.1em;
    text-transform:uppercase;font-weight:700;padding:.22em .6em;flex-shrink:0;
  }
  .gs-link-chip.done{color:var(--sage-dk);background:rgba(45,80,80,.08);}
  .gs-link-chip.open{color:var(--sage);background:rgba(64,100,95,.08);}
  /* File rows */
  .gs-file-row{
    display:flex;align-items:center;gap:.52em;
    padding:.46em 0;border-bottom:1px solid var(--border);
    color:var(--onyx);text-decoration:none;
  }
  .gs-file-row:last-child{border-bottom:none;}
  .gs-file-icon{
    width:1.65em;height:1.65em;background:var(--white);border:1px solid var(--border-d);
    display:flex;align-items:center;justify-content:center;flex-shrink:0;
    font-family:'Montserrat',sans-serif;font-size:.5em;font-weight:700;color:var(--sage);
  }
  .gs-file-name{
    flex:1;font-family:'Libre Baskerville',serif;font-size:.82em;
    color:var(--onyx);min-width:0;
  }
  .gs-file-arrow{
    font-family:'Montserrat',sans-serif;font-size:.54em;
    color:rgba(58,53,48,.55);flex-shrink:0;
  }
  /* Pieces */
  .gs-pieces-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:.4em;}
  .gs-count-pills{display:flex;}
  .gs-count-pill{
    font-family:'Montserrat',sans-serif;font-size:.64em;letter-spacing:.08em;
    text-transform:uppercase;font-weight:700;padding:.32em .72em;
    border:1px solid var(--border-d);margin-right:-1px;background:var(--white);
  }
  .gs-count-pill.approved{color:var(--sage-dk);background:rgba(45,80,80,.06);}
  .gs-count-pill.review{color:var(--bloodstone);}
  .gs-count-pill.progress{color:var(--gold,#B8935A);}
  .gs-piece{
    display:flex;align-items:center;gap:.52em;height:2.05em;
    padding:0 .6em;background:var(--white);border-left:2px solid transparent;
    margin-bottom:2px;cursor:pointer;transition:background .1s;
  }
  .gs-piece:last-child{margin-bottom:0;}
  .gs-piece:hover{background:var(--ivory-dk,#F0EBE3);}
  .gs-piece.approved{border-left-color:rgba(45,80,80,.45);}
  .gs-piece.review{border-left-color:rgba(146,38,60,.45);}
  .gs-piece.progress{border-left-color:rgba(184,147,90,.55);}
  .gs-piece-name{
    flex:1;font-family:'Libre Baskerville',serif;font-size:.74em;color:var(--onyx);
    min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  }
  .gs-piece-badge{
    font-family:'Montserrat',sans-serif;font-size:.5em;letter-spacing:.1em;
    text-transform:uppercase;font-weight:700;padding:.22em .55em;flex-shrink:0;
  }
  .gs-piece-badge.approved{color:var(--sage-dk);background:rgba(45,80,80,.08);}
  .gs-piece-badge.review{color:var(--bloodstone);background:rgba(146,38,60,.07);}
  .gs-piece-badge.progress{color:#9A6A20;background:rgba(184,147,90,.1);}
  .gs-empty-note{
    font-family:'Libre Baskerville',serif;font-size:.72em;
    color:rgba(45,16,21,.55);font-style:italic;line-height:1.6;padding:.4em 0;
  }
  .gs-cal-countdown{font-size:.7em;color:var(--gold,#B8935A);letter-spacing:.04em;margin-top:.2em;}
  .gs-sec-ts{float:right;font-size:.72em;color:rgba(45,16,21,.38);font-weight:400;letter-spacing:.02em;font-family:'Montserrat',sans-serif;font-style:normal;}
  .gs-rev-dots{display:inline-flex;gap:3px;align-items:center;margin-left:5px;vertical-align:middle;flex-shrink:0;}
  .gs-rev-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:rgba(45,16,21,.28);}
  .gs-rev-dot.used{background:#C4A882;}
  .gs-rev-dot.at-limit{background:var(--bloodstone,#922630);}
  /* ── Suite Progress Ring ── */
  .gs-ring-wrap{display:flex;align-items:center;gap:.85em;padding:.3em 0 .1em;}
  .gs-ring-svg{flex-shrink:0;width:3.4em;height:3.4em;}
  .gs-ring-track{fill:none;stroke:rgba(45,16,21,.09);stroke-width:5;}
  .gs-ring-bar{fill:none;stroke:var(--sage-dk);stroke-width:5;stroke-linecap:round;transform:rotate(-90deg);transform-origin:50% 50%;}
  .gs-ring-count{font-family:'Montserrat',sans-serif;font-size:.88em;font-weight:700;fill:var(--onyx-dk);text-anchor:middle;dominant-baseline:middle;}
  .gs-ring-of{font-family:'Montserrat',sans-serif;font-size:.32em;font-weight:600;letter-spacing:.06em;fill:rgba(58,53,48,.45);text-anchor:middle;}
  .gs-ring-info{flex:1;min-width:0;}
  .gs-ring-stat{font-family:'Montserrat',sans-serif;font-size:.62em;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--onyx-dk);margin-bottom:.25em;}
  .gs-ring-line{font-family:'Libre Baskerville',serif;font-size:.92em;color:rgba(58,53,48,.65);line-height:1.55;}

  /* ── Docs grid: 5→3 cols in narrower main column ── */
  .tab-panel.active .docs-grid{
    grid-template-columns:repeat(3,1fr)!important;
    padding:20px 64px 28px!important;
    gap:14px!important;
  }
  /* 5 cards: single row */
  .tab-panel.active .docs-grid[data-count="5"]{grid-template-columns:repeat(5,1fr)!important;}
  .tab-panel.active .docs-section-hdr{
    padding:18px 64px 14px!important;
  }
  .tab-panel.active .doc-card{
    aspect-ratio:auto!important;
    padding:22px 18px 20px!important;
    min-height:0!important;
  }
  .tab-panel.active .doc-big-num{
    font-size:2.6rem!important;
    margin-bottom:0!important;
  }
  .tab-panel.active .doc-title{
    font-size:var(--text-md)!important;
    margin-bottom:6px!important;
  }
  .tab-panel.active .doc-sub{
    font-size:var(--text-ui)!important;
    line-height:1.6!important;
  }
  .tab-panel.active .doc-status-tag{
    font-size:.63rem!important;
    margin-bottom:10px!important;
  }

  /* ── Brandbook cards: tighter in narrower main column ── */
  .tab-panel.active .brandbook-grid{
    padding:36px 28px;
    gap:28px;
    max-width:none;
  }
  .tab-panel.active .bb-meta{
    padding:26px 22px 22px;
  }
  .tab-panel.active .bb-meta-top{
    gap:12px;
    margin-bottom:18px;
  }
  .tab-panel.active .bb-piece-name{
    font-size:1.1rem;
  }
  .tab-panel.active .bb-status-pill{
    font-size:var(--text-ui);
    padding:8px 13px;
  }
  .tab-panel.active .bb-piece-sub{
    font-size:.72rem;
  }
  .tab-panel.active .bb-piece-desc{
    padding:12px 14px;
  }
  .tab-panel.active .bb-actions{
    gap:8px;
  }
  .tab-panel.active .bb-action-approve,
  .tab-panel.active .bb-action-revise{
    padding:13px 6px;
    font-size:.71rem;
  }
  .tab-panel.active .bb-file-btns{
    margin-top:16px;
  }
  .tab-panel.active .bb-file-btn{
    padding:9px 16px;
    font-size:.78rem;
  }
}

/* ── Pending compact row (no file released yet) ── */
.bb-pending-row{
  grid-column:1/-1;
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 28px;background:#fff;
  border:1px solid rgba(45,16,21,.08);gap:20px;
  transition:background .18s;
}
.bb-pending-row:hover{background:rgba(64,100,95,.025);}
.bb-pending-row+.bb-pending-row{border-top:none;}
.bb-pending-row+.bb-pending-row{margin-top:-1px;}
.bb-pr-left{display:flex;align-items:center;gap:22px;flex:1;min-width:0;}
.bb-pr-num{
  font-family:'Montserrat',sans-serif;font-size:var(--text-micro);letter-spacing:.22em;
  color:rgba(64,100,95,.35);font-weight:700;min-width:22px;flex-shrink:0;
}
.bb-pr-info{display:flex;flex-direction:column;gap:4px;min-width:0;}
.bb-pending-row .bb-piece-name{font-size:.98rem!important;font-style:normal!important;}
.bb-pr-specs{
  font-family:'Montserrat',sans-serif;font-size:var(--text-xs);color:var(--sage);
  font-weight:300;letter-spacing:.05em;
}
@media(max-width:600px){
  .bb-pending-row{flex-wrap:wrap;gap:10px;}
  .bb-pr-num{display:none;}
}

/* ── Hide reCAPTCHA v3 badge (disclosure in portal footer) ── */
.grecaptcha-badge{visibility:hidden!important;}

/* ── L-04: WCAG AA contrast — sage text on ivory requires ≥4.5:1 ── */
/* --sage:#40645F ≈3.8:1 on #FAF6EE — use --sage-dk (#2D6A4F ≈5.9:1) for text */
.fld-lbl,.sec-num,.pkg-lbl,.hdr-client-label,.hdr-ref,
.dp-bundled-tag,.dp-bar-clear,.pal-mood,.submit-note,.suc-card-lbl,
.login-fld label,.login-hint,.login-legal,.status-step span,
.suite-title-block p,.bsp-fld-lbl,.rev-meta,.lang-lbl,.feeling-name,
.check-txt,.check-sub,.bsp-hero-eyebrow,.bsp-hero-sub,
.bsp-status-date,.bsp-readonly-sub{color:var(--onyx)}.col-label-name{color:var(--sage-dk)}

/* ── EFFECT: Checkbox spring bounce ── */
.check-box{transition:background .2s,border-color .2s,transform .28s cubic-bezier(.34,1.56,.64,1)!important}
.check-item.chk .check-box{transform:scale(1.2) rotate(-4deg)}
.check-item:not(.chk) .check-box{transform:scale(1) rotate(0deg)}
.check-mark{transition:opacity .15s .04s,transform .22s .04s cubic-bezier(.34,1.56,.64,1)!important}
.check-item.chk .check-mark{transform:scale(1)}
.check-item:not(.chk) .check-mark{transform:scale(0)}

/* ── EFFECT: In-progress dot pulse glow ── */
.item-sdot.in_progress{animation:px-glow-sage 1.8s ease-out infinite}
.ds-spill-dot.progress{animation:px-glow-gold 1.8s ease-out infinite}
@keyframes px-glow-sage{
  0%{box-shadow:0 0 0 0 rgba(64,100,95,.6)}
  70%{box-shadow:0 0 0 6px rgba(64,100,95,0)}
  100%{box-shadow:0 0 0 0 rgba(64,100,95,0)}
}
@keyframes px-glow-gold{
  0%{box-shadow:0 0 0 0 rgba(184,147,90,.65)}
  70%{box-shadow:0 0 0 6px rgba(184,147,90,0)}
  100%{box-shadow:0 0 0 0 rgba(184,147,90,0)}
}

/* ── EFFECT: Design card hover lift ── */
.item-card{transition:transform .22s cubic-bezier(.34,1.2,.64,1),box-shadow .22s,border-color .22s,background .2s!important}
.item-card:hover{transform:translateY(-4px) scale(1.015);box-shadow:0 10px 28px rgba(45,16,21,.1);border-color:rgba(45,16,21,.18)!important;background:var(--white)!important;z-index:2;position:relative}
