/* ============================================================
   Gish Beauty Coordinator — Sprint 97B
   Namespaced .bty-* — sibling to .flo-*, .cat-*, .res-*, .act-*.
   Soft champagne + rose palette tuned for bridal-morning surfaces.
   Provider colors per spec:
     vagaro       #1A4D69   navy
     styleseat    #FF6B00   orange
     treatwell    #00B5AD   teal
     glamsquad    #FF7F9C   pink
     mindbody     #4CAF50   green
     vendor-mp    #A855F7   purple
   ============================================================ */

:root{
  --bty-rose:#F2A6B5;
  --bty-rose-deep:#C9637A;
  --bty-champagne:#E6CBA8;
  --bty-champagne-deep:#A38258;
  --bty-good:#10B981;
  --bty-warn:#F59E0B;
  --bty-bad:#EF4444;
  --bty-info:#22D3EE;
}

/* Hero accent */
.tc-hero.bty-hero::before{background:radial-gradient(ellipse 60% 80% at 16% 26%,rgba(242,166,181,.20),transparent 60%),radial-gradient(ellipse 60% 70% at 84% 72%,rgba(230,203,168,.18),transparent 60%)}
.tc-hero.bty-hero h1 em{background:linear-gradient(135deg,var(--bty-rose-deep),var(--bty-champagne-deep));-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.tc-hero.bty-hero .eyebrow{color:var(--bty-rose-deep)}
.tc-hero.bty-hero .countdown{color:var(--bty-rose-deep);background:rgba(242,166,181,.10);border-color:rgba(242,166,181,.34)}

/* Party stat chips on hero */
.bty-party-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.bty-party-chips .chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:rgba(255,255,255,.045);border:1px solid var(--border);border-radius:100px;font-size:12.5px;color:var(--text2)}
.bty-party-chips .chip strong{color:var(--text1)}
.bty-party-chips .chip svg{width:13px;height:13px;color:var(--bty-rose-deep)}

/* Commission widget */
.bty-commission{display:grid;grid-template-columns:1.1fr 1.6fr;gap:18px;padding:22px 24px;background:linear-gradient(135deg,rgba(242,166,181,.10),rgba(168,85,247,.08));border:1px solid var(--border2);border-radius:18px;margin-bottom:22px;align-items:center}
@media(max-width:760px){.bty-commission{grid-template-columns:1fr}}
.bty-commission .big{font-family:var(--font-display);font-weight:900;font-size:40px;letter-spacing:-.02em;line-height:1.05;background:linear-gradient(135deg,var(--bty-champagne-deep),var(--bty-rose-deep));-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.bty-commission .lbl{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--text3);margin-bottom:4px}
.bty-commission .sub{font-size:13px;color:var(--text2);margin-top:4px}
.bty-bar{height:14px;border-radius:100px;background:rgba(255,255,255,.06);overflow:hidden;display:flex}
.bty-bar .seg{height:100%}
.bty-legend{display:flex;flex-wrap:wrap;gap:10px;font-size:11.5px;color:var(--text2);margin-top:6px}
.bty-legend .dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px;vertical-align:middle}

/* Provider color chips (badges) */
.bty-prov{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 7px;border-radius:6px;background:rgba(255,255,255,.05);color:var(--text2)}
.bty-prov .dot{width:7px;height:7px;border-radius:50%}

/* Section heading */
.bty-section-title{font-family:var(--font-display);font-weight:800;font-size:24px;margin:30px 0 12px;color:var(--text1);display:flex;align-items:center;gap:10px}
.bty-section-title em{font-style:italic;background:linear-gradient(135deg,var(--bty-rose-deep),var(--bty-champagne-deep));-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.bty-section-title svg{width:22px;height:22px;color:var(--bty-rose-deep)}
.bty-section-sub{font-family:var(--font-serif);font-style:italic;font-size:14px;color:var(--text2);margin:-6px 0 14px}

/* Stepper */
.bty-steps{display:flex;gap:10px;margin-bottom:18px;flex-wrap:wrap}
.bty-step{display:flex;align-items:center;gap:8px;padding:9px 14px;border-radius:100px;background:rgba(255,255,255,.04);border:1px solid var(--border);font-size:12.5px;color:var(--text3);font-weight:600}
.bty-step .num{width:20px;height:20px;border-radius:50%;background:rgba(255,255,255,.05);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:11px;color:var(--text2)}
.bty-step.active{color:var(--text1);border-color:var(--bty-rose-deep);background:rgba(242,166,181,.12)}
.bty-step.active .num{background:linear-gradient(135deg,var(--bty-rose-deep),var(--bty-champagne-deep));color:#fff}
.bty-step.done{color:var(--text2);border-color:rgba(16,185,129,.40);background:rgba(16,185,129,.08)}
.bty-step.done .num{background:var(--bty-good);color:#fff}

/* Party builder rows */
.bty-member-row{display:grid;grid-template-columns:140px 1fr auto;gap:12px;align-items:center;padding:12px 14px;background:rgba(255,255,255,.025);border:1px solid var(--border);border-radius:14px;margin-bottom:8px}
@media(max-width:760px){.bty-member-row{grid-template-columns:1fr}}
.bty-member-row .role{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--bty-rose-deep)}
.bty-member-row input[type=text]{background:rgba(255,255,255,.04);border:1px solid var(--border2);color:var(--text1);padding:8px 10px;border-radius:8px;font-family:inherit;font-size:13.5px;width:100%}
.bty-svc-toggles{display:flex;flex-wrap:wrap;gap:6px}
.bty-svc-toggles label{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;padding:5px 9px;background:rgba(255,255,255,.045);border:1px solid var(--border);border-radius:100px;cursor:pointer;color:var(--text2);transition:border-color .2s,background .2s}
.bty-svc-toggles label.on{background:rgba(242,166,181,.14);border-color:var(--bty-rose-deep);color:var(--text1)}
.bty-svc-toggles input{display:none}
.bty-member-row .removeBtn{background:transparent;border:0;color:var(--text3);cursor:pointer;font-size:18px;padding:4px 8px}
.bty-member-row .removeBtn:hover{color:var(--bty-bad)}

.bty-add-bar{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;padding-top:14px;border-top:1px dashed var(--border)}
.bty-add-bar .add{padding:7px 12px;background:rgba(255,255,255,.045);border:1px solid var(--border);border-radius:100px;color:var(--text2);font-size:12px;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:5px}
.bty-add-bar .add:hover{border-color:var(--bty-rose-deep);color:var(--text1)}
.bty-add-bar .add svg{width:13px;height:13px}

/* Schedule gantt */
.bty-schedule{margin-top:14px}
.bty-schedule-head{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--text2);margin-bottom:14px;padding:14px 18px;background:rgba(242,166,181,.06);border:1px solid rgba(242,166,181,.32);border-radius:14px}
.bty-schedule-head .when{font-family:var(--font-display);font-weight:800;font-size:24px;color:var(--bty-rose-deep);letter-spacing:-.01em}
.bty-schedule-head .meta{font-size:12.5px;color:var(--text2);margin-top:4px}
.bty-gantt{position:relative;background:rgba(0,0,0,.18);border:1px solid var(--border);border-radius:14px;padding:18px 14px 14px;overflow-x:auto}
.bty-gantt-hours{display:flex;gap:0;border-bottom:1px solid var(--border);padding-bottom:6px;margin-bottom:10px;min-width:680px}
.bty-gantt-hours .h{flex:1;font-family:var(--font-mono);font-size:11px;color:var(--text3);text-align:left;letter-spacing:.05em}
.bty-lane{position:relative;height:34px;margin-bottom:6px;min-width:680px}
.bty-lane .lane-label{position:absolute;left:0;top:0;bottom:0;width:90px;display:flex;align-items:center;font-family:var(--font-mono);font-size:11px;color:var(--text2);font-weight:700}
.bty-lane .lane-track{position:absolute;left:96px;right:6px;top:0;bottom:0;background:rgba(255,255,255,.035);border-radius:6px}
.bty-block{position:absolute;top:4px;bottom:4px;border-radius:6px;padding:0 8px;display:flex;align-items:center;font-size:11.5px;color:#fff;font-weight:600;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;border:1px solid rgba(255,255,255,.18);box-shadow:0 2px 8px rgba(0,0,0,.18)}
.bty-block.bride{box-shadow:0 0 0 2px rgba(251,191,36,.6),0 2px 8px rgba(0,0,0,.18)}

/* Provider cards */
.bty-provider-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.bty-prov-card{background:rgba(255,255,255,.03);border:1px solid var(--border);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;cursor:pointer;transition:transform .2s,border-color .2s}
.bty-prov-card:hover{transform:translateY(-3px);border-color:rgba(242,166,181,.45)}
.bty-prov-card.selected{border-color:var(--bty-rose-deep);box-shadow:0 0 0 1px var(--bty-rose-deep),0 18px 38px rgba(201,99,122,.18)}
.bty-prov-card .photo{height:140px;background:linear-gradient(135deg,#2a1438,#0a0510);background-size:cover;background-position:center;position:relative}
.bty-prov-card .photo .badge{position:absolute;top:8px;left:8px;font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.05em;padding:3px 8px;border-radius:6px;color:#fff;text-transform:uppercase}
.bty-prov-card .photo .ol{position:absolute;top:8px;right:8px;background:rgba(0,0,0,.55);color:#fff;font-family:var(--font-mono);font-size:10px;font-weight:700;padding:3px 7px;border-radius:6px;letter-spacing:.05em;display:flex;align-items:center;gap:4px}
.bty-prov-card .photo .ol svg{width:11px;height:11px}
.bty-prov-card .body{padding:14px;display:flex;flex-direction:column;gap:6px;flex:1}
.bty-prov-card h4{font-family:var(--font-display);font-weight:800;font-size:16px;margin:0;color:var(--text1);line-height:1.2}
.bty-prov-card .meta{font-size:12.5px;color:var(--text2);display:flex;gap:8px;flex-wrap:wrap}
.bty-prov-card .thumbs{display:flex;gap:4px;margin-top:6px}
.bty-prov-card .thumbs .t{width:36px;height:36px;border-radius:6px;background-size:cover;background-position:center;flex:1}
.bty-prov-card .footer{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:8px}
.bty-prov-card .price{font-family:var(--font-mono);font-size:12.5px;color:var(--text2)}

/* Marketplace banner */
.bty-mp-banner{padding:14px 18px;background:linear-gradient(135deg,rgba(168,85,247,.10),rgba(94,45,175,.06));border:1px solid rgba(168,85,247,.32);border-radius:14px;margin-bottom:14px;font-size:13.5px;color:var(--text1);display:flex;gap:10px;align-items:center}
.bty-mp-banner strong{color:#c4a4ff;font-family:var(--font-display);font-size:16px}

/* Quote / confirm card */
.bty-quote{padding:18px;background:rgba(0,0,0,.18);border:1px solid var(--border);border-radius:14px;font-size:13.5px}
.bty-quote .row{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px dashed var(--border)}
.bty-quote .row.total{font-family:var(--font-display);font-weight:800;font-size:18px;color:var(--bty-champagne-deep);padding-top:14px;margin-top:6px;border-top:2px solid rgba(230,203,168,.34);border-bottom:0}
.bty-quote .row .k{color:var(--text3)}
.bty-quote .row .v{color:var(--text1)}
.bty-quote .row.travel .v{color:var(--bty-warn)}

.bty-tip-toggle,.bty-billto{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.bty-tip-toggle .opt,.bty-billto .opt{padding:8px 14px;background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:100px;font-size:12.5px;cursor:pointer;color:var(--text2)}
.bty-tip-toggle .opt.on,.bty-billto .opt.on{background:rgba(242,166,181,.14);border-color:var(--bty-rose-deep);color:var(--text1)}

/* Confirmation list (per-artist) */
.bty-confirm-list{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.bty-confirm-row{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:14px;background:rgba(16,185,129,.05);border:1px solid rgba(16,185,129,.30);border-radius:12px}
.bty-confirm-row .av{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--bty-rose-deep),var(--bty-champagne-deep));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px}
.bty-confirm-row h5{font-family:var(--font-display);font-weight:700;font-size:15px;margin:0;color:var(--text1)}
.bty-confirm-row .meta{font-size:12px;color:var(--text2);margin-top:2px}
.bty-confirm-row .code{font-family:var(--font-mono);font-size:11.5px;color:var(--gold);background:rgba(251,191,36,.10);padding:3px 8px;border-radius:6px;letter-spacing:.05em}

/* Wellness calendar */
.bty-wellness-cal{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-top:14px}
.bty-wellness-day{padding:14px;background:rgba(76,175,80,.06);border:1px solid rgba(76,175,80,.28);border-radius:14px;display:flex;flex-direction:column;gap:4px}
.bty-wellness-day .day{font-family:var(--font-mono);font-size:10px;letter-spacing:.10em;text-transform:uppercase;color:var(--bty-good);font-weight:700}
.bty-wellness-day h5{font-family:var(--font-display);font-weight:700;font-size:15px;margin:2px 0 0;color:var(--text1)}
.bty-wellness-day .when{font-size:11.5px;color:var(--text2)}
.bty-wellness-day .px{font-family:var(--font-mono);font-size:12px;color:var(--bty-champagne-deep);font-weight:700;margin-top:4px}
.bty-wellness-day .studio{font-size:11px;color:var(--text3);font-style:italic}
.bty-wellness-day button{margin-top:6px;padding:5px 10px;border:1px solid var(--border2);background:rgba(255,255,255,.04);border-radius:100px;color:var(--text1);font-size:11px;cursor:pointer;font-family:inherit}
.bty-wellness-day button:hover{border-color:var(--bty-rose-deep)}

/* Live booking rail */
.bty-live-list{display:flex;flex-direction:column;gap:10px}
.bty-live-row{display:grid;grid-template-columns:10px 1fr auto auto;gap:14px;align-items:center;padding:13px 16px;background:rgba(255,255,255,.025);border:1px solid var(--border);border-radius:14px;cursor:pointer;transition:border-color .2s}
.bty-live-row:hover{border-color:rgba(242,166,181,.45)}
.bty-live-row .prov-dot{width:10px;height:10px;border-radius:50%}
.bty-live-row h4{font-family:var(--font-display);font-weight:700;font-size:15.5px;margin:0;color:var(--text1)}
.bty-live-row .meta{font-size:12px;color:var(--text2);margin-top:2px}
.bty-live-row .amount{font-family:var(--font-mono);font-weight:700;color:var(--bty-champagne-deep)}

/* Status pills */
.bty-status{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:10.5px;font-weight:700;letter-spacing:.08em;padding:4px 10px;border-radius:100px;text-transform:uppercase}
.bty-status.CONFIRMED{background:rgba(16,185,129,.12);color:#6EE7B7;border:1px solid rgba(16,185,129,.40)}
.bty-status.ARTIST_ASSIGNED{background:rgba(34,211,238,.10);color:#67E8F9;border:1px solid rgba(34,211,238,.34)}
.bty-status.ARRIVING{background:rgba(245,158,11,.12);color:#FCD34D;border:1px solid rgba(245,158,11,.40)}
.bty-status.IN_PROGRESS{background:rgba(168,85,247,.12);color:#D8B4FE;border:1px solid rgba(168,85,247,.40)}
.bty-status.COMPLETED{background:rgba(255,255,255,.06);color:var(--text2);border:1px solid var(--border2)}
.bty-status.PENDING_PROVIDER{background:rgba(34,211,238,.10);color:#67E8F9;border:1px solid rgba(34,211,238,.32)}
.bty-status.CANCELLED{background:rgba(239,68,68,.10);color:#FCA5A5;border:1px solid rgba(239,68,68,.36)}

/* Panic toast (artist late) */
.bty-panic{position:fixed;top:20px;right:20px;max-width:380px;padding:16px 20px;background:linear-gradient(135deg,rgba(245,158,11,.18),rgba(239,68,68,.10));border:1px solid rgba(245,158,11,.45);border-radius:14px;color:var(--text1);z-index:200;box-shadow:0 18px 44px rgba(0,0,0,.45);font-size:13.5px;opacity:0;transform:translateX(20px);transition:opacity .3s,transform .3s}
.bty-panic.show{opacity:1;transform:translateX(0)}
.bty-panic h4{font-family:var(--font-display);font-weight:800;font-size:16px;color:#FCD34D;margin:0 0 4px;display:flex;align-items:center;gap:6px}
.bty-panic p{font-size:13px;color:var(--text2);margin:0 0 8px}
.bty-panic .acts{display:flex;gap:8px}
.bty-panic .acts button{padding:6px 12px;border-radius:100px;border:1px solid var(--border2);background:rgba(255,255,255,.05);color:var(--text1);font-size:12px;cursor:pointer;font-family:inherit}
.bty-panic .acts button.primary{background:#F59E0B;border-color:#F59E0B;color:#0a0510;font-weight:700}

/* Detail slide-in */
.bty-detail-overlay{position:fixed;inset:0;background:rgba(10,5,16,.55);opacity:0;pointer-events:none;transition:opacity .25s;z-index:120}
.bty-detail-overlay.open{opacity:1;pointer-events:auto}
.bty-detail{position:fixed;top:0;right:0;height:100vh;width:min(460px,100%);background:#160C20;border-left:1px solid var(--border2);transform:translateX(100%);transition:transform .3s cubic-bezier(.2,.7,.2,1);z-index:130;overflow-y:auto;padding:32px 28px}
.bty-detail.open{transform:translateX(0)}
.bty-detail h2{font-family:var(--font-display);font-weight:800;font-size:23px;margin:0 0 4px;color:var(--text1)}
.bty-detail .conf{font-family:var(--font-mono);font-size:13px;color:var(--gold);margin-bottom:14px}
.bty-detail .row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px}
.bty-detail .row .k{color:var(--text3)}
.bty-detail .row .v{color:var(--text1);font-weight:600;text-align:right}
.bty-detail .closeBtn{position:absolute;top:14px;right:14px;width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.06);border:0;color:var(--text2);font-size:18px;cursor:pointer}
.bty-detail .actions{display:flex;gap:8px;margin-top:18px;flex-wrap:wrap}

/* Honeymoon spa rail */
.bty-honeymoon{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:12px}
.bty-honeymoon .item{padding:14px;background:rgba(242,166,181,.05);border:1px solid rgba(242,166,181,.30);border-radius:14px}
.bty-honeymoon .item h5{font-family:var(--font-display);font-weight:700;font-size:15px;margin:0 0 4px;color:var(--text1)}
.bty-honeymoon .item .meta{font-size:12.5px;color:var(--text2)}
.bty-honeymoon .item .px{font-family:var(--font-mono);font-size:12px;color:var(--bty-rose-deep);font-weight:700;margin-top:6px}

/* Skel loader */
.bty-skel{height:80px;background:linear-gradient(90deg,rgba(255,255,255,.025),rgba(255,255,255,.06),rgba(255,255,255,.025));background-size:200% 100%;animation:bty-shimmer 1.4s linear infinite;border-radius:14px;margin-bottom:10px}
@keyframes bty-shimmer{from{background-position:200% 0}to{background-position:-200% 0}}

/* Tiny utility */
.bty-row{display:flex;gap:8px;align-items:center}
.bty-row.justify{justify-content:space-between}
.bty-grow{flex:1}
.bty-muted{color:var(--text3);font-size:12px}
.bty-budget-line{margin-top:6px;font-size:12.5px;color:var(--text2)}
.bty-budget-line.ok{color:var(--bty-good)}
.bty-budget-line.over{color:var(--bty-bad)}
