:root{--burgundy: #7a1f2b;--burgundy-dark: #5f1721;--brass: #b08a3e;--ink: #241f1f;--muted: #6a625f;--paper: #f6f2ec;--card: #ffffff;--line: #e5ddd2;--error: #9a2b2b;--ok: #2f6b46;--radius: 10px;--shadow: 0 1px 2px rgba(36, 31, 31, .06), 0 8px 24px rgba(36, 31, 31, .06);--font: "Carlito", "Calibri", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;line-height:1.5}.masthead{display:flex;align-items:center;gap:12px}.wordmark{font-weight:700;letter-spacing:.22em;color:var(--burgundy);font-size:22px}.masthead.compact .wordmark{font-size:18px;color:#fff}.rule{width:30px;height:2px;background:var(--brass);display:inline-block}.sub{text-transform:uppercase;letter-spacing:.16em;font-size:11px;color:var(--muted);font-weight:600}.masthead.compact .sub{color:#ffffffd1}.screen-centre{min-height:100%;display:grid;place-items:center;background:var(--paper)}.spinner{width:34px;height:34px;border:3px solid var(--line);border-top-color:var(--burgundy);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spinner{animation-duration:2s}}.auth{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;gap:18px;background:radial-gradient(1200px 500px at 50% -10%,rgba(122,31,43,.06),transparent 60%),var(--paper)}.auth-card{width:100%;max-width:400px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:32px 28px}.auth-card .masthead{margin-bottom:22px}.auth-title{font-size:20px;margin:0 0 4px;color:var(--ink)}.auth-lede{margin:0 0 22px;color:var(--muted);font-size:14px}.auth-foot{color:var(--muted);font-size:12px;letter-spacing:.02em}.form{display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;gap:6px}.field span{font-size:13px;font-weight:600;color:var(--ink)}.field input{font:inherit;padding:11px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);transition:border-color .15s,box-shadow .15s}.field input:focus{outline:none;border-color:var(--burgundy);box-shadow:0 0 0 3px #7a1f2b24}.btn-primary{margin-top:4px;font:inherit;font-weight:600;color:#fff;background:var(--burgundy);border:1px solid var(--burgundy-dark);border-radius:8px;padding:12px 16px;cursor:pointer;transition:background .15s}.btn-primary:hover{background:var(--burgundy-dark)}.btn-primary:disabled{opacity:.65;cursor:default}.btn-link{margin-top:14px;background:none;border:none;color:var(--burgundy);font:inherit;font-size:13px;cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:2px}.btn-link:hover{color:var(--burgundy-dark)}.msg{margin:2px 0 0;font-size:13px}.msg-error{color:var(--error)}.msg-notice{color:var(--ok)}.app{min-height:100%;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:var(--burgundy);border-bottom:3px solid var(--brass)}.account{display:flex;align-items:center;gap:14px}.account-name{color:#fff;font-size:14px;font-weight:600}.topbar .btn-link{margin:0;color:#ffffffe6}.topbar .btn-link:hover{color:#fff}.content{width:100%;max-width:880px;margin:0 auto;padding:24px 20px 40px;display:flex;flex-direction:column;gap:20px;flex:1}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.panel-title{margin:0 0 14px;font-size:13px;text-transform:uppercase;letter-spacing:.12em;color:var(--burgundy);border-bottom:1px solid var(--line);padding-bottom:8px}.panel-warn{border-left:4px solid var(--brass)}.panel-warn h2{margin:0 0 6px;font-size:17px}.panel-warn p{margin:0;color:var(--muted)}.empty{color:var(--muted);font-size:14px;margin:0}.notice-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.notice-item{border-left:3px solid var(--burgundy);padding:2px 0 2px 12px}.notice-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.notice-title{font-weight:600;font-size:14px}.notice-date{color:var(--muted);font-size:12px;white-space:nowrap}.notice-body{margin:4px 0 0;font-size:14px;color:var(--ink)}.property-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(240px,100%),1fr));gap:14px}.property-card{border:1px solid var(--line);border-radius:8px;padding:16px;background:#fff;overflow:hidden}.property-grid.wide{grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr))}.property-hero{width:calc(100% + 32px);margin:-16px -16px 12px;height:140px;object-fit:cover;border-radius:8px 8px 0 0;display:block}.property-address{margin:0 0 12px;font-size:15px;color:var(--ink)}.property-sub{margin:-8px 0 12px;font-size:12px;color:var(--muted)}.chip-row{margin:-6px 0 12px;display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-block;padding:2px 8px;border-radius:999px;background:var(--paper);color:var(--burgundy);font-size:11px;font-weight:600}.detail{margin:0 0 12px;display:flex;flex-direction:column;gap:4px}.detail-pair{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.detail dt{color:var(--muted);font-size:12px}.detail dd{margin:0;font-size:13px;text-align:right;font-weight:600}.stat-row{display:flex;flex-wrap:wrap;gap:20px 32px}.stat{display:flex;flex-direction:column}.stat-value{font-size:20px;font-weight:700;color:var(--burgundy)}.stat-label{font-size:12px;color:var(--muted)}.progress{height:6px;border-radius:999px;background:var(--line);overflow:hidden;margin-bottom:6px}.progress-fill{height:100%;border-radius:999px;background:var(--burgundy)}.construction{margin-bottom:8px}.construction-note{font-size:12px;color:var(--muted)}.policy-block{border-top:1px dashed var(--line);padding-top:10px}.policy-label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:6px}.policy-none{font-size:13px;color:var(--muted)}.policy-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.policy-list li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 10px;font-size:13px}.policy-renewal{color:var(--burgundy)}.doc-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.doc-item{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.doc-item:last-child{border-bottom:none}.doc-item a{color:var(--burgundy);text-decoration:none;font-weight:600;font-size:14px}.doc-item a:hover{text-decoration:underline}.doc-date{color:var(--muted);font-size:12px;white-space:nowrap}.page-foot{text-align:center;color:var(--muted);font-size:12px;padding:20px}@media (max-width: 560px){.content{padding:16px 14px 32px}.property-grid{grid-template-columns:1fr}.account-name{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.admin-content{max-width:980px}.client-row{display:flex;gap:10px;flex-wrap:wrap}.client-row select{flex:1;min-width:220px}.admin-input{font:inherit;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);width:100%}.admin-input:focus{outline:none;border-color:var(--burgundy);box-shadow:0 0 0 3px #7a1f2b24}.admin-form{display:flex;flex-direction:column;gap:10px;margin-top:12px}.admin-form .btn-primary{align-self:flex-start;margin-top:2px}.record-form{border:1px dashed var(--line);border-radius:8px;padding:12px}.admin-field{display:flex;flex-direction:column;gap:4px}.admin-field>span{font-size:12px;font-weight:600;color:var(--muted)}.form-actions{display:flex;align-items:center;gap:14px}.btn-secondary{font:inherit;font-weight:600;color:var(--burgundy);background:#fff;border:1px solid var(--burgundy);border-radius:8px;padding:8px 14px;cursor:pointer;align-self:flex-start;margin-top:8px}.btn-secondary:hover{background:var(--paper)}.btn-secondary.disabled{opacity:.6;cursor:default}.btn-danger,.btn-danger:hover{color:var(--error)}.manager-row{border-bottom:1px solid var(--line)}.manager-row:last-child{border-bottom:none}.manager-row .doc-item{border-bottom:none}.sub-managers{background:var(--paper);border-radius:8px;padding:4px 14px 14px;margin:0 0 10px}.upload-row{display:flex;gap:10px;margin-top:10px;flex-wrap:wrap}.upload-row select{max-width:180px}.upload-btn{margin-top:0}.notice-recent{margin-top:18px}.doc-date .btn-link{margin:0 0 0 10px;font-size:12px}textarea.admin-input{resize:vertical}.company-list{display:flex;flex-direction:column;gap:10px}.company-group{border:1px solid var(--line);border-radius:8px;background:#fff}.company-group.open{border-color:var(--burgundy)}.company-head{width:100%;display:flex;justify-content:space-between;align-items:baseline;gap:12px;font:inherit;background:none;border:none;cursor:pointer;padding:12px 14px;text-align:left}.company-name{font-weight:700;font-size:15px;color:var(--burgundy)}.company-meta{font-size:12px;color:var(--muted);white-space:nowrap}.company-body{padding:0 14px 14px}.company-detail{border-top:1px dashed var(--line);padding-top:10px}.photo-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.photo-grid img{width:88px;height:88px;object-fit:cover;border-radius:6px;border:1px solid var(--line);display:block}.photo-item{display:flex;flex-direction:column;align-items:center;gap:2px}.net-line dt,.net-line dd{font-weight:700;color:var(--burgundy)}.rent-reported{margin:0 0 8px;font-size:13px;color:var(--ok)}.rent-report-form{display:flex;flex-direction:column;gap:8px}.rent-report-field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.rent-report-field input{font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:8px}.btn-small{padding:8px 14px;font-size:13px;margin-top:0}.chip-late{background:#9a2b2b1a;color:var(--error)}.doc-item .chip{margin-left:8px}
