:root{--app-header-offset: 77px;--bg: #f7f7f7;--surface: #ffffff;--surface-2: #f0f0f0;--text: #111111;--text-muted: #444444;--border: #c8c8c8;--accent: #2f5fd6;--accent-soft: #e7eeff;--accent-contrast: #ffffff;--danger: #c0392b;--radius: 12px;--gap: 20px;--shadow: 0 1px 2px rgba(0, 0, 0, .05), 0 1px 3px rgba(0, 0, 0, .06);--trim-shadow: none;--gold: #a67c00;--font: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}:root[data-theme=dark]{--bg: #060504;--surface: rgba(14, 12, 9, .58);--surface-2: rgba(20, 17, 12, .68);--text: #e6e6e6;--text-muted: #c2c2c2;--border: rgba(175, 138, 68, .42);--accent: #6ea1ff;--accent-soft: rgba(110, 161, 255, .16);--accent-contrast: #000000;--danger: #ff6b5e;--shadow: none;--trim: rgba(155, 120, 55, .34);--trim-strong: rgba(205, 168, 82, .58);--gold: #be991e;--trim-shadow: 0 0 0 1px var(--trim), 0 0 16px rgba(160, 125, 55, .1), inset 0 1px 0 rgba(190, 150, 70, .12)}*{box-sizing:border-box}html{font-size:20px;line-height:1.5}h1{font-size:1.6rem;margin:0 0 16px}h2{font-size:1.35rem;margin:0 0 16px}h3{font-size:1.15rem;margin:20px 0 10px}html,body,#root{margin:0;padding:0;min-height:100%;background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased}html[data-theme=dark],:root[data-theme=dark]{min-height:100%;background:var(--bg)}html[data-theme=dark]:before,:root[data-theme=dark]:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none;background-color:var(--bg);background-image:radial-gradient(ellipse 140% 110% at 50% 42%,rgba(185,145,58,.34) 0%,transparent 72%),radial-gradient(ellipse 100% 90% at 14% 88%,rgba(145,110,48,.24) 0%,transparent 68%),radial-gradient(ellipse 100% 90% at 86% 14%,rgba(155,118,52,.22) 0%,transparent 68%),radial-gradient(ellipse 85% 75% at 50% 100%,rgba(120,92,40,.18) 0%,transparent 60%);background-repeat:no-repeat;background-size:cover;animation:ambient-breathe 7s ease-in-out infinite}html[data-theme=dark] body,html[data-theme=dark] #root,html[data-theme=dark] .app-shell,html[data-theme=dark] .app-main,:root[data-theme=dark] body,:root[data-theme=dark] #root,:root[data-theme=dark] .app-shell,:root[data-theme=dark] .app-main{background:transparent}html[data-theme=dark] body,html[data-theme=dark] #root,:root[data-theme=dark] body,:root[data-theme=dark] #root{position:relative;z-index:1}@keyframes ambient-breathe{0%,to{opacity:.72;filter:brightness(.9);transform:scale(1)}50%{opacity:1;filter:brightness(1.12);transform:scale(1.04)}}@media (prefers-reduced-motion: reduce){html[data-theme=dark]:before,:root[data-theme=dark]:before{animation:none;opacity:.82;filter:none}}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.app-shell{display:flex;flex-direction:column;min-height:100vh}:root[data-theme=dark] .card,:root[data-theme=dark] .app-header,:root[data-theme=dark] .cta,:root[data-theme=dark] .resident-row,:root[data-theme=dark] .admin-dock-bar,:root[data-theme=dark] .admin-dock-panel,:root[data-theme=dark] .photo-card,:root[data-theme=dark] .room-avail-card{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.app-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:12px 24px;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--trim-shadow)}.brand{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:1.2rem;color:var(--gold);text-decoration:none}.brand:hover{text-decoration:none}.brand-logo{width:44px;height:44px;object-fit:contain;flex-shrink:0}.app-header__actions{display:flex;align-items:center;gap:10px}.app-header__admin-link{padding:12px 18px;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);font-size:1rem;text-decoration:none;box-shadow:var(--trim-shadow)}.app-header__admin-link:hover{color:var(--gold);border-color:var(--gold);text-decoration:none}.app-main{position:relative;z-index:2;flex:1;padding:28px 24px 120px;max-width:1680px;width:100%;margin:0 auto;pointer-events:none}.app-main>*{pointer-events:auto}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px;margin-bottom:var(--gap);box-shadow:var(--shadow),var(--trim-shadow)}.page-stack{display:flex;flex-direction:column;gap:var(--gap)}.page-stack>*{margin:0}@media (max-width: 600px){.app-main{padding:16px 12px 110px}.card{padding:18px}}.muted{color:var(--text-muted)}.cta-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}.cta{display:block;padding:24px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);box-shadow:var(--trim-shadow);transition:border-color .2s ease,box-shadow .2s ease}.cta h2{margin:0 0 8px}.cta:hover{border-color:var(--accent);text-decoration:none}:root[data-theme=dark] .cta:hover{border-color:var(--trim-strong);box-shadow:var(--trim-shadow),0 0 22px #af8a3c24}button,.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--accent);color:var(--accent-contrast);border:2px solid var(--accent);padding:12px 24px;border-radius:var(--radius);font:inherit;font-weight:600;line-height:1.2;cursor:pointer;min-height:56px;display:inline-flex;align-items:center;justify-content:center;gap:10px;text-align:center}a.btn:hover{text-decoration:none;filter:brightness(1.08)}.btn--large{min-height:64px;padding:14px 36px;font-size:1.1rem}button:disabled{opacity:.6;cursor:not-allowed}button.secondary,.btn.secondary{background:transparent;color:var(--text);border-color:var(--border);box-shadow:var(--trim-shadow)}input,textarea,select{width:100%;font:inherit;font-weight:400;padding:12px 16px;margin-top:8px;border:2px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:var(--radius);min-height:56px;box-shadow:var(--trim-shadow)}input:focus,textarea:focus,select:focus{outline:3px solid var(--accent);outline-offset:1px}label{display:block;margin-bottom:20px;font-weight:600}label>span{display:block;color:var(--text)}.checkbox-row{display:flex;align-items:center;gap:14px;cursor:pointer}.checkbox-row input{width:28px;height:28px;min-height:0;margin:0;flex-shrink:0}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));column-gap:28px}.form-grid__wide{grid-column:1 / -1}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;min-height:0;padding:0;border:1px solid var(--border);border-radius:var(--radius);background:transparent;cursor:pointer;box-shadow:var(--trim-shadow)}.theme-toggle:hover{border-color:var(--gold)}.theme-toggle__icon{font-size:1.35rem;line-height:1;color:var(--gold);pointer-events:none}.resident-list{display:grid;gap:14px;list-style:none;padding:0;margin:0}.resident-row{display:grid;grid-template-columns:64px 1fr auto;gap:20px;align-items:center;padding:16px 20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--trim-shadow)}.resident-row--plain{grid-template-columns:1fr auto}.resident-row__name{font-weight:600;font-size:1.1rem}@media (max-width: 520px){.resident-row,.resident-row--plain{grid-template-columns:1fr}.resident-row .avatar{display:none}}.avatar{width:64px;height:64px;border-radius:50%;background:var(--surface-2);display:flex;align-items:center;justify-content:center;color:var(--text-muted);overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.resident-row__pay{white-space:nowrap}.resident-feedback{margin:8px 0 0;font-size:1rem;font-weight:600}.resident-feedback--ok{color:var(--accent)}.resident-feedback--err{color:var(--danger)}.payment-status-tabs{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:var(--gap)}.payment-status-tab{font:inherit;font-weight:600;min-height:56px;padding:12px 24px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer}.payment-status-tab--active{color:var(--text);border:2px solid var(--accent);background:var(--accent-soft);box-shadow:var(--trim-shadow)}.error-banner{color:var(--danger);font-weight:600;padding:14px 18px;border:2px solid var(--danger);border-radius:var(--radius);background:var(--surface);margin-bottom:var(--gap)}.admin-shell{display:flex;flex-direction:column;gap:var(--gap)}.admin-dock-bar{display:flex;align-items:center;gap:16px;padding:12px 18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--trim-shadow)}:root[data-theme=dark] .admin-dock-bar{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.admin-dock-bar__context{flex:1;min-width:0;line-height:1.4}.admin-dock-bar__tab{font-size:1.35rem;font-weight:700;color:var(--text)}.admin-dock-bar__sep{color:var(--text-muted)}.admin-dock-bar__subtitle{font-size:.85rem;font-style:italic;font-weight:400;color:var(--text-muted)}@media (max-width: 520px){.admin-dock-bar__subtitle{display:block;margin-top:2px}.admin-dock-bar__sep{display:none}}.admin-dock-toggle{display:flex;flex-direction:column;justify-content:center;gap:6px;width:56px;height:56px;min-height:0;padding:0;border:1px solid var(--border);border-radius:var(--radius);background:transparent;cursor:pointer;color:var(--text);box-shadow:var(--trim-shadow)}.admin-dock-toggle:hover{border-color:var(--accent)}:root[data-theme=dark] .admin-dock-toggle:hover{border-color:var(--trim-strong)}.admin-dock-toggle__bar{display:block;width:26px;height:3px;margin:0 auto;background:currentColor;border-radius:1px;transition:transform .2s ease,opacity .2s ease}.admin-dock-toggle--open .admin-dock-toggle__bar:nth-child(1){transform:translateY(9px) rotate(45deg)}.admin-dock-toggle--open .admin-dock-toggle__bar:nth-child(2){opacity:0}.admin-dock-toggle--open .admin-dock-toggle__bar:nth-child(3){transform:translateY(-9px) rotate(-45deg)}.admin-dock-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;border:none;padding:0;margin:0;background:#0000008c;cursor:pointer}.admin-dock-panel{position:fixed;top:0;left:0;bottom:0;z-index:100;width:min(360px,90vw);display:flex;flex-direction:column;background:var(--surface);border-right:1px solid var(--border);box-shadow:var(--trim-shadow),4px 0 24px #00000040;animation:admin-dock-slide-in .22s ease}:root[data-theme=dark] .admin-dock-panel{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}@keyframes admin-dock-slide-in{0%{transform:translate(-100%)}to{transform:translate(0)}}.admin-dock-panel__header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border)}.admin-dock-panel__title{font-weight:700;font-size:1.25rem;color:var(--text)}.admin-dock-close{width:52px;height:52px;min-height:0;padding:0;border:1px solid var(--border);border-radius:var(--radius);background:transparent;color:var(--text-muted);font-size:1.4rem;line-height:1;cursor:pointer}.admin-dock-close:hover{color:var(--text);border-color:var(--accent)}.admin-dock-links{flex:1;overflow-y:auto;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.admin-dock-link{display:flex;align-items:center;gap:16px;padding:16px 18px;border-radius:var(--radius);border:1px solid transparent;color:var(--text-muted);text-decoration:none;font-size:1.1rem;font-weight:600}.admin-dock-link__icon{flex-shrink:0;display:inline-flex;width:26px;height:26px;color:var(--gold);opacity:.88}.admin-dock-link__icon svg{width:100%;height:100%}.admin-dock-link__label{min-width:0}.admin-dock-link:hover{text-decoration:none;color:var(--text);border-color:var(--border);background:var(--surface-2)}.admin-dock-link:hover .admin-dock-link__icon{opacity:1}.admin-dock-link--active{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.admin-dock-link--active .admin-dock-link__icon{color:var(--accent-contrast);opacity:.92}.admin-dock-link--active:hover{color:var(--accent-contrast);background:var(--accent)}.admin-dock-link--soon{opacity:.45;cursor:default}.admin-dock-link--soon .admin-dock-link__icon{opacity:.65}.admin-dock-panel__footer{padding:14px 16px;border-top:1px solid var(--border)}.admin-dock-signout{display:flex;align-items:center;gap:16px;width:100%;padding:16px 18px;border:1px solid var(--border);border-radius:var(--radius);background:transparent;color:var(--text);font-size:1.1rem;cursor:pointer;box-shadow:var(--trim-shadow)}.admin-dock-signout:hover{border-color:var(--danger);color:var(--danger)}.admin-dock-signout:hover .admin-dock-link__icon{color:var(--danger);opacity:1}.admin-page-content{position:relative}.admin-page-veil{pointer-events:none;position:fixed;top:var(--app-header-offset);left:0;right:0;bottom:0;z-index:50;background:#000;opacity:0}.admin-page-veil--active{animation:admin-page-veil 1s ease-in-out forwards}.admin-page-veil--cat{top:0}.admin-page-veil__cat{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;opacity:.22;filter:brightness(.45) saturate(.7)}@keyframes admin-page-veil{0%{opacity:0}50%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion: reduce){.admin-page-veil--active{animation:none;opacity:0}}.overview-counts{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:var(--gap)}.overview-count-pill{padding:16px 24px;border:2px solid var(--border);border-radius:var(--radius);background:var(--surface);font-size:1.1rem;box-shadow:var(--trim-shadow)}.overview-count-pill--link{color:inherit;text-decoration:none}.overview-count-pill--link:hover{border-color:var(--gold);text-decoration:none}.overview-count-pill--alert,:root[data-theme=dark] .overview-count-pill--alert{border-color:var(--danger);color:var(--danger);font-weight:600}.admin-list-toolbar{display:flex;flex-wrap:wrap;gap:16px 20px;align-items:flex-end;margin-bottom:var(--gap)}.admin-list-toolbar__search,.admin-list-toolbar__sort{display:flex;flex-direction:column;flex:1;margin-bottom:0;min-width:min(100%,260px)}.admin-list-toolbar__order{flex-shrink:0}.data-table--compact th,.data-table--compact td{padding:10px 12px}.ledger-subheading{margin:24px 0 10px;font-size:1.15rem;font-weight:700}.overview-search{display:block;margin-bottom:12px}.overview-search input{width:100%;margin-top:6px}.overview-tenant-link{display:inline-flex;align-items:center;gap:12px;font-weight:600;text-decoration:none}.overview-tenant-link:hover{text-decoration:none}.overview-avatar{width:44px;height:44px}.status-pill{display:inline-block;padding:4px 14px;border-radius:999px;font-size:.9rem;font-weight:600;border:2px solid var(--border);white-space:nowrap}.status-pill--ok{color:#1a7f37;border-color:#1a7f37}:root[data-theme=dark] .status-pill--ok{color:#4ade80;border-color:#4ade80}.status-pill--error{color:var(--danger);border-color:var(--danger)}.admin-page-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:14px;margin-bottom:var(--gap)}.admin-page-actions--start{justify-content:flex-start}.admin-page-note{margin:0 0 var(--gap)}.table-wrap{overflow-x:auto}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{text-align:left;padding:16px 14px;border-bottom:1px solid var(--border);vertical-align:middle}.data-table th{color:var(--text-muted);font-weight:700;font-size:.9rem;white-space:nowrap}.data-table tbody tr:hover{background:var(--surface-2)}.table-actions{text-align:right;white-space:nowrap}.table-actions>*+*{margin-left:12px}.room-cell{font-size:1.2rem;font-weight:700}.expand-btn{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.expand-btn__chevron{width:12px;height:12px;border-right:3px solid currentColor;border-bottom:3px solid currentColor;transform:translateY(-3px) rotate(45deg);transition:transform .2s ease}.expand-btn--open .expand-btn__chevron{transform:translateY(3px) rotate(-135deg)}.row-expanded>td{border-bottom:none}.row-detail>td{background:var(--surface-2, var(--bg));padding:8px 20px 20px}.nested-table{margin:0}.form-inline{display:flex;flex-wrap:wrap;gap:16px 20px;align-items:flex-end;margin-top:var(--gap)}.form-inline>label{margin-bottom:0;flex:1 1 220px}.form-inline>.form-inline__grow{flex:3 1 300px}.deposit-ledger{margin:16px 0;padding-left:1.4rem}.deposit-ledger li+li{margin-top:8px}.collapsible{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow),var(--trim-shadow)}.collapsible__header{display:flex;align-items:center;flex-wrap:wrap;gap:8px 20px;padding:20px 24px;min-height:76px;cursor:pointer;list-style:none;border-radius:var(--radius)}.collapsible__header::-webkit-details-marker{display:none}.collapsible__header:hover{background:var(--surface-2)}.collapsible__header:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}.collapsible__title{font-size:1.3rem;font-weight:700}.collapsible__summary{flex:1;color:var(--text-muted);font-size:1.05rem;font-weight:600}.collapsible__chevron{margin-left:auto;flex-shrink:0;width:44px;height:44px;border-radius:50%;border:2px solid var(--accent);color:var(--accent);background:var(--accent-soft);position:relative}.collapsible__chevron:after{content:"";position:absolute;left:50%;top:50%;width:11px;height:11px;border-right:3px solid currentColor;border-bottom:3px solid currentColor;transform:translate(-50%,-70%) rotate(45deg);transition:transform .2s ease}.collapsible[open]>.collapsible__header .collapsible__chevron:after{transform:translate(-50%,-30%) rotate(-135deg)}.collapsible[open]>.collapsible__header{border-bottom:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0}.collapsible__body{padding:24px}@media (max-width: 600px){.collapsible__header{padding:16px 18px}.collapsible__summary{order:3;flex-basis:100%}.collapsible__body{padding:18px}}.tenant-hero{display:flex;flex-direction:column;gap:24px}.tenant-hero__who{display:flex;align-items:center;gap:20px}.tenant-hero__photo{width:88px;height:88px;border:2px solid var(--border)}.tenant-hero__name{margin:0 0 8px;font-size:1.8rem}.tenant-hero__meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;margin:0;font-size:1.05rem}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,140px),1fr));gap:14px}.stat{display:flex;flex-direction:column;gap:4px;padding:16px 20px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2)}.stat__label{color:var(--text-muted);font-weight:600;font-size:.9rem}.stat__value{font-size:1.5rem}.stat__value small{font-size:.6em;color:var(--text-muted)}.stat__value--alert{color:var(--danger)}.stat__note{color:var(--text-muted);font-size:.85rem;font-weight:600}button.danger{background:#c0392b;color:#fff;border-color:#c0392b}button.danger:hover:not(:disabled){background:#a93226}.form-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;list-style:none;padding:0;margin:0 0 16px}.photo-card{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--surface-2);box-shadow:var(--trim-shadow)}.photo-card img{display:block;width:100%;aspect-ratio:4 / 3;object-fit:cover}.photo-card-actions{display:flex;gap:10px;padding:10px}.photo-card-actions button{flex:1;padding:8px}.upload-label input[type=file]{margin-top:4px}.success-banner{color:var(--accent);font-weight:600;margin-bottom:var(--gap)}.hero-preview,.register-hero{display:block;width:100%;max-height:280px;object-fit:cover;border-radius:var(--radius);margin:12px 0;border:1px solid var(--border)}.register-page h2{margin:24px 0 10px}.services-list{margin:0;padding-left:1.25rem}.room-avail-list{list-style:none;padding:0;margin:0;display:grid;gap:12px}.room-avail-card{border:1px solid var(--border);border-radius:var(--radius);padding:20px;background:var(--surface-2);box-shadow:var(--trim-shadow)}.room-avail-header{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;margin-bottom:8px}.room-avail-photos{display:flex;flex-wrap:wrap;gap:8px}.room-avail-photos img{width:144px;height:108px;object-fit:cover;border-radius:6px;border:1px solid var(--border)}.cat{position:fixed;right:10px;bottom:6px;z-index:1;pointer-events:auto;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;width:80px;filter:drop-shadow(0 3px 10px rgba(0,0,0,.2));transition:transform .15s ease}.cat:hover{transform:scale(1.04)}.cat:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:12px}.cat--petting{animation:cat-purr-bob .22s ease-in-out infinite}.cat--petting:hover{transform:none}.cat__svg{display:block;width:100%;height:auto;overflow:visible}.cat__fur{fill:#f4c542}.cat__belly{fill:#ffe9a8}.cat__hook-cuff{fill:#6b4423}.cat__hook-cuff-inner{fill:#8b6914}.cat__hook{fill:#b0b8c0;stroke:#7a8490;stroke-width:.6}.cat__hook-tip{stroke:#b0b8c0}.cat__patch{fill:#1a1410}.cat__patch-strap{stroke:#1a1410}.cat__ear{fill:#f4c542}.cat__ear-in{fill:#f5a8b0}.cat__whiskers{fill:none;stroke:#fffcf580;stroke-width:.75;stroke-linecap:round}.cat__hat-crown{fill:#c62828}.cat__hat-brim{fill:#9e1b1b}.cat__hat-band{stroke:#ffd54f}.cat__toe{fill:#f5a8b0}.cat__blush{fill:#f4a0a8;opacity:0}.cat__tongue{fill:#f0a0ad;opacity:0}.cat__mouth-open{fill:#5c3d1e;opacity:0}.cat__eye--happy,.cat__eye--blink{opacity:0}.cat__hand-left{animation:cat-lick 6s ease-in-out infinite}.cat__hand-right{animation:cat-stretch-r 6s ease-in-out infinite}.cat__head{animation:cat-head-bob 6s ease-in-out infinite}.cat__hat{animation:cat-hat-wiggle 6s ease-in-out infinite}.cat__heart{opacity:0;animation:cat-heart-pop 6s ease-in-out infinite}.cat__eye--open{animation:cat-eye-open 6s ease-in-out infinite}.cat__eye--blink{animation:cat-eye-blink 6s ease-in-out infinite}.cat__eye--happy{animation:cat-eye-happy 6s ease-in-out infinite}.cat__tongue{animation:cat-tongue-lick 6s ease-in-out infinite}.cat__blush{animation:cat-blush-show 6s ease-in-out infinite}.cat__mouth-open{animation:cat-yawn 6s ease-in-out infinite}.cat__heart--pet{opacity:0}.cat--petting .cat__eye--open,.cat--petting .cat__eye--blink,.cat--petting .cat__tongue,.cat--petting .cat__mouth-open{opacity:0!important;animation:none!important}.cat--petting .cat__eye--happy{opacity:1!important;animation:none!important}.cat--petting .cat__blush{opacity:.65!important;animation:none!important}.cat--petting .cat__hand-left,.cat--petting .cat__hand-right,.cat--petting .cat__hat{animation:none!important}.cat--petting .cat__head{animation:cat-head-nuzzle .45s ease-in-out infinite alternate!important}.cat--petting .cat__heart:not(.cat__heart--pet){opacity:1!important;animation:cat-heart-purr .55s ease-in-out infinite!important}.cat--petting .cat__heart--pet{opacity:1!important;animation:cat-heart-pet-side .7s ease-in-out infinite!important}@keyframes cat-purr-bob{0%,to{transform:scale(1.06) translateY(0)}50%{transform:scale(1.08) translateY(-2px)}}@keyframes cat-head-nuzzle{0%{transform:rotate(0)}to{transform:rotate(6deg) translateY(-1px)}}@keyframes cat-heart-purr{0%,to{transform:scale(1) translateY(0)}50%{transform:scale(1.15) translateY(-3px)}}@keyframes cat-heart-pet-side{0%,to{opacity:.5;transform:scale(.85) translateY(2px)}50%{opacity:1;transform:scale(1.1) translateY(-6px)}}@keyframes cat-lick{0%,14%,42%,72%,to{transform:rotate(0)}20%,38%{transform:rotate(-58deg)}28%,32%{transform:rotate(-50deg)}58%,66%{transform:rotate(0) translateY(-4px)}}@keyframes cat-stretch-r{0%,72%,to{transform:rotate(0) translateY(0)}58%,66%{transform:rotate(-12deg) translateY(-4px)}}@keyframes cat-head-bob{0%,14%,72%,to{transform:rotate(0)}20%,38%{transform:rotate(-5deg)}48%,54%{transform:translateY(-2px)}60%,66%{transform:translateY(2px)}}@keyframes cat-hat-wiggle{0%,14%,72%,to{transform:rotate(0)}48%,54%{transform:rotate(-4deg) translateY(-1px)}}@keyframes cat-heart-pop{0%,44%,68%,to{opacity:0;transform:scale(.4) translateY(4px)}48%{opacity:1;transform:scale(1) translateY(0)}56%{opacity:.9;transform:scale(1.1) translateY(-4px)}62%{opacity:0;transform:scale(.5) translateY(-12px)}}@keyframes cat-eye-open{0%,9%,14%,41%,72%,to{opacity:1}10%,13%,42%,71%{opacity:0}}@keyframes cat-eye-blink{0%,9%,14%,to{opacity:0}10%,13%{opacity:1}}@keyframes cat-eye-happy{0%,41%,58%,to{opacity:0}42%,57%{opacity:1}}@keyframes cat-tongue-lick{0%,18%,40%,to{opacity:0}22%,36%{opacity:1}27%,31%{opacity:.35}}@keyframes cat-blush-show{0%,41%,60%,to{opacity:0}44%,56%{opacity:.5}}@keyframes cat-yawn{0%,55%,69%,to{opacity:0}60%,66%{opacity:1}}@media (prefers-reduced-motion: reduce){.cat:hover,.cat--petting{animation:none;transform:none}.cat__hand-left,.cat__hand-right,.cat__head,.cat__hat,.cat__heart,.cat__eye--open,.cat__eye--blink,.cat__eye--happy,.cat__tongue,.cat__blush,.cat__mouth-open{animation:none}.cat__eye--happy{opacity:1}.cat__eye--open,.cat__eye--blink{opacity:0}.cat__blush{opacity:.4}.cat__heart{opacity:.8;transform:none}.cat--petting .cat__heart:not(.cat__heart--pet),.cat--petting .cat__heart--pet{opacity:1!important;transform:none!important;animation:none!important}}.resident-row__form{grid-column:1 / -1;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));column-gap:24px;padding-top:16px;border-top:1px solid var(--border)}.resident-row__form .form-actions{grid-column:1 / -1}.file-pick input[type=file]{padding:12px;cursor:pointer}.file-pick input[type=file]::file-selector-button{font:inherit;font-weight:600;margin-right:14px;padding:8px 16px;border:2px solid var(--accent);border-radius:var(--radius);background:var(--accent-soft);color:var(--accent);cursor:pointer}.proof-thumb img{display:block;width:72px;height:72px;object-fit:cover;border-radius:8px;border:2px solid var(--border)}.proof-thumb:hover img{border-color:var(--accent)}.tenant-avatar{display:inline-flex;flex-shrink:0;overflow:hidden;border-radius:50%;background:var(--surface-2)}.tenant-avatar img,.tenant-avatar svg{display:block;width:100%;height:100%;object-fit:cover}.tenant-avatar__img--blurred{filter:blur(6px);transform:scale(1.3)}.color-row{display:flex;align-items:center;gap:14px;cursor:pointer}.color-row input[type=color]{width:64px;height:52px;min-height:0;margin:0;padding:4px;flex-shrink:0;cursor:pointer}.confirm-dialog,.page-stack>.confirm-dialog{margin:auto;width:min(560px,calc(100vw - 32px));padding:28px;border:2px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);box-shadow:0 20px 60px #00000059}:root[data-theme=dark] .confirm-dialog{background:#14110c}.confirm-dialog::backdrop{background:#0009}.confirm-dialog__body{font-size:1.1rem;margin-bottom:24px}.upload-progress{grid-column:1 / -1;margin-top:16px;padding:16px 18px;border:2px solid var(--accent);border-radius:var(--radius);background:var(--accent-soft)}.upload-progress__text{display:flex;justify-content:space-between;gap:12px;font-weight:600;margin-bottom:10px}.upload-progress__label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-progress__pct{flex-shrink:0;font-variant-numeric:tabular-nums}.upload-progress__row{display:flex;align-items:center;gap:16px}.upload-progress__track{flex:1;height:18px;border-radius:999px;background:var(--surface);border:1px solid var(--border);overflow:hidden}.upload-progress__fill{height:100%;background:var(--accent);border-radius:999px;transition:width .15s linear}.upload-progress__done{grid-column:1 / -1;margin:16px 0 0;font-weight:700;color:#1a7f37}:root[data-theme=dark] .upload-progress__done{color:#4ade80}.former-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 24px;border:2px solid var(--gold)}.former-banner p{margin:0;flex:1 1 320px;font-size:1.05rem}.doc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px;list-style:none;padding:0;margin:0}.doc-card{display:flex;flex-direction:column;border:2px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--surface-2);color:var(--text)}.doc-card:hover{border-color:var(--accent);text-decoration:none}.doc-card img,.doc-card__pdf{display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:4 / 3;object-fit:cover}.doc-card__pdf{font-size:1.6rem;font-weight:800;color:var(--danger)}.doc-card__date{padding:8px 12px;font-weight:600;font-size:.9rem}:root[data-theme=dark]{--surface: rgba(0, 0, 0, .5);--surface-2: rgba(0, 0, 0, .38);--glass-edge: rgba(255, 222, 160, .14)}:root[data-theme=dark] .app-shell:before{content:"";position:fixed;top:var(--app-header-offset);left:0;right:0;bottom:0;z-index:1;pointer-events:none;background:#06050380;backdrop-filter:blur(32px) saturate(140%);-webkit-backdrop-filter:blur(32px) saturate(140%);border-top:1px solid rgba(255,222,160,.12)}:root[data-theme=dark] .card,:root[data-theme=dark] .collapsible,:root[data-theme=dark] .resident-row,:root[data-theme=dark] .admin-dock-bar,:root[data-theme=dark] .cta,:root[data-theme=dark] .room-avail-card,:root[data-theme=dark] .photo-card,:root[data-theme=dark] .overview-count-pill{background:#0000008c;border-color:var(--glass-edge);box-shadow:inset 0 1px #ffffff0d,0 8px 24px #00000059;backdrop-filter:none;-webkit-backdrop-filter:none}:root[data-theme=dark] .stat{background:#0006;border-color:#ffdea01a}:root[data-theme=dark] .collapsible__header:hover,:root[data-theme=dark] .data-table tbody tr:hover{background:#fff0d20a}:root[data-theme=dark] .admin-dock-panel{background:#040302b8;backdrop-filter:blur(24px) saturate(140%);-webkit-backdrop-filter:blur(24px) saturate(140%)}:root[data-theme=dark] .confirm-dialog{background:#080604db;border-color:var(--glass-edge);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);box-shadow:0 30px 80px #000000b3}:root[data-theme=dark] .confirm-dialog::backdrop{background:#00000080}:root[data-theme=dark] input,:root[data-theme=dark] textarea,:root[data-theme=dark] select{background-color:#00000073;border-color:#ffdea02e}:root[data-theme=dark] .cat{z-index:2}.sound-toggle__icon{color:var(--gold);pointer-events:none}.room-avail-upcoming{margin:0 0 10px;padding:8px 14px;border-left:4px solid var(--gold);background:var(--surface);border-radius:0 var(--radius) var(--radius) 0;font-weight:600}.switch{background:transparent;color:var(--text);border-color:var(--border);gap:12px;min-width:140px;justify-content:flex-start}.switch__track{position:relative;flex-shrink:0;width:52px;height:30px;border-radius:999px;background:var(--surface-2);border:2px solid var(--border);transition:background .15s ease}.switch__knob{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--text-muted);transition:transform .15s ease,background .15s ease}.switch--on .switch__track{background:var(--accent);border-color:var(--accent)}.switch--on .switch__knob{transform:translate(22px);background:#fff}.choice-group{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:14px;margin:16px 0}.choice{display:flex;align-items:flex-start;gap:14px;margin:0;padding:16px 18px;border:2px solid var(--border);border-radius:var(--radius);cursor:pointer}.choice input{width:24px;height:24px;min-height:0;margin:2px 0 0;flex-shrink:0}.choice span{display:flex;flex-direction:column;gap:4px}.choice small{color:var(--text-muted);font-weight:600;font-size:.9rem}.choice--on{border-color:var(--accent);background:var(--accent-soft)}.tenant-hero__room{font-weight:600;text-decoration:underline;text-underline-offset:3px}:root{--select-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='M3 6l5 5 5-5' fill='none' stroke='%23444444' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}:root[data-theme=dark]{--select-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='M3 6l5 5 5-5' fill='none' stroke='%23d9c08a' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:52px;background-image:var(--select-arrow);background-repeat:no-repeat;background-position:right 18px center;background-size:18px 18px;cursor:pointer}select::-ms-expand{display:none}:root[data-theme=dark] select option{background-color:#14110c;color:var(--text)}:root{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}.login-card{max-width:560px;margin:8vh auto 0}.capitalize{text-transform:capitalize}.seg-tabs{position:relative;display:inline-flex;max-width:100%;overflow-x:auto;gap:6px;padding:6px;margin-bottom:var(--gap);border:2px solid var(--border);border-radius:calc(var(--radius) + 6px);background:var(--surface);box-shadow:var(--trim-shadow)}.seg-tabs__pill{position:absolute;top:0;left:0;border-radius:var(--radius);background:var(--accent);box-shadow:0 4px 14px #2f5fd659;transition:transform .38s cubic-bezier(.34,1.4,.64,1),width .38s cubic-bezier(.34,1.4,.64,1),height .38s cubic-bezier(.34,1.4,.64,1)}.seg-tabs__tab{position:relative;z-index:1;background:transparent;border:none;color:var(--text-muted);min-height:52px;padding:10px 22px;white-space:nowrap;transition:color .25s ease}.seg-tabs__tab--active{color:var(--accent-contrast)}.seg-tabs__tab:not(.seg-tabs__tab--active):hover{color:var(--text)}.animated-height{overflow:hidden;transition:height .42s cubic-bezier(.2,.8,.2,1)}.animated-height>div{display:flow-root}.tab-fade{animation:tab-fade-in .38s ease both}@keyframes tab-fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.seg-tabs__pill,.animated-height{transition:none}.tab-fade{animation:none}}.word-count{display:block;margin-top:6px;text-align:right;color:var(--text-muted);font-weight:600}.word-count--over{color:var(--danger)}.prospect-note-row>td{padding-top:0}.prospect-note{display:block;padding:10px 14px;border-left:4px solid var(--gold);background:var(--surface-2);border-radius:0 var(--radius) var(--radius) 0;font-style:italic;white-space:pre-wrap;overflow-wrap:anywhere}@media (max-width: 760px){.table-wrap{overflow-x:visible}.data-table,.data-table>tbody,.data-table>tbody>tr,.data-table>tbody>tr>td{display:block;width:100%}.data-table>thead{display:none}.data-table>tbody>tr{margin-bottom:14px;padding:12px 16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.data-table>tbody>tr:hover{background:var(--surface)}.data-table>tbody>tr>td{display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:4px 6px;padding:8px 0;border-bottom:1px solid var(--border);text-align:right;overflow-wrap:anywhere}.data-table>tbody>tr>td:last-child{border-bottom:none}.data-table>tbody>tr>td[data-label]:before{content:attr(data-label);flex-shrink:0;max-width:45%;margin-right:auto;padding-right:12px;text-align:left;font-weight:700;font-size:.9rem;color:var(--text-muted)}.data-table>tbody>tr>td:not([data-label]){justify-content:flex-start;text-align:left}.data-table>tbody>tr>td.table-actions{flex-wrap:wrap;gap:10px;padding-top:14px;white-space:normal}.data-table>tbody>tr>td.table-actions>*{flex:1 1 auto;margin-left:0;white-space:nowrap;overflow-wrap:normal}.data-table>tbody>tr.row-expanded{margin-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.data-table>tbody>tr.row-detail,.data-table>tbody>tr.prospect-note-row{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.row-detail>td,.prospect-note-row>td{display:block!important;padding:8px 0!important}.nested-table>tbody>tr{background:var(--surface-2)}.room-cell{font-size:1.3rem}}@media (max-width: 600px){.seg-tabs{display:flex;flex-wrap:wrap;width:100%;overflow-x:visible}.seg-tabs__tab{flex:1 1 auto;padding:10px 12px}}@media (max-width: 420px){.app-header{padding:10px 12px}.brand b{display:none}.app-header__actions{gap:8px}.app-header__admin-link{padding:10px 12px}.theme-toggle{width:46px;height:46px}}.complaint-note{white-space:pre-wrap;overflow-wrap:anywhere;max-width:460px}.complaint-resolution{display:block;margin-top:8px;padding:6px 10px;border-left:4px solid #1a7f37;background:var(--surface-2);border-radius:0 var(--radius) var(--radius) 0;font-weight:600}.report-done h1{margin-bottom:8px}.confirm-dialog textarea{margin-bottom:4px}.nowrap{white-space:nowrap}
