  :root{
    --bg:#0a0a0a;
    --surface:#161616;
    --surface-2:#1e1e1e;
    --red:#c43c2d;
    --red-bright:#e2543a;
    --red-dim:rgba(196,60,45,.22);
    --cream:#f2efe7;
    --muted:#9a958c;
    --muted-2:#6e6a62;
    --danger:#8a4030;
    --green:#3fae66;
    --green-bright:#6fe3a0;
    --green-dim:rgba(63,174,102,.22);
    --ok:#6fa57a;
    --plan-bronze:#c98a52;
    --plan-gold:#e8b84c;
    --plan-platinum:#cfd6da;
    --radius:16px;
    --radius-sm:10px;
    font-size:16px;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  body{
    background:#050505;
    font-family:'Jost', sans-serif;
    color:var(--cream);
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,.display{font-family:'Playfair Display', serif;}
  button, input, select{font-family:inherit;}
  ::selection{background:var(--red-dim);}

  .shell{
    max-width:430px;
    margin:0 auto;
    min-height:100vh;
    background:var(--bg);
    position:relative;
    overflow-x:hidden;
    box-shadow:0 0 60px rgba(0,0,0,.6);
    animation:circle-in-hesitate 2.5s cubic-bezier(.25, 1, .30, 1) both;
  }
  @keyframes circle-in-hesitate{
    0%{ clip-path:circle(0%); }
    40%{ clip-path:circle(40%); }
    100%{ clip-path:circle(125%); }
  }

  /* ---------- screens ---------- */
  .screen{display:none; min-height:100vh; padding-bottom:96px;}
  .screen.active{display:block; animation:fadeSlide .4s ease;}
  .screen.no-nav{padding-bottom:0;}
  @keyframes fadeSlide{from{opacity:0; transform:translateY(10px);} to{opacity:1; transform:translateY(0);}}
  @media (prefers-reduced-motion: reduce){
    .screen.active{animation:none;}
    .logo-mark{animation:none;}
    .shell{animation:none;}
  }

  /* ---------- topbar (internal screens) ---------- */
  .topbar{
    display:flex; align-items:center; gap:14px;
    padding:22px 22px 14px;
    position:sticky; top:0; z-index:5;
    background:linear-gradient(var(--bg) 80%, transparent);
  }
  .topbar h2{font-size:1.25rem; font-weight:600; letter-spacing:.02em;}
  .icon-btn{
    width:38px; height:38px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    background:var(--surface); border:1px solid var(--red-dim);
    color:var(--red); cursor:pointer; flex:none;
  }
  .icon-btn svg{width:18px; height:18px;}
  .topbar .spacer{flex:1;}
  .logo-mini{width:38px; height:38px; border-radius:50%; object-fit:cover; border:1.5px solid var(--red); flex:none;}
  .greeting{display:flex; flex-direction:column; gap:2px;}
  .greeting span{font-size:.72rem; color:var(--muted); text-transform:uppercase; letter-spacing:.12em;}
  .greeting strong{font-family:'Playfair Display',serif; font-size:1.15rem; font-weight:600;}

  /* ---------- LOGIN / REGISTER ---------- */
  .hero{
    position:relative; min-height:340px;
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap:16px; padding:32px 26px 28px; overflow:hidden; perspective:900px;
    background:
      radial-gradient(120% 90% at 50% 35%, rgba(196,60,45,.16), transparent 62%),
      repeating-linear-gradient(135deg, rgba(196,60,45,.06) 0 2px, transparent 2px 26px),
      linear-gradient(180deg, #161312 0%, #0c0a09 80%);
    border-bottom:1px solid var(--red-dim);
  }
  .logo-mark{
    width:172px; height:172px; border-radius:50%; object-fit:cover;
    border:2px solid var(--red); box-shadow:0 0 0 6px rgba(196,60,45,.12), 0 18px 40px rgba(0,0,0,.5);
    animation:spinY 11s linear infinite;
  }
  @keyframes spinY{ from{transform:rotateY(0deg);} to{transform:rotateY(360deg);} }
  .hero p.tag{font-size:.78rem; color:var(--red-bright); letter-spacing:.16em; text-transform:uppercase;}
  .hero-admin-btn{
    position:absolute; top:16px; right:16px; z-index:2;
    background:rgba(22,22,22,.7); border:1px solid var(--red-dim); color:var(--muted);
    font-size:.68rem; letter-spacing:.03em; padding:8px 13px; border-radius:999px;
    cursor:pointer; backdrop-filter:blur(4px);
  }
  .hero-admin-btn:active{transform:scale(.97);}

  .hero-info{width:100%; max-width:300px; margin-top:6px; padding-top:18px; border-top:1px solid var(--red-dim);}
  .hero-line{display:flex; align-items:flex-start; gap:8px; font-size:.74rem; color:var(--muted); line-height:1.45; margin-bottom:9px; text-align:left;}
  .hero-link{color:var(--muted); text-decoration:underline; text-underline-offset:2px; text-decoration-color:var(--red-dim);}
  .hero-link:active{color:var(--red-bright);}
  .hero-line svg{width:14px; height:14px; flex:none; margin-top:2px; color:var(--red-bright);}
  .hero-hours-toggle{
    display:flex; align-items:center; justify-content:space-between;
    cursor:pointer; margin-top:14px; padding:2px 0;
    font-size:.72rem; color:var(--muted); text-transform:uppercase; letter-spacing:.1em;
  }
  .hero-hours-chevron{width:15px; height:15px; flex:none; transition:transform .25s ease;}
  .hero-hours-toggle.open .hero-hours-chevron{transform:rotate(180deg);}
  .hero-hours{margin-top:0; max-height:0; overflow:hidden; transition:max-height .35s ease;}
  .hero-hours.open{margin-top:8px; max-height:300px;}
  .hero-hours-row{display:flex; justify-content:space-between; gap:10px; font-size:.72rem; padding:3px 0; color:var(--muted);}
  .hero-hours-row span:first-child{color:var(--cream); text-transform:capitalize;}

  .auth-card{padding:28px 26px 36px;}
  .field{margin-bottom:20px;}
  .field label{display:block; font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); margin-bottom:8px;}
  .field input, .field select{
    width:100%; background:transparent; border:none;
    border-bottom:1px solid var(--red-dim);
    color:var(--cream); font-size:1rem; padding:8px 2px;
    outline:none; transition:border-color .2s;
  }
  .field input::placeholder{color:var(--muted-2);}
  .field input:focus, .field select:focus{border-color:var(--red-bright);}
  .field select{appearance:none; background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6'><path d='M0 0l5 6 5-6z' fill='%23c9974b'/></svg>"); background-repeat:no-repeat; background-position:right 4px center;}

  .btn{
    width:100%; padding:15px; border-radius:999px; border:none;
    font-size:.95rem; font-weight:600; letter-spacing:.05em; cursor:pointer;
    transition:transform .15s ease, opacity .15s ease;
  }
  .btn:active{transform:scale(.98);}
  .btn-gold{background:linear-gradient(135deg, var(--red-bright), var(--red)); color:#1a1208;}
  .btn-green{background:linear-gradient(135deg, var(--green-bright), var(--green)); color:#0d2414;}
  .btn:disabled{opacity:.35; cursor:not-allowed;}
  .btn-ghost{background:transparent; border:1px solid var(--red-dim); color:var(--cream);}
  .btn-text{background:none; border:none; color:var(--red); font-size:.85rem; cursor:pointer; text-decoration:underline; text-underline-offset:3px;}

  .divider-row{display:flex; align-items:center; gap:12px; margin:22px 0;}
  .divider-row .line{flex:1; height:1px; background:var(--red-dim);}
  .divider-row span{font-size:.7rem; color:var(--muted); letter-spacing:.1em;}

  .auth-foot{text-align:center; margin-top:18px; font-size:.85rem; color:var(--muted);}
  .auth-foot button{margin-left:4px;}
  .admin-link{display:block; text-align:center; margin-top:26px; font-size:.72rem; color:var(--muted-2); letter-spacing:.06em; background:none; border:none; cursor:pointer;}

  /* ---------- HOME / SERVICES ---------- */
  .search-wrap{padding:0 22px 14px;}
  .search-box{
    display:flex; align-items:center; gap:10px;
    background:var(--surface); border:1px solid var(--red-dim);
    border-radius:999px; padding:11px 16px;
  }
  .search-box svg{width:16px; height:16px; color:var(--muted); flex:none;}
  .search-box input{flex:1; background:none; border:none; outline:none; color:var(--cream); font-size:.92rem;}
  .reminder-banner{
    background:rgba(196,60,45,.12); border:1px solid var(--red-dim); color:var(--cream);
    border-radius:var(--radius); padding:11px 16px; font-size:.85rem; text-align:center;
    margin:0 0 14px; cursor:pointer;
  }
  .img-upload-wrap{ display:flex; flex-direction:column; gap:10px; }
  .img-preview-box{
    width:100%; height:140px; border-radius:var(--radius);
    border:2px dashed rgba(196,60,45,.35); display:flex; align-items:center;
    justify-content:center; overflow:hidden; background:var(--surface); cursor:pointer;
    position:relative;
  }
  .img-preview-box img{ width:100%; height:100%; object-fit:cover; }
  .img-preview-box .img-placeholder{ color:var(--muted); font-size:.82rem; text-align:center; padding:12px; }
  .img-preview-box .img-remove{
    position:absolute; top:6px; right:6px;
    background:rgba(0,0,0,.7); border:none; border-radius:50%;
    width:26px; height:26px; color:#fff; cursor:pointer; font-size:14px;
    display:flex; align-items:center; justify-content:center;
  }
  .img-upload-btn{
    background:transparent; border:1px solid var(--red-dim); color:var(--cream);
    border-radius:var(--radius); padding:9px 14px; font-size:.85rem; cursor:pointer;
    text-align:center;
  }
  .search-box input::placeholder{color:var(--muted-2);}

  .chip-row{display:flex; gap:10px; overflow-x:auto; padding:4px 22px 18px; scrollbar-width:none;}
  .chip-row::-webkit-scrollbar{display:none;}
  .chip{
    flex:none; padding:9px 18px; border-radius:999px; font-size:.82rem;
    border:1px solid var(--red-dim); color:var(--muted); cursor:pointer; white-space:nowrap;
    transition:all .15s;
  }
  .chip.active{background:var(--red-bright); color:#1a1208; border-color:var(--red-bright); font-weight:600;}
  .chip-money{border-color:rgba(63,174,102,.45); color:var(--green-bright); font-weight:600;}
  .chip-money.active{background:var(--green-bright); color:#0d2414; border-color:var(--green-bright);}

  .section-label{
    display:flex; align-items:center; gap:10px;
    padding:6px 22px 14px; font-size:.72rem; letter-spacing:.16em;
    text-transform:uppercase; color:var(--red);
  }
  .section-label .line{flex:1; height:1px; background:var(--red-dim);}

  /* ---------- planos mensais ---------- */
  .plans-row{position:relative; overflow:hidden; padding:4px 0 20px;}
  .plans-row::before, .plans-row::after{
    content:''; position:absolute; top:0; bottom:20px; width:26px; z-index:2; pointer-events:none;
  }
  .plans-row::before{left:0; background:linear-gradient(90deg, var(--bg) 0%, transparent 100%);}
  .plans-row::after{right:0; background:linear-gradient(270deg, var(--bg) 0%, transparent 100%);}
  .plans-track{display:flex; gap:14px; width:max-content; cursor:grab; touch-action:pan-y;}
  .plans-track.dragging{cursor:grabbing;}
  .plans-track .plan-card{-webkit-user-drag:none; user-select:none;}
  .plan-card{
    flex:none; width:78vw; max-width:320px;
    background:linear-gradient(165deg, var(--surface) 0%, #100d0c 100%);
    border:1px solid var(--plan-accent-dim, var(--red-dim));
    border-radius:var(--radius); padding:20px 18px 18px;
    position:relative; overflow:hidden;
  }
  .plan-card::before{
    content:''; position:absolute; inset:0 0 auto 0; height:3px;
    background:var(--plan-accent, var(--red));
  }
  .plan-card-top{display:flex; flex-direction:column; align-items:center; gap:12px;}
  .plan-badge-img{width:100%; max-width:200px; aspect-ratio:698/512; object-fit:contain; display:block; filter:drop-shadow(0 6px 14px rgba(0,0,0,.5));}
  .plan-toggle{
    width:100%; display:flex; align-items:center; justify-content:center; gap:6px;
    background:none; border:none; cursor:pointer; color:var(--muted);
    font-size:.72rem; text-transform:uppercase; letter-spacing:.08em;
    padding:10px 0 4px;
  }
  .plan-toggle-chevron{width:15px; height:15px; flex:none; transition:transform .25s ease;}
  .plan-toggle.open .plan-toggle-chevron{transform:rotate(180deg);}
  .plan-details{max-height:0; overflow:hidden; transition:max-height .35s ease;}
  .plan-details.open{max-height:600px; margin-top:12px;}
  .plan-heading{display:flex; align-items:baseline; justify-content:space-between; width:100%; gap:10px;}
  .plan-name{font-family:'Playfair Display',serif; font-size:1.05rem; font-weight:600; color:var(--cream); letter-spacing:.02em;}
  .plan-price{font-family:'Playfair Display',serif; font-size:1.15rem; color:var(--plan-accent, var(--red-bright)); font-weight:600; white-space:nowrap;}
  .plan-price small{font-family:'Jost',sans-serif; font-size:.66rem; color:var(--muted); font-weight:400;}
  .plan-checklist{list-style:none; display:flex; flex-direction:column; gap:8px; margin-bottom:14px;}
  .plan-checklist li{display:flex; align-items:center; gap:9px; font-size:.85rem; color:var(--cream);}
  .plan-checklist svg{width:15px; height:15px; flex:none; color:var(--plan-accent, var(--red-bright));}
  .plan-freq{font-size:.72rem; color:var(--muted); margin-bottom:12px; line-height:1.5;}
  .plan-warning{
    display:flex; align-items:flex-start; gap:6px;
    font-size:.68rem; color:var(--red-bright); background:var(--red-dim);
    border:1px solid rgba(196,60,45,.3); border-radius:8px; padding:8px 10px;
    margin-bottom:14px; line-height:1.4;
  }
  .plan-cta{
    width:100%; padding:12px; border-radius:999px; border:none; cursor:pointer;
    background:var(--plan-accent, var(--red-bright)); color:#1a1208; font-weight:600; font-size:.86rem;
    font-family:'Jost',sans-serif;
  }

  .service-list{padding:0 22px; display:flex; flex-direction:column; gap:12px;}
  .service-card{
    display:flex; align-items:center; gap:14px;
    background:var(--surface); border:1px solid rgba(196,60,45,.12);
    border-radius:var(--radius); padding:14px 16px;
  }
  .service-bar{width:3px; align-self:stretch; border-radius:3px; background:var(--red); flex:none;}
  .service-thumb{width:56px; height:56px; border-radius:12px; object-fit:cover; flex:none; border:1px solid rgba(196,60,45,.25);}
  .service-info{flex:1; min-width:0;}
  .service-info h3{font-size:1rem; font-weight:600; color:var(--cream); margin-bottom:4px;}
  .service-info p{font-size:.78rem; color:var(--muted);}
  .service-price{text-align:right; flex:none;}
  .service-price strong{display:block; color:var(--red-bright); font-size:1rem; font-family:'Playfair Display',serif;}
  .service-price span{font-size:.68rem; color:var(--muted-2);}
  .mini-btn{
    margin-top:6px; width:30px; height:30px; border-radius:50%;
    background:var(--red-dim); border:1px solid var(--red-dim); color:var(--red-bright);
    font-size:1.1rem; cursor:pointer; line-height:1;
  }

  /* ---------- BOOKING ---------- */
  .summary-chip{
    margin:0 22px 18px; padding:14px 16px; border-radius:var(--radius);
    background:var(--surface-2); border:1px solid var(--red-dim);
    display:flex; justify-content:space-between; align-items:center;
  }
  .summary-chip div strong{font-family:'Playfair Display',serif; color:var(--cream); font-size:1rem;}
  .summary-chip div p{font-size:.76rem; color:var(--muted); margin-top:2px;}
  .summary-chip b{color:var(--red-bright); font-size:1.05rem; font-family:'Playfair Display',serif;}

  .prof-row{display:flex; gap:16px; overflow-x:auto; padding:4px 22px 22px; scrollbar-width:none;}
  .prof-row::-webkit-scrollbar{display:none;}
  .prof-card{flex:none; display:flex; flex-direction:column; align-items:center; gap:8px; cursor:pointer; opacity:.6; transition:opacity .15s;}
  .prof-card.active{opacity:1;}
  .prof-avatar{
    width:64px; height:64px; border-radius:50%; display:flex; align-items:center; justify-content:center;
    font-family:'Playfair Display',serif; font-weight:700; font-size:1.1rem; color:#1a1208;
    border:2px solid transparent;
  }
  .prof-card.active .prof-avatar{border-color:var(--red-bright);}
  .prof-card span{font-size:.78rem; color:var(--cream); font-weight:500;}
  .prof-card small{font-size:.65rem; color:var(--muted-2);}

  .date-row{display:flex; gap:10px; overflow-x:auto; padding:4px 22px 22px; scrollbar-width:none;}
  .date-row::-webkit-scrollbar{display:none;}
  .date-chip{
    flex:none; width:54px; padding:12px 0; border-radius:14px; text-align:center;
    background:var(--surface); border:1px solid rgba(196,60,45,.12); cursor:pointer;
  }
  .date-chip span{display:block; font-size:.65rem; color:var(--muted); text-transform:uppercase; letter-spacing:.06em;}
  .date-chip strong{display:block; font-size:1.05rem; margin-top:4px; color:var(--cream); font-weight:600;}
  .date-chip.active{background:var(--red-bright); border-color:var(--red-bright);}
  .date-chip.active span, .date-chip.active strong{color:#1a1208;}
  .date-chip.closed{opacity:.3; cursor:not-allowed;}

  .slot-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:10px; padding:0 22px 24px;}
  .payment-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:10px; padding:0 22px 8px;}
  .payment-chip{
    background:var(--surface); border:1.5px solid rgba(196,60,45,.25);
    border-radius:var(--radius); padding:14px 10px; text-align:center;
    font-size:.9rem; color:var(--cream); cursor:pointer; transition:all .15s;
  }
  .payment-chip.active{
    border-color:var(--red); background:rgba(196,60,45,.15);
    color:var(--red-bright); font-weight:600;
  }
  .pix-antecipado-banner{
    margin:14px 22px 0; padding:16px 18px;
    background:linear-gradient(135deg, rgba(37,211,102,.15), rgba(37,211,102,.05));
    border:1.5px solid rgba(37,211,102,.4); border-radius:16px;
    display:flex; align-items:center; gap:14px; cursor:pointer;
    transition:all .15s;
  }
  .pix-antecipado-banner:active{ opacity:.8; transform:scale(.98); }
  .pix-antecipado-icon{ font-size:1.6rem; flex:none; }
  .pix-antecipado-text{ flex:1; }
  .pix-antecipado-text strong{ display:block; color:#6fe3a0; font-size:.95rem; margin-bottom:2px; }
  .pix-antecipado-text span{ color:rgba(111,227,160,.7); font-size:.78rem; }
  .pix-antecipado-arrow{ font-size:1.4rem; color:rgba(37,211,102,.6); flex:none; }
  .plano-card{
    background:var(--surface); border:1.5px solid rgba(196,60,45,.2);
    border-radius:14px; padding:16px; cursor:pointer; transition:all .15s;
  }
  .plano-card:active{ transform:scale(.98); opacity:.9; }
  .plano-destaque{ border-color:#f0c040; background:rgba(240,192,64,.05); }
  .slot{
    padding:12px 0; text-align:center; border-radius:12px; font-size:.88rem;
    border:1px solid rgba(196,60,45,.18); color:var(--cream); cursor:pointer; background:var(--surface);
  }
  .slot.active{background:var(--red-bright); color:#1a1208; border-color:var(--red-bright); font-weight:600;}
  .slot.taken{opacity:.28; text-decoration:line-through; cursor:not-allowed; background:none;}
  .empty-note{padding:30px 22px; text-align:center; color:var(--muted); font-size:.85rem;}

  .sticky-bar{
    position:fixed; bottom:72px; left:0; right:0; max-width:430px; margin:0 auto;
    background:linear-gradient(0deg, var(--bg) 70%, transparent);
    padding:18px 22px 14px; display:flex; align-items:center; gap:14px; z-index:7;
  }
  .sticky-bar .total{flex:1;}
  .sticky-bar .total span{display:block; font-size:.68rem; color:var(--muted); text-transform:uppercase; letter-spacing:.1em;}
  .sticky-bar .total strong{font-family:'Playfair Display',serif; font-size:1.3rem; color:var(--red-bright);}
  .sticky-bar .btn{flex:none; width:auto; padding:14px 26px;}

  /* ---------- MODAL DE HORÁRIOS DO DIA (ADMIN) ---------- */
  .day-slots-overlay{
    position:fixed; inset:0; background:rgba(0,0,0,.82); backdrop-filter:blur(5px);
    display:none; align-items:flex-end; justify-content:center; z-index:60; padding:0;
  }
  .day-slots-overlay.show{display:flex;}
  .day-slots-sheet{
    width:100%; max-width:430px; background:var(--surface); border-radius:22px 22px 0 0;
    border-top:1px solid var(--red-dim); padding:0 0 32px;
    animation:slideUp .3s ease; max-height:88vh; display:flex; flex-direction:column;
  }
  @keyframes slideUp{from{transform:translateY(100%);} to{transform:translateY(0);}}
  .day-slots-handle{
    width:36px; height:4px; background:var(--muted-2); border-radius:2px;
    margin:12px auto 0;
  }
  .day-slots-header{
    padding:16px 22px 12px; display:flex; align-items:center; justify-content:space-between;
    border-bottom:1px solid var(--red-dim); flex:none;
  }
  .day-slots-header h3{font-size:1rem; font-weight:600; font-family:'Playfair Display',serif;}
  .day-slots-header span{font-size:.78rem; color:var(--muted);}
  .day-slots-body{overflow-y:auto; padding:16px 22px 0; flex:1;}
  .day-slot-row{
    display:flex; align-items:center; gap:14px;
    padding:12px 14px; border-radius:12px; margin-bottom:8px;
    border:1px solid rgba(196,60,45,.12); background:var(--surface-2);
    cursor:pointer; transition:all .15s;
  }
  .day-slot-row.slot-taken{
    cursor:default; opacity:.85;
    border-color:rgba(196,60,45,.2); background:rgba(196,60,45,.06);
  }
  .day-slot-row.slot-free:hover{
    border-color:var(--red); background:rgba(196,60,45,.1);
  }
  .day-slot-time{
    font-size:.95rem; font-weight:700; color:var(--red-bright);
    font-family:'Playfair Display',serif; min-width:46px; flex:none;
  }
  .day-slot-info{flex:1; min-width:0;}
  .day-slot-info strong{display:block; font-size:.88rem; color:var(--cream); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
  .day-slot-info span{font-size:.74rem; color:var(--muted);}
  .day-slot-badge{
    font-size:.68rem; padding:3px 8px; border-radius:999px; flex:none;
  }
  .badge-taken{background:rgba(196,60,45,.15); color:var(--red-bright); border:1px solid rgba(196,60,45,.3);}
  .badge-free{background:rgba(63,174,102,.12); color:var(--green-bright); border:1px solid rgba(63,174,102,.3);}
  .day-slots-new-form{
    border:1px solid var(--red-dim); border-radius:var(--radius);
    padding:16px; margin-top:10px; background:var(--bg); animation:fadeSlide .25s ease;
  }
  .day-slots-new-form h4{font-size:.88rem; margin-bottom:12px; color:var(--red-bright);}
  .day-slots-new-form select{
    background:var(--surface-2) !important;
    color:var(--cream) !important;
    border-bottom:1px solid var(--red-dim);
  }
  .day-slots-new-form select option{
    background:var(--surface-2);
    color:var(--cream);
  }
  select, select option {
    background:var(--surface-2) !important;
    color:var(--cream) !important;
  }

  /* ---------- POPUP DE SUCESSO ---------- */
  .modal-overlay{
    position:fixed; inset:0; background:rgba(0,0,0,.78); backdrop-filter:blur(4px);
    display:none; align-items:center; justify-content:center; z-index:50; padding:24px;
  }
  .modal-overlay.show{display:flex;}
  .modal-card{
    width:100%; max-width:380px; background:var(--surface); border:1px solid var(--green-dim);
    border-radius:var(--radius); padding:32px 24px; text-align:center; animation:fadeSlide .3s ease;
  }
  .modal-card .confirm-icon{
    width:72px; height:72px; border-radius:50%; margin:0 auto 22px;
    background:var(--green-dim); border:1px solid var(--green-bright);
    display:flex; align-items:center; justify-content:center;
  }
  .modal-card .confirm-icon svg{width:32px; height:32px; color:var(--green-bright);}
  .modal-card h2{font-size:1.2rem; margin-bottom:10px;}
  .modal-card p.muted{color:var(--muted); font-size:.85rem; margin-bottom:22px;}
  .confirm-card{
    width:100%; background:var(--surface-2); border:1px solid var(--red-dim); border-radius:var(--radius-sm);
    padding:18px; text-align:left; margin-bottom:24px;
  }
  .confirm-row{display:flex; justify-content:space-between; padding:8px 0; font-size:.86rem; border-bottom:1px solid rgba(196,60,45,.1);}
  .confirm-row:last-child{border-bottom:none;}
  .confirm-row span{color:var(--muted);}
  .confirm-row strong{color:var(--cream); font-weight:500;}

  /* ---------- APPOINTMENTS ---------- */
  .appt-card{
    margin:0 22px 14px; padding:14px 16px; border-radius:var(--radius); background:var(--surface);
    border:1px solid rgba(196,60,45,.12); display:flex; flex-direction:column; gap:10px;
  }
  .appt-card-top{display:flex; align-items:center; gap:12px;}
  .appt-date{
    flex:none; width:46px; height:46px; border-radius:10px;
    background:rgba(196,60,45,.12); display:flex; flex-direction:column;
    align-items:center; justify-content:center;
  }
  .appt-date span{display:block; font-size:.58rem; color:var(--muted); text-transform:uppercase; letter-spacing:.06em;}
  .appt-date strong{display:block; font-family:'Playfair Display',serif; font-size:1.15rem; color:var(--red-bright); line-height:1;}
  .appt-info{flex:1; min-width:0;}
  .appt-info h3{font-size:.95rem; margin-bottom:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
  .appt-info .appt-phone{font-size:.8rem; color:var(--red-bright); text-decoration:none; display:block; margin-bottom:2px;}
  .appt-info p{font-size:.76rem; color:var(--muted);}
  .appt-card-bottom{display:flex; align-items:center; justify-content:space-between; padding-top:8px; border-top:1px solid rgba(196,60,45,.08);}
  .appt-status{
    font-size:.62rem; padding:4px 10px; border-radius:999px; text-transform:uppercase; letter-spacing:.06em;
    background:rgba(111,165,122,.15); color:var(--ok); flex:none;
  }
  .appt-side{display:flex; flex-direction:column; align-items:flex-end; gap:8px; flex:none;}
  .appt-value{font-family:'Playfair Display',serif; color:var(--red-bright); font-size:1rem;}
  .appt-actions{padding:0 22px; margin:-4px 0 18px; display:flex; gap:18px;}
  .link-danger{background:none; border:none; color:var(--danger); font-size:.78rem; cursor:pointer; text-decoration:underline;}
  .link-text{background:none; border:none; color:var(--muted); font-size:.78rem; cursor:pointer; text-decoration:underline;}

  /* ---------- CARTÃO FIDELIDADE ---------- */
  .loyalty-card{
    margin:18px 22px; background:linear-gradient(135deg,#1e0e0a 0%,#2a1208 50%,#1a0a06 100%);
    border:1px solid rgba(196,60,45,.35); border-radius:20px; padding:22px 20px 18px; overflow:hidden; position:relative;
  }
  .loyalty-card::before{
    content:''; position:absolute; top:-40px; right:-40px; width:160px; height:160px;
    border-radius:50%; background:rgba(196,60,45,.06); pointer-events:none;
  }
  .loyalty-header{display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:16px;}
  .loyalty-title{font-family:'Playfair Display',serif; font-size:1.1rem; color:var(--cream); font-weight:600;}
  .loyalty-sub{font-size:.72rem; color:var(--muted); margin-top:3px; letter-spacing:.08em; text-transform:uppercase;}
  .loyalty-badge{
    background:var(--red); color:#fff; font-size:.8rem; font-weight:700;
    padding:6px 12px; border-radius:999px; letter-spacing:.04em;
  }
  .loyalty-progress-wrap{background:rgba(255,255,255,.08); border-radius:999px; height:6px; margin-bottom:10px; overflow:hidden;}
  .loyalty-progress-bar{height:100%; background:linear-gradient(90deg,var(--red),var(--red-bright)); border-radius:999px; transition:width .6s cubic-bezier(.4,0,.2,1);}
  .loyalty-next{
    font-size:.78rem; color:var(--red-bright); margin-bottom:18px;
    background:rgba(196,60,45,.1); border:1px solid rgba(196,60,45,.2);
    border-radius:8px; padding:8px 12px; text-align:center; letter-spacing:.02em;
  }
  .loyalty-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:10px; margin-bottom:18px;}
  .loyalty-grid .loyalty-row-2{grid-column:1/-1; display:grid; grid-template-columns:repeat(6,1fr); gap:10px;}
  .loyalty-seal{
    aspect-ratio:1; border-radius:50%; display:flex; align-items:center; justify-content:center;
    position:relative; flex-direction:column;
  }
  .loyalty-seal.empty{
    border:2px dashed rgba(196,60,45,.3); background:rgba(196,60,45,.04);
  }
  .loyalty-seal.filled{
    background:radial-gradient(circle at 35% 35%, var(--red-bright), var(--red));
    border:2px solid var(--red-bright); box-shadow:0 4px 14px rgba(196,60,45,.4);
  }
  .loyalty-seal.filled svg{width:52%; height:52%; color:#fff;}
  .loyalty-seal .seal-num{
    position:absolute; bottom:1px; right:2px; font-size:.52rem;
    color:rgba(255,255,255,.4); font-weight:700;
  }
  .loyalty-seal.filled .seal-num{color:rgba(255,255,255,.7);}
  .loyalty-seal.special-5 .discount-badge{
    position:absolute; bottom:-8px; left:50%; transform:translateX(-50%);
    background:var(--green); color:#0a1f0a; font-size:.52rem; font-weight:800;
    padding:2px 5px; border-radius:5px; white-space:nowrap; letter-spacing:.04em;
  }
  .loyalty-seal.special-11{
    border:2px dashed rgba(212,175,55,.5); background:rgba(212,175,55,.06);
  }
  .loyalty-seal.special-11.filled{
    background:radial-gradient(circle at 35% 35%, #f5d060, #c9a227);
    border:2px solid #f5d060; box-shadow:0 4px 16px rgba(212,175,55,.5);
  }
  .loyalty-seal.special-11 .discount-badge{
    position:absolute; bottom:-8px; left:50%; transform:translateX(-50%);
    background:linear-gradient(135deg,#f5d060,#c9a227); color:#3a2800;
    font-size:.52rem; font-weight:800;
    padding:2px 5px; border-radius:5px; white-space:nowrap; letter-spacing:.04em;
    box-shadow:0 1px 4px rgba(0,0,0,.3);
  }
  .loyalty-seal.special-11.empty .gift-icon{
    font-size:1.1rem; opacity:.4;
  }
  .loyalty-legend{display:flex; align-items:center; font-size:.72rem; color:var(--muted);}
  .loyalty-dot{display:inline-block; width:8px; height:8px; border-radius:50%; border:1.5px dashed rgba(196,60,45,.4); margin-right:5px;}
  .loyalty-dot.filled{background:var(--red); border:none;}
  .loyalty-history-item{
    display:flex; align-items:center; gap:12px; padding:12px 0;
    border-bottom:1px solid rgba(255,255,255,.06);
  }
  .loyalty-history-num{
    width:28px; height:28px; border-radius:50%; background:var(--red);
    display:flex; align-items:center; justify-content:center;
    font-size:.72rem; font-weight:700; color:#fff; flex:none;
  }
  .loyalty-history-info{flex:1;}
  .loyalty-history-info strong{font-size:.88rem; color:var(--cream); display:block;}
  .loyalty-history-info span{font-size:.75rem; color:var(--muted);}

  /* ---------- MODAL FIDELIDADE CLIENTE (ADMIN VIEW) ---------- */
  .loyalty-modal-overlay{
    position:fixed; inset:0; background:rgba(0,0,0,.85); backdrop-filter:blur(5px);
    display:none; align-items:flex-end; justify-content:center; z-index:70; padding:0;
  }
  .loyalty-modal-overlay.show{display:flex;}
  .loyalty-modal-sheet{
    width:100%; max-width:430px; background:var(--surface);
    border-radius:22px 22px 0 0; border-top:1px solid var(--red-dim);
    padding:0 0 36px; animation:slideUp .3s ease;
    max-height:90vh; display:flex; flex-direction:column;
  }
  .loyalty-modal-handle{
    width:36px; height:4px; background:var(--muted-2); border-radius:2px;
    margin:12px auto 0; flex:none;
  }
  .loyalty-modal-header{
    display:flex; align-items:center; justify-content:space-between;
    padding:14px 22px 12px; border-bottom:1px solid var(--red-dim); flex:none;
  }
  .loyalty-modal-header h3{font-size:1rem; font-weight:600; font-family:'Playfair Display',serif;}
  .loyalty-modal-header span{font-size:.78rem; color:var(--muted);}
  .loyalty-modal-body{overflow-y:auto; padding:0 0 4px; flex:1;}

  /* ---------- COMPARTILHAR LINK ---------- */
  .share-bar{
    padding:10px 22px; border-bottom:1px solid var(--red-dim);
  }
  .share-btn{
    width:100%; padding:10px 16px; border-radius:var(--radius);
    background:rgba(196,60,45,.1); border:1px solid var(--red-dim);
    color:var(--cream); font-size:.82rem; font-weight:600;
    display:flex; align-items:center; justify-content:center; gap:8px;
    cursor:pointer; transition:background .15s;
  }
  .share-btn:hover{ background:rgba(196,60,45,.2); }
  .share-modal-overlay{
    position:fixed; inset:0; background:rgba(0,0,0,.82); backdrop-filter:blur(5px);
    display:none; align-items:flex-end; justify-content:center; z-index:80;
  }
  .share-modal-overlay.show{ display:flex; }
  .share-modal-sheet{
    width:100%; max-width:430px; background:var(--surface);
    border-radius:22px 22px 0 0; border-top:1px solid var(--red-dim);
    padding:0 0 40px; animation:slideUp .3s ease;
  }
  .share-modal-handle{ width:36px; height:4px; background:var(--muted-2); border-radius:2px; margin:12px auto 0; }
  .share-modal-header{
    display:flex; align-items:center; justify-content:space-between;
    padding:14px 22px 12px; border-bottom:1px solid var(--red-dim);
  }
  .share-modal-header h3{ font-size:1rem; font-weight:600; font-family:'Playfair Display',serif; }
  .share-modal-body{ padding:20px 22px 0; }
  .share-link-box{
    background:var(--surface-2); border:1px solid var(--red-dim); border-radius:10px;
    padding:12px 14px; font-size:.78rem; color:var(--muted); word-break:break-all;
    margin-bottom:16px;
  }
  .share-actions{ display:flex; gap:10px; }
  .share-actions .btn{ flex:1; }

  /* ---------- CARD CLIENTE ---------- */
  .profile-edit-card{ padding:20px 22px 8px; }
  .profile-avatar-wrap{
    position:relative; width:88px; height:88px; border-radius:50%;
    margin:0 auto 22px; cursor:pointer;
  }
  .profile-avatar-wrap img{ width:100%; height:100%; border-radius:50%; object-fit:cover; border:2px solid var(--red); }
  .profile-avatar-placeholder{
    width:100%; height:100%; border-radius:50%; background:var(--surface);
    border:2px dashed var(--red-dim); color:var(--muted);
    display:flex; align-items:center; justify-content:center;
  }
  .profile-avatar-placeholder svg{ width:32px; height:32px; }
  .profile-avatar-edit-badge{
    position:absolute; bottom:0; right:0; width:26px; height:26px; border-radius:50%;
    background:var(--red); color:#fff; display:flex; align-items:center; justify-content:center;
    font-size:.75rem; border:2px solid var(--bg);
  }

  .client-stats-row{display:flex; gap:10px; padding:0 22px 14px;}
  .client-stat-card{
    flex:1; text-align:center; padding:12px 8px; border-radius:var(--radius-sm);
    background:var(--surface); border:1px solid var(--red-dim); cursor:pointer;
    transition:border-color .15s, background .15s;
  }
  .client-stat-card strong{display:block; font-family:'Playfair Display',serif; font-size:1.3rem; color:var(--cream);}
  .client-stat-card span{display:block; font-size:.66rem; color:var(--muted); margin-top:2px; line-height:1.3;}
  .client-stat-card.active{border-color:var(--red-bright); background:var(--surface-2);}
  .client-stat-card.warn strong{color:#f0c040;}
  .client-stat-card.danger strong{color:#e2543a;}

  .client-card{
    margin:0 22px 12px; padding:14px 16px; border-radius:var(--radius);
    background:var(--surface); border-left:4px solid var(--red-dim);
    border-top:1px solid rgba(196,60,45,.1); border-right:1px solid rgba(196,60,45,.1); border-bottom:1px solid rgba(196,60,45,.1);
    cursor:pointer; transition:border-color .15s;
  }
  .client-card:hover{ border-left-color:var(--red-bright); }
  .client-card.green{ border-left-color:#3fae66; }
  .client-card.yellow{ border-left-color:#d4a017; }
  .client-card.red{ border-left-color:#e2543a; }
  .client-card-top{ display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:10px; }
  .client-name{ font-size:.95rem; font-weight:600; color:var(--cream); }
  .client-phone{ font-size:.78rem; color:var(--muted); margin-top:2px; }
  .client-days-badge{
    font-size:.72rem; font-weight:700; padding:4px 10px; border-radius:999px; white-space:nowrap; flex:none;
  }
  .client-days-badge.green{ background:rgba(63,174,102,.15); color:#6fe3a0; }
  .client-days-badge.yellow{ background:rgba(212,160,23,.15); color:#f0c040; }
  .client-days-badge.red{ background:rgba(226,84,58,.15); color:#e2543a; }
  .client-card-bottom{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
  .client-loyalty{ font-size:.75rem; color:var(--muted); }
  .client-loyalty strong{ color:var(--red-bright); }



  /* ---------- CALENDÁRIO AGENDA ---------- */
  .cal-wrap{
    margin:14px 22px 0; background:var(--surface);
    border:1px solid rgba(196,60,45,.15); border-radius:var(--radius); overflow:hidden;
  }
  .cal-header{
    display:flex; align-items:center; justify-content:space-between;
    padding:14px 16px; border-bottom:1px solid rgba(196,60,45,.1);
  }
  .cal-nav{
    background:none; border:none; color:var(--cream); font-size:1.4rem;
    cursor:pointer; padding:4px 10px; border-radius:8px;
    transition:background .15s;
  }
  .cal-nav:active{ background:rgba(196,60,45,.2); }
  .cal-month-label{ font-family:'Playfair Display',serif; font-size:1.05rem; color:var(--cream); font-weight:600; }
  .cal-weekdays{
    display:grid; grid-template-columns:repeat(7,1fr);
    padding:8px 10px 4px; text-align:center;
  }
  .cal-weekdays span{ font-size:.65rem; color:var(--muted); text-transform:uppercase; letter-spacing:.06em; }
  .cal-grid{
    display:grid; grid-template-columns:repeat(7,1fr);
    padding:4px 10px 10px; gap:3px;
  }
  .cal-day{
    aspect-ratio:1; display:flex; align-items:center; justify-content:center;
    border-radius:50%; font-size:.85rem; cursor:pointer; color:var(--cream);
    position:relative; transition:background .15s;
  }
  .cal-day:active{ background:rgba(196,60,45,.25); }
  .cal-day.other-month{ color:rgba(255,255,255,.2); }
  .cal-day.has-booking::after{
    content:''; position:absolute; bottom:3px; left:50%; transform:translateX(-50%);
    width:5px; height:5px; border-radius:50%; background:var(--red);
  }
  .cal-day.today{ border:1.5px solid rgba(196,60,45,.5); }
  .cal-day.selected{ background:var(--red) !important; color:#fff !important; font-weight:700; }
  .cal-day.selected::after{ display:none; }
  .cal-day.closed{ color:rgba(255,255,255,.15); cursor:default; }
  .cal-today-btn{
    display:block; width:calc(100% - 32px); margin:0 16px 12px;
    background:rgba(196,60,45,.1); border:1px solid rgba(196,60,45,.25);
    color:var(--red-bright); border-radius:var(--radius); padding:8px;
    font-size:.82rem; cursor:pointer; text-align:center;
  }

  /* ---------- ADMIN ---------- */
  .admin-day{
    margin:0 22px 12px; padding:14px 16px; border-radius:var(--radius-sm); background:var(--surface);
    border:1px solid rgba(196,60,45,.12);
  }
  .admin-day-head{display:flex; justify-content:space-between; align-items:center; margin-bottom:10px;}
  .day-period-label{
    font-size:.68rem; color:var(--muted); text-transform:uppercase; letter-spacing:.08em;
    margin:10px 0 6px; padding-top:10px; border-top:1px solid rgba(255,255,255,.05);
  }
  .day-period-label:first-of-type{ border-top:none; margin-top:4px; }
  .day-closed-wrap{ display:flex; align-items:center; gap:8px; margin-bottom:10px; }
  .day-closed-wrap input[type=checkbox]{ width:16px; height:16px; accent-color:var(--red); cursor:pointer; }
  .day-closed-wrap label{ font-size:.82rem; color:var(--muted); cursor:pointer; }
  .admin-day-head strong{font-size:.9rem;}
  .switch{position:relative; width:40px; height:22px; flex:none;}
  .switch input{opacity:0; width:0; height:0;}
  .switch .track{position:absolute; inset:0; background:var(--surface-2); border:1px solid var(--red-dim); border-radius:999px; cursor:pointer; transition:.2s;}
  .switch .track:before{content:''; position:absolute; width:16px; height:16px; left:2px; top:2px; background:var(--muted); border-radius:50%; transition:.2s;}
  .switch input:checked + .track{background:var(--red-dim); border-color:var(--red-bright);}
  .switch input:checked + .track:before{transform:translateX(18px); background:var(--red-bright);}
  .admin-times{display:flex; gap:10px;}
  .admin-times .field{flex:1; margin-bottom:0;}
  .admin-times .field label{font-size:.6rem;}
  .admin-block{margin:24px 22px 4px;}
  .admin-block h3{font-size:.95rem; margin-bottom:14px;}
  .save-wrap{padding:26px 22px 10px;}

  /* ---------- BOTTOM NAV ---------- */
  .bottom-nav{
    position:fixed; bottom:0; left:0; right:0; max-width:430px; margin:0 auto;
    background:rgba(12,10,9,.92); backdrop-filter:blur(10px);
    border-top:1px solid var(--red-dim);
    display:none; justify-content:space-around; padding:12px 10px 16px; z-index:8;
  }
  .nav-item{display:flex; flex-direction:column; align-items:center; gap:5px; background:none; border:none; cursor:pointer; color:var(--muted-2);}
  .nav-item svg{width:21px; height:21px;}
  .nav-item span{font-size:.62rem; letter-spacing:.04em;}
  .nav-item.active{color:var(--red-bright);}

  /* ---------- toast ---------- */
  .toast{
    position:fixed; bottom:108px; left:50%; transform:translateX(-50%) translateY(20px);
    background:var(--red-bright); color:#1a1208; padding:12px 22px; border-radius:999px;
    font-size:.85rem; font-weight:600; opacity:0; pointer-events:none; transition:all .3s ease; z-index:50;
    white-space:nowrap;
  }
  .toast.show{opacity:1; transform:translateX(-50%) translateY(0);}

  .scissor-divider{display:flex; align-items:center; gap:10px; padding:8px 22px 4px; color:var(--red);}
  .scissor-divider svg{width:14px; height:14px; flex:none;}
  .scissor-divider .line{flex:1; height:1px; background:var(--red-dim);}

  .staff-admin-actions{display:flex; flex-direction:column; gap:6px; flex:none;}
  .icon-btn.small{width:30px; height:30px;}
  .icon-btn.small svg{width:14px; height:14px;}
  .icon-btn.danger{color:var(--danger); border-color:rgba(194,91,74,.3);}
  .staff-tags{display:flex; flex-wrap:wrap; gap:6px; margin-top:6px;}
  .tag-mini{font-size:.62rem; padding:3px 9px; border-radius:999px; background:var(--red-dim); color:var(--red-bright); white-space:nowrap;}
  .service-check-list{display:flex; flex-direction:column; gap:11px; margin-top:8px;}
  .check-row{display:flex; align-items:center; gap:10px; font-size:.85rem; color:var(--cream); cursor:pointer;}
  .check-row input{accent-color:var(--red-bright); width:16px; height:16px; flex:none;}
  .admin-inline-form{margin-top:14px; padding:16px; border-radius:var(--radius-sm); background:var(--surface-2); border:1px solid var(--red-dim);}

