:root{--navy:#071c64;--blue:#3262cf;--muted:#4d6fbc;--line:#c9dcff;--soft:#f3f8ff;--white:#fff;--danger:#9f2430}
*{box-sizing:border-box}
html{min-height:100%;background:#f4f7fc}
body{min-height:100vh;margin:0;background:radial-gradient(circle at 50% 0,#fff 0,#fff 38%,#f8fbff 100%);color:var(--navy);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}
.app-shell{width:100%;max-width:600px;min-height:100vh;margin:auto;padding:max(10px,env(safe-area-inset-top)) 20px max(30px,env(safe-area-inset-bottom))}
.app-header{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:56px minmax(0,1fr) 132px;align-items:center;min-height:112px;margin-bottom:4px;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.header-logo-link{grid-column:3;justify-self:end;display:block;width:132px;height:104px}
.header-logo{display:block;width:100%;height:100%;object-fit:contain}
.back-link{grid-column:1 / 3;grid-row:1;justify-self:start;color:var(--navy);font-size:16px;font-weight:750;text-decoration:none;white-space:nowrap}
.back-link span{font-size:31px;line-height:0;vertical-align:-3px}
.account-button{grid-column:1;grid-row:1;justify-self:start;display:grid;place-items:center;width:48px;height:48px;border:1px solid var(--line);border-radius:50%;background:#f4f8ff;box-shadow:0 6px 18px rgba(16,31,102,.1)}
.account-button svg{width:25px;fill:none;stroke:var(--navy);stroke-width:1.55}
.home-intro,.page-intro{margin:5px 3px 18px}
.eyebrow{margin:0 0 10px;color:var(--blue);font-size:14px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
h1{margin:0;font-size:clamp(31px,8vw,44px);line-height:1.06;letter-spacing:-.04em}
h2{margin:0;font-size:21px;line-height:1.2}
.lead{margin:4px 0 0;color:var(--blue);font-size:clamp(18px,4.8vw,22px);line-height:1.35}
.action-list{display:grid;gap:13px}
.action-card{display:grid;grid-template-columns:72px minmax(0,1fr) 24px;align-items:center;gap:16px;min-height:100px;padding:12px;border:1px solid var(--line);border-radius:15px;background:linear-gradient(135deg,#f8fbff,#fff);color:var(--navy);text-decoration:none;box-shadow:0 8px 22px rgba(26,54,125,.055);transition:transform .15s,box-shadow .15s}
.action-card:active{transform:scale(.985)}
.action-icon{display:grid;place-items:center;width:72px;height:72px;border:1px solid #dce9ff;border-radius:14px;background:#eef6ff}
.action-icon svg{width:42px;height:42px;fill:none;stroke:var(--navy);stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}
.action-icon img{width:42px;height:42px}
.action-card strong{display:block;font-size:19px;line-height:1.25}
.action-card small{display:block;margin-top:5px;color:var(--blue);font-size:14px;line-height:1.35}
.chevron{font-size:36px;font-weight:300}
.action-list.compact .action-card{min-height:94px}
.search-card,.info-card,.login-card,.form-frame-card{margin:0 0 12px;padding:14px;border:1px solid var(--line);border-radius:15px;background:linear-gradient(135deg,#f8fbff,#fff);box-shadow:0 7px 20px rgba(26,54,125,.055)}
label{display:block;margin-bottom:9px;font-weight:750}
.search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}
input{width:100%;height:48px;padding:0 14px;border:1.5px solid #a9c1f0;border-radius:9px;color:var(--navy);background:#fff;font:inherit;font-size:17px;line-height:1.2}
.file-input{height:auto;min-height:48px;padding:11px 12px}
select{width:100%;height:48px;padding:0 42px 0 14px;border:1.5px solid #a9c1f0;border-radius:9px;color:var(--navy);background:#fff;font:inherit;font-size:17px;line-height:1.2}
textarea{width:100%;min-height:130px;padding:12px 14px;border:1.5px solid #a9c1f0;border-radius:9px;color:var(--navy);background:#fff;font:inherit;font-size:17px;line-height:1.45;resize:vertical}
.primary-button,.secondary-button{min-height:48px;padding:0 24px;border:0;border-radius:9px;font:inherit;font-weight:800;cursor:pointer}
.primary-button{background:var(--navy);color:#fff}
.secondary-button{border:1px solid var(--line);background:var(--soft);color:var(--navy)}
.danger-button{width:100%;min-height:48px;padding:0 24px;border:1px solid #e9b8bd;border-radius:9px;background:#fff5f6;color:var(--danger);font:inherit;font-weight:800;cursor:pointer}.delete-entry-form{margin:0 0 24px}
.card-heading{display:flex;align-items:center;justify-content:flex-start;gap:13px}
.card-heading a{color:var(--navy);font-size:28px;font-weight:850}
.card-heading .icon-copy{margin-left:auto}
.section-icon{display:grid;place-items:center;width:48px;height:48px;flex:0 0 48px;border:1px solid #dce9ff;border-radius:11px;background:#eef6ff}
.section-icon svg{width:31px;height:31px;fill:none;stroke:var(--navy);stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}
.section-icon img{width:31px;height:31px}
.copy-button{padding:8px 12px;border:1px solid var(--line);border-radius:9px;background:var(--soft);color:var(--navy);font-weight:750}
.icon-copy,.inline-copy{display:inline-grid;place-items:center;padding:0;border:0;background:transparent;color:var(--blue);cursor:pointer;vertical-align:middle}
.icon-copy{width:34px;height:34px}.inline-copy{width:25px;height:25px;margin-left:5px}
.icon-copy svg,.inline-copy svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.icon-copy img,.inline-copy img{width:20px;height:20px}
dl{margin:17px 0 0}
dl div{display:grid;grid-template-columns:minmax(118px,.72fr) 1fr;gap:12px;padding:7px 0;border:0}
dt{color:var(--muted)}
dd{margin:0;font-weight:650;overflow-wrap:anywhere}
dd a{color:var(--blue);text-decoration:none}
.section-label{margin:6px 0;color:var(--muted)}
.error-message{margin:15px 0;padding:15px;border:1px solid #f0c6ca;border-radius:12px;background:#fff5f6;color:var(--danger)}
.form-frame-card{padding:0;overflow:hidden}
.jotform-frame{display:block;width:100%;height:calc(100vh - 250px);min-height:650px;border:0}
.form-fallback{text-align:center;color:var(--muted)}
.form-fallback a{color:var(--navy);font-weight:750}
.empty-state{margin-top:18px;padding:28px 20px;border:1px dashed #b9ccef;border-radius:18px;background:var(--soft);text-align:center}
.empty-state p{margin:9px 0 0;color:var(--muted);line-height:1.5}
.report-date{color:var(--blue);font-size:14px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.report-range{margin:-8px 3px 16px;color:var(--muted);font-size:14px;font-weight:700}
.report-images{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}
.report-images a{display:block;overflow:hidden;border:1px solid var(--line);border-radius:11px;background:var(--soft);aspect-ratio:1}
.report-images img{display:block;width:100%;height:100%;object-fit:cover}
.body-copy{color:#34446f;font-size:17px;line-height:1.6}
.login-page{display:grid;align-content:center;min-height:calc(100vh - 50px)}
.login-logo{display:block;width:min(430px,92%);height:230px;margin:0 auto 24px;object-fit:contain}
.login-card h1{font-size:40px}
.stack-form{display:grid;gap:10px;margin-top:25px}
.stack-form .primary-button{margin-top:6px}
.preview-banner{margin:0 0 16px;padding:12px 14px;border:1px solid #f0d58a;border-radius:11px;background:#fff9e8;color:#6b5312;font-weight:700;line-height:1.4}
.native-form{display:grid;gap:20px;margin-bottom:24px;padding:18px;border:1px solid var(--line);border-radius:15px;background:linear-gradient(135deg,#f8fbff,#fff);box-shadow:0 7px 20px rgba(26,54,125,.055)}
.native-form .form-field{width:100%;min-width:0;max-width:100%;overflow:hidden}.native-form input,.native-form select,.native-form textarea{display:block;width:100%;min-width:0;max-width:100%;inline-size:100%;min-inline-size:0;max-inline-size:100%}.native-form input[type="date"],.native-form input[type="month"]{width:100%;min-width:0;max-width:100%;min-height:48px;inline-size:100%;min-inline-size:0;max-inline-size:100%;padding-block:0;-webkit-appearance:none;appearance:none;text-align:left;line-height:45px}.native-form input[type="date"]::-webkit-date-and-time-value,.native-form input[type="month"]::-webkit-date-and-time-value{display:block;min-width:0;height:45px;margin:0;padding:0;text-align:left;line-height:45px}.native-form input[type="date"]::-webkit-datetime-edit,.native-form input[type="month"]::-webkit-datetime-edit{padding:0;line-height:45px}.native-form input[type="date"]::-webkit-calendar-picker-indicator,.native-form input[type="month"]::-webkit-calendar-picker-indicator{margin:0;padding:0}
.european-date-control{position:relative;width:100%;min-width:0}.native-form .european-date-control>input[data-european-date]{padding-right:58px}.date-picker-icon{position:absolute;top:0;right:0;z-index:1;display:grid;width:52px;height:48px;place-items:center;border-left:1px solid var(--line);color:var(--navy);pointer-events:none}.date-picker-icon svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.native-form .european-date-control>input.european-date-picker[type="date"]{position:absolute;top:0;right:0;z-index:2;width:52px;min-width:52px;max-width:52px;height:48px;min-height:48px;inline-size:52px;min-inline-size:52px;max-inline-size:52px;margin:0;padding:0;border:0;opacity:0;cursor:pointer;-webkit-appearance:auto;appearance:auto}
.form-field label{margin-bottom:8px}.required-mark{color:var(--danger)}
.time-fields{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:end;gap:12px;min-width:0}.time-separator{padding-bottom:14px;color:var(--muted);font-weight:750}
.scroll-time-control{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;min-width:0;height:48px;border:1.5px solid #a9c1f0;border-radius:9px;background:#fff;overflow:hidden}.native-form .scroll-time-control .time-wheel-select{width:100%;height:45px;min-width:0;max-width:100%;padding:0 2px;border:0;border-radius:0;background:#fff;color:var(--navy);font-size:17px;font-weight:650;text-align:center;text-align-last:center;-webkit-appearance:none;appearance:none}.time-wheel-separator{font-size:20px;font-weight:850}.time-wheel-select:focus{outline:2px solid #7da3f1;outline-offset:-2px}
.hours-total{display:flex;align-items:center;justify-content:space-between;padding:13px 14px;border-radius:10px;background:var(--soft);color:var(--muted);font-weight:700}.hours-total output{color:var(--navy);font-size:20px;font-weight:850}
.cost-preview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.cost-preview .hours-total{display:grid;gap:4px}.cost-preview .hours-total output{font-size:18px}.calculation-note{margin:-10px 0 0;color:var(--muted);font-size:13px;line-height:1.45}
.form-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.form-actions .primary-button,.form-actions .secondary-button{width:100%}.form-link-button{display:flex;align-items:center;justify-content:center;text-decoration:none}
.preview-status{display:none;margin:0;padding:14px;border:1px solid #b9ddca;border-radius:11px;background:#f2fbf6;color:#17613a;font-weight:700;line-height:1.45}.preview-status.visible{display:block}.preview-status.preview-error{border-color:#f0c6ca;background:#fff5f6;color:var(--danger)}
.success-message{margin:15px 0;padding:15px;border:1px solid #b9ddca;border-radius:12px;background:#f2fbf6;color:#17613a;font-weight:700}
.manager-login-card{margin-top:20px}.manager-login-card input{letter-spacing:.18em;text-align:center;font-size:22px;font-weight:800}
.report-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;overflow:hidden}.report-filters .form-field{width:100%;min-width:0;max-width:100%;overflow:hidden}.report-filters input,.report-filters select{display:block;width:100%;min-width:0;max-width:100%}.report-filters input[type="month"]{inline-size:100%;min-inline-size:0;max-inline-size:100%}.report-filters .primary-button{grid-column:1 / -1;width:100%}
.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.summary-card{padding:14px 10px;border:1px solid var(--line);border-radius:13px;background:linear-gradient(135deg,#f3f8ff,#fff);text-align:center}.summary-card strong{display:block;font-size:25px}.summary-card span{display:block;margin-top:4px;color:var(--muted);font-size:13px;line-height:1.25}
.hours-table-wrap{overflow-x:auto;margin-top:12px;border:1px solid var(--line);border-radius:14px;background:#fff}.hours-table{width:100%;border-collapse:collapse;white-space:nowrap}.hours-table th,.hours-table td{padding:13px 12px;border-bottom:1px solid #e5edfc;text-align:left}.hours-table th{color:var(--muted);font-size:13px}.hours-table td:last-child{font-weight:800}.hours-table tr:last-child td{border-bottom:0}.disabled-action{width:100%;margin-top:12px;opacity:.55;cursor:not-allowed}
.report-actions{display:flex;justify-content:flex-end;margin:0 0 12px}.download-button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.table-edit-link{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:0 13px;border:1px solid var(--line);border-radius:8px;background:var(--soft);color:var(--navy);font-size:14px;font-weight:800;text-decoration:none}
.manager-logout-form{margin-top:18px}.manager-logout-form .secondary-button{width:100%}
.page-action-button{display:flex;align-items:center;justify-content:center;width:100%;margin:0 0 16px;text-decoration:none}.ticket-list{display:grid;gap:12px}.ticket-card{padding:15px;border:1px solid var(--line);border-radius:15px;background:linear-gradient(135deg,#f8fbff,#fff);box-shadow:0 7px 20px rgba(26,54,125,.055)}.ticket-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.ticket-card-heading>a:first-child{color:var(--navy);font-size:21px;font-weight:850}.ticket-card-heading .ticket-edit-link{flex:0 0 auto;font-size:14px}.priority-badge{display:inline-block;padding:5px 9px;border-radius:999px;background:#eef3fb;color:var(--muted);font-size:11px;font-weight:850;white-space:nowrap}.priority-badge.high{background:#fff0f1;color:#9f2430}.priority-badge.normal{background:#fff5dc;color:#785814}.priority-badge.low{background:#e9f8ef;color:#17613a}.ticket-summary{margin-top:10px}.ticket-summary div{grid-template-columns:105px minmax(0,1fr)}.ticket-summary dd{font-weight:600}.ticket-summary dd a{font-weight:800}.ticket-priority{margin-top:3px}.ticket-detail-card dl{margin-top:0}.multiline-value{white-space:pre-line}.field-help{display:block;margin-top:7px;color:var(--muted);font-size:13px;line-height:1.4}.fixed-form-value{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;border-radius:10px;background:var(--soft);color:var(--muted);font-weight:700}.fixed-form-value strong{color:var(--navy)}
.status-fieldset{min-width:0;margin:0;padding:0;border:0}.status-fieldset legend{margin-bottom:9px;font-weight:750}.status-options{display:grid;gap:9px}.status-option{display:flex;align-items:center;gap:11px;margin:0;padding:13px 14px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--navy);font-weight:700;cursor:pointer}.status-option:has(input:checked){border-color:#7da3f1;background:#edf4ff}.status-option input{width:21px;height:21px;margin:0;accent-color:var(--navy)}
.cleaning-report-filters{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.cleaning-report-filters .form-field{min-width:0}.cleaning-report-filters .primary-button{grid-column:1 / -1}.cleaning-summary-grid{grid-template-columns:repeat(2,1fr)}.report-status{display:inline-block;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:800}.report-status.completed{background:#e9f8ef;color:#17613a}.report-status.canceled_tenant{background:#fff5dc;color:#785814}.report-status.canceled_rbt{background:#fff0f1;color:#9f2430}
.final-cleaning-apartment-filter{grid-column:1 / -1}.final-cleaning-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.final-cleaning-summary .summary-card:first-child{grid-column:auto}
.remarks-step{display:grid;gap:20px}.remarks-step[hidden]{display:none}.remarks-step-heading{display:flex;align-items:center;gap:12px}.remarks-step-number{padding:5px 9px;border-radius:999px;background:#eaf2ff;color:var(--blue);font-size:12px;font-weight:850;white-space:nowrap}.room-selection .status-options,.compact-options{grid-template-columns:repeat(2,minmax(0,1fr))}.inline-form-error{margin:0;color:var(--danger);font-weight:700}.inline-form-error:empty{display:none}.remarks-pdf-button{display:flex;align-items:center;justify-content:center;width:100%;margin-top:15px;text-decoration:none}
.report-list-heading{margin:28px 0 13px}.report-list-heading h2{margin:0;color:var(--navy);font-size:22px}.report-list-heading p{margin:4px 0 0;color:var(--blue)}
.employee-list{display:grid;gap:10px}.employee-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;border:1px solid var(--line);border-radius:13px;background:#fff}.employee-row strong{display:block}.employee-status{display:inline-block;margin-top:5px;padding:3px 8px;border-radius:999px;font-size:12px;font-weight:800}.employee-status.active{background:#e9f8ef;color:#17613a}.employee-status.inactive{background:#f1f3f7;color:#667085}.small-button{min-height:40px;padding:0 13px;font-size:13px;white-space:nowrap}
.public-form-shell{max-width:760px}.public-form-header{display:flex;justify-content:flex-end;min-height:112px}.public-form-header img{width:150px;height:110px;object-fit:contain}.personal-information-form{gap:28px;padding:22px}.personal-step{display:grid;gap:16px;padding-bottom:26px;border-bottom:1px solid #dbe7fa}.personal-step:last-child{padding-bottom:0;border-bottom:0}.name-grid{display:grid;grid-template-columns:.65fr 1fr 1fr 1fr;gap:12px}.address-grid,.date-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.subtenant-card{display:grid;gap:14px;min-width:0;margin:0;padding:17px;border:1px solid var(--line);border-radius:13px;background:#fff}.subtenant-card legend{padding:0 8px;color:var(--navy);font-size:18px;font-weight:850}.privacy-box{padding:16px;border:1px solid var(--line);border-radius:13px;background:var(--soft);line-height:1.5}.privacy-box p{color:#34446f}.honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.public-success-shell{display:grid;align-content:center;min-height:100vh}.public-success-logo{display:block;width:min(360px,85%);height:220px;margin:0 auto;object-fit:contain}.public-thank-you{padding:30px;text-align:center}.public-thank-you p{font-size:19px}
.personal-step[hidden],.subtenant-card[hidden],.conditional[hidden]{display:none}.wizard-actions{margin-top:10px}.privacy-box .form-link-button{margin:12px 0 16px}
@media(max-width:480px){.app-shell{padding-left:17px;padding-right:17px}
.app-header{grid-template-columns:52px minmax(0,1fr) 114px;min-height:100px}
.header-logo-link{width:114px;height:90px}
.action-card{grid-template-columns:62px minmax(0,1fr) 20px;gap:12px;padding:11px;min-height:86px}
.action-icon{width:62px;height:62px}.action-icon svg,.action-icon img{width:37px;height:37px}
.action-card strong{font-size:18px}
.search-row{grid-template-columns:1fr}
.search-row .primary-button{width:100%}
dl div{grid-template-columns:120px minmax(0,1fr);gap:7px;font-size:14px}
.login-logo{height:180px}
.time-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.time-separator{display:none}.form-actions{grid-template-columns:1fr}
.cost-preview{grid-template-columns:1fr}
.report-filters{grid-template-columns:1fr}.report-filters .primary-button{grid-column:auto}.summary-grid{grid-template-columns:1fr 1fr}.summary-card:first-child{grid-column:1 / -1}
.report-actions .download-button{width:100%}
.cleaning-report-filters{grid-template-columns:1fr}
.cleaning-report-filters .primary-button{grid-column:auto}
.final-cleaning-apartment-filter{grid-column:auto}
.room-selection .status-options,.compact-options{grid-template-columns:1fr}
.cleaning-summary-grid .summary-card:first-child{grid-column:auto}
.personal-information-form{padding:16px}.name-grid,.address-grid,.date-grid{grid-template-columns:1fr}.public-form-header{min-height:95px}.public-form-header img{width:126px;height:92px}
}

.key-rows{display:grid;gap:14px}.key-row[hidden]{display:none}.signature-field{gap:10px}.signature-field canvas{display:block;width:100%;height:140px;border:1.5px solid #a9c1f0;border-radius:10px;background:#fff;touch-action:none}.signature-clear{width:auto;justify-self:start;padding:10px 16px}
.return-key-list{display:grid;gap:10px}.return-key-option{display:flex;align-items:center;gap:12px;padding:13px;border:1px solid var(--line);border-radius:10px;background:var(--soft);cursor:pointer}.return-key-option input{width:22px;height:22px;flex:0 0 auto}.return-key-option span{display:grid;gap:3px}.return-key-option small{color:var(--blue)}
