/* Shared guest geometry only. Staff, booking state and payment logic are untouched. */
body.sh-guest-layout{--guest-gutter:clamp(16px,calc(20vw - 48px),32px);font-family:"Segoe UI",system-ui,sans-serif;font-size:16px;line-height:1.45;--ink:var(--sh-ink);--muted:var(--sh-muted);--line:var(--sh-line)}
body.sh-guest-layout :is(.guest-top,.wf-header){position:relative;top:auto;height:auto;min-height:60px;padding:6px max(var(--guest-gutter),calc((100% - 640px)/2));display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--sh-surface);color:var(--sh-ink)}
body.sh-guest-layout :is(.brand,.wf-brand){font-size:21px!important;font-weight:600!important;line-height:1.3;letter-spacing:normal;white-space:nowrap;color:var(--sh-ink)!important}
body.sh-guest-layout :is(.brand,.wf-brand) span{color:inherit!important}
body.sh-guest-layout .secure{display:none}
body.sh-guest-layout .wf-header h1{font-size:14px;font-weight:400;margin:0;color:var(--sh-muted)}
body.sh-guest-layout :is(.shell,.portal){box-sizing:border-box;width:100%;max-width:640px!important;margin:0 auto!important;padding:24px var(--guest-gutter) 32px!important;display:block}
body.sh-guest-layout .hero{position:static;padding:0 0 16px}
body.sh-guest-layout .hero h1{font-size:21px!important;line-height:1.3!important;font-weight:500;letter-spacing:normal;margin:0 0 10px}
body.sh-guest-layout :is(.hero p,.muted,.portal p){font-size:14px!important;line-height:1.5;margin:8px 0 16px;color:var(--sh-muted)}
body.sh-guest-layout .progress-strip{margin:16px 0 8px;background:var(--sh-line)}
body.sh-guest-layout .progress-strip span{font-size:13px;font-weight:500;padding:10px 4px}
body.sh-guest-layout .progress-strip b{font-size:12px;font-weight:500;flex-shrink:0}
body.sh-guest-layout .advance-note{box-sizing:border-box;padding:4px 16px;border:1px solid var(--sh-line);border-radius:12px;background:var(--sh-surface);font-size:13px;color:var(--sh-muted)}
body.sh-guest-layout .advance-note summary{min-height:44px;align-content:center;padding:8px 0;box-sizing:border-box;cursor:pointer;color:var(--sh-ink);font-weight:500}
body.sh-guest-layout .advance-note p{font-size:13px!important;margin:4px 0 12px;line-height:1.5}
body.sh-guest-layout .card{padding:18px!important;margin:0 0 18px;border-radius:12px;box-shadow:none;background:var(--sh-surface);color:var(--sh-ink);border-color:var(--sh-line)}
body.sh-guest-layout :is(h2,.card h2,.step-heading h2,.payment-head h2){font-size:19px!important;font-weight:500;line-height:1.35;letter-spacing:normal;margin:0 0 10px}
body.sh-guest-layout h3{font-size:16px;font-weight:500;line-height:1.4}
body.sh-guest-layout :is(.step-heading,.payment-head>div:first-child){gap:10px}
body.sh-guest-layout .step-no{width:28px;height:28px;flex-basis:28px;font-size:12px;font-weight:500;border:0}
body.sh-guest-layout .step-heading h2{margin:0}
body.sh-guest-layout form{gap:14px}
body.sh-guest-layout label{font-size:14px;font-weight:400;line-height:1.45}
body.sh-guest-layout :is(input:not([type=checkbox]):not([type=file]):not([type=hidden]),select,textarea){box-sizing:border-box;width:100%;min-width:0;min-height:48px;padding:12px;font:400 16px/1.4 "Segoe UI",system-ui,sans-serif;border-radius:9px}
body.sh-guest-layout :is(button,.camera,.business-pay-button,.wf-button){font-size:15px;font-weight:500;line-height:1.4;min-height:44px;padding:12px 14px;border-radius:9px;white-space:normal;overflow-wrap:break-word}
body.sh-guest-layout :is(.photo-block,.receipt-upload,.bank-card,.business-payment){padding:14px;border-radius:10px}
body.sh-guest-layout :is(.photo-block p,.receipt-upload p,.business-mark span,.bank-card dt,.bank-card small,.preview .quality){font-size:13px;line-height:1.45;color:var(--sh-muted)}
body.sh-guest-layout .payment-head{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
body.sh-guest-layout .payment-total{margin-left:auto}
body.sh-guest-layout .payment-total b{font-size:20px;font-weight:600}
body.sh-guest-layout .stage-context{margin:0 0 18px;padding:10px;font-size:13px}
body.sh-guest-layout .stage-context b{font-size:15px;font-weight:500}
body.sh-guest-layout .operator-link{box-sizing:border-box;display:flex;width:100%;align-items:center;justify-content:center;min-height:48px;margin-top:8px;padding:12px 14px;border:1px solid var(--sh-line);border-radius:9px;font:500 15px/1.4 "Segoe UI",system-ui,sans-serif;text-align:center;text-decoration:none;white-space:normal;overflow-wrap:break-word}
body.sh-guest-layout #lookupForm>button[type=submit]{box-sizing:border-box;width:100%;min-height:48px}
body.sh-guest-layout .camera{position:relative}
body.sh-guest-layout .camera input[type=file]{position:absolute;width:1px!important;height:1px!important;min-height:0;padding:0;border:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
body.sh-guest-layout :is(.portal>form,.portal>.manual-access,.portal>article){padding:16px 0;margin:0;border:0;border-bottom:1px solid var(--sh-line);border-radius:0;background:transparent;color:var(--sh-ink)}
body.sh-guest-layout .guest-upload-card{background:var(--sh-surface);color:var(--sh-ink)}
body.sh-guest-layout :is(.payment-block,.deposit-block,.receipt-upload){background:var(--sh-surface);color:var(--sh-ink);border-color:var(--sh-line)}
body.sh-guest-layout .already-paid{background:var(--sh-surface);color:var(--sh-ink);border:1px solid var(--sh-line);border-left:3px solid #6c9875}
body.sh-guest-layout .already-paid span{color:var(--sh-muted)}
html[data-sh-theme] body.sh-guest-layout .camera.secondary{background:var(--sh-surface);color:var(--sh-ink);border:1px solid var(--sh-line)}
body.sh-guest-layout footer{font-size:13px;line-height:1.5;padding:18px var(--guest-gutter)}
/* QR stays on white in both themes; its caption must not inherit dark-mode muted text. */
html[data-sh-theme] body.sh-guest-layout .qr-wrap{background:#fff;color:#263238;padding:16px;margin:16px auto;border-color:#ccd3d0;max-width:380px;width:100%}
html[data-sh-theme] body.sh-guest-layout .qr-wrap small{color:#526165;font-size:13px;line-height:1.45;margin-top:12px}
body.sh-guest-layout .deposit-block{padding:18px 0 0;margin:4px 0 0;border-radius:0}
body.sh-guest-layout :is(.deposit-block,.payment-block)>.receipt-upload{padding:0;margin:16px 0 0}
body.sh-guest-layout .receipt-upload p{margin:6px 0 12px}
body.sh-guest-layout .preview:empty{display:none;margin:0}
body.sh-guest-layout #registerForm>.check{margin:0;gap:10px;grid-template-columns:20px minmax(0,1fr);align-items:start}
body.sh-guest-layout .check input{margin:2px 0 0;min-height:20px;width:20px;height:20px;accent-color:#b48c20}
html[data-sh-theme] body.sh-guest-layout .check a{color:var(--sh-ink);text-decoration:underline;text-underline-offset:3px}
html[data-sh-theme] body.sh-guest-layout footer a{color:#fff;display:inline-block;text-decoration:underline;text-underline-offset:3px;padding:8px 0;overflow-wrap:anywhere}
body.sh-guest-layout .sh-settings-menu{margin-left:auto;position:relative}
body.sh-guest-layout .sh-settings-menu nav{right:0;left:auto;max-width:calc(100vw - 2 * var(--guest-gutter));min-width:0;width:190px}
@media(max-width:350px){body.sh-guest-layout .card{padding:14px!important}body.sh-guest-layout .bank-card dl>div{grid-template-columns:1fr}body.sh-guest-layout .bank-card dd{text-align:left}}
@media(min-width:760px){body.sh-guest-layout.form-active .shell{max-width:880px!important}body.sh-guest-layout #registerForm{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}body.sh-guest-layout #registerForm>label:nth-of-type(3),body.sh-guest-layout #registerForm>.check,body.sh-guest-layout #registerForm>button[type=submit],body.sh-guest-layout .already-paid{grid-column:1/-1}}
