:root{--ink:#183d36;--green:#155e52;--muted:#687e76;--paper:#f7f8f3;--mint:#e2eee4;--line:#dce3dc;--orange:#f0a875;--shadow:0 16px 50px #1c463810}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:var(--green);text-decoration:none}a:hover{text-decoration:none;cursor:pointer}button,input,select,textarea{font:inherit}button,.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 22px;border:1px solid var(--green);border-radius:13px;background:var(--green);color:white;font-weight:650;cursor:pointer;text-align:center;text-decoration:none}button:hover,.button:hover{filter:brightness(.95);text-decoration:none}.secondary{background:#fff;color:var(--green);border-color:var(--line)}.quiet{font-size:14px;font-weight:600}.topbar{max-width:1180px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:25px 24px}.brand{display:flex;align-items:center;color:var(--ink);font-size:25px;font-weight:750;letter-spacing:-1px}.brand>span:not(.brandmark){color:var(--green)}.brandmark{display:inline-grid;place-items:center;background:var(--green);color:white;border-radius:11px;width:34px;height:34px;margin-right:9px;font-size:24px}.brand small{font-size:9px;letter-spacing:1px;background:var(--mint);padding:3px 6px;border-radius:4px;margin-left:9px}.landing{max-width:1132px;margin:auto;padding:0 24px}.hero{display:grid;grid-template-columns:1.15fr 1fr;align-items:center;gap:50px;padding:45px 0 75px}.pill,.badge{display:inline-block;font-size:11px;font-weight:700;letter-spacing:1px;background:var(--mint);padding:7px 13px;border-radius:30px}.hero h1{font-size:clamp(42px,5.5vw,68px);line-height:1.08;letter-spacing:-3px;margin:23px 0}.hero h1 em{font-style:normal;color:var(--green)}.herocopy>p{max-width:440px;font-size:19px;color:var(--muted);line-height:1.65}.buttons{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}.heronote{display:flex;flex-wrap:wrap;gap:7px 20px;font-size:12px;color:var(--muted)}.industrychips{display:flex;flex-wrap:wrap;gap:8px;margin-top:35px}.industrychips span{font-size:12px;padding:6px 11px;border:1px solid var(--line);border-radius:8px}.herovisual{position:relative;display:grid;place-items:center;padding:35px;background:radial-gradient(ellipse at center,#dce9d9 0,transparent 68%)}.phone{width:300px;max-width:100%;border:8px solid #214d43;border-radius:39px;background:#fbfcf8;padding:15px 17px;box-shadow:20px 30px 50px #1b483824;transform:rotate(3deg)}.phonebar{width:85px;height:15px;background:#214d43;border-radius:20px;margin:0 auto 25px}.mockhead>span{display:block;color:var(--muted);font-size:11px}.mockhead>strong{font-size:19px;letter-spacing:-.6px}.mockstats{display:flex;gap:10px;margin:17px 0}.mockstats div{width:50%;border-radius:13px;background:var(--mint);padding:10px;font-size:10px}.mockstats strong{display:block;font-size:23px;line-height:1.2}.mockappointment{display:flex;align-items:center;gap:9px;font-size:12px;padding:13px 0}.mockappointment small{display:block;color:var(--muted);font-size:10px}.avatar{display:grid;place-items:center;flex-shrink:0;width:42px;height:42px;border-radius:50%;background:#e8dac8;color:#694a33;font-weight:700;font-size:14px}.dot{width:7px;height:7px;background:var(--green);border-radius:50%;margin-left:auto}.mockvisit{padding:13px;border-radius:12px;background:#f0eee5}.eyebrow{font-size:10px;letter-spacing:1.5px;font-weight:750;color:var(--muted)}.mockvisit h3{font-size:13px;margin:6px 0}.mockvisit p,.mockrecord p{font-size:10px;color:var(--muted)}.chips{display:flex;flex-wrap:wrap;gap:8px}.chips>span{font-size:12px;background:var(--mint);border-radius:8px;padding:7px 11px}.phone .chips{gap:5px}.phone .chips>span{font-size:9px;padding:5px 8px}.mockrecord{padding:18px 0 5px;font-size:13px}.selected{background:var(--green)!important;color:white}.mockbutton{margin-top:17px;padding:10px;background:var(--green);color:white;text-align:center;border-radius:9px;font-size:11px}.mockbottom{font-size:9px;color:var(--muted);text-align:center;padding:15px 0 0}.floatinglabel{position:absolute;right:-5px;top:13px;font-size:12px;background:#fff5df;border:1px solid #e9debf;padding:11px 17px;border-radius:12px;z-index:1;transform:rotate(-5deg);box-shadow:var(--shadow)}.visualcaption{font-size:10px;color:var(--muted);margin-top:20px}.benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.benefits article{background:white;padding:27px;border:1px solid var(--line);border-radius:20px}.icon{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;font-size:26px}.mint{background:var(--mint)}.peach{background:#ffeadb}.lavender{background:#e9e6f2}h2{font-size:32px;line-height:1.2;letter-spacing:-1px}h3{font-size:18px;line-height:1.4}p{color:var(--muted)}.benefits p{font-size:14px}.splitsection{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;padding:100px 0}.splitsection h2,.pricingsection h2,.closing h2{font-size:44px}.splitsection p{max-width:410px}.textlink{font-size:14px;font-weight:700}.historypreview{background:white;border:1px solid var(--line);border-radius:20px;padding:25px;box-shadow:var(--shadow)}.previewheader{display:flex;align-items:center;gap:13px;margin-bottom:20px}.previewheader h3,.previewheader h2{margin:0}.previewheader small{color:var(--muted)}details{border-top:1px solid var(--line)}summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:10px;padding:18px 0;min-height:52px}summary::-webkit-details-marker{display:none}summary:after{content:'+';margin-left:auto;font-size:18px}details[open]>summary:after{content:'−'}summary>span:last-child,summary>b:last-child{display:none}.historypreview summary{font-size:11px}.historypreview summary strong{font-size:12px}.detailbody{padding:0 0 20px;font-size:14px}.detailbody p{overflow-wrap:anywhere}.filebadge{display:inline-block;background:#f2efe7;border-radius:7px;padding:7px 10px;font-size:11px}.pricingsection{text-align:center;padding:20px 0 70px}.pricegrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:30px 0 20px}.pricecard{text-align:left;position:relative;background:white;border:1px solid var(--line);border-radius:20px;padding:28px;display:flex;flex-direction:column}.pricecard.featured{border:2px solid var(--green);background:#f2f7ee}.badge{position:absolute;top:-15px;left:20px;background:var(--green);color:white}.pricecard h3{margin:0 0 15px}.price{font-size:48px;font-weight:750;letter-spacing:-2px;line-height:1.2}.price small{font-size:17px;vertical-align:top;letter-spacing:0;margin-right:5px}.price>span{font-size:12px;font-weight:400;color:var(--muted);letter-spacing:0;margin-left:5px}.pricecard p{font-size:14px}.pricecard ul{padding:0;list-style:none;font-size:13px;line-height:2.2;margin-bottom:24px}.pricecard li:before{content:'✓ ';color:var(--green)}.pricecard .button{margin-top:auto}.largerplans{border:0}.largerplans>summary{justify-content:center;font-size:14px;display:inline-flex;gap:10px}.largerplans>summary:after{margin-left:8px}.fineprint{font-size:12px;color:var(--muted);line-height:1.7}.steps{border-top:1px solid var(--line);padding:45px 0}.stepgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:35px}.stepgrid b{color:#8eaa95;font-size:29px}.stepgrid p{font-size:14px}.faq{max-width:760px;margin:35px auto 70px}.faq summary{font-weight:600}.faq p{font-size:14px;padding-bottom:18px}.closing{text-align:center;padding:45px 25px;border-radius:25px;background:#e3ece0;margin-bottom:45px}.closing h2{margin-top:0}.closing p{font-size:12px}footer{text-align:center;color:var(--muted);font-size:13px;padding:25px 20px 35px}footer small{font-size:11px}.narrow{max-width:600px;margin:35px auto 60px;padding:0 24px}.card{background:white;border:1px solid var(--line);border-radius:18px;padding:24px;margin:18px 0}.stack{display:flex;flex-direction:column;gap:17px}.stack>button{align-self:flex-start}.stack>h2{margin:0}.stack p{margin:0}.pagetitle{margin:20px 0 28px}.pagetitle h1{font-size:35px;line-height:1.2;letter-spacing:-1.4px;margin:9px 0}.pagetitle p{margin:10px 0}.formgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:650;color:var(--ink)}input,select,textarea{width:100%;min-height:47px;border:1px solid #cbd8cd;border-radius:10px;padding:11px 12px;color:var(--ink);background:#fbfcf9;font-size:15px}textarea{min-height:110px;resize:vertical}input:focus,select:focus,textarea:focus{outline:3px solid #b4d0b6;outline-offset:1px}input[type=number]{appearance:textfield}input[type=file]{font-size:13px}.checkline{flex-direction:row;align-items:flex-start;font-weight:400;flex-wrap:wrap;gap:8px}.checkline input{width:18px;height:18px;min-height:18px;margin-top:2px;flex-shrink:0}.center{text-align:center}.notice{max-width:1084px;padding:16px 20px;margin:15px auto;background:#fff0d9;border:1px solid #ecd2a9;border-radius:13px;font-size:14px}.error{background:#fff0ec;color:#913b2b;border-color:#efcbbd}.success{background:#e2efde;border-color:#b8d5ad}.warning{background:#fff4de}.muted{color:var(--muted);font-size:13px}.workspace{max-width:1100px;margin:10px auto 50px;padding:0 24px}.app{padding-bottom:75px}.app .topbar{max-width:1148px}.bottomnav{position:fixed;bottom:0;left:0;right:0;z-index:10;display:flex;justify-content:center;gap:60px;background:#fffffff5;border-top:1px solid var(--line);padding:10px 20px max(10px,env(safe-area-inset-bottom));backdrop-filter:blur(12px)}.bottomnav a{display:flex;flex-direction:column;align-items:center;font-size:22px;line-height:1.2;min-width:50px}.bottomnav a span{font-size:10px;margin-top:3px}.bottomnav .navadd{font-weight:750}.statgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.stat{padding:20px;background:var(--mint);border-radius:15px;display:flex;flex-direction:column}.stat strong{font-size:27px;line-height:1.2}.stat small{font-size:16px;color:var(--muted)}.stat>span{font-size:12px;margin-top:6px;color:var(--muted)}.toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:15px;justify-content:space-between;margin:24px 0}.inlineform,.searchform{display:flex;align-items:center;gap:8px}.inlineform input{width:auto}.inlineform button{padding:9px 14px}.searchform{flex:1}.searchform input{max-width:350px}.dashboardgrid{display:grid;grid-template-columns:1.6fr 1fr;gap:22px}.appointmentrow{display:flex;align-items:center;gap:14px;padding:19px 0;border-bottom:1px solid var(--line);color:var(--ink)}.appointmentrow:last-child{border-bottom:0}.appointmentrow:hover{text-decoration:none}.time{width:60px;font-size:19px;font-weight:650;flex-shrink:0}.time small{display:block;font-size:10px;color:var(--muted);font-weight:400}.rowbody{display:flex;flex-direction:column;flex:1;min-width:0}.rowbody strong{font-size:15px}.rowbody span{font-size:12px;color:var(--muted)}.status{font-size:10px;padding:5px 8px;border-radius:7px;background:#e9ede6;white-space:nowrap;text-transform:capitalize}.status.arrived,.status.completed{background:#dcecd8;color:#356432}.status.in_session{background:#ffead4;color:#89502d}.status.cancelled,.status.no_show{background:#f4e0dc;color:#965340}.empty{padding:45px 20px;text-align:center;border:1px dashed var(--line);border-radius:15px;margin:20px 0}.empty>span{font-size:40px;color:#91a88c}.empty h3{margin:10px 0}.empty p{font-size:13px}.sectionhead{display:flex;align-items:center;justify-content:space-between;gap:15px}.clientrow{display:flex;align-items:center;gap:15px;padding:18px 20px}.clientrow>div{display:flex;flex-direction:column;flex:1}.clientrow small{font-size:12px;color:var(--muted)}.clientrow:hover{text-decoration:none;background:#f3f7ef}.history details{border-top:1px solid var(--line)}.history details:first-child{border-top:0}.history summary>span:first-child{font-size:12px;flex-shrink:0;color:var(--muted);display:block}.history summary strong{flex:1;font-size:14px}.history summary small{font-size:10px;color:var(--muted)}.history .detailbody{padding-top:5px}.uploadpanel summary{font-size:12px;font-weight:650}.filelink{display:block;padding:10px 12px;margin:8px 0;background:#eef1e8;border-radius:9px;font-size:12px;overflow-wrap:anywhere}.chipcheck{display:inline-block;position:relative;cursor:pointer}.chipcheck input{position:absolute;opacity:0;width:1px;height:1px;min-height:0}.chipcheck span{display:inline-flex;padding:12px 16px;border:1px solid var(--line);border-radius:11px;font-size:14px;background:#f8faf5;min-height:46px;align-items:center}.chipcheck input:checked+span{background:var(--green);color:white;border-color:var(--green)}.chipcheck input:focus-visible+span{outline:3px solid #b4d0b6;outline-offset:2px}.chip{background:var(--mint);color:var(--green);border:1px solid var(--line);padding:12px 16px;font-size:13px}.chip[aria-pressed=true]{background:var(--green);color:white}.draftstatus{font-size:11px;color:var(--muted)}.tabs{display:flex;gap:10px;margin-bottom:25px}.tabs a{padding:10px 15px;border:1px solid var(--line);border-radius:10px;font-size:13px}.tabs a.active{background:var(--green);color:white}.bankdetails{background:var(--mint);border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:5px}.bankdetails b{font-size:22px;letter-spacing:1px}.prose h1{font-size:32px}.prose h2{font-size:21px}.prose p{font-size:14px}.bigcheck{display:inline-block;background:var(--mint);padding:13px 28px;border-radius:50%;font-size:45px}.tablewrap{overflow:auto}table{border-collapse:collapse;width:100%;background:white;font-size:13px}th,td{text-align:left;border-bottom:1px solid var(--line);padding:13px}hr{border:0;border-top:1px solid var(--line);margin:24px 0}.card>summary{padding:0}.card[open]>summary{padding-bottom:20px}.card small{display:block}.card .pill{display:inline-block}.history.card{padding-top:0;padding-bottom:0}.pricecard small{display:inline-block}.largerplans .pricegrid{text-align:left}.app footer{padding-top:20px}@media(max-width:760px){.topbar{padding:18px 20px}.brand{font-size:22px}.landing{padding:0 20px}.hero{grid-template-columns:1fr;gap:15px;padding:30px 0 40px}.hero h1{font-size:48px;letter-spacing:-2px}.hero .pill{font-size:9px}.herocopy>p{font-size:17px}.herovisual{padding:25px 20px 15px}.phone{width:280px}.floatinglabel{right:0;font-size:11px;top:20px}.industrychips{margin-top:25px}.benefits{grid-template-columns:1fr;gap:12px}.benefits article{padding:22px}.benefits h3{margin:12px 0 7px}.benefits p{margin:0}.splitsection{grid-template-columns:1fr;gap:25px;padding:55px 0}.splitsection h2,.pricingsection h2,.closing h2{font-size:34px}.pricegrid{grid-template-columns:1fr;gap:20px}.pricecard{padding:24px}.pricingsection{padding-bottom:35px}.pricingsection>p{font-size:14px}.stepgrid{grid-template-columns:1fr;gap:15px}.stepgrid article{display:grid;grid-template-columns:50px 1fr;column-gap:15px}.stepgrid b{grid-row:span 2}.stepgrid h3{margin:0}.stepgrid p{margin:5px 0}.steps h2,.faq h2{font-size:28px}.faq{margin:25px 0 40px}.closing{padding:30px 20px}.workspace{padding:0 16px}.narrow{padding:0 16px;margin:25px auto}.pagetitle h1{font-size:29px}.card{padding:20px}.statgrid{grid-template-columns:1fr 1fr;gap:10px}.statgrid>.stat:last-child{grid-column:span 2;flex-direction:row;align-items:center;justify-content:space-between}.stat{padding:16px}.stat strong{font-size:23px}.dashboardgrid{grid-template-columns:1fr;gap:0}.toolbar{gap:10px}.bottomnav{gap:0;justify-content:space-around;padding-left:5px;padding-right:5px}.bottomnav a{min-width:55px;font-size:21px}.formgrid{grid-template-columns:1fr}.appointmentrow{gap:10px}.time{width:52px;font-size:17px}.status{font-size:9px}.history summary{flex-wrap:wrap;gap:7px}.history summary>span:first-child{flex-basis:100%}.history summary strong{font-size:13px}.history summary:after{font-size:16px}.history summary small{margin-left:auto}.clientrow .muted{font-size:11px}.buttons .button{padding:11px 15px;font-size:13px}.searchform input{width:100%;min-width:0}.searchform button{padding:11px 15px}.sectionhead h2{font-size:23px}.phone .eyebrow{font-size:8px}.stack>button{width:100%}.inlineform button{width:auto}.notice{margin:12px 16px}.prose{margin:25px 16px}.stat a{text-decoration:none}}@media(prefers-reduced-motion:no-preference){details[open] .detailbody{animation:appear .18s ease}@keyframes appear{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}}[hidden]{display:none!important}.photopreview{display:inline-flex;flex-direction:column;gap:6px;max-width:100%;margin:10px 10px 5px 0}.photopreview img{max-width:260px;max-height:220px;width:auto;object-fit:contain;border-radius:12px;border:1px solid var(--line)}.slotcontrols{display:grid;grid-template-columns:1fr 1fr;gap:16px}.slotstatus{grid-column:span 2;color:var(--muted)}@media(max-width:760px){.slotcontrols{grid-template-columns:1fr}.slotstatus{grid-column:auto}}

.profilepanel summary,.documentrow summary{cursor:pointer;padding:16px 0;font-weight:700}.profilepanel{margin-bottom:16px}.profilepanel[open]>summary{margin-bottom:12px}.profiledata{display:grid;grid-template-columns:1fr 2fr;gap:10px}.profiledata dt{color:var(--muted)}.profiledata dd{margin:0;overflow-wrap:anywhere}.documentrow{border-bottom:1px solid #dce5e1}.profilepanel textarea{margin-bottom:12px}
.alphabet{display:flex;flex-wrap:wrap;gap:5px;margin:16px 0}.alphabet a,.alphabet button{display:grid;place-items:center;min-width:36px;min-height:40px;padding:6px;border:1px solid #d8e5df;border-radius:8px;color:#155e52;text-decoration:none}.alphabet .active{background:#155e52;color:white}.searchstatus{font-size:13px;min-height:24px}.supportbanner{background:#fff1c9;color:#493309;padding:16px;display:flex;gap:12px;flex-wrap:wrap;align-items:center}.supportbanner span{font-size:13px}.statline{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid #e2e9e5;padding:10px 0}.democlients{margin-top:24px}.clientrow>div{min-width:0}.clientrow strong,.clientrow small{overflow-wrap:anywhere}.demomatches details{border-bottom:1px solid #e2e9e5}.supportbanner form{margin:0}

.brand,.brand:hover,.brand:focus,.brand:active{text-decoration:none;cursor:pointer}.brandmark img{display:block;width:34px;height:34px}.brand:focus-visible{outline:2px solid var(--green);outline-offset:5px;border-radius:4px}

.importmapping{display:grid;grid-template-columns:1fr 1fr;gap:16px}.importmapping small{color:var(--muted);overflow-wrap:anywhere}.importmapping label{overflow-wrap:anywhere}@media(max-width:760px){.importmapping{grid-template-columns:1fr}}

@media(max-width:760px){.importpreviewtable,.importpreviewtable tbody,.importpreviewtable tr,.importpreviewtable td{display:block;width:100%}.importpreviewtable thead{display:none}.importpreviewtable tr{border:1px solid var(--line);border-radius:12px;margin:12px 0;padding:12px}.importpreviewtable td{border:0;padding:4px 0;overflow-wrap:anywhere}.importpreviewtable td:before{content:attr(data-label) ": ";color:var(--muted);font-weight:600}}

.housekeeping p,.housekeeping .checkline{overflow-wrap:anywhere}.housekeeping article{border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:14px}@media(max-width:760px){.hkorgtable,.hkorgtable tbody,.hkorgtable tr,.hkorgtable td{display:block;width:100%}.hkorgtable thead{display:none}.hkorgtable tr{border:1px solid var(--line);border-radius:12px;padding:12px;margin:12px 0}.hkorgtable td{border:0;padding:8px 0;overflow-wrap:anywhere}.hkorgtable td:before{content:attr(data-label);display:block;color:var(--muted);font-size:11px;font-weight:700;margin-bottom:4px}.hkorgtable td form{display:inline-block;margin:4px 6px 0 0}}

.messagecomposer { margin: 14px 0; } .messagecomposer form { margin-top: 12px; } .messagebody { width: 100%; }

.paymentqr { max-width:100%; height:auto; }

.appointmentpanel h2 { font-size: 1.4rem; line-height: 1.25; }

.tn-choices,.tn-history,.tn-signature { border:0; padding:0; margin:18px 0; min-width:0; }
.tn-choices legend,.tn-history legend,.tn-signature legend { font-weight:700; margin-bottom:10px; }
.tn-scores { display:flex; gap:6px; flex-wrap:wrap; }
.tn-scores .chipcheck span { min-width:36px; padding:9px; text-align:center; }
.tn-clear-choice { display:block; margin-top:8px; border:0; background:transparent; font-size:.85rem; padding:4px 0; }
.tn-history { padding-bottom:14px; border-bottom:1px solid #e5ebe6; }
.tn-history-details { margin-top:12px; }
.tn-event summary { overflow-wrap:anywhere; }
.tn-event .stack { padding-top:16px; }
.tn-event h2 { font-size:1.3rem; }
.tn-signature canvas { width:100%; max-width:600px; height:auto; display:block; background:white; border:1px solid #bfcfc6; border-radius:10px; touch-action:none; margin-bottom:10px; }
.tn-letter { max-width:820px; margin:20px auto; padding:28px; background:white; border:1px solid #dde6df; border-radius:16px; color:#182f29; font-family:Arial,"VisitKeep CJK","PingFang SC","Microsoft YaHei",sans-serif; }
.tn-letter h1 { font-size:1.55rem; text-align:center; line-height:1.5; }
.tn-letter h1 small { font-size:1.05rem; }
.tn-letter header p { text-align:center; font-weight:700; }
.tn-identity { display:grid; grid-template-columns:auto 1fr; gap:8px 18px; margin:20px 0; font-size:.95rem; }
.tn-identity dt { font-weight:700; } .tn-identity dd { margin:0; overflow-wrap:anywhere; }
.tn-consent-paragraph { margin:16px 0; line-height:1.75; overflow-wrap:anywhere; }
.tn-body-en { border-top:1px solid #e1e8e3; padding-top:12px; }
.tn-document-en .tn-body-zh,.tn-document-zh .tn-body-en { display:none; }
.tn-print-signatures { display:none; }
.tn-signed-signatures { max-width:820px; margin:20px auto; display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.tn-signed-signatures img { display:block; width:100%; max-width:300px; height:auto; background:white; }
.tn-signed-stamp { text-align:center; font-size:.85rem; }
@media(max-width:600px){ .tn-letter { padding:18px; }.tn-identity { grid-template-columns:1fr; gap:4px; }.tn-identity dd { margin-bottom:9px; }.tn-signed-signatures { grid-template-columns:1fr; } }
@media print {
 .topbar,.bottomnav,.appnav,.no-print,footer,.workspace>.pagehead,.workspace>.pagetitle,.workspace>.notice,.notice.success,.workspace>.toolbar { display:none !important; }
 body,.workspace { background:white !important; padding:0 !important; margin:0 !important; max-width:none !important; }
 .tn-letter { border:0; border-radius:0; padding:0; margin:0; max-width:none; font-size:11pt; }
 .tn-letter h1 { font-size:18pt; }.tn-identity { display:grid; grid-template-columns:auto 1fr; }
 .tn-consent-paragraph { break-inside:avoid; }.tn-letter header,.tn-identity,.tn-signed-signatures { break-inside:avoid; }
 .tn-sign-form { border:0; padding:0; box-shadow:none; }.tn-print-signatures { display:block; line-height:2.5; }
 .tn-signed-signatures { display:grid; grid-template-columns:1fr 1fr; }.tn-signed-signatures img { max-height:80px; object-fit:contain; object-position:left; }
 .tn-signed-stamp { font-size:9pt; }
}

@font-face { font-family:"VisitKeep CJK"; src:url("fonts/NotoSansSC-Regular.woff2") format("woff2"); font-style:normal; font-weight:400; font-display:swap; unicode-range:U+2E80-9FFF,U+F900-FAFF,U+FF00-FFEF,U+2000-206F; }
body,input,textarea,select,button { font-family:"VisitKeep CJK",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }

.tn-consent-screen .bottomnav { display:none; } .tn-signature canvas { scroll-margin-top:30px; scroll-margin-bottom:100px; }

@page { size:A4; margin:15mm; }

/* VisitKeep booking app — scoped to public and owner booking forms. */
.booking-shell { max-width:1080px; margin:38px auto 70px; padding:0 24px; }
.booking-business { display:flex; align-items:center; gap:18px; padding:0 0 28px; }
.booking-business-icon { width:64px; height:64px; border-radius:19px; background:#e4f0e9; color:#155e52; display:grid; place-items:center; flex-shrink:0; }
.booking-business h1 { font-size:1.85rem; line-height:1.2; margin:5px 0; letter-spacing:-.04em; }
.booking-business p { margin:6px 0 0; color:#687e76; font-size:.95rem; }
.booking-badge { margin-left:auto; border:1px solid #d9e6dd; border-radius:99px; padding:8px 12px; color:#527468; font-size:.78rem; background:#fff; white-space:nowrap; }
.booking-layout { display:grid; grid-template-columns:minmax(0,1fr) 310px; gap:26px; align-items:start; }
.booking-panel { background:#fff; border:1px solid #e0e7e2; border-radius:22px; padding:28px; box-shadow:0 5px 22px #173d3605; }
.booking-progress { display:flex; align-items:center; gap:10px; padding:0 0 20px; }
.booking-step { display:flex; align-items:center; gap:8px; background:transparent; color:#83948c; border:0; padding:8px 4px; flex:1; font-size:.85rem; text-align:left; border-radius:10px; }
.booking-step span { display:grid; place-items:center; width:28px; height:28px; border:1px solid #dce5df; border-radius:50%; background:#fff; flex-shrink:0; }
.booking-step.active { color:#155e52; }.booking-step.active span { background:#155e52; color:#fff; border-color:#155e52; }.booking-step.done { color:#155e52; }.booking-step.done span { background:#e4f0e9; border-color:#c4dbce; }
.booking-panel-heading { margin-bottom:25px; }.booking-panel-heading h2 { font-size:1.5rem; line-height:1.3; margin:8px 0; letter-spacing:-.025em; }.booking-panel-heading p { color:#687e76; font-size:.9rem; margin:0; }
.service-card-list { display:grid; gap:12px; }.service-card { display:flex; align-items:center; gap:14px; text-align:left; border:1px solid #e0e7e2; border-radius:16px; background:white; color:#183d36; padding:18px; width:100%; min-height:85px; box-shadow:none; transition:border-color .15s,background .15s; }
.service-card:hover { background:#f6faf7; border-color:#9fbbac; }.service-card.selected { background:#edf6ef; border:2px solid #155e52; padding:17px; }.service-card-icon { width:43px; height:43px; border-radius:13px; display:grid; place-items:center; background:#f1f5f0; color:#467865; font-size:1.35rem; flex-shrink:0; }.service-card.selected .service-card-icon { background:#daeade; }
.service-card-body { display:flex; flex-direction:column; gap:5px; min-width:0; flex:1; }.service-card-body strong { font-size:1rem; overflow-wrap:anywhere; }.service-card-body small { font-size:.83rem; color:#72867b; }.service-card-price { font-size:.9rem; font-weight:700; white-space:nowrap; }
.booking-actions { display:flex; gap:12px; justify-content:flex-end; margin-top:26px; }.booking-actions button { min-height:48px; border-radius:13px; padding:13px 18px; font-size:.95rem; }.booking-actions button:not(.secondary) { flex:1; max-width:320px; }.booking-actions button span { margin-left:18px; }
.booking-aside { padding-top:56px; position:sticky; top:28px; }.booking-summary { padding:24px; }.booking-summary h2 { font-size:1.3rem; margin:12px 0 6px; line-height:1.35; overflow-wrap:anywhere; }.booking-summary-meta { font-size:.9rem; color:#72867b; margin:0; }.booking-summary-time { display:flex; gap:12px; align-items:center; padding:22px 0; margin:4px 0 15px; border-bottom:1px solid #e4ebe6; }.booking-summary-time>span { font-size:1.6rem; color:#527e68; }.booking-summary-time div { display:flex; flex-direction:column; gap:6px; }.booking-summary-hour { font-size:.85rem; color:#72867b; }.booking-summary-date { font-size:.95rem; }.booking-summary-payment { display:flex; justify-content:space-between; gap:12px; margin:12px 0; font-size:.9rem; }.booking-summary-note { font-size:.77rem; line-height:1.6; color:#72867b; margin:20px 0 0; }
.booking-info { margin-top:15px; padding:18px 24px; color:#72867b; font-size:.85rem; }.booking-info summary { color:#38594b; font-weight:600; }.booking-info p { line-height:1.7; margin:15px 0 0; }
.booking-calendar { margin:20px 0; max-width:440px; }.booking-monthbar { display:flex; justify-content:space-between; align-items:center; margin-bottom:20px; }.booking-monthbar button { width:38px; min-height:38px; border-radius:11px; padding:2px; font-size:1.45rem; }.booking-weekdays,.booking-day-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:5px; }.booking-weekdays { color:#8b9b92; text-align:center; font-size:.77rem; margin-bottom:12px; }
.booking-day { aspect-ratio:1; padding:0; min-height:38px; background:white; color:#294c3c; border:1px solid transparent; border-radius:12px; font-size:.95rem; font-weight:500; }.booking-day:hover:not(:disabled) { background:#eef5ef; }.booking-day.today { border-color:#b3cbbc; }.booking-day.selected { background:#155e52; color:white; border-color:#155e52; }.booking-day:disabled { background:#f9faf7; color:#b6c0ba; cursor:default; opacity:1; }.booking-calendar>small { display:block; color:#8a9b91; font-size:.74rem; margin-top:14px; }
.booking-time-section { border-top:1px solid #e3ebe4; padding-top:15px; }.booking-time-section h3 { font-size:1rem; display:flex; gap:10px; align-items:center; }.booking-chosen-date { font-weight:400; color:#718779; }.booking-time-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }.booking-time { padding:12px 5px; border:1px solid #d8e3da; border-radius:11px; background:white; color:#244d3a; font-size:.9rem; font-weight:500; }.booking-time:hover { background:#eef5ef; border-color:#aac3b2; }.booking-time.selected { background:#155e52; color:#fff; border-color:#155e52; }.booking-time-empty { grid-column:1/-1; font-size:.85rem; background:#f7faf5; padding:15px; margin:0; border-radius:12px; color:#718779; }.booking-retry { background:transparent; border:0; padding:14px 0 6px; font-size:.8rem; color:#527b62; }.booking-time-section .slotstatus { display:block; margin-top:10px; font-size:.8rem; }
.booking-app label,.ownerbooking-app label { font-size:.9rem; }.booking-app input:not([type="checkbox"]),.booking-app textarea,.ownerbooking-app input:not([type="checkbox"]),.ownerbooking-app select { border-radius:12px; min-height:49px; font-size:1rem; background:#fcfdfb; }.booking-optional { padding:16px 0; border-top:1px solid #e4ebe5; font-size:.85rem; }.booking-optional summary { font-weight:500; color:#486c56; }.booking-optional textarea { margin-top:8px; }.booking-optional small { font-size:.76rem; color:#85988a; }.booking-consent { align-items:flex-start; font-size:.8rem!important; font-weight:400; line-height:1.65; }.booking-consent input { margin-top:4px; flex-shrink:0; }.booking-consent a { color:#155e52; font-weight:600; }
.booking-deposit-note { padding:16px; border-radius:14px; background:#f0f5e9; color:#49663c; font-size:.85rem; }.booking-deposit-note p { margin:8px 0 0; line-height:1.65; }.booking-fineprint { font-size:.75rem; text-align:right; color:#82978a; margin:14px 0 0; }.booking-powered { color:#93a398; font-size:.75rem; margin:24px 0; text-align:center; }.booking-error { margin:0 0 20px; }
.ownerbooking-layout { grid-template-columns:minmax(0,1fr) 290px; }.ownerbooking-layout .booking-aside { padding-top:0; }.ownerbooking-app .service-card-list { margin:5px 0 18px; }.ownerbooking-app h2 { font-size:1.4rem; }
.paymentapp { border-radius:24px; box-shadow:0 12px 40px #183d3608; }.paymentapp h1 { font-size:1.65rem; }.paymentapp h2 { font-size:1.2rem; }
@media(max-width:760px){
 .booking-shell { margin:22px auto 40px; padding:0 16px; }.booking-business { gap:12px; padding-bottom:22px; }.booking-business-icon { width:48px; height:48px; border-radius:15px; }.booking-business h1 { font-size:1.35rem; }.booking-business .eyebrow { font-size:.65rem; }.booking-business p { font-size:.8rem; }.booking-badge { display:none; }
 .booking-layout,.ownerbooking-layout { grid-template-columns:1fr; gap:18px; }.booking-panel { padding:22px; border-radius:20px; }.booking-panel-heading h2 { font-size:1.35rem; }.booking-step { font-size:.73rem; gap:6px; padding:6px 0; }.booking-step span { width:25px; height:25px; }.booking-progress { gap:8px; padding-bottom:16px; }
 .booking-aside { position:static; padding-top:0; }.booking-summary { padding:18px 22px; }.booking-summary h2 { font-size:1.15rem; }.booking-summary-time { padding:14px 0; margin-bottom:10px; }.booking-summary-note { margin-top:12px; }.booking-info { padding:16px 22px; }.service-card { padding:16px; gap:11px; }.service-card.selected { padding:15px; }.service-card-icon { width:36px; height:36px; font-size:1.15rem; }.service-card-price { font-size:.85rem; }
 .booking-actions { margin-top:22px; }.booking-actions button { width:auto; min-width:0; }.booking-actions button:not(.secondary) { max-width:none; }.booking-time-grid { gap:8px; }.booking-day { min-height:34px; border-radius:10px; }.booking-fineprint { text-align:center; }.booking-calendar { max-width:none; }
}

.service-card.selected { background:#edf6ef!important; color:#183d36; }

.forms-roadmap { margin:24px 0 64px; padding:28px 32px; border:1px solid var(--line); border-radius:22px; background:#edf3ed; }
.forms-roadmap h2 { font-size:1.6rem; margin:10px 0; line-height:1.3; }.forms-roadmap p { color:var(--muted); max-width:820px; margin:0; }
@media(max-width:760px){.forms-roadmap { padding:22px; margin:12px 0 40px; }.forms-roadmap h2 { font-size:1.35rem; }}
.service-category { border:0; }.service-category>summary { padding:10px 0; color:var(--muted); font-weight:650; cursor:pointer; }.service-category-cards { display:grid; gap:12px; margin:8px 0 18px; }.service-card-icon:has(img) { background:none; width:64px; height:64px; }.service-card-thumb { width:64px; height:64px; border-radius:14px; object-fit:cover; }.service-card-description { line-height:1.4; white-space:pre-line; overflow-wrap:anywhere; }.service-current-image { width:100px; height:100px; object-fit:cover; border-radius:14px; }.service-crop { margin:16px 0; max-width:340px; }.service-crop-preview { width:240px; height:240px; overflow:hidden; border-radius:14px; background:#eee; }.service-crop-preview img { width:100%; height:100%; object-fit:cover; transform-origin:center; }.service-crop input[type=range] { padding:0; }.service-picture-editor { padding:18px; border:1px solid var(--line); border-radius:16px; }.contact-review-row { border:1px solid var(--line); border-radius:16px; padding:16px; display:grid; gap:12px; min-width:0; }.contact-review-row legend { color:var(--muted); padding:0 8px; }.contact-import form { margin-top:20px; }.add-client-menu { position:relative; }.add-client-menu>summary { list-style:none; }.add-client-menu>.card { position:absolute; z-index:5; width:230px; right:0; box-shadow:var(--shadow); }.booking-share .buttons { margin-top:16px; }.share-dialog { border:0; border-radius:24px; padding:28px; width:min(460px,calc(100% - 24px)); max-height:90vh; overflow:auto; color:var(--ink); }.share-dialog::backdrop { background:#132d2aaa; }.share-dialog-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; }.share-dialog-heading h2 { margin:0; font-size:1.35rem; }.share-dialog-heading button { padding:6px 14px; min-height:40px; }.booking-qr { margin:20px auto; width:min(280px,100%); }.booking-qr svg { display:block; width:100%; height:auto; }.share-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:16px 0; }.share-grid .button,.share-grid button { padding:12px; font-size:.9rem; }.share-feedback { font-size:.85rem; color:var(--muted); }.service-category>summary:focus-visible,button:focus-visible { outline:3px solid #94bba2; outline-offset:3px; }
@media(max-width:760px){.share-dialog { margin:auto auto 0; width:100%; max-width:none; border-radius:24px 24px 0 0; padding:24px; }.service-card-icon:has(img),.service-card-thumb { width:50px;height:50px; }.service-picture-editor { padding:14px; }.contact-review-row { padding:14px; }.add-client-menu>.card { left:0;right:auto; }}

.service-crop-preview { position:relative; }.service-crop-preview img { position:absolute; max-width:none; object-fit:fill; transform:none; }

.service-card-description { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }.booking-summary-description { font-size:.85rem; color:var(--muted); white-space:pre-line; overflow-wrap:anywhere; }

.share-preview { grid-column:1/-1; }.share-url { width:100%; font-size:.8rem; }.share-dialog>p { overflow-wrap:anywhere; }
.walkin-form { max-width:760px; margin:20px auto; }.walkin-results { display:grid; gap:8px; }.walkin-match { justify-content:flex-start; text-align:left; overflow-wrap:anywhere; }.walkin-selected { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px; background:var(--mint); border-radius:14px; }.walkin-selected strong { overflow-wrap:anywhere; }.walkin-search-status { margin:0; font-size:.85rem; color:var(--muted); }.provider-assignment,.booking-summary-provider { font-size:.85rem; color:var(--muted); }.timeoff-row { display:flex; gap:12px; align-items:center; margin:10px 0; }.timeoff-row span { flex:1; overflow-wrap:anywhere; }.service-card-list+.provider-select, .service-card-list+label { margin-top:20px; display:block; } .booking-stage label:has(.provider-select) { display:flex; flex-direction:column; gap:8px; margin-top:18px; }
@media(max-width:760px){.walkin-selected,.timeoff-row{flex-direction:column;align-items:stretch}.walkin-form{padding:22px}.rowbody small{font-size:.75rem}}

.provider-preview{display:flex;align-items:center;gap:12px;margin:8px 0}.provider-preview[hidden]{display:none}.provider-preview img{width:48px;height:48px;object-fit:cover;border-radius:50%}
.package-card,.series-occurrence{border-top:1px solid var(--line);padding:16px 0}.ledger-row{font-size:.88rem;border-bottom:1px solid var(--line);padding:8px 0}.occurrence-preview{display:flex;flex-direction:column;gap:5px;border-bottom:1px solid var(--line);padding:12px 0}.occurrence-preview span{font-size:.9rem}.start-visit-form{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:18px 0}.repeat-custom[hidden],.repeat-count[hidden],.repeat-until[hidden],.move-repeat-pattern[hidden]{display:none}

.settings-team-link{display:flex;align-items:center;gap:12px;width:100%;color:var(--ink);text-decoration:none;font-weight:400}.settings-team-link .settings-card-label{display:flex;align-items:center;min-height:52px;flex:1;min-width:0}.settings-team-link>span:last-child{font-size:18px}.settings-team-link:focus-visible{outline:3px solid #94bba2;outline-offset:3px}

.schedule-controls{margin:18px 0}.schedule-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.schedule-head strong{text-align:center;font-size:15px}.schedule-head .button{padding:10px 14px}.schedule-modes{display:flex;align-items:center;gap:10px;margin:16px 0}.schedule-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-bottom:14px}.schedule-day{display:flex;flex-direction:column;align-items:center;gap:5px;padding:10px 0;border-radius:12px;color:var(--ink);text-decoration:none}.schedule-day small{font-size:11px}.schedule-day strong{font-size:18px}.schedule-day.today{box-shadow:inset 0 0 0 1px var(--green)}.schedule-day.selected{background:var(--green);color:white}.schedule-day:hover{text-decoration:none;background:#e5f0eb}.schedule-day.selected:hover{background:var(--green)}.schedule-day:focus-visible{outline:3px solid #94bba2;outline-offset:2px}.schedule-date-group{padding:12px 0;border-top:1px solid var(--line)}.schedule-date-group h3{font-size:16px;margin:0}.schedule-date-group h3 a{color:var(--ink);text-decoration:none}.schedule-date-group .sectionhead{margin:6px 0}.schedule-date-group .appointmentrow{flex-wrap:wrap}.schedule-appointments{min-width:0}
