*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

    :root {
      --black:   #080808;
      --dark:    #0f0f0f;
      --surface: #161616;
      --border:  rgba(255,255,255,0.07);
      --text:    #f0ede8;
      --muted:   #a0a09a;
      --gold:    #c9a96e;
      --gold-d:  #7a6035;
      --nav-h:   70px;
      --ease:    cubic-bezier(0.22,1,0.36,1);
      --ff-d:    'Cormorant Garamond', Georgia, serif;
      --ff-b:    'Jost', sans-serif;
      --surface2: #1c1c1c;
      --border2:  rgba(255,255,255,0.12);
      --gold-glow:rgba(201,169,110,0.15);
    }
    html.pbc-admin-bar-active {
      --nav-h: 110px;
    }

    html {
      scroll-behavior: smooth;
      overscroll-behavior: none;
      -webkit-text-size-adjust: 100%;
      overflow-x: hidden;
    }
    body {
      background: var(--black);
      color: var(--text);
      font-family: var(--ff-b);
      font-weight: 300;
      overflow-x: hidden;
      overscroll-behavior: none;
      -webkit-font-smoothing: antialiased;
      -webkit-tap-highlight-color: transparent;
    }
    /* iOS scroll lock — preserves position unlike overflow:hidden */
    body.pbc-locked {
      position: fixed;
      width: 100%;
      overflow-y: scroll;
    }
    /* Modals: trap touch events so they don't bleed to background */
    #pin-modal, #gv-modal, #lb,
    #gal-picker, .mob-menu, #edit-login-overlay,
    #pbc-confirm-modal {
      touch-action: none;
      overscroll-behavior: contain;
    }
    /* Admin modal needs vertical pan so sidebar/content can scroll on mobile */
    #admin-modal {
      touch-action: pan-y;
      overscroll-behavior: contain;
    }
    #gv-modal {
      touch-action: pan-y;
      -webkit-overflow-scrolling: touch;
    }
    .gep-body, .admin-main, .admin-sidebar {
      -webkit-overflow-scrolling: touch;
      overscroll-behavior: contain;
      touch-action: pan-y;
    }
    img { display: block; max-width: 100%; }
    a { color: inherit; text-decoration: none; }
    button { cursor: pointer; border: none; background: none; font: inherit; color: inherit; }

    ::-webkit-scrollbar { width: 3px; }
    ::-webkit-scrollbar-track { background: var(--black); }
    ::-webkit-scrollbar-thumb { background: var(--gold-d); }

    /* ── NAV ── */
    #nav {
      position: fixed; top: 0; left: 0; right: 0; z-index: 900;
      height: var(--nav-h);
      display: flex; align-items: center; justify-content: space-between;
      padding: 0 36px;
      transition: background .4s, border-color .4s;
      border-bottom: 1px solid transparent;
    }
    #nav.scrolled {
      background: rgba(8,8,8,.94);
      backdrop-filter: blur(20px);
      -webkit-backdrop-filter: blur(20px);
      border-color: var(--border);
    }
    .nav-brand {
      font-family: var(--ff-d);
      font-size: 1.1rem;
      font-weight: 400;
      letter-spacing: .14em;
      text-transform: uppercase;
      cursor: pointer;
    }
    .nav-links { display: flex; gap: 36px; list-style: none; align-items: center; }
    .nav-links button {
      font-size: .68rem;
      font-weight: 300;
      letter-spacing: .22em;
      text-transform: uppercase;
      color: rgba(240,237,232,.55);
      transition: color .25s;
    }
    .nav-links button:hover, .nav-links button.active { color: var(--text); }

    /* hamburger */
    .hbg { display: none; flex-direction: column; gap: 5px; padding: 6px; }
    .hbg span { width: 22px; height: 1px; background: var(--text); transition: all .3s; }
    .hbg.open span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
    .hbg.open span:nth-child(2) { opacity: 0; }
    .hbg.open span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

    .mob-menu {
      display: none; position: fixed; inset: 0; z-index: 899;
      background: rgba(8,8,8,.97); backdrop-filter: blur(20px);
      flex-direction: column; align-items: center; justify-content: center; gap: 36px;
    }
    .mob-menu.open { display: flex; }
    .mob-menu button {
      font-family: var(--ff-d); font-size: 2.4rem; font-weight: 300;
      letter-spacing: .06em; color: var(--text); opacity: .8; transition: opacity .2s, color .2s;
    }
    .mob-menu button:hover { opacity: 1; color: var(--gold); }

    /* ── PAGE SYSTEM ── */
    .page {
      display: none; min-height: 100vh;
      opacity: 0;
      transition: opacity .35s ease;
    }
    .page.active { display: block; }
    .page.visible { opacity: 1; }

    /* ── REVEAL ── */
    .rv { opacity: 0; transform: translateY(32px); transition: opacity .85s var(--ease), transform .85s var(--ease); }
    .rv.in { opacity: 1; transform: translateY(0); }

    /* ── KEYFRAMES ── */
    @keyframes fadeUp { to { opacity:1; transform:translateY(0); } }
    @keyframes fadeIn { to { opacity:1; } }
    @keyframes pulse  { 0%,100%{opacity:.35} 50%{opacity:1} }
    @keyframes slideIn { from{transform:translateX(100%)} to{transform:translateX(0)} }

    /* ══════════════════════════════
       HOME PAGE
    ══════════════════════════════ */
    #page-home { background: var(--black); }

    /* hero slideshow */
    .hero {
      position: relative; height: 100vh; height: 100dvh; min-height: 600px;
      overflow: hidden; display: flex; align-items: flex-end; padding-bottom: 90px;
    }
    .hero-slide {
      position: absolute; inset: 0;
      background-size: cover; background-position: center;
      opacity: 0; transition: opacity 1.2s ease;
      transform: scale(1.04);
    }
    .hero-slide.active { opacity: 1; transform: scale(1); transition: opacity 1.2s ease, transform 8s ease-out; }
    .hero-grad {
      position: absolute; inset: 0;
      background: linear-gradient(to bottom, rgba(8,8,8,.1) 0%, rgba(8,8,8,.05) 40%, rgba(8,8,8,.6) 75%, rgba(8,8,8,.95) 100%);
    }
    .hero-cnt {
      position: relative; z-index: 2; padding: 0 64px; max-width: 820px;
    }
    .hero-tag {
      font-size: .68rem; letter-spacing: .3em; text-transform: uppercase; color: var(--gold);
      margin-bottom: 18px; opacity:0; transform:translateY(18px);
      animation: fadeUp .9s .3s var(--ease) forwards;
    }
    .hero-h1 {
      font-family: var(--ff-d); font-size: clamp(3.4rem,7.5vw,6.4rem);
      font-weight: 300; line-height: 1.04; letter-spacing: .025em;
      margin-bottom: 22px; opacity:0; transform:translateY(28px);
      animation: fadeUp 1s .5s var(--ease) forwards;
    }
    .hero-h1 em { font-style: italic; color: rgba(240,237,232,.65); }
    .hero-sub {
      font-size: .92rem; font-weight: 300; letter-spacing: .07em;
      color: rgba(240,237,232,.65); margin-bottom: 40px;
      opacity:0; transform:translateY(18px); animation: fadeUp .9s .7s var(--ease) forwards;
    }
    .hero-btns {
      display: flex; gap: 16px; flex-wrap: wrap;
      opacity:0; transform:translateY(18px); animation: fadeUp .9s .9s var(--ease) forwards;
    }
    .btn-outline {
      display: inline-flex; align-items: center; gap: 12px;
      font-size: .72rem; font-weight: 400; letter-spacing: .2em; text-transform: uppercase;
      border: 1px solid rgba(240,237,232,.3); padding: 15px 30px;
      transition: border-color .3s, background .3s; cursor: pointer;
    }
    .btn-outline:hover { border-color: var(--gold); background: rgba(201,169,110,.07); }
    .btn-fill {
      display: inline-flex; align-items: center; gap: 12px;
      font-size: .72rem; font-weight: 500; letter-spacing: .2em; text-transform: uppercase;
      background: var(--gold); color: var(--black); padding: 15px 30px;
      transition: background .25s; cursor: pointer;
    }
    .btn-fill:hover { background: #d4b47a; }

    .hero-scroll-ind {
      position: absolute; bottom: 36px; right: 64px; z-index: 3;
      display: flex; flex-direction: column; align-items: center; gap: 10px;
      opacity:0; animation: fadeIn 1s 1.4s forwards;
    }
    .hero-scroll-ind span {
      font-size: .6rem; letter-spacing: .26em; text-transform: uppercase;
      color: rgba(240,237,232,.35); writing-mode: vertical-rl;
    }
    .scroll-line {
      width: 1px; height: 50px;
      background: linear-gradient(to bottom, var(--gold), transparent);
      animation: pulse 2s ease-in-out infinite;
    }

    /* slide dots */
    .slide-dots {
      position: absolute; bottom: 44px; left: 64px; z-index: 3;
      display: flex; gap: 8px;
    }
    .dot {
      width: 20px; height: 2px; background: rgba(240,237,232,.25);
      cursor: pointer; transition: background .3s, width .3s;
    }
    .dot.active { background: var(--gold); width: 32px; }

    /* home about strip */
    .home-about {
      display: grid; grid-template-columns: 1fr 1px 1fr 1px 1fr 1px 1fr;
      border-top: 1px solid var(--border);
    }
    .home-stat {
      padding: 44px 36px; text-align: center;
    }
    .home-stat-n {
      font-family: var(--ff-d); font-size: 2.8rem; font-weight: 300;
      color: var(--gold); letter-spacing: .04em; line-height: 1;
    }
    .home-stat-l {
      font-size: .68rem; letter-spacing: .2em; text-transform: uppercase;
      color: var(--muted); margin-top: 8px;
    }
    .stat-div { background: var(--border); }

    /* home featured */
    .home-featured { padding: 90px 64px; }
    .sec-tag { font-size: .68rem; letter-spacing: .3em; text-transform: uppercase; color: var(--gold); margin-bottom: 14px; }
    .sec-h2 {
      font-family: var(--ff-d); font-size: clamp(2rem,3.8vw,3rem);
      font-weight: 300; line-height: 1.15; letter-spacing: .025em; margin-bottom: 48px;
    }
    .sec-h2 em { font-style: italic; color: rgba(240,237,232,.55); }

    .feat-strip {
      display: grid; grid-template-columns: repeat(6, 1fr); gap: 4px;
    }
    .feat-img {
      aspect-ratio: 2/3; overflow: hidden; cursor: pointer;
    }
    .feat-img img {
      width:100%; height:100%; object-fit:cover;
      transition: transform .7s var(--ease), filter .4s;
      filter: brightness(.88) saturate(.85);
    }
    .feat-img:hover img { transform: scale(1.06); filter: brightness(1) saturate(1); }

    .feat-cta { text-align: center; margin-top: 48px; }

    /* ── INSTAGRAM GRID ── */
    .ig-section { padding: 80px 64px; }
    @media(max-width:768px){ .ig-section { padding: 60px 22px; } }
    .ig-section .sec-tag { color:var(--gold); }
    .ig-section .sec-h2 { margin-bottom:.5rem; }
    .ig-meta { font-size:.82rem; color:var(--muted); margin-bottom:2.5rem; line-height:1.7; }
    .ig-meta a { color:var(--gold); text-decoration:none; }
    .ig-meta a:hover { text-decoration:underline; }
    .ig-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:6px; }
    @media(max-width:640px){ .ig-grid { grid-template-columns:repeat(2,1fr); } }
    .ig-cell { position:relative; aspect-ratio:1; overflow:hidden; cursor:pointer; }
    .ig-cell img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s var(--ease),filter .3s; filter:brightness(.85) saturate(.85); }
    .ig-cell:hover img { transform:scale(1.07); filter:brightness(1) saturate(1); }
    .ig-cell-overlay { position:absolute; inset:0; background:rgba(8,8,8,.5); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.5rem; opacity:0; transition:opacity .25s; }
    .ig-cell:hover .ig-cell-overlay { opacity:1; }
    .ig-cell-cap { font-size:.72rem; color:#fff; text-align:center; padding:0 .75rem; line-height:1.5; max-height:3.5rem; overflow:hidden; }
    .ig-cell-empty { aspect-ratio:1; background:rgba(255,255,255,.025); border:1px dashed rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center; }
    .ig-cell-empty span { font-size:.6rem; color:var(--muted); letter-spacing:.1em; text-transform:uppercase; }
    .ig-follow-btn { display:inline-flex; align-items:center; gap:.6rem; margin-top:2rem; padding:.75rem 1.75rem; border:1px solid rgba(201,169,110,.35); color:var(--gold); font-family:var(--ff-b); font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; text-decoration:none; transition:all .22s; }
    .ig-follow-btn:hover { background:rgba(201,169,110,.08); border-color:var(--gold); }

    /* ══════════════════════════════
       PORTFOLIO PAGE
    ══════════════════════════════ */
    #page-portfolio { background: var(--black); padding-top: var(--nav-h); }

    .port-header {
      padding: 64px 64px 40px;
      display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 24px;
    }
    .port-header .sec-h2 { margin-bottom: 0; }

    .port-filters { display: flex; gap: 4px; flex-wrap: wrap; }
    .pf-btn {
      font-size: .68rem; letter-spacing: .16em; text-transform: uppercase;
      padding: 9px 18px; border: 1px solid var(--border);
      color: var(--muted); transition: all .25s;
    }
    .pf-btn:hover, .pf-btn.active {
      color: var(--text); border-color: var(--gold); background: rgba(201,169,110,.06);
    }

    .port-count {
      padding: 0 64px 20px;
      font-size: .7rem; letter-spacing: .12em; color: var(--muted);
    }

    /* ── BEFORE/AFTER TRANSFORMATIONS ── */
    .transform-section { padding: 80px 64px; background: var(--dark); }
    @media(max-width:768px){ .transform-section { padding: 60px 22px; } }
    .transform-section .sec-tag { color:var(--gold); }
    .transform-section .sec-h2 { margin-bottom:.5rem; }
    .transform-section .transform-sub { color:var(--muted); font-size:.85rem; line-height:1.7; margin-bottom:3rem; max-width:500px; }
    .transform-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; }
    @media(max-width:900px){ .transform-grid { grid-template-columns:1fr; } }
    .transform-pair { position:relative; }
    .transform-pair-label { font-size:.6rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); margin-bottom:.75rem; }
    .ba-slider-wrap {
      position:relative; overflow:hidden; cursor:col-resize;
      border:1px solid var(--border); border-radius:3px;
      user-select:none; -webkit-user-select:none;
      aspect-ratio:2/3;
    }
    .ba-img {
      position:absolute; inset:0; width:100%; height:100%;
      object-fit:cover; pointer-events:none; display:block;
    }
    .ba-img-after { clip-path:inset(0 50% 0 0); }
    .ba-divider {
      position:absolute; top:0; bottom:0; left:50%;
      width:2px; background:var(--gold); transform:translateX(-50%);
      pointer-events:none; z-index:3;
    }
    .ba-handle {
      position:absolute; top:50%; left:50%;
      transform:translate(-50%,-50%);
      width:36px; height:36px; border-radius:50%;
      background:var(--gold); border:2px solid #fff;
      display:flex; align-items:center; justify-content:center;
      pointer-events:none; z-index:4;
      box-shadow:0 2px 12px rgba(0,0,0,.5);
    }
    .ba-handle svg { pointer-events:none; }
    .ba-label-before, .ba-label-after {
      position:absolute; bottom:10px;
      font-size:.58rem; letter-spacing:.16em; text-transform:uppercase;
      padding:4px 8px; background:rgba(8,8,8,.7);
      z-index:5; pointer-events:none;
    }
    .ba-label-before { left:10px; color:var(--muted); }
    .ba-label-after  { right:10px; color:var(--gold); }
    .transform-placeholder {
      aspect-ratio:2/3; background:rgba(255,255,255,.025);
      border:1px dashed rgba(255,255,255,.1); border-radius:3px;
      display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px;
    }
    .transform-placeholder span { font-size:.68rem; color:var(--muted); letter-spacing:.1em; text-transform:uppercase; }

    .masonry { columns: 4; column-gap: 4px; padding: 0 64px 80px; }
    .mi {
      break-inside: avoid; margin-bottom: 4px;
      overflow: hidden; cursor: pointer; position: relative;
    }
    .mi img {
      width:100%; height:auto; display:block;
      aspect-ratio: 2/3;
      object-fit: cover;
      transition: transform .7s var(--ease), filter .4s;
      filter: brightness(.9) saturate(.88);
    }
    .mi:hover img { transform: scale(1.04); filter: brightness(1) saturate(1.05); }
    .mi-ov {
      position: absolute; inset:0; background: rgba(8,8,8,0);
      transition: background .35s; display:flex; align-items:center; justify-content:center;
    }
    .mi:hover .mi-ov { background: rgba(8,8,8,.22); }
    .mi-ov svg { opacity:0; transform:scale(.7); transition: opacity .3s, transform .4s var(--ease); }
    .mi:hover .mi-ov svg { opacity:1; transform:scale(1); }

    /* hidden by filter */
    .mi.hidden { display: none; }
    .mi.sz-s img { height: 180px; object-fit: cover; }
    .mi.sz-l img { height: 440px; object-fit: cover; }

    /* ── LIGHTBOX ── */
    #lb {
      display: none; position: fixed; inset:0; z-index: 2000;
      background: rgba(5,5,5,.97); backdrop-filter: blur(10px);
      align-items: center; justify-content: center;
    }
    #lb.open { display: flex; }
    #lb-img { max-width: 90vw; max-height: 90vh; object-fit: contain; transition: opacity .18s; }
    .lb-x {
      position:absolute; top:26px; right:34px;
      font-size: 1.9rem; color: rgba(240,237,232,.5); cursor:pointer; line-height:1;
      transition: color .2s;
    }
    .lb-x:hover { color: var(--text); }
    .lb-arr {
      position:absolute; top:50%; transform:translateY(-50%);
      font-size: 2.2rem; color: rgba(240,237,232,.35); cursor:pointer; padding:20px;
      transition: color .2s; user-select:none;
    }
    .lb-arr:hover { color: var(--text); }
    #lb-prev { left:10px; }
    #lb-next { right:10px; }
    .lb-counter {
      position:absolute; bottom:26px; left:50%; transform:translateX(-50%);
      font-size: .7rem; letter-spacing: .2em; color: rgba(240,237,232,.4);
    }

    /* ══════════════════════════════
       SERVICES PAGE
    ══════════════════════════════ */
    #page-services { background: var(--dark); padding-top: var(--nav-h); }

    .svc-hero {
      position: relative; height: 52vh; min-height: 360px; overflow: hidden;
      display: flex; align-items: flex-end; padding: 0 64px 60px;
    }
    .svc-hero-bg {
      position: absolute; inset: 0;
      background-size:cover; background-position:center;
      filter: brightness(.45) saturate(.7);
    }
    .svc-hero-grad {
      position:absolute; inset:0;
      background: linear-gradient(to bottom, transparent 30%, rgba(15,15,15,.95) 100%);
    }
    .svc-hero-cnt { position:relative; z-index:2; }

    /* Custom Sessions CTA */
    .svc-custom-cta {
      padding: 80px 64px 100px;
      border-top: 1px solid var(--border);
      text-align: center;
    }
    .svc-custom-inner { max-width: 560px; margin: 0 auto; }
    .svc-custom-tag {
      font-size: .7rem; letter-spacing: .18em; text-transform: uppercase;
      color: var(--gold); margin: 0 0 14px; font-family: var(--font-b);
    }
    .svc-custom-h {
      font-family: var(--font-h); font-size: clamp(1.6rem, 3vw, 2.2rem);
      font-weight: 300; color: var(--text); margin: 0 0 18px; letter-spacing: -.01em;
    }
    .svc-custom-sub {
      font-size: .875rem; color: var(--muted); line-height: 1.7; margin: 0 0 32px;
    }
    .svc-custom-btn {
      display: inline-block; padding: 14px 36px;
      background: transparent; border: 1px solid var(--gold);
      color: var(--gold); font-family: var(--font-b);
      font-size: .72rem; letter-spacing: .14em; text-transform: uppercase;
      text-decoration: none; transition: background .2s, color .2s;
    }
    .svc-custom-btn:hover { background: var(--gold); color: #0a0700; }
    @media (max-width: 600px) {
      .svc-custom-cta { padding: 60px 24px 80px; }
    }

    .svc-list { padding: 72px 64px 100px; }
    .svc-item {
      display: grid; grid-template-columns: 380px 1fr; gap: 0;
      border-bottom: 1px solid var(--border); margin-bottom: 4px;
      overflow: hidden;
    }
    .svc-item:last-child { border-bottom: none; }
    .svc-img { overflow: hidden; align-self: stretch; min-height: 280px; }
    .svc-img img {
      width:100%; height:100%; object-fit:cover;
      transition: transform .8s var(--ease); filter: brightness(.85) saturate(.85);
    }
    .svc-item:hover .svc-img img { transform: scale(1.04); filter: brightness(1) saturate(1); }
    .svc-info {
      padding: 40px 48px; display:flex; flex-direction:column; justify-content:center;
      background: var(--surface); border-left: 1px solid var(--border);
    }
    .svc-info-num { font-family: var(--ff-d); font-style:italic; color: var(--gold); font-size: .8rem; margin-bottom:10px; }
    .svc-info-name { font-family: var(--ff-d); font-size: 2.2rem; font-weight: 400; margin-bottom: 16px; }
    .svc-info-desc { font-size: .88rem; color: rgba(240,237,232,.6); line-height: 1.85; margin-bottom: 28px; max-width: 420px; }
    .svc-info-includes { display: flex; flex-direction:column; gap: 8px; margin-bottom: 32px; }
    .svc-include-item {
      display: flex; align-items:center; gap: 10px;
      font-size: .76rem; color: var(--muted); letter-spacing: .04em;
    }
    .svc-include-item::before {
      content: ''; display:inline-block; width:5px; height:1px;
      background: var(--gold); flex-shrink:0;
    }
    .svc-info-price {
      font-size: .72rem; letter-spacing: .2em; text-transform: uppercase; color: var(--gold);
      border-top: 1px solid var(--border); padding-top: 20px;
      margin-bottom: 20px;
    }
    .svc-book-btn {
      display: inline-flex; align-items: center; gap: 10px;
      font-family: var(--ff-b); font-size: .62rem; font-weight: 500;
      letter-spacing: .2em; text-transform: uppercase;
      background: var(--gold); color: #0a0700;
      padding: 15px 32px; border: none; cursor: pointer;
      transition: background .25s, transform .2s, box-shadow .25s;
      position: relative; overflow: hidden; min-height: 48px;
    }
    .svc-book-btn::after {
      content: ''; position: absolute; inset: 0;
      background: linear-gradient(135deg, rgba(255,255,255,.14) 0%, transparent 55%);
      pointer-events: none;
    }
    .svc-book-btn:hover { background: #d4b47a; transform: translateY(-2px); box-shadow: 0 8px 28px rgba(200,150,62,.3); }
    .svc-book-btn svg { width: 11px; height: 11px; flex-shrink: 0; }
    @media(max-width:560px) { .svc-book-btn { width:100%; justify-content:center; } }

    /* ══════════════════════════════
       CLIENT AREA PAGE
    ══════════════════════════════ */
    #page-client { background: var(--surface); padding-top: var(--nav-h); }

    .client-header { padding: 72px 64px 56px; }
    .client-intro {
      max-width: 540px; font-size: .88rem; color: var(--muted);
      line-height: 1.9; margin-top: 20px;
    }

    .client-grid {
      display: grid; grid-template-columns: repeat(4, 1fr);
      gap: 2px; padding: 0 64px 100px;
    }
    .cc {
      position:relative; aspect-ratio: 3/4; overflow:hidden;
      background: var(--dark); cursor:default;
      display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px;
      border: 1px solid var(--border); transition: border-color .4s;
    }
    .cc:hover { border-color: rgba(201,169,110,.25); }
    .cc-bg {
      position:absolute; inset:0; background-size:cover; background-position:center;
      opacity:.1; filter: blur(6px) saturate(.4); transition: opacity .5s;
    }
    .cc:hover .cc-bg { opacity:.18; }
    .cc-lock {
      position:relative; z-index:2;
      width:44px; height:44px; border:1px solid rgba(201,169,110,.35); border-radius:50%;
      display:flex; align-items:center; justify-content:center; color:var(--gold);
    }
    .cc-label { position:relative; z-index:2; text-align:center; }
    .cc-name { font-family: var(--ff-d); font-size: 1.3rem; font-weight:400; letter-spacing:.06em; }
    .cc-status { font-size: .63rem; letter-spacing: .22em; text-transform:uppercase; color:var(--gold); margin-top:6px; }
    .cc-meta { position:relative; z-index:2; font-size:.7rem; color:var(--muted); letter-spacing:.05em; }

    /* Client Area search + settings controls */
    .ca-controls {
      display: flex; align-items: center; gap: 10px;
      padding: 0 64px 36px; position: relative;
    }
    .ca-search-wrap { position: relative; flex: 0 0 270px; }
    .ca-search-ico {
      position: absolute; left: 13px; top: 50%; transform: translateY(-50%);
      color: rgba(140,130,115,.4); pointer-events: none;
    }
    .ca-search {
      width: 100%; background: rgba(255,255,255,.025);
      border: 1px solid var(--border); color: var(--text);
      font-family: var(--ff-b); font-size: .78rem; letter-spacing: .07em;
      padding: 9px 14px 9px 38px; outline: none; transition: border-color .25s;
    }
    .ca-search::placeholder { color: rgba(140,130,115,.35); }
    .ca-search:focus { border-color: rgba(201,169,110,.38); }
    .ca-settings-btn {
      width: 36px; height: 36px; border: 1px solid var(--border);
      background: none; color: rgba(140,130,115,.5); cursor: pointer;
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0; transition: border-color .25s, color .25s;
    }
    .ca-settings-btn:hover, .ca-settings-btn.open {
      border-color: rgba(201,169,110,.38); color: var(--gold);
    }
    .ca-count {
      font-size: .67rem; letter-spacing: .1em; color: rgba(140,130,115,.45);
      margin-left: 4px; white-space: nowrap;
    }
    .ca-settings-panel {
      position: absolute; top: calc(100% - 10px); left: 64px; z-index: 60;
      background: #0c0c0a; border: 1px solid rgba(255,255,255,.07);
      padding: 20px; min-width: 200px;
      box-shadow: 0 18px 52px rgba(0,0,0,.65); display: none;
    }
    .ca-settings-panel.open { display: block; }
    .ca-panel-label {
      font-size: .56rem; letter-spacing: .2em; text-transform: uppercase;
      color: rgba(140,130,115,.45); margin-bottom: 10px; display: block;
    }
    .ca-panel-opts { display: flex; gap: 5px; flex-wrap: wrap; margin-bottom: 0; }
    .ca-panel-opts + .ca-panel-label { margin-top: 16px; }
    .ca-panel-btn {
      font-size: .64rem; letter-spacing: .12em; text-transform: uppercase;
      padding: 5px 11px; border: 1px solid var(--border); background: none;
      color: var(--muted); cursor: pointer; transition: all .2s; font-family: var(--ff-b);
    }
    .ca-panel-btn:hover { border-color: rgba(201,169,110,.3); color: rgba(201,169,110,.7); }
    .ca-panel-btn.on { border-color: var(--gold); color: var(--gold); background: rgba(201,169,110,.06); }

    /* ══════════════════════════════
       CONTACT PAGE
    ══════════════════════════════ */
    #page-contact { background: var(--dark); padding-top: var(--nav-h); }

    .contact-wrap {
      display: grid; grid-template-columns: 1fr 1fr; min-height: calc(100vh - var(--nav-h));
    }
    .contact-left {
      padding: 72px 56px; background: var(--black);
      border-right: 1px solid var(--border);
      display: flex; flex-direction:column; justify-content:center;
    }
    .contact-left .sec-h2 { margin-bottom: 36px; }

    .cd {
      display:flex; align-items:flex-start; gap:16px; margin-bottom:28px;
    }
    .cd-icon {
      width:38px; height:38px; border:1px solid var(--border); border-radius:50%;
      display:flex; align-items:center; justify-content:center;
      flex-shrink:0; color:var(--gold); font-size:.85rem;
    }
    .cd-label { font-size:.63rem; letter-spacing:.22em; text-transform:uppercase; color:var(--muted); margin-bottom:4px; display:block; }
    .cd-val { font-size:.92rem; color: var(--text); }
    .cd-val a:hover { color: var(--gold); }

    .socials { display:flex; gap:12px; margin-top:44px; flex-wrap:wrap; }
    .soc {
      display:flex; align-items:center; gap:9px;
      font-size:.72rem; letter-spacing:.12em; text-transform:uppercase;
      color:var(--muted); border:1px solid var(--border); padding:10px 16px;
      transition: color .3s, border-color .3s;
    }
    .soc:hover { color:var(--text); border-color:var(--gold); }

    .contact-right { padding: 72px 56px; display:flex; flex-direction:column; justify-content:center; }
    .contact-right .sec-h2 { margin-bottom:36px; }
    .cform { display:flex; flex-direction:column; gap:18px; }
    .frow { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
    .fg { display:flex; flex-direction:column; gap:7px; }
    .fg label { font-size:.63rem; letter-spacing:.22em; text-transform:uppercase; color:var(--muted); }
    .fg input, .fg textarea, .fg select {
      background: rgba(255,255,255,.028); border:1px solid var(--border);
      color:var(--text); font-family:var(--ff-b); font-size:.88rem; font-weight:300;
      padding:13px 15px; outline:none; transition:border-color .3s;
      -webkit-appearance:none; resize:none;
    }
    .fg input::placeholder, .fg textarea::placeholder { color:rgba(122,122,114,.45); }
    .fg input:focus, .fg textarea:focus, .fg select:focus {
      border-color:var(--gold); background:rgba(201,169,110,.025);
    }
    .fg textarea { height:130px; }
    .fg select option { background: #111; }
    .sub-btn {
      align-self:flex-start; display:inline-flex; align-items:center; gap:12px;
      font-size:.72rem; letter-spacing:.2em; text-transform:uppercase;
      background:var(--gold); color:var(--black); padding:16px 34px; font-weight:500;
      transition: background .25s, transform .2s;
    }
    .sub-btn:hover { background:#d4b47a; transform:translateY(-1px); }

    /* ══════════════════════════════
       FOOTER
    ══════════════════════════════ */
    footer {
      background:var(--black); padding:36px 52px;
      border-top:1px solid var(--border);
      display:flex; align-items:center; justify-content:space-between;
    }
    .foot-brand { font-family:var(--ff-d); font-size:.95rem; letter-spacing:.14em; text-transform:uppercase; }
    .foot-meta { font-size:.7rem; color:var(--muted); letter-spacing:.06em; }

    /* ══════════════════════════════
       RESPONSIVE
    ══════════════════════════════ */
    @media(max-width:1100px){
      .masonry { columns:3; }
      .client-grid { grid-template-columns: repeat(2,1fr); }
      .svc-item { grid-template-columns:1fr; }
      .svc-img { aspect-ratio:16/9; }
      .contact-wrap { grid-template-columns:1fr; }
    }
    @media(max-width:860px){
      #nav { padding:0 22px; }
      .nav-links { display:none; }
      .hbg { display:flex; }
      .hero-scroll-ind { left:28px; right:auto; }
      .hero-cnt { padding:0 28px; width:100%; left:0; }
      .slide-dots { left:28px; }
      .home-featured, .port-header, .svc-list, .client-header, .client-grid, .masonry { padding-left:22px; padding-right:22px; }
      .port-count { padding-left:22px; }

      .feat-strip { grid-template-columns:repeat(3,1fr); }
      .home-about { grid-template-columns:1fr 1fr; }
      .home-about .stat-div { display:none; }
      .contact-left, .contact-right { padding:52px 28px; }
      footer { flex-direction:column; gap:12px; text-align:center; }
    }
    @media(max-width:560px){
      .masonry { columns:2; }
      .feat-strip { grid-template-columns:repeat(2,1fr); }
      .feat-strip .feat-img:last-child { display:none; }
      .frow { grid-template-columns:1fr; }
      .home-about { grid-template-columns:1fr; }
      .home-stat { padding:28px 24px; }
      .client-grid { padding:0 22px 80px; }
      .ca-controls { padding: 0 22px 28px; }
      .ca-search-wrap { flex: 1; }
      .ca-settings-panel { left: 22px; }
      .hero-btns { flex-direction:column; gap:10px; }
      .btn-fill, .btn-outline { width:100%; justify-content:center; }
    }

    /* ══════════════════════════════
       GALLERY VIEWER
    ══════════════════════════════ */
    #gv-modal {
      display:none; position:fixed; inset:0; z-index:1800;
      background:rgba(5,5,5,.98); backdrop-filter:blur(16px);
      overflow-y:auto;
    }
    #gv-modal.open { display:block; }
    .gv-header {
      padding:60px 64px 40px;
      display:flex; align-items:flex-end; justify-content:space-between;
      flex-wrap:wrap; gap:20px;
    }
    .gv-title { font-family:var(--ff-d); font-size:2.6rem; font-weight:300; letter-spacing:.04em; }
    .gv-title em { font-style:italic; color:var(--gold); }
    .gv-meta { font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); margin-top:6px; }
    .gv-close {
      font-size:.68rem; letter-spacing:.2em; text-transform:uppercase;
      color:var(--muted); border:1px solid var(--border); padding:10px 20px;
      cursor:pointer; transition:color .2s, border-color .2s; flex-shrink:0;
    }
    .gv-close:hover { color:var(--text); border-color:var(--text); }
    .gv-grid { padding:0 64px 80px; columns:3; column-gap:4px; }
    .gv-item { break-inside:avoid; margin-bottom:4px; overflow:hidden; cursor:pointer; position:relative; }
    .gv-item img {
      width:100%; height:auto; display:block;
      transition:transform .6s var(--ease), filter .3s;
      filter:brightness(.9);
    }
    .gv-item:hover img { transform:scale(1.03); filter:brightness(1); }

    /* PIN gate */
    #pin-modal {
      display:none; position:fixed; inset:0; z-index:1900;
      background:rgba(5,5,5,.97); backdrop-filter:blur(16px);
      align-items:center; justify-content:center;
    }
    #pin-modal.open { display:flex; }
    .pin-box {
      width:100%; max-width:380px;
      padding:52px 44px; background:var(--surface);
      border:1px solid var(--border); text-align:center;
    }
    .pin-box h3 { font-family:var(--ff-d); font-size:2rem; font-weight:300; margin-bottom:8px; }
    .pin-box > p { font-size:.82rem; color:var(--muted); margin-bottom:32px; line-height:1.7; }
    .pin-input {
      width:100%; background:transparent; border:none;
      border-bottom:1px solid var(--border); color:var(--text);
      font-family:var(--ff-b); font-size:1.8rem; font-weight:200;
      padding:10px 0; outline:none; text-align:center;
      letter-spacing:10px; margin-bottom:8px;
      transition:border-color .2s;
    }
    .pin-input:focus { border-color:var(--gold); }
    .pin-err { font-size:.72rem; color:#e05a5a; min-height:20px; margin-bottom:16px; }
    .pin-submit {
      width:100%; font-size:.72rem; letter-spacing:.22em; text-transform:uppercase;
      background:var(--gold); color:var(--black); padding:16px;
      font-weight:500; transition:background .25s; cursor:pointer; border:none;
    }
    .pin-submit:hover { background:#d4b47a; }
    .pin-cancel {
      width:100%; margin-top:12px; font-size:.68rem; letter-spacing:.18em;
      text-transform:uppercase; background:none; border:1px solid var(--border);
      color:var(--muted); padding:11px; cursor:pointer; transition:border-color .2s, color .2s;
    }
    .pin-cancel:hover { border-color:var(--text); color:var(--text); }

    /* Client Area admin tab cards */
    #admin-clientarea-list {
      display:grid;
      grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
      gap:20px;
      padding:4px 0 24px;
    }
    .ca-admin-card {
      background:var(--surface); border:1px solid var(--border);
      overflow:hidden; display:flex; flex-direction:column;
    }
    .ca-admin-cover {
      height:200px; background:#111 center/cover no-repeat;
      position:relative; flex-shrink:0;
    }
    .ca-admin-cover-overlay {
      position:absolute; inset:0;
      background:linear-gradient(to bottom, transparent 40%, rgba(0,0,0,.72));
      display:flex; align-items:flex-end; padding:14px 16px;
    }
    .ca-admin-cover-empty {
      position:absolute; inset:0; display:flex; align-items:center;
      justify-content:center; font-size:.68rem; letter-spacing:.16em;
      text-transform:uppercase; color:var(--muted);
    }
    .ca-pin-on {
      font-size:.62rem; letter-spacing:.16em; text-transform:uppercase;
      color:var(--gold); background:rgba(201,169,110,.15);
      padding:3px 9px; border:1px solid rgba(201,169,110,.3);
    }
    .ca-pin-off {
      font-size:.62rem; letter-spacing:.16em; text-transform:uppercase;
      color:var(--muted); background:rgba(255,255,255,.05);
      padding:3px 9px; border:1px solid var(--border);
    }
    .ca-admin-body { padding:16px; display:flex; flex-direction:column; gap:14px; flex:1; }
    .ca-admin-name { font-family:var(--ff-d); font-size:1.5rem; font-weight:300; }
    .ca-admin-meta { font-size:.7rem; color:var(--muted); letter-spacing:.06em; margin-top:3px; }
    .ca-admin-pin-row {
      display:flex; align-items:center; gap:8px; flex-wrap:wrap;
      padding:10px 12px; background:rgba(255,255,255,.02);
      border:1px solid var(--border);
    }
    .ca-admin-pin-row label {
      font-size:.58rem; letter-spacing:.18em; text-transform:uppercase;
      color:var(--muted); white-space:nowrap;
    }
    .ca-pin-inp {
      flex:1; min-width:80px; background:transparent; border:none;
      border-bottom:1px solid var(--border); color:var(--text);
      font-family:var(--ff-b); font-size:.95rem; padding:4px 6px;
      outline:none; letter-spacing:5px; text-align:center;
      transition:border-color .2s;
    }
    .ca-pin-inp:focus { border-color:var(--gold); }
    .ca-pin-inp::placeholder { letter-spacing:normal; color:var(--muted); font-size:.72rem; }
    .ca-pin-save {
      font-size:.58rem; letter-spacing:.2em; text-transform:uppercase;
      background:var(--gold); color:var(--black); padding:5px 12px;
      font-weight:500; cursor:pointer; border:none; transition:background .2s;
    }
    .ca-pin-save:hover { background:#d4b47a; }
    .ca-pin-clear {
      font-size:.58rem; letter-spacing:.18em; text-transform:uppercase;
      background:none; border:1px solid var(--border); color:var(--muted);
      padding:4px 10px; cursor:pointer; transition:border-color .2s, color .2s;
    }
    .ca-pin-clear:hover { border-color:#e05a5a; color:#e05a5a; }
    .ca-admin-actions { display:flex; gap:8px; flex-wrap:wrap; margin-top:auto; }
    .ca-admin-actions .a-btn-alt, .ca-admin-actions .a-copy, .ca-admin-actions .a-del {
      font-size:.6rem; padding:7px 14px;
    }

    /* FAQ — public */
    .faq-section { padding:calc(var(--nav-h) + 72px) 52px 100px; max-width:860px; margin:0 auto; }
    .faq-inner {}
    .faq-list { margin-top:52px; }
    .faq-item {
      border-top:1px solid var(--border); overflow:hidden;
    }
    .faq-item:last-child { border-bottom:1px solid var(--border); }
    .faq-q {
      width:100%; text-align:left; padding:22px 0;
      font-family:var(--ff-d); font-size:1.25rem; font-weight:300;
      display:flex; justify-content:space-between; align-items:center;
      gap:16px; cursor:pointer; background:none; border:none; color:var(--text);
      transition:color .2s;
    }
    .faq-q:hover { color:var(--gold); }
    .faq-q-icon {
      width:18px; height:18px; flex-shrink:0;
      border:1px solid currentColor; border-radius:50%;
      display:flex; align-items:center; justify-content:center;
      font-size:.9rem; line-height:1; transition:transform .35s var(--ease);
    }
    .faq-item.open .faq-q-icon { transform:rotate(45deg); }
    .faq-a {
      max-height:0; overflow:hidden;
      transition:max-height .4s var(--ease), padding .3s;
      font-size:.9rem; line-height:1.8; color:rgba(240,237,232,.7);
    }
    .faq-item.open .faq-a { max-height:400px; padding-bottom:22px; }
    /* FAQ — admin list */
    .faq-admin-item {
      display:flex; align-items:flex-start; gap:12px;
      padding:14px 16px; background:var(--surface); border:1px solid var(--border);
      margin-bottom:8px;
    }
    .faq-admin-handle { color:var(--muted); font-size:1rem; cursor:grab; padding-top:2px; flex-shrink:0; }
    .faq-admin-body { flex:1; min-width:0; }
    .faq-admin-q { font-family:var(--ff-d); font-size:1rem; font-weight:400; margin-bottom:4px; }
    .faq-admin-a { font-size:.78rem; color:var(--muted); line-height:1.6; }
    .faq-admin-del { font-size:.7rem; color:#e08080; background:none; border:1px solid rgba(200,80,80,.3); padding:4px 10px; cursor:pointer; flex-shrink:0; transition:border-color .2s; }
    .faq-admin-del:hover { border-color:#e08080; }

    /* Gallery viewer download */
    .gv-dl-all {
      display:flex; align-items:center; gap:8px;
      font-size:.62rem; letter-spacing:.18em; text-transform:uppercase;
      background:var(--gold); color:var(--black); border:none;
      padding:9px 18px; cursor:pointer; font-family:var(--ff-b);
      font-weight:600; transition:opacity .2s, transform .1s;
      white-space:nowrap; border-radius:2px;
    }
    .gv-dl-all:hover { opacity:.88; transform:translateY(-1px); }
    .gv-dl-all:active { transform:translateY(0); opacity:1; }
    .gv-dl-all.loading { opacity:.5; pointer-events:none; }
    .gv-item { position:relative; }
    .gv-item-dl {
      position:absolute; bottom:8px; right:8px;
      width:32px; height:32px; border-radius:50%;
      background:rgba(8,8,8,.7); border:1px solid rgba(255,255,255,.2);
      display:flex; align-items:center; justify-content:center;
      cursor:pointer; opacity:0; transition:opacity .2s;
      backdrop-filter:blur(4px);
    }
    .gv-item:hover .gv-item-dl { opacity:1; }
    .gv-item-dl:hover { background:rgba(201,169,110,.8); border-color:var(--gold); }
    .gv-item-dl svg { pointer-events:none; }
    /* Favorites */
    .gv-item-fav { position:absolute; top:8px; left:8px; width:32px; height:32px; border-radius:50%; background:rgba(8,8,8,.65); border:none; cursor:pointer; display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity .2s, background .15s; padding:0; }
    .gv-item:hover .gv-item-fav { opacity:1; }
    .gv-item-fav.active { opacity:1; background:rgba(180,30,30,.75); }
    .gv-item-fav svg { pointer-events:none; transition:transform .15s; }
    .gv-item-fav.active svg { transform:scale(1.2); }
    .gv-fav-badge { display:inline-flex; align-items:center; gap:5px; font-size:.6rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); padding:3px 8px; border:1px solid var(--border); border-radius:20px; margin-top:6px; }
    .gv-fav-badge.has-favs { color:#c0392b; border-color:#c0392b44; }
    /* Admin gallery fav count chip */
    .gal-fav-count { font-size:.6rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); padding:2px 8px; border:1px solid var(--border); border-radius:20px; }
    .gal-fav-count.has-favs { color:#c0392b; border-color:#c0392b66; }

    /* Cover photo picker */
    .gal-photo-wrap { position:relative; }
    .gal-set-cover {
      position:absolute; bottom:0; left:0; right:0;
      font-size:.5rem; letter-spacing:.14em; text-transform:uppercase;
      background:rgba(201,169,110,.88); color:var(--black); padding:3px 4px;
      text-align:center; cursor:pointer; border:none; width:100%;
      opacity:0; transition:opacity .2s; font-weight:500;
    }
    .gal-photo-wrap:hover .gal-set-cover { opacity:1; }
    .gal-photo-wrap.is-cover .gal-set-cover { opacity:1; background:var(--gold); }
    .gal-photo-wrap.is-cover::after {
      content:'★'; position:absolute; top:3px; left:4px;
      font-size:10px; color:var(--gold); line-height:1;
    }

    /* Gallery status row */
    .gal-status-row {
      display:flex; align-items:center; gap:8px; flex-wrap:wrap;
      padding:10px 14px; border-bottom:1px solid var(--border);
      background:rgba(255,255,255,.015);
    }
    .gal-status-row label {
      font-size:.6rem; letter-spacing:.18em; text-transform:uppercase;
      color:var(--muted); white-space:nowrap; margin-right:4px;
    }
    .gal-status-btn {
      font-size:.6rem; letter-spacing:.16em; text-transform:uppercase;
      padding:4px 12px; border:1px solid var(--border); background:none;
      color:var(--muted); cursor:pointer; transition:all .2s;
    }
    .gal-status-btn.on[data-status="published"] { background:rgba(100,200,100,.12); border-color:rgba(100,200,100,.5); color:#7ecf7e; }
    .gal-status-btn.on[data-status="draft"]     { background:rgba(201,169,110,.1);  border-color:rgba(201,169,110,.4); color:var(--gold); }
    .gal-status-btn.on[data-status="expired"]   { background:rgba(200,80,80,.1);    border-color:rgba(200,80,80,.4);   color:#e08080; }
    .gal-status-btn:not(.on):hover { border-color:rgba(255,255,255,.2); color:var(--text); }

    /* Gallery notes row */
    .gal-notes-row {
      padding:10px 14px 14px; border-top:1px solid var(--border);
    }
    .gal-notes-row label {
      display:block; font-size:.6rem; letter-spacing:.18em; text-transform:uppercase;
      color:var(--muted); margin-bottom:6px;
    }
    .gal-notes-hint { letter-spacing:0; text-transform:none; font-size:.68rem; opacity:.6; }
    .gal-notes-inp {
      width:100%; background:transparent; border:1px solid var(--border);
      color:var(--text); font-family:var(--ff-b); font-size:.82rem; font-weight:300;
      padding:8px 10px; outline:none; resize:vertical; line-height:1.6;
      transition:border-color .2s;
    }
    .gal-notes-inp:focus { border-color:var(--gold); }
    .gal-notes-inp::placeholder { color:var(--muted); }
    .gal-notes-inp.saved { border-color:rgba(100,200,100,.4); }

    /* Gallery admin PIN row */
    .gal-pin-row {
      display:flex; align-items:center; gap:10px; flex-wrap:wrap;
      padding:12px 16px; background:rgba(255,255,255,.02);
      border-top:1px solid var(--border); margin-top:4px;
    }
    .gal-pin-row label {
      font-size:.6rem; letter-spacing:.18em; text-transform:uppercase;
      color:var(--muted); white-space:nowrap; flex-shrink:0;
    }
    .gal-pin-inp {
      width:110px; background:transparent; border:1px solid var(--border);
      color:var(--text); font-family:var(--ff-b); font-size:.95rem;
      padding:5px 10px; outline:none; letter-spacing:5px; text-align:center;
      transition:border-color .2s; flex-shrink:0;
    }
    .gal-pin-inp:focus { border-color:var(--gold); }
    .gal-pin-inp::placeholder { letter-spacing:normal; color:var(--muted); font-size:.72rem; }
    .gal-pin-save {
      font-size:.58rem; letter-spacing:.2em; text-transform:uppercase;
      background:var(--gold); color:var(--black); padding:6px 14px;
      font-weight:500; cursor:pointer; border:none; transition:background .2s; flex-shrink:0;
    }
    .gal-pin-save:hover { background:#d4b47a; }
    .gal-pin-clear {
      font-size:.58rem; letter-spacing:.2em; text-transform:uppercase;
      background:none; border:1px solid var(--border); color:var(--muted);
      padding:5px 12px; cursor:pointer; transition:border-color .2s, color .2s; flex-shrink:0;
    }
    .gal-pin-clear:hover { border-color:#e05a5a; color:#e05a5a; }
    .gal-pin-badge {
      font-size:.58rem; letter-spacing:.15em; text-transform:uppercase;
      color:var(--gold); background:rgba(201,169,110,.1);
      padding:3px 9px; border:1px solid rgba(201,169,110,.25); flex-shrink:0;
    }

    /* ══════════════════════════════
       ADMIN PORTAL — Pixieset Style
    ══════════════════════════════ */
    /* ── Design tokens ── */
    #admin-modal {
      --adm-bg:        #FFFFFF;
      --adm-sidebar:   #FFFFFF;
      --adm-main:      #F8F8F8;
      --adm-border:    #E8E8E8;
      --adm-text:      #1A1A1A;
      --adm-secondary: #6B6B6B;
      --adm-muted:     #767676;
      --adm-hover:     #F4F4F4;
      --adm-active-bg: #F0F0F0;
      --adm-accent:    #1A1A1A;
      --adm-danger:    #DC2626;
      --adm-success:   #16A34A;
      --adm-radius:    8px;
      --adm-ff:        'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
      /* Recolor every admin gold reference to charcoal (public site keeps its gold) */
      --gold:    #1A1A1A;
      --gold-d:  #34343a;
      --gold-glow: rgba(26,26,26,0.10);
    }
    #admin-modal {
      display:none; position:fixed; inset:0; z-index:2000;
      background:var(--adm-bg); overflow:hidden;
      color:var(--adm-text); font-family:var(--adm-ff);
    }
    #admin-modal.open { display:block; }

    /* ── Neutralize remaining literal-gold tints inside admin (charcoal) ── */
    #admin-modal .a-saved { color: var(--adm-secondary) !important; }
    #admin-modal .gal-share-url { color: var(--adm-secondary) !important; }
    #admin-modal .gc-pin-badge { color: var(--adm-secondary) !important; }
    #admin-modal .gal-status-btn.on[data-status="draft"] { background: var(--adm-active-bg) !important; border-color: var(--adm-border) !important; color: var(--adm-text) !important; }
    #admin-modal .gal-starred-toggle.on { border-color: var(--adm-text) !important; color: var(--adm-text) !important; background: var(--adm-active-bg) !important; }
    #admin-modal .gep-theme-btn.active { border-color: var(--adm-text) !important; color: var(--adm-text) !important; }
    #admin-modal .gc-ha-btn:hover { background: var(--adm-hover) !important; border-color: var(--adm-text) !important; color: var(--adm-text) !important; }
    #admin-modal .gc-review-btn:hover:not(:disabled) { background: var(--adm-hover) !important; border-color: var(--adm-text) !important; }
    #admin-modal .gal-search-in:focus { box-shadow: 0 0 0 3px rgba(26,26,26,.08) !important; }

    /* ══════════════════════════════════════════════════════════════════
       ADMIN PANEL — Pixieset-inspired Design
       Clean · Minimal · Professional Photography Platform
       ══════════════════════════════════════════════════════════════════ */

    /* Login screen */
    #admin-modal .admin-login-wrap {
      min-height: 100vh; display: flex; align-items: center; justify-content: center;
      background: #F8F8F8; overflow-y: auto; padding: 24px;
    }
    #admin-modal .admin-login-box {
      width: 100%; max-width: 400px; padding: 48px 44px;
      background: #FFFFFF; border: 1px solid #E8E8E8;
      border-radius: 12px; box-shadow: 0 4px 24px rgba(0,0,0,.06);
    }
    @media(max-width:480px){
      #admin-modal .admin-login-box { padding: 32px 24px; border-radius: 8px; }
      #admin-modal .admin-login-wrap { padding: 16px; }
      #admin-login-box input { font-size: 16px !important; }
    }
    #admin-modal .admin-login-box h2 {
      font-family: var(--adm-ff); font-size: 1.5rem; font-weight: 600;
      color: #1A1A1A; margin-bottom: 6px; letter-spacing: -.01em;
    }
    #admin-modal .admin-login-box > p { color: #6B6B6B; margin-bottom: 32px; font-size: .875rem; }
    #admin-modal .a-tag { color: #6B6B6B; font-size: .7rem; letter-spacing: .04em; text-transform: none; }
    #admin-modal details summary { color: #6B6B6B; }
    #admin-modal details > div { border-top-color: #E8E8E8; }

    /* ── Sidebar ── */
    #admin-modal .admin-sidebar {
      background: #FFFFFF !important; border-right: 1px solid #E8E8E8 !important; width: 220px !important;
    }
    #admin-modal .admin-sidebar-logo {
      border-bottom: 1px solid #E8E8E8 !important; padding: 24px 20px 20px !important;
    }
    #admin-modal .admin-sidebar-logo .asl-brand {
      color: #1A1A1A !important; font-family: var(--adm-ff) !important;
      font-size: .875rem !important; font-weight: 600 !important;
      letter-spacing: 0 !important; line-height: 1.3 !important;
    }
    #admin-modal .admin-sidebar-logo .asl-tag {
      color: #A0A0A0 !important; font-size: .7rem !important;
      letter-spacing: .04em !important; text-transform: uppercase !important;
      font-weight: 400 !important; margin-top: 3px !important;
    }

    /* Nav group labels */
    .admin-nav-group {
      font-size: .65rem; letter-spacing: .08em; text-transform: uppercase; font-weight: 600;
      color: #C0C0C0; padding: 20px 20px 6px;
      pointer-events: none; user-select: none; display: block;
    }
    .admin-nav-group:first-child { padding-top: 16px; }

    /* Nav tabs */
    #admin-modal .admin-tab {
      color: #2A2A2A !important; padding: 9px 20px !important; gap: 10px !important;
      font-family: var(--adm-ff) !important; font-size: .8rem !important;
      font-weight: 500 !important; letter-spacing: 0 !important;
      border-radius: 6px !important; margin: 1px 8px !important;
      transition: background .12s, color .12s !important;
    }
    #admin-modal .admin-tab:hover {
      background: #F4F4F4 !important; color: #1A1A1A !important;
    }
    #admin-modal .admin-tab.on {
      background: #F0F0F0 !important; color: #1A1A1A !important; font-weight: 600 !important;
    }
    #admin-modal .admin-tab.on::before {
      background: #1A1A1A !important; width: 2px !important; height: 14px !important;
      border-radius: 2px !important;
    }
    #admin-modal .anav-icon {
      width: 14px !important; height: 14px !important; opacity: 1 !important;
      color: #A0A0A0;
    }
    #admin-modal .admin-tab.on .anav-icon { color: #1A1A1A !important; opacity: 1 !important; }
    #admin-modal .admin-tab:hover .anav-icon { color: #1A1A1A !important; opacity: 1 !important; }
    #admin-modal .anav-icon { color: #4A4A4A !important; }
    #admin-modal .admin-nav-group { color: #5A5A5A !important; }

    /* Nav count pills */
    #admin-modal .anav-count {
      background: #EBEBEB !important; border-radius: 20px !important;
      padding: 1px 7px !important; font-size: .68rem !important; min-width: 20px !important;
      text-align: center !important; letter-spacing: 0 !important;
      color: #6B6B6B !important; font-weight: 500 !important;
    }
    #admin-modal .admin-tab.on .anav-count {
      background: #1A1A1A !important; color: #FFFFFF !important;
    }

    /* Sidebar footer */
    #admin-modal .admin-sidebar-foot {
      border-top: 1px solid #E8E8E8 !important; padding: 12px 8px !important;
    }
    #admin-modal .a-exit {
      color: #6B6B6B !important; font-family: var(--adm-ff) !important;
      font-size: .78rem !important; letter-spacing: 0 !important;
      border-radius: 6px !important; border-color: #E8E8E8 !important;
      transition: background .12s, color .12s !important;
      padding: 8px 12px !important; margin: 1px 0 !important;
    }
    #admin-modal .a-exit:hover { background: #F4F4F4 !important; color: #1A1A1A !important; }

    /* ── Main content area ── */
    #admin-modal .admin-main {
      display: flex !important; flex-direction: column !important; background: #F8F8F8 !important;
    }
    #admin-modal .admin-body { padding: 0 !important; max-width: 100% !important; flex: 1; }
    #admin-modal .admin-section.on { padding: 32px 36px 60px; animation: adm-in .15s ease-out; }
    @keyframes adm-in { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }

    /* ── Topbar ── */
    .admin-topbar {
      display: flex; align-items: center; justify-content: space-between;
      padding: 0 36px; height: 52px; flex-shrink: 0;
      border-bottom: 1px solid #E8E8E8;
      background: #FFFFFF;
      position: sticky; top: 0; z-index: 40;
    }
    .admin-topbar-breadcrumb {
      display: flex; align-items: center; gap: 6px;
      font-family: var(--adm-ff); font-size: .78rem; letter-spacing: 0;
    }
    .admin-topbar-breadcrumb .atb-root { color: #A0A0A0; }
    .admin-topbar-breadcrumb .atb-sep  { color: #D0D0D0; font-size: .72rem; }
    .admin-topbar-breadcrumb .atb-cur  { color: #1A1A1A; font-weight: 500; }
    .admin-topbar-right {
      display: flex; align-items: center; gap: 8px;
      font-family: var(--adm-ff); font-size: .72rem; color: #A0A0A0; letter-spacing: 0;
    }
    .admin-topbar-dot {
      width: 6px; height: 6px; border-radius: 50%;
      background: #16A34A; display: inline-block;
    }

    /* ── Section headers ── */
    #admin-modal .admin-sh {
      margin-bottom: 24px !important; padding-bottom: 18px !important;
      border-bottom: 1px solid #E8E8E8 !important;
    }
    #admin-modal .admin-sh h2 {
      font-family: var(--adm-ff) !important; font-size: 1.25rem !important;
      font-weight: 600 !important; letter-spacing: -.01em !important;
      color: #1A1A1A !important; line-height: 1.25 !important;
    }
    #admin-modal .admin-sh p { color: #6B6B6B !important; font-size: .875rem !important; margin-top: 4px !important; }

    /* ── Quick stats cards ── */
    #admin-modal #gal-quick-stats {
      gap: 12px !important; background: transparent !important; margin-bottom: 28px !important;
    }
    #admin-modal #gal-quick-stats > div {
      background: #FFFFFF !important; border: 1px solid #E8E8E8 !important;
      border-radius: 8px !important; padding: 18px 20px 16px !important;
      box-shadow: 0 1px 3px rgba(0,0,0,.04) !important;
      transition: box-shadow .15s, border-color .15s !important;
    }
    #admin-modal #gal-quick-stats > div:hover {
      border-color: #C8C8C8 !important;
      box-shadow: 0 4px 12px rgba(0,0,0,.07) !important;
    }
    #admin-modal #gal-quick-stats > div::before { display: none !important; }
    #admin-modal .bk-stat-val {
      font-family: var(--adm-ff) !important; font-size: 1.75rem !important;
      font-weight: 600 !important; color: #1A1A1A !important;
      line-height: 1 !important; margin-bottom: 6px !important; display: block !important;
    }
    #admin-modal .bk-stat-lbl {
      font-size: .72rem !important; letter-spacing: .02em !important;
      text-transform: none !important; color: #6B6B6B !important; font-weight: 400 !important;
    }

    /* ── Booking stat cards ── */
    #admin-modal .bk-stat {
      background: #FFFFFF !important; border-radius: 8px !important;
      border: 1px solid #E8E8E8 !important; padding: 18px 16px !important;
      box-shadow: 0 1px 3px rgba(0,0,0,.04) !important;
      transition: box-shadow .15s !important;
    }
    #admin-modal .bk-stat:hover { box-shadow: 0 4px 12px rgba(0,0,0,.07) !important; }
    #admin-modal .bk-stat-lbl { color: #6B6B6B !important; }

    /* ── Gallery grid cards ── */
    #admin-modal .gc {
      background: #FFFFFF !important; border-radius: 8px !important;
      border: 1px solid #E8E8E8 !important;
      box-shadow: 0 1px 3px rgba(0,0,0,.04) !important;
    }
    #admin-modal .gc:hover {
      border-color: #C8C8C8 !important;
      box-shadow: 0 6px 20px rgba(0,0,0,.09) !important;
      transform: translateY(-2px) !important;
    }
    #admin-modal .gc-body { border-top: 1px solid #F0F0F0 !important; padding: 12px 14px 14px !important; }
    #admin-modal .gc-name { color: #1A1A1A !important; font-size: .875rem !important; font-weight: 500 !important; }
    #admin-modal .gc-meta { color: #9E9E9E !important; font-size: .75rem !important; }
    #admin-modal .gal-cover { border-bottom: 1px solid #F0F0F0 !important; }

    /* ── Gallery list cards (expanded) ── */
    #admin-modal .gal-card {
      background: #FFFFFF !important; border-radius: 8px !important;
      border: 1px solid #E8E8E8 !important; margin-bottom: 10px !important;
      box-shadow: 0 1px 3px rgba(0,0,0,.04) !important;
      transition: box-shadow .15s, border-color .15s !important;
    }
    #admin-modal .gal-card:hover { border-color: #C8C8C8 !important; box-shadow: 0 4px 12px rgba(0,0,0,.07) !important; }
    #admin-modal .gal-card-name { font-size: 1.1rem !important; font-weight: 600 !important; color: #1A1A1A !important; }
    #admin-modal .gal-share { background: #F8F8F8 !important; border-radius: 6px !important; }
    #admin-modal .gal-share-label { color: #9E9E9E !important; }
    #admin-modal .gal-share-url { color: #1A1A1A !important; font-weight: 500 !important; }

    /* ── Form inputs ── */
    #admin-modal .a-input {
      background: #FFFFFF !important; border: 1px solid #E8E8E8 !important;
      border-bottom-color: #E8E8E8 !important; color: #1A1A1A !important;
      border-radius: 6px !important; padding: 9px 12px !important;
      font-family: var(--adm-ff) !important; font-size: .875rem !important; font-weight: 400 !important;
      transition: border-color .15s, box-shadow .15s !important;
    }
    #admin-modal .a-input:focus {
      border-color: #1A1A1A !important; border-bottom-color: #1A1A1A !important;
      box-shadow: 0 0 0 3px rgba(26,26,26,.07) !important; outline: none !important;
    }
    #admin-modal .a-input::placeholder { color: #C0C0C0 !important; }
    #admin-modal .a-field { margin-bottom: 18px !important; }
    #admin-modal .a-field label {
      font-family: var(--adm-ff) !important; font-size: .72rem !important;
      letter-spacing: 0 !important; text-transform: none !important;
      color: #6B6B6B !important; font-weight: 500 !important; margin-bottom: 6px !important;
    }
    #admin-modal .a-form { border-top: 1px solid #E8E8E8 !important; padding: 20px 0 !important; margin-bottom: 20px !important; }
    #admin-modal .a-form h3 {
      font-family: var(--adm-ff) !important; font-size: .72rem !important;
      letter-spacing: .04em !important; text-transform: uppercase !important;
      color: #A0A0A0 !important; font-weight: 600 !important; margin-bottom: 16px !important;
    }
    #admin-modal .a-textarea {
      background: #FFFFFF !important; border: 1px solid #E8E8E8 !important;
      border-radius: 6px !important; color: #1A1A1A !important;
      font-family: var(--adm-ff) !important;
    }
    #admin-modal .a-textarea:focus { border-color: #1A1A1A !important; }

    /* ── Buttons ── */
    #admin-modal .a-btn {
      background: #1A1A1A !important; color: #FFFFFF !important; border-color: #1A1A1A !important;
      padding: 9px 20px !important; font-family: var(--adm-ff) !important;
      font-size: .8rem !important; font-weight: 500 !important; letter-spacing: 0 !important;
      border-radius: 6px !important; transition: background .15s, box-shadow .15s !important;
    }
    #admin-modal .a-btn:hover { background: #333333 !important; box-shadow: none !important; }
    #admin-modal .a-btn-alt {
      background: #FFFFFF !important; color: #1A1A1A !important;
      border: 1px solid #E8E8E8 !important; border-radius: 6px !important;
      padding: 8px 18px !important; font-family: var(--adm-ff) !important;
      font-size: .8rem !important; font-weight: 500 !important; letter-spacing: 0 !important;
    }
    #admin-modal .a-btn-alt:hover { background: #F4F4F4 !important; border-color: #C8C8C8 !important; }
    #admin-modal .a-del { color: #9E9E9E !important; font-family: var(--adm-ff) !important; }
    #admin-modal .a-del:hover { color: #DC2626 !important; }
    #admin-modal .a-copy { color: #A0A0A0 !important; }
    #admin-modal .a-copy:hover { color: #1A1A1A !important; }
    #admin-modal .a-saved { color: #16A34A !important; }
    #admin-modal .a-empty { color: #A0A0A0 !important; font-family: var(--adm-ff) !important; }
    #admin-modal .a-err { color: #DC2626 !important; font-family: var(--adm-ff) !important; }

    /* ── Drop zone ── */
    #admin-modal .drop-zone {
      border: 2px dashed #E8E8E8 !important; border-radius: 8px !important;
      padding: 32px 20px !important; background: #FAFAFA !important;
      transition: border-color .15s, background .15s !important;
    }
    #admin-modal .drop-zone:hover { border-color: #1A1A1A !important; background: #F4F4F4 !important; }
    #admin-modal .dz-label { color: #1A1A1A !important; font-family: var(--adm-ff) !important; font-weight: 500 !important; }
    #admin-modal .dz-sub { color: #9E9E9E !important; font-family: var(--adm-ff) !important; }

    /* ── Filter / search bar ── */
    #admin-modal .gal-filter-bar { border-bottom: 1px solid #E8E8E8 !important; padding-bottom: 14px !important; margin-bottom: 18px !important; }
    #admin-modal .gal-search-in {
      background: #FFFFFF !important; border: 1px solid #E8E8E8 !important;
      color: #1A1A1A !important; border-radius: 6px !important; font-family: var(--adm-ff) !important;
    }
    #admin-modal .gal-search-in:focus { border-color: #1A1A1A !important; box-shadow: 0 0 0 3px rgba(26,26,26,.07) !important; }
    #admin-modal .gal-filter-sel {
      background: #FFFFFF !important; border: 1px solid #E8E8E8 !important;
      color: #1A1A1A !important; border-radius: 6px !important;
    }
    #admin-modal .gal-filter-sel option { background: #FFFFFF !important; }
    #admin-modal .gal-filter-sel:focus { border-color: #1A1A1A !important; }
    #admin-modal .gal-starred-toggle { border: 1px solid #E8E8E8 !important; color: #6B6B6B !important; border-radius: 6px !important; }
    #admin-modal .gal-starred-toggle.on { border-color: #1A1A1A !important; color: #1A1A1A !important; background: #F0F0F0 !important; }
    #admin-modal .gal-count-label { color: #9E9E9E !important; font-family: var(--adm-ff) !important; }

    /* ── Edit / detail panel ── */
    #admin-modal .gal-edit-panel { background: #FFFFFF !important; border-left: 1px solid #E8E8E8 !important; }
    #admin-modal .gep-header { border-bottom: 1px solid #E8E8E8 !important; }
    #admin-modal .gep-title { color: #1A1A1A !important; font-family: var(--adm-ff) !important; font-weight: 600 !important; }
    #admin-modal .gep-section-label {
      color: #6B6B6B !important; border-bottom: 1px solid #E8E8E8 !important;
      font-family: var(--adm-ff) !important; font-size: .7rem !important;
      letter-spacing: .04em !important; text-transform: uppercase !important; font-weight: 600 !important;
    }
    #admin-modal .gal-filter-bar { border-bottom-color: #E8E8E8 !important; }
    #admin-modal .gep-overlay { background: rgba(255,255,255,.7) !important; }

    /* ── Subtabs ── */
    #admin-modal .bk-admin-subtab {
      color: #3A3A3A !important; font-family: var(--adm-ff) !important;
      font-size: .8rem !important; font-weight: 500 !important;
      letter-spacing: 0 !important; padding-bottom: 10px !important;
    }
    #admin-modal .bk-admin-subtab:hover { color: #1A1A1A !important; }
    #admin-modal .bk-admin-subtab.on { color: #1A1A1A !important; border-bottom-color: #1A1A1A !important; font-weight: 600 !important; }
    #admin-modal .bk-admin-tabs { border-bottom-color: #E0E0E0 !important; }

    /* ── Booking panel text overrides (dark vars → dark on white) ── */
    #admin-modal .bk-stat { background: #F8F8F8 !important; border-color: #E8E8E8 !important; }
    #admin-modal .bk-stat-val { color: #1A1A1A !important; }
    #admin-modal .bk-stat-lbl { color: #5A5A5A !important; }
    #admin-modal .bk-big-cal { background: #F8F8F8 !important; border-color: #E8E8E8 !important; }
    #admin-modal .bk-big-cal-hdr h3 { color: #1A1A1A !important; }
    #admin-modal .bk-big-cal-dow span { color: #5A5A5A !important; }
    #admin-modal .bk-big-day { color: #1A1A1A !important; }
    #admin-modal .bk-big-day:not(.bke):hover { background: rgba(0,0,0,.04) !important; border-color: #D0D0D0 !important; }
    #admin-modal .bk-big-day.bku .bkdn { opacity: .35 !important; }
    #admin-modal .bk-big-day.bku::after { color: #888 !important; }
    #admin-modal .bk-day-panel { background: #F8F8F8 !important; border-color: #E8E8E8 !important; }
    #admin-modal .bk-day-panel h4 { color: #1A1A1A !important; border-bottom-color: #E8E8E8 !important; }
    #admin-modal .bk-booking-item { background: #FFFFFF !important; border-color: #E0E0E0 !important; }
    #admin-modal .bk-bi-name { color: #1A1A1A !important; }
    #admin-modal .bk-bi-meta { color: #5A5A5A !important; }
    #admin-modal .bk-empty-day { color: #888 !important; }
    #admin-modal .bk-avail-card { background: #F8F8F8 !important; border-color: #E8E8E8 !important; }
    #admin-modal .bk-avail-card h4 { color: #1A1A1A !important; border-bottom-color: #E8E8E8 !important; }
    #admin-modal .bk-day-row { border-bottom-color: #ECECEC !important; }
    #admin-modal .bk-dname { color: #5A5A5A !important; }
    #admin-modal .bk-tsep { color: #888 !important; }
    #admin-modal .bk-tinput { background: #FFFFFF !important; border-color: #D0D0D0 !important; color: #1A1A1A !important; }
    #admin-modal .bk-tinput:focus { border-color: #1A1A1A !important; }
    #admin-modal .bk-toggle-track { background: #D0D0D0 !important; border-color: #C0C0C0 !important; }
    #admin-modal .bk-toggle-track::before { background: #888 !important; }
    #admin-modal .bk-blocked-item { background: #FFFFFF !important; border-color: #E0E0E0 !important; }
    #admin-modal .bk-blocked-item .bbl { color: #1A1A1A !important; }
    #admin-modal .bk-blocked-item .bbn { color: #5A5A5A !important; }
    #admin-modal .bk-rm-blocked { color: #888 !important; }
    #admin-modal .bk-add-blocked-row input { background: #FFFFFF !important; border-color: #D0D0D0 !important; color: #1A1A1A !important; }
    #admin-modal .bk-add-blocked-row input:focus { border-color: #1A1A1A !important; }
    #admin-modal .bk-st-item { background: #F8F8F8 !important; border-color: #E8E8E8 !important; }
    #admin-modal .bk-st-name { color: #1A1A1A !important; }
    #admin-modal .bk-st-meta { color: #5A5A5A !important; }
    #admin-modal .bk-st-price small { color: #5A5A5A !important; }
    #admin-modal .bk-add-form { background: #F8F8F8 !important; border-color: #E8E8E8 !important; }
    #admin-modal .bk-add-form h4 { color: #1A1A1A !important; }

    /* ── Toast ── */
    #admin-modal .a-toast {
      background: #FFFFFF !important; border: 1px solid #E8E8E8 !important;
      border-left: 3px solid #1A1A1A !important; border-radius: 6px !important;
      padding: 12px 16px !important; color: #1A1A1A !important;
      box-shadow: 0 4px 16px rgba(0,0,0,.08) !important;
      font-family: var(--adm-ff) !important;
    }
    #admin-modal .a-toast.a-toast-err { border-left-color: #DC2626 !important; }

    /* ── Client area cards ── */
    #admin-modal .ca-admin-card { background: #FFFFFF !important; border: 1px solid #E8E8E8 !important; border-radius: 8px !important; }
    #admin-modal .ca-admin-meta { color: #9E9E9E !important; font-family: var(--adm-ff) !important; }

    /* ── Settings groups ── */
    #admin-modal .a-settings-group h3 {
      font-family: var(--adm-ff) !important; font-size: .72rem !important;
      letter-spacing: .04em !important; text-transform: uppercase !important;
      color: #9E9E9E !important; font-weight: 600 !important;
    }

    /* ── Empty states ── */
    #admin-modal .gal-empty-state, #admin-modal .a-empty {
      letter-spacing: 0 !important; font-family: var(--adm-ff) !important;
    }

    /* ── Gallery card cover area ── */
    #admin-modal .gc-cover { background: #F0F0F0 !important; }
    #admin-modal .gc:hover .gc-cover img { filter: brightness(.96) !important; }
    #admin-modal .gc-cover-empty { color: #C0C0C0 !important; letter-spacing: .04em !important; text-transform: none !important; font-family: var(--adm-ff) !important; }
    #admin-modal .gc-status-dot.draft { background: #9E9E9E !important; }

    /* ── Gallery cover image (edit panel picker) ── */
    #admin-modal .gal-cover { background: #F0F0F0 !important; }

    /* ── Selection badge ── */
    #admin-modal .gc-sel-badge { background: #1A1A1A !important; color: #FFFFFF !important; }

    /* ── Quick photo thumbs ── */
    #admin-modal .gal-photo-thumb { background: #F0F0F0 !important; }

    /* ── Card meta ── */
    #admin-modal .gal-card-meta { color: #9E9E9E !important; font-size: .75rem !important; letter-spacing: 0 !important; text-transform: none !important; font-family: var(--adm-ff) !important; }
    #admin-modal .gal-card-name { font-family: var(--adm-ff) !important; }

    .admin-login-wrap {
      min-height:100vh; display:flex; align-items:center; justify-content:center;
    }
    .admin-login-box {
      width:100%; max-width:400px;
      padding:52px 44px; background:var(--surface); border:1px solid var(--border);
    }
    .admin-login-box h2 { font-family:var(--ff-d); font-size:2.2rem; font-weight:300; margin-bottom:8px; }
    .admin-login-box > p { font-size:.82rem; color:var(--muted); margin-bottom:36px; }
    .a-tag { font-size:.62rem; letter-spacing:.28em; text-transform:uppercase; color:var(--gold); margin-bottom:18px; }
    .a-field { margin-bottom:24px; }
    .a-field label { display:block; font-size:.5rem; letter-spacing:.32em; text-transform:uppercase; color:rgba(122,122,114,.5); margin-bottom:12px; }
    .a-input {
      width:100%; background:transparent; border:none;
      border-bottom:1px solid var(--border); color:var(--text);
      font-family:var(--ff-b); font-size:.95rem; font-weight:300;
      padding:10px 0; outline:none; transition:border-color .2s;
    }
    .a-input:focus { border-color:var(--gold); }
    .a-input::placeholder { color:rgba(122,122,114,.4); }
    .a-err { font-size:.72rem; color:#e05a5a; margin-bottom:16px; display:none; }

    /* ── Admin layout ── */
    #admin-dash { display:none; height:100vh; overflow:hidden; }
    .admin-layout { display:flex; height:100vh; }

    /* Sidebar — editorial, no fills */
    .admin-sidebar {
      width:230px; flex-shrink:0;
      background:#050505;
      border-right:1px solid rgba(255,255,255,.04);
      display:flex; flex-direction:column;
      overflow-y:auto;
    }
    .admin-sidebar-logo {
      padding:40px 28px 32px;
      border-bottom:1px solid rgba(255,255,255,.04);
    }
    .admin-sidebar-logo .asl-brand {
      font-family:var(--ff-d); font-size:1.2rem; font-weight:300;
      letter-spacing:.1em; display:block; color:var(--text);
      line-height:1.2;
    }
    .admin-sidebar-logo .asl-tag {
      font-size:.46rem; letter-spacing:.4em; text-transform:uppercase;
      color:rgba(201,169,110,.55); margin-top:8px; display:block;
    }
    .admin-nav { flex:1; padding:24px 0; }
    .admin-tab {
      display:flex; align-items:center; gap:14px;
      width:100%; padding:13px 28px;
      font-size:.54rem; letter-spacing:.28em; text-transform:uppercase;
      color:rgba(122,122,114,.55); cursor:pointer; background:none; border:none;
      text-align:left; transition:color .3s;
      position:relative; white-space:nowrap;
    }
    .admin-tab:hover { color:rgba(240,237,232,.65); }
    .admin-tab.on { color:var(--text); }
    .admin-tab.on::before {
      content:''; position:absolute; left:0; top:50%; transform:translateY(-50%);
      width:1px; height:14px; background:var(--gold);
    }
    .anav-icon {
      width:13px; height:13px; flex-shrink:0;
      opacity:.35; transition:opacity .3s;
    }
    .admin-tab.on .anav-icon { opacity:.65; }
    .admin-tab:hover .anav-icon { opacity:.45; }
    .anav-count {
      margin-left:auto; font-style:normal;
      font-size:.5rem; color:rgba(122,122,114,.4);
      letter-spacing:.04em; background:none; padding:0;
    }
    .admin-sidebar-foot {
      padding:24px 28px;
      border-top:1px solid rgba(255,255,255,.04);
    }
    .a-exit {
      font-size:.5rem; letter-spacing:.3em; text-transform:uppercase;
      color:rgba(122,122,114,.35); transition:color .3s; cursor:pointer;
      background:none; border:none; width:100%; text-align:left; padding:0;
    }
    .a-exit:hover { color:rgba(122,122,114,.7); }

    .admin-main { flex:1; overflow-y:auto; min-width:0; }
    .admin-body { padding:52px 64px; max-width:960px; }
    .admin-section { display:none; }

    /* ── Toast notifications ── */
    #admin-toast {
      position:fixed; bottom:28px; right:28px; z-index:9999;
      display:flex; flex-direction:column; gap:10px; pointer-events:none;
    }
    .a-toast {
      background:var(--surface); border:1px solid var(--border);
      border-left:3px solid var(--gold);
      padding:12px 20px; font-size:.75rem; color:var(--text);
      min-width:220px; max-width:340px;
      opacity:0; transform:translateX(20px);
      transition:opacity .25s, transform .25s; pointer-events:none;
    }
    .a-toast.show { opacity:1; transform:translateX(0); }
    .a-toast.a-toast-err { border-left-color:#e05a5a; }

    /* ── Gallery card cover ── */
    .gal-cover {
      width:100%; height:180px; object-fit:cover; display:block;
      background:var(--dark); border-bottom:1px solid rgba(255,255,255,.05);
    }
    .gal-cover-placeholder {
      width:100%; height:80px; background:var(--dark);
      display:flex; align-items:center; justify-content:center;
      border-bottom:1px solid var(--border);
      font-size:.58rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted);
    }
    .admin-section.on { display:block; }

    .admin-sh {
      display:flex; align-items:flex-start; justify-content:space-between;
      margin-bottom:44px; flex-wrap:wrap; gap:20px;
      padding-bottom:28px; border-bottom:1px solid rgba(255,255,255,.05);
    }
    .admin-sh h2 {
      font-family:var(--ff-d); font-size:3rem; font-weight:300;
      letter-spacing:-.01em; line-height:1;
    }
    .admin-sh p {
      font-size:.72rem; color:rgba(122,122,114,.65);
      margin-top:10px; line-height:1.8; letter-spacing:.04em; max-width:480px;
    }

    .a-form {
      background:none; border:none;
      border-top:1px solid rgba(255,255,255,.05);
      padding:28px 0; margin-bottom:28px;
    }
    .a-form h3 {
      font-size:.48rem; letter-spacing:.36em; text-transform:uppercase;
      color:rgba(201,169,110,.5); margin-bottom:24px;
    }
    .a-row { display:flex; gap:20px; flex-wrap:wrap; }
    .a-row .a-field { flex:1; min-width:160px; }
    .a-actions { display:flex; gap:12px; align-items:center; margin-top:20px; }
    .a-btn {
      background:var(--gold); color:var(--black); border:1px solid var(--gold);
      cursor:pointer; padding:13px 36px;
      font-size:.56rem; letter-spacing:.3em; text-transform:uppercase;
      font-weight:500; transition:background .25s, color .25s;
    }
    .a-btn:hover { background:transparent; color:var(--gold); }
    .a-btn-alt {
      background:none; border:1px solid rgba(255,255,255,.1); color:rgba(122,122,114,.7);
      cursor:pointer; padding:12px 28px;
      font-size:.56rem; letter-spacing:.24em; text-transform:uppercase;
      transition:border-color .25s, color .25s;
    }
    .a-btn-alt:hover { border-color:rgba(255,255,255,.3); color:var(--text); }
    .a-saved { font-size:.68rem; color:rgba(201,169,110,.7); opacity:0; transition:opacity .3s; display:block; margin-top:14px; letter-spacing:.08em; }
    .a-saved.show { opacity:1; }
    .a-empty {
      padding:60px 40px; text-align:center;
      font-size:.65rem; color:rgba(122,122,114,.4);
      letter-spacing:.18em; text-transform:uppercase;
    }
    .a-del {
      background:none; border:none; color:rgba(224,90,90,.45);
      cursor:pointer; padding:7px 0;
      font-size:.54rem; letter-spacing:.2em; text-transform:uppercase;
      transition:color .2s; flex-shrink:0;
    }
    .a-del:hover { color:#e05a5a; }

    .gal-card {
      background:rgba(255,255,255,.018);
      border:1px solid rgba(255,255,255,.06);
      margin-bottom:16px;
    }
    .gal-card-head { display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:14px; flex-wrap:wrap; gap:12px; }
    .gal-card-name { font-family:var(--ff-d); font-size:2rem; font-weight:300; letter-spacing:.02em; line-height:1.1; }
    .gal-card-meta {
      font-size:.56rem; letter-spacing:.2em; text-transform:uppercase;
      color:rgba(122,122,114,.55); margin-top:6px;
    }
    .gal-share {
      background:rgba(255,255,255,.025); padding:10px 16px; margin-bottom:14px;
      display:flex; align-items:center; gap:12px; flex-wrap:wrap;
    }
    .gal-share-label { font-size:.5rem; letter-spacing:.28em; text-transform:uppercase; color:rgba(122,122,114,.4); flex-shrink:0; }
    .gal-share-url { flex:1; font-size:.7rem; color:rgba(201,169,110,.7); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; }
    .a-copy {
      background:none; border:none; color:rgba(122,122,114,.45); cursor:pointer;
      padding:4px 0; font-size:.52rem; letter-spacing:.22em; text-transform:uppercase;
      transition:color .2s; flex-shrink:0;
    }
    .a-copy:hover { color:var(--gold); }
    .gal-photos { display:flex; gap:4px; flex-wrap:wrap; margin-bottom:14px; }
    .gal-photo-wrap { position:relative; width:72px; height:72px; }
    .gal-photo-thumb { width:72px; height:72px; object-fit:cover; display:block; background:var(--dark); }
    .gal-photo-rm {
      position:absolute; top:0; right:0; width:20px; height:20px;
      background:rgba(224,90,90,.85); color:#fff; border:none;
      font-size:12px; cursor:pointer; display:flex; align-items:center;
      justify-content:center; opacity:0; transition:opacity .2s; line-height:1;
    }
    .gal-photo-wrap:hover .gal-photo-rm { opacity:1; }
    .gal-add-photo { display:flex; gap:12px; align-items:flex-end; flex-wrap:wrap; }
    .gal-add-photo .a-field { flex:1; min-width:200px; margin-bottom:0; }
    .a-settings-group { margin-bottom:48px; }
    .a-settings-group h3 {
      font-size:.48rem; letter-spacing:.36em; text-transform:uppercase;
      color:rgba(201,169,110,.5); margin-bottom:24px;
    }


    /* ══ GALLERY GRID (Pixieset-style) ═══════════════════════════════════ */
    .gal-filter-bar {
      display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
      padding: 0 0 20px 0; border-bottom: 1px solid var(--border); margin-bottom: 28px;
    }
    .gal-search-in {
      flex: 1; min-width: 180px; max-width: 280px;
      background: var(--surface); border: 1px solid var(--border2); color: var(--text);
      font-family: var(--ff-b); font-size: .78rem; padding: 9px 14px;
      border-radius: 6px; outline: none; transition: border-color .2s, box-shadow .2s;
    }
    .gal-search-in:focus { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(201,169,110,.1); }
    .gal-filter-sel {
      background: var(--surface); border: 1px solid var(--border2); color: var(--text);
      font-family: var(--ff-b); font-size: .72rem; letter-spacing: .04em;
      padding: 9px 12px; cursor: pointer; border-radius: 6px;
      outline: none; transition: border-color .2s;
      -webkit-appearance: none; appearance: none;
      padding-right: 28px;
      background-image: url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%237a7a72' stroke-width='1.2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
      background-repeat: no-repeat; background-position: right 10px center;
    }
    .gal-filter-sel:focus { border-color: var(--gold); }
    .gal-filter-sel option { background: var(--surface); }
    .gal-starred-toggle {
      display: flex; align-items: center; gap: 5px;
      font-size: .72rem; letter-spacing: .08em; text-transform: uppercase;
      border: 1px solid var(--border2); padding: 9px 14px; border-radius: 6px;
      color: var(--muted); background: none; cursor: pointer;
      transition: border-color .2s, color .2s, background .2s; white-space: nowrap;
    }
    .gal-starred-toggle:hover { border-color: var(--gold-d); color: var(--text); }
    .gal-starred-toggle.on { border-color: var(--gold); color: var(--gold); background: rgba(201,169,110,.07); }
    .gal-count-label {
      font-size: .7rem; letter-spacing: .06em;
      color: var(--muted); margin-left: auto; white-space: nowrap;
    }

    /* Grid */
    .gal-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
      gap: 16px;
    }
    .gc {
      background: var(--surface); border: 1px solid var(--border);
      border-radius: 10px; overflow: hidden; cursor: pointer;
      position: relative;
      transition: box-shadow .25s, border-color .25s, transform .2s var(--ease);
    }
    .gc:hover {
      border-color: rgba(255,255,255,.14);
      box-shadow: 0 8px 32px rgba(0,0,0,.5);
      transform: translateY(-2px);
    }
    .gc-cover {
      position: relative; aspect-ratio: 3/4; overflow: hidden;
      background: #0a0a0a;
    }
    .gc-cover img {
      width: 100%; height: 100%; object-fit: cover;
      transition: transform .6s var(--ease), filter .4s;
      filter: brightness(.95);
    }
    .gc:hover .gc-cover img { transform: scale(1.04); filter: brightness(.8); }
    .gc-cover-empty {
      width: 100%; height: 100%; display: flex; align-items: center; justify-content: center;
      font-size: .58rem; letter-spacing: .22em; text-transform: uppercase;
      color: rgba(122,122,114,.3);
    }

    /* Status dot — minimal, bottom-left */
    .gc-status-dot {
      position: absolute; bottom: 14px; left: 14px; z-index: 4;
      width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0;
    }
    .gc-status-dot.published { background: #5db870; }
    .gc-status-dot.draft     { background: #c9a96e; }
    .gc-status-dot.expired   { background: #c05050; }

    /* Star — always present, subtle unless starred */
    /* Selection badge — shown on cover when client has selected photos */
    .gc-sel-badge {
      position: absolute; top: 12px; left: 12px; z-index: 4;
      background: rgba(201,169,110,0.88);
      color: #0a0a0a;
      font-size: .58rem;
      font-weight: 500;
      letter-spacing: .12em;
      text-transform: uppercase;
      padding: 3px 8px;
      border-radius: 3px;
      pointer-events: none;
    }
    .gc-star {
      position: absolute; top: 12px; right: 12px; z-index: 4;
      font-size: .85rem; line-height: 1; cursor: pointer; border: none; background: none;
      color: rgba(255,255,255,0); transition: color .25s;
      text-shadow: 0 1px 4px rgba(0,0,0,.6);
    }
    .gc:hover .gc-star { color: rgba(255,255,255,.45); }
    .gc-star.on { color: var(--gold) !important; }
    .gc-star:hover { color: var(--gold) !important; }

    /* Hover action icons — appear at bottom of cover */
    .gc-hover-actions {
      position: absolute; top: 0; left: 0; right: 0; bottom: 0;
      display: flex; align-items: flex-end; justify-content: flex-end; padding: 12px;
      gap: 6px; opacity: 0;
      transition: opacity .22s;
      z-index: 3;
      background: linear-gradient(to top, rgba(8,8,8,.65) 0%, transparent 55%);
      pointer-events: none;
    }
    .gc:hover .gc-hover-actions { opacity: 1; pointer-events: all; }
    .gc-ha-btn {
      width: 32px; height: 32px; display: flex; align-items: center; justify-content: center;
      border: 1px solid rgba(255,255,255,.22); border-radius: 50%;
      background: rgba(8,8,8,.55); backdrop-filter: blur(6px);
      color: rgba(255,255,255,.85); cursor: pointer; flex-shrink: 0;
      transition: background .2s, border-color .2s, color .2s;
    }
    .gc-ha-btn:hover { background: rgba(201,169,110,.25); border-color: var(--gold); color: var(--gold); }
    .gc-ha-btn.red:hover { background: rgba(200,60,60,.3); border-color: rgba(200,60,60,.8); color: #e08080; }
    .gc-ha-btn svg { pointer-events: none; }
    /* Edit label — appears beside icons */
    .gc-ha-spacer { flex: 1; }

    /* Bottom info — always visible, sits below photo */
    .gc-body {
      padding: 14px 16px 16px;
      border-top: 1px solid var(--border);
    }
    .gc-body-text { flex: 1; min-width: 0; }
    .gc-name {
      font-family: var(--ff-b); font-size: .88rem; font-weight: 500; letter-spacing: .01em;
      white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
      margin-bottom: 5px; color: var(--text);
    }
    .gc-meta {
      font-size: .7rem; letter-spacing: .03em;
      color: var(--muted); display: flex; align-items: center; gap: 6px;
    }
    .gc-meta-dot { opacity: .35; }
    .gc-status-inline {
      width: 5px; height: 5px; border-radius: 50%; flex-shrink: 0;
    }
    .gc-status-inline.published { background: #5db870; }
    .gc-status-inline.draft     { background: #c9a96e; }
    .gc-status-inline.expired   { background: #c05050; }
    .gc-expiry-badge {
      font-size: .54rem; letter-spacing: .1em; text-transform: uppercase;
      padding: 1px 5px; background: rgba(192,80,80,.15);
      color: #c07070; margin-top: 4px; display: inline-block;
    }
    .gc-expiry-badge.soon {
      background: rgba(201,169,110,.12); color: var(--gold);
    }
    .gc-pin-badge { color: rgba(201,169,110,.6); font-size: .75rem; flex-shrink: 0; }
    .gc-review-btn {
      margin-top: 8px; padding: 5px 12px; font-size: .6rem;
      letter-spacing: .14em; text-transform: uppercase; font-family: var(--ff-s);
      background: transparent; border: 1px solid rgba(201,169,110,.45);
      color: var(--gold); cursor: pointer; border-radius: 2px;
      transition: background .2s, border-color .2s, color .2s;
      display: inline-block;
    }
    .gc-review-btn:hover:not(:disabled) { background: rgba(201,169,110,.12); border-color: var(--gold); }
    .gc-review-btn.sent, .gc-review-btn:disabled {
      border-color: rgba(100,180,100,.4); color: rgba(100,180,100,.8);
      cursor: default; opacity: .75;
    }
    .gal-empty-state {
      grid-column: 1/-1; padding: 60px 0; text-align: center;
      font-size: .8rem; color: var(--muted); letter-spacing: .08em;
    }

    /* ── Drop zone ───────────────────────────────────────────────────── */
    .drop-zone {
      border: 1px dashed rgba(201,169,110,.35); padding: 28px 20px;
      text-align: center; cursor: pointer; position: relative;
      transition: border-color .2s, background .2s; margin-bottom: 12px;
    }
    .drop-zone:hover, .drop-zone.drag-over {
      border-color: var(--gold); background: rgba(201,169,110,.05);
    }
    .drop-zone input[type="file"] {
      position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%;
    }
    .dz-icon {
      font-size: 1.4rem; margin-bottom: 8px; color: rgba(201,169,110,.5);
      line-height: 1;
    }
    .dz-label {
      font-size: .72rem; letter-spacing: .1em; text-transform: uppercase;
      color: var(--muted); margin-bottom: 4px;
    }
    .dz-sub {
      font-size: .62rem; letter-spacing: .06em; color: rgba(122,122,114,.5);
    }
    .dz-drive-row {
      display: flex; gap: 8px; margin-top: 10px;
    }
    .dz-drive-in {
      flex: 1; background: var(--dark); border: 1px solid var(--border);
      color: var(--text); font-family: var(--ff-b); font-size: .72rem;
      padding: 7px 10px; outline: none; transition: border-color .2s;
    }
    .dz-drive-in:focus { border-color: var(--gold); }
    .dz-drive-btn {
      font-size: .66rem; letter-spacing: .12em; text-transform: uppercase;
      border: 1px solid var(--border); padding: 7px 14px; background: none;
      color: var(--muted); cursor: pointer; transition: all .2s; white-space: nowrap;
    }
    .dz-drive-btn:hover { border-color: var(--gold); color: var(--gold); }
    .dz-preview-strip {
      display: flex; flex-wrap: wrap; gap: 5px; margin-top: 10px;
    }
    .dz-preview-thumb {
      width: 56px; height: 56px; object-fit: cover; opacity: .85;
    }
    .dz-msg {
      font-size: .68rem; color: var(--gold); margin-top: 8px; letter-spacing: .04em;
    }
    .dz-msg.err { color: #e07070; }

    /* Edit Panel (slide-in drawer) */
    .gal-edit-panel {
      position: fixed; top: 0; right: 0; bottom: 0;
      width: 560px; max-width: 100vw;
      background: var(--surface); border-left: 1px solid var(--border);
      z-index: 1100; transform: translateX(100%);
      transition: transform .35s var(--ease);
      display: flex; flex-direction: column; overflow: hidden;
    }
    .gal-edit-panel.open { transform: translateX(0); }
    .gep-header {
      padding: 20px 24px; border-bottom: 1px solid var(--border);
      display: flex; align-items: center; gap: 12px; flex-shrink: 0;
    }
    .gep-title { font-family: var(--ff-d); font-size: 1.3rem; font-weight: 400; flex: 1; }
    .gep-close {
      width: 30px; height: 30px; display: flex; align-items: center; justify-content: center;
      border: 1px solid var(--border); color: var(--muted); background: none; cursor: pointer;
      font-size: 1rem; transition: border-color .2s, color .2s;
    }
    .gep-close:hover { border-color: var(--gold); color: var(--text); }
    .gep-body { flex: 1; overflow-y: auto; padding: 24px; }
    .gep-section { margin-bottom: 28px; }
    .gep-section-label {
      font-size: .6rem; letter-spacing: .2em; text-transform: uppercase;
      color: var(--gold); margin-bottom: 12px; padding-bottom: 8px;
      border-bottom: 1px solid var(--border);
    }
    .gep-status-row { display: flex; gap: 8px; }
    .gep-status-btn {
      flex: 1; font-size: .65rem; letter-spacing: .12em; text-transform: uppercase;
      padding: 8px; border: 1px solid var(--border); background: none;
      color: var(--muted); cursor: pointer; transition: all .2s;
    }
    .gep-status-btn.on.published { border-color: #1f2024; color: #1f2024; background: rgba(31,32,36,.1); }
    .gep-status-btn.on.draft { border-color: #ff9800; color: #ff9800; background: rgba(255,152,0,.1); }
    .gep-status-btn.on.expired { border-color: #f44336; color: #f44336; background: rgba(244,67,54,.1); }
    .gep-theme-btn.active { border-color: var(--gold) !important; color: var(--gold) !important; }
    .gep-overlay { position: fixed; inset: 0; background: rgba(8,8,8,.5); z-index: 1099; display: none; }
    .gep-overlay.open { display: block; }
    #pbc-gal-editor.open { display:flex !important; }
    .pbc-ged-itab { width:40px; height:40px; display:flex; align-items:center; justify-content:center; background:none; border:none; border-radius:9px; cursor:pointer; color:#9a9aa0; transition:background .15s, color .15s; }
    .pbc-ged-itab svg { width:19px; height:19px; }
    .pbc-ged-itab:hover { background:#f4f4f5; color:#1f2024; }
    .pbc-ged-itab.active { background:#f0f0f1; color:#1f2024; }
    .pbc-ged-snav-item { display:block; width:calc(100% - 16px); text-align:left; background:none; border:none; margin:1px 8px; padding:9px 12px; cursor:pointer; font-size:.82rem; color:#6b6b72; border-radius:8px; box-sizing:border-box; font-family:'Inter',sans-serif; transition:background .14s, color .14s; }
    .pbc-ged-snav-item:hover { background:#f4f4f5; color:#1f2024; }
    .pbc-ged-snav-item.active { background:#f0f0f1; color:#1f2024; font-weight:600; }
    .pbc-ged-snav-label { display:block; padding:14px 16px 6px; font-size:.62rem; color:#9a9aa0; letter-spacing:.1em; text-transform:uppercase; font-weight:700; }

    /* ══ EDITOR PANEL COMPONENT SYSTEM (Pixieset-grade) ══ */
    #pbc-ged-content { font-family:'Inter',-apple-system,sans-serif; color:#1f2024; }
    .ged-h { font-size:1.2rem; font-weight:700; letter-spacing:-.02em; margin:0 0 3px; }
    .ged-sub { font-size:.82rem; color:#85858c; margin:0 0 22px; line-height:1.5; }
    .ged-group { margin-bottom:26px; }
    .ged-group + .ged-group { border-top:1px solid #f0f0f1; padding-top:22px; }
    .ged-group-label { font-size:.78rem; font-weight:600; color:#1f2024; margin-bottom:11px; }
    .ged-field { margin-bottom:16px; }
    .ged-label { display:block; font-size:.74rem; font-weight:600; color:#1f2024; margin-bottom:7px; }
    .ged-help { font-size:.74rem; color:#85858c; margin-top:6px; line-height:1.5; }
    .ged-input, .ged-textarea, .ged-select { width:100%; border:1px solid #dcdce0; border-radius:9px; background:#fff; padding:0 13px; height:44px; font-size:.88rem; font-family:'Inter',sans-serif; color:#1f2024; outline:none; transition:border-color .15s, box-shadow .15s; }
    .ged-textarea { height:auto; min-height:84px; padding:11px 13px; line-height:1.55; resize:vertical; }
    .ged-input:focus, .ged-textarea:focus, .ged-select:focus { border-color:#1f2024; box-shadow:0 0 0 3px rgba(31,32,36,.08); }
    .ged-input::placeholder, .ged-textarea::placeholder { color:#b3b3b9; }
    .ged-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
    .ged-opt { border:1px solid #e8e8ea; border-radius:12px; overflow:hidden; cursor:pointer; background:#fff; transition:border-color .15s, box-shadow .15s, transform .12s; }
    .ged-opt:hover { border-color:#c8c8cc; box-shadow:0 2px 10px rgba(20,23,28,.06); transform:translateY(-1px); }
    .ged-opt.sel { border:2px solid #1f2024; }
    .ged-opt-vis { aspect-ratio:16/10; background:#f6f6f7; display:flex; align-items:center; justify-content:center; overflow:hidden; }
    .ged-opt-foot { padding:9px 12px; display:flex; align-items:center; justify-content:space-between; }
    .ged-opt-name { font-size:.8rem; font-weight:500; }
    .ged-opt-check { color:#1f2024; display:flex; }
    .ged-row { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:15px 16px; border:1px solid #e8e8ea; border-radius:12px; background:#fff; margin-bottom:12px; }
    .ged-row-name { font-size:.9rem; font-weight:600; }
    .ged-row-desc { font-size:.76rem; color:#85858c; margin-top:2px; }
    .ged-toggle { width:44px; height:26px; border-radius:99px; background:#dcdce0; position:relative; cursor:pointer; flex-shrink:0; transition:background .18s; border:none; padding:0; }
    .ged-toggle.on { background:#1f2024; }
    .ged-toggle::after { content:''; position:absolute; width:20px; height:20px; border-radius:50%; background:#fff; top:3px; left:3px; transition:left .18s; box-shadow:0 1px 3px rgba(0,0,0,.25); }
    .ged-toggle.on::after { left:21px; }
    .ged-statusrow { display:flex; gap:8px; }
    .ged-statusbtn { flex:1; padding:11px; border:1px solid #dcdce0; border-radius:9px; background:#fff; font-size:.78rem; font-weight:500; color:#6b6b72; cursor:pointer; transition:all .15s; text-transform:capitalize; }
    .ged-statusbtn:hover { border-color:#1f2024; color:#1f2024; }
    .ged-statusbtn.on { color:#fff; background:#1f2024; border-color:#1f2024; }
    .ged-statusbtn.on.draft { background:#b9791a; border-color:#b9791a; }
    .ged-statusbtn.on.expired { background:#c0392b; border-color:#c0392b; }
    .ged-table { width:100%; border-collapse:collapse; font-size:.83rem; }
    .ged-table th { text-align:left; padding:0 12px 12px; font-size:.66rem; font-weight:600; letter-spacing:.06em; color:#85858c; border-bottom:1px solid #e8e8ea; text-transform:uppercase; }
    .ged-table td { padding:14px 12px; border-bottom:1px solid #f0f0f1; }
    .ged-empty { padding:40px 20px; text-align:center; color:#85858c; font-size:.85rem; }
    .ged-copybtn { background:#fff; border:1px solid #dcdce0; padding:7px 13px; border-radius:8px; font-size:.74rem; font-weight:500; color:#1f2024; cursor:pointer; }
    .ged-copybtn:hover { background:#f4f4f5; }

    /* ══ PHOTO MANAGER ══════════════════════════════════════════════════ */
    .dm-thumb {
      position:relative; flex-shrink:0; cursor:grab;
      border:2px solid transparent; transition:border-color .2s, opacity .25s;
      user-select:none;
    }
    .dm-thumb:active { cursor:grabbing; }
    .dm-thumb.dragging { opacity:.25; border-color:var(--gold-d); }
    .dm-thumb.drag-over { border-color:var(--gold); box-shadow:0 0 0 1px var(--gold); }
    .dm-thumb img { display:block; object-fit:cover; background:var(--surface); }
    .dm-ov {
      position:absolute; inset:0; background:rgba(8,8,8,.72);
      opacity:0; transition:opacity .2s;
      display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px;
      pointer-events:none;
    }
    .dm-thumb:hover .dm-ov { opacity:1; pointer-events:all; }
    .dm-ov-btn {
      font-size:.56rem; letter-spacing:.18em; text-transform:uppercase; padding:5px 12px;
      border:1px solid rgba(255,255,255,.25); color:var(--text); background:none; cursor:pointer;
      transition:border-color .2s, background .2s; white-space:nowrap;
    }
    .dm-ov-btn:hover { border-color:var(--gold); background:rgba(201,169,110,.15); }
    .dm-ov-btn.red { border-color:rgba(224,90,90,.35); color:#e05a5a; }
    .dm-ov-btn.red:hover { border-color:#e05a5a; background:rgba(224,90,90,.12); }
    .dm-replace-wrap {
      position:absolute; inset:0; background:rgba(8,8,8,.97);
      display:none; flex-direction:column; align-items:center; justify-content:center;
      padding:10px; gap:6px;
    }
    .dm-thumb.replacing .dm-replace-wrap { display:flex; }
    .dm-thumb.replacing .dm-ov { display:none; }
    .dm-replace-wrap span { font-size:.55rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); }
    .dm-replace-wrap input {
      width:100%; background:transparent; border:none; border-bottom:1px solid var(--gold);
      color:var(--text); font-size:.7rem; padding:4px 0; outline:none; font-family:var(--ff-b); text-align:center;
    }
    .dm-replace-wrap small { font-size:.55rem; color:var(--muted); text-align:center; line-height:1.5; }

    /* ── Gallery/session card drag-to-reorder ── */
    .gal-drag-handle {
      display: flex; align-items: center; justify-content: center;
      width: 20px; min-width: 20px; cursor: grab;
      color: rgba(122,122,114,.25);
      font-size: .9rem; flex-shrink: 0; transition: color .25s;
      user-select: none;
    }
    .gal-drag-handle:hover { color: rgba(122,122,114,.7); }
    .gal-card.dragging { opacity: .28; }
    .gal-card.drag-over { outline: 1px solid var(--gold); }

    /* ══ SITE IMAGES — accordion / banner / kebab / focal lightbox ══ */

    /* Accordion */
    #admin-modal .si-acc {
      border: 1px solid var(--adm-border); border-radius: var(--adm-radius);
      overflow: hidden; margin-bottom: 12px;
    }
    #admin-modal .si-acc-head {
      display: flex; align-items: center; gap: 12px;
      width: 100%; padding: 14px 20px;
      background: #FFFFFF; border: none; cursor: pointer;
      font-family: var(--adm-ff); text-align: left;
      transition: background .15s;
    }
    #admin-modal .si-acc-head:hover { background: var(--adm-hover); }
    #admin-modal .si-acc-title {
      font-size: .82rem; font-weight: 600; color: var(--adm-text);
      letter-spacing: -.01em;
    }
    #admin-modal .si-acc-meta {
      font-size: .72rem; color: var(--adm-muted); margin-left: 4px;
    }
    #admin-modal .si-acc-chev {
      width: 16px; height: 16px; color: var(--adm-muted);
      margin-left: auto; flex-shrink: 0; transition: transform .2s ease;
    }
    #admin-modal .si-acc.si-acc-open .si-acc-chev { transform: rotate(180deg); }
    #admin-modal .si-acc-body {
      border-top: 1px solid var(--adm-border);
      padding: 20px; background: #FAFAFA;
    }

    /* Add slide row */
    #admin-modal .si-add-row {
      display: flex; gap: 8px; align-items: center; margin-top: 12px;
    }
    #admin-modal .si-add-row .a-input { flex: 1; margin-bottom: 0; }
    #admin-modal .si-add-btn {
      background: #1A1A1A; color: #fff; border: none;
      padding: 10px 18px; font-size: .72rem; font-weight: 500;
      cursor: pointer; border-radius: 6px; white-space: nowrap;
      font-family: var(--adm-ff); transition: opacity .15s;
    }
    #admin-modal .si-add-btn:hover { opacity: .8; }
    #admin-modal .si-pick-btn {
      background: none; border: 1px solid var(--adm-border);
      color: var(--adm-secondary); padding: 10px 16px;
      font-size: .72rem; cursor: pointer; border-radius: 6px;
      white-space: nowrap; font-family: var(--adm-ff); transition: border-color .15s, color .15s;
    }
    #admin-modal .si-pick-btn:hover { border-color: #1A1A1A; color: #1A1A1A; }
    #admin-modal .si-hint {
      font-size: .75rem; color: var(--adm-muted); margin: 0 0 14px; line-height: 1.5;
    }
    #admin-modal .a-btn-sm {
      background: #1A1A1A; color: #fff; border: none;
      padding: 7px 14px; font-size: .7rem; font-weight: 500;
      cursor: pointer; border-radius: 5px; white-space: nowrap;
      font-family: var(--adm-ff); transition: opacity .15s;
    }
    #admin-modal .a-btn-sm:hover { opacity: .75; }
    #admin-modal .a-btn-sm.active { background: var(--gold); color: #0a0700; }

    /* Hero banner list */
    #admin-modal #admin-hero-grid {
      display: flex; flex-direction: column; gap: 10px;
    }

    /* Full-bleed banner card */
    #admin-modal .si-hero-banner {
      position: relative; border-radius: 8px; overflow: hidden;
      border: 1px solid var(--adm-border);
      background: #E8E8E8;
      transition: box-shadow .2s;
    }
    #admin-modal .si-hero-banner:hover { box-shadow: 0 2px 12px rgba(0,0,0,.08); }
    #admin-modal .si-hero-banner.dragging { opacity: .35; }
    #admin-modal .si-hero-banner.drag-over { outline: 2px solid #1A1A1A; }

    /* Banner image */
    #admin-modal .si-banner-img {
      display: block; width: 100%; height: 210px;
      object-fit: cover; object-position: 50% 50%;
      user-select: none; pointer-events: none;
    }

    /* Banner number badge */
    #admin-modal .si-banner-badge {
      position: absolute; top: 12px; left: 14px;
      font-family: var(--adm-ff); font-size: .62rem; font-weight: 600;
      letter-spacing: .08em; color: rgba(255,255,255,.9);
      background: rgba(0,0,0,.45); backdrop-filter: blur(4px);
      padding: 3px 9px; border-radius: 4px; pointer-events: none;
    }

    /* Focal point trigger button */
    #admin-modal .si-fp-btn {
      position: absolute; bottom: 12px; left: 14px;
      background: rgba(255,255,255,.92); border: none;
      width: 34px; height: 34px; border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      cursor: pointer; font-size: .9rem; box-shadow: 0 1px 6px rgba(0,0,0,.2);
      transition: transform .15s, box-shadow .15s;
      color: #1A1A1A;
    }
    #admin-modal .si-fp-btn:hover { transform: scale(1.08); box-shadow: 0 2px 10px rgba(0,0,0,.25); }
    #admin-modal .si-fp-btn title { display: none; }

    /* Drag handle */
    #admin-modal .si-drag-handle {
      position: absolute; bottom: 12px; left: 56px;
      background: rgba(255,255,255,.92); border: none;
      width: 34px; height: 34px; border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      cursor: grab; font-size: .85rem; box-shadow: 0 1px 6px rgba(0,0,0,.2);
      color: #666; user-select: none;
    }
    #admin-modal .si-drag-handle:active { cursor: grabbing; }

    /* Kebab button */
    #admin-modal .si-kebab-btn {
      position: absolute; top: 10px; right: 10px;
      background: rgba(255,255,255,.92); border: none;
      width: 34px; height: 34px; border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      cursor: pointer; font-size: 1.1rem; font-weight: 700;
      box-shadow: 0 1px 6px rgba(0,0,0,.2); color: #1A1A1A; line-height: 1;
      transition: transform .15s;
    }
    #admin-modal .si-kebab-btn:hover { transform: scale(1.08); }

    /* Kebab dropdown menu */
    #admin-modal .si-kebab-menu {
      position: absolute; top: 48px; right: 10px; z-index: 50;
      background: #fff; border: 1px solid #E0E0E0;
      border-radius: 8px; box-shadow: 0 4px 20px rgba(0,0,0,.12);
      overflow: hidden; min-width: 150px;
      display: none;
    }
    #admin-modal .si-kebab-menu.open { display: block; }
    #admin-modal .si-kebab-menu button {
      display: block; width: 100%; text-align: left;
      padding: 10px 16px; background: none; border: none;
      font-family: var(--adm-ff); font-size: .78rem; color: var(--adm-text);
      cursor: pointer; transition: background .12s;
    }
    #admin-modal .si-kebab-menu button:hover { background: var(--adm-hover); }
    #admin-modal .si-kebab-menu button.si-km-danger { color: var(--adm-danger); }
    #admin-modal .si-kebab-menu button.si-km-danger:hover { background: #FEF2F2; }

    /* Inline replace URL row (hidden by default) */
    #admin-modal .si-repl-row {
      display: none; padding: 10px 14px 12px;
      background: #F8F8F8; border-top: 1px solid var(--adm-border);
      gap: 8px; align-items: center;
    }
    #admin-modal .si-repl-row.open { display: flex; }
    #admin-modal .si-repl-row .a-input { flex: 1; margin-bottom: 0; font-size: .78rem; }
    #admin-modal .si-repl-save {
      background: #1A1A1A; color: #fff; border: none;
      padding: 9px 16px; font-size: .72rem; border-radius: 6px;
      cursor: pointer; font-family: var(--adm-ff); white-space: nowrap;
      transition: opacity .15s;
    }
    #admin-modal .si-repl-save:hover { opacity: .8; }
    #admin-modal .si-repl-cancel {
      background: none; border: 1px solid var(--adm-border);
      color: var(--adm-secondary); padding: 9px 14px;
      font-size: .72rem; border-radius: 6px; cursor: pointer;
      font-family: var(--adm-ff); transition: border-color .15s;
    }
    #admin-modal .si-repl-cancel:hover { border-color: #999; }

    /* ── Focal Point Lightbox ── */
    #si-fp-lightbox {
      display: none; position: fixed; inset: 0; z-index: 3100;
      background: rgba(0,0,0,.82); backdrop-filter: blur(3px);
      align-items: center; justify-content: center;
    }
    #si-fp-lightbox.open { display: flex; }
    #si-fp-lightbox .si-fp-inner {
      position: relative; max-width: 880px; width: calc(100% - 48px);
      max-height: calc(100vh - 80px);
      border-radius: 10px; overflow: hidden;
      box-shadow: 0 24px 80px rgba(0,0,0,.5);
    }
    #si-fp-lightbox .si-fp-img {
      display: block; width: 100%; max-height: calc(100vh - 80px);
      object-fit: contain; background: #111;
      user-select: none; -webkit-user-drag: none;
    }
    /* Dot that shows focal position */
    #si-fp-lightbox .si-fp-dot {
      position: absolute; width: 26px; height: 26px;
      border-radius: 50%; border: 2.5px solid #fff;
      background: rgba(255,255,255,.25);
      box-shadow: 0 0 0 1px rgba(0,0,0,.4), 0 2px 8px rgba(0,0,0,.5);
      transform: translate(-50%, -50%);
      pointer-events: none; transition: left .15s, top .15s;
    }
    /* Crosshair lines */
    #si-fp-lightbox .si-fp-dot::before,
    #si-fp-lightbox .si-fp-dot::after {
      content: ''; position: absolute;
      background: rgba(255,255,255,.7);
    }
    #si-fp-lightbox .si-fp-dot::before {
      left: 50%; top: -12px; width: 1.5px; height: 36px;
      transform: translateX(-50%);
    }
    #si-fp-lightbox .si-fp-dot::after {
      top: 50%; left: -12px; height: 1.5px; width: 36px;
      transform: translateY(-50%);
    }
    /* Bottom bar */
    #si-fp-lightbox .si-fp-bar {
      position: absolute; bottom: 0; left: 0; right: 0;
      background: rgba(0,0,0,.65); backdrop-filter: blur(6px);
      display: flex; align-items: center; justify-content: space-between;
      padding: 10px 16px; gap: 12px;
    }
    #si-fp-lightbox .si-fp-hint {
      font-family: var(--adm-ff); font-size: .72rem; color: rgba(255,255,255,.7);
    }
    #si-fp-lightbox .si-fp-coords {
      font-family: 'DM Mono', monospace; font-size: .65rem;
      color: rgba(255,255,255,.5); margin-left: auto;
    }
    #si-fp-lightbox .si-fp-apply {
      background: #fff; color: #1A1A1A; border: none;
      padding: 8px 20px; border-radius: 6px; font-weight: 600;
      font-size: .75rem; cursor: pointer; font-family: var(--adm-ff);
      transition: opacity .15s;
    }
    #si-fp-lightbox .si-fp-apply:hover { opacity: .88; }
    #si-fp-lightbox .si-fp-close {
      position: absolute; top: 14px; right: 14px;
      background: rgba(255,255,255,.15); border: none;
      width: 36px; height: 36px; border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      font-size: 1.1rem; color: #fff; cursor: pointer;
      transition: background .15s;
    }
    #si-fp-lightbox .si-fp-close:hover { background: rgba(255,255,255,.28); }

    /* ── Service photos grid ── */
    #admin-modal .si-svc-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
      gap: 10px;
    }
    #admin-modal .si-svc-card {
      border-radius: 8px; overflow: hidden;
      border: 1px solid var(--adm-border);
      background: #fff;
    }
    #admin-modal .si-svc-banner {
      position: relative; height: 130px; overflow: hidden;
      background: #E8E8E8;
    }
    #admin-modal .si-svc-banner img {
      width: 100%; height: 100%;
      object-fit: cover; display: block;
      pointer-events: none;
    }
    #admin-modal .si-svc-label {
      padding: 9px 12px; font-size: .75rem; font-weight: 500;
      color: var(--adm-text); font-family: var(--adm-ff);
    }
    #admin-modal .si-svc-repl-row {
      display: none; padding: 8px 12px 10px;
      border-top: 1px solid var(--adm-border); background: #F8F8F8;
      gap: 6px; align-items: center;
    }
    #admin-modal .si-svc-repl-row.open { display: flex; }
    #admin-modal .si-svc-repl-row .a-input { flex: 1; margin-bottom: 0; font-size: .73rem; }

    /* ═══ LUXURY PORTFOLIO CARDS ═══════════════════════════════════ */
    .sess-card {
      background: none; border: none;
      border-bottom: 1px solid rgba(255,255,255,.05);
      padding: 0 0 48px; margin-bottom: 48px;
    }
    .sess-card.dragging { opacity: .2; }
    .sess-card.drag-over { border-bottom-color: rgba(201,169,110,.4); }
    .sess-header {
      display: flex; align-items: flex-end; gap: 20px;
      margin-bottom: 20px; padding-bottom: 16px;
      border-bottom: none;
    }
    .sess-index {
      font-family: var(--ff-d); font-size: 4rem; font-weight: 300;
      color: rgba(201,169,110,.18); line-height: 1; flex-shrink: 0;
      letter-spacing: -.02em; user-select: none;
    }
    .sess-info { flex: 1; min-width: 0; }
    .sess-name {
      font-family: var(--ff-d); font-size: 2.4rem; font-weight: 300;
      letter-spacing: .02em; line-height: 1;
    }
    .sess-meta {
      font-size: .48rem; letter-spacing: .3em; text-transform: uppercase;
      color: rgba(122,122,114,.4); margin-top: 8px;
    }
    .sess-actions {
      display: flex; align-items: center; gap: 16px; flex-shrink: 0;
    }
    .sess-drag-handle {
      cursor: grab; color: rgba(122,122,114,.2); font-size: .85rem;
      transition: color .25s; user-select: none; padding: 4px;
    }
    .sess-drag-handle:hover { color: rgba(122,122,114,.6); }
    .sess-del {
      font-size: .48rem; letter-spacing: .28em; text-transform: uppercase;
      color: rgba(224,90,90,.35); background: none; border: none;
      cursor: pointer; transition: color .25s; font-family: var(--ff-b);
    }
    .sess-del:hover { color: rgba(224,90,90,.8); }

    /* Photo grid — portrait 4:5 */
    .sess-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
      gap: 3px; margin-bottom: 20px;
    }
    .sess-thumb {
      position: relative; aspect-ratio: 4/5;
      overflow: hidden; cursor: grab; background: var(--dark);
      border: 2px solid transparent; transition: border-color .2s;
    }
    .sess-thumb:active { cursor: grabbing; }
    .sess-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
    .sess-thumb.dragging { opacity: .2; }
    .sess-thumb.drag-over { border-color: rgba(201,169,110,.5); }
    .sess-thumb .dm-ov { pointer-events: none; }
    .sess-thumb:hover .dm-ov { opacity: 1; pointer-events: all; }
    /* S/M/L — ultra-minimal, bottom strip */
    .sess-sz-bar {
      position: absolute; bottom: 0; left: 0; right: 0;
      display: flex; opacity: 0; transition: opacity .2s;
      background: rgba(0,0,0,.7);
    }
    .sess-thumb:hover .sess-sz-bar { opacity: 1; }
    .sess-sz-btn {
      flex: 1; font-size: 8px; padding: 4px 0; border: none;
      background: transparent; color: rgba(255,255,255,.4);
      cursor: pointer; letter-spacing: .1em; font-family: var(--ff-b);
      transition: color .15s;
    }
    .sess-sz-btn:hover { color: rgba(255,255,255,.9); }
    .sess-sz-btn.on { color: var(--gold); }
    /* Add-thumb placeholder */
    .sess-add-thumb {
      aspect-ratio: 4/5; border: 1px dashed rgba(255,255,255,.08);
      display: flex; align-items: center; justify-content: center;
      cursor: pointer; color: rgba(122,122,114,.25);
      font-size: 1.4rem; transition: border-color .2s, color .2s;
    }
    .sess-add-thumb:hover { border-color: rgba(201,169,110,.35); color: rgba(201,169,110,.6); }
    /* Add photo form — minimal inline */
    .sess-add {
      display: flex; gap: 12px; align-items: flex-end;
      padding-top: 8px;
    }
    .sess-add .a-field { flex: 1; min-width: 0; margin-bottom: 0; }
    .sess-sz-select {
      background: transparent; border: none; border-bottom: 1px solid rgba(255,255,255,.1);
      color: rgba(122,122,114,.6); font-family: var(--ff-b); font-size: .72rem;
      font-weight: 300; padding: 10px 0; outline: none; cursor: pointer;
      min-width: 100px;
    }
    .sess-sz-select option { background: #111; }
    .sess-add-btn {
      background: none; border: none; border-bottom: 1px solid rgba(201,169,110,.4);
      color: rgba(201,169,110,.6); font-family: var(--ff-b);
      font-size: .54rem; letter-spacing: .28em; text-transform: uppercase;
      padding: 10px 20px; cursor: pointer; flex-shrink: 0;
      transition: color .25s, border-color .25s;
    }
    .sess-add-btn:hover { color: var(--gold); border-color: var(--gold); }
    /* Portfolio: pick-from-collections btn */
    .sess-pick-col-btn {
      background: none; border: none; border-bottom: 1px solid rgba(201,169,110,.25);
      color: rgba(201,169,110,.4); font-family: var(--ff-b);
      font-size: .54rem; letter-spacing: .22em; text-transform: uppercase;
      padding: 10px 10px; cursor: pointer; flex-shrink: 0;
      transition: color .25s, border-color .25s; white-space: nowrap;
    }
    .sess-pick-col-btn:hover { color: var(--gold); border-color: var(--gold); }

    /* ══════════════════════════════════════════════════════
       PORTFOLIO TAB — Editorial Filmstrip Redesign
       Playfair italic names · Horizontal contact sheet
       ══════════════════════════════════════════════════════ */
    #admin-modal #atab-portfolio {
      padding-bottom: 40px;
    }
    #admin-modal #atab-portfolio #admin-portfolio-list {
      display: flex; flex-direction: column; gap: 12px;
    }
    #admin-modal #atab-portfolio .sess-card {
      background: #FFFFFF !important;
      border: 1px solid #EBEBEB !important;
      border-bottom: 1px solid #EBEBEB !important;
      border-left: 3px solid #E8E6E1 !important;
      border-radius: 12px !important;
      padding: 0 !important;
      margin-bottom: 0 !important;
      overflow: hidden;
      box-shadow: 0 1px 4px rgba(0,0,0,.04) !important;
      transition: box-shadow .2s, border-color .2s, border-left-color .2s !important;
    }
    #admin-modal #atab-portfolio .sess-card:hover {
      box-shadow: 0 6px 24px rgba(0,0,0,.07) !important;
      border-color: #D4D4D4 !important;
      border-left-color: #1A1A1A !important;
    }
    #admin-modal #atab-portfolio .sess-card.dragging { opacity: .35 !important; }
    #admin-modal #atab-portfolio .sess-card.drag-over {
      border-color: #1A1A1A !important;
      box-shadow: 0 0 0 2px rgba(26,26,26,.12) !important;
    }

    /* ── Card header ── */
    #admin-modal #atab-portfolio .sess-header {
      position: relative;
      display: flex; align-items: center; gap: 16px;
      padding: 20px 28px 18px;
      border-bottom: 1px solid #F2F2F2 !important;
      background: #FFFFFF;
      margin-bottom: 0 !important;
      overflow: hidden;
    }
    /* Giant watermark ordinal */
    #admin-modal #atab-portfolio .sess-index {
      font-family: 'Playfair Display', serif !important;
      font-size: 7rem !important;
      font-weight: 700 !important;
      color: #F5F3EF !important;
      line-height: 1 !important;
      position: absolute !important;
      right: 24px; top: -8px;
      letter-spacing: -.04em !important;
      user-select: none; pointer-events: none;
      z-index: 0;
    }
    #admin-modal #atab-portfolio .sess-info {
      flex: 1; min-width: 0; position: relative; z-index: 1;
    }
    #admin-modal #atab-portfolio .sess-name {
      font-family: 'Playfair Display', serif !important;
      font-size: 1.65rem !important;
      font-weight: 400 !important;
      font-style: italic !important;
      letter-spacing: -.01em !important;
      color: #1A1A1A !important;
      line-height: 1.2 !important;
    }
    #admin-modal #atab-portfolio .sess-meta {
      font-family: 'DM Mono', monospace !important;
      font-size: .68rem !important;
      letter-spacing: .04em !important;
      text-transform: uppercase !important;
      color: #B8B8B8 !important;
      margin-top: 5px !important;
    }
    #admin-modal #atab-portfolio .sess-actions {
      display: flex; align-items: center; gap: 14px;
      flex-shrink: 0; position: relative; z-index: 1;
    }
    #admin-modal #atab-portfolio .sess-drag-handle {
      cursor: grab; color: #D8D8D8 !important;
      font-size: 1.1rem; user-select: none; padding: 4px;
      transition: color .15s;
    }
    #admin-modal #atab-portfolio .sess-drag-handle:hover { color: #9E9E9E !important; }
    #admin-modal #atab-portfolio .sess-del {
      font-family: 'DM Mono', monospace !important;
      font-size: .62rem !important; letter-spacing: .06em !important;
      text-transform: uppercase !important;
      color: #D8D8D8 !important; background: none; border: none;
      cursor: pointer; transition: color .15s; font-weight: 400 !important;
    }
    #admin-modal #atab-portfolio .sess-del:hover { color: #DC2626 !important; }

    /* ── Horizontal filmstrip ── */
    #admin-modal #atab-portfolio .sess-grid {
      display: flex !important;
      flex-direction: row !important;
      flex-wrap: nowrap !important;
      grid-template-columns: unset !important;
      overflow-x: auto; overflow-y: hidden;
      gap: 6px !important;
      padding: 16px 28px 14px !important;
      margin-bottom: 0 !important;
      background: #FAFAF8;
      border-bottom: 1px solid #F0F0EE;
      scrollbar-width: thin;
      scrollbar-color: #E0E0DC transparent;
      align-items: center;
    }
    #admin-modal #atab-portfolio .sess-grid::-webkit-scrollbar { height: 3px; }
    #admin-modal #atab-portfolio .sess-grid::-webkit-scrollbar-track { background: transparent; }
    #admin-modal #atab-portfolio .sess-grid::-webkit-scrollbar-thumb { background: #DDDDD8; border-radius: 2px; }

    /* Individual thumb — square film frame */
    #admin-modal #atab-portfolio .sess-thumb {
      flex: 0 0 auto !important;
      width: 88px !important; height: 88px !important;
      min-width: 88px !important;
      aspect-ratio: 1/1 !important;
      border-radius: 6px !important;
      background: #EBEBEB !important;
      border: 2px solid transparent !important;
      overflow: hidden; cursor: grab;
      transition: border-color .15s, box-shadow .15s;
    }
    #admin-modal #atab-portfolio .sess-thumb:hover {
      box-shadow: 0 2px 10px rgba(0,0,0,.13) !important;
    }
    #admin-modal #atab-portfolio .sess-thumb.drag-over {
      border-color: #1A1A1A !important;
    }
    #admin-modal #atab-portfolio .sess-thumb img {
      border-radius: 4px !important;
    }

    /* Cover marker badge */
    #admin-modal #atab-portfolio .sess-cover-marker {
      background: rgba(26,26,26,.65) !important;
      color: rgba(255,255,255,.92) !important;
      font-family: 'DM Mono', monospace !important;
      font-size: 7px !important;
      letter-spacing: .08em !important;
      font-weight: 400 !important;
      text-transform: uppercase !important;
    }
    #admin-modal #atab-portfolio .sess-cover-fp {
      background: rgba(26,26,26,.55) !important;
      color: rgba(255,255,255,.85) !important;
      font-family: 'DM Mono', monospace !important;
    }
    #admin-modal #atab-portfolio .sess-cover-fp:hover { background: rgba(26,26,26,.82) !important; }

    /* Size bar */
    #admin-modal #atab-portfolio .sess-sz-bar {
      background: rgba(20,20,20,.8) !important;
      border-radius: 0 0 4px 4px !important;
    }
    #admin-modal #atab-portfolio .sess-sz-btn {
      font-family: 'DM Mono', monospace !important;
      font-size: 8px !important; letter-spacing: .04em !important;
    }
    #admin-modal #atab-portfolio .sess-sz-btn.on {
      color: #FFFFFF !important; font-weight: 700 !important;
    }

    /* Overlay action buttons */
    #admin-modal #atab-portfolio .sess-thumb .dm-ov {
      background: rgba(20,20,20,.72) !important;
      border-radius: 4px !important;
    }
    #admin-modal #atab-portfolio .sess-thumb .dm-ov-btn {
      font-family: 'DM Mono', monospace !important;
      font-size: 9px !important; letter-spacing: .05em !important;
      font-weight: 400 !important;
    }

    /* ➕ Add photo placeholder */
    #admin-modal #atab-portfolio .sess-add-thumb {
      flex: 0 0 auto !important;
      width: 88px !important; height: 88px !important;
      min-width: 88px !important;
      aspect-ratio: 1/1 !important;
      border: 1.5px dashed #D8D8D4 !important;
      border-radius: 6px !important;
      background: transparent !important;
      color: #C8C8C4 !important;
      display: flex; align-items: center; justify-content: center;
      font-size: 1.6rem; cursor: pointer;
      transition: border-color .15s, color .15s;
    }
    #admin-modal #atab-portfolio .sess-add-thumb:hover {
      border-color: #1A1A1A !important;
      color: #1A1A1A !important;
    }

    /* ── Add photo form ── */
    #admin-modal #atab-portfolio .sess-add {
      display: flex; gap: 10px; align-items: center;
      padding: 12px 28px 14px !important;
      background: #FFFFFF;
    }
    #admin-modal #atab-portfolio .sess-add .a-field {
      flex: 1; min-width: 0; margin-bottom: 0 !important;
    }
    #admin-modal #atab-portfolio .sess-add .a-field label {
      font-family: 'DM Mono', monospace !important;
      font-size: .62rem !important; letter-spacing: .08em !important;
      text-transform: uppercase !important; color: #C0C0BC !important;
      margin-bottom: 6px !important;
    }
    #admin-modal #atab-portfolio .sess-add .a-input {
      background: #F8F8F6 !important;
      border: 1px solid #EAEAE6 !important;
      border-radius: 6px !important;
      font-family: 'DM Mono', monospace !important;
      font-size: .75rem !important;
      padding: 8px 12px !important;
      color: #3A3A3A !important;
    }
    #admin-modal #atab-portfolio .sess-add .a-input:focus {
      border-color: #1A1A1A !important;
      box-shadow: 0 0 0 3px rgba(26,26,26,.06) !important;
      background: #FFFFFF !important;
    }
    #admin-modal #atab-portfolio .sess-sz-select {
      background: #F8F8F6 !important;
      border: 1px solid #EAEAE6 !important;
      border-radius: 6px !important;
      color: #6B6B68 !important;
      font-family: 'DM Mono', monospace !important;
      font-size: .72rem !important;
      padding: 8px 28px 8px 10px !important;
      min-width: 96px !important;
      cursor: pointer; outline: none;
      -webkit-appearance: none; appearance: none;
      background-image: url("data:image/svg+xml,%3Csvg width='9' height='5' viewBox='0 0 9 5' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l3.5 3L8 1' stroke='%23aaa' stroke-width='1.2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") !important;
      background-repeat: no-repeat !important;
      background-position: right 10px center !important;
    }
    #admin-modal #atab-portfolio .sess-sz-select option { background: #FFFFFF !important; }
    #admin-modal #atab-portfolio .sess-add-btn {
      background: #1A1A1A !important; color: #FFFFFF !important;
      border: 1px solid #1A1A1A !important; border-radius: 6px !important;
      padding: 8px 18px !important;
      font-family: 'DM Mono', monospace !important;
      font-size: .72rem !important; font-weight: 400 !important;
      letter-spacing: .06em !important; text-transform: uppercase !important;
      cursor: pointer; transition: background .15s, border-color .15s;
    }
    #admin-modal #atab-portfolio .sess-add-btn:hover { background: #333 !important; border-color: #333 !important; }
    #admin-modal #atab-portfolio .sess-pick-col-btn {
      background: #FFFFFF !important; color: #8A8A88 !important;
      border: 1px solid #EAEAE6 !important; border-radius: 6px !important;
      padding: 8px 14px !important;
      font-family: 'DM Mono', monospace !important;
      font-size: .68rem !important; font-weight: 400 !important;
      letter-spacing: .06em !important; text-transform: uppercase !important;
      cursor: pointer; transition: all .15s; white-space: nowrap;
    }
    #admin-modal #atab-portfolio .sess-pick-col-btn:hover {
      background: #F4F4F2 !important; border-color: #C0C0BC !important;
      color: #1A1A1A !important;
    }

    /* ── New session form ── */
    #admin-modal #atab-portfolio .a-form {
      border: 1px solid #EBEBEB !important; border-radius: 12px !important;
      padding: 24px 28px !important; background: #FAFAF8 !important;
      margin-bottom: 20px !important;
    }
    #admin-modal #atab-portfolio .a-form h3 {
      font-family: 'DM Mono', monospace !important;
      font-size: .68rem !important; letter-spacing: .12em !important;
      text-transform: uppercase !important;
      color: #B0B0AC !important; margin-bottom: 18px !important;
      font-weight: 400 !important;
    }

    /* Section header for portfolio */
    #admin-modal #atab-portfolio .admin-sh {
      border-bottom: none !important;
      padding-bottom: 4px !important;
      margin-bottom: 20px !important;
    }
    #admin-modal #atab-portfolio .admin-sh h2 {
      font-family: 'Playfair Display', serif !important;
      font-style: italic !important;
      font-size: 1.8rem !important;
      font-weight: 400 !important;
      color: #1A1A1A !important;
    }
    #admin-modal #atab-portfolio .admin-sh p {
      font-family: 'DM Mono', monospace !important;
      font-size: .68rem !important; letter-spacing: .04em !important;
      color: #B8B8B8 !important; margin-top: 6px !important;
    }
    #admin-modal #atab-portfolio .a-btn {
      font-family: 'DM Mono', monospace !important;
      letter-spacing: .08em !important; text-transform: uppercase !important;
      font-size: .72rem !important; font-weight: 400 !important;
    }

    /* ── Replace-URL panel inside thumb ── */
    #admin-modal #atab-portfolio .dm-replace-wrap {
      background: rgba(255,255,255,.97) !important;
      border-top: 1px solid #EBEBEB !important;
    }
    #admin-modal #atab-portfolio .dm-replace-wrap span,
    #admin-modal #atab-portfolio .dm-replace-wrap small {
      font-family: 'DM Mono', monospace !important;
      font-size: 8px !important; color: #8A8A88 !important;
    }
    #admin-modal #atab-portfolio .repl-input {
      background: transparent !important;
      border: none !important; border-bottom: 1px solid #D0D0CC !important;
      color: #1A1A1A !important; font-family: 'DM Mono', monospace !important;
      border-radius: 0 !important;
    }

    /* ── Portfolio empty state ── */
    #admin-modal #atab-portfolio .a-empty {
      font-family: 'DM Mono', monospace !important;
      font-size: .72rem !important; letter-spacing: .1em !important;
      color: #C8C8C4 !important; text-transform: uppercase !important;
    }

    /* Portfolio section background tint */
    #admin-modal #atab-portfolio {
      background: #F8F8F6 !important;
    }

    /* ══ End Portfolio Tab Redesign ══ */

    /* Portfolio cover badge + focal point btn */
    .sess-cover-marker {
      position: absolute; top: 0; left: 0; right: 0;
      background: rgba(0,0,0,.55); color: rgba(255,255,255,.55);
      font-size: 6.5px; padding: 2px 4px; letter-spacing: .07em;
      text-transform: uppercase; pointer-events: none; line-height: 1.5;
    }
    .sess-cover-fp {
      position: absolute; bottom: 0; left: 0; right: 0;
      background: rgba(0,0,0,.6); color: rgba(255,255,255,.8); border: none;
      font-size: 7px; padding: 3px 2px; cursor: pointer; letter-spacing: .05em;
      text-transform: uppercase; font-family: var(--ff-b); line-height: 1.5;
      opacity: 0; transition: opacity .2s, background .2s;
    }
    .sess-thumb:hover .sess-cover-fp { opacity: 1; }
    .sess-cover-fp:hover { background: rgba(184,148,74,.8); color: #fff; }
    /* Gallery picker footer (multi-select mode) */
    #gal-picker-footer {
      display: none; padding: 11px 16px; border-top: 1px solid var(--border);
      background: var(--surface); align-items: center; justify-content: space-between; gap: 12px; flex-shrink: 0;
    }
    #gal-picker-footer.active { display: flex; }
    #gal-picker-sel-count { font-size: .73rem; color: var(--muted); font-family: var(--ff-b); letter-spacing: .04em; }
    #gal-picker-add-btn {
      background: #b8944a; color: #fff; border: none; padding: 8px 20px;
      font-size: .61rem; letter-spacing: .18em; text-transform: uppercase;
      cursor: pointer; border-radius: 4px; font-family: var(--ff-b); transition: opacity .2s;
    }
    #gal-picker-add-btn:disabled { opacity: .35; cursor: default; }
    /* Photo selected state in multi-pick mode */
    .gp-photo-wrap { position: relative; display: inline-block; cursor: pointer; line-height: 0; }
    .gp-photo-wrap .gp-photo { width: 100%; height: 100%; display: block; transition: opacity .15s; }
    .gp-photo-wrap.gp-sel .gp-photo { outline: 2.5px solid #b8944a; opacity: .75; }
    .gp-photo-wrap.gp-sel::after {
      content: '✓'; position: absolute; top: 5px; right: 5px;
      width: 18px; height: 18px; border-radius: 50%;
      background: #b8944a; color: #fff; font-size: .65rem; font-weight: 700;
      display: flex; align-items: center; justify-content: center; pointer-events: none;
    }
    /* dm-svc-* legacy selectors kept for compat — actual styles now in .si-svc-* above */
    .dm-svc-row { display:flex; flex-wrap:wrap; gap:12px; }
    .dm-svc-card { background:#fff; border:1px solid #E8E8E8; border-radius:8px; overflow:hidden; }
    .dm-drag-hint { display:none; }

    /* client cards are now interactive */
    .cc { cursor:pointer; }

    @media(max-width:860px) {
      .gv-grid { padding:0 22px 60px; columns:2; }
      .gv-header { padding:40px 22px 28px; }
      .admin-sidebar { width:190px; }
      .admin-body { padding:32px 24px; }
    }
    @media(max-width:560px) {
      .gv-grid { columns:1; }
    }

    /* ══ VISUAL EDITOR ══════════════════════════════════════════════════ */
    #edit-bar {
      display: none;
      position: fixed; top: 0; left: 0; right: 0; z-index: 1100;
      height: 46px; background: var(--gold);
      align-items: center; justify-content: space-between;
      padding: 0 28px; gap: 12px;
      font-family: var(--ff-b); font-size: .65rem;
      letter-spacing: .18em; text-transform: uppercase;
      box-shadow: 0 2px 16px rgba(0,0,0,.4);
    }
    #edit-bar.visible { display: flex; }
    #edit-bar .eb-badge {
      background: rgba(0,0,0,.18); color: var(--black);
      padding: 4px 14px; font-size: .58rem; letter-spacing: .22em;
      flex-shrink: 0;
    }
    #edit-bar .eb-right { display: flex; gap: 8px; margin-left: auto; align-items: center; }
    #edit-bar .eb-btn {
      background: rgba(0,0,0,.12); border: 1px solid rgba(0,0,0,.22);
      color: var(--black); padding: 6px 18px;
      font-size: .58rem; letter-spacing: .18em; text-transform: uppercase;
      cursor: pointer; font-family: var(--ff-b); transition: background .18s;
    }
    #edit-bar .eb-btn:hover { background: rgba(0,0,0,.26); }
    #edit-bar .eb-btn.red { border-color: rgba(80,0,0,.3); }
    body.edit-mode { padding-top: 46px; }
    body.edit-mode #nav { top: 46px; }

    /* Editable text */
    [data-t] { outline: none; }
    body.edit-mode [data-t] { cursor: text; }
    body.edit-mode [data-t]:hover {
      outline: 1px dashed rgba(201,169,110,.55);
      outline-offset: 4px;
    }
    body.edit-mode [data-t]:focus {
      outline: 2px solid var(--gold);
      outline-offset: 4px;
    }
    body.edit-mode [data-t][contenteditable="true"] { cursor: text; }

    /* Editable images */
    body.edit-mode img.ei { cursor: crosshair; }
    body.edit-mode img.ei:hover { outline: 2px solid var(--gold); outline-offset: 2px; }
    body.edit-mode img.ei.ei-sel { outline: 2px solid var(--gold); outline-offset: 2px; }

    /* Image edit panel */
    #img-edit-panel {
      position: fixed; top: 46px; right: -310px; bottom: 0; width: 290px;
      z-index: 1050; background: #0d0d0d;
      border-left: 1px solid rgba(255,255,255,.08);
      transition: right .3s cubic-bezier(0.22,1,0.36,1);
      display: flex; flex-direction: column;
    }
    #img-edit-panel.open { right: 0; }
    #iep-head {
      display: flex; align-items: center; justify-content: space-between;
      padding: 14px 18px; border-bottom: 1px solid rgba(255,255,255,.07);
      flex-shrink: 0; background: #0d0d0d;
    }
    #iep-head span {
      font-size: .58rem; letter-spacing: .26em; text-transform: uppercase; color: var(--gold);
    }
    #iep-close {
      font-size: 1.3rem; line-height: 1; color: var(--muted);
      cursor: pointer; background: none; border: none; padding: 0; transition: color .18s;
    }
    #iep-close:hover { color: var(--text); }
    #iep-body { padding: 18px; display: flex; flex-direction: column; gap: 18px; overflow-y: auto; }
    #iep-preview {
      width: 100%; height: 120px; object-fit: cover;
      background: var(--surface); display: block;
      cursor: grab; user-select: none;
    }
    #iep-preview.dragging { cursor: grabbing; }
    .iep-drag-hint {
      font-size: .56rem; letter-spacing: .18em; text-transform: uppercase;
      color: var(--muted); text-align: center; margin-top: -10px;
    }
    .iep-lbl {
      display: block; font-size: .55rem; letter-spacing: .24em;
      text-transform: uppercase; color: var(--muted); margin-bottom: 7px;
    }
    .iep-row { display: flex; gap: 8px; align-items: stretch; }
    .iep-url-inp {
      flex: 1; min-width: 0;
      background: var(--surface); border: 1px solid var(--border);
      color: var(--text); padding: 8px 10px; font-size: .68rem;
      font-family: var(--ff-b); outline: none;
    }
    .iep-url-inp:focus { border-color: var(--gold); }
    .iep-apply {
      background: transparent; border: 1px solid var(--gold); color: var(--gold);
      padding: 8px 12px; font-size: .56rem; letter-spacing: .14em; text-transform: uppercase;
      cursor: pointer; font-family: var(--ff-b); flex-shrink: 0; transition: background .18s;
      white-space: nowrap;
    }
    .iep-apply:hover { background: rgba(201,169,110,.12); }
    .iep-slider-group { display: flex; flex-direction: column; gap: 10px; }
    .iep-slider-row { display: flex; align-items: center; gap: 10px; }
    .iep-slider-lbl { font-size: .55rem; letter-spacing: .18em; text-transform: uppercase; color: var(--muted); width: 18px; flex-shrink: 0; }
    .iep-slider { flex: 1; accent-color: var(--gold); cursor: pointer; }
    .iep-slider-num { font-size: .65rem; color: var(--text); width: 34px; text-align: right; flex-shrink: 0; font-variant-numeric: tabular-nums; }
    .iep-save {
      background: var(--gold); color: var(--black); border: none; padding: 11px;
      font-size: .62rem; letter-spacing: .22em; text-transform: uppercase;
      cursor: pointer; font-family: var(--ff-b); width: 100%; transition: opacity .18s;
    }
    .iep-save:hover { opacity: .82; }
    .iep-note {
      font-size: .62rem; color: var(--muted); line-height: 1.65;
      background: rgba(255,255,255,.03);
      border-left: 2px solid rgba(201,169,110,.3);
      padding: 10px 12px;
    }

    /* Edit login overlay */
    #edit-login-overlay {
      display: none; position: fixed; inset: 0; z-index: 1200;
      background: rgba(8,8,8,.96); backdrop-filter: blur(20px);
      -webkit-backdrop-filter: blur(20px);
      align-items: center; justify-content: center;
    }
    #edit-login-overlay.open { display: flex; }
    #edit-login-box {
      width: 100%; max-width: 380px;
      background: var(--surface); border: 1px solid var(--border);
      padding: 52px 44px;
    }
    #edit-login-box .elo-tag {
      font-size: .58rem; letter-spacing: .30em; text-transform: uppercase; color: var(--gold);
    }
    #edit-login-box h2 {
      font-family: var(--ff-d); font-size: 2.1rem; font-weight: 300; margin: 10px 0 28px;
    }
    #edit-login-box p {
      font-size: .78rem; color: var(--muted); margin-bottom: 28px; line-height: 1.7;
    }
    #edit-login-err {
      display: none; color: #e05a5a; font-size: .72rem; margin: 10px 0 0;
    }
    .elo-btns { display: flex; gap: 12px; margin-top: 24px; }


    /* ══ GALLERY PICKER ════════════════════════════════════════════ */
    #gal-picker {
      display: none; position: fixed; inset: 0; z-index: 2200;
      background: rgba(8,8,8,.9); backdrop-filter: blur(14px);
      -webkit-backdrop-filter: blur(14px);
      align-items: center; justify-content: center;
    }
    #gal-picker.open { display: flex; }
    #gal-picker-box {
      width: 92%; max-width: 740px; max-height: 82vh;
      background: var(--surface); border: 1px solid var(--border);
      display: flex; flex-direction: column; overflow: hidden;
    }
    #gal-picker-head {
      display: flex; align-items: center; justify-content: space-between;
      padding: 16px 24px; border-bottom: 1px solid var(--border); flex-shrink: 0;
    }
    #gal-picker-head span {
      font-size: .6rem; letter-spacing: .28em; text-transform: uppercase; color: var(--gold);
    }
    #gal-picker-close {
      font-size: 1.3rem; color: var(--muted); cursor: pointer;
      background: none; border: none; padding: 0; line-height: 1;
      transition: color .18s;
    }
    #gal-picker-close:hover { color: var(--text); }
    #gal-picker-body { display: flex; flex: 1; overflow: hidden; min-height: 0; }
    #gal-picker-list {
      width: 190px; flex-shrink: 0; border-right: 1px solid var(--border);
      overflow-y: auto;
    }
    .gp-gal-item {
      padding: 14px 18px; cursor: pointer;
      border-bottom: 1px solid var(--border); transition: background .15s;
    }
    .gp-gal-item:hover { background: rgba(255,255,255,.04); }
    .gp-gal-item.active { background: rgba(201,169,110,.1); }
    .gp-gal-name { font-size: .8rem; font-weight: 400; }
    .gp-gal-name.active { color: var(--gold); }
    .gp-gal-count { font-size: .58rem; color: var(--muted); margin-top: 3px; letter-spacing: .08em; }
    .gp-badge { display: inline-block; font-size: .44rem; letter-spacing: .12em; text-transform: uppercase;
                padding: 1px 5px; border-radius: 2px; vertical-align: middle; }
    #gal-picker-photos {
      flex: 1; overflow-y: auto; padding: 14px;
      display: flex; flex-wrap: wrap; gap: 8px; align-content: flex-start;
    }
    .gp-empty { font-size: .75rem; color: var(--muted); padding: 24px; width: 100%; }
    .gp-photo {
      width: 88px; height: 88px; object-fit: cover; cursor: pointer;
      border: 2px solid transparent; transition: border-color .15s;
      display: block; background: var(--dark);
    }
    .gp-photo:hover { border-color: var(--gold); }


    .pick-gal-btn {
      background: none; border: 1px solid var(--border); color: var(--muted);
      padding: 6px 14px; font-size: .58rem; letter-spacing: .18em;
      text-transform: uppercase; cursor: pointer; font-family: var(--ff-b);
      transition: border-color .18s, color .18s; flex-shrink: 0;
    }
    .pick-gal-btn:hover { border-color: var(--gold); color: var(--gold); }

    /* ── ADMIN NAV GROUPS ── */
    .admin-nav-group {
      padding: 20px 20px 6px;
      font-size: .65rem; letter-spacing: .06em; text-transform: uppercase;
      color: #C0C0C0; font-weight: 600; pointer-events: none; user-select: none; display: block;
    }
    .admin-nav-group:first-child { padding-top: 20px; }

    /* ── MOBILE ADMIN LAYOUT ── */
    @media(max-width:700px) {
      /* Make the modal itself scroll — inner panels are overflow:visible so the
         whole admin flows as one page. Without this, fixed+overflow:hidden clips content. */
      #admin-modal { overflow-y:auto; -webkit-overflow-scrolling:touch; }
      #admin-dash { height:auto; min-height:100vh; overflow:visible; }
      .admin-layout { flex-direction:column !important; height:auto !important; min-height:calc(100vh - var(--nav-h)); }
      .admin-sidebar { width:100% !important; flex-direction:column; border-right:none; border-bottom:1px solid #E8E8E8; overflow-y:visible; flex-shrink:0; }
      .admin-sidebar-logo { padding:14px 18px 12px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid #E8E8E8; }
      .admin-sidebar-logo .asl-brand { font-size:.95rem; }
      .admin-sidebar-logo .asl-tag { margin-top:0; margin-left:8px; }
      .admin-sidebar-foot { display:grid; grid-template-columns:1fr 1fr; gap:8px; padding:12px 16px; border:none; }
      .a-exit { font-size:.5rem; white-space:nowrap; margin-bottom:0 !important; }
      #admin-logout-btn { grid-column:1/-1; justify-content:center; }
      #admin-modal .admin-sidebar-foot { grid-template-columns:1fr !important; }
      #admin-modal #admin-logout-btn { grid-column:auto !important; justify-content:flex-start; }
      .admin-nav { padding:0; display:flex; flex-direction:row; overflow-x:auto; overflow-y:hidden; -webkit-overflow-scrolling:touch; scrollbar-width:none; border-bottom:1px solid #E8E8E8; touch-action:pan-x; }
      .admin-nav::-webkit-scrollbar { display:none; }
      .admin-nav-group { display:none; }
      .admin-tab { flex-direction:column; align-items:center; gap:5px; padding:12px 16px; font-size:.78rem; letter-spacing:0; white-space:nowrap; flex-shrink:0; border-bottom:2px solid transparent; border-radius:0; margin:0; }
      .admin-tab.on { border-bottom-color:#1A1A1A; color:#1A1A1A; }
      .admin-tab.on::before { display:none; }
      .anav-icon { width:16px; height:16px; opacity:.5; }
      .admin-tab.on .anav-icon { opacity:1; }
      .anav-count { margin-left:0; font-size:.68rem; background:#EBEBEB; color:#6B6B6B; padding:1px 6px; border-radius:20px; }
      .admin-main { overflow-y:visible; }
      .admin-body { padding:24px 16px 60px !important; max-width:100%; }
      .bk-admin-cal-grid { grid-template-columns:1fr !important; }
    }

    /* ── BOOKING PAGE ── */
    #page-booking { background: var(--black); padding-top: var(--nav-h); }
    .bk-hero { text-align:center; padding:5rem 2rem 3rem; position:relative; overflow:hidden; border-bottom:1px solid var(--border); }
    .bk-hero::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse 60% 60% at 50% 0%,rgba(201,169,110,.06) 0%,transparent 70%); pointer-events:none; }
    .bk-eyebrow { font-size:.68rem; letter-spacing:.3em; text-transform:uppercase; color:var(--gold); margin-bottom:1rem; }
    .bk-hero h1 { font-family:var(--ff-d); font-size:clamp(2.5rem,5vw,4rem); font-weight:300; letter-spacing:.04em; margin-bottom:1rem; }
    .bk-hero p { color:var(--muted); font-size:.9rem; max-width:480px; margin:0 auto; line-height:1.7; }
    .bk-contact-bar { display:inline-flex; align-items:center; gap:0; margin-top:2rem; border:1px solid rgba(201,169,110,.35); border-radius:100px; background:rgba(201,169,110,.05); overflow:hidden; }
    .bk-contact-pill { display:flex; align-items:center; gap:.55rem; padding:.7rem 1.4rem; color:var(--gold); font-family:var(--ff-b); font-size:.85rem; letter-spacing:.04em; text-decoration:none; transition:background .2s,color .2s; }
    .bk-contact-pill:hover { background:rgba(201,169,110,.12); color:#e8c97f; }
    .bk-contact-divider { width:1px; height:22px; background:rgba(201,169,110,.3); }

    /* ── PRICING CALCULATOR ── */
    .calc-section { max-width:760px; margin:0 auto; padding:2.5rem 2rem 0; }
    .calc-heading { font-family:var(--ff-d); font-size:1.6rem; font-weight:300; letter-spacing:.04em; margin-bottom:.4rem; }
    .calc-sub { font-size:.82rem; color:var(--muted); margin-bottom:2rem; line-height:1.6; }
    .calc-groups { display:flex; flex-direction:column; gap:1.5rem; }
    .calc-group-label { font-size:.6rem; letter-spacing:.22em; text-transform:uppercase; color:var(--gold); margin-bottom:.75rem; }
    .calc-opts { display:flex; gap:.5rem; flex-wrap:wrap; }
    .calc-opt { border:1px solid var(--border); background:none; color:var(--muted); font-family:var(--ff-b); font-size:.8rem; padding:.6rem 1.1rem; cursor:pointer; transition:all .2s; }
    .calc-opt:hover { border-color:var(--gold-d); color:var(--text); }
    .calc-opt.on { border-color:var(--gold); background:rgba(201,169,110,.08); color:var(--text); }
    .calc-addons { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:.5rem; }
    .calc-addon { border:1px solid var(--border); background:none; color:var(--muted); font-family:var(--ff-b); font-size:.78rem; padding:.6rem 1rem; cursor:pointer; transition:all .2s; text-align:left; }
    .calc-addon:hover { border-color:var(--gold-d); color:var(--text); }
    .calc-addon.on { border-color:var(--gold); background:rgba(201,169,110,.08); color:var(--text); }
    .calc-total-row { display:flex; align-items:center; justify-content:space-between; background:rgba(201,169,110,.06); border:1px solid rgba(201,169,110,.2); padding:1.25rem 1.5rem; margin-top:1.5rem; flex-wrap:wrap; gap:1rem; }
    .calc-total-label { font-size:.6rem; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); }
    .calc-total-price { font-family:var(--ff-d); font-size:2.4rem; font-weight:300; color:var(--gold); }
    .calc-total-price small { font-size:.6rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); font-family:var(--ff-b); display:block; margin-top:2px; }
    .calc-book-btn { display:inline-flex; align-items:center; gap:.5rem; padding:.85rem 2rem; font-family:var(--ff-b); font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; background:var(--gold); color:var(--black); font-weight:500; border:none; cursor:pointer; transition:all .22s var(--ease); }
    .calc-book-btn:hover { background:#d4b47c; box-shadow:0 8px 24px rgba(201,169,110,.3); }

    .bk-steps { display:flex; align-items:center; justify-content:center; max-width:560px; margin:2.5rem auto 0; padding:0 2rem; }
    .bk-step-item { display:flex; flex-direction:column; align-items:center; gap:.5rem; position:relative; flex:1; }
    .bk-step-item:not(:last-child)::after { content:''; position:absolute; top:14px; left:calc(50% + 14px); width:calc(100% - 28px); height:1px; background:rgba(255,255,255,.12); transition:background .4s; }
    .bk-step-item.done:not(:last-child)::after { background:var(--gold-d); }
    .bk-step-num { width:28px; height:28px; border-radius:50%; border:1px solid rgba(255,255,255,.12); display:flex; align-items:center; justify-content:center; font-size:.7rem; color:var(--muted); transition:all .3s; position:relative; z-index:1; background:var(--black); }
    .bk-step-item.active .bk-step-num { border-color:var(--gold); color:var(--gold); box-shadow:0 0 12px rgba(201,169,110,.3); }
    .bk-step-item.done .bk-step-num { background:var(--gold-d); border-color:var(--gold-d); color:var(--gold); }
    .bk-step-label { font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); white-space:nowrap; }
    .bk-step-item.active .bk-step-label { color:var(--gold); }
    .bk-content { max-width:960px; margin:0 auto; padding:3rem 2rem 5rem; }
    .bk-step { display:none; }
    .bk-step.active { display:block; animation:fadeUp .4s var(--ease); }
    .bk-heading { font-family:var(--ff-d); font-size:1.8rem; font-weight:300; letter-spacing:.04em; margin-bottom:.4rem; }
    .bk-sub { color:var(--muted); font-size:.82rem; margin-bottom:2.5rem; }
    .bk-flex-between { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:1rem; }
    .bk-edit-link { font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-d); cursor:pointer; transition:color .2s; }
    .bk-edit-link:hover { color:var(--gold); }
    .bk-sessions-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:1.25rem; }
    .bk-card { background:var(--surface); border:1px solid var(--border); border-radius:4px; cursor:pointer; transition:border-color .25s,transform .25s,box-shadow .25s; overflow:hidden; }
    .bk-card:hover { border-color:rgba(255,255,255,.12); transform:translateY(-3px); box-shadow:0 16px 40px rgba(0,0,0,.4); }
    .bk-card.selected { border-color:var(--gold); box-shadow:0 0 0 1px var(--gold),0 16px 40px rgba(201,169,110,.15); }
    .bk-card-img { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; background:var(--surface2); }
    .bk-card-img-ph { width:100%; aspect-ratio:4/3; background:var(--surface2); display:flex; align-items:center; justify-content:center; opacity:.15; }
    .bk-card-body { padding:1.25rem; }
    .bk-card-name { font-family:var(--ff-d); font-size:1.2rem; font-weight:400; letter-spacing:.02em; margin-bottom:.3rem; }
    .bk-card-meta { font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-bottom:.75rem; }
    .bk-card-desc { font-size:.8rem; color:var(--muted); line-height:1.6; margin-bottom:1rem; }
    .bk-card-price { font-family:var(--ff-d); font-size:1.4rem; font-weight:300; color:var(--gold); }
    .bk-card-price span { font-family:var(--ff-b); font-size:.66rem; letter-spacing:.1em; color:var(--muted); text-transform:uppercase; margin-left:4px; }
    .bk-check { width:20px; height:20px; border-radius:50%; background:var(--gold); display:none; align-items:center; justify-content:center; float:right; margin-top:-1.4rem; }
    .bk-card.selected .bk-check { display:flex; }
    .bk-dt-grid { display:grid; grid-template-columns:1fr 1fr; gap:2rem; }
    @media(max-width:640px){ .bk-dt-grid { grid-template-columns:1fr; } }
    .bk-cal-wrap { background:var(--surface); border:1px solid var(--border); border-radius:4px; padding:1.5rem; }
    .bk-cal-hdr { display:flex; align-items:center; justify-content:space-between; margin-bottom:1.25rem; }
    .bk-cal-hdr h3 { font-family:var(--ff-d); font-size:1.1rem; font-weight:400; letter-spacing:.04em; }
    .bk-cal-nav { background:none; border:1px solid rgba(255,255,255,.12); color:var(--muted); width:28px; height:28px; border-radius:2px; display:flex; align-items:center; justify-content:center; font-size:.85rem; transition:all .2s; cursor:pointer; }
    .bk-cal-nav:hover { border-color:var(--gold); color:var(--gold); }
    .bk-cal-dow { display:grid; grid-template-columns:repeat(7,1fr); text-align:center; margin-bottom:.5rem; }
    .bk-cal-dow span { font-size:.6rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); padding:.3rem 0; }
    .bk-cal-days { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; }
    .bk-day { aspect-ratio:1; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:.8rem; border:1px solid transparent; transition:all .18s; color:var(--text); }
    .bk-day.bk-empty { cursor:default; }
    .bk-day.bk-past { color:var(--muted); opacity:.4; cursor:not-allowed; }
    .bk-day.bk-unavail { color:var(--muted); opacity:.3; cursor:not-allowed; text-decoration:line-through; }
    .bk-day.bk-avail:hover { border-color:var(--gold-d); background:var(--gold-glow); cursor:pointer; }
    .bk-day.bk-sel { background:var(--gold); color:var(--black); font-weight:500; }
    .bk-day.bk-today { border-color:rgba(255,255,255,.12); }
    .bk-time-wrap { background:var(--surface); border:1px solid var(--border); border-radius:4px; padding:1.5rem; }
    .bk-time-wrap h3 { font-family:var(--ff-d); font-size:1.1rem; font-weight:400; letter-spacing:.04em; margin-bottom:1.25rem; }
    .bk-no-date { color:var(--muted); font-size:.82rem; text-align:center; padding:3rem 0; }
    .bk-time-slots { display:grid; grid-template-columns:repeat(2,1fr); gap:.5rem; }
    .bk-slot { border:1px solid rgba(255,255,255,.12); background:none; color:var(--text); padding:.65rem; border-radius:2px; cursor:pointer; font-family:var(--ff-b); font-size:.8rem; letter-spacing:.06em; transition:all .18s; text-align:center; }
    .bk-slot:hover { border-color:var(--gold-d); color:var(--gold); }
    .bk-slot.bk-slot-sel { background:var(--gold); color:var(--black); border-color:var(--gold); font-weight:500; }
    .bk-slot.bk-slot-booked { opacity:.3; cursor:not-allowed; text-decoration:line-through; }
    .bk-summary { background:var(--surface); border:1px solid var(--border); border-radius:4px; padding:1.5rem; margin-bottom:2rem; max-width:640px; }
    .bk-summary-title { font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); margin-bottom:1rem; }
    .bk-sum-row { display:flex; justify-content:space-between; padding:.5rem 0; border-bottom:1px solid var(--border); font-size:.85rem; }
    .bk-sum-row:last-child { border-bottom:none; }
    .bk-sum-row .sl { color:var(--muted); } .bk-sum-row .sv { color:var(--text); font-weight:400; }
    .bk-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.25rem; max-width:640px; }
    @media(max-width:560px){ .bk-form-grid { grid-template-columns:1fr; } }
    .bk-fg { display:flex; flex-direction:column; gap:.5rem; }
    .bk-fg.full { grid-column:1/-1; }
    .bk-label { font-size:.63rem; letter-spacing:.22em; text-transform:uppercase; color:var(--muted); }
    .bk-input,.bk-textarea,.bk-select { background:rgba(255,255,255,.025); border:1px solid var(--border); color:var(--text); font-family:var(--ff-b); font-size:.88rem; font-weight:300; padding:13px 15px; outline:none; transition:border-color .3s; -webkit-appearance:none; resize:none; }
    .bk-input:focus,.bk-textarea:focus,.bk-select:focus { border-color:var(--gold); background:rgba(201,169,110,.025); }
    .bk-input::placeholder,.bk-textarea::placeholder { color:rgba(122,122,114,.45); }
    .bk-textarea { height:110px; }
    .bk-select option { background:#111; }
    .bk-btn-row { display:flex; gap:1rem; margin-top:2rem; flex-wrap:wrap; }
    .bk-btn-gold { display:inline-flex; align-items:center; gap:.5rem; padding:.85rem 2rem; font-family:var(--ff-b); font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; background:var(--gold); color:var(--black); font-weight:500; border:none; cursor:pointer; transition:all .22s var(--ease); }
    .bk-btn-gold:hover { background:#d4b47c; box-shadow:0 8px 24px rgba(201,169,110,.3); }
    .bk-btn-gold:disabled { opacity:.4; cursor:not-allowed; }
    .bk-btn-ghost { display:inline-flex; align-items:center; gap:.5rem; padding:.85rem 2rem; font-family:var(--ff-b); font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; background:none; border:1px solid rgba(255,255,255,.12); color:var(--muted); cursor:pointer; transition:all .22s; }
    .bk-btn-ghost:hover { border-color:var(--gold-d); color:var(--gold); }
    .bk-conf-wrap { text-align:center; padding:4rem 2rem; max-width:560px; margin:0 auto; }
    .bk-conf-icon { width:64px; height:64px; border-radius:50%; border:1px solid var(--gold); display:flex; align-items:center; justify-content:center; margin:0 auto 2rem; animation:bkPulse 2s ease infinite; }
    @keyframes bkPulse { 0%,100%{box-shadow:0 0 0 0 rgba(201,169,110,.4)} 50%{box-shadow:0 0 0 12px rgba(201,169,110,0)} }
    .bk-conf-wrap h2 { font-family:var(--ff-d); font-size:2.2rem; font-weight:300; letter-spacing:.04em; margin-bottom:1rem; }
    .bk-conf-wrap p { color:var(--muted); font-size:.85rem; line-height:1.7; margin-bottom:2rem; }
    .bk-conf-details { background:var(--surface); border:1px solid var(--border); border-radius:4px; padding:1.5rem; text-align:left; margin-bottom:2rem; }
    .bk-conf-ref { font-size:.62rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); margin-bottom:1rem; }
    .bk-admin-stats { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:14px; margin-bottom:28px; }
    .bk-stat { background:rgba(255,255,255,.018); border:1px solid rgba(255,255,255,.06); padding:20px 22px; }
    .bk-stat-val { font-family:var(--ff-d); font-size:2.4rem; font-weight:300; color:var(--gold); line-height:1; }
    .bk-stat-lbl { font-size:.58rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); margin-top:6px; }
    .bk-admin-tabs { display:flex; gap:0; border-bottom:1px solid rgba(255,255,255,.05); margin-bottom:2rem; overflow-x:auto; }
    .bk-admin-subtab { background:none; border:none; color:var(--muted); cursor:pointer; font-family:var(--ff-b); font-size:.58rem; letter-spacing:.22em; text-transform:uppercase; padding:.85rem 1.5rem; border-bottom:2px solid transparent; margin-bottom:-1px; white-space:nowrap; transition:all .2s; }
    .bk-admin-subtab:hover { color:var(--text); }
    .bk-admin-subtab.on { color:var(--gold); border-bottom-color:var(--gold); }
    .bk-admin-subpanel { display:none; }
    .bk-admin-subpanel.on { display:block; animation:fadeUp .3s var(--ease); }
    .bk-admin-cal-grid { display:grid; grid-template-columns:1fr 340px; gap:2rem; }
    @media(max-width:900px){ .bk-admin-cal-grid { grid-template-columns:1fr; } }
    .bk-big-cal { background:rgba(255,255,255,.018); border:1px solid rgba(255,255,255,.06); padding:2rem; }
    .bk-big-cal-hdr { display:flex; align-items:center; justify-content:space-between; margin-bottom:1.5rem; }
    .bk-big-cal-hdr h3 { font-family:var(--ff-d); font-size:1.4rem; font-weight:300; letter-spacing:.04em; }
    .bk-big-cal-dow { display:grid; grid-template-columns:repeat(7,1fr); text-align:center; margin-bottom:.75rem; }
    .bk-big-cal-dow span { font-size:.58rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); padding:.5rem 0; }
    .bk-big-days { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; }
    .bk-big-day { aspect-ratio:1; border-radius:4px; display:flex; flex-direction:column; align-items:center; justify-content:flex-start; padding-top:6px; font-size:.78rem; cursor:pointer; transition:all .18s; border:1px solid transparent; color:var(--text); position:relative; min-height:56px; }
    .bk-big-day.bke { cursor:default; }
    .bk-big-day.bkp { opacity:.3; }
    .bk-big-day:not(.bke):hover { background:rgba(255,255,255,.04); border-color:rgba(255,255,255,.06); }
    .bk-big-day.bks { background:rgba(201,169,110,.1); border-color:var(--gold); }
    .bk-big-day.bku { background:rgba(255,255,255,.02); }
    .bk-big-day.bku .bkdn { opacity:.25; }
    .bk-big-day.bku::after { content:'✕'; position:absolute; font-size:.5rem; color:var(--muted); bottom:4px; }
    .bkdn { font-size:.78rem; line-height:1; }
    .bk-day-dots { display:flex; gap:2px; margin-top:4px; flex-wrap:wrap; justify-content:center; }
    .bk-day-dot { width:5px; height:5px; border-radius:50%; background:var(--gold); }
    .bk-day-panel { background:rgba(255,255,255,.018); border:1px solid rgba(255,255,255,.06); padding:1.5rem; }
    .bk-day-panel h4 { font-family:var(--ff-d); font-size:1.1rem; font-weight:400; letter-spacing:.04em; margin-bottom:1.25rem; padding-bottom:1rem; border-bottom:1px solid rgba(255,255,255,.05); }
    .bk-booking-item { padding:1rem; background:rgba(255,255,255,.025); border:1px solid rgba(255,255,255,.06); border-radius:3px; margin-bottom:.75rem; }
    .bk-bi-name { font-weight:400; font-size:.9rem; margin-bottom:.25rem; }
    .bk-bi-meta { font-size:.72rem; color:var(--muted); margin-bottom:.5rem; }
    .bk-bi-type { font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gold); }
    .bk-bi-actions { display:flex; gap:.5rem; margin-top:.75rem; }
    .bk-bi-status { margin-top:.5rem; display:flex; align-items:center; gap:.75rem; }
    .bk-badge { display:inline-block; font-size:.58rem; letter-spacing:.1em; text-transform:uppercase; padding:.25rem .6rem; border-radius:2px; }
    .bk-badge-pending  { background:rgba(201,169,110,.12); color:var(--gold); border:1px solid rgba(201,169,110,.2); }
    .bk-badge-confirmed{ background:rgba(100,220,130,.1); color:#6dc87a; border:1px solid rgba(100,220,130,.2); }
    .bk-badge-cancelled{ background:rgba(229,115,115,.1); color:#e57373; border:1px solid rgba(229,115,115,.2); }
    .bk-empty-day { color:var(--muted); font-size:.78rem; text-align:center; padding:2rem 0; }
    .bk-avail-grid { display:grid; grid-template-columns:1fr 1fr; gap:2rem; }
    @media(max-width:768px){ .bk-avail-grid { grid-template-columns:1fr; } }
    .bk-avail-card { background:rgba(255,255,255,.018); border:1px solid rgba(255,255,255,.06); padding:1.5rem; }
    .bk-avail-card h4 { font-family:var(--ff-d); font-size:1.1rem; font-weight:400; letter-spacing:.04em; margin-bottom:1.25rem; padding-bottom:.75rem; border-bottom:1px solid rgba(255,255,255,.05); display:flex; align-items:center; justify-content:space-between; }
    .bk-day-row { display:flex; align-items:center; gap:.75rem; padding:.75rem 0; border-bottom:1px solid rgba(255,255,255,.05); }
    .bk-day-row:last-child { border-bottom:none; }
    .bk-toggle { position:relative; cursor:pointer; width:36px; height:20px; flex-shrink:0; }
    .bk-toggle input { opacity:0; width:0; height:0; }
    .bk-toggle-track { position:absolute; inset:0; background:var(--surface2); border:1px solid rgba(255,255,255,.12); border-radius:10px; transition:all .2s; }
    .bk-toggle-track::before { content:''; position:absolute; width:12px; height:12px; border-radius:50%; background:var(--muted); left:3px; top:3px; transition:all .2s; }
    .bk-toggle input:checked + .bk-toggle-track { background:var(--gold-d); border-color:var(--gold-d); }
    .bk-toggle input:checked + .bk-toggle-track::before { left:19px; background:var(--gold); }
    .bk-dname { font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; width:32px; color:var(--muted); }
    .bk-time-inputs { display:flex; align-items:center; gap:.5rem; flex:1; }
    .bk-tinput { background:rgba(255,255,255,.025); border:1px solid rgba(255,255,255,.06); color:var(--text); padding:.35rem .5rem; border-radius:2px; font-family:var(--ff-b); font-size:.75rem; width:86px; outline:none; transition:border-color .2s; }
    .bk-tinput:focus { border-color:var(--gold); }
    .bk-tinput:disabled { opacity:.3; }
    .bk-tsep { color:var(--muted); font-size:.72rem; }
    .bk-blocked-list { display:flex; flex-direction:column; gap:.5rem; margin-bottom:1rem; }
    .bk-blocked-item { display:flex; align-items:center; justify-content:space-between; background:rgba(255,255,255,.025); border:1px solid rgba(255,255,255,.05); border-radius:2px; padding:.6rem .75rem; font-size:.8rem; }
    .bk-blocked-item .bbl { color:var(--text); }
    .bk-blocked-item .bbn { color:var(--muted); font-size:.7rem; }
    .bk-rm-blocked { background:none; border:none; color:var(--muted); cursor:pointer; font-size:1rem; padding:0 .25rem; transition:color .2s; }
    .bk-rm-blocked:hover { color:#e57373; }
    .bk-add-blocked-row { display:flex; gap:.5rem; align-items:center; flex-wrap:wrap; }
    .bk-add-blocked-row input { background:rgba(255,255,255,.025); border:1px solid rgba(255,255,255,.06); color:var(--text); font-family:var(--ff-b); font-size:.82rem; font-weight:300; padding:9px 12px; outline:none; transition:border-color .3s; }
    .bk-add-blocked-row input:focus { border-color:var(--gold); }
    .bk-st-list { display:flex; flex-direction:column; gap:1rem; margin-bottom:1.5rem; }
    .bk-st-item { background:rgba(255,255,255,.018); border:1px solid rgba(255,255,255,.06); padding:1.25rem; }
    .bk-st-hdr { display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:.75rem; }
    .bk-st-name { font-family:var(--ff-d); font-size:1.1rem; font-weight:400; }
    .bk-st-meta { font-size:.68rem; color:var(--muted); margin-top:.2rem; }
    .bk-st-price { font-family:var(--ff-d); font-size:1.2rem; color:var(--gold); text-align:right; }
    .bk-st-price small { display:block; font-family:var(--ff-b); font-size:.6rem; color:var(--muted); letter-spacing:.1em; text-transform:uppercase; }
    .bk-st-actions { display:flex; gap:.5rem; }
    .bk-add-form { background:rgba(255,255,255,.018); border:1px solid rgba(255,255,255,.06); padding:1.5rem; }
    .bk-add-form h4 { font-family:var(--ff-d); font-size:1.1rem; font-weight:400; letter-spacing:.04em; margin-bottom:1.25rem; }
    .bk-table-wrap { overflow-x:auto; }
    .bk-table { width:100%; border-collapse:collapse; }
    .bk-table th { font-size:.58rem; letter-spacing:.15em; text-transform:uppercase; color:var(--muted); padding:.75rem 1rem; border-bottom:1px solid rgba(255,255,255,.05); text-align:left; font-weight:400; white-space:nowrap; }
    .bk-table td { padding:.9rem 1rem; border-bottom:1px solid rgba(255,255,255,.05); font-size:.82rem; vertical-align:middle; }
    .bk-table tr:hover td { background:rgba(255,255,255,.015); }
    .bk-actions-row { display:flex; gap:.5rem; }
    .bk-sm { font-size:.58rem; padding:.35rem .7rem; letter-spacing:.12em; text-transform:uppercase; border-radius:2px; cursor:pointer; font-family:var(--ff-b); border:1px solid rgba(255,255,255,.1); background:none; color:var(--muted); transition:all .2s; }
    .bk-sm:hover { border-color:var(--gold-d); color:var(--gold); }
    .bk-sm.danger:hover { border-color:#e57373; color:#e57373; }
    #bk-cancel-modal,#bk-del-session-modal { display:none; position:fixed; inset:0; background:rgba(0,0,0,.75); z-index:3000; align-items:center; justify-content:center; padding:2rem; }
    #bk-cancel-modal.open,#bk-del-session-modal.open { display:flex; }
    .bk-modal { background:var(--surface); border:1px solid rgba(255,255,255,.12); border-radius:4px; padding:2rem; max-width:420px; width:100%; animation:fadeUp .3s var(--ease); }
    .bk-modal h3 { font-family:var(--ff-d); font-size:1.4rem; font-weight:300; letter-spacing:.04em; margin-bottom:.5rem; }
    .bk-modal p { color:var(--muted); font-size:.8rem; margin-bottom:1.5rem; line-height:1.6; }
    .bk-modal-actions { display:flex; gap:.75rem; justify-content:flex-end; }
    @media(max-width:480px){ #send-gallery-modal .sgm-grid { grid-template-columns:1fr !important; } }
    @media(max-width:640px){ .bk-hero { padding:3rem 1.5rem 2rem; } .bk-content { padding:2rem 1.5rem 4rem; } }
    @media(max-width:480px){
      .bk-contact-bar { flex-direction:column; border-radius:8px; } .bk-contact-divider { width:100%; height:1px; } .bk-contact-pill { justify-content:center; }
      .bk-hero { padding:2rem 1rem 1.5rem; }
      .bk-content { padding:1.5rem 1rem 3rem; }
      .bk-steps { padding:1.5rem 0.75rem 0; }
      .bk-step-label { font-size:0.55rem; letter-spacing:0.06em; }
      .bk-step-num { width:24px; height:24px; font-size:0.65rem; }
      .bk-sessions-grid { grid-template-columns:1fr; }
      .bk-btn { padding:0.8rem 1.25rem; font-size:0.72rem; }
      .bk-btn-row { flex-direction:column; gap:0.75rem; }
      .bk-btn-row .bk-btn { width:100%; justify-content:center; }
      .bk-summary-row { flex-wrap:wrap; gap:0.2rem; }
      .bk-form-input, .bk-form-textarea, .bk-form-select { font-size:16px; }
    }

    /* ── DASHBOARD RESPONSIVE GRID (Fix 1) ─────────────────────────────── */
    .pbc-dash-stats-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 8px;
      margin-bottom: 0;
    }
    .pbc-dash-panels-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 12px;
    }
    @media (max-width: 700px) {
      .pbc-dash-stats-grid { grid-template-columns: repeat(2, 1fr); }
      .pbc-dash-panels-grid { grid-template-columns: 1fr; }
    }
    @media (max-width: 400px) {
      .pbc-dash-stats-grid { grid-template-columns: 1fr 1fr; gap: 6px; }
    }

    /* ── GALLERY EDITOR MOBILE (Fix 2) ──────────────────────────────────── */
    @media (max-width: 700px) {
      #pbc-ged-body { flex-direction: column !important; }
      #pbc-ged-icon-col {
        width: 100% !important;
        flex-direction: row !important;
        height: 44px !important;
        border-right: none !important;
        border-bottom: 1px solid var(--admin-border, #e8e8e8);
        flex-shrink: 0;
        overflow-x: auto;
        padding: 0 4px !important;
        gap: 0 !important;
        align-items: center !important;
      }
      #pbc-ged-icon-col .pbc-ged-itab {
        width: auto !important;
        height: 44px !important;
        padding: 0 14px !important;
        flex-shrink: 0;
        font-size: 18px !important;
      }
      #pbc-ged-icon-col .pbc-ged-itab:last-child { margin-left: auto; }
      #pbc-ged-subnav { display: none !important; }
      #pbc-ged-content { min-width: 0 !important; }
      #pbc-ged-preview { display: none !important; }
    }
    @media (max-width: 1024px) {
      #pbc-ged-preview { width: 280px !important; }
    }

    /* ── ADMIN BAR + NAV OFFSET (Fix 3) ─────────────────────────────────── */
    html.pbc-admin-bar-active #nav { top: 40px !important; }
    html.pbc-admin-bar-active #admin-modal { top: 0 !important; margin-top: 0 !important; }

    /* ── ADMIN NAV SCROLL INDICATOR (Fix 4) ─────────────────────────────── */
    @media (max-width: 700px) {
      .admin-sidebar { position: relative; }
      .admin-sidebar::after {
        content: '';
        position: absolute;
        right: 0; top: 0; bottom: 0;
        width: 32px;
        background: linear-gradient(to right, transparent, var(--admin-bg, #fff));
        pointer-events: none;
        z-index: 1;
      }
    }

    /* ── R2 drag-and-drop uploader ── */
    #new-gal-dropzone.drag-over {
      border-color: var(--gold, #C9A84C) !important;
      background: rgba(201, 168, 76, .06) !important;
    }
    .ngal-thumb {
      aspect-ratio: 1;
      object-fit: cover;
      border-radius: 4px;
      width: 100%;
      display: block;
    }
    .ngal-progress-item {
      display: flex;
      align-items: center;
      gap: 8px;
      font-size: .75rem;
      color: var(--muted, #888);
      padding: 4px 0;
      border-bottom: 1px solid var(--admin-border, #f0f0f0);
    }
    .ngal-progress-bar-wrap {
      flex: 1;
      height: 4px;
      background: var(--admin-border, #eee);
      border-radius: 2px;
      overflow: hidden;
    }
    .ngal-progress-bar {
      height: 100%;
      background: var(--gold, #C9A84C);
      width: 0%;
      transition: width .2s;
      border-radius: 2px;
    }

/* ── PLANNER: scoped to admin ───────────────────────────────────────────── */
#pl {
  display:flex;flex-direction:column;
  height:calc(100vh - 52px); /* 52px = admin topbar */
  overflow:hidden;background:#F5F5F7;position:relative;
  font-family:system-ui,-apple-system,BlinkMacSystemFont,'Helvetica Neue',Arial,sans-serif;
  -webkit-font-smoothing:antialiased;color:#1D1D1F;
}
#pl-bar {
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 20px 10px;
  background:rgba(255,255,255,0.94);
  backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
  border-bottom:1px solid #E5E5EA;flex-shrink:0;z-index:10;gap:12px;
}
.pl-left{display:flex;align-items:center;gap:6px;min-width:0;}
.pl-title{font-size:19px;font-weight:700;letter-spacing:-.4px;color:#1D1D1F;white-space:nowrap;min-width:160px;}
.pl-nav-btn{width:30px;height:30px;border:none;background:#F2F2F7;border-radius:50%;cursor:pointer;
  display:flex;align-items:center;justify-content:center;color:#007AFF;font-size:18px;font-weight:300;
  transition:background .15s,color .15s;flex-shrink:0;line-height:1;}
#pl .pl-nav-btn:hover{background:#007AFF;color:#fff;}
.pl-today-btn{font-size:13px;font-weight:500;padding:6px 13px;border:1.5px solid #E5E5EA;border-radius:8px;
  background:#fff;color:#6E6E73;cursor:pointer;transition:all .15s;white-space:nowrap;flex-shrink:0;
  font-family:inherit;}
#pl .pl-today-btn:hover{border-color:#007AFF;color:#007AFF;background:rgba(0,122,255,.05);}
.pl-seg{display:flex;background:#F2F2F7;border-radius:10px;padding:3px;gap:2px;flex-shrink:0;}
.pl-seg-btn{padding:5px 15px;border:none;border-radius:7px;background:transparent;font-size:13px;
  font-weight:500;color:#6E6E73;cursor:pointer;transition:all .2s;white-space:nowrap;font-family:inherit;outline:none;}
#pl .pl-seg-btn.active{background:#fff;color:#1D1D1F;font-weight:600;
  box-shadow:0 1px 4px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.08);}
#pl-legend{display:flex;align-items:center;gap:18px;padding:7px 20px;
  background:#fff;border-bottom:1px solid #F2F2F7;flex-shrink:0;}
.pl-li{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:#6E6E73;user-select:none;}
.pl-ld{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
#pl-content{flex:1;display:flex;overflow:hidden;position:relative;min-height:0;}
#pl-main{flex:1;overflow-y:auto;overflow-x:hidden;transition:margin-right .36s cubic-bezier(.4,0,.2,1);min-width:0;min-height:0;}
#pl-main.panel-open{margin-right:340px;}
/* Side panel */
#pl-panel{position:absolute;right:0;top:0;bottom:0;width:340px;background:#fff;
  border-left:1px solid #E5E5EA;transform:translateX(100%);
  transition:transform .36s cubic-bezier(.4,0,.2,1);overflow-y:auto;z-index:20;display:flex;flex-direction:column;}
#pl-panel.open{transform:translateX(0);}
.panel-head{padding:20px 20px 14px;border-bottom:1px solid #F2F2F7;flex-shrink:0;position:relative;}
.panel-day-num{font-size:46px;font-weight:700;letter-spacing:-2px;line-height:1;color:#1D1D1F;transition:color .2s;}
.panel-day-num.is-today{color:#007AFF;}
.panel-day-label{font-size:14px;font-weight:500;color:#6E6E73;margin-top:3px;}
.panel-close{position:absolute;top:14px;right:14px;width:28px;height:28px;border:none;border-radius:50%;
  background:#F2F2F7;color:#6E6E73;cursor:pointer;display:flex;align-items:center;justify-content:center;
  font-size:13px;font-weight:600;transition:background .15s;}
#pl .panel-close:hover{background:#E5E5EA;}
.panel-body{flex:1;overflow-y:auto;padding:14px 16px 80px;}
.p-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:36px 20px;gap:10px;color:#C7C7CC;}
#pl .p-empty svg{opacity:.35;}.p-empty span{font-size:14px;font-weight:500;}
.ev-card{display:flex;align-items:flex-start;gap:10px;padding:11px 12px;border-radius:8px;margin-bottom:6px;
  border:1px solid #F2F2F7;background:#fff;position:relative;transition:border-color .15s,box-shadow .15s;}
#pl .ev-card:hover{border-color:#E5E5EA;box-shadow:0 2px 8px rgba(0,0,0,.06);}
.ev-stripe{width:3px;border-radius:2px;align-self:stretch;flex-shrink:0;}
.ev-info{flex:1;min-width:0;}
.ev-title{font-size:14px;font-weight:600;color:#1D1D1F;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ev-meta{font-size:12px;color:#6E6E73;margin-top:2px;}
.ev-note{font-size:12px;color:#6E6E73;margin-top:4px;line-height:1.45;}
.ev-badge{font-size:10px;font-weight:700;padding:2px 7px;border-radius:20px;text-transform:uppercase;
  letter-spacing:.3px;align-self:flex-start;flex-shrink:0;}
.ev-del{width:22px;height:22px;border:none;background:none;color:#C7C7CC;cursor:pointer;border-radius:4px;
  display:flex;align-items:center;justify-content:center;font-size:15px;opacity:0;transition:opacity .15s;
  flex-shrink:0;margin-left:auto;}
#pl .ev-card:hover .ev-del{opacity:1;}#pl .ev-del:hover{color:#FF3B30;}
.panel-add-btn{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;
  border:1.5px dashed #E5E5EA;border-radius:8px;background:none;color:#007AFF;font-size:14px;font-weight:500;
  cursor:pointer;transition:all .15s;margin-top:4px;font-family:inherit;}
#pl .panel-add-btn:hover{border-color:#007AFF;background:rgba(0,122,255,.04);}
/* Type colors */
#pl .tc-session{color:#0060CC;background:rgba(0,122,255,.1);}
#pl .tc-blocked{color:#CC2E25;background:rgba(255,59,48,.1);}
#pl .tc-personal{color:#248A3D;background:rgba(52,199,89,.1);}
#pl .tc-holiday{color:#C96A00;background:rgba(255,149,0,.1);}
/* Month view */
.month-wrap{padding:10px 14px 20px;}
.month-dow-row{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;
  padding:6px 0 8px;font-size:11px;font-weight:700;text-transform:uppercase;
  letter-spacing:.5px;color:#C7C7CC;}
.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;}
.m-cell{min-height:84px;padding:6px 7px;border-radius:6px;cursor:pointer;transition:background .12s;
  background:#fff;border:1.5px solid transparent;position:relative;overflow:hidden;}
#pl .m-cell:hover{background:#FAFAFA;}#pl .m-cell.other .m-dn{color:#C7C7CC;}#pl .m-cell.other{background:transparent;}
#pl .m-cell.selected{border-color:#007AFF;background:rgba(0,122,255,.04);}
.m-dn{font-size:14px;font-weight:500;color:#1D1D1F;width:26px;height:26px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;margin-bottom:5px;line-height:1;transition:all .15s;}
#pl .m-cell.today .m-dn{background:#007AFF;color:#fff;font-weight:700;}
.m-pills{display:flex;flex-direction:column;gap:2px;}
.m-pill{display:flex;align-items:center;gap:4px;font-size:11px;font-weight:500;padding:2px 6px;
  border-radius:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
.m-pill-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;}
.m-more{font-size:11px;color:#C7C7CC;font-weight:500;padding:1px 4px;}
/* Week view */
.week-outer{display:flex;height:100%;overflow-y:auto;}
.week-time-col{width:56px;flex-shrink:0;border-right:1px solid #F2F2F7;}
.week-time-hdr{height:58px;border-bottom:1px solid #F2F2F7;}
.week-time-slot{height:60px;display:flex;align-items:flex-start;padding:3px 8px 0 0;
  justify-content:flex-end;font-size:11px;font-weight:500;color:#C7C7CC;border-bottom:1px solid #F2F2F7;user-select:none;}
.week-days{flex:1;display:grid;grid-template-columns:repeat(7,1fr);min-width:0;}
.week-col{border-right:1px solid #F2F2F7;position:relative;min-width:0;}
#pl .week-col:last-child{border-right:none;}
.week-col-hdr{height:58px;display:flex;flex-direction:column;align-items:center;justify-content:center;
  border-bottom:1px solid #E5E5EA;cursor:pointer;gap:2px;position:sticky;top:0;
  background:rgba(255,255,255,.96);backdrop-filter:blur(12px);z-index:5;transition:background .12s;}
#pl .week-col-hdr:hover{background:#FAFAFA;}#pl .week-col-hdr.today-col{background:rgba(0,122,255,.04);}
.wh-dow{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:#C7C7CC;}
.wh-num{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:17px;font-weight:600;color:#1D1D1F;transition:all .15s;}
#pl .today-col .wh-num{background:#007AFF;color:#fff;}#pl .sel-col .wh-num{background:rgba(0,122,255,.14);color:#007AFF;}
.week-slots{position:relative;}
.w-slot{height:60px;border-bottom:1px solid #F2F2F7;cursor:pointer;transition:background .1s;}
.w-slot:hover{background:rgba(0,122,255,.03);}
.w-event{position:absolute;left:3px;right:3px;border-radius:6px;padding:3px 7px;font-size:11px;font-weight:600;
  overflow:hidden;cursor:pointer;z-index:2;border-left-width:3px;border-left-style:solid;}
/* Day view */
.day-outer{display:flex;height:100%;overflow-y:auto;position:relative;}
.day-time-col{width:64px;flex-shrink:0;border-right:1px solid #F2F2F7;}
.day-time-slot{height:64px;display:flex;align-items:flex-start;padding:4px 12px 0 0;
  justify-content:flex-end;font-size:12px;font-weight:500;color:#C7C7CC;border-bottom:1px solid #F2F2F7;user-select:none;}
.day-slots-col{flex:1;position:relative;min-width:0;}
.d-slot{height:64px;border-bottom:1px solid #F2F2F7;cursor:pointer;transition:background .1s;}
.d-slot:hover{background:rgba(0,122,255,.03);}
.now-line{position:absolute;left:0;right:0;height:2px;background:#FF3B30;z-index:5;pointer-events:none;}
.now-line::before{content:'';position:absolute;left:-5px;top:-4px;width:10px;height:10px;border-radius:50%;background:#FF3B30;}
.d-event{position:absolute;left:10px;right:10px;border-radius:8px;padding:7px 11px;font-size:12px;font-weight:600;
  cursor:pointer;z-index:2;min-height:28px;border-left-width:4px;border-left-style:solid;overflow:hidden;}
.d-event-time{font-weight:400;opacity:.75;font-size:11px;margin-top:2px;}
/* Year view */
.year-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;padding:18px;}
.mini-month{background:#fff;border-radius:12px;padding:14px 12px;cursor:pointer;border:1.5px solid transparent;
  transition:all .18s;box-shadow:0 1px 4px rgba(0,0,0,.06);}
#pl .mini-month:hover{border-color:#007AFF;transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,122,255,.12);}
#pl .mini-month.cur-month{border-color:#007AFF;}
.mini-title{font-size:13px;font-weight:700;color:#1D1D1F;margin-bottom:9px;}
#pl .mini-month.cur-month .mini-title{color:#007AFF;}
.mini-dow-row{display:grid;grid-template-columns:repeat(7,1fr);font-size:9px;font-weight:700;
  color:#C7C7CC;text-align:center;margin-bottom:4px;text-transform:uppercase;}
.mini-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;}
.mini-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;
  font-size:10px;font-weight:400;color:#1D1D1F;border-radius:50%;position:relative;transition:background .1s;}
#pl .mini-cell.other{color:#C7C7CC;}#pl .mini-cell.mini-today{background:#007AFF;color:#fff;font-weight:700;}
#pl .mini-cell.has-ev::after{content:'';position:absolute;bottom:1px;left:50%;transform:translateX(-50%);
  width:3px;height:3px;border-radius:50%;background:#007AFF;}
#pl .mini-cell.mini-today::after{display:none;}
/* FAB — only visible when planner tab is active */
#pl-fab{display:none;position:fixed;bottom:28px;right:28px;width:56px;height:56px;border-radius:50%;
  background:#007AFF;color:#fff;border:none;font-size:30px;line-height:1;cursor:pointer;
  box-shadow:0 4px 18px rgba(0,122,255,.44),0 2px 6px rgba(0,0,0,.12);align-items:center;justify-content:center;
  transition:all .22s cubic-bezier(.34,1.56,.64,1);z-index:8000;}
#atab-planner.on #pl-fab,
#pl-fab.pl-fab-visible{display:flex;}
#pl-fab:hover{transform:scale(1.1);box-shadow:0 8px 28px rgba(0,122,255,.52);}
#pl-fab:active{transform:scale(.94);}
/* Modal */
#pl-modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.36);backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);z-index:9000;display:none;align-items:center;justify-content:center;}
#pl-modal-bg.show{display:flex;}
#pl-modal{background:#fff;border-radius:20px;padding:28px 26px 24px;width:420px;
  max-width:calc(100vw - 32px);box-shadow:0 24px 64px rgba(0,0,0,.22);
  animation:pl-modal-pop .28s cubic-bezier(.34,1.56,.64,1);}
@keyframes pl-modal-pop{from{opacity:0;transform:scale(.88) translateY(16px);}to{opacity:1;transform:scale(1) translateY(0);}}
.pl-modal-hd{font-size:20px;font-weight:700;color:#1D1D1F;margin-bottom:22px;letter-spacing:-.3px;}
.pl-mf{margin-bottom:14px;}
.pl-ml{font-size:11px;font-weight:700;color:#6E6E73;text-transform:uppercase;letter-spacing:.6px;margin-bottom:6px;}
.pl-mi{width:100%;padding:10px 14px;border:1.5px solid #E5E5EA;border-radius:8px;font-size:15px;
  color:#1D1D1F;background:#fff;font-family:inherit;transition:border-color .15s;outline:none;}
.pl-mi:focus{border-color:#007AFF;}
.pl-type-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;}
.pl-tc{padding:9px 4px;border:1.5px solid #E5E5EA;border-radius:8px;text-align:center;font-size:11px;
  font-weight:700;cursor:pointer;transition:all .15s;color:#6E6E73;background:#FAFAFA;user-select:none;}
.pl-tc .chip-ico{font-size:18px;display:block;margin-bottom:3px;}
#pl .pl-tc.sel-session{border-color:#007AFF;color:#007AFF;background:rgba(0,122,255,.08);}
#pl .pl-tc.sel-blocked{border-color:#FF3B30;color:#FF3B30;background:rgba(255,59,48,.08);}
#pl .pl-tc.sel-personal{border-color:#34C759;color:#34C759;background:rgba(52,199,89,.08);}
#pl .pl-tc.sel-holiday{border-color:#FF9500;color:#FF9500;background:rgba(255,149,0,.08);}
.pl-time-pair{display:flex;gap:10px;}.pl-time-pair .pl-mf{flex:1;}
.pl-modal-actions{display:flex;gap:10px;margin-top:20px;}
.pl-btn-cancel{flex:1;padding:12px;border:1.5px solid #E5E5EA;border-radius:8px;background:#fff;
  font-size:15px;font-weight:600;color:#6E6E73;cursor:pointer;transition:all .15s;font-family:inherit;}
#pl .pl-btn-cancel:hover{background:#FAFAFA;}
.pl-btn-save{flex:2;padding:12px;border:none;border-radius:8px;background:#007AFF;
  font-size:15px;font-weight:600;color:#fff;cursor:pointer;transition:all .15s;font-family:inherit;}
#pl .pl-btn-save:hover{background:#0060CC;}
.pl-view-in{animation:pl-view-in .22s ease-out;}
@keyframes pl-view-in{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}
#pl ::-webkit-scrollbar{width:6px;height:6px;}
#pl ::-webkit-scrollbar-track{background:transparent;}
#pl ::-webkit-scrollbar-thumb{background:#E5E5EA;border-radius:3px;}
#pl ::-webkit-scrollbar-thumb:hover{background:#C7C7CC;}

/* ── MOBILE UI FIXES ────────────────────────────────────────────────── */

/* FIX 1 — Hero section small phone overflow */
@media(max-width:390px) {
  .hero-h1 { font-size: clamp(2.4rem, 9vw, 3.4rem); }
  .hero-cnt { padding: 0 20px; }
  .hero-sub { font-size: .82rem; }
}

/* FIX 2 — Gallery viewer mobile layout */
@media(max-width:768px) {
  .gv-grid { padding: 0 14px 60px; columns: 2; column-gap: 3px; }
  .gv-header { padding: 28px 14px 20px; flex-direction: column; align-items: flex-start; gap: 12px; }
  .gv-title { font-size: 1.8rem; }
  .gv-dl-all { font-size: .56rem; padding: 7px 12px; }
  .gv-close { font-size: .56rem; padding: 8px 14px; }
}
@media(max-width:480px) {
  .gv-grid { columns: 1; }
  .gv-header { padding: 20px 14px 14px; }
}

/* FIX 3 — Client area grid single column on small phones */
@media(max-width:560px) {
  .client-grid { grid-template-columns: 1fr; padding: 0 16px 80px; }
  .cc { aspect-ratio: 3/2; }
}

/* FIX 4 — Booking page calendar mobile */
@media(max-width:480px) {
  .bk-cal-wrap, .bk-time-wrap { padding: 1rem; }
  .bk-cal-hdr h3 { font-size: .95rem; }
  .bk-day { font-size: .72rem; }
  .bk-sessions-grid { grid-template-columns: 1fr; }
  .bk-steps { gap: 0; padding: 1.25rem 0.5rem 0; }
  .bk-step-label { font-size: .5rem; letter-spacing: .04em; }
  .bk-content { padding: 1.5rem 1rem 3rem; }
  .calc-section { padding: 2rem 1rem 0; }
  .calc-opts { gap: .35rem; }
  .calc-opt { font-size: .72rem; padding: .5rem .8rem; }
  .calc-total-row { flex-direction: column; gap: .75rem; padding: 1rem; }
}

/* FIX 5 — Contact page mobile padding */
@media(max-width:640px) {
  .contact-left, .contact-right { padding: 40px 20px; }
  .contact-right .sec-h2 { font-size: 1.8rem; }
}

/* FIX 6 — Services list mobile */
@media(max-width:768px) {
  .svc-info { padding: 28px 24px; }
  .svc-info-name { font-size: 1.7rem; }
  .svc-info-desc { font-size: .82rem; }
}
@media(max-width:480px) {
  .svc-info { padding: 22px 18px; }
  .svc-hero { padding: 0 22px 40px; }
  .svc-custom-cta { padding: 50px 18px 70px; }
}

/* FIX 7 — Pin modal mobile keyboard push */
@media(max-width:560px) {
  #pin-modal { align-items: flex-end; }
  .pin-box {
    max-width: 100%;
    border-radius: 20px 20px 0 0;
    padding: 40px 28px 40px;
    padding-bottom: max(40px, env(safe-area-inset-bottom));
  }
  .pin-input { font-size: 2.2rem; }
}

/* FIX 8 — Navigation on very small screens */
@media(max-width:360px) {
  .nav-brand { font-size: .9rem; letter-spacing: .08em; }
  #nav { padding: 0 16px; }
}

/* FIX 9 — Home stats strip small phone */
@media(max-width:390px) {
  .home-stat-n { font-size: 2rem; }
  .home-about { grid-template-columns: 1fr 1fr; }
}

/* FIX 10 — Featured strip small phone */
@media(max-width:390px) {
  .feat-img { aspect-ratio: 3/4; }
  .home-featured { padding: 60px 16px; }
}

/* FIX 11 — FAQ page mobile spacing */
@media(max-width:600px) {
  .faq-section { padding: calc(var(--nav-h) + 40px) 20px 80px; }
  .faq-q { font-size: 1.05rem; }
}

/* FIX 12 — Lightbox arrows on mobile */
@media(max-width:560px) {
  .lb-arr { font-size: 1.6rem; padding: 12px 8px; }
  #lb-img { max-width: 98vw; max-height: 85vh; }
  .lb-x { top: 16px; right: 18px; font-size: 1.5rem; }
  .lb-counter { font-size: .62rem; bottom: 16px; }
}

/* FIX 13 — Admin panel sidebar small phone */
@media(max-width:480px) {
  .admin-tab { padding: 10px 12px; font-size: .72rem; }
  .anav-icon { width: 14px; height: 14px; }
  .admin-section.on { padding: 20px 12px 60px; }
  #admin-modal .admin-sh h2 { font-size: 1.1rem; }
  .gal-grid { grid-template-columns: 1fr; }
}

/* FIX 14 — Portfolio masonry on small tablets */
@media(max-width:860px) {
  .masonry { columns: 2; padding: 0 22px 60px; }
}

/* FIX 15 — Safe area insets for iPhone notch/home bar */
@supports (padding-bottom: env(safe-area-inset-bottom)) {
  #nav {
    padding-left: max(22px, env(safe-area-inset-left));
    padding-right: max(22px, env(safe-area-inset-right));
  }
  footer {
    padding-bottom: max(36px, env(safe-area-inset-bottom));
  }
  .mob-menu {
    padding-bottom: max(20px, env(safe-area-inset-bottom));
  }
  #gv-modal .gv-grid {
    padding-bottom: max(80px, calc(60px + env(safe-area-inset-bottom)));
  }
}

/* ── END MOBILE UI FIXES ───────────────────────────────────────────── */

/* ── GALLERY CONTENT PROTECTION ────────────────────────────────────── */
#gv-modal, #page-client .client-grid, #lb {
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}

/* Disable native image drag/save on gallery images */
#gv-modal img,
#gv-grid img,
#lb-img,
.cc-bg,
.gv-item img {
  -webkit-user-drag: none;
  -khtml-user-drag: none;
  -moz-user-drag: none;
  user-drag: none;
  pointer-events: none; /* Clicks handled by parent .gv-item div */
  -webkit-touch-callout: none;
}

/* Transparent overlay on each gallery cell — intercepts right-click */
.gv-item {
  position: relative;
}
.gv-item::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 25;
  background: transparent;
  cursor: pointer;
}

/* Lightbox image — prevent pointer events (arrow nav still works via sibling buttons) */
#lb-img {
  pointer-events: none;
}

/* Invisible screenshot-deterrent layer rendered above gallery content.
   On several mobile WebKit builds this composite layer shows as semi-opaque
   in screen captures while remaining invisible to the naked eye. */
#gv-modal.open::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 1801;
  background: #000;
  opacity: 0.004;
  pointer-events: none;
  will-change: opacity;
}
/* ── END GALLERY CONTENT PROTECTION ───────────────────────────────── */