:root{--color-bg:#f6f3ee;--color-surface:#fff;--color-ink:#1c2a22;--color-muted:#5a6b60;--color-accent:#2f5d4a;--color-accent-soft:#dce8e1;--color-border:#d9d2c7;--color-danger:#8b3a3a;--color-warn:#8a6a2a;--font-sans:"Segoe UI", system-ui, -apple-system, sans-serif;--radius:12px;--shadow:0 8px 24px #1c2a2214;--max:72rem}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{min-height:100vh;font-family:var(--font-sans);color:var(--color-ink);background:radial-gradient(circle at top left, #e8efe9 0%, transparent 40%), radial-gradient(circle at bottom right, #efe6d8 0%, transparent 35%), var(--color-bg);margin:0;line-height:1.6}a{color:var(--color-accent);text-underline-offset:.15em;text-decoration-thickness:1px}a:hover{color:var(--color-ink)}img{max-width:100%;height:auto}.site-header{border-bottom:1px solid var(--color-border);backdrop-filter:blur(8px);z-index:10;background:#f6f3eed9;position:sticky;top:0}.site-header__inner,.site-footer__inner,.container{width:min(100% - 2rem, var(--max));margin-inline:auto}.site-header__inner{justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 0;display:flex}.logo{letter-spacing:.02em;color:var(--color-ink);font-weight:700;text-decoration:none}.nav{flex-wrap:wrap;gap:1rem;display:flex}.nav a{color:var(--color-muted);font-weight:600;text-decoration:none}.nav a:hover,.nav a[aria-current=page]{color:var(--color-accent)}.site-main{padding:2.5rem 0 4rem}.site-footer{border-top:1px solid var(--color-border);color:var(--color-muted);padding:1.5rem 0 2rem;font-size:.95rem}.hero{background:var(--color-surface);border:1px solid var(--color-border);border-radius:calc(var(--radius) + 4px);box-shadow:var(--shadow);gap:1.25rem;padding:2rem;display:grid}.hero h1{margin:0;font-size:clamp(2rem,4vw,3rem);line-height:1.15}.hero p{max-width:40rem;color:var(--color-muted);margin:0;font-size:1.1rem}.actions{flex-wrap:wrap;gap:.75rem;margin-top:.5rem;display:flex}.btn{font:inherit;cursor:pointer;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:.4rem;padding:.65rem 1.2rem;font-weight:600;text-decoration:none;display:inline-flex}.btn--primary{background:var(--color-accent);color:#fff}.btn--primary:hover{color:#fff;background:#244a3b}.btn--ghost{border-color:var(--color-border);color:var(--color-ink);background:0 0}.btn--ghost:hover{background:var(--color-accent-soft)}.btn--danger{color:var(--color-danger);background:0 0;border-color:#e2c4c4}.grid-2{gap:1rem;margin-top:1.5rem;display:grid}@media (width>=720px){.grid-2{grid-template-columns:1fr 1fr}}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.25rem}.card h2,.card h3{margin-top:0}.muted{color:var(--color-muted)}.photo-placeholder{aspect-ratio:16/10;border-radius:var(--radius);border:1px dashed var(--color-border);background:linear-gradient(135deg, var(--color-accent-soft), #f0e8db);color:var(--color-muted);place-items:center;font-weight:600;display:grid}.house-photo{aspect-ratio:16/10;object-fit:cover;border-radius:var(--radius);width:100%;display:block}.app-shell{gap:1.25rem;display:grid}.app-shell[hidden],.card[hidden],#auth-panel[hidden],#app-panel[hidden]{display:none!important}.app-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.tabs{flex-wrap:wrap;gap:.5rem;display:flex}.tab{border:1px solid var(--color-border);background:var(--color-surface);font:inherit;cursor:pointer;color:var(--color-muted);border-radius:999px;padding:.45rem .9rem;font-weight:600}.tab[aria-selected=true]{background:var(--color-accent-soft);color:var(--color-accent);border-color:#b7cfc3}.panel[hidden]{display:none!important}.form-grid{gap:.75rem;display:grid}.form-grid label{gap:.3rem;font-size:.95rem;font-weight:600;display:grid}.form-grid input,.form-grid select,.form-grid textarea{font:inherit;border:1px solid var(--color-border);color:var(--color-ink);background:#fff;border-radius:8px;padding:.55rem .7rem}.form-row{gap:.75rem;display:grid}@media (width>=640px){.form-row{grid-template-columns:1fr 1fr}}.status{background:var(--color-accent-soft);color:var(--color-accent);border-radius:8px;padding:.75rem 1rem;font-weight:600}.status--error{color:var(--color-danger);background:#f6e4e4}.status--warn{color:var(--color-warn);background:#f7efd9}.calendar-nav{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:.35rem;display:grid}.calendar-grid__head{text-align:center;color:var(--color-muted);padding:.25rem;font-size:.8rem;font-weight:700}.day{border:1px solid var(--color-border);background:#fff;border-radius:8px;min-height:4.5rem;padding:.3rem;font-size:.8rem}.day--muted{opacity:.45}.day--today{border-color:var(--color-accent);background:var(--color-accent-soft)}.day--today .day__num{color:var(--color-accent)}.day__num{margin-bottom:.2rem;font-weight:700}.day__event{background:var(--color-accent-soft);color:var(--color-accent);white-space:nowrap;text-overflow:ellipsis;border-radius:4px;margin-top:.15rem;padding:.1rem .25rem;display:block;overflow:hidden}.day__event--blocked{color:var(--color-danger);background:#f0e0e0}.table{border-collapse:collapse;width:100%;font-size:.95rem}.table th,.table td{text-align:left;border-bottom:1px solid var(--color-border);vertical-align:top;padding:.55rem .4rem}.table th{color:var(--color-muted);font-size:.85rem}.settlement{border-radius:var(--radius);background:var(--color-accent-soft);gap:.5rem;margin-top:1rem;padding:1rem;display:grid}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.receipt-scan{border-top:1px solid var(--color-border);margin-top:1.25rem;padding-top:1.25rem}.receipt-preview{border-radius:var(--radius);border:1px solid var(--color-border);max-width:16rem;margin-top:.75rem;display:none}.receipt-preview[data-visible=true]{width:100%;height:auto;display:block}button.linkish{font:inherit;color:var(--color-accent);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}button.linkish:hover{color:var(--color-ink)}.modal-backdrop{z-index:40;background:#1c2a2273;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal-backdrop[hidden]{display:none!important}.modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:calc(var(--radius) + 4px);width:min(100%,28rem);max-height:min(90vh,40rem);box-shadow:var(--shadow);padding:1.25rem;overflow:auto}.modal h3{margin-top:0}.modal-actions{flex-wrap:wrap;gap:.75rem;margin-top:1rem;display:flex}
