/* MPT Booking — shared front-end styles (booking widget, classes, manage, console shell) */
.mpt{--g:#36D900;--gd:#2a9e0d;--ink:#1c1c22;--mut:#646473;--line:#e4e4e8;--soft:#f5f6f4;--bad:#b3261e;--warn:#b06000;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);line-height:1.5;font-size:16px;max-width:760px;margin:0 auto}
.mpt *{box-sizing:border-box}
.mpt h1,.mpt h2,.mpt h3{margin:0 0 .4em;line-height:1.2;font-weight:700}
.mpt h2{font-size:1.35rem}.mpt h3{font-size:1.05rem}
.mpt p{margin:.3em 0 .9em}
.mpt .mut{color:var(--mut)}.mpt .small{font-size:.86rem}
.mpt-loading{color:var(--mut);padding:24px 0}
.mpt-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--g);color:#fff;border:0;border-radius:8px;padding:11px 18px;font-weight:700;font-size:1rem;cursor:pointer;text-decoration:none;line-height:1.1}
.mpt-btn:hover{background:var(--gd);color:#fff}.mpt-btn:disabled{opacity:.5;cursor:default}
.mpt-btn-ghost{background:#fff;color:var(--ink);border:1px solid var(--line)}.mpt-btn-ghost:hover{background:var(--soft);color:var(--ink)}
.mpt-btn-sm{padding:7px 12px;font-size:.9rem;border-radius:7px}
.mpt-btn-danger{background:#fff;color:var(--bad);border:1px solid #efc4c0}.mpt-btn-danger:hover{background:#fdf1f0;color:var(--bad)}
.mpt-steps{display:flex;gap:6px;margin:0 0 18px;padding:0;list-style:none;font-size:.82rem;color:var(--mut)}
.mpt-steps li{flex:1;border-top:3px solid var(--line);padding-top:6px}
.mpt-steps li.on{border-color:var(--g);color:var(--ink);font-weight:600}.mpt-steps li.done{border-color:var(--gd)}
.mpt-card{border:1px solid var(--line);border-radius:12px;padding:16px 18px;margin:0 0 12px;background:#fff}
.mpt-card.pick{cursor:pointer;transition:border-color .12s,box-shadow .12s}
.mpt-card.pick:hover{border-color:var(--g);box-shadow:0 2px 12px rgba(54,217,0,.12)}
.mpt-card .row{display:flex;justify-content:space-between;align-items:center;gap:12px}
.mpt-price{font-weight:700;white-space:nowrap}
.mpt-tag{display:inline-block;font-size:.76rem;padding:2px 8px;border-radius:999px;background:var(--soft);color:var(--mut);margin-left:6px;vertical-align:middle}
.mpt-tag.dot{padding-left:18px;position:relative}.mpt-tag.dot:before{content:"";position:absolute;left:7px;top:50%;width:7px;height:7px;border-radius:50%;background:var(--tc,#888);transform:translateY(-50%)}
/* Group classes: a green-tinted block so a class is never mistaken for a 1-on-1 session.
   Tint + a solid green spine, not a green fill — the brand green is too bright to hold body text. */
.mpt-svc-group{margin:0}
.mpt-svc-group + .mpt-svc-group{margin-top:24px}
.mpt-svc-group h2,.mpt-svc-group h3{color:var(--gd);display:flex;align-items:center;gap:10px}
.mpt-svc-group h2:after,.mpt-svc-group h3:after{content:"";flex:1;height:2px;border-radius:2px;background:linear-gradient(90deg,rgba(54,217,0,.5),rgba(54,217,0,0))}
.mpt-card.is-svc{background:#f3fbef;border-color:#c2e9af;border-left:4px solid var(--g);padding-left:14px}
.mpt-card.is-svc:hover{background:#ecf8e4;border-color:var(--g);box-shadow:0 2px 12px rgba(54,217,0,.18)}
.mpt-tag.is-svc{background:rgba(54,217,0,.18);color:#1f7a08;font-weight:600}
.mpt-back{background:none;border:0;color:var(--mut);cursor:pointer;padding:0;margin:0 0 12px;font-size:.92rem}
.mpt-back:hover{color:var(--ink)}
.mpt-days{display:flex;gap:6px;overflow-x:auto;padding:2px 0 10px;scrollbar-width:thin}
.mpt-day{flex:0 0 auto;min-width:62px;border:1px solid var(--line);border-radius:10px;padding:8px 6px;text-align:center;cursor:pointer;background:#fff}
.mpt-day .d{font-size:.72rem;color:var(--mut);text-transform:uppercase;letter-spacing:.4px}.mpt-day .n{font-size:1.15rem;font-weight:700}
.mpt-day .c{font-size:.7rem;color:var(--gd)}
.mpt-day.on{border-color:var(--g);background:#f3fbef}.mpt-day.none{opacity:.45;cursor:default}
.mpt-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px;margin:8px 0 14px}
.mpt-slot{border:1px solid var(--line);border-radius:8px;padding:9px 4px;text-align:center;font-weight:600;cursor:pointer;background:#fff}
.mpt-slot:hover{border-color:var(--g);background:#f3fbef}
.mpt-slot.picked{border-color:var(--g);background:var(--g);color:#3f3f4a;font-weight:700}
.mpt-slot.picked .who{color:#3f3f4a;opacity:.75}
.mpt-slot.picked:after{content:" \2713"}
.mpt-cart{position:sticky;bottom:0;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin:6px 0 0;box-shadow:0 -4px 18px rgba(0,0,0,.07)}
.mpt-cart .list{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}
.mpt-cart .chip{display:inline-flex;align-items:center;gap:4px;background:var(--soft);border-radius:999px;padding:4px 6px 4px 11px;font-size:.82rem;font-weight:600;white-space:nowrap}
.mpt-cart .chip button{background:none;border:0;cursor:pointer;color:var(--mut);font-size:1rem;line-height:1;padding:0 3px}
.mpt-cart .chip button:hover{color:var(--bad)}
.mpt-cart .mpt-btn{width:100%}
.mpt-slot .who{display:block;font-size:.7rem;font-weight:400;color:var(--mut);margin-top:2px}
.mpt-form label{display:block;font-weight:600;font-size:.9rem;margin:10px 0 4px}
.mpt-form input,.mpt-form select,.mpt-form textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:10px 12px;font:inherit;background:#fff}
.mpt-form input:focus,.mpt-form select:focus,.mpt-form textarea:focus{outline:2px solid var(--g);outline-offset:1px;border-color:var(--g)}
/* the width:100% above is for text fields; a checkbox must stay its own size or it
   stretches across the row and pushes its label onto the next line */
.mpt-form input[type=checkbox],.mpt-form input[type=radio]{width:auto;padding:0;margin:0;flex:0 0 auto}
.mpt-check,.mpt-form label:has(>input[type=checkbox]),.mpt-form label:has(>input[type=radio]){
  display:flex;align-items:center;gap:9px;font-weight:400;cursor:pointer;line-height:1.35}
.mpt-check input{flex:0 0 auto;width:auto}
.mpt-form .hp{position:absolute;left:-9999px;opacity:0}
.mpt-summary{background:var(--soft);border-radius:10px;padding:12px 14px;margin:0 0 12px}
.mpt-summary b{display:block;font-size:1.05rem}
.mpt-err{background:#fdf1f0;border:1px solid #efc4c0;color:var(--bad);border-radius:8px;padding:10px 12px;margin:10px 0}
.mpt-ok{background:#f3fbef;border:1px solid #cdebc0;color:#25620c;border-radius:8px;padding:10px 12px;margin:10px 0}
.mpt-done{text-align:center;padding:26px 10px}
.mpt-done .tick{width:64px;height:64px;border-radius:50%;background:var(--g);color:#fff;font-size:34px;line-height:64px;margin:0 auto 12px}
.mpt-list{list-style:none;margin:0;padding:0}
.mpt-list li{display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding:12px 0}
.mpt-list li:last-child{border-bottom:0}
.mpt-when{font-weight:700}.mpt-when small{display:block;font-weight:400;color:var(--mut)}
.mpt-acts{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.mpt-cal{position:relative}
.mpt-cal summary{list-style:none;cursor:pointer;color:var(--gd);font-size:.88rem;font-weight:600;white-space:nowrap;padding:6px 2px}
.mpt-cal summary::-webkit-details-marker{display:none}
.mpt-cal summary:before{content:"\1F4C5 ";font-weight:400}
.mpt-cal summary:hover{text-decoration:underline}
.mpt-again{color:var(--gd);font-size:.88rem;font-weight:600;text-decoration:none;white-space:nowrap;padding:6px 2px}
.mpt-again:hover{text-decoration:underline}
.mpt-again:before{content:"\21BB ";font-weight:400}
.mpt-cal .opts{position:absolute;right:0;top:100%;z-index:5;background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:0 6px 22px rgba(0,0,0,.12);min-width:170px;overflow:hidden}
.mpt-cal .opts a{display:block;padding:10px 14px;color:var(--ink);text-decoration:none;font-size:.9rem;font-weight:600}
.mpt-cal .opts a:hover{background:var(--soft)}
.mpt-cal .opts a+a{border-top:1px solid var(--line)}
@media (max-width:520px){.mpt-list li{flex-wrap:wrap}.mpt-acts{width:100%;justify-content:space-between;margin-top:8px}.mpt-cal .opts{right:auto;left:0}}
.mpt-gate{text-align:center;padding:40px 10px}
.mpt-link{background:none;border:0;padding:0;color:var(--gd);text-decoration:underline;cursor:pointer;font:inherit;font-size:inherit}
.mpt-status{font-size:.76rem;padding:2px 8px;border-radius:999px;background:var(--soft);color:var(--mut)}
.mpt-status.cancelled{background:#fdf1f0;color:var(--bad)}.mpt-status.attended{background:#eef6ff;color:#1d4ed8}.mpt-status.no_show{background:#fff5e6;color:var(--warn)}
.mpt-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:0 0 16px;overflow-x:auto}
.mpt-tabs button{background:none;border:0;border-bottom:3px solid transparent;padding:10px 12px;font:inherit;font-weight:600;color:var(--mut);cursor:pointer;white-space:nowrap}
.mpt-tabs button.on{color:var(--ink);border-color:var(--g)}
.mpt-inline{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.mpt-inline>*{flex:1 1 auto}
@media (max-width:520px){.mpt{font-size:15px}.mpt-slots{grid-template-columns:repeat(auto-fill,minmax(76px,1fr))}}
