:root{--ink:#273d34;--muted:#79867b;--green:#355849;--gold:#ae8c55;--line:#dfdfd3}*{box-sizing:border-box}body{margin:0;background:#f3f1e9;color:var(--ink);font:16px/1.5 -apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif}button,input{font:inherit}button{cursor:pointer;border:0}button:focus-visible,input:focus-visible{outline:3px solid #af905c;outline-offset:4px}button:disabled{cursor:not-allowed;opacity:.4}.shell{max-width:1600px;margin:auto;min-height:100dvh;display:flex;flex-direction:column;padding:0 4.2vw;background:radial-gradient(ellipse at 80% 5%,#e4e8db50,transparent 60%)}header{height:94px;display:flex;align-items:center;justify-content:space-between;position:relative;border-bottom:1px solid #dcdfd2}.brand{position:absolute;left:50%;transform:translateX(-50%);font:30px serif;letter-spacing:5px;text-align:center}.brand small{font:8px sans-serif;display:block;letter-spacing:2.4px;margin-top:5px;color:#849182}.back{min-width:90px;min-height:48px;background:transparent;color:var(--ink);font-size:23px;text-align:left}.back span{font-size:13px;margin-left:10px}.head-right{display:flex;align-items:center;gap:20px}.utility{color:#66796a;background:transparent;font-size:12px;padding:12px 0}.demo-label{font-size:10px;letter-spacing:1px;border:1px solid #d3d7c8;border-radius:20px;padding:3px 8px;color:#7e8b78}main{flex:1}.home-title{text-align:center;padding:32px 0 26px}.eyebrow{font-size:9px;color:var(--gold);letter-spacing:3px}.home-title h2{font:36px/1.3 serif;font-weight:400;letter-spacing:3px;margin:9px 0 10px}.home-title p{font-size:12px;color:#8b9589;margin:0;letter-spacing:1px}.category-slides{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.category-slide{height:clamp(290px,45vh,450px);border-radius:12px;position:relative;text-align:left;overflow:hidden;background:#dce2d5;color:#263c2e;box-shadow:0 12px 35px #30452a09;transition:transform .3s}.category-slide:hover{transform:translateY(-4px)}.category-slide.thai{background:#c0d0bd}.category-slide.spa{background:#e6dbcb}.category-num{position:absolute;left:25px;top:23px;font-size:14px;color:#586e50}.category-art{position:absolute;inset:0;overflow:hidden}.category-copy{position:absolute;left:26px;bottom:30px;z-index:2}.category-copy small{display:block;font-size:9px;letter-spacing:2px;color:#6f8269}.category-copy strong{display:block;font:38px serif;letter-spacing:4px;margin:6px 0 12px;font-weight:400}.category-copy>span{font-size:12px;color:#697d61}.round-arrow{position:absolute;bottom:35px;right:25px;border:1px solid #677b6140;border-radius:50%;width:37px;height:37px;display:grid;place-items:center}.ripple{position:absolute;width:280px;height:140px;border:1px solid #72876555;border-radius:50%;top:50px;left:22%;transform:rotate(-20deg)}.ripple.r2{width:340px;height:180px;top:30px;left:15%}.stone{position:absolute;width:130px;height:88px;background:linear-gradient(150deg,#f2f2df,#a9b69e);border-radius:60% 40% 55% 45%;transform:rotate(-18deg);top:69px;left:38%;box-shadow:10px 22px 23px #70856430}.leaf{position:absolute;width:75px;height:190px;border-radius:95% 0 95% 0;background:linear-gradient(100deg,#5d7f5340,#90a879);transform:rotate(30deg);top:15px;right:22%}.leaf.l2{transform:rotate(-35deg);right:39%;top:30px;background:linear-gradient(100deg,#49683b66,#b7caaa)}.leaf.l3{transform:rotate(70deg);right:11%;top:62px}.bottle{position:absolute;top:65px;right:28%;width:80px;height:116px;border-radius:10px 10px 22px 22px;background:linear-gradient(100deg,#a68c6380,#c8b88d);box-shadow:15px 20px 26px #9b86612a;transform:rotate(8deg)}.bottle:before{content:'';position:absolute;top:-25px;left:22px;width:36px;height:27px;background:#8d805e;border-radius:5px 5px 0 0}.sphere{position:absolute;top:130px;left:22%;width:90px;height:55px;border-radius:50%;background:linear-gradient(160deg,#f9f3e8,#c3b69f);box-shadow:10px 20px 20px #9b86612a}.additional{display:flex;align-items:center;gap:15px;margin:26px 0 14px}.additional>span{font-size:11px;color:#86917f;margin-right:10px}.additional button{flex:1;text-align:left;background:#e8eade77;border:1px solid #dce0d0;padding:16px 20px;border-radius:8px;font-size:16px;color:#526947}.additional small{font-size:9px;color:#9aa18c;margin-left:14px}.additional b{float:right;font-weight:400}footer{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#9ba391;padding:17px 0 18px;gap:15px}footer>span{letter-spacing:3px}footer button{background:transparent;color:#94a088;font-size:10px;margin-left:auto}.selection-heading{display:flex;align-items:end;justify-content:space-between;padding:23px 0 18px}.selection-heading h2{font:27px serif;font-weight:400;letter-spacing:2px;margin:3px 0 0}.swipe-hint{font-size:11px;color:#89967f;letter-spacing:1px}.carousel-shell{position:relative;margin:0 38px}.carousel{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;border-radius:15px;touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch}.carousel::-webkit-scrollbar{display:none}.therapist-slide{flex:0 0 100%;min-width:0;height:clamp(340px,55vh,620px);scroll-snap-align:start;scroll-snap-stop:always;background:#f9f8f3;display:grid;grid-template-columns:55% 45%;border-radius:15px;overflow:hidden;border:1px solid #e0e1d6}.photo{background-image:url('assets/therapists.png');background-size:300% 200%;background-position:var(--pos);position:relative;background-color:#d4dbcc}.photo-demo{position:absolute;top:18px;left:18px;font-size:9px;background:#ffffffb5;border-radius:20px;padding:4px 9px;color:#6a7665}.photo-number{position:absolute;bottom:22px;left:25px;font:46px Georgia,serif;letter-spacing:3px;color:white;text-shadow:0 1px 14px #0003}.photo-number small{display:block;font:9px sans-serif;letter-spacing:3px}.profile{padding:28px 36px;display:flex;flex-direction:column}.profile-top{display:flex;justify-content:space-between;align-items:center}.availability{color:#698466;font-size:11px}.availability.is-busy{color:#a38f70}.profile-no{font-size:10px;color:#9da690;letter-spacing:1px}.profile h3{font:42px serif;font-weight:400;letter-spacing:5px;margin:17px 0 3px}.experience{font-size:11px;color:#8e987f;margin:0}.experience span{padding:0 8px}.profile-bio{font:18px/1.9 serif;letter-spacing:1px;color:#5c7152;margin:20px 0 15px}.feedback-label{font-size:9px;letter-spacing:2px;color:#a0aa93}.tags{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}.tag{font-size:11px;color:#70825e;background:#edf0e2;border-radius:4px;padding:5px 12px}.sample-note{font-size:10px;color:#a0a995;margin:9px 0 15px}.primary{background:#355849;color:#f4f5eb;border-radius:7px;padding:15px 22px}.choose-person{margin-top:auto;min-height:48px;font-size:14px;letter-spacing:1px}.quiet-note{font-size:9px;text-align:center;color:#a1aa96;margin-top:8px}.slide-arrow{position:absolute;top:45%;width:43px;height:43px;border-radius:50%;color:#7f9275;background:#e7eadf;border:1px solid #d8dece;font-size:21px}.prev{left:-58px}.next{right:-58px}.carousel-footer{position:relative;display:flex;align-items:center;flex-direction:column;padding:14px 0 0;gap:11px}.pager{display:flex;gap:7px}.pager button{height:6px;width:6px;border-radius:10px;background:#c7cfb9;padding:0;transition:width .2s}.pager button.active{width:23px;background:#798e65}.sorts{display:flex;gap:12px}.sorts button{min-width:150px;min-height:47px;border:1px solid #d5ddc9;border-radius:8px;color:#6e825d;background:#ecefe3;font-size:13px;letter-spacing:1px}.sorts button.active{background:#355849;color:white;border-color:#355849}.sort-caption{position:absolute;right:0;bottom:12px;font-size:9px;color:#a1aa95}.muted{font-size:12px;color:#829079}.toolbar{display:flex;justify-content:space-between;align-items:center;margin:30px 0 20px}.toolbar h2{font:25px serif}.secondary{background:#e6eadc;color:#4a6240;padding:12px 18px;border-radius:7px}.order{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#fffefa;border:1px solid var(--line);border-radius:11px;padding:22px;margin-bottom:12px}.order h3{font-size:17px;margin:0 0 6px}.pill{font-size:10px;background:#e8ecdf;padding:4px 8px;margin-left:8px}.actions{display:flex;gap:8px}.service-grid{display:flex;gap:20px;justify-content:center;margin:30px 0}.service-option{padding:35px;background:#edf0e3;border:1px solid #dce2d1;border-radius:13px;min-width:250px}.service-option h3{font:25px serif}.empty{text-align:center;padding:70px;color:#8a967f}.rules{max-width:850px;margin:30px auto;background:#fafaf4;padding:35px;border-radius:14px}.rules h2{font:28px serif}.rules h3{font-size:18px;margin-top:24px}.rules p,.rules li{font-size:14px;color:#7b8972}.rules code{display:block;padding:20px;background:#e8ecdf;white-space:normal;font-size:12px}dialog{border:0;border-radius:18px;max-width:560px;width:calc(100% - 36px);padding:32px;color:var(--ink);box-shadow:0 20px 100px #1232}dialog::backdrop{background:#152a2566;backdrop-filter:blur(4px)}dialog h2{font:28px serif;font-weight:400;margin:8px 0 15px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:28px}.field{display:block;margin-top:20px;font-size:12px}.field input{display:block;width:100%;margin-top:6px;padding:12px;border:1px solid #d5decc;border-radius:6px;background:#f8f9f2}.soft-note{font-size:11px;background:#eff1e6;padding:13px;margin-top:15px;color:#8d9a7d}.review-tags{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:24px}.review-tags button{border:1px solid #d4ddd0;border-radius:10px;background:#f6f7ef;padding:22px 10px;color:var(--ink);font-size:17px}.review-tags button.selected{background:#31574a;color:white;border-color:#31574a}.review-tags small{display:block;font-size:10px;margin-top:6px;opacity:.65}#toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:#263f35;color:#fff;padding:12px 24px;border-radius:9px;opacity:0;pointer-events:none;z-index:3}#toast.show{opacity:1}/* Preserve generated portrait proportions while using the contact sheet as a sprite. */
.photo{background-image:none;background-color:#e6dcd0;overflow:hidden}.photo::before{content:'';position:absolute;left:50%;top:0;height:100%;aspect-ratio:1;transform:translateX(-50%);background-image:url('assets/therapists.png');background-size:300% 200%;background-position:var(--pos)}.photo-demo,.photo-number{z-index:1}
/* Landscape Pad canvas: no mobile selection layout. All primary controls stay in one screen. */
html,body{height:100%;overflow:hidden;overscroll-behavior:none}body{touch-action:manipulation}.shell{height:100dvh;min-height:0;padding:0 42px;max-width:1600px}header{height:80px;flex:0 0 80px}.back,.utility{min-height:48px}.head-right .utility{padding:12px 14px}.brand{font-size:28px}main{min-height:0;overflow:hidden;position:relative}#choose{height:100%}#choose-content{height:100%;display:flex;flex-direction:column;min-height:0}#orders,#rules{height:100%;overflow-y:auto;padding-bottom:16px;-webkit-overflow-scrolling:touch}footer{flex:0 0 32px;height:32px;padding:0;font-size:10px}footer button{min-height:32px;padding:0 12px}.home-title{flex:0 0 122px;padding:22px 0 18px}.home-title h2{font-size:34px;margin:6px 0 8px}.home-title p{font-size:13px}.category-slides{flex:1;min-height:0;gap:22px}.category-slide{height:100%;min-height:0}.category-copy{bottom:34px;left:28px}.category-copy strong{font-size:40px}.category-copy>span{font-size:12px}.category-art{transform:scale(1.18);transform-origin:50% 30%}.additional{flex:0 0 88px;margin:0;gap:16px}.additional button{min-height:54px;padding:14px 18px}.additional>span{font-size:12px}.additional small{font-size:10px}.selection-heading{flex:0 0 84px;padding:18px 0 16px}.selection-heading h2{font-size:28px}.swipe-hint{font-size:12px}.carousel-shell{flex:1;min-height:0;margin:0 32px}.carousel{height:100%;width:100%;touch-action:pan-x;overscroll-behavior-x:contain}.therapist-slide{height:100%;min-height:0;grid-template-columns:55% 45%;width:100%}.photo{height:100%}.profile{padding:clamp(24px,3vh,38px) clamp(28px,3vw,46px);min-height:0}.profile h3{font-size:clamp(36px,4.4vh,48px);margin:15px 0 6px}.experience{font-size:13px}.profile-bio{font-size:clamp(18px,2.2vh,23px);margin:clamp(14px,2.8vh,28px) 0 16px}.feedback-label{font-size:11px}.availability{font-size:13px}.tag{font-size:13px;padding:7px 12px}.sample-note{font-size:11px;margin:10px 0 14px}.choose-person{min-height:54px;font-size:16px}.quiet-note{font-size:10px}.slide-arrow{width:52px;height:52px;top:calc(50% - 26px);font-size:24px}.prev{left:-58px}.next{right:-58px}.carousel-footer{flex:0 0 114px;padding:6px 0 10px;gap:0}.pager{height:44px;gap:0;align-items:center}.pager button{width:44px;height:44px;border-radius:0;background:transparent;position:relative}.pager button::after{content:'';position:absolute;left:50%;top:50%;width:7px;height:7px;border-radius:10px;background:#c7cfb9;transform:translate(-50%,-50%)}.pager button.active{width:44px;background:transparent}.pager button.active::after{width:23px;background:#798e65}.sorts{gap:14px}.sorts button{height:54px;min-width:170px;font-size:15px}.sort-caption{bottom:29px;font-size:10px}.service-grid{flex:1;align-items:center;margin:0 0 32px}.service-option{width:30%;padding:32px;min-width:230px}.service-option .primary{min-height:54px}.compact{flex-basis:140px}.photo-demo{font-size:10px}.photo-number{bottom:28px;font-size:54px}dialog{max-height:90dvh;overflow-y:auto}.review-tags button{min-height:94px}.dialog-actions button{min-height:50px}.orientation-gate{display:none}.primary,.secondary,button{ -webkit-tap-highlight-color:transparent }@media (min-width:900px) and (max-width:1150px){.shell{padding:0 32px}.home-title{flex-basis:116px}.category-copy{left:22px;bottom:28px}.category-copy strong{font-size:35px}.category-copy>span{font-size:11px}.category-slides{gap:16px}.round-arrow{right:18px;width:32px;height:32px}.additional small{display:none}.carousel-shell{margin:0 28px}.profile{padding:24px 28px}.profile h3{font-size:38px;margin:13px 0 5px}.profile-bio{margin:18px 0 12px;font-size:18px}.tag{font-size:12px;padding:6px 9px}.sample-note{margin:7px 0 11px}.sort-caption{display:none}.sorts button{min-width:160px}.slide-arrow{width:48px;height:48px}.prev{left:-52px}.next{right:-52px}.choose-person{font-size:14px}.service-option{padding:24px}.additional>span{font-size:11px}}
@media (orientation:portrait),(max-width:899px){.shell{visibility:hidden;pointer-events:none}.orientation-gate{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:32px;background:#f3f1e9;z-index:10}.orientation-gate h2{font:30px serif;letter-spacing:3px}.orientation-gate p{font-size:14px;line-height:2;color:#84907b}.tablet-icon{font-size:90px;line-height:1;color:#92a584;transform:rotate(90deg)}}
.profile{overflow-y:auto;overscroll-behavior:contain}.profile>*{flex-shrink:0}@media (min-width:900px) and (max-width:1150px){.profile{padding:20px 24px}.profile-top{line-height:18px}.availability{font-size:12px}.profile h3{font-size:36px;line-height:1.15;margin:10px 0 4px}.experience{font-size:12px;line-height:18px}.profile-bio{font-size:16px;line-height:1.5;margin:12px 0 8px}.feedback-label{font-size:10px;line-height:15px}.tags{margin-top:6px}.tag{font-size:12px;line-height:18px;padding:6px 9px}.sample-note{font-size:10px;line-height:15px;margin:6px 0}.choose-person{min-height:50px;padding:12px 16px;font-size:14px;line-height:21px}.quiet-note{font-size:9px;line-height:14px;margin-top:6px}}
/* Staff and owner features stay out of the customer selection path. */
#manage,#dashboard{height:100%;overflow-y:auto;padding-bottom:24px}.brand{pointer-events:none}.state-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:22px}.state-card{padding:23px;background:#fafbf4;border:1px solid #dce3d0;border-radius:12px}.state-card>div:first-child{display:flex;justify-content:space-between;align-items:center}.state-card h3{font-size:20px;margin:0}.state-card h3 small{display:block;font-size:10px;font-weight:400;color:#96a18a}.status-chip{font-size:11px;padding:5px 8px;border-radius:20px;background:#e3ead8;color:#587445}.status-chip.busy{background:#f1e4ca;color:#9d7b36}.status-chip.rest{background:#e4e6e2;color:#858c7c}.state-actions{display:flex;gap:5px;margin-top:18px}.state-actions button{padding:12px 8px;min-height:46px;font-size:12px;flex:1}.subheading{font-size:18px;font-weight:500;margin:30px 0 15px}.audit-list{background:#fafbf5;border:1px solid #dfe5d6;border-radius:10px;padding:15px 22px}.audit-list p{font-size:12px;border-bottom:1px solid #ebeee5;padding:10px 0;margin:0}.audit-list p:last-child{border:0}.audit-list small{float:right;color:#a0aa95;font-size:10px}.staff-options{display:flex;gap:12px;margin:25px 0}.staff-options button{flex:1;min-height:54px}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.kpis article{background:#e8eddc;border-radius:12px;padding:23px}.kpis span{display:block;font-size:12px;color:#879879}.kpis strong{font:36px Georgia,serif;display:block;margin-top:12px}.table-wrap{overflow-x:auto;border:1px solid #dfe5d5;border-radius:10px;background:#fafbf5}table{width:100%;border-collapse:collapse;white-space:nowrap;text-align:left}th,td{padding:16px 20px;border-bottom:1px solid #e6ebdd;font-size:13px}th{font-weight:400;color:#859579;background:#edf1e4}td small{font-size:10px;color:#99a58c}.head-right{gap:5px}.head-right .utility{padding:10px;font-size:12px}
/* Keep a usable mobile UI, rather than blocking it with a rotate prompt. */
@media (orientation:portrait),(max-width:899px){.shell{visibility:visible;pointer-events:auto}.orientation-gate{display:none}html,body{height:auto;min-height:100%;overflow:auto}main{overflow:visible}.shell{height:auto;min-height:100dvh;padding:0 22px}#choose,#choose-content{height:auto}#orders,#rules,#manage,#dashboard{height:auto;overflow:visible}.category-slide{min-height:270px}.home-title{flex:auto;padding:30px 0}.additional{margin:20px 0;flex-wrap:wrap;flex:auto}.additional>span{width:100%}.selection-heading{flex:auto;padding:24px 0}.carousel-shell{height:520px;flex:none;margin:0 25px}.carousel-footer{flex:auto;padding:15px 0;position:sticky;bottom:0;background:#f3f1e9;z-index:2}.sort-caption{display:none}footer{min-height:40px}.state-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.shell{padding:0 16px}header{height:76px;flex-basis:76px}.brand{position:static;transform:none;font-size:22px;letter-spacing:2px}.brand small{font-size:6px}.back{min-width:30px;width:30px;font-size:22px}.back span{display:none}.head-right{gap:0}.head-right .utility{font-size:10px;padding:10px 6px}.home-title h2{font-size:28px}.home-title p{font-size:11px}.category-slides{display:flex;flex-direction:column;gap:12px;flex:auto}.category-slide{height:150px;min-height:150px;flex:none}.category-copy{bottom:22px;left:22px}.category-copy strong{font-size:29px;margin:2px 0 5px}.category-num{display:none}.category-art{left:50%;opacity:.65}.additional{gap:8px}.additional button{font-size:14px;padding:12px 10px}.additional small{display:none}.selection-heading h2{font-size:21px}.swipe-hint{font-size:8px}.carousel-shell{height:690px;margin:0}.therapist-slide{grid-template-columns:1fr;grid-template-rows:340px 350px}.photo{height:340px}.profile{padding:18px 24px}.profile h3{font-size:30px;margin-top:8px;line-height:1.2}.profile-bio{display:none}.feedback-label{margin-top:16px}.sample-note{margin:6px 0}.slide-arrow{top:145px;width:40px;height:40px}.prev{left:6px}.next{right:6px}.sorts{gap:7px;width:100%}.sorts button{min-width:0;flex:1;font-size:13px;height:48px}.carousel-footer{padding:0 0 10px}.quiet-note{font-size:9px}.service-grid{flex-direction:column;align-items:stretch;margin-bottom:20px}.service-option{width:100%;min-width:0}.toolbar{align-items:flex-start;gap:10px;flex-wrap:wrap}.toolbar h2{font-size:23px}.order{align-items:flex-start;flex-direction:column}.actions{flex-wrap:wrap}.actions button{font-size:12px}.state-grid{grid-template-columns:1fr}.kpis{grid-template-columns:1fr 1fr;gap:10px}.kpis article{padding:17px}.kpis strong{font-size:29px}.audit-list small{float:none;display:block}footer>span{display:none}footer small{font-size:8px}.rules{padding:20px}}
#services{height:100%;overflow-y:auto;padding-bottom:24px}.review-tech-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:25px}.review-tech-card{display:flex;align-items:center;gap:18px;text-align:left;padding:25px 20px;border:1px solid #dbe3d1;border-radius:14px;background:#fafbf5;color:#3f5941;min-height:135px}.review-avatar{height:64px;width:64px;flex:0 0 64px;border-radius:50%;background:#e0e8d5;display:grid;place-items:center;font:30px serif;color:#819671}.review-tech-card strong{display:block;font-size:23px;font-weight:500}.review-tech-card small{display:block;font-size:10px;color:#8b9a7e;margin:4px 0 10px}.review-tech-card em{font-size:11px;font-style:normal;color:#6d855b}.review-tech-card b{font-size:20px;font-weight:400;margin-left:auto}.review-service-list{display:grid;gap:10px;max-height:45vh;overflow:auto}.review-service{border:1px solid #d8e1ce;background:#f5f8ef;padding:17px;border-radius:9px;text-align:left;color:#4e6846}.review-service strong{display:block;font-size:16px}.review-service small{display:block;font-size:11px;color:#8a9a7c;margin:4px 0 8px}.review-service span{font-size:12px}.review-tech-card:hover{background:#edf2e6}@media(max-width:1150px){.review-tech-grid{grid-template-columns:repeat(2,1fr)}}@media (orientation:portrait),(max-width:899px){#services{height:auto;overflow:visible}}@media(max-width:600px){.review-tech-grid{grid-template-columns:1fr;gap:12px}.review-tech-card{padding:20px;min-height:115px}}
.owner-title{font-size:17px;letter-spacing:1px}.owner-mode{font-size:11px;color:#8c9b7c}.owner-page #dashboard{height:100%;overflow-y:auto}.owner-page .soft-note{margin-bottom:20px}@media(max-width:600px){.owner-title{font-size:13px}.owner-mode{font-size:9px}.owner-page .brand{font-size:20px}.owner-page #dashboard{height:auto;overflow:visible}}
/* 红太阳 · Obsidian / Vermilion. Brand layer preserves existing flows. */
:root{color-scheme:dark;--ink:#f1ede7;--muted:#aaa5a1;--green:#a72530;--gold:#d6aaa4;--line:#393638}
body{background:#131315;color:var(--ink)}.shell{background:radial-gradient(ellipse at 65% -20%,#61212b35,transparent 57%)}
header{border-color:#343235}.brand{font-family:'Songti SC','STSong',serif;font-size:23px;letter-spacing:2px;white-space:nowrap}.brand:before{content:'';display:inline-block;width:14px;height:14px;border-radius:50%;background:#c43b45;box-shadow:0 0 22px #ae223a40;margin-right:10px}.brand small{color:#ad9792;font-size:8px;letter-spacing:3px}.head-right .utility{color:#d0c7c4}.staff-switch{border:1px solid #494045;border-radius:5px}.back{color:#e9dfdc}.home-title h2{font-family:'Songti SC','STSong',serif}.home-title p,.swipe-hint,.experience,.profile-no,.sample-note,.quiet-note,.muted,.empty,.owner-mode{color:#aaa3a3}.eyebrow{color:#d19c96}.home-title .eyebrow{letter-spacing:4px}.category-slide{background:linear-gradient(145deg,#39373b,#242326 68%);color:#f5ece6;border:1px solid #51474a;border-radius:5px;box-shadow:0 20px 50px #0003}.category-slide.thai{background:linear-gradient(145deg,#302e32,#202023 68%)}.category-slide.spa{background:linear-gradient(145deg,#443238,#292326 68%)}.category-slide:after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(90deg,#c33d47,transparent 65%)}.category-num{color:#c7a9a5;font-family:Georgia,serif;font-size:19px}.category-copy small{color:#c5aaa5}.category-copy>span{color:#c2b8b6}.round-arrow{color:#eedbd5;border-color:#786165;background:#4f303640}.ripple{border-color:#ae8b8b55}.stone{background:linear-gradient(145deg,#77777b,#333438);box-shadow:12px 25px 30px #0005}.leaf{background:linear-gradient(110deg,#5a494b,#242528);box-shadow:inset 1px 0 #88737850}.leaf.l2{background:linear-gradient(110deg,#796164,#343135)}.bottle{background:linear-gradient(100deg,#522730,#973f49 50%,#50252e);box-shadow:15px 20px 30px #0005}.bottle:before{background:linear-gradient(90deg,#64585a,#b2a19c,#514749)}.sphere{background:linear-gradient(145deg,#928381,#3b3538);box-shadow:10px 20px 20px #0005}.additional>span{color:#aea3a0}.additional button{background:#222124;border-color:#40393c;color:#e0d6d2;border-radius:5px}.additional small{color:#a99a96}footer,footer button{color:#aaa09d}.therapist-slide{background:#252326;border-color:#494044;border-radius:7px}.photo{background-color:#403a3c}.photo::before{filter:saturate(.72) contrast(1.04)}.photo-demo{background:#171519cc;color:#efe5df;border:1px solid #ffffff25}.profile{background:linear-gradient(135deg,#302a2e,#211f22)}.profile-bio{color:#d2c4c0}.feedback-label{color:#b8aaa6}.availability{color:#c5d3c1}.availability.is-busy{color:#d9ad91}.tag{color:#e0c1bb;background:#503339;border:1px solid #6a4148}.primary{background:linear-gradient(110deg,#b52c38,#96232e);color:#fff6f1;border:1px solid #cc535b;box-shadow:0 5px 20px #6c112125}.primary:hover{background:#c13743}.secondary{background:#383236;color:#e7d8d3;border:1px solid #55474c}.slide-arrow{background:#302a2e;border-color:#615157;color:#ead8d1}.pager button::after{background:#655257}.pager button.active::after{background:#ce535d}.sorts button{background:#262226;border-color:#55434b;color:#d3bdb8}.sorts button.active{background:#a12b37;border-color:#cd565f;color:#fff}.sort-caption{color:#a99a96}.order,.state-card,.review-tech-card,.audit-list,.table-wrap,.rules{background:#242225;border-color:#463c41;color:#eee4df}.review-tech-card:hover{background:#34292f}.review-avatar{background:#50323c;color:#e7c1ba}.review-tech-card small,.review-tech-card em,.state-card h3 small,.audit-list small,td small{color:#b7a5a0}.review-service{background:#2d272b;border-color:#55434b;color:#e7d6ce}.review-service small{color:#b9a39e}.pill{background:#49313b;color:#e9c7bd}.service-option{background:#282327;border-color:#514249}.soft-note{background:#30272c;color:#c4b2ac;border-left:2px solid #b63a46}.status-chip{background:#303d33;color:#c5dbc3}.status-chip.busy{background:#59383b;color:#f2c3b9}.status-chip.rest{background:#3d393e;color:#c8bdc6}.audit-list p{border-color:#44383e}.kpis article{background:linear-gradient(135deg,#382b31,#262125);border:1px solid #514048;border-radius:7px}.kpis span{color:#c4b1ac}.kpis strong{color:#f2d8ce}th{color:#d1b5ae;background:#34272f}th,td{border-color:#44343e}.rules p,.rules li{color:#c2b5b0}.rules code{background:#332a30;color:#dfc1ba}dialog{background:#252126;color:#f2e8e1;box-shadow:0 24px 100px #0008;border:1px solid #61464f}dialog::backdrop{background:#080609b5}.field input{background:#1a171c;border-color:#65505a;color:#fff}.review-tags button{background:#31292f;border-color:#614a55;color:#eadbd3}.review-tags button.selected{background:#a72b3a;border-color:#e37a7d;color:white}#toast{background:#a92c3b;color:#fff;border:1px solid #e1747f}button:focus-visible,input:focus-visible{outline-color:#f1b4aa}.demo-label{color:#d6aaa3;border-color:#7c4d56}
@media (orientation:portrait),(max-width:899px){.carousel-footer{background:#131315eF;backdrop-filter:blur(10px)}}
@media(min-width:900px) and (max-width:1150px){.brand{left:30%;font-size:19px}.brand small{font-size:7px}.head-right .utility{padding:10px 8px}.owner-page .brand{left:50%}}
@media(max-width:600px){header{height:112px;flex-basis:112px;flex-wrap:wrap;align-content:center;gap:4px}.brand{font-size:19px;flex:1;text-align:center;letter-spacing:1px}.brand:before{width:11px;height:11px;margin-right:7px}.brand small{font-size:7px;letter-spacing:2px}.head-right{width:100%;justify-content:flex-end}.head-right .utility{font-size:12px;padding:7px 12px;min-height:36px}.brand{padding-right:30px}.owner-page header{height:110px;flex-basis:110px;justify-content:space-between}.owner-page .brand{order:-1;width:100%;flex:0 0 100%;font-size:19px;padding:0}.owner-title{font-size:13px}.owner-mode{font-size:10px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

@media(min-width:601px){.prev{left:-26px}.next{right:-26px}}

/* v8: all four tag totals with explicit demo/local breakdown. */
.tag-counts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.tag-count{display:grid;grid-template-columns:1fr auto;gap:3px 8px;background:#493039;border:1px solid #69434f;border-radius:6px;padding:9px 11px;font-size:12px}.tag-count strong{font:20px Georgia,serif;color:#f7ddd4}.tag-count strong small{font:10px sans-serif}.tag-count>small{grid-column:1/-1;font-size:9px;color:#c6aca5}.tag-count.neutral{background:#302b30;border-color:#51464e}.profile-bio{margin:12px 0 10px;font-size:18px;line-height:1.5}.sample-note{font-size:10px;margin:8px 0 10px}@media(max-width:600px){.therapist-slide{grid-template-rows:340px 390px}.carousel-shell{height:730px}.tag-count{padding:8px 10px}.feedback-label{margin-top:10px}}
.login-page{height:auto;min-height:100dvh;overflow:auto;display:grid;place-items:center;padding:28px}.login-panel{width:100%;max-width:440px;background:linear-gradient(145deg,#30252b,#201c21);border:1px solid #59414b;padding:38px;border-radius:12px}.login-panel h1{font:36px/1.4 'Songti SC',serif;letter-spacing:3px}.login-panel .primary{width:100%;margin:20px 0}.login-panel #error{color:#f4a4a4;font-size:13px}.header-account{font-size:11px;color:#cbb4ad}.live-notice{font-size:10px;color:#b2bcae}.server-error{background:#5b2534;color:#ffe1e1;padding:12px}.admin-panel{max-width:1100px;margin:30px auto;padding:0 22px}.admin-page{height:auto;overflow:auto}.admin-panel form{display:grid;grid-template-columns:repeat(2,1fr);gap:15px;padding:22px;background:#282126}.field select{display:block;margin-top:6px;width:100%;padding:12px;background:#201b20;color:#eee;border:1px solid #63505a;border-radius:6px}.account-actions{display:flex;gap:8px;flex-wrap:wrap}.admin-panel .field{margin:0}@media(max-width:600px){.admin-panel form{grid-template-columns:1fr}}
