/* ──────────────────────────────────────────────
   THE AMSTERDAMIAN — shared stylesheet
   ────────────────────────────────────────────── */

:root{
  --black:#0a0806;
  --dark:#110e0a;
  --rich:#1a1510;
  --card:#1f1a14;
  --gold:#c9a84c;
  --gold-light:#e8c97a;
  --gold-dim:#8a6f32;
  --cream:#f5edd8;
  --cream-dim:#c4b896;
  --text:#d8cdb8;
  --muted:#7a7060;
  --border:rgba(201,168,76,0.2);
  --border-hi:rgba(201,168,76,0.5);
  --red:#8b2020;
  --green:#2a5a1a;
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--black);
  color:var(--text);
  font-family:'Cormorant Garamond',serif;
  font-size:18px;
  line-height:1.7;
  min-height:100vh;
}
.hidden{display:none!important;}
a{color:inherit;text-decoration:none;}

/* ── NAV ── */
nav.site-nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:rgba(10,8,6,0.97);
  border-bottom:1px solid var(--border);
  padding:0 2rem;display:flex;align-items:center;justify-content:space-between;
  height:64px;
}
.nav-logo{cursor:pointer;}
.nav-logo img{
  height:42px;width:auto;
  opacity:.92;transition:opacity .3s;
}
.nav-logo img:hover{opacity:1;}
.nav-links{display:flex;gap:1.6rem;align-items:center;}
.nav-links a{
  font-family:'Josefin Sans',sans-serif;
  font-size:.62rem;font-weight:300;letter-spacing:.2em;text-transform:uppercase;
  color:var(--cream-dim);cursor:pointer;transition:color .3s;
}
.nav-links a:hover,.nav-links a.active{color:var(--gold);}
.nav-cta{
  font-family:'Josefin Sans',sans-serif;
  font-size:.6rem;font-weight:300;letter-spacing:.2em;text-transform:uppercase;
  background:transparent;border:1px solid var(--gold-dim);color:var(--gold);
  padding:.42rem 1.1rem;cursor:pointer;transition:all .3s;
}
.nav-cta:hover{background:var(--gold);color:var(--black);}

.nav-toggle{display:none;background:none;border:none;color:var(--gold);font-size:1.2rem;cursor:pointer;}

@media (max-width:880px){
  nav.site-nav{padding:0 1.1rem;}
  .nav-toggle{display:block;}
  .nav-links{
    position:absolute;top:64px;left:0;right:0;
    flex-direction:column;background:rgba(10,8,6,0.99);
    border-bottom:1px solid var(--border);
    padding:1rem 0;gap:1.1rem;
    display:none;
  }
  .nav-links.open{display:flex;}
}

/* ── PAGE WRAPPER ── */
.page{padding-top:64px;min-height:100vh;}

/* ── HERO ── */
.hero{position:relative;height:calc(100vh - 64px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;overflow:hidden;}
.hero-bg{position:absolute;inset:0;background-position:center;background-size:cover;filter:brightness(.28);}
.hero-glow{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 65%,rgba(201,168,76,.07) 0%,transparent 60%);}
.hero-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;padding:0 1rem;}
.hero-content img{
  width:260px;max-width:80vw;height:auto;
  margin-bottom:1.4rem;
}
.orn{font-family:'Josefin Sans',sans-serif;font-size:.58rem;letter-spacing:.4em;color:var(--gold-dim);text-transform:uppercase;display:flex;align-items:center;gap:1.2rem;margin-bottom:.8rem;}
.orn::before,.orn::after{content:'';display:block;width:44px;height:1px;background:linear-gradient(90deg,transparent,var(--gold-dim));}
.orn::after{transform:scaleX(-1);}
.hero-sub{font-family:'Josefin Sans',sans-serif;font-size:.58rem;letter-spacing:.5em;color:var(--gold);text-transform:uppercase;margin-bottom:1.6rem;}
.hero-tag{font-size:1.05rem;font-style:italic;color:var(--cream-dim);margin-bottom:2.2rem;max-width:370px;}
.hero-btns{display:flex;gap:1.2rem;flex-wrap:wrap;justify-content:center;}

/* ── BUTTONS ── */
.btn-p,.btn-g,.f-submit,.nav-cta{
  font-family:'Josefin Sans',sans-serif;font-weight:300;
  text-transform:uppercase;cursor:pointer;transition:all .3s;
}
.btn-p{
  font-size:.6rem;letter-spacing:.25em;
  background:var(--gold);color:var(--black);border:none;
  padding:.85rem 2rem;
}
.btn-p:hover{background:var(--gold-light);}
.btn-g{
  font-size:.6rem;letter-spacing:.25em;
  background:transparent;color:var(--cream-dim);border:1px solid var(--muted);
  padding:.85rem 2rem;
}
.btn-g:hover{border-color:var(--cream-dim);color:var(--cream);}

.scroll-hint{position:absolute;bottom:1.8rem;z-index:1;font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.28em;color:var(--muted);text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:.55rem;}
.scroll-line{width:1px;height:40px;background:linear-gradient(to bottom,var(--gold-dim),transparent);animation:sp 2s infinite;}
@keyframes sp{0%,100%{opacity:.3}50%{opacity:1}}

/* ── PHOTO STRIP / ABOUT STRIP ── */
.photo-strip{display:grid;grid-template-columns:repeat(4,1fr);height:260px;}
.ps-item{overflow:hidden;}
.ps-item img{width:100%;height:100%;object-fit:cover;filter:brightness(.7);transition:transform .5s,filter .4s;}
.ps-item:hover img{transform:scale(1.05);filter:brightness(.9);}

.about-strip{background:var(--rich);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:3.5rem 3rem;display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;}
.about-col{text-align:center;}
.about-col .num{font-family:'Playfair Display',serif;font-size:2.8rem;font-style:italic;color:var(--gold);display:block;margin-bottom:.3rem;}
.about-col p{font-size:.87rem;color:var(--cream-dim);max-width:200px;margin:0 auto;}

@media (max-width:760px){
  .photo-strip{grid-template-columns:repeat(2,1fr);height:auto;}
  .ps-item{height:180px;}
  .about-strip{grid-template-columns:1fr;padding:2.4rem 1.5rem;gap:1.5rem;}
}

/* ── SECTIONS ── */
.section{padding:4.5rem 3rem;max-width:1100px;margin:0 auto;}
@media (max-width:760px){.section{padding:3rem 1.3rem;}}

.sec-label{font-family:'Josefin Sans',sans-serif;font-size:.56rem;letter-spacing:.4em;text-transform:uppercase;color:var(--gold);margin-bottom:.65rem;}
.sec-title{font-family:'Playfair Display',serif;font-size:clamp(1.8rem,3.5vw,3rem);font-weight:400;color:var(--cream);line-height:1.15;margin-bottom:1rem;}
.divider{width:48px;height:1px;background:var(--gold-dim);margin:1rem 0;}
.divider.c{margin:1rem auto;}

/* ── PHOTO BREAK ── */
.photo-break{position:relative;height:400px;overflow:hidden;}
.photo-break img{width:100%;height:100%;object-fit:cover;filter:brightness(.38);}
.pb-text{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem;}
.pb-text h2{font-family:'Playfair Display',serif;font-size:clamp(1.8rem,4vw,3.2rem);font-style:italic;color:var(--cream);margin-bottom:.8rem;}
.pb-text p{font-size:.95rem;font-style:italic;color:var(--cream-dim);max-width:420px;}

/* ── GALLERY ── */
.gallery{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.6rem;margin:1.5rem 0;}
.gallery img{width:100%;height:250px;object-fit:cover;filter:brightness(.78);transition:filter .3s;}
.gallery img:hover{filter:brightness(1);}
.gallery img.wide{grid-column:span 2;}
@media (max-width:760px){.gallery{grid-template-columns:1fr 1fr;}.gallery img{height:170px;}.gallery img.wide{grid-column:span 2;}}

/* ── PAGE HEADER (sub-pages) ── */
.page-hero{position:relative;height:240px;overflow:hidden;}
.page-hero img{width:100%;height:100%;object-fit:cover;filter:brightness(.32);}
.page-hero-text{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 1rem;}
.page-hero-text h1{font-family:'Playfair Display',serif;font-size:clamp(2rem,5vw,2.8rem);font-style:italic;color:var(--cream);font-weight:400;}

/* ── MENU ── */
.menu-tabs{display:flex;flex-wrap:wrap;border-bottom:1px solid var(--border);margin-bottom:2.5rem;}
.menu-tab{font-family:'Josefin Sans',sans-serif;font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;background:none;border:none;color:var(--muted);padding:.65rem 1.4rem;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .3s;}
.menu-tab.active{color:var(--gold);border-bottom-color:var(--gold);}
.menu-tab:hover{color:var(--cream-dim);}
.menu-section-hidden{display:none;}

.menu-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  column-gap:2.5rem;
  position:relative;
}
.menu-grid::before{
  content:'';position:absolute;
  left:50%;top:0;bottom:0;
  width:1px;background:rgba(201,168,76,.12);
  pointer-events:none;
}
@media (max-width:680px){
  .menu-grid{grid-template-columns:1fr;column-gap:0;}
  .menu-grid::before{display:none;}
}

.mi{
  padding:1.05rem 0;
  border-bottom:1px solid rgba(201,168,76,.1);
  display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;
}
.mi > :first-child{flex:1;min-width:0;}
.mi-body{min-width:0;flex:1;}
.mi-name{font-family:'Playfair Display',serif;font-size:.98rem;color:var(--cream);line-height:1.25;}
.mi-desc{font-size:.82rem;color:var(--muted);font-style:italic;margin-top:.18rem;line-height:1.45;}
.mi-price{
  font-family:'Josefin Sans',sans-serif;font-size:.82rem;
  color:var(--gold);white-space:nowrap;
  padding-top:.22rem;flex-shrink:0;
}

/* Generic two-column section that collapses on mobile (used for wine/beer split) */
.menu-2col{
  display:grid;
  grid-template-columns:1fr 1fr;
  column-gap:2.5rem;
  position:relative;
}
.menu-2col::before{
  content:'';position:absolute;
  left:50%;top:0;bottom:0;
  width:1px;background:rgba(201,168,76,.12);
  pointer-events:none;
}
@media (max-width:680px){
  .menu-2col{grid-template-columns:1fr;column-gap:0;row-gap:1.5rem;}
  .menu-2col::before{display:none;}
}
.menu-subhead{
  text-align:center;padding:.4rem 0 1rem;
}
.menu-subhead .icon{font-size:1.3rem;margin-bottom:.3rem;}
.menu-subhead .lbl{
  font-family:'Josefin Sans',sans-serif;font-size:.55rem;
  letter-spacing:.25em;text-transform:uppercase;color:var(--gold);
}

/* Feature card (image + text) that collapses on mobile */
.feature-split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1.5rem;
  align-items:center;
  margin-top:2.2rem;
}
.feature-split img{
  width:100%;height:300px;object-fit:cover;
  filter:brightness(.85);display:block;
}
@media (max-width:680px){
  .feature-split{grid-template-columns:1fr;gap:1.1rem;}
  .feature-split img{height:220px;}
}

/* HAPPY HOUR */
.hh-wrap{background:var(--rich);border:1px solid var(--border-hi);padding:2.5rem;margin-bottom:3rem;position:relative;overflow:hidden;}
.hh-wrap::before{content:'HAPPY HOUR';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:'Playfair Display',serif;font-size:7rem;font-style:italic;color:rgba(201,168,76,.04);white-space:nowrap;pointer-events:none;letter-spacing:.05em;}
.hh-top{display:flex;align-items:center;gap:1.5rem;margin-bottom:1.5rem;flex-wrap:wrap;}
.hh-badge{font-family:'Josefin Sans',sans-serif;font-size:.52rem;letter-spacing:.2em;text-transform:uppercase;background:var(--gold);color:var(--black);padding:.28rem .75rem;}
.hh-title{font-family:'Playfair Display',serif;font-size:1.5rem;font-style:italic;color:var(--cream);}
.hh-time{font-family:'Josefin Sans',sans-serif;font-size:.56rem;letter-spacing:.2em;color:var(--gold-dim);text-transform:uppercase;margin-top:.1rem;}
.hh-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;}
@media (max-width:760px){.hh-grid{grid-template-columns:1fr;}.hh-wrap{padding:1.6rem;}.hh-wrap::before{font-size:4rem;}}
.hh-card{background:var(--card);border:1px solid var(--border);padding:1.1rem 1.4rem;}
.hh-label{font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-dim);margin-bottom:.5rem;}
.hh-item{font-size:.87rem;color:var(--cream-dim);padding:.22rem 0;border-bottom:1px solid rgba(201,168,76,.07);display:flex;justify-content:space-between;}
.hh-item:last-child{border-bottom:none;}
.hh-item span{color:var(--gold);font-family:'Josefin Sans',sans-serif;font-size:.78rem;}

/* ── EVENTS LISTING ── */
.events-grid{display:grid;gap:1.1rem;}
.ev-card-link{text-decoration:none;color:inherit;display:block;}
.ev-card-v2{
  background:var(--card);border:1px solid var(--border);
  padding:1.4rem 1.6rem;
  display:grid;grid-template-columns:minmax(0,260px) 1fr;
  gap:1.6rem;align-items:center;
  transition:border-color .3s;
}
.ev-card-v2:hover{border-color:var(--border-hi);}
.ev-flyer-col{display:flex;align-items:center;justify-content:center;background:var(--rich);border:1px solid var(--border);padding:.8rem;}
.ev-flyer-img{
  width:100%;max-width:260px;height:auto;
  display:block;object-fit:contain;
}
.ev-date-block{
  width:100%;text-align:center;padding:1.6rem 0;
}
.ev-info-col{display:flex;flex-direction:column;min-width:0;}
.ev-tag-line{font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.25em;text-transform:uppercase;color:var(--gold);margin-bottom:.45rem;}
.ev-card-title{font-family:'Playfair Display',serif;font-style:italic;font-weight:400;font-size:1.4rem;color:var(--cream);line-height:1.2;margin-bottom:.4rem;}
.ev-when-row{font-family:'Cormorant Garamond',serif;font-size:.92rem;color:var(--cream-dim);margin-bottom:.3rem;}
.ev-detail-row{font-size:.85rem;color:var(--muted);font-style:italic;margin-bottom:.85rem;line-height:1.55;}
.ev-month{font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);}
.ev-day{font-family:'Playfair Display',serif;font-size:2.4rem;color:var(--cream);line-height:1;margin-top:.2rem;}

.ev-cta-row{
  display:flex;align-items:center;flex-wrap:wrap;gap:.8rem;
  margin-top:.6rem;padding-top:.7rem;
  border-top:1px solid rgba(201,168,76,.1);
}
.ev-price{font-family:'Playfair Display',serif;font-style:italic;color:var(--gold);font-size:1.25rem;}
.ev-price-unit{font-family:'Cormorant Garamond',serif;font-style:normal;font-size:.75rem;color:var(--cream-dim);margin-left:.2rem;}
.ev-stock-warn{
  font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.18em;
  text-transform:uppercase;color:#e8c97a;
  border:1px solid rgba(232,201,122,.4);background:rgba(232,201,122,.1);
  padding:.18rem .45rem;
}
.ev-buy-btn{
  margin-left:auto;
  font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.22em;
  text-transform:uppercase;background:var(--gold);color:var(--black);
  padding:.55rem 1.1rem;transition:background .2s;
}
.ev-card-link:hover .ev-buy-btn{background:var(--gold-light);}
.ev-soldout-pill{
  font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.22em;
  text-transform:uppercase;color:#f5b5b5;
  background:rgba(139,32,32,.18);border:1px solid rgba(224,92,92,.4);
  padding:.45rem 1rem;
}
.ev-rsvp-note{font-size:.78rem;color:var(--muted);font-style:italic;}

@media (max-width:680px){
  .ev-card-v2{grid-template-columns:1fr;padding:1.2rem 1.3rem;gap:1rem;}
  .ev-flyer-col{padding:.6rem;}
  .ev-flyer-img{max-width:340px;margin:0 auto;}
  .ev-date-block{padding:.8rem 0;}
  .ev-buy-btn{margin-left:0;width:100%;text-align:center;}
}

/* ── PRIVATE ── */
.priv-hero{position:relative;height:360px;overflow:hidden;}
.priv-hero img{width:100%;height:100%;object-fit:cover;filter:brightness(.4);}
.priv-hero-text{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2.5rem 1.5rem;}
.feat-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;margin-bottom:2.5rem;}
@media (max-width:680px){.feat-grid{grid-template-columns:1fr;}}
.feat-card{background:var(--card);border:1px solid var(--border);padding:1.6rem;}
.feat-title{font-family:'Playfair Display',serif;font-size:1rem;color:var(--cream);margin-bottom:.35rem;}
.feat-desc{font-size:.86rem;color:var(--muted);}

/* ── FORMS ── */
.res-wrap{max-width:600px;margin:0 auto;}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem;}
@media (max-width:580px){.f-row{grid-template-columns:1fr;}}
.fg{display:flex;flex-direction:column;gap:.32rem;margin-bottom:.85rem;}
.fg label{font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-dim);}
.fg input:not([type=checkbox]):not([type=radio]),
.fg select,.fg textarea{
  background:var(--card);border:1px solid var(--border);color:var(--cream);
  padding:.68rem .88rem;font-family:'Cormorant Garamond',serif;font-size:1rem;
  outline:none;transition:border-color .3s;appearance:none;
}
.fg input:not([type=checkbox]):not([type=radio]):focus,
.fg select:focus,.fg textarea:focus{border-color:var(--gold-dim);}
.fg select option{background:var(--dark);}
.fg textarea{resize:vertical;min-height:85px;}
.fg input[type=checkbox],.fg input[type=radio]{accent-color:var(--gold);cursor:pointer;}

/* Toggle row pattern (used by Ticketed event toggle) */
.toggle-row{
  display:flex;align-items:center;gap:.8rem;cursor:pointer;
  padding:.4rem 0;
  font-family:'Cormorant Garamond',serif;font-size:.98rem;color:var(--cream);
  text-transform:none;letter-spacing:0;
}
.toggle-row input[type=checkbox]{
  width:18px;height:18px;flex-shrink:0;
  accent-color:var(--gold);cursor:pointer;
  appearance:auto;-webkit-appearance:checkbox;
  margin:0;
}
.toggle-row .toggle-title{
  font-family:'Playfair Display',serif;font-style:italic;
}
.toggle-row .toggle-hint{
  color:var(--muted);font-size:.85rem;font-style:normal;
  font-family:'Cormorant Garamond',serif;
}
.f-submit{
  width:100%;font-size:.62rem;letter-spacing:.3em;
  background:var(--gold);color:var(--black);border:none;
  padding:1rem;margin-top:.3rem;
}
.f-submit:hover{background:var(--gold-light);}
.ok-msg{text-align:center;padding:2.2rem;background:var(--card);border:1px solid var(--border);}
.ok-msg .ck{font-size:1.6rem;color:var(--gold);margin-bottom:.7rem;}
.ok-msg h3{font-family:'Playfair Display',serif;font-size:1.35rem;color:var(--cream);margin-bottom:.35rem;}

/* ── CONTACT ── */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;align-items:start;}
@media (max-width:780px){.contact-grid{grid-template-columns:1fr;gap:2rem;}}
.info-card{background:var(--card);border:1px solid var(--border);padding:1.8rem 2rem;}
.info-block{padding:.9rem 0;border-bottom:1px solid rgba(201,168,76,.1);}
.info-block:last-child{border-bottom:none;}
.info-lbl{font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-dim);margin-bottom:.35rem;}
.info-val{color:var(--cream);font-size:.97rem;}
.info-val a:hover{color:var(--gold);}
.map-wrap{aspect-ratio:4/3;border:1px solid var(--border);overflow:hidden;background:var(--card);}
.map-wrap iframe{width:100%;height:100%;border:0;filter:invert(.92) hue-rotate(180deg) brightness(.9);}

/* ── CAREERS ── */
.careers-intro{max-width:680px;}
.role-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.1rem;margin-bottom:2.5rem;}
@media (max-width:680px){.role-grid{grid-template-columns:1fr;}}
.role-card{background:var(--card);border:1px solid var(--border);padding:1.6rem 1.8rem;cursor:pointer;transition:border-color .3s;}
.role-card:hover,.role-card.selected{border-color:var(--gold-dim);}
.role-tag{font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:.4rem;}
.role-title{font-family:'Playfair Display',serif;font-size:1.18rem;color:var(--cream);margin-bottom:.35rem;}
.role-meta{font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.18em;color:var(--muted);text-transform:uppercase;margin-bottom:.7rem;}
.role-desc{font-size:.86rem;color:var(--cream-dim);}

/* ── FOOTER ── */
footer.site-footer{background:var(--rich);border-top:1px solid var(--border);padding:2.5rem;text-align:center;}
footer.site-footer img{height:40px;width:auto;opacity:.55;margin-bottom:.55rem;}
.f-addr{font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.18em;color:var(--muted);text-transform:uppercase;line-height:2;}
.f-links{display:flex;gap:1.6rem;justify-content:center;margin-top:1.3rem;flex-wrap:wrap;}
.f-links a{font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);cursor:pointer;transition:color .3s;}
.f-links a:hover{color:var(--gold);}

/* ── LOGIN ── */
.login-keep{
  display:flex;align-items:center;gap:.55rem;cursor:pointer;
  margin:0 0 1rem;
  font-family:'Josefin Sans',sans-serif;font-size:.6rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--cream-dim);user-select:none;
}
.login-keep input[type=checkbox]{
  position:absolute;opacity:0;width:0;height:0;pointer-events:none;
}
.login-keep .login-keep-mark{
  width:18px;height:18px;border:1px solid var(--gold-dim);
  display:inline-flex;align-items:center;justify-content:center;
  background:transparent;flex-shrink:0;transition:all .15s;
  position:relative;
}
.login-keep input[type=checkbox]:checked + .login-keep-mark{
  background:var(--gold);border-color:var(--gold);
}
.login-keep input[type=checkbox]:checked + .login-keep-mark::after{
  content:'';position:absolute;
  width:5px;height:9px;border:solid var(--black);
  border-width:0 2px 2px 0;transform:rotate(45deg) translate(-1px,-1px);
}
.login-keep input[type=checkbox]:focus-visible + .login-keep-mark{
  box-shadow:0 0 0 2px rgba(201,168,76,.4);
}
.login-keep:hover .login-keep-mark{border-color:var(--gold);}
.login-keep .login-keep-text{line-height:1.2;}

.login-pg{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;padding:1.5rem;}
.login-bg{position:absolute;inset:0;background:url('../images/DSC01817.jpg') center/cover;filter:brightness(.18);}
.login-box{background:rgba(31,26,20,.97);border:1px solid var(--border);padding:2.6rem;width:380px;max-width:100%;text-align:center;position:relative;z-index:1;}
.login-box img{width:170px;height:auto;margin-bottom:1.1rem;}
.login-sub{font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.28em;color:var(--muted);text-transform:uppercase;margin-bottom:1.6rem;}
.role-toggle{display:flex;border:1px solid var(--border);margin-bottom:1.4rem;}
.role-toggle button{
  flex:1;background:none;border:none;color:var(--muted);
  font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.2em;
  text-transform:uppercase;padding:.65rem;cursor:pointer;transition:all .3s;
}
.role-toggle button.active{background:var(--gold);color:var(--black);}
.login-hint{font-size:.7rem;color:var(--muted);margin-top:.85rem;line-height:1.5;}
.login-back{display:inline-block;margin-top:1rem;font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);cursor:pointer;}
.login-back:hover{color:var(--gold);}

/* ── ADMIN / STAFF DASHBOARD ── */
:root{
  --adm-sb-w: 240px;
}
.adm-wrap{background:#0d0b09;min-height:100vh;padding-top:0;}

/* Sidebar (desktop) */
.adm-sidebar{
  position:fixed;top:0;left:0;height:100vh;width:var(--adm-sb-w);
  background:var(--dark);border-right:1px solid var(--border);
  display:flex;flex-direction:column;
  z-index:90;overflow-y:auto;overflow-x:hidden;
  transition:transform .25s ease;
}
.adm-sb-head{
  padding:1.5rem 1.2rem 1.1rem;border-bottom:1px solid var(--border);
  display:flex;flex-direction:column;align-items:center;text-align:center;
  position:relative;
}
.adm-sb-logo{display:block;}
.adm-sb-logo img{height:64px;display:block;}
.adm-sb-title{
  font-family:'Playfair Display',serif;font-size:1rem;font-style:italic;
  color:var(--gold);margin-top:.7rem;
}
.adm-sb-userline{
  display:flex;align-items:center;gap:.45rem;margin-top:.55rem;flex-wrap:wrap;justify-content:center;
}
.adm-sb-userline .user-greeting{
  font-family:var(--chat-font);color:var(--cream);font-size:.92rem;
  text-decoration:none;cursor:pointer;
}
.adm-sb-userline .user-greeting:hover{color:var(--gold);}

/* Bell button */
.adm-bell{
  position:absolute;top:1.2rem;right:1rem;
  width:36px;height:36px;background:transparent;
  border:1px solid var(--border);color:var(--gold);cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:all .15s;
}
.adm-bell:hover{border-color:var(--gold);background:rgba(201,168,76,.08);}
.adm-bell-icon{display:block;}
.adm-bell-count{
  position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 5px;
  background:var(--red);color:#fff;
  font-family:'Josefin Sans',sans-serif;font-size:.55rem;font-weight:700;
  border-radius:9px;display:flex;align-items:center;justify-content:center;
  line-height:1;letter-spacing:.02em;
}

/* Bell dropdown */
.adm-bell-dropdown{
  position:absolute;top:calc(100% + .35rem);right:.6rem;left:.6rem;
  max-height:60vh;overflow-y:auto;
  background:var(--card);border:1px solid var(--gold-dim);
  z-index:120;box-shadow:0 14px 36px rgba(0,0,0,.55);
  display:flex;flex-direction:column;
}
.adm-bell-dropdown-head{
  padding:.7rem .85rem;border-bottom:1px solid var(--border);
  display:flex;justify-content:space-between;align-items:center;
}
.adm-bell-dropdown-title{
  font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold);
}
.adm-bell-dropdown-clear{
  background:transparent;border:none;color:var(--muted);cursor:pointer;
  font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.16em;text-transform:uppercase;
}
.adm-bell-dropdown-clear:hover{color:var(--gold);}
.adm-bell-empty{padding:1.2rem;text-align:center;color:var(--muted);font-style:italic;font-size:.85rem;}
.adm-bell-item{
  position:relative;
  display:flex;gap:.6rem;align-items:flex-start;padding:.65rem .85rem;
  border-bottom:1px solid rgba(201,168,76,.08);cursor:pointer;
  border-left:3px solid transparent;
  transition:background .15s;
}
.adm-bell-item:last-child{border-bottom:none;}
.adm-bell-item:hover{background:rgba(201,168,76,.08);}

/* UNREAD ("new") — strong gold accent, lit text, gold dot, NEW pill */
.adm-bell-item.unread{
  background:rgba(201,168,76,.07);
  border-left-color:var(--gold);
}
.adm-bell-item.unread .adm-bell-item-dot{
  background:var(--gold);box-shadow:0 0 0 3px rgba(201,168,76,.18);
}
.adm-bell-item.unread .adm-bell-item-title{
  color:var(--cream);font-weight:500;
}
.adm-bell-item.unread .adm-bell-item-meta{color:var(--gold);}

/* READ ("seen") — demoted, neutral, hollow dot */
.adm-bell-item.read{opacity:.78;}
.adm-bell-item.read .adm-bell-item-dot{background:transparent;border:1px solid var(--border);}
.adm-bell-item.read .adm-bell-item-title{color:var(--cream-dim);font-style:normal;}

.adm-bell-item-dot{
  width:8px;height:8px;border-radius:50%;background:var(--gold);
  margin-top:.45rem;flex-shrink:0;transition:all .15s;
}
.adm-bell-item-body{flex:1;min-width:0;}
.adm-bell-item-title-row{
  display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;
}
.adm-bell-item-title{
  font-family:'Cormorant Garamond',serif;font-size:1rem;color:var(--cream);
  font-style:italic;line-height:1.3;
}
.adm-bell-item-pill{
  font-family:'Josefin Sans',sans-serif;font-size:.45rem;letter-spacing:.18em;
  text-transform:uppercase;font-weight:700;
  background:var(--gold);color:var(--black);
  padding:.12rem .35rem;border-radius:2px;line-height:1;
}
.adm-bell-item-kind{
  font-family:'Josefin Sans',sans-serif;font-size:.45rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold-dim);
  border:1px solid var(--gold-dim);
  padding:.12rem .35rem;line-height:1;
}
.adm-bell-item.read .adm-bell-item-kind{color:var(--muted);border-color:var(--border);}
.adm-bell-item-text{
  color:var(--cream-dim);font-size:.85rem;margin-top:.22rem;line-height:1.35;
  white-space:normal;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
}
.adm-bell-item-meta{
  font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted);margin-top:.3rem;
}
.adm-sb-nav{flex:1;padding:.85rem 0;display:flex;flex-direction:column;gap:.4rem;}
.adm-sb-group{display:flex;flex-direction:column;}
.adm-sb-group-label{
  font-family:'Josefin Sans',sans-serif;font-size:.48rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--gold-dim);
  padding:.55rem 1.2rem .25rem;
}
.adm-sidebar .adm-ntab{
  font-family:'Josefin Sans',sans-serif;font-size:.62rem;letter-spacing:.16em;
  text-transform:uppercase;background:none;border:none;
  color:var(--cream-dim);padding:.62rem 1.2rem;
  cursor:pointer;text-align:left;width:100%;display:flex;align-items:center;gap:.5rem;
  border-left:3px solid transparent;transition:all .15s ease;
  text-decoration:none;line-height:1.1;
}
.adm-sidebar .adm-ntab:hover:not(.active){
  background:rgba(201,168,76,.05);color:var(--gold);
}
.adm-sidebar .adm-ntab.active{
  background:rgba(201,168,76,.1);color:var(--gold);
  border-left-color:var(--gold);
}
.adm-sidebar .adm-ntab .ntab-badge{
  background:var(--gold);color:var(--black);
  font-family:'Josefin Sans',sans-serif;font-size:.5rem;font-weight:700;
  padding:.1rem .4rem;border-radius:8px;letter-spacing:.05em;line-height:1;
}
.adm-sb-foot{
  padding:.95rem 1.2rem;border-top:1px solid var(--border);
  display:flex;flex-direction:column;gap:.5rem;
}
.adm-sb-foot .user-greeting{
  font-family:var(--chat-font);color:var(--cream);font-size:.95rem;
  text-decoration:none;cursor:pointer;
}
.adm-sb-foot .user-greeting:hover{color:var(--gold);}
.adm-sb-foot .adm-badge{align-self:flex-start;}
.adm-sb-foot-actions{display:flex;gap:.4rem;flex-wrap:wrap;}
.adm-sb-foot-actions .abtn{flex:1;text-align:center;padding:.45rem .6rem;font-size:.55rem;}

.adm-badge{font-family:'Josefin Sans',sans-serif;font-size:.52rem;letter-spacing:.13em;background:var(--red);color:#f5b5b5;padding:.23rem .65rem;text-transform:uppercase;display:inline-block;}
.adm-badge.staff{background:rgba(80,80,40,.5);color:#e8c97a;}

/* Main body shifts to make room for sidebar */
.adm-body{padding:1.6rem 2.2rem;margin-left:var(--adm-sb-w);}

/* Mobile burger + slide-in sidebar */
.adm-burger{
  display:none;position:fixed;top:.85rem;left:.85rem;z-index:95;
  width:42px;height:42px;background:var(--dark);
  border:1px solid var(--border);cursor:pointer;
  flex-direction:column;align-items:center;justify-content:center;gap:5px;
}
.adm-burger span{display:block;width:20px;height:2px;background:var(--gold);}
.adm-sb-overlay{
  display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);
  z-index:85;
}
.adm-sb-overlay.show{display:block;}

@media (max-width:900px){
  .adm-sidebar{transform:translateX(-100%);box-shadow:0 0 24px rgba(0,0,0,.7);}
  .adm-sidebar.open{transform:translateX(0);}
  .adm-burger{display:flex;}
  .adm-body{margin-left:0;padding:4.2rem 1rem 1.4rem;}
}

.adm-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.6rem;}
@media (max-width:760px){.adm-stats{grid-template-columns:repeat(2,1fr);}}
.stat{background:var(--card);border:1px solid var(--border);padding:1rem 1.3rem;cursor:default;transition:border-color .3s,transform .2s;}
.stat.clickable{cursor:pointer;}
.stat.clickable:hover{border-color:var(--gold-dim);transform:translateY(-2px);}
.stat-lbl{font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.17em;text-transform:uppercase;color:var(--muted);margin-bottom:.35rem;display:flex;align-items:center;gap:.4rem;}
.stat-lbl .arrow{color:var(--gold-dim);font-size:.6rem;opacity:0;transition:opacity .2s;}
.stat.clickable:hover .stat-lbl .arrow{opacity:1;}
.stat-num{font-family:'Playfair Display',serif;font-size:1.85rem;color:var(--gold);}

.adm-panel{display:none;}
.adm-panel.active{display:block;}

.tbl-wrap{background:var(--card);border:1px solid var(--border);overflow:hidden;overflow-x:auto;}
.tbl-head{padding:.85rem 1.3rem;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;}
.tbl-ttl{font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.17em;text-transform:uppercase;color:var(--cream-dim);}
table{width:100%;border-collapse:collapse;}
th{font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:.6rem 1.3rem;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;}
td{padding:.8rem 1.3rem;border-bottom:1px solid rgba(201,168,76,.07);font-size:.87rem;}
tr:last-child td{border-bottom:none;}
tr:hover td{background:rgba(201,168,76,.03);}
.sbadge{font-family:'Josefin Sans',sans-serif;font-size:.48rem;letter-spacing:.09em;text-transform:uppercase;padding:.2rem .5rem;display:inline-block;}
.s-confirmed{background:rgba(39,80,10,.4);color:#8fc46a;border:1px solid rgba(139,196,106,.3);}
.s-pending{background:rgba(132,106,27,.3);color:#e8c97a;border:1px solid rgba(201,168,76,.3);}
.s-private{background:rgba(139,32,32,.3);color:#f5b5b5;border:1px solid rgba(200,80,80,.3);}
.s-approved{background:rgba(39,80,10,.4);color:#8fc46a;border:1px solid rgba(139,196,106,.3);}
.s-denied{background:rgba(139,32,32,.3);color:#f5b5b5;border:1px solid rgba(200,80,80,.3);}
.abtn{font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.09em;text-transform:uppercase;background:none;border:1px solid var(--muted);color:var(--muted);padding:.2rem .52rem;cursor:pointer;transition:all .2s;margin-right:.22rem;}
.abtn:hover{border-color:var(--gold);color:var(--gold);}
.abtn.danger:hover{border-color:#e05c5c;color:#e05c5c;}
.abtn.msg:hover{border-color:#7ab5e8;color:#7ab5e8;}
.abtn.primary{background:var(--gold);color:var(--black);border-color:var(--gold);}
.abtn.primary:hover{background:var(--gold-light);color:var(--black);border-color:var(--gold-light);}
.ftabs{display:flex;gap:0;margin-bottom:1.3rem;flex-wrap:wrap;}
.ftab{font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.12em;text-transform:uppercase;background:none;border:1px solid var(--border);color:var(--muted);padding:.4rem 1.05rem;cursor:pointer;margin-right:-1px;transition:all .2s;}
.ftab.active{background:var(--gold);color:var(--black);border-color:var(--gold);z-index:1;}
.ftab:hover:not(.active){color:var(--cream-dim);}

/* ── MODAL ── */
.modal-ov{position:fixed;inset:0;background:rgba(0,0,0,.88);z-index:200;display:flex;align-items:center;justify-content:center;padding:1rem;}
.modal-box{background:var(--dark);border:1px solid var(--border);padding:1.8rem;width:560px;max-width:96vw;max-height:88vh;overflow-y:auto;}
.modal-title{font-family:'Playfair Display',serif;font-size:1.25rem;color:var(--cream);margin-bottom:.25rem;}
.modal-sub{font-size:.83rem;color:var(--muted);margin-bottom:1.3rem;}
.msg-tpls{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin-bottom:1.1rem;}
@media (max-width:580px){.msg-tpls{grid-template-columns:1fr;}}
.mtpl{background:var(--card);border:1px solid var(--border);padding:.75rem;cursor:pointer;transition:border-color .2s;}
.mtpl:hover,.mtpl.sel{border-color:var(--gold-dim);}
.mtpl-title{font-family:'Josefin Sans',sans-serif;font-size:.52rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-bottom:.2rem;}
.mtpl-prev{font-size:.78rem;color:var(--muted);}
.modal-acts{display:flex;gap:.7rem;margin-top:1.1rem;flex-wrap:wrap;}
.chip-ok{font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.12em;text-transform:uppercase;background:rgba(39,80,10,.4);color:#8fc46a;border:1px solid rgba(139,196,106,.3);padding:.23rem .65rem;display:inline-block;}

/* ── EMAIL / EVENT BUILDER ── */
.eb{background:var(--card);border:1px solid var(--border);overflow:hidden;}
.eb-toolbar{background:var(--rich);border-bottom:1px solid var(--border);padding:.7rem 1.1rem;display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;}
.eb-tlbl{font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.17em;text-transform:uppercase;color:var(--muted);margin-right:.4rem;}
.eb-btn{font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.11em;text-transform:uppercase;background:none;border:1px solid var(--border);color:var(--cream-dim);padding:.27rem .62rem;cursor:pointer;transition:all .2s;}
.eb-btn:hover{border-color:var(--gold-dim);color:var(--gold);}
.eb-btn.act{background:var(--gold);color:var(--black);border-color:var(--gold);}
.eb-body{display:grid;grid-template-columns:1fr 320px;min-height:500px;}
@media (max-width:880px){.eb-body{grid-template-columns:1fr;}}
.eb-canvas{padding:1.3rem;border-right:1px solid var(--border);overflow-y:auto;max-height:640px;}
@media (max-width:880px){.eb-canvas{border-right:none;border-bottom:1px solid var(--border);}}
.eb-side{padding:1.1rem;overflow-y:auto;max-height:640px;}
.eb-side-ttl{font-family:'Josefin Sans',sans-serif;font-size:.51rem;letter-spacing:.17em;text-transform:uppercase;color:var(--muted);margin-bottom:.9rem;}
.eb-prev{background:#161210;border:1px solid var(--border);min-height:340px;overflow:hidden;}
.tpl-card{background:var(--dark);border:1px solid var(--border);padding:.88rem;margin-bottom:.7rem;cursor:pointer;transition:border-color .2s;position:relative;}
.tpl-card:hover{border-color:var(--gold-dim);}
.tpl-card.sel{border-color:var(--gold);}
.tpl-card-name{font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-bottom:.22rem;}
.tpl-card-desc{font-size:.78rem;color:var(--muted);}
.tpl-mark{position:absolute;top:.62rem;right:.62rem;width:15px;height:15px;background:var(--gold);border-radius:50%;display:none;align-items:center;justify-content:center;font-size:8px;color:var(--black);}
.tpl-card.sel .tpl-mark{display:flex;}
.eb-field{margin-bottom:.9rem;}
.eb-field label{font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-dim);display:block;margin-bottom:.28rem;}
.eb-field input,.eb-field textarea,.eb-field select{
  width:100%;background:var(--black);border:1px solid var(--border);color:var(--cream);
  padding:.5rem .7rem;font-family:'Cormorant Garamond',serif;font-size:.92rem;
  outline:none;transition:border-color .2s;
}
.eb-field input:focus,.eb-field textarea:focus,.eb-field select:focus{border-color:var(--gold-dim);}
.eb-field textarea{resize:vertical;min-height:72px;}

/* Image upload */
.img-zone{border:1px dashed var(--border-hi);padding:1.1rem;text-align:center;cursor:pointer;position:relative;background:var(--black);transition:border-color .2s;}
.img-zone:hover{border-color:var(--gold);}
.img-zone input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%;}
.img-zone p{font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);}
.img-zone p span{color:var(--gold);}
.img-thumb{width:100%;max-height:170px;object-fit:cover;display:block;margin-top:.65rem;border:1px solid var(--border);}
.img-rmv{font-family:'Josefin Sans',sans-serif;font-size:.47rem;letter-spacing:.1em;text-transform:uppercase;background:none;border:1px solid var(--muted);color:var(--muted);padding:.18rem .48rem;cursor:pointer;margin-top:.35rem;transition:all .2s;}
.img-rmv:hover{border-color:#e05c5c;color:#e05c5c;}

/* Rich text editor */
.rt-toolbar{display:flex;flex-wrap:wrap;gap:.3rem;padding:.45rem;background:var(--dark);border:1px solid var(--border);border-bottom:none;}
.rt-btn{
  font-family:'Josefin Sans',sans-serif;font-size:.6rem;
  background:none;border:1px solid transparent;color:var(--cream-dim);
  width:28px;height:26px;cursor:pointer;border-radius:2px;transition:all .15s;
}
.rt-btn:hover{border-color:var(--gold-dim);color:var(--gold);}
.rt-btn.b{font-weight:700;}
.rt-btn.i{font-style:italic;}
.rt-btn.u{text-decoration:underline;}
.rt-divider{width:1px;background:var(--border);margin:.15rem .25rem;}
.rt-area{
  width:100%;min-height:130px;background:var(--black);border:1px solid var(--border);color:var(--cream);
  padding:.7rem .85rem;font-family:'Cormorant Garamond',serif;font-size:.95rem;line-height:1.6;
  outline:none;transition:border-color .2s;overflow-y:auto;
}
.rt-area:focus{border-color:var(--gold-dim);}
.rt-area p{margin-bottom:.5rem;}
.rt-area:empty::before{content:attr(data-placeholder);color:var(--muted);font-style:italic;}

/* ── MAILING ── */
.ml-row{display:flex;justify-content:space-between;align-items:center;padding:.55rem 0;border-bottom:1px solid rgba(201,168,76,.08);font-size:.87rem;gap:.5rem;flex-wrap:wrap;}
.ml-row:last-child{border-bottom:none;}
.ml-email{color:var(--cream-dim);word-break:break-all;}
.ml-date{font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.09em;color:var(--muted);}

/* ── SCHEDULE ── */
.sched-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.4rem;}
@media (max-width:760px){.sched-grid{grid-template-columns:1fr;}}
.sched-day{background:var(--card);border:1px solid var(--border);padding:.85rem .9rem;min-height:130px;}
.sched-day.today{border-color:var(--gold-dim);}
.sched-dnum{font-family:'Playfair Display',serif;font-size:1.2rem;color:var(--cream);}
.sched-dlbl{font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:.5rem;}
.sched-shift{font-size:.78rem;color:var(--cream-dim);background:rgba(201,168,76,.07);padding:.28rem .42rem;margin-bottom:.32rem;border-left:2px solid var(--gold-dim);}
.sched-shift .who{font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.1em;color:var(--gold);text-transform:uppercase;display:block;}
.sched-off{font-size:.72rem;color:#f5b5b5;background:rgba(139,32,32,.2);padding:.2rem .42rem;margin-top:.3rem;border-left:2px solid var(--red);}

/* Admin Today landing — roster + action-required */
.adm-roster-row{
  display:grid;grid-template-columns:auto 1fr auto auto;gap:.7rem;align-items:center;
  padding:.55rem .8rem;border-left:3px solid var(--emp-color, var(--gold-dim));
  background:rgba(201,168,76,.04);margin-bottom:.4rem;flex-wrap:wrap;
}
.adm-roster-dot{
  width:8px;height:8px;border-radius:50%;background:var(--emp-color,var(--gold));
  flex-shrink:0;
}
.adm-roster-name{
  color:var(--emp-color,var(--cream));
  font-family:'Josefin Sans',sans-serif;font-size:.6rem;letter-spacing:.18em;
  text-transform:uppercase;font-weight:500;
}
.adm-roster-role{color:var(--cream-dim);font-size:.85rem;}
.adm-roster-time{color:var(--cream);font-size:.85rem;font-family:var(--chat-font);}
@media (max-width:580px){
  .adm-roster-row{grid-template-columns:auto 1fr;gap:.5rem;}
  .adm-roster-role,.adm-roster-time{grid-column:2;font-size:.78rem;}
}

.adm-action-row{
  display:flex;justify-content:space-between;align-items:center;gap:.8rem;
  padding:.7rem .9rem;background:rgba(232,201,122,.06);
  border:1px solid rgba(232,201,122,.3);border-left:3px solid #e8c97a;
  margin-bottom:.5rem;flex-wrap:wrap;
}
.adm-action-row:last-child{margin-bottom:0;}
.adm-action-title{color:var(--cream);font-size:.92rem;flex:1;min-width:0;}

.tor-form{background:var(--card);border:1px solid var(--border);padding:1.4rem 1.6rem;max-width:560px;}
.warn-box{background:rgba(132,106,27,.15);border:1px solid rgba(201,168,76,.3);padding:.8rem 1rem;font-size:.82rem;color:#e8c97a;margin-bottom:1rem;}
.warn-box strong{color:var(--gold);}

/* ── TODAY LANDING ── */
.today-hero{
  background:linear-gradient(180deg,rgba(31,26,20,.9),rgba(17,14,10,.95));
  border:1px solid var(--border);padding:2rem 2.2rem;margin-bottom:1.6rem;
  display:flex;justify-content:space-between;align-items:flex-end;gap:1.4rem;flex-wrap:wrap;
}
.today-hero h1{
  font-family:'Playfair Display',serif;font-style:italic;font-weight:400;
  color:var(--cream);font-size:clamp(1.7rem,3vw,2.4rem);line-height:1.1;
}
.today-hero .date-line{
  font-family:'Josefin Sans',sans-serif;font-size:.6rem;letter-spacing:.32em;
  text-transform:uppercase;color:var(--gold);margin-bottom:.5rem;
}
.today-hero .quick-stats{display:flex;gap:1.6rem;flex-wrap:wrap;}
.today-hero .qs{text-align:center;}
.today-hero .qs-num{font-family:'Playfair Display',serif;font-style:italic;font-size:1.9rem;color:var(--gold);line-height:1;}
.today-hero .qs-lbl{font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-top:.3rem;}

.today-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:1.3rem;margin-bottom:1.3rem;}
@media (max-width:980px){.today-grid{grid-template-columns:1fr;}}

.today-card{background:var(--card);border:1px solid var(--border);padding:1.4rem 1.6rem;}
.today-card h2{
  font-family:'Playfair Display',serif;font-size:1.18rem;font-style:italic;
  color:var(--cream);margin-bottom:1rem;display:flex;justify-content:space-between;align-items:center;gap:.6rem;
}
.today-card h2 .count{
  font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--gold);font-style:normal;
  background:rgba(201,168,76,.1);border:1px solid var(--border);padding:.22rem .55rem;
}
.today-empty{font-style:italic;color:var(--muted);padding:1.2rem 0;text-align:center;font-size:.86rem;}

/* Events row */
.today-events{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.9rem;}
.tev{background:var(--rich);border:1px solid var(--border);padding:1rem 1.2rem;border-left:3px solid var(--gold);}
.tev-time{font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.18em;color:var(--gold);text-transform:uppercase;}
.tev-title{font-family:'Playfair Display',serif;font-size:1rem;color:var(--cream);margin:.25rem 0 .35rem;}
.tev-detail{font-size:.82rem;color:var(--cream-dim);}
.tev-tag{display:inline-block;font-family:'Josefin Sans',sans-serif;font-size:.48rem;letter-spacing:.13em;
  text-transform:uppercase;color:var(--gold);border:1px solid var(--gold-dim);padding:.14rem .42rem;margin-top:.5rem;}

/* Reservation list */
.tres-list{display:flex;flex-direction:column;}
.tres-row{display:grid;grid-template-columns:80px 1fr auto;gap:1rem;padding:.85rem 0;border-bottom:1px solid rgba(201,168,76,.08);align-items:start;}
.tres-row:last-child{border-bottom:none;}
.tres-time{font-family:'Playfair Display',serif;font-style:italic;color:var(--gold);font-size:1rem;line-height:1.1;}
.tres-time .ampm{font-family:'Josefin Sans',sans-serif;font-style:normal;font-size:.6rem;letter-spacing:.15em;color:var(--gold-dim);text-transform:uppercase;display:block;margin-top:.1rem;}
.tres-name{color:var(--cream);font-size:.95rem;}
.tres-meta{font-size:.78rem;color:var(--muted);margin-top:.18rem;}
.tres-notes{font-size:.78rem;color:var(--cream-dim);font-style:italic;margin-top:.32rem;border-left:2px solid var(--gold-dim);padding-left:.55rem;}
.tres-party{
  background:var(--rich);border:1px solid var(--border);
  padding:.32rem .65rem;text-align:center;min-width:46px;
}
.tres-party .num{font-family:'Playfair Display',serif;font-size:1.1rem;color:var(--gold);line-height:1;}
.tres-party .lbl{font-family:'Josefin Sans',sans-serif;font-size:.45rem;letter-spacing:.15em;color:var(--muted);text-transform:uppercase;display:block;margin-top:.15rem;}
.tres-private-tag{display:inline-block;font-family:'Josefin Sans',sans-serif;font-size:.45rem;letter-spacing:.13em;color:#f5b5b5;border:1px solid rgba(200,80,80,.4);background:rgba(139,32,32,.18);padding:.13rem .42rem;margin-left:.4rem;text-transform:uppercase;vertical-align:middle;}

/* Specials */
.tspec-list{display:flex;flex-direction:column;gap:.8rem;}
.tspec{background:var(--rich);border:1px solid var(--border);padding:.95rem 1.1rem;border-left:3px solid var(--gold);position:relative;}
.tspec.t-drink{border-left-color:var(--gold);}
.tspec.t-promo{border-left-color:#7ab5e8;}
.tspec.t-note {border-left-color:#e05c5c;}
.tspec-tag{font-family:'Josefin Sans',sans-serif;font-size:.45rem;letter-spacing:.18em;text-transform:uppercase;
  display:inline-block;padding:.14rem .42rem;margin-bottom:.42rem;}
.tspec.t-drink .tspec-tag{color:var(--gold);background:rgba(201,168,76,.1);border:1px solid var(--border);}
.tspec.t-promo .tspec-tag{color:#7ab5e8;background:rgba(122,181,232,.1);border:1px solid rgba(122,181,232,.3);}
.tspec.t-note  .tspec-tag{color:#e05c5c;background:rgba(224,92,92,.1);border:1px solid rgba(224,92,92,.3);}
.tspec-title{font-family:'Playfair Display',serif;font-size:.97rem;color:var(--cream);margin-bottom:.28rem;}
.tspec-note{font-size:.83rem;color:var(--cream-dim);line-height:1.55;}
.tspec-actions{position:absolute;top:.55rem;right:.55rem;display:flex;gap:.25rem;opacity:0;transition:opacity .15s;}
.tspec:hover .tspec-actions{opacity:1;}

/* Specials editor row */
.spec-editor-row{display:grid;grid-template-columns:120px 1fr 1.6fr auto;gap:.6rem;align-items:start;padding:.7rem 0;border-bottom:1px solid rgba(201,168,76,.07);}
.spec-editor-row:last-child{border-bottom:none;}
@media (max-width:760px){.spec-editor-row{grid-template-columns:1fr;}}

/* Roles editor row (admin Careers panel) */
.role-editor-row{
  display:grid;
  grid-template-columns:130px 1fr 1fr 1fr 2fr auto;
  gap:.55rem;align-items:start;
  padding:.85rem 0;border-bottom:1px solid rgba(201,168,76,.07);
}
.role-editor-row:last-child{border-bottom:none;}
@media (max-width:980px){
  .role-editor-row{grid-template-columns:1fr 1fr;gap:.5rem;}
  .role-editor-row textarea{grid-column:1/-1;}
  .role-editor-row [data-role-rmv]{grid-column:1/-1;justify-self:end;}
}
.role-toggle-label{
  display:flex;align-items:center;gap:.45rem;cursor:pointer;
  background:var(--rich);border:1px solid var(--border);
  padding:.5rem .65rem;
  font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--cream-dim);
  align-self:start;
}
.role-toggle-label input[type=checkbox]{
  accent-color:var(--gold);cursor:pointer;
  appearance:auto;-webkit-appearance:checkbox;
  width:14px;height:14px;margin:0;
}
.role-editor-row input[type=text],
.role-editor-row textarea,
.spec-editor-row input[type=text],
.spec-editor-row textarea,
.spec-editor-row select{
  background:var(--black);border:1px solid var(--border);color:var(--cream);
  padding:.55rem .7rem;font-family:'Cormorant Garamond',serif;font-size:.92rem;
  outline:none;transition:border-color .2s;width:100%;
}
.role-editor-row input[type=text]:focus,
.role-editor-row textarea:focus,
.spec-editor-row input[type=text]:focus,
.spec-editor-row textarea:focus,
.spec-editor-row select:focus{border-color:var(--gold-dim);}
.role-editor-row textarea,
.spec-editor-row textarea{resize:vertical;font-family:'Cormorant Garamond',serif;line-height:1.5;}

/* ── User greeting in header ── */
.user-greeting{
  color:var(--cream-dim);font-size:.85rem;cursor:pointer;
  text-decoration:none;transition:color .2s;
}
.user-greeting #user-name{color:var(--gold);}
.user-greeting:hover{color:var(--cream);}
.user-greeting:hover #user-name{color:var(--gold-light);}

/* ── Team directory ── */
.team-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:1rem;
}
.team-card{
  background:var(--card);border:1px solid var(--border);
  padding:1.1rem;display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:start;
}
.team-avatar{flex-shrink:0;}
.team-info{min-width:0;}
.team-name{font-family:'Playfair Display',serif;font-style:italic;color:var(--cream);font-size:1.1rem;line-height:1.2;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;}
.team-color-dot{
  display:inline-block;width:10px;height:10px;border-radius:50%;
  background:var(--emp-color,var(--gold-dim));
  flex-shrink:0;
  box-shadow:0 0 0 1px rgba(0,0,0,.3) inset;
}
.team-role{font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-top:.3rem;}
.team-contact{margin-top:.55rem;display:flex;flex-direction:column;gap:.18rem;}
.team-contact-link{
  color:var(--cream-dim);font-size:.8rem;text-decoration:none;
  word-break:break-all;
}
.team-contact-link:hover{color:var(--gold);}
.team-actions{display:flex;gap:.4rem;margin-top:.7rem;flex-wrap:wrap;}

/* Avatars */
.emp-photo{
  width:64px;height:64px;border-radius:50%;display:block;object-fit:cover;
  border:1px solid var(--gold-dim);
}
.emp-photo-initials{
  background:linear-gradient(135deg,var(--gold-dim),var(--gold));
  color:var(--black);font-family:'Playfair Display',serif;font-style:italic;
  font-size:1.4rem;
  display:flex;align-items:center;justify-content:center;
}
.emp-photo-broadcast{
  background:var(--rich);border-color:var(--gold);
  display:flex;align-items:center;justify-content:center;font-size:1.5rem;
}
.emp-photo-group{
  background:linear-gradient(135deg,#3a3527,#2a2418);
  border-color:var(--gold-dim);
  display:flex;align-items:center;justify-content:center;
  font-size:1.4rem;color:var(--gold);
}
/* Custom group photo: replaces the gradient with a cover-fit image */
.emp-photo-group.has-photo{
  background-size:cover;background-position:center;
  font-size:0;color:transparent;
}

/* Editable group avatar (creator only) — clickable circle with hover overlay */
.group-avatar-editable{position:relative;cursor:pointer;}
.group-avatar-editable .emp-photo{transition:transform .18s, box-shadow .18s;}
.group-avatar-editable:hover .emp-photo{
  transform:scale(1.04);
  box-shadow:0 0 0 2px var(--gold), 0 6px 18px rgba(0,0,0,.45);
}
/* Camera-pip badge that always shows in the corner — strong cue this is editable */
.group-avatar-editable::after{
  content:'📷';position:absolute;right:-3px;bottom:-3px;
  width:20px;height:20px;border-radius:50%;
  background:var(--gold);color:var(--black);
  display:flex;align-items:center;justify-content:center;
  font-size:.7rem;line-height:1;
  border:2px solid var(--rich);
  transition:transform .15s;
  z-index:1;
}
.group-avatar-editable:hover::after{transform:scale(1.12);}
/* Soft "Change photo" overlay on hover (covers the photo with a tint) */
.group-avatar-editable::before{
  content:'Change';position:absolute;inset:0;border-radius:inherit;
  background:rgba(0,0,0,.55);color:var(--gold);
  font-family:'Josefin Sans',sans-serif;font-size:.45rem;letter-spacing:.16em;
  text-transform:uppercase;
  display:flex;align-items:center;justify-content:center;
  opacity:0;transition:opacity .18s;
  pointer-events:none;border-radius:50%;
}
.group-avatar-editable:hover::before{opacity:1;}
.group-icon-edit{
  margin-left:.5rem;background:transparent;border:1px solid var(--gold-dim);
  color:var(--gold);padding:.18rem .55rem;
  font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.16em;
  text-transform:uppercase;cursor:pointer;
}
.group-icon-edit:hover{background:rgba(201,168,76,.1);border-color:var(--gold);}

/* ── Profile view ── */
.profile-wrap{max-width:680px;}
.profile-hero{
  display:flex;gap:1.4rem;align-items:flex-start;
  padding:1.4rem 0;
}
.profile-photo-wrap{position:relative;flex-shrink:0;}
.profile-photo-wrap .emp-photo{width:120px;height:120px;font-size:2.5rem;}
.profile-photo-upload{
  display:block;margin-top:.55rem;text-align:center;
  font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold-dim);cursor:pointer;
  position:relative;
}
.profile-photo-upload input[type=file]{
  position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%;
}
.profile-photo-upload:hover{color:var(--gold);}
.profile-meta{flex:1;min-width:0;}
.profile-role{
  font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.25em;
  text-transform:uppercase;color:var(--gold);margin-bottom:.25rem;
}
.profile-name{
  font-family:'Playfair Display',serif;font-style:italic;font-weight:400;
  color:var(--cream);font-size:clamp(1.6rem,3.5vw,2.1rem);line-height:1.1;margin:.1rem 0 .3rem;
}
.profile-joined{font-size:.82rem;color:var(--muted);font-style:italic;}
.profile-body{margin-top:.6rem;}
.profile-fields{
  display:grid;grid-template-columns:1fr 1fr;gap:.8rem;
  background:var(--card);border:1px solid var(--border);
  padding:1.1rem 1.3rem;
}
@media (max-width:680px){.profile-fields{grid-template-columns:1fr;}}
.profile-row{display:flex;flex-direction:column;gap:.32rem;}
.profile-row-full{grid-column:1/-1;}
.profile-label{
  font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--gold-dim);
}
.profile-input{
  background:var(--black);border:1px solid var(--border);color:var(--cream);
  padding:.55rem .7rem;font-family:'Cormorant Garamond',serif;font-size:.95rem;
  outline:none;transition:border-color .2s;
}
.profile-input:focus{border-color:var(--gold-dim);}
.profile-fields.read .profile-row{padding:.55rem 0;border-bottom:1px solid rgba(201,168,76,.07);}
.profile-fields.read .profile-row:last-child{border-bottom:none;}
.profile-value{color:var(--cream);font-size:.95rem;}
.profile-value.bio{font-style:italic;line-height:1.65;color:var(--cream-dim);}
.profile-edit-hint{
  font-size:.74rem;color:var(--muted);font-style:italic;margin-top:.5rem;text-align:right;
}
.profile-actions{margin-top:1.2rem;}
.profile-empty{color:var(--muted);font-style:italic;padding:2rem;text-align:center;}

/* ── Team toolbar + admin pill ── */
.team-toolbar{
  display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;
  margin-bottom:1rem;
}
.team-toolbar-hint{font-size:.78rem;color:var(--muted);font-style:italic;}
.team-admin-pill{
  display:inline-block;font-family:'Josefin Sans',sans-serif;font-size:.42rem;
  letter-spacing:.18em;text-transform:uppercase;color:var(--gold);
  border:1px solid var(--gold-dim);background:rgba(201,168,76,.08);
  padding:.06rem .35rem;margin-left:.35rem;vertical-align:middle;
}
.team-archive{
  margin-top:1.6rem;padding-top:1.2rem;
  border-top:1px solid var(--border);
}
.team-archive-row{
  display:flex;justify-content:space-between;align-items:center;gap:.6rem;
  padding:.55rem 0;border-bottom:1px solid rgba(201,168,76,.06);flex-wrap:wrap;
}
.team-archive-name{color:var(--cream-dim);font-size:.92rem;}

/* ── HR section (admin-only) ── */
.hr-section{
  margin-top:2rem;padding-top:1.6rem;
  border-top:1px solid var(--border);
}
.hr-section-title{
  font-family:'Playfair Display',serif;font-style:italic;font-weight:400;
  color:var(--cream);font-size:1.18rem;margin:.2rem 0 .9rem;
}
.hr-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:.75rem;
  background:var(--card);border:1px solid var(--border);
  padding:1.1rem 1.3rem;
}
@media (max-width:680px){.hr-grid{grid-template-columns:1fr;}}
.hr-row{display:flex;flex-direction:column;gap:.32rem;}
.hr-row-full{grid-column:1/-1;}
.hr-label{
  font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--gold-dim);
  display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;
}
.hr-secure{
  font-family:'Josefin Sans',sans-serif;font-size:.42rem;letter-spacing:.15em;
  text-transform:uppercase;color:#e8c97a;
  border:1px solid rgba(232,201,122,.4);background:rgba(232,201,122,.08);
  padding:.06rem .35rem;
}
.hr-ssn-row{display:flex;gap:.4rem;align-items:center;}
.hr-ssn-row input{flex:1;font-family:var(--chat-font);letter-spacing:.05em;}
.hr-empty{
  color:var(--muted);font-style:italic;font-size:.85rem;padding:.45rem 0;
}
.hr-file-chip{
  display:flex;align-items:center;gap:.6rem;
  background:var(--rich);border:1px solid var(--border);
  padding:.55rem .65rem;flex-wrap:wrap;
}

.hr-note-add{
  display:grid;grid-template-columns:1fr auto;gap:.5rem;
  margin-bottom:.9rem;
}
.hr-note-add textarea{
  background:var(--card);border:1px solid var(--border);color:var(--cream);
  padding:.55rem .7rem;font-family:var(--chat-font);font-size:.95rem;
  outline:none;resize:vertical;min-height:48px;
}
.hr-note-add textarea:focus{border-color:var(--gold-dim);}
.hr-notes-list{display:flex;flex-direction:column;gap:.5rem;}
.hr-note{
  background:var(--card);border:1px solid var(--border);
  padding:.7rem .9rem;position:relative;
}
.hr-note-meta{
  font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.18em;
  color:var(--gold-dim);text-transform:uppercase;margin-bottom:.35rem;
}
.hr-note-body{
  color:var(--cream-dim);font-size:.92rem;line-height:1.55;
  font-family:var(--chat-font);white-space:pre-wrap;
}
.hr-note-rm{
  position:absolute;top:.4rem;right:.4rem;
  width:24px;height:24px;font-size:.95rem;line-height:1;padding:0;
  opacity:.5;
}
.hr-note:hover .hr-note-rm{opacity:1;}

.hr-account{
  background:var(--card);border:1px solid var(--border);
  padding:1rem 1.3rem;
}
.hr-account-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:.5rem 0;border-bottom:1px solid rgba(201,168,76,.05);gap:.6rem;flex-wrap:wrap;
}
.hr-account-row:last-of-type{border-bottom:none;}
.hr-account-row > span:first-child{
  font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--gold-dim);
}
.hr-account-row strong{color:var(--cream);font-weight:500;}
.hr-account-actions{
  display:flex;gap:.5rem;margin-top:.7rem;padding-top:.7rem;
  border-top:1px solid var(--border);flex-wrap:wrap;
}

/* ── Schedule day calendar row (holidays + events) ── */
.sched-cal-row{
  display:flex;flex-direction:column;gap:.3rem;
  margin:.45rem 0 .2rem;padding:.4rem .5rem;
  background:rgba(201,168,76,.05);border:1px solid rgba(201,168,76,.12);
}
.sched-holiday{
  font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--gold);
}
.sched-event-link{
  display:block;
  font-family:var(--chat-font);font-size:.82rem;color:var(--cream);
  text-decoration:none;
  border-left:2px solid var(--gold-dim);padding:.18rem .45rem;
  background:rgba(201,168,76,.07);
  word-wrap:break-word;
}
.sched-event-link:hover{background:rgba(201,168,76,.14);color:var(--gold-light);}

/* ── Messages panel ── */
.msg-grid{
  display:grid;grid-template-columns:300px 1fr;gap:0;
  background:var(--card);border:1px solid var(--border);
  min-height:520px;overflow:hidden;
}
@media (max-width:780px){.msg-grid{grid-template-columns:1fr;}}
.msg-sidebar{
  border-right:1px solid var(--border);
  display:flex;flex-direction:column;
}
@media (max-width:780px){.msg-sidebar{border-right:none;border-bottom:1px solid var(--border);}}
.msg-side-head{
  display:flex;justify-content:space-between;align-items:center;gap:.6rem;
  padding:.85rem 1rem;border-bottom:1px solid var(--border);
  font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--gold-dim);
}
.msg-conv-list{flex:1;overflow-y:auto;max-height:480px;}
.msg-conv-item{
  display:grid;grid-template-columns:auto 1fr auto;gap:.7rem;align-items:center;
  padding:.7rem 1rem;border-bottom:1px solid rgba(201,168,76,.05);
  cursor:pointer;transition:background .15s;
}
.msg-conv-item:hover{background:rgba(201,168,76,.04);}
.msg-conv-item.active{background:rgba(201,168,76,.08);border-left:2px solid var(--gold);padding-left:calc(1rem - 2px);}
.msg-conv-avatar .emp-photo{width:36px;height:36px;font-size:.9rem;}
.msg-conv-avatar .emp-photo-broadcast{font-size:.95rem;}
.msg-conv-info{min-width:0;}
.msg-conv-name{
  font-family:var(--chat-font);font-weight:600;color:var(--cream);font-size:.95rem;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.01em;
}
.msg-conv-snippet{
  font-family:var(--chat-font);
  font-size:.82rem;color:var(--muted);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:.15rem;
}
.msg-bcast-pill{
  display:inline-block;font-family:'Josefin Sans',sans-serif;font-size:.42rem;
  letter-spacing:.18em;text-transform:uppercase;color:var(--gold);
  border:1px solid var(--gold-dim);padding:.06rem .35rem;background:rgba(201,168,76,.08);
}
.msg-bcast-pill.group{
  color:#9ec0e8;border-color:rgba(158,192,232,.5);background:rgba(158,192,232,.08);
}
.msg-unread-dot{
  background:var(--gold);color:var(--black);
  font-family:'Josefin Sans',sans-serif;font-size:.6rem;font-weight:bold;
  min-width:18px;height:18px;border-radius:9px;
  display:flex;align-items:center;justify-content:center;padding:0 .35rem;
}
.msg-conv-empty{color:var(--muted);font-style:italic;padding:1.4rem;text-align:center;font-size:.85rem;}

.msg-thread-pane{display:flex;flex-direction:column;}
.msg-thread-empty{
  flex:1;display:flex;align-items:center;justify-content:center;
  color:var(--muted);font-style:italic;padding:2rem;text-align:center;
}
.msg-thread-head{
  display:flex;align-items:center;gap:.7rem;
  padding:.85rem 1.1rem;border-bottom:1px solid var(--border);background:var(--rich);
}
.msg-thread-avatar{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}
.msg-thread-avatar .emp-photo{width:38px;height:38px;font-size:.9rem;}
/* When the avatar is a <label> (creator only), ensure it sizes around the photo, not stretched */
label.msg-thread-avatar{width:38px;height:38px;}
.msg-thread-name{
  font-family:var(--chat-font);font-weight:600;color:var(--cream);font-size:1.05rem;letter-spacing:.01em;
}
.msg-thread-body{
  flex:1;overflow-y:auto;
  min-height:380px;max-height:380px;
  padding:1rem;display:flex;flex-direction:column;gap:.7rem;
  /* Pin messages to the bottom of the body so the compose form stays anchored
     even when the conversation has only a few bubbles. */
  justify-content:flex-end;
}
/* When the body is empty, fall back to centered placeholder rather than bottom-anchored. */
.msg-thread-body:has(.msg-thread-empty){justify-content:center;}

/* Message row layout: avatar next to bubble */
.msg-row{
  display:flex;align-items:flex-end;gap:.55rem;max-width:90%;
}
.msg-row.mine{flex-direction:row-reverse;align-self:flex-end;}
.msg-row.theirs{align-self:flex-start;}
.msg-row-avatar{flex-shrink:0;}
.msg-row-avatar .emp-photo{
  width:32px;height:32px;font-size:.7rem;
  border-color:var(--emp-color, var(--gold-dim));
}
.msg-row-bubble-wrap{
  display:flex;flex-direction:column;
  min-width:0;flex:1;
  align-items:flex-start;
}
.msg-row.mine .msg-row-bubble-wrap{align-items:flex-end;}
.msg-row .msg-bubble{max-width:100%;align-self:auto;position:relative;}

/* Per-bubble action row (React + Reply) */
.msg-bubble-actions{
  position:absolute;top:-12px;
  display:flex;gap:.2rem;
  opacity:0;transition:opacity .15s;
}
.msg-row.mine .msg-bubble-actions{right:.4rem;}
.msg-row.theirs .msg-bubble-actions{left:.4rem;}
.msg-bubble:hover .msg-bubble-actions,
.msg-row:focus-within .msg-bubble-actions{opacity:1;}
.msg-bubble-act{
  background:var(--card);border:1px solid var(--border);color:var(--cream-dim);
  font-size:.7rem;padding:.18rem .4rem;cursor:pointer;
  border-radius:14px;line-height:1;
  transition:all .15s;
}
.msg-bubble-act:hover{border-color:var(--gold-dim);color:var(--gold);}

/* Emoji picker popup */
.msg-react-picker{
  position:absolute;top:-44px;
  background:var(--card);border:1px solid var(--gold-dim);
  border-radius:20px;padding:.32rem .4rem;
  display:flex;gap:.15rem;z-index:10;
  box-shadow:0 4px 16px rgba(0,0,0,.4);
}
.msg-row.mine .msg-react-picker{right:.4rem;}
.msg-row.theirs .msg-react-picker{left:.4rem;}
.msg-react-picker button{
  background:none;border:none;font-size:1.05rem;cursor:pointer;
  padding:.18rem .3rem;line-height:1;border-radius:50%;
  transition:transform .12s,background .12s;
}
.msg-react-picker button:hover{transform:scale(1.25);background:rgba(201,168,76,.12);}

/* Reaction chips below bubble */
.msg-reactions{
  display:flex;flex-wrap:wrap;gap:.25rem;
  margin-top:.3rem;
}
.msg-react-chip{
  background:var(--rich);border:1px solid var(--border);
  display:inline-flex;align-items:center;gap:.25rem;
  font-size:.78rem;padding:.15rem .42rem;cursor:pointer;
  border-radius:14px;line-height:1;color:var(--cream-dim);
  transition:all .15s;font-family:inherit;
}
.msg-react-chip:hover{border-color:var(--gold-dim);}
.msg-react-chip.active{
  background:rgba(201,168,76,.14);border-color:var(--gold);color:var(--gold-light);
}
.msg-react-emoji{font-size:.95rem;line-height:1;}
.msg-react-count{font-family:'Josefin Sans',sans-serif;font-size:.62rem;font-weight:500;}

/* Read receipts */
.msg-receipt-row{margin-top:.2rem;}
.msg-receipt{
  font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--muted);
}
.msg-receipt.read{color:#8fc46a;}
.msg-receipt.partial{color:var(--gold-dim);}

/* Reply quote inside bubble */
.msg-reply-quote{
  background:rgba(0,0,0,.18);border-left:2px solid var(--gold);
  padding:.4rem .55rem;margin-bottom:.4rem;
  font-size:.82rem;
}
.msg-bubble.mine .msg-reply-quote{background:rgba(0,0,0,.28);border-left-color:#fff;}
.msg-reply-quote-head{
  font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold-dim);margin-bottom:.18rem;
}
.msg-bubble.mine .msg-reply-quote-head{color:rgba(255,255,255,.85);}
.msg-reply-quote-body{
  color:var(--cream-dim);font-style:italic;line-height:1.4;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.msg-bubble.mine .msg-reply-quote-body{color:#fff;}

/* Reply quote preview in the compose form */
.msg-reply-quote-preview{
  position:relative;background:rgba(201,168,76,.06);
  border-left:3px solid var(--gold);
  padding:.45rem .65rem;margin:0 .8rem;
  font-size:.85rem;
}
.msg-reply-quote-preview .msg-reply-quote-head{margin-bottom:.15rem;}
.msg-reply-quote-preview .msg-reply-quote-body{
  color:var(--cream);font-style:italic;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.msg-reply-quote-cancel{
  position:absolute;top:.32rem;right:.32rem;
  width:22px;height:22px;background:transparent;
  border:1px solid var(--border);color:var(--muted);
  font-size:.85rem;line-height:1;cursor:pointer;
}
.msg-reply-quote-cancel:hover{color:#e05c5c;border-color:#e05c5c;}
/* Calibri-first font stack for chat content (falls back gracefully on Mac/Linux). */
:root{
  --chat-font:'Calibri','Segoe UI',system-ui,-apple-system,'Helvetica Neue',sans-serif;
}

/* Sent (mine) vs received (theirs) bubbles — distinct background + tail. */
.msg-bubble{
  max-width:82%;padding:.75rem 1rem;
  position:relative;
  border-radius:14px 14px 14px 4px;
  background:#2a241c;
  border:1px solid rgba(201,168,76,.18);
  box-shadow:0 1px 0 rgba(0,0,0,.25);
  font-family:var(--chat-font);
}
.msg-bubble.mine{
  align-self:flex-end;
  border-radius:14px 14px 4px 14px;
  background:linear-gradient(180deg,rgba(201,168,76,.22),rgba(201,168,76,.12));
  border-color:var(--gold-dim);
}
.msg-bubble.broadcast{
  background:#1a2538;
  border-color:rgba(122,181,232,.35);
}
.msg-bubble.broadcast.mine{
  background:linear-gradient(180deg,rgba(201,168,76,.22),rgba(201,168,76,.12));
  border-color:var(--gold-dim);
}
.msg-bubble-meta{
  font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.14em;
  color:var(--cream-dim);text-transform:uppercase;margin-bottom:.35rem;
  display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;
}
.msg-bubble.mine .msg-bubble-meta{color:rgba(255,255,255,.75);}
.msg-bubble.mine .msg-bubble-meta strong{color:#fff;font-weight:500;}
.msg-bubble-meta strong{color:var(--gold);font-weight:500;}
.msg-bubble-time{color:inherit;opacity:.7;}
.msg-bubble-subject{
  font-family:var(--chat-font);font-weight:600;
  color:var(--cream);font-size:1rem;margin-bottom:.3rem;letter-spacing:.01em;
}
.msg-bubble.mine .msg-bubble-subject{color:#fff;}
.msg-bubble-body{
  font-family:var(--chat-font);
  color:var(--cream);font-size:.97rem;line-height:1.55;white-space:pre-wrap;
  word-wrap:break-word;letter-spacing:.005em;
}
.msg-bubble.mine .msg-bubble-body{color:#fff;}
.msg-bubble.broadcast .msg-bubble-body{color:#d8e4f5;}
.msg-reply-form{
  display:grid;grid-template-columns:1fr auto;gap:.5rem;
  padding:.8rem;border-top:1px solid var(--border);background:var(--rich);
}
.msg-reply-form textarea{
  background:var(--black);border:1px solid var(--border);color:var(--cream);
  padding:.55rem .7rem;font-family:var(--chat-font);font-size:.97rem;
  outline:none;resize:vertical;min-height:42px;line-height:1.5;
}
.msg-reply-form textarea:focus{border-color:var(--gold-dim);}
.msg-readonly-note{
  padding:.8rem;border-top:1px solid var(--border);background:var(--rich);
  text-align:center;color:var(--muted);font-style:italic;font-size:.85rem;
}

/* ── Attachment UI ── */
.msg-attach-row{
  display:flex;align-items:center;gap:.6rem;padding:.5rem 0;flex-wrap:wrap;
  margin-bottom:.5rem;
}
.msg-attach-btn{
  display:inline-flex;align-items:center;gap:.4rem;
  font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold-dim);cursor:pointer;
  border:1px solid var(--border);padding:.4rem .7rem;
  background:var(--card);transition:all .2s;
  white-space:nowrap;
}
.msg-attach-btn:hover{border-color:var(--gold);color:var(--gold);}
.msg-attach-btn.small{font-size:.85rem;letter-spacing:0;padding:.5rem .65rem;border-radius:6px;}
.msg-attach-hint{font-size:.74rem;color:var(--muted);font-style:italic;}

.msg-attach-chips{
  display:flex;flex-direction:column;gap:.4rem;
  margin-top:.55rem;
}
.msg-attach-chip{
  display:flex;align-items:center;gap:.6rem;
  background:var(--rich);border:1px solid var(--border);
  padding:.45rem .55rem;
  position:relative;
}
.msg-attach-thumb{
  width:48px;height:48px;object-fit:cover;
  border:1px solid var(--border);flex-shrink:0;
}
.msg-attach-icon{
  width:48px;height:48px;flex-shrink:0;
  background:var(--card);border:1px solid var(--gold-dim);
  display:flex;align-items:center;justify-content:center;
  font-family:'Josefin Sans',sans-serif;font-size:.6rem;letter-spacing:.12em;
  color:var(--gold);text-transform:uppercase;
}
.msg-attach-meta{flex:1;min-width:0;}
.msg-attach-name{
  color:var(--cream);font-size:.86rem;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.msg-attach-size{
  font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.18em;
  color:var(--muted);text-transform:uppercase;margin-top:.15rem;
}
.msg-attach-rm{
  background:transparent;border:1px solid var(--border);color:var(--muted);
  width:24px;height:24px;cursor:pointer;font-size:.95rem;line-height:1;
  flex-shrink:0;transition:all .15s;
}
.msg-attach-rm:hover{color:#e05c5c;border-color:#e05c5c;}

/* Inline attachments inside bubbles */
.msg-bubble-attachments{
  display:flex;flex-direction:column;gap:.4rem;
  margin-top:.5rem;
}
.msg-bubble-image-link{
  display:block;line-height:0;
}
.msg-bubble-image{
  max-width:280px;max-height:200px;width:100%;
  border:1px solid rgba(255,255,255,.1);border-radius:6px;
  display:block;
}
.msg-bubble.mine .msg-bubble-image{border-color:rgba(0,0,0,.2);}
.msg-bubble-file{
  display:flex;align-items:center;gap:.55rem;
  background:rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.1);
  padding:.5rem .65rem;text-decoration:none;
  transition:background .15s;
}
.msg-bubble.mine .msg-bubble-file{
  background:rgba(0,0,0,.12);border-color:rgba(0,0,0,.2);
}
.msg-bubble-file:hover{background:rgba(0,0,0,.28);}
.msg-bubble-file .msg-attach-name{color:inherit;}
.msg-bubble.mine .msg-bubble-file .msg-attach-name{color:#fff;}
.msg-bubble.mine .msg-bubble-file .msg-attach-size{color:rgba(255,255,255,.7);}

/* Reply form with attachment row */
.msg-reply-wrap{border-top:1px solid var(--border);background:var(--rich);}
.msg-reply-attach-row{
  display:flex;align-items:center;gap:.55rem;
  padding:.5rem .8rem 0;flex-wrap:wrap;
}
.msg-reply-att-preview{flex:1;min-width:0;}
.msg-reply-att-preview .msg-attach-chips{margin-top:0;flex-direction:row;flex-wrap:wrap;}
.msg-reply-att-preview .msg-attach-chip{padding:.3rem .4rem;}
.msg-reply-att-preview .msg-attach-thumb,
.msg-reply-att-preview .msg-attach-icon{width:32px;height:32px;font-size:.5rem;}

.msg-reply-form{margin-top:.4rem;}

/* Compact TO DO block on Today landing */
.todo-block{display:flex;flex-direction:column;gap:.5rem;}
.todo-row{
  display:grid;grid-template-columns:auto 1fr auto;gap:.85rem;align-items:center;
  background:var(--rich);border:1px solid var(--border);
  padding:.75rem 1rem;cursor:pointer;text-align:left;
  font-family:var(--chat-font);transition:all .15s;
  width:100%;
}
.todo-row:hover{border-color:var(--gold-dim);background:rgba(201,168,76,.05);}
/* Green when complete with no flags */
.todo-row.todo-done{
  background:rgba(95,160,90,.12);
  border-color:rgba(143,196,106,.55);
}
.todo-row.todo-done:hover{
  background:rgba(95,160,90,.18);
  border-color:#8fc46a;
}
/* Red when any item is flagged for redo */
.todo-row.todo-flagged{
  background:rgba(224,92,92,.14);
  border-color:rgba(224,92,92,.55);
}
.todo-row.todo-flagged:hover{
  background:rgba(224,92,92,.2);
  border-color:#e05c5c;
}
.todo-check{
  width:24px;height:24px;flex-shrink:0;
  border:1.5px solid var(--gold-dim);background:transparent;
  display:flex;align-items:center;justify-content:center;
  color:var(--gold);font-size:.95rem;font-family:'Josefin Sans',sans-serif;
}
.todo-row.todo-done .todo-check{
  background:linear-gradient(135deg,#5a8a3e,#3f6428);
  border-color:#5a8a3e;color:#fff;
}
.todo-row.todo-partial .todo-check{
  border-color:var(--gold);color:var(--gold);
  background:rgba(201,168,76,.12);
}
.todo-label{display:flex;flex-direction:column;gap:.18rem;min-width:0;}
.todo-title{
  font-family:'Playfair Display',serif;font-style:italic;color:var(--cream);
  font-size:1rem;line-height:1.2;
}
.todo-status{
  font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold-dim);
}
.todo-row.todo-done .todo-check{
  background:linear-gradient(135deg,#5a8a3e,#3f6428);
  border-color:#5a8a3e;color:#fff;
}
.todo-row.todo-partial .todo-check{
  border-color:var(--gold);color:var(--gold);
  background:rgba(201,168,76,.12);
}
.todo-row.todo-flagged .todo-check{
  background:linear-gradient(135deg,#c4453f,#8e2a26);
  border-color:#c4453f;color:#fff;
}
.todo-row.todo-done .todo-status{color:#8fc46a;}
.todo-row.todo-open .todo-status{color:#e8c97a;}
.todo-row.todo-flagged .todo-status{color:#f3b9b9;}
.todo-arrow{color:var(--gold);font-size:1rem;flex-shrink:0;}
.todo-row:hover .todo-arrow{color:var(--gold-light);}
.todo-row.todo-flagged .todo-arrow{color:#f3b9b9;}
.todo-row.todo-flagged:hover .todo-arrow{color:#ffb9b9;}

/* Inline checklist card on the Today landing */
.checklist-card-head{
  display:flex;justify-content:space-between;align-items:flex-start;
  gap:.6rem;flex-wrap:wrap;margin-bottom:.75rem;
}
.checklist-card-title{
  font-family:'Playfair Display',serif;font-style:italic;color:var(--cream);
  font-size:1.18rem;line-height:1.2;
}
.checklist-card-sub{
  font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold-dim);margin-top:.3rem;
}
.checklist-card-link{
  font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--gold);text-decoration:none;
  align-self:flex-end;
}
.checklist-card-link:hover{color:var(--gold-light);}

/* ── Checklists (opening / closing) ── */
.checklist-progress{
  height:4px;background:var(--rich);border:1px solid var(--border);
  margin:0 0 1rem;overflow:hidden;
}
.checklist-progress-bar{
  height:100%;background:linear-gradient(90deg,var(--gold-dim),var(--gold));
  transition:width .3s;
}
.checklist-items{
  background:var(--card);border:1px solid var(--border);
  display:flex;flex-direction:column;
}
.checklist-item{
  display:grid;grid-template-columns:auto 1fr auto;gap:.85rem;align-items:start;
  padding:.85rem 1rem;
  border-bottom:1px solid rgba(201,168,76,.06);
  transition:background .15s;
}
.checklist-item:last-child{border-bottom:none;}
.checklist-item:hover{background:rgba(201,168,76,.03);}
.checklist-item.done{background:rgba(143,196,106,.04);}
.checklist-item.flagged{background:rgba(224,92,92,.08);}
.checklist-check{
  width:26px;height:26px;flex-shrink:0;
  border:1.5px solid var(--gold-dim);background:transparent;
  color:var(--gold);font-size:1rem;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:all .15s;margin-top:.05rem;
  font-family:'Josefin Sans',sans-serif;
}
.checklist-check:hover{border-color:var(--gold);background:rgba(201,168,76,.08);}
.checklist-item.done .checklist-check{
  background:linear-gradient(135deg,#5a8a3e,#3f6428);
  border-color:#5a8a3e;color:#fff;
}
.checklist-item.flagged .checklist-check{
  background:rgba(224,92,92,.18);border-color:#e05c5c;color:#e05c5c;
}
.checklist-body{min-width:0;}
.checklist-label{
  color:var(--cream);font-size:.95rem;line-height:1.4;
  font-family:var(--chat-font);
}
.checklist-item.done .checklist-label{color:var(--cream-dim);}
.checklist-item.flagged .checklist-label{color:#f5b5b5;text-decoration:line-through;text-decoration-color:rgba(224,92,92,.5);}
.checklist-meta{
  font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold-dim);margin-top:.4rem;
  display:flex;gap:.4rem;align-items:center;flex-wrap:wrap;
}
.checklist-flag-pill{
  background:rgba(224,92,92,.18);border:1px solid rgba(224,92,92,.5);color:#e05c5c;
  padding:.1rem .35rem;letter-spacing:.13em;
}
.checklist-flag-note{
  margin-top:.45rem;padding:.55rem .65rem;
  background:rgba(224,92,92,.1);border-left:3px solid #e05c5c;
  font-size:.82rem;color:#f5b5b5;font-family:var(--chat-font);
  line-height:1.45;
}
.checklist-flag-note strong{color:#fff;font-weight:500;font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.18em;text-transform:uppercase;}
.checklist-admin-actions{
  display:flex;gap:.3rem;align-items:flex-start;flex-shrink:0;
}
.checklist-admin-add{
  display:grid;grid-template-columns:1fr auto;gap:.5rem;
  margin-top:1rem;
}

/* Per-item staff notes */
.checklist-notes{
  margin-top:.5rem;display:flex;flex-direction:column;gap:.4rem;
}
.checklist-note{
  background:rgba(122,181,232,.06);
  border-left:3px solid #7ab5e8;
  padding:.5rem .65rem;position:relative;
}
.checklist-note-meta{
  font-family:'Josefin Sans',sans-serif;font-size:.45rem;letter-spacing:.18em;
  text-transform:uppercase;color:#9ec0e8;margin-bottom:.25rem;
}
.checklist-note-meta strong{color:#cfdef0;font-weight:500;}
.checklist-note-body{
  font-family:var(--chat-font);color:var(--cream);font-size:.88rem;
  line-height:1.5;white-space:pre-wrap;
}
.checklist-note-rm{
  position:absolute;top:.3rem;right:.3rem;
  width:22px;height:22px;background:transparent;border:1px solid var(--border);
  color:var(--muted);font-size:.85rem;line-height:1;cursor:pointer;
  opacity:.5;transition:all .15s;
}
.checklist-note:hover .checklist-note-rm{opacity:1;}
.checklist-note-rm:hover{color:#e05c5c;border-color:#e05c5c;}
.checklist-add-note-btn{
  display:inline-flex;align-items:center;gap:.3rem;
  margin-top:.5rem;background:none;
  border:1px dashed var(--border);color:var(--gold-dim);
  font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.18em;
  text-transform:uppercase;padding:.32rem .6rem;cursor:pointer;
  transition:all .15s;
}
.checklist-add-note-btn:hover{border-color:var(--gold);color:var(--gold);background:rgba(201,168,76,.04);}

/* End-of-shift wrap-up notes (closing list) */
.shift-notes-section{
  margin-top:1.6rem;padding-top:1.4rem;
  border-top:1px solid var(--border);
}
.shift-notes-head{margin-bottom:.9rem;}
.shift-notes-title{
  font-family:'Playfair Display',serif;font-style:italic;font-weight:400;
  color:var(--cream);font-size:1.18rem;margin:.2rem 0 .35rem;
}
.shift-notes-sub{color:var(--cream-dim);font-size:.85rem;}
.shift-notes-list{
  display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem;
}
.shift-note{
  background:var(--card);border:1px solid var(--border);
  border-left:3px solid var(--gold);
  padding:.7rem .85rem;position:relative;
}
.shift-note-meta{
  font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold-dim);margin-bottom:.32rem;
}
.shift-note-meta strong{color:var(--gold);font-weight:500;}
.shift-note-body{
  font-family:var(--chat-font);color:var(--cream);font-size:.93rem;
  line-height:1.55;white-space:pre-wrap;
}
.shift-notes-form{
  display:grid;grid-template-columns:1fr auto;gap:.5rem;align-items:end;
}
.shift-notes-form textarea{
  background:var(--black);border:1px solid var(--border);color:var(--cream);
  padding:.6rem .8rem;font-family:var(--chat-font);font-size:.95rem;
  outline:none;resize:vertical;min-height:64px;line-height:1.5;
}
.shift-notes-form textarea:focus{border-color:var(--gold-dim);}
@media (max-width:580px){
  .shift-notes-form{grid-template-columns:1fr;}
  .checklist-admin-add{grid-template-columns:1fr;}
}
.checklist-admin-add input{
  background:var(--black);border:1px solid var(--border);color:var(--cream);
  padding:.6rem .8rem;font-family:var(--chat-font);font-size:.95rem;
  outline:none;transition:border-color .2s;
}
.checklist-admin-add input:focus{border-color:var(--gold-dim);}
@media (max-width:580px){
  .checklist-item{grid-template-columns:auto 1fr;}
  .checklist-admin-actions{grid-column:1/-1;justify-self:end;margin-top:.4rem;}
  .checklist-admin-add{grid-template-columns:1fr;}
}

/* Inbox sub-tab badges */
.inbox-subtabs{margin-bottom:1.2rem;}
.inbox-subtabs .ftab .ntab-badge{margin-left:.4rem;}

/* Make the compose modal's Subject + Message inputs match the chat font so what you type matches what you read */
#msg-new-modal #msg-new-subj,
#msg-new-modal #msg-new-body{
  font-family:var(--chat-font);font-size:.97rem;line-height:1.5;
}

/* Recipient picker (multi-select chips) */
.recipients-picker{
  display:flex;flex-wrap:wrap;gap:.4rem;
  background:var(--black);border:1px solid var(--border);
  padding:.55rem;
}
.recipient-chip{
  display:inline-flex;align-items:center;gap:.4rem;
  background:var(--rich);border:1px solid var(--border);color:var(--cream-dim);
  padding:.42rem .7rem;cursor:pointer;transition:all .15s;
  font-family:var(--chat-font);font-size:.88rem;
}
.recipient-chip:hover{border-color:var(--gold-dim);color:var(--cream);}
.recipient-chip.selected{
  background:linear-gradient(180deg,rgba(201,168,76,.22),rgba(201,168,76,.12));
  border-color:var(--gold);color:#fff;
}
.recipient-chip.selected::before{
  content:'✓';color:var(--gold);font-weight:700;margin-right:.15rem;
}
.recipient-chip.selected:hover{border-color:var(--gold-light);}
.recipient-name{font-weight:500;}
.recipient-role{
  font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold-dim);opacity:.85;
}
.recipient-chip.selected .recipient-role{color:rgba(255,255,255,.7);}
.recipients-count{
  font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold);margin-left:.4rem;
}
.recipients-hint{
  font-size:.74rem;color:var(--muted);font-style:italic;margin-top:.4rem;
}

/* Compose modal */
.msg-mode-toggle{
  display:flex;border:1px solid var(--border);margin-bottom:1rem;
}
.role-toggle-btn{
  flex:1;background:none;border:none;color:var(--muted);
  font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.18em;
  text-transform:uppercase;padding:.6rem;cursor:pointer;transition:all .2s;
}
.role-toggle-btn.active{background:var(--gold);color:var(--black);}

/* Sched flags + conflict + per-day edit button */
.sched-flag{
  display:inline-block;font-family:'Josefin Sans',sans-serif;
  font-size:.42rem;letter-spacing:.2em;text-transform:uppercase;
  padding:.1rem .35rem;margin-left:.3rem;
  border:1px solid var(--gold-dim);color:var(--gold);background:rgba(201,168,76,.06);
}
.sched-flag.add{border-color:#7ab5e8;color:#7ab5e8;background:rgba(122,181,232,.08);}
.sched-flag.released{border-color:#e8c97a;color:#e8c97a;background:rgba(232,201,122,.12);}
.sched-shift.released .who{text-decoration:line-through;text-decoration-color:rgba(232,201,122,.5);text-decoration-thickness:1px;}
.sched-shift.conflict{border-left-color:#e05c5c;background:rgba(224,92,92,.08);}

/* Per-employee color coding on schedule shifts (overrides default gold accent) */
.sched-shift{border-left-color:var(--emp-color, var(--gold-dim));}
.sched-shift .who{color:var(--emp-color, var(--gold));}
/* Conflict + released visual states still take precedence over the personal color */
.sched-shift.conflict{border-left-color:#e05c5c;}
.sched-shift.released{border-left-color:#e8c97a;}
.sched-conflict-note{
  display:block;font-size:.65rem;color:#e05c5c;margin-top:.15rem;
  font-style:italic;
}
.sched-edit-btn{
  display:block;margin-top:.65rem;width:100%;
  background:none;border:1px solid var(--border);color:var(--gold-dim);
  font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.18em;
  text-transform:uppercase;padding:.4rem;cursor:pointer;transition:all .2s;
}
.sched-edit-btn:hover{border-color:var(--gold);color:var(--gold);}

/* Day editor modal */
.day-ed-shift{
  background:var(--rich);border:1px solid var(--border);
  padding:.85rem 1rem;margin-bottom:.6rem;
}
.day-ed-shift.conflict{border-left:3px solid #e05c5c;}
.day-ed-line{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;}
.day-ed-who{font-family:'Playfair Display',serif;font-style:italic;color:var(--cream);font-size:1rem;}
.day-ed-role{font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);}
.day-ed-time{color:var(--cream-dim);font-size:.85rem;}
.day-ed-warn{color:#e05c5c;font-size:.78rem;font-style:italic;margin-top:.35rem;}
.day-ed-acts{display:flex;gap:.4rem;margin-top:.55rem;flex-wrap:wrap;}
.day-ed-sub-form{
  display:grid;grid-template-columns:1fr 1fr auto auto;gap:.4rem;
  margin-top:.7rem;padding-top:.7rem;border-top:1px solid var(--border);
}
.day-ed-sub-form input[type=text]{
  background:var(--black);border:1px solid var(--border);color:var(--cream);
  padding:.45rem .65rem;font-family:'Cormorant Garamond',serif;font-size:.9rem;
  outline:none;
}
.day-ed-sub-form input[type=text]:focus{border-color:var(--gold-dim);}
@media (max-width:680px){
  .day-ed-sub-form{grid-template-columns:1fr 1fr;}
  .day-ed-sub-form button{grid-column:auto;}
}
.day-ed-offs{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.9rem;}
.day-ed-off-pill{
  font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.15em;
  text-transform:uppercase;color:#f5b5b5;
  background:rgba(139,32,32,.18);border:1px solid rgba(224,92,92,.4);
  padding:.22rem .55rem;
}

/* Pickup cards (staff + admin) */
.pickup-card{
  background:var(--card);border:1px solid var(--border);
  padding:1rem 1.2rem;margin-bottom:.75rem;
}
.pickup-head{
  display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;
  flex-wrap:wrap;
}
.pickup-title{font-family:'Playfair Display',serif;font-style:italic;color:var(--cream);font-size:1.05rem;}
.pickup-meta{font-size:.82rem;color:var(--cream-dim);margin-top:.2rem;}
.pickup-reason{
  display:inline-block;font-family:'Josefin Sans',sans-serif;
  font-size:.45rem;letter-spacing:.18em;text-transform:uppercase;
  border:1px solid var(--border);color:var(--muted);
  padding:.14rem .42rem;margin-left:.4rem;
}
.pickup-reason.auto{border-color:#e8c97a;color:#e8c97a;background:rgba(232,201,122,.08);}
.pickup-body{margin-top:.85rem;padding-top:.7rem;border-top:1px solid rgba(201,168,76,.08);}
.pickup-released{font-size:.74rem;color:var(--muted);margin-bottom:.6rem;}
.pickup-applicants-label{
  font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--gold-dim);margin-bottom:.4rem;
}
.pickup-applicant{
  display:flex;justify-content:space-between;align-items:center;gap:.6rem;
  padding:.55rem .8rem;background:var(--rich);border:1px solid var(--border);
  margin-bottom:.4rem;flex-wrap:wrap;
}
.pickup-applicant.assigned{border-color:rgba(143,196,106,.45);background:rgba(143,196,106,.05);}

/* My Schedule rows */
.my-sched-day{
  background:var(--card);border:1px solid var(--border);
  padding:.8rem 1.1rem;margin-bottom:.6rem;
}
.my-sched-date{
  font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--gold);margin-bottom:.5rem;
}
.my-sched-row{
  display:flex;justify-content:space-between;align-items:center;gap:.8rem;
  padding:.45rem 0;border-top:1px solid rgba(201,168,76,.07);flex-wrap:wrap;
}
.my-sched-row:first-of-type{border-top:none;}
.my-sched-role{font-family:'Playfair Display',serif;font-style:italic;color:var(--cream);font-size:.95rem;}
.my-sched-time{font-size:.83rem;color:var(--cream-dim);margin-top:.15rem;}

/* Inbox items */
.inbox-item{
  display:grid;grid-template-columns:14px 1fr auto;gap:.8rem;align-items:start;
  background:var(--card);border:1px solid var(--border);
  padding:.85rem 1rem;margin-bottom:.5rem;
}
.inbox-item.read{opacity:.65;}
.inbox-dot{
  width:8px;height:8px;border-radius:50%;background:transparent;
  margin-top:.45rem;
}
.inbox-dot.unread{background:var(--gold);box-shadow:0 0 6px rgba(201,168,76,.6);}
.inbox-title{font-family:'Playfair Display',serif;font-style:italic;color:var(--cream);font-size:1rem;line-height:1.2;}
.inbox-text{font-size:.85rem;color:var(--cream-dim);margin-top:.25rem;line-height:1.55;}
.inbox-time{font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.16em;color:var(--muted);text-transform:uppercase;margin-top:.4rem;}
.inbox-acts{display:flex;flex-direction:column;gap:.3rem;}

/* Tab badge (count chip on nav buttons) */
.ntab-badge{
  display:inline-block;
  background:var(--gold);color:var(--black);
  font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.05em;
  padding:.08rem .3rem;margin-left:.3rem;border-radius:8px;
  min-width:14px;text-align:center;
}

/* Shift editor (admin Schedule panel) */
.shift-day-group{
  padding:.7rem 0;
  border-bottom:1px solid rgba(201,168,76,.08);
}
.shift-day-group:last-child{border-bottom:none;}
.shift-day-head{
  display:flex;align-items:center;gap:.7rem;
  padding:.45rem 0 .7rem;flex-wrap:wrap;
}
.shift-day-name{
  font-family:'Playfair Display',serif;font-style:italic;color:var(--cream);
  font-size:1.05rem;
}
.shift-day-count{
  font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--gold-dim);
  border:1px solid var(--border);padding:.18rem .45rem;
}
.shift-day-head .abtn{margin-left:auto;}
.shift-day-empty{
  font-size:.82rem;color:var(--muted);font-style:italic;padding:.4rem 0;
}
.shift-editor-row{
  display:grid;
  grid-template-columns:130px 1.2fr 130px 1fr auto;
  gap:.55rem;align-items:center;
  padding:.55rem 0;
  border-top:1px solid rgba(201,168,76,.05);
}
.shift-editor-row:first-of-type{border-top:none;}
@media (max-width:880px){
  .shift-editor-row{grid-template-columns:1fr 1fr;}
  .shift-editor-row [data-shift-rmv]{grid-column:1/-1;justify-self:end;}
}
.shift-editor-row select,
.shift-editor-row input[type=text]{
  background:var(--black);border:1px solid var(--border);color:var(--cream);
  padding:.5rem .65rem;
  font-family:'Cormorant Garamond',serif;font-size:.92rem;
  outline:none;transition:border-color .2s;width:100%;
}
.shift-editor-row select:focus,
.shift-editor-row input[type=text]:focus{border-color:var(--gold-dim);}
.shift-editor-row select option{background:var(--dark);}

/* Public careers — empty state */
.role-empty-card{
  background:var(--card);border:1px solid var(--border);
  padding:2.5rem 2rem;text-align:center;
  max-width:560px;margin:0 auto 2rem;
}
.role-empty-icon{
  font-size:1.6rem;color:var(--gold);margin-bottom:.7rem;
}
.role-empty-title{
  font-family:'Playfair Display',serif;font-style:italic;font-weight:400;
  color:var(--cream);font-size:1.4rem;margin-bottom:.6rem;
}
.role-empty-body{
  color:var(--cream-dim);font-size:.95rem;line-height:1.65;
  max-width:440px;margin:0 auto;
}

/* ── EVENT DETAIL ── */
.event-header-block{text-align:center;margin-bottom:1.6rem;}
.event-detail-title{
  font-family:'Playfair Display',serif;font-style:italic;font-weight:400;
  color:var(--cream);font-size:clamp(1.9rem,4.5vw,2.6rem);line-height:1.15;
  margin:.5rem 0 .6rem;
}
.event-when-line{
  font-family:'Cormorant Garamond',serif;font-size:1rem;color:var(--cream-dim);
}
.event-flyer-wrap{
  display:flex;justify-content:center;
  margin:0 0 2rem;
}
.event-flyer{
  display:block;width:100%;max-width:460px;height:auto;
  border:1px solid var(--border);background:var(--rich);
}

.event-detail-grid{display:flex;flex-direction:column;gap:1.6rem;}
.event-meta-block{background:var(--card);border:1px solid var(--border);padding:1.2rem 1.5rem;}
.event-meta-row{display:grid;grid-template-columns:120px 1fr;gap:1rem;padding:.6rem 0;border-bottom:1px solid rgba(201,168,76,.08);}
.event-meta-row:last-child{border-bottom:none;}
@media (max-width:580px){.event-meta-row{grid-template-columns:1fr;gap:.2rem;}}
.event-meta-lbl{font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-dim);align-self:start;padding-top:.18rem;}
.event-meta-val{color:var(--cream);font-size:.95rem;line-height:1.55;}
.event-body{font-size:1rem;line-height:1.8;color:var(--cream-dim);padding:.4rem 0;}
.event-body p{margin-bottom:.7rem;}
.event-body a{color:var(--gold);text-decoration:underline;}

/* Ticket CTA */
.ticket-cta-wrap{
  background:linear-gradient(180deg,rgba(201,168,76,.08),rgba(201,168,76,.02));
  border:1px solid var(--border-hi);padding:1.6rem 1.8rem;text-align:center;
}
.ticket-meta{display:flex;align-items:baseline;justify-content:center;gap:1.4rem;margin-bottom:1rem;flex-wrap:wrap;}
.ticket-price{font-family:'Playfair Display',serif;font-style:italic;color:var(--gold);font-size:1.9rem;}
.ticket-price span{font-family:'Cormorant Garamond',serif;font-style:normal;font-size:.9rem;color:var(--cream-dim);margin-left:.2rem;}
.ticket-stock{font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-dim);}
.ticket-btn{font-size:.7rem!important;padding:1rem 2.4rem!important;letter-spacing:.28em!important;}
.ticket-fineprint{font-size:.82rem;color:var(--cream-dim);font-style:italic;margin-top:1rem;max-width:480px;margin-left:auto;margin-right:auto;}
.ticket-cta.sold-out{
  background:rgba(139,32,32,.12);border:1px solid rgba(224,92,92,.4);
  padding:1.4rem;text-align:center;
  font-family:'Playfair Display',serif;font-style:italic;color:#f5b5b5;font-size:1.4rem;
  letter-spacing:.05em;
}

/* ── CHECKOUT ── */
.checkout-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:1.4rem;}
@media (max-width:780px){.checkout-grid{grid-template-columns:1fr;}}
.checkout-summary,.checkout-form{background:var(--card);border:1px solid var(--border);padding:1.4rem 1.6rem;}
.checkout-row{display:flex;justify-content:space-between;padding:.4rem 0;font-size:.9rem;color:var(--cream-dim);border-bottom:1px solid rgba(201,168,76,.08);}
.checkout-row:last-child{border-bottom:none;}
.qty-control{margin:1.2rem 0 1rem;}
.qty-control label{font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-dim);display:block;margin-bottom:.5rem;}
.qty-buttons{display:flex;align-items:center;gap:.7rem;}
.qty-btn{
  background:var(--rich);border:1px solid var(--border);color:var(--gold);
  width:36px;height:36px;font-size:1.1rem;cursor:pointer;transition:all .15s;
}
.qty-btn:hover{border-color:var(--gold-dim);background:var(--card);}
.qty-num{font-family:'Playfair Display',serif;font-style:italic;color:var(--cream);font-size:1.3rem;min-width:28px;text-align:center;}
.qty-hint{font-size:.74rem;color:var(--muted);margin-top:.4rem;}
.checkout-total{
  display:flex;justify-content:space-between;align-items:baseline;
  margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border);
  font-family:'Josefin Sans',sans-serif;font-size:.62rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--cream-dim);
}
.total-amount{font-family:'Playfair Display',serif;font-style:italic;color:var(--gold);font-size:1.7rem;letter-spacing:0;}
.stripe-card-mock{
  background:var(--rich);border:1px solid var(--border);padding:1rem 1.2rem;
}
.stripe-badge{
  display:flex;align-items:center;gap:.4rem;
  font-family:Helvetica,Arial,sans-serif;font-size:.78rem;color:var(--cream-dim);
  margin-top:.7rem;justify-content:flex-end;
}
.checkout-meta{text-align:center;margin-top:.9rem;font-size:.78rem;}
.demo-notice{
  background:rgba(132,106,27,.15);border:1px solid rgba(201,168,76,.3);
  padding:.85rem 1.1rem;font-size:.82rem;color:#e8c97a;margin-top:1.4rem;
}
.demo-notice code{color:var(--gold);font-family:'Josefin Sans',sans-serif;font-size:.78rem;}

/* ── CONFIRMATION ── */
.confirm-hero{text-align:center;padding:1.6rem 0 2rem;}
.confirm-check{
  display:inline-flex;align-items:center;justify-content:center;
  width:62px;height:62px;border-radius:50%;
  background:rgba(143,196,106,.2);border:1px solid rgba(143,196,106,.5);
  color:#8fc46a;font-size:1.7rem;margin-bottom:.6rem;
}
.tickets-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.1rem;margin-bottom:2.2rem;}
.ticket-card{
  background:var(--card);border:1px solid var(--border-hi);padding:1.3rem 1.4rem;text-align:center;
  position:relative;
}
.ticket-card::before,.ticket-card::after{
  content:'';position:absolute;width:18px;height:18px;border-radius:50%;
  background:var(--black);top:50%;transform:translateY(-50%);
}
.ticket-card::before{left:-10px;}
.ticket-card::after{right:-10px;}
.ticket-num{font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.25em;color:var(--gold);text-transform:uppercase;margin-bottom:.4rem;}
.ticket-event{font-family:'Playfair Display',serif;font-style:italic;color:var(--cream);font-size:1rem;line-height:1.2;}
.ticket-when{font-size:.8rem;color:var(--cream-dim);margin:.25rem 0 .9rem;}
.ticket-qr-wrap{padding:.6rem;background:var(--cream);display:inline-block;border:1px solid var(--gold-dim);}
.ticket-qr-wrap canvas{display:block;}
.ticket-id{font-family:'Josefin Sans',sans-serif;font-size:.6rem;letter-spacing:.18em;color:var(--gold);margin-top:.7rem;text-transform:uppercase;}
.ticket-name{font-size:.85rem;color:var(--cream-dim);margin-top:.3rem;}
.email-preview-wrap{margin-top:1.4rem;padding-top:1.4rem;border-top:1px solid var(--border);}
.email-preview{border:1px solid var(--border);overflow:hidden;}
.email-stub-note{color:var(--gold-dim);font-style:italic;}

@media print{
  .site-nav,.site-footer,.email-preview-wrap,#print-btn,.btn-g{display:none!important;}
  body{background:#fff;color:#000;}
  .ticket-card{break-inside:avoid;border:1px solid #000;}
}

/* ── CHECK-IN SCANNER ── */
.scanner-wrap{
  background:var(--card);border:1px solid var(--border);padding:1.2rem;margin-bottom:1.2rem;
}
.scanner-frame{
  position:relative;background:var(--black);
  border:1px solid var(--border);overflow:hidden;
  aspect-ratio:1;max-width:480px;margin:0 auto;
}
.scanner-frame video{width:100%;height:100%;object-fit:cover;display:block;}
.scanner-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;}
.scanner-reticle{
  width:65%;aspect-ratio:1;
  border:2px solid var(--gold);
  box-shadow:0 0 0 9999px rgba(0,0,0,.45);
  position:relative;
}
.scanner-reticle::before,.scanner-reticle::after{
  content:'';position:absolute;width:24px;height:24px;border:3px solid var(--gold-light);
}
.scanner-reticle::before{top:-3px;left:-3px;border-right:none;border-bottom:none;}
.scanner-reticle::after{bottom:-3px;right:-3px;border-left:none;border-top:none;}
.scanner-hint{
  position:absolute;bottom:1rem;left:50%;transform:translateX(-50%);
  font-family:'Josefin Sans',sans-serif;font-size:.6rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--cream-dim);background:rgba(0,0,0,.6);
  padding:.3rem .8rem;
}
.scanner-actions{display:flex;gap:.7rem;justify-content:center;margin-top:1rem;}
.scanner-manual{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border);}
.scanner-manual summary{
  cursor:pointer;font-family:'Josefin Sans',sans-serif;font-size:.55rem;
  letter-spacing:.22em;text-transform:uppercase;color:var(--gold-dim);
}
.scanner-manual summary:hover{color:var(--gold);}

.result-panel{
  border:1px solid var(--border);background:var(--card);
  padding:1.4rem 1.6rem;text-align:center;margin-bottom:1.2rem;
  transition:all .2s;
}
.result-empty{color:var(--muted);font-style:italic;}
.result-icon{
  display:inline-flex;align-items:center;justify-content:center;
  width:54px;height:54px;border-radius:50%;font-size:1.6rem;font-weight:bold;
  margin-bottom:.5rem;
}
.result-title{font-family:'Playfair Display',serif;font-style:italic;font-size:1.4rem;color:var(--cream);margin-bottom:.3rem;}
.result-body{font-size:.92rem;color:var(--cream-dim);}
.result-body code{font-family:'Josefin Sans',sans-serif;background:var(--rich);padding:.15rem .45rem;color:var(--gold);font-size:.82rem;}

.result-success{border-color:rgba(143,196,106,.5);background:rgba(143,196,106,.06);}
.result-success .result-icon{background:rgba(143,196,106,.2);color:#8fc46a;border:1px solid rgba(143,196,106,.5);}
.result-warn{border-color:rgba(232,201,122,.5);background:rgba(232,201,122,.06);}
.result-warn .result-icon{background:rgba(232,201,122,.18);color:#e8c97a;border:1px solid rgba(232,201,122,.5);}
.result-error{border-color:rgba(224,92,92,.5);background:rgba(224,92,92,.06);}
.result-error .result-icon{background:rgba(224,92,92,.18);color:#e05c5c;border:1px solid rgba(224,92,92,.5);}

.result-meta{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border);text-align:left;display:flex;flex-direction:column;gap:.4rem;font-size:.85rem;}
.result-meta div{display:grid;grid-template-columns:90px 1fr;gap:.7rem;}
.result-meta span{color:var(--gold-dim);font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.18em;text-transform:uppercase;align-self:center;}
.result-meta strong{color:var(--cream);font-weight:400;}

.recent-wrap{background:var(--card);border:1px solid var(--border);padding:1.1rem 1.3rem;}
.recent-row{display:flex;justify-content:space-between;align-items:center;padding:.55rem 0;border-bottom:1px solid rgba(201,168,76,.06);}
.recent-row:last-child{border-bottom:none;}

/* ── Image Cropper Modal ── */
.cropper-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,.78);
  z-index:9999;display:flex;align-items:center;justify-content:center;
  padding:1rem;
}
.cropper-modal{
  background:var(--card);border:1px solid var(--border);
  padding:1.1rem 1.1rem 1rem;max-width:380px;width:100%;
  display:flex;flex-direction:column;gap:.85rem;
  box-shadow:0 18px 48px rgba(0,0,0,.5);
}
.cropper-head{display:flex;justify-content:space-between;align-items:flex-start;gap:.6rem;}
.cropper-title{
  font-family:'Cormorant Garamond',serif;font-size:1.35rem;color:var(--cream);
  letter-spacing:.02em;
}
.cropper-hint{
  font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--muted);margin-top:.18rem;
}
.cropper-close{
  background:transparent;border:1px solid var(--border);color:var(--muted);
  width:28px;height:28px;font-size:1.1rem;line-height:1;cursor:pointer;
}
.cropper-close:hover{border-color:var(--gold);color:var(--gold);}
.cropper-stage{
  position:relative;overflow:hidden;background:#000;
  margin:0 auto;cursor:grab;user-select:none;touch-action:none;
}
.cropper-stage:active{cursor:grabbing;}
.cropper-img{
  position:absolute;top:0;left:0;
  max-width:none;max-height:none;
  pointer-events:none;user-select:none;-webkit-user-drag:none;
}
.cropper-frame{
  position:absolute;inset:0;pointer-events:none;
  box-shadow:0 0 0 9999px rgba(0,0,0,.0);
  border:1px solid rgba(201,168,76,.85);
  outline:1px dashed rgba(255,255,255,.22);outline-offset:-1px;
}
.cropper-controls{display:flex;align-items:center;gap:.6rem;}
.cropper-zoom-label{display:flex;align-items:center;gap:.5rem;flex:1;}
.cropper-zoom-label span{
  font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold-dim);
}
.cropper-zoom{flex:1;accent-color:var(--gold);}
.cropper-actions{display:flex;justify-content:flex-end;gap:.5rem;}

/* Profile photo upload size hint */
.profile-photo-upload-hint{
  font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--muted);margin-top:.35rem;text-align:center;
}

/* ── Admin Menu editor ── */
.menu-row{
  background:var(--card);border:1px solid var(--border);
  padding:.95rem 1.1rem;margin-bottom:.7rem;
  display:flex;gap:1rem;flex-wrap:wrap;align-items:flex-end;
}
.menu-row-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:.5rem .9rem;flex:1;min-width:260px;
}
.menu-row-actions{display:flex;gap:.4rem;align-items:flex-end;}
.menu-row-actions .abtn{padding:.45rem .7rem;}

/* ── Admin Site Images editor ── */
.site-img-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;
}
.site-img-card{
  background:var(--card);border:1px solid var(--border);
  padding:.85rem;display:flex;flex-direction:column;gap:.65rem;
}
.site-img-meta .site-img-label{
  font-family:'Cormorant Garamond',serif;font-size:1.15rem;color:var(--cream);font-style:italic;
}
.site-img-meta .site-img-hint{
  font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold-dim);margin-top:.18rem;
}
.site-img-preview{
  background:var(--black);border:1px solid var(--border);
  height:140px;display:flex;align-items:center;justify-content:center;overflow:hidden;
}
.site-img-preview img{width:100%;height:100%;object-fit:cover;display:block;}
.site-img-empty{
  font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--muted);
}
.site-img-actions{display:flex;gap:.4rem;}
.site-img-actions .abtn{flex:1;text-align:center;}

/* ── Branded "Choose File" wrapper for resume upload (and any opt-in file input) ── */
.file-picker{
  display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;
  background:var(--rich);border:1px dashed var(--border-hi);
  padding:.7rem .9rem;
  transition:border-color .2s, background .2s;
}
.file-picker:hover{border-color:var(--gold);background:rgba(201,168,76,.05);}
.file-picker input[type=file]{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;
}
.file-picker-btn{
  font-family:'Josefin Sans',sans-serif;font-size:.6rem;letter-spacing:.18em;
  text-transform:uppercase;background:var(--gold);color:var(--black);
  padding:.55rem 1rem;cursor:pointer;display:inline-block;border:none;
  transition:background .2s;
}
.file-picker:hover .file-picker-btn{background:var(--gold-light, #e8c97a);}
.file-picker-name{
  font-family:var(--chat-font);color:var(--cream-dim);font-size:.88rem;
  font-style:italic;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.file-picker-name.empty{color:var(--muted);}
.file-picker-clear{
  background:transparent;border:1px solid var(--border);color:var(--muted);
  width:24px;height:24px;font-size:.85rem;line-height:1;cursor:pointer;
}
.file-picker-clear:hover{color:#e05c5c;border-color:#e05c5c;}

/* ── Loyalty join page (public sign-up) ── */
.join-card{
  background:var(--card);border:1px solid var(--gold-dim);
  padding:1.6rem 1.5rem;margin-bottom:1.4rem;
}
.join-rewards-card{
  background:rgba(201,168,76,.04);border:1px solid var(--border);
  padding:1.4rem 1.5rem;
}
.join-rewards-list{display:flex;flex-direction:column;gap:.55rem;}
.join-reward-row{
  display:flex;align-items:center;gap:.85rem;
  padding:.55rem .65rem;background:var(--black);
  border-left:2px solid var(--gold-dim);
}
.join-reward-num{
  font-family:'Playfair Display',serif;font-size:1.5rem;color:var(--gold);
  min-width:42px;text-align:right;line-height:1;
}
.join-reward-text{
  font-family:var(--chat-font);color:var(--cream);font-size:.95rem;
}

/* ── Loyalty pass (guest-facing public page) ── */
.pass-page{
  min-height:100vh;background:#0d0b09;
  display:flex;align-items:center;justify-content:center;padding:1.2rem;
}
.pass-frame{width:100%;max-width:420px;}
.pass-card{
  background:linear-gradient(155deg,#1a1410 0%,#0c0907 100%);
  border:1px solid var(--gold-dim);
  padding:1.5rem 1.4rem 1.6rem;
  box-shadow:0 18px 48px rgba(0,0,0,.7);
}
.pass-head{display:flex;flex-direction:column;align-items:center;text-align:center;margin-bottom:.85rem;}
.pass-logo img{height:54px;display:block;}
.pass-eyebrow{
  font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.28em;
  text-transform:uppercase;color:var(--gold);margin-top:.65rem;
}
.pass-name{
  font-family:'Cormorant Garamond',serif;font-size:1.6rem;font-style:italic;color:var(--cream);
  text-align:center;margin-top:.5rem;
}
.pass-email{
  font-family:var(--chat-font);font-size:.85rem;color:var(--cream-dim);
  text-align:center;margin-bottom:1.1rem;
}
.pass-qr-wrap{
  background:#fff;padding:1rem;display:flex;flex-direction:column;align-items:center;gap:.5rem;
  border:1px solid var(--gold);
}
.pass-qr{display:flex;justify-content:center;}
.pass-qr canvas, .pass-qr img{display:block;}
.pass-qr-hint{
  font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.16em;
  text-transform:uppercase;color:#0a0806;
}
.pass-stat{
  display:flex;flex-direction:column;align-items:center;margin:1.2rem 0 .8rem;
}
.pass-stat-num{
  font-family:'Playfair Display',serif;font-size:3rem;color:var(--gold);line-height:1;
}
.pass-stat-lbl{
  font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--cream-dim);margin-top:.25rem;
}
.pass-rewards-banner{
  background:rgba(201,168,76,.14);border:1px solid var(--gold);
  padding:.85rem 1rem;margin-bottom:1rem;
}
.pass-rewards-head{
  font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold);margin-bottom:.4rem;font-weight:700;
}
.pass-rewards-banner ul{margin:0;padding-left:1.1rem;color:var(--cream);font-size:.92rem;line-height:1.5;}
.pass-rewards-banner ul strong{color:var(--gold);}
.pass-rewards-hint{margin-top:.5rem;color:var(--cream-dim);font-size:.78rem;font-style:italic;}
.pass-progress{margin-bottom:1.2rem;}
.pass-progress-bar{
  height:6px;background:rgba(201,168,76,.12);border:1px solid var(--gold-dim);
  margin-bottom:.55rem;
}
.pass-progress-fill{
  height:100%;background:linear-gradient(90deg,#c9a84c,#e8c97a);transition:width .3s ease;
}
.pass-progress-text{
  font-family:var(--chat-font);font-size:.88rem;color:var(--cream);text-align:center;
}
/* Save to my phone — single neutral CTA */
.pass-save{margin-bottom:.85rem;}
.pass-save-btn{
  width:100%;background:linear-gradient(135deg,rgba(201,168,76,.18),rgba(201,168,76,.06));
  color:var(--cream);border:1px solid var(--gold);
  padding:1rem 1.1rem;cursor:pointer;
  display:flex;align-items:center;gap:.85rem;
  text-align:left;transition:all .15s;
}
.pass-save-btn:hover{background:linear-gradient(135deg,rgba(201,168,76,.26),rgba(201,168,76,.1));}
.pass-save-icon{font-size:1.7rem;line-height:1;flex-shrink:0;}
.pass-save-title{
  display:block;
  font-family:'Josefin Sans',sans-serif;font-size:.65rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold);font-weight:700;
}
.pass-save-sub{
  display:block;margin-top:.25rem;
  font-family:var(--chat-font);font-size:.85rem;color:var(--cream-dim);
  text-transform:none;letter-spacing:0;line-height:1.35;
}

/* Save instructions modal */
.pass-modal-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,.78);z-index:9999;
  display:flex;align-items:center;justify-content:center;padding:1rem;
}
.pass-modal{
  background:var(--card);border:1px solid var(--gold);
  padding:1.6rem 1.4rem 1.3rem;max-width:420px;width:100%;
  position:relative;box-shadow:0 18px 48px rgba(0,0,0,.6);
}
.pass-modal h3{
  font-family:'Playfair Display',serif;font-style:italic;color:var(--cream);
  font-size:1.3rem;margin-bottom:1rem;padding-right:1.5rem;
}
.pass-modal-close{
  position:absolute;top:.7rem;right:.85rem;
  background:transparent;border:1px solid var(--border);color:var(--muted);
  width:30px;height:30px;font-size:1.15rem;line-height:1;cursor:pointer;
}
.pass-modal-close:hover{border-color:var(--gold);color:var(--gold);}
.pass-modal-steps{
  list-style:none;padding:0;margin:0 0 1rem;
  display:flex;flex-direction:column;gap:.7rem;
}
.pass-modal-steps li{
  display:flex;gap:.7rem;align-items:flex-start;
  font-family:var(--chat-font);color:var(--cream);font-size:.95rem;line-height:1.45;
}
.pass-modal-num{
  flex-shrink:0;width:28px;height:28px;border-radius:50%;
  background:var(--gold);color:var(--black);
  display:flex;align-items:center;justify-content:center;
  font-family:'Josefin Sans',sans-serif;font-weight:700;font-size:.85rem;
}
.pass-modal-icon{
  display:inline-flex;align-items:center;justify-content:center;
  width:30px;height:30px;border:1px solid var(--gold-dim);
  vertical-align:middle;margin:0 .15rem;color:var(--gold);
  border-radius:4px;
}
.pass-modal-foot{
  font-family:var(--chat-font);font-size:.82rem;color:var(--cream-dim);
  font-style:italic;line-height:1.5;
  border-top:1px solid var(--border);padding-top:.75rem;
}
.pass-foot{text-align:center;margin-top:.5rem;}
.pass-foot a{color:var(--gold-dim);font-size:.82rem;text-decoration:none;}
.pass-foot a:hover{color:var(--gold);}
.pass-error{
  text-align:center;padding:2rem 1.5rem;background:var(--card);border:1px solid var(--border);
}
.pass-error h2{font-family:'Playfair Display',serif;color:var(--cream);font-size:1.25rem;margin:.85rem 0 .55rem;}
.pass-error p{color:var(--cream-dim);font-size:.92rem;margin-bottom:1rem;}

/* ── Loyalty scanner result + reward toast ── */
.scan-result{
  background:var(--card);border:1px solid var(--border);
  padding:1rem 1.1rem;
}
.scan-result.ok{border-color:var(--gold);}
.scan-result.err{border-color:#e05c5c;}
.scan-result.warn{border-color:#e8c97a;}
.scan-result-head{
  font-family:'Cormorant Garamond',serif;font-size:1.2rem;font-style:italic;color:var(--cream);
  margin-bottom:.4rem;
}
.scan-result.ok .scan-result-head{color:var(--gold);}
.scan-result.err .scan-result-head{color:#f3b9b9;}
.scan-result-body{font-family:var(--chat-font);color:var(--cream-dim);font-size:.92rem;line-height:1.5;}
.scan-reward-banner{
  background:rgba(201,168,76,.14);border:1px solid var(--gold);
  color:var(--gold);padding:.55rem .75rem;margin:.55rem 0;
  font-family:var(--chat-font);font-size:.92rem;
}
.scan-log-line{padding:.3rem .5rem;border-left:2px solid var(--border);}
.scan-log-line.log-ok{border-left-color:var(--gold-dim);color:var(--cream-dim);}
.scan-log-line.log-err{border-left-color:#e05c5c;color:#f3b9b9;}

.reward-toast{
  position:fixed;bottom:1.2rem;left:50%;transform:translate(-50%,1rem);
  background:linear-gradient(135deg,#3a3527,#1f1a14);border:1px solid var(--gold);
  padding:1rem 1.2rem;max-width:380px;width:calc(100% - 2rem);
  font-family:var(--chat-font);color:var(--cream);
  opacity:0;pointer-events:none;transition:opacity .25s, transform .25s;
  box-shadow:0 14px 36px rgba(0,0,0,.65);z-index:9999;
}
.reward-toast.show{opacity:1;transform:translate(-50%,0);}
.reward-toast-head{
  font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:.3rem;
}
.reward-toast-body{font-size:.92rem;line-height:1.5;}

/* ── Admin Loyalty panel ── */
.loy-visit-badge{
  display:inline-block;background:rgba(201,168,76,.14);border:1px solid var(--gold-dim);
  color:var(--gold);font-family:'Josefin Sans',sans-serif;font-weight:700;
  padding:.2rem .55rem;font-size:.7rem;
}
.loy-reward-pill{
  display:inline-block;background:var(--gold);color:var(--black);
  padding:.1rem .4rem;font-size:.55rem;letter-spacing:.1em;font-weight:700;
  margin-left:.4rem;font-family:'Josefin Sans',sans-serif;
}
.loy-reward-banner{
  background:rgba(201,168,76,.14);border:1px solid var(--gold);
  padding:.95rem 1.1rem;margin-bottom:1.2rem;
}
.loy-reward-banner-head{
  font-family:'Josefin Sans',sans-serif;font-size:.6rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:.55rem;
}
.loy-reward-banner ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.45rem;}
.loy-reward-banner li{
  display:flex;justify-content:space-between;align-items:center;gap:.6rem;flex-wrap:wrap;
  color:var(--cream);font-size:.92rem;
}
.loy-reward-banner li strong{color:var(--gold);}
.loy-profile-card{
  background:var(--card);border:1px solid var(--border);
  padding:1.4rem 1.5rem;
}
.loy-profile-head{
  display:flex;justify-content:space-between;align-items:flex-start;
  gap:1rem;flex-wrap:wrap;margin-bottom:1rem;
}
.loy-bigvisit{
  background:linear-gradient(135deg,rgba(201,168,76,.18),rgba(201,168,76,.06));
  border:1px solid var(--gold-dim);padding:.6rem 1rem;text-align:center;
}
.loy-bigvisit-num{font-family:'Playfair Display',serif;font-size:2.2rem;color:var(--gold);line-height:1;}
.loy-bigvisit-lbl{font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.18em;text-transform:uppercase;color:var(--cream-dim);margin-top:.25rem;}
.loy-progress-block{margin:1rem 0;}
.loy-progress-bar{height:6px;background:rgba(201,168,76,.12);border:1px solid var(--gold-dim);}
.loy-progress-fill{height:100%;background:linear-gradient(90deg,#c9a84c,#e8c97a);transition:width .3s ease;}
.loy-progress-text{font-family:var(--chat-font);color:var(--cream);font-size:.9rem;margin-top:.55rem;text-align:center;}
.loy-profile-meta{
  display:grid;grid-template-columns:1fr 1fr 1fr;gap:.85rem;
  background:rgba(0,0,0,.2);padding:.85rem 1rem;
  font-family:var(--chat-font);
}
.loy-profile-meta > div{display:flex;flex-direction:column;gap:.2rem;}
.loy-meta-label{font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-dim);}
.loy-visit-log{display:flex;flex-direction:column;gap:.35rem;}
.loy-visit-line{
  display:flex;gap:.85rem;align-items:baseline;
  padding:.4rem .55rem;border-left:2px solid var(--gold-dim);
  font-family:var(--chat-font);
}
.loy-visit-stamp{
  font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--gold-dim);min-width:90px;
}
.loy-visit-action{color:var(--cream-dim);font-size:.88rem;}
@media (max-width:680px){
  .loy-profile-meta{grid-template-columns:1fr;}
}

/* ── Floor Plan visual editor ── */
:root{
  --fp-pill-r: 9999px;
  --fp-square-r: 4px;
}
.fp-canvas-wrap{
  display:flex;flex-direction:column;gap:.7rem;
  background:var(--card);border:1px solid var(--border);
  padding:.85rem;
}
.fp-canvas-toolbar{
  display:flex;justify-content:space-between;align-items:center;
  flex-wrap:wrap;gap:.6rem;
}
.fp-canvas-hint{
  font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--gold-dim);
}
.fp-canvas-stage{
  position:relative;width:100%;
  /* 16:10 ratio room — gives wider tables more visual breathing room */
  aspect-ratio: 16 / 10;
  min-height:340px;
  background:
    linear-gradient(0deg, rgba(201,168,76,.04) 1px, transparent 1px) 0 0 / 100% 6.66%,
    linear-gradient(90deg, rgba(201,168,76,.04) 1px, transparent 1px) 0 0 / 6.66% 100%,
    radial-gradient(ellipse at 50% 30%, rgba(201,168,76,.04), transparent 70%),
    var(--black);
  border:1px solid var(--gold-dim);
  overflow:hidden;
  user-select:none;
}
.fp-table{
  position:absolute;
  background:var(--rich);
  border:1.5px solid var(--gold-dim);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  cursor:grab;
  transition:border-color .12s, box-shadow .12s;
  box-shadow:0 2px 6px rgba(0,0,0,.35);
  font-family:var(--chat-font);
  text-align:center;
  padding:.2rem;
  box-sizing:border-box;
  touch-action:none;
  overflow:hidden;
}
.fp-table:hover{border-color:var(--gold);}
.fp-table.fp-dragging{cursor:grabbing;border-color:var(--gold);box-shadow:0 6px 18px rgba(0,0,0,.55);}
.fp-table.fp-selected{
  border-color:var(--gold);
  box-shadow:0 0 0 2px rgba(201,168,76,.35), 0 6px 18px rgba(0,0,0,.55);
}

/* Per-kind shape + background tint
   - Booths render as crisp squares (the stored width drives both dimensions)
   - Tables render as perfect circles (aspect-ratio:1 forces a pixel-square box,
     border-radius:50% then makes a circle regardless of canvas aspect ratio)
   - Bar keeps its long pill shape via stored w/h */
.fp-table-booth{
  background:linear-gradient(135deg,#3a3527,#2a2418);
  border-radius:var(--fp-square-r);
  aspect-ratio:1 / 1;
  height:auto !important; /* width determines size; height auto-derives */
}
.fp-table-table{
  border-radius:50%;
  aspect-ratio:1 / 1;
  height:auto !important;
}
.fp-table-bar{
  background:linear-gradient(135deg,#1f1814,#16110d);
  border-radius:50%;
  aspect-ratio:1 / 1;
  height:auto !important;
}
/* Walk-in only seats — visually distinct from reservable ones */
.fp-table.fp-walkin{
  border-style:dashed;
  border-color:rgba(201,168,76,.4);
  opacity:.78;
  background:linear-gradient(135deg,#16110d,#0e0a08);
}
.fp-table.fp-walkin .fp-table-label{color:var(--cream-dim);}
.fp-table.fp-walkin .fp-table-cap{color:rgba(201,168,76,.55);}
.fp-table.fp-walkin:hover{opacity:1;border-color:var(--gold-dim);}

.fp-table-label{
  font-family:'Cormorant Garamond',serif;font-style:italic;
  color:var(--cream);font-size:1rem;line-height:1.1;
}
.fp-table-cap{
  font-family:'Josefin Sans',sans-serif;font-size:.45rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--gold-dim);margin-top:.15rem;
}
/* Hide tiny captions on very small tables to keep them readable */
.fp-table[style*="width: 9%"] .fp-table-cap,
.fp-table[style*="width: 10%"] .fp-table-cap{display:none;}

/* Bar stools are tiny by design — compact label, no caption visible */
.fp-table-bar .fp-table-label{
  font-family:'Josefin Sans',sans-serif;font-style:normal;
  font-size:.7rem;font-weight:700;color:var(--gold);letter-spacing:.04em;
}
.fp-table-bar .fp-table-cap{display:none;}

/* Edit panel — slides in below the canvas on narrow screens, beside on wide */
.fp-edit-panel{
  background:var(--card);border:1px solid var(--gold-dim);
  padding:1rem 1.1rem;margin-top:1rem;
  max-width:520px;
}
.fp-edit-head{
  display:flex;justify-content:space-between;align-items:center;
  margin-bottom:.85rem;padding-bottom:.6rem;border-bottom:1px solid var(--border);
}
.fp-edit-title{
  font-family:'Cormorant Garamond',serif;font-size:1.25rem;font-style:italic;color:var(--gold);
}
.fp-edit-close{
  background:transparent;border:1px solid var(--border);color:var(--muted);
  width:26px;height:26px;font-size:1.05rem;line-height:1;cursor:pointer;
}
.fp-edit-close:hover{border-color:var(--gold);color:var(--gold);}
.fp-edit-body{display:flex;flex-direction:column;gap:.6rem;}
.fp-edit-row{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;}
.fp-edit-actions{display:flex;justify-content:space-between;gap:.5rem;margin-top:.4rem;}
.fp-edit-toggle{
  display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.5rem .65rem;
  background:rgba(201,168,76,.05);border:1px solid var(--border);
  padding:.55rem .75rem;cursor:pointer;
}
.fp-edit-toggle input[type=checkbox]{accent-color:var(--gold);width:18px;height:18px;cursor:pointer;}
.fp-edit-toggle-label{
  font-family:'Josefin Sans',sans-serif;font-size:.6rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--cream);
}
.fp-edit-toggle-hint{
  grid-column:2;color:var(--cream-dim);font-size:.78rem;font-style:italic;
}
.fp-list-reservable{
  display:flex;align-items:center;gap:.5rem;cursor:pointer;
  font-family:var(--chat-font);font-size:.85rem;color:var(--cream-dim);
}
.fp-list-reservable input[type=checkbox]{accent-color:var(--gold);width:16px;height:16px;cursor:pointer;}
.fp-list-reservable span{font-family:var(--chat-font);}

/* ── Staff Floor view (read-only canvas, drag-to-reassign) ── */
.fp-canvas-readonly{position:relative;}
/* Read-only tables can be clicked + dragged but not visually edited (no resize handles, etc.) */
.fp-table-readonly{cursor:pointer;}
.fp-table-readonly:hover{
  border-color:var(--gold);
  box-shadow:0 6px 14px rgba(0,0,0,.45);
}
/* Occupied = a booking exists tonight on this table (any time slot) */
.fp-table.fp-occupied{
  background:linear-gradient(135deg,rgba(201,168,76,.32),rgba(201,168,76,.18));
  border-color:var(--gold);
  box-shadow:0 0 0 1px rgba(201,168,76,.35), 0 4px 12px rgba(0,0,0,.4);
}
.fp-table.fp-occupied.fp-table-bar{
  background:linear-gradient(135deg,rgba(201,168,76,.42),rgba(201,168,76,.22));
}

/* Stacked bookings inside an occupied table */
.fp-bookings{
  display:flex;flex-direction:column;gap:.12rem;
  width:100%;padding:0 .15rem;
  font-family:var(--chat-font);
}
.fp-booking-line{
  font-size:.65rem;line-height:1.15;color:var(--cream);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.fp-booking-time{
  color:var(--gold);font-family:'Josefin Sans',sans-serif;
  font-size:.5rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700;
}
.fp-booking-more{
  color:var(--gold-dim);font-style:italic;font-size:.6rem;text-align:center;
}
/* On bar stools, the booking shows the guest first name only */
.fp-table-bar.fp-occupied .fp-table-label{display:none;}
.fp-table-bar .fp-bookings{align-items:center;justify-content:center;height:100%;}
.fp-table-bar .fp-booking-line{font-size:.55rem;text-align:center;}
.fp-table-bar .fp-booking-time{display:none;}

/* Stat tiles in the floor header */
.floor-stat{
  background:var(--card);border:1px solid var(--border);
  padding:.55rem .85rem;display:flex;flex-direction:column;align-items:center;gap:.15rem;
  min-width:78px;
}
.floor-stat-num{
  font-family:'Playfair Display',serif;font-size:1.4rem;color:var(--gold);line-height:1;
}
.floor-stat-lbl{
  font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--cream-dim);
}
.floor-stat.warn{border-color:#e05c5c;}
.floor-stat.warn .floor-stat-num{color:#ffb9b9;}

/* Toast inside the canvas wrap for reassign feedback */
.fp-floor-toast{
  position:absolute;bottom:.85rem;left:50%;transform:translate(-50%, .5rem);
  padding:.55rem 1rem;background:var(--card);border:1px solid var(--gold);
  font-family:var(--chat-font);font-size:.88rem;color:var(--cream);
  opacity:0;pointer-events:none;transition:opacity .2s, transform .2s;
  box-shadow:0 8px 22px rgba(0,0,0,.55);
  z-index:30;max-width:80%;text-align:center;
}
.fp-floor-toast.show{opacity:1;transform:translate(-50%, 0);}
.fp-floor-toast.err{border-color:#e05c5c;color:#f3b9b9;}
.fp-floor-toast.ok{border-color:var(--gold);color:var(--gold);}

/* Staff click popover (reuses .move-table-popover styles + extras) */
.staff-floor-popover{min-width:300px;max-width:360px;}
.staff-floor-bookings{display:flex;flex-direction:column;}
.staff-floor-booking{
  padding:.65rem .85rem;border-bottom:1px solid rgba(201,168,76,.06);
  display:flex;flex-direction:column;gap:.3rem;
}
.staff-floor-booking:last-child{border-bottom:none;}
.staff-floor-booking-head{
  display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap;
}
.staff-floor-booking-time{
  font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--gold);font-weight:700;
}
.staff-floor-booking-name{
  font-family:'Cormorant Garamond',serif;font-size:1.05rem;font-style:italic;color:var(--cream);
}
.staff-floor-booking-party{
  font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--gold-dim);
}
.staff-floor-booking-meta{
  font-family:var(--chat-font);font-size:.8rem;color:var(--cream-dim);
}
.staff-floor-booking-notes{font-style:italic;color:var(--cream);}
.staff-floor-booking .abtn{align-self:flex-start;margin-top:.2rem;}

/* ── Reservation capacity / table-assignment badges + banner (admin) ── */
.cap-badge{
  display:inline-block;
  font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.14em;
  text-transform:uppercase;padding:.18rem .45rem;line-height:1.1;
  border:1px solid var(--border);
}
.cap-badge.cap-over{
  color:#fff;background:rgba(224,92,92,.55);border-color:#e05c5c;
  font-weight:700;
}

/* Table column on the admin reservations table */
.res-table-cell{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;}
.res-table-pill{
  display:inline-block;background:var(--rich);border:1px solid var(--gold-dim);
  color:var(--gold);font-family:'Josefin Sans',sans-serif;font-size:.6rem;
  letter-spacing:.14em;text-transform:uppercase;padding:.22rem .55rem;
}
tr.res-row-unassigned td{background:rgba(224,92,92,.08);}
tr.res-row-unassigned:hover td{background:rgba(224,92,92,.14);}

/* Move-table popover */
.move-table-popover{
  position:absolute;z-index:140;background:var(--card);
  border:1px solid var(--gold-dim);min-width:260px;max-width:320px;
  box-shadow:0 14px 36px rgba(0,0,0,.55);
  font-family:var(--chat-font);
}
.move-table-head{
  display:flex;justify-content:space-between;align-items:center;
  padding:.7rem .85rem;border-bottom:1px solid var(--border);
}
.move-table-title{
  font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold);
}
.move-table-close{
  background:transparent;border:1px solid var(--border);color:var(--muted);
  width:24px;height:24px;font-size:1rem;line-height:1;cursor:pointer;
}
.move-table-close:hover{border-color:var(--gold);color:var(--gold);}
.move-table-meta{
  padding:.55rem .85rem;color:var(--cream-dim);font-size:.82rem;
  border-bottom:1px solid var(--border);
}
.move-table-list{display:flex;flex-direction:column;}
.move-table-empty{padding:1rem;color:var(--muted);font-style:italic;text-align:center;font-size:.85rem;}
.move-table-opt{
  display:flex;justify-content:space-between;align-items:center;
  padding:.55rem .85rem;background:transparent;border:none;
  border-bottom:1px solid rgba(201,168,76,.06);cursor:pointer;width:100%;text-align:left;
  transition:background .15s;
}
.move-table-opt:hover{background:rgba(201,168,76,.08);}
.move-table-opt-label{
  font-family:'Cormorant Garamond',serif;font-size:1rem;color:var(--cream);font-style:italic;
}
.move-table-opt-meta{
  font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--gold-dim);
}
.move-table-clear{margin:.5rem .85rem .7rem;}
.move-table-walkin-toggle{
  display:flex;align-items:center;gap:.5rem;cursor:pointer;
  padding:.45rem .85rem;border-bottom:1px solid var(--border);
  font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--gold-dim);
}
.move-table-walkin-toggle input[type=checkbox]{accent-color:var(--gold);width:14px;height:14px;}
.move-table-opt-walkin .move-table-opt-meta{color:#e8c97a;font-style:italic;}

.cap-banner-warn{
  background:rgba(224,92,92,.14);border:1px solid #e05c5c;
  padding:.85rem 1rem;margin-bottom:1rem;
  font-family:var(--chat-font);
}
.cap-banner-head{
  font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.18em;
  text-transform:uppercase;color:#ffb9b9;margin-bottom:.4rem;font-weight:700;
}
.cap-banner-warn ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.3rem;}
.cap-banner-warn li{color:#f3b9b9;font-size:.9rem;line-height:1.4;}

/* ── Time-off decision form + note ── */
.to-decision{
  margin-top:.4rem;padding:.45rem .6rem;
  background:rgba(0,0,0,.22);border-left:2px solid var(--gold-dim);
  font-family:var(--chat-font);
}
.to-decision-note{color:var(--cream);font-style:italic;font-size:.88rem;line-height:1.4;}
.to-decision-by{
  font-family:'Josefin Sans',sans-serif;font-size:.5rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--gold-dim);margin-top:.25rem;
}
.to-form-row td{padding:0;background:rgba(201,168,76,.04);}
.to-form{
  padding:.85rem 1rem;border-top:1px solid var(--border);
  display:flex;flex-direction:column;gap:.5rem;
}
.to-form-label{
  font-family:'Josefin Sans',sans-serif;font-size:.55rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold-dim);
}
.to-form-note{
  width:100%;min-height:64px;resize:vertical;
  background:var(--black);border:1px solid var(--border);
  padding:.55rem .65rem;color:var(--cream);font-family:var(--chat-font);
  font-size:.92rem;line-height:1.4;
}
.to-form-note:focus{border-color:var(--gold);outline:none;}
.to-form-actions{display:flex;justify-content:flex-end;gap:.5rem;flex-wrap:wrap;}

/* Inline image inserted in rich-text body */
.rt-area img{max-width:100%;height:auto;display:block;margin:.4rem 0;cursor:pointer;}
.rt-area img.rt-img-selected{outline:2px solid var(--gold);outline-offset:2px;}

/* Floating image resize/align popover */
.rt-img-popover{
  position:absolute;z-index:9998;background:var(--card);
  border:1px solid var(--gold-dim);padding:.5rem .55rem;
  display:flex;flex-direction:column;gap:.3rem;
  box-shadow:0 14px 36px rgba(0,0,0,.55);
  font-family:'Josefin Sans',sans-serif;
}
.rt-img-row{display:flex;align-items:center;gap:.25rem;}
.rt-img-label{
  font-size:.5rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--gold-dim);min-width:36px;
}
.rt-img-btn{
  background:var(--rich);border:1px solid var(--border);color:var(--cream-dim);
  padding:.32rem .5rem;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;
  font-family:'Josefin Sans',sans-serif;cursor:pointer;line-height:1;
}
.rt-img-btn:hover{border-color:var(--gold-dim);color:var(--gold);}
.rt-img-btn.active{background:rgba(201,168,76,.18);border-color:var(--gold);color:var(--gold);}
.rt-img-btn.danger{color:#e09090;border-color:rgba(224,144,144,.35);}
.rt-img-btn.danger:hover{background:rgba(224,90,90,.14);color:#ff9c9c;border-color:#e05c5c;}
