:root { --navy:#0a1e46; --blue:#0057b8; --blue-dark:#003c82; --sky:#0079c8; --ice:#eaf4fc; --ink:#152743; --muted:#34445f; --line:#ccd6e4; --bg:#f7f9fc; --card:#fff; --bad:#ac2424; --radius:22px; }
* { box-sizing:border-box; }
html,body { margin:0; background:var(--bg); color:var(--ink); font:16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif; }
button,input,select,textarea { font:inherit; }
button,a,input,select,textarea { touch-action:manipulation; }
button { cursor:pointer; }
button:focus-visible,a:focus-visible,label:focus-within { outline:3px solid var(--blue); outline-offset:3px; }
h1:focus { outline:none; }
.site-header { height:82px; border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; padding:0 max(24px,calc((100vw - 760px)/2)); background:white; }
.brand-row { display:flex; }
.logo { height:48px; width:auto; max-width:210px; object-fit:contain; }
.portal-label { font-size:13px; font-weight:600; color:var(--navy); }
.sidebar { display:none; }
.app { max-width:808px; margin:0 auto; padding:38px 24px 40px; }
.workspace { min-width:0; }
.topbar { padding:0 0 24px; }
.progress-meta { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:10px; font-size:14px; font-weight:600; color:var(--blue-dark); }
.progress { height:7px; background:#e0e7f0; border-radius:20px; overflow:hidden; }
.progress-bar { height:100%; width:0; background:var(--blue); border-radius:20px; transition:width .2s; }
.step { display:none; }
.step.active { display:block; }
h1,h2 { font-family:Georgia,"Times New Roman",serif; color:var(--navy); }
h1 { font-size:36px; line-height:1.2; letter-spacing:-.6px; margin:0 0 10px; }
h2 { font-size:24px; line-height:1.3; margin:14px 0 8px; }
h1 em { color:var(--blue-dark); font-weight:400; }
.subtitle { font-size:16px; line-height:1.6; color:var(--muted); margin:0 0 24px; }
.form-card,.photo-card,.welcome-overview,.tips-card,.upload-choice { background:var(--card); border:1px solid var(--line); border-radius:var(--radius); box-shadow:0 5px 18px #10203f06; }
.form-card { padding:24px 24px 4px; }
.field { margin-bottom:20px; }
.field-row { display:flex; gap:16px; }
.field-row .field { flex:1; min-width:0; }
label { display:block; color:var(--ink); font-size:15px; font-weight:500; margin-bottom:7px; }
input[type=text],input[type=tel],input[type=email],select,textarea { width:100%; min-height:46px; border:1px solid #b8c7db; border-radius:16px; padding:11px 15px; color:var(--ink); background:#fff; font-size:16px; line-height:1.4; font-weight:400; }
input::placeholder,textarea::placeholder { color:#465773; opacity:1; }
input:focus,select:focus,textarea:focus { outline:none; border-color:var(--blue); box-shadow:0 0 0 3px #0057b814; }
textarea { min-height:94px; resize:vertical; }
.details-input { margin-top:16px; }
.details-input label { font-size:15px; }
.step-statusGroup .field > label { font-size:20px; font-weight:600; line-height:1.5; margin-bottom:18px; }
.button-group { display:grid; gap:8px; }
.option-btn { width:100%; min-height:49px; border:1px solid #bcc9d9; border-radius:18px; background:white; color:var(--ink); text-align:left; padding:12px 18px; font-size:15px; font-weight:500; }
.option-btn:hover { border-color:var(--blue); background:#f2f7ff; }
.option-btn.selected { border-color:var(--blue); background:var(--ice); color:var(--blue-dark); box-shadow:inset 3px 0 var(--blue); }
.radio-dot { display:none; }
.hint { font-size:14px; color:var(--muted); margin-top:5px; }
.photo-card { padding:20px; margin-bottom:14px; }
.photo-card-head { display:flex; gap:12px; justify-content:space-between; }
.photo-card-title { font-size:17px; font-weight:500; }
.photo-actions { display:flex; gap:10px; margin-top:16px; flex-wrap:wrap; }
.photo-action-btn,.extra-files-btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; position:relative; border:1px solid var(--line); border-radius:30px; padding:10px 16px; min-height:44px; font-size:14px; font-weight:600; cursor:pointer; margin:0; color:var(--ink); background:white; }
.photo-action-btn:first-child { background:var(--blue); border-color:var(--blue); color:white; }
.photo-action-btn input,.extra-files-btn input { position:absolute; width:1px; height:1px; opacity:0; }
.photo-action-btn.working { pointer-events:none; background:#dbe6f2; color:var(--ink); }
.na-toggle { border:0; background:none; color:var(--muted); font-size:14px; padding:10px 0; min-height:44px; margin-top:6px; }
.na-toggle.active { color:var(--blue-dark); font-weight:600; }
.photo-card.not-applicable { background:var(--ice); }
.thumbs { display:flex; flex-wrap:wrap; gap:12px; }
.thumbs:not(:empty) { margin-top:16px; }
.thumb { position:relative; width:76px; height:76px; }
.thumb img { width:100%; height:100%; object-fit:cover; border-radius:10px; }
.remove,.remove-extra { border:0; border-radius:50%; background:var(--navy); color:#fff; width:30px; height:30px; }
.thumb .remove { position:absolute; top:-7px; right:-7px; }
.count-badge { border-radius:20px; background:var(--ice); color:var(--blue-dark); font-size:13px; padding:3px 9px; margin-left:8px; }
.extra-files-btn { margin-bottom:20px; color:var(--blue-dark); }
.extra-file-row { display:flex; align-items:center; gap:10px; padding:10px 0; }
.extra-file-name { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.extra-file-size { font-size:13px; color:var(--muted); }
.remove-extra { flex-shrink:0; }
.nav-buttons { display:flex; align-items:center; gap:16px; padding:20px 0 0; }
.btn { border:0; border-radius:30px; min-height:44px; padding:11px 23px; font-size:15px; font-weight:600; }
.btn-primary { background:var(--blue); color:white; margin-left:auto; }
.btn-primary::after { content:'→'; margin-left:12px; }
.btn-primary:hover:not(:disabled) { background:var(--blue-dark); }
.btn:disabled { background:#34445f; color:white; cursor:wait; }
.btn-ghost { background:transparent; color:var(--muted); padding-left:4px; }
.btn-ghost::before { content:'←'; margin-right:7px; }
.error-text { display:none; margin:14px 0; color:var(--bad); font-size:15px; }
.input-error,.photo-card.incomplete { border-color:var(--bad)!important; }
.tips-card { padding:20px 24px; margin-bottom:20px; line-height:1.8; }
.tips-card b { display:block; }
.welcome-tag { color:var(--blue-dark); font-size:13px; letter-spacing:.06em; margin-bottom:14px; }
.welcome-overview { padding:4px 24px; }
.overview-item { display:flex; align-items:center; gap:16px; padding:18px 0; }
.overview-item + .overview-item { border-top:1px solid var(--line); }
.overview-icon,.choice-icon { display:grid; place-items:center; background:var(--ice); color:var(--blue-dark); width:38px; height:38px; border-radius:50%; flex-shrink:0; }
.overview-item h3 { font-size:16px; margin:0 0 4px; }
.overview-item p { color:var(--muted); font-size:14px; margin:0; }
.welcome-details { font-size:14px; color:var(--muted); margin:16px 0 0; }
.upload-choices { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.upload-choice { text-align:left; padding:24px; color:var(--ink); }
.upload-choice:hover { border-color:var(--blue); }
.upload-choice p { font-size:15px; color:var(--muted); margin:8px 0 18px; }
.upload-choice strong { color:var(--blue-dark); font-size:15px; }
.step-bulkPhotos .photo-card { border:2px dashed var(--line); padding:34px 24px; text-align:center; }
.step-bulkPhotos .photo-card-head,.step-bulkPhotos .photo-actions { justify-content:center; }
.success-wrap { text-align:center; padding:40px 0; }
.success-icon { display:grid; place-items:center; background:var(--blue); color:white; width:70px; height:70px; border-radius:50%; font-size:32px; margin:0 auto 24px; }
.upload-progress { margin-top:20px; }
#uploadLabel { margin-bottom:12px; }
.progress-bar.indeterminate { width:40%!important; animation:indeterminate 1.1s ease-in-out infinite; }
@keyframes indeterminate { 0%,100% { margin-left:0; } 50% { margin-left:60%; } }
@media(max-width:600px) { .site-header { height:68px; padding:0 20px; } .logo { height:40px; max-width:165px; } .app { padding:24px 18px 30px; } h1 { font-size:29px; } .form-card { padding:20px 18px 2px; } .step-statusGroup .field > label { font-size:18px; } .upload-choices { grid-template-columns:1fr; } .upload-choice { padding:20px; } .topbar { padding-bottom:20px; } .btn { padding:11px 17px; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
/* Shared reference layout across property, questionnaire, and photo screens. */
.app { max-width:776px; padding-top:46px; }
.site-header { padding-left:max(24px,calc((100vw - 728px)/2)); padding-right:max(24px,calc((100vw - 728px)/2)); }
.question-category { color:var(--muted); font-size:13px; font-weight:600; text-transform:uppercase; letter-spacing:.04em; margin-bottom:12px; }
.form-card .nav-buttons { padding:4px 0 20px; }
.form-card { padding-top:24px; }
.property-context { padding:16px; border:1px solid var(--line); border-radius:22px; background:white; box-shadow:0 5px 18px #10203f06; margin-bottom:18px; }
.property-context span { display:block; color:var(--muted); font-size:12px; letter-spacing:.05em; }
.property-context strong { font-family:Georgia,serif; font-size:19px; color:var(--navy); }
.mode-switch { display:block; margin:0 0 24px auto; border:0; padding:4px 0; min-height:36px; background:transparent; color:var(--blue-dark); font-size:14px; }
.step-photoGroup .photo-card { position:relative; padding:16px; margin-bottom:10px; }
.step-photoGroup .photo-card-title { padding-left:34px; }
.step-photoGroup .photo-card-title::before { content:''; position:absolute; left:16px; top:19px; width:21px; height:21px; border:1px solid var(--line); border-radius:50%; }
.step-photoGroup .photo-card.not-applicable .photo-card-title::before { content:'✓'; display:grid; place-items:center; color:white; background:var(--blue); border-color:var(--blue); font-size:13px; }
.step-photoGroup .hint { padding-left:34px; }
.step-photoGroup .photo-actions { margin-top:12px; padding-right:110px; }
.step-photoGroup .na-toggle { position:absolute; right:16px; bottom:16px; margin:0; }
.photo-action-btn { padding:8px 14px; }
.attachment-section { border:1px solid var(--line); border-radius:22px; padding:22px 24px; margin-top:24px; background:white; }
.attachment-section h2 { margin:0 0 8px; font-size:22px; }
.attachment-section .subtitle { font-size:14px; margin-bottom:14px; }
.attachment-section .form-card { border:0; box-shadow:none; padding:0; border-radius:0; }
.attachment-section .field { margin:0; }
.attachment-section .extra-files-btn { margin-bottom:0; }
.finish-card { margin-top:24px; border:1px solid #a9c7e8; background:#edf5ff; border-radius:22px; padding:22px 24px; }
.finish-card h2 { margin:0 0 8px; font-size:23px; }
.finish-card > p { color:var(--muted); font-size:14px; margin:0; }
.finish-card .nav-buttons { flex-wrap:wrap; }
.step-contact .contact-row { margin-bottom:0; }
@media(max-width:600px) {
 .app { padding-top:26px; }
 .contact-row { flex-direction:column; gap:0; }
 .attachment-section,.finish-card { padding:20px 18px; }
 .step-photoGroup .photo-actions { padding-right:0; }
 .step-photoGroup .na-toggle { position:static; padding-bottom:0; min-height:34px; }
 .finish-card .btn-primary { font-size:14px; padding:11px 14px; }
}

/* Branded welcome page, following the supplied home-page reference. */
.home-hero { padding:44px 46px; background:#eaf2fc; border:1px solid #dce8f7; border-radius:26px; box-shadow:0 8px 28px #0a1e4605; }
.home-hero .welcome-tag { margin-bottom:16px; font-size:14px; font-weight:600; }
.home-hero h1 { font-size:48px; line-height:1.2; letter-spacing:-.7px; margin-bottom:20px; }
.home-hero > p { font-size:18px; line-height:1.7; color:var(--muted); margin:0; }
.home-hero .nav-buttons { padding-top:28px; }
.home-hero #backBtn { display:none; }
.home-hero .btn-primary { margin-left:0; }
.home-overview { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-top:28px; }
.home-step,.home-tips { border:1px solid var(--line); border-radius:22px; background:white; padding:20px; box-shadow:0 5px 18px #10203f06; }
.home-step .overview-icon { width:34px; height:34px; font-size:14px; font-weight:600; }
.home-step h2 { font-size:20px; margin:16px 0 6px; }
.home-step p { font-size:14px; line-height:1.5; margin:0; color:var(--muted); }
.home-tips { margin-top:28px; padding:22px 24px; }
.home-tips h2 { font-size:22px; margin:0 0 12px; }
.home-tips ul { padding-left:20px; margin:0; color:var(--muted); font-size:15px; }
.home-tips li + li { margin-top:6px; }
@media(max-width:600px) {
 .home-hero { padding:28px 24px; border-radius:22px; }
 .home-hero h1 { font-size:34px; }
 .home-hero > p { font-size:16px; line-height:1.6; }
 .home-overview { grid-template-columns:1fr; gap:12px; margin-top:20px; }
 .home-step { padding:18px 20px; }
 .home-step .overview-icon { float:left; margin-right:14px; }
 .home-step h2 { margin:0 0 6px 48px; }
 .home-step p { margin-left:48px; }
 .home-tips { margin-top:20px; }
}
.question-view { display:flex; gap:8px; margin-bottom:20px; }
.question-view button { border:1px solid var(--line); background:white; color:var(--ink); border-radius:24px; padding:10px 18px; font-size:15px; min-height:44px; }
.question-view button[aria-pressed=true] { background:var(--blue-dark); border-color:var(--blue-dark); color:white; }
.step-statusGroup > .form-card { margin-bottom:20px; }
.step-statusGroup .question-category { margin:0 0 12px; font-family:inherit; font-size:15px; }
.step-statusGroup .form-card .field + .field { border-top:1px solid var(--line); padding-top:22px; }
.step-statusGroup .form-card .hint { margin-bottom:18px; }
/* Clear section hierarchy and individual questionnaire cards. */
.step-statusGroup > .form-card { border:0; box-shadow:none; background:transparent; padding:0; margin-bottom:28px; }
.step-statusGroup .question-category { font-family:Georgia,serif; font-size:24px; color:var(--navy); text-transform:none; letter-spacing:0; margin:0 0 8px; }
.step-statusGroup .condition-question { padding:22px; background:#fff; border:1px solid var(--line); border-radius:18px; margin:14px 0; box-shadow:0 3px 12px #10203f04; }
.step-statusGroup .form-card .condition-question + .condition-question { padding-top:22px; }
.step-statusGroup .condition-question > label { font-size:17px; line-height:1.5; margin-bottom:16px; }
.step-statusGroup .button-group { grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.step-statusGroup .option-btn { font-size:14px; text-align:center; min-height:46px; padding:10px 8px; border-radius:10px; }
.step-statusGroup .details-input { background:#f0f6ff; border-left:3px solid var(--blue); padding:16px; border-radius:0 12px 12px 0; margin-top:16px; }
.step-statusGroup .details-input label { font-size:15px; font-weight:600; margin-bottom:10px; }
.step-statusGroup .details-input textarea { min-height:106px; border-radius:10px; }
.step-statusGroup .form-card .nav-buttons { padding:8px 0 0; }
.all-questions > .step-notes { margin-top:28px; }
@media(max-width:600px) { .step-statusGroup .condition-question { padding:18px 16px; } .step-statusGroup .option-btn { font-size:14px; padding:10px 5px; } .step-statusGroup .button-group { gap:6px; } .step-statusGroup .details-input { padding:12px; } }

/* Privacy / Terms pages and the site footer */
.legal { max-width:760px; margin:0 auto; padding:38px 24px 20px; }
.legal h2 { margin-top:32px; }
.legal p,.legal li { font-size:16px; line-height:1.7; color:var(--ink); }
.legal ul { padding-left:22px; }
.legal a { color:var(--blue-dark); }
.legal-updated { color:var(--muted); font-size:14px!important; margin:0 0 24px; }
.site-footer { text-align:center; padding:24px 24px 40px; font-size:14px; color:var(--muted); }
.site-footer a { color:var(--muted); }
