*{box-sizing:border-box}body{font:12px Arial,Tahoma,sans-serif;color:#544a54;background:#fff;margin:0}.preview{background:#f5f5f5;color:#555;font-size:11px;padding:7px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px}.preview button{padding:4px 10px;font-size:11px}main{width:650px;max-width:calc(100% - 24px);margin:20px auto}header{text-align:center;margin-bottom:10px}header img{max-width:90%;height:auto}nav{display:flex;justify-content:center;gap:5px;margin:10px 0 20px}nav button{border:1px solid #ddd;padding:10px 16px;font-size:12px;min-width:46px}nav .active{border-color:#544a54}button,input,select,textarea{font-family:inherit;color:inherit}button{background:#fff;border:1px solid #aaa;border-radius:3px;cursor:pointer;padding:13px 19px;font-size:14px}button:disabled{opacity:.45;cursor:default}button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--outlet-focus,#238dce);outline-offset:2px}h1,h2,.service-row{font-size:14px;font-weight:normal;background:var(--outlet-bar,#00c75a);color:#fff;padding:10px;margin:0 0 18px}h2{margin-top:20px}.service-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.service-row select{max-width:100%;width:275px;font-size:12px;background:white;border:1px solid #aaa;padding:3px}.service-row small{font-size:12px;white-space:nowrap}.actions{display:flex;justify-content:space-between;margin:24px 0 12px}.actions button{font-size:14px;min-width:90px}.calendar{width:280px;max-width:100%;margin:0 auto 25px}.month{display:flex;justify-content:space-between;align-items:center;padding:0 0 8px}.month button{padding:5px 12px}.month strong{font-size:14px}.days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.days>span{text-align:center;padding:5px;font-weight:bold}.days button{border:0;padding:7px 0;font-size:12px;min-height:30px;border-radius:0;background:#f7f7f7}.days button.chosen{background:#32b4d8;color:#fff}.days button:disabled{opacity:.25}.service-name{text-align:center;font-size:14px;margin:24px 0}.staff{display:grid;grid-template-columns:repeat(4,1fr);gap:24px 12px;margin:26px 25px}.staff button{border:0;padding:10px 2px;min-width:0;font-size:13px;background:white}.staff img{height:100px;width:100px;max-width:100%;object-fit:contain;display:block;margin:auto auto 6px}.staff button.selected,.times button.selected{background:#605663;color:#fff;box-shadow:0 0 6px #777}.staff button:hover,.times button:hover{box-shadow:0 0 6px #777}.times{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 22px;padding:10px 30px}.times button{border:0;font-size:12px;padding:10px 0;min-height:34px}.empty{text-align:center;padding:35px 10px;font-size:14px}dl{max-width:400px;margin:20px auto}dl>div{display:grid;grid-template-columns:105px 1fr;margin:10px 0}dd{margin:0}.contact{display:grid;grid-template-columns:100px 1fr;align-items:start;gap:14px;margin:18px 0}.contact input,.contact textarea{padding:9px;border:1px solid #bbb;width:100%;font-size:14px}.phone{display:flex;gap:8px}.phone select{width:68px}.note{font-size:12px;color:#666;line-height:1.6}.notice{text-align:center;border:1px solid #ddd;padding:20px;line-height:1.7}footer{border-top:1px solid #eee;text-align:center;font-size:10px;margin-top:20px;padding:12px;line-height:1.8}a{color:#5195aa} @media(max-width:520px){main{margin-top:14px}.service-row{display:block}.service-row label{display:block;margin-bottom:8px}.service-row select{width:100%;padding:7px}.service-row small{display:block;margin-top:9px}.staff{margin:20px 0;gap:12px 4px}.staff img{height:80px;width:80px}.staff button{font-size:11px}.times{padding:8px 0;gap:10px}.times button{min-height:44px}nav button{padding:9px 10px}.contact{grid-template-columns:75px 1fr}header img{width:300px}}

dialog{border:1px solid #bbb;border-radius:3px;width:400px;max-width:calc(100% - 30px);font:12px Arial;color:#544a54}dialog::backdrop{background:#0005}dialog input{max-width:160px;padding:8px}dialog h2{margin-top:0}

/* REA-observed original geometry; the preview marker stays outside the booking panel. */
.preview{position:fixed;bottom:8px;left:8px;right:auto;max-width:calc(100% - 16px);z-index:10;border:1px solid #ddd;border-radius:3px;background:#fffffff5;font-size:10px;padding:5px 8px;box-shadow:0 1px 5px #0001}.preview button{font-size:10px}main{width:650px;max-width:100%;margin:0 auto 55px}.booking-panel{box-shadow:0 5px 8px #0003}header{height:121.4px;padding:4px 0;margin:0 0 10px}header img{width:316.1px;height:113.4px;max-width:100%;object-fit:contain}nav{height:59.667px;align-items:flex-start;gap:4px;margin:0 0 5px;padding-bottom:5px}nav button{width:10%;min-width:0;height:51.33px;padding:0;border-radius:0;line-height:50px;font-size:12px}nav button.active{width:25%}nav button:disabled{opacity:.4}h1,h2{height:40px;font-size:16px;line-height:40px;padding:0 10px;margin:0;font-weight:normal}.service-row{height:40px;display:flex;flex-wrap:nowrap;padding:0;gap:0;margin:5px 0 15px;font-size:12px}.service-row label{width:50%;flex-shrink:0;padding-left:10px;font-size:16px}.service-row select{width:150px;font-size:16px;padding:1px 2px;height:23px;border-radius:0}.service-row small{font-size:12px;margin-left:16px}.actions{margin:0;min-height:80px;align-items:flex-start;padding:10px;gap:10px}.actions button{padding:0 20px;height:58px;min-width:0;font-size:18px;font-weight:normal}.calendar{width:240px;height:210px;max-width:100%;margin:10px auto 25px;padding:0 2px}.month{height:30px;padding:0}.month span{white-space:nowrap}.month button{font-size:21px;border:0;height:30px;min-height:0;padding:0 6px}.month select{font-size:16.8px;border:0;appearance:none;background:transparent;padding:0 5px;color:#544a54;cursor:pointer;max-width:130px}.days{gap:0}.days>span{height:25px;padding:5px 0;font-weight:normal;line-height:15px;color:#777}.days button{background:transparent;border-radius:0;min-height:0;height:25px;line-height:15px;padding:5px;font-size:12px}.days button.chosen{background:#33aaff}.service-name{font-size:16px;line-height:19px;height:19px;margin:20px 0 0}.staff{width:600px;max-width:100%;grid-template-columns:repeat(4,150px);grid-auto-rows:160px;gap:0;margin:14px auto 0;justify-content:center;align-items:start}.staff button{width:120px;height:140.33px;padding:10px;margin:0 auto;font-size:13px;line-height:15px;border-radius:4px}.staff img{width:100px;height:100px;margin:0 auto 5px;object-fit:contain}.staff button.selected,.times button.selected{background:#544a54;color:white;box-shadow:0 0 8px #544a54}.times{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:15.75px;row-gap:5px;margin:0 10px;padding:10px 15.75px}.times button{height:34px;min-height:0;padding:10px 0;font-size:11px;line-height:14px;border-radius:0}.empty{font-size:14px}footer{margin:10px 0 0;padding:10px 0;border:0;font-size:10px}.contact{margin:15px 10px}.note{margin:12px 10px}dl{margin:20px auto}dialog h2{height:32px;line-height:32px;font-size:14px}
@media(max-width:600px){main{max-width:100%;width:100%}.booking-panel{box-shadow:none}header img{width:316.1px}nav{height:46.667px;border-bottom:2px solid #e1e1e1;margin:0 0 10px}nav button{width:10%;height:31.33px;line-height:30px}nav button.active{width:45%}nav button:not(:disabled):not(.active){width:12%}h1{display:none}h2{text-align:center;font-size:14px}.calendar{width:100%;height:210px;margin:10px 0 25px}.month select{font-size:16.8px}.days button{height:25px}.service-row{display:flex;flex-wrap:wrap;height:auto;min-height:75px;padding:4px 8px;margin-top:10px}.service-row label{display:none}.service-row select{width:100%;height:32px;font-size:14px;padding:3px}.service-row small{margin:8px 0 2px;width:100%;text-align:right}.staff{grid-template-columns:repeat(2,150px);grid-auto-rows:160px;width:300px;margin-top:14px}.staff img{height:100px;width:100px}.staff button{font-size:13px}.service-name{font-size:16px}.times{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px 8px;padding:10px 0;margin:0 8px}.times button{font-size:11px;height:34px;min-height:34px}.actions button{font-size:18px}.preview{font-size:9px}.contact{grid-template-columns:90px minmax(0,1fr)}}

body[data-step="1"] #content{padding-top:5px}.service-row{margin-top:0}.calendar{margin-bottom:15px}@media(max-width:600px){body[data-step="1"] #content{padding-top:10px}.calendar{margin-bottom:15px}}

.service-row select,.service-row option{color:#111;background:#fff}

.dialog-heading{font-size:16px;padding:8px;border-bottom:1px solid #ddd}.dialog-heading button{float:right;border:0;padding:0 5px;font-size:22px}.cancel-dialog .contact{grid-template-columns:70px 1fr}.cancel-dialog input{min-width:0;max-width:100%}.cancel-dialog .actions{justify-content:flex-end}.history-scroll{overflow-x:auto}.booking-history{width:100%;border-collapse:collapse;margin:10px 0;font-size:12px}.booking-history th,.booking-history td{padding:8px 5px;text-align:left;border-bottom:1px solid #ddd}.booking-history th{background:#eee}.booking-history select{width:100%;min-width:100px;max-width:250px}.booking-history td:nth-child(2){min-width:110px}.booking-history button{border:0;color:#bd2424;font-size:22px;padding:0 5px}.empty-records{font-style:italic}body[data-step="history"] nav button.active{opacity:1}@media(max-width:600px){.booking-history{font-size:11px}.booking-history th,.booking-history td{padding:6px 3px}.booking-history td:nth-child(2){min-width:75px}.booking-history select{min-width:80px}}

/* Fine outlines matching the original booking page. */
.staff img{outline:1px solid #e7e7e7;outline-offset:0}
.staff button.selected img{outline-color:#817981}
.times{border-top:1px solid #ddd}
.times button{border:1px solid #ddd;border-radius:2px;padding:9px 0}
.times button.selected{border-color:#544a54}

/* Visual parity audit: original public WESS screen geometry and controls. */
body{font-family:Arial,Tahoma,Helvetica,"Microsoft YaHei",sans-serif}
nav button:not(:disabled){border-color:#544a54}
.actions button{border-color:#544a54}
.service-row select{border-color:#ccc}
.staff{margin-top:4.667px}
.staff img{outline:0;box-shadow:0 0 2px #ccc;object-fit:fill}
.staff button:not([data-staff="0"]) img{padding:0 11.5px}
.staff button.selected img{outline:0}
.month select{height:30px;line-height:30px}
.month span{display:flex;align-items:center;justify-content:center}
#year-select{width:3.5em}
.days abbr{text-decoration:underline dotted;text-underline-offset:3px}
.days button.chosen{font-weight:bold}
.days button:disabled{opacity:.2}
.confirmation-columns{display:grid;grid-template-columns:35% 65%;margin-bottom:15px}
.confirmation-columns>div{min-width:0}
.service-details dl{width:100%;max-width:none;margin:10px 0 0;font-size:16px}
.service-details dl>div{grid-template-columns:50% 50%;margin:0;padding:4px 0;min-height:26px;align-items:center}
.service-details dt{text-align:right;padding-right:10px}
.service-details dd{padding-right:4px}
.service-details dl>div:nth-child(2){border-bottom:1px solid #ddd}
.service-details dl>div:nth-child(3){margin-top:5px}
.service-details dl>div:last-child{border-bottom:1px solid #ddd}
.contact-details .contact{grid-template-columns:27% minmax(0,1fr);align-items:center;gap:0;margin:9px 0 0;font-weight:bold;font-size:12px;padding-right:17px}
.contact-details .contact>span:first-child{text-align:right;padding-right:10px}
.contact-details .contact+.contact{margin-top:8px}
.contact-details .phone{gap:4px}
.contact-details .phone select{width:140px;max-width:50%;height:26px;border:1px solid #aaa;border-radius:4px;background:white;font-weight:normal}
.contact-details input,.contact-details textarea{font:15px Arial,Helvetica,sans-serif;border:1px solid #ddd;border-radius:3px;box-shadow:0 2px 4px #0001;padding:3px 6px}
.contact-details input{width:143px;min-width:0;height:25px}
.contact-details textarea{height:52px;max-width:287px}
.required{color:red}
@media(max-width:600px){.staff{margin-top:4.667px}.confirmation-columns{display:block}.service-details h2{display:none}.service-details dl{margin:0 0 10px}.contact-details .contact{grid-template-columns:35% minmax(0,1fr);padding-right:10px}.contact-details .phone{flex-wrap:wrap}.contact-details .phone select{max-width:100%}.contact-details textarea{width:100%}}


dialog::backdrop{background:rgba(0,0,0,.1)}
.cancel-dialog{width:406px;padding:8px 14px 16px;border:1px solid #ddd;background:#fff}
.cancel-dialog .dialog-heading{height:48px;background:var(--outlet-bar,#00c75a);color:white;border:0;font-size:14px;font-weight:bold;padding:8px 18px;display:flex;justify-content:space-between;align-items:center}
.dialog-heading button{background:transparent;color:#fff;float:none;display:flex;flex-direction:column;align-items:center;font-size:12px;line-height:12px;padding:0;border:0}
.cancel-icon{border-radius:50%;background:#bd2929;color:white;font:bold 27px/27px Arial;width:28px;height:28px;display:block}
.dialog-heading small{font-size:10px;font-weight:normal}
.cancel-dialog .contact{margin:13px 21px 0 0;grid-template-columns:132px minmax(0,1fr);gap:0;align-items:center}
.cancel-dialog .contact>span:first-child{text-align:right;padding-right:10px}
.cancel-dialog .phone{gap:2px;align-items:center}
.cancel-dialog .phone select{width:60px;min-width:60px;border:1px solid #ccc;border-radius:4px;height:27px;background:#fff}
.cancel-dialog input{width:160px;height:25px;border:1px solid #ddd;border-radius:2px;padding:3px 6px;font:14px Arial;box-shadow:0 2px 4px #0001}
.cancel-dialog .actions{padding:14px 9px 8px;min-height:0}
.cancel-dialog .actions button{height:41px;padding:0 13px;font-size:14px;border-color:#aaa}
@media(max-width:600px){.cancel-dialog .contact{grid-template-columns:90px minmax(0,1fr);margin-right:0}.cancel-dialog .phone{min-width:0}.cancel-dialog input{width:100%;min-width:0}}

.booking-history{border:1px solid #d0e3ef;color:#000;font-size:10.8px}
.booking-history th{background:var(--outlet-bar,#00c75a);color:#fff;font-weight:normal}
.booking-history th,.booking-history td{border:1px solid #fff;padding:3.24px}
.booking-history tbody tr:nth-child(even){background:#f5f5f5}

/* Phone layout follows the original's stacked actions and full-width staff grid. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
button,select,a{touch-action:manipulation}
@media(max-width:600px){
 body[data-step="1"] #content{padding-top:0}
 .service-row{min-height:64px;padding:4px 0 7px;display:grid;grid-template-columns:15% 85%;gap:4px 0}
 .service-row select{grid-column:2;width:100%;height:32px;font-size:16px}
 .service-row small{grid-column:1 / -1;text-align:left;padding-left:14px;margin:0;font-size:12px}
 .staff{width:100%;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:160px}
 .actions{flex-direction:column;align-items:stretch;gap:15px;padding:10px}
 .actions button{width:100%;height:50px;min-height:44px}
 
 
 .times{gap:6px 8px}.times button{height:44px;min-height:44px;padding:13px 0}
 .phone input,.phone select,.contact-details input,.contact-details textarea,.contact-details .phone select,.cancel-dialog input,.cancel-dialog .phone select{font-size:16px}
 .contact-details input,.contact-details .phone select{height:34px}
 .contact-details .phone select{width:140px;max-width:100%}
 .contact-details textarea{min-height:70px}
 .cancel-dialog .actions{align-items:flex-end;gap:0}
 .cancel-dialog .actions button{width:auto;min-width:78px;height:44px}
 .cancel-dialog input,.cancel-dialog .phone select{height:34px}
 .cancel-dialog .contact{grid-template-columns:80px minmax(0,1fr)}
 .preview{bottom:calc(8px + env(safe-area-inset-bottom,0px));font-size:9px}
 main{margin-bottom:calc(65px + env(safe-area-inset-bottom,0px))}
 .booking-history td,.booking-history th{overflow-wrap:anywhere}
 .booking-history button{min-width:32px;min-height:44px}
}
@media(max-width:350px){.service-name{font-size:14px}.contact-details .contact{grid-template-columns:28% minmax(0,1fr)}.cancel-dialog .contact{grid-template-columns:65px minmax(0,1fr)}nav button.active{font-size:11px}}
@media(hover:none){.staff button:not(.selected):hover,.times button:not(.selected):hover{box-shadow:none}}

.profile-message{margin:14px 17px 14px 27%;font-size:12px;line-height:1.5}
.contact-details #booking-name,.contact-details #booking-email{width:100%}
.success-intro{text-align:center;margin:22px 10px 14px;line-height:1.6}
.booking-receipt{border:1px dashed #aaa;padding:5px 10px 0}.booking-receipt h2{text-align:center}.booking-receipt dl{max-width:100%;margin:12px 0 20px}.booking-receipt dl>div{grid-template-columns:50% 50%;align-items:baseline;margin:14px 0}.booking-receipt dt{text-align:right;padding-right:10px;font-size:14px}.booking-receipt dd{overflow-wrap:anywhere;padding-right:10px}.booking-receipt dl>div:first-child dd{font-weight:bold;font-size:14px}.booking-notes{line-height:1.3}.booking-notes p{margin:14px 0}.receipt-actions{padding:30px 20px 20px}
@media(max-width:600px){h1.complete-heading{display:block;height:auto;min-height:40px;font-size:16px}.profile-message{margin-left:35%;margin-right:10px}.booking-receipt dl>div{grid-template-columns:40% 60%}.contact-details .phone{flex-wrap:nowrap}.contact-details .phone select{width:75px;flex-shrink:0}.contact-details .phone input{width:100%}.receipt-actions{flex-direction:row}.receipt-actions button{width:auto}.booking-notes{font-size:13px}}
@media print{nav,footer,.actions,.preview{display:none!important}.booking-panel{box-shadow:none}main{width:100%;margin:0}.booking-receipt{break-inside:avoid}}

.whatsapp-consent{display:flex;align-items:flex-start;gap:8px;margin:16px 17px 12px 27%;font-size:12px;line-height:1.5}.whatsapp-consent input{width:18px;height:18px;flex-shrink:0;margin:0;box-shadow:none}@media(max-width:600px){.whatsapp-consent{margin-left:10px;font-size:14px}}

.receipt-actions button{border:0;background:transparent;padding:4px;min-width:44px;width:44px;height:44px;line-height:32px}.receipt-actions img{display:block;width:32px;height:32px;margin:auto}.home-icon{font-size:32px;line-height:32px}.confirmation-notice{margin:16px 17px 12px 27%;font-size:12px;line-height:1.5}@media(max-width:600px){.confirmation-notice{margin-left:10px}.receipt-actions button{width:44px}}

.mobile-service-duration{display:none}
@media(max-width:600px){
 .service-details h2{display:block}.service-details dl{font-size:12px;margin:12px 0 16px;padding:0 5px}.service-details dl>div{grid-template-columns:45% 55%;min-height:24px;padding:3px 0}.service-details dl>div:first-child,.service-details dl>div:nth-child(5){display:none}.service-details dl>div:nth-child(2),.service-details dl>div:last-child{border:0}.service-details dl>div:nth-child(3){margin-top:4px}.mobile-service-duration{display:inline}
 .contact-details .phone{flex-wrap:wrap;gap:2px}.contact-details .phone select{width:140px;max-width:100%;height:27px;flex-basis:140px}.contact-details .phone input{width:143px;max-width:100%;height:27px;flex-basis:143px}.contact-details textarea{height:54px;min-height:54px}
}

/* Booking management: consistent controls without affecting the booking wizard. */
body[data-step="account"] #steps{display:none}
.account-panel{padding:28px 32px 32px;line-height:1.6}
.account-panel>p:first-child{margin-top:0}
.account-panel p{margin:16px 0}
.account-panel button{font:inherit;font-size:16px;line-height:1.3;min-height:48px;height:auto;padding:12px 20px;border:1px solid #aaa;border-radius:4px;background:#fff;color:#54505a;max-width:100%;cursor:pointer}
.account-panel button:disabled{opacity:.6;cursor:wait}
.account-panel button:hover:not(:disabled){background:#f4f6f5}
.account-panel button:focus-visible,.account-panel input:focus-visible,.account-panel select:focus-visible{outline:3px solid #2688b5;outline-offset:3px}
#account-request{display:grid;grid-template-columns:130px minmax(160px,1fr) auto;align-items:end;gap:16px;max-width:780px;margin:24px 0}
.account-field{display:flex;flex-direction:column;gap:8px;min-width:0;font-size:15px;font-weight:600}
.account-field input,.account-field select{box-sizing:border-box;width:100%;min-width:0;height:48px;margin:0;padding:10px 12px;border:1px solid #b8b8b8;border-radius:4px;background:#fff;color:#54505a;font:inherit;font-size:16px;font-weight:400;box-shadow:none}
.account-panel .account-primary{background:#008b49;border-color:#008b49;color:white}
.account-panel .account-primary:hover:not(:disabled){background:#006f3b}
.account-panel .account-danger{background:#b32d32;border-color:#b32d32;color:white}
.account-panel .account-danger:hover:not(:disabled){background:#96252a}
.account-panel .account-help{border-top:1px solid #e3e3e3;padding-top:20px;margin-top:28px;font-size:15px}
.account-help a{display:inline-block;margin:2px 0}
#account-message:empty,#account-confirm:empty{display:none}
#account-message{color:#9c2424}
.account-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin:20px 0;padding-bottom:18px;border-bottom:1px solid #e3e3e3}
.account-toolbar span{font-size:14px;color:#666}
.account-select-all{display:flex;align-items:center;gap:10px;min-height:44px;cursor:pointer}
.account-panel input[type="checkbox"]{appearance:auto;width:20px;height:20px;min-width:20px;margin:3px 0;box-shadow:none;accent-color:#008b49}
.account-booking{display:flex;align-items:flex-start;gap:14px;padding:18px;border:1px solid #ddd;border-radius:4px;margin:12px 0;cursor:pointer}
.account-booking:has(input:checked){border-color:#008b49;background:#f0faf4}
.account-booking-details{min-width:0;overflow-wrap:anywhere}
#account-confirm:not(:empty){margin-top:24px;padding:20px;background:#fafafa;border:1px solid #ddd;border-radius:4px}
.account-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
@media(max-width:600px){
 .account-panel{padding:20px 16px 24px;font-size:15px}
 #account-request{grid-template-columns:104px minmax(0,1fr);gap:14px 12px;margin:20px 0}
 #account-request>button{grid-column:1/-1;width:100%}
 .account-field{font-size:14px}
 .account-field input,.account-field select{padding:10px 8px}
 .account-actions{flex-direction:column}
 .account-actions button,#account-refresh{width:100%}
 .account-booking{padding:14px;gap:12px}
 #account-confirm:not(:empty){padding:16px}
}

/* Scannable appointment list on desktop and mobile. */
.account-panel{font-size:14px;padding:24px 28px 28px}
.account-list-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}
.account-eyebrow{display:block;color:#00824a;font-size:11px;font-weight:700;letter-spacing:1px;margin-bottom:5px}
.account-list-heading h3,.account-empty h3{font-size:21px;line-height:1.3;margin:0;color:#343438}
.account-list-heading p{margin:7px 0 0;color:#68646b;font-size:14px}
.account-panel .account-text-button{border:0;min-height:44px;padding:8px 0;background:transparent;color:#397468;font-size:13px;text-decoration:underline;text-underline-offset:4px;flex-shrink:0}
.account-selection-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;margin-bottom:6px}
.account-selection-toolbar>span{color:#777}
.account-booking{padding:18px;margin:10px 0;border-radius:8px;gap:14px;background:#fff;transition:border-color .15s,background .15s}
.account-booking:hover{border-color:#89bda1}
.account-booking-details{display:block;flex:1}
.account-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#343438;font-size:14px}
.account-time{font-weight:700;color:#007c44;font-size:15px;white-space:nowrap;background:#eef8f1;padding:3px 10px;border-radius:4px}
.account-treatment{display:block;margin-top:9px;font-size:14px;line-height:1.5;color:#444}
.account-meta{display:flex;flex-wrap:wrap;gap:5px 20px;margin-top:7px;color:#68646b;font-size:13px}
.account-meta strong{font-weight:600;color:#504b52}
.account-reference{display:block;margin-top:10px;font-size:11px;color:#777}
.account-panel input[type="checkbox"]{width:19px;height:19px;min-width:19px;margin:5px 0}
.account-panel .account-footnote{font-size:11px;line-height:1.6;color:#777;margin-top:18px}
.account-panel .account-help{font-size:13px;margin-top:20px;padding-top:18px}
.account-empty{padding:25px 0;text-align:center}
@media(max-width:600px){
 .account-panel{padding:20px 16px 24px}
 .account-list-heading{align-items:flex-start;flex-direction:column;gap:5px;margin-bottom:12px}
 .account-list-heading h3{font-size:20px}
 .account-card-top{align-items:flex-start;flex-direction:column;gap:6px}
 .account-booking{padding:15px 12px;gap:11px}
 .account-time{font-size:16px;padding:0;background:transparent}
 .account-meta{gap:3px 12px}
 .account-panel button{font-size:15px}
 body[data-step="account"] #content>h2{height:auto;min-height:40px;line-height:1.4;padding:11px 16px;font-size:16px}
}
body[data-step="account"] .preview{display:none}
.account-navigation{margin:0 0 22px}
@media(max-width:600px){.account-navigation{margin-bottom:18px}}
.account-result-list{display:grid;gap:12px;margin:18px 0 22px}
.account-result-card{padding:18px;border:1px solid #dce6df;border-radius:8px;background:#fff;overflow-wrap:anywhere}
.account-result-status{display:inline-block;font-weight:600;font-size:13px;padding:4px 10px;border-radius:4px;margin-bottom:14px}
.account-result-status.is-cancelled{background:#fef3f2;color:#b42318}
.account-result-status.needs-attention{background:#fff3df;color:#8b570b}
@media(max-width:600px){.account-result-card{padding:16px}.account-result-status{font-size:12px;max-width:100%}}
.account-nav-icon{width:20px;height:20px;flex:0 0 20px}
.account-panel #account-refresh{display:inline-flex;align-items:center;justify-content:center;gap:10px}
.account-back-arrow{font-size:21px;line-height:1;flex-shrink:0}
@media(max-width:600px){.receipt-actions{padding:20px 12px;gap:10px}}
#booking-problem{margin:16px 10px;text-align:left}#booking-problem button{margin:6px 10px 6px 0;min-height:44px;max-width:100%}@media(max-width:520px){#booking-problem button{display:block;width:100%;margin-right:0}}


/* First-step design: shared grid, spacing, colour and control sizes. */
body{--entry-green:#008647;--entry-ink:#303a34;--entry-muted:#626b65;--entry-border:#dbe3de}
body[data-step="1"] #content{padding:0}
body[data-step="1"] .booking-panel{box-shadow:0 4px 16px #163d241a}
body:is([data-step="1"],[data-step="2"],[data-step="3"],[data-step="4"]) #steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));height:auto;margin:8px 24px 0;padding:0 0 20px;gap:8px;border:0;border-bottom:1px solid var(--entry-border)}
body:is([data-step="1"],[data-step="2"],[data-step="3"],[data-step="4"]) #steps button{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;height:44px;padding:0 4px;line-height:1.3;font-size:12px;border:0;border-radius:5px;background:#f3f5f4;color:var(--entry-muted);opacity:1}
body:is([data-step="1"],[data-step="2"],[data-step="3"],[data-step="4"]) #steps button.active{background:var(--outlet-soft,#edf7f1);color:var(--entry-green);font-weight:600}
.entry-step-number{display:inline-flex;align-items:center;justify-content:center;width:21px;height:21px;flex:0 0 21px;border:1px solid #cbd5ce;border-radius:50%;font-size:11px}
.active .entry-step-number{background:var(--entry-green);border-color:var(--entry-green);color:white}
.booking-entry{padding:28px 24px 0;color:var(--entry-ink)}
.booking-entry h1,.booking-entry h2{display:block;height:auto;min-height:0;padding:0;margin:0;background:transparent;color:var(--entry-ink);text-align:left;line-height:1.4;font-weight:600}
.booking-entry h1{font-size:22px}.booking-entry h2{font-size:16px}

.entry-field label{display:block;margin-bottom:8px;font-size:14px;font-weight:600}
.entry-field select{display:block;width:100%;min-width:0;height:48px;padding:0 12px;border:1px solid #aebdb4;border-radius:5px;background:white;color:var(--entry-ink);font-size:16px;line-height:1.4}


.entry-action-row{display:grid;grid-template-columns:minmax(0,1fr) 250px;align-items:center;gap:24px}
.booking-new>.entry-action-row{margin:24px 0 28px}
.entry-helper{margin:6px 0 0;font-size:13px;line-height:1.6;color:var(--entry-muted)}
.booking-new .entry-helper{margin:0}
.entry-existing{border-top:1px solid var(--entry-border);padding:24px 0 28px}
.booking-entry .entry-button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;height:50px;min-height:50px;min-width:0;padding:10px 12px;border:1px solid var(--entry-green);border-radius:5px;font-size:14px;font-weight:600;line-height:1.4;box-shadow:none}

.booking-entry .entry-primary,.booking-entry .entry-secondary{background:var(--entry-green);color:white}
.entry-arrow{font-size:20px;line-height:1}.entry-button svg{width:20px;height:20px;flex-shrink:0}
.entry-primary:hover:not(:disabled),.entry-secondary:hover:not(:disabled){background:var(--outlet-hover,#006d3a);border-color:var(--outlet-hover,#006d3a)}
.booking-entry .entry-button:focus-visible,.entry-field select:focus-visible{outline:3px solid var(--outlet-focus,#238dce);outline-offset:3px}
@media(max-width:600px){
 body:is([data-step="1"],[data-step="2"],[data-step="3"],[data-step="4"]) #steps{margin:8px 16px 0;gap:4px;padding-bottom:16px}
 body:is([data-step="1"],[data-step="2"],[data-step="3"],[data-step="4"]) #steps button{height:58px;flex-direction:column;gap:5px;font-size:11px}
 .booking-entry{padding:24px 16px 0}.booking-entry h1{font-size:21px}
 .entry-action-row{grid-template-columns:minmax(0,1fr);gap:16px}
 .entry-desktop-break{display:none}.booking-new>.entry-action-row{margin:20px 0 24px}
 .entry-existing{padding:24px 0}
 .booking-entry .entry-button{width:100%;max-width:100%;height:50px;font-size:15px;justify-self:stretch}
}

/* Match the green section bars used in the date and staff steps. */
body[data-step="1"] .entry-section-heading{display:block;height:auto;min-height:40px;margin:0;padding:10px 24px;background:var(--outlet-bar,#00c75a);color:#fff;font-size:16px;font-weight:400;line-height:20px;text-align:left}
@media(max-width:600px){body[data-step="1"] .entry-section-heading{padding:10px 16px}}

.entry-field-heading{display:flex;align-items:baseline;gap:10px;margin-bottom:8px}.entry-field-heading label{margin:0}.entry-field-heading #entry-guest-count{font-size:12px;font-weight:400;color:var(--entry-muted);white-space:nowrap}

/* Shared green navigation controls, next action first in phone reading order. */
.actions.booking-actions{display:grid;grid-template-columns:repeat(2,minmax(0,250px));justify-content:space-between;align-items:center;gap:16px;min-height:0;padding:24px;margin:0}
.actions.booking-actions button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;height:50px;min-height:50px;min-width:0;padding:10px 12px;border:1px solid var(--entry-green);border-radius:5px;background:var(--entry-green);color:white;font-size:14px;font-weight:600;line-height:1.4}
.booking-actions .flow-next{grid-column:2;grid-row:1}.booking-actions .flow-back{grid-column:1;grid-row:1}
.actions.booking-actions button:hover:not(:disabled){background:var(--outlet-hover,#006d3a);border-color:var(--outlet-hover,#006d3a)}
.actions.booking-actions button:disabled{opacity:.45;cursor:not-allowed}
#steps button:not(:disabled):not(.active):hover{background:var(--outlet-soft,#edf7f1);color:var(--entry-green)}
#steps button:disabled{cursor:not-allowed}
@media(max-width:600px){.actions.booking-actions{grid-template-columns:minmax(0,1fr);padding:24px 16px;gap:12px}.actions.booking-actions .flow-next,.actions.booking-actions .flow-back{grid-column:auto;grid-row:auto}.actions.booking-actions button{height:50px;font-size:15px}}

/* Consistent return-to-booking buttons in management and confirmation screens. */
.account-panel #account-back,.receipt-actions .receipt-home{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:250px;max-width:100%;height:50px;min-height:50px;padding:10px 12px;background:#fff;border:1px solid var(--entry-green);border-radius:5px;color:var(--entry-green);font-size:14px;font-weight:500;line-height:1.4;text-align:center;box-sizing:border-box}
.account-panel #account-back:hover:not(:disabled),.receipt-actions .receipt-home:hover:not(:disabled){background:var(--outlet-soft,#edf7f1);border-color:var(--entry-green)}
.account-panel #account-back:focus-visible,.receipt-actions .receipt-home:focus-visible{outline:3px solid var(--outlet-focus,#238dce);outline-offset:3px}
@media(max-width:600px){
 .account-panel #account-back,.receipt-actions .receipt-home{width:100%;max-width:100%;height:50px;font-size:15px}
 .actions.receipt-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;padding:24px 16px}
 .receipt-actions #print-receipt{justify-self:end}
}

/* Emphasize the lookup action while the outlined home button stays secondary. */
#account-request .account-primary{background:var(--entry-green);border:1px solid var(--entry-green);color:#fff;font-size:14px;font-weight:700;line-height:1.4;border-radius:5px;height:50px;min-height:50px;padding:10px 16px}
#account-request .account-primary:hover:not(:disabled){background:var(--outlet-hover,#006d3a);border-color:var(--outlet-hover,#006d3a)}
#account-request .account-primary:focus-visible{outline:3px solid var(--outlet-focus,#238dce);outline-offset:3px}
#account-request input,#account-request select{height:50px;border-radius:5px}
@media(max-width:600px){#account-request .account-primary{width:100%;font-size:15px}}

.account-selection-status{margin:20px 0 12px;color:var(--entry-muted);font-size:14px}.account-panel #account-confirm:not(:empty){border-radius:8px;background:#fffaf9;border-color:#eadbd8}.account-panel #account-confirm h3{margin:0 0 12px;font-size:18px;line-height:1.4}.account-panel #account-confirm ul{padding-left:20px;line-height:1.6;overflow-wrap:anywhere}.account-panel #account-confirm li+li{margin-top:10px}.account-panel #account-confirm-yes{font-weight:700}

/* Equal-sized home actions and a readable, keyboard-accessible price menu. */
.booking-entry a.entry-button{text-decoration:none;text-align:center}
.price-menu-dialog{width:650px;max-width:calc(100% - 24px);max-height:85vh;max-height:85dvh;padding:0;border:1px solid #cbd8d0;border-radius:10px;color:var(--entry-ink);font:14px Arial,sans-serif;overflow:auto;box-shadow:0 12px 50px #0003}
.price-menu-dialog::backdrop{background:#102c20a6}
.price-menu-top{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;background:white;border-bottom:1px solid var(--entry-border)}
.price-menu-top h2{height:auto;margin:0;padding:0;background:none;color:var(--entry-ink);font-size:20px;font-weight:700;line-height:1.4;text-align:left}
.price-menu-close{display:flex;align-items:center;gap:10px;min-height:44px;padding:8px 12px;background:white;border:1px solid var(--entry-green);border-radius:5px;color:var(--entry-green);font-size:14px;white-space:nowrap}
.price-menu-close span{font-size:22px}.price-menu-body{padding:0 20px 24px}.price-menu-intro,.price-menu-note{font-size:13px;line-height:1.6;color:var(--entry-muted);margin:18px 0}
.price-menu-group{margin:24px 0}.price-menu-group h3{margin:0;padding:10px 12px;background:var(--outlet-soft,#edf7f1);color:var(--entry-green);font-size:16px;line-height:1.4;border-radius:5px}
.price-menu-group table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:14px;line-height:1.5}.price-menu-group th,.price-menu-group td{padding:12px 8px;border-bottom:1px solid #e4ebe7;text-align:right;vertical-align:top}.price-menu-group th:first-child{width:54%;text-align:left}.price-menu-group thead th{font-size:12px;color:var(--entry-muted);font-weight:600}.price-menu-group tbody th{font-weight:400}.price-menu-group td{white-space:nowrap;font-variant-numeric:tabular-nums}
.price-menu-original{display:inline-flex;gap:8px;align-items:center;min-height:44px;color:var(--entry-green)}
.price-menu-heading{min-width:0}.price-menu-heading .price-menu-original{font-size:13px;line-height:1.4;gap:6px}.price-menu-heading .price-menu-original span{flex-shrink:0}.price-menu-top .price-menu-close{flex-shrink:0;align-self:flex-start}
.guest-selector{display:grid;grid-template-columns:minmax(0,1fr) 130px;gap:24px;align-items:end;margin-bottom:24px}.guest-selector-main{min-width:0}.booking-entry .guest-selector h2{font-size:14px;margin:0 0 10px}.guest-count-options{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.guest-count-options button{padding:8px 4px;min-height:44px;height:44px;border:1px solid #dce2df;border-radius:5px;background:#f7f8f7;font-size:16px;font-weight:700;color:var(--entry-ink)}.guest-count-options button.selected{background:var(--entry-green);border-color:var(--entry-green);color:#fff}.guest-call{border-left:1px solid var(--entry-border);padding-left:24px;margin:0;line-height:1.5;font-size:13px}.guest-call a{color:var(--entry-green);text-underline-offset:3px}.group-intro{font-size:13px;line-height:1.6;color:var(--entry-muted);margin:0 0 20px}.group-treatment-field{margin-top:20px}.group-guest-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:20px 24px 10px}.group-guest-tabs button{min-width:0;min-height:52px;padding:8px;border-radius:5px;border:1px solid var(--entry-border);font-size:14px;font-weight:600}.group-guest-tabs span{display:block;font-size:12px;font-weight:400;margin-top:4px}.group-guest-tabs .selected{background:var(--outlet-soft,#edf7f1);color:var(--entry-green);border-color:var(--entry-green)}.group-staff-help{padding:0 24px;margin-bottom:0}.group-shared-label{margin:10px 24px 0;font-size:14px;line-height:1.5;font-weight:600;color:var(--entry-green)}.group-empty{color:#b42318}.group-summary{padding:16px;font-size:14px;line-height:1.5}.group-summary article{padding:12px 0;border-top:1px solid var(--entry-border)}.group-summary p{margin:6px 0}.group-result{padding:24px;font-size:14px;line-height:1.6}.group-result h2{height:auto;background:transparent;color:var(--entry-ink);padding:0;font-size:20px;font-weight:700;line-height:1.4}.group-result-card{border:1px solid var(--entry-border);border-radius:7px;padding:16px;margin:14px 0}.group-result-card p{margin:6px 0}.group-reference{overflow-wrap:anywhere;font-size:12px;color:var(--entry-muted)}.group-cancelled{color:#b42318}.group-result-actions{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:24px}.group-result-actions button,.group-result #group-status{min-height:50px;padding:10px 16px;background:var(--entry-green);color:#fff;border-color:var(--entry-green);font-size:14px;font-weight:600}.group-result-actions #reset{background:white;color:var(--entry-green)}
@media(max-width:600px){.guest-selector{grid-template-columns:minmax(0,1fr);gap:10px}.guest-call{border:0;padding:0}.guest-count-options{gap:6px}.guest-count-options button{font-size:16px}.group-guest-tabs{padding:16px 16px 10px;gap:6px}.group-staff-help{padding:0 16px}.group-shared-label{margin:10px 16px 0}.group-result{padding:20px 16px}.group-result-actions{display:grid;grid-template-columns:minmax(0,1fr)}.group-result-actions button{width:100%}}
@media(max-width:600px){.price-menu-dialog{max-width:calc(100% - 16px);max-height:90vh;max-height:90dvh}.price-menu-top{padding:12px}.price-menu-top h2{font-size:18px}.price-menu-body{padding:0 12px 20px}.price-menu-group th,.price-menu-group td{padding:10px 4px;font-size:13px}.price-menu-group th:first-child{width:50%}.price-menu-group h3{font-size:15px}.price-menu-dialog .price-menu-close{min-height:44px}}
.booking-entry .entry-field-heading:has(.copy-treatment){align-items:center}
.booking-entry .copy-treatment{display:inline-flex;align-items:center;justify-content:center;gap:8px;margin-left:auto;min-height:44px;padding:10px 14px;border:1px solid #d4e8dc;border-radius:8px;background:var(--outlet-soft,#edf7f1);color:var(--outlet-ink,#00743e);font-size:13px;font-weight:600;line-height:1.4;text-align:center;white-space:normal;transition:background-color .15s,border-color .15s}
.copy-treatment svg{width:18px;height:18px;flex-shrink:0}.booking-entry .copy-treatment:hover{background:var(--outlet-soft-hover,#dff0e6);border-color:#a8d3b9}.booking-entry .copy-treatment:active{background:var(--outlet-soft-hover,#d1e9db)}.copy-treatment:focus-visible{outline:3px solid var(--outlet-focus,#238dce);outline-offset:3px}
.copy-treatment-status{margin:8px 0 0;font-size:13px;color:var(--entry-green);line-height:1.5}.copy-treatment-status:empty{display:none}
.group-capacity-notice{margin:24px 0 0;padding:16px;border:1px solid #e5c58f;border-radius:6px;background:#fff9ed;color:#714b16;font-size:14px;line-height:1.6}.group-capacity-notice p{margin:8px 0 0}.group-capacity-notice a{color:inherit;text-decoration:underline}
@media(max-width:600px){.booking-entry .entry-field-heading:has(.copy-treatment){flex-wrap:wrap;gap:8px}.booking-entry .copy-treatment{flex-basis:100%;width:100%;margin-left:0}.group-capacity-notice{padding:14px;font-size:14px}}
.group-start-guide{margin:0 0 26px;padding:16px 18px;border-radius:8px;background:var(--outlet-soft,#edf7f1);color:var(--entry-ink);font-size:14px;line-height:1.6}
.group-start-note{display:flex;align-items:center;gap:10px;margin:0 0 14px}.group-start-note svg{width:24px;height:24px;flex-shrink:0;color:var(--entry-green)}.group-start-note strong{font-weight:600}
.group-start-options h3{margin:0 0 4px;font-size:14px;line-height:1.5;font-weight:600}.group-start-options p{display:block;margin:0}.group-start-or{color:var(--entry-muted)}.group-start-options a{color:var(--entry-green);text-decoration:underline;text-underline-offset:3px}.group-start-options a:focus-visible{outline:3px solid var(--outlet-focus,#238dce);outline-offset:3px;border-radius:2px}
@media(max-width:600px){.group-start-guide{padding:14px 16px;margin-bottom:24px}.group-start-note{gap:8px}}
.staff.group-staff-grid{grid-auto-rows:190px}.staff.group-staff-grid button{height:176px}.staff button.staff-assigned{background:#f4f5f4;color:#626963;box-shadow:none;cursor:not-allowed}.staff button.staff-assigned img{opacity:.55}.staff-assigned-label{display:block;margin-top:6px;font-size:11px;line-height:1.35;color:#626963;font-weight:600}.staff-conflict-notice{margin:14px 24px;padding:12px 14px;background:#fff9ed;border:1px solid #e5c58f;border-radius:6px;color:#714b16;font-size:14px;line-height:1.5}.staff-assigned:focus-visible{outline:3px solid var(--outlet-focus,#238dce);outline-offset:2px}@media(max-width:600px){.staff-conflict-notice{margin:14px 16px}}
