.portal{padding-block:40px 64px;min-height:65vh}.portal h1{font-size:36px;line-height:1.4;letter-spacing:-.025em;color:var(--brand)}.portal h2{font-size:24px}.portal h3{font-size:20px;line-height:1.5}.portal p,.portal li,.portal dd{line-height:1.8}.portal .muted{color:var(--muted);font-size:14px}.portal .lead{margin-top:12px;color:var(--muted);max-width:650px}.portal button,.portal input,.portal textarea,.portal select{touch-action:manipulation}.portal button{cursor:pointer}.portal button:disabled{cursor:wait;opacity:.6}.portal :is(button,input,textarea,select):focus-visible,.portal-footer button:focus-visible{outline:3px solid #2563eb;outline-offset:3px}.portal .button{min-height:48px;padding:12px 20px;gap:8px}.portal .secondary{background:white;color:var(--brand);border-color:#6b7280}.portal .text-button,.portal-footer button{border:0;background:none;color:var(--brand);min-height:48px;padding:10px 4px;text-decoration:underline;text-underline-offset:5px;font:inherit;cursor:pointer}.portal .danger{color:#991b1b}.portal-header{display:flex;justify-content:space-between;gap:24px;align-items:end;margin-bottom:32px}.portal-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.portal-empty{max-width:650px;padding:48px 0 64px}.portal-empty h1{margin-block:18px}.portal-empty .button{margin-top:24px}.portal-empty p+p{margin-top:12px}.listing-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}.listing-list li{border-bottom:1px solid var(--line)}.listing-row{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:28px;min-height:100px}.listing-row h2{font-size:22px}.listing-row p{margin-top:6px}.listing-row .arrow{font-size:24px;color:var(--brand)}.state-label{display:inline-block;font-size:14px;color:var(--brand);font-weight:600;margin-bottom:8px}.state-label.attention{color:#92400e}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.field{display:flex;flex-direction:column;gap:8px;margin-top:24px;min-width:0}.field-grid .field{margin-top:0}.field-grid{margin-top:24px}.field label,.field-label{font-size:16px;font-weight:600;line-height:1.6}.field input,.field textarea,.field select,.review-controls textarea,.review-controls select{display:block;width:100%;max-width:100%;min-height:50px;border:1px solid #6b7280;border-radius:10px;background:white;color:#262626;padding:12px 14px;font-size:16px;line-height:1.5}.field textarea{resize:vertical;min-height:140px}.field small{font-size:14px;line-height:1.6;color:var(--muted)}.field [aria-invalid=true]{border-color:#991b1b;outline:1px solid #991b1b}.field input::placeholder,.field textarea::placeholder{color:#4a5565}.checkbox-row{display:flex;gap:12px;align-items:flex-start;margin-top:20px;min-height:48px;padding-block:8px;line-height:1.7;font-size:16px;cursor:pointer}.checkbox-row input{width:22px;height:22px;min-width:22px;accent-color:var(--brand);margin-top:3px}.form-section{padding-block:28px;border-bottom:1px solid var(--line)}.form-section:first-of-type{padding-top:0}.room-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.room-heading h3{overflow-wrap:anywhere}.room-heading button{font-size:14px}.room-index{font-size:14px;color:var(--muted);margin-bottom:8px}.form-note{margin-top:24px;padding:18px 20px;border-left:3px solid var(--brand);background:var(--surface);font-size:14px;line-height:1.8;color:var(--muted)}.form-note strong{color:var(--brand)}.feedback-box{margin-top:24px;border-left:3px solid #92400e;padding:16px 20px;background:#fff8e7}.feedback-box ul{padding-left:20px;margin-bottom:0}.feedback-box button{border:0;background:none;color:#92400e;text-decoration:underline;min-height:48px;text-align:left}.upload-box{margin-top:24px;padding:24px;border:1px dashed #6b7280;border-radius:10px;background:var(--surface)}.upload-box input{width:100%;margin-top:16px;font-size:16px;min-height:48px}.upload-box input::file-selector-button{padding:12px;border:1px solid #6b7280;border-radius:8px;background:white;font:inherit;color:var(--brand);margin-right:12px}.upload-status{list-style:none;padding:0}.upload-status li{padding-block:12px;border-bottom:1px solid var(--line);font-size:14px;line-height:1.6;overflow-wrap:anywhere}.review-details{margin-top:24px;border-block:1px solid var(--line);padding:20px 0}.review-details summary{cursor:pointer;font-weight:600;min-height:48px;line-height:1.6}.review-details dl,.facts{display:grid;grid-template-columns:130px 1fr;gap:12px 24px;margin:16px 0}.facts dt,.review-details dt{color:var(--muted);font-size:14px;line-height:1.8}.facts dd,.review-details dd{margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.document-list{list-style:none;padding:0;margin-block:16px}.document-list li{border-bottom:1px solid var(--line);padding-block:12px;display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}.document-list a{color:var(--brand);text-decoration:underline;min-height:48px;display:flex;align-items:center}.portal-footer{display:flex;gap:16px 32px;align-items:center;flex-wrap:wrap;padding-block:20px calc(24px + env(safe-area-inset-bottom));border-top:1px solid var(--line);font-size:14px;line-height:1.8;color:var(--muted)}.portal-footer a{display:flex;align-items:center;min-height:48px}#session-actions{margin-left:auto}#notice{padding:20px;margin-bottom:24px;background:#fef2f2;border-left:3px solid #991b1b;color:#991b1b;font-size:16px;line-height:1.8;overflow-wrap:anywhere}#notice[data-kind=success]{background:#ecfdf5;border-color:#065f46;color:#065f46}#notice button{margin-left:16px;font-size:14px}.review-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,1fr);gap:48px;align-items:start}.review-controls{padding:24px;background:var(--surface);border-top:2px solid var(--brand)}.review-controls h2{font-size:22px}.review-controls .button{width:100%;margin-top:16px}.review-controls hr{border:0;border-top:1px solid var(--line);margin:28px 0}.review-controls select{margin-top:16px}.review-controls textarea{margin-top:12px;min-height:130px;resize:vertical}.review-copy{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:16px}.review-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-block:24px}.review-gallery img{width:100%;height:auto;display:block;aspect-ratio:4/3;object-fit:cover;border-radius:12px}.review-gallery figcaption{font-size:14px;line-height:1.6;color:var(--muted);margin-top:8px}.compare-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.audit-list{padding-left:20px;font-size:14px;color:var(--muted)}.audit-list li{margin-block:12px}.portal details{scroll-margin-top:24px}.portal .recovery{margin-top:16px;display:flex;gap:16px;flex-wrap:wrap}.portal a:hover{color:#2563eb}
@media(max-width:1000px){.review-layout{grid-template-columns:1fr}.review-controls{max-width:760px}.portal h1{font-size:32px}}
@media(max-width:760px){.portal{padding-block:28px 48px}.portal h1{font-size:28px}.portal-header{display:block;margin-bottom:24px}.portal-header .portal-actions{margin-top:20px}.field-grid{gap:20px}.field label{font-size:16px}.room-heading{flex-wrap:wrap}.portal-empty{padding-block:24px 40px}.portal-footer{gap:4px 20px}#session-actions{margin-left:0}.listing-row{gap:16px;padding-block:24px}.listing-row h2{font-size:20px}.review-controls{padding:24px 20px}.compare-grid{grid-template-columns:1fr}.review-details dl,.facts{grid-template-columns:100px 1fr;gap:12px}.review-layout{gap:28px}}
@media(max-width:420px){.field-grid{grid-template-columns:1fr}.review-gallery{gap:12px}.portal-header .portal-actions{align-items:stretch}.portal-header .portal-actions .button{width:100%}}

body[data-portal] .top-nav>a:first-child{display:inline-flex}
.room-editor{border:1px solid var(--line);border-radius:10px;margin-top:24px;overflow:clip}.room-editor summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px;cursor:pointer;list-style:none;min-height:76px}.room-editor summary::-webkit-details-marker{display:none}.room-editor summary:after{content:'+';font-size:24px;color:var(--brand);flex-shrink:0}.room-editor[open] summary:after{content:'−'}.room-editor summary:focus-visible{outline:3px solid #2563eb;outline-offset:-4px}.room-summary-copy{display:flex;flex-direction:column;gap:4px;min-width:0}.room-summary-copy strong{font-size:20px;overflow-wrap:anywhere}.room-summary-status{margin-left:auto;flex-shrink:0;font-size:14px;color:var(--muted)}.room-editor-content{border-top:1px solid var(--line);padding:24px}.room-editor-content .room-heading{align-items:center}.room-editor-content .room-index{margin:0}.room-editor-content .portal-actions{margin-left:auto}.room-editor+button{margin-top:24px}.room-editor[open] summary{background:var(--surface)}.owner-editing :is(input,textarea,select){scroll-margin-block:80px 140px}
@media(max-width:760px){.room-editor summary{padding:16px;gap:12px;flex-wrap:wrap}.room-summary-copy{flex:1 1 60%}.room-summary-status{margin-left:0}.room-editor-content{padding:20px 16px}}
@media(max-width:380px){.room-editor-content{padding-inline:12px}.room-summary-copy strong{font-size:18px}.room-summary-status{width:calc(100% - 36px)}}

.account-page{max-width:760px}.account-page h1{margin-top:16px}.account-page .form-section,.privacy-queue .form-section{padding-block:32px}.account-actions{margin-top:24px}.privacy-queue{max-width:800px}.privacy-queue h2{overflow-wrap:anywhere}

body[data-portal] .site-header{flex-wrap:wrap;padding-block:12px;gap:8px 24px}body[data-portal] .top-nav{flex-wrap:wrap;gap:8px 20px}body[data-portal] .top-nav>a:first-child{display:inline-flex}

.privacy-links{margin-top:24px}.privacy-related{list-style:none;padding:0}.privacy-related li{padding:20px 0;border-bottom:1px solid var(--line,#e5e7eb)}.privacy-related p{margin:8px 0}.privacy-related a{white-space:normal;overflow-wrap:anywhere;max-width:100%}.privacy-related .privacy-record-id{font-size:14px;overflow-wrap:anywhere}.privacy-links h3:focus-visible{outline:2px solid #2563eb;outline-offset:4px}

.operator-overview{margin-bottom:32px;padding-block:20px;border-block:1px solid var(--line)}.operator-overview dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin:0}.operator-overview dt{font-size:14px;color:var(--muted)}.operator-overview dd{margin:4px 0 0;font-size:28px;font-weight:600;color:var(--brand)}.operator-overview dd span{font-size:16px;margin-left:4px;font-weight:400}.operator-overview details{margin-top:16px;font-size:14px;color:var(--muted)}.operator-overview summary{cursor:pointer;min-height:48px;display:flex;align-items:center;text-decoration:underline;text-underline-offset:4px}.operator-overview details p{margin-top:8px;max-width:680px}@media(max-width:600px){.operator-overview dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}}

.operator-tools{margin-block:16px 24px}.operator-tools summary{min-height:48px;cursor:pointer;display:list-item;align-content:center;color:var(--muted);font-size:14px}.operator-tools .button{margin-top:12px}
#region-picker [hidden]{display:none!important}
.listing-row>div,.portal-header>div{min-width:0}.listing-row h2,.portal-header h1{overflow-wrap:anywhere}.listing-row .arrow{flex-shrink:0}

.field-error{color:#991b1b;font-size:14px;line-height:1.6;margin-top:4px;overflow-wrap:anywhere}#step-validation-message{color:#991b1b;border-color:#991b1b;background:#fef2f2}.upload-box [aria-invalid=true],.checkbox-row [aria-invalid=true]{outline:2px solid #991b1b;outline-offset:2px}

.form-note[data-kind=attention]{border-left-color:#92400e;background:#fef3c7;color:#92400e}.form-note[data-kind=attention] strong{color:#92400e}

/* Owner (host) surfaces: soft cards, pill buttons, step header with save chip, fixed bottom bar. Scoped to body[data-portal=owner]. */
body[data-portal=owner]{--o-navy:#012a69;--o-navy-hover:#0e397a;--o-yellow:#facc47;--o-yellow-soft:#fff4d1;--o-soft:#f3f5f9;--o-soft-hover:#e9edf4;--o-warm:#fcf6ea;--o-ink:#262626;--o-muted:#4a5565;--o-line:#e5e7eb;--o-control:#6b7280;--o-ok:#17603c;--o-ok-bg:#e8f5ee;--o-warn:#6b4f00;--o-amber:#92400e;--o-amber-bg:#fef3c7;--o-err:#991b1b;--o-err-bg:#fef2f2;--o-focus:#2563eb;--o-shadow:0 12px 32px rgba(1,42,105,.08),0 1px 3px rgba(1,42,105,.08);background:#fff}
body[data-portal=owner] .portal{padding-block:24px 64px}
body[data-portal=owner] .portal>#notice,body[data-portal=owner] #workspace{max-width:720px;margin-inline:auto}
body[data-portal=owner] .portal{word-break:keep-all;overflow-wrap:break-word}
body[data-portal=owner] .portal h1{font-size:30px;line-height:1.35;letter-spacing:-.03em;font-weight:700;color:var(--o-navy);overflow-wrap:anywhere}
body[data-portal=owner] .portal h2{font-size:22px;line-height:1.4;letter-spacing:-.02em;font-weight:700;color:var(--o-ink)}
body[data-portal=owner] .portal h3{font-size:19px;line-height:1.45;letter-spacing:-.02em;font-weight:700;color:var(--o-ink)}
body[data-portal=owner] .portal .eyebrow{color:var(--o-navy);font-weight:700}
body[data-portal=owner] .portal .button{min-height:48px;padding:10px 22px;gap:6px;border:1.5px solid var(--o-navy);border-radius:999px;background:var(--o-navy);color:#fff;font-size:16px;font-weight:700;line-height:1.4}
body[data-portal=owner] .portal .button:hover{background:var(--o-navy-hover);border-color:var(--o-navy-hover)}
body[data-portal=owner] .portal .button.secondary{background:#fff;color:var(--o-navy);border-color:var(--o-navy)}
body[data-portal=owner] .portal .button.secondary:hover{background:#eef3fb}
body[data-portal=owner] .portal :is(.button,a,button):focus-visible{outline:3px solid var(--o-focus);outline-offset:3px}
body[data-portal=owner] #notice{border:0;border-radius:16px;padding:16px 18px}
body[data-portal=owner] #notice button{margin-left:0}
body[data-portal=owner] #notice .recovery{gap:8px}
body[data-portal=owner] #notice:not([hidden])+#workspace{margin-top:0}
body.owner-editing #notice{scroll-margin-top:20px}
/* Editor head */
.owner-editor-head{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}
.owner-editor-bar{display:flex;align-items:center;justify-content:space-between;gap:4px 12px;flex-wrap:wrap}
.owner-editor-bar .portal-actions{gap:8px;margin-left:auto}
body[data-portal=owner] .portal .back-link{display:inline-flex;align-items:center;gap:6px;min-height:48px;margin-left:-12px;padding:0 14px 0 12px;border-radius:999px;color:var(--o-navy);font-weight:700;text-decoration:none}
body[data-portal=owner] .portal .back-link:hover{background:var(--o-soft)}
.listing-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;line-height:1.6}
.listing-meta .muted{font-size:14px}
.state-pill{display:inline-flex;align-items:center;min-height:28px;padding:3px 12px;border-radius:999px;background:var(--o-yellow-soft);color:var(--o-warn);font-size:14px;font-weight:700;line-height:1.4}
.state-pill[data-tone=review]{background:#eaf0fa;color:var(--o-navy)}
.state-pill[data-tone=live]{background:var(--o-ok-bg);color:var(--o-ok)}
.state-pill[data-tone=attention]{background:var(--o-err-bg);color:var(--o-err)}
body[data-portal=owner] .feedback-box{margin:0 0 16px;padding:16px 18px;border:0;border-radius:20px;background:var(--o-yellow-soft);color:var(--o-warn)}
body[data-portal=owner] .feedback-box ul{list-style:none;padding:0;margin:10px 0 0;display:grid;gap:8px}
body[data-portal=owner] .feedback-box button{display:block;width:100%;min-height:48px;padding:10px 14px;border:1px solid #eadfbd;border-radius:14px;background:#fff;color:var(--o-ink);font:inherit;font-size:15px;line-height:1.55;text-align:left;text-decoration:none;cursor:pointer}
body[data-portal=owner] .feedback-box button:hover{border-color:var(--o-amber)}
body[data-portal=owner] .review-edit-note{margin:0 0 16px}
/* Step header card */
.step-card{padding:20px 20px 12px;border:1px solid #eef0f4;border-radius:24px;background:#fff;box-shadow:var(--o-shadow)}
.step-card-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:10px 16px}
.step-card-title{min-width:0}
body[data-portal=owner] .portal .step-count{font-size:14px;line-height:1.5;font-weight:600;color:var(--o-muted)}
.step-count strong{color:var(--o-navy);font-weight:700}
body[data-portal=owner] .portal #step-heading{margin-top:2px;font-size:26px;line-height:1.35;letter-spacing:-.03em;color:var(--o-ink);scroll-margin-top:24px}
.save-chip{display:inline-flex;align-items:center;gap:6px;max-width:100%;min-height:32px;padding:5px 12px 5px 10px;border-radius:16px;background:var(--o-soft);color:var(--o-muted);font-size:14px;font-weight:700;line-height:1.45}
body[data-portal=owner] .portal .save-chip .save-status{margin:0;font-size:14px;line-height:1.45;overflow-wrap:anywhere}
.save-chip-icon{position:relative;flex:0 0 16px;width:16px;height:16px;border:2px solid currentColor;border-radius:50%;box-sizing:border-box}
.save-chip[data-save-state=saved]{background:var(--o-ok-bg);color:var(--o-ok)}
:is([data-save-state=saved],[data-save-state=loaded])>.save-chip-icon{background:currentColor}
:is([data-save-state=saved],[data-save-state=loaded])>.save-chip-icon::after{content:'';position:absolute;left:3.5px;top:1px;width:3px;height:6px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
[data-save-state=saving]>.save-chip-icon{border-right-color:transparent;animation:owner-spin .9s linear infinite}
[data-save-state=pending]>.save-chip-icon{border-style:dashed}
.save-chip:is([data-save-state=error],[data-save-state=partial]){background:var(--o-err-bg);color:var(--o-err)}
:is([data-save-state=error],[data-save-state=partial])>.save-chip-icon{background:currentColor}
:is([data-save-state=error],[data-save-state=partial])>.save-chip-icon::after{content:'!';position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:10px;font-weight:800;line-height:1}
@keyframes owner-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){[data-save-state=saving]>.save-chip-icon{animation:none;border-style:dotted;border-right-color:currentColor}}
.intake-completion{display:flex;flex-direction:column;gap:6px;margin-top:16px}
.intake-progress{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}
.intake-progress span{height:8px;border-radius:999px;background:var(--o-line)}
.intake-progress [data-current=true]{background:var(--o-yellow)}
.intake-progress [data-complete=true]{background:var(--o-navy)}
body[data-portal=owner] .portal #completion-label{font-size:14px;line-height:1.5;font-weight:600;color:var(--o-muted)}
.step-nav{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}
.step-nav li{min-width:0}
.step-nav button{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;width:100%;height:100%;min-height:64px;padding:10px 4px;border:0;border-radius:16px;background:transparent;color:var(--o-ink);font:inherit;text-align:center;cursor:pointer}
.step-nav button:hover{background:var(--o-soft)}
.step-nav button[aria-current=step]{background:var(--o-warm)}
.step-nav small{position:relative;display:grid;place-items:center;width:30px;height:30px;flex:0 0 30px;border:1.5px solid #9aa3b2;border-radius:50%;background:#fff;color:var(--o-muted);font-size:14px;font-weight:700;line-height:1}
.step-nav button[aria-current=step] small{border-color:var(--o-yellow);background:var(--o-yellow);color:var(--o-navy)}
.step-nav button[data-complete=true] small{border-color:var(--o-navy);background:var(--o-navy);color:transparent}
.step-nav button[data-complete=true] small::after{content:'';position:absolute;left:10.5px;top:6px;width:5px;height:10px;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}
.step-nav button[data-complete=true][aria-current=step] small{box-shadow:0 0 0 3px var(--o-yellow)}
.step-name{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:14px;font-weight:700;line-height:1.35}
.step-status{font-size:13px;font-weight:500;line-height:1.35;color:var(--o-muted)}
.step-status[data-complete=true]{color:var(--o-ok)}
/* Form cards */
body[data-portal=owner] .editor{margin-top:20px}
body[data-portal=owner] #step-validation-message{margin:0 0 16px;border:0;border-radius:16px;background:var(--o-err-bg);color:var(--o-err);font-size:15px}
.form-card{min-width:0}
.form-card+.form-card{margin-top:28px}
.form-card+.form-card::before{content:'';display:block;height:8px;margin-bottom:28px;border-radius:999px;background:var(--o-soft)}
.form-card>h3+.muted{margin-top:4px}
body[data-portal=owner] .form-card>.field:nth-child(2),body[data-portal=owner] .form-card>.field-grid:nth-child(2){margin-top:16px}
body[data-portal=owner] .field{margin-top:20px}
body[data-portal=owner] .field-grid{gap:20px 16px;margin-top:20px}
body[data-portal=owner] .field-grid .field{margin-top:0}
body[data-portal=owner] :is(.field label,.field-label){font-size:16px;font-weight:700;line-height:1.5;color:var(--o-ink)}
body[data-portal=owner] .field :is(input:not([type=radio]):not([type=checkbox]),textarea,select){min-height:52px;padding:12px 16px;border:1.5px solid var(--o-control);border-radius:14px;background:#fff;color:var(--o-ink);font-size:16px;font-weight:400}
body[data-portal=owner] .field :is(input,textarea,select):focus{border-color:var(--o-navy)}
body[data-portal=owner] .field :is(input,textarea,select):disabled{background:var(--o-soft);cursor:not-allowed}
body[data-portal=owner] .field textarea{min-height:140px}
body[data-portal=owner] .field small{font-size:14px;line-height:1.6;color:var(--o-muted)}
body[data-portal=owner] .field [aria-invalid=true]{border-color:var(--o-err);outline:1px solid var(--o-err)}
body[data-portal=owner] .field [aria-invalid=true]:focus-visible{outline:3px solid var(--o-focus);outline-offset:3px}
body[data-portal=owner] .form-note{margin-top:20px;padding:14px 16px;border:0;border-radius:16px;background:var(--o-soft);color:var(--o-muted);font-size:15px;line-height:1.7}
body[data-portal=owner] .form-note strong{color:var(--o-navy)}
body[data-portal=owner] .form-note[data-kind=attention]{background:var(--o-yellow-soft);color:var(--o-warn)}
body[data-portal=owner] .form-note[data-kind=attention] strong{color:var(--o-warn)}
body[data-portal=owner] .region-field #region-picker>.muted:empty{display:none}
body[data-portal=owner] .region-field .field-grid{margin-top:0}
body[data-portal=owner] .region-field #region-picker label{font-size:15px;font-weight:600;color:var(--o-muted)}
body[data-portal=owner] .room-editor,body[data-portal=owner] .upload-box{border-radius:20px}
body[data-portal=owner] .room-editor summary{border-radius:20px 20px 0 0}
body[data-portal=owner] .upload-box input::file-selector-button{border-radius:999px;padding:10px 16px}
/* Booking route: two large choice cards */
body[data-portal=owner] .booking-mode{margin:0;padding:0;border:0;min-width:0;gap:0}
.booking-legend{padding:0;margin-bottom:12px}
.choice-list{display:flex;flex-direction:column;gap:12px}
.choice-option{border:1.5px solid var(--o-line);border-radius:20px;background:var(--o-soft);overflow:hidden}
.choice-option:hover{background:var(--o-soft-hover)}
.choice-option[data-selected]{border:2px solid var(--o-navy);background:#fff;box-shadow:0 8px 24px rgba(1,42,105,.10)}
.choice-option:has(.choice-main input:focus-visible){outline:3px solid var(--o-focus);outline-offset:3px}
.choice-main{position:relative;display:flex;align-items:flex-start;gap:12px;padding:16px}
.choice-icon{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;border-radius:14px;background:#fff;color:var(--o-navy)}
.choice-option[data-selected] .choice-icon{background:var(--o-yellow-soft)}
.choice-copy{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}
body[data-portal=owner] .choice-row{display:flex;flex-wrap:wrap;align-items:center;gap:2px 8px;font-size:17px;font-weight:700;line-height:1.45;color:var(--o-ink);cursor:pointer}
.choice-row::after{content:'';position:absolute;inset:0}
.choice-note{font-size:15px;font-weight:500;color:var(--o-muted)}
.choice-badge{display:inline-flex;align-items:center;min-height:24px;padding:0 10px;border-radius:999px;background:#e2e6ed;color:#374151;font-size:13px;font-weight:700;line-height:1.3}
body[data-portal=owner] .portal .choice-hint{margin:0;font-size:15px;line-height:1.6;color:var(--o-muted)}
body[data-portal=owner] .choice-main input[type=radio]{display:block;flex:0 0 24px;width:24px;height:24px;min-width:24px;min-height:0;margin:8px 0 0;padding:0;border:0;accent-color:var(--o-navy)}
.choice-panel{display:flex;flex-direction:column;padding:0 16px 18px;border-top:1px solid var(--o-line);background:var(--o-soft)}
body[data-portal=owner] .choice-panel>.field:first-child{margin-top:16px}
.choice-panel-head{margin-top:16px}
body[data-portal=owner] .portal .choice-panel-head h3{font-size:17px}
body[data-portal=owner] .portal .choice-panel-head .muted{margin-top:4px}
body[data-portal=owner] .portal .booking-mode-note{margin-top:12px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* Fixed bottom bar: previous / save-and-next, with a visual copy of the save status */
body.owner-editing .editor-bottom{position:fixed;z-index:20;left:0;right:0;bottom:0;padding:10px 20px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--o-line);background:#fff;box-shadow:0 -8px 24px rgba(1,42,105,.06)}
.editor-bottom-inner{display:flex;flex-direction:column;gap:6px;max-width:720px;margin-inline:auto}
.mobile-save-status{display:grid;grid-template-columns:auto minmax(0,auto);align-items:center;justify-content:center;column-gap:6px;color:var(--o-muted);font-size:14px;font-weight:600;line-height:1.45;text-align:center}
.mobile-save-status [data-save-issue]{grid-column:1/-1}
.mobile-save-status[data-save-state=partial]>[data-save-status]{display:none}
.mobile-save-status[data-save-state=partial] [data-save-issue]{grid-column:2}
.mobile-save-status .save-chip-icon{flex-basis:14px;width:14px;height:14px}
.mobile-save-status:is([data-save-state=saved],[data-save-state=loaded])>.save-chip-icon::after{left:2.5px;top:.5px;width:2.5px;height:5px}
.mobile-save-status[data-save-state=saved]{color:var(--o-ok)}
.mobile-save-status:is([data-save-state=error],[data-save-state=partial]){color:var(--o-err)}
body[data-portal=owner] .portal .save-issue-link{min-height:48px;padding:8px 4px;color:var(--o-err);font-size:14px;font-weight:700}
.editor-bottom-actions{display:flex;gap:8px}
body[data-portal=owner] .portal .editor-bottom-actions .button{min-height:56px;padding:12px 20px;font-size:17px}
body[data-portal=owner] .portal .editor-bottom-actions .button.secondary{flex:0 0 auto;min-width:96px;border-color:#9aa3b2;color:var(--o-ink)}
body[data-portal=owner] .portal .editor-bottom-actions .button:not(.secondary){flex:1 1 auto}
body.owner-editing .portal-footer{padding-bottom:calc(128px + env(safe-area-inset-bottom))}
body.owner-editing:has(.mobile-save-status [data-save-issue]:not([hidden])) .portal-footer{padding-bottom:calc(184px + env(safe-area-inset-bottom))}
body.owner-editing :is(input,textarea,select){scroll-margin-block:96px 160px}
body.owner-editing .portal :is(button,a,summary){scroll-margin-block:96px 160px}
/* The 1px photo input sits at the top of its ~180px tile, which draws the focus ring. */
body.owner-editing .photo-add .photo-add-input{scroll-margin-block:96px 360px}
.resume-note{margin-top:24px;padding:14px 16px;border-radius:16px;background:var(--o-warm);color:var(--o-muted);font-size:14px;line-height:1.7}
body[data-portal=owner] [data-approved-content]{margin-top:16px}
/* Owner home: greeting, listing cards with stage track, help card */
.owner-home{display:flex;flex-direction:column;gap:20px}
.owner-hello{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px}
.owner-hello>div:first-of-type{flex:1;min-width:0}
.owner-hello .portal-actions{margin-left:auto}
body[data-portal=owner] .portal .owner-hello-kicker{font-size:15px;line-height:1.5;font-weight:600;color:var(--o-muted);overflow-wrap:anywhere}
.owner-mascot{flex-shrink:0;border-radius:24px;object-fit:contain;background:#fff}
body[data-portal=owner] .owner-listings{display:grid;gap:14px;margin:0;padding:0;border:0;list-style:none}
body[data-portal=owner] .owner-listings li{border:0}
.listing-card{display:flex;flex-direction:column;gap:16px;padding:20px;border:1px solid var(--o-line);border-radius:20px;background:#fff;box-shadow:var(--o-shadow);color:var(--o-ink)}
.listing-card:hover{border-color:#b9c3d3}
.listing-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px 12px;flex-wrap:wrap}
.listing-card-title{display:flex;flex:1 1 180px;flex-direction:column;gap:2px;min-width:0}
body[data-portal=owner] .portal .listing-card h2{font-size:19px;overflow-wrap:anywhere}
.listing-card .muted{overflow-wrap:anywhere}
.stage-track{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding:0;list-style:none}
.stage-track li{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}
.stage-track li+li::before{content:'';position:absolute;top:13px;left:-50%;right:50%;height:2px;background:var(--o-line)}
.stage-track li:is([data-stage=done],[data-stage=current])::before{background:var(--o-navy)}
.stage-dot{position:relative;z-index:1;width:28px;height:28px;border:2px solid #9aa3b2;border-radius:50%;background:#fff}
[data-stage=done] .stage-dot{border-color:var(--o-navy);background:var(--o-navy)}
[data-stage=done] .stage-dot::after{content:'';position:absolute;left:8.5px;top:4.5px;width:5px;height:10px;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}
[data-stage=current] .stage-dot{border-color:var(--o-navy);background:var(--o-yellow)}
.stage-name{font-size:14px;font-weight:700;line-height:1.4}
[data-stage=current] .stage-name{color:var(--o-navy)}
.stage-note{min-height:1.4em;font-size:13px;line-height:1.4;color:var(--o-muted)}
.listing-card-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;padding-top:14px;border-top:1px solid var(--o-line)}
.listing-cta{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 18px;border-radius:999px;background:var(--o-navy);color:#fff;font-size:15px;font-weight:700}
.listing-card:hover .listing-cta{background:var(--o-navy-hover)}
body[data-portal=owner] .portal .owner-empty{display:flex;flex-direction:column;align-items:center;gap:8px;max-width:none;padding:28px 20px;border-radius:24px;background:var(--o-warm);text-align:center}
body[data-portal=owner] .portal .owner-empty .lead{margin:0 auto}
.owner-flow{padding:20px;border-radius:24px;background:var(--o-soft)}
body[data-portal=owner] .portal .owner-flow h2{font-size:19px}
.owner-flow ol{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:16px 0 0;padding:0;list-style:none}
.owner-flow li{position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;font-size:14px;font-weight:700;line-height:1.4;text-align:center}
.owner-flow li+li::before{content:'';position:absolute;top:19px;left:-50%;right:50%;border-top:2px dashed #b3bfd3}
.owner-flow-dot{position:relative;z-index:1;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#fff;color:var(--o-navy);font-size:16px;font-weight:700;box-shadow:0 0 0 4px var(--o-soft)}
.owner-flow li:first-child .owner-flow-dot{background:var(--o-navy);color:#fff}
.owner-help{display:grid;grid-template-columns:minmax(0,1fr);align-items:center;gap:12px 16px;padding:20px;border-radius:24px;background:var(--o-yellow-soft)}
body[data-portal=owner] .portal .owner-help h2{font-size:18px}
body[data-portal=owner] .portal .owner-help p{margin-top:4px;font-size:15px;line-height:1.6;color:var(--o-muted)}
.owner-help .button{grid-column:1/-1}
body[data-portal=owner] .portal .owner-help .owner-help-hours{font-size:14px;font-weight:600;color:var(--o-ink);white-space:nowrap}
body[data-portal=owner] .portal .owner-start{display:flex;flex-direction:column;align-items:center;max-width:none;padding:32px 20px;border-radius:24px;background:var(--o-warm);text-align:center}
body[data-portal=owner] .portal .owner-start h1{margin:8px 0 0}
body[data-portal=owner] .portal .owner-start .lead{margin-inline:auto}
body[data-portal=owner] .portal .owner-start .button{min-width:240px;margin-top:20px}
body[data-portal=owner] .portal .owner-start .muted{margin-top:12px}
.owner-start+.owner-flow{margin-top:16px}
@media(min-width:600px){.owner-help{grid-template-columns:minmax(0,1fr) auto}.owner-help .button{grid-column:auto}}
@media(min-width:761px){.editor-bottom-inner{flex-direction:row;align-items:center;justify-content:space-between;gap:16px}.mobile-save-status{flex:1;justify-content:start;text-align:left}.editor-bottom-actions{flex:0 0 auto}body[data-portal=owner] .portal .editor-bottom-actions .button:not(.secondary){min-width:220px}body.owner-editing .portal-footer{padding-bottom:calc(104px + env(safe-area-inset-bottom))}}
@media(max-width:760px){body[data-portal=owner] .portal{padding-block:16px 48px}body[data-portal=owner] .portal h1{font-size:26px}.step-card{padding:16px 14px 10px;border-radius:20px}body[data-portal=owner] .portal #step-heading{font-size:24px}.form-card+.form-card::before{margin-inline:-20px;border-radius:0}.owner-flow{padding:18px 14px}}
@media(max-width:480px){.owner-hello .portal-actions{flex-basis:100%;margin-left:0}.step-nav{gap:2px}.step-nav button{padding:8px 2px}.owner-flow ol{gap:4px}.owner-flow li{font-size:13px}.listing-card{padding:18px 16px}}
/* Owner step 2: pill choices, steppers, weight chips, photo cards, review. The class names below exist only in the owner editor; rules that touch shared elements are scoped to body[data-portal=owner]. */
body[data-portal=owner] #owner-form>.lead+.form-card{margin-top:20px}
body[data-portal=owner] .pill-field{margin:20px 0 0;padding:0;border:0;min-width:0;gap:0}
body[data-portal=owner] .portal .pill-legend{float:none;width:100%;margin:0 0 10px;padding:0;font-size:16px;font-weight:700;line-height:1.5;color:var(--o-ink)}
.pill-group{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:8px}
.pill-group-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.pill-group-wide{grid-template-columns:repeat(auto-fit,minmax(148px,1fr))}
.pill-group-stack{grid-template-columns:minmax(0,1fr)}
.pill-option{position:relative;display:flex;min-width:0;cursor:pointer}
body[data-portal=owner] .pill-field .pill-input{position:absolute;inset:0;z-index:1;display:block;width:100%;height:100%;min-height:0;max-width:none;margin:0;padding:0;border:0;opacity:0;cursor:pointer;appearance:none}
.pill-face{display:flex;flex:1;align-items:center;justify-content:center;gap:6px;min-width:0;min-height:48px;padding:10px 12px;border:1.5px solid #8a93a3;border-radius:999px;background:#fff;color:var(--o-ink);font-size:15px;font-weight:600;line-height:1.35;text-align:center;overflow-wrap:anywhere}
.pill-group-3 .pill-face{padding-inline:6px}
.pill-group-stack .pill-face{justify-content:flex-start;padding:12px 16px;border-radius:16px;text-align:left}
.pill-option:hover .pill-face{background:var(--o-soft)}
.pill-input:checked+.pill-face{border-color:var(--o-navy);background:var(--o-navy);color:#fff;font-weight:700}
.pill-input:checked+.pill-face::before{content:'';flex:0 0 auto;width:5px;height:10px;margin:-4px 2px 0 1px;border:solid currentColor;border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}
.pill-input:focus-visible+.pill-face{outline:3px solid var(--o-focus);outline-offset:3px}
.pill-input[aria-invalid=true]:not(:checked)+.pill-face{border:2px solid var(--o-err)}
@media(forced-colors:active){.pill-input:checked+.pill-face{border:3px solid Highlight}}
body[data-portal=owner] .pill-field>.field-error{margin-top:8px}
.weight-custom{margin-top:4px}
.weight-custom[hidden]{display:none!important}
body[data-portal=owner] .weight-custom .field{margin-top:12px}
.rule-override .pill-field:first-of-type{margin-top:12px}
body[data-portal=owner] .portal :is(.room-heading,.document-list) .text-button{min-width:48px}
body[data-portal=owner] .portal h3 .muted{font-size:15px;font-weight:500}
/* Number fields with −/+ */
.room-group{margin-top:24px;padding-top:20px;border-top:1px solid var(--o-line)}
body[data-portal=owner] .portal .room-group-title{font-size:17px;color:var(--o-navy)}
body[data-portal=owner] .room-group>.field:nth-child(2){margin-top:12px}
.stepper{display:flex;align-items:center;gap:8px;max-width:360px}
.stepper-box{position:relative;flex:1 1 auto;min-width:0}
body[data-portal=owner] .field .stepper-box input{padding:12px 44px;font-size:17px;font-weight:700;text-align:center;-moz-appearance:textfield;appearance:textfield}
body[data-portal=owner] .number-field:not(.stepper-field) .stepper-box input{padding-left:16px;text-align:left}
.stepper-box input::-webkit-inner-spin-button,.stepper-box input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.stepper-unit{position:absolute;top:50%;right:16px;transform:translateY(-50%);font-size:15px;font-weight:600;color:var(--o-muted);pointer-events:none}
body[data-portal=owner] .portal .stepper-button{display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;padding:0;border:1.5px solid var(--o-navy);border-radius:50%;background:#fff;color:var(--o-navy);cursor:pointer}
body[data-portal=owner] .portal .stepper-button[data-dir=up]{background:var(--o-navy);color:#fff}
body[data-portal=owner] .portal .stepper-button:hover{background:#eef3fb}
body[data-portal=owner] .portal .stepper-button[data-dir=up]:hover{background:var(--o-navy-hover)}
.stepper-button svg{width:22px;height:22px;stroke-width:2.2}
body[data-portal=owner] .portal .money-hint{font-size:15px;font-weight:700;line-height:1.5;color:var(--o-navy)}
.money-hint:empty{display:none}
/* Photos */
body[data-portal=owner] .photo-add{position:relative;margin-top:20px;padding:0;border:0;border-radius:0;background:none}
body[data-portal=owner] .photo-add .photo-add-input{position:absolute;top:0;left:0;width:1px;height:1px;min-height:0;margin:0;padding:0;border:0;opacity:0;overflow:hidden}
.photo-add-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:148px;padding:20px 16px;border:2px dashed #7d8fb0;border-radius:24px;background:#f5f8fd;text-align:center;cursor:pointer}
.photo-add-tile:hover{border-color:var(--o-navy);background:#eaf0fa}
.photo-add-input:focus-visible+.photo-add-tile{outline:3px solid var(--o-focus);outline-offset:3px}
.photo-add-input[aria-invalid=true]+.photo-add-tile{border:2px solid var(--o-err)}
.photo-add-icon{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--o-yellow);color:var(--o-navy)}
.photo-add-icon svg{width:28px;height:28px;stroke-width:2.2}
.photo-add-title{font-size:18px;font-weight:700;line-height:1.4;color:var(--o-navy)}
.photo-add-hint{max-width:360px;font-size:14px;line-height:1.55;color:var(--o-muted)}
.photo-count{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:2px 12px;margin-top:14px}
body[data-portal=owner] .portal .photo-count p{margin:0;font-size:15px;font-weight:700;line-height:1.5}
.photo-count strong{color:var(--o-navy)}
.photo-count p>span{font-weight:500;color:var(--o-muted)}
body[data-portal=owner] .portal .photo-count-state{font-size:14px;color:var(--o-warn)}
body[data-portal=owner] .portal .photo-count-state[data-tone=ok]{color:var(--o-ok)}
.photo-meter{height:8px;margin-top:8px;border-radius:999px;background:var(--o-line);overflow:hidden}
.photo-meter span{display:block;height:100%;border-radius:inherit;background:var(--o-navy)}
.photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 12px;margin:0;padding:0;list-style:none}
.upload-grid{margin-top:16px}
.upload-grid:empty{display:none}
.photo-section{margin-top:28px}
body[data-portal=owner] .portal .photo-section>.muted{margin:4px 0 14px}
.photo-card{display:flex;flex-direction:column;gap:8px;min-width:0}
.photo-frame{position:relative;aspect-ratio:4/3;border-radius:16px;overflow:hidden;background:#e9eef5}
/* stays.css gives an older .photo-frame a fixed 520–624px height on wider screens. */
body[data-portal=owner] .photo-frame{height:auto}
.photo-frame img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}
.photo-badge{position:absolute;left:8px;bottom:8px;display:inline-flex;align-items:center;min-height:26px;padding:0 10px;border-radius:999px;background:var(--o-yellow);color:var(--o-navy);font-size:13px;font-weight:700;line-height:1.3}
.photo-number{position:absolute;top:8px;right:8px;display:grid;place-items:center;min-width:28px;height:28px;padding:0 8px;border-radius:999px;background:rgba(38,38,38,.75);color:#fff;font-size:13px;font-weight:700}
body[data-portal=owner] .portal .photo-cover{position:absolute;top:2px;left:2px;display:flex;align-items:center;min-height:48px;padding:0 6px;border:0;background:none;color:var(--o-navy);cursor:pointer}
.photo-cover>span{display:inline-flex;align-items:center;min-height:32px;padding:0 12px;border-radius:999px;background:rgba(255,255,255,.95);font-size:14px;font-weight:700;box-shadow:0 1px 4px rgba(1,42,105,.25)}
.photo-cover:hover>span{background:var(--o-yellow-soft)}
body[data-portal=owner] .portal .photo-cover:focus-visible{outline:0}
.photo-cover:focus-visible>span{outline:3px solid var(--o-focus);outline-offset:2px}
body[data-portal=owner] .photo-card .field{margin-top:0;gap:4px}
body[data-portal=owner] .photo-card .field label{font-size:14px}
body[data-portal=owner] .photo-card .field input{min-height:48px;padding:10px 12px;font-size:15px}
.photo-card-tools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}
body[data-portal=owner] .portal .photo-tool{min-width:0;min-height:48px;padding:4px 6px;border:1.5px solid #8a93a3;border-radius:14px;background:#fff;color:var(--o-ink);font:inherit;font-size:14px;font-weight:700;line-height:1.3;cursor:pointer}
body[data-portal=owner] .portal .photo-tool:hover{background:var(--o-soft)}
body[data-portal=owner] .portal .photo-tool.danger{color:var(--o-err)}
body[data-portal=owner] .portal .photo-tool:disabled{opacity:.4;cursor:not-allowed}
.photo-card-actions{display:flex;flex-wrap:wrap;align-items:center;gap:0 12px}
body[data-portal=owner] .portal .photo-card-actions .button{flex:1 1 100%;min-height:48px;padding:8px 12px;font-size:15px}
.photo-card-actions .underlined-link{display:inline-flex;align-items:center;min-height:48px;font-size:14px}
body[data-portal=owner] .portal .photo-card-actions .text-button{font-size:14px}
.upload-frame{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:116px;padding:12px 10px;border-radius:16px;background:#eef1f6;color:var(--o-ink);text-align:center;font-size:14px;line-height:1.45}
.upload-name{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:var(--o-muted)}
.upload-card[data-state=failed] .upload-frame{border:1.5px solid #e8a39c;background:var(--o-err-bg);color:var(--o-err)}
.upload-card[data-state=failed] .upload-name{color:#7a1f18}
.upload-reason{font-size:13px;color:#7a1f18;overflow-wrap:anywhere}
.upload-bar{display:block;width:80%;height:4px;margin-top:6px;border-radius:999px;background:#d3d9e4;overflow:hidden}
.upload-bar span{display:block;width:40%;height:100%;border-radius:inherit;background:var(--o-navy);animation:owner-upload 1.2s ease-in-out infinite}
.upload-card[data-state=waiting] .upload-bar span{width:0;animation:none}
@keyframes owner-upload{from{transform:translateX(-100%)}to{transform:translateX(250%)}}
@media(prefers-reduced-motion:reduce){.upload-bar span{width:100%;opacity:.45;animation:none}}
.upload-actions{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:4px}
body[data-portal=owner] .portal .photo-tool.upload-retry{border-color:var(--o-err);color:var(--o-err)}
/* Review */
.guest-card{margin-top:16px;border:1px solid #eef0f4;border-radius:24px;overflow:hidden;background:#fff;box-shadow:var(--o-shadow)}
.guest-card-photo{position:relative;display:grid;place-items:center;width:100%;aspect-ratio:16/9;max-height:260px;background:#e9eef5}
.guest-card-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.guest-card-empty{padding:16px;font-size:15px;font-weight:600;color:var(--o-muted);text-align:center}
.guest-card-flag{position:absolute;top:12px;left:12px;display:inline-flex;align-items:center;min-height:28px;padding:0 12px;border-radius:999px;background:var(--o-navy);color:#fff;font-size:13px;font-weight:700}
.guest-card-body{display:flex;flex-direction:column;gap:10px;padding:16px 18px 18px}
body[data-portal=owner] .portal .guest-card-region{font-size:14px;line-height:1.5;color:var(--o-muted)}
body[data-portal=owner] .portal .guest-card-name{margin-top:-8px;font-size:20px;overflow-wrap:anywhere}
body[data-portal=owner] .portal .guest-card-facts{font-size:15px;line-height:1.6}
body[data-portal=owner] .portal .guest-card-kicker{font-size:13px;font-weight:700;line-height:1.5;color:var(--o-navy)}
.guest-chips{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 0;padding:0;list-style:none}
body[data-portal=owner] .portal .guest-chips li{display:inline-flex;align-items:center;min-height:28px;padding:2px 12px;border-radius:999px;background:#eaf0fa;color:var(--o-navy);font-size:13px;font-weight:600;line-height:1.4}
body[data-portal=owner] .portal .guest-card-price{font-size:14px;line-height:1.5;color:var(--o-muted)}
.guest-card-price strong{font-size:19px;color:var(--o-ink)}
body[data-portal=owner] .portal .guest-card-note{margin-top:-6px;font-size:14px;line-height:1.55;color:var(--o-muted)}
.guest-card-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 12px;padding-top:12px;border-top:1px solid var(--o-line)}
.guest-card-foot p{display:flex;flex-direction:column;min-width:0;margin:0;line-height:1.5}
.guest-card-foot p span{font-size:13px;color:var(--o-muted)}
.guest-card-foot p strong{font-size:15px}
.guest-card-cta{display:inline-flex;flex-shrink:0;align-items:center;min-height:40px;padding:0 16px;border-radius:999px;background:var(--o-navy);color:#fff;font-size:14px;font-weight:700}
.review-missing{margin-top:20px;padding:16px;border-radius:24px;background:var(--o-soft)}
.review-missing-head{display:flex;align-items:center;gap:12px}
.review-missing-icon{position:relative;flex:0 0 44px;width:44px;height:44px;border-radius:50%;background:var(--o-yellow)}
.review-missing-icon::after{content:'!';position:absolute;inset:0;display:grid;place-items:center;color:var(--o-navy);font-size:22px;font-weight:800}
.review-missing[data-count="0"] .review-missing-icon{background:var(--o-ok)}
.review-missing[data-count="0"] .review-missing-icon::after{content:'';inset:auto;left:16px;top:10px;width:9px;height:17px;border:solid #fff;border-width:0 3px 3px 0;transform:rotate(45deg)}
body[data-portal=owner] .portal .review-missing h3{font-size:18px}
.review-missing h3 span{color:var(--o-warn)}
.review-missing[data-count="0"] h3 span{color:var(--o-ok)}
body[data-portal=owner] .portal .review-missing-head p{margin-top:2px;font-size:14px;line-height:1.5;color:var(--o-muted)}
.review-step-list{display:grid;gap:8px;margin:14px 0 0;padding:0;list-style:none}
.review-step-list>li{border-radius:16px;background:#fff;overflow:hidden}
body[data-portal=owner] .portal .review-step-link{display:flex;align-items:center;gap:10px;width:100%;min-height:52px;margin:0;padding:10px 14px;border:0;border-radius:16px;background:#fff;color:var(--o-ink);font:inherit;text-align:left;text-decoration:none;cursor:pointer}
body[data-portal=owner] .portal p.review-step-link{cursor:default}
body[data-portal=owner] .portal button.review-step-link:hover{background:#f7f8fb}
button.review-step-link::after{content:'';flex:0 0 auto;width:8px;height:8px;margin-right:4px;border:solid var(--o-muted);border-width:2px 2px 0 0;transform:rotate(45deg)}
body[data-portal=owner] .portal button.review-step-link:focus-visible{outline-offset:-3px}
.review-step-mark{position:relative;flex:0 0 24px;width:24px;height:24px;border-radius:50%;background:var(--o-yellow)}
.review-step-mark::after{content:'!';position:absolute;inset:0;display:grid;place-items:center;color:var(--o-navy);font-size:14px;font-weight:800}
[data-complete=true] .review-step-mark{background:var(--o-ok)}
[data-complete=true] .review-step-mark::after{content:'';inset:auto;left:8.5px;top:4.5px;width:5px;height:10px;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}
.review-step-name{flex:1;min-width:0;font-size:16px;font-weight:700;line-height:1.4}
.review-step-state{flex-shrink:0;font-size:14px;font-weight:600;color:var(--o-ok)}
[data-complete=false] .review-step-state{color:var(--o-warn)}
.review-field-list{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0 14px 12px 48px;list-style:none}
body[data-portal=owner] .portal .review-field-link{min-height:48px;padding:6px 14px;border:1.5px solid #e2cf93;border-radius:999px;background:var(--o-yellow-soft);color:var(--o-warn);font:inherit;font-size:14px;font-weight:700;line-height:1.35;text-align:left;cursor:pointer}
body[data-portal=owner] .portal .review-field-link:hover{border-color:var(--o-warn)}
body[data-portal=owner] .portal .review-field-more{display:flex;align-items:center;min-height:48px;font-size:14px;color:var(--o-muted)}
body[data-portal=owner] .review-card{margin-top:24px}
body[data-portal=owner] .review-card .upload-box{margin-top:12px}
.review-flow{margin-top:24px;padding:18px;border-radius:24px;background:var(--o-warm)}
body[data-portal=owner] .portal .review-flow h3{font-size:18px}
.review-flow ol{display:grid;gap:14px;margin:14px 0 0;padding:0;list-style:none;counter-reset:owner-flow}
.review-flow li{position:relative;display:flex;flex-direction:column;gap:2px;padding-left:40px;counter-increment:owner-flow}
.review-flow li::before{content:counter(owner-flow);position:absolute;top:0;left:0;display:grid;place-items:center;width:28px;height:28px;border:1.5px solid var(--o-navy);border-radius:50%;background:#fff;color:var(--o-navy);font-size:13px;font-weight:700;box-sizing:border-box}
.review-flow li:first-child::before{background:var(--o-navy);color:#fff}
.review-flow strong{font-size:15px;line-height:1.5}
body[data-portal=owner] .portal .review-flow li span{font-size:14px;line-height:1.55;color:var(--o-muted)}
body[data-portal=owner] .review-consent{margin-top:24px;padding:16px 18px 18px;border:1.5px solid var(--o-navy);border-radius:24px}
body[data-portal=owner] .review-consent .checkbox-row{margin-top:12px}
body[data-portal=owner] .portal .review-contact{margin-top:16px}
@media(min-width:600px){.pill-group-stack{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:599px){body[data-portal=owner] .room-group .field-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:380px){.pill-face{font-size:14px}.review-field-list{padding-left:14px}}
@media(max-width:359px){.photo-grid{grid-template-columns:minmax(0,1fr)}}
