html,body,#root{margin:0;padding:0}*{box-sizing:border-box}:root{--bg: #f6f8fb;--text: #142033}button{padding:10px 14px;border-radius:10px;border:1px solid #c8d2df;background:#fff;cursor:pointer;font-weight:600}.panel{background:#fff;border:1px solid #d9e1ea;border-radius:12px;box-shadow:0 1px 3px #1018280f}.shell{min-height:100dvh;background:#f3f5f8;color:#1b2430}header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#fff;border-bottom:1px solid #dce3ea}h1{font-size:20px;margin:0}.actions{display:flex;gap:8px}.tabs{display:flex;gap:8px;padding:10px 12px;border-bottom:1px solid #dce3ea;background:#fff}.tab{border:1px solid #c9d4df;background:#f6f9fc;padding:7px 10px;border-radius:8px;cursor:pointer}.tab.active{background:#dceeff;border-color:#7aa9d6}.conflict-banner{margin:10px 12px 0;border:1px solid #f5c2c7;background:#fff5f5;color:#7f1d1d;border-radius:10px;padding:10px 12px;display:flex;justify-content:space-between;align-items:center;gap:10px}.conflict-banner p{margin:0;font-size:13px}.kanban{display:grid;grid-template-columns:repeat(5,minmax(220px,1fr));gap:12px;padding:12px}.column{background:#e9eef5;border-radius:8px;padding:8px;min-height:68vh}.card{background:#fff;border-radius:8px;padding:8px;margin-bottom:8px;box-shadow:0 1px 2px #00000014;cursor:pointer}.title{font-weight:700}.meta{font-size:12px;color:#556}.card-links,.modal-links{margin:6px 0 0;padding-left:18px}.card-links a,.modal-links a{font-size:12px;color:#1d5fd0;text-decoration:none}.card-links a:hover,.modal-links a:hover{text-decoration:underline}.homeowners-mode{height:calc(100dvh - 126px);min-height:1000px;overflow:hidden;padding:12px}.homeowners-panel{height:100%;display:flex;flex-direction:column;gap:10px;padding:12px}.homeowners-header{display:block}.homeowners-header h2{margin:0 0 8px}.homeowners-filter input{width:min(520px,100%);min-width:320px;padding:8px}.table-wrap{flex:1 1 auto;min-height:160px;overflow:auto;border:1px solid #d9e1ea;border-radius:8px}.homeowners-table{width:100%;min-width:900px;border-collapse:collapse;font-size:12px;background:#fff}.homeowners-table th,.homeowners-table td{border-bottom:1px solid #eef1f5;padding:6px;text-align:left;vertical-align:top}.homeowners-table th{white-space:nowrap;position:sticky;top:0;background:#f8fbff;z-index:1}.homeowners-table tbody tr{cursor:pointer}.homeowners-table tbody tr:hover{background:#f7fbff}.homeowners-table tbody tr.selected{background:#eaf3ff}.homeowner-detail{margin-top:auto;padding:12px}.homeowner-detail textarea{width:100%}.detail-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 12px}.detail-tabs button{background:#eef2f7;color:#1f2937;border-color:#cfd8e3}.detail-tabs button.active{background:#0d6efd;border-color:#0d6efd;color:#fff}.detail-tabs button:hover{background:#e2e8f0;border-color:#c0ccda}.detail-tabs button.active:hover{background:#0b5ed7;border-color:#0a58ca}.homeowner-contact-card{border:1px solid #e5e7eb;border-radius:10px;padding:10px;margin-bottom:10px;background:#f9fafb}.contact-row{display:grid;gap:10px;align-items:end;margin-bottom:8px}.contact-row:last-child{margin-bottom:0}.name-role-row{grid-template-columns:2fr 1fr}.email-phone-row{grid-template-columns:1fr 1fr}.contact-actions-row{grid-template-columns:1fr auto;align-items:center}.parking-permit-grid,.auto-grid{display:grid;gap:8px;align-items:end;margin:8px 0}.parking-permit-grid{grid-template-columns:1fr 1.5fr auto}.auto-grid{grid-template-columns:1fr 1fr 1fr 1fr auto}.inline-checkbox{display:flex!important;flex-direction:row!important;align-items:center;gap:8px;margin:0}.inline-checkbox input[type=checkbox]{width:16px;height:16px;margin:0}.homeowner-detail label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#374151}.homeowner-detail input,.homeowner-detail textarea,.homeowner-detail select{width:100%;max-width:100%;box-sizing:border-box;border:1px solid #ced4da;border-radius:.375rem;padding:.5rem .75rem;background:#fff;color:#212529;font-size:.95rem;line-height:1.5;box-shadow:inset 0 1px 2px #1018280a}.homeowner-detail input:focus,.homeowner-detail textarea:focus,.homeowner-detail select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .2rem #0d6efd40}.homeowner-detail button{border:1px solid #0d6efd;background:#0d6efd;color:#fff;padding:.45rem .75rem;border-radius:.375rem}.homeowner-detail button:hover{background:#0b5ed7;border-color:#0a58ca}.homeowner-detail button.remove-homeowner{border-color:#dc3545;background:#dc3545}.homeowner-detail button.remove-homeowner:hover{background:#bb2d3b;border-color:#b02a37}.homeowner-detail button:disabled{opacity:.6;cursor:not-allowed}@media(max-width:1100px){.homeowners-filter input{width:100%;min-width:0}}@media(max-width:768px){.parking-permit-grid,.auto-grid{grid-template-columns:1fr}}@media(max-width:420px){.name-role-row,.email-phone-row,.contact-actions-row{grid-template-columns:1fr}}.auth-shell{min-height:100dvh;display:grid;place-items:center}.auth-card{width:min(480px,92vw);padding:24px;background:#fff;border:1px solid #dce3ea;border-radius:12px}.loading{padding:24px}.modal-backdrop{position:fixed;inset:0;background:#0f172a73;display:grid;place-items:center;padding:18px;z-index:50}.modal-card{width:min(760px,95vw);max-height:88vh;overflow:auto;padding:14px}.modal-header{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}.modal-card h3{margin:0}.modal-card h4{margin:10px 0 6px}.modal-card textarea{width:100%;margin-top:6px}
