/* Product viewport; the approved inner Sites UI has no simulated device chrome. */
html,body{margin:0!important;padding:0!important;max-width:none!important;width:100%;overflow:hidden;background:#F3EEE6;color-scheme:light;min-height:100%;font-family:'IBM Plex Sans Thai',sans-serif;font-weight:400}
#sor-brand-r4{padding:0;min-height:100dvh}
[hidden]{display:none!important}
#sor-brand-r4 .r253-booking-code{display:block;font-size:12px;font-weight:500;letter-spacing:.08em;overflow-wrap:anywhere}
#sor-brand-r4 #sor-product{max-width:none;width:100%;height:100dvh;min-height:480px;aspect-ratio:auto;margin:0 auto;border:0;border-radius:0;box-shadow:none;position:relative;--sor-clay:#B85A3C;--sor-radius:6px}
#sor-brand-r4 #sor-phone{position:relative;inset:auto;display:flex;flex-direction:column;height:100%;overflow:hidden}
#sor-brand-r4 .sor-chrome,#sor-brand-r4 .sor-home-indicator{display:none}
#sor-brand-r4 .sor-content{scroll-behavior:smooth}
#sor-brand-r4 .sor-header{padding-top:max(12px,env(safe-area-inset-top));flex-shrink:0}
#sor-brand-r4 .staff-column .r14-language button{color:#FCF9F4;background:transparent}
#sor-brand-r4 .staff-column .r14-language button[aria-pressed=true]{color:#4B382E;background:#FCF9F4}
#sor-brand-r4 #sor-product .sor-nav-bottom{padding-bottom:max(8px,env(safe-area-inset-bottom,0px));flex-shrink:0}
#sor-brand-r4 #sor-product.product-work{max-width:1440px}
#sor-brand-r4 .product-work .sor-content{max-width:none;width:100%}
#sor-brand-r4 .product-work .product-column{max-width:680px;margin-inline:auto}
#sor-brand-r4 .product-message:empty{display:none}
#sor-brand-r4 .product-message{padding:12px 20px;background:#E1E6D9;color:#4B6753;font-size:14px}
#sor-brand-r4 .product-message.error{background:#F9E7DD;color:#8D3D2A}
#sor-brand-r4 .product-status{display:flex;gap:8px;align-items:center;justify-content:space-between;font-size:12px;color:#78695D;margin-bottom:20px}
#sor-brand-r4 .product-status button{font-size:12px;min-height:32px}
#sor-brand-r4 .product-grid{display:grid;gap:16px}
#sor-brand-r4 .product-pills{display:flex;flex-wrap:wrap;gap:8px}
#sor-brand-r4 .product-pills button{width:auto;flex:1;min-width:60px}
#sor-brand-r4 .product-pills button[aria-pressed=true]{border-color:#B85A3C;background:#ECE2D6}
#sor-brand-r4 .product-field{display:block;margin:16px 0}
#sor-brand-r4 .product-field>span{display:block;font-size:15px;margin-bottom:7px}
#sor-brand-r4 .product-check{display:flex;align-items:flex-start;gap:10px;padding:10px 0;font-size:15px}
#sor-brand-r4 .product-check input{margin-top:6px;flex-shrink:0;accent-color:#B85A3C}
#sor-brand-r4 .product-footer-note{font-size:12px;color:#78695D;margin-top:24px}
#sor-brand-r4 .product-account>section{margin-top:0}
#sor-brand-r4 .product-account #signed-out{padding-bottom:0}
#sor-brand-r4 .product-account #signed-out .r17-login-methods{margin-bottom:14px}
#sor-brand-r4 .product-account form>label{display:block;margin:14px 0}
#sor-brand-r4 .product-account form .sor-actions{margin-top:20px}
#sor-brand-r4 .product-account #otp-entry{width:100%}
/* Source methods reserve20px after the group and14px after its auth section. */
#sor-brand-r4 .product-account #otp-entry:not([hidden])~#otp-online-note{margin-top:56px}
#sor-brand-r4 .product-account #otp-title{font-size:inherit;font-weight:inherit}
#sor-brand-r4 .product-account .r253-otp-code{padding:0}
#sor-brand-r4 .product-account .r253-otp-code form .sor-actions{margin-top:24px}
#sor-brand-r4 .product-account .r253-otp-code #otp-hint{margin-top:20px}
#sor-brand-r4 .product-account #otp-cancel{display:block;margin:20px 0 0}
#sor-brand-r4 .product-account #auth-team-tools{margin-top:32px;border-top:1px solid var(--sor-line);padding-top:16px;font-size:14px}
#sor-brand-r4 .product-account #auth-team-tools details+details{margin-top:14px}
#sor-brand-r4 .product-account #product-test-context{border-top:1px solid var(--sor-line);padding-top:16px}
#sor-brand-r4 .product-account #product-test-context p{font-size:12px;line-height:1.7}
#sor-brand-r4 .product-account #line-login-hint:empty{display:none}
#sor-brand-r4 .product-account label>input,#sor-brand-r4 .product-account label>select{display:block;margin-top:7px}
#sor-brand-r4 .product-work .appointment{background:#FCF9F4;border:1px solid #DDD2C5;padding:22px;margin:18px 0;border-radius:10px}
#sor-brand-r4 .product-work .card{padding:20px;border:1px solid #DDD2C5;border-radius:10px;margin:16px 0;background:#FCF9F4}
#sor-brand-r4 .product-work .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
#sor-brand-r4 .product-work .form-grid>label{min-width:0;display:block}
#sor-brand-r4 .product-work .card button,.product-work .appointment button,.product-work .staff-settings button{min-height:44px;padding:10px 16px;border:1px solid #B85A3C;border-radius:6px;background:#B85A3C;color:white;margin:4px}
#sor-brand-r4 .product-work button.secondary,#sor-brand-r4 .product-work button.quiet{background:transparent;color:#4B382E;border-color:#DDD2C5}
#sor-brand-r4 .product-work .service-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
#sor-brand-r4 .product-work .service-summary>div{padding:10px;background:#F3EEE6}
#sor-brand-r4 .product-work .service-summary dt{font-size:13px;color:#78695D}
#sor-brand-r4 .product-work .service-summary dd{margin:0;font-size:18px;font-weight:500}
#sor-brand-r4 .product-work table{width:100%;border-collapse:collapse}
#sor-brand-r4 .product-work td,#sor-brand-r4 .product-work th{text-align:left;padding:10px;border-bottom:1px solid #DDD2C5}
#sor-brand-r4 .product-work .notice,#sor-brand-r4 .product-work .hint{background:#ECE2D6;padding:14px;font-size:14px;margin:12px 0}
#sor-brand-r4 .product-work .error{background:#F9E7DD;color:#8D3D2A;padding:14px}
#sor-brand-r4 .product-work .staff-table-wrap{overflow:auto}
#sor-brand-r4 .product-work img.benefit-photo{max-width:200px;max-height:160px;object-fit:cover}
#sor-brand-r4 :focus-visible{outline:2px solid #9E523A;outline-offset:3px}
#sor-brand-r4 .product-choice{position:relative;display:flex;align-items:center;justify-content:center;cursor:pointer}
#sor-brand-r4 .product-choice>input{position:absolute;opacity:0;width:1px;height:1px}
#sor-brand-r4 .product-choice:has(input:focus-visible){outline:2px solid #9E523A;outline-offset:3px}
#sor-brand-r4 .product-choice[aria-pressed=true]{background:#f1e4d9;border-color:#9e523a;color:#9e523a}
#sor-brand-r4 .r221-durations .product-choice{flex-direction:column}
#sor-brand-r4 .product-addon{display:flex;gap:12px;align-items:center;padding:14px}
#sor-brand-r4 .product-addon>span{display:grid;gap:5px}
#sor-brand-r4 .product-work-date{max-width:240px}
#sor-brand-r4 .product-work .r237-map button{margin:0;background:var(--sor-paper);color:var(--sor-walnut);border-color:var(--sor-line)}
#sor-brand-r4 .product-work .r237-map .busy{background:#f1dfd3}
#sor-brand-r4 .product-work .r237-map .prep{background:#f5edce}
#sor-brand-r4 .product-work .r237-map .reserved{background:#e9e2d8}
@media(max-width:600px){#sor-brand-r4 .product-work .form-grid{grid-template-columns:1fr}#sor-brand-r4 .product-work .service-summary{grid-template-columns:1fr 1fr}#sor-brand-r4 .product-work .appointment{padding:16px}}

#sor-brand-r4 #sor-customer-view{width:100%;max-width:760px;margin:0 auto}
#sor-brand-r4 .r234-goals .product-choice{flex-direction:column;align-items:flex-start;text-align:left}
#sor-brand-r4 .r19-tabs{overflow-x:auto;flex-wrap:wrap}
#sor-brand-r4 .r19-form-grid label{min-width:0}
#sor-brand-r4 .r243-owner,#sor-brand-r4 .r243-partner{max-width:1060px;margin:auto}
#sor-brand-r4 .product-work .r237-space{min-height:166px;padding:14px 5px 12px;border-radius:12px}

#sor-brand-r4 .product-form-fields{min-width:0;border:0;padding:0;margin:0}
#sor-brand-r4 .sor-app .product-check>input,#sor-brand-r4 .sor-app .sor-check>input{width:18px;height:18px;min-height:18px;flex:none;padding:0}
#sor-brand-r4 .sor-app .r238-durations .product-choice{min-height:66px;padding:8px 5px;display:flex;flex-direction:column;justify-content:center;gap:4px;border-radius:10px;font-size:.875rem;background:#fbf7f0;border-color:#e1d6c7}
#sor-brand-r4 .sor-app .r238-durations .product-choice[aria-pressed=true]{background:#eee1cd;border-color:#b38b65;color:#75462c}
#sor-brand-r4 .sor-app .r238-durations .product-choice>input{width:1px;height:1px;min-height:0;padding:0}
#sor-brand-r4 .r16-coverage .product-choice{justify-content:flex-start;text-align:left}
#sor-brand-r4 .r252-avoid .product-choice,#sor-brand-r4 .r16-area-grid .product-choice{justify-content:flex-start;text-align:left}

#sor-brand-r4 .product-owner-content{flex:1;min-height:0;overflow:hidden;padding:0}
#sor-brand-r4 .product-owner #sor-owner-panel{container:ownerapp / inline-size;height:100%;width:100%;max-width:none}
#sor-brand-r4 .product-owner .owner-workspace{height:100%!important;min-height:0!important;max-height:none;border:0;border-radius:0;box-shadow:none}
#sor-brand-r4 .product-owner .owner-sidebar-foot a{display:block;color:#E0D1C2;font-size:12px;margin-top:12px}
#sor-brand-r4 .product-owner .owner-heading .sor-language{flex:none}
#sor-brand-r4 .product-owner .owner-main .sor-language button{width:auto}
#sor-brand-r4 .product-owner #sor-owner-view>.sor-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:42px;margin:0 0 16px;padding:10px 16px;border:1px solid #C9B7A5;border-radius:8px;background:transparent;color:#4B382E;font:500 14px 'IBM Plex Sans Thai',sans-serif;cursor:pointer}
#sor-brand-r4 .product-owner .owner-heading h1{font-size:27px}
#sor-brand-r4 .product-owner .owner-main{min-height:0}
@media(max-width:600px){#sor-brand-r4 .product-owner .owner-main{padding:22px 18px}#sor-brand-r4 .product-owner .owner-heading{align-items:flex-start;gap:12px;flex-wrap:wrap}}

#sor-brand-r4 #sor-product.product-owner{max-width:none}
#sor-brand-r4 .product-owner [data-facility-home]{margin-bottom:18px}
#sor-brand-r4 .product-owner [data-settings-facility]{margin-bottom:20px}
#sor-brand-r4 .product-owner [data-menu-facility]{margin-bottom:18px}
#sor-brand-r4 .product-owner .r231-price-grid fieldset{margin-inline:2px}

@media(min-width:1051px){#sor-brand-r4 .product-owner .owner-workspace{grid-template-columns:225px minmax(0,1fr)}}
#sor-brand-r4 .product-owner .r19-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
#sor-brand-r4 .product-owner .r19-tabs>button{flex:1;min-height:44px;padding:8px 12px;white-space:normal}
#sor-brand-r4 .product-owner .owner-heading .sor-language{display:flex;gap:4px;padding:4px;border:1px solid #DDD2C5;border-radius:7px}
#sor-brand-r4 .product-owner .owner-heading .sor-language button{border:0;border-radius:4px;background:transparent;min-height:32px;padding:4px 9px;font:400 14px 'IBM Plex Sans Thai',sans-serif}
#sor-brand-r4 .product-owner .owner-heading .sor-language button[aria-pressed=true]{background:#4B382E;color:#FCF9F4}

#sor-brand-r4 #sor-partner-panel .r19-partner{position:relative}#sor-brand-r4 #sor-partner-panel .r14-language{position:absolute;right:20px;top:10px;font-size:12px}#sor-brand-r4 #sor-partner-panel .r243-partner{padding-top:26px}#sor-brand-r4 #sor-partner-panel .r19-tabs>button{width:auto;flex:1;white-space:normal}#sor-brand-r4 #sor-partner-panel .r19-partner>button{margin-top:20px}

/* R24.3 cumulative r12 roster layout: keep source padding and full calendar. */
#sor-brand-r4 .product-owner:has(.r12-roster) .owner-main{padding:24px}
#sor-brand-r4 .product-owner:has(.r12-roster) .owner-heading{margin-bottom:12px}
#sor-brand-r4 .product-owner:has(.r12-roster) .owner-sidebar{scrollbar-width:none}
@media(max-width:600px){#sor-brand-r4 .product-owner:has(.r12-roster) .owner-main{padding:18px 14px}}

#sor-brand-r4 .product-owner:has(.r12-roster) .owner-main{scrollbar-width:none}
@media(max-width:600px){#sor-brand-r4 .product-owner:has(.r12-roster) .owner-workspace{position:relative}#sor-brand-r4 .product-owner:has(.r12-roster) .owner-heading .sor-language{position:absolute;top:16px;right:14px}#sor-brand-r4 .product-owner:has(.r12-roster) .owner-heading .sor-language button{font-size:12px;padding:3px 6px;min-height:28px}}
@media(max-width:600px){#sor-brand-r4 .product-owner:has(.r12-roster) .owner-heading .sor-language button{color:#f3eee6}}

#sor-brand-r4 .r25-feedback-form{border:0;padding:0;margin:0;min-width:0}

/* Product adapters retain the source card/grid typography. */
#sor-product fieldset { border:0; padding:0; margin:0; min-width:0; }
#sor-product .product-offer-image { display:block; width:100%; max-height:240px; object-fit:cover; border-radius:16px; margin-block:12px; }

/* Backend review tables retain the source card and readable mobile width. */
#sor-brand-r4 .product-table-scroll{max-width:100%;overflow-x:auto}
#sor-brand-r4 .product-table-scroll table{width:100%;border-collapse:collapse}
#sor-brand-r4 .product-table-scroll th,#sor-brand-r4 .product-table-scroll td{padding:10px;text-align:left;border-bottom:1px solid #DDD2C5;overflow-wrap:anywhere}
#sor-brand-r4 .r15-member-box textarea[readonly]{width:100%;box-sizing:border-box;overflow-wrap:anywhere;font:inherit}
#sor-brand-r4 .r25-preferences>summary{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;min-height:52px;cursor:pointer;font-size:1rem;line-height:1.6;list-style:none}#sor-brand-r4 .r25-preferences>summary::-webkit-details-marker{display:none}#sor-brand-r4 .r25-preferences[open]>form{margin-top:20px}
#sor-product .r249-fieldset{padding:20px}#sor-product .r249-feedback-fields fieldset{padding:0}

#sor-brand-r4 .product-work-filters{margin-top:22px;font-size:14px;color:#766557}#sor-brand-r4 .product-work-filters>summary{cursor:pointer}#sor-brand-r4 .product-work-filters[open]>.sor-field{margin-top:12px}
#sor-brand-r4 .staff-column .r19-tabs{display:flex;gap:8px}#sor-brand-r4 .staff-column .r19-tabs>button{width:auto;flex:1;min-width:100px}

#sor-brand-r4 #sor-partner-panel .r19-tabs>button{flex:1 1 auto;padding:12px 18px;overflow-wrap:normal}#sor-brand-r4 #sor-partner-panel [data-inspect-coupon] .sor-secondary{width:auto;font-size:15px;min-height:48px;padding:12px 18px}

/* Reuse the source account controls inside the separate Owner shell, without a device frame. */
#sor-brand-r4 #sor-owner-view .r25-owner-account{max-width:none;width:100%;height:auto;min-height:0;aspect-ratio:auto;margin:0;border:0;border-radius:0;box-shadow:none;overflow:visible;background:transparent}
#sor-brand-r4 .r25-owner-account #account-actions{display:grid;gap:12px;margin-top:24px}
#sor-brand-r4 .r25-owner-account #account-actions p{margin:0}

/* Source choice buttons backed by accessible native radio inputs. */
#sor-brand-r4 [data-usual-care] .sor-choice{position:relative;display:flex;align-items:center;justify-content:center;cursor:pointer;box-sizing:border-box}
#sor-brand-r4 [data-usual-care] .sor-choice input{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}
#sor-brand-r4 [data-usual-care] .sor-choice:focus-within{outline:2px solid #73503b;outline-offset:3px}

/* Preserve the Source seal size alongside a full immutable receipt identifier. */
#sor-brand-r4 .sor-ticket .sor-flex>.sor-seal{flex-shrink:0}#sor-brand-r4 .sor-ticket .sor-flex>.sor-eyebrow{min-width:0;overflow-wrap:anywhere}

/* Source r223 preferences align pressure options to the leading edge. */
#sor-brand-r4 .r223-usual-pressure .sor-choice{text-align:left;justify-content:flex-start}

/* Match the Source inner customer view when the live adapter owns a panel. */
#sor-brand-r4 .sor-app .r253-loading-content .r253-loading-host{display:flex;flex:1;min-height:0;width:100%}
/* Match the frozen phone-entry composition while keeping the live OTP form. */
#sor-brand-r4 .product-account:has(#otp-content:not([hidden])) #signed-out .r17-login-methods{margin-bottom:20px}
#sor-brand-r4 .product-account #otp-content:has(#otp-phone-step:not([hidden])){padding-bottom:14px}
#sor-brand-r4 .product-account #otp-content:has(#otp-phone-step:not([hidden])) #otp-cancel{margin-top:12px}

/* Preserve Source nickname spacing inside the durable form adapter. */
#sor-brand-r4 .product-account form.r18-nickname .sor-actions{margin-top:24px}

/* Match the final Source button geometry while keeping real radio controls. */
#sor-brand-r4 .r25-guide-options .r234-guide-time .product-choice,#sor-brand-r4 .r25-guide-options .r2492-warmth .product-choice{display:block;text-align:left}
