   :root{
      --orange:#f97316;
      --teal:#06b6d4;
      --bg:#f5fbff;
      --bg2:#eef6ff;
      --card:rgba(255,255,255,.88);
      --card2:rgba(255,255,255,.74);
      --text:#0f172a;
      --muted:#64748b;
      --border:rgba(15,23,42,.10);
      --shadow2:0 18px 45px rgba(2,6,23,.10);
      --radius:22px;
      --errBg: rgba(239,68,68,.10);
      --errBorder: rgba(239,68,68,.28);
      --errText: rgba(185,28,28,.95);
    }

    body{
      margin:0;
      font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
      color:var(--text);
      background:
        radial-gradient(1200px 520px at 18% 10%, rgba(6,182,212,.18), transparent 55%),
        radial-gradient(1200px 520px at 88% 14%, rgba(249,115,22,.12), transparent 55%),
        linear-gradient(180deg, var(--bg), var(--bg2));
      min-height: 100vh;
    }

    .card-glass{
      background: linear-gradient(180deg, var(--card), var(--card2));
      border:1px solid var(--border);
      border-radius: var(--radius);
      box-shadow: var(--shadow2);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      padding: 2rem;
      position: relative;
      z-index: 10;
    }

    .section{ padding: 2.5rem 0; }
    .section-title{ font-weight:980; letter-spacing:-.01em; margin-bottom: 1.2rem; font-size: 1.7rem; }
    .muted{ color: var(--muted); }

    .form-control{
      background: rgba(255,255,255,.78);
      border:1px solid rgba(15,23,42,.12);
      color: var(--text);
      border-radius: 14px;
      padding: .9rem 1rem;
      -webkit-text-fill-color: var(--text);
    }
    .form-control:focus{
      background: rgba(255,255,255,.90);
      border-color: rgba(249,115,22,.35);
      box-shadow: 0 0 0 4px rgba(249,115,22,.14);
    }

    label.form-label{
      font-weight:950;
      color: rgba(15,23,42,.88);
      font-size: 0.9rem;
      margin-bottom: 0.4rem;
    }

    .ac-wrap{ position:relative; margin-bottom: 1rem; }
    .ac-ic{
      position:absolute; left:16px; top:50%;
      transform: translateY(-50%);
      color: rgba(15,23,42,.40);
      font-size: 18px;
      pointer-events: none;
      z-index: 5;
    }
    .ac-input{ padding-left: 46px !important; }

    .error-box{
      display:none;
      border-radius: 16px;
      border: 1px solid var(--errBorder);
      background: var(--errBg);
      padding: 14px 14px;
      margin: 12px 0 14px;
      position: relative;
    }
    .error-box.show{ display:block; }

    .error-head{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:10px;
      margin-bottom: 8px;
    }
    .error-title{
      display:flex;
      align-items:center;
      gap:10px;
      font-weight: 950;
      color: var(--errText);
    }
    .error-title i{ font-size: 16px; }
    .error-close{
      width:34px;height:34px;
      border-radius: 12px;
      border:1px solid rgba(185,28,28,.20);
      background: rgba(255,255,255,.70);
      color: rgba(185,28,28,.85);
      display:grid;
      place-items:center;
      cursor:pointer;
    }

    .error-list{
      margin:0;
      padding-left: 18px;
      color: var(--errText);
      font-weight: 850;
      font-size: 13px;
    }
    .error-list li{ margin: 6px 0; }

    .is-invalid-soft{
      border-color: rgba(239,68,68,.35) !important;
      box-shadow: 0 0 0 4px rgba(239,68,68,.12) !important;
    }

    .cta-box{
      margin-top: 1.1rem;
      padding-top: 1.1rem;
      border-top: 1px dashed rgba(15,23,42,.14);
      display:flex;
      flex-direction:column;
      gap:10px;
    }
    .btn-cta{
      width: 100%;
      border:0;
      border-radius: 16px;
      padding: 13px 14px;
      font-weight: 950;
      display:flex;
      align-items:center;
      justify-content:center;
      gap:10px;
      box-shadow: 0 18px 45px rgba(2,6,23,.10);
      cursor: pointer;
    }
    .btn-fixe{
      color:#fff;
      background: linear-gradient(135deg, var(--orange), rgba(249,115,22,.72));
    }
    .btn-wa{
      color:#0b2a22;
      background: linear-gradient(135deg, rgba(34,197,94,.18), rgba(6,182,212,.18));
      border:1px solid rgba(15,23,42,.10);
      box-shadow: none;
    }
    .cta-help{
      font-size: 12px;
      color: rgba(15,23,42,.60);
      font-weight: 800;
      display:flex;
      align-items:flex-start;
      gap:10px;
    }
    .cta-help i{ margin-top:2px; color: rgba(249,115,22,.9); }

    .place-popup{
      position:absolute;
      z-index: 3000;
      border-radius: 18px;
      border:1px solid rgba(15,23,42,.12);
      background: rgba(255,255,255,.98);
      box-shadow: 0 28px 80px rgba(2,6,23,.18);
      overflow:hidden;
      display:none;
      flex-direction: column;
    }
    .place-popup.open{ display: flex; }

    .pp-head, .pp-search { flex-shrink: 0; }

    .pp-head{
      padding: 12px 14px;
      background: rgba(2,6,23,.03);
      border-bottom:1px solid rgba(15,23,42,.10);
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:10px;
    }
    .pp-title{
      display:flex; align-items:center; gap:10px;
      font-weight: 950;
      color: rgba(15,23,42,.86);
      font-size: 13px;
    }
    .pp-dot{
      width:10px;height:10px;border-radius:999px;
      background: var(--teal);
      box-shadow:0 0 0 4px rgba(6,182,212,.12);
    }
    .pp-close{
      width:36px;height:36px;border-radius:12px;
      border:1px solid rgba(15,23,42,.10);
      background: rgba(255,255,255,.9);
      color: rgba(15,23,42,.65);
      display:grid; place-items:center;
      cursor: pointer;
    }

    .pp-search{ padding: 12px 14px 10px; position:relative; flex-shrink: 0; }
    .pp-search .si{
      position:absolute;
      left: 28px;
      top: 50%;
      transform: translateY(-50%);
      color: rgba(15,23,42,.45);
    }
    .pp-search input{ padding-left: 42px; border-radius: 14px; }

    .pp-section-title{
      padding: 8px 14px 4px;
      font-size: 11px;
      font-weight: 950;
      color: rgba(15,23,42,.55);
      text-transform: uppercase;
      letter-spacing: .08em;
      flex-shrink: 0;
    }

    #ppPresetWrap, #ppGoogleWrap {
      display: flex;
      flex-direction: column;
      flex: 1;
      min-height: 0;
      overflow: hidden;
    }

    .pp-list{
      overflow-y: auto;
      min-height: 0;
      padding: 4px 0;
      flex: 1;
      overscroll-behavior: contain;
    }

    .pp-item{
      display:flex;
      gap:12px;
      padding: 12px 14px;
      cursor:pointer;
      transition: .12s;
      align-items:center;
    }
    .pp-item:hover{ background: rgba(249,115,22,.06); }

    .pp-badge{
      width:40px;height:40px;border-radius:14px;
      border:1px solid rgba(15,23,42,.10);
      background: rgba(6,182,212,.10);
      display:grid; place-items:center;
      color: rgba(15,23,42,.78);
      flex:0 0 auto;
    }
    .pp-name{ font-weight: 950; font-size: 14px; margin: 0; }
    .pp-sub{ color: rgba(15,23,42,.60); font-size: 12px; margin: 0; }

    .pp-empty{
      padding: 16px 14px;
      color: rgba(15,23,42,.55);
      font-size: 13px;
      font-weight: 800;
    }

    .pp-loading{
      padding:14px;
      display:flex;
      align-items:center;
      gap:10px;
      color: rgba(15,23,42,.65);
      font-size: 13px;
      font-weight: 800;
    }

    .spinner{
      width:18px;
      height:18px;
      border-radius:999px;
      border:2px solid rgba(15,23,42,.12);
      border-top-color: var(--teal);
      animation: spin .8s linear infinite;
      flex:0 0 auto;
    }

    .dtp-popup{
      position:absolute;
      z-index: 4000;
      width: 360px;
      border-radius: 18px;
      border:1px solid rgba(15,23,42,.12);
      background: rgba(255,255,255,.98);
      box-shadow: 0 28px 80px rgba(2,6,23,.18);
      overflow:hidden;
      display:none;
      flex-direction: column;
    }
    .dtp-popup.open{ display:flex; }

    .dtp-head{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:10px;
      padding: 12px 12px;
      background: rgba(2,6,23,.03);
      border-bottom:1px solid rgba(15,23,42,.10);
      flex-shrink: 0;
    }

    .dtp-title{
      display:flex;
      gap:10px;
      align-items:center;
      justify-content:center;
      flex:1;
    }

    .dtp-select{
      border:1px solid rgba(15,23,42,.12);
      background: rgba(255,255,255,.95);
      border-radius: 12px;
      padding: 10px 12px;
      font-weight: 800;
      color: rgba(15,23,42,.85);
      outline:none;
    }

    .dtp-nav{
      width:38px;height:38px;
      border-radius: 12px;
      border:1px solid rgba(15,23,42,.10);
      background: rgba(255,255,255,.9);
      display:grid;
      place-items:center;
      cursor:pointer;
      color: rgba(15,23,42,.75);
    }

    .dtp-body{
      padding: 12px;
      display:flex;
      flex-direction:column;
      flex:1;
      min-height:0;
    }

    .dtp-week{
      display:grid;
      grid-template-columns: repeat(7, 1fr);
      gap: 6px;
      font-size: 11px;
      font-weight: 900;
      color: rgba(15,23,42,.55);
      text-transform: uppercase;
      letter-spacing: .08em;
      margin-bottom: 8px;
      flex-shrink: 0;
    }
    .dtp-week > div{ text-align:center; padding: 6px 0; }

    .dtp-grid{
      display:grid;
      grid-template-columns: repeat(7, 1fr);
      gap: 6px;
      margin-bottom: 12px;
      overflow:auto;
      min-height:0;
      flex:1;
      overscroll-behavior: contain;
    }

    .dtp-day{
      height: 40px;
      border-radius: 12px;
      border:1px solid rgba(15,23,42,.08);
      background: rgba(255,255,255,.9);
      font-weight: 900;
      color: rgba(15,23,42,.80);
      display:flex;
      align-items:center;
      justify-content:center;
      cursor:pointer;
      user-select:none;
    }
    .dtp-day.muted{ opacity:.35; cursor: default; }
    .dtp-day.selected{
      background: rgba(249,115,22,.12);
      border-color: rgba(249,115,22,.35);
      box-shadow: 0 10px 25px rgba(249,115,22,.12);
    }

    .dtp-time{
      display:flex;
      align-items:center;
      justify-content:center;
      gap:10px;
      padding-top: 4px;
      padding-bottom: 12px;
      flex-shrink: 0;
    }
    .dtp-time-label{
      font-size: 10px;
      font-weight: 950;
      color: rgba(15,23,42,.55);
      text-transform: uppercase;
      letter-spacing: .08em;
      margin-bottom: 6px;
      text-align:center;
    }
    .dtp-time-col{ width: 140px; }
    .dtp-time-sep{
      font-weight: 950;
      color: rgba(15,23,42,.55);
      margin-top: 18px;
    }

    .dtp-validate{
      width:100%;
      border:0;
      border-radius: 14px;
      padding: 12px 14px;
      font-weight: 950;
      color: white;
      background: linear-gradient(135deg, var(--teal), rgba(6,182,212,.75));
      box-shadow: 0 18px 45px rgba(6,182,212,.18);
      flex-shrink: 0;
    }

    @keyframes spin{
      0%{ transform: rotate(0deg); }
      100%{ transform: rotate(360deg); }
    }

