/* Alegreya Sans, served locally under SIL OFL 1.1; see assets/fonts/alegreya-sans/README.md. */
@font-face {
  font-family: "Alegreya Sans";
  src: url("assets/fonts/alegreya-sans/AlegreyaSans-400-normal-latin-ext.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Alegreya Sans";
  src: url("assets/fonts/alegreya-sans/AlegreyaSans-400-normal-latin.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Alegreya Sans";
  src: url("assets/fonts/alegreya-sans/AlegreyaSans-500-normal-latin-ext.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Alegreya Sans";
  src: url("assets/fonts/alegreya-sans/AlegreyaSans-500-normal-latin.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Alegreya Sans";
  src: url("assets/fonts/alegreya-sans/AlegreyaSans-700-normal-latin-ext.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Alegreya Sans";
  src: url("assets/fonts/alegreya-sans/AlegreyaSans-700-normal-latin.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Alegreya Sans";
  src: url("assets/fonts/alegreya-sans/AlegreyaSans-400-italic-latin-ext.woff2") format("woff2");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Alegreya Sans";
  src: url("assets/fonts/alegreya-sans/AlegreyaSans-400-italic-latin.woff2") format("woff2");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Alegreya Sans";
  src: url("assets/fonts/alegreya-sans/AlegreyaSans-700-italic-latin-ext.woff2") format("woff2");
  font-weight: 700;
  font-style: italic;
  font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Alegreya Sans";
  src: url("assets/fonts/alegreya-sans/AlegreyaSans-700-italic-latin.woff2") format("woff2");
  font-weight: 700;
  font-style: italic;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --font-ui: "Alegreya Sans", Arial, Helvetica, sans-serif;
  --font-account: var(--font-ui);
  --type-display: clamp(2.25rem, 4vw, 3.5rem);
  --type-title: clamp(1.75rem, 2.5vw, 2.25rem);
  --type-section: 1.5rem;
  --type-subtitle: 1.125rem;
  --type-body: 1rem;
  --type-meta: .875rem;
  --type-caption: .75rem;
  --type-symbol: 2.75rem;
  --weight-body: 400;
  --weight-label: 600;
  --weight-heading: 700;
}
/* Keep text sizing stable when rotating a phone; pinch zoom remains available. */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
@media (max-width: 700px) {
  /* Native date controls must be able to shrink inside a narrow form. */
  input, select, textarea { min-width: 0; max-width: 100%; }
  input[type="date"] { min-inline-size: 0; }
  input::-webkit-date-and-time-value { text-align: left; }
  .anetats-footer nav a, .anetats-footer-meta a { display: inline-flex; align-items: center; min-height: 44px; }
}
/* Pied commun : une ligne de liens, puis les petites mentions centrées. */
.anetats-footer { box-sizing: border-box; width: 100%; margin: 0; padding: 0 0 env(safe-area-inset-bottom, 0px); background: #e8e1db; color: #514940; font-family: var(--font-ui); font-weight: var(--weight-body); line-height: 1.5; text-align: center; letter-spacing: normal; }
.anetats-footer .anetats-footer-inner { box-sizing: border-box; width: min(880px, calc(100% - 32px)); margin: 0 auto; padding: 16px 0; display: grid; gap: 0; border-top: 1px solid #c5bab1; }
html body .anetats-footer .anetats-footer-inner p { max-width: none; margin: 0; color: inherit; font: 11px/1.5 var(--font-ui); }
.anetats-footer nav, .anetats-footer-meta { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 0 12px; margin: 0; padding: 0; }
.anetats-footer .anetats-footer-inner nav { flex-wrap: wrap; gap: 0 clamp(4px, 1.5vw, 12px); }
.anetats-footer .anetats-footer-meta { margin-top: 4px; }
.anetats-footer span { color: inherit; font: 11px/1.5 var(--font-ui); }
.anetats-footer a { color: inherit; padding: 0; border: 0; border-radius: 0; background: transparent; font-family: inherit; font-weight: var(--weight-body); letter-spacing: normal; text-transform: none; text-decoration: underline; text-decoration-color: currentColor; text-decoration-thickness: 1px; text-underline-offset: 4px; }
html body .anetats-footer .anetats-footer-inner a { min-height: 44px; display: inline-flex; align-items: center; font-size: 14px; line-height: 1.5; white-space: normal; }
.anetats-footer a:hover { color: #24211e; text-decoration-thickness: 2px; }
.anetats-footer a:focus-visible { outline: 3px solid #57534e; outline-offset: 4px; }
.anetats-footer ::selection { color: #24211e; background: #d2c9c2; }

/* Account and end screens follow the shared web family. */
.end-page { min-height: 100vh; margin: 0; display: flex; flex-direction: column; background: #f5f3e8; color: #24211e; font-family: var(--font-account); }
.end-header { box-sizing: border-box; height: 55px; display: flex; align-items: center; padding: 0 max(22px, calc((100vw - 1120px) / 2)); background: #fff; border-bottom: 1px solid #d9d3c0; }
.end-header a { font-family: var(--font-ui); font-size: 28px; font-weight: var(--weight-heading); color: #24211e; text-decoration: none; }
.journey-end { box-sizing: border-box; width: min(640px, calc(100% - 40px)); margin: clamp(48px, 10vh, 100px) auto; padding: 36px; border-radius: 16px; background: #fff; font-family: var(--font-account); color: #24211e; }
.end-page > .anetats-footer { margin-top: auto; }
.journey-end h1, .journey-end h2 { margin: 0 0 18px; font-family: inherit; font-size: var(--type-title); font-weight: var(--weight-heading); line-height: 1.2; letter-spacing: -.025em; }
.journey-end p { margin: 0 0 24px; color: #625e58; font-family: inherit; font-size: var(--type-meta); line-height: 1.7; }
.journey-end-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.journey-end .end-button { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; box-sizing: border-box; padding: 12px 18px; border: 1px solid #315f9e; border-radius: 10px; background: #315f9e; color: #fff; font-family: inherit; font-size: var(--type-meta); font-weight: var(--weight-heading); line-height: 1.5; text-decoration: none; cursor: pointer; }
.journey-end .end-button--secondary { color: #315f9e; background: #fff; }
.journey-end .end-button:hover { background: #244b82; color: #fff; }
.journey-end .journey-end-note { margin: 24px 0 0; font-size: var(--type-caption); }
.journey-end a:focus-visible, .journey-end button:focus-visible { outline: 3px solid #315f9e; outline-offset: 4px; }
.journey-end .journey-end-note a { color: #315f9e; text-underline-offset: 3px; }
.form-page--activation:has(.journey-end:not([hidden])) { display: block; padding-top: 1px; }
.form-page--activation .journey-end { width: min(640px, 100%); }

#users-dialog { border-radius: 6px; }
#users-dialog .dialog-heading { background: #fff; backdrop-filter: none; -webkit-backdrop-filter: none; }
#users-dialog .dialog-close { width: 44px; height: 44px; min-width: 44px; padding: 12px; border-radius: 6px; background: #f3f1eb; }
#users-dialog .dialog-close img { width: 20px; height: 20px; filter: none; }
#users-dialog .users-dialog-form, .admin-review-page .request-file { font-family: var(--font-account); }
#users-dialog .users-dialog-heading h2 { font-size: var(--type-title); font-family: var(--font-account); letter-spacing: -.025em; }
#users-dialog .users-section { padding-top: 24px; padding-bottom: 24px; }
#users-dialog .users-section h3 { font-family: var(--font-account); font-size: var(--type-subtitle); }
#users-dialog .users-section-heading p, #users-dialog .users-dialog-heading p { font-family: var(--font-account); font-size: var(--type-caption); line-height: 1.6; }
#users-dialog .user-identity strong, .admin-review-page #request-person-title { display: block; font-family: var(--font-account); text-transform: uppercase; font-size: var(--type-meta); font-weight: var(--weight-heading); line-height: 1.5; overflow-wrap: anywhere; }
#users-dialog .user-identity small { display: block; margin-top: 5px; font-family: var(--font-account); color: #625e58; font-size: var(--type-caption); line-height: 1.55; overflow-wrap: anywhere; }
#users-dialog .users-section--requests { background: #faf9f3; }
#users-dialog .account-group { border: 1px solid #d9d3c0; border-radius: 4px; overflow: hidden; background: #fff; }
#users-dialog .account-group + .account-group { margin-top: 12px; }
#users-dialog .account-group > summary { min-height: 52px; padding: 15px; display: flex; align-items: center; gap: 12px; color: #24211e; font-size: var(--type-meta); font-weight: var(--weight-heading); line-height: 1.5; cursor: pointer; list-style: none; }
#users-dialog .account-group > summary::-webkit-details-marker { display: none; }
#users-dialog .account-group > summary::marker { content: ''; }
#users-dialog .account-group > summary > span { flex: 1; }
#users-dialog .account-group > summary small { min-width: 24px; text-align: center; font-size: var(--type-caption); font-variant-numeric: tabular-nums; color: #625e58; }
#users-dialog .account-group > summary svg { width: 18px; height: 18px; flex: none; transition: transform .16s ease-out; }
#users-dialog .account-group[open] > summary svg { transform: rotate(180deg); }
#users-dialog .account-group[open] > summary { border-bottom: 1px solid #e5e1d7; }
#users-dialog .account-group-list { padding: 0 15px; }
#users-dialog .account-group-list .empty-user-list { padding: 12px 0; font-size: var(--type-caption); }
#users-dialog .account-request-entry, #users-dialog .account-group .user-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 16px 0; border: 0; border-bottom: 1px solid #e5e1d7; border-radius: 0; background: transparent; }
#users-dialog .account-request-entry:last-child, #users-dialog .account-group .user-row:last-child { border-bottom: 0; }
#users-dialog .account-request-row { min-height: 0; display: block; padding: 0; border: 0; border-radius: 0; background: transparent; color: #24211e; }
#users-dialog .account-request-row:hover strong { color: #315f9e; text-decoration: underline; text-underline-offset: 3px; }
#users-dialog .request-badges { margin-top: 9px; display: flex; flex-wrap: wrap; gap: 6px; }
.process-badge, #users-dialog .user-status { display: inline-block; max-width: 100%; box-sizing: border-box; padding: 5px 8px; border-radius: 7px; font-family: var(--font-account); font-size: var(--type-caption); font-weight: var(--weight-heading); line-height: 1.45; letter-spacing: normal; white-space: normal; text-transform: none; }
.process-badge--green, #users-dialog .user-status--active, #users-dialog .user-status--admin { color: #286343; background: #e9f3ec; }
.process-badge--blue { color: #315f9e; background: #eaf1fb; }
.process-badge--ochre, #users-dialog .user-status--disabled { color: #80601d; background: #f7f0dc; }
#users-dialog .account-request-actions { display: flex; align-items: center; gap: 8px; }
#users-dialog .delete-archived-request { display: inline-flex; align-items: center; justify-content: center; width: 44px; min-height: 44px; flex: none; padding: 10px; }
#users-dialog .delete-archived-request svg { width: 20px; height: 20px; }
#users-dialog .delete-archived-request:hover { background: #fff5f3; border-color: var(--danger); }
#users-dialog .delete-archived-request:disabled { opacity: .6; cursor: wait; }
#users-dialog .archive-request { min-height: 40px; padding: 8px 10px; border: 1px solid #d9d3c0; border-radius: 8px; background: #fff; color: #625e58; font-size: var(--type-caption); cursor: pointer; }
#users-dialog .archive-request:hover { background: #f5f3e8; color: #24211e; }
#users-dialog .archive-request:disabled { opacity: .6; cursor: wait; }
#users-dialog :is(.users-count, .user-status, .process-badge) { border-radius: 4px; }
#users-dialog :is(.secondary-button, .danger-button, .archive-request) { border-radius: 5px; }
#users-dialog summary:focus-visible, #users-dialog a:focus-visible, #users-dialog button:focus-visible { outline: 3px solid #315f9e; outline-offset: 3px; }
#users-dialog .user-row-side { flex-wrap: wrap; }
#users-dialog .account-directory-note { margin: 0; color: #625e58; font-size: var(--type-caption); line-height: 1.6; }
#users-dialog .account-directory-note, #users-dialog .users-count, #users-dialog #users-message { font-family: var(--font-account); }
#activation-end:focus { outline: none; }
.admin-review-page .request-file .fact-list { font-family: var(--font-account); }
.admin-review-page .archive-request-panel { padding-top: 20px; border-top: 1px solid #d9d3c0; }
.admin-review-page .archive-request-panel p { font-size: var(--type-caption); line-height: 1.6; }
.admin-review-page .request-state[data-status="pending"], .admin-review-page .request-state[data-status="awaiting_payment"], .admin-review-page .request-state[data-status="approved_free"], .admin-review-page .request-state[data-status="payment_received"] { color: #315f9e; background: #eaf1fb; }
.admin-review-page .request-state[data-status="completed"] { color: #286343; background: #e9f3ec; }
.admin-review-page .request-state[data-status="rejected"], .admin-review-page .request-state[data-status="expired"] { color: #80601d; background: #f7f0dc; }
@media (max-width: 760px) {
  .journey-end { padding: 26px 22px; }
  #users-dialog .account-request-entry, #users-dialog .account-group .user-row { grid-template-columns: minmax(0, 1fr); }
  #users-dialog .account-request-entry > .account-request-actions { justify-self: start; }
  #users-dialog .user-row-side { justify-content: flex-start; }
}
@media (prefers-reduced-motion: reduce) { #users-dialog summary svg { transition: none; } }
/* Preserve the 55px header without letting off-screen account actions pan the page. */
@media (max-width: 700px) {
  .dashboard-header { display: flex; flex-direction: row; align-items: center; gap: 12px; }
  .dashboard-brand { width: auto; flex: none; }
  .dashboard-brand > span { display: none; }
  .dashboard-header-actions { width: auto; min-width: 0; flex: 1; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: thin; justify-content: flex-start; }
  .dashboard-header-actions > * { flex: 0 0 auto; }
}
@media (max-width: 650px) { .access-header { grid-template-columns: 1fr auto; } }
@media print { .anetats-footer { display: none !important; } }

/* Pied compact commun aux écrans locataire et ménage. */
.journey-page .anetats-footer { padding-bottom: 0; }
.journey-page .anetats-footer .anetats-footer-inner { padding: 16px 0 12px; gap: 14px; }
.journey-page .anetats-footer strong { margin-bottom: 4px; }
.journey-page .anetats-footer .anetats-footer-meta { margin-top: 8px; }

.journey-page .anetats-footer .anetats-journey-links { width: min(480px, calc(100% - 32px)); margin: 0 auto; padding: 0 0 12px; gap: 8px 20px; }

/* Role scale shared by public pages, QR journeys and owner tools.
   Scoped selectors retain the compact QR header and the document preview layout. */
html body { font-size: var(--type-body); line-height: 1.55; font-weight: var(--weight-body); }
html body :is(h1, h2, h3, h4, legend) {
  font-weight: var(--weight-heading);
  font-style: normal;
  line-height: 1.2;
  letter-spacing: -.02em;
  overflow-wrap: anywhere;
  text-wrap: balance;
}
html body h1 { font-size: var(--type-title); }
html body h2 { font-size: var(--type-section); }
html body :is(h3, h4, legend) { font-size: var(--type-subtitle); }
html body :is(.home-copy, .form-intro, .legal-hero, .admin-review-heading) h1 { font-size: var(--type-display); }
html body :is(.status-card, .journey-end, .dashboard-header, .editor-title-row, .brand-panel) :is(h1, h2),
html body.owner-login #login-form h1,
html body #users-dialog .users-dialog-heading h2 { font-size: var(--type-title); font-weight: var(--weight-heading); line-height: 1.2; }
html body .journey-page-title,
html body.journey-page .topbar h1 { font-size: var(--type-subtitle); line-height: 1.25; }
html body.journey-page #screen h2 { font-size: var(--type-title); }
html body #users-dialog .users-section h3 { font-size: var(--type-subtitle); font-weight: var(--weight-heading); }
html body :is(.tool-card, .unit-card, .management-heading, .section-heading, .decision-option) :is(h2, h3),
html body .choice strong { font-size: var(--type-section); font-weight: var(--weight-heading); line-height: 1.25; }
html body :is(.home-lead, .lead, .status-description, .form-intro > p:not(.eyebrow), .admin-review-heading > p) {
  font-size: var(--type-subtitle); font-weight: var(--weight-body); line-height: 1.55; max-width: 65ch;
}
html body :is(.screen-section, .legal-content, .journey-end, .decision-option, .status-card, .dashboard-intro) > p:not(.eyebrow, .overline, .status-kicker),
html body.owner-workspace .dashboard-intro p:not(.overline) {
  font-size: var(--type-body); font-weight: var(--weight-body); line-height: 1.55; max-width: 70ch;
}
html body :is(button, .button, .upload-button, .end-button) { font-weight: var(--weight-label); }
html body :is(.button, .end-button, .header-link, .header-action, .site-header-exit, .text-action, .upload-button) { font-size: var(--type-meta); }
html body :is(input, select, textarea) { font-family: var(--font-ui); font-size: var(--type-body); font-weight: var(--weight-body); }
html body :is(strong, b) { font-weight: var(--weight-heading); }
html body :is(em, i) { font-style: italic; }
html body :is(.form-footnote, .journey-end-note, .photo-tip) { font-size: var(--type-meta); font-style: italic; line-height: 1.5; }
html body :is(.stay-reference, .document-date, .issue-photo-count, .users-count, .stat, time, code, kbd, samp, input[type="number"], input[type="date"], input[type="datetime-local"], input[type="time"], input[type="tel"]) {
  font-family: var(--font-ui); font-variant-numeric: lining-nums tabular-nums; letter-spacing: normal;
}
html body .stay-reference { font-size: var(--type-meta); font-weight: var(--weight-body); }
html body #users-dialog .users-count { font-family: var(--font-ui); font-variant-numeric: lining-nums tabular-nums; }
html body :is(.document-date, .issue-photo-count) { font-size: var(--type-meta); }

/* Named titles that are buttons or strong elements retain the same role scale. */
html body.owner-workspace :is(.tool-card, .help-guide-banner) strong { font-size: var(--type-section); font-weight: var(--weight-heading); line-height: 1.25; }
html body.owner-workspace #project-title { font-size: var(--type-display); font-weight: var(--weight-heading); line-height: 1.2; }
html body.owner-workspace .dashboard-header h1 { font-size: var(--type-section); }
html body #users-dialog .account-group > summary small,
html body.admin-review-page .fact-list dd { font-family: var(--font-ui); font-variant-numeric: lining-nums tabular-nums; }
html body.owner-workspace .unit-card h3.unit-card-title { font-size: var(--type-section); font-weight: var(--weight-heading); line-height: 1.25; }
html body #users-dialog .user-identity small:last-of-type { font-family: var(--font-ui); font-variant-numeric: lining-nums tabular-nums; }
html body .owner-work-dialog :is(.dialog-heading, .stay-form-heading) h2 { font-size: var(--type-title); font-weight: var(--weight-heading); }

.mobile-next-step, .mobile-back-label { display: none; }
.owner-site-header .owner-brand-title { margin: 0; font-size: var(--type-section); font-weight: 700; line-height: 1.2; letter-spacing: .035em; }
.login-site-header { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 14px max(24px, calc((100vw - 1280px) / 2)); min-height: 76px; background: #fff; border-bottom: 1px solid #d8d2c4; }
.login-site-header a { color: #221f1c; text-decoration: none; }
.login-site-header .access-wordmark { font-size: var(--type-section); font-weight: 700; letter-spacing: .035em; }
.login-site-header .header-action { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 12px; border: 1px solid #d8d2c4; border-radius: 6px; }

/* One mobile reading scale, including touch tablets in landscape.
   PDF typography remains independent. */
@media screen and (max-width: 900px), screen and (hover: none) and (pointer: coarse) {
  :root {
    --type-body: 1rem;
    --type-meta: 1rem;
    --type-caption: .875rem;
    --type-display: clamp(1.875rem, 5vw, 2.5rem);
    --type-title: clamp(1.5rem, 4vw, 2rem);
    --type-section: 1.25rem;
    --type-subtitle: 1.125rem;
  }
  html body { font-family: var(--font-ui); font-size: 16px; line-height: 1.5; }
  html body :is(p, li, dd, label, input, select, textarea, button, .button, .choice small, .tool-card small, .unit-photo-empty) { line-height: 1.5; }
  html body :is(p, li, dd, label, .fine-print, .form-footnote, .access-form small, .decision-option small) { font-size: max(1rem, 16px); }
  html body :is(button, .button, .upload-button, .end-button, .header-action, .header-link, .site-header-exit, .text-action) { font-size: 1rem; }
  html body :is(input, select, textarea) { font-size: max(1rem, 16px); }
  html body .consent-line > span { font-size: 1rem !important; line-height: 1.5; }
  html body :is(.eyebrow, .overline, .status-kicker, .editor-context, .topbar .eyebrow) { font-size: .875rem; letter-spacing: .04em; }
  html body :is(h1, h2, h3) { letter-spacing: -.02em; }
  html body :is(.entry-choices, .access-form, .status-card, .request-file, .decision-panel, .card, .room-card, .unit-card, .tool-card) { border-radius: 8px; }
  .entry-choices { overflow: hidden; }
  html body :is(.access-header, .login-site-header, .end-header) { position: sticky; top: 0; z-index: 30; width: 100%; height: auto; min-height: 64px; flex-basis: auto; padding: 8px 16px; gap: 12px; background: #fff; border-bottom: 1px solid #d8d2c4; }
  html body .access-wordmark { font-size: 1.25rem; letter-spacing: .035em; }
  html body .access-context { display: none; }
  html body .access-header { display: flex; justify-content: space-between; flex-wrap: wrap; }
  html body .header-action { min-height: 44px; padding: 8px 10px; white-space: normal; text-align: center; border-radius: 6px; }
  html body .owner-site-header { gap: 8px 16px; }
  html body .owner-site-header .dashboard-header-actions { flex-wrap: wrap; min-width: 0; }
  html body .owner-site-header :is(.header-link, #logout-button) { font-size: .875rem; line-height: 1.5; }
  html body .anetats-footer :is(p, a) { font-size: 1rem; line-height: 1.5; }
  html body .anetats-footer a { display: inline-flex; align-items: center; min-height: 44px; }
  html body .home-hero { min-height: 0; padding-block: 36px; gap: 0; }
  html body .home-lead { margin-top: 20px; }
  html body .entry-choices { margin-top: 28px; }
  html body .choice { min-height: 0; padding: 16px; }
  html body .choice span { margin-bottom: 0; }
  html body .choice strong { margin-top: 8px; }
  html body .choice small { margin-top: 4px; }
  html body.owner-login .brand-panel { display: none; }
  html body.owner-login .login-layout { grid-template-columns: minmax(0, 1fr); max-width: 560px; margin-inline: auto; }
  html body.owner-login .form-panel { padding: 28px 20px; }
  html body.owner-workspace .help-guide-banner { width: 100%; padding: 16px; border: 1px solid #d8d2c4; border-radius: 8px; }
  html body.owner-workspace .mobile-next-step { display: grid; gap: 16px; margin: 0 0 28px; padding: 20px; border: 1px solid #d8d2c4; border-radius: 8px; background: #fff; }
  .mobile-next-step :is(h2, p) { margin: 0; }
  .mobile-next-step p { margin-top: 8px; color: #686258; }
  html body.owner-workspace .mobile-next-step button { width: 100%; min-height: 48px; line-height: 1.5; }
  html body.owner-workspace .back-button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; width: auto; min-width: 44px; min-height: 44px; padding: 8px 10px; border-radius: 6px; flex-shrink: 0; }
  .mobile-back-label { display: inline; font-size: .875rem; line-height: 1.5; }
  html body.owner-workspace .unit-card-band { border-radius: 0 0 8px 8px; }
  html body.journey-page .footer-actions .button { min-height: 48px; height: auto; line-height: 1.5; border-radius: 6px; white-space: normal; }
  html body.journey-page .room-photo-placeholder { padding: 6px; font-size: .875rem; line-height: 1.5; text-align: center; color: #686258; }
  html body.owner-workspace .editor-header { position: static; background: transparent; backdrop-filter: none; }
  html body.owner-login .login-layout { min-height: 0; border-radius: 8px; }
  html body.journey-page .room-open-button { min-height: 44px; }
  html body.owner-login #login-form .fine-print { font-size: 1rem; line-height: 1.5; }
}

/* The account header stays available when an owner opens an editor. */
.owner-workspace:has(#contract-view:not([hidden])) > .owner-site-header { display: none; }

/* An absent photo should not create a large empty illustration area. */
.owner-workspace .unit-card--without-photo { aspect-ratio: auto; min-height: 200px; }
.owner-workspace .unit-card--without-photo .unit-card-photo { min-height: 200px; }
.owner-workspace .unit-card--without-photo .unit-photo-empty { min-height: 200px; padding: 56px 48px 96px; }
.journey-page .room-card-photo--empty { display: none; }
