/* Silver Birch Videos portal/admin refinements - v5.1.1 */
.portal-body {
  background: var(--ivory);
  color: var(--primary);
  font-family: Lato, sans-serif;
  padding-top: 84px;
  min-height: 100vh;
}
.portal-body h1,
.portal-body h2,
.portal-body h3,
.portal-body h4,
.portal-body h5,
.portal-section-title,
.portal-display-title {
  font-family: Cinzel, serif;
  letter-spacing: 0.06em;
}
.portal-navbar { background: rgba(31, 35, 37, 0.96) !important; }
.portal-navbar .navbar-brand { color: var(--ivory) !important; }
.portal-navbar .brand-icon { height: 54px; width: auto; margin-right: .6rem; }
.portal-notification-nav{display:flex;align-items:center}
.portal-mobile-notification-nav{display:none}
.portal-notification-menu{position:relative}
.portal-notification-menu summary{list-style:none;width:38px;height:38px;border:1px solid rgba(196,170,122,.45);border-radius:50%;display:grid;place-items:center;color:var(--ivory);cursor:pointer;position:relative;background:rgba(255,255,255,.04);margin:.25rem .35rem}
.portal-notification-menu summary::-webkit-details-marker{display:none}
.portal-notification-menu[open] summary,.portal-notification-menu summary:hover{background:rgba(196,170,122,.16);color:var(--secondary)}
.portal-notification-count{position:absolute;top:-7px;right:-7px;min-width:21px;height:21px;border-radius:999px;background:#c94848;color:#fff;font-size:.68rem;font-weight:800;display:grid;place-items:center;padding:0 .25rem}
.portal-notification-panel{position:absolute;top:calc(100% + 12px);right:0;width:min(360px,calc(100vw - 1.5rem));max-height:70vh;overflow:auto;background:#fff;color:var(--primary);border:1px solid rgba(196,170,122,.35);border-radius:16px;box-shadow:0 22px 55px rgba(0,0,0,.22);padding:.75rem;z-index:1060}
.portal-notification-head{display:flex;justify-content:space-between;align-items:center;gap:.7rem;padding:.45rem .5rem .75rem;border-bottom:1px solid rgba(90,72,52,.12);font-size:.9rem;flex-wrap:nowrap}
.portal-notification-head span{color:#7a6f62;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.portal-notification-head form{margin:0 0 0 auto;min-width:0}
.portal-notification-head button{border:1px solid rgba(188,163,117,.72);border-radius:999px;background:#fff;color:#1f2325;padding:.42rem .68rem;font-size:.64rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;box-shadow:0 8px 18px rgba(90,72,52,.08);white-space:nowrap}
.portal-notification-head button:hover,.portal-notification-head button:focus{background:#bca375;border-color:#bca375;color:#fff;box-shadow:0 10px 22px rgba(90,72,52,.16)}
.portal-notification-item{display:block;text-decoration:none;color:var(--primary);border-radius:12px;padding:.75rem;margin-top:.35rem;border:1px solid transparent;position:relative}
.portal-notification-item:hover,.portal-notification-item:focus{background:var(--ivory);border-color:rgba(196,170,122,.28);color:var(--primary)}
.portal-notification-item.is-read{opacity:.68;background:#fff}
.portal-notification-item.is-read strong{font-weight:700;color:#4f5652}
.portal-notification-item.is-unread{background:#fff8e8;border-color:rgba(196,170,122,.72);box-shadow:0 10px 24px rgba(90,72,52,.1);padding-left:1rem}
.portal-notification-item.is-unread:before{content:"";position:absolute;left:0;top:.75rem;bottom:.75rem;width:4px;border-radius:999px;background:#b6a07a}
.portal-notification-item.is-unread strong{font-weight:900;color:#1f2325}
.portal-notification-new{float:right;margin-left:.5rem;border-radius:999px;background:#2f6f47;color:#fff;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;padding:.18rem .45rem;line-height:1.2}
.portal-notification-item.is-warning{background:#fff7f2;border-color:rgba(201,72,72,.28)}
.portal-notification-item.is-warning strong{color:#9f342f}
.portal-notification-item strong,.portal-notification-item span,.portal-notification-item em,.portal-notification-item small{display:block}
.portal-notification-item strong{font-size:.92rem}
.portal-notification-item span,.portal-notification-item em{font-size:.8rem;color:#66706b;font-style:normal;margin-top:.15rem}
.portal-notification-item small{font-size:.72rem;color:#9a8a72;margin-top:.35rem;text-transform:uppercase;letter-spacing:.08em}
.portal-notification-empty{padding:1rem;color:#6f7472}
.portal-shell { padding-top: 3rem; padding-bottom: 4rem; }
.crm-client-header h1 {
  overflow-wrap: anywhere;
}
.crm-client-header-actions {
  display: flex;
  justify-content: flex-end;
  margin: -1rem 0 1.5rem;
}
.portal-page-hero {
  position: relative;
  min-height: 58vh;
  display: flex;
  align-items: center;
  color: #fff;
  margin-top: -84px;
  padding-top: 84px;
  overflow: hidden;
  background: linear-gradient(90deg, rgba(0,0,0,.86) 0%, rgba(0,0,0,.72) 42%, rgba(0,0,0,.48) 100%), url('../images/Personal/using-professional-camera-5.png') center/cover no-repeat;
}
.portal-page-hero .container { position: relative; z-index: 2; }
.portal-eyebrow,
.portal-page-hero .eyebrow,
.portal-hero .eyebrow {
  color: var(--secondary);
  text-transform: uppercase;
  letter-spacing: .18em;
  font-weight: 700;
  font-size: .8rem;
}
.portal-page-hero .portal-display-title,
.portal-hero h1 {
  color: #fff;
  font-weight: 700;
  font-size: clamp(2.4rem, 6vw, 5rem);
  line-height: 1.04;
  text-shadow: 0 4px 18px rgba(0,0,0,.58);
}
.portal-page-hero .lead,
.portal-hero .lead,
.portal-countdown-strip,
.portal-profile-photo {
  text-shadow: 0 2px 12px rgba(0,0,0,.42);
}
.portal-muted { color: #6f7472 !important; }
.portal-card,
.portal-stat-card {
  background: #fff;
  border: 1px solid rgba(140,145,143,.18);
  border-radius: 18px;
  box-shadow: 0 18px 45px rgba(47,52,55,.08);
  overflow: hidden;
}
.portal-card:hover,
.portal-stat-card:hover {
  transform: none;
}
.portal-stat-card { padding: 1.5rem; }
.portal-stat-card .stat-number {
  font-family: Cinzel, serif;
  color: var(--secondary);
  font-size: 2.25rem;
  line-height: 1;
}
.crm-dashboard-summary-grid a.crm-dashboard-summary-card{text-decoration:none;color:inherit}
.crm-dashboard-summary-grid a.crm-dashboard-summary-card:hover,.crm-dashboard-summary-grid a.crm-dashboard-summary-card:focus{border-color:rgba(196,170,122,.55);box-shadow:0 14px 34px rgba(47,52,55,.08);transform:translateY(-1px)}
@media(max-width:991.98px){.portal-desktop-notification-nav{display:none}.portal-mobile-notification-nav{display:flex;align-items:center;margin-left:auto;margin-right:.65rem}.portal-mobile-notification-nav .portal-notification-menu summary{margin:0}.portal-notification-nav{justify-content:flex-start}.portal-notification-menu summary{margin:.65rem 0}.portal-notification-panel{left:auto;right:-58px;top:calc(100% + 12px)}.portal-navbar .navbar-toggler{margin-left:0}.crm-client-header{margin-top:0}}
.portal-chip {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  border-radius: 50px;
  background: rgba(182,160,122,.16);
  color: var(--primary);
  padding: .35rem .8rem;
  font-size: .82rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.portal-chip-muted {
  background: rgba(102,112,107,.12);
  color: #66706b;
}
.portal-body .btn,
.portal-body .nav-pills .nav-link,
.portal-body .portal-tabs .nav-link {
  border-radius: 50px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 2px;
  transition: .3s;
}
.portal-body .btn-primary-custom,
.portal-body .btn-dark,
.portal-body .portal-tabs .nav-link.active,
.portal-body .nav-pills .nav-link.active {
  background: var(--secondary) !important;
  border-color: var(--secondary) !important;
  color: #fff !important;
}
.portal-body .btn-primary-custom:hover,
.portal-body .btn-dark:hover,
.portal-body .portal-tabs .nav-link.active:hover,
.portal-body .nav-pills .nav-link.active:hover {
  background: #8F7B59 !important;
  border-color: #8F7B59 !important;
  color: #fff !important;
  transform: translateY(-3px);
  box-shadow: 0 10px 30px rgba(182, 160, 122, 0.28) !important;
}
.portal-body .btn-outline-sbv,
.portal-body .btn-outline-secondary,
.portal-body .btn-outline-light,
.portal-body .portal-tabs .nav-link:not(.active),
.portal-body .nav-pills .nav-link:not(.active) {
  background: #fff !important;
  border: 1px solid var(--secondary) !important;
  color: var(--primary) !important;
}
.portal-body .btn-outline-sbv:hover,
.portal-body .btn-outline-secondary:hover,
.portal-body .btn-outline-light:hover,
.portal-body .portal-tabs .nav-link:not(.active):hover,
.portal-body .nav-pills .nav-link:not(.active):hover {
  background: var(--secondary) !important;
  border-color: var(--secondary) !important;
  color: #fff !important;
  transform: translateY(-3px);
}
.portal-tabs {
  background: var(--ivory);
  border: 1px solid rgba(140,145,143,.18);
  padding: .45rem;
  border-radius: 50px;
  display: inline-flex;
  flex-wrap: wrap;
  gap: .35rem;
}
.portal-tabs .nav-link { padding: .72rem 1.2rem; }
.media-row {
  border: 1px solid rgba(140,145,143,.18);
  border-radius: 16px;
  padding: .85rem;
  background: #fff;
}
.media-row:hover { transform: none; box-shadow: none; }
.conditional-box { display:none; }
.conditional-box.is-visible { display:block; }
.portal-hero {
  min-height: 100vh;
  position: relative;
  display: flex;
  align-items: center;
  color: #fff;
  overflow: hidden;
  margin-top: -84px;
  padding-top: 84px;
}
.portal-hero-slide {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: 0;
  z-index: 0;
  transition: opacity 1.6s ease-in-out;
  filter: saturate(.82) contrast(.96);
}
.portal-hero-slide.active {
  opacity: 1;
  z-index: 2;
}
.portal-hero-slide.is-previous {
  opacity: 1;
  z-index: 1;
}
.portal-hero:after{content:"";position:absolute;inset:0;z-index:3;background:linear-gradient(90deg, rgba(0,0,0,.86) 0%, rgba(0,0,0,.72) 42%, rgba(0,0,0,.48) 100%);pointer-events:none;}
.portal-hero .container{position:relative;z-index:4}.portal-hero .lead{font-size:1.25rem;color:#fff;max-width:760px}.portal-profile-photo{width:108px;height:108px;border-radius:50%;object-fit:cover;border:4px solid rgba(255,255,255,.88);box-shadow:0 15px 36px rgba(0,0,0,.28);background:var(--ivory)}
.portal-media-card,
.portal-folder-card,
.portal-gallery-item {
  border-radius: 18px;
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(140,145,143,.18);
  transition: transform .3s ease, box-shadow .3s ease;
}
.portal-media-card:hover,
.portal-folder-card:hover,
.portal-gallery-item:hover {
  transform: translateY(-8px);
  box-shadow: 0 15px 35px rgba(0,0,0,.12);
}
.portal-media-card img,
.portal-folder-card img,
.portal-gallery-item img,
.portal-gallery-item video {
  width: 100%;
  height: 230px;
  object-fit: cover;
  transition: transform .5s ease;
}
.portal-media-card:hover img,
.portal-folder-card:hover img,
.portal-gallery-item:hover img,
.portal-gallery-item:hover video { transform: scale(1.1); }
.portal-preview-ribbon{position:fixed;left:0;right:0;bottom:0;z-index:9999;background:var(--secondary);color:#fff;padding:.75rem 1rem;text-align:center;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.sortable-feature{cursor:grab}.sortable-feature.is-dragging{opacity:.55}.package-preview-card .package-card{height:auto}.feature-pill{border:1px solid rgba(140,145,143,.18);border-radius:50px;padding:.55rem .8rem;background:#fff;display:inline-flex;gap:.45rem;align-items:center;margin:.25rem}.feature-pill:hover{background:var(--ivory)}
.sbv-lightbox-media{max-height:72vh;max-width:100%;object-fit:contain;border-radius:12px}.sbv-lightbox-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3;border:0;border-radius:50%;width:48px;height:48px;background:rgba(0,0,0,.52);color:#fff;font-size:1.35rem;display:inline-grid;place-items:center;box-shadow:0 16px 34px rgba(0,0,0,.2)}.sbv-lightbox-arrow:hover,.sbv-lightbox-arrow:focus{background:rgba(0,0,0,.72);color:#fff}.sbv-lightbox-prev{left:1rem}.sbv-lightbox-next{right:1rem}.sbv-lightbox-count{color:#fff;opacity:.85}.modal-content.sbv-lightbox-content{background:rgba(31,35,37,.98);color:#fff;border:1px solid rgba(182,160,122,.4)}
@media(max-width:991.98px){.portal-body{padding-top:76px}.portal-page-hero{margin-top:-76px;padding-top:76px;min-height:46vh}.portal-hero{margin-top:-76px;padding-top:76px;min-height:82vh}.portal-navbar .brand-icon{height:42px}.portal-tabs{border-radius:22px}.portal-tabs .nav-link{width:100%;}.portal-shell{padding-top:3rem}.portal-profile-photo{width:78px;height:78px}.portal-media-card img,.portal-folder-card img,.portal-gallery-item img,.portal-gallery-item video{height:190px}}

/* v5.1.3 package ordering/editor cleanup */
.package-order-row {
    display: flex;
    align-items: center;
    gap: .75rem;
    border: 1px solid rgba(199,165,107,.35);
    border-radius: 999px;
    background: #fff;
    padding: .35rem .55rem;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease, background .2s ease;
}
.package-order-row:hover,
.package-order-row.is-active {
    border-color: #c7a56b;
    box-shadow: 0 12px 30px rgba(45,32,20,.08);
    background: #fbf6ed;
}
.package-order-row.is-dragging,
.feature-row.is-dragging {
    opacity: .65;
    transform: scale(.99);
}
.package-order-handle {
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #9b7a46;
    background: #f6f4f1;
    cursor: grab;
    flex: 0 0 auto;
}
.package-order-link {
    color: #2f271f;
    text-decoration: none;
    font-family: inherit;
    font-weight: 600;
    flex: 1;
    padding: .35rem .25rem;
}
.package-order-link:hover { color: #9b7a46; }

/* v5.1.4 package lifecycle/status controls */
.package-status-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    padding: .22rem .65rem;
    font-size: .7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    white-space: nowrap;
}
.package-status-active {
    background: rgba(39, 125, 75, .12);
    color: #277d4b;
    border: 1px solid rgba(39, 125, 75, .28);
}
.package-status-hidden {
    background: rgba(199, 165, 107, .16);
    color: #8b6b37;
    border: 1px solid rgba(199, 165, 107, .38);
}
.package-status-archived {
    background: rgba(135, 135, 135, .14);
    color: #666;
    border: 1px solid rgba(135, 135, 135, .28);
}
.package-row-status-hidden,
.package-row-status-archived {
    opacity: .82;
}
.package-row-status-archived .package-order-link {
    color: #777;
}
.package-lifecycle-panel {
    border: 1px solid rgba(199,165,107,.28);
    background: #fbf6ed;
    border-radius: 18px;
    padding: 1rem;
}
.portal-body .btn-outline-danger {
    border-color: #a75f4a;
    color: #8c4a38;
    background: transparent;
}
.portal-body .btn-outline-danger:hover,
.portal-body .btn-outline-danger:focus {
    background: #8c4a38;
    border-color: #8c4a38;
    color: #fff;
}
.portal-back-to-top {
  position: fixed;
  right: 30px;
  bottom: 30px;
  width: 50px;
  height: 50px;
  border: 0;
  border-radius: 50%;
  background: var(--secondary);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px);
  transition: opacity .3s ease, visibility .3s ease, transform .3s ease, background-color .2s ease;
  z-index: 950;
  box-shadow: 0 10px 26px rgba(0,0,0,.16);
}
.portal-back-to-top.show {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.portal-back-to-top:hover,
.portal-back-to-top:focus {
  background: #8F7B59;
  transform: translateY(-5px);
  outline: none;
}
#packageEditorForm,
#aerialEditorForm,
#packageOrderForm,
#aerialOrderForm {
  scroll-margin-top: 112px;
}

/* v5.2-preflight admin/client button and media controls polish */
.portal-body .btn,
.portal-body .nav-pills .nav-link,
.portal-body .portal-tabs .nav-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1.2;
  min-height: 44px;
  padding: .72rem 1.25rem;
  white-space: nowrap;
  text-align: center;
}
.portal-body .btn-sm {
  min-height: 38px;
  padding: .52rem .9rem;
  font-size: .78rem;
  letter-spacing: 1.4px;
}
.portal-body .btn-danger-soft {
  border-color: rgba(164, 68, 68, .55) !important;
  color: #8f2f2f !important;
  background: #fff !important;
}
.portal-body .btn-danger-soft:hover {
  background: #8f2f2f !important;
  border-color: #8f2f2f !important;
  color: #fff !important;
}
.media-record-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: center;
}
.media-record-main {
  min-width: 0;
}
.media-record-main .portal-muted {
  overflow-wrap: anywhere;
}
.media-record-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: .5rem;
}
.media-replace-form {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: .5rem;
  margin: 0;
}
.media-replace-form .form-control-sm {
  max-width: 220px;
  min-height: 38px;
}
@media(max-width: 991.98px) {
  .media-record-row {
    grid-template-columns: 1fr;
  }
  .media-record-actions,
  .media-replace-form {
    justify-content: flex-start;
    width: 100%;
  }
  .media-record-actions .btn,
  .media-record-actions form,
  .media-replace-form .form-control-sm {
    width: 100%;
    max-width: none;
  }
}

/* v5.2 CRM workspace */
.crm-workspace-nav {
  top: 92px;
  z-index: 10;
}
.crm-tabs {
  max-width: 100%;
  overflow-x: auto;
  justify-content: flex-start;
}
.crm-tabs .nav-link {
  white-space: nowrap;
}
.crm-section {
  scroll-margin-top: 115px;
}
.crm-list {
  display: grid;
  gap: .85rem;
}
.crm-list-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.crm-list-row.crm-done {
  background: rgba(182,160,122,.12);
}
.crm-list-row.crm-done strong {
  text-decoration: line-through;
  opacity: .75;
}
.btn-danger-soft {
  border-color: rgba(160,68,68,.35) !important;
  color: #8f3535 !important;
}
.btn-danger-soft:hover {
  background: #8f3535 !important;
  border-color: #8f3535 !important;
  color: #fff !important;
}
@media(max-width:991.98px){
  .crm-workspace-nav { position: relative !important; top: auto; }
  .crm-list-row { align-items: flex-start; flex-direction: column; }
}

/* v5.2.2 CRM section navigation refinement */
.crm-mobile-nav-label,
.crm-mobile-jump {
  display: none;
}
.crm-workspace-nav {
  border-left: 4px solid var(--sbv-gold, #B6A06F);
}
@media (min-width: 768px) {
  .crm-workspace-nav {
    position: sticky;
    top: 96px;
    float: left;
    width: 220px;
    max-height: calc(100vh - 120px);
    overflow-y: auto;
    margin: 0 1.5rem 1.5rem 0;
    z-index: 20;
  }
  .crm-tabs {
    display: flex;
    flex-direction: column;
    gap: .35rem;
    overflow: visible;
  }
  .crm-tabs .nav-link {
    width: 100%;
    border-radius: 999px;
    padding: .52rem .85rem;
    color: var(--sbv-dark, #2B2723);
    background: rgba(246, 244, 241, .92);
    border: 1px solid rgba(182, 160, 122, .25);
    font-size: .92rem;
    line-height: 1.2;
  }
  .crm-tabs .nav-link:hover,
  .crm-tabs .nav-link:focus {
    color: #fff;
    background: var(--sbv-gold, #B6A06F);
    border-color: var(--sbv-gold, #B6A06F);
  }
  .crm-section {
    overflow: hidden;
  }
}
@media (max-width: 767.98px) {
  .crm-workspace-nav {
    position: sticky;
    top: 76px;
    z-index: 25;
    padding: 1rem !important;
  }
  .crm-tabs {
    display: none;
  }
  .crm-mobile-nav-label,
  .crm-mobile-jump {
    display: block;
  }
  .crm-mobile-nav-label {
    font-size: .82rem;
    margin-bottom: .45rem;
  }
}

/* v5.2.3 CRM dashboard redesign */
.crm-editor-layout {
  display: grid;
  grid-template-columns: minmax(190px, 230px) minmax(0, 1fr);
  gap: 2rem;
  align-items: start;
}
.crm-editor-main {
  min-width: 0;
}
.crm-workspace-nav {
  position: sticky !important;
  top: 112px !important;
  z-index: 30;
  width: auto !important;
  max-height: calc(100vh - 136px);
  overflow-y: auto;
  float: none !important;
  margin: 0 !important;
  border-left: 0 !important;
}
.crm-nav-card {
  background: rgba(255,255,255,.9);
  border: 1px solid rgba(182,160,122,.22);
  border-radius: 18px;
  box-shadow: 0 18px 45px rgba(43,39,35,.08);
  padding: .95rem;
}
.crm-nav-heading {
  font-family: var(--sbv-heading-font, 'Cormorant Garamond', serif);
  color: var(--sbv-dark, #2B2723);
  font-size: 1.25rem;
  font-weight: 600;
  letter-spacing: .04em;
  margin: .1rem .35rem .75rem;
}
.crm-tabs {
  display: grid !important;
  gap: .25rem;
  overflow: visible !important;
}
.crm-nav-link,
.crm-tabs .crm-nav-link,
.crm-tabs .nav-link {
  display: flex;
  align-items: center;
  min-height: 38px;
  padding: .55rem .75rem;
  border-radius: 12px;
  color: var(--sbv-dark, #2B2723) !important;
  background: transparent !important;
  border: 1px solid transparent !important;
  font-family: var(--sbv-body-font, 'Lato', sans-serif);
  font-size: .82rem;
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  text-decoration: none;
  white-space: normal !important;
}
.crm-nav-link:hover,
.crm-nav-link:focus,
.crm-nav-link.is-active {
  color: var(--sbv-dark, #2B2723) !important;
  background: rgba(182,160,122,.14) !important;
  border-color: rgba(182,160,122,.38) !important;
  transform: translateX(2px);
}
.crm-nav-link.is-active {
  box-shadow: inset 3px 0 0 var(--sbv-gold, #B6A06F);
}
.crm-section {
  scroll-margin-top: 126px;
}
.crm-editor-main .portal-stat-card,
.crm-editor-main .portal-card {
  border-radius: 18px;
}
.crm-editor-main .portal-stat-card .stat-number {
  font-size: clamp(1.65rem, 2.4vw, 2.25rem);
  line-height: 1;
}
.crm-editor-main .portal-card {
  box-shadow: 0 16px 44px rgba(43,39,35,.07);
}
.crm-editor-main section.portal-card,
.crm-editor-main .card.portal-card {
  margin-bottom: 1.4rem !important;
}
.crm-list-row {
  border-radius: 14px;
}
@media (min-width: 1200px) {
  .crm-editor-layout {
    grid-template-columns: 220px minmax(0, 1fr);
    gap: 2.25rem;
  }
}
@media (min-width: 768px) and (max-width: 991.98px) {
  .crm-editor-layout {
    grid-template-columns: 190px minmax(0, 1fr);
    gap: 1.3rem;
  }
  .crm-workspace-nav {
    top: 98px !important;
  }
  .crm-nav-card {
    padding: .75rem;
  }
  .crm-nav-link {
    font-size: .76rem;
    letter-spacing: .055em;
    padding: .5rem .62rem;
  }
}
@media (max-width: 767.98px) {
  .crm-editor-layout {
    display: block;
  }
  .crm-workspace-nav {
    position: sticky !important;
    top: 74px !important;
    max-height: none;
    overflow: visible;
    margin-bottom: 1rem !important;
  }
  .crm-nav-card {
    padding: .85rem;
    border-radius: 14px;
  }
  .crm-nav-heading,
  .crm-tabs {
    display: none !important;
  }
  .crm-mobile-nav-label,
  .crm-mobile-jump {
    display: block !important;
  }
  .crm-mobile-nav-label {
    margin-bottom: .45rem;
    font-size: .78rem;
    letter-spacing: .08em;
    text-transform: uppercase;
  }
  .crm-section {
    scroll-margin-top: 150px;
  }
}

/* v5.2.4 CRM fixed desktop navigation */
@media (min-width: 768px) {
  .crm-editor-layout {
    display: block !important;
    position: relative;
  }
  .crm-workspace-nav {
    position: fixed !important;
    top: 112px !important;
    bottom: 1rem;
    left: max(1rem, calc((100vw - 1320px) / 2 + 12px));
    width: 220px !important;
    max-height: none !important;
    overflow-y: auto !important;
    z-index: 90;
  }
  .crm-editor-main {
    margin-left: 252px;
  }
  .crm-nav-card {
    max-height: calc(100vh - 128px);
    overflow-y: auto;
  }
}

@media (min-width: 768px) and (max-width: 991.98px) {
  .crm-workspace-nav {
    top: 94px !important;
    left: 1rem;
    width: 188px !important;
  }
  .crm-editor-main {
    margin-left: 210px;
  }
  .crm-nav-card {
    max-height: calc(100vh - 110px);
  }
}

@media (max-width: 767.98px) {
  .crm-editor-main {
    margin-left: 0 !important;
  }
}

/* v5.2.5 CRM sidebar alignment polish
   The CRM menu now starts aligned with the overview cards, then stays visible while scrolling. */
@media (min-width: 768px) {
  .crm-editor-layout {
    display: grid !important;
    grid-template-columns: 220px minmax(0, 1fr) !important;
    gap: 2.25rem !important;
    align-items: start !important;
    position: relative !important;
  }

  .crm-workspace-nav {
    position: sticky !important;
    top: 118px !important;
    left: auto !important;
    bottom: auto !important;
    width: auto !important;
    max-height: calc(100vh - 138px) !important;
    overflow-y: auto !important;
    z-index: 40 !important;
    align-self: start !important;
  }

  .crm-editor-main {
    margin-left: 0 !important;
    min-width: 0 !important;
  }

  .crm-nav-card {
    max-height: none !important;
    overflow: visible !important;
    padding: 1rem .95rem !important;
  }

  .crm-nav-heading {
    font-size: 1.12rem !important;
    margin-bottom: .65rem !important;
  }

  .crm-tabs {
    gap: .18rem !important;
  }

  .crm-nav-link,
  .crm-tabs .crm-nav-link,
  .crm-tabs .nav-link {
    min-height: 34px !important;
    padding: .46rem .65rem !important;
    border-radius: 10px !important;
    font-size: .76rem !important;
    letter-spacing: .07em !important;
  }

  .crm-section {
    scroll-margin-top: 132px !important;
  }
}

@media (min-width: 992px) and (max-width: 1199.98px) {
  .crm-editor-layout {
    grid-template-columns: 205px minmax(0, 1fr) !important;
    gap: 1.7rem !important;
  }
}

@media (min-width: 768px) and (max-width: 991.98px) {
  .crm-editor-layout {
    grid-template-columns: 185px minmax(0, 1fr) !important;
    gap: 1.2rem !important;
  }

  .crm-workspace-nav {
    top: 96px !important;
    max-height: calc(100vh - 116px) !important;
  }

  .crm-nav-card {
    padding: .8rem !important;
  }

  .crm-nav-link,
  .crm-tabs .crm-nav-link,
  .crm-tabs .nav-link {
    min-height: 32px !important;
    padding: .42rem .55rem !important;
    font-size: .7rem !important;
    letter-spacing: .055em !important;
  }
}

@media (max-width: 767.98px) {
  .crm-editor-layout {
    display: block !important;
  }

  .crm-workspace-nav {
    position: sticky !important;
    top: 74px !important;
    left: auto !important;
    width: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }

  .crm-editor-main {
    margin-left: 0 !important;
  }
}


/* v5.2.6 CRM fixed sidebar behaviour
   Starts in the normal aligned position, then locks below the top navigation while scrolling. */
@media (min-width: 768px) {
  .crm-workspace-nav {
    position: relative !important;
    top: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }

  .crm-workspace-nav .crm-nav-card {
    width: 100%;
  }

  .crm-workspace-nav.is-sbv-fixed .crm-nav-card {
    position: fixed !important;
    top: var(--crm-fixed-top, 92px) !important;
    left: var(--crm-fixed-left, auto) !important;
    width: var(--crm-fixed-width, 220px) !important;
    max-height: calc(100vh - 108px) !important;
    overflow-y: auto !important;
    z-index: 1050 !important;
  }

  .crm-workspace-nav.is-sbv-bottom .crm-nav-card {
    position: absolute !important;
    top: auto !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 100% !important;
  }
}

@media (min-width: 768px) and (max-width: 991.98px) {
  .crm-workspace-nav.is-sbv-fixed .crm-nav-card {
    top: var(--crm-fixed-top, 84px) !important;
    max-height: calc(100vh - var(--crm-fixed-top, 84px) - 16px) !important;
  }
}


/* v5.2.7 CRM sidebar spacing + active-section fix
   Keeps the fixed sidebar the same visual gap below the top menu as the section spacing,
   and ensures Wedding details/Locations/People/Media participate in active-link highlighting. */
@media (min-width: 768px) {
  .crm-workspace-nav.is-sbv-fixed .crm-nav-card {
    top: var(--crm-fixed-top, 104px) !important;
    max-height: calc(100vh - var(--crm-fixed-top, 104px) - 16px) !important;
  }

  .crm-section {
    scroll-margin-top: 136px !important;
  }
}

@media (min-width: 768px) and (max-width: 991.98px) {
  .crm-workspace-nav.is-sbv-fixed .crm-nav-card {
    top: var(--crm-fixed-top, 96px) !important;
    max-height: calc(100vh - var(--crm-fixed-top, 96px) - 16px) !important;
  }

  .crm-section {
    scroll-margin-top: 126px !important;
  }
}


/* v5.2.9 CRM active navigation refinement */
@media (min-width: 768px) {
  .crm-workspace-nav.is-sbv-fixed .crm-nav-card {
    top: var(--crm-fixed-top, 10px) !important;
  }
}

/* v5.2.10 CRM polish: portal controls, media buttons and reliable section nav */
.portal-credentials-form .form-control,
.portal-password-group .form-control {
  min-height: 52px;
}
.portal-password-group {
  position: relative;
  display: block;
  width: 100%;
}
.portal-password-group .btn-generate-password {
  position: absolute;
  top: 50%;
  right: .45rem;
  z-index: 5;
  min-height: 38px !important;
  padding: 0 .95rem !important;
  border-radius: 999px !important;
  transform: translateY(-50%) !important;
  box-shadow: none !important;
  white-space: nowrap;
  background: #fff;
  line-height: 1 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.portal-password-group .form-control {
  border-radius: 12px !important;
  width: 100% !important;
  padding-right: 9rem !important;
}
.btn-portal-send {
  min-width: 190px;
  width: auto;
  padding-left: 1.35rem !important;
  padding-right: 1.35rem !important;
}
.media-record-actions > .btn,
.media-record-actions > form > .btn,
.media-replace-form > .btn {
  min-width: 92px;
  min-height: 38px !important;
  padding: .52rem .9rem !important;
  line-height: 1.2 !important;
}
.media-record-actions .btn,
.media-record-actions button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.crm-section {
  scroll-margin-top: calc(var(--crm-fixed-top, 100px) + 16px) !important;
}
@media (max-width: 575.98px) {
  .portal-password-group {
    display: flex;
  }
  .portal-password-group .form-control {
    width: 100% !important;
    border-radius: 12px !important;
  }
  .btn-portal-send {
    min-width: 190px;
  }
}


/* v5.2.11 portal password generator: compact action button */
.portal-password-group {
  display: block;
  width: 100%;
}
.portal-password-group .form-control {
  border-radius: 12px !important;
  min-height: 52px;
}
.portal-password-generate {
  appearance: none;
  border: 1px solid var(--secondary);
  background: #fff;
  color: var(--primary);
  border-radius: 999px;
  min-height: 42px;
  padding: .55rem 1rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: .78rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .12em;
  text-transform: uppercase;
  white-space: nowrap;
  box-shadow: none;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.portal-password-generate:hover,
.portal-password-generate:focus {
  background: var(--secondary);
  border-color: var(--secondary);
  color: #fff;
  outline: none;
}
@media (max-width: 575.98px) {
  .portal-password-generate {
    width: 100%;
  }
}

/* v5.2.13 Task checklist polish */
.crm-task-row {
  align-items: flex-start;
  flex-wrap: wrap;
}
.crm-task-display {
  display: flex;
  align-items: flex-start;
  gap: .85rem;
  min-width: 0;
  flex: 1 1 360px;
}
.crm-task-icon {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 34px;
  font-size: .9rem;
  box-shadow: 0 8px 20px rgba(43,39,35,.08);
}
.crm-task-icon.is-done {
  background: rgba(55, 128, 87, .13);
  color: #2f7a52;
  border: 1px solid rgba(55, 128, 87, .24);
}
.crm-task-icon.is-pending {
  background: rgba(182,160,122,.18);
  color: #9c7f3e;
  border: 1px solid rgba(182,160,122,.34);
}
.crm-task-copy {
  min-width: 0;
}
.crm-task-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .5rem;
  flex-wrap: wrap;
}
.crm-task-edit-form {
  display: none;
  width: 100%;
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(182,160,122,.24);
}
.crm-task-edit-form.is-visible {
  display: block;
}
.crm-task-edit-form .form-label {
  font-size: .8rem;
  margin-bottom: .35rem;
}
.crm-list-row.crm-done .crm-task-copy strong {
  text-decoration: line-through;
  opacity: .75;
}
@media (max-width: 767.98px) {
  .crm-task-row {
    justify-content: flex-start;
    gap: .85rem;
    min-height: 0;
  }
  .crm-task-display,
  .crm-task-actions {
    width: 100%;
  }
  .crm-task-display {
    flex: 0 1 auto;
  }
  .crm-task-actions {
    justify-content: flex-start;
    margin-top: 0;
  }
}

/* v5.2.16 CRM inline edit polish */
.crm-inline-edit {
    display: none;
    margin: .75rem 0 1rem;
    padding: 1rem;
    border: 1px solid rgba(176, 141, 87, .22);
    border-radius: 16px;
    background: #fbfaf7;
}
.crm-inline-edit.is-visible {
    display: block;
}
.crm-list-row .d-flex.gap-2,
.media-row .d-flex.gap-2 {
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
}
.portal-credentials-form .input-group.portal-password-group { min-width: 100%; }
.portal-credentials-form #portalPassword { min-width: 0; }

/* v5.3 Media Manager */
.media-manager-tabs.portal-tabs {
  display: inline-flex;
  width: auto;
  max-width: 100%;
  background: rgba(246, 244, 241, .95);
  padding: .35rem;
  border: 1px solid rgba(182, 160, 122, .22);
}
.media-manager-tabs .nav-link {
  color: var(--sbv-dark, #31483c);
  border-radius: 999px;
  padding: .55rem 1.1rem;
  font-weight: 600;
}
.media-manager-tabs .nav-link.active {
  background: var(--sbv-gold, #b6a07a);
  color: #fff;
}
.media-folder-admin-card,
.admin-media-gallery-card {
  transition: transform .28s ease, box-shadow .28s ease;
  overflow: hidden;
}
.media-folder-admin-card:hover,
.admin-media-gallery-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 22px 48px rgba(49,72,60,.14);
}
.admin-media-gallery-card img,
.admin-media-gallery-card video {
  width: 100%;
  height: 230px;
  object-fit: cover;
  display: block;
  transition: transform .45s ease;
}
.admin-media-gallery-card:hover img,
.admin-media-gallery-card:hover video {
  transform: scale(1.055);
}
.media-admin-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  align-items: center;
}
.media-admin-actions .btn,
.media-admin-actions button {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}
.media-inline-replace {
  display: flex;
  gap: .4rem;
  align-items: center;
  flex-wrap: wrap;
}
.media-inline-replace .form-control-sm {
  width: min(100%, 190px);
  min-height: 34px;
}
@media (max-width: 767.98px) {
  .media-manager-tabs.portal-tabs { display: flex; width: 100%; }
  .media-manager-tabs .nav-item { flex: 1 1 100%; }
  .media-manager-tabs .nav-link { width: 100%; }
  .media-inline-replace,
  .media-admin-actions { width: 100%; }
  .media-inline-replace .form-control-sm,
  .media-admin-actions .btn,
  .media-admin-actions form { width: 100%; }
}

/* v5.3.2 CRM dashboard and Phase 2 polish */
.crm-control-centre {
  background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(246,244,241,.96));
  border: 1px solid rgba(182,160,122,.22);
}
.crm-dashboard-kicker {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  align-items: center;
}
.portal-chip-ref {
  background: #fff;
  border: 1px solid rgba(182,160,122,.38);
  color: var(--sbv-green, #31483c);
}
.crm-dashboard-countdown {
  min-width: 130px;
  text-align: center;
  padding: 1rem 1.2rem;
  border-radius: 22px;
  background: rgba(49,72,60,.06);
  border: 1px solid rgba(49,72,60,.09);
}
.crm-dashboard-countdown span {
  display: block;
  font-family: var(--sbv-heading-font, Georgia, serif);
  font-size: clamp(2rem, 3vw, 3.1rem);
  line-height: 1;
  color: var(--sbv-green, #31483c);
}
.crm-dashboard-countdown small {
  display: block;
  margin-top: .35rem;
  color: var(--sbv-muted, #6f746e);
  letter-spacing: .04em;
  text-transform: uppercase;
  font-size: .74rem;
}
.crm-dashboard-countdown.is-past { background: rgba(182,160,122,.12); }
.crm-dashboard-strip {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  align-items: center;
}
.crm-status-pill {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  min-height: 34px;
  padding: .42rem .75rem;
  border-radius: 999px;
  font-size: .86rem;
  font-weight: 600;
  border: 1px solid rgba(49,72,60,.12);
  background: #fff;
  color: var(--sbv-green, #31483c);
}
.crm-status-pill.is-good { background: rgba(73,122,91,.12); color: #2d6a42; border-color: rgba(73,122,91,.22); }
.crm-status-pill.is-warning { background: rgba(182,160,122,.16); color: #8a6e36; border-color: rgba(182,160,122,.28); }
.crm-status-pill.is-danger { background: rgba(143,71,62,.10); color: #8f473e; border-color: rgba(143,71,62,.22); }
.crm-status-pill.is-info { background: rgba(49,72,60,.08); color: var(--sbv-green, #31483c); }
#timeline .crm-list { position: relative; }
#timeline .crm-list-row {
  border-left: 3px solid rgba(182,160,122,.45);
  padding-left: 1rem;
}
#payments .crm-list-row strong::before {
  content: "£";
  display: inline-flex;
  width: 26px;
  height: 26px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: rgba(182,160,122,.16);
  color: var(--sbv-green, #31483c);
  margin-right: .45rem;
  font-size: .8rem;
}
#locations .crm-list-row strong::before {
  content: "\f3c5";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  color: var(--sbv-gold, #b6a07a);
  margin-right: .4rem;
}
#locations .crm-location-row {
  position: relative;
  align-items: flex-start;
  padding-right: 4.85rem;
}
#locations .crm-location-copy {
  min-width: 0;
  width: 100%;
}
#locations .crm-location-time {
  color: #8a6e36;
  font-weight: 800;
  letter-spacing: .04em;
  margin-bottom: .15rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .45rem;
}
#locations .crm-location-address {
  margin-top: .2rem;
  line-height: 1.45;
}
#locations .crm-location-card-actions.sbv-compact-actions {
  position: absolute;
  top: 1rem;
  right: 1rem;
  z-index: 20;
  margin-left: 0;
}
#locations .crm-location-card-actions .sbv-action-menu-panel {
  top: calc(100% + 10px);
  right: 0;
  left: auto;
}
#people .crm-list-row strong::before {
  content: "\f007";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  color: var(--sbv-gold, #b6a07a);
  margin-right: .4rem;
}
#people .crm-person-row {
  position: relative;
  align-items: flex-start;
  padding-right: 4.85rem;
}
#people .crm-person-copy {
  min-width: 0;
  width: 100%;
}
#people .crm-person-group {
  margin-top: .25rem;
  line-height: 1.45;
}
#people .crm-person-context {
  margin-top: .1rem;
  line-height: 1.45;
  color: rgba(35,37,38,.72)!important;
}
#people .crm-person-card-actions.sbv-compact-actions {
  position: absolute;
  top: 1rem;
  right: 1rem;
  z-index: 20;
  margin-left: 0;
}
#people .crm-person-card-actions .sbv-action-menu-panel {
  top: calc(100% + 10px);
  right: 0;
  left: auto;
}
#locations .crm-location-row.is-action-menu-open,
#people .crm-person-row.is-action-menu-open {
  z-index: 80;
}
#locations .crm-location-row.is-action-menu-open .crm-location-card-actions,
#people .crm-person-row.is-action-menu-open .crm-person-card-actions {
  z-index: 90;
}
.crm-linked-pill {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: .2rem .65rem;
  border: 1px solid rgba(73,122,91,.22);
  border-radius: 999px;
  color: #2d6a42;
  background: rgba(73,122,91,.1);
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.crm-sync-toggle {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  margin: .15rem 0 0;
  color: rgba(35,37,38,.8);
  font-weight: 800;
}
.crm-sync-toggle .form-check-input {
  margin: 0;
}
@media (max-width: 767.98px) {
  #locations .crm-location-card-actions .sbv-action-menu[open] .sbv-action-menu-panel,
  #people .crm-person-card-actions .sbv-action-menu[open] .sbv-action-menu-panel {
    position: absolute;
    left: auto;
    right: 0;
    top: calc(100% + 10px);
    bottom: auto;
    z-index: 1200;
    width: 178px;
    min-width: 178px;
    max-height: none;
    overflow: visible;
  }
}
@media (max-width: 575.98px) {
  .crm-dashboard-countdown { width: 100%; }
  .crm-dashboard-strip { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;width:100%; }
  .crm-status-pill { justify-content: center; }
}

/* v5.3.3 CRM dashboard readability */
.crm-dashboard-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .9rem;
}
.crm-dashboard-summary-card {
  background: rgba(246, 244, 241, .88);
  border: 1px solid rgba(182, 160, 122, .28);
  border-radius: 18px;
  padding: 1rem 1.05rem;
  min-height: 92px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  box-shadow: 0 10px 28px rgba(43,39,35,.05);
}
.crm-dashboard-summary-card span {
  display: block;
  color: #6f7472;
  font-size: .74rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-bottom: .35rem;
}
.crm-dashboard-summary-card strong {
  color: #2f3a34;
  font-size: 1.05rem;
  line-height: 1.25;
  font-weight: 700;
}
.crm-dashboard-summary-card strong.is-good,
.crm-dashboard-summary-card strong.booked,
.crm-dashboard-summary-card strong.delivered,
.crm-dashboard-summary-card strong.filming-complete { color: #2f6f47; }
.crm-dashboard-summary-card strong.is-warning,
.crm-dashboard-summary-card strong.planning,
.crm-dashboard-summary-card strong.editing { color: #9a742d; }
.crm-dashboard-summary-card strong.is-info { color: #31483c; }
.crm-dashboard-summary-card strong.is-danger { color: #9f2f2f; }
.crm-workflow-breakdown {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .75rem;
}
.crm-workflow-step {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .85rem .95rem;
  border-radius: 16px;
  text-decoration: none;
  border: 1px solid rgba(182, 160, 122, .24);
  background: #fff;
  color: #2f3a34;
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.crm-workflow-step:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(43,39,35,.08);
  border-color: rgba(182,160,122,.48);
  color: #2f3a34;
}
.crm-workflow-step i {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 28px;
  font-size: .8rem;
}
.crm-workflow-step.is-done i {
  background: rgba(47,111,71,.12);
  color: #2f6f47;
}
.crm-workflow-step.is-pending i {
  background: rgba(182,160,122,.18);
  color: #b08d57;
}
.crm-workflow-step.is-active {
  border-color: rgba(182,160,122,.7);
  background: #fffaf0;
}
.crm-workflow-step.is-active i {
  background: rgba(182,160,122,.22);
  color: #9a742d;
}
.crm-workflow-step span { display: flex; flex-direction: column; min-width: 0; }
.crm-workflow-step strong { font-size: .92rem; line-height: 1.2; }
.crm-workflow-step small { color: #6f7472; font-size: .78rem; margin-top: .15rem; }

/* v5.6.12 CRM polish */
.crm-location-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin-top: .65rem;
}
.crm-payment-row.is-overdue {
  border-color: rgba(159,47,47,.35);
  background: linear-gradient(90deg, rgba(159,47,47,.08), #fff 42%);
}
.crm-payment-row.is-overdue strong,
.crm-chip-danger {
  color: #9f2f2f !important;
}
.crm-reference {
  color: #31483c;
  font-weight: 700;
}

/* v5.6.13 timeline scheduling */
#timeline .input-group {
  align-items: stretch;
}
#timeline .input-group .form-control,
#timeline .input-group .input-group-text {
  min-height: 54px;
  height: 54px;
}
#timeline .input-group .input-group-text {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 .85rem;
  border-color: #dee2e6;
  background: #f8f9fa;
  font-size: .92rem;
  line-height: 1;
}
.crm-timeline-board {
  display: grid;
  gap: .85rem;
}
.crm-timeline-item {
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: start;
  padding: 1rem;
  border: 1px solid rgba(182,160,122,.22);
  border-left: 5px solid #b6a07a;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 10px 24px rgba(43,39,35,.05);
}
.crm-timeline-item.is-dragging {
  opacity: .62;
  box-shadow: 0 16px 34px rgba(43,39,35,.14);
}
.crm-timeline-item.is-prep { border-left-color: #b6a07a; }
.crm-timeline-item.is-ceremony { border-left-color: #6f7f63; }
.crm-timeline-item.is-photos { border-left-color: #9a6b50; }
.crm-timeline-item.is-reception { border-left-color: #4e695d; }
.crm-timeline-item.is-speeches { border-left-color: #8d6f43; }
.crm-timeline-item.is-party { border-left-color: #725f80; }
.crm-timeline-item.is-travel { border-left-color: #66798d; }
.crm-timeline-item.is-other { border-left-color: #8c918f; }
.crm-timeline-time strong {
  display: block;
  color: #25302b;
  font-family: var(--sbv-heading-font, Georgia, serif);
  font-size: 1.15rem;
}
.crm-timeline-time span {
  display: inline-flex;
  margin-top: .3rem;
  color: #6f7472;
  font-size: .78rem;
}
.crm-timeline-copy {
  min-width: 0;
}
.crm-timeline-chip {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: .15rem .55rem;
  border: 1px solid rgba(182,160,122,.34);
  border-radius: 999px;
  color: #6d5730;
  font-size: .72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.crm-timeline-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .4rem;
}
.crm-drag-handle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  color: #8c918f;
  cursor: grab;
}
.crm-drag-handle:active {
  cursor: grabbing;
}
@media (max-width: 991.98px) {
  .crm-dashboard-summary-grid,
  .crm-workflow-breakdown { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575.98px) {
  .crm-dashboard-summary-grid,
  .crm-workflow-breakdown { grid-template-columns: 1fr; }
  .crm-timeline-item {
    grid-template-columns: 1fr;
  }
  .crm-timeline-actions {
    justify-content: flex-start;
  }
}


/* v5.3.4 media manager hierarchy */
.media-parent-folder-card { min-height: 100%; }
.media-parent-folder-card.is-empty,
.portal-folder-card.is-empty { opacity: .72; }
.media-empty-note {
  display: inline-flex;
  align-items: center;
  border: 1px dashed rgba(179,157,111,.65);
  border-radius: 999px;
  padding: .45rem .85rem;
  font-size: .78rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #76674f;
  background: rgba(246,244,241,.75);
  font-weight: 700;
}
.media-subfolder-list {
  display: grid;
  gap: .85rem;
  margin-top: .5rem;
}
.media-subfolder-row {
  border: 1px solid rgba(179,157,111,.24);
  border-radius: 18px;
  padding: 1.15rem;
  background: rgba(255,255,255,.78);
  position: relative;
  min-height: 142px;
  overflow: visible;
}
.media-subfolder-row.is-clickable {
  background: #fff;
  border-color: rgba(188,163,117,.5);
  box-shadow: 0 12px 30px rgba(34,37,38,.06);
  transition: transform .24s ease, box-shadow .24s ease, border-color .24s ease, background .24s ease;
  cursor: pointer;
}
.media-subfolder-row.is-clickable:hover {
  transform: translateY(-3px);
  border-color: rgba(188,163,117,.86);
  box-shadow: 0 18px 38px rgba(49,72,60,.13);
  background: #fff;
}
.media-subfolder-row.is-empty {
  background: rgba(239,236,229,.58);
  border-color: rgba(179,157,111,.14);
  color: rgba(35,37,38,.48);
  opacity: .72;
}
.media-folder-detail-link {
  display: block;
  min-height: 100%;
  padding-right: 0;
  color: inherit;
  text-decoration: none;
}
.media-folder-detail-copy {
  max-width: 100%;
}
.media-folder-detail-copy strong {
  display: block;
  min-height: 2.35rem;
  padding-right: 3.75rem;
  color: #141617;
  font-size: 1.08rem;
  font-weight: 900;
  line-height: 1.35;
  margin-bottom: .55rem;
}
.media-subfolder-row.is-clickable .media-folder-detail-copy .portal-muted {
  color: rgba(35,37,38,.78)!important;
  font-weight: 600;
}
.media-subfolder-row.is-clickable .media-folder-detail-copy p:nth-of-type(1) {
  font-weight: 700;
}
.media-folder-detail-copy .portal-muted {
  line-height: 1.6;
}
.media-subfolder-row.is-empty .media-folder-detail-copy strong,
.media-subfolder-row.is-empty .media-folder-detail-copy .portal-muted {
  color: rgba(35,37,38,.52)!important;
  font-weight: 600;
}
.media-subfolder-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  justify-content: flex-end;
  position: absolute;
  top: .9rem;
  right: .9rem;
  z-index: 12;
}
@media(max-width:575.98px){
  .media-subfolder-row { min-height: 132px; }
  .media-folder-detail-copy strong { padding-right: 3.5rem; }
  .media-subfolder-actions { justify-content: flex-end; }
}
.media-folder-admin-card.media-parent-folder-card {
  overflow: visible;
}


/* v5.3.5 compact CRM action menus */
.sbv-compact-actions{display:flex;align-items:center;justify-content:flex-end;gap:.55rem;position:relative;flex-wrap:nowrap}
.sbv-action-menu{position:relative;display:inline-flex;align-items:center;justify-content:center}
.sbv-action-menu summary{list-style:none;width:38px;height:38px;border-radius:999px;border:1px solid rgba(188,163,117,.75);background:#fff;color:#232526;display:flex;align-items:center;justify-content:center;cursor:pointer;font-weight:900;letter-spacing:0;line-height:1;transition:all .2s ease;box-shadow:0 8px 20px rgba(0,0,0,.04)}
.sbv-action-menu summary::-webkit-details-marker{display:none}
.sbv-action-menu summary:hover,.sbv-action-menu[open] summary{background:#BCA375;color:#fff;border-color:#BCA375;transform:translateY(-1px)}
.sbv-action-menu summary span{display:block;width:18px;height:4px;font-size:0;line-height:0;background:radial-gradient(circle,#232526 2px,transparent 2.5px) left center/6px 4px repeat-x;transform:none;margin:0}
.sbv-action-menu summary:hover span,.sbv-action-menu[open] summary span{background:radial-gradient(circle,#fff 2px,transparent 2.5px) left center/6px 4px repeat-x}
.sbv-action-menu-panel{position:absolute;right:0;top:calc(100% + 8px);z-index:1040;min-width:178px;padding:.55rem;background:#fff;border:1px solid rgba(188,163,117,.45);border-radius:16px;box-shadow:0 20px 48px rgba(0,0,0,.16);display:grid;gap:.45rem}
.sbv-action-menu-panel.is-floating-action-menu{position:fixed!important;left:var(--sbv-action-menu-left, calc(100vw - 216px))!important;right:auto!important;top:var(--sbv-action-menu-top, 5rem)!important;bottom:auto!important;z-index:12050!important;box-sizing:border-box;width:min(198px, calc(100vw - 52px));max-height:calc(100vh - 2rem);overflow-y:auto}
.sbv-action-menu:not([open]) .sbv-action-menu-panel{display:none}
.sbv-action-menu-item{width:100%;margin:0!important}
.sbv-action-menu-item form,.sbv-action-menu-panel form{width:100%;margin:0!important}
.sbv-action-menu-panel .btn,.sbv-action-menu-panel button,.sbv-action-menu-panel a{width:100%;min-height:36px;display:inline-flex!important;align-items:center;justify-content:center;text-align:center;margin:0!important;white-space:nowrap}
.media-admin-actions .btn:not(.sbv-action-menu-panel .btn),.media-subfolder-actions .btn:not(.sbv-action-menu-panel .btn){min-width:76px}
@media(max-width:767.98px){
  .sbv-action-menu[open] .sbv-action-menu-panel{
    position:fixed;
    left:var(--sbv-action-menu-left, calc(100vw - 194px));
    right:auto;
    top:var(--sbv-action-menu-top, 5rem);
    bottom:auto;
    z-index:1040;
    min-width:0;
    width:min(178px, calc(100vw - 2rem));
    max-height:calc(100vh - 2rem);
    overflow-y:auto;
  }
}
.crm-list-row .sbv-compact-actions,.media-row .sbv-compact-actions{margin-left:auto}
#locations .portal-card,
#people .portal-card,
.crm-list,
.crm-list-row{overflow:visible}
.portal-gallery-item:has(.media-admin-actions),
.admin-media-gallery-card{position:relative;overflow:visible}
.portal-gallery-item:has(.media-admin-actions) > button:first-child,
.admin-media-gallery-card > button:first-child{display:block;overflow:hidden;border-radius:18px 18px 0 0}
.portal-gallery-item .media-admin-actions.sbv-compact-actions,
.admin-media-gallery-card .media-admin-actions.sbv-compact-actions{position:absolute;top:.75rem;right:.75rem;z-index:20;margin-left:0}
.portal-gallery-item .media-admin-actions.sbv-compact-actions > .js-gallery-open,
.admin-media-gallery-card .media-admin-actions.sbv-compact-actions > .js-gallery-open{box-shadow:0 10px 26px rgba(0,0,0,.16);background:rgba(255,255,255,.94)!important}
.portal-gallery-item .media-admin-actions .sbv-action-menu-panel,
.admin-media-gallery-card .media-admin-actions .sbv-action-menu-panel{top:calc(100% + 10px)}
.client-gallery-actions .sbv-action-menu-panel{min-width:248px}
.portal-folder-card-wrap{position:relative;height:100%;overflow:visible}
.portal-folder-card-wrap .portal-folder-card{height:100%}
.folder-card-actions.sbv-compact-actions{position:absolute;top:.85rem;right:.85rem;z-index:25;margin-left:0}
.folder-card-actions .sbv-action-menu-panel{top:calc(100% + 10px);right:0;left:auto}
.media-subfolder-actions.sbv-compact-actions{position:absolute;top:.9rem;right:.9rem;z-index:25;margin-left:0}
.media-subfolder-actions .sbv-action-menu-panel{top:calc(100% + 10px);right:0;left:auto}
@media(max-width:767.98px){
  .client-gallery-actions .sbv-action-menu[open] .sbv-action-menu-panel,
  .folder-card-actions .sbv-action-menu[open] .sbv-action-menu-panel,
  .media-subfolder-actions .sbv-action-menu[open] .sbv-action-menu-panel{
    position:fixed;
    left:var(--sbv-action-menu-left, calc(100vw - 194px));
    right:auto;
    top:var(--sbv-action-menu-top, 5rem);
    bottom:auto;
    z-index:1100;
    min-width:0;
    width:min(248px, calc(100vw - 2rem));
    max-height:calc(100vh - 2rem);
    overflow-y:auto;
  }
}
.sbv-admin-modal-form{border:1px solid rgba(188,163,117,.42);border-radius:22px;overflow:hidden;box-shadow:0 24px 80px rgba(0,0,0,.22)}
.sbv-admin-modal-form .modal-header{background:#232526;color:#F6F4F1;border-bottom:3px solid #BCA375}
.sbv-admin-modal-form .modal-title{font-family:Cinzel,Georgia,serif;letter-spacing:.06em;text-transform:uppercase}
.sbv-admin-modal-form .modal-header .portal-muted{color:#D8C6A8!important}
.sbv-admin-modal-form .modal-footer{background:#F6F4F1}

/* v5.3.5 branded modal support for pages loaded through portal styles too */
.sbv-modal-title{font-family:'Cinzel', Georgia, serif!important}
.sbv-modal-message,.sbv-modal-close,.sbv-modal-subtitle{font-family:'Lato', Arial, sans-serif!important}
.sbv-submit-overlay {
  position: fixed;
  inset: 0;
  z-index: 13000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 1.25rem;
  background: rgba(12, 14, 15, .62);
  backdrop-filter: blur(3px);
}
.sbv-submit-overlay.is-visible {
  display: flex;
}
.sbv-submit-overlay-panel {
  width: min(560px, 100%);
  padding: 2rem;
  border: 1px solid rgba(188, 163, 117, .68);
  border-radius: 24px;
  color: #fff;
  background: #232526;
  box-shadow: 0 28px 80px rgba(0,0,0,.32);
  text-align: center;
}
.sbv-submit-overlay-spinner {
  width: 48px;
  height: 48px;
  margin: 0 auto 1rem;
  border: 3px solid rgba(255,255,255,.2);
  border-top-color: #BCA375;
  border-radius: 50%;
  animation: sbv-submit-spin .8s linear infinite;
}
.sbv-submit-overlay-title {
  margin: 0;
  color: #fff;
  font-family: 'Cinzel', Georgia, serif;
  font-size: clamp(1.35rem, 4vw, 2rem);
  letter-spacing: .08em;
  text-transform: uppercase;
}
.sbv-submit-overlay-copy {
  margin: .75rem auto 0;
  max-width: 38rem;
  color: rgba(255,255,255,.78);
  font-family: 'Lato', Arial, sans-serif;
  line-height: 1.65;
}
@keyframes sbv-submit-spin {
  to { transform: rotate(360deg); }
}
.sbv-submit-upload-progress {
  margin: 1rem auto 0;
  display: grid;
  gap: .55rem;
}
.sbv-submit-upload-track {
  height: 9px;
  border-radius: 999px;
  background: rgba(255,255,255,.16);
  overflow: hidden;
}
.sbv-submit-upload-bar {
  height: 100%;
  width: 0;
  border-radius: inherit;
  background: #BCA375;
  transition: width .18s ease;
}
.sbv-submit-upload-label {
  color: #fff;
  font-size: .82rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.sbv-unsaved-actions{gap:.6rem;flex-wrap:wrap}
.sbv-unsaved-actions .sbv-unsaved-keep,
.sbv-unsaved-actions .sbv-unsaved-discard{background:transparent;color:#232526}
.sbv-unsaved-actions .sbv-unsaved-discard{border-color:rgba(165,66,58,.55);color:#9b3d37}
.sbv-unsaved-actions .sbv-unsaved-save{background:#BCA375;color:#fff}

/* v5.6.0 shared portal polish */
.portal-section-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.25rem;
}
.portal-toolbar-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: .65rem;
}
.portal-search {
  position: relative;
  min-width: min(100%, 320px);
}
.portal-search-label {
  display: block;
  margin: 0 0 .35rem .2rem;
  color: #76674f;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .06em;
  line-height: 1.2;
  text-transform: uppercase;
}
.portal-search .form-control {
  padding-left: 1.25rem;
  padding-right: 1.25rem;
  border-radius: 999px;
  min-height: 46px;
}
.portal-empty-state {
  border: 1px dashed rgba(182,160,122,.42);
  border-radius: 18px;
  background: rgba(246,244,241,.68);
  padding: 1.25rem;
  color: #64706a;
}
.portal-empty-state i {
  width: 2.35rem;
  height: 2.35rem;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-right: .75rem;
  background: rgba(182,160,122,.16);
  color: #9b7a46;
}
.portal-empty-state strong {
  display: block;
  color: var(--primary);
  margin-bottom: .15rem;
}
.portal-detail-list {
  list-style: none;
  padding-left: 0;
  margin: 0;
  display: grid;
  gap: .7rem;
}
.portal-detail-list li {
  padding: .8rem .9rem;
  border: 1px solid rgba(182,160,122,.18);
  border-radius: 14px;
  background: rgba(246,244,241,.55);
}
.portal-status-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: .32rem .7rem;
  border-radius: 999px;
  border: 1px solid rgba(182,160,122,.24);
  background: rgba(246,244,241,.75);
  color: #665d50;
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  white-space: nowrap;
}
.portal-status-badge.is-good {
  background: rgba(47,111,71,.12);
  border-color: rgba(47,111,71,.24);
  color: #2f6f47;
}
.portal-status-badge.is-warning {
  background: rgba(182,160,122,.16);
  border-color: rgba(182,160,122,.32);
  color: #8a6e36;
}
.portal-status-badge.is-muted {
  background: rgba(115,115,115,.10);
  border-color: rgba(115,115,115,.20);
  color: #666;
}
.portal-table-card .table {
  margin-bottom: 0;
}
.portal-table-card thead th {
  color: #76674f;
  font-size: .78rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  border-bottom-color: rgba(182,160,122,.24);
}
.portal-table-card tbody tr {
  vertical-align: middle;
}
.portal-table-card tbody td {
  border-color: rgba(182,160,122,.12);
}
.portal-button-spinner {
  display: inline-block;
  width: 1rem;
  height: 1rem;
  margin-right: .5rem;
  border: .15rem solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: sbv-spin .75s linear infinite;
}
.portal-form-is-busy {
  opacity: .88;
}
.backup-export-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}
.backup-export-card {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: 1.25rem;
  border: 1px solid rgba(182,160,122,.18);
  border-radius: 18px;
  background: rgba(255,255,255,.78);
}
.backup-export-card > i {
  width: 2.6rem;
  height: 2.6rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1rem;
  border-radius: 50%;
  background: rgba(182,160,122,.16);
  color: #9b7a46;
}
.backup-export-card h3 {
  margin-bottom: .45rem;
  color: var(--primary);
  font-size: 1.05rem;
}
.backup-export-card p {
  flex: 1;
  margin-bottom: 1rem;
  color: #64706a;
  font-size: .93rem;
  line-height: 1.55;
}
@media(max-width:991.98px){
  .backup-export-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media(max-width:575.98px){
  .backup-export-grid {
    grid-template-columns: 1fr;
  }
  .portal-toolbar-actions,
  .portal-search {
    width: 100%;
  }
  .portal-toolbar-actions .btn,
  .portal-search .form-control {
    width: 100%;
  }
}

/* v5.6.17 Stage 4 premium client experience */
.portal-countdown-strip {
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  padding: .8rem 1.15rem;
  border: 1px solid rgba(255,255,255,.52);
  border-radius: 999px;
  background: rgba(31,35,37,.42);
  color: #fff;
  backdrop-filter: blur(8px);
  box-shadow: 0 18px 42px rgba(0,0,0,.18);
}
.portal-countdown-strip strong {
  font-family: Cinzel, Georgia, serif;
  font-size: clamp(1.45rem, 3vw, 2.15rem);
  line-height: 1;
  letter-spacing: .04em;
}
.portal-countdown-strip span {
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: .78rem;
}
.portal-countdown-strip.is-past {
  background: rgba(182,160,122,.32);
}
.portal-countdown-strip.is-today {
  border-color: rgba(182,160,122,.92);
  background: rgba(182,160,122,.42);
}
.premium-folder-card {
  padding: 0 !important;
  border-radius: 18px;
  box-shadow: 0 18px 45px rgba(43,39,35,.08);
}
.premium-folder-preview {
  position: relative;
  min-height: 230px;
  overflow: hidden;
  border-radius: 18px 18px 0 0;
  background: linear-gradient(135deg, #232526, #39433d);
}
.premium-folder-preview::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.06), rgba(0,0,0,.34));
  pointer-events: none;
}
.premium-folder-preview img,
.premium-folder-preview video {
  width: 100%;
  height: 230px;
  object-fit: cover;
  display: block;
  transition: transform .5s ease;
}
.premium-folder-card:hover .premium-folder-preview img,
.premium-folder-card:hover .premium-folder-preview video {
  transform: scale(1.055);
}
.premium-folder-placeholder {
  min-height: 230px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 18px 18px 0 0;
  color: rgba(255,255,255,.82);
  font-size: 2.2rem;
}
.premium-folder-type {
  position: absolute;
  left: 1rem;
  bottom: 1rem;
  z-index: 2;
  color: #fff;
  background: rgba(31,35,37,.64);
  border: 1px solid rgba(255,255,255,.34);
}
.premium-folder-body {
  min-height: 190px;
}
.public-share-admin-panel {
  border: 1px solid rgba(182,160,122,.28);
  border-radius: 18px;
  background: rgba(255,255,255,.56);
  padding: 1.25rem;
}
.portal-check-row {
  display: flex;
  align-items: flex-start;
  gap: .75rem;
  margin: 0;
  padding: .9rem 1rem;
  border: 1px solid rgba(182,160,122,.25);
  border-radius: 14px;
  background: rgba(255,255,255,.72);
}
.portal-check-row .form-check-input {
  flex: 0 0 auto;
  margin: .2rem 0 0;
}
.portal-check-row span {
  display: grid;
  gap: .15rem;
}
.portal-check-row small {
  color: var(--text-muted);
}
.public-share-folder-options {
  display: grid;
  gap: .55rem;
  padding: .9rem 1rem;
  border: 1px solid rgba(182,160,122,.25);
  border-radius: 14px;
  background: rgba(255,255,255,.72);
}
.public-share-folder-options .form-check {
  margin: 0;
}
.public-share-admin-stats {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
}
.public-share-admin-stats span {
  min-width: 138px;
  padding: .9rem 1rem;
  border: 1px solid rgba(182,160,122,.24);
  border-radius: 14px;
  background: rgba(246,244,241,.76);
}
.public-share-admin-stats strong {
  display: block;
  color: var(--secondary);
  font-family: Cinzel, serif;
  font-size: 1.55rem;
  line-height: 1;
}
.public-share-admin-stats small {
  display: block;
  margin-top: .3rem;
  color: var(--text-muted);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.public-share-body {
  padding-top: 0;
}
.public-share-body .portal-page-hero {
  margin-top: 0;
  min-height: 48vh;
  padding-top: 84px;
}
.public-share-hero {
  margin-top: 0;
}
.public-share-hero .hero-slide {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
#gallery {
  scroll-margin-top: 96px;
}
[id^="share-group-"] {
  scroll-margin-top: 110px;
}
.public-share-intro {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}
.public-share-summary {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .75rem;
}
.public-share-summary span,
.public-share-summary a {
  display: block;
  min-width: 108px;
  padding: .95rem 1rem;
  border: 1px solid rgba(182,160,122,.25);
  border-radius: 14px;
  background: rgba(246,244,241,.74);
  text-align: center;
  color: inherit;
  text-decoration: none;
  transition: .2s ease;
}
.public-share-summary a {
  cursor: pointer;
  border-color: rgba(188,163,117,.52);
  box-shadow: 0 10px 24px rgba(31,37,36,.08);
}
.public-share-summary a:hover,
.public-share-summary a:focus {
  background: #fff;
  border-color: var(--secondary);
  transform: translateY(-1px);
}
.public-share-summary .is-inactive {
  opacity: .48;
  background: rgba(246,244,241,.44);
}
.public-share-summary strong {
  display: block;
  color: var(--secondary);
  font-family: Cinzel, serif;
  font-size: 1.45rem;
  line-height: 1;
}
.public-share-summary small {
  display: block;
  margin-top: .35rem;
  color: var(--text-muted);
  font-size: .74rem;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.public-share-status-strip {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
}
.public-share-status-strip span {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  min-height: 40px;
  padding: .5rem .85rem;
  border: 1px solid rgba(182,160,122,.25);
  border-radius: 999px;
  background: rgba(246,244,241,.72);
  color: var(--primary);
  font-size: .82rem;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.public-share-status-strip i {
  color: var(--secondary);
}
.public-share-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
}
.sbv-favourite-filter {
  display: inline-flex;
  align-items: center;
  gap: .25rem;
  padding: .25rem;
  border: 1px solid rgba(182,160,122,.28);
  border-radius: 999px;
  background: rgba(255,255,255,.78);
}
.sbv-favourite-filter button {
  min-height: 36px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--primary);
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .45rem .8rem;
  font-size: .74rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.sbv-favourite-filter button.is-active {
  background: var(--secondary);
  color: #fff;
}
.sbv-favourite-filter span {
  min-width: 1.35rem;
  min-height: 1.35rem;
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
  background: rgba(255,255,255,.28);
  font-size: .72rem;
}
.public-share-folder-card {
  color: inherit;
}
.public-share-folder-card:hover {
  color: inherit;
}
.public-share-media-section {
  scroll-margin-top: 96px;
}
.public-share-client-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
}
.public-share-gallery-item {
  overflow: hidden;
}
.portal-gallery-item {
  position: relative;
}
.sbv-favourite-card .portal-gallery-item {
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.sbv-favourite-card.is-favourite .portal-gallery-item {
  border-color: rgba(188,163,117,.72);
  box-shadow: 0 18px 42px rgba(188,163,117,.2);
}
.sbv-card-favourite {
  position: absolute;
  top: .75rem;
  left: .75rem;
  right: auto;
  z-index: 4;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(255,255,255,.62);
  border-radius: 50%;
  background: rgba(31,35,37,.58);
  color: #fff;
  display: inline-grid;
  place-items: center;
  box-shadow: 0 14px 32px rgba(0,0,0,.22);
  transition: transform .18s ease, background-color .18s ease, border-color .18s ease;
}
.sbv-card-favourite:hover,
.sbv-card-favourite:focus,
.sbv-card-favourite.is-active {
  background: var(--secondary);
  border-color: var(--secondary);
  color: #fff;
  transform: translateY(-1px);
}
.sbv-card-favourite i {
  margin: 0;
}
.public-share-gallery-item .btn {
  min-width: 116px;
}
.client-gallery-card {
  background: #fff;
  min-height: 100%;
}
.client-gallery-card .js-gallery-open {
  display: block;
  overflow: hidden;
  border-radius: 18px;
}
.client-gallery-card:has(.media-admin-actions) > button:first-child {
  border-radius: 18px;
}
.client-gallery-card::after {
  display: none;
}
.client-gallery-card:has(.client-gallery-title-overlay)::after {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 48%;
  z-index: 2;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(35,37,38,0) 0%, rgba(35,37,38,.74) 100%);
  opacity: .9;
}
.client-gallery-title-overlay {
  position: absolute;
  left: 1rem;
  bottom: 1rem;
  z-index: 3;
  max-width: calc(100% - 2rem);
  color: #fff;
}
.client-gallery-card:has(.client-gallery-download) .client-gallery-title-overlay {
  max-width: calc(100% - 10.5rem);
}
.client-gallery-title-overlay h2 {
  margin: 0;
  color: #fff;
  font-family: 'Lato', Arial, sans-serif;
  font-size: .92rem;
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: 0;
  text-shadow: 0 2px 16px rgba(0,0,0,.55);
}
.client-gallery-actions {
  position: absolute;
  right: .75rem;
  bottom: .75rem;
  z-index: 5;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .45rem;
  max-width: calc(100% - 1.5rem);
}
.client-gallery-actions .btn {
  box-shadow: 0 12px 28px rgba(0,0,0,.22);
}
.client-gallery-actions .sbv-action-menu-panel {
  min-width: 248px;
  max-height: min(72vh, 520px);
  overflow-y: auto;
  overscroll-behavior: contain;
}
.client-gallery-actions .sbv-action-menu-panel .btn,
.client-gallery-actions .sbv-action-menu-panel button {
  width: 100%;
}
.client-gallery-download {
  position: absolute;
  right: .75rem;
  bottom: .75rem;
  z-index: 5;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .45rem;
  max-width: calc(100% - 1.5rem);
}
.client-gallery-download .btn {
  box-shadow: 0 12px 28px rgba(0,0,0,.22);
}
.client-gallery-card .media-admin-actions.sbv-compact-actions {
  top: .75rem;
  right: .75rem;
  bottom: auto;
  max-width: none;
}
.public-share-empty {
  text-align: center;
}
.public-share-empty i {
  display: inline-grid;
  place-items: center;
  width: 58px;
  height: 58px;
  margin-bottom: 1rem;
  border: 1px solid rgba(182,160,122,.35);
  border-radius: 50%;
  background: rgba(182,160,122,.12);
  color: var(--secondary);
  font-size: 1.35rem;
}
.portal-site-footer {
  margin-top: 4rem;
}
.sbv-lightbox-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: .45rem;
}
@media(min-width: 768px) {
  #sbvGalleryModal .modal-header,
  #sbvShareGalleryModal .modal-header {
    position: relative;
    min-height: 78px;
    padding-right: 4.25rem;
  }
  #sbvGalleryModal .sbv-lightbox-toolbar,
  #sbvShareGalleryModal .sbv-lightbox-toolbar {
    position: absolute;
    left: 50%;
    top: 1.45rem;
    transform: translateX(-50%);
    margin-left: 0 !important;
    margin-right: 0 !important;
    justify-content: center;
    z-index: 2;
  }
  #sbvGalleryModal .modal-header .btn-close,
  #sbvShareGalleryModal .modal-header .btn-close {
    position: absolute;
    top: 1.55rem;
    right: 1rem;
    z-index: 3;
  }
}
.sbv-lightbox-tool {
  min-height: 38px;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 999px;
  background: rgba(255,255,255,.08);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  padding: .45rem .8rem;
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.sbv-lightbox-tool:hover,
.sbv-lightbox-tool:focus,
.sbv-lightbox-tool.is-active {
  background: var(--secondary);
  border-color: var(--secondary);
  color: #fff;
}
#sbvGalleryStage,
#sbvShareGalleryStage {
  min-height: min(72vh, 620px);
  display: flex;
  align-items: center;
  justify-content: center;
  touch-action: pan-y;
}
.sbv-lightbox-stage-shell:fullscreen {
  width: 100vw;
  height: 100vh;
  padding: 0 !important;
  border-radius: 0;
  background: #050505;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sbv-lightbox-stage-shell:fullscreen #sbvGalleryStage,
.sbv-lightbox-stage-shell:fullscreen #sbvShareGalleryStage {
  width: 100vw;
  height: 100vh;
  min-height: 100vh;
}
.sbv-lightbox-stage-shell:fullscreen .sbv-lightbox-media {
  width: 100vw;
  height: 100vh;
  max-width: 100vw;
  max-height: 100vh;
  border-radius: 0;
  object-fit: contain;
}
.sbv-lightbox-stage-shell:fullscreen .sbv-lightbox-prev {
  left: 1.25rem;
}
.sbv-lightbox-stage-shell:fullscreen .sbv-lightbox-next {
  right: 1.25rem;
}
@media(max-width: 767.98px) {
  .portal-countdown-strip {
    border-radius: 18px;
    align-items: flex-start;
    flex-direction: column;
    gap: .35rem;
  }
  #sbvGalleryModal .modal-dialog,
  #sbvShareGalleryModal .modal-dialog {
    width: 100vw;
    max-width: 100vw;
    height: 100dvh;
    margin: 0;
  }
  #sbvGalleryModal .sbv-lightbox-content,
  #sbvShareGalleryModal .sbv-lightbox-content {
    width: 100vw;
    min-height: 100dvh;
    border: 0;
    border-radius: 0;
    background: #050505;
  }
  #sbvGalleryModal .modal-header,
  #sbvShareGalleryModal .modal-header {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 8;
    min-height: 76px;
    padding: .95rem 4.25rem .75rem 1rem;
    align-items: flex-start;
    background: linear-gradient(180deg, rgba(0,0,0,.7), rgba(0,0,0,0));
  }
  #sbvGalleryModal .modal-title,
  #sbvShareGalleryModal .modal-title {
    max-width: calc(100vw - 5.5rem);
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    font-size: 1.05rem;
    line-height: 1.2;
  }
  #sbvGalleryModal .btn-close,
  #sbvShareGalleryModal .btn-close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    width: 42px;
    height: 42px;
    margin: 0;
    padding: 0;
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 50%;
    background: rgba(255,255,255,.08) !important;
    background-image: none !important;
    color: #fff;
    filter: none !important;
    opacity: 1;
    display: inline-grid;
    place-items: center;
  }
  #sbvGalleryModal .btn-close::before,
  #sbvShareGalleryModal .btn-close::before {
    content: "\00d7";
    color: #fff;
    font-family: Arial, sans-serif;
    font-size: 1.55rem;
    font-weight: 300;
    line-height: 1;
  }
  #sbvGalleryModal .btn-close:hover,
  #sbvGalleryModal .btn-close:focus,
  #sbvShareGalleryModal .btn-close:hover,
  #sbvShareGalleryModal .btn-close:focus {
    background: var(--secondary) !important;
    border-color: var(--secondary);
  }
  .sbv-lightbox-toolbar {
    position: fixed;
    left: 50%;
    bottom: calc(1rem + env(safe-area-inset-bottom));
    z-index: 9;
    width: auto;
    max-width: calc(100vw - 2rem);
    justify-content: center;
    gap: .65rem;
    margin: 0;
    padding: .45rem;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 999px;
    background: rgba(0,0,0,.48);
    backdrop-filter: blur(14px);
    transform: translateX(-50%);
  }
  .sbv-lightbox-tool {
    width: 44px;
    height: 44px;
    min-height: 44px;
    padding: 0;
    border-radius: 50%;
    background: rgba(255,255,255,.08);
    display: inline-grid;
    place-items: center;
    flex: 0 0 44px;
  }
  .sbv-lightbox-tool i {
    margin: 0;
    line-height: 1;
  }
  .sbv-lightbox-tool span { display: none; }
  #sbvGalleryModal .modal-body,
  #sbvShareGalleryModal .modal-body {
    min-height: 100dvh;
    padding: 0 !important;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  #sbvGalleryStage,
  #sbvShareGalleryStage {
    width: 100vw;
    min-height: 100dvh;
    padding: 0;
  }
  #sbvGalleryModal .sbv-lightbox-media,
  #sbvShareGalleryModal .sbv-lightbox-media {
    width: 100vw;
    height: 100dvh;
    max-width: 100vw;
    max-height: 100dvh;
    border-radius: 0;
    object-fit: contain;
  }
  .sbv-lightbox-arrow {
    width: 44px;
    height: 44px;
    font-size: 1.15rem;
    background: rgba(0,0,0,.52);
  }
  .sbv-lightbox-prev { left: .75rem; }
  .sbv-lightbox-next { right: .75rem; }
  #sbvGalleryModal .modal-footer,
  #sbvShareGalleryModal .modal-footer {
    position: fixed;
    left: 0;
    right: 0;
    bottom: calc(4.85rem + env(safe-area-inset-bottom));
    z-index: 8;
    padding: 0 1rem;
    pointer-events: none;
  }
  #sbvGalleryModal .modal-footer .btn,
  #sbvShareGalleryModal .modal-footer .btn {
    pointer-events: auto;
  }
  .premium-folder-preview,
  .premium-folder-preview img,
  .premium-folder-preview video,
  .premium-folder-placeholder {
    min-height: 200px;
    height: 200px;
  }
  .public-share-intro {
    align-items: flex-start;
    flex-direction: column;
  }
  .public-share-summary {
    justify-content: flex-start;
    width: 100%;
  }
  .public-share-summary span,
  .public-share-summary a {
    flex: 1 1 120px;
  }
  .public-share-client-card {
    align-items: flex-start;
    flex-direction: column;
  }
}

/* v5.6.21 client questionnaire */
.portal-questionnaire-card {
  background: linear-gradient(135deg, #fff, rgba(246,244,241,.92));
}
.client-attention-panel {
  background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(246,244,241,.9));
}
.client-attention-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1rem;
}
.client-attention-pill {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .25rem .8rem;
  align-items: center;
  padding: 1rem 1.1rem;
  border: 1px solid rgba(182,160,122,.34);
  border-radius: 18px;
  background: #fff;
  color: var(--primary);
  text-decoration: none;
  box-shadow: 0 14px 32px rgba(43,39,35,.06);
}
.client-attention-pill:hover,
.client-attention-pill:focus {
  transform: translateY(-1px);
  color: var(--primary);
}
.client-attention-pill span {
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.client-attention-pill strong {
  grid-row: span 2;
  display: grid;
  place-items: center;
  min-width: 44px;
  height: 44px;
  border-radius: 999px;
  font-size: 1rem;
  background: rgba(182,160,122,.16);
  color: #7a6337;
}
.client-attention-pill em {
  color: #6f7472;
  font-size: .86rem;
  font-style: normal;
}
.client-attention-pill.is-needs-attention {
  border-color: rgba(150,55,55,.28);
}
.client-attention-pill.is-needs-attention strong {
  background: rgba(150,55,55,.12);
  color: #963737;
}
.client-attention-pill.is-in-progress strong {
  background: rgba(184,131,49,.14);
  color: #8a6429;
}
.client-attention-pill.is-complete {
  border-color: rgba(73,133,96,.25);
}
.client-attention-pill.is-complete strong {
  background: rgba(73,133,96,.12);
  color: #2f6f47;
}
.client-workflow-topbar {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
}
.client-portal-jump-links {
  display: flex;
  flex-wrap: wrap;
  gap: .7rem;
  align-items: center;
}
.client-portal-jump-links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: .7rem 1rem;
  border: 1px solid rgba(182,160,122,.52);
  border-radius: 999px;
  color: var(--primary);
  background: rgba(255,255,255,.76);
  font-size: .75rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-decoration: none;
  text-transform: uppercase;
}
.client-portal-jump-links a:hover,
.client-portal-jump-links a:focus {
  background: #BCA375;
  color: #fff;
}
.client-document-row {
  display: grid;
  gap: 1rem;
  align-items: stretch;
}
.client-document-row.is-signed {
  border-color: rgba(73,133,96,.25);
  background: rgba(73,133,96,.05);
}
.client-document-compact-head {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: flex-start;
  width: 100%;
}
.client-document-compact-head .btn {
  flex: 0 0 min(42vw, 230px);
}
.client-document-review {
  border: 1px solid rgba(182,160,122,.24);
  border-radius: 16px;
  background: rgba(246,244,241,.62);
  overflow: hidden;
}
.client-document-review > summary {
  list-style: none;
  cursor: pointer;
  padding: .85rem 1rem;
  color: #76674f;
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.client-document-review > summary::-webkit-details-marker {
  display: none;
}
.client-document-review > summary::after {
  content: "+";
  float: right;
  color: #BCA375;
}
.client-document-review[open] > summary::after {
  content: "-";
}
.client-document-actions {
  display: grid;
  gap: .8rem;
  width: 100%;
  min-width: 0;
  padding: 0 .85rem .85rem;
}
.client-workflow-page .client-document-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}
.client-workflow-page .client-document-actions {
  width: min(100%, 480px);
  min-width: min(100%, 360px);
  padding: 0;
}
.client-signature-form {
  display: grid;
  gap: .65rem;
  width: 100%;
  padding: .85rem;
  border: 1px solid rgba(182,160,122,.22);
  border-radius: 16px;
  background: rgba(246,244,241,.7);
}
.client-signature-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .6rem;
  align-items: center;
}
.client-signature-grid .btn {
  white-space: nowrap;
}
.client-signature-confirm {
  color: #5d625e;
  font-size: .9rem;
  line-height: 1.45;
}
@media (max-width: 575.98px) {
  .client-portal-jump-links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .client-portal-jump-links a {
    width: 100%;
    padding-inline: .55rem;
    font-size: .68rem;
  }
  .client-document-compact-head {
    display: grid;
  }
  .client-document-compact-head .btn {
    width: 100%;
    flex-basis: auto;
  }
  .client-signature-grid {
    grid-template-columns: 1fr;
  }
  .client-document-actions,
  .client-signature-form {
    width: 100%;
  }
  .client-workflow-page .client-document-row {
    display: grid;
  }
  .client-workflow-page .client-document-actions {
    min-width: 0;
    width: 100%;
  }
}
.portal-questionnaire-progress {
  min-width: 112px;
  padding: .85rem 1rem;
  border-radius: 18px;
  background: rgba(182,160,122,.14);
  border: 1px solid rgba(182,160,122,.28);
  text-align: center;
}
.portal-questionnaire-progress strong {
  display: block;
  font-family: Cinzel, Georgia, serif;
  color: var(--primary);
  font-size: 1.45rem;
  line-height: 1;
}
.portal-questionnaire-progress span {
  display: block;
  margin-top: .25rem;
  color: #76674f;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.portal-questionnaire-list {
  display: grid;
  gap: 1rem;
}
.portal-questionnaire-section {
  border: 1px solid rgba(182,160,122,.22);
  border-radius: 18px;
  background: rgba(255,255,255,.72);
  overflow: hidden;
  transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease;
}
.portal-questionnaire-section summary {
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: 1.05rem 1.15rem;
  cursor: pointer;
  min-height: 82px;
  transition: background-color .18s ease;
}
.portal-questionnaire-section summary:hover,
.portal-questionnaire-section summary:focus-visible {
  background: rgba(182,160,122,.08);
}
.portal-questionnaire-section summary:focus-visible {
  outline: 2px solid rgba(182,160,122,.58);
  outline-offset: -4px;
}
.portal-questionnaire-section[open] {
  border-color: rgba(182,160,122,.46);
  background: rgba(255,255,255,.9);
  box-shadow: 0 14px 34px rgba(35,39,38,.08);
}
.portal-questionnaire-section summary::-webkit-details-marker {
  display: none;
}
.portal-questionnaire-section summary strong {
  display: block;
  color: var(--primary);
  font-family: Cinzel, Georgia, serif;
  font-size: 1.05rem;
  letter-spacing: .04em;
}
.portal-questionnaire-section summary small,
.portal-questionnaire-section summary em,
.portal-questionnaire-section summary b {
  color: #76674f;
  font-size: .74rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.portal-questionnaire-section summary em {
  flex: 0 0 auto;
  padding: .45rem .7rem;
  border-radius: 999px;
  background: rgba(182,160,122,.14);
  border: 1px solid rgba(182,160,122,.22);
  font-style: normal;
}
.portal-questionnaire-section-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: .65rem;
  flex: 0 0 auto;
}
.portal-questionnaire-section summary b {
  display: inline-flex;
  align-items: center;
  gap: .42rem;
  min-height: 38px;
  padding: .42rem .78rem;
  border-radius: 999px;
  color: #fff;
  background: #b6a07a;
  box-shadow: 0 10px 20px rgba(182,160,122,.18);
}
.portal-questionnaire-section summary b::after {
  content: "";
  width: .48rem;
  height: .48rem;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translateY(-1px);
  transition: transform .18s ease;
}
.portal-questionnaire-section[open] summary b {
  background: #27302e;
}
.portal-questionnaire-section summary b .open-label,
.portal-questionnaire-section[open] summary b .closed-label {
  display: none;
}
.portal-questionnaire-section[open] summary b .open-label {
  display: inline;
}
.portal-questionnaire-section[open] summary b::after {
  transform: rotate(-135deg) translateY(-1px);
}
.portal-questionnaire-section-body {
  display: grid;
  gap: 1rem;
  padding: 0 1rem 1rem;
}
.portal-questionnaire-group {
  margin: 1rem 0 .1rem;
  color: #76674f;
  font-family: Lato, sans-serif !important;
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.portal-questionnaire-item {
  display: grid;
  gap: .65rem;
  padding: 1.1rem;
  border: 1px solid rgba(182,160,122,.18);
  border-radius: 18px;
  background: rgba(255,255,255,.82);
  box-shadow: 0 12px 28px rgba(43,39,35,.045);
}
.portal-questionnaire-question-row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: .75rem;
}
.portal-questionnaire-question-row strong,
.portal-questionnaire-question-row span,
.portal-questionnaire-item > span {
  color: var(--primary);
  font-weight: 800;
  line-height: 1.45;
}
.portal-questionnaire-question-row em {
  flex: 0 0 auto;
  color: #7a6337;
  font-size: .9rem;
  font-style: italic;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
}
.portal-questionnaire-item.is-answered .portal-questionnaire-question-row em {
  color: #2f6f47;
}
.portal-questionnaire-note,
.crm-client-answer {
  border: 1px solid rgba(182,160,122,.18);
  border-radius: 14px;
  background: rgba(246,244,241,.72);
  padding: .85rem .95rem;
}
.portal-questionnaire-note {
  border: 0;
  border-radius: 0;
  background: transparent;
  padding: 0;
}
.portal-questionnaire-note strong,
.crm-client-answer strong {
  display: block;
  color: #76674f;
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-bottom: .3rem;
}
.portal-questionnaire-note p,
.crm-client-answer p {
  margin: 0;
  color: #4f5652;
  line-height: 1.6;
}
.portal-questionnaire-note p {
  color: #6f7472;
}
.crm-client-answer {
  background: rgba(47,111,71,.07);
  border-color: rgba(47,111,71,.18);
}
.crm-client-answer small {
  display: block;
  margin-top: .4rem;
  color: #6f7472;
}
.crm-questionnaire-row.is-pending {
  border-color: rgba(182,160,122,.3);
  background: linear-gradient(90deg, rgba(182,160,122,.08), #fff 45%);
}
.crm-questionnaire-row.is-answered {
  border-color: rgba(47,111,71,.22);
  background: linear-gradient(90deg, rgba(47,111,71,.07), #fff 45%);
}
.crm-questionnaire-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  gap: .9rem;
}
.crm-questionnaire-row > div:first-child {
  min-width: 0;
  text-align: left;
}
.crm-questionnaire-card-head {
  display: grid;
  gap: .65rem;
  margin-bottom: .45rem;
}
.crm-questionnaire-card-head strong {
  display: block;
  max-width: 100%;
  min-width: 0;
  text-align: left;
  line-height: 1.45;
}
.crm-questionnaire-top-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .7rem;
  flex-wrap: nowrap;
  min-height: 30px;
  width: 100%;
}
.crm-questionnaire-row > .sbv-compact-actions,
.crm-questionnaire-row > .d-flex.gap-2:last-child {
  align-self: center;
  justify-self: end;
}
.crm-questionnaire-row .portal-muted.small {
  text-align: left;
}
.crm-questionnaire-visibility-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: .85rem;
  padding: .85rem 1rem;
  border: 1px solid rgba(182,160,122,.2);
  border-radius: 14px;
  background: rgba(246,244,241,.72);
}
.crm-questionnaire-visibility-bar strong,
.crm-questionnaire-visibility-bar span {
  display: block;
}
.crm-questionnaire-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .5rem;
  flex-wrap: wrap;
  width: 100%;
  justify-self: stretch;
}
.crm-questionnaire-visibility-form.is-saving,
.crm-questionnaire-visibility-bar form.is-saving {
  opacity: .65;
  pointer-events: none;
}
.crm-visibility-toggle {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  cursor: pointer;
  margin: 0;
  user-select: none;
}
.crm-visibility-toggle input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.crm-visibility-toggle span {
  position: relative;
  width: 42px;
  height: 24px;
  flex: 0 0 auto;
  border: 1px solid rgba(182,160,122,.38);
  border-radius: 999px;
  background: #eee9df;
  transition: background .18s ease, border-color .18s ease;
}
.crm-visibility-toggle span::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 3px;
  width: 18px;
  height: 18px;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 2px 7px rgba(43,39,35,.18);
  transform: translateY(-50%);
  transition: left .18s ease;
}
.crm-visibility-toggle input:checked + span {
  border-color: rgba(47,111,71,.45);
  background: #2f6f47;
}
.crm-visibility-toggle input:checked + span::after {
  left: 19px;
}
.crm-visibility-toggle em {
  color: #76674f;
  font-size: .75rem;
  font-style: normal;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
}
@media(max-width: 575.98px) {
  .crm-questionnaire-row {
    grid-template-columns: minmax(0, 1fr);
    gap: .75rem;
  }
  .crm-questionnaire-visibility-bar,
  .crm-questionnaire-actions {
    align-items: flex-start;
    flex-direction: column;
  }
  .crm-questionnaire-visibility-bar > div:last-child {
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr));
    width:100%;
  }
  .crm-questionnaire-visibility-bar > div:last-child form,
  .crm-questionnaire-visibility-bar > div:last-child .btn {
    width:100%;
  }
  .crm-questionnaire-top-controls {
    justify-content: space-between;
  }
  .crm-questionnaire-actions {
    display:flex;
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
    gap:.65rem;
  }
  .crm-questionnaire-actions .btn,
  .crm-questionnaire-actions form { width:auto; }
}

.portal-questionnaire-submit-state {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: .35rem .75rem;
  margin: 0 0 1.25rem;
  padding: .9rem 1rem;
  border: 1px solid rgba(184,157,105,.35);
  background: rgba(184,157,105,.08);
}
.portal-questionnaire-submit-state strong,
.portal-questionnaire-submit-state span {
  display: block;
}
.portal-questionnaire-submit-state span {
  color: #6d6d6d;
}
.portal-questionnaire-submit-state.is-draft {
  border-color: rgba(184,133,42,.45);
  background: rgba(184,133,42,.1);
}
.portal-questionnaire-submit-state.is-submitted {
  border-color: rgba(58,126,88,.35);
  background: rgba(58,126,88,.08);
}
.portal-questionnaire-item.is-draft {
  border-color: rgba(184,133,42,.45);
}
.portal-questionnaire-item.is-submitted {
  border-color: rgba(58,126,88,.3);
}
.portal-questionnaire-submit {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(184,157,105,.3);
}
.portal-questionnaire-submit div,
.portal-questionnaire-submit strong,
.portal-questionnaire-submit span {
  display: block;
}
.portal-questionnaire-submit span {
  margin-top: .2rem;
  color: #6d6d6d;
}
.portal-questionnaire-submit button {
  flex: 0 0 auto;
}
.sbv-questionnaire-leave-actions {
  flex-wrap: wrap;
}
@media(max-width: 767.98px) {
  .portal-questionnaire-submit {
    align-items: stretch;
    flex-direction: column;
  }
  .portal-questionnaire-submit button,
  .sbv-questionnaire-leave-actions .sbv-modal-close {
    width: 100%;
  }
}
.crm-template-picker {
  padding: 1rem;
  border: 1px solid rgba(182,160,122,.2);
  border-radius: 16px;
  background: rgba(246,244,241,.65);
}
.crm-template-list {
  display: grid;
  gap: .55rem;
  max-height: 380px;
  overflow: auto;
  padding-right: .35rem;
}
.crm-template-group {
  margin-top: .55rem;
  color: #76674f;
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.crm-template-option {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: .65rem;
  align-items: flex-start;
  padding: .7rem;
  border: 1px solid rgba(182,160,122,.18);
  border-radius: 12px;
  background: rgba(255,255,255,.86);
  cursor: pointer;
}
.crm-template-option input {
  margin-top: .25rem;
}
.crm-template-option b {
  display: block;
  color: var(--primary);
  line-height: 1.35;
}
.crm-template-option small {
  display: block;
  margin-top: .2rem;
  color: #6f7472;
  line-height: 1.45;
}
.crm-question-pack-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .7rem;
}
.crm-question-pack {
  min-height: 96px;
  border: 1px solid rgba(182,160,122,.25);
  border-radius: 14px;
  background: #fff;
  color: var(--primary);
  text-align: left;
  padding: .85rem;
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.crm-question-pack:hover,
.crm-question-pack:focus {
  transform: translateY(-1px);
  border-color: rgba(182,160,122,.72);
  box-shadow: 0 14px 30px rgba(43,39,35,.08);
}
.crm-question-pack strong,
.crm-question-pack span {
  display: block;
}
.crm-question-pack strong {
  font-size: .84rem;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.crm-question-pack span {
  margin-top: .35rem;
  color: #6f7472;
  font-size: .78rem;
  line-height: 1.4;
}
.portal-questionnaire-item textarea.form-control {
  min-height: 118px;
  border-radius: 14px;
  background: #fff;
}
.portal-questionnaire-item textarea.form-control:focus {
  border-color: rgba(182,160,122,.75);
  box-shadow: 0 0 0 .2rem rgba(182,160,122,.16);
}
.portal-questionnaire-item.is-saving {
  opacity: .86;
}
.portal-questionnaire-item.is-save-success {
  border-color: rgba(47,111,71,.34);
  box-shadow: 0 14px 32px rgba(47,111,71,.1);
}
.portal-questionnaire-item.is-save-error {
  border-color: rgba(168,62,54,.34);
  box-shadow: 0 14px 32px rgba(168,62,54,.1);
}
@media(max-width: 575.98px) {
  .portal-questionnaire-progress {
    width: 100%;
  }
  .crm-question-pack-grid {
    grid-template-columns: 1fr;
  }
  .portal-questionnaire-section summary {
    align-items: flex-start;
    flex-direction: column;
  }
  .portal-questionnaire-section-actions {
    width: 100%;
    justify-content: space-between;
  }
  .portal-questionnaire-section summary b,
  .portal-questionnaire-section summary em {
    min-height: 36px;
  }
}
.document-visibility-control{min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 14px;border:1px solid #dedede;border-radius:8px;background:#fff}.portal-switch-row{display:inline-flex;align-items:center;gap:10px;min-height:34px;margin:0;font-weight:600}.portal-switch-row .form-check-input{width:2.5rem;height:1.35rem;margin:0;cursor:pointer}.document-visibility-control .portal-status-badge{flex:0 0 auto}
.portal-status-badge.is-info{color:#285f78;background:#e8f4f8;border-color:#b9dce8}
.contracts-section-heading{max-width:760px}#contracts .crm-dashboard-strip{align-items:center}#contracts .crm-status-pill{justify-content:center;white-space:nowrap}.contracts-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.contracts-summary-grid .portal-empty-state{height:100%;margin:0!important}.contracts-summary-grid .portal-empty-state>div{min-width:0}
.crm-document-row>div:first-child{min-width:0;flex:1 1 auto}.crm-document-card-head{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin-bottom:.55rem;width:100%}.crm-document-status-line{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;min-width:0}.document-card-controls{flex-wrap:nowrap!important}.document-visibility-form{margin:0}.document-visibility-form.is-saving{opacity:.58;pointer-events:none}.crm-document-card-head .crm-visibility-toggle{margin:0}.crm-document-card-head .crm-visibility-toggle em{min-width:48px}.document-status-readonly{min-height:52px;display:flex;align-items:center;gap:12px;padding:8px 14px;border:1px solid #dedede;border-radius:8px;background:#fff}.document-change-request{display:grid;gap:4px;max-width:560px;padding:10px 12px;border-left:3px solid #b9862a;background:#fff8e8;color:#5d513a}.document-change-request span{white-space:normal}.document-change-request small{color:#7c725f}.client-change-request{width:100%;border:1px solid rgba(182,160,122,.28);border-radius:14px;background:#fff}.client-change-request summary{cursor:pointer;padding:.75rem .9rem;color:#7b653e;font-weight:700}.client-change-request form{display:grid;gap:.65rem;padding:0 .9rem .9rem}.client-change-request textarea{resize:vertical}
@media(max-width:767.98px){#contracts .crm-status-pill{min-width:0;padding:.38rem .45rem;font-size:.76rem;letter-spacing:0}.contracts-summary-grid{grid-template-columns:1fr}}
@media(max-width:575.98px){.crm-document-row>div:first-child{width:100%;flex-basis:100%}.crm-document-card-head{align-items:flex-start}.crm-document-status-line{flex:1 1 auto}.crm-document-card-head .document-visibility-form{flex:0 0 auto;margin-left:auto}.document-card-controls{width:100%;justify-content:flex-end}}
.portal-account-status-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.1rem;border:1px solid;border-radius:8px;transition:background-color .2s ease,border-color .2s ease}.portal-account-status-banner>div{display:grid;gap:.2rem;min-width:0}.portal-account-status-banner strong{font-weight:800}.portal-account-status-banner span{overflow-wrap:anywhere}.portal-account-status-banner.is-active{color:#174d31;background:#dcefe5;border-color:#9dceb2}.portal-account-status-banner.is-inactive{color:#7d2525;background:#f8dfdf;border-color:#e5a6a6}.portal-account-status-banner form{flex:0 0 auto;margin:0}.portal-account-status-banner form.is-saving{opacity:.55;pointer-events:none}.portal-account-status-banner .crm-visibility-toggle{margin:0}

.client-media-share-panel .portal-section-toolbar{align-items:flex-start}.client-media-state-form{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.65rem;max-width:620px}.client-media-state-form .crm-visibility-toggle,.client-media-state-menu-form .crm-visibility-toggle{margin:0}.client-media-state-form .form-control{max-width:190px}.client-media-state-menu-form{display:grid!important;gap:.55rem;width:100%;min-width:220px}.client-media-state-menu-form .form-control{width:100%;min-height:38px}.client-media-state-menu-form .btn{margin-top:.15rem}.client-media-menu-divider{display:flex;align-items:center;gap:.45rem;margin:.1rem 0;color:#806128;font-size:.68rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.client-media-menu-divider:before,.client-media-menu-divider:after{content:"";height:1px;flex:1;background:rgba(188,163,117,.28)}.client-media-state-chip{position:absolute;left:.85rem;bottom:.85rem;z-index:8;background:#fff8e8;color:#806128;border-color:rgba(188,163,117,.55);box-shadow:0 8px 22px rgba(31,37,36,.14)}@media(max-width:767.98px){.client-media-share-panel .portal-section-toolbar{display:grid}.client-media-state-form{justify-content:flex-start}.client-media-state-form .form-control{max-width:none;width:100%}.client-media-state-menu-form{min-width:0}}
.media-access-admin{padding-top:1.35rem;border-top:1px solid rgba(90,72,52,.12)}
.media-access-admin-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.media-access-admin-heading .portal-chip{display:inline-flex;margin-bottom:.65rem}
.media-access-folder-grid{display:grid;gap:.7rem}
.media-access-folder-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(245px,auto) minmax(245px,auto) auto;align-items:center;gap:1rem;padding:.9rem 1rem;border:1px solid rgba(188,163,117,.32);border-radius:12px;background:#fff}
.media-access-folder-row.is-empty{grid-template-columns:minmax(180px,1fr) auto;background:#f7f5f1;color:#8b867e}
.media-access-folder-copy{display:grid;gap:.15rem;min-width:0}
.media-access-folder-copy strong{font-size:.95rem}
.media-access-folder-copy small{color:#766d62}
.media-access-scope{display:grid;grid-template-columns:1fr 1fr;gap:.42rem .75rem;align-items:center;padding-left:1rem;border-left:1px solid rgba(90,72,52,.12)}
.media-access-scope>span{grid-column:1/-1;color:#806128;font-size:.66rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.media-access-scope .crm-visibility-toggle{margin:0;white-space:nowrap}
.media-access-empty{font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.client-folder-sharing-compact{padding:0;overflow:hidden}
.client-folder-sharing-compact summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.15rem;cursor:pointer;list-style:none}
.client-folder-sharing-compact summary::-webkit-details-marker{display:none}
.client-folder-sharing-compact summary span{display:grid;gap:.15rem}
.client-folder-sharing-compact summary small{color:#736c63;font-weight:400}
.client-folder-sharing-compact summary em{font-style:normal;font-size:.75rem;font-weight:800;color:#806128}
.client-folder-sharing-compact[open] summary{border-bottom:1px solid rgba(90,72,52,.12);background:#faf8f4}
.client-folder-sharing-compact .client-media-state-form{max-width:none;justify-content:flex-start;padding:1rem 1.15rem}
.media-access-modal-scope{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;padding:1rem;border:1px solid rgba(188,163,117,.32);border-radius:12px}
.media-access-modal-scope+.media-access-modal-scope{margin-top:.85rem}
.media-access-modal-scope legend{float:none;width:auto;margin:0;color:#806128;font-family:Cinzel,Georgia,serif;font-size:.92rem;letter-spacing:.04em}
.media-access-modal-scope p{grid-column:1/-1;margin:0;color:#736c63;font-size:.84rem}
.media-access-modal-scope .crm-visibility-toggle{margin:0}
.client-gallery-actions .sbv-action-menu-panel{min-width:210px;max-height:min(68vh,430px)}
@media(max-width:1199.98px){.media-access-folder-row{grid-template-columns:minmax(170px,1fr) minmax(230px,1fr) minmax(230px,1fr)}.media-access-folder-row>.btn{grid-column:3;justify-self:end}.media-access-folder-row.is-empty{grid-template-columns:minmax(170px,1fr) auto}}
@media(max-width:767.98px){.media-access-folder-row,.media-access-folder-row.is-empty{grid-template-columns:1fr}.media-access-scope{padding:.75rem 0 0;border-left:0;border-top:1px solid rgba(90,72,52,.12)}.media-access-folder-row>.btn{grid-column:auto;justify-self:start}.media-access-modal-scope{grid-template-columns:1fr}.client-folder-sharing-compact summary{align-items:flex-start}.client-folder-sharing-compact .client-media-state-form{display:grid}.client-folder-sharing-compact .client-media-state-form .form-control{max-width:none}.client-gallery-actions .sbv-action-menu-panel{min-width:0;width:min(210px,calc(100vw - 2rem))}}
@media(max-width:575.98px){.portal-account-status-banner{align-items:flex-start;flex-direction:column}.portal-account-status-banner form{align-self:flex-end}}
@media(max-width:575.98px){.document-visibility-control{align-items:flex-start;flex-direction:column}}

/* v5.10.48: off-screen autofill traps for public gallery fields. */
.sbv-autofill-trap {
    position: fixed !important;
    left: -10000px !important;
    top: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

.sbv-download-overlay {
  position: fixed;
  inset: 0;
  z-index: 12000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 1.25rem;
  background: rgba(12, 14, 15, .62);
}
.sbv-download-overlay.is-visible {
  display: flex;
}
.sbv-download-panel {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: center;
  width: min(560px, 100%);
  padding: 1.35rem;
  border: 1px solid rgba(182,160,122,.55);
  border-radius: 18px;
  color: #f8f3ea;
  background: #202322;
  box-shadow: 0 28px 70px rgba(0,0,0,.28);
}
.sbv-download-panel h2 {
  margin: 0 0 .35rem;
  color: #fff;
  font-family: var(--heading-font, inherit);
  font-size: 1.35rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.sbv-download-panel p,
.sbv-download-panel small {
  display: block;
  margin: 0;
  color: rgba(255,255,255,.84);
  line-height: 1.55;
}
.sbv-download-panel small {
  margin-top: .35rem;
  color: rgba(255,255,255,.66);
}
.sbv-download-spinner {
  width: 42px;
  height: 42px;
  border: 3px solid rgba(255,255,255,.2);
  border-top-color: var(--accent, #b6a07a);
  border-radius: 50%;
  animation: sbv-download-spin .8s linear infinite;
}
.sbv-download-close {
  border: 1px solid rgba(255,255,255,.32);
  border-radius: 999px;
  padding: .65rem 1rem;
  color: #fff;
  background: transparent;
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.sbv-download-close:hover,
.sbv-download-close:focus {
  color: #202322;
  background: #fff;
}
.is-preparing-download {
  opacity: .72;
  pointer-events: none;
}
@keyframes sbv-download-spin {
  to { transform: rotate(360deg); }
}
@media(max-width: 575.98px) {
  .sbv-download-panel {
    grid-template-columns: 1fr;
    text-align: center;
  }
  .sbv-download-spinner,
  .sbv-download-close {
    justify-self: center;
  }
}
