/* ═══ Style Block 1 ═══ */
:root {
  --cream:#F5F8FF; --cream2:#EBF3FF; --gold:#2F5FA7; --gold-lt:#A8C5E8;
  --gold-bg:#EAF2FB; --sage:#8B9D88; --sage-lt:#EEF3EB; --blush:#EAF2FB;
  --warm-gray:#8BA4BE; --text:#1a2232; --muted:#627287; --border:#C8DAEA;
  --white:#FFFFFF; --red:#A33; --green:#56785A; --shadow:0 24px 60px rgba(47,95,167,.08);
  --shadow-soft:0 12px 30px rgba(47,95,167,.06); --sidebar-w:286px;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Manrope',sans-serif;font-size:14px;color:var(--text);background:
  radial-gradient(circle at top left,rgba(210,230,255,.65),transparent 28%),
  radial-gradient(circle at top right,rgba(220,238,255,.8),transparent 24%),
  linear-gradient(180deg,#fafcff 0%,#f3f7fd 45%,#edf4fc 100%);
  min-height:100vh;line-height:1.55;
}
a{color:var(--gold);text-decoration:none;transition:color .2s ease,opacity .2s ease;}
a:hover{opacity:.82;}
button,input,textarea,select{font:inherit;}
.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

/* ── LOGIN ── */
#login-screen{
  min-height:100vh;display:flex;align-items:center;justify-content:center;padding:40px 32px;
  background:
    radial-gradient(ellipse at 18% 12%,rgba(205,222,248,.55),transparent 42%),
    radial-gradient(ellipse at 82% 88%,rgba(215,232,252,.45),transparent 40%),
    #f9fbff;
}
.login-card{
  width:100%;max-width:400px;padding:0;background:none;border:none;
  box-shadow:none;text-align:left;overflow:visible;border-radius:0;position:static;
}
.login-card::before{display:none;}
.login-logo{
  font-family:'Cormorant Garamond',serif;font-size:52px;color:var(--text);
  line-height:1.02;letter-spacing:.02em;font-weight:500;margin-bottom:3px;
}
.login-sub{display:none;}
.login-card h2{
  font-family:'Cormorant Garamond',serif;font-size:21px;color:var(--muted);
  font-weight:400;letter-spacing:.1em;margin-bottom:0;
}
.login-divider{
  width:36px;height:1px;background:var(--border);margin:30px 0 34px;
}
.login-card label{
  display:block;font-size:10px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--muted);margin:0 0 10px;font-weight:600;
}
.login-card input[type=text],.login-card input[type=password]{
  width:100%;padding:10px 0 13px;border:none;border-bottom:1px solid var(--border);
  border-radius:0;font-size:15px;background:transparent;color:var(--text);outline:none;
  transition:border-color .2s;margin-bottom:0;
}
.login-card input:focus{border-bottom-color:var(--gold);box-shadow:none;transform:none;}
.login-btn{
  width:100%;padding:16px 18px;background:#2F5FA7;color:#fff;border:none;
  border-radius:999px;font-size:11px;letter-spacing:.22em;cursor:pointer;
  transition:background .2s,transform .15s,box-shadow .2s;font-weight:700;
  text-transform:uppercase;margin-top:2px;
}
.login-btn:hover{background:#3a6dbf;transform:translateY(-1px);box-shadow:0 12px 26px rgba(47,95,167,.2);}
.login-btn:disabled{background:var(--border);cursor:default;box-shadow:none;transform:none;}
#login-error{color:var(--red);font-size:13px;margin-top:12px;min-height:18px;}

/* ── PORTAL SHELL ── */
#portal{display:none;min-height:100vh;}
.portal-header{
  position:fixed;top:18px;left:24px;right:24px;height:78px;background:rgba(255,255,255,.82);
  backdrop-filter:blur(18px);border:1px solid rgba(180,210,240,.92);display:flex;align-items:center;
  padding:0 20px 0 18px;z-index:100;gap:14px;border-radius:24px;box-shadow:var(--shadow-soft);
}
.portal-header .brand{
  font-family:'Cormorant Garamond',serif;font-size:30px;color:var(--text);letter-spacing:.02em;
  flex:1;line-height:1;
}
.couple-label{
  padding:10px 14px;border-radius:999px;background:var(--cream2);border:1px solid var(--border);
  font-size:12px;color:var(--muted);white-space:nowrap;
}
.logout-btn{
  padding:11px 18px;border:1px solid var(--border);border-radius:999px;background:rgba(255,255,255,.85);
  color:var(--text);font-size:12px;cursor:pointer;transition:all .18s ease;font-weight:600;
}
.logout-btn:hover{background:var(--gold-bg);border-color:var(--gold-lt);transform:translateY(-1px);}
.menu-toggle{
  display:none;background:var(--cream2);border:1px solid var(--border);font-size:20px;cursor:pointer;
  color:var(--gold);padding:8px 12px;border-radius:14px;
}

/* ── SIDEBAR ── */
.sidebar{
  position:fixed;top:114px;left:24px;bottom:24px;width:var(--sidebar-w);background:rgba(255,255,255,.78);
  backdrop-filter:blur(16px);border:1px solid rgba(180,210,240,.92);overflow-y:auto;z-index:90;
  transition:transform .25s ease;box-shadow:var(--shadow-soft);border-radius:28px;
}
.sidebar-backdrop{
  position:fixed;inset:0;background:rgba(57,41,26,.24);opacity:0;pointer-events:none;transition:opacity .22s ease;z-index:80;
  border:none;padding:0;appearance:none;-webkit-appearance:none;
}
.sidebar-backdrop.open{opacity:1;pointer-events:auto;}
.sidebar-inner{padding:24px 14px 20px;}
.sidebar-lbl{
  font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);padding:8px 16px 12px;
}
.nav-item{
  display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer;color:var(--text);font-size:13px;
  border-radius:18px;transition:all .18s ease;user-select:none;margin:0 6px 4px;
}
.nav-item{width:calc(100% - 12px);border:none;background:none;text-align:left;}
.nav-item:hover{background:var(--cream2);color:var(--text);transform:translateX(2px);}
.nav-item.active{
  background:linear-gradient(135deg,#fff 0%,#eaf2fb 100%);color:var(--text);font-weight:700;
  box-shadow:0 10px 20px rgba(47,95,167,.10);border:1px solid rgba(168,197,232,.55);
}
.nav-icon{
  font-size:17px;width:36px;height:36px;text-align:center;display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.92);border:1px solid var(--border);border-radius:12px;flex-shrink:0;
}

/* ── MAIN ── */
.main-content{
  margin-left:calc(var(--sidebar-w) + 48px);margin-top:118px;padding:20px 12px 80px 0;
  max-width:1240px;
}
.main-panel{display:none;animation:fadeRise .45s ease;}
.main-panel.active{display:block;}
@keyframes fadeRise{
  from{opacity:0;transform:translateY(10px);}
  to{opacity:1;transform:translateY(0);}
}

/* ── OVERVIEW ── */
.countdown-box{
  position:relative;background:
    radial-gradient(circle at top right,rgba(255,255,255,.35),transparent 28%),
    linear-gradient(135deg,#c5daf5 0%,#9dbfef 44%,#6a9fd8 100%);
  color:#fff;border-radius:32px;padding:30px 36px;margin-bottom:24px;display:flex;flex-direction:column;align-items:flex-start;gap:8px;
  overflow:hidden;box-shadow:var(--shadow);
}
.countdown-box::after{
  content:'';position:absolute;right:-36px;bottom:-56px;width:220px;height:220px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.28),transparent 68%);
}
.countdown-num{
  font-family:'Cormorant Garamond',serif;font-size:96px;font-weight:700;line-height:.9;
}
.countdown-label{
  font-family:'Cormorant Garamond',serif;font-size:34px;letter-spacing:.01em;line-height:1.05;
}
.countdown-primary{display:flex;align-items:baseline;gap:16px;}
.countdown-date{font-size:13px;opacity:.82;margin-top:10px;letter-spacing:.08em;text-transform:uppercase;}
.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:24px;}
.info-card{
  background:rgba(255,255,255,.92);border:1px solid var(--border);border-radius:24px;padding:26px 28px;
  box-shadow:var(--shadow-soft);
}
.ov-seating-bar-wrap{margin-top:10px;}
.ov-seating-bar{height:6px;background:var(--cream2);border-radius:999px;overflow:hidden;border:1px solid #d8e8f4;}
.ov-seating-bar-fill{height:100%;background:var(--gold);border-radius:999px;transition:width .4s ease;min-width:2px;}
@media (max-width: 900px){
  .cl-group-items{
    column-count:1;
    column-width:auto;
    padding:12px 16px 16px;
  }
  .cl-item{
    margin-bottom:10px;
  }
}
.info-card h3{
  font-family:'Cormorant Garamond',serif;font-size:28px;color:var(--text);margin-bottom:18px;
  font-weight:600;letter-spacing:.01em;
}
.info-row{display:flex;justify-content:space-between;align-items:baseline;padding:11px 0;border-bottom:1px solid var(--cream2);gap:12px;}
.info-row:last-child{border-bottom:none;}
.info-key{font-size:11px;color:var(--muted);flex-shrink:0;letter-spacing:.16em;text-transform:uppercase;}
.info-val{font-size:14px;color:var(--text);text-align:right;font-weight:600;}
.progress-card{
  background:rgba(255,255,255,.92);border:1px solid var(--border);border-radius:24px;padding:26px 28px;
  margin-bottom:24px;box-shadow:var(--shadow-soft);
}
.progress-card h3{
  font-family:'Cormorant Garamond',serif;font-size:28px;color:var(--text);margin-bottom:18px;font-weight:600;
}
.prog-row{display:flex;align-items:center;gap:14px;margin-bottom:14px;}
.prog-label{font-size:12px;color:var(--muted);width:190px;flex-shrink:0;text-transform:uppercase;letter-spacing:.08em;}
.prog-bar-bg{flex:1;background:#e8f0fb;border-radius:999px;height:10px;overflow:hidden;}
.prog-bar-fill{height:100%;background:linear-gradient(90deg,#b8c8b2 0%,#8b9d88 100%);border-radius:999px;transition:width .5s;}
.prog-pct{font-size:12px;color:var(--muted);width:40px;text-align:right;flex-shrink:0;}
.quick-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;flex-wrap:wrap;}
.quick-btn{
  padding:16px 18px;background:rgba(255,255,255,.92);border:1px solid var(--border);border-radius:20px;
  color:var(--text);font-size:13px;cursor:pointer;transition:all .18s ease;text-align:left;
  box-shadow:var(--shadow-soft);font-weight:600;
}
.quick-btn:hover{
  background:linear-gradient(135deg,#fff 0%,#eaf2fb 100%);border-color:var(--gold-lt);
  transform:translateY(-2px);box-shadow:0 18px 28px rgba(47,95,167,.12);
}
.overview-note{margin-bottom:12px;font-size:12px;color:var(--muted);letter-spacing:.16em;text-transform:uppercase;}
.overview-welcome{
  background:rgba(255,255,255,.88);border:1px solid var(--border);border-radius:24px;padding:24px 28px;
  margin-bottom:20px;box-shadow:var(--shadow-soft);
}
.overview-welcome h2{
  font-family:'Cormorant Garamond',serif;font-size:34px;line-height:1.05;color:var(--text);font-weight:600;margin-bottom:8px;
}
.overview-welcome p{font-size:14px;color:var(--muted);line-height:1.8;max-width:740px;}

/* ── OVERVIEW WELCOME HERO ── */
.overview-welcome-hero{
  display:flex;align-items:center;gap:36px;
  background:
    radial-gradient(circle at top right,rgba(255,255,255,.32),transparent 30%),
    linear-gradient(135deg,#c5daf5 0%,#9dbfef 48%,#6a9fd8 100%);
  border-radius:32px;padding:36px 40px;margin-bottom:24px;
  box-shadow:var(--shadow);overflow:hidden;position:relative;
}
.overview-welcome-hero::after{
  content:'';position:absolute;right:-50px;bottom:-60px;
  width:260px;height:260px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.22),transparent 68%);
  pointer-events:none;
}
.overview-welcome-photo-wrap{flex-shrink:0;position:relative;z-index:1;}
.overview-hero-photo-card{background:none;border:none;padding:0;margin:0;box-shadow:none;}
.overview-welcome-hero-text{flex:1;min-width:0;position:relative;z-index:1;}
.overview-welcome-eyebrow{
  font-size:10px;letter-spacing:.22em;text-transform:uppercase;
  color:rgba(255,255,255,.72);font-weight:700;margin-bottom:10px;
}
.overview-welcome-name{
  font-family:'Cormorant Garamond',serif;font-size:clamp(32px,5vw,52px);
  font-weight:700;color:#fff;line-height:1.02;margin-bottom:12px;
  text-shadow:0 2px 16px rgba(0,0,0,.14);
}
.overview-welcome-sub{
  font-size:14px;color:rgba(255,255,255,.82);line-height:1.75;
  max-width:480px;
}
@media(max-width:700px){
  .overview-welcome-hero{flex-direction:column;align-items:center;text-align:center;padding:28px 24px;}
  .overview-welcome-sub{max-width:100%;}
  .overview-welcome-name{font-size:36px;}
}
@media(max-width:420px){
  .overview-welcome-hero{padding:24px 20px;gap:20px;}
}

/* ── CHECKLIST ── */
.cl-group{background:rgba(255,255,255,.92);border:1px solid var(--border);border-radius:22px;margin-bottom:18px;overflow:hidden;box-shadow:var(--shadow-soft);}
.cl-group-header{
  padding:18px 22px;background:linear-gradient(135deg,#fff 0%,#f0f6fd 100%);
  display:flex;align-items:center;gap:10px;user-select:none;
}
.cl-group-title{font-family:'Cormorant Garamond',serif;font-size:26px;color:var(--text);font-weight:600;flex:1;}
.cl-group-prog{font-size:12px;color:var(--muted);}
.cl-group-bar{height:6px;background:var(--cream2);}
.cl-group-bar-fill{height:100%;background:var(--sage);transition:width .4s;}
.cl-group-items{
  padding:14px 22px 18px;
  column-gap:24px;
  column-width:320px;
  column-fill:balance;
}
.cl-item{
  display:flex;
  align-items:center;
  gap:10px;
  padding:12px 14px;
  font-size:13px;
  border:1px solid var(--cream2);
  border-radius:14px;
  background:rgba(255,255,255,.96);
  margin:0 0 12px;
  cursor:pointer;
  break-inside:avoid;
  -webkit-column-break-inside:avoid;
  page-break-inside:avoid;
  transition:border-color .15s,box-shadow .15s,background .15s;
}
.cl-item:hover{border-color:var(--gold-lt);box-shadow:0 4px 14px rgba(47,95,167,.09);background:#fff;}
.cl-item:last-child{margin-bottom:0;}
.cl-checkbox{
  width:16px;
  height:16px;
  min-width:16px;
  accent-color:var(--sage);
  cursor:pointer;
  flex-shrink:0;
}
.cl-item-label{color:var(--text);line-height:1.6;flex:1;}
.cl-item-label.done{color:var(--muted);text-decoration:line-through;}
.cl-item.is-saving{opacity:.6;pointer-events:none;}
.cl-subcategory{margin-bottom:6px;}
.cl-subcategory-title{
  font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;
  color:var(--muted);padding:10px 0 6px;
  border-bottom:1px solid var(--cream2);margin-bottom:10px;
  break-after:avoid;-webkit-column-break-after:avoid;
}
.cl-subcategory .cl-item:last-child{margin-bottom:12px;}
.cl-status{
  margin:10px 0 14px;
  font-size:12px;
  color:var(--muted);
  min-height:16px;
}
.cl-status.is-error{color:#a33;}
.cl-status.is-success{color:#4a7a4e;}
.cl-empty{
  background:rgba(255,255,255,.92);
  border:1px solid var(--border);
  border-radius:22px;
  padding:18px 22px;
  color:var(--muted);
  font-style:italic;
  box-shadow:var(--shadow-soft);
}

/* ── DOCUMENT SUB-NAV ── */
.doc-subnav{
  display:flex;gap:10px;margin-bottom:30px;overflow-x:auto;padding:6px;background:rgba(255,255,255,.78);
  border:1px solid var(--border);border-radius:22px;box-shadow:var(--shadow-soft);
}
.doc-tab{
  padding:12px 16px;font-size:13px;color:var(--muted);cursor:pointer;border-radius:16px;
  white-space:nowrap;transition:all .18s ease;user-select:none;border:1px solid transparent;
}
.doc-tab{background:none;text-align:left;}
.doc-tab:hover{color:var(--text);background:var(--cream2);}
.doc-tab.active{
  color:var(--text);background:linear-gradient(135deg,#fff 0%,#eaf2fb 100%);font-weight:700;
  border-color:rgba(168,197,232,.5);box-shadow:0 10px 18px rgba(47,95,167,.1);
}
.doc-panel{display:none;}
.doc-panel.active{display:block;}
.map-legend-item{background:none;border:none;font:inherit;text-align:left;}

/* ── WEDDING DAY TIMELINE INNER TABS ── */
.wdt-subnav{
  display:flex;gap:8px;margin-bottom:24px;overflow-x:auto;padding:5px;
  background:rgba(218,235,255,.55);border:1px solid rgba(168,197,232,.4);
  border-radius:18px;
}
.wdt-tab{
  padding:9px 15px;font-size:12px;color:var(--muted);cursor:pointer;border-radius:13px;
  white-space:nowrap;transition:all .18s ease;user-select:none;border:1px solid transparent;
  background:none;text-align:left;font-family:inherit;
}
.wdt-tab:hover{color:var(--text);background:var(--cream2);}
.wdt-tab.active{
  color:var(--text);background:linear-gradient(135deg,#fff 0%,#eaf2fb 100%);font-weight:700;
  border-color:rgba(168,197,232,.5);box-shadow:0 6px 14px rgba(47,95,167,.1);
}
.wdt-page{display:none;}
.wdt-page.active{display:block;}

/* ── MESSAGES ── */
.msg-thread{
  background:rgba(255,255,255,.92);border:1px solid var(--border);border-radius:24px;padding:24px;
  min-height:400px;max-height:60vh;overflow-y:auto;margin-bottom:16px;display:flex;flex-direction:column;gap:14px;
  box-shadow:var(--shadow-soft);
}
.msg-bubble{max-width:70%;padding:14px 16px;border-radius:18px;font-size:13px;line-height:1.65;}
.msg-couple{align-self:flex-end;background:linear-gradient(135deg,#4A8FD8 0%,#2F5FA7 100%);color:#fff;border-bottom-right-radius:6px;}
.msg-staff{align-self:flex-start;background:var(--cream2);color:var(--text);border-bottom-left-radius:6px;}
.msg-meta{font-size:10px;opacity:.65;margin-top:4px;}
.msg-empty{color:var(--muted);font-size:13px;font-style:italic;text-align:center;margin:auto;padding:32px;}
.msg-input-row{display:flex;gap:10px;}
.msg-input{
  flex:1;padding:14px 16px;border:1px solid var(--border);border-radius:18px;font-size:14px;outline:none;
  font-family:inherit;resize:none;transition:border-color .2s,box-shadow .2s;background:rgba(255,255,255,.92);
}
.msg-input:focus{border-color:var(--gold-lt);}
.msg-send-btn{
  padding:14px 24px;background:linear-gradient(135deg,#4A8FD8 0%,#2F5FA7 100%);color:#fff;border:none;
  border-radius:999px;font-size:12px;cursor:pointer;transition:transform .18s,box-shadow .18s;align-self:flex-end;
  letter-spacing:.14em;text-transform:uppercase;font-weight:700;
}
.msg-send-btn:hover{transform:translateY(-1px);box-shadow:0 14px 24px rgba(47,95,167,.18);}
.msg-send-btn:disabled{background:var(--border);cursor:default;box-shadow:none;transform:none;}
.msg-note{font-size:12px;color:var(--muted);font-style:italic;margin-top:8px;}

/* ── SHARED FORM ELEMENTS ── */
.form-header{margin-bottom:30px;padding-bottom:18px;border-bottom:1px solid var(--border);}
.form-header h1{
  font-family:'Cormorant Garamond',serif;font-size:40px;color:var(--text);font-weight:600;letter-spacing:.01em;
  margin-bottom:8px;line-height:1.05;
}
.form-header p{font-size:14px;color:var(--muted);line-height:1.8;max-width:760px;}
.section-title{
  font-family:'Cormorant Garamond',serif;font-size:28px;color:var(--text);font-weight:600;
  border-bottom:1px solid rgba(168,197,232,.55);padding-bottom:10px;margin:34px 0 18px;letter-spacing:.01em;
}
.field-row{display:grid;grid-template-columns:220px 1fr;gap:10px 16px;align-items:start;margin-bottom:10px;}
.field-label{font-size:12px;color:var(--muted);padding-top:12px;line-height:1.6;letter-spacing:.04em;text-transform:uppercase;}
.field-label small{display:block;font-size:11px;font-style:italic;color:#AAA;margin-top:2px;}
.field-note{
  font-size:12px;font-style:italic;color:var(--muted);margin:6px 0 14px;padding:12px 14px;background:var(--cream2);
  border-radius:16px;line-height:1.7;border:1px solid rgba(180,210,240,.9);
}
input[type=text],input[type=tel],input[type=time],input[type=date],input[type=number],textarea,select{
  width:100%;padding:13px 15px;border:1px solid var(--border);border-radius:16px;font-size:14px;color:var(--text);
  background:rgba(255,255,255,.95);outline:none;transition:border-color .2s,box-shadow .2s,transform .2s;font-family:inherit;
}
input:focus,textarea:focus,select:focus{
  border-color:var(--gold-lt);background:#fff;box-shadow:0 0 0 4px rgba(168,197,232,.16);transform:translateY(-1px);
}
input[readonly]{background:var(--cream2);color:var(--muted);}
textarea{resize:vertical;min-height:100px;}
select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238B6914' fill='none' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px;}
.radio-group{display:flex;gap:20px;padding-top:10px;flex-wrap:wrap;}
.radio-group label{display:flex;align-items:center;gap:6px;font-size:13px;cursor:pointer;}
.radio-group input[type=radio]{accent-color:var(--gold);width:15px;height:15px;}
.checkbox-row{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:13px;cursor:pointer;}
.checkbox-row input[type=checkbox]{accent-color:var(--gold);width:15px;height:15px;flex-shrink:0;}
.form-table{
  width:100%;border-collapse:separate;border-spacing:0;margin-bottom:18px;background:rgba(255,255,255,.82);
  border:1px solid var(--border);border-radius:18px;overflow:hidden;box-shadow:var(--shadow-soft);
}
.form-table th{
  background:linear-gradient(180deg,#f4f8fd 0%,#eef3fa 100%);color:var(--muted);font-size:11px;
  letter-spacing:.16em;text-transform:uppercase;padding:13px 14px;text-align:left;font-weight:700;
}
.form-table td{padding:8px 10px;border-bottom:1px solid var(--cream2);vertical-align:middle;}
.form-table tr:nth-child(even) td{background:#f5f9ff;}
.form-table .row-num{font-size:12px;color:var(--muted);font-weight:600;width:36px;text-align:center;padding:6px 4px;}
.form-table input{border:none;border-bottom:1px solid var(--border);border-radius:10px;padding:8px 10px;background:transparent;width:100%;box-shadow:none;transform:none;}
.form-table input:focus{border-bottom-color:var(--gold-lt);background:#f8fbff;border-radius:10px;box-shadow:none;}
.note-tag{font-size:10px;color:var(--muted);font-style:italic;padding-left:6px;white-space:nowrap;}
.lodge-block{margin-bottom:24px;border:1px solid var(--border);border-radius:22px;overflow:hidden;background:rgba(255,255,255,.92);box-shadow:var(--shadow-soft);}
.lodge-header{
  background:linear-gradient(135deg,#fff 0%,#f0f6fd 100%);padding:14px 18px;font-family:'Cormorant Garamond',serif;
  font-size:22px;color:var(--text);font-weight:600;letter-spacing:.01em;
}
.lodge-header span{font-family:system-ui,sans-serif;font-size:11px;font-weight:normal;color:var(--muted);margin-left:8px;font-style:italic;}
.initial-row{
  display:grid;grid-template-columns:110px 1fr;gap:16px;align-items:start;margin-bottom:14px;padding:18px;
  border:1px solid var(--border);border-radius:20px;background:rgba(255,255,255,.92);box-shadow:var(--shadow-soft);
}
.initial-box{
  text-align:center;font-style:italic;font-size:16px;letter-spacing:2px;border:1px solid var(--border)!important;
  border-radius:16px!important;padding:14px!important;font-family:'Cormorant Garamond',serif;background:var(--gold-bg)!important;
}
.clause-text{font-size:13px;color:var(--text);line-height:1.6;padding-top:6px;}
.sig-block{
  display:grid;grid-template-columns:1fr 1fr 180px;gap:16px;margin-top:24px;padding:20px;border:1px solid var(--border);
  border-radius:24px;background:linear-gradient(180deg,#fff 0%,#f4f8fd 100%);box-shadow:var(--shadow-soft);
}
.sig-block label{display:block;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-bottom:6px;}
.sig-input{font-family:Georgia,serif!important;font-style:italic!important;font-size:16px!important;}
.save-bar{
  margin-top:36px;padding:18px 0 0;border-top:1px solid var(--border);display:flex;align-items:center;gap:16px;flex-wrap:wrap;
}
.save-btn{
  padding:15px 28px;background:linear-gradient(135deg,#4A8FD8 0%,#2F5FA7 100%);color:#fff;border:none;border-radius:999px;
  font-size:12px;letter-spacing:.16em;cursor:pointer;transition:transform .18s,box-shadow .18s; font-weight:700; text-transform:uppercase;
}
.save-btn:hover{transform:translateY(-1px);box-shadow:0 14px 24px rgba(47,95,167,.18);}
.save-btn:disabled{background:var(--border);cursor:default;box-shadow:none;transform:none;}
.save-status{font-size:12px;color:var(--muted);}
.save-status.ok{color:var(--green);} .save-status.err{color:var(--red);}


.pdf-btn{
  background:linear-gradient(135deg,#3e526e 0%,#2f4a64 100%);
  letter-spacing:.03em;
  transition:box-shadow .2s ease,transform .15s ease,background .2s ease;
}
.pdf-btn:hover{
  box-shadow:0 10px 28px rgba(47,74,100,.22);
  transform:translateY(-1px);
}
.pdf-btn:active{
  transform:translateY(0);
  box-shadow:0 4px 12px rgba(47,74,100,.18);
}
.pdf-btn:disabled{
  background:#c4cdda;
  cursor:not-allowed;
  transform:none;
  box-shadow:none;
}
.pdf-helper-text{
  font-size:12px;
  color:var(--muted);
}

/* ── INSURANCE UPLOADS ── */
.insurance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
.insurance-card{background:linear-gradient(180deg,#fff 0%,#f8fbff 100%);border:1px solid var(--border);border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:12px;min-height:208px;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;}
.insurance-card.completed{border-color:#bfd1bb;box-shadow:0 16px 28px rgba(86,120,90,.10);background:linear-gradient(180deg,#ffffff 0%,#f6fbf4 100%);}
.insurance-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;}
.insurance-card-title{font-size:14px;color:var(--text);font-weight:600;line-height:1.45;}
.insurance-card-state{font-size:11px;letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:6px 10px;border:1px solid var(--border);background:var(--cream2);color:var(--muted);white-space:nowrap;}
.insurance-card-state.uploaded{background:var(--sage-lt);border-color:#b9c9b9;color:var(--green);font-weight:700;}
.insurance-upload-zone{border:1px dashed var(--border);border-radius:10px;background:var(--white);padding:18px;display:flex;flex-direction:column;gap:8px;align-items:flex-start;justify-content:center;min-height:112px;}
.insurance-upload-zone.has-file{border-style:solid;background:#f8fbff;}
.insurance-upload-zone.completed{border-color:#bfd1bb;background:linear-gradient(180deg,#f8fbff 0%,#f7fbf5 100%);}
.insurance-upload-zone strong{font-size:13px;color:var(--text);}
.insurance-upload-zone span{font-size:12px;color:var(--muted);line-height:1.5;}
.insurance-file-meta{font-size:12px;color:var(--muted);line-height:1.6;word-break:break-word;}
.insurance-complete-note{display:none;font-size:12px;line-height:1.5;padding:10px 12px;border-radius:10px;background:var(--sage-lt);color:var(--green);border:1px solid #c8d7c4;}
.insurance-complete-note.visible{display:block;}
.insurance-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto;}
.insurance-btn{appearance:none;border:1px solid var(--border);background:var(--white);color:var(--text);border-radius:8px;padding:9px 12px;font:inherit;font-size:12px;cursor:pointer;transition:all .15s;}
.insurance-btn:hover{border-color:var(--gold-lt);background:#f0f7ff;}
.insurance-btn.primary{background:var(--gold);border-color:var(--gold);color:#fff;}
.insurance-btn.primary:hover{background:#1f3f6e;border-color:#1f3f6e;}
.insurance-btn.success{background:var(--sage-lt);border-color:#b9c9b9;color:var(--green);font-weight:700;}
.insurance-btn.success:hover{background:#e4efe0;border-color:#a8beaa;}
.insurance-btn.danger{background:#fff7f7;border-color:#e1b8b8;color:#8a3c3c;}
.insurance-btn[hidden]{display:none!important;}
.insurance-hidden-input{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;}


/* ── PREFERRED VENDORS ── */
.vendor-hero{background:linear-gradient(135deg,#fff 0%,#f0f6fd 50%,#e4f0fb 100%);border:1px solid var(--border);border-radius:28px;padding:28px 28px 24px;margin-bottom:24px;box-shadow:var(--shadow);}
.vendor-hero-top{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap;margin-bottom:14px;}
.vendor-hero h1{font-family:'Cormorant Garamond',serif;font-size:40px;color:var(--text);font-weight:600;letter-spacing:.01em;margin-bottom:8px;line-height:1.05;}
.vendor-hero p{font-size:14px;color:var(--muted);line-height:1.7;max-width:760px;}
.vendor-controls{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:16px;}
.vendor-search{flex:1;min-width:240px;position:relative;}
.vendor-search input{padding-left:40px;background:var(--white);}
.vendor-search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:14px;}
.vendor-tab-row{display:flex;flex-wrap:wrap;gap:8px;padding-bottom:4px;}
.vendor-tab-dropdown-wrap{display:none;}
.vendor-tab-select{width:100%;padding:10px 36px 10px 16px;border:1px solid var(--border);border-radius:999px;background:var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23999' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 14px center;font-size:13px;color:var(--text);cursor:pointer;appearance:none;-webkit-appearance:none;box-shadow:0 1px 3px rgba(0,0,0,.05);}
.vendor-tab{border:1px solid var(--border);background:var(--white);border-radius:999px;padding:7px 16px;font-size:12px;color:var(--muted);cursor:pointer;transition:all .2s;white-space:nowrap;box-shadow:0 1px 3px rgba(0,0,0,.05);}
.vendor-tab:hover{border-color:var(--gold);color:var(--gold);background:#fffbf5;box-shadow:0 2px 6px rgba(0,0,0,.1);}
.vendor-tab.active{background:var(--gold);border-color:var(--gold);color:#fff;box-shadow:0 2px 8px rgba(0,0,0,.15);font-weight:600;}
.vendor-sections{display:flex;flex-direction:column;gap:18px;}
.vendor-section{background:rgba(255,255,255,.92);border:1px solid var(--border);border-radius:24px;padding:24px 24px 26px;box-shadow:var(--shadow-soft);}
.vendor-section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap;margin-bottom:16px;}
.vendor-section-title{font-family:'Cormorant Garamond',serif;font-size:30px;color:var(--text);margin-bottom:4px;font-weight:600;}
.vendor-section-sub{font-size:13px;color:var(--muted);}
.vendor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px;}
.vendor-card{border:1px solid var(--border);border-radius:20px;padding:22px 22px 20px;background:linear-gradient(180deg,#fff 0%,#fafcff 100%);display:flex;flex-direction:column;gap:0;min-height:0;box-shadow:var(--shadow-soft);transition:box-shadow .2s,transform .2s;}
.vendor-card:hover{box-shadow:0 6px 24px rgba(0,0,0,.08);transform:translateY(-2px);}
.vendor-card h3{font-family:'Cormorant Garamond',serif;font-size:22px;color:var(--text);font-weight:600;line-height:1.25;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--cream2);}
.vendor-card-meta{font-size:13px;color:var(--muted);line-height:1.5;display:flex;flex-direction:column;gap:8px;}
.vendor-card-row{display:flex;align-items:baseline;gap:8px;}
.vendor-card-row .vendor-card-label{flex-shrink:0;min-width:58px;}
.vendor-card-row span:last-child,.vendor-card-row a{flex:1;min-width:0;}
.vendor-card-meta a{color:var(--gold);text-decoration:none;word-break:break-all;}
.vendor-card-meta a:hover{text-decoration:underline;}
.vendor-card-label{font-size:11px;letter-spacing:.7px;text-transform:uppercase;color:var(--muted);font-weight:600;}
.vendor-footnote{margin-top:14px;font-size:12px;color:var(--muted);font-style:italic;padding-top:12px;border-top:1px solid var(--cream2);}
.vendor-empty{background:var(--white);border:1px dashed var(--border);border-radius:12px;padding:28px;text-align:center;color:var(--muted);}
@media(max-width:720px){
  .vendor-hero{padding:20px 18px;}
  .vendor-hero h1{font-size:30px;}
  .vendor-section{padding:18px 16px;}
  .vendor-grid{grid-template-columns:1fr;}
  .vendor-tab-row{display:none;}
  .vendor-tab-dropdown-wrap{display:block;}
}

@media(max-width:900px){
  .menu-toggle{display:block;}
  .portal-header{left:14px;right:14px;top:14px;height:68px;padding:0 14px;}
  .portal-header .brand{font-size:24px;}
  .couple-label{display:none;}
  .sidebar{transform:translateX(-115%);top:92px;left:14px;bottom:14px;}
  .sidebar.open{transform:translateX(0);box-shadow:4px 0 20px rgba(0,0,0,.12);}
  .main-content{margin-left:0;margin-top:98px;padding:12px 14px 60px;}
  .field-row{grid-template-columns:1fr;}
  .field-label{padding-top:0;font-weight:600;}
  .info-grid{grid-template-columns:1fr;}
  .sig-block{grid-template-columns:1fr;}
  .countdown-box{padding:26px 22px;border-radius:24px;}
  .countdown-num{font-size:64px;}
  .countdown-label{font-size:28px;}
  .insurance-grid{grid-template-columns:1fr;}
  body.sidebar-open{overflow:hidden;}
}

/* â”€â”€ VENUE MAP â”€â”€ */
.vmap-shell{display:flex;flex-direction:column;background:linear-gradient(180deg,rgba(248,252,255,.98),rgba(238,246,255,.94));border:1px solid var(--border);border-radius:30px;overflow:hidden;box-shadow:var(--shadow);}
.vmap-shell.vmap-static-shell{background:transparent;border:none;box-shadow:none;border-radius:0;}
.vmap-static-shell{padding:0;}
.vmap-static-body{padding:28px;}
.vmap-static-shell .vmap-body{display:none!important;}
.vmap-static-shell #vmap-filter-bar,
.vmap-static-shell #vmap-result-copy,
.vmap-static-shell #vmap-selected-card,
.vmap-static-shell #vmap-list-scroll{display:none!important;}
.vmap-static-gallery{display:grid;gap:18px;padding:0 28px 28px;}
.vmap-static-item{
  border:1px solid var(--border);
  border-radius:22px;
  background:var(--white);
  box-shadow:0 10px 22px rgba(47,95,167,.08);
  overflow:hidden;
}
.vmap-static-item.is-portrait{height:clamp(560px,78vh,980px);}
.vmap-static-item.is-landscape{height:auto;}
.vmap-static-frame{width:100%;height:100%;border:0;background:var(--white);}
.vmap-static-shell .vmap-zoom-controls{display:none;}
.vmap-static-shell #map-loading{font-size:0;color:transparent;font-style:normal;}
.vmap-static-shell #map-pins{display:none;}
.vmap-static-shell #map-loading:before{content:'';width:46px;height:46px;border-radius:999px;border:3px solid rgba(47,95,167,.18);border-top-color:rgba(47,95,167,.55);display:block;animation:llwSpin 0.9s linear infinite;}
@keyframes llwSpin{to{transform:rotate(360deg);}}
@media (min-width: 1100px){
  .vmap-static-gallery{grid-template-columns:repeat(2, minmax(0, 1fr));}
  .vmap-static-item.is-landscape{grid-column:1 / -1;}
  .vmap-map-entry:has(.vmap-static-item.is-landscape){grid-column:1 / -1;}
}
.vmap-panel-hd{padding:28px 32px 22px 32px;border-bottom:1px solid var(--border);margin-bottom:0;}
.vmap-panel-eyebrow{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:6px;}
.vmap-panel-title{font-family:'Cormorant Garamond',serif;font-size:36px;font-weight:600;color:var(--text);line-height:1.08;margin:0 0 8px;}
.vmap-panel-sub{font-size:14px;color:var(--muted);line-height:1.78;max-width:580px;margin:0;}
.vmap-map-entry{display:flex;flex-direction:column;gap:10px;}
.vmap-map-label{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 2px;}
.vmap-map-name{font-family:'Cormorant Garamond',serif;font-size:21px;font-weight:600;color:var(--text);}
.vmap-card-dl{font-size:11px;font-weight:700;letter-spacing:.05em;color:var(--gold);text-decoration:none;border:1px solid rgba(170,196,228,.3);border-radius:999px;padding:6px 14px;background:rgba(255,255,255,.72);transition:background .18s,color .18s,box-shadow .18s;white-space:nowrap;flex-shrink:0;}
.vmap-card-dl:hover,.vmap-card-dl:focus-visible{background:var(--gold);color:#fff;border-color:transparent;box-shadow:0 6px 14px rgba(47,95,167,.22);outline:none;}
.vmap-static-item{position:relative;}
.vmap-static-item [data-vmap-loader]{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:#f0f6fd;font-size:13px;color:var(--muted);font-style:italic;z-index:2;}
.vmap-static-item [data-vmap-loader]:before{content:'';width:40px;height:40px;border-radius:999px;border:3px solid rgba(47,95,167,.15);border-top-color:rgba(47,95,167,.62);flex-shrink:0;animation:llwSpin .9s linear infinite;}
.vmap-static-item canvas{display:block;width:100%;}
.vmap-hero{position:relative;overflow:hidden;background:linear-gradient(135deg,#fff 0%,#f0f6fd 56%,#e4f0fb 100%);padding:30px 34px;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(220px,.8fr);gap:24px;align-items:end;}
.vmap-hero:before,.vmap-hero:after{content:'';position:absolute;border-radius:999px;pointer-events:none;}
.vmap-hero:before{width:260px;height:260px;right:-70px;top:-110px;background:radial-gradient(circle,rgba(168,197,232,.6),rgba(168,197,232,0));}
.vmap-hero:after{width:220px;height:220px;left:-60px;bottom:-130px;background:radial-gradient(circle,rgba(140,180,220,.18),rgba(140,180,220,0));}
.vmap-eyebrow{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;font-weight:700;}
.vmap-hero h1{font-family:'Cormorant Garamond',serif;font-size:40px;font-weight:600;color:var(--text);margin-bottom:8px;line-height:1;}
.vmap-venue{font-size:13px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--gold);margin-bottom:10px;}
.vmap-hero p{font-size:14px;color:var(--muted);line-height:1.82;max-width:620px;}
.vmap-stat-row{display:flex;gap:9px;flex-wrap:wrap;margin-top:18px;}
.vmap-stat{display:inline-flex;align-items:center;gap:7px;padding:9px 13px;border-radius:999px;background:rgba(255,255,255,.82);border:1px solid rgba(170,196,228,.15);font-size:11px;color:var(--text);box-shadow:inset 0 1px 0 rgba(255,255,255,.8);}
.vmap-note{position:relative;z-index:1;padding:20px 22px;border-radius:22px;background:linear-gradient(180deg,rgba(255,255,255,.78),rgba(240,247,255,.95));border:1px solid rgba(170,196,228,.12);box-shadow:0 10px 28px rgba(30,50,80,.08);}
.vmap-note-label{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:10px;}
.vmap-note-title{font-family:'Cormorant Garamond',serif;font-size:28px;line-height:1.02;color:var(--text);margin-bottom:8px;}
.vmap-note p{font-size:13px;line-height:1.75;color:var(--muted);}
.vmap-filter-bar{display:flex;gap:8px;padding:14px 18px;background:#f4f8fd;border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none;}
.vmap-filter-bar::-webkit-scrollbar{display:none;}
.vmap-filter{appearance:none;border:1px solid #ddd;background:#fff;border-radius:999px;padding:8px 14px;font:inherit;font-size:12px;font-weight:600;color:var(--muted);cursor:pointer;white-space:nowrap;transition:all .18s;flex-shrink:0;}
.vmap-filter:hover,.vmap-filter:focus-visible{border-color:var(--gold-lt);color:var(--text);transform:translateY(-1px);outline:none;}
.vmap-filter.active{background:linear-gradient(180deg,var(--gold-lt),var(--gold));border-color:transparent;color:#fff;box-shadow:0 8px 18px rgba(47,95,167,.22);}
.vmap-body{display:grid;grid-template-columns:minmax(0,1.55fr) 360px;min-height:620px;}
.vmap-canvas-col{display:flex;flex-direction:column;background:#f4f8fd;border-right:1px solid var(--border);}
.vmap-stage{position:relative;flex:1;min-height:540px;padding:22px;}
.vmap-zoom-controls{position:absolute;top:38px;right:38px;display:flex;gap:10px;z-index:20;}
.vmap-zoom-btn{width:42px;height:42px;border:none;border-radius:14px;background:rgba(255,255,255,.92);color:var(--gold);box-shadow:0 10px 24px rgba(30,50,80,.12);font-size:20px;font-weight:700;cursor:pointer;transition:all .18s;}
.vmap-zoom-btn:hover,.vmap-zoom-btn:focus-visible{background:var(--gold);color:#fff;transform:translateY(-1px);outline:none;}
.vmap-scroll{height:100%;min-height:540px;overflow:auto;padding:12px;scrollbar-width:thin;scrollbar-color:rgba(47,95,167,.35) transparent;}
.vmap-art{position:relative;width:min(100%,calc(940px * var(--vmap-zoom,1)));margin:0 auto;transition:width .22s ease;}
.map-container{position:relative;overflow:hidden;border-radius:26px;border:1px solid rgba(170,196,228,.14);box-shadow:0 20px 38px rgba(30,50,80,.12);background:linear-gradient(180deg,#f8fbff,#eef5fd);}
#map-canvas{display:block;width:100%;height:auto;}
#map-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:14px;font-style:italic;background:#f4f8fd;z-index:2;}
#map-pins{position:absolute;inset:0;pointer-events:none;z-index:3;}
.map-pin{position:absolute;width:40px;height:40px;border-radius:50%;cursor:pointer;transform:translate(-50%,-50%);pointer-events:all;border:none;box-shadow:0 14px 24px rgba(0,0,0,.16);transition:transform .18s,box-shadow .18s,opacity .2s,background .18s,color .18s;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;font-family:Georgia,serif;color:var(--gold);line-height:1;background:#fff;}
.map-pin:before,.map-pin:after{content:'';position:absolute;border-radius:50%;opacity:0;transition:all .18s;}
.map-pin:before{inset:-8px;border:1px solid rgba(255,255,255,.85);}
.map-pin:after{inset:-14px;border:1px solid rgba(47,95,167,.28);transform:scale(.86);}
.map-pin:hover,.map-pin:focus-visible{transform:translate(-50%,-50%) scale(1.08);background:var(--gold);color:#fff;outline:none;}
.map-pin:hover:before,.map-pin:hover:after,.map-pin:focus-visible:before,.map-pin:focus-visible:after,.map-pin.active:before,.map-pin.active:after{opacity:1;}
.map-pin:hover:after,.map-pin:focus-visible:after,.map-pin.active:after{transform:scale(1);}
.map-pin.active{transform:translate(-50%,-50%) scale(1.14);background:linear-gradient(180deg,var(--gold-lt),var(--gold));color:#fff;box-shadow:0 18px 30px rgba(47,95,167,.28);}
.map-pin.dimmed{opacity:.18;transform:translate(-50%,-50%) scale(.92);}
.map-pin-tip{position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%);background:rgba(25,20,14,.9);color:#fff;font-size:11px;font-weight:500;white-space:nowrap;padding:6px 10px;border-radius:999px;pointer-events:none;opacity:0;transition:all .14s;font-family:system-ui,sans-serif;}
.map-pin:hover .map-pin-tip,.map-pin:focus-visible .map-pin-tip,.map-pin.active .map-pin-tip{opacity:1;transform:translateY(-50%) translateX(4px);}
.vmap-canvas-hint{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 16px;font-size:11px;color:var(--muted);background:#f4f8fd;border-top:1px solid var(--border);}
.vmap-canvas-hint strong{color:var(--text);}
.vmap-sidebar{display:flex;flex-direction:column;overflow:hidden;background:rgba(248,252,255,.66);}
.vmap-selected-card{padding:22px 22px 18px;border-bottom:1px solid var(--border);background:linear-gradient(160deg,#f4f8fd,#fff);min-height:168px;display:flex;flex-direction:column;justify-content:center;gap:12px;}
.vmap-sel-empty{color:var(--muted);font-size:12px;text-align:center;padding:18px 0;line-height:1.75;}
.vmap-sel-top{display:flex;align-items:flex-start;gap:14px;}
.vmap-sel-badge{width:54px;height:54px;border-radius:18px;display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:800;flex-shrink:0;background:linear-gradient(180deg,var(--gold-lt),var(--gold));color:#fff;box-shadow:0 14px 24px rgba(47,95,167,.18);}
.vmap-sel-cat{font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;margin-bottom:5px;color:var(--muted);}
.vmap-sel-name{font-family:'Cormorant Garamond',serif;font-size:30px;color:var(--text);line-height:.94;}
.vmap-sel-num{font-size:11px;color:var(--muted);}
.vmap-sel-detail{font-size:13px;color:var(--text);line-height:1.74;}
.vmap-sel-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.vmap-sel-metric{padding:12px;border-radius:15px;border:1px solid rgba(170,196,228,.12);background:#f4f9ff;}
.vmap-sel-metric strong{display:block;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:5px;}
.vmap-sel-metric span{display:block;font-size:12px;color:var(--text);line-height:1.55;}
.vmap-list-head{padding:12px 18px 10px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:700;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;background:#f8fbff;}
.vmap-list-head span{font-size:11px;color:var(--muted);font-weight:400;letter-spacing:0;text-transform:none;}
.vmap-list-scroll{flex:1;overflow-y:auto;padding:10px;}
.vmap-list-item{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:12px;border-radius:18px;cursor:pointer;transition:all .16s;border:none;background:transparent;width:100%;text-align:left;}
.vmap-list-item:hover,.vmap-list-item:focus-visible{background:#fff;box-shadow:0 10px 20px rgba(30,50,80,.07);transform:translateY(-1px);outline:none;}
.vmap-list-item.active{background:linear-gradient(180deg,#eaf2fb,#f4f9ff);box-shadow:0 12px 22px rgba(47,95,167,.1);}
.vmap-list-item.hidden{display:none;}
.vmap-list-pin{width:34px;height:34px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;color:var(--gold);flex-shrink:0;font-family:Georgia,serif;background:#fff;box-shadow:inset 0 0 0 1px rgba(170,196,228,.12);}
.vmap-list-meta{min-width:0;}
.vmap-list-name{font-size:14px;font-weight:700;color:var(--text);margin-bottom:4px;}
.vmap-list-copy{font-size:11px;line-height:1.55;color:var(--muted);}
.vmap-list-tag{font-size:9px;letter-spacing:.08em;text-transform:uppercase;padding:4px 8px;border-radius:999px;font-weight:700;flex-shrink:0;background:#fff;border:1px solid rgba(170,196,228,.12);color:var(--gold);}
/* ── LOCATION PAGE ── */
.location-wrapper{display:flex;flex-direction:column;gap:20px;}
/* Venue hero card */
.loc-venue-hero{background:linear-gradient(135deg,#fff 0%,#f0f6fd 50%,#e4f0fb 100%);border-radius:28px;padding:30px 34px;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;box-shadow:var(--shadow);}
.loc-venue-hero-text{color:var(--text);}
.loc-venue-eyebrow{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;}
.loc-venue-name{font-family:'Cormorant Garamond',serif;font-size:38px;font-weight:600;color:var(--text);line-height:1.05;margin-bottom:8px;}
.loc-venue-addr{font-size:14px;color:var(--text);margin-bottom:4px;}
.loc-venue-desc{font-size:12px;color:var(--muted);}
/* Navigation quick-launch buttons */
.loc-nav-strip{display:flex;flex-direction:column;gap:9px;min-width:180px;}
.loc-nav-btn{display:flex;align-items:center;gap:10px;padding:11px 16px;border-radius:12px;text-decoration:none;font-size:13px;font-weight:600;transition:all .18s;white-space:nowrap;}
.loc-nav-btn-label{display:flex;flex-direction:column;gap:1px;}
.loc-nav-btn-label small{font-size:10px;font-weight:400;opacity:.7;}
.loc-nav-btn.gmaps{background:#fff;color:#1a1a1a;}
.loc-nav-btn.gmaps:hover{background:#f0f4ff;transform:translateX(2px);}
.loc-nav-btn.apple{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.2);}
.loc-nav-btn.apple:hover{background:rgba(255,255,255,.2);transform:translateX(2px);}
.loc-nav-btn.waze{background:#09d3c2;color:#fff;}
.loc-nav-btn.waze:hover{background:#07b8a9;transform:translateX(2px);}
.loc-nav-btn-icon{width:28px;height:28px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:7px;font-size:17px;}
/* Map frame */
.loc-map-frame{border-radius:16px;overflow:hidden;box-shadow:0 8px 32px rgba(30,50,80,.12);border:1px solid var(--border);position:relative;background:var(--cream2);}
#llw-map-embed{width:100%;height:480px;display:block;border:none;}
.loc-map-overlay-hint{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);background:rgba(255,255,255,.92);backdrop-filter:blur(6px);border:1px solid var(--border);border-radius:999px;padding:6px 14px;font-size:11px;color:var(--muted);white-space:nowrap;pointer-events:none;box-shadow:0 2px 8px rgba(0,0,0,.08);}
/* Info row */
.location-info-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.location-card{background:var(--white);border:1px solid var(--border);border-radius:16px;padding:22px 24px;box-shadow:0 4px 16px rgba(30,50,80,.05);}
.location-card h3{font-family:Georgia,serif;font-size:15px;color:var(--gold);margin-bottom:14px;font-weight:normal;letter-spacing:.3px;border-bottom:1px solid var(--gold-bg);padding-bottom:10px;}
.loc-row{display:flex;align-items:flex-start;gap:12px;padding:9px 0;border-bottom:1px solid var(--cream2);font-size:13px;}
.loc-row:last-child{border-bottom:none;}
.loc-icon-wrap{width:32px;height:32px;border-radius:9px;background:var(--gold-bg);display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0;}
.loc-text{color:var(--text);line-height:1.5;}
.loc-text strong{display:block;font-size:13px;margin-bottom:1px;}
.loc-text small{display:block;color:var(--muted);font-size:11px;}
.loc-note{font-size:11px;color:var(--muted);font-style:italic;text-align:center;margin-top:6px;}
.nearby-section{background:linear-gradient(180deg,#f4f8fd 0%,#eef5fc 100%);border:1px solid var(--border);border-radius:18px;padding:22px;box-shadow:0 10px 24px rgba(30,50,80,.06);}
.nearby-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;padding-bottom:16px;border-bottom:1px solid #d5e3f0;}
.nearby-title-wrap h2{font-family:Georgia,serif;font-size:26px;color:#1a2232;line-height:1.1;margin-bottom:8px;}
.nearby-title-wrap p{font-size:13px;color:#546278;max-width:620px;line-height:1.65;}
.nearby-chips{display:flex;gap:8px;flex-wrap:wrap;}
.nearby-chip{display:inline-flex;align-items:center;padding:8px 12px;border-radius:999px;background:#fff;border:1px solid #c8daea;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#546278;font-weight:600;}
.nearby-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:18px;}
.nearby-card{background:rgba(255,255,255,.82);border:1px solid #c8daea;border-radius:16px;padding:18px 18px 16px;backdrop-filter:blur(2px);}
.nearby-card h3{display:flex;align-items:center;gap:10px;font-family:Georgia,serif;font-size:16px;color:#1a2232;margin-bottom:14px;}
.nearby-icon{width:34px;height:34px;border-radius:10px;background:#dbeeff;display:inline-flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;}
.nearby-list{display:flex;flex-direction:column;gap:12px;}
.nearby-item{padding:0 0 12px;border-bottom:1px solid #d8e8f4;}
.nearby-item:last-child{padding-bottom:0;border-bottom:none;}
.nearby-item-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:4px;}
.nearby-item-name{font-size:14px;font-weight:600;color:#2f2a23;line-height:1.35;}
.nearby-item-tag{font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:#546278;background:#eaf2fb;border:1px solid #c8daea;border-radius:999px;padding:4px 8px;white-space:nowrap;}
.nearby-item-desc{font-size:12px;color:#546278;line-height:1.55;margin-bottom:5px;}
.nearby-meta{font-size:12px;color:#4a5e70;line-height:1.55;}
.nearby-meta strong{color:#1a2232;}
.nearby-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px;}
.nearby-link,.nearby-phone{display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;border-radius:999px;font-size:11px;text-decoration:none;transition:all .18s ease;}
.nearby-link{background:#fff;border:1px solid #c8daea;color:#2f5fa7;}
.nearby-link:hover{border-color:#2f5fa7;background:#f0f7ff;}
.nearby-phone{background:#eaf2fb;border:1px solid #a8c5e8;color:#2f5fa7;}

/* ── TABLE PLANNER ── */
.planner-shell{display:flex;flex-direction:column;gap:18px;}
.planner-hero{background:linear-gradient(135deg,#fff 0%,#f0f6fd 52%,#e4f0fb 100%);border:1px solid var(--border);border-radius:28px;padding:28px;box-shadow:var(--shadow);}
.planner-hero-top{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;flex-wrap:wrap;}
.planner-hero h1{font-family:'Cormorant Garamond',serif;font-size:42px;color:var(--text);font-weight:600;margin-bottom:8px;line-height:1.05;}
.planner-hero p{font-size:14px;color:var(--muted);line-height:1.7;max-width:760px;}
.planner-meta-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px;}
.planner-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.88);border:1px solid #c8daea;color:#546278;font-size:11px;letter-spacing:.08em;text-transform:uppercase;}
.planner-toolbar-card,.planner-canvas-card{background:var(--white);border:1px solid var(--border);border-radius:16px;box-shadow:0 10px 28px rgba(30,50,80,.05);}
.planner-toolbar-card{padding:18px;}
.planner-toolbar-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:14px;}
.planner-toolbar-head h2{font-family:Georgia,serif;font-size:18px;color:var(--gold);font-weight:normal;margin-bottom:6px;}
.planner-toolbar-head p{font-size:12px;color:var(--muted);line-height:1.6;}
.planner-tool-grid,.planner-action-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;}
.planner-tool-btn,.planner-action-btn,.planner-inline-btn{appearance:none;border:1px solid var(--border);background:#fff;border-radius:12px;padding:13px 14px;font:inherit;color:var(--text);cursor:pointer;text-align:left;transition:transform .15s,box-shadow .15s,border-color .15s,background .15s;}
.planner-tool-btn:hover,.planner-action-btn:hover,.planner-inline-btn:hover{transform:translateY(-1px);border-color:var(--gold-lt);box-shadow:0 10px 20px rgba(47,95,167,.08);}
.planner-tool-btn.active{background:var(--gold-bg);border-color:var(--gold);box-shadow:0 12px 24px rgba(47,95,167,.12);}
.planner-tool-btn strong,.planner-action-btn strong{display:block;font-size:13px;margin-bottom:3px;}
.planner-tool-btn span,.planner-action-btn span{display:block;font-size:11px;color:var(--muted);line-height:1.5;}
.planner-workspace{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;align-items:start;}
.planner-inspector{display:none;}
.planner-canvas-card{padding:18px;}
.planner-canvas-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap;margin-bottom:14px;}
.planner-room-summary strong{display:block;font-size:15px;color:var(--text);margin-bottom:4px;}
.planner-room-summary span{font-size:12px;color:var(--muted);}
.planner-status{font-size:12px;color:var(--muted);padding:9px 12px;border-radius:999px;background:var(--cream2);border:1px solid #d8e8f4;min-height:38px;display:flex;align-items:center;}
.planner-status.ok{color:var(--green);background:#eef5ee;border-color:#cdddcf;}
.planner-status.err{color:var(--red);background:#fbefef;border-color:#ecd3d3;}
.planner-status.warn{color:#2f5fa7;background:#eaf2fb;border-color:#a8c5e8;}
.planner-canvas-wrap{border:1px solid #c8daea;border-radius:18px;background:
  radial-gradient(circle at top left,rgba(255,255,255,.95),rgba(255,255,255,.6) 32%,transparent 60%),
  linear-gradient(180deg,#f4f8fd 0%,#eef5fb 100%);
  padding:18px;
}
.planner-svg-frame{position:relative;border-radius:14px;overflow:hidden;background:
  linear-gradient(0deg,rgba(255,255,255,.7),rgba(255,255,255,.7)),
  linear-gradient(90deg,rgba(168,197,232,.26) 1px,transparent 1px),
  linear-gradient(rgba(168,197,232,.26) 1px,transparent 1px);
  background-size:auto,40px 40px,40px 40px;
  border:1px solid #c8daea;
  min-height:560px;
}
#planner-svg{display:block;width:100%;height:auto;touch-action:none;cursor:default;}
.planner-workspace.is-placing #planner-svg{cursor:crosshair;}
.planner-inspector{display:flex;flex-direction:column;gap:14px;}
.planner-inspector-card{padding:18px;}
.planner-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.planner-field{display:flex;flex-direction:column;gap:6px;margin-top:12px;}
.planner-field label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);}
.planner-field input,.planner-field select{background:#f8fbff;}
.planner-section-note{margin-top:12px;padding:12px;border-radius:12px;background:var(--cream);border:1px dashed #c8daea;font-size:12px;color:var(--muted);line-height:1.6;}
.planner-selection-title{font-size:16px;color:var(--text);margin-top:4px;}
.planner-selection-meta{margin-top:6px;font-size:12px;color:var(--muted);}
.planner-selection-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px;}
.planner-inline-btn{padding:11px 12px;text-align:center;}
.planner-inline-btn.danger{border-color:#e1b8b8;background:#fff7f7;color:#8a3c3c;}
.planner-empty-state{padding:14px 0 2px;font-size:12px;color:var(--muted);line-height:1.7;}
.planner-shortcuts{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;}
.planner-shortcuts span{font-size:11px;color:var(--muted);background:var(--cream2);border:1px solid #c8daea;border-radius:999px;padding:6px 10px;}
.planner-room-outline{fill:#fffdfa;stroke:#2F5FA7;stroke-width:4;}
.planner-zone-fill{fill:#eaf2fb;stroke:#a8c5e8;stroke-width:2.5;stroke-dasharray:10 8;}
.planner-zone-label{font-family:Georgia,serif;font-size:22px;fill:#3a6090;opacity:.9;letter-spacing:1px;}
.planner-room-label{font-family:Georgia,serif;font-size:28px;fill:#2f5fa7;letter-spacing:2px;}
.planner-aisle{fill:rgba(255,255,255,.78);stroke:#a8c5e8;stroke-width:2;stroke-dasharray:12 10;}
.planner-object-shape{stroke:#3a5878;stroke-width:2;vector-effect:non-scaling-stroke;}
.planner-object-round{fill:#dbeeff;}
.planner-object-rect{fill:#d5e8fb;}
.planner-object-special{fill:#d7e6d3;}
.planner-object-door{fill:#fff;stroke:#6090b8;}
.planner-object-custom{fill:#e7edf3;}
.planner-object-selected .planner-object-shape{stroke:#295f8a;stroke-width:3;}
.planner-object-label{font-size:18px;font-weight:600;fill:#1a2232;text-anchor:middle;pointer-events:none;}
.planner-object-sub{font-size:12px;fill:#546070;text-anchor:middle;pointer-events:none;}
.planner-overlay-outline{fill:none;stroke:#2f6f9f;stroke-width:3;stroke-dasharray:10 6;vector-effect:non-scaling-stroke;}
.planner-handle{fill:#fff;stroke:#2f6f9f;stroke-width:3;vector-effect:non-scaling-stroke;cursor:nwse-resize;}
.planner-handle[data-handle="ne"],.planner-handle[data-handle="sw"]{cursor:nesw-resize;}
.planner-rotate-line{stroke:#2f6f9f;stroke-width:2;vector-effect:non-scaling-stroke;}
.planner-rotate-handle{fill:#2f6f9f;stroke:#fff;stroke-width:3;vector-effect:non-scaling-stroke;cursor:grab;}
.planner-ghost{opacity:.45;pointer-events:none;}
.planner-legend-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;}
.planner-legend-chip{font-size:11px;color:#546278;border:1px solid #c2d4e6;border-radius:999px;background:#fff;padding:7px 10px;}
/* ═══ PLANNER MODE TOGGLE ═══ */
.planner-mode-toggle{display:flex;gap:4px;background:var(--cream2);border:1px solid var(--border);border-radius:14px;padding:4px;max-width:360px;}
.planner-mode-btn{flex:1;appearance:none;border:1px solid transparent;background:transparent;border-radius:10px;padding:11px 16px;font:inherit;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;transition:all .2s;text-align:center;}
.planner-mode-btn:hover{color:var(--text);background:rgba(255,255,255,.6);}
.planner-mode-btn.active{background:#fff;color:var(--text);border-color:var(--border);box-shadow:0 2px 8px rgba(30,50,80,.08);}
.planner-mode-btn[aria-pressed="true"]{background:#fff;color:var(--text);border-color:var(--border);box-shadow:0 2px 8px rgba(30,50,80,.08);}
.planner-mode-btn:focus-visible{outline:2px solid var(--gold);outline-offset:2px;}
.seating-action-btn:focus-visible,.seating-add-btn:focus-visible,.seating-assign-btn:focus-visible,.seating-clear-table-btn:focus-visible{outline:2px solid var(--gold);outline-offset:2px;}
/* ═══ SEATING SIDEBAR ═══ */
.planner-seating-sidebar{display:flex;flex-direction:column;gap:14px;min-width:0;}
.seating-sidebar-card{background:var(--white);border:1px solid var(--border);border-radius:16px;padding:18px;box-shadow:0 10px 28px rgba(30,50,80,.05);}
.seating-sidebar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;}
.seating-sidebar-header h3{font-family:Georgia,serif;font-size:16px;color:var(--gold);font-weight:normal;margin:0;}
.seating-summary{font-size:12px;color:var(--muted);background:var(--cream2);border:1px solid #d8e8f4;border-radius:999px;padding:5px 12px;}
.seating-add-row{display:flex;gap:6px;}
.seating-add-row input{flex:1;min-width:0;}
.seating-add-btn{appearance:none;width:38px;height:38px;border:1px solid var(--border);background:var(--gold-bg);color:var(--gold);border-radius:10px;font-size:20px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0;}
.seating-add-btn:hover{background:var(--gold);color:#fff;border-color:var(--gold);}
.seating-add-extras{display:flex;flex-direction:column;gap:6px;margin-top:6px;}
.seating-add-extras input{width:100%;}
.seating-toggle-extras{appearance:none;border:none;background:none;color:var(--gold);font-size:11px;font-weight:600;cursor:pointer;padding:4px 0;text-align:left;letter-spacing:.04em;}
.seating-toggle-extras:hover{text-decoration:underline;}
.seating-filter-row{display:flex;gap:6px;margin-top:10px;}
.seating-filter-row input{flex:1;min-width:0;font-size:12px;}
.seating-filter-row select{font-size:12px;min-width:110px;background:#f8fbff;}
.seating-guest-list{max-height:340px;overflow-y:auto;margin-top:10px;border:1px solid #eef2f7;border-radius:10px;}
.seating-guest-item{display:flex;align-items:center;gap:8px;padding:9px 12px;border-bottom:1px solid #f0f4f8;font-size:13px;color:var(--text);cursor:pointer;transition:background .12s;}
.seating-guest-item:last-child{border-bottom:none;}
.seating-guest-item:hover{background:#f6faff;}
.seating-guest-item.is-selected{background:#eaf2fb;}
.seating-guest-item:focus-visible{outline:2px solid var(--gold);outline-offset:-2px;background:#eef5fb;}
.seating-guest-dot{width:8px;height:8px;border-radius:999px;background:#c8d4e0;flex-shrink:0;transition:box-shadow .15s;}
.seating-guest-dot.assigned{box-shadow:0 0 0 2.5px rgba(47,95,167,.25);}
.seating-guest-dot.overfull{background:var(--red);}
.seating-guest-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.seating-guest-table{font-size:11px;color:var(--muted);flex-shrink:0;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.seating-guest-remove{appearance:none;border:none;background:none;color:#c0c8d4;font-size:15px;cursor:pointer;padding:2px 4px;line-height:1;flex-shrink:0;transition:color .12s;}
.seating-guest-remove:hover{color:var(--red);}
.seating-empty-state{padding:24px 14px;text-align:center;font-size:12px;color:var(--muted);line-height:1.7;font-style:italic;}
/* ── RSVP & Meal badges ── */
.seating-rsvp-badge{width:16px;height:16px;border-radius:999px;font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;line-height:1;}
.seating-rsvp-badge.rsvp-accepted{background:#eef5ee;color:#3a7a3a;border:1px solid #cdddcf;}
.seating-rsvp-badge.rsvp-declined{background:#fbefef;color:#a03030;border:1px solid #ecd3d3;}
.seating-rsvp-badge.rsvp-tentative{background:#fef9e7;color:#8a6d00;border:1px solid #e8dbb0;}
.seating-meal-tag{font-size:9px;font-weight:600;color:var(--muted);background:var(--cream2);border:1px solid #d8e8f4;border-radius:6px;padding:2px 5px;flex-shrink:0;text-transform:uppercase;letter-spacing:.03em;}
.seating-rsvp-mini{font-size:11px;font-weight:700;flex-shrink:0;line-height:1;}
.seating-rsvp-mini.rsvp-accepted{color:#3a7a3a;}
.seating-rsvp-mini.rsvp-declined{color:#a03030;}
.seating-add-extras-row{display:flex;gap:6px;}
.seating-add-extras-row select{flex:1;min-width:0;font-size:12px;}
/* ── Seat number input ── */
.seating-seat-input{width:32px!important;height:24px;padding:2px 4px!important;border:1px solid #d8e8f4;border-radius:6px;font-size:11px;font-weight:700;color:var(--muted);text-align:center;flex-shrink:0;background:var(--cream2);}
.seating-seat-input:focus{border-color:var(--gold);outline:none;box-shadow:0 0 0 2px rgba(47,95,167,.15);}
.seating-table-guest-meal{font-size:9px;color:var(--muted);background:var(--cream2);border:1px solid #d8e8f4;border-radius:5px;padding:1px 5px;flex-shrink:0;text-transform:uppercase;}
.seating-actions-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px;}
.seating-action-btn{appearance:none;border:1px solid var(--border);background:#fff;border-radius:10px;padding:10px 10px;font:inherit;font-size:12px;font-weight:600;color:var(--text);cursor:pointer;text-align:center;transition:all .15s;white-space:normal;overflow:visible;line-height:1.3;}
.seating-action-btn:hover{border-color:var(--gold-lt);box-shadow:0 4px 12px rgba(47,95,167,.08);transform:translateY(-1px);}
.seating-action-btn.primary{grid-column:1 / -1;background:var(--gold);color:#fff;border-color:var(--gold);}
.seating-action-btn.primary:hover{background:var(--gold-dk,#24497e);border-color:var(--gold-dk,#24497e);box-shadow:0 4px 14px rgba(47,95,167,.18);}
/* ── Table detail panel ── */
.seating-table-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;}
.seating-table-header h3{font-family:Georgia,serif;font-size:15px;color:var(--text);font-weight:600;margin:0;}
.seating-table-count{font-size:12px;font-weight:700;color:var(--muted);background:var(--cream2);border:1px solid #d8e8f4;border-radius:999px;padding:4px 12px;}
.seating-table-count.full{color:var(--green);background:#eef5ee;border-color:#cdddcf;}
.seating-table-count.overfull{color:var(--red);background:#fbefef;border-color:#ecd3d3;}
.seating-table-guests{border:1px solid #eef2f7;border-radius:10px;min-height:40px;}
.seating-table-guest-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid #f0f4f8;font-size:13px;color:var(--text);}
.seating-table-guest-item:last-child{border-bottom:none;}
.seating-table-guest-num{width:20px;height:20px;border-radius:999px;background:var(--cream2);border:1px solid #d8e8f4;font-size:10px;font-weight:700;color:var(--muted);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.seating-table-guest-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.seating-table-guest-remove{appearance:none;border:none;background:none;color:#c0c8d4;font-size:14px;cursor:pointer;padding:2px 4px;line-height:1;flex-shrink:0;transition:color .12s;}
.seating-table-guest-remove:hover{color:var(--red);}
.seating-table-empty{padding:16px 12px;text-align:center;font-size:12px;color:var(--muted);font-style:italic;}
.seating-assign-row{display:flex;gap:6px;margin-top:10px;}
.seating-assign-row select{flex:1;min-width:0;font-size:12px;background:#f8fbff;}
.seating-assign-btn{appearance:none;border:1px solid var(--gold);background:var(--gold-bg);color:var(--gold);border-radius:10px;padding:8px 14px;font:inherit;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s;flex-shrink:0;}
.seating-assign-btn:hover{background:var(--gold);color:#fff;}
.seating-clear-table-btn{appearance:none;border:1px solid #e1d0d0;background:#fff7f7;color:#8a3c3c;border-radius:10px;padding:8px 12px;font:inherit;font-size:11px;font-weight:600;cursor:pointer;margin-top:8px;width:100%;text-align:center;transition:all .15s;}
.seating-clear-table-btn:hover{background:#f5e5e5;border-color:#d4b4b4;}
/* ── SVG seating badges ── */
.seating-badge-bg{fill:#fff;stroke:var(--gold);stroke-width:2;vector-effect:non-scaling-stroke;}
.seating-badge-bg.full{fill:#eef5ee;stroke:#5a9a5a;}
.seating-badge-bg.overfull{fill:#fbefef;stroke:#c04040;}
.seating-badge:focus-visible .seating-badge-bg{stroke:#2f5fa7;stroke-width:3;}
.seating-badge-text{font-size:13px;font-weight:700;fill:var(--gold);text-anchor:middle;dominant-baseline:central;pointer-events:none;}
.seating-badge-text.full{fill:#3a7a3a;}
.seating-badge-text.overfull{fill:#a03030;}
.seating-badge-check{fill:#3a7a3a;font-size:14px;text-anchor:middle;dominant-baseline:central;pointer-events:none;}
/* ── Seating mode canvas overlay ── */
.planner-workspace.seating-mode .planner-object{cursor:pointer;}
.planner-workspace.seating-mode .planner-handle,.planner-workspace.seating-mode .planner-rotate-handle,.planner-workspace.seating-mode .planner-rotate-line{display:none;}
.planner-workspace.seating-mode{grid-template-columns:minmax(270px,320px) minmax(0,1fr);gap:18px;}
.planner-workspace.seating-mode .planner-seating-sidebar{display:flex;order:-1;}
.planner-workspace.seating-mode .planner-inspector{display:none !important;}
/* ═══ DESKTOP INSPECTOR ═══ */
@media (min-width: 1100px){
  .planner-workspace{grid-template-columns:minmax(0,1fr) 300px;}
  .planner-inspector{display:flex !important;flex-direction:column;gap:14px;}
  .planner-workspace.seating-mode{grid-template-columns:300px minmax(0,1fr);}
}
/* ═══ HOVER TOOLTIP ═══ */
.seating-hover-tooltip{position:absolute;pointer-events:none;z-index:200;background:#fff;border:1px solid var(--border);border-radius:12px;padding:10px 14px;box-shadow:0 8px 24px rgba(30,50,80,.12);max-width:220px;font-size:12px;color:var(--text);line-height:1.6;display:none;}
.seating-hover-tooltip strong{display:block;font-size:13px;margin-bottom:4px;color:var(--text);}
.seating-hover-tooltip .tooltip-guest{color:var(--muted);}
.seating-hover-tooltip .tooltip-empty{color:var(--muted);font-style:italic;}
/* ═══ DRAG AND DROP ═══ */
.seating-guest-item[draggable="true"]{cursor:grab;}
.seating-guest-item[draggable="true"]:active{cursor:grabbing;}
.seating-guest-item.dragging{opacity:.35;transform:scale(.97);}
.planner-workspace.seating-mode.drag-active .planner-object[data-kind="table"] .planner-object-shape{stroke-dasharray:6 4;stroke:var(--gold);stroke-width:3;transition:stroke .15s,stroke-dasharray .15s;}
.planner-object.drag-hover .planner-object-shape{stroke:var(--gold) !important;stroke-width:4 !important;stroke-dasharray:none !important;filter:drop-shadow(0 0 6px rgba(47,95,167,.3));}
/* ═══ PARTY GROUP LEGEND ═══ */
.seating-group-legend{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;padding-top:10px;border-top:1px solid #eef2f7;}
.seating-group-chip{display:inline-flex;align-items:center;gap:5px;font-size:10px;color:var(--muted);padding:3px 8px;border-radius:999px;background:#f8fbff;border:1px solid #eef2f7;}
.seating-group-chip-dot{width:7px;height:7px;border-radius:999px;flex-shrink:0;}
/* ═══ SEATING RESPONSIVE ═══ */
@media (max-width:760px){
  .location-info-row,.nearby-grid{grid-template-columns:1fr;}
  .loc-venue-hero{flex-direction:column;padding:22px 20px;}
  .loc-nav-strip{flex-direction:row;flex-wrap:wrap;}
  #llw-map-embed{height:340px;}
  .nearby-section{padding:18px 16px;}
  .nearby-title-wrap h2{font-size:22px;}
  .planner-hero{padding:20px 18px;}
  .planner-hero h1{font-size:26px;}
  .planner-workspace{grid-template-columns:1fr;}
  .planner-workspace.seating-mode{grid-template-columns:1fr;}
  .planner-field-grid,.planner-selection-actions{grid-template-columns:1fr;}
  .planner-svg-frame{min-height:420px;}
  .planner-seating-sidebar{order:2;}
  .planner-mode-toggle{max-width:100%;}
  .seating-guest-list{max-height:240px;}
  .seating-filter-row{flex-wrap:wrap;}
  .seating-filter-row select{min-width:0;flex:1;}
}
@media (max-width:640px){
  #login-screen{padding:24px 18px;}
  .login-logo{font-size:40px;}
  .login-card h2{font-size:18px;}
  .quick-links{grid-template-columns:1fr;}
  .form-header h1{font-size:32px;}
  .progress-card,.info-card,.overview-welcome{padding:22px 20px;}
}

@media (max-width:900px){
  .vmap-body{grid-template-columns:1fr;}
  .vmap-canvas-col{border-right:none;border-bottom:1px solid var(--border);}
  .vmap-selected-card{min-height:auto;}
  .vmap-list-scroll{max-height:340px;}
  .vmap-hero{grid-template-columns:1fr;}
}

@media (max-width:760px){
  .vmap-hero{padding:24px 20px;}
  .vmap-hero h1{font-size:32px;}
  .vmap-note-title{font-size:24px;}
  .vmap-filter-bar{padding:12px 14px;}
  .vmap-stage{padding:14px;}
  .vmap-zoom-controls{top:26px;right:26px;}
  .vmap-scroll{padding:6px;min-height:440px;}
  .vmap-art{width:max(100%,calc(700px * var(--vmap-zoom,1)));}
  .map-pin{width:42px;height:42px;}
  .vmap-selected-card{padding:18px;}
  .vmap-sel-name{font-size:24px;}
  .vmap-sel-grid{grid-template-columns:1fr;}
  .vmap-list-item{grid-template-columns:auto 1fr;}
  .vmap-list-tag{grid-column:2;justify-self:start;}
  .planner-canvas-topbar-right{width:100%;align-items:stretch;}
  .planner-guest-badge{justify-content:center;white-space:normal;}
  .planner-ur-wrap{width:100%;justify-content:space-between;flex-wrap:wrap;}
}

@media (max-width:640px){
  .msg-input-row{flex-direction:column;}
  .msg-send-btn{width:100%;align-self:stretch;min-height:46px;}
  .save-bar{flex-direction:column;align-items:stretch;gap:12px;}
  .save-btn{width:100%;text-align:center;min-height:48px;}
  .save-status{min-height:18px;}
  .form-table{
    display:block;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }
  .form-table thead,
  .form-table tbody{
    display:table;
    width:max-content;
    min-width:100%;
  }
  .form-table th,
  .form-table td{white-space:nowrap;}
  .lodge-header{display:flex;flex-direction:column;gap:6px;}
  .lodge-header span{margin-left:0;}
  input[type=text],
  input[type=tel],
  input[type=time],
  input[type=date],
  input[type=number],
  textarea,
  select,
  .login-card input[type=text],
  .login-card input[type=password],
  .msg-input{
    font-size:16px;
  }
}
/* ── TABLE PLANNER ENHANCEMENTS ── */
.planner-tool-cat{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:600;margin:14px 0 8px;display:block;padding-bottom:6px;border-bottom:1px solid var(--border);}
.planner-tool-cat:first-of-type{margin-top:0;}
.planner-tool-btn .ti{font-size:19px;display:block;margin-bottom:5px;}
.planner-action-btn.act-save{border-color:#b5d4b5;background:linear-gradient(135deg,#f4fbf4,#ecf7ec);}
.planner-action-btn.act-save strong{color:#2d6b2d;}
.planner-action-btn.act-load{border-color:#b5c9e4;background:linear-gradient(135deg,#f4f8fd,#ebf1fa);}
.planner-action-btn.act-load strong{color:#2d4f8a;}
.planner-action-btn.act-reset{border-color:#e4d0b5;background:linear-gradient(135deg,#fdf9f3,#faf1e4);}
.planner-action-btn.act-print{border-color:#d0d0d0;background:linear-gradient(135deg,#fbfbfb,#f5f5f5);}
.planner-ur-wrap{display:flex;gap:8px;align-items:center;}
.planner-ur-btn{appearance:none;border:1px solid var(--border);background:#fff;border-radius:9px;padding:8px 13px;font:inherit;font-size:12px;color:var(--muted);cursor:pointer;transition:all .15s;white-space:nowrap;line-height:1;}
.planner-ur-btn:hover:not(:disabled){border-color:var(--gold-lt);color:var(--text);background:var(--gold-bg);}
.planner-ur-btn:disabled{opacity:.34;cursor:not-allowed;}
.planner-canvas-topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap;margin-bottom:14px;}
.planner-canvas-topbar-right{display:flex;flex-direction:column;align-items:flex-end;gap:8px;}
.planner-guest-badge{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:999px;background:var(--gold-bg);border:1px solid var(--gold-lt);font-size:13px;color:#2f5fa7;font-weight:600;white-space:nowrap;}
.planner-guest-badge small{font-size:10px;font-weight:400;color:var(--muted);letter-spacing:.05em;text-transform:uppercase;margin-left:2px;}
.planner-snap-row{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:12px;color:var(--muted);}
.planner-snap-row input[type=checkbox]{accent-color:var(--gold);width:15px;height:15px;cursor:pointer;flex-shrink:0;}
.planner-snap-row label{cursor:pointer;}
.planner-layer-btns{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:12px;}
.planner-layer-btn{appearance:none;border:1px solid var(--border);background:#fff;border-radius:9px;padding:9px 8px;font:inherit;font-size:11px;color:var(--muted);cursor:pointer;transition:all .15s;text-align:center;line-height:1.4;}
.planner-layer-btn:hover:not(:disabled){border-color:var(--gold-lt);color:var(--text);background:var(--gold-bg);}
.planner-layer-btn:disabled{opacity:.34;cursor:not-allowed;}
.planner-obj-list-card{background:var(--white);border:1px solid var(--border);border-radius:16px;box-shadow:0 10px 28px rgba(30,50,80,.05);padding:18px;}
.planner-obj-list-card h3{font-family:Georgia,serif;font-size:17px;color:var(--gold);font-weight:normal;margin-bottom:3px;}
.planner-obj-list-card>p{font-size:12px;color:var(--muted);line-height:1.6;margin-bottom:10px;}
.planner-obj-list-scroll{max-height:220px;overflow-y:auto;display:flex;flex-direction:column;gap:2px;}
.planner-obj-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;cursor:pointer;transition:background .12s;font-size:13px;border:1px solid transparent;}
.planner-obj-item:hover{background:var(--cream2);}
.planner-obj-item.is-sel{background:var(--gold-bg);border-color:var(--gold-lt);}
.planner-obj-item:focus-visible{outline:2px solid var(--gold);outline-offset:2px;background:var(--gold-bg);}
.planner-obj-item .oi{font-size:14px;flex-shrink:0;width:22px;text-align:center;}
.planner-obj-item .on{flex:1;font-weight:500;color:var(--text);}
.planner-obj-item .oc{font-size:11px;color:var(--muted);}
.planner-obj-list-empty{font-size:12px;color:var(--muted);padding:6px 2px;font-style:italic;}

/* ── TEMPLATE LIBRARY ── */
.planner-template-section{background:var(--white);border:1px solid var(--border);border-radius:16px;box-shadow:0 10px 28px rgba(30,50,80,.05);padding:18px;}
.planner-template-head{margin-bottom:14px;}
.planner-template-head h2{font-family:Georgia,serif;font-size:18px;color:var(--gold);font-weight:normal;margin-bottom:6px;}
.planner-template-head p{font-size:12px;color:var(--muted);line-height:1.6;}
.planner-tpl-scroll{display:flex;gap:12px;overflow-x:auto;padding:4px 2px 14px;scrollbar-width:thin;}
.planner-tpl-scroll::-webkit-scrollbar{height:5px;}
.planner-tpl-scroll::-webkit-scrollbar-thumb{background:var(--border);border-radius:999px;}
.planner-tpl-card{flex-shrink:0;width:175px;border:1px solid var(--border);border-radius:14px;background:#fff;cursor:pointer;transition:all .18s ease;overflow:hidden;text-align:left;appearance:none;font:inherit;padding:0;}
.planner-tpl-card:hover{border-color:var(--gold-lt);box-shadow:0 10px 20px rgba(47,95,167,.1);transform:translateY(-2px);}
.planner-tpl-card.active{border-color:var(--gold);box-shadow:0 12px 24px rgba(47,95,167,.14);background:var(--gold-bg);}
.planner-tpl-preview{display:block;width:100%;height:auto;border-bottom:1px solid var(--border);}
.planner-tpl-body{padding:10px 12px;}
.planner-tpl-guests{font-size:14px;font-weight:700;color:var(--text);display:block;margin-bottom:3px;}
.planner-tpl-sub{font-size:11px;color:var(--muted);line-height:1.5;display:block;}
.planner-tpl-blank{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;padding:18px 12px;border:1px dashed var(--border);border-radius:14px;cursor:pointer;transition:all .18s ease;font:inherit;background:transparent;color:var(--muted);font-size:12px;flex-shrink:0;width:120px;}
.planner-tpl-blank:hover{border-color:var(--gold-lt);color:var(--text);background:var(--cream2);}
.planner-tpl-blank strong{font-size:22px;line-height:1;}

/* ── BARN ROOM LAYER ── */
.planner-barn-outer{fill:#f4f8fd;stroke:#2c1f0e;stroke-width:6;}
.planner-barn-room{fill:#ddeaf7;stroke:#2c1f0e;stroke-width:4;}
.planner-barn-wall{fill:none;stroke:#2c1f0e;stroke-width:5;}
.planner-barn-door-post{fill:#2c1f0e;}
.planner-barn-lbl{font-family:Georgia,serif;fill:#2f5fa7;text-anchor:middle;dominant-baseline:middle;pointer-events:none;}
.planner-barn-lbl-sm{font-family:Georgia,serif;fill:#546278;text-anchor:middle;dominant-baseline:middle;letter-spacing:.5px;pointer-events:none;}
.planner-barn-exit-arc{fill:none;stroke:#2c1f0e;stroke-width:4;}
.planner-barn-dim{fill:none;stroke:#2c1f0e;stroke-width:1.5;}
.planner-barn-dim-txt{font-family:Georgia,serif;fill:#2c1f0e;font-size:13px;text-anchor:middle;dominant-baseline:middle;pointer-events:none;}
.st0{fill:#ddeaf7;stroke:#2c1f0e;stroke-width:2px;}
.st1{fill:none;stroke:#2c1f0e;stroke-dasharray:6 3;stroke-width:1.5px;}
.st2{fill:#f4f8fd;stroke:#2c1f0e;stroke-width:3px;}
.st3{fill:none;stroke:#2c1f0e;stroke-width:3px;}
.st4{fill:none;stroke:#888;}
.st5{font-family:Garamond,serif;font-size:32.82px;isolation:isolate;fill:#2c1f0e;}
.st6{isolation:isolate;}
.st7{font-family:Arial,sans-serif;font-size:14px;letter-spacing:.3em;isolation:isolate;}
.st8{fill:#2c1f0e;}

/* ═══ Style Block 2 ═══ */
:root{
  --cream:#f7f9fc;
  --cream2:#eef2f7;
  --gold:#2f5fa7;
  --gold-lt:#bcd0ee;
  --gold-bg:#eef4ff;
  --sage:#3c6fb8;
  --sage-lt:#eef2f8;
  --blush:#f2f5fa;
  --warm-gray:#9aa7bb;
  --text:#1f2733;
  --muted:#66758a;
  --border:#d9e2ef;
  --white:#ffffff;
  --red:#9d3f3f;
  --green:#2f5fa7;
  --shadow:0 28px 72px rgba(25,40,60,.08);
  --shadow-soft:0 16px 36px rgba(25,40,60,.07);
}

body{
  background:
    radial-gradient(circle at top left, rgba(228,233,243,.62), transparent 26%),
    radial-gradient(circle at top right, rgba(241,244,249,.92), transparent 22%),
    linear-gradient(180deg,#ffffff 0%,#fafbfd 46%,#f5f7fb 100%);
}

a{color:var(--gold);}

.msg-send-btn,
.save-btn,
.planner-toolbar button,
.planner-side button,
.planner-action-btn,
.planner-primary-btn{
  background:linear-gradient(180deg,#3c6fb8 0%,#2f5fa7 100%);
  color:#fff;
  box-shadow:0 14px 28px rgba(47,95,167,.18);
}

.msg-send-btn:hover,
.save-btn:hover,
.planner-toolbar button:hover,
.planner-side button:hover,
.planner-action-btn:hover,
.planner-primary-btn:hover{
  box-shadow:0 18px 32px rgba(95,111,136,.22);
  filter:none;
}

.portal-header{
  background:rgba(255,255,255,.9);
  border:1px solid rgba(219,226,236,.94);
  box-shadow:0 14px 34px rgba(41,52,70,.08);
}

.couple-label,
.menu-toggle,
.logout-btn{
  background:#ffffff;
  border-color:var(--border);
  color:var(--text);
}

.logout-btn:hover,
.menu-toggle:hover{
  background:var(--gold-bg);
  border-color:#c5cfdf;
}

.sidebar{
  background:rgba(255,255,255,.92);
  border:1px solid rgba(219,226,236,.96);
  box-shadow:0 18px 42px rgba(41,52,70,.08);
}

.sidebar-lbl,
.overview-note,
.field-label,
.info-key,
.prog-label{
  color:#8a91a0;
}

.nav-item:hover,
.doc-tab:hover{
  background:var(--gold-bg);
  transform:none;
}

.nav-item.active,
.doc-tab.active{
  background:#eef3f9;
  border-color:#d2dbea;
  box-shadow:0 10px 24px rgba(95,112,138,.10);
}

.nav-icon{
  background:#f8fafe;
  border-color:#e0e6ef;
}

.countdown-box{
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.78), transparent 34%),
    linear-gradient(135deg,#edf2f8 0%,#dde5f0 100%);
  color:#243042;
  box-shadow:0 20px 44px rgba(82,99,126,.12);
}

.countdown-box::after{
  background:radial-gradient(circle,rgba(255,255,255,.5),transparent 70%);
}

.info-card,
.progress-card,
.overview-welcome,
.cl-group,
.msg-thread,
.doc-subnav,
.lodge-block,
.location-card,
.location-map-card,
.vendor-card,
.planner-shell,
.planner-sidebar,
.planner-canvas-shell{
  background:rgba(255,255,255,.94) !important;
  border-color:rgba(219,226,236,.96) !important;
  box-shadow:var(--shadow-soft) !important;
}

.quick-btn{
  background:#ffffff;
  border-color:var(--border);
  box-shadow:none;
}

.quick-btn:hover{
  background:#f2f6fb;
  border-color:#ccd6e5;
  box-shadow:0 12px 24px rgba(95,112,138,.10);
}

.cl-group-header,
.lodge-header,
.doc-tab.active,
.quick-btn:hover{
  background-image:none !important;
}

.cl-group-header,
.lodge-header{
  background:#f8fafe !important;
}

.cl-group-bar,
.prog-bar-bg,
.info-row,
.cl-item,
.form-table td{
  border-color:#edf1f6 !important;
}

.cl-note,
.field-note,
input[readonly],
.msg-staff{
  background:#f4f7fb !important;
}

.msg-couple{
  background:linear-gradient(180deg,#73829a 0%,#5f6f88 100%);
}

.form-header{
  border-bottom-color:#e8edf4;
}

.form-header h1,
.info-card h3,
.progress-card h3,
.overview-welcome h2,
.section-title{
  color:#241f1d;
}

.section-title{
  border-bottom-color:#d8e0ea;
}

input[type=text],
input[type=tel],
input[type=time],
input[type=date],
input[type=number],
textarea,
select{
  background:#ffffff;
  border-color:#dbe2ec;
}

input:focus,
textarea:focus,
select:focus{
  border-color:#bcc8da;
  box-shadow:0 0 0 4px rgba(188,200,218,.2);
}

.form-table{
  background:#ffffff;
}

.form-table th{
  background:#f7f9fc;
  color:#7f8796;
}

#panel-vendors .vendor-hero{
  background:linear-gradient(135deg,#ffffff 0%,#f7f9fc 50%,#edf2f8 100%);
  border-color:rgba(219,226,236,.96);
  box-shadow:0 18px 42px rgba(41,52,70,.08);
}

#panel-vendors .vendor-stat,
#panel-vendors .vendor-section,
#panel-vendors .vendor-card,
#panel-vendors .vendor-empty{
  background:rgba(255,255,255,.94) !important;
  border-color:rgba(219,226,236,.96) !important;
  box-shadow:var(--shadow-soft) !important;
}

#panel-vendors .vendor-card{
  background:linear-gradient(180deg,#ffffff 0%,#f7f9fc 100%) !important;
}

#panel-vendors .vendor-search input{
  background:#ffffff;
  border-color:#dbe2ec;
}

#panel-vendors .vendor-search input:focus{
  border-color:#bcc8da;
  box-shadow:0 0 0 4px rgba(188,200,218,.2);
}

#panel-location .loc-venue-hero{
  background:linear-gradient(135deg,#ffffff 0%,#f7f9fc 50%,#edf2f8 100%);
  border:1px solid rgba(219,226,236,.96);
  box-shadow:0 18px 42px rgba(41,52,70,.08);
}

#panel-location .loc-venue-eyebrow,
#panel-location .loc-venue-desc,
#panel-location .loc-note,
#panel-location .loc-text small,
#panel-location .nearby-title-wrap p,
#panel-location .nearby-item-desc{
  color:#7c7f89;
}

#panel-location .loc-nav-btn.gmaps{
  background:#ffffff;
  color:#1f2733;
  border:1px solid rgba(219,226,236,.96);
}

#panel-location .loc-nav-btn.gmaps:hover{
  background:#f0f4fb;
}

#panel-location .loc-nav-btn.apple{
  background:linear-gradient(180deg,#73829a 0%,#5f6f88 100%);
  color:#ffffff;
  border:1px solid rgba(95,111,136,.35);
}

#panel-location .loc-nav-btn.apple:hover{
  background:linear-gradient(180deg,#7b8aa2 0%,#66758d 100%);
}

#panel-location .loc-map-frame{
  background:#eef2f7;
  border-color:rgba(219,226,236,.96);
  box-shadow:0 10px 28px rgba(41,52,70,.08);
}

#panel-location .location-card{
  background:rgba(255,255,255,.96);
  border-color:rgba(219,226,236,.96);
  box-shadow:0 10px 28px rgba(41,52,70,.06);
}

#panel-location .location-card h3{
  color:#5f708a;
  border-bottom-color:#e2e8f1;
}

#panel-location .loc-row{
  border-bottom-color:#edf1f6;
}

#panel-location .loc-icon-wrap{
  background:#eff3f8;
}

#panel-location .nearby-section{
  background:linear-gradient(180deg,#f8fafd 0%,#eef2f8 100%);
  border-color:rgba(219,226,236,.96);
  box-shadow:0 10px 24px rgba(41,52,70,.06);
}

#panel-location .nearby-hero{
  border-bottom-color:#e2e8f1;
}

#panel-location .nearby-title-wrap h2,
#panel-location .nearby-item-name,
#panel-location .nearby-meta strong{
  color:#2b3340;
}

#panel-location .nearby-chip{
  background:#ffffff;
  border-color:#dbe2ec;
  color:#667589;
}

#panel-location .nearby-card{
  background:rgba(255,255,255,.9);
  border-color:#dfe6ef;
}

#panel-location .nearby-card h3{
  color:#5f708a;
}

#panel-location .nearby-icon{
  background:#eff3f8;
}

#panel-location .nearby-item{
  border-bottom-color:#edf1f6;
}

#panel-location .nearby-item-tag{
  color:#718196;
  background:#f3f6fb;
  border-color:#dbe2ec;
}

#panel-location .nearby-meta{
  color:#5f6774;
}

#panel-location .nearby-link{
  background:#ffffff;
  border-color:#dbe2ec;
  color:#5f708a;
}

#panel-location .nearby-link:hover{
  border-color:#bcc8da;
  background:#f4f7fb;
}

#panel-location .nearby-phone{
  background:#eef3f8;
  border-color:#dbe2ec;
  color:#5f708a;
}

#panel-planner .planner-hero{
  background:linear-gradient(135deg,#ffffff 0%,#f7f9fc 52%,#edf2f8 100%);
  border:1px solid rgba(219,226,236,.96);
  box-shadow:0 18px 42px rgba(41,52,70,.08);
}

#panel-planner .planner-pill{
  background:rgba(255,255,255,.92);
  border-color:#dbe2ec;
  color:#667589;
}

#panel-planner .planner-toolbar-card,
#panel-planner .planner-canvas-card,
#panel-planner .planner-obj-list-card{
  background:rgba(255,255,255,.96);
  border-color:rgba(219,226,236,.96);
  box-shadow:0 10px 28px rgba(41,52,70,.06);
}

#panel-planner .planner-toolbar-head h2,
#panel-planner .planner-obj-list-card h3{
  color:#5f708a;
}

#panel-planner .planner-tool-btn:hover,
#panel-planner .planner-action-btn:hover,
#panel-planner .planner-inline-btn:hover{
  border-color:#bcc8da;
  box-shadow:0 10px 20px rgba(95,111,136,.10);
}

#panel-planner .planner-tool-btn.active{
  background:#eef3f8;
  border-color:#bcc8da;
  box-shadow:0 12px 24px rgba(95,111,136,.12);
}

#panel-planner .planner-status{
  background:#eef2f7;
  border-color:#dbe2ec;
}

#panel-planner .planner-status.ok{
  background:#edf3fb;
  border-color:#cfd8e6;
  color:#5f708a;
}

#panel-planner .planner-status.warn{
  background:#f3f6fb;
  border-color:#dbe2ec;
  color:#6e7b8f;
}

#panel-planner .planner-canvas-wrap{
  border-color:#dfe6ef;
  background:
    radial-gradient(circle at top left,rgba(255,255,255,.96),rgba(255,255,255,.72) 34%,transparent 60%),
    linear-gradient(180deg,#f9fbfe 0%,#eef3f8 100%);
}

#panel-planner .planner-svg-frame{
  background:
    linear-gradient(0deg,rgba(255,255,255,.78),rgba(255,255,255,.78)),
    linear-gradient(90deg,rgba(207,216,230,.36) 1px,transparent 1px),
    linear-gradient(rgba(207,216,230,.36) 1px,transparent 1px);
  border-color:#dfe6ef;
}

#panel-planner .planner-section-note{
  background:#f4f7fb;
  border-color:#d6deea;
}

#panel-planner .planner-shortcuts span{
  background:#eef2f7;
  border-color:#dbe2ec;
}

#panel-planner .planner-legend-chip{
  color:#667589;
  border-color:#dbe2ec;
  background:#ffffff;
}

#panel-planner .planner-action-btn.act-save{
  border-color:#c7d5e9;
  background:linear-gradient(135deg,#f5f8fd,#edf2fa);
}

#panel-planner .planner-action-btn.act-save strong,
#panel-planner .planner-action-btn.act-load strong{
  color:#5f708a;
}

#panel-planner .planner-action-btn.act-load{
  border-color:#c7d5e9;
  background:linear-gradient(135deg,#f4f8fd,#ebf1fa);
}

#panel-planner .planner-action-btn.act-reset{
  border-color:#d6deea;
  background:linear-gradient(135deg,#fafbfd,#f2f5f9);
}

#panel-planner .planner-action-btn.act-reset strong{
  color:#5f708a;
}

#panel-planner .planner-action-btn.act-print{
  border-color:#d6deea;
  background:linear-gradient(135deg,#fbfcfe,#f3f6fa);
}

#panel-planner .planner-action-btn.act-print strong{
  color:#5f708a;
}

#panel-planner .planner-ur-btn:hover:not(:disabled),
#panel-planner .planner-layer-btn:hover:not(:disabled){
  border-color:#bcc8da;
  color:var(--text);
  background:#eef3f8;
}

#panel-planner .planner-guest-badge{
  background:#eef3f8;
  border-color:#dbe2ec;
  color:#5f708a;
}

#panel-planner .planner-snap-row input[type=checkbox]{
  accent-color:#5f708a;
}

#panel-planner .planner-obj-item:hover{
  background:#f4f7fb;
}

#panel-planner .planner-obj-item.is-sel{
  background:#eef3f8;
  border-color:#bcc8da;
}

@media (max-width: 900px){
  .portal-header,
  .sidebar{
    backdrop-filter:blur(12px);
  }
}

/* Documents UI refinement */
#panel-documents{
  max-width:1280px;
}

#panel-documents > .form-header{
  margin-bottom:20px;
}

#panel-documents .doc-subnav{
  position:sticky;
  top:104px;
  z-index:20;
  padding:8px;
  margin-bottom:22px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(219,226,236,.96);
  box-shadow:0 14px 32px rgba(41,52,70,.08);
}

#panel-documents .doc-tab{
  min-height:46px;
  padding:12px 18px;
  font-size:12px;
  font-weight:600;
}

#panel-documents .doc-panel{
  background:rgba(255,255,255,.96);
  border:1px solid rgba(219,226,236,.96);
  border-radius:30px;
  padding:28px 30px 34px;
  box-shadow:0 22px 48px rgba(41,52,70,.08);
}

#panel-documents .doc-panel .form-header{
  margin-bottom:24px !important;
  padding-bottom:16px;
}

#panel-documents .doc-panel .form-header h2{
  font-family:'Cormorant Garamond',serif;
  font-size:32px !important;
  line-height:1.02;
  letter-spacing:0;
  color:#221d1a;
  margin-bottom:8px;
}

#panel-documents .doc-panel .form-header p{
  max-width:760px;
  color:#7e8390;
}

#panel-documents .section-title{
  font-size:24px;
  margin:30px 0 16px;
  padding-bottom:12px;
}

#panel-documents .field-row{
  grid-template-columns:minmax(180px,220px) minmax(0,1fr);
  align-items:center;
  gap:14px 18px;
  margin-bottom:12px;
  padding:14px 16px;
  background:#fbfcff;
  border:1px solid #e4ebf3;
  border-radius:20px;
}

#panel-documents .field-label{
  padding-top:0;
  color:#7f8695;
  font-size:11px;
  letter-spacing:.16em;
}

#panel-documents .field-note{
  margin:10px 0 18px;
  background:#f4f7fb;
  border-color:#e2e9f2;
}

#panel-documents .form-table{
  margin-bottom:22px;
  border:1px solid #dde5ef;
  border-radius:24px;
  box-shadow:0 14px 34px rgba(41,52,70,.06);
  table-layout:fixed;
}

#panel-documents .form-table th{
  padding:16px 14px;
  font-size:10px;
  letter-spacing:.18em;
  background:#f7f9fc;
  color:#7a8292;
}

#panel-documents .form-table td{
  padding:10px 10px;
  border-bottom:1px solid #edf2f7 !important;
  background:#ffffff;
}

#panel-documents .form-table tr:nth-child(even) td{
  background:#fbfcfe;
}

#panel-documents .form-table tbody tr:hover td{
  background:#f7faff;
}

#panel-documents .form-table td:first-child{
  font-size:13px;
  font-weight:600;
  color:#576071;
}

#panel-documents .form-table input,
#panel-documents .form-table select,
#panel-documents .form-table textarea{
  border:1px solid #dce4ee;
  border-radius:14px;
  background:#ffffff;
  padding:11px 12px;
  min-height:44px;
}

#panel-documents .form-table input:focus,
#panel-documents .form-table select:focus,
#panel-documents .form-table textarea:focus{
  border-color:#bcc8da;
  background:#ffffff;
}

#panel-documents .lodge-block{
  border-radius:26px;
  border-color:#dfe6ef;
}

#panel-documents .lodge-header{
  padding:18px 20px;
  background:#f8fafe !important;
  font-size:24px;
}

#panel-documents .initial-row{
  background:#fbfcff;
  border-color:#dfe6ef;
  border-radius:24px;
}

#panel-documents .sig-block{
  background:#fbfcff;
  border-color:#dfe6ef;
}

#panel-documents .waiver-clauses{
  display:grid;
  gap:12px;
  margin-bottom:18px;
}

#panel-documents .waiver-clauses .clause-text{
  background:#fbfcff;
  border:1px solid var(--border);
  border-radius:14px;
  padding:12px 14px;
  font-size:13px;
  line-height:1.6;
  color:var(--text);
}

#panel-documents .waiver-people{
  display:grid;
  gap:16px;
  margin-bottom:16px;
}

#panel-documents .waiver-card{
  background:#fff;
  border:1px solid var(--border);
  border-radius:18px;
  padding:16px;
  box-shadow:var(--shadow-soft);
}

#panel-documents .waiver-card-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:12px;
}

#panel-documents .waiver-card-title{
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--muted);
  font-weight:700;
}

#panel-documents .waiver-remove{
  border:none;
  background:none;
  color:var(--muted);
  font-size:11px;
  letter-spacing:.08em;
  text-transform:uppercase;
  cursor:pointer;
}

#panel-documents .waiver-remove:hover{
  color:var(--gold);
}

#panel-documents .waiver-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px 16px;
}

#panel-documents .waiver-grid .field-row{
  margin:0;
}

#panel-documents .waiver-grid .field-label{
  padding-top:0;
}

#panel-documents .add-row-btn{
  border:1px dashed var(--border);
  background:var(--cream2);
  border-radius:12px;
  padding:12px 14px;
  font-size:11px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--text);
  cursor:pointer;
}

#panel-documents .add-row-btn:hover{
  border-color:var(--gold-lt);
  color:var(--gold);
  background:#fff;
}

#panel-documents .save-bar{
  margin-top:30px;
  padding-top:20px;
  border-top-color:#e5ebf3;
}

@media (max-width: 900px){
  #panel-documents .doc-subnav{
    top:86px;
    margin-bottom:18px;
  }

  #panel-documents .doc-panel{
    padding:22px 18px 24px;
    border-radius:24px;
  }

  #panel-documents .doc-panel .form-header h2{
    font-size:28px !important;
  }

  #panel-documents .field-row{
    grid-template-columns:1fr;
    align-items:start;
    padding:14px;
  }

  #panel-documents .waiver-grid{
    grid-template-columns:1fr;
  }

  #panel-documents .form-table{
    display:block;
    overflow-x:auto;
  }
}

/* ═══ Style Block 3 ═══ */
.portal-mobile-switcher,
.portal-mobile-nav,
.doc-mobile-switcher{
  display:none;
}

.portal-mobile-switcher-card,
.doc-mobile-switcher select{
  border:1px solid rgba(180,210,240,.95);
  background:rgba(255,255,255,.92);
  box-shadow:0 16px 36px rgba(47,95,167,.08);
}

@media (max-width: 900px){
  html,
  body{
    overflow-x:hidden;
  }

  body{
    background:
      radial-gradient(circle at top left,rgba(210,230,255,.78),transparent 34%),
      radial-gradient(circle at top right,rgba(220,238,255,.92),transparent 26%),
      linear-gradient(180deg,#f8fbff 0%,#f0f6fd 42%,#e8f2fb 100%);
  }

  #portal{
    padding-bottom:32px;
  }

  .portal-header{
    top:0;
    left:0;
    right:0;
    height:auto;
    padding:14px 16px;
    border-radius:0 0 24px 24px;
    background:rgba(255,255,255,.92);
    box-shadow:0 14px 30px rgba(47,95,167,.08);
    gap:10px;
  }

  .portal-header .brand{
    font-size:24px;
  }

  .couple-label{
    order:4;
    width:100%;
    justify-content:center;
    text-align:center;
    padding:11px 14px;
    font-size:11px;
    letter-spacing:.08em;
    text-transform:uppercase;
  }

  .logout-btn,
  .menu-toggle{
    min-height:46px;
  }

  .menu-toggle{
    display:inline-flex;
    align-items:center;
    justify-content:center;
  }

  .portal-mobile-switcher{
    display:block;
    margin-top:78px;
    padding:0 16px 12px;
  }

  .portal-mobile-switcher-card{
    border-radius:26px;
    padding:16px 18px;
  }

  .portal-mobile-switcher-label{
    font-size:10px;
    letter-spacing:.18em;
    text-transform:uppercase;
    color:var(--muted);
    margin-bottom:6px;
    font-weight:700;
  }

  .portal-mobile-switcher-row{
    display:flex;
    align-items:center;
    gap:14px;
  }

  .portal-mobile-switcher-icon{
    width:50px;
    height:50px;
    border-radius:18px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:linear-gradient(135deg,#eaf2fb 0%,#d8eaf8 100%);
    border:1px solid rgba(168,197,232,.45);
    color:var(--gold);
    font-size:22px;
    flex:0 0 50px;
  }

  #portal-mobile-select,
  #doc-mobile-select{
    width:100%;
    min-height:52px;
    border:1px solid var(--border);
    border-radius:18px;
    background:#fff;
    padding:0 16px;
    font-size:17px;
    font-weight:700;
    color:var(--text);
    appearance:none;
    -webkit-appearance:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='12' viewBox='0 0 18 12'%3E%3Cpath d='M2 2l7 7 7-7' stroke='%232F5FA7' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:right 16px center;
    padding-right:48px;
  }

  .sidebar{
    top:104px;
    left:12px;
    right:12px;
    bottom:88px;
    width:auto;
    border-radius:28px;
    transform:translateY(120%);
  }

  .sidebar.open{
    transform:translateY(0);
  }

  .sidebar-inner{
    padding:18px 12px 22px;
  }

  .sidebar-lbl{
    padding:6px 14px 10px;
  }

  .nav-item{
    min-height:58px;
    font-size:14px;
    padding:14px 16px;
  }

  .nav-icon{
    width:40px;
    height:40px;
  }

  .main-content{
    margin:0;
    padding:0 16px 32px;
    max-width:none;
  }

  .main-panel{
    animation:none;
  }

  .overview-welcome,
  .info-card,
  .progress-card,
  .cl-group,
  .vendor-hero,
  .vendor-section,
  .msg-thread,
  .planner-hero,
  .planner-toolbar-card,
  .planner-canvas-card,
  .loc-venue-hero,
  .location-card,
  .vmap-shell{
    border-radius:24px !important;
    box-shadow:0 16px 36px rgba(47,95,167,.08) !important;
  }

  .overview-welcome,
  .progress-card,
  .info-card{
    padding:22px 18px;
  }

  .overview-welcome h2,
  .form-header h1{
    font-size:32px;
  }

  .countdown-box{
    border-radius:28px;
    padding:24px 20px;
    flex-direction:column;
    align-items:flex-start;
    gap:16px;
  }

  .countdown-num{
    font-size:76px;
  }

  .countdown-label{
    font-size:30px;
    max-width:none;
  }

  .info-grid,
  .insurance-grid,
  .location-info-row,
  .planner-workspace{
    grid-template-columns:1fr;
  }

  .prog-row{
    display:grid;
    grid-template-columns:1fr auto;
    gap:8px 10px;
    align-items:center;
  }

  .prog-label{
    width:auto;
    font-size:11px;
  }

  .prog-bar-bg{
    grid-column:1 / 2;
  }

  .prog-pct{
    width:auto;
    align-self:center;
  }

  .quick-links{
    grid-template-columns:1fr;
  }

  .quick-btn,
  .save-btn,
  .msg-send-btn,
  .insurance-btn,
  .planner-tool-btn,
  .planner-action-btn,
  .planner-inline-btn{
    min-height:52px;
  }

  .form-header{
    margin-bottom:22px;
    padding-bottom:14px;
  }

  .field-row,
  .initial-row,
  .sig-block,
  .planner-field-grid,
  .vmap-sel-grid{
    grid-template-columns:1fr;
  }

  .field-row{
    gap:8px;
    margin-bottom:16px;
  }

  .field-label{
    padding-top:0;
    font-size:11px;
  }

  .radio-group{
    gap:10px;
  }

  .radio-group label,
  .checkbox-row{
    min-height:44px;
    padding:10px 12px;
    border:1px solid rgba(180,210,240,.95);
    border-radius:14px;
    background:rgba(255,255,255,.72);
  }

  .doc-subnav{
    display:none;
  }

  .doc-mobile-switcher{
    display:block;
    margin-bottom:18px;
  }

  .doc-mobile-switcher select{
    width:100%;
    min-height:52px;
    border-radius:18px;
    padding:0 16px;
    font-size:16px;
    font-weight:700;
    color:var(--text);
  }

  .form-table{
    border:none;
    box-shadow:none;
    background:transparent;
  }

  .form-table thead{
    display:none;
  }

  .form-table tbody,
  .form-table tr,
  .form-table td{
    display:block;
    width:100%;
  }

  .form-table tr{
    background:#fff;
    border:1px solid rgba(180,210,240,.95);
    border-radius:20px;
    padding:12px;
    margin-bottom:12px;
    box-shadow:0 12px 28px rgba(47,95,167,.06);
  }

  .form-table td{
    border-bottom:none;
    padding:8px 4px;
    white-space:normal;
  }

  .form-table td::before{
    content:attr(data-mobile-label);
    display:block;
    margin-bottom:6px;
    font-size:10px;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--muted);
    font-weight:700;
  }

  .form-table td.row-num,
  .form-table .row-num{
    width:auto;
    text-align:left;
  }

  .save-bar{
    position:sticky;
    bottom:84px;
    z-index:25;
    margin-top:18px;
    padding:14px;
    border-radius:22px;
    background:rgba(255,255,255,.94);
    backdrop-filter:blur(14px);
    box-shadow:0 18px 36px rgba(47,95,167,.12);
    flex-direction:column;
    align-items:stretch;
    gap:10px;
  }

  .msg-thread{
    min-height:320px;
    max-height:none;
    padding:18px 16px;
  }

  .msg-bubble{
    max-width:88%;
  }

  .msg-input-row{
    position:sticky;
    bottom:18px;
    flex-direction:column;
    gap:12px;
    padding:14px;
    border-radius:22px;
    background:rgba(255,255,255,.94);
    box-shadow:0 18px 36px rgba(47,95,167,.1);
  }

  .vendor-controls,
  .planner-toolbar-head,
  .planner-canvas-head,
  .vmap-hero,
  .planner-hero-top{
    gap:14px;
  }

  .vmap-hero{
    grid-template-columns:1fr;
    padding:22px 20px;
  }

  .vmap-body{
    grid-template-columns:1fr;
    min-height:auto;
  }

  .vmap-canvas-col{
    border-right:none;
    border-bottom:1px solid var(--border);
  }

  .vmap-stage,
  .vmap-scroll{
    min-height:320px;
    padding:14px;
  }

  .vmap-zoom-controls{
    top:24px;
    right:24px;
  }

  #llw-map-embed{
    height:320px;
  }

  .planner-hero,
  .planner-toolbar-card,
  .planner-canvas-card,
  .vendor-hero,
  .location-card{
    padding:20px 18px !important;
  }

  .planner-tool-grid,
  .planner-action-grid{
    grid-template-columns:1fr;
  }

  .portal-mobile-nav{
    position:fixed;
    left:12px;
    right:12px;
    bottom:12px;
    z-index:120;
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:8px;
    padding:10px;
    background:rgba(255,255,255,.95);
    backdrop-filter:blur(18px);
    border:1px solid rgba(180,210,240,.98);
    border-radius:28px;
    box-shadow:0 18px 36px rgba(47,95,167,.14);
  }

  .portal-mobile-nav button{
    min-height:58px;
    border:none;
    background:transparent;
    border-radius:18px;
    color:var(--muted);
    font:inherit;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:4px;
    padding:8px 6px;
  }

  .portal-mobile-nav button.is-active{
    background:linear-gradient(135deg,#fff 0%,#eaf2fb 100%);
    color:var(--text);
    box-shadow:0 10px 22px rgba(47,95,167,.12);
  }

  .portal-mobile-nav-ico{
    font-size:18px;
    line-height:1;
  }

  .portal-mobile-nav-label{
    font-size:10px;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
  }
}

@media (max-width: 520px){
  .portal-header{
    padding:12px 14px;
  }

  .portal-header .brand{
    font-size:21px;
  }

  .main-content,
  .portal-mobile-switcher{
    padding-left:12px;
    padding-right:12px;
  }

  .overview-welcome h2,
  .form-header h1{
    font-size:28px;
  }

  .countdown-num{
    font-size:64px;
  }

  .countdown-label{
    font-size:25px;
  }

  .portal-mobile-nav{
    left:10px;
    right:10px;
    bottom:10px;
    gap:6px;
    padding:8px;
  }
}

/* ═══ Style Block 4 ═══ */
@media (max-width: 900px){
  html{
    scroll-behavior:auto;
  }

  .portal-header{
    position:relative !important;
    top:auto !important;
    left:auto !important;
    right:auto !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
    background:rgba(255,255,255,.98) !important;
  }

  .sidebar{
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
  }

  .portal-mobile-nav{
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
    background:rgba(255,255,255,.98) !important;
  }

  .portal-mobile-switcher{
    margin-top:16px !important;
  }

  .doc-subnav,
  #panel-documents .doc-subnav{
    position:static !important;
    top:auto !important;
  }

  .save-bar,
  #panel-documents .save-bar,
  #panel-insurance .save-bar{
    position:static !important;
    bottom:auto !important;
  }

  .msg-input-row{
    position:static !important;
    bottom:auto !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
  }
}

/* ═══ Style Block 5 ═══ */
html{
  overflow-x:hidden;
  scroll-padding-top:120px;
}

body{
  overflow-x:hidden;
  font-size:15px;
}

button,
input,
select,
textarea{
  min-height:44px;
}

a{
  text-underline-offset:.18em;
}

:focus-visible{
  outline:3px solid rgba(47,95,167,.32);
  outline-offset:3px;
}

.login-card{
  max-width:400px;
  display:block;
  text-align:left;
}

.login-main{
  position:relative;
  z-index:1;
}

.login-main p{
  margin:0 0 26px;
}

.login-side{
  position:relative;
  z-index:1;
  padding:22px;
  border-radius:24px;
  background:linear-gradient(180deg,rgba(246,240,232,.92),rgba(255,255,255,.86));
  border:1px solid rgba(180,210,240,.92);
  align-self:stretch;
}

.login-side-kicker{
  font-size:10px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:12px;
}

.login-benefits{
  list-style:none;
  display:grid;
  gap:12px;
  margin:0;
  padding:0;
}

.login-benefits li{
  padding:12px 14px;
  border-radius:18px;
  background:rgba(255,255,255,.82);
  border:1px solid rgba(180,210,240,.88);
  color:var(--text);
  font-size:13px;
  line-height:1.6;
}

.login-help{
  margin-top:16px;
  font-size:12px;
  color:var(--muted);
  line-height:1.7;
}

.portal-header{
  min-height:78px;
}

.main-content{
  width:min(1240px,calc(100vw - var(--sidebar-w) - 84px));
  max-width:none;
  padding:24px 18px 110px 0;
}

.overview-welcome{
  display:grid;
  gap:10px;
}

.overview-welcome p{
  max-width:66ch;
}

.overview-action-strip{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin:0 0 22px;
}

.overview-action-item{
  padding:18px 20px;
  border-radius:22px;
  border:1px solid rgba(180,210,240,.92);
  background:rgba(255,255,255,.88);
  box-shadow:var(--shadow-soft);
}

.overview-action-item strong{
  display:block;
  margin-bottom:6px;
  font-size:14px;
  color:var(--text);
}

.overview-action-item span{
  font-size:13px;
  color:var(--muted);
  line-height:1.6;
}

.countdown-box,
.overview-welcome,
.info-card,
.progress-card,
#panel-checklist,
#panel-documents,
#panel-planning-guide,
#panel-insurance,
#panel-vendors,
#panel-messages{
  backdrop-filter:blur(16px);
}

.countdown-box{
  min-height:190px;
}

.countdown-date{
  letter-spacing:.12em;
}

.quick-links{
  gap:16px;
}

.quick-btn{
  min-height:62px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  border-radius:18px;
  padding:16px 18px;
}

.quick-btn:first-child,
.quick-btn:nth-child(2){
  background:linear-gradient(135deg,#fff 0%,#eaf2fb 100%);
  border-color:rgba(182,148,105,.55);
}

#panel-checklist,
#panel-documents,
#panel-planning-guide,
#panel-insurance,
#panel-vendors,
#panel-messages{
  background:rgba(255,255,255,.76);
  border:1px solid rgba(180,210,240,.94);
  border-radius:28px;
  padding:28px;
  box-shadow:var(--shadow-soft);
}

.form-header{
  display:grid;
  gap:8px;
}

.field-row{
  grid-template-columns:minmax(190px,240px) minmax(0,1fr);
  gap:12px 18px;
  margin-bottom:14px;
}

.field-label{
  line-height:1.5;
}

.field-label small{
  display:block;
  margin-top:4px;
  font-size:12px;
  color:var(--muted);
  letter-spacing:normal;
  text-transform:none;
}

.portal-inline-note{
  display:grid;
  gap:8px;
  margin:0 0 24px;
  padding:16px 18px;
  border-radius:20px;
  background:linear-gradient(180deg,rgba(218,235,255,.9),rgba(255,255,255,.85));
  border:1px solid rgba(180,210,240,.94);
}

.portal-inline-note strong{
  font-size:13px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--gold);
}

.portal-inline-note span{
  font-size:14px;
  color:var(--muted);
  line-height:1.7;
}

/* -- Planning Guide -- */
.guide-hero{
  background:linear-gradient(135deg,#fff 0%,#f0f6fd 48%,#e4f0fb 100%);
  border:1px solid var(--border);
  border-radius:28px;
  padding:28px;
  display:grid;
  gap:20px;
  box-shadow:var(--shadow);
}

.guide-hero-text{
  max-width:720px;
}

.guide-hero-kicker{
  font-size:10px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:10px;
}

.guide-hero h1{
  font-family:'Cormorant Garamond',serif;
  font-size:40px;
  color:var(--text);
  margin-bottom:8px;
  font-weight:600;
}

.guide-hero-subtitle{
  font-size:15px;
  color:var(--text);
  margin-bottom:8px;
}

.guide-hero-intro{
  font-size:14px;
  color:var(--muted);
  line-height:1.7;
}

.guide-hero-card{
  background:rgba(255,255,255,.92);
  border:1px solid var(--border);
  border-radius:22px;
  padding:18px 20px;
  box-shadow:var(--shadow-soft);
}

.guide-hero-card-label{
  font-size:10px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:10px;
}

.guide-hero-card ul{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:8px;
}

.guide-hero-card li{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:13px;
  color:var(--text);
}

.guide-hero-card li::before{
  content:'\2022';
  color:var(--gold);
  font-weight:700;
}

.guide-jump{
  margin:20px 0 28px;
}

.guide-jump-select{
  appearance:none;
  -webkit-appearance:none;
  display:block;
  width:100%;
  max-width:320px;
  padding:10px 40px 10px 14px;
  border-radius:8px;
  border:1px solid var(--border);
  background:var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23999' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 14px center;
  font-size:13px;
  color:var(--muted);
  cursor:pointer;
  transition:border-color .2s ease, box-shadow .2s ease;
}

.guide-jump-select:hover,
.guide-jump-select:focus{
  border-color:var(--gold-lt);
  outline:none;
  box-shadow:0 0 0 3px rgba(var(--gold-rgb,180,145,80),.12);
}

.guide-section{
  margin-top:30px;
  scroll-margin-top:140px;
}

.guide-section-head{
  display:grid;
  gap:6px;
  margin-bottom:16px;
}

.guide-section-head h2{
  font-family:'Cormorant Garamond',serif;
  font-size:30px;
  color:var(--text);
  font-weight:600;
}

.guide-section-head p{
  font-size:13px;
  color:var(--muted);
}

.guide-timeline{
  list-style:none;
  margin:0 0 22px;
  padding:0;
  display:grid;
  gap:12px;
}

.guide-timeline li{
  display:grid;
  grid-template-columns:110px 1fr;
  gap:16px;
  align-items:center;
  padding:14px 18px;
  border-radius:18px;
  border:1px solid var(--border);
  background:rgba(255,255,255,.9);
  box-shadow:var(--shadow-soft);
}

.guide-time{
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--muted);
  font-weight:700;
}

.guide-event{
  font-size:15px;
  font-weight:600;
  color:var(--text);
}

.guide-callout{
  padding:18px 20px;
  border-radius:22px;
  background:linear-gradient(180deg,rgba(218,235,255,.92),rgba(255,255,255,.9));
  border:1px solid rgba(180,210,240,.94);
  box-shadow:var(--shadow-soft);
  margin-bottom:22px;
}

.guide-callout-title{
  font-size:11px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--gold);
  font-weight:700;
  margin-bottom:10px;
}

.guide-list{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:8px;
}

.guide-list li{
  display:flex;
  gap:10px;
  font-size:13px;
  color:var(--text);
  line-height:1.6;
}

.guide-list li::before{
  content:'\2022';
  color:var(--gold);
  font-weight:700;
}

.guide-accordion-grid{
  display:grid;
  gap:14px;
}

.guide-accordion{
  border:1px solid var(--border);
  border-radius:22px;
  background:rgba(255,255,255,.92);
  box-shadow:var(--shadow-soft);
}

.guide-accordion summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:18px 20px;
}

.guide-accordion summary::-webkit-details-marker{
  display:none;
}

.guide-accordion summary h3{
  font-family:'Cormorant Garamond',serif;
  font-size:24px;
  margin-bottom:4px;
  color:var(--text);
}

.guide-accordion summary p{
  font-size:13px;
  color:var(--muted);
  line-height:1.6;
}

.guide-accordion[open] summary{
  border-bottom:1px solid var(--cream2);
}

.guide-accordion-icon{
  width:30px;
  height:30px;
  border-radius:50%;
  background:var(--cream2);
  border:1px solid var(--border);
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--gold);
  font-size:16px;
  flex-shrink:0;
  transition:transform .2s ease;
}

.guide-accordion[open] .guide-accordion-icon{
  transform:rotate(45deg);
}

.guide-accordion-body{
  padding:12px 20px 18px;
}

.guide-policy-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:16px;
}

.guide-policy-card{
  border:1px solid var(--border);
  border-radius:20px;
  padding:18px 18px;
  background:rgba(255,255,255,.92);
  box-shadow:var(--shadow-soft);
}

.guide-policy-card h3{
  font-family:'Cormorant Garamond',serif;
  font-size:22px;
  margin-bottom:8px;
  color:var(--text);
}

.guide-policy-card p,
.guide-card p{
  font-size:13px;
  color:var(--muted);
  line-height:1.6;
}

.guide-policy-card .guide-list{
  margin-top:8px;
}

.guide-policy-card .guide-list li{
  position:relative;
  display:block;
  padding-left:18px;
}

.guide-policy-card .guide-list li::before{
  position:absolute;
  left:0;
  top:0.35em;
  margin-top:0;
}

.guide-policy-card a{
  word-break:break-word;
  overflow-wrap:break-word;
  white-space:normal;
}

.guide-card{
  border:1px solid var(--border);
  border-radius:22px;
  padding:18px 20px;
  background:rgba(255,255,255,.92);
  box-shadow:var(--shadow-soft);
}

.guide-milestones{
  display:grid;
  gap:14px;
}

.guide-milestone{
  border:1px solid var(--border);
  border-radius:20px;
  padding:18px 18px 18px 20px;
  background:linear-gradient(180deg,#fff 0%,#f8fbff 100%);
  box-shadow:var(--shadow-soft);
  border-left:3px solid var(--gold-lt);
}

.guide-milestone h3{
  font-family:'Cormorant Garamond',serif;
  font-size:22px;
  margin-bottom:6px;
  color:var(--text);
}

.guide-milestone .guide-list{
  margin-top:8px;
}

.guide-close{
  margin-top:28px;
  padding:24px;
  border-radius:24px;
  background:linear-gradient(135deg,#fff 0%,#eaf2fb 100%);
  border:1px solid rgba(182,148,105,.55);
  text-align:center;
  box-shadow:var(--shadow-soft);
}

.guide-close p{
  font-size:14px;
  color:var(--muted);
  line-height:1.7;
}

.guide-signature{
  margin-top:12px;
  font-family:'Cormorant Garamond',serif;
  font-size:22px;
  color:var(--text);
}

@media (min-width: 980px){
  .guide-hero{
    grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);
    align-items:stretch;
  }
}

@media (max-width: 720px){
  .guide-timeline li{
    grid-template-columns:1fr;
    gap:6px;
  }

  .guide-hero{
    padding:22px;
  }
}

.doc-subnav{
  position:sticky;
  top:114px;
  z-index:20;
  padding:12px;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:10px;
  overflow:visible;
  border-radius:22px;
  background:rgba(247,252,255,.92);
  border:1px solid rgba(180,210,240,.92);
  box-shadow:var(--shadow-soft);
}

.doc-tab{
  min-height:52px;
  display:inline-flex;
  align-items:center;
  justify-content:flex-start;
  text-align:left;
  white-space:normal;
  line-height:1.3;
  border-radius:16px;
}

.form-table{
  width:100%;
  table-layout:fixed;
}

.form-table th{
  font-size:11px;
}

.form-table td{
  white-space:normal;
  word-break:break-word;
}

#panel-documents .save-bar,
#panel-insurance .save-bar{
  position:sticky;
  bottom:18px;
  z-index:12;
  margin-top:22px;
  padding:14px 16px;
  border-radius:20px;
  background:rgba(247,252,255,.92);
  border:1px solid rgba(180,210,240,.94);
  box-shadow:0 18px 34px rgba(47,95,167,.12);
}

.save-status{
  min-height:auto;
  line-height:1.6;
}

.msg-thread{
  min-height:420px;
  border-radius:24px;
}

.msg-input{
  min-height:92px;
}

.msg-input-row{
  align-items:flex-end;
}

.msg-send-btn{
  min-width:160px;
}

.portal-mobile-switcher{
  display:none;
}

@media (max-width: 1100px){
  .main-content{
    width:auto;
    margin-right:18px;
  }

  .overview-action-strip{
    grid-template-columns:1fr;
  }
}

@media (max-width: 900px){
  html{
    scroll-padding-top:92px;
  }

  .login-card{
    grid-template-columns:1fr;
    gap:18px;
    padding:34px 24px;
  }

  .login-side{
    padding:18px;
  }

  .portal-header{
    top:10px !important;
    left:12px !important;
    right:12px !important;
    min-height:64px;
    height:auto;
    padding:12px 14px !important;
    border-radius:20px;
  }

  .portal-header .brand{
    font-size:20px !important;
  }

  .couple-label{
    display:none;
  }

  .menu-toggle{
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
  }

  .portal-mobile-switcher{
    display:block !important;
    position:relative;
    margin-top:0;
    padding:76px 12px 0;
  }

  .portal-mobile-switcher-card{
    box-shadow:var(--shadow-soft);
  }

  .sidebar{
    top:86px !important;
    left:12px !important;
    bottom:12px !important;
    width:min(86vw,320px) !important;
    transform:translateX(-120%) !important;
    visibility:hidden;
    pointer-events:none;
  }

  .sidebar.open{
    transform:translateX(0) !important;
    visibility:visible;
    pointer-events:auto;
  }

  .main-content{
    margin:8px 0 0 !important;
    width:100% !important;
    padding:14px 12px 32px !important;
  }

  .overview-welcome,
  .progress-card,
  .info-card,
  #panel-checklist,
  #panel-documents,
  #panel-planning-guide,
  #panel-insurance,
  #panel-vendors,
  #panel-messages{
    border-radius:24px;
  }

  .overview-action-strip{
    margin-bottom:18px;
  }

  .countdown-box{
    min-height:0;
    padding:24px 20px !important;
  }

  .countdown-num{
    font-size:74px;
  }

  .field-row{
    grid-template-columns:1fr !important;
    gap:8px;
  }

  .doc-subnav{
    display:none;
  }

  .doc-tab{
    min-width:0;
  }

  .form-table{
    border:none !important;
    background:transparent !important;
  }

  .form-table thead{
    display:none !important;
  }

  .form-table tbody,
  .form-table tr,
  .form-table td{
    display:block !important;
    width:100% !important;
  }

  .form-table tr{
    margin-bottom:12px;
    padding:14px;
    border-radius:20px;
    border:1px solid rgba(180,210,240,.94);
    background:rgba(255,255,255,.92);
    box-shadow:var(--shadow-soft);
  }

  .form-table td{
    padding:0 0 12px !important;
    border-bottom:none !important;
  }

  .form-table td:last-child{
    padding-bottom:0 !important;
  }

  .form-table td::before{
    display:block;
    margin-bottom:6px;
    font-size:10px;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:var(--muted);
    content:attr(data-mobile-label);
  }

  .form-table td.row-num,
  .form-table .row-num{
    width:100% !important;
  }

  #panel-documents .save-bar,
  #panel-insurance .save-bar{
    position:static;
    padding:14px;
  }

  .msg-thread{
    min-height:280px;
  }

  .msg-input{
    min-height:74px;
  }

  .msg-input-row{
    flex-direction:column;
    align-items:stretch;
  }

  .msg-send-btn{
    width:100%;
    min-width:0;
  }

  .portal-mobile-nav{
    display:none !important;
  }

  #portal{
    padding-bottom:32px;
  }
}

@media (max-width: 560px){
  .login-card{
    border-radius:0;
  }

  .portal-mobile-switcher{
    padding-top:70px;
  }

  .overview-welcome,
  .progress-card,
  .info-card,
  #panel-checklist,
  #panel-documents,
  #panel-planning-guide,
  #panel-insurance,
  #panel-vendors,
  #panel-messages{
    padding:20px 18px;
  }

  .countdown-num{
    font-size:62px;
  }

  .quick-btn{
    min-height:56px;
    font-size:12px;
  }

  .portal-mobile-nav-label{
    font-size:9px;
  }
}

/* ══════════════ DECOR PAGE ══════════════ */
#panel-decor{padding:40px 40px 72px;}
#panel-decor>.form-header{
  margin-bottom:32px;padding-bottom:24px;
  border-bottom:1px solid var(--border);
}
#panel-decor>.form-header h1{
  font-size:46px;letter-spacing:.005em;
}
.decor-mobile-select-wrap{display:none;margin-bottom:22px;}
.decor-mobile-select-wrap select{
  width:100%;padding:13px 40px 13px 16px;border:1px solid var(--border);border-radius:14px;
  font-size:14px;background:rgba(255,255,255,.92);color:var(--text);outline:none;
  font-family:inherit;appearance:none;font-weight:500;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%232F5FA7' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;
}

/* ── Tab navigation ── */
.decor-subnav{
  display:flex;flex-wrap:wrap;gap:6px;
  margin-bottom:40px;padding-bottom:22px;border-bottom:1px solid var(--border);
}
.decor-tab{
  flex-shrink:0;padding:9px 20px;border-radius:999px;font-size:11px;font-weight:700;
  letter-spacing:.09em;text-transform:uppercase;color:var(--muted);
  border:1.5px solid var(--border);background:var(--white);
  cursor:pointer;transition:all .2s ease;line-height:1.4;white-space:nowrap;
}
.decor-tab:hover{color:var(--text);background:var(--cream2);border-color:var(--gold-lt);}
.decor-tab.active{
  background:var(--gold);color:#fff;border-color:var(--gold);
  box-shadow:0 4px 16px rgba(47,95,167,.3);
}

/* ── Panes ── */
.decor-pane{display:none;}
.decor-pane.active{display:block;}

/* ── Section headers ── */
.decor-pane-head{margin-bottom:28px;}
.decor-pane-head h2{
  font-family:'Cormorant Garamond',serif;font-size:36px;font-weight:600;
  color:var(--text);margin-bottom:10px;line-height:1.1;letter-spacing:.01em;
}
.decor-pane-head p{font-size:14px;color:var(--muted);line-height:1.85;max-width:680px;}

/* ── Intro card ── */
.decor-intro-card{
  background:linear-gradient(135deg,var(--gold-bg) 0%,rgba(240,247,255,.5) 100%);
  border-radius:18px;padding:22px 28px;margin-bottom:28px;
  border:1px solid rgba(168,197,232,.45);border-left:3px solid var(--gold-lt);
}
.decor-intro-card p{font-size:14px;line-height:1.9;color:var(--text);}
.decor-intro-card ul{margin:12px 0 0;padding-left:20px;}
.decor-intro-card ul li{font-size:14px;line-height:1.8;color:var(--text);margin-bottom:5px;}

/* ── Image grids ── */
.decor-img-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:20px;margin:24px 0;
}
.decor-img-grid.g2{grid-template-columns:repeat(auto-fill,minmax(360px,1fr));}

/* ── Image cards ── */
.decor-img-card{
  border-radius:18px;overflow:hidden;background:var(--white);
  border:1px solid var(--border);
  box-shadow:0 4px 24px rgba(47,95,167,.07);
  transition:transform .28s ease,box-shadow .28s ease;
}
.decor-img-card:hover{
  transform:translateY(-6px);
  box-shadow:0 22px 54px rgba(47,95,167,.15);
}
.decor-img-card img{
  width:100%;height:300px;object-fit:cover;display:block;background:var(--cream2);
  transition:transform .5s ease,opacity .3s ease;cursor:zoom-in;
}
.decor-img-card:hover img{transform:scale(1.04);}
.decor-img-card img.tall{height:420px;}
.decor-img-card img.onerr{opacity:.35;object-fit:contain;padding:12px;transform:none!important;}

/* ── Image captions ── */
.decor-img-cap{
  padding:11px 16px 12px;font-size:10.5px;font-weight:700;
  color:var(--gold);letter-spacing:.1em;text-transform:uppercase;
  border-top:1px solid rgba(168,197,232,.28);
  background:rgba(234,242,251,.55);
}

/* ── Hero image (Welcome tab) ── */
.decor-hero-wrap{
  border-radius:22px;overflow:hidden;margin-bottom:36px;
  box-shadow:0 16px 56px rgba(47,95,167,.13);
  border:1px solid rgba(168,197,232,.3);
}
.decor-hero-wrap img{
  width:100%;height:520px;object-fit:cover;display:block;
  background:var(--cream2);
}

/* ── Overview grid (Welcome tab) ── */
.decor-overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:8px 0 0;}
.decor-overview-card{
  background:var(--white);border:1px solid var(--border);border-radius:18px;
  padding:26px 28px;box-shadow:var(--shadow-soft);
  transition:transform .22s ease,box-shadow .22s ease;
}
.decor-overview-card:hover{
  transform:translateY(-3px);box-shadow:0 18px 44px rgba(47,95,167,.1);
}
.decor-overview-card h3{
  font-family:'Cormorant Garamond',serif;font-size:22px;font-weight:600;
  color:var(--text);margin-bottom:10px;letter-spacing:.01em;
}
.decor-overview-card p{font-size:13px;line-height:1.8;color:var(--muted);}

/* ── Pills ── */
.decor-pills{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 24px;}
.decor-pill{
  padding:7px 17px;border-radius:999px;font-size:12px;font-weight:600;
  background:var(--cream2);border:1.5px solid rgba(168,197,232,.55);
  color:var(--text);letter-spacing:.04em;
}

/* ── Table ── */
.decor-table{width:100%;border-collapse:collapse;margin:20px 0;}
.decor-table th{
  text-align:left;padding:12px 16px;font-size:11px;font-weight:700;
  letter-spacing:.18em;text-transform:uppercase;color:var(--muted);
  border-bottom:2px solid var(--border);background:var(--cream2);
}
.decor-table td{
  padding:14px 16px;font-size:13px;color:var(--text);
  line-height:1.65;border-bottom:1px solid var(--border);vertical-align:top;
}
.decor-table tr:last-child td{border-bottom:none;}
.decor-table td:first-child{font-weight:700;white-space:nowrap;width:160px;}
.decor-table td:last-child{color:var(--muted);}

/* ── Contact card ── */
.decor-contact-card{
  background:var(--white);border:1px solid var(--border);border-radius:22px;
  padding:32px 36px;box-shadow:var(--shadow-soft);max-width:480px;
}
.decor-contact-card h3{
  font-family:'Cormorant Garamond',serif;font-size:24px;font-weight:600;
  color:var(--text);margin-bottom:20px;
}
.decor-contact-row{display:flex;align-items:flex-start;gap:14px;margin-bottom:18px;}
.decor-contact-row:last-child{margin-bottom:0;}
.decor-contact-icon{font-size:18px;flex-shrink:0;margin-top:2px;}
.decor-contact-lbl{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:4px;}
.decor-contact-val{font-size:15px;font-weight:600;color:var(--text);}
.decor-contact-val a{color:var(--gold);}

/* ── Note ── */
.decor-note{
  background:var(--sage-lt);border-radius:16px;padding:16px 20px;
  font-size:13px;color:var(--text);line-height:1.78;margin-bottom:24px;
  border:1px solid rgba(139,157,136,.2);border-left:3px solid var(--sage);
}

/* ── Divider ── */
.decor-divider{
  height:1px;
  background:linear-gradient(90deg,transparent,var(--border) 20%,var(--border) 80%,transparent);
  margin:40px 0;
}

/* ── Responsive ── */
@media(max-width:900px){
  .decor-overview-grid{grid-template-columns:1fr;}
  #panel-decor{padding:28px 24px 52px;}
}
@media(max-width:700px){
  .decor-mobile-select-wrap{display:block;}
  .decor-subnav{display:none;}
  .decor-img-grid{grid-template-columns:1fr 1fr;gap:12px;}
  .decor-img-grid.g2{grid-template-columns:1fr 1fr;}
  .decor-img-card img,.decor-img-card img.tall{height:200px;}
  .decor-hero-wrap img{height:300px;}
  #panel-decor>.form-header h1{font-size:36px;}
}
@media(max-width:480px){
  .decor-img-grid,.decor-img-grid.g2{grid-template-columns:1fr;}
  .decor-img-card img,.decor-img-card img.tall{height:240px;}
}
@media(max-width:560px){
  #panel-decor{padding:20px 18px 44px;}
}

/* ═══ Style Block 6 ═══ */
body{margin:0;font-family:Manrope,system-ui,sans-serif;background:linear-gradient(180deg,#ffffff 0%,#f6f8fc 100%);color:#1f2733;padding:28px;} .shell{max-width:1200px;margin:0 auto;} .top{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap;margin-bottom:18px;} h1{margin:0;font-family:'Cormorant Garamond',Georgia,serif;font-size:38px;font-weight:600;letter-spacing:.01em;} .meta{font-size:13px;color:#66758a;margin-top:8px;} .actions{display:flex;gap:10px;flex-wrap:wrap;} .btn{display:inline-flex;align-items:center;justify-content:center;padding:11px 16px;border-radius:999px;border:1px solid #d9e2ef;background:#fff;color:#1f2733;text-decoration:none;font-size:13px;font-weight:700;} .btn:hover{border-color:#bcd0ee;background:#eef4ff;} .btn.primary{background:linear-gradient(180deg,#3c6fb8 0%,#2f5fa7 100%);border-color:#2f5fa7;color:#fff;} .btn.primary:hover{filter:brightness(1.02);} .viewer{background:rgba(255,255,255,.84);border:1px solid #d9e2ef;border-radius:26px;padding:20px;box-shadow:0 18px 40px rgba(25,40,60,.08);}

/* ═══ Style Block 7 ═══ */
@media print{@page{size:portrait}}body{font-family:Manrope,system-ui,sans-serif;color:#1f2733;padding:24px;background:#fff;}h1{font-family:\'Cormorant Garamond\',Georgia,serif;color:#1f2733;font-weight:600;margin:0 0 4px;font-size:28px;}p{margin:0 0 14px;color:#66758a;font-size:13px;}svg{display:block;width:auto;height:auto;max-width:100%;max-height:80vh;margin:0 auto 24px;border:1px solid #d9e2ef;border-radius:8px;background:#f4f8fd;}table{width:100%;border-collapse:collapse;margin-top:16px;}th,td{border-bottom:1px solid #eef2f7;padding:9px 8px;text-align:left;}th{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#66758a;}td{font-size:13px;}.planner-barn-outer{fill:#f4f8fd;stroke:#2c1f0e;stroke-width:6;}.planner-barn-room{fill:#ddeaf7;stroke:#2c1f0e;stroke-width:4;}.planner-barn-wall{fill:none;stroke:#2c1f0e;stroke-width:5;}.planner-barn-door-post{fill:#2c1f0e;}.planner-barn-lbl{font-family:Georgia,serif;fill:#2f5fa7;text-anchor:middle;dominant-baseline:middle;}.planner-barn-lbl-sm{font-family:Georgia,serif;fill:#546278;text-anchor:middle;dominant-baseline:middle;}.planner-barn-exit-arc{fill:none;stroke:#2c1f0e;stroke-width:4;}.planner-barn-dim{fill:none;stroke:#2c1f0e;stroke-width:1.5;}.planner-barn-dim-txt{font-family:Georgia,serif;fill:#2c1f0e;font-size:13px;text-anchor:middle;dominant-baseline:middle;}.planner-object-shape{stroke:#3b4656;stroke-width:2;vector-effect:non-scaling-stroke;}.planner-object-round{fill:#eef4ff;}.planner-object-rect{fill:#eef2f8;}.planner-object-special{fill:#f2f5fa;}.planner-object-door{fill:#fff;stroke:#2f5fa7;}.planner-object-custom{fill:#eef2f7;}.planner-object-label{font-size:18px;font-weight:700;fill:#1f2733;text-anchor:middle;}.planner-object-sub{font-size:12px;fill:#66758a;text-anchor:middle;}.planner-zone-fill{fill:#eef4ff;stroke:#bcd0ee;stroke-width:2.5;stroke-dasharray:10 8;}.planner-aisle{fill:rgba(255,255,255,.82);stroke:#bcd0ee;stroke-width:2;stroke-dasharray:12 10;}.planner-zone-label{font-family:Georgia,serif;font-size:22px;fill:#2f5fa7;}

/* ═══ Style Block 8 ═══ */
.skip-link{
  position:fixed;
  top:14px;
  left:14px;
  z-index:280;
  padding:12px 16px;
  border-radius:999px;
  background:#fff;
  color:var(--text);
  border:1px solid rgba(186,199,219,.9);
  box-shadow:0 16px 32px rgba(36,49,67,.14);
  transform:translateY(-180%);
  transition:transform .2s ease;
}

.skip-link:focus{
  transform:translateY(0);
}

.login-field{
  display:grid;
  gap:10px;
  margin-bottom:28px;
}

.login-field input{
  margin-bottom:0 !important;
}

.login-caps-hint{
  margin:-16px 0 14px;
  font-size:12px;
  color:#2F5FA7;
}

.login-main .login-btn{
  margin-top:8px;
}

.login-help{
  margin-top:28px;
  font-size:12px;
  color:var(--muted);
  line-height:1.75;
  text-align:center;
}

#main-content{
  scroll-margin-top:120px;
}

.main-panel,
.doc-panel{
  scroll-margin-top:138px;
}

@media (max-width: 900px){
  .skip-link{
    top:10px;
    left:10px;
    padding:10px 14px;
  }

  .main-panel,
  .doc-panel{
    scroll-margin-top:96px;
  }

  #panel-messages{
    padding-bottom:28px;
  }

  .msg-thread{
    scroll-padding-bottom:40px;
  }

  .msg-input-row{
    bottom:18px !important;
  }
}

@media (max-width: 560px){
  .login-logo{font-size:42px;}
  .login-card h2{font-size:18px;}
  .login-divider{margin:24px 0 28px;}
}

/* ═══ Style Block 9 ═══ */
/* ── DECOR IMAGE LIGHTBOX ── */
#decor-lightbox{
  position:fixed;inset:0;z-index:9100;
  background:rgba(14,11,7,.88);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  display:flex;align-items:center;justify-content:center;
  padding:20px;cursor:zoom-out;
  opacity:0;visibility:hidden;
  transition:opacity .25s ease,visibility .25s ease;
}
#decor-lightbox.open{opacity:1;visibility:visible;}
#decor-lightbox-img{
  max-width:min(92vw,1100px);max-height:90vh;
  object-fit:contain;border-radius:14px;
  box-shadow:0 40px 90px rgba(0,0,0,.55);
  cursor:default;
  transform:scale(.94);
  transition:transform .28s cubic-bezier(.22,.68,0,1.1);
  display:block;
}
#decor-lightbox.open #decor-lightbox-img{transform:scale(1);}
#decor-lightbox-close{
  position:fixed;top:20px;right:24px;
  width:44px;height:44px;border-radius:50%;
  background:rgba(255,255,255,.13);
  border:1.5px solid rgba(255,255,255,.28);
  color:#fff;font-size:20px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:background .15s;z-index:1;line-height:1;
}
#decor-lightbox-close:hover{background:rgba(255,255,255,.24);}
#decor-lightbox-caption{
  position:fixed;bottom:24px;left:50%;transform:translateX(-50%);
  font-size:12px;color:rgba(255,255,255,.62);letter-spacing:.08em;
  text-align:center;pointer-events:none;max-width:80vw;
}

/* ═══ Style Block 10 ═══ */
/* ── COUPLE PHOTO CARD (inside countdown box) ── */
.couple-photo-card{
  background:none;border:none;border-radius:0;
  padding:0;margin:0;box-shadow:none;
  display:flex;flex-direction:column;align-items:center;gap:0;
  flex-shrink:0;
}
.couple-photo-wrap{
  position:relative;flex-shrink:0;
}
.couple-photo-frame{
  width:190px;height:190px;border-radius:50%;overflow:hidden;
  border:none;
  box-shadow:
    0 0 0 5px rgba(255,255,255,.96),
    0 0 0 11px var(--gold-lt),
    0 20px 52px rgba(0,0,0,.2);
  background:rgba(255,255,255,.2);flex-shrink:0;
  position:relative;
  transition:transform .22s ease, box-shadow .22s ease;
}
.couple-photo-frame img{
  width:100%;height:100%;object-fit:cover;display:block;
}
.couple-photo-frame.couple-photo-has-photo{cursor:pointer;}
.couple-photo-frame.couple-photo-has-photo:hover{
  transform:scale(1.04);
  box-shadow:
    0 0 0 4px rgba(255,255,255,1),
    0 0 0 9px var(--gold-lt),
    0 22px 56px rgba(0,0,0,.22);
}
.couple-photo-overlay{
  position:absolute;inset:0;border-radius:50%;
  background:rgba(0,0,0,.38);
  display:flex;align-items:center;justify-content:center;
  opacity:0;transition:opacity .22s;color:#fff;
  pointer-events:none;
}
.couple-photo-frame.couple-photo-has-photo:hover .couple-photo-overlay{opacity:1;}
.couple-photo-menu{
  position:absolute;top:calc(100% + 12px);left:50%;
  transform:translateX(-50%);
  background:#fff;border-radius:14px;
  box-shadow:0 10px 32px rgba(0,0,0,.16),0 2px 8px rgba(0,0,0,.08);
  padding:6px;display:none;flex-direction:column;gap:2px;
  min-width:152px;z-index:200;
  border:1px solid var(--border);
}
.couple-photo-menu.open{display:flex;}
.couple-photo-menu button{
  padding:9px 16px;border:none;border-radius:9px;
  font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  cursor:pointer;text-align:left;background:transparent;
  color:var(--gold);transition:background .15s;white-space:nowrap;
}
.couple-photo-menu button:hover{background:var(--gold-bg);}
.couple-photo-menu button.rm{color:#a33;}
.couple-photo-menu button.rm:hover{background:#fdf2f2;}
.couple-photo-placeholder{
  width:190px;height:190px;border-radius:50%;
  border:2.5px dashed rgba(255,255,255,.55);
  background:rgba(255,255,255,.12);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:10px;color:rgba(255,255,255,.8);cursor:pointer;
  transition:border-color .2s,background .2s,transform .2s;
  box-shadow:0 0 0 4px rgba(255,255,255,.18),0 12px 36px rgba(0,0,0,.12);
}
.couple-photo-placeholder:hover{
  border-color:rgba(255,255,255,.85);background:rgba(255,255,255,.22);
  transform:scale(1.03);
}
.couple-photo-placeholder svg{width:32px;height:32px;opacity:.75;}
.couple-photo-placeholder-lbl{
  font-size:10px;letter-spacing:.15em;text-transform:uppercase;font-weight:700;
}
.couple-photo-loading{
  display:flex;flex-direction:column;align-items:center;gap:12px;
  color:rgba(255,255,255,.85);font-size:12px;
}
.couple-photo-spinner{
  display:inline-block;width:32px;height:32px;
  border:3px solid rgba(255,255,255,.25);border-top-color:rgba(255,255,255,.9);
  border-radius:50%;animation:llwSpin .8s linear infinite;
}
.couple-photo-err{
  font-size:11px;color:#fff;text-align:center;padding:7px 12px;
  background:rgba(160,40,40,.55);border:1px solid rgba(255,180,180,.35);border-radius:10px;
  max-width:220px;margin-top:8px;
}
@media(max-width:900px){
  .couple-photo-frame,.couple-photo-placeholder{width:155px;height:155px;}
}
@media(max-width:560px){
  .couple-photo-frame,.couple-photo-placeholder{width:120px;height:120px;}
}

/* ═══ Style Block 11 ═══ */
/* ── Info panel subnav ── */
.info-subnav{
  display:flex;gap:8px;margin-bottom:28px;overflow-x:auto;padding:6px;
  background:rgba(218,235,255,.55);border:1px solid rgba(168,197,232,.4);border-radius:20px;
  scrollbar-width:none;flex-shrink:0;
}
.info-subnav::-webkit-scrollbar{display:none;}
.info-tab{
  padding:10px 16px;font-size:13px;color:var(--muted);cursor:pointer;border-radius:14px;
  white-space:nowrap;transition:all .18s ease;user-select:none;border:1px solid transparent;
  background:none;text-align:left;font-family:inherit;flex-shrink:0;
}
.info-tab:hover{color:var(--text);background:var(--cream2);}
.info-tab.active{
  color:var(--text);background:linear-gradient(135deg,#fff 0%,#eaf2fb 100%);font-weight:700;
  border-color:rgba(168,197,232,.5);box-shadow:0 6px 14px rgba(47,95,167,.1);
}
.info-pane{display:none;}
.info-pane.active{display:block;}
.info-mobile-select-wrap{display:none;margin-bottom:20px;}
.info-mobile-select-wrap select{border-radius:16px;padding:12px 15px;}

/* ── Info section cards ── */
.info-section-card{
  background:rgba(255,255,255,.92);border:1px solid var(--border);border-radius:24px;
  padding:28px 30px;margin-bottom:20px;box-shadow:var(--shadow-soft);
}
.info-section-card h2{
  font-family:'Cormorant Garamond',serif;font-size:30px;color:var(--text);font-weight:600;
  margin-bottom:4px;letter-spacing:.01em;line-height:1.1;
}
.info-section-card h3{
  font-family:'Cormorant Garamond',serif;font-size:22px;color:var(--text);font-weight:600;
  margin-bottom:16px;letter-spacing:.01em;
}
.info-section-eyebrow{
  font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);
  font-weight:700;margin-bottom:10px;
}

/* ── Callouts ── */
.info-callout{
  background:linear-gradient(135deg,#eaf2fb 0%,#ddeeff 100%);border:1px solid var(--gold-lt);
  border-radius:16px;padding:16px 20px;margin:16px 0;font-size:13px;color:var(--text);line-height:1.7;
}
.info-callout.warning{
  background:linear-gradient(135deg,#fff8f0 0%,#fef0e0 100%);border-color:#f0c090;color:#5a3800;
}
.info-callout.danger{
  background:linear-gradient(135deg,#fff0f0 0%,#fee8e8 100%);border-color:#e0a0a0;color:#7a2020;
}

/* ── Pricing cards ── */
.info-price-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;margin-top:16px;
}
.info-price-card{
  background:linear-gradient(180deg,#fff 0%,#f5f9ff 100%);border:1px solid var(--border);
  border-radius:18px;padding:18px 20px;display:flex;flex-direction:column;gap:6px;
  transition:box-shadow .18s,transform .18s;
}
.info-price-card:hover{box-shadow:0 12px 28px rgba(47,95,167,.1);transform:translateY(-2px);}
.info-price-card-name{font-size:14px;font-weight:700;color:var(--text);line-height:1.35;}
.info-price-card-desc{font-size:12px;color:var(--muted);line-height:1.6;flex:1;}
.info-price-card-price{
  font-family:'Cormorant Garamond',serif;font-size:22px;font-weight:600;color:var(--gold);
  letter-spacing:.01em;margin-top:6px;
}

/* ── Checklist items (checkout) ── */
.info-checklist-item{
  display:flex;align-items:flex-start;gap:14px;padding:14px 0;
  border-bottom:1px solid var(--cream2);font-size:13px;color:var(--text);line-height:1.7;
}
.info-checklist-item:last-child{border-bottom:none;}
.info-check-icon{
  width:32px;height:32px;border-radius:999px;background:var(--sage-lt);border:1px solid #c2d3be;
  display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0;margin-top:1px;
}
.info-checkout-time{
  font-family:'Cormorant Garamond',serif;font-size:52px;font-weight:600;color:var(--gold);
  letter-spacing:.02em;text-align:center;padding:20px 0 6px;line-height:1;
}
.info-checkout-label{
  text-align:center;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);
  margin-bottom:20px;
}

/* ── Accommodation cards ── */
.info-accom-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin-top:16px;}
.info-accom-card{
  background:rgba(255,255,255,.92);border:1px solid var(--border);border-radius:20px;
  padding:20px 22px;box-shadow:var(--shadow-soft);transition:box-shadow .18s,transform .18s;
  display:flex;flex-direction:column;gap:8px;
}
.info-accom-card:hover{box-shadow:0 16px 32px rgba(47,95,167,.12);transform:translateY(-2px);}
.info-accom-name{font-size:14px;font-weight:700;color:var(--text);line-height:1.35;}
.info-accom-badge{
  display:inline-flex;align-items:center;gap:4px;font-size:11px;border-radius:999px;
  padding:4px 10px;background:var(--gold-bg);color:var(--gold);font-weight:600;
  width:fit-content;border:1px solid var(--gold-lt);
}
.info-accom-meta{display:flex;flex-direction:column;gap:4px;margin-top:2px;}
.info-accom-row{display:flex;align-items:flex-start;gap:8px;font-size:12px;color:var(--muted);line-height:1.5;}
.info-accom-icon{flex-shrink:0;width:16px;text-align:center;}
.info-accom-link{
  display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--gold);
  padding:8px 14px;border:1px solid var(--gold-lt);border-radius:999px;margin-top:8px;
  transition:background .18s,transform .18s;background:var(--white);width:fit-content;
  text-decoration:none;
}
.info-accom-link:hover{background:var(--gold-bg);transform:translateY(-1px);opacity:1;}

/* ── Waiver clause cards ── */
.info-clause-card{
  background:rgba(255,255,255,.92);border:1px solid var(--border);border-radius:20px;
  padding:20px 24px;margin-bottom:14px;box-shadow:var(--shadow-soft);
  display:grid;grid-template-columns:110px 1fr;gap:16px;align-items:start;
}
.info-initials-wrap{display:flex;flex-direction:column;gap:6px;align-items:center;}
.info-initials-input{
  text-align:center!important;font-style:italic!important;font-size:18px!important;
  letter-spacing:2px!important;border:1px solid var(--border)!important;
  border-radius:14px!important;padding:12px 8px!important;
  font-family:'Cormorant Garamond',serif!important;background:var(--gold-bg)!important;
  width:90px!important;
}
.info-initials-label{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:700;}
.info-clause-body h4{
  font-family:'Cormorant Garamond',serif;font-size:18px;color:var(--text);margin-bottom:8px;font-weight:600;
}
.info-clause-body p,.info-clause-body ul{font-size:13px;color:var(--text);line-height:1.75;}
.info-clause-body ul{margin:8px 0 0 16px;}

/* ── Signature pad ── */
.sig-pad-wrap{margin-top:4px;}
.sig-pad-canvas-wrap{
  border:2px dashed var(--border);border-radius:16px;background:rgba(255,255,255,.98);
  overflow:hidden;position:relative;cursor:crosshair;touch-action:none;transition:border-color .18s;
}
.sig-pad-canvas-wrap.drawing,.sig-pad-canvas-wrap:focus-within{border-color:var(--gold-lt);}
.sig-pad-canvas{display:block;width:100%;height:120px;}
.sig-pad-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap;}
.sig-pad-btn{
  padding:8px 16px;font-size:12px;border-radius:999px;cursor:pointer;
  transition:all .18s;font-family:inherit;font-weight:600;letter-spacing:.06em;
}
.sig-pad-btn.clear{background:var(--white);border:1px solid var(--border);color:var(--muted);}
.sig-pad-btn.clear:hover{border-color:var(--gold-lt);color:var(--text);}
.sig-pad-btn.use{background:linear-gradient(135deg,#4A8FD8 0%,#2F5FA7 100%);border:none;color:#fff;}
.sig-pad-btn.use:hover{box-shadow:0 8px 18px rgba(47,95,167,.22);transform:translateY(-1px);}
.sig-pad-hint{
  font-size:12px;color:var(--muted);text-align:center;position:absolute;
  top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;
  letter-spacing:.04em;white-space:nowrap;transition:opacity .18s;
}
.sig-saved-wrap{margin-top:10px;display:flex;flex-direction:column;gap:6px;}
.sig-saved-img{
  display:block;max-width:300px;border:1px solid var(--border);border-radius:12px;
  background:var(--white);padding:6px;height:68px;object-fit:contain;
}
.sig-pad-edit-btn{
  padding:7px 14px;font-size:11px;border:1px solid var(--border);border-radius:999px;
  background:var(--white);color:var(--muted);cursor:pointer;font-family:inherit;font-weight:600;
  transition:all .18s;width:fit-content;letter-spacing:.04em;
}
.sig-pad-edit-btn:hover{border-color:var(--gold-lt);color:var(--text);}

/* ── Signature grid ── */
.info-sig-grid{
  display:grid;grid-template-columns:1fr 1fr 160px;gap:20px;padding:22px;
  background:linear-gradient(180deg,#fff 0%,#f4f8fd 100%);
  border:1px solid var(--border);border-radius:22px;box-shadow:var(--shadow-soft);margin-bottom:14px;
}
.info-sig-col label{
  display:block;font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);margin-bottom:8px;font-weight:700;
}
.info-section-divider{border:none;border-top:1px solid var(--border);margin:24px 0;}

/* ── Responsive ── */
@media(max-width:900px){
  .info-subnav{display:none;}
  .info-mobile-select-wrap{display:block;}
  .info-price-grid{grid-template-columns:1fr 1fr;}
  .info-accom-grid{grid-template-columns:1fr;}
  .info-clause-card{grid-template-columns:1fr;gap:10px;}
  .info-sig-grid{grid-template-columns:1fr;}
  .info-section-card{padding:20px 18px;}
}
@media(max-width:600px){
  .info-checkout-time{font-size:38px;}
  .info-price-grid{grid-template-columns:1fr;}
}

/* ═══ Style Block 12 ═══ */
/* ════════════════════════════════════════════════════════════════
   Legacy Lane Couple Portal — Color + UI Polish Pass (2026-03-18)
   Normalises all warm/brown/green/tan tones to the blue-based
   design system. Applied last so these declarations win cascade.
   ════════════════════════════════════════════════════════════════ */

/* ─── 1. Sidebar backdrop: was warm brown → dark navy ─── */
.sidebar-backdrop {
  background: rgba(22, 35, 54, 0.28) !important;
}

/* ─── 2. Progress bar fill: was hard-coded green gradient → blue ─── */
.prog-bar-fill {
  background: linear-gradient(90deg, #a8c0de 0%, #6b91b8 100%) !important;
}

/* ─── 3. Login side panel: was warm beige background → blue-tinted ─── */
.login-side {
  background: linear-gradient(180deg, rgba(237, 245, 255, 0.94), rgba(255, 255, 255, 0.9)) !important;
}

/* ─── 4. Quick-link btn gold-tan border → blue ─── */
.quick-btn:first-child,
.quick-btn:nth-child(2) {
  border-color: rgba(168, 197, 232, 0.55) !important;
}

/* ─── 5. Insurance success states: green → blue system ─── */
.insurance-card-state.uploaded {
  background: var(--gold-bg) !important;
  border-color: var(--gold-lt) !important;
  color: var(--gold) !important;
}
.insurance-complete-note {
  background: var(--gold-bg) !important;
  border: 1px solid var(--gold-lt) !important;
  border-left: 3px solid var(--gold) !important;
  color: var(--gold) !important;
}
.insurance-btn.success {
  background: var(--gold-bg) !important;
  border-color: var(--gold-lt) !important;
  color: var(--gold) !important;
}

/* ─── 6. Vendor badge "optional": green border → blue ─── */
.vendor-badge.optional {
  background: var(--gold-bg) !important;
  border-color: var(--gold-lt) !important;
  color: var(--gold) !important;
}

/* ─── 7. Planner status "ok": green tint → blue tint ─── */
.planner-status.ok {
  color: var(--gold) !important;
  background: #edf3fb !important;
  border-color: #cfd8e6 !important;
}

/* ─── 8. Décor note: hard-coded green border → blue ─── */
.decor-note {
  border-color: rgba(168, 197, 232, 0.24) !important;
  border-left-color: var(--gold-lt) !important;
}

/* ─── 9. Accommodations badge: green border → blue ─── */
.info-accom-badge {
  border-color: var(--gold-lt) !important;
}

/* ─── 10. Status success text: green → primary blue ─── */
.cl-status.is-success,
.save-status.ok {
  color: var(--gold) !important;
}

/* ─── 11. Warning info-callout: standardise text contrast ─── */
.info-callout.warning {
  color: #4a3200 !important;
}

/* ─── 12. Checklist checkbox accent: normalise to blue ─── */
.cl-checkbox {
  accent-color: var(--gold) !important;
}

/* ─── 13. Button & input min-height consistency on mobile ─── */
@media (max-width: 900px) {
  .doc-tab,
  .info-tab {
    min-height: 48px !important;
  }

  .portal-mobile-switcher-card {
    padding: 18px 16px !important;
  }

  .overview-action-strip {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  .info-grid {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }

  #panel-checklist,
  #panel-documents,
  #panel-planning-guide,
  #panel-insurance,
  #panel-vendors,
  #panel-messages {
    padding: 20px 18px !important;
    border-radius: 22px !important;
  }

  .guide-hero {
    padding: 20px 18px !important;
    gap: 16px !important;
  }

  .info-section-card {
    padding: 22px 18px !important;
  }

  .info-price-grid {
    grid-template-columns: 1fr 1fr !important;
  }
}

@media (max-width: 560px) {
  .info-price-grid {
    grid-template-columns: 1fr !important;
  }

  .guide-accordion summary {
    padding: 14px 16px !important;
  }

  .countdown-box {
    gap: 12px !important;
  }
}

/* ─── 14. Login card mobile: remove warm background from side ─── */
@media (max-width: 900px) {
  .login-side {
    padding: 18px !important;
    border-radius: 20px !important;
  }
  .login-card {
    padding: 0 !important;
  }
}

/* ─── 15. Focus ring: ensure consistent blue focus ring everywhere ─── */
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
.nav-item:focus-visible,
.doc-tab:focus-visible,
.info-tab:focus-visible,
.guide-accordion summary:focus-visible {
  outline: 2.5px solid rgba(47, 95, 167, 0.55) !important;
  outline-offset: 2px !important;
}

/* ─── 16. Normalise save-bar on desktop to consistent blue ─── */
#panel-documents .save-bar,
#panel-insurance .save-bar {
  background: rgba(247, 252, 255, 0.95) !important;
  border-color: rgba(168, 197, 232, 0.88) !important;
}

/* ─── 17. Checklist group bar fill: was var(--sage) → already overridden
         but hard-coded colour in base still exists; force blue here ─── */
.cl-group-bar-fill {
  background: linear-gradient(90deg, #a8c0de 0%, #6b91b8 100%) !important;
  transition: width 0.4s ease !important;
}

/* ─── 18. Mobile-nav active pill: consistent gradient ─── */
.portal-mobile-nav button.is-active {
  background: linear-gradient(135deg, #fff 0%, #deeeff 100%) !important;
  color: var(--text) !important;
}

/* ─── 19. Info checklist icon: greenish border → blue ─── */
.info-check-icon {
  border-color: var(--border) !important;
}

/* ─── 20. Insurance card completed states: green → blue tints ─── */
.insurance-card.completed {
  border-color: var(--gold-lt) !important;
  box-shadow: 0 16px 28px rgba(47, 95, 167, 0.08) !important;
  background: linear-gradient(180deg, #ffffff 0%, #f4f9ff 100%) !important;
}
.insurance-upload-zone.completed {
  border-color: var(--gold-lt) !important;
  background: linear-gradient(180deg, #f8fbff 0%, #f2f7fd 100%) !important;
}

/* ─── 21. Update base variables to align sage/green fully to blue ─── */
:root {
  --sage: var(--gold);
  --sage-lt: var(--gold-bg);
  --green: var(--gold);
}

/* ═══════════════════════════════════════════════════════
   UI/UX AUDIT FIXES — 2026-03-18
   Responsiveness, spacing, overlap, touch targets, polish
   ═══════════════════════════════════════════════════════ */

/* ── A1. GLOBAL: prevent horizontal overflow from children ── */
.main-content,
.main-panel,
#portal {
  overflow-x: hidden;
}

/* ── A2. FIX: countdown-primary flex wrap for small screens ── */
.countdown-primary {
  flex-wrap: wrap;
}

/* ── A3. FIX: info-row flex wrap to prevent label/value cramping ── */
.info-row {
  flex-wrap: wrap;
}

/* ── A4. FIX: vendor-search min-width can cause overflow ── */
.vendor-search {
  min-width: 0;
  flex-basis: 240px;
}

/* ── A5. FIX: Touch targets — ensure minimum 44px on all interactive elements ── */
.cl-item {
  min-height: 44px;
}

.cl-checkbox {
  width: 20px;
  height: 20px;
  min-width: 20px;
}

.map-pin {
  min-width: 44px;
  min-height: 44px;
}

.vmap-filter {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

.vmap-list-item {
  min-height: 48px;
}

.insurance-btn {
  min-height: 44px;
}

.nearby-link,
.nearby-phone {
  min-height: 44px;
}

.loc-nav-btn {
  min-height: 44px;
}

.planner-ur-btn {
  min-height: 44px;
}

.planner-layer-btn {
  min-height: 44px;
}

.guide-jump-select {
  min-height: 44px;
}

.decor-tab {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

.vendor-tab {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

.wdt-tab {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

/* ── A6. FIX: Consistent border-radius patterns ── */
.cl-group {
  border-radius: 24px;
}

.lodge-block {
  border-radius: 24px;
}

/* ── A7. FIX: doc-subnav grid minmax can overflow on smaller tablets ── */
@media (max-width: 900px) {
  .doc-subnav {
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  }
}

/* ── A8. FIX: decor table horizontal scroll on small screens ── */
@media (max-width: 640px) {
  .decor-table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}

/* ═══ B. 480px AND BELOW — Small phone fixes ═══ */
@media (max-width: 480px) {

  /* Header: tighter on very small screens */
  .portal-header {
    padding: 10px 10px !important;
    gap: 8px !important;
    border-radius: 16px !important;
  }

  .portal-header .brand {
    font-size: 18px !important;
  }

  .logout-btn {
    padding: 8px 12px;
    font-size: 11px;
  }

  .menu-toggle {
    padding: 6px 10px;
    font-size: 18px;
  }

  /* Main content: reduce side padding */
  .main-content {
    padding-left: 8px !important;
    padding-right: 8px !important;
  }

  .portal-mobile-switcher {
    padding-left: 8px !important;
    padding-right: 8px !important;
  }

  /* Countdown: scale down for narrow viewports */
  .countdown-num {
    font-size: 52px !important;
  }

  .countdown-label {
    font-size: 22px !important;
  }

  .countdown-primary {
    gap: 10px;
  }

  .countdown-date {
    font-size: 11px;
  }

  .countdown-box {
    padding: 20px 16px !important;
    border-radius: 20px !important;
  }

  /* Section headings */
  .overview-welcome h2,
  .form-header h1 {
    font-size: 24px !important;
  }

  /* Panels: reduce padding */
  #panel-checklist,
  #panel-documents,
  #panel-planning-guide,
  #panel-insurance,
  #panel-vendors,
  #panel-messages {
    padding: 16px 12px !important;
  }

  /* Checklist: prevent multi-column overflow */
  .cl-group-items {
    column-width: auto !important;
    column-count: 1 !important;
    padding: 12px 12px 14px !important;
  }

  .cl-group-header {
    padding: 14px 14px;
  }

  .cl-group-title {
    font-size: 22px;
  }

  /* Info cards */
  .info-card,
  .progress-card,
  .overview-welcome {
    padding: 18px 14px !important;
  }

  .info-card h3,
  .progress-card h3 {
    font-size: 24px;
  }

  /* Progress row: label shouldn't be fixed-width */
  .prog-label {
    width: auto !important;
    font-size: 10px;
  }

  /* Form elements */
  .section-title {
    font-size: 24px;
    margin: 24px 0 14px;
  }

  .field-note {
    padding: 10px 12px;
    font-size: 11px;
  }

  /* Signature block: single column */
  .sig-block {
    grid-template-columns: 1fr !important;
    gap: 12px;
    padding: 16px !important;
  }

  /* Initial row */
  .initial-row {
    grid-template-columns: 1fr !important;
    padding: 14px !important;
  }

  /* Insurance cards */
  .insurance-card {
    padding: 14px;
  }

  .insurance-upload-zone {
    padding: 14px;
    min-height: 90px;
  }

  /* Save bar */
  .save-bar {
    padding: 12px !important;
  }

  .save-btn {
    padding: 14px 20px;
    font-size: 11px;
  }

  /* Messages */
  .msg-thread {
    padding: 14px 12px !important;
    min-height: 240px !important;
  }

  .msg-bubble {
    max-width: 92%;
    padding: 12px 14px;
  }

  .msg-input-row {
    padding: 12px !important;
  }

  /* Vendor page */
  .vendor-hero {
    padding: 16px 14px !important;
  }

  .vendor-hero h1 {
    font-size: 26px !important;
  }

  .vendor-section {
    padding: 16px 12px !important;
  }

  .vendor-section-title {
    font-size: 24px;
  }

  .vendor-card {
    padding: 16px 14px;
  }

  .vendor-card h3 {
    font-size: 19px;
  }

  /* Venue map */
  .vmap-panel-hd {
    padding: 20px 18px 16px 18px;
  }

  .vmap-panel-title {
    font-size: 28px;
  }

  .vmap-hero h1 {
    font-size: 26px !important;
  }

  .vmap-hero {
    padding: 18px 14px !important;
  }

  .vmap-note {
    padding: 16px 14px;
  }

  .vmap-note-title {
    font-size: 20px;
  }

  .vmap-selected-card {
    padding: 14px;
  }

  .vmap-sel-name {
    font-size: 20px;
  }

  .vmap-sel-badge {
    width: 44px;
    height: 44px;
    border-radius: 14px;
  }

  .vmap-filter {
    padding: 6px 10px;
    font-size: 11px;
  }

  /* Ensure vmap-art doesn't cause horizontal overflow */
  .vmap-art {
    width: 100% !important;
  }

  .vmap-scroll {
    min-height: 280px;
    padding: 8px;
  }

  .vmap-stage {
    min-height: 280px;
    padding: 10px;
  }

  .vmap-zoom-controls {
    top: 16px;
    right: 16px;
    gap: 6px;
  }

  .vmap-zoom-btn {
    width: 38px;
    height: 38px;
    font-size: 17px;
    border-radius: 12px;
  }

  .vmap-list-scroll {
    max-height: 240px;
  }

  /* Location page */
  .loc-venue-hero {
    padding: 18px 14px !important;
  }

  .loc-venue-name {
    font-size: 28px;
  }

  .location-card {
    padding: 18px 14px !important;
  }

  #llw-map-embed {
    height: 260px !important;
  }

  .nearby-section {
    padding: 14px 12px !important;
  }

  .nearby-title-wrap h2 {
    font-size: 20px !important;
  }

  .nearby-card {
    padding: 14px;
  }

  .nearby-grid {
    grid-template-columns: 1fr !important;
  }

  /* Table planner */
  .planner-hero {
    padding: 16px 14px !important;
  }

  .planner-hero h1 {
    font-size: 22px !important;
  }

  .planner-toolbar-card,
  .planner-canvas-card {
    padding: 14px !important;
  }

  .planner-tool-grid,
  .planner-action-grid {
    grid-template-columns: 1fr !important;
  }

  .planner-canvas-wrap {
    padding: 12px;
  }

  .planner-svg-frame {
    min-height: 300px !important;
  }

  .planner-tpl-card {
    width: 150px;
  }

  /* Planning guide */
  .guide-hero {
    padding: 18px 14px !important;
  }

  .guide-hero h1 {
    font-size: 28px;
  }

  .guide-section-head h2 {
    font-size: 24px;
  }

  .guide-timeline li {
    grid-template-columns: 1fr !important;
    gap: 4px;
    padding: 12px 14px;
  }

  .guide-time {
    font-size: 11px;
  }

  .guide-accordion summary {
    padding: 14px 16px;
    gap: 12px;
  }

  .guide-accordion summary h3 {
    font-size: 20px;
  }

  .guide-accordion-body {
    padding: 10px 16px 14px;
  }

  .guide-policy-grid {
    grid-template-columns: 1fr !important;
  }

  .guide-callout {
    padding: 14px 16px;
  }

  /* Decor page */
  #panel-decor {
    padding: 16px 12px 40px !important;
  }

  #panel-decor > .form-header h1 {
    font-size: 28px !important;
  }

  .decor-pane-head h2 {
    font-size: 28px;
  }

  .decor-intro-card {
    padding: 16px 18px;
  }

  .decor-contact-card {
    padding: 22px 18px;
  }

  .decor-overview-card {
    padding: 20px 18px;
  }

  .decor-table td:first-child {
    white-space: normal;
    width: auto;
  }

  .decor-img-grid.g2 {
    grid-template-columns: 1fr !important;
  }

  /* Documents sub-panel */
  #panel-documents .doc-panel {
    padding: 20px 14px 22px !important;
  }

  #panel-documents .doc-panel .form-header h2 {
    font-size: 24px !important;
  }

  #panel-documents .waiver-grid {
    grid-template-columns: 1fr !important;
  }

  /* Overview action strip */
  .overview-action-strip {
    grid-template-columns: 1fr !important;
    gap: 10px;
  }

  .overview-action-item {
    padding: 14px 16px;
  }

  /* Login screen */
  #login-screen {
    padding: 20px 14px;
  }

  .login-logo {
    font-size: 36px !important;
  }

  .login-card h2 {
    font-size: 16px !important;
  }

  .login-divider {
    margin: 22px 0 26px;
  }

  .login-side {
    padding: 16px;
  }

  /* Mobile selects */
  #portal-mobile-select,
  #doc-mobile-select {
    font-size: 15px;
    min-height: 48px;
  }

  .portal-mobile-switcher-icon {
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    font-size: 20px;
  }

  /* Mobile bottom nav: tighter */
  .portal-mobile-nav {
    left: 6px !important;
    right: 6px !important;
    bottom: 6px !important;
    gap: 4px !important;
    padding: 6px !important;
    border-radius: 22px !important;
  }

  .portal-mobile-nav button {
    min-height: 50px;
    padding: 6px 4px;
    gap: 3px;
  }

  .portal-mobile-nav-ico {
    font-size: 16px;
  }

  .portal-mobile-nav-label {
    font-size: 8px;
    letter-spacing: .04em;
  }

  /* Sticky doc-subnav should be static on mobile (no overlap) */
  #panel-documents .doc-subnav {
    top: auto !important;
    position: static !important;
  }
}

/* ═══ C. 360px AND BELOW — Extra small phone fixes ═══ */
@media (max-width: 360px) {
  .portal-header .brand {
    font-size: 16px !important;
  }

  .countdown-num {
    font-size: 44px !important;
  }

  .countdown-label {
    font-size: 19px !important;
  }

  .overview-welcome h2,
  .form-header h1 {
    font-size: 22px !important;
  }

  .info-card h3,
  .progress-card h3 {
    font-size: 22px;
  }

  .main-content {
    padding-left: 6px !important;
    padding-right: 6px !important;
  }

  .portal-mobile-switcher {
    padding-left: 6px !important;
    padding-right: 6px !important;
  }

  #panel-checklist,
  #panel-documents,
  #panel-planning-guide,
  #panel-insurance,
  #panel-vendors,
  #panel-messages {
    padding: 14px 8px !important;
  }

  /* Vendor search should not enforce min-width */
  .vendor-search {
    flex-basis: auto;
  }

  .vendor-controls {
    flex-direction: column;
    align-items: stretch;
  }
}

/* ═══ D. 400px AND BELOW — Login & sidebar fixes ═══ */
@media (max-width: 400px) {
  #login-screen {
    padding: 16px 10px;
    align-items: flex-start;
    padding-top: 60px;
  }

  .login-card {
    max-width: 100%;
    padding: 28px 18px !important;
  }

  .login-btn {
    padding: 14px 16px;
    font-size: 10px;
  }

  .login-benefits li {
    padding: 10px 12px;
    font-size: 12px;
  }

  /* Sidebar width on very small screens */
  .sidebar {
    width: calc(100vw - 24px) !important;
    left: 6px !important;
    right: 6px !important;
  }
}

