/* LandlordLate: phone-first, system fonts, no web fonts or images to load. Contrast checked at WCAG AA. */
:root { --ink: #1b1f24; --muted: #57606a; --line: #d0d7de; --bg: #fff; --tint: #f6f8fa; --brand: #0b5cad; --bad: #a40e26; --bad-bg: #ffebe9; --warn: #7d4e00; --warn-bg: #fff8c5; --good: #116329; --good-bg: #dafbe1; }
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; font: 17px/1.55 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; color: var(--ink); background: var(--bg); }
main, header.site, footer.site, .notice { max-width: 42rem; margin: 0 auto; padding: 0 1rem; }
a { color: var(--brand); }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, summary:focus-visible { outline: 3px solid var(--brand); outline-offset: 2px; }
.skip { position: absolute; left: -9999px; } .skip:focus { left: 1rem; top: 1rem; background: #fff; padding: .5rem; z-index: 2; }
header.site { padding-top: 1rem; padding-bottom: .5rem; }
.brand { font-weight: 800; font-size: 1.25rem; text-decoration: none; color: var(--ink); } .brand span { color: var(--bad); }
.notice { margin: .25rem auto 1rem; padding: .75rem 1rem; background: var(--warn-bg); border: 2px solid #d4a72c; border-radius: 6px; font-size: .95rem; }
@media (min-width: 44rem) { .notice { padding: .75rem 1rem; } }
h1 { font-size: 1.6rem; line-height: 1.25; margin: .5rem 0 .75rem; }
h2 { font-size: 1.25rem; margin: 1.75rem 0 .5rem; }
h3 { font-size: 1.05rem; margin: 0 0 .25rem; }
.lead { font-size: 1.1rem; }
.small, .hint { font-size: .9rem; color: var(--muted); }
.cite { font-size: .85rem; color: var(--muted); white-space: nowrap; }
form.checker, form.waitlist { background: var(--tint); border: 1px solid var(--line); border-radius: 8px; padding: 1rem; margin: 1rem 0; }
.field { margin: 0 0 1rem; border: 0; padding: 0; }
label, legend { display: block; font-weight: 600; margin-bottom: .3rem; }
label.radio { font-weight: 400; display: flex; gap: .5rem; align-items: flex-start; padding: .35rem 0; }
label.radio input { margin-top: .3rem; width: 1.15rem; height: 1.15rem; flex: none; }
input[type=date], input[type=email], input[type=text], input[type=password], select { width: 100%; font: inherit; padding: .6rem .7rem; border: 1px solid #8c959f; border-radius: 6px; background: #fff; min-height: 2.75rem; }
button, .button { display: inline-block; font: inherit; font-weight: 700; background: var(--brand); color: #fff; border: 0; border-radius: 6px; padding: .75rem 1.25rem; min-height: 2.75rem; text-decoration: none; cursor: pointer; }
button:hover, .button:hover { background: #084a8c; }
.err { color: var(--bad); font-weight: 600; margin: .2rem 0; }
.err-box { background: var(--bad-bg); border: 1px solid var(--bad); border-radius: 6px; padding: .5rem .75rem; margin-bottom: 1rem; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.headline { border-radius: 8px; padding: .75rem 1rem; font-size: 1.1rem; font-weight: 700; border-left: 6px solid var(--line); background: var(--tint); }
.headline p { margin: 0; }
.headline.bad, .deadline.bad { border-left-color: var(--bad); background: var(--bad-bg); }
.headline.warn, .deadline.warn { border-left-color: #d4a72c; background: var(--warn-bg); }
.headline.good, .deadline.good { border-left-color: var(--good); background: var(--good-bg); }
ul.deadlines { list-style: none; padding: 0; margin: 0; }
.deadline { border: 1px solid var(--line); border-left: 6px solid var(--line); border-radius: 8px; padding: .75rem 1rem; margin: 0 0 .75rem; }
.deadline.muted { color: var(--muted); }
.deadline .date { font-size: 1.15rem; font-weight: 700; margin: .1rem 0 .3rem; }
.deadline p { margin: .3rem 0; }
.basis { font-size: .95rem; }
.general { border-top: 1px solid var(--line); padding-top: 1rem; color: var(--muted); }
.offer { border: 2px solid var(--brand); border-radius: 10px; padding: 1rem; margin: 1.5rem 0; }
.offer h2 { margin-top: 0; }
.offer ul { padding-left: 1.2rem; }
details.again { margin: 1.5rem 0; } details.again summary { cursor: pointer; font-weight: 600; color: var(--brand); }
table.facts { width: 100%; border-collapse: collapse; margin: 1rem 0; font-size: .97rem; }
table.facts th, table.facts td { text-align: left; vertical-align: top; padding: .5rem; border-bottom: 1px solid var(--line); }
table.facts tbody th { width: 32%; }
@media (max-width: 30rem) { table.facts tbody th, table.facts tbody td { display: block; width: 100%; } table.facts tbody th { border-bottom: 0; padding-bottom: 0; } }
ul.states { padding-left: 1.2rem; }
footer.site { margin-top: 2.5rem; padding-top: 1rem; padding-bottom: 2rem; border-top: 1px solid var(--line); font-size: .92rem; color: var(--muted); }
.js .is-hidden { display: none; }
