  :root{
    --pink:#E8177D;
    --pink-dark:#C1105F;
    --purple:#6E44C7;
    --teal:#1FA793;
    --gold:#C98A1A;
    --sage:#4E8A4A;
    --cream:#FFF6F8;
    --ink:#241726;
    --ink-soft:#6b5b6e;
    --line:#F0DDE5;
    --card:#ffffff;
    --danger:#C0392B;
    --radius:14px;
  }
  *{box-sizing:border-box;}
  html,body{margin:0;padding:0;overflow-x:hidden;}
  body{
    background:var(--cream);
    color:var(--ink);
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
    -webkit-font-smoothing:antialiased;
    min-height:100vh;
  }
  #app{max-width:520px;margin:0 auto;padding:0 16px 40px;}
  #intake{ max-width:680px !important; margin-left:auto !important; margin-right:auto !important; width:100%; }
  #builder{ max-width:1100px !important; margin-left:auto !important; margin-right:auto !important; width:100%; }
  #intake{ margin-top:128px; }
  header.top{
    padding:28px 4px 18px;
    text-align:center;
  }
  header.top .brand{
    font-size:28px;
    font-weight:800;
    letter-spacing:-0.5px;
    color:var(--pink-dark);
  }
  header.top .brand span{color:var(--purple);}
  header.top .sub{font-size:13px;color:var(--ink-soft);margin-top:2px;}

  .card{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:22px 20px;
    margin-bottom:14px;
  }
  .auth-tabs{
    display:flex;
    gap:6px;
    background:var(--card);
    border:1px solid var(--line);
    border-radius:12px;
    padding:4px;
    margin-bottom:16px;
  }
  .auth-tabs button{
    flex:1;
    border:none;
    background:transparent;
    padding:11px 4px;
    font-size:14px;
    font-weight:700;
    color:var(--ink-soft);
    border-radius:9px;
    cursor:pointer;
  }
  .auth-tabs button.active{
    background:var(--pink);
    color:white;
  }
  .field{margin-bottom:14px;}
  @keyframes tbFieldGlow{
    0%,100%{ box-shadow:0 0 0 0 rgba(220,38,38,.45); }
    50%{ box-shadow:0 0 0 7px rgba(220,38,38,.14); }
  }
  .field.tb-invalid input,
  .field.tb-invalid select,
  .field.tb-invalid textarea{
    border-color:#dc2626 !important;
    animation:tbFieldGlow 1.4s ease-in-out infinite;
  }
  .field label{
    display:block;
    font-size:12.5px;
    font-weight:700;
    color:var(--ink-soft);
    margin-bottom:5px;
  }
  .field input{
    width:100%;
    padding:11px 12px;
    border:1.5px solid var(--line);
    border-radius:10px;
    font-size:15px;
    background:#fff;
    color:var(--ink);
    font-family:inherit;
  }
  .field input:focus{
    outline:2px solid var(--purple);
    outline-offset:1px;
    border-color:var(--purple);
  }
  button.btn{
    border:none;
    border-radius:11px;
    padding:13px 16px;
    font-weight:800;
    font-size:15px;
    cursor:pointer;
    width:100%;
  }
  button.btn-primary{background:linear-gradient(135deg,#e8177d 0%,#ec3b91 48%,#7650cb 100%);color:#fff;box-shadow:0 8px 18px rgba(137,44,105,.18);}
  button.btn-primary:hover{filter:brightness(1.03);}
  button.btn-primary:active{filter:brightness(.97);}
  button.btn-outline{background:transparent;border:1.5px solid var(--line);color:var(--ink);}
  button:disabled{opacity:.55;cursor:not-allowed;}
  .form-msg{
    font-size:13px;
    margin-top:10px;
    text-align:center;
    min-height:18px;
  }
  .form-msg.error{color:var(--danger);}
  .form-msg.ok{color:var(--teal);}

  .welcome-name{font-size:22px;font-weight:800;}
  .role-pill{
    display:inline-block;
    margin-top:6px;
    padding:4px 12px;
    border-radius:999px;
    font-size:11.5px;
    font-weight:800;
    letter-spacing:.3px;
    text-transform:uppercase;
  }
  .role-pill.customer{background:#F1EAFB;color:var(--purple);}
  .role-pill.staff{background:#E4F7F3;color:var(--teal);}
  .role-pill.admin{background:#FDEBE4;color:#C1105F;}

  .coming-soon{
    border:1.5px dashed var(--line);
    border-radius:12px;
    padding:18px;
    text-align:center;
    color:var(--ink-soft);
    font-size:13.5px;
    margin-top:14px;
  }
  .coming-soon strong{display:block;color:var(--ink);font-size:14.5px;margin-bottom:4px;}

  /* ---- scroll reveal ---- */
  /* ---- one deliberate entrance: the hero loads in as a sequence ---- */
  #heroIntro .hero-eyebrow,
  #heroIntro h1,
  #heroIntro .hero-sub,
  #heroIntro .hero-tags,
  #heroIntro #heroBookBtn{
    opacity:0;
    transform:translateY(14px);
    animation:heroIn .5s cubic-bezier(.2,.7,.3,1) forwards;
  }
  #heroIntro .hero-eyebrow{animation-delay:.05s;}
  #heroIntro h1{animation-delay:.15s;}
  #heroIntro .hero-sub{animation-delay:.25s;}
  #heroIntro .hero-tags{animation-delay:.35s;}
  #heroIntro #heroBookBtn{animation-delay:.45s;}
  @keyframes heroIn{ to{ opacity:1; transform:translateY(0); } }

  /* ---- scroll-triggered section transitions ---- */
  .reveal{
    opacity:0;
    transform:translateY(30px);
    transition:opacity .7s cubic-bezier(.2,.7,.3,1), transform .7s cubic-bezier(.2,.7,.3,1);
  }
  .reveal.is-visible{
    opacity:1;
    transform:translateY(0);
  }

  @media (prefers-reduced-motion: reduce){
    *, *::before, *::after{
      animation-duration:.001ms !important;
      animation-iteration-count:1 !important;
      transition-duration:.001ms !important;
    }
  }
  button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible{
    outline:2px solid var(--purple);
    outline-offset:2px;
  }

  /* ---- package builder ---- */
  .builder-grid{display:block;}
  .builder-step{margin-bottom:14px;}
  .step-label{
    font-size:16px;font-weight:800;
    color:var(--ink);margin-bottom:12px;
  }
  .tier-card{cursor:pointer;transition:transform .15s ease, box-shadow .15s ease;}
  .tier-card:active{transform:scale(.98);}
  .tier-card.selected{
    border-color:var(--pink);
    box-shadow:0 0 0 2px var(--pink) inset;
    background:#FDEFF5;
  }
  .tier-card.tier-deluxe.selected{box-shadow:0 0 0 2px var(--purple) inset;border-color:var(--purple);background:#F1EAFB;}
  .tier-card.tier-party.selected{box-shadow:0 0 0 2px var(--teal) inset;border-color:var(--teal);background:#E7F7F3;}

  .exp-card{cursor:pointer;position:relative;transition:transform .15s ease, box-shadow .15s ease;}
  .exp-card:active{transform:scale(.98);}
  .exp-card.selected{box-shadow:0 0 0 2px var(--ink) inset;}
  .exp-card .exp-badge{
    position:absolute;top:10px;right:10px;
    background:var(--ink);color:#fff;
    font-size:10px;font-weight:800;letter-spacing:.3px;text-transform:uppercase;
    padding:3px 9px;border-radius:999px;
  }
  .exp-card.disabled{opacity:.4;cursor:not-allowed;}

  .guest-row{
    display:flex;align-items:center;justify-content:space-between;
    margin-bottom:16px;
  }
  .guest-label{font-weight:800;font-size:15px;}
  .guest-stepper{display:flex;align-items:center;gap:14px;}
  .stepper-btn{
    width:36px;height:36px;border-radius:999px;border:1.5px solid var(--line);
    background:#fff;font-size:18px;font-weight:800;color:var(--ink);cursor:pointer;
  }
  #guestCount{font-size:18px;font-weight:800;min-width:24px;text-align:center;display:inline-block;}
  .favor-toggle{
    display:flex;align-items:center;gap:10px;
    font-size:14px;font-weight:700;color:var(--ink);
    cursor:pointer;
  }
  .favor-toggle input{width:18px;height:18px;}
  .addon-list{display:flex;flex-direction:column;gap:10px;margin:14px 0;}
  .address-suggestions{
    position:absolute;
    left:0; right:0; top:100%;
    background:#fff;
    border:1.5px solid var(--line);
    border-top:none;
    border-radius:0 0 10px 10px;
    max-height:220px;
    overflow-y:auto;
    z-index:10;
    box-shadow:0 8px 18px rgba(0,0,0,.08);
  }
  .address-suggestions .suggestion{
    padding:10px 12px;
    font-size:13.5px;
    cursor:pointer;
    border-bottom:1px solid var(--line);
  }
  .address-suggestions .suggestion:last-child{border-bottom:none;}
  .address-suggestions .suggestion:hover{background:var(--cream);}
  #intakeSignedInNotice{
    background:#E7F7F3;
    border-color:var(--teal);
    color:#146157;
    font-weight:700;
    font-size:13.5px;
  }

  .builder-summary.card{
    background:linear-gradient(155deg, var(--pink) 0%, var(--pink-dark) 100%);
    border:none !important;
    color:#fff;
  }
  .builder-summary .step-label{color:#fff;opacity:.9;}
  .summary-line{
    display:flex;justify-content:space-between;
    font-size:13.5px;color:rgba(255,255,255,.85);margin-bottom:8px;
  }
  .summary-line strong{color:#fff;font-weight:700;}
  .summary-total-row{
    display:flex;justify-content:space-between;align-items:baseline;
    border-top:1.5px solid rgba(255,255,255,.3);margin-top:10px;padding-top:12px;
    font-weight:800;font-size:15px;color:#fff;
  }
  #summaryTotalPrice{
    font-size:26px;color:#fff;
    display:inline-block;
    transition:transform .25s cubic-bezier(.3,1.5,.5,1);
  }
  #summaryTotalPrice.bump{transform:scale(1.12);}
  .builder-summary .empty-state{color:rgba(255,255,255,.85);}
  .builder-summary .btn-primary{background:#fff;color:var(--pink-dark);}
  .builder-summary .btn-primary:active{background:#fdeef4;}
  .builder-summary .hint{color:rgba(255,255,255,.75);}
  .builder-summary .form-msg.error{color:#fff;font-weight:800;}

  #submitSuccess{
    opacity:0;
    transform:scale(.96) translateY(6px);
    transition:opacity .55s cubic-bezier(.2,.8,.2,1), transform .55s cubic-bezier(.2,.8,.2,1);
  }
  #submitSuccess.tb-visible{
    opacity:1;
    transform:scale(1) translateY(0);
  }
  .tb-recap-card{
    margin-top:16px;
    padding:16px 16px 14px;
    background:rgba(255,255,255,.14);
    border:1px solid rgba(255,255,255,.28);
    border-radius:14px;
    text-align:left;
  }
  .tb-recap-title{
    font-size:12px;
    font-weight:800;
    letter-spacing:.3px;
    text-transform:uppercase;
    color:rgba(255,255,255,.75);
    margin-bottom:10px;
  }
  .tb-recap-row{
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    gap:12px;
    padding:7px 0;
    border-top:1px solid rgba(255,255,255,.16);
    font-size:13.5px;
  }
  .tb-recap-row:first-of-type{ border-top:none; }
  .tb-recap-row .tb-recap-label{
    color:rgba(255,255,255,.8);
    font-weight:700;
    white-space:nowrap;
  }
  .tb-recap-row .tb-recap-value{
    color:#fff;
    font-weight:700;
    text-align:right;
  }
  .tb-recap-total{
    display:flex;
    justify-content:space-between;
    align-items:baseline;
    margin-top:10px;
    padding-top:12px;
    border-top:1.5px solid rgba(255,255,255,.32);
    font-weight:800;
  }
  .tb-recap-total .tb-recap-total-price{ font-size:20px; }

  .tb-success-check-wrap{
    position:relative;
    width:100%;
    height:74px;
    margin-bottom:8px;
  }
  .tb-success-check{
    width:70px; height:70px; margin:0 auto;
    border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    color:#fff; font-size:34px; font-weight:900;
    background:linear-gradient(135deg,#ff459f,#a744dc,#ff66b6);
    box-shadow:0 10px 35px rgba(215,72,174,.45);
    transform:scale(.25) rotate(-20deg);
  }
  #submitSuccess.tb-animate-in .tb-success-check{
    animation:tbCheckBounce .85s .1s cubic-bezier(.15,.9,.25,1.4) forwards;
  }
  @keyframes tbCheckBounce{
    55%{ transform:scale(1.16) rotate(4deg); }
    100%{ transform:scale(1) rotate(0); }
  }
  .tb-success-mini{
    position:absolute;
    color:#ffe58a;
    font-size:20px;
    opacity:0;
  }
  #submitSuccess.tb-animate-in .tb-success-mini{
    animation:tbMiniGlint 1.5s .4s ease infinite;
  }
  @keyframes tbMiniGlint{
    0%,100%{ opacity:.1; transform:scale(.5) rotate(0deg); }
    50%{ opacity:1; transform:scale(1.2) rotate(25deg); }
  }
  .tb-success-mini.m1{ left:16%; top:2%; }
  .tb-success-mini.m2{ right:16%; top:8%; animation-delay:.65s !important; }
  .tb-success-mini.m3{ right:24%; bottom:-4%; animation-delay:.9s !important; }
  .tb-success-mini.m4{ left:24%; bottom:0; animation-delay:1.1s !important; }

  @media (min-width:860px){
    body.is-desktop #app{max-width:1080px;}
    body.is-desktop #authView, body.is-desktop .auth-tabs{max-width:420px;margin-left:auto;margin-right:auto;}
    body.is-desktop .hero h1{font-size:38px;}
    body.is-desktop .hero-sub{font-size:16px;max-width:560px;margin-left:auto;margin-right:auto;}
    body.is-desktop .builder-grid{
      display:grid;grid-template-columns:1fr 340px;gap:22px;align-items:start;
    }
    body.is-desktop .builder-grid.tb-recap-mode{
      display:block;
    }
    body.is-desktop .builder-grid.tb-recap-mode .builder-summary{
      max-width:560px;
      margin:0 auto;
      position:static;
    }
    body.is-desktop .builder-summary{position:sticky;top:20px;}
    body.is-desktop .tier-grid{grid-template-columns:repeat(3,1fr);}
    body.is-desktop .exp-grid{grid-template-columns:repeat(2,1fr);}
    body.is-desktop .exp-card.wide{grid-column:auto;}
    body.is-desktop .site-nav{max-width:420px;}
    /* Force every standalone field (not in a row2 pair) to match the width
       of one column in a paired row, so nothing looks randomly oversized. */
    body.is-desktop #intake .field-group > .field{
      max-width:calc(50% - 5px) !important;
    }
  }

  .requests-tabs{
    display:flex;
    gap:8px;
  }
  .requests-tabs button{
    border:1.5px solid var(--line);
    background:var(--card);
    padding:9px 18px;
    font-size:13px;
    font-weight:700;
    color:var(--ink-soft);
    border-radius:999px;
    cursor:pointer;
  }
  .requests-tabs button.active{
    background:var(--pink);
    border-color:var(--pink);
    color:white;
  }

  .dash-filter-row{
    display:flex;gap:10px;align-items:center;margin-bottom:14px;
  }
  .dash-filter-row select{
    padding:9px 12px;border:1.5px solid var(--line);border-radius:10px;
    font-size:14px;background:#fff;color:var(--ink);flex:1;
  }
  .booking-card{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:14px;
    padding:16px;
    margin-bottom:12px;
  }
  .booking-card .booking-top{
    display:flex;justify-content:space-between;align-items:flex-start;
    margin-bottom:10px;gap:10px;
  }
  .booking-card .booking-name{font-weight:800;font-size:15.5px;}
  .booking-card .booking-sub{font-size:12px;color:var(--ink-soft);margin-top:2px;}
  .booking-card .booking-price{font-weight:800;color:var(--pink-dark);font-size:15px;white-space:nowrap;}
  .booking-status-select{
    margin-top:10px;
    padding:8px 10px;border:1.5px solid var(--line);border-radius:9px;
    font-size:12.5px;font-weight:700;background:#fff;color:var(--ink);
  }
  .status-pill{
    display:inline-block;font-size:10.5px;font-weight:800;
    padding:3px 10px;border-radius:999px;margin-bottom:8px;
  }
  .status-New-Inquiry{background:#FBDDE9;color:var(--pink-dark);}
  .status-Contacted{background:#F1EAFB;color:var(--purple);}
  .status-Agreement-Sent{background:#FCF3E2;color:var(--gold);}
  .status-Confirmed, .status-Deposit-Received{background:#E4F7F3;color:var(--teal);}
  .status-Paid-in-Full, .status-Completed{background:#EBF4E8;color:var(--sage);}
  .status-Cancelled{background:#FCEBE9;color:var(--danger);}

  /* ===== Client "My Events" page ===== */
  .ev-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:18px;margin-bottom:16px;box-shadow:0 6px 20px rgba(110,68,199,.05);}
  .ev-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;}
  .ev-title{font-weight:800;font-size:20px;line-height:1.2;margin:2px 0 4px;}
  .ev-sub{font-size:13px;color:var(--ink-soft);}
  .ev-count{display:inline-block;font-size:12px;font-weight:800;padding:4px 10px;border-radius:999px;background:var(--cream);color:var(--pink-dark);border:1px solid var(--line);margin-top:8px;}
  .ev-price{font-weight:800;color:var(--pink-dark);font-size:17px;white-space:nowrap;text-align:right;}
  .ev-next{margin:14px 0 10px;padding:14px;border-radius:14px;border:1.5px solid var(--line);background:#FBF7EF;}
  .ev-next.action{background:#FFF1F7;border-color:#F7C3DA;}
  .ev-next.good{background:#EEF8F1;border-color:#C6E4CE;}
  .ev-next.warn{background:#FFF4E5;border-color:#F3D3A2;}
  .ev-next.bad{background:#FCEBE9;border-color:#F2C3BE;}
  .ev-next h3{font-size:15px;margin:0 0 4px;font-weight:800;}
  .ev-next p{margin:0;font-size:13.5px;color:var(--ink-soft);line-height:1.5;}
  .ev-next .ev-cta{margin-top:10px;width:auto;}
  .ev-steps{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;margin:16px 0 4px;}
  .ev-step{text-align:center;font-size:10.5px;font-weight:700;color:var(--ink-soft);position:relative;line-height:1.2;}
  .ev-step .dot{width:22px;height:22px;border-radius:50%;margin:0 auto 6px;border:2px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;color:#fff;position:relative;z-index:1;}
  .ev-step:not(:last-child):before{content:"";position:absolute;top:10px;left:50%;width:100%;height:2px;background:var(--line);z-index:0;}
  .ev-step.done:not(:last-child):before{background:var(--teal);}
  .ev-step.done .dot{background:var(--teal);border-color:var(--teal);}
  .ev-step.done .dot:after{content:"\2713";}
  .ev-step.current{color:var(--ink);}
  .ev-step.current .dot{border-color:var(--pink);box-shadow:0 0 0 4px rgba(232,23,125,.12);}

  /* ---- Staff: Emails tab ---- */
  .em-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:6px;}
  .em-note{color:var(--muted,#7b7287);font-size:14px;margin:0 0 16px;max-width:620px;}
  .em-team{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin-bottom:18px;font-size:14px;}
  .em-team b{font-weight:800;}
  .em-pill{background:#f4eef8;border-radius:999px;padding:4px 10px;font-size:13px;}
  .em-sec{margin:22px 0 8px;font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted,#7b7287);}
  .em-item{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin-bottom:8px;}
  .em-item-main{flex:1;min-width:0;}
  .em-item-title{font-weight:800;font-size:15px;}
  .em-item-sub{font-size:13px;color:var(--muted,#7b7287);margin-top:2px;}
  .em-item.off .em-item-title{opacity:.55;}
  .em-always{font-size:12px;font-weight:800;color:#1f7a45;background:#e6f5ec;border-radius:999px;padding:4px 10px;white-space:nowrap;}
  .em-switch{position:relative;display:inline-block;width:44px;height:26px;flex:none;}
  .em-switch input{opacity:0;width:0;height:0;position:absolute;}
  .em-switch span{position:absolute;inset:0;background:#cfc7d6;border-radius:999px;transition:.15s;cursor:pointer;}
  .em-switch span:before{content:"";position:absolute;width:20px;height:20px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.15s;box-shadow:0 1px 3px rgba(0,0,0,.25);}
  .em-switch input:checked + span{background:linear-gradient(135deg,#e8177d,#7650cb);}
  .em-switch input:checked + span:before{transform:translateX(18px);}
  .em-activity{margin-top:22px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 14px;}
  .em-activity summary{cursor:pointer;font-weight:800;font-size:15px;}
  .em-log{width:100%;border-collapse:collapse;font-size:13px;margin-top:8px;}
  .em-log td,.em-log th{text-align:left;padding:7px 6px;border-top:1px solid var(--line);vertical-align:top;}
  .em-log .ok{color:#1f7a45;font-weight:800;} .em-log .bad{color:#b3261e;font-weight:800;}
  .em-toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);background:#2a2233;color:#fff;padding:10px 18px;border-radius:999px;font-size:14px;z-index:400;opacity:0;pointer-events:none;transition:opacity .2s;}
  .em-toast.show{opacity:1;} .em-toast.bad{background:#b3261e;}
  /* modal */
  .em-modal{position:fixed;inset:0;background:rgba(30,20,40,.55);z-index:300;display:flex;align-items:center;justify-content:center;padding:16px;}
  .em-dialog{background:#fff;border-radius:20px;width:100%;max-width:1040px;max-height:calc(100vh - 32px);display:flex;flex-direction:column;box-shadow:0 24px 60px rgba(0,0,0,.35);}
  .em-dhead{display:flex;justify-content:space-between;align-items:center;padding:16px 22px;border-bottom:1px solid var(--line);}
  .em-dhead h3{margin:0;font-size:20px;font-weight:800;}
  .em-close{border:none;background:#f4eef8;width:34px;height:34px;border-radius:50%;font-size:20px;line-height:1;cursor:pointer;color:var(--ink);}
  .em-dbody{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:22px;padding:18px 22px;overflow:auto;}
  .em-dfoot{display:flex;gap:10px;align-items:center;padding:14px 22px;border-top:1px solid var(--line);flex-wrap:wrap;}
  .em-dfoot .sp{flex:1;}
  .em-form label.em-l{display:block;font-size:14px;font-weight:800;margin:16px 0 6px;}
  .em-form > label.em-l:first-of-type{margin-top:0;}
  .em-top .btn,.em-dfoot .btn,.em-team .btn,.em-item .btn,.em-link .btn,.em-form .em-team .btn{width:auto;flex:none;}
  .em-top .btn-primary,.em-dfoot .btn-primary{padding-left:20px;padding-right:20px;}
  .em-form label.em-l small{font-weight:400;color:var(--muted,#7b7287);margin-left:6px;}
  .em-form input[type=text],.em-form select{width:100%;box-sizing:border-box;padding:11px 12px;border:1.5px solid var(--line);border-radius:12px;font:inherit;font-size:15px;background:#fff;color:var(--ink);}
  .em-seg{display:flex;gap:8px;flex-wrap:wrap;}
  .em-seg label{flex:1;min-width:110px;border:1.5px solid var(--line);border-radius:12px;padding:10px 12px;cursor:pointer;font-size:14px;font-weight:700;text-align:center;}
  .em-seg input{display:none;} .em-seg label.on{border-color:#e8177d;background:#fdf0f7;color:#c0125f;}
  .em-field{border:1.5px solid var(--line);border-radius:12px;padding:11px 12px;font-size:15px;background:#fff;outline:none;line-height:1.5;}
  .em-field:focus{border-color:#7650cb;}
  .em-line{white-space:nowrap;overflow-x:auto;min-height:22px;}
  .em-body{min-height:210px;max-height:360px;overflow:auto;border-top-left-radius:0;border-top-right-radius:0;}
  .em-body p{margin:0 0 10px;}
  .em-tools{display:flex;gap:6px;flex-wrap:wrap;align-items:center;border:1.5px solid var(--line);border-bottom:none;border-radius:12px 12px 0 0;padding:6px;background:#faf6fc;}
  .em-tools button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 10px;font-size:13px;font-weight:700;cursor:pointer;color:var(--ink);}
  .em-tools button:hover{border-color:#7650cb;}
  .em-tools select{width:auto !important;padding:6px 8px !important;font-size:13px !important;border-radius:8px !important;}
  .em-chip{display:inline-block;background:#efe6fb;color:#5a37b0;border-radius:8px;padding:1px 8px;margin:0 1px;font-size:13px;font-weight:700;white-space:nowrap;user-select:all;}
  .em-block{position:relative;border:1.5px dashed #cdb8ee;border-radius:10px;padding:6px 10px;margin:10px 0;background:#fcfaff;}
  .em-block:before{content:attr(data-label);display:block;font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#7650cb;}
  .em-x{position:absolute;right:6px;top:6px;border:none;background:#efe6fb;color:#5a37b0;border-radius:8px;font-size:12px;font-weight:800;padding:3px 8px;cursor:pointer;}
  .em-link{display:none;gap:6px;margin-top:6px;} .em-link.show{display:flex;} .em-link input{flex:1;}
  .em-check{display:flex;align-items:center;gap:8px;margin-top:14px;font-size:14px;font-weight:700;}
  .em-adv{margin-top:18px;font-size:13px;} .em-adv summary{cursor:pointer;color:var(--muted,#7b7287);}
  .em-adv textarea{width:100%;box-sizing:border-box;min-height:200px;margin-top:8px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;border:1.5px solid var(--line);border-radius:12px;padding:10px;}
  .em-side{position:sticky;top:0;align-self:start;}
  .em-side .em-pl{font-size:14px;font-weight:800;margin-bottom:6px;}
  .em-prev{width:100%;height:440px;border:1.5px solid var(--line);border-radius:14px;background:#fbf4f8;}
  .em-side .em-hint{font-size:12px;color:var(--muted,#7b7287);margin-top:6px;}
  .em-msg{font-size:13px;}
  @media(max-width:820px){.em-dbody{grid-template-columns:1fr;} .em-side{position:static;} .em-prev{height:360px;}}
  a.btn{display:inline-block;border:none;border-radius:11px;padding:13px 16px;font-weight:800;font-size:15px;text-align:center;cursor:pointer;text-decoration:none;}
  a.btn-sm{padding:9px 14px;font-size:14px;}
  a.btn-primary{background:linear-gradient(135deg,#e8177d 0%,#ec3b91 48%,#7650cb 100%);color:#fff;box-shadow:0 8px 18px rgba(137,44,105,.18);}
  a.btn-outline{background:transparent;border:1.5px solid var(--line);color:var(--ink);}
  .ev-section .form-msg:empty{display:none;}
  .ev-section{margin-top:18px;padding-top:16px;border-top:1px solid var(--line);}
  .ev-section h3{font-size:15px;margin:0 0 10px;font-weight:800;}
  .ev-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;}
  .ev-grid .wide{grid-column:1/-1;}
  .ev-grid .k{font-size:11px;font-weight:700;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em;}
  .ev-grid .v{font-size:14.5px;font-weight:700;margin-top:2px;overflow-wrap:anywhere;}
  @media(max-width:420px){.ev-grid{grid-template-columns:1fr;}}
  .ev-money{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px;}
  .ev-money.one{grid-template-columns:1fr;}
  .ev-money>div{background:var(--cream);border-radius:12px;padding:10px;text-align:center;}
  .ev-money b{display:block;font-size:16px;}
  .ev-money span{font-size:11px;color:var(--ink-soft);font-weight:700;}
  .ev-bar{height:8px;border-radius:99px;background:#F4E7EC;overflow:hidden;margin-bottom:8px;}
  .ev-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--teal),#4cc7a8);border-radius:99px;}
  .ev-pay-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 0;border-bottom:1px dashed var(--line);}
  .ev-pay-row:last-of-type{border-bottom:none;}
  .ev-pay-row .l b{display:block;font-size:14px;}
  .ev-pay-row .l small{color:var(--ink-soft);font-size:12px;}
  .ev-badge{font-size:11px;font-weight:800;padding:3px 10px;border-radius:99px;white-space:nowrap;}
  .ev-badge.paid{background:#E4F7F3;color:var(--teal);}
  .ev-badge.due{background:#FCF3E2;color:var(--gold);}
  .ev-badge.wait{background:#F1EAFB;color:var(--purple);}
  .ev-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;align-items:center;}
  .ev-actions .btn{width:auto;}
  .ev-fine{font-size:12px;color:var(--ink-soft);margin:10px 0 0;line-height:1.5;}
  .ev-fine a{color:var(--pink-dark);font-weight:700;}
  .ev-contract{white-space:pre-wrap;font-family:inherit;font-size:12.5px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px;max-height:280px;overflow-y:auto;margin-bottom:12px;}
  .ev-help{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;}
  .ev-banner{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:14px;border:1.5px solid var(--line);background:#FBF7EF;margin-bottom:14px;font-size:14px;}
  .ev-banner.good{background:#EEF8F1;border-color:#C6E4CE;}
  .ev-x{background:none;border:none;font-size:22px;line-height:1;color:var(--ink-soft);cursor:pointer;padding:0 4px;}
  .ev-past{margin-top:6px;}
  .ev-past>summary{cursor:pointer;font-weight:800;font-size:14px;color:var(--ink-soft);padding:10px 4px;margin-bottom:8px;}
  .ev-skel{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:18px;}
  .ev-skel-line,.ev-skel-block{border-radius:8px;margin-bottom:12px;background:linear-gradient(90deg,#f6eaf0 25%,#fbf3f7 37%,#f6eaf0 63%);background-size:400% 100%;animation:evShimmer 1.3s ease infinite;}
  .ev-skel-line{height:14px;}
  .ev-skel-block{height:64px;border-radius:14px;}
  .ev-skel-line.w80{width:80%;} .ev-skel-line.w60{width:60%;height:20px;} .ev-skel-line.w50{width:50%;} .ev-skel-line.w40{width:40%;}
  @keyframes evShimmer{0%{background-position:100% 50%}100%{background-position:0 50%}}
  @media(prefers-reduced-motion:reduce){.ev-skel-line,.ev-skel-block{animation:none;}}

  .how-it-works{
    display:flex;
    flex-direction:column;
    gap:16px;
  }
  .hiw-step{
    display:flex;
    gap:14px;
    align-items:flex-start;
  }
  .hiw-num{
    flex:none;
    width:32px;height:32px;
    border-radius:50%;
    background:var(--pink);
    color:#fff;
    font-weight:800;
    font-size:14px;
    display:flex;align-items:center;justify-content:center;
  }
  .hiw-title{font-weight:800;font-size:14.5px;margin-bottom:2px;}
  .hiw-desc{font-size:13px;color:var(--ink-soft);line-height:1.4;}

  .pkg-accordion{
    border:1px solid var(--line);
    border-radius:14px;
    overflow:hidden;
    background:var(--card);
  }
  .pkg-accordion-head{
    width:100%;
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:16px;
    background:none;
    border:none;
    border-top:1px solid var(--line);
    font-weight:800;
    font-size:14px;
    color:var(--ink);
    cursor:pointer;
    text-align:left;
  }
  .pkg-accordion-head:first-child{border-top:none;}
  .pkg-accordion-arrow{
    color:var(--pink);
    font-size:16px;
    transition:transform .2s ease;
  }
  .pkg-accordion-head.open .pkg-accordion-arrow{transform:rotate(45deg);}
  .pkg-accordion-body{
    max-height:0;
    overflow:hidden;
    transition:max-height .25s ease;
    padding:0 16px;
  }
  .pkg-accordion-body.open{
    max-height:600px;
    padding:0 16px 16px;
  }
  .pkg-accordion-body ul{
    margin:0;
    padding-left:20px;
    font-size:13px;
    color:var(--ink-soft);
    line-height:1.7;
  }

  #intakeContinueBtn{ margin-top:8px; margin-bottom:8px; }
  .field-group{
    padding:4px 2px 8px;
    margin-bottom:6px;
  }

  .stat-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
  }
  .stat-card{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:12px;
    padding:16px 14px;
    text-align:center;
  }
  .stat-card.wide{grid-column:1 / -1;}
  .stat-num{font-size:22px;font-weight:800;color:var(--pink-dark);}
  .stat-label{font-size:11.5px;color:var(--ink-soft);font-weight:700;margin-top:2px;}

  .loading-screen{
    position:fixed;
    inset:0;
    z-index:300;
    background:var(--ink);
    overflow:hidden;
  }
  .intro-iris{
    position:absolute;
    inset:0;
    background:var(--cream);
    clip-path:circle(0% at 50% 50%);
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:18px;
  }
  .intro-glow{
    position:absolute;
    width:min(60vw,480px);
    height:min(34vw,280px);
    background:linear-gradient(120deg, var(--pink), var(--purple), var(--pink));
    filter:blur(50px);
    border-radius:42% 58% 63% 37% / 41% 44% 56% 59%;
    transform:scale(0);
    opacity:0;
    will-change:transform, opacity;
  }
  .intro-edge{
    position:absolute;
    inset:0;
    box-shadow:inset 0 0 0px 0px rgba(232,23,125,0);
    pointer-events:none;
  }
  .intro-word{
    position:relative;
    font-family:'Fredoka', sans-serif;
    font-weight:600;
    font-size:clamp(32px, 7vw, 64px);
    color:var(--ink);
    opacity:0;
    transform:scale(2.2);
  }
  .intro-word span{ color:var(--pink); }
  .intro-tag-wrap{
    position:relative;
    overflow:hidden;
    padding:0 4px;
    max-width:90vw;
  }
  .intro-tag{
    font-size:clamp(13px, 2vw, 17px);
    color:var(--ink-soft);
    font-weight:500;
    white-space:nowrap;
    transform:translateX(160%);
  }
  .intro-tag span{ color:var(--pink); }

  body.intro-playing .hamburger-btn,
  body.intro-playing .hamburger-menu,
  body.intro-playing .floating-auth,
  body.intro-playing .profile-icon-btn,
  body.intro-playing .bell-btn,
  body.intro-playing .bell-panel,
  body.intro-playing .profile-dropdown{
    display:none !important;
  }

  .floating-auth{
    position:fixed;
    top:calc(16px + env(safe-area-inset-top));
    right:16px;
    z-index:60;
    display:flex;
    gap:8px;
  }
  /* On mobile these collided with the brand logo — moved into the
     hamburger menu instead (see #menuLogin). Desktop keeps them. */
  body.is-mobile .floating-auth{
    display:none !important;
  }
  /* Mirror of the above: the menu's Login item is mobile-only, since
     desktop already has the floating buttons for this. */
  body.is-desktop #menuLogin{
    display:none !important;
  }
  .profile-icon-btn{
    position:fixed;
    top:calc(16px + env(safe-area-inset-top));
    right:16px;
    z-index:60;
    width:44px;
    height:44px;
    border-radius:999px;
    border:1.5px solid var(--line);
    background:#fff;
    color:var(--ink);
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    box-shadow:0 4px 14px rgba(0,0,0,.08);
    transition:transform .15s ease, box-shadow .15s ease;
  }
  .profile-icon-btn:hover{
    transform:translateY(-1px);
    box-shadow:0 6px 18px rgba(0,0,0,.12);
  }
  .hamburger-btn{
    position:fixed;
    top:calc(16px + env(safe-area-inset-top));
    left:16px;
    z-index:60;
    width:44px;
    height:44px;
    border-radius:999px;
    border:1.5px solid var(--line);
    background:#fff;
    color:var(--ink);
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    box-shadow:0 4px 14px rgba(0,0,0,.08);
    transition:transform .15s ease, box-shadow .15s ease;
  }
  .hamburger-btn:hover{
    transform:translateY(-1px);
    box-shadow:0 6px 18px rgba(0,0,0,.12);
  }
  .hamburger-menu{
    position:fixed;
    top:calc(66px + env(safe-area-inset-top));
    left:16px;
    z-index:61;
    background:#fff;
    border:1.5px solid var(--line);
    border-radius:14px;
    box-shadow:0 10px 30px rgba(0,0,0,.14);
    padding:8px;
    min-width:200px;
    display:flex;
    flex-direction:column;
  }
  .hamburger-menu button,
  .hamburger-menu a{
    background:none;
    border:none;
    text-align:left;
    padding:11px 14px;
    border-radius:9px;
    font-size:14.5px;
    font-weight:700;
    color:var(--ink);
    cursor:pointer;
    text-decoration:none;
    font-family:inherit;
  }
  .hamburger-menu button:hover,
  .hamburger-menu a:hover{
    background:var(--cream);
  }
  .hamburger-menu a#menuContactUs{
    margin-top:0;
    padding-top:11px;
  }
  .hamburger-menu button#menuBookNow{
    margin-top:4px;
    padding-top:14px;
    border-top:1px solid var(--line);
    background:linear-gradient(135deg,#e8177d 0%,#ec3b91 48%,#7650cb 100%);
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
    -webkit-text-fill-color:transparent;
    font-weight:800;
  }
  /* Staff-only hamburger items (shown by shell.js once we know the person is staff). */
  .hamburger-menu .hm-staff,.hamburger-menu .hm-cust,.hamburger-menu .hm-auth{display:none;}
  .hamburger-menu .hm-staff.show,.hamburger-menu .hm-cust.show,.hamburger-menu .hm-auth.show{display:block;}
  .hamburger-menu [data-dd-nav].active{background:var(--cream);}
  .hamburger-menu .hm-label{
    margin-top:6px;padding:12px 14px 4px;border-top:1px solid var(--line);
    font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted,#8a7a86);
  }
  .hamburger-menu .hm-label.show{display:block;}
  .hamburger-menu button.hm-account{margin-top:6px;padding-top:14px;border-top:1px solid var(--line);border-radius:0 0 9px 9px;}
  .hamburger-menu button.hm-logout{color:var(--danger);font-weight:800;}
  .hamburger-menu button.hm-logout:hover{background:#fdecec;}
  .profile-dropdown{
    position:fixed;
    top:calc(66px + env(safe-area-inset-top));
    right:16px;
    z-index:61;
    background:#fff;
    border:1.5px solid var(--line);
    border-radius:14px;
    box-shadow:0 10px 30px rgba(0,0,0,.14);
    padding:8px;
    min-width:190px;
    display:flex;
    flex-direction:column;
  }
  .profile-dropdown button{
    background:none;
    border:none;
    text-align:left;
    padding:11px 14px;
    border-radius:9px;
    font-size:14.5px;
    font-weight:700;
    color:var(--ink);
    cursor:pointer;
    font-family:inherit;
  }
  .profile-dropdown button:hover{
    background:var(--cream);
  }
  .profile-dropdown button.danger{
    color:var(--danger);
  }
  .inspiration-preview{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:10px;
  }
  .inspiration-thumb{
    position:relative;
    width:72px;
    height:72px;
    border-radius:10px;
    overflow:hidden;
    border:1.5px solid var(--line);
    background:var(--card);
  }
  .inspiration-thumb img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
  }
  .inspiration-thumb .thumb-remove{
    position:absolute;
    top:2px;
    right:2px;
    width:20px;
    height:20px;
    border-radius:999px;
    background:rgba(0,0,0,.6);
    color:#fff;
    border:none;
    font-size:13px;
    line-height:1;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .inspiration-thumb .thumb-status{
    position:absolute;
    inset:0;
    background:rgba(255,255,255,.75);
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:10px;
    font-weight:800;
    color:var(--ink-soft);
    text-align:center;
  }
  .floating-auth button{
    border:none;
    border-radius:999px;
    padding:10px 18px;
    font-weight:800;
    font-size:13px;
    cursor:pointer;
    white-space:nowrap;
  }
  .floating-auth button.btn-primary{
    background:linear-gradient(135deg,#e8177d 0%,#ec3b91 48%,#7650cb 100%);
    color:#fff;
    box-shadow:0 8px 18px rgba(137,44,105,.22);
  }
  .floating-auth button.btn-primary:hover{
    filter:brightness(1.03);
  }
  .floating-auth button.btn-primary:active{
    filter:brightness(.97);
  }
  .floating-auth button.btn-outline{
    background:#fff;
    color:var(--ink);
    border:1.5px solid var(--line);
  }
  .site-footer{
    text-align:center;
    padding:56px 0 24px;
  }
  .footer-link-btn{
    background:none;
    border:none;
    color:var(--ink-soft);
    font-size:12.5px;
    font-weight:700;
    text-decoration:underline;
    cursor:pointer;
    padding:8px;
  }
  .footer-link-btn.logged-in{
    color:var(--pink-dark);
  }

  .site-nav{
    display:flex;
    gap:8px;
    margin-bottom:18px;
  }
  .site-nav button{
    border:1.5px solid var(--line);
    background:var(--card);
    padding:9px 18px;
    font-size:13px;
    font-weight:700;
    color:var(--ink-soft);
    border-radius:999px;
    cursor:pointer;
  }
  .site-nav button.active{
    background:var(--pink);
    border-color:var(--pink);
    color:white;
  }
  /* On the public home page the logo header floats over the video and used to sit on top of
     this nav, swallowing clicks. Here the nav becomes a compact frosted pill in the top bar,
     next to the profile icon and above the header layer. On phones it moves into the profile menu. */
  body.tb-public-home .site-nav{
    position:fixed;
    top:calc(16px + env(safe-area-inset-top));
    right:72px;
    z-index:62;
    margin:0;
    gap:8px;
  }
  body.tb-public-home .site-nav button{
    height:44px;
    padding:0 20px;
    background:rgba(255,255,255,.78);
    -webkit-backdrop-filter:blur(12px);
    backdrop-filter:blur(12px);
    box-shadow:0 4px 14px rgba(0,0,0,.08);
  }
  @media (max-width:700px){
    body.tb-public-home .site-nav{display:none !important;}
  }
  body.is-mobile.tb-public-home .site-nav{display:none !important;}
  /* Profile-menu shortcuts (shown for the current role by script). */
  .profile-dropdown button.dd-nav,
  .profile-dropdown .dd-divider{display:none;}
  .profile-dropdown .dd-divider{height:1px;background:var(--line);margin:4px 6px;}
  @media (max-width:700px){
    body.tb-public-home .profile-dropdown button.dd-nav.show,
    body.tb-public-home .profile-dropdown .dd-divider.show{display:block;}
  }
  body.is-mobile.tb-public-home .profile-dropdown button.dd-nav.show,
  body.is-mobile.tb-public-home .profile-dropdown .dd-divider.show{display:block;}

  .hero{
    text-align:center;
    padding:14px 6px 26px;
  }
  .hero-eyebrow{
    display:block;
    font-size:16px;
    font-style:italic;
    font-weight:600;
    color:var(--pink-dark);
    margin-bottom:10px;
  }
  .hero h1{
    font-size:27px;
    line-height:1.25;
    margin:0 0 10px;
    color:var(--ink);
  }
  .hero-sub{
    font-size:14.5px;
    color:var(--ink-soft);
    margin:0 0 14px;
    line-height:1.5;
  }
  .hero-tags{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:6px;
    margin-bottom:22px;
  }
  .hero-tags span{
    font-size:11px;
    font-weight:700;
    color:var(--ink-soft);
    background:var(--card);
    border:1px solid var(--line);
    padding:5px 11px;
    border-radius:999px;
    display:inline-block;
    transition:transform .15s ease;
  }
  .hero-tags span:nth-child(odd){ transform:rotate(-2deg); }
  .hero-tags span:nth-child(even){ transform:rotate(2deg); }
  .hero-tags span:hover{ transform:scale(1.08) rotate(0deg); }

  .section-heading{
    font-size:17px;
    font-weight:800;
    margin:26px 2px 12px;
    color:var(--ink);
  }
  .tier-grid{
    display:grid;
    grid-template-columns:1fr 1fr 1fr;
    gap:10px;
  }
  .tier-card{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:12px;
    padding:16px 10px 14px;
    text-align:center;
    border-top:4px solid var(--pink);
  }
  .tier-card.tier-deluxe{border-top-color:var(--purple);}
  .tier-card.tier-party{border-top-color:var(--teal);}
  .tier-name{font-weight:800;font-size:13.5px;color:var(--purple);}
  .tier-price{font-weight:800;font-size:15px;color:var(--pink-dark);margin:4px 0;}
  .tier-desc{font-size:11px;color:var(--ink-soft);line-height:1.4;}

  .exp-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
  }
  .exp-card{
    border:1px solid var(--line);
    border-radius:14px;
    padding:16px 14px;
  }
  .exp-name{font-weight:800;font-size:14px;margin-bottom:4px;}
  .exp-tagline{font-size:10.5px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;opacity:.75;margin-bottom:6px;}
  .exp-desc{font-size:12px;color:var(--ink-soft);line-height:1.4;margin-bottom:8px;}
  .exp-price{font-size:12.5px;font-weight:800;}
  .exp-card.c-pink{background:#FDEFF5;} .exp-card.c-pink .exp-name,.exp-card.c-pink .exp-price{color:var(--pink-dark);}
  .exp-card.c-teal{background:#E7F7F3;} .exp-card.c-teal .exp-name,.exp-card.c-teal .exp-price{color:var(--teal);}
  .exp-card.c-gold{background:#FCF3E2;} .exp-card.c-gold .exp-name,.exp-card.c-gold .exp-price{color:var(--gold);}
  .exp-card.c-purple{background:#F1EAFB;} .exp-card.c-purple .exp-name,.exp-card.c-purple .exp-price{color:var(--purple);}
  .exp-card.c-sage{background:#EBF4E8;} .exp-card.c-sage .exp-name,.exp-card.c-sage .exp-price{color:var(--sage);}
  .exp-card.wide{grid-column:1 / -1;}

  .auth-gate-msg{
    background:#FBF2F6;
    border:1.5px solid var(--pink);
    color:var(--pink-dark);
    border-radius:10px;
    padding:10px 14px;
    font-size:13px;
    font-weight:700;
    text-align:center;
    margin-bottom:14px;
  }

  /* ---- merged from inventory tool ---- */
  body{
    background:var(--cream);
    color:var(--ink);
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
    -webkit-font-smoothing:antialiased;
    padding-bottom:40px;
  }
  header.top{
    padding:22px 4px 14px;
    display:flex;
    flex-direction:column;
    gap:2px;
  }
  header.top .brand{
    font-size:26px;
    font-weight:800;
    letter-spacing:-0.5px;
    color:var(--pink-dark);
  }
  header.top .brand span{color:var(--purple);}
  header.top .sub{font-size:13px;color:var(--ink-soft);}

  nav.tabs{
    display:flex;
    gap:6px;
    background:var(--card);
    border:1px solid var(--line);
    border-radius:12px;
    padding:4px;
    margin-bottom:16px;
    position:sticky;
    top:8px;
    z-index:20;
  }
  nav.tabs button{
    flex:1;
    border:none;
    background:transparent;
    padding:10px 4px;
    font-size:13px;
    font-weight:700;
    color:var(--ink-soft);
    border-radius:9px;
    cursor:pointer;
  }
  nav.tabs button.active{
    background:var(--pink);
    color:white;
  }

  .tab-panel{display:none;}
  .tab-panel.active{display:block;animation:fade .15s ease;}
  @keyframes fade{from{opacity:0}to{opacity:1}}

  .card{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:16px;
    margin-bottom:14px;
  }
  .card h2{
    margin:0 0 10px;
    font-size:15px;
    font-weight:800;
    color:var(--ink);
  }
  .field{margin-bottom:12px;}
  .field label{
    display:block;
    font-size:12.5px;
    font-weight:700;
    color:var(--ink-soft);
    margin-bottom:5px;
  }
  .field input[type=text],
  .field input[type=number],
  .field input[type=date],
  .field input[type=email],
  .field input[type=tel],
  .field input[type=file],
  .field select,
  .field textarea{
    width:100%;
    padding:10px 11px;
    border:1.5px solid var(--line);
    border-radius:10px;
    font-size:15px;
    background:#fff;
    color:var(--ink);
    font-family:inherit;
  }
  .field input[type=text],
  .field input[type=number],
  .field input[type=date],
  .field input[type=email],
  .field input[type=tel],
  .field select{
    height:46px;
    -webkit-appearance:none;
    appearance:none;
  }
  .field select{
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%236b5b6e' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:right 12px center;
    padding-right:32px;
  }
  .field textarea{min-height:64px;resize:vertical;}
  .field input:focus,.field select:focus,.field textarea:focus{
    outline:2px solid var(--purple);
    outline-offset:1px;
    border-color:var(--purple);
  }
  .row2{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
  .hint{font-size:11.5px;color:var(--ink-soft);margin-top:4px;}
  .readonly-box{
    background:#FBF2F6;
    border:1.5px dashed var(--pink);
    border-radius:10px;
    padding:10px 12px;
    font-size:15px;
    font-weight:800;
    color:var(--pink-dark);
  }

  button.btn{
    border:none;
    border-radius:11px;
    padding:12px 16px;
    font-weight:800;
    font-size:14.5px;
    cursor:pointer;
    width:100%;
  }
  button.btn-primary{background:linear-gradient(135deg,#e8177d 0%,#ec3b91 48%,#7650cb 100%);color:#fff;box-shadow:0 8px 18px rgba(137,44,105,.18);}
  button.btn-primary:hover{filter:brightness(1.03);}
  button.btn-primary:active{filter:brightness(.97);}
  button.btn-secondary{background:#F1EAFB;color:var(--purple);}
  button.btn-teal{background:#E4F7F3;color:var(--teal);}
  button.btn-outline{background:transparent;border:1.5px solid var(--line);color:var(--ink);}
  button.btn-danger{background:#FCEBE9;color:var(--danger);}
  button.btn-sm{width:auto;padding:8px 12px;font-size:13px;border-radius:9px;}
  button:disabled{opacity:.5;cursor:not-allowed;}
  .btn-row{display:flex;gap:8px;margin-top:6px;}
  .btn-row button{flex:1;}
  button.btn-loading{
    opacity:1 !important;
    position:relative;
    padding-left:34px !important;
  }
  button.btn-loading::before{
    content:"";
    position:absolute;
    left:12px;
    top:50%;
    width:15px;
    height:15px;
    margin-top:-8px;
    border:2px solid rgba(255,255,255,.4);
    border-top-color:#fff;
    border-radius:50%;
    animation:btnSpin .7s linear infinite;
  }
  button.btn-outline.btn-loading::before,
  button.btn-teal.btn-loading::before{
    border:2px solid rgba(36,23,38,.2);
    border-top-color:var(--ink);
  }
  @keyframes btnSpin{ to{ transform:rotate(360deg); } }

  #reader{
    width:100%;
    border-radius:12px;
    overflow:hidden;
    background:#111;
    min-height:0;
  }
  .scan-placeholder{
    border:1.5px dashed var(--line);
    border-radius:12px;
    padding:30px 14px;
    text-align:center;
    color:var(--ink-soft);
    font-size:13.5px;
  }

  .divider-or{
    display:flex;align-items:center;gap:10px;
    color:var(--ink-soft);font-size:12px;font-weight:700;
    margin:14px 0;
  }
  .divider-or::before,.divider-or::after{content:"";flex:1;height:1px;background:var(--line);}

  .result-item{
    background:var(--card);
    border:1.5px solid var(--pink);
    border-radius:var(--radius);
    padding:16px;
  }
  .result-photo{
    width:100%;
    max-height:220px;
    object-fit:cover;
    border-radius:10px;
    margin-bottom:12px;
    background:#f4e9ee;
    display:block;
  }
  .result-item .name{font-size:18px;font-weight:800;margin-bottom:2px;}
  .result-item .code{font-size:12px;color:var(--ink-soft);font-family:monospace;margin-bottom:12px;}
  .kv-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;margin-bottom:10px;}
  .kv-grid .kv label{display:block;font-size:11px;color:var(--ink-soft);font-weight:700;}
  .kv-grid .kv .v{font-size:14.5px;font-weight:700;}
  .kv-grid .kv .v.money{color:var(--pink-dark);}
  .not-found{
    text-align:center;
    padding:20px 10px;
    color:var(--ink-soft);
  }

  .custom-field-row{
    display:grid;
    grid-template-columns:1fr 1fr auto;
    gap:8px;
    margin-bottom:8px;
  }
  .custom-field-row input{padding:9px 10px;border:1.5px solid var(--line);border-radius:9px;font-size:14px;}
  .remove-field-btn{
    background:#FCEBE9;color:var(--danger);border:none;border-radius:9px;
    width:34px;font-weight:800;cursor:pointer;
  }

  .barcode-preview{
    background:#fff;
    border:1.5px solid var(--line);
    border-radius:12px;
    padding:16px;
    text-align:center;
  }
  .barcode-preview svg{max-width:100%;}

  #photoPreviewWrap{position:relative;}
  #photoPreview{
    width:100%;
    max-height:260px;
    object-fit:cover;
    border-radius:10px;
    border:1.5px solid var(--line);
    display:block;
  }
  .photo-actions{display:flex;gap:8px;margin-top:8px;}

  .list-search{margin-bottom:12px;}
  .inv-row{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:12px;
    padding:12px 14px;
    margin-bottom:8px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:10px;
    cursor:pointer;
  }
  .inv-row .left .name{font-weight:800;font-size:14.5px;}
  .inv-row .left .meta{font-size:12px;color:var(--ink-soft);margin-top:2px;}
  .inv-row .right{text-align:right;}
  .row-thumb{
    width:42px;
    height:42px;
    border-radius:8px;
    object-fit:cover;
    background:#f4e9ee;
    flex-shrink:0;
    cursor:pointer;
  }
  .row-thumb-empty{
    background:linear-gradient(135deg,#f4e9ee,#ece3f5);
  }
  .inv-row .right .cpu{font-weight:800;color:var(--pink-dark);font-size:14px;}
  .inv-row .right .qty{font-size:11.5px;color:var(--ink-soft);}
  .inv-row .row-check{
    flex:none;
    width:20px;
    height:20px;
    cursor:pointer;
  }
  .select-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-bottom:12px;
    padding:0 2px;
  }
  .select-all-label{
    display:flex;
    align-items:center;
    gap:8px;
    font-size:13px;
    font-weight:700;
    color:var(--ink-soft);
    cursor:pointer;
  }
  .select-all-label input{width:18px;height:18px;cursor:pointer;}
  .empty-state{
    text-align:center;
    padding:36px 10px;
    color:var(--ink-soft);
    font-size:14px;
  }

  .modal-backdrop{
    position:fixed;inset:0;background:rgba(36,23,38,.45);
    display:flex;align-items:flex-end;justify-content:center;
    z-index:100;
  }
  .modal-sheet{
    background:var(--cream);
    width:100%;max-width:520px;
    max-height:88vh;overflow-y:auto;
    border-radius:20px 20px 0 0;
    padding:18px 16px 22px;
  }
  body.is-desktop .modal-backdrop{
    align-items:center;
  }
  body.is-desktop .modal-sheet{
    border-radius:20px;
    max-height:80vh;
  }
  .modal-sheet .modal-head{
    display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;
  }
  .modal-sheet .modal-head h3{margin:0;font-size:18px;}
  .close-x{background:none;border:none;font-size:20px;color:var(--ink-soft);cursor:pointer;}
  .detail-photo{
    width:100%;
    max-height:240px;
    object-fit:cover;
    border-radius:12px;
    margin-bottom:12px;
    background:#f4e9ee;
    display:block;
  }
  .detail-photo-placeholder{
    text-align:center;
    padding:24px 10px;
    color:var(--ink-soft);
    font-size:13px;
    border:1.5px dashed var(--line);
    border-radius:12px;
    margin-bottom:12px;
  }
  .photo-gallery{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-bottom:12px;
  }
  .photo-thumb{
    position:relative;
    width:84px;
    height:84px;
    border-radius:10px;
    overflow:hidden;
    background:#f4e9ee;
    border:2px solid transparent;
    cursor:pointer;
  }
  .photo-thumb img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
  }
  .photo-thumb.is-default{
    border-color:var(--pink);
  }
  .photo-thumb .default-badge{
    position:absolute;
    top:3px;
    left:3px;
    background:var(--pink);
    color:#fff;
    font-size:9px;
    font-weight:800;
    padding:2px 6px;
    border-radius:8px;
    letter-spacing:.2px;
  }
  .photo-thumb .remove-photo-btn{
    position:absolute;
    top:3px;
    right:3px;
    width:20px;
    height:20px;
    border-radius:50%;
    background:rgba(0,0,0,.55);
    color:#fff;
    border:0;
    font-size:13px;
    line-height:1;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
  }
  .photo-thumb .set-default-hint{
    position:absolute;
    bottom:0;
    left:0;
    right:0;
    background:rgba(0,0,0,.55);
    color:#fff;
    font-size:9px;
    text-align:center;
    padding:2px 0;
    opacity:0;
    transition:opacity .15s ease;
  }
  .photo-thumb:not(.is-default):hover .set-default-hint{ opacity:1; }
  .photo-thumb-add{
    width:84px;
    height:84px;
    border-radius:10px;
    border:1.5px dashed var(--line);
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:26px;
    color:var(--ink-soft);
    cursor:pointer;
    background:none;
  }

  .toast{
    position:fixed;left:50%;bottom:24px;transform:translateX(-50%);
    background:var(--ink);color:#fff;padding:10px 18px;border-radius:20px;
    font-size:13.5px;font-weight:600;z-index:200;
    box-shadow:0 6px 20px rgba(0,0,0,.2);
  }

  /* ---- booking-submit glitter takeover ---- */
  /* ---- ambient scroll sparkles + booking tornado ---- */
  #tbFx{
    position:fixed;
    inset:0;
    pointer-events:none;
    z-index:400;
    overflow:hidden;
  }
  /* Scroll sparkles are a homepage-only flourish. */
  body:not(.tb-public-home) #tbFx{ display:none !important; }
  .tb-particle{
    position:fixed;
    will-change:transform, opacity;
    filter:drop-shadow(0 0 5px currentColor);
    font-size:var(--s);
    z-index:401;
  }

  .tb-glitter-overlay{
    position:fixed;
    inset:0;
    z-index:500;
    pointer-events:auto; /* blocks interaction with the page underneath while active */
  }
  .tb-glitter-dim{
    position:fixed;
    inset:0;
    background:#32122c;
    opacity:0;
    pointer-events:none;
    transition:opacity .35s ease;
  }
  .tb-glitter-dim.on{ opacity:.10; }
  .tb-glitter-canvas{
    position:fixed;
    inset:0;
    width:100vw;
    height:100vh;
    pointer-events:none;
  }
  /* Reduced-motion fallback: no canvas/particles at all, just a soft
     branded gradient wash that fades in, holds, and fades out. */
  .tb-glitter-simple{
    position:fixed;
    inset:0;
    opacity:0;
    background:linear-gradient(135deg, var(--pink), var(--purple) 45%, var(--gold));
    transition:opacity .5s ease;
  }
  .tb-glitter-simple.on{ opacity:1; }

  /* Applied to the real .builder-summary card during the takeover —
     temporary, removed once the sequence finishes either way. */
  .builder-summary.tb-anticipate{
    transform:scale(.982);
    filter:brightness(.93);
    opacity:.83;
    transition:opacity .85s ease, transform .85s cubic-bezier(.2,.8,.2,1), filter .85s ease;
  }
  .builder-summary.tb-covered{
    opacity:0;
    filter:blur(7px);
    transform:scale(.97);
    transition:opacity .85s ease, transform .85s cubic-bezier(.2,.8,.2,1), filter .85s ease;
  }
  button.tb-btn-press{ transform:scale(.955); }
  button.tb-btn-glint{ position:relative; overflow:hidden; }
  button.tb-btn-glint::after{
    content:"";
    position:absolute;
    top:-50%; left:-35%;
    width:24%; height:200%;
    background:linear-gradient(90deg, transparent, rgba(255,255,255,.6), transparent);
    transform:rotate(18deg) translateX(-300%);
    animation:tbGlint .52s ease;
  }
  @keyframes tbGlint{ to{ transform:rotate(18deg) translateX(700%); } }

  .camera-modal{
    position:fixed;inset:0;
    background:#000;
    z-index:300;
    display:flex;
    flex-direction:column;
  }
  .camera-modal video{
    flex:1;
    width:100%;
    object-fit:cover;
    background:#000;
  }
  .camera-modal .camera-controls{
    display:flex;
    gap:10px;
    padding:16px;
    padding-bottom:calc(16px + env(safe-area-inset-bottom));
    background:#000;
  }
  .camera-modal .camera-controls button{margin:0;}

  footer.note{
    text-align:center;
    font-size:11.5px;
    color:var(--ink-soft);
    margin-top:22px;
    line-height:1.5;
  }

  /* ==================== MAJOR DESIGN PASS ==================== */

  /* Distinctive display type for headlines — matches the brand's own
     rounded, bubbly logo lettering rather than a generic system font. */
  header.top .brand,
  .hero h1,
  .section-heading,
  .hiw-title,
  .tier-name,
  .exp-name,
  .stat-num,
  #welcomeName,
  .welcome-name,
  .pkg-accordion-head span:first-child{
    font-family: 'Fredoka', -apple-system, BlinkMacSystemFont, sans-serif;
  }
  .hero h1{ font-weight:600; letter-spacing:-0.5px; }
  .section-heading{ font-weight:600; }

  /* Full-bleed wrapper — lets marketing sections break out of the narrow
     constrained column to true viewport width. Needs width:100vw to
     actually reach full width (width:100% would just match the parent's
     width, defeating the point). The html,body overflow-x:hidden rule
     set earlier absorbs the few extra pixels 100vw picks up from the
     scrollbar, so this doesn't reintroduce horizontal scroll. */
  .full-bleed{
    position:relative;
    width:100vw;
    left:50%;
    right:50%;
    margin-left:-50vw;
    margin-right:-50vw;
    padding:28px 20px;
  }
  .full-bleed-inner{
    max-width:1100px;
    margin:0 auto;
  }
  /* One continuous gradient spanning hero → how it works → package details,
     instead of separate hard-edged color blocks. */
  /* One continuous, genuinely multi-hue gradient — pink into lavender into
     mint into a warm cream — instead of just different shades of pink. */
  .band-hero{ background:linear-gradient(180deg, #FFF3F7 0%, #FCEFFA 40%, #F3EEFC 100%); padding-top:24px; margin-bottom:-1px; }
  .band-white{ background:linear-gradient(180deg, #F3EEFC 0%, #EAF6F1 55%, #FFF6F8 100%); margin-bottom:-1px; }
  .band-tint{
    /* Deliberately oversized transition wash between the booking form and the
       footer/package details. It starts and ends transparent so there is no
       visible stripe edge, while the center has enough height to feel like a
       real part of the composition. */
    min-height:150px;
    padding:58px 20px 62px;
    margin-top:-10px;
    margin-bottom:-10px;
    background:
      linear-gradient(90deg,
        rgba(255,246,248,0) 0%,
        rgba(255,246,248,.42) 12%,
        rgba(255,246,248,0) 24%,
        rgba(255,246,248,0) 76%,
        rgba(255,246,248,.42) 88%,
        rgba(255,246,248,0) 100%),
      linear-gradient(180deg,
        rgba(255,246,248,0) 0%,
        rgba(243,238,252,.36) 18%,
        rgba(231,246,241,.78) 48%,
        rgba(235,240,249,.62) 68%,
        rgba(255,246,248,.18) 88%,
        rgba(255,246,248,0) 100%);
  }

  /* Two-column hero on desktop with a decorative floating cluster */
  .hero-grid{ display:block; }
  .hero-visual{ display:none; }
  .hero-blob{
    position:absolute;
    display:flex; align-items:center; justify-content:center;
    font-size:38px;
    box-shadow:0 14px 30px rgba(90,30,60,.12);
    animation:tbHeroFloat 3.4s ease-in-out infinite;
  }
  @keyframes tbHeroFloat{
    0%,100%{ transform:translateY(0) rotate(0deg); }
    50%{ transform:translateY(-10px) rotate(4deg); }
  }
  .hero-blob.b1{ width:75px; height:75px; background:#FBDDE9; border-radius:42% 58% 63% 37% / 41% 44% 56% 59%; top:0; left:15px; animation-delay:0s; }
  .hero-blob.b2{ width:62px; height:62px; background:#E7F7F3; border-radius:63% 37% 39% 61% / 51% 55% 45% 49%; top:70px; left:135px; animation-delay:-.6s; animation-duration:3.8s; }
  .hero-blob.b3{ width:66px; height:66px; background:#FCF3E2; border-radius:50% 50% 62% 38% / 40% 62% 38% 60%; top:138px; left:8px; animation-delay:-1.2s; animation-duration:3.1s; }
  .hero-blob.b4{ width:53px; height:53px; background:#F1EAFB; border-radius:57% 43% 40% 60% / 60% 45% 55% 40%; top:12px; left:188px; animation-delay:-1.7s; animation-duration:3.6s; }
  .hero-blob.b5{ width:69px; height:69px; background:#EBF4E8; border-radius:45% 55% 55% 45% / 55% 40% 60% 45%; top:165px; left:135px; animation-delay:-2.1s; animation-duration:3.3s; }

  @media (min-width:860px){
    body.is-desktop .hero-grid{
      display:grid;
      grid-template-columns:1.15fr 0.85fr;
      gap:48px;
      align-items:center;
      text-align:left;
    }
    body.is-desktop .hero-copy .hero-tags{ justify-content:flex-start; }
    body.is-desktop .hero{ text-align:left; padding:8px 6px 8px; }
    body.is-desktop .hero-visual{
      display:block;
      position:relative;
      height:240px;
    }
    body.is-desktop .how-it-works{
      display:grid;
      grid-template-columns:repeat(4,1fr);
      gap:20px;
      position:relative;
    }
    body.is-desktop .hiw-step{ flex-direction:column; text-align:left; }
    body.is-desktop .hiw-num{ margin-bottom:6px; }
    body.is-desktop .tier-card:hover,
    body.is-desktop .exp-card:hover,
    body.is-desktop .pkg-accordion-head:hover{
      transform:translateY(-3px);
      box-shadow:0 10px 24px rgba(90,30,60,.08);
      transition:transform .15s ease, box-shadow .15s ease;
    }
    body.is-desktop .exp-grid{ gap:16px; }
  }

  /* A bit more drama in the section entrances on desktop specifically */
  body.is-desktop .reveal{
    transform:translateY(46px);
    transition:opacity .8s cubic-bezier(.16,.8,.3,1), transform .8s cubic-bezier(.16,.8,.3,1);
  }

  /* ==================== PROGRESSIVE PACKAGE BUILDER PAPER SLAPS ==================== */
  /* Step 1 (package) appears after intake. Step 2 appears only after a package
     is selected. Step 3 appears only after the required experience selection
     is complete. Each real builder section is the paper — no cloned controls. */

  #builder{
    scroll-margin-top:110px;
  }

  #builder .tb-step-stage{
    position:relative;
    scroll-margin-top:128px;
  }

  #builder .tb-progress-hidden{
    display:none !important;
  }

  #builder .tb-slap-paper{
    position:relative;
    overflow:visible;
    isolation:isolate;
    padding:28px 24px 24px;
    border:1px solid #E7DAC8;
    border-radius:6px 9px 7px 5px;
    background:
      linear-gradient(rgba(255,253,248,.976),rgba(255,253,248,.976)),
      repeating-linear-gradient(
        0deg,
        transparent 0 27px,
        rgba(199,186,168,.14) 28px
      );
    box-shadow:
      0 25px 52px rgba(58,38,49,.15),
      0 7px 15px rgba(58,38,49,.08),
      inset 0 0 0 1px rgba(255,255,255,.7);
    transform:rotate(-.25deg);
    transform-origin:50% 12%;
    will-change:transform,opacity,filter;
  }

  #builder .tb-slap-paper > *{
    position:relative;
    z-index:2;
  }

  #builder .tb-slap-paper .step-label{
    font-family:'Fredoka',sans-serif;
    font-size:18px;
  }

  /* Very light paper fibers. */
  #builder .tb-slap-paper .tb-step-paper-texture{
    position:absolute;
    inset:0;
    z-index:0;
    pointer-events:none;
    border-radius:inherit;
    opacity:.17;
    background-image:
      radial-gradient(rgba(114,91,72,.23) .55px, transparent .7px),
      radial-gradient(rgba(232,23,125,.11) .45px, transparent .65px);
    background-size:7px 7px,13px 13px;
    background-position:0 0,3px 5px;
    mix-blend-mode:multiply;
  }

  /* Tape is attached to each individual step, so every reveal feels like
     another page was physically slapped onto the craft table. */
  #builder .tb-slap-paper::before,
  #builder .tb-slap-paper::after{
    content:"";
    position:absolute;
    z-index:8;
    width:126px;
    height:35px;
    top:7px;
    pointer-events:none;
    opacity:.87;
    box-shadow:0 2px 5px rgba(60,37,49,.10);
  }

  #builder .tb-slap-paper::before{
    left:-34px;
    background:repeating-linear-gradient(
      90deg,
      rgba(244,165,200,.82) 0 11px,
      rgba(250,188,214,.82) 11px 22px
    );
    clip-path:polygon(2% 8%,98% 0,96% 95%,1% 100%);
    transform:rotate(-34deg);
  }

  #builder .tb-slap-paper::after{
    right:-35px;
    background:repeating-linear-gradient(
      90deg,
      rgba(183,163,239,.80) 0 11px,
      rgba(205,188,247,.80) 11px 22px
    );
    clip-path:polygon(2% 1%,99% 8%,97% 100%,0 93%);
    transform:rotate(31deg);
  }

  /* The parent .tb-step-stage stays fixed in layout. Only the paper inside it
     moves, which prevents the browser from calculating the wrong scroll target. */
  #builder .tb-slap-paper.tb-paper-prep{
    opacity:0;
    transform:translate3d(46px,-108vh,200px) rotateZ(11deg) rotateX(-15deg) scale(1.07);
    filter:blur(1.2px);
  }

  #builder .tb-slap-paper.tb-paper-prep::before,
  #builder .tb-slap-paper.tb-paper-prep::after{
    opacity:0;
  }

  #builder .tb-slap-paper.tb-paper-slap{
    animation:tbProgressivePaperSlap .78s cubic-bezier(.17,.84,.22,1) forwards;
  }

  #builder .tb-slap-paper.tb-paper-slap::before{
    animation:tbProgressiveTapeLeft .39s .72s cubic-bezier(.18,.9,.25,1.18) forwards;
  }

  #builder .tb-slap-paper.tb-paper-slap::after{
    animation:tbProgressiveTapeRight .39s .92s cubic-bezier(.18,.9,.25,1.18) forwards;
  }

  #builder .tb-slap-paper.tb-paper-slap .tier-grid,
  #builder .tb-slap-paper.tb-paper-slap .exp-grid,
  #builder .tb-slap-paper.tb-paper-slap .guest-row,
  #builder .tb-slap-paper.tb-paper-slap .addon-list{
    animation:tbProgressiveContentsSettle .34s .55s ease-out both;
  }

  @keyframes tbProgressivePaperSlap{
    0%{
      opacity:0;
      transform:translate3d(46px,-108vh,200px) rotateZ(11deg) rotateX(-15deg) scale(1.07);
      filter:blur(1.2px);
      box-shadow:0 46px 90px rgba(58,38,49,.04);
    }
    59%{
      opacity:1;
      transform:translate3d(-8px,13px,0) rotateZ(-2.25deg) rotateX(0) scale(.968);
      filter:blur(0);
      box-shadow:0 8px 14px rgba(58,38,49,.23);
    }
    73%{
      transform:translate3d(4px,-6px,0) rotateZ(.75deg) scale(1.015);
      box-shadow:0 28px 47px rgba(58,38,49,.13);
    }
    86%{
      transform:translate3d(-2px,2px,0) rotateZ(-.62deg) scale(.995);
    }
    100%{
      opacity:1;
      transform:translate3d(0,0,0) rotateZ(-.25deg) scale(1);
      filter:none;
      box-shadow:
        0 25px 52px rgba(58,38,49,.15),
        0 7px 15px rgba(58,38,49,.08),
        inset 0 0 0 1px rgba(255,255,255,.7);
    }
  }

  @keyframes tbProgressiveTapeLeft{
    0%{opacity:0;transform:translate(-265px,-155px) rotate(-72deg) scale(1.28)}
    68%{opacity:.93;transform:translate(7px,5px) rotate(-31deg) scale(.94)}
    84%{transform:translate(-2px,-2px) rotate(-35deg) scale(1.025)}
    100%{opacity:.87;transform:translate(0,0) rotate(-34deg) scale(1)}
  }

  @keyframes tbProgressiveTapeRight{
    0%{opacity:0;transform:translate(270px,-150px) rotate(74deg) scale(1.28)}
    68%{opacity:.93;transform:translate(-7px,5px) rotate(28deg) scale(.94)}
    84%{transform:translate(2px,-2px) rotate(32deg) scale(1.025)}
    100%{opacity:.87;transform:translate(0,0) rotate(31deg) scale(1)}
  }

  @keyframes tbProgressiveContentsSettle{
    0%{transform:translateY(3px)}
    46%{transform:translateY(-2px)}
    100%{transform:translateY(0)}
  }

  /* The estimate should not get ahead of the form. It appears with step 3. */
  #builder .builder-summary.tb-summary-reveal{
    animation:tbSummaryReveal .42s .16s ease-out both;
  }

  @keyframes tbSummaryReveal{
    from{opacity:0;transform:translateY(12px) scale(.985)}
    to{opacity:1;transform:translateY(0) scale(1)}
  }

  @media(max-width:700px){
    #builder .tb-step-stage{scroll-margin-top:96px}
    #builder .tb-slap-paper{padding:25px 17px 21px}
    #builder .tb-slap-paper::before,
    #builder .tb-slap-paper::after{
      width:106px;
      height:31px;
    }
    #builder .tb-slap-paper::before{left:-29px}
    #builder .tb-slap-paper::after{right:-29px}
  }

  @media(prefers-reduced-motion:reduce){
    #builder .tb-slap-paper.tb-paper-prep,
    #builder .tb-slap-paper.tb-paper-slap{
      opacity:1 !important;
      transform:rotate(-.25deg) !important;
      filter:none !important;
      animation:none !important;
    }
    #builder .tb-slap-paper.tb-paper-prep::before,
    #builder .tb-slap-paper.tb-paper-prep::after,
    #builder .tb-slap-paper.tb-paper-slap::before,
    #builder .tb-slap-paper.tb-paper-slap::after{
      opacity:.87 !important;
      animation:none !important;
    }
  }


  /* ==================== INTAKE FORM — ONE TAPED PAPER ==================== */
  /* The section itself stays fixed in normal document flow. Only the inner
     paper moves, so the slap is dramatic without causing scroll jumps. */
  #intake{
    perspective:1200px;
  }

  #intakePaper{
    --tb-paper-rot:-.20deg;
    position:relative;
    isolation:isolate;
    overflow:visible;
    padding:32px 28px 26px;
    margin:4px 0 18px;
    border:1px solid #E7DAC8;
    border-radius:7px 10px 8px 6px;
    background-image:
      radial-gradient(rgba(114,91,72,.055) .55px, transparent .72px),
      radial-gradient(rgba(232,23,125,.035) .45px, transparent .68px),
      linear-gradient(rgba(255,253,248,.986),rgba(255,253,248,.986)),
      repeating-linear-gradient(0deg, transparent 0 27px, rgba(199,186,168,.12) 28px);
    background-size:7px 7px,13px 13px,auto,auto;
    background-position:0 0,3px 5px,0 0,0 0;
    box-shadow:
      0 28px 58px rgba(58,38,49,.15),
      0 8px 17px rgba(58,38,49,.08),
      inset 0 0 0 1px rgba(255,255,255,.76);
    transform:rotate(var(--tb-paper-rot));
    transform-origin:50% 5%;
    will-change:transform,opacity,filter;
  }

  #intakePaper > *{
    position:relative;
    z-index:2;
  }

  /* Internal field groups are now only layout sections — not separate cards. */
  #intakePaper > .field-group{
    padding:0 0 18px;
    margin:0 0 18px;
    border:0;
    border-radius:0;
    background:none;
    box-shadow:none;
    transform:none;
  }

  #intakePaper > .field-group:not(:last-of-type){
    border-bottom:1px dashed rgba(163,143,126,.28);
  }

  /* One pair of oversized tape strips for the entire form sheet. */
  #intakePaper::before,
  #intakePaper::after{
    content:"";
    position:absolute;
    z-index:8;
    top:5px;
    width:138px;
    height:37px;
    pointer-events:none;
    opacity:.89;
    box-shadow:0 2px 5px rgba(60,37,49,.10);
  }

  #intakePaper::before{
    left:-37px;
    background:repeating-linear-gradient(
      90deg,
      rgba(244,165,200,.86) 0 11px,
      rgba(250,188,214,.86) 11px 22px
    );
    clip-path:polygon(2% 8%,98% 0,96% 95%,1% 100%);
    transform:rotate(-33deg);
  }

  #intakePaper::after{
    right:-38px;
    background:repeating-linear-gradient(
      90deg,
      rgba(183,163,239,.84) 0 11px,
      rgba(205,188,247,.84) 11px 22px
    );
    clip-path:polygon(2% 1%,99% 8%,97% 100%,0 93%);
    transform:rotate(31deg);
  }

  /* This class is present at first paint, preventing the form from flashing
     before the main TinkerBooth intro has handed off to the page. */
  #intake.tb-intake-awaiting #intakePaper{
    opacity:0;
    transform:translate3d(42px,-106vh,200px) rotateZ(10deg) rotateX(-14deg) scale(1.06);
    filter:blur(1.15px);
  }

  #intake.tb-intake-awaiting #intakePaper::before,
  #intake.tb-intake-awaiting #intakePaper::after{
    opacity:0;
  }

  #intake.tb-intake-awaiting #intakePaper.tb-intake-slap{
    animation:tbIntakeWholePaperSlap .88s cubic-bezier(.17,.84,.22,1) forwards;
  }

  #intake.tb-intake-awaiting #intakePaper.tb-intake-slap::before{
    animation:tbIntakeWholeTapeLeft .40s .76s cubic-bezier(.18,.9,.25,1.18) forwards;
  }

  #intake.tb-intake-awaiting #intakePaper.tb-intake-slap::after{
    animation:tbIntakeWholeTapeRight .40s .96s cubic-bezier(.18,.9,.25,1.18) forwards;
  }

  #intake.tb-intake-awaiting #intakePaper.tb-intake-slap .field,
  #intake.tb-intake-awaiting #intakePaper.tb-intake-slap #intakeContinueBtn{
    animation:tbIntakeWholeContentsSettle .36s .58s ease-out both;
  }

  @keyframes tbIntakeWholePaperSlap{
    0%{
      opacity:0;
      transform:translate3d(42px,-106vh,200px) rotateZ(10deg) rotateX(-14deg) scale(1.06);
      filter:blur(1.15px);
      box-shadow:0 52px 100px rgba(58,38,49,.035);
    }
    58%{
      opacity:1;
      transform:translate3d(-8px,15px,0) rotateZ(-2.15deg) rotateX(0) scale(.968);
      filter:blur(0);
      box-shadow:0 8px 15px rgba(58,38,49,.24);
    }
    73%{
      transform:translate3d(4px,-7px,0) rotateZ(.72deg) scale(1.014);
      box-shadow:0 30px 49px rgba(58,38,49,.13);
    }
    86%{
      transform:translate3d(-2px,2px,0) rotateZ(-.56deg) scale(.996);
    }
    100%{
      opacity:1;
      transform:translate3d(0,0,0) rotateZ(var(--tb-paper-rot)) scale(1);
      filter:none;
      box-shadow:
        0 28px 58px rgba(58,38,49,.15),
        0 8px 17px rgba(58,38,49,.08),
        inset 0 0 0 1px rgba(255,255,255,.76);
    }
  }

  @keyframes tbIntakeWholeTapeLeft{
    0%{opacity:0;transform:translate(-270px,-150px) rotate(-72deg) scale(1.28)}
    68%{opacity:.95;transform:translate(8px,5px) rotate(-30deg) scale(.94)}
    84%{transform:translate(-2px,-2px) rotate(-34deg) scale(1.025)}
    100%{opacity:.89;transform:translate(0,0) rotate(-33deg) scale(1)}
  }

  @keyframes tbIntakeWholeTapeRight{
    0%{opacity:0;transform:translate(275px,-148px) rotate(74deg) scale(1.28)}
    68%{opacity:.95;transform:translate(-8px,5px) rotate(28deg) scale(.94)}
    84%{transform:translate(2px,-2px) rotate(32deg) scale(1.025)}
    100%{opacity:.89;transform:translate(0,0) rotate(31deg) scale(1)}
  }

  @keyframes tbIntakeWholeContentsSettle{
    0%{opacity:.70;transform:translateY(6px)}
    48%{opacity:1;transform:translateY(-2px)}
    100%{opacity:1;transform:translateY(0)}
  }

  @media(max-width:700px){
    #intakePaper{padding:27px 17px 22px;margin-left:2px;margin-right:2px}
    #intakePaper::before,
    #intakePaper::after{width:112px;height:31px}
    #intakePaper::before{left:-30px}
    #intakePaper::after{right:-31px}
  }

  @media(prefers-reduced-motion:reduce){
    #intake.tb-intake-awaiting #intakePaper,
    #intake.tb-intake-awaiting #intakePaper.tb-intake-slap{
      opacity:1 !important;
      transform:rotate(var(--tb-paper-rot)) !important;
      filter:none !important;
      animation:none !important;
    }
    #intake.tb-intake-awaiting #intakePaper::before,
    #intake.tb-intake-awaiting #intakePaper::after{
      opacity:.89 !important;
      animation:none !important;
    }
  }

  /* Keep the intake heading clear of the oversized tape without changing the paper.
     This is a visual lift only, so the sheet stays exactly where it was. */
  #intake > .section-heading,
  #intake > .section-heading + .hint{
    position:relative;
    z-index:12;
    transform:translateY(-18px);
  }

  
  /* ==================== PACKAGE-ONLY HOT AIR BALLOON ESTIMATE ==================== */
  .tb-balloon-float{
    position:fixed;
    right:clamp(14px, 3vw, 46px);
    top:50%;
    width:258px;
    z-index:95;
    opacity:0;
    pointer-events:none;
    transform:translateY(-45%) translateX(28px);
    transition:opacity .35s ease, transform .35s ease;
  }
  .tb-balloon-float.is-visible{
    opacity:1;
    pointer-events:auto;
    transform:translateY(-50%) translateX(0);
  }
  .tb-balloon-core{
    position:relative;
    animation:tbBalloonFloaty 4.8s ease-in-out infinite;
    transform-origin:50% 40%;
    filter:drop-shadow(0 22px 22px rgba(104,70,83,.12));
  }
  @keyframes tbBalloonFloaty{
    0%,100%{transform:translateY(0) rotate(-.7deg)}
    50%{transform:translateY(-10px) rotate(.7deg)}
  }
  .tb-balloon-sparkle{
    position:absolute;
    color:#f4b7cb;
    font-size:18px;
    animation:tbBalloonTwinkle 2.3s ease-in-out infinite;
    pointer-events:none;
  }
  .tb-balloon-sparkle.s1{top:24px;left:10px}
  .tb-balloon-sparkle.s2{top:104px;right:4px;animation-delay:.6s}
  .tb-balloon-sparkle.s3{top:245px;left:12px;animation-delay:1.2s}
  @keyframes tbBalloonTwinkle{
    0%,100%{opacity:.3;transform:scale(.85)}
    50%{opacity:1;transform:scale(1.15)}
  }
  .tb-balloon-image{
    display:block;
    width:100%;
    height:auto;
    margin:0 auto -72px;
    filter:drop-shadow(0 20px 20px rgba(104,70,83,.12));
    user-select:none;
    pointer-events:none;
    -webkit-user-drag:none;
  }
  .tb-balloon-summary{
    position:relative;
    z-index:2;
    width:86%;
    margin:0 auto;
    background:rgba(255,251,247,.97);
    border:2px solid #d9b58b;
    border-radius:20px 20px 28px 28px;
    padding:18px 16px 16px;
    box-shadow:0 16px 36px rgba(98,67,78,.14);
  }
  .tb-balloon-summary::before{
    content:"";
    position:absolute;
    left:12px;right:12px;top:-10px;
    height:18px;
    border-radius:50%;
    border-top:3px solid #d9b58b;
  }
  .tb-balloon-summary h3{
    margin:0 0 12px;
    text-align:center;
    font-family:Georgia,"Times New Roman",serif;
    font-weight:500;
    font-size:1.28rem;
    color:#7b4860;
  }
  .tb-balloon-items,
  .tb-balloon-foot-lines{
    display:flex;
    flex-direction:column;
  }
  .tb-balloon-line,
  .tb-balloon-totalrow{
    display:flex;
    justify-content:space-between;
    gap:10px;
    padding:6px 0;
  }
  .tb-balloon-line{
    font-size:.86rem;
    color:#665059;
  }
  .tb-balloon-line span:first-child{
    max-width:132px;
  }
  .tb-balloon-line strong{
    color:#3a2f35;
    text-align:right;
    font-weight:800;
    white-space:nowrap;
  }
  .tb-balloon-line.is-quote strong{ color:var(--purple); }
  .tb-balloon-divider{
    height:1px;
    background:var(--line);
    margin:8px 0;
  }
  .tb-balloon-totalrow{
    font-family:Georgia,"Times New Roman",serif;
    font-size:1.08rem;
    font-weight:700;
    color:#8b4963;
  }
  .tb-balloon-note{
    text-align:center;
    color:var(--ink-soft);
    font-size:.72rem;
    margin-top:8px;
    line-height:1.35;
  }

  @media(min-width:1500px){
    .tb-balloon-float{
      right:max(18px, calc((100vw - 1100px)/2 - 6px));
    }
  }

  @media(max-width:860px){
    .tb-balloon-float{
      right:12px;
      top:auto;
      bottom:calc(10px + env(safe-area-inset-bottom));
      width:198px;
      transform:translateY(20px) scale(.74);
      transform-origin:right bottom;
    }
    .tb-balloon-float.is-visible{
      transform:scale(.74);
      transform-origin:right bottom;
    }
    .tb-balloon-image{ margin-bottom:-58px; }
    .tb-balloon-summary{ width:90%; padding:15px 13px 14px; }
    .tb-balloon-summary h3{ font-size:1.12rem; margin-bottom:10px; }
    .tb-balloon-line{ font-size:.8rem; }
    .tb-balloon-line span:first-child{ max-width:102px; }
    .tb-balloon-totalrow{ font-size:.98rem; }
  }



  /* ==================== COHESIVE BUILDER LAYOUT + INLINE ACTION AREA ==================== */
  #builder .builder-steps{
    max-width:760px;
    margin:0 auto;
  }
  .builder-summary{
    display:none;
  }
  .builder-grid.tb-recap-mode .builder-summary{
    display:block;
  }
  .tb-builder-submit{
    margin-top:16px;
    padding-top:14px;
    border-top:1px dashed rgba(163,143,126,.28);
  }
  .tb-builder-submit-note{
    margin-bottom:10px;
    font-size:12.5px;
    line-height:1.45;
    color:var(--ink-soft);
  }
  #guestSubmitWrap #summaryTotal{
    background:
      radial-gradient(rgba(114,91,72,.045) .5px, transparent .72px),
      linear-gradient(180deg,#fffdf8 0%, #fff7fb 100%);
    background-size:7px 7px, auto;
    border:1.5px solid #EAD8E1;
    border-radius:18px;
    padding:14px 15px 14px;
    box-shadow:0 10px 22px rgba(58,38,49,.08);
  }
  #guestSubmitWrap .summary-total-row{
    margin-top:0;
    padding-top:0;
    border-top:none;
    align-items:center;
    color:var(--ink);
  }
  #guestSubmitWrap .summary-total-row span:first-child{
    color:var(--ink-soft);
    font-size:13px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.4px;
  }
  #guestSubmitWrap #summaryTotalPrice{
    color:var(--pink-dark);
    font-size:30px;
  }
  #guestSubmitWrap #builderContinueBtn{
    width:100%;
    box-shadow:0 10px 24px rgba(232,23,125,.17);
  }
  #guestSubmitWrap #builderValidationMsg{
    margin-top:10px;
    color:#cf2a6b;
    font-weight:800;
  }

  /* Builder / package-details alignment cleanup */
  @media (min-width:860px){
    body.is-desktop #builder > .section-heading,
    body.is-desktop #builder > .hint,
    body.is-desktop #builder .builder-grid,
    body.is-desktop #packageDetailsSection{
      max-width:760px;
      margin-left:auto;
      margin-right:auto;
    }
    body.is-desktop #builder .builder-grid{
      display:block;
    }
    body.is-desktop #builderSummaryCard{
      display:none;
      position:static;
      max-width:560px;
      margin:28px auto 0;
    }
    body.is-desktop #builder .builder-grid.tb-recap-mode #builderSummaryCard{
      display:block;
    }
    body.is-desktop #packageDetailsSection .pkg-accordion,
    body.is-desktop #packageDetailsSection .hint,
    body.is-desktop #packageDetailsSection .section-heading{
      max-width:760px;
      margin-left:auto;
      margin-right:auto;
    }
  }

  /* Recap card stays on-brand once submit succeeds */
  .builder-grid.tb-recap-mode #builderSummaryCard{
    background:linear-gradient(155deg, var(--pink) 0%, var(--pink-dark) 100%);
    border:none !important;
    color:#fff;
  }

  /* ==================== HOT AIR BALLOON DROP-IN REFINEMENT ==================== */
  .tb-balloon-float{
    --tb-balloon-show-transform:translateY(-50%) translateX(0);
    --tb-balloon-hide-transform:translateY(-45%) translateX(28px);
    transform:var(--tb-balloon-hide-transform);
  }
  .tb-balloon-float.is-visible{
    transform:var(--tb-balloon-show-transform);
  }
  .tb-balloon-float.is-dropping{
    animation:tbBalloonDropIn 1.45s cubic-bezier(.18,.84,.22,1) both;
  }
  @keyframes tbBalloonDropIn{
    0%{
      opacity:0;
      transform:translateY(115vh) translateX(0) scale(.88);
    }
    18%{
      opacity:.28;
    }
    68%{
      opacity:1;
      transform:translateY(-46%) translateX(0) scale(1.02);
    }
    82%{
      transform:translateY(-53%) translateX(0) scale(.992);
    }
    100%{
      opacity:1;
      transform:var(--tb-balloon-show-transform);
    }
  }
  .tb-balloon-summary{
    background:linear-gradient(180deg, rgba(255,252,248,.98) 0%, rgba(255,247,250,.98) 100%);
    border:2px solid #DEC2D1;
  }
  .tb-balloon-summary::before{
    border-top-color:#DEC2D1;
  }
  .tb-balloon-summary h3{
    color:var(--pink-dark);
    letter-spacing:-.2px;
  }
  .tb-balloon-line strong{
    color:var(--ink);
  }
  .tb-balloon-totalrow{
    color:var(--pink-dark);
  }
  .tb-balloon-note{
    color:var(--ink-soft);
  }

  @media(max-width:860px){
    .tb-balloon-float{
      --tb-balloon-show-transform:scale(.74);
      --tb-balloon-hide-transform:translateY(20px) scale(.74);
    }
  }



  /* ==================== BALLOON TIMING + PINK PALETTE TWEAKS ==================== */
  .tb-balloon-sparkle{
    color:var(--pink);
    text-shadow:0 0 10px rgba(232,23,125,.20);
  }
  .tb-balloon-image{
    filter:
      hue-rotate(-9deg)
      saturate(1.18)
      brightness(1.03)
      drop-shadow(0 20px 22px rgba(232,23,125,.14));
  }
  .tb-balloon-summary{
    border-color:color-mix(in srgb, var(--pink) 26%, white);
    box-shadow:0 16px 34px rgba(232,23,125,.10);
  }
  .tb-balloon-summary::before{
    border-top-color:color-mix(in srgb, var(--pink) 26%, white);
  }
  .tb-balloon-summary h3,
  .tb-balloon-totalrow{
    color:var(--pink-dark);
  }



  /* ==================== BALLOON GUTTER + EXACT BRAND PINK ==================== */
  /* Keep the balloon in the empty browser-side gutter instead of over the form. */
  @media(min-width:1100px){
    .tb-balloon-float{
      width:214px;
      right:24px !important;
      top:48%;
    }
    .tb-balloon-summary{
      width:88%;
      padding:14px 13px 13px;
      border-radius:18px 18px 24px 24px;
    }
    .tb-balloon-summary h3{
      font-size:1.08rem;
      margin-bottom:9px;
    }
    .tb-balloon-line{
      font-size:.78rem;
      padding:5px 0;
    }
    .tb-balloon-line span:first-child{
      max-width:105px;
    }
    .tb-balloon-totalrow{
      font-size:.98rem;
    }
    .tb-balloon-note{
      font-size:.66rem;
    }
    .tb-balloon-image{
      margin-bottom:-58px;
    }
  }

  /* The PNG itself has been recolored to the exact site brand pink #E8177D.
     Keep only the depth/shadow treatment here so CSS doesn't shift its hue. */
  .tb-balloon-image{
    filter:drop-shadow(0 18px 20px rgba(232,23,125,.18)) !important;
  }
  .tb-balloon-summary{
    border-color:rgba(232,23,125,.30);
    box-shadow:0 14px 30px rgba(232,23,125,.12);
  }
  .tb-balloon-summary::before{
    border-top-color:rgba(232,23,125,.30);
  }



  /* ==================== BALLOON POSITION + COLOR VARIATION REFINEMENT ==================== */
  @media(min-width:1100px){
    .tb-balloon-float{
      width:224px;
      right:clamp(34px, calc((100vw - 1140px)/2 + 10px), 138px) !important;
      top:48%;
    }
  }
  .tb-balloon-core::after{
    content:"";
    position:absolute;
    left:19%;
    top:18px;
    width:62%;
    height:56%;
    border-radius:52% 52% 46% 46% / 60% 60% 40% 40%;
    background:
      radial-gradient(circle at 28% 22%, rgba(255,255,255,.34) 0 17%, transparent 33%),
      radial-gradient(circle at 72% 34%, rgba(255,187,214,.25) 0 16%, transparent 32%),
      linear-gradient(180deg, rgba(255,255,255,.10), rgba(232,23,125,.06));
    mix-blend-mode:soft-light;
    opacity:.95;
    pointer-events:none;
  }
  .tb-balloon-image{
    filter:
      hue-rotate(-2deg)
      saturate(1.06)
      brightness(1.02)
      drop-shadow(0 18px 20px rgba(232,23,125,.18)) !important;
  }



  /* ==================== ACTIVE STEP TOP ALIGNMENT ==================== */
  /* Every progressive builder step is auto-scrolled to this same viewport
     offset. Keeping the balloon anchored here makes its canopy line up with
     the top edge of Package, Experience, and Guests & extras as each arrives.
     Manual scrolling does not chase the section; the balloon stays fixed. */
  @media(min-width:861px){
    .tb-balloon-float{
      top:128px !important;
      bottom:auto !important;
      --tb-balloon-show-transform:translateX(0);
      --tb-balloon-hide-transform:translateX(28px);
      transform:var(--tb-balloon-hide-transform);
    }
    .tb-balloon-float.is-visible{
      transform:var(--tb-balloon-show-transform);
    }
    @keyframes tbBalloonDropIn{
      0%{
        opacity:0;
        transform:translateY(112vh) translateX(0) scale(.88);
      }
      18%{ opacity:.28; }
      68%{
        opacity:1;
        transform:translateY(-8px) translateX(0) scale(1.02);
      }
      82%{
        transform:translateY(4px) translateX(0) scale(.992);
      }
      100%{
        opacity:1;
        transform:translateY(0) translateX(0) scale(1);
      }
    }
  }

  /* Small visual cue when the one-word test shortcut has filled the intake. */
  #intakePaper.tb-test-filled::marker{ display:none; }
  .tb-test-mode-note{
    display:none;
    margin:0 0 12px;
    padding:9px 12px;
    border:1px dashed rgba(232,23,125,.35);
    border-radius:12px;
    background:rgba(232,23,125,.055);
    color:var(--pink-dark);
    font-size:12px;
    font-weight:800;
  }
  #intakePaper.tb-test-filled .tb-test-mode-note{ display:block; }



  /* ==================== BRANDED EVENT DATE PICKER ==================== */
  .tb-date-field{ position:relative; z-index:28; }
  .tb-date-control{ position:relative; }
  .tb-date-control #in_date_display{
    padding-right:46px;
    cursor:pointer;
    background:
      linear-gradient(180deg,#fff 0%,#fffafd 100%);
  }
  .tb-date-control #in_date_display::placeholder{ color:#b69cab; }
  .tb-date-trigger{
    position:absolute;
    right:7px;
    top:50%;
    transform:translateY(-50%);
    width:34px;
    height:34px;
    border:0;
    border-radius:10px;
    display:grid;
    place-items:center;
    cursor:pointer;
    color:var(--pink-dark);
    background:#FDEAF3;
    transition:transform .16s ease, background .16s ease, box-shadow .16s ease;
  }
  .tb-date-trigger:hover{
    background:#FAD8E8;
    box-shadow:0 5px 14px rgba(232,23,125,.13);
  }
  .tb-date-trigger:active{ transform:translateY(-50%) scale(.96); }
  .tb-date-picker{
    position:absolute;
    left:0;
    top:calc(100% + 7px);
    width:min(310px, calc(100vw - 38px));
    z-index:220;
    padding:13px;
    border:1.5px solid #EFC5D8;
    border-radius:18px;
    background:
      radial-gradient(rgba(232,23,125,.04) .65px, transparent .7px) 0 0 / 8px 8px,
      linear-gradient(180deg,#FFFCFD 0%,#FFF6FA 100%);
    box-shadow:0 22px 48px rgba(64,34,52,.20), 0 5px 14px rgba(232,23,125,.08);
    transform-origin:top left;
    animation:tbDatePop .2s cubic-bezier(.2,.8,.2,1) both;
  }
  .tb-date-picker[hidden]{ display:none !important; }
  @keyframes tbDatePop{
    from{ opacity:0; transform:translateY(-5px) scale(.98); }
    to{ opacity:1; transform:translateY(0) scale(1); }
  }
  .tb-date-picker::before{
    content:"";
    position:absolute;
    width:50px;
    height:13px;
    top:-7px;
    left:19px;
    border-radius:2px;
    transform:rotate(-3deg);
    background:repeating-linear-gradient(135deg,#ff90bb 0 8px,#ffc1d8 8px 16px);
    opacity:.78;
    pointer-events:none;
  }
  .tb-date-picker-head{
    display:grid;
    grid-template-columns:36px 1fr 36px;
    align-items:center;
    gap:6px;
    margin:3px 0 10px;
  }
  .tb-date-month{
    text-align:center;
    font-family:'Fredoka',-apple-system,BlinkMacSystemFont,sans-serif;
    font-size:17px;
    font-weight:700;
    color:var(--ink);
  }
  .tb-date-nav{
    width:34px;
    height:34px;
    border:1px solid var(--line);
    border-radius:999px;
    background:#fff;
    color:var(--pink-dark);
    font-size:24px;
    line-height:1;
    cursor:pointer;
    display:grid;
    place-items:center;
  }
  .tb-date-nav:hover{ background:#FDEAF3; border-color:#F4B9D2; }
  .tb-date-weekdays,
  .tb-date-days{
    display:grid;
    grid-template-columns:repeat(7,1fr);
    gap:4px;
  }
  .tb-date-weekdays{ margin-bottom:5px; }
  .tb-date-weekdays span{
    text-align:center;
    font-size:10px;
    font-weight:900;
    color:#9a8493;
    text-transform:uppercase;
    letter-spacing:.25px;
  }
  .tb-date-day{
    aspect-ratio:1;
    min-width:31px;
    border:0;
    border-radius:11px;
    background:transparent;
    color:var(--ink);
    font-size:12.5px;
    font-weight:750;
    cursor:pointer;
    transition:background .13s ease, transform .13s ease, color .13s ease, box-shadow .13s ease;
  }
  .tb-date-day:hover{
    background:#FDEAF3;
    color:var(--pink-dark);
    transform:translateY(-1px);
  }
  .tb-date-day.is-outside{ color:#c9b9c2; font-weight:600; }
  .tb-date-day.is-disabled,.tb-date-day:disabled{ color:#d8cdd3; background:transparent; text-decoration:line-through; cursor:not-allowed; opacity:.55; }
  .tb-date-day.is-disabled:hover{ background:transparent; color:#d8cdd3; }
  .tb-date-day.is-today{
    box-shadow:inset 0 0 0 1.5px rgba(110,68,199,.48);
    color:var(--purple);
  }
  .tb-date-day.is-selected{
    background:var(--pink);
    color:#fff;
    box-shadow:0 6px 14px rgba(232,23,125,.25);
  }
  .tb-date-day.is-selected:hover{ background:var(--pink-dark); color:#fff; }
  .tb-date-footer{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:8px;
    margin-top:10px;
    padding-top:9px;
    border-top:1px dashed #E9D1DC;
  }
  .tb-date-footer button{
    border:0;
    background:transparent;
    color:var(--pink-dark);
    font-size:11px;
    font-weight:850;
    cursor:pointer;
    padding:6px 8px;
    border-radius:8px;
  }
  .tb-date-footer button:hover{ background:#FDEAF3; }
  @media(max-width:560px){
    .tb-date-picker{ width:min(300px, calc(100vw - 48px)); }
    .tb-date-day{ min-width:28px; }
  }

  /* ==================== CALENDAR LAYOUT FIX ==================== */
  .tb-date-field{ z-index:auto; }
  .tb-date-picker{
    position:relative;
    left:auto;
    top:auto;
    width:100%;
    max-width:100%;
    margin-top:8px;
    z-index:2;
    transform-origin:top center;
    box-shadow:0 14px 30px rgba(64,34,52,.14), 0 4px 12px rgba(232,23,125,.07);
  }
  .tb-date-day{
    min-width:0;
    width:100%;
    height:34px;
    aspect-ratio:auto;
  }
  .tb-date-picker-head{ grid-template-columns:34px minmax(0,1fr) 34px; }
  .tb-date-month{ font-size:16px; white-space:nowrap; }
  @media(max-width:700px){
    .tb-date-row{ grid-template-columns:1fr; }
    .tb-date-picker{ width:100%; max-width:none; }
    .tb-date-day{ height:38px; font-size:13px; }
  }



  /* ==================== REAL PUBLIC HOME PAGE ==================== */
  .home-shell{ width:100%; }
  .home-kicker{
    display:inline-flex;align-items:center;gap:8px;
    font-size:12px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;
    color:var(--pink-dark);background:#fff;border:1px solid var(--line);
    border-radius:999px;padding:8px 12px;box-shadow:0 5px 16px rgba(90,30,60,.06);
  }
  .home-hero{
    padding:44px 0 38px;
  }
  .home-hero-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:42px; align-items:center; }
  .home-hero h1{font-family:'Fredoka',sans-serif;font-size:clamp(38px,5.3vw,68px);line-height:.98;margin:16px 0 16px;letter-spacing:-1.7px;max-width:720px;}
  .home-hero h1 em{font-style:normal;color:var(--pink);}
  .home-hero-copy{font-size:17px;line-height:1.65;color:var(--ink-soft);max-width:650px;margin:0 0 22px;}
  .home-hero-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
  .home-hero-actions .btn{width:auto;min-width:180px;}
  .home-secondary-btn{background:#fff!important;color:var(--ink)!important;border:1.5px solid var(--line)!important;}
  .home-hero-note{font-size:12px;color:var(--ink-soft);font-weight:700;margin-top:14px;}
  .home-photo-card{position:relative;border-radius:30px;padding:14px;background:#fff;border:1px solid var(--line);box-shadow:0 24px 50px rgba(95,36,69,.13);transform:rotate(1.1deg);}
  .home-photo-card img{width:100%;display:block;border-radius:20px;aspect-ratio:1.18/1;object-fit:cover;object-position:center;}
  .home-photo-card:before,.home-photo-card:after{content:"";position:absolute;width:82px;height:24px;top:-10px;background:rgba(255,176,207,.66);backdrop-filter:blur(1px);transform:rotate(-8deg);}
  .home-photo-card:before{left:18px}.home-photo-card:after{right:18px;transform:rotate(8deg);background:rgba(188,166,244,.64)}
  .home-photo-badge{position:absolute;right:-12px;bottom:22px;background:var(--pink);color:#fff;border-radius:18px;padding:13px 16px;font-family:'Fredoka',sans-serif;font-weight:700;box-shadow:0 12px 25px rgba(232,23,125,.25);transform:rotate(-2deg);}

  .home-value-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:0 0 12px;}
  .home-value{background:#fff;border:1px solid var(--line);border-radius:16px;padding:15px 14px;text-align:center;box-shadow:0 6px 16px rgba(90,30,60,.04);}
  .home-value-icon{font-size:22px;margin-bottom:5px}.home-value strong{display:block;font-family:'Fredoka',sans-serif;font-size:13.5px}.home-value span{font-size:11.5px;color:var(--ink-soft);}

  .home-section{padding:58px 0;}
  .home-section-head{max-width:720px;margin:0 auto 28px;text-align:center;}
  .home-section-head .eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.14em;color:var(--pink-dark);font-weight:800;}
  .home-section-head h2{font-family:'Fredoka',sans-serif;font-size:clamp(28px,4vw,43px);line-height:1.08;margin:8px 0 10px;letter-spacing:-.7px;}
  .home-section-head p{margin:0;color:var(--ink-soft);font-size:15.5px;line-height:1.6;}

  .home-experience-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;}
  .home-exp{border-radius:20px;overflow:hidden;border:1px solid var(--line);background:#fff;box-shadow:0 8px 22px rgba(90,30,60,.06);transition:transform .18s ease,box-shadow .18s ease;}
  .home-exp:hover{transform:translateY(-5px);box-shadow:0 14px 30px rgba(90,30,60,.1);}
  .home-exp img{width:100%;aspect-ratio:1.1/1;object-fit:cover;display:block;}
  .home-exp-body{padding:14px;}
  .home-exp h3{font-family:'Fredoka',sans-serif;font-size:17px;margin:0 0 4px;}
  .home-exp-tag{font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:800;opacity:.72;margin-bottom:8px;}
  .home-exp-desc{font-size:12px;color:var(--ink-soft);line-height:1.42;min-height:67px;}
  .home-exp-price{font-size:14px;font-weight:800;margin-top:9px;color:var(--pink-dark);}
  .home-exp.pink{background:#fff5f9}.home-exp.teal{background:#f1fbf8}.home-exp.gold{background:#fff9ed}.home-exp.purple{background:#f7f3ff}.home-exp.sage{background:#f3f9f1}
  .home-exp.teal h3,.home-exp.teal .home-exp-price{color:var(--teal)}.home-exp.gold h3,.home-exp.gold .home-exp-price{color:var(--gold)}.home-exp.purple h3,.home-exp.purple .home-exp-price{color:var(--purple)}.home-exp.sage h3,.home-exp.sage .home-exp-price{color:var(--sage)}

  .home-package-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:stretch;}
  .home-package{position:relative;border-radius:24px;padding:24px 22px;background:#fff;border:1px solid var(--line);box-shadow:0 10px 24px rgba(90,30,60,.06);overflow:hidden;}
  .home-package:before{content:"";position:absolute;left:0;right:0;top:0;height:7px;background:var(--pkg);}
  .home-package .pkg-label{font-size:11px;text-transform:uppercase;letter-spacing:.12em;font-weight:900;color:var(--pkg);}
  .home-package h3{font-family:'Fredoka',sans-serif;font-size:25px;margin:7px 0 0;}
  .home-package .pkg-sub{font-size:12px;color:var(--ink-soft);margin:3px 0 16px;min-height:34px;}
  .home-package .pkg-start{display:flex;align-items:end;gap:8px;margin-bottom:16px}.home-package .pkg-start small{font-size:11px;font-weight:800;color:var(--ink-soft);text-transform:uppercase}.home-package .pkg-start strong{font-family:'Fredoka',sans-serif;font-size:34px;color:var(--pkg);line-height:1;}
  .home-package ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:9px;}
  .home-package li{font-size:13px;line-height:1.35;padding-left:22px;position:relative}.home-package li:before{content:"♥";position:absolute;left:0;top:-1px;color:var(--pkg);font-size:13px;}
  .home-package.experience{--pkg:var(--pink)}.home-package.deluxe{--pkg:var(--purple);background:#fbf9ff}.home-package.party{--pkg:var(--teal);background:#f5fcfa}
  .home-price-clarifier{margin:18px auto 0;max-width:850px;background:#fff;border:1px dashed #e6b6cb;border-radius:16px;padding:14px 16px;font-size:13px;color:var(--ink-soft);line-height:1.5;text-align:center;}
  .home-price-clarifier strong{color:var(--ink)}

  .home-pricing-table-wrap{overflow:auto;border-radius:20px;border:1px solid var(--line);background:#fff;box-shadow:0 8px 22px rgba(90,30,60,.05);}
  .home-pricing-table{width:100%;border-collapse:collapse;min-width:760px;}
  .home-pricing-table th,.home-pricing-table td{padding:15px 16px;border-bottom:1px solid var(--line);text-align:center;font-size:13px;}
  .home-pricing-table th:first-child,.home-pricing-table td:first-child{text-align:left;font-weight:800;}
  .home-pricing-table th{font-family:'Fredoka',sans-serif;background:#fff9fb;font-size:14px;}
  .home-pricing-table tr:last-child td{border-bottom:none}.home-pricing-table .pink{color:var(--pink-dark);font-weight:900}.home-pricing-table .purple{color:var(--purple);font-weight:900}.home-pricing-table .teal{color:var(--teal);font-weight:900}

  .home-detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:20px;}
  .home-detail-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px;}
  .home-detail-card .icon{font-size:24px}.home-detail-card h3{font-family:'Fredoka',sans-serif;font-size:17px;margin:8px 0 6px}.home-detail-card p{font-size:12.5px;line-height:1.48;color:var(--ink-soft);margin:0}.home-detail-card strong{color:var(--ink)}

  .home-addon-row{display:grid;grid-template-columns:1.2fr 1fr;gap:16px;margin-top:18px;}
  .home-addon-panel{border-radius:20px;padding:22px;background:linear-gradient(135deg,#fff4f8,#f7f1ff);border:1px solid var(--line);}
  .home-addon-panel h3{font-family:'Fredoka',sans-serif;margin:0 0 10px;font-size:20px}.home-addon-panel p{font-size:13px;color:var(--ink-soft);line-height:1.5;margin:0}.home-chip-row{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}.home-chip{background:#fff;border:1px solid var(--line);border-radius:999px;padding:7px 10px;font-size:11px;font-weight:800;color:var(--ink-soft)}

  .home-cta{border-radius:30px;background:linear-gradient(135deg,var(--pink) 0%,#ef3e95 38%,var(--purple) 100%);color:#fff;padding:38px 34px;display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;box-shadow:0 18px 38px rgba(150,43,115,.2);}
  .home-cta h2{font-family:'Fredoka',sans-serif;font-size:34px;line-height:1.05;margin:0 0 8px}.home-cta p{margin:0;color:rgba(255,255,255,.86);font-size:14px;}.home-cta .btn{background:#fff;color:var(--pink-dark);width:auto;min-width:190px;}
  .home-cta .btn:hover{transform:translateY(-2px);}

  .home-mini-disclaimer{font-size:11px;color:var(--ink-soft);text-align:center;margin-top:12px;line-height:1.5;}

  @media(max-width:1050px){
    .home-experience-grid{grid-template-columns:repeat(3,1fr)}
    .home-experience-grid .home-exp:nth-child(4),.home-experience-grid .home-exp:nth-child(5){grid-column:auto}
    .home-detail-grid{grid-template-columns:repeat(2,1fr)}
  }
  @media(max-width:760px){
    .home-hero{padding:30px 0 24px}.home-hero-grid{grid-template-columns:1fr;gap:26px}.home-hero h1{font-size:42px}.home-hero-copy{font-size:15px}.home-photo-card{max-width:460px;margin:0 auto;transform:rotate(.5deg)}
    .home-value-strip{grid-template-columns:1fr 1fr}.home-value{padding:12px 8px}
    .home-section{padding:42px 0}.home-section-head{text-align:left;margin-bottom:20px}.home-section-head h2{font-size:31px}
    .home-experience-grid{grid-template-columns:1fr 1fr;gap:10px}.home-exp-body{padding:12px}.home-exp-desc{min-height:0}.home-exp h3{font-size:15px}
    .home-package-grid{grid-template-columns:1fr}.home-package .pkg-sub{min-height:0}
    .home-detail-grid{grid-template-columns:1fr 1fr}.home-addon-row{grid-template-columns:1fr}
    .home-cta{grid-template-columns:1fr;padding:28px 22px}.home-cta h2{font-size:29px}.home-cta .btn{width:100%}
  }
  @media(max-width:480px){
    .home-experience-grid{grid-template-columns:1fr}.home-detail-grid{grid-template-columns:1fr}.home-value-strip{grid-template-columns:1fr 1fr}.home-hero-actions{display:grid;grid-template-columns:1fr}.home-hero-actions .btn{width:100%}.home-photo-badge{right:8px;font-size:12px}.home-pricing-table-wrap{margin-left:-4px;margin-right:-4px}
  }



/* ==================== TINKERBOOTH HOME V2 — CRAFT-PAPER BRAND SYSTEM ==================== */
.home2{width:100%;}
.home2-band{background:linear-gradient(180deg,#fff3f7 0%,#fff7fa 58%,#f8f1fb 100%);}
.home2-experience-band{background:linear-gradient(180deg,#f8f1fb 0%,#fff8f4 48%,#fffdf9 100%);}
.home2-package-band{background:linear-gradient(180deg,#fffdf9 0%,#fff5f8 48%,#f5f7fc 100%);padding-bottom:28px;}
.home2-hero{padding:74px 0 58px;}
.home2-hero-grid{display:grid;grid-template-columns:1.03fr .97fr;gap:52px;align-items:center;}
.home2-kicker{display:inline-block;background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 13px;color:var(--pink-dark)!important;font-family:'Fredoka',sans-serif;font-size:11px!important;font-style:normal!important;letter-spacing:.13em;text-transform:uppercase;box-shadow:0 5px 16px rgba(103,48,76,.06);}
.home2-hero h1{font-family:'Fredoka',sans-serif;font-size:clamp(42px,5.4vw,70px);line-height:.98;letter-spacing:-2px;margin:18px 0 17px;max-width:700px;color:var(--ink);}
.home2-hero h1 em{font-style:normal;color:var(--pink);}
.home2-copy{font-size:17px!important;line-height:1.64!important;color:var(--ink-soft)!important;max-width:650px!important;margin:0 0 18px!important;}
.home2-tags{justify-content:flex-start!important;margin:0 0 20px!important;gap:7px!important;}
.home2-tags span{background:rgba(255,255,255,.83)!important;border-color:#efdce5!important;color:#645366!important;font-size:11.5px!important;padding:7px 11px!important;transform:none!important;}
.home2-actions{display:flex;gap:10px;flex-wrap:wrap;}
.home2-actions .btn{width:auto;min-width:180px;}
.home2-outline{background:#fff!important;color:var(--ink)!important;border:1.5px solid var(--line)!important;}
.home2-photo-wrap{position:relative;max-width:520px;margin-left:auto;}
.home2-photo-paper{position:relative;background:#fffdf8;border:1px solid #e8d7c6;border-radius:8px;padding:15px;box-shadow:0 28px 56px rgba(66,39,54,.16),0 8px 18px rgba(66,39,54,.07);transform:rotate(1deg);}
.home2-photo-paper:before,.home2-photo-paper:after{content:"";position:absolute;z-index:3;width:104px;height:28px;top:-10px;opacity:.88;box-shadow:0 2px 5px rgba(60,37,49,.08);}
.home2-photo-paper:before{left:10px;background:repeating-linear-gradient(90deg,rgba(244,165,200,.86) 0 11px,rgba(250,188,214,.86) 11px 22px);transform:rotate(-8deg);clip-path:polygon(2% 8%,98% 0,96% 95%,1% 100%);}
.home2-photo-paper:after{right:10px;background:repeating-linear-gradient(90deg,rgba(183,163,239,.82) 0 11px,rgba(205,188,247,.82) 11px 22px);transform:rotate(8deg);clip-path:polygon(2% 1%,99% 8%,97% 100%,0 93%);}
.home2-photo-paper img{display:block;width:100%;aspect-ratio:1.15/1;object-fit:cover;object-position:center;border-radius:4px;}
.home2-photo-note{position:absolute;right:-12px;bottom:20px;background:var(--pink);color:#fff;font-family:'Fredoka',sans-serif;font-weight:700;font-size:13px;padding:12px 15px;border-radius:15px;box-shadow:0 12px 24px rgba(232,23,125,.24);transform:rotate(-2deg);}

.home2-section{padding:64px 0;}
.home2-section-head{max-width:760px;margin:0 auto 28px;text-align:center;}
.home2-section-head>span,.home2-extras-title>span,.home2-cta>div>span{font-family:'Fredoka',sans-serif;font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--pink-dark);font-weight:800;}
.home2-section-head h2{font-family:'Fredoka',sans-serif;font-size:clamp(30px,4vw,45px);line-height:1.05;margin:8px 0 10px;letter-spacing:-.8px;}
.home2-section-head p{font-size:15px;line-height:1.58;color:var(--ink-soft);margin:0;}

.home2-craft-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;}
.home2-craft{overflow:hidden;border-radius:9px;background:#fffdf8;border:1px solid #eadac9;box-shadow:0 12px 24px rgba(71,45,59,.08);transform:rotate(var(--tilt,0deg));transition:transform .2s ease,box-shadow .2s ease;}
.home2-craft:nth-child(1){--tilt:-.7deg}.home2-craft:nth-child(2){--tilt:.45deg}.home2-craft:nth-child(3){--tilt:-.3deg}.home2-craft:nth-child(4){--tilt:.6deg}.home2-craft:nth-child(5){--tilt:-.45deg}
.home2-craft:hover{transform:translateY(-5px) rotate(0);box-shadow:0 18px 30px rgba(71,45,59,.12);}
.home2-craft img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block;border-bottom:1px solid rgba(0,0,0,.04);}
.home2-craft-body{padding:14px 13px 13px;}
.home2-craft-tag{font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;font-weight:900;opacity:.72;margin-bottom:5px;}
.home2-craft h3{font-family:'Fredoka',sans-serif;font-size:17px;margin:0 0 6px;line-height:1.08;}
.home2-craft p{font-size:11.5px;line-height:1.42;color:var(--ink-soft);margin:0 0 12px;min-height:49px;}
.home2-price-trio{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px dashed rgba(128,93,110,.18);padding-top:10px;gap:4px;}
.home2-price-trio span{font-family:'Fredoka',sans-serif;font-size:12px;font-weight:800;text-align:center;color:var(--ink);}
.home2-price-trio small{display:block;font-family:inherit;font-size:7.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-soft);font-weight:700;margin-bottom:2px;}
.home2-craft.pink{background:#fff7fa}.home2-craft.teal{background:#f5fcfa}.home2-craft.gold{background:#fffbf1}.home2-craft.purple{background:#faf7ff}.home2-craft.sage{background:#f7fbf5}
.home2-craft.pink h3{color:var(--pink-dark)}.home2-craft.teal h3{color:var(--teal)}.home2-craft.gold h3{color:var(--gold)}.home2-craft.purple h3{color:var(--purple)}.home2-craft.sage h3{color:var(--sage)}

.home2-package-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:stretch;}
.home2-package{position:relative;background:#fffdf8;border:1px solid #eadac9;border-radius:8px;padding:25px 22px 22px;box-shadow:0 14px 28px rgba(71,45,59,.08);overflow:visible;}
.home2-package:before{content:"";position:absolute;left:50%;top:-12px;width:88px;height:25px;transform:translateX(-50%) rotate(var(--tape-rot,-2deg));opacity:.82;background:repeating-linear-gradient(90deg,var(--tape-a) 0 11px,var(--tape-b) 11px 22px);clip-path:polygon(2% 6%,98% 0,96% 95%,1% 100%);}
.home2-package.experience{--tape-a:#f4a5c8;--tape-b:#fabeD6;--tape-rot:-3deg}.home2-package.deluxe{--tape-a:#b7a3ef;--tape-b:#cdbcf7;--tape-rot:2deg}.home2-package.party{--tape-a:#92dcd2;--tape-b:#b7ece5;--tape-rot:-1deg}
.home2-package-label{font-family:'Fredoka',sans-serif;font-size:22px;font-weight:700;text-align:center;color:var(--pkg);}
.home2-package.experience{--pkg:var(--pink-dark)}.home2-package.deluxe{--pkg:var(--purple)}.home2-package.party{--pkg:var(--teal)}
.home2-package-price{text-align:center;margin:8px 0 8px;}.home2-package-price small{display:block;text-transform:uppercase;font-size:9px;letter-spacing:.09em;color:var(--ink-soft);font-weight:800}.home2-package-price strong{display:block;font-family:'Fredoka',sans-serif;font-size:39px;color:var(--pkg);line-height:1.02;}
.home2-package>p{text-align:center;font-size:12px;color:var(--ink-soft);margin:0 0 15px;font-weight:700;}
.home2-package ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;}.home2-package li{position:relative;padding-left:20px;font-size:12.5px;line-height:1.35}.home2-package li:before{content:"♥";position:absolute;left:0;top:-1px;color:var(--pkg);font-size:12px;}

.home2-extras-paper{position:relative;margin:28px auto 0;background:#fffdf8;border:1px solid #eadac9;border-radius:8px;padding:24px;box-shadow:0 12px 25px rgba(71,45,59,.07);max-width:980px;}
.home2-extras-paper:before{content:"";position:absolute;left:36px;top:-10px;width:100px;height:24px;background:repeating-linear-gradient(90deg,rgba(244,165,200,.82) 0 11px,rgba(250,188,214,.82) 11px 22px);transform:rotate(-4deg);clip-path:polygon(2% 8%,98% 0,96% 95%,1% 100%);}
.home2-extras-paper:after{content:"";position:absolute;right:36px;top:-10px;width:100px;height:24px;background:repeating-linear-gradient(90deg,rgba(183,163,239,.82) 0 11px,rgba(205,188,247,.82) 11px 22px);transform:rotate(4deg);clip-path:polygon(2% 0,98% 8%,99% 100%,4% 95%);}
.home2-extras-title{text-align:center;margin-bottom:17px;}.home2-extras-title h3{font-family:'Fredoka',sans-serif;font-size:24px;margin:5px 0 0;}
.home2-extra-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 18px;}
.home2-extra{padding:12px 0;border-top:1px dashed rgba(128,93,110,.18);}.home2-extra strong{font-family:'Fredoka',sans-serif;font-size:14px;color:var(--ink)}.home2-extra p{font-size:12px;line-height:1.45;color:var(--ink-soft);margin:4px 0 0;}
.home2-cta{margin-top:34px;border-radius:22px;padding:31px 30px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:24px;background:linear-gradient(135deg,#e8177d 0%,#ec3b91 48%,#7650cb 100%);color:#fff;box-shadow:0 17px 34px rgba(137,44,105,.18);}
.home2-cta>div>span{color:rgba(255,255,255,.78)}.home2-cta h2{font-family:'Fredoka',sans-serif;font-size:31px;line-height:1.05;margin:5px 0 7px}.home2-cta p{margin:0;font-size:13px;color:rgba(255,255,255,.86)}.home2-cta .btn{width:auto;min-width:190px;background:#fff;color:var(--pink-dark)}

@media(max-width:1050px){.home2-craft-grid{grid-template-columns:repeat(3,1fr)}.home2-craft:nth-child(4),.home2-craft:nth-child(5){grid-column:auto}}
@media(max-width:760px){
  .home2-hero{padding:52px 0 42px}.home2-hero-grid{grid-template-columns:1fr;gap:30px}.home2-hero h1{font-size:44px}.home2-copy{font-size:15px!important}.home2-photo-wrap{max-width:440px;margin:0 auto}.home2-photo-note{right:8px}
  .home2-section{padding:46px 0}.home2-section-head{text-align:left;margin-bottom:20px}.home2-section-head h2{font-size:32px}.home2-craft-grid{grid-template-columns:1fr 1fr;gap:10px}.home2-craft p{min-height:0}.home2-package-grid{grid-template-columns:1fr;gap:22px}.home2-extra-grid{grid-template-columns:1fr}.home2-cta{grid-template-columns:1fr;padding:26px 22px}.home2-cta .btn{width:100%}
}
@media(max-width:480px){.home2-craft-grid{grid-template-columns:1fr}.home2-actions{display:grid;grid-template-columns:1fr}.home2-actions .btn{width:100%}.home2-hero h1{font-size:39px}.home2-photo-paper{padding:10px}.home2-price-trio span{font-size:13px}.home2-extras-paper{padding:22px 17px}}


/* ==================== VIDEO-BACKGROUND PUBLIC HOME ==================== */
.home2-video-band{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  padding:0 20px !important;
  margin-bottom:0;
  background:#eadbd4;
}
.home2-video-band > .full-bleed-inner{
  position:relative;
  z-index:5;
  max-width:1180px;
}
.home2-ambient-film{
  position:absolute;
  inset:0;
  z-index:-3;
  overflow:hidden;
  background:linear-gradient(135deg,#eadbd4,#cfbdb8);
}
.home2-ambient-film video{
  position:absolute;
  inset:-3%;
  width:106%;
  height:106%;
  object-fit:cover;
  object-position:center;
  opacity:0;
  transform:scale(1.025);
  filter:saturate(.88) contrast(.95) brightness(.96);
  transition:opacity 1.15s ease;
  will-change:opacity,transform;
}
.home2-ambient-film video.active{opacity:1;}
.home2-ambient-film:before{
  content:"";
  position:absolute;
  inset:0;
  z-index:3;
  pointer-events:none;
  background:
    linear-gradient(90deg,rgba(255,248,245,.96) 0%,rgba(255,248,245,.87) 27%,rgba(255,248,245,.57) 48%,rgba(255,248,245,.18) 72%,rgba(34,22,29,.12) 100%),
    linear-gradient(180deg,rgba(255,248,245,.22) 0%,transparent 42%,rgba(255,248,245,.24) 100%);
}
.home2-ambient-film:after{
  content:"";
  position:absolute;
  inset:0;
  z-index:4;
  pointer-events:none;
  opacity:.10;
  mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.24'/%3E%3C/svg%3E");
}
.home2-video-hero{
  position:relative;
  min-height:min(790px,calc(100vh - 20px));
  display:flex;
  align-items:center;
  padding:148px 0 105px !important;
  text-align:left;
}
.home2-video-copy{
  position:relative;
  z-index:5;
  width:min(690px,61vw);
}
.home2-video-hero .home2-kicker{
  background:rgba(255,255,255,.58);
  border:1px solid rgba(80,48,64,.09);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  box-shadow:0 8px 28px rgba(70,43,52,.08);
  color:#9c3a63 !important;
}
.home2-video-hero h1{
  font-size:clamp(58px,7.4vw,102px);
  line-height:.89;
  letter-spacing:-4.4px;
  margin:24px 0 24px;
  max-width:860px;
  text-wrap:balance;
  text-shadow:0 1px 0 rgba(255,255,255,.20);
}
.home2-video-hero h1 em{
  color:#b3426b;
  position:relative;
  display:inline-block;
}
.home2-video-hero h1 em:after{
  content:"";
  position:absolute;
  left:3%;right:-2%;bottom:-7px;height:9px;
  border-top:3px solid currentColor;
  border-radius:50%;
  transform:rotate(-2deg);
  opacity:.64;
}
.home2-video-hero .home2-copy{
  font-size:clamp(16px,1.5vw,20px) !important;
  line-height:1.58 !important;
  color:rgba(48,36,44,.72) !important;
  max-width:610px !important;
  margin:0 0 28px !important;
  font-weight:520;
}
.home2-video-actions{gap:12px;}
.home2-video-actions .btn{
  min-width:178px;
  border-radius:999px;
  padding:13px 20px;
  box-shadow:0 9px 24px rgba(52,33,43,.12);
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease;
}
.home2-video-actions .btn:hover{transform:translateY(-2px);box-shadow:0 13px 30px rgba(52,33,43,.17);}
.home2-video-actions .btn-primary{background:var(--ink);}
.home2-video-actions .home2-outline{
  background:rgba(255,255,255,.55)!important;
  border-color:rgba(66,39,54,.13)!important;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.home2-video-experience-line{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin-top:32px;
  max-width:650px;
  color:rgba(49,36,44,.59);
  font-size:11.5px;
  font-weight:800;
}
.home2-video-experience-line strong{color:rgba(36,23,38,.86);font-weight:850;}
.home2-video-experience-line span{width:4px;height:4px;border-radius:50%;background:#b1687f;opacity:.48;}
.home2-video-note{
  position:absolute;
  right:0;
  bottom:78px;
  z-index:5;
  width:min(285px,27vw);
  padding:18px 19px 17px;
  background:rgba(255,250,247,.78);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  border:1px solid rgba(55,35,43,.09);
  border-radius:21px;
  box-shadow:0 22px 60px rgba(48,31,39,.14);
  transform:rotate(1.3deg);
}
.home2-video-note:before{
  content:"";
  position:absolute;
  top:-9px;left:50%;width:78px;height:24px;
  transform:translateX(-50%) rotate(-2deg);
  background:rgba(255,226,151,.72);
  clip-path:polygon(2% 7%,98% 0,95% 97%,4% 100%);
  mix-blend-mode:multiply;
}
.home2-video-note small{display:block;text-transform:uppercase;letter-spacing:.1em;font-weight:950;font-size:10px;color:rgba(36,23,38,.46);margin-bottom:6px;}
.home2-video-note strong{font-family:'Fredoka',sans-serif;font-size:20px;line-height:1.14;font-weight:600;color:var(--ink);}
.home2-video-scroll{
  position:absolute;
  left:50%;bottom:24px;
  transform:translateX(-50%);
  display:flex;align-items:center;gap:8px;
  color:rgba(42,31,38,.42);
  font-size:10px;font-weight:900;letter-spacing:.16em;text-transform:uppercase;
}
.home2-video-scroll:after{content:"↓";font-size:15px;animation:tbHomeBob 1.8s ease-in-out infinite;}
@keyframes tbHomeBob{50%{transform:translateY(4px)}}

/* Let the public brand live over the film instead of creating a separate header strip. */
body.tb-public-home #brandHeader{
  position:absolute;
  top:calc(16px + env(safe-area-inset-top));
  left:50%;
  transform:translateX(-50%);
  width:min(1100px,calc(100vw - 40px));
  z-index:52;
  padding:8px 0 10px;
  background:transparent;
  text-align:center;
}
body.tb-public-home #brandHeader .brand{color:var(--pink-dark);text-shadow:0 1px 12px rgba(255,255,255,.6);}
body.tb-public-home #brandHeader .sub{color:rgba(63,45,56,.64);}
body.tb-public-home .hamburger-btn,
body.tb-public-home .bell-btn,
body.tb-public-home .profile-icon-btn,
body.tb-public-home .floating-auth button.btn-outline{
  background:rgba(255,255,255,.72);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}

/* ===== SEAMLESS HOMEPAGE BACKGROUND TRANSITIONS ===== */
/* One shared canvas beneath the post-hero homepage sections. The cool mint/
   blue tone is now a centered wash, not a full-width color block, so it
   feathers softly into the warm page background at both side edges. */
.home2{
  background:
    linear-gradient(90deg,
      rgba(255,248,251,.96) 0%,
      rgba(255,248,251,.62) 8%,
      rgba(255,248,251,.16) 18%,
      rgba(255,248,251,0) 30%,
      rgba(255,248,251,0) 70%,
      rgba(255,248,251,.16) 82%,
      rgba(255,248,251,.62) 92%,
      rgba(255,248,251,.96) 100%),
    radial-gradient(ellipse 88% 42% at 50% 80%,
      rgba(223,242,241,.90) 0%,
      rgba(232,238,250,.64) 36%,
      rgba(246,243,251,.30) 58%,
      rgba(255,248,251,0) 78%),
    linear-gradient(180deg,
      #fff8fb 0%,
      #fff7fb 28%,
      #fbf6fd 58%,
      #faf8fc 82%,
      #fff8fb 100%);
}
.home2-cta-band,
.home2-package-band,
.home2-experience-band{
  background:transparent !important;
  margin-top:-1px;
  margin-bottom:-1px;
}

/* Dissolve the moving image into that shared page canvas instead of
   cutting the video off on a horizontal edge. */
.home2-video-band:after{
  content:"";
  position:absolute;
  z-index:2;
  pointer-events:none;
  left:0;
  right:0;
  bottom:-1px;
  height:clamp(150px,22vh,240px);
  background:linear-gradient(180deg,
    rgba(255,248,251,0) 0%,
    rgba(255,248,251,.10) 18%,
    rgba(255,248,251,.32) 42%,
    rgba(255,248,251,.68) 70%,
    rgba(255,248,251,.94) 90%,
    #fff8fb 100%);
}

/* Keep the first CTA visually connected to the hero instead of making a
   new color block. */
.home2-cta-band{
  padding-top:8px;
  padding-bottom:4px;
}
.home2-cta-band .home2-section{
  padding-top:56px;
  padding-bottom:54px;
}

/* Pricing simply continues the same background underneath. */
.home2-package-band{
  padding-top:0;
  padding-bottom:34px;
}
.home2-package-band .home2-section{
  padding-top:62px;
}
.home2-package-band::before{
  content:"";
  position:absolute;
  z-index:0;
  pointer-events:none;
  left:4vw;
  right:4vw;
  bottom:-34px;
  height:210px;
  background:radial-gradient(ellipse at center,
    rgba(221,242,240,.48) 0%,
    rgba(230,238,249,.32) 40%,
    rgba(255,248,251,0) 74%);
  filter:blur(18px);
}
.home2-package-band > .full-bleed-inner{
  position:relative;
  z-index:1;
}

/* The old transition veil is no longer needed because the parent canvas
   now supplies the transition continuously. */
.home2-experience-band:before{display:none !important;}

/* The first content section now rises naturally out of the moving hero. */
.home2-experience-band{
  position:relative;
  background:linear-gradient(180deg,#fffaf8 0%,#fbf3fa 42%,#fff8f4 100%);
  padding-top:16px;
}
.home2-experience-band:before{
  content:"";
  position:absolute;
  left:0;right:0;top:-34px;height:36px;
  background:linear-gradient(180deg,rgba(255,250,248,0),#fffaf8 95%);
  pointer-events:none;
}
.home2-experience-band .home2-section-head{max-width:820px;}
.home2-experience-band .home2-section-head h2{font-size:clamp(34px,4.5vw,50px);}

@media(max-width:900px){
  .home2-ambient-film:before{
    background:
      linear-gradient(90deg,rgba(255,248,245,.95) 0%,rgba(255,248,245,.83) 52%,rgba(255,248,245,.40) 100%),
      linear-gradient(180deg,rgba(255,248,245,.08),rgba(255,248,245,.20));
  }
  .home2-video-copy{width:min(720px,86vw);}
  .home2-video-note{width:230px;right:4px;bottom:58px;opacity:.94;}
}
@media(max-width:760px){
  .band-tint{min-height:118px;padding:44px 16px 48px;}
  .home2-video-band:after{height:190px;}
  .home2-cta-band .home2-section{padding-top:42px;padding-bottom:42px;}
  .home2-package-band .home2-section{padding-top:48px;}
  .home2-video-band{padding-inline:16px!important;}
  .home2-video-hero{
    min-height:100svh;
    align-items:flex-end;
    padding:124px 0 112px !important;
  }
  .home2-video-copy{width:100%;}
  .home2-video-hero h1{font-size:clamp(52px,15vw,76px);letter-spacing:-3px;margin-top:20px;}
  .home2-video-hero .home2-copy{font-size:16px!important;max-width:94%!important;color:rgba(45,34,41,.78)!important;}
  .home2-video-note{display:none;}
  .home2-video-experience-line{max-width:94%;line-height:1.65;margin-top:25px;}
  .home2-ambient-film video{inset:-7%;width:114%;height:114%;object-position:62% center;}
  .home2-ambient-film:before{
    background:linear-gradient(180deg,rgba(255,248,245,.43) 0%,rgba(255,248,245,.22) 24%,rgba(255,248,245,.72) 56%,rgba(255,248,245,.97) 100%);
  }
  body.tb-public-home #brandHeader{width:calc(100vw - 118px);top:18px;}
  body.tb-public-home #brandHeader .sub{display:none;}
  .home2-video-scroll{bottom:18px;}
}
@media(max-width:480px){
  .home2-video-actions{display:flex;flex-direction:column;align-items:stretch;}
  .home2-video-actions .btn{width:100%;}
  .home2-video-experience-line{gap:7px;font-size:10.5px;}
  .home2-video-experience-line span{width:3px;height:3px;}
}
@media(prefers-reduced-motion:reduce){
  .home2-ambient-film video{transform:none;transition:none;}
  .home2-video-scroll:after{animation:none;}
}



/* ===== RESPONSIVE BUILDER ALIGNMENT + COLLISION-SAFE ESTIMATE ===== */
#builder{
  --tb-builder-width:760px;
}
#builder > .section-heading,
#builder > .hint,
#builder > .builder-grid{
  width:min(100%,var(--tb-builder-width)) !important;
  max-width:var(--tb-builder-width) !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
#builder > .section-heading,
#builder > .hint{
  text-align:center !important;
  transform:none !important;
}
#builder > .section-heading{
  display:block !important;
  margin-top:26px !important;
  margin-bottom:12px !important;
}
#builder > .hint{
  margin-top:-6px !important;
  margin-bottom:18px !important;
}
#builder .builder-grid{
  display:block !important;
}
#builder .builder-steps{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
}

/* The estimate has two modes controlled by JS:
   1) gutter = fixed only when there is truly enough empty space to the right
   2) inline = participates in layout on narrower desktop/tablet/mobile */
.tb-estimate-float{
  box-sizing:border-box;
  z-index:95;
  opacity:0;
  pointer-events:none;
  transition:opacity .22s ease, transform .22s ease;
}
.tb-estimate-float.is-visible{
  opacity:1;
  pointer-events:auto;
}
.tb-estimate-float.is-gutter{
  position:fixed !important;
  width:230px !important;
  top:var(--tb-estimate-top,128px) !important;
  bottom:auto !important;
  right:auto !important;
  transform:none !important;
  transition:opacity .22s ease, left .22s ease, top .28s cubic-bezier(.2,.75,.25,1) !important;
}
.tb-estimate-float.is-inline{
  position:relative !important;
  inset:auto !important;
  width:100% !important;
  max-width:var(--tb-builder-width) !important;
  margin:0 auto 18px !important;
  transform:none !important;
  z-index:5;
}
.tb-estimate-float.is-inline:not(.is-visible){
  display:none;
}
.tb-estimate-float.is-inline.tb-estimate-stage-anchor{
  margin-top:0 !important;
}
.tb-estimate-summary{
  width:100% !important;
  margin:0 !important;
  padding:17px 16px 15px !important;
  background:rgba(255,255,255,.96) !important;
  border:1.5px solid #efc9d8 !important;
  border-radius:18px !important;
  box-shadow:0 14px 32px rgba(58,38,49,.11) !important;
}
.tb-estimate-summary h3{
  margin:0 0 11px !important;
  font-family:'Fredoka',sans-serif !important;
  font-size:17px !important;
  line-height:1.2 !important;
  font-weight:700 !important;
  color:var(--pink-dark) !important;
  text-align:left !important;
}
.tb-estimate-summary .tb-balloon-line,
.tb-estimate-summary .tb-balloon-totalrow{
  font-family:inherit !important;
}
.tb-estimate-summary .tb-balloon-totalrow{
  color:var(--ink) !important;
}
.tb-estimate-summary .tb-balloon-note{
  text-align:left !important;
}

/* Inline mode becomes a compact summary rather than a tall floating card. */
.tb-estimate-float.is-inline .tb-estimate-summary{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  column-gap:20px;
  align-items:start;
  padding:15px 17px !important;
}
.tb-estimate-float.is-inline .tb-estimate-summary h3{
  grid-column:1 / -1;
  margin-bottom:8px !important;
}
.tb-estimate-float.is-inline .tb-balloon-items{
  min-width:0;
}
.tb-estimate-float.is-inline .tb-balloon-divider{
  display:none;
}
.tb-estimate-float.is-inline .tb-balloon-totalrow{
  align-self:start;
  min-width:170px;
  margin:0 !important;
  padding:5px 0 !important;
  border-left:1px solid var(--line);
  padding-left:18px !important;
  flex-direction:column;
  gap:3px;
  text-align:right;
}
.tb-estimate-float.is-inline .tb-balloon-totalrow span:last-child{
  color:var(--pink-dark);
  font-size:20px;
  font-weight:800;
}
.tb-estimate-float.is-inline .tb-balloon-note{
  grid-column:1 / -1;
  margin-top:8px;
}

@media(max-width:620px){
  #builder{ --tb-builder-width:100%; }
  #builder > .section-heading,
  #builder > .hint,
  #builder > .builder-grid{
    width:100% !important;
  }
  .tb-estimate-float.is-inline{
    margin-bottom:14px !important;
  }
  .tb-estimate-float.is-inline .tb-estimate-summary{
    display:block;
    padding:14px 14px 13px !important;
  }
  .tb-estimate-float.is-inline .tb-balloon-totalrow{
    min-width:0;
    border-left:none;
    border-top:1px solid var(--line);
    margin-top:8px !important;
    padding:10px 0 0 !important;
    flex-direction:row;
    text-align:left;
  }
  .tb-estimate-float.is-inline .tb-balloon-note{
    margin-top:7px;
  }
}


/* ==========================================================================
   Estimate: small screens
   When the estimate can't sit in the side gutter (narrow windows, tablets, phones) the floating box is
   hidden entirely and every line item is listed in the final box next to the total instead.
   ========================================================================== */
.tb-estimate-float.is-inline{ display:none !important; }

.tb-final-breakdown{ display:none; margin:0 0 12px; padding-bottom:10px; border-bottom:1px dashed rgba(163,143,126,.35); }
body.tb-estimate-inline .tb-final-breakdown{ display:block; }
.tb-final-line{
  display:flex; justify-content:space-between; align-items:baseline; gap:14px;
  padding:5px 0; font-size:14px; color:var(--ink);
}
.tb-final-line span{ flex:1 1 auto; min-width:0; }
.tb-final-line strong{ flex:0 0 auto; font-weight:800; text-align:right; }
.tb-final-line.is-muted span, .tb-final-line.is-muted strong{ color:var(--ink-soft); font-weight:700; }
.tb-final-line.is-quote strong{ color:var(--purple); font-size:13px; }

/* Custom request */
.tb-custom-request{ margin:2px 0 6px; padding:12px 12px 10px; background:rgba(255,255,255,.7); border:1.5px dashed #d9bccb; border-radius:14px; }
.tb-custom-request label{ display:block; font-size:13px; font-weight:800; color:var(--ink); margin-bottom:6px; }
.tb-custom-request textarea{
  width:100%; box-sizing:border-box; min-height:110px; resize:vertical;
  padding:10px 11px; border:1.5px solid var(--line); border-radius:10px;
  font-size:15px; font-family:inherit; color:var(--ink); background:#fff;
}
.tb-custom-request textarea:focus{ outline:2px solid var(--purple); outline-offset:1px; border-color:var(--purple); }
.tb-custom-request.tb-invalid textarea{ border-color:#cf2a6b; }

/* Staff: custom request flag + panel */
.tb-custom-flag{
  display:inline-block; margin-left:6px; padding:2px 8px; border-radius:999px;
  font-size:10.5px; font-weight:800; letter-spacing:.3px; text-transform:uppercase;
  background:#FFF0C9; color:#8a5a00; vertical-align:middle;
}
.tb-custom-flag.is-done{ background:#DDF3E8; color:#17724a; }
.tb-custom-flag.is-no{ background:#EEE; color:#666; }
.tb-custom-panel{ margin-top:16px; padding:14px; background:#FFF9E8; border:1.5px solid #F0DFA6; border-radius:14px; }
.tb-custom-panel h2{ margin:0 0 4px; font-size:17px; }
.tb-custom-quote{ white-space:pre-wrap; background:#fff; border:1px solid var(--line); border-radius:10px; padding:10px 12px; font-size:14px; margin:8px 0 12px; }
.tb-custom-steps{ display:flex; flex-wrap:wrap; gap:6px; margin:6px 0 12px; }
.tb-custom-step{ font-size:12px; font-weight:800; padding:4px 10px; border-radius:999px; background:#fff; border:1.5px solid var(--line); color:var(--ink-soft); }
.tb-custom-step.is-current{ background:var(--pink); border-color:var(--pink); color:#fff; }
.tb-custom-step.is-past{ background:#DDF3E8; border-color:#bfe5d0; color:#17724a; }

/* Build-your-event sections line up with the booking form above them (same 680px column). */
@media(min-width:621px){
  #builder{ --tb-builder-width:680px; }
}

.ev-date-flag{ margin-top:8px; font-size:13px; color:var(--ink-soft); }
.ev-date-flag.is-yes{ color:#17724a; font-weight:800; }
.ev-cancel-box{ margin-top:12px; padding:14px; border:1.5px solid #f2c9d4; background:#FFF5F7; border-radius:14px; }
.ev-cancel-box h3{ margin:0 0 6px; font-size:16px; }
.ev-cancel-box p{ margin:0 0 10px; font-size:14px; color:var(--ink-soft); }
.ev-cancel-box textarea{ width:100%; box-sizing:border-box; margin:4px 0 8px; }

.tb-date-confirm{ margin:0 0 14px; padding:10px 12px; background:#F4FBF7; border:1.5px solid #cfe9db; border-radius:12px; }
.tb-date-confirm .favor-toggle{ margin-bottom:2px; }
.tb-date-confirm .hint{ margin:2px 0 0 0; }
details.tb-custom-panel > summary{ list-style:none; cursor:pointer; display:flex; align-items:baseline; justify-content:space-between; gap:10px; }
details.tb-custom-panel > summary::-webkit-details-marker{ display:none; }
details.tb-custom-panel:not([open]){ background:#FAF7F0; border-color:var(--line); padding:10px 14px; }
details.tb-custom-panel:not([open]) > summary h2{ font-size:14px; color:var(--ink-soft); }
details.tb-custom-panel > summary h2{ margin:0; }
.tb-custom-sum{ font-size:12px; font-weight:800; color:var(--ink-soft); }

.verify-banner{ margin:0 0 18px; padding:14px 16px; background:#FFF9E8; border:1.5px solid #F0DFA6; border-radius:14px; }
.verify-banner h3{ margin:0 0 6px; font-size:16px; }
.verify-banner p{ margin:0 0 10px; font-size:14px; color:var(--ink-soft); }

/* ===== Staff app & alerts (js/staffapp.js) ===== */
.tb-app-card{display:flex;flex-direction:column;gap:12px;}
.tb-app-row{font-size:15px;line-height:1.45;}
.tb-app-row.ok{color:var(--teal);font-weight:700;}
.tb-app-row.err{color:var(--danger);}
.tb-app-hint{font-size:13px;color:var(--ink-soft);margin-top:6px;line-height:1.45;}
.tb-app-steps{margin:8px 0 6px;padding-left:20px;font-size:14px;line-height:1.6;}
.tb-app-divider{height:1px;background:var(--line);margin:2px 0;}
.tb-app-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px;}
.tb-app-actions .btn{flex:1 1 180px;}
.tb-toggle{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);cursor:pointer;}
.tb-toggle:last-of-type{border-bottom:0;}
.tb-toggle input{position:absolute;opacity:0;width:0;height:0;}
.tb-switch{flex:0 0 auto;width:46px;height:28px;border-radius:999px;background:#d9cfdc;position:relative;transition:background .18s;}
.tb-switch::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .18s;}
.tb-toggle input:checked + .tb-switch{background:var(--teal);}
.tb-toggle input:checked + .tb-switch::after{transform:translateX(18px);}
.tb-toggle input:focus-visible + .tb-switch{outline:2px solid var(--purple);outline-offset:2px;}
.tb-toggle-text{display:flex;flex-direction:column;gap:2px;font-size:15px;}
.tb-toggle-text small{color:var(--ink-soft);font-size:12.5px;line-height:1.35;}
/* Installed app: respect the phone's notch / home bar. */
@media (display-mode: standalone){
  body{padding-bottom:env(safe-area-inset-bottom);-webkit-tap-highlight-color:transparent;}
}

/* ===== Notification bell ===== */
.bell-btn{position:fixed;top:calc(16px + env(safe-area-inset-top));right:16px;z-index:60;width:44px;height:44px;border-radius:999px;border:1.5px solid var(--line);background:#fff;color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.08);transition:transform .15s ease,box-shadow .15s ease;}
.bell-btn:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(0,0,0,.12);}
.bell-count{position:absolute;top:-5px;right:-5px;min-width:20px;height:20px;padding:0 5px;box-sizing:border-box;border-radius:999px;background:#e5252a;color:#fff;font:700 12px/1 inherit;font-family:inherit;display:flex;align-items:center;justify-content:center;border:2px solid #fff;}
.bell-panel{position:fixed;top:calc(66px + env(safe-area-inset-top));right:16px;z-index:61;width:min(380px,calc(100vw - 32px));max-height:min(70vh,560px);background:#fff;border:1.5px solid var(--line);border-radius:14px;box-shadow:0 10px 30px rgba(0,0,0,.14);flex-direction:column;overflow:hidden;}
.bell-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line);flex-wrap:wrap;}
.bell-head strong{font-size:15px;}
.bell-tools{display:flex;gap:6px;}
.bell-tools button{background:none;border:0;font:inherit;font-size:12.5px;font-weight:700;color:var(--ink-soft);cursor:pointer;padding:4px 8px;border-radius:8px;}
.bell-tools button:hover:not(:disabled){background:var(--cream);color:var(--ink);}
.bell-tools button:disabled{opacity:.4;cursor:default;}
.bell-list{overflow-y:auto;-webkit-overflow-scrolling:touch;flex:1 1 auto;}
.bell-empty{padding:28px 18px;text-align:center;color:var(--ink-soft);font-size:14px;}
.bell-item{display:flex;gap:10px;align-items:flex-start;padding:12px 12px 12px 14px;border-bottom:1px solid var(--line);cursor:pointer;position:relative;}
.bell-item:last-child{border-bottom:0;}
.bell-item:hover{background:var(--cream);}
.bell-item.unread{background:#fff6fa;}
.bell-item.unread::before{content:"";position:absolute;left:5px;top:22px;width:7px;height:7px;border-radius:50%;background:#e8177d;}
.bell-ico{font-size:20px;line-height:1.2;flex:0 0 auto;}
.bell-txt{flex:1 1 auto;min-width:0;}
.bell-title{font-weight:700;font-size:14px;line-height:1.3;}
.bell-body{color:var(--ink-soft);font-size:13px;line-height:1.35;margin-top:2px;overflow-wrap:anywhere;}
.bell-time{color:var(--ink-soft);font-size:12px;margin-top:4px;opacity:.8;}
.bell-x{flex:0 0 auto;background:none;border:0;color:var(--ink-soft);font-size:20px;line-height:1;cursor:pointer;padding:2px 6px;border-radius:8px;}
.bell-x:hover{background:#fdecec;color:#c0392b;}

/* ===== Staff calendar ===== */
body[data-page="calendar"] #app{max-width:1100px;}
.cal-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px;}
.cal-nav{display:flex;align-items:center;gap:8px;}
.cal-nav .btn,.cal-actions .btn{width:auto;}
.cal-nav .btn{padding:6px 14px;font-size:20px;line-height:1;}
.cal-title{font-family:"Fredoka",inherit;font-size:20px;font-weight:700;min-width:150px;text-align:center;}
.cal-actions{display:flex;gap:8px;}
.cal-summary{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px;}
.cal-sum{font-size:13px;padding:5px 10px;border-radius:999px;background:#fff;border:1px solid var(--line);}
.cal-sum.k-pending-deposit{background:#FFE9F3;border-color:#F5B7D3;color:#B3125F;}
.cal-sum.k-confirmed{background:#DDF3E8;border-color:#BCE5D0;color:#17724a;}
.cal-sum.k-pending{background:#FFF4DC;border-color:#F2DDAA;color:#8a5d06;}
.cal-legend{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;font-size:12.5px;color:var(--ink-soft);margin-bottom:10px;}
.cal-key::before{content:"";display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px;background:currentColor;}
.cal-key.k-confirmed{color:#1FA793;} .cal-key.k-pending{color:#C98A1A;} .cal-key.k-pending-deposit{color:#E8177D;} .cal-key.k-done{color:#7d7a99;}
.cal-cancel-toggle{margin-left:auto;display:flex;align-items:center;gap:6px;cursor:pointer;}
.cal-grid-wrap{overflow-x:auto;}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden;min-width:300px;}
.cal-dow{background:#fbeef3;text-align:center;font-size:11.5px;font-weight:700;letter-spacing:.04em;color:var(--ink-soft);padding:7px 0;}
.cal-cell{background:#fff;min-height:66px;padding:4px 4px 6px;cursor:pointer;display:flex;flex-direction:column;gap:3px;position:relative;}
.cal-cell.out{background:#fcf8fa;}
.cal-cell.out .cal-num{opacity:.4;}
.cal-cell:hover{background:#fff6fa;}
.cal-cell.sel{outline:2px solid #E8177D;outline-offset:-2px;}
.cal-cell.today .cal-num{background:#E8177D;color:#fff;border-radius:999px;}
.cal-cell.clash{box-shadow:inset 0 0 0 2px #e5252a;}
.cal-num{font-size:12.5px;font-weight:700;width:22px;height:22px;display:flex;align-items:center;justify-content:center;gap:2px;position:relative;}
.cal-clash{position:absolute;left:24px;font-size:12px;color:#e5252a;}
.cal-chip{display:none;text-align:left;border:0;border-radius:6px;padding:3px 5px;font:inherit;font-size:11.5px;line-height:1.25;cursor:pointer;width:100%;}
.cal-chip-t{display:block;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cal-chip-s{display:block;font-size:10.5px;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cal-more{display:none;border:0;background:none;font:inherit;font-size:11px;font-weight:700;color:var(--ink-soft);cursor:pointer;text-align:left;padding:1px 4px;}
.cal-dots{display:flex;flex-wrap:wrap;gap:3px;padding:0 2px;}
.cal-dots i{width:8px;height:8px;border-radius:50%;display:block;}
.k-confirmed{--c:#1FA793;--bg:#DDF3E8;--fg:#17724a;}
.k-pending{--c:#C98A1A;--bg:#FFF4DC;--fg:#8a5d06;}
.k-pending-deposit{--c:#E8177D;--bg:#FFE0EE;--fg:#B3125F;}
.k-done{--c:#7d7a99;--bg:#ECEBF3;--fg:#55527a;}
.k-cancelled{--c:#b9b0b6;--bg:#F1ECEF;--fg:#8a7f86;}
.cal-dots i.k-confirmed,.cal-dots i.k-pending,.cal-dots i.k-pending-deposit,.cal-dots i.k-done,.cal-dots i.k-cancelled{background:var(--c);}
.cal-chip{background:var(--bg);color:var(--fg);border-left:3px solid var(--c);}
.cal-chip.k-cancelled .cal-chip-t{text-decoration:line-through;}
.cal-badge{display:inline-block;font-size:12px;font-weight:700;padding:4px 9px;border-radius:999px;background:var(--bg);color:var(--fg);white-space:nowrap;}
@media (min-width:700px){
  .cal-cell{min-height:112px;padding:5px;}
  .cal-chip{display:block;}
  .cal-more{display:block;}
  .cal-dots{display:none;}
}
.cal-list-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:22px 0 8px;}
.cal-list-head h3{margin:0;font-size:17px;}
.cal-list-head .btn{width:auto;}
.cal-row{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:11px 12px;margin-bottom:8px;font:inherit;cursor:pointer;}
.cal-row:hover{border-color:#F5B7D3;background:#fff9fc;}
.cal-row-date{flex:0 0 92px;display:flex;flex-direction:column;font-size:13px;}
.cal-row-date span{color:var(--ink-soft);font-size:12px;}
.cal-row-main{flex:1 1 auto;min-width:0;}
.cal-row-name{font-weight:700;font-size:15px;}
.cal-row-sub{color:var(--ink-soft);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
@media (max-width:520px){ .cal-row{flex-wrap:wrap;} .cal-row-date{flex:0 0 auto;flex-direction:row;gap:8px;align-items:baseline;} .cal-row-main{flex:1 0 100%;order:3;} .cal-row .cal-badge{margin-left:auto;} }
.cal-pop-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;flex-wrap:wrap;}
.cal-open{font-size:13px;font-weight:700;color:#B3125F;text-decoration:none;}
.cal-open:hover{text-decoration:underline;}
.cal-pop-date{display:flex;flex-direction:column;margin-bottom:10px;}
.cal-pop-date strong{font-size:17px;}
.cal-pop-date span{color:var(--ink-soft);font-size:14px;}
.cal-pop-action .btn{width:auto;}
.cal-pop-action .hint{margin-top:6px;}

/* Dashboard booking-details window shown inside the Calendar (frame): hide everything except the window. */
html:has(body.embed){background:transparent !important;}
body.embed{background:transparent !important;}
body.embed > *:not(#modalRoot){display:none !important;}

/* ============ Booking-details window: journey rail + next step + tabs ============ */
.modal-sheet.bd-sheet{ padding:0; max-width:1000px; width:100%; display:flex; flex-direction:column; overflow:hidden; max-height:92vh; }
body.is-desktop .modal-sheet.bd-sheet{ max-height:90vh; width:min(1000px,96vw); border-radius:22px; }
.bd-rail{ background:linear-gradient(180deg,#2A1830,#3B2150); color:#fff; padding:18px 18px 16px; flex:none; overflow-y:auto; }
.bd-who{ display:flex; align-items:center; gap:12px; }
.bd-avatar{ flex:none; width:46px; height:46px; border-radius:50%; background:linear-gradient(135deg,#E8177D,#8F63E8); display:flex; align-items:center; justify-content:center; font-weight:800; font-size:16px; }
.bd-who-txt{ flex:1; min-width:0; }
.bd-who h3{ margin:0; font-size:20px; font-weight:800; letter-spacing:-.3px; color:#fff; line-height:1.15; }
.bd-sub{ font-size:12.5px; color:#D9CCEB; margin-top:2px; }
.bd-close{ color:#fff !important; font-size:26px !important; width:44px; height:44px; flex:none; }
.bd-when{ background:rgba(255,255,255,.1); border-radius:14px; padding:13px 14px; margin-top:14px; }
.bd-k{ font-size:11px; font-weight:800; letter-spacing:.08em; color:#F9B6D4; }
.bd-when-date{ font-size:18px; font-weight:800; margin-top:2px; }
.bd-when-sub{ font-size:13px; color:#D9CCEB; margin-top:2px; }
.bd-rail .bd-dateconf{ background:rgba(255,255,255,.12); border:0; margin:12px 0 0; }
.bd-rail .bd-dateconf .favor-toggle span{ color:#fff; font-weight:700; }
.bd-rail .bd-dateconf .hint{ color:#D9CCEB; font-size:12px; }
.bd-tl{ margin-top:14px; }
.bd-tl > summary{ cursor:pointer; list-style:none; font-size:11px; font-weight:800; letter-spacing:.08em; color:#F9B6D4; min-height:32px; display:flex; align-items:center; }
.bd-tl > summary::-webkit-details-marker{ display:none; }
.bd-tl > summary::after{ content:"▾"; margin-left:6px; }
.bd-tl ol{ list-style:none; margin:6px 0 0; padding:0; }
.bd-tl li{ position:relative; display:flex; gap:12px; padding-bottom:14px; }
.bd-tl li::before{ content:""; position:absolute; left:10px; top:22px; bottom:0; width:2px; background:rgba(255,255,255,.2); }
.bd-tl li.is-done::before{ background:#E8177D; }
.bd-tl li:last-child::before{ display:none; }
.bd-dot{ flex:none; width:22px; height:22px; border-radius:50%; background:rgba(255,255,255,.2); color:#fff; font-size:12px; font-weight:800; display:flex; align-items:center; justify-content:center; }
.bd-tl li.is-done .bd-dot{ background:#E8177D; }
.bd-tl li.is-current .bd-dot{ background:#fff; border:2.5px solid #E8177D; box-shadow:0 0 0 4px rgba(232,23,125,.35); }
.bd-tl-l{ font-size:14px; font-weight:700; line-height:1.25; }
.bd-tl li:not(.is-done):not(.is-current) .bd-tl-l{ color:#D9CCEB; font-weight:600; }
.bd-tl li.is-current .bd-tl-l{ font-weight:800; }
.bd-tl-s{ font-size:12px; color:#D9CCEB; margin-top:1px; }
.bd-tl li.is-current .bd-tl-s{ color:#F9B6D4; }
.bd-contact{ display:flex; gap:8px; margin-top:6px; }
.bd-contact a{ flex:1; display:flex; align-items:center; justify-content:center; min-height:44px; border-radius:12px; background:rgba(255,255,255,.12); color:#fff; font-size:14px; font-weight:700; text-decoration:none; }
.bd-contact a:hover{ background:rgba(255,255,255,.22); }

.bd-main{ flex:1; min-width:0; overflow-y:auto; padding:16px 16px 22px; background:var(--cream); }
.bd-top{ display:flex; justify-content:flex-end; margin-bottom:12px; }
.bd-status{ display:flex; align-items:center; gap:10px; font-size:13px; font-weight:600; color:var(--ink-soft); }
.bd-status select{ margin:0 !important; width:auto; min-width:170px; }
.bd-next{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; background:#fff; border:1.5px solid var(--pink); border-radius:16px; padding:14px 16px; box-shadow:0 6px 20px rgba(232,23,125,.12); }
.bd-next .bd-k{ color:var(--pink-dark); }
.bd-next-txt{ flex:1 1 240px; min-width:0; }
.bd-next-t{ font-size:18px; font-weight:800; margin-top:2px; line-height:1.25; }
.bd-next-d{ font-size:13px; color:var(--ink-soft); margin-top:3px; }
.bd-next.is-wait{ border-color:#E7C98A; box-shadow:none; } .bd-next.is-wait .bd-k{ color:#7A4E00; }
.bd-next.is-done{ border-color:#9CD8CC; box-shadow:none; } .bd-next.is-done .bd-k{ color:#0B6B5C; }
.bd-next.is-muted{ border-color:var(--line); box-shadow:none; } .bd-next.is-muted .bd-k{ color:var(--ink-soft); }
.bd-money{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:12px; }
.bd-money div{ background:#fff; border:1px solid var(--line); border-radius:14px; padding:10px 12px; }
.bd-money span{ display:block; font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--ink-soft); }
.bd-money strong{ font-size:18px; font-weight:800; }
.bd-money strong.is-due{ color:var(--pink-dark); }
.bd-tabs{ display:flex; gap:20px; overflow-x:auto; border-bottom:1px solid var(--line); margin:16px 0 14px; }
.bd-tab{ flex:none; min-height:44px; padding:0 2px; background:none; border:0; border-bottom:3px solid transparent; font:inherit; font-size:14px; font-weight:700; color:var(--ink-soft); cursor:pointer; white-space:nowrap; }
.bd-tab.on{ color:var(--pink-dark); border-bottom-color:var(--pink); }
.bd-pane{ display:none; } .bd-pane.on{ display:block; }
.bd-pane .tb-custom-panel{ margin-top:0; }
.bd-pane .card{ margin-top:0 !important; }
.bd-h,.bd-edit-h{ font-size:12px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft); margin:16px 0 8px; }
.bd-h:first-child{ margin-top:0; }
.bd-edit-h{ margin-top:0; font-size:15px; text-transform:none; letter-spacing:0; color:var(--ink); }
.bd-note{ background:#fff; border:1px solid var(--line); border-radius:12px; padding:12px 14px; font-size:14px; line-height:1.5; white-space:pre-wrap; }
.bd-foot{ margin-top:22px; padding-top:14px; border-top:1px solid var(--line); }
.bd-pane .kv-grid{ gap:14px 18px; }

@media (min-width:860px){
  .modal-sheet.bd-sheet{ flex-direction:row; height:min(860px,90vh); }
  .bd-rail{ width:300px; padding:24px 22px; }
  .bd-main{ padding:22px 26px 26px; }
  .bd-status select{ min-width:200px; }
}
body.embed .modal-sheet.bd-sheet{ }

/* ===== Inventory redesign: stock list, scan sheet, event prep ===== */
body[data-page="inventory"] #app{max-width:1080px;}
body[data-page="inventory"] .inv-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:12px;}
.inv-stat{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 14px;}
.inv-stat span{display:block;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);}
.inv-stat b{display:block;font-size:22px;font-weight:800;margin-top:2px;}
.inv-stat.is-warn{background:#FFF9E8;border-color:#F0DFA6;}
.inv-stat.is-warn b{color:#7A4E00;}
.inv-low-banner{width:100%;align-items:center;gap:12px;background:#FFF9E8;border:1px solid #F0DFA6;border-radius:14px;padding:12px 14px;min-height:48px;margin-bottom:12px;font:inherit;text-align:left;cursor:pointer;color:#7A4E00;}
.inv-low-banner span{flex:1;display:block;}
.inv-low-banner strong{display:block;font-size:14px;font-weight:800;}
.inv-low-banner small{display:block;font-size:12px;}
.inv-low-banner em{font-style:normal;font-size:13px;font-weight:800;}
.inv-chips{display:flex;gap:8px;overflow-x:auto;padding:2px 0 10px;margin-bottom:2px;-webkit-overflow-scrolling:touch;}
.inv-chip{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 14px;border-radius:999px;border:1.5px solid var(--line);background:#fff;font:inherit;font-size:13px;font-weight:700;color:var(--ink);cursor:pointer;}
.inv-chip i{width:9px;height:9px;border-radius:50%;display:inline-block;}
.inv-chip b{font-weight:700;opacity:.6;}
.inv-chip.on{background:var(--ink);border-color:var(--ink);color:#fff;}
.inv-chip.is-warn:not(.on){background:#FFF9E8;border-color:#F0DFA6;color:#7A4E00;}
.inv-tools{display:flex;gap:10px;margin-bottom:8px;}
.inv-search{flex:1;min-width:0;min-height:46px;padding:0 14px;border:1.5px solid var(--line);border-radius:14px;background:#fff;font:inherit;font-size:15px;}
.inv-sort{min-height:46px;border:1.5px solid var(--line);border-radius:14px;background:#fff;font:inherit;font-size:13px;font-weight:700;padding:0 10px;}
.inv-tools2{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.inv-tools2 .hint{margin:0;}

.inv-row{flex-wrap:nowrap;}
.inv-row .left{flex:1;min-width:0;}
.inv-row .left .name{display:flex;align-items:center;flex-wrap:wrap;gap:6px;}
.inv-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;}
.inv-badge{font-size:11px;font-weight:800;padding:2px 8px;border-radius:99px;background:#FFE9C7;color:#7A4E00;}
.inv-badge.out{background:#FFE3E3;color:#9B1C1C;}
.inv-row.is-low{border-color:#F0DFA6;}
.inv-row.is-out{border-color:#F3C4C4;}
.inv-stock{width:170px;flex:none;}
.inv-qty{font-size:14px;font-weight:800;}
.inv-qty small{font-weight:500;color:var(--ink-soft);font-size:12px;}
.inv-qty.low{color:#7A4E00;}
.inv-qty.out{color:#9B1C1C;}
.inv-bar{height:6px;border-radius:99px;background:#F4E6EC;overflow:hidden;margin-top:6px;}
.inv-bar span{display:block;height:100%;border-radius:99px;}
.inv-bar span.low{background:#E0A21E;}
.inv-bar span.out{background:#D14343;}
.inv-adj{display:flex;gap:6px;flex:none;}
.inv-qb{width:44px;height:44px;border-radius:12px;border:1.5px solid #E5CFDA;background:#fff;font:inherit;font-size:20px;font-weight:700;color:var(--ink);padding:0;cursor:pointer;}
.inv-qb:active{background:#FFF0F6;}
.inv-row .right{min-width:74px;}
@media (max-width:700px){
  .inv-row{flex-wrap:wrap;}
  .inv-row .left{flex:1 1 40%;}
  .inv-stock{order:5;width:calc(100% - 60px);margin-left:60px;}
  .inv-adj{order:4;}
  .inv-row .right{display:none;}
}
@media (min-width:760px){
  body[data-page="inventory"] .inv-stats{grid-template-columns:repeat(4,1fr);}
}
.scan-fab{position:fixed;right:16px;bottom:24px;height:56px;padding:0 22px;border-radius:999px;border:0;background:linear-gradient(135deg,#E8177D,#6E44C7);color:#fff;font:inherit;font-size:15px;font-weight:800;display:flex;align-items:center;gap:10px;box-shadow:0 10px 24px rgba(232,23,125,.35);cursor:pointer;z-index:30;}
#tab-list:not(.active) .scan-fab{display:none;}
.scan-head{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap;}
.scan-sheet{margin-top:14px;display:flex;flex-direction:column;gap:14px;}
.scan-found{align-self:flex-start;background:#E3F5F1;color:#0B6B5C;font-size:12px;font-weight:800;padding:5px 11px;border-radius:999px;}
.scan-id{display:flex;gap:14px;align-items:center;}
.scan-photo{width:72px;height:72px;border-radius:16px;object-fit:cover;flex:none;}
.scan-photo-empty{background:linear-gradient(135deg,#F6C8DC,#E99BBD);}
.scan-name{font-size:19px;font-weight:800;line-height:1.2;}
.scan-meta{font-size:13px;color:var(--ink-soft);margin-top:3px;}
.scan-qty{background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px;}
.scan-qty-top{display:flex;justify-content:space-between;gap:8px;font-size:13px;color:var(--ink-soft);}
.scan-qty-top span:first-child{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;}
.scan-stepper{display:flex;align-items:center;justify-content:space-between;margin-top:10px;}
.scan-step{width:56px;height:56px;border-radius:16px;border:1.5px solid #E5CFDA;background:#fff;font:inherit;font-size:26px;font-weight:700;color:var(--ink);padding:0;cursor:pointer;}
.scan-num{text-align:center;}
.scan-num input{width:120px;border:0;background:transparent;text-align:center;font:inherit;font-size:40px;font-weight:800;line-height:1;padding:0;}
.scan-num span{display:block;font-size:13px;color:var(--ink-soft);}
.scan-low{margin-top:10px;font-size:13px;font-weight:700;text-align:center;}
.scan-low.low{color:#7A4E00;}.scan-low.out{color:#9B1C1C;}.scan-low.ok{color:var(--ink-soft);font-weight:500;}
.scan-save{min-height:54px;font-size:16px;font-weight:800;}
.scan-actions{display:flex;gap:10px;}
.scan-actions .btn{flex:1;min-height:48px;}

/* Event prep */
.prep-wrap{display:flex;flex-direction:column;gap:16px;}
.prep-lbl{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:6px;}
.prep-events{display:flex;flex-direction:column;gap:6px;}
.prep-ev{display:flex;gap:12px;align-items:center;padding:10px 12px;border-radius:14px;border:1.5px solid transparent;background:transparent;font:inherit;text-align:left;cursor:pointer;width:100%;}
.prep-ev.on{background:#fff;border-color:var(--pink);}
.prep-date{width:52px;height:52px;flex:none;border-radius:14px;background:#FFF0F6;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.prep-date b{font-size:11px;font-weight:800;color:var(--pink-dark);letter-spacing:.08em;}
.prep-date i{font-style:normal;font-size:22px;font-weight:800;line-height:1;}
.prep-ev-txt{flex:1;min-width:0;display:block;}
.prep-ev-n{display:block;font-size:14px;font-weight:700;}
.prep-ev-s{display:block;font-size:12px;color:var(--ink-soft);}
.prep-st{display:inline-flex;font-size:12px;font-weight:800;padding:4px 10px;border-radius:99px;white-space:nowrap;}
.prep-st.ok{background:#E3F5F1;color:#0B6B5C;}
.prep-st.sh{background:#FFE3E3;color:#9B1C1C;}
.prep-st.tt{background:#FFF0D1;color:#7A4E00;}
.prep-st.muted{background:#F4EEF1;color:var(--ink-soft);}
.prep-main{display:flex;flex-direction:column;gap:14px;min-width:0;}
.prep-head{display:flex;align-items:center;gap:18px;padding:16px 18px;}
.prep-head>div:first-child{flex:1;min-width:0;}
.prep-title{font-size:20px;font-weight:800;}
.prep-sub{font-size:13px;color:var(--ink-soft);margin-top:3px;}
.prep-count{text-align:right;}
.prep-count span{display:block;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);}
.prep-count b{font-size:20px;font-weight:800;}
.prep-warn{background:#FFF1F1;border:1px solid #F3C4C4;border-radius:14px;padding:12px 16px;display:flex;align-items:center;gap:14px;color:#9B1C1C;flex-wrap:wrap;}
.prep-warn>div{flex:1;min-width:200px;}
.prep-warn b{display:block;font-size:14px;font-weight:800;}
.prep-warn span{font-size:13px;}
.prep-okbar{background:#E3F5F1;color:#0B6B5C;border-radius:14px;padding:12px 16px;font-size:14px;font-weight:700;}
.prep-link{border:0;background:none;color:inherit;font:inherit;font-weight:800;text-decoration:underline;cursor:pointer;padding:0;margin-left:6px;}
.prep-list{padding:6px 16px 10px;}
.prep-gh{display:flex;align-items:center;gap:10px;min-height:46px;font-size:15px;font-weight:800;}
.prep-gh i{width:10px;height:10px;border-radius:50%;display:inline-block;}
.prep-group+.prep-group{margin-top:6px;}
.prep-colh,.prep-row{display:grid;grid-template-columns:28px minmax(0,2.2fr) 56px 56px minmax(84px,auto);gap:10px;align-items:center;padding:0 4px;}
.prep-colh{min-height:28px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);}
.prep-colh span:nth-child(3),.prep-colh span:nth-child(4){text-align:right;}
.prep-row{min-height:56px;border-top:1px solid #F7E9EF;cursor:pointer;}
.prep-ck{width:22px;height:22px;accent-color:#1FA793;}
.prep-it b{display:block;font-size:14px;font-weight:700;}
.prep-it small{display:block;font-size:12px;color:var(--ink-soft);}
.prep-n{font-size:14px;font-weight:700;text-align:right;}
.prep-row .prep-st{justify-self:end;}
.prep-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;}
.prep-actions .btn{width:auto;}
@media (min-width:860px){
  .prep-wrap{flex-direction:row;align-items:flex-start;}
  .prep-events{width:290px;flex:none;}
  .prep-main{flex:1;}
}
#inventoryListContainer{padding-bottom:84px;}
@media (max-width:700px){ .inv-tools{flex-direction:column;} .inv-sort{min-height:44px;} .select-toolbar{flex-wrap:wrap;gap:8px;} }

/* ===== Inventory: match the mockups (title row, table, side panel) ===== */
body[data-page="inventory"]{font-family:'Plus Jakarta Sans',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;}
body[data-page="inventory"] #mainView > .card:first-of-type{display:none;}
body[data-page="inventory"] #app{max-width:1280px;}
.inv-title{display:flex;align-items:center;gap:10px;margin:4px 0 14px;}
.inv-title-txt{flex:1;min-width:0;}
.inv-title h1{margin:0;font-family:inherit;font-size:28px;font-weight:800;letter-spacing:-.5px;}
.inv-title p{margin:2px 0 0;font-size:14px;color:var(--ink-soft);}
.inv-title .btn{width:auto;min-height:44px;padding:0 18px;border-radius:12px;display:inline-flex;align-items:center;gap:8px;}
.sub-narrow,.t-plus{display:none;}
/* tabs become a small segmented control */
body[data-page="inventory"] nav.tabs{display:inline-flex;width:auto;margin-bottom:14px;}
body[data-page="inventory"] nav.tabs button{flex:none;padding:9px 18px;}
body[data-page="inventory"] #tab-add, body[data-page="inventory"] #tab-scan, body[data-page="inventory"] #tab-prep{max-width:760px;}
body[data-page="inventory"] #tab-prep{max-width:none;}
.inv-stat{padding:16px 18px;}
.inv-stat b{font-size:28px;}
.inv-stat small{display:block;font-size:12px;color:var(--ink-soft);margin-top:2px;}
.inv-stat.is-warn small{color:#7A4E00;}
.inv-chip{min-height:36px;}
.inv-tools{align-items:center;}
.inv-tools .inv-sort{min-height:44px;border-radius:12px;}
.inv-search{min-height:44px;border-radius:12px;}
.inv-tools2{display:none;}
.inv-layout{display:flex;gap:18px;align-items:flex-start;}
.inv-table{flex:1;min-width:0;}
.inv-panel{display:none;}
.inv-th{display:none;}
.inv-row .inv-cat{display:none;}
.inv-row .cpu-col,.inv-row .val-col{display:none;}
.inv-oh{display:flex;align-items:center;gap:8px;}
.inv-oh .inv-qty{flex:1;}
.inv-row .m-narrow{display:inline;}
@media (max-width:759px){
  .inv-title h1{font-size:26px;}
  .inv-title p{font-size:13px;}
  .sub-wide,#titleExportBtn,.t-lbl,#titleScanBtn{display:none;}
  .sub-narrow,.t-plus{display:inline;}
  #titleAddBtn{width:44px;padding:0;justify-content:center;border-radius:50%;font-size:22px;}
  body[data-page="inventory"] .inv-stats{display:none;}
  body[data-page="inventory"] nav.tabs{display:flex;}
  body[data-page="inventory"] nav.tabs button{flex:1;}
  #titleScanBtn{display:none;}
}
@media (min-width:760px){
  .scan-fab{display:none;}
  #inventoryListContainer{padding-bottom:0;}
  .select-toolbar{margin-bottom:8px;}
  .inv-table{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;}
  .inv-th,.inv-row{display:grid;grid-template-columns:24px 48px minmax(0,2.4fr) minmax(0,1fr) minmax(0,1.7fr) 84px 84px;gap:14px;align-items:center;padding:0 16px;}
  .inv-th{min-height:44px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);}
  .inv-th .r{text-align:right;}
  .inv-row{min-height:68px;border:0;border-top:1px solid #F7E9EF;border-radius:0;margin:0;padding:8px 16px;background:#fff;}
  .inv-row.sel{background:#FFF3F8;}
  .inv-row:hover{background:#FFF8FB;}
  .inv-row.is-low,.inv-row.is-out{border-color:#F7E9EF;}
  .inv-row .row-thumb{width:48px;height:48px;border-radius:12px;}
  .inv-row .m-narrow{display:none;}
  .inv-row .inv-cat{display:block;font-size:12px;color:var(--ink-soft);}
  .inv-row .cpu-col,.inv-row .val-col{display:block;}
  .inv-row .right{display:none;}
  .inv-stock{width:auto;}
  .inv-row .num{font-size:14px;font-weight:700;text-align:right;}
  .inv-oh .inv-qty{font-size:13px;}
  .inv-qb{width:32px;height:32px;border-radius:10px;font-size:16px;}
  .inv-oh .inv-qb{visibility:hidden;}
  .inv-row.sel .inv-oh .inv-qb,.inv-row:hover .inv-oh .inv-qb{visibility:visible;}
  .inv-oh .inv-qty{text-align:center;}
  .inv-bar{height:8px;}
}
@media (min-width:760px) and (max-width:999px){
  .inv-th,.inv-row{grid-template-columns:24px 44px minmax(0,2fr) minmax(0,1.5fr) 74px;}
  .inv-th span:nth-child(4),.inv-row .inv-cat,.inv-th .r:nth-child(6),.inv-row .cpu-col{display:none;}
}
@media (min-width:1000px){
  .inv-panel{display:flex;flex-direction:column;gap:14px;width:330px;flex:none;position:sticky;top:12px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;}
  .inv-panel-top{display:flex;justify-content:space-between;align-items:center;}
  .inv-panel-top .lbl{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);}
  .inv-panel-photo{width:100%;height:150px;object-fit:cover;border-radius:14px;display:block;}
  .inv-panel-photo-empty{background:linear-gradient(135deg,#F6C8DC,#E99BBD);}
  .inv-panel-name{font-size:18px;font-weight:800;line-height:1.25;}
  .inv-panel-meta{font-size:13px;color:var(--ink-soft);margin-top:3px;}
  .inv-tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
  .inv-tiles div{background:var(--cream,#FFF6F8);border-radius:12px;padding:10px 12px;}
  .inv-tiles span{display:block;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);}
  .inv-tiles b{display:block;font-size:18px;font-weight:800;margin-top:2px;}
  .inv-code{display:flex;justify-content:center;border:1.5px dashed #E5CFDA;border-radius:12px;padding:10px;overflow:hidden;}
  .inv-code img,.inv-code canvas{max-width:110px;max-height:110px;}
  .inv-code svg{max-width:100%;height:auto;}
  .inv-panel-btns{display:flex;gap:10px;}
  .inv-panel-btns .btn{flex:1;width:auto;}
  .inv-panel-empty{color:var(--ink-soft);font-size:14px;text-align:center;padding:30px 10px;}
}
.inv-oh .inv-qty{white-space:nowrap;}
@media (min-width:760px) and (max-width:1399px){ .inv-oh .inv-qty small{display:none;} }
@media (max-width:759px){
  .inv-tools{flex-wrap:wrap;flex-direction:row;gap:8px;}
  .inv-search{flex:1 1 100%;}
  .inv-tools .inv-sort{flex:1 1 40%;min-width:0;}
  .inv-row{display:grid;grid-template-columns:24px 52px minmax(0,1fr);column-gap:12px;row-gap:6px;align-items:center;padding:12px;}
  .inv-row .row-check{grid-row:1 / span 2;grid-column:1;}
  .inv-row .row-thumb{grid-row:1 / span 2;grid-column:2;width:52px;height:52px;border-radius:13px;}
  .inv-row .left{grid-column:3;grid-row:1;}
  .inv-row .inv-stock{grid-column:3;grid-row:2;width:auto;margin:0;order:0;}
  .inv-oh{gap:8px;}
  .inv-oh .inv-qty{order:-1;flex:1;text-align:left;font-size:13px;}
  .inv-oh .inv-qb{width:40px;height:40px;}
  .inv-bar{margin-top:6px;}
}

/* ===== Page split: Event prep is its own page; inventory opens on the list ===== */
body[data-page="eventprep"]{font-family:'Plus Jakarta Sans',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;}
body[data-page="eventprep"] #mainView > .card:first-of-type{display:none;}
body[data-page="eventprep"] #app{max-width:1280px;}
body[data-page="eventprep"] .inv-title .btn{text-decoration:none;}
.bd-prep-link{display:flex;align-items:center;justify-content:center;min-height:44px;margin-top:10px;border:1.5px solid #E5CFDA;border-radius:12px;font-weight:800;font-size:14px;color:var(--pink-dark);text-decoration:none;background:#fff;}
/* inventory: Add item / Scan views */
body[data-inv-tab="add"] .inv-title .btn,body[data-inv-tab="scan"] .inv-title .btn{display:none;}
body[data-inv-tab="add"] .inv-title,body[data-inv-tab="scan"] .inv-title{max-width:980px;margin-left:auto;margin-right:auto;}
body[data-page="inventory"] #tab-add,body[data-page="inventory"] #tab-scan{max-width:980px;margin:0 auto;}
body[data-page="inventory"] #tab-scan{max-width:560px;}
body[data-inv-tab="scan"] .inv-title{max-width:560px;}
.back-btn{width:auto;margin-bottom:14px;}
.add-grid{display:flex;flex-direction:column;gap:0;}
.add-col{display:flex;flex-direction:column;min-width:0;}
#addItemForm .card{margin-bottom:16px;}
#addItemForm .card h2{font-size:16px;font-weight:800;margin:0 0 12px;}
#addItemForm #saveItemBtn{min-height:54px;font-size:16px;font-weight:800;}
@media (min-width:900px){
  .add-grid{flex-direction:row;gap:18px;align-items:flex-start;}
  .add-col{flex:1;}
  body[data-page="inventory"] #tab-add .row2{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
}
@media (max-width:759px){ body[data-inv-tab="add"] .inv-title,body[data-inv-tab="scan"] .inv-title{display:block;} }
/* event prep: fixed columns so headers line up with the numbers */
.prep-colh,.prep-row{grid-template-columns:28px minmax(0,1fr) 72px 72px 124px;}
.prep-row .prep-st{justify-self:end;}
.prep-colh span:nth-child(3),.prep-colh span:nth-child(4){text-align:right;}
.prep-row{padding-top:8px;padding-bottom:8px;}
.prep-it small{margin-top:1px;}
.prep-head{min-height:80px;}
.prep-wrap{align-items:flex-start;}
.prep-events{position:sticky;top:12px;}
.prep-ev{border-radius:14px;}
@media (min-width:860px){ .prep-wrap{display:flex;flex-direction:row;} .prep-events{width:300px;flex:none;} .prep-main{flex:1;min-width:0;} }

/* ===== Employee dashboard redesign ===== */
body[data-page="dashboard"]{font-family:'Plus Jakarta Sans',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;}
body[data-page="dashboard"]:not(.embed) #mainView > .card:first-of-type{display:none;}
body[data-page="dashboard"] #app{max-width:1280px;}
.dp-title{display:flex;align-items:center;gap:10px;margin:4px 0 14px;}
.dp-title-txt{flex:1;min-width:0;}
.dp-title h1{margin:0;font-family:inherit;font-size:28px;font-weight:800;letter-spacing:-.5px;}
.dp-title p{margin:2px 0 0;font-size:14px;color:var(--ink-soft);}
.dp-title .btn{width:auto;min-height:44px;padding:0 18px;border-radius:12px;display:inline-flex;align-items:center;text-decoration:none;}
.dp-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px;}
.dp-kpi{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px 18px;}
.dp-kpi span{display:block;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);}
.dp-kpi b{display:block;font-size:28px;font-weight:800;margin-top:4px;}
.dp-kpi small{display:block;font-size:12px;color:var(--ink-soft);margin-top:2px;}
.dp-kpi.is-hot{background:#FFF1F6;border-color:#F4C3D8;}
.dp-kpi.is-hot span,.dp-kpi.is-hot b,.dp-kpi.is-hot small{color:#9B0F55;}
.dp-two{display:flex;gap:18px;margin-bottom:18px;align-items:flex-start;}
.dp-card{background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;min-width:0;}
.dp-card-att{flex:1.7;}.dp-card-up{flex:1;}
.dp-card-h{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 8px;}
.dp-card-h span{font-size:16px;font-weight:800;}
.dp-card-h em{font-style:normal;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);}
.dp-att{display:flex;align-items:center;gap:12px;padding:12px 16px;border-top:1px solid #F7E9EF;min-height:60px;color:inherit;text-decoration:none;}
.dp-att-list .dp-att:first-child{border-top:0;}
.dp-att-txt{flex:1;min-width:0;}
.dp-att .nm{font-size:14px;font-weight:700;}
.dp-att .mt,.dp-bk .mt,.dp-lead .mt{font-size:12px;color:var(--ink-soft);margin-top:1px;}
.dp-dot{width:10px;height:10px;border-radius:50%;flex:none;display:inline-block;}
.dp-dchip{width:46px;height:46px;border-radius:13px;background:#FFF0F6;display:flex;flex-direction:column;align-items:center;justify-content:center;flex:none;}
.dp-dchip b{font-size:10px;font-weight:800;color:var(--pink-dark);letter-spacing:.08em;}
.dp-dchip i{font-style:normal;font-size:18px;font-weight:800;line-height:1;}
.dp-card-f{padding:10px 16px 14px;border-top:1px solid #F7E9EF;}
.dp-card-f a,.dp-link,.dp-more{font:inherit;font-size:13px;font-weight:800;color:var(--pink-dark);text-decoration:none;background:none;border:0;padding:0;cursor:pointer;}
.dp-more{display:block;width:100%;padding:12px;border-top:1px solid #F7E9EF;}
.dp-empty{padding:18px 16px;color:var(--ink-soft);font-size:14px;}
.dp-flag{display:inline-flex;align-self:flex-start;font-size:11.5px;font-weight:800;padding:3px 9px;border-radius:99px;white-space:nowrap;}
.f-pink{background:#FFE3EF;color:#9B0F55;}.f-purple{background:#EFE8FB;color:#4F2D9B;}.f-teal{background:#E3F5F1;color:#0B6B5C;}.f-gold{background:#FFF0D1;color:#7A4E00;}.f-green{background:#E4F2E1;color:#2F6B2C;}.f-gray{background:#EEE8F0;color:#5a4a5e;}
.dp-st{display:inline-flex;font-size:12px;font-weight:800;padding:4px 10px;border-radius:99px;}
.s-new{background:#FFE3EF;color:#9B0F55;}.s-con{background:#EFE8FB;color:#4F2D9B;}.s-agr{background:#FFF0D1;color:#7A4E00;}.s-dep{background:#E3F5F1;color:#0B6B5C;}.s-paid{background:#E4F2E1;color:#2F6B2C;}.s-done{background:#EEE8F0;color:#5a4a5e;}.s-can{background:#FFE3E3;color:#9B1C1C;}
.dp-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;flex-wrap:wrap;}
.dp-tabs.requests-tabs{display:inline-flex;margin:0;background:#fff;border:1px solid var(--line);border-radius:12px;padding:4px;gap:4px;width:auto;}
.dp-tabs.requests-tabs button{flex:none;padding:9px 18px;border:0;border-radius:9px;font:inherit;font-size:13px;font-weight:700;background:transparent;color:var(--ink-soft);cursor:pointer;}
.dp-tabs.requests-tabs button.active{background:var(--pink);color:#fff;}
.dp-view{display:inline-flex;background:#fff;border:1px solid var(--line);border-radius:12px;padding:4px;gap:4px;}
.dp-view button{padding:9px 16px;border:0;border-radius:9px;font:inherit;font-size:13px;font-weight:700;background:transparent;color:var(--ink-soft);cursor:pointer;}
.dp-view button.on{background:var(--pink);color:#fff;}
.dp-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;}
.dp-chip{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:0 14px;border-radius:999px;border:1.5px solid var(--line);background:#fff;font:inherit;font-size:13px;font-weight:700;color:var(--ink);cursor:pointer;}
.dp-chip b{font-weight:600;opacity:.7;}
.dp-chip.is-hot:not(.on){border-color:var(--pink);}
.dp-chip.on{background:var(--ink);border-color:var(--ink);color:#fff;}
.dp-tools{display:flex;gap:10px;margin-bottom:10px;}
.dp-search{flex:1;min-width:0;min-height:44px;padding:0 14px;border:1.5px solid var(--line);border-radius:12px;background:#fff;font:inherit;font-size:14px;}
.dp-sel{min-height:44px;border:1.5px solid var(--line);border-radius:12px;background:#fff;font:inherit;font-size:13px;font-weight:700;padding:0 10px;}
.dp-table{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;}
.dp-th,.dp-row{display:grid;gap:14px;align-items:center;padding:0 18px;}
.dp-bk-th,.dp-bk{grid-template-columns:24px minmax(0,1.7fr) minmax(0,1.4fr) 80px minmax(0,1.9fr) 80px 130px;}
.dp-leads-th,.dp-lead{grid-template-columns:24px minmax(0,1.6fr) minmax(0,1.8fr) minmax(0,1.5fr) 120px minmax(0,2fr);}
.dp-th{min-height:42px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);}
.dp-th .r{text-align:right;}
.dp-row{min-height:64px;border-top:1px solid #F7E9EF;padding-top:8px;padding-bottom:8px;cursor:pointer;}
.dp-row.is-hot{background:#FFF8FB;}
.dp-row:hover{background:#FFF3F8;}
.dp-lead{cursor:default;}
.dp-bk .num{font-size:14px;font-weight:700;text-align:right;}
.dp-bk .nm,.dp-lead .nm{font-size:14px;font-weight:700;}
.dp-act{text-align:right;}
.dp-act .btn{width:auto;}
.dp-lead-acts{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap;}
.dp-lead-acts .btn{width:auto;text-decoration:none;display:inline-flex;align-items:center;}
.dp-steps{display:flex;gap:4px;margin-top:6px;}
.dp-steps i{width:22px;height:5px;border-radius:99px;background:#F0DDE5;display:block;}
.dp-steps i.on{background:var(--pink);}
.dp-gh{display:flex;align-items:center;gap:10px;padding:0 18px;min-height:44px;background:#FBF1F5;border-top:1px solid var(--line);}
.dp-gh b{font-size:13px;font-weight:800;}
.dp-gh span{font-size:12px;font-weight:700;color:var(--ink-soft);}
.dp-gh em,.dp-col-h em{margin-left:auto;font-style:normal;font-size:12px;font-weight:700;color:var(--ink-soft);}
.dp-foot{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--ink-soft);margin-top:12px;}
.dp-spacer{flex:1;}
.dp-board{display:flex;gap:12px;align-items:flex-start;overflow-x:auto;padding-bottom:6px;}
.dp-col{flex:1 0 220px;min-width:0;background:#F9ECF1;border-radius:16px;padding:12px;display:flex;flex-direction:column;gap:10px;}
.dp-col-h{display:flex;align-items:center;gap:8px;padding:2px 4px 4px;}
.dp-col-h b{font-size:14px;font-weight:800;}
.dp-col-h span{font-size:12px;font-weight:700;color:var(--ink-soft);background:#fff;border-radius:99px;padding:1px 8px;}
.dp-col-empty{font-size:12px;color:var(--ink-soft);text-align:center;padding:14px 0;}
.dp-bc{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:6px;cursor:pointer;}
.dp-bc.is-hot{border-color:var(--pink);box-shadow:0 0 0 2px #FFE3EF;}
.dp-bc-row{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.dp-bc .nm{font-size:14px;font-weight:800;}
.dp-bc .mt{font-size:12px;color:var(--ink-soft);}
.dp-amt{font-size:13px;font-weight:800;}
.dp-pbar{height:5px;border-radius:99px;background:#F4E6EC;overflow:hidden;}
.dp-pbar span{display:block;height:100%;background:#1FA793;border-radius:99px;}
@media (max-width:1099px){ .dp-bk-th,.dp-bk{grid-template-columns:24px minmax(0,1.5fr) 74px minmax(0,1.6fr) 112px;} .dp-ev,.dp-total{display:none;} }
@media (max-width:759px){
  .dp-hide-sm{display:none !important;}
  .dp-title h1{font-size:26px;} .dp-title p{font-size:13px;}
  .dp-kpis{grid-template-columns:repeat(3,1fr);gap:8px;}
  .dp-kpi:first-child{display:none;}
  .dp-kpi{padding:10px 12px;} .dp-kpi b{font-size:20px;} .dp-kpi small{display:none;}
  .dp-two{flex-direction:column;gap:14px;}
  .dp-card-att{width:100%;background:transparent;border:0;overflow:visible;}
  .dp-card-att .dp-card-h{padding:0 0 8px;}
  .dp-card-att .dp-att-list{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px;}
  .dp-card-att .dp-att{flex:none;width:250px;box-sizing:border-box;flex-direction:column;align-items:stretch;gap:10px;padding:14px;background:#fff;border:1px solid var(--line);border-radius:16px;}
  .dp-card-att .dp-dot{display:none;}
  .dp-card-att .dp-att .btn{width:100%;min-height:44px;}
  .dp-card-up{width:100%;}
  .dp-tools{flex-wrap:wrap;} .dp-search{flex:1 1 100%;} .dp-sel{flex:1 1 40%;min-width:0;}
  .dp-chips{flex-wrap:nowrap;overflow-x:auto;}
  .dp-chip{flex:none;min-height:40px;}
  /* list rows become cards */
  .dp-table{background:transparent;border:0;border-radius:0;overflow:visible;}
  .dp-th{display:none;}
  .dp-gh{background:transparent;border:0;padding:10px 2px 4px;}
  .dp-bk{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:6px 12px;background:#fff;border:1px solid var(--line);border-radius:16px;margin-bottom:10px;padding:14px;}
  .dp-bk .row-check{grid-row:1/span2;}
  .dp-bk .dp-date{display:none;}
  .dp-bk .dp-nextcell{grid-column:2;grid-row:2;}
  .dp-bk .dp-act{grid-column:3;grid-row:1/span2;}
  .dp-bk.is-hot{background:#FFF8FB;border-color:#F4C3D8;}
  .dp-lead{display:grid;grid-template-columns:24px minmax(0,1fr);gap:8px 12px;background:#fff;border:1px solid var(--line);border-radius:16px;margin-bottom:10px;padding:14px;}
  .dp-lead>div:nth-child(n+3){grid-column:2;}
  .dp-lead-acts{justify-content:flex-start;}
  .dp-board .dp-col{flex-basis:260px;}
}
.dp-leads-th,.dp-lead{grid-template-columns:24px minmax(0,1.3fr) minmax(0,1.4fr) minmax(0,1.2fr) 112px minmax(300px,1.6fr);}
.dp-lead-acts{flex-wrap:nowrap;}
.dp-lead-acts .btn{padding:0 12px;}
.dp-col{flex:1 0 200px;}
@media (max-width:1099px){ .dp-lead-acts{flex-wrap:wrap;} .dp-leads-th,.dp-lead{grid-template-columns:24px minmax(0,1.3fr) minmax(0,1.3fr) 110px minmax(0,1.6fr);} .dp-leads-th>span:nth-child(4),.dp-lead>div:nth-child(4){display:none;} }
