:root{--bg:#f6f7f5;--surface:#ffffff;--text:#17201b;--muted:#5d6b63;--border:#dfe4e0;--accent:#0f6b4f;--accent-text:#ffffff;--error-bg:#fdecec;--error-text:#a01d1d;--radius:12px;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--bg:#101512;--surface:#18201b;--text:#e6ece8;--muted:#9aa8a0;--border:#2a352f;--accent:#3fb68b;--accent-text:#0b1410;--error-bg:#3a1717;--error-text:#ffb3b3}}*{box-sizing:border-box}body,html{margin:0}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}a{color:var(--accent)}h1,h2{line-height:1.2;margin:0 0 .5rem}h1{font-size:2rem}h2{font-size:1.15rem}.muted{color:var(--muted);margin:0}.eyebrow{margin:0 0 .25rem;font-size:.8rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.button{display:inline-block;margin-top:1.5rem;padding:.7rem 1.4rem;border-radius:999px;background:var(--accent);color:var(--accent-text);font-weight:600;text-decoration:none}.error{margin:1rem 0 0;padding:.6rem .8rem;border-radius:8px;background:var(--error-bg);color:var(--error-text)}.login{min-height:100vh;display:grid;place-items:center;padding:1rem}.login-card{width:100%;max-width:380px;padding:2rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-align:center}.topbar{justify-content:space-between;gap:1rem;padding:.9rem 1rem;border-bottom:1px solid var(--border);background:var(--surface)}.nav,.topbar{display:flex;align-items:center}.nav{gap:1.25rem}.nav a{color:var(--text);text-decoration:none}.nav a[aria-current=page]{color:var(--accent);font-weight:600}.brand{font-weight:700}.account{display:flex;align-items:center;gap:1rem;font-size:.9rem;min-width:0}.account .muted{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page{max-width:960px;margin:0 auto;padding:2rem 1rem 3rem}.intro{margin-bottom:2rem}.areas{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:1rem;gap:1rem}.card{display:flex;flex-direction:column;gap:.25rem;padding:1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.tag{align-self:flex-start;margin-top:.75rem;padding:.15rem .6rem;border-radius:999px;border:1px solid var(--border);font-size:.75rem;color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.page.narrow{max-width:680px}.card h2 a{color:inherit;text-decoration:none}.stat{margin:.25rem 0;font-size:1.05rem}.stat strong{font-size:1.6rem}.card-link{margin-top:auto;padding-top:.75rem;font-weight:600;text-decoration:none}.overdue{color:var(--error-text);font-weight:600}button.button{border:0;font:inherit;cursor:pointer;margin-top:0}button.button:disabled{opacity:.6;cursor:default}.button.secondary{background:transparent;color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.button.danger{background:transparent;color:var(--error-text);box-shadow:inset 0 0 0 1px var(--error-text)}.task-form{display:flex;flex-direction:column;gap:1rem}.task-form.quick{flex-direction:row;flex-wrap:wrap;align-items:flex-end;gap:.6rem}.task-form.quick .error{flex-basis:100%;margin:0}.field{display:flex;flex-direction:column;gap:.3rem;font-size:.9rem;font-weight:600}.task-form.quick .field.grow{flex:1 1 220px}.field input,.field textarea{width:100%;padding:.6rem .7rem;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text);font:inherit;font-weight:400}.field textarea{resize:vertical}.button:focus-visible,.check:focus-visible,.field input:focus-visible,.field textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.form-actions{display:flex;gap:.6rem}.task-form.quick .button{padding:.62rem 1.2rem}.add-task{margin:1rem 0 1.5rem}.tabs{display:flex;gap:.25rem;margin-bottom:.75rem;border-bottom:1px solid var(--border)}.tabs a{padding:.5rem .8rem;color:var(--muted);text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-1px}.tabs a[aria-current=page]{color:var(--text);font-weight:600;border-bottom-color:var(--accent)}.tabs .count{color:var(--muted);font-weight:400;font-size:.85rem}.empty{padding:1.5rem 0}.task-list{list-style:none;margin:0;padding:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.task{display:flex;align-items:flex-start;gap:.8rem;padding:.8rem 1rem}.task+.task{border-top:1px solid var(--border)}.check{flex:none;width:1.5rem;height:1.5rem;margin-top:.05rem;border:2px solid var(--muted);border-radius:50%;background:transparent;color:var(--accent-text);font-size:.85rem;line-height:1;cursor:pointer}.check:hover,.task.done .check{border-color:var(--accent)}.task.done .check{background:var(--accent)}.task-body{min-width:0;flex:1 1}.task-title{color:var(--text);font-weight:600;text-decoration:none;overflow-wrap:anywhere}.task-title:hover{text-decoration:underline}.task.done .task-title{color:var(--muted);text-decoration:line-through}.task-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .8rem;margin:.2rem 0 0;font-size:.85rem;color:var(--muted)}.task-meta .tag{margin:0}.notes-preview{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-actions{display:flex;justify-content:space-between;gap:.75rem;margin-top:1rem}.page.narrow>.task-meta{margin-bottom:1rem}.topbar a{white-space:nowrap}@media (max-width:520px){.account .muted{display:none}}.button.small{padding:.4rem .9rem;font-size:.9rem}.link-button{padding:0;border:0;background:none;color:var(--accent);font:inherit;font-weight:600;cursor:pointer}.link-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tag.good{border-color:var(--accent)}.new,.tag.good{color:var(--accent)}.small{font-size:.85rem}.add-house{margin:1rem 0 1.5rem}.add-house summary{font-weight:600;cursor:pointer}.add-house[open] summary{margin-bottom:1rem}.field-row{display:flex;flex-wrap:wrap;gap:.75rem}.field-row .field{flex:1 1 120px}.field-row .field.grow{flex:3 1 240px}.house-list{display:grid;grid-gap:.75rem;gap:.75rem;margin:0;padding:0;list-style:none}.house-card{flex-direction:row;gap:1rem;padding:.9rem}.house-photo{flex:none;display:grid;place-items:center;width:120px;height:90px;overflow:hidden;border-radius:8px;background:var(--bg);color:var(--muted);font-size:.8rem;text-decoration:none}.house-photo img{width:100%;height:100%;object-fit:cover}.house-body{min-width:0;flex:1 1}.house-title{color:var(--text);font-weight:600;text-decoration:none;overflow-wrap:anywhere}.house-title:hover{text-decoration:underline}.house-facts{margin:.15rem 0 0}.decision{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin:1rem 0 1.5rem}.decision .tag{margin:0}.photos{display:flex;gap:.5rem;overflow-x:auto;margin-bottom:1.5rem;padding-bottom:.25rem}.photos img{display:block;width:160px;height:120px;object-fit:cover;border-radius:8px;background:var(--border)}.description{white-space:pre-line}.discussion{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--border)}.name-line{margin-bottom:1rem;font-size:.9rem}.name-form{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1rem}.name-form .error{flex-basis:100%;margin:0}.thread{list-style:none;margin:0;padding:0}.thread .thread{margin-left:.9rem;padding-left:.9rem;border-left:2px solid var(--border)}.comment{margin:.75rem 0}.comment-card{padding:.25rem 0 .25rem .6rem;border-left:3px solid transparent}.comment-card.new-comment{border-left-color:var(--accent)}.comment-head{display:flex;flex-wrap:wrap;align-items:center;gap:.2rem .6rem;margin:0;font-size:.9rem}.comment-head .tag{margin:0}.comment-body{margin:.2rem 0 .3rem;white-space:pre-line;overflow-wrap:anywhere}.comment-controls{display:flex;gap:1rem;font-size:.85rem}.comment-controls form{display:inline}.replies>summary{margin:.25rem 0 0 .6rem;font-size:.85rem;color:var(--muted);cursor:pointer}.comment-form{display:flex;flex-direction:column;gap:.5rem;margin:.5rem 0 0}.comment-form .error{margin:0}.discussion>.comment-form{margin-top:1.25rem}@media (max-width:520px){.house-photo{width:84px;height:64px}.thread .thread{margin-left:.4rem;padding-left:.6rem}.thread.deep,.thread.deep .thread{margin-left:0;padding-left:0;border-left:0}}.searches{margin:1rem 0}.searches-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.searches-head h2{margin:0}.searches-head .button{margin-top:0}.search-list{list-style:none;margin:.5rem 0 0;padding:0}.search{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 1rem;padding:.75rem 0}.search+.search{border-top:1px solid var(--border)}.search.paused .house-title{color:var(--muted)}.search .tag{margin:0 0 0 .5rem}.search-body{min-width:0;flex:1 1 320px}.search-body p{margin:.15rem 0 0}.house-title[aria-current=true]{color:var(--accent)}.search-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;font-size:.9rem}.search-actions form{display:inline}.search-now{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.search-now .error{flex-basis:100%;margin:0}.error.small{margin:.4rem 0 0;padding:.35rem .6rem;font-size:.85rem}.filter-line{margin:0 0 .75rem;font-size:.9rem}.search-form fieldset{margin:0;padding:0;border:0;min-width:0}.search-form legend{padding:0;margin-bottom:.4rem;font-weight:600}.search-form select{padding:.4rem .5rem;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text);font:inherit}.inline{display:block;margin:.25rem 0 .5rem;font-weight:400}.picked{display:flex;flex-wrap:wrap;gap:.35rem;margin:0 0 .5rem}.chip{padding:.15rem .6rem;border:1px solid var(--accent);border-radius:999px;background:transparent;color:var(--accent);font:inherit;font-size:.85rem;cursor:pointer}.district{border-top:1px solid var(--border);padding:.4rem 0}.district summary{cursor:pointer;font-weight:600}.district-actions{display:flex;gap:1rem;margin:.4rem 0;font-size:.85rem}.suburb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));grid-gap:.25rem .75rem;gap:.25rem .75rem}.check-label{display:flex;align-items:center;gap:.4rem;font-weight:400}.field .check-label input[type=checkbox]{width:auto;padding:0;margin:0;flex:none}.check-label{justify-content:flex-start;text-align:left}:root{--warn:#8a5a00;--bad:#a01d1d}@media (prefers-color-scheme:dark){:root{--warn:#e0b45c;--bad:#ff9a9a}}.tag.warn{border-color:var(--warn);color:var(--warn)}.tag.bad{border-color:var(--bad);color:var(--bad)}.places-line{margin:-.25rem 0 1rem}.place-list{list-style:none;margin:1rem 0;padding:0;display:grid;grid-gap:.75rem;gap:.75rem}.place-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem .75rem}.place p{margin:.15rem 0 0}.place-edit summary{margin-top:.5rem;color:var(--accent);font-weight:600;cursor:pointer;font-size:.9rem}.place-edit[open] summary{margin-bottom:.75rem}.field select,.place-form select{width:100%;padding:.6rem .7rem;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text);font:inherit;font-weight:400}.danger-link{color:var(--error-text);margin-top:.75rem}.trips{margin:0 0 1.5rem}.trips h2{margin-bottom:.5rem}.trips p{margin:.4rem 0 0}.trips-table{width:100%;border-collapse:collapse}.trips-table td,.trips-table th{padding:.4rem .6rem .4rem 0;text-align:left;border-bottom:1px solid var(--border);vertical-align:middle}.trips-table th{font-weight:600;white-space:nowrap}.trips-table .tag{margin:0;white-space:nowrap}.trip-line{display:flex;flex-wrap:wrap;gap:.25rem .9rem;margin:.2rem 0 0;font-size:.9rem}.trip.pass{color:var(--accent)}.trip.near{color:var(--warn)}.trip.fail{color:var(--bad)}