:root{--color-primary: #1f6f5c;--color-primary-dark: #165445;--color-primary-light: #e6f2ee;--color-accent: #d98a3d;--color-bg: #f4f6f5;--color-surface: #ffffff;--color-surface-alt: #fbfaf7;--color-border: #e3e7e3;--color-border-strong: #cdd4cd;--color-text: #1c2521;--color-text-muted: #667169;--color-text-faint: #97a099;--color-danger: #b3261e;--color-danger-bg: #fbe9e7;--color-success: #1f6b28;--color-success-bg: #e4f3e4;--color-warning: #8a5300;--color-warning-bg: #fdecd2;--color-info: #164a8c;--color-info-bg: #e2edfb;--radius-sm: 6px;--radius: 10px;--radius-lg: 16px;--shadow-sm: 0 1px 2px rgba(20, 30, 25, 0.06);--shadow: 0 2px 8px rgba(20, 30, 25, 0.06), 0 1px 2px rgba(20, 30, 25, 0.05);--shadow-lg: 0 12px 32px rgba(20, 30, 25, 0.12);--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-display: "Fraunces", Georgia, "Times New Roman", serif}*{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body{margin:0;font-family:var(--font-body);background:var(--color-bg);color:var(--color-text);line-height:1.5}h1,h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:-0.01em;color:var(--color-text)}h1{font-size:1.9rem;margin:0 0 4px}h2{font-size:1.3rem;margin:0 0 16px}h3{font-size:1.05rem}p{margin:0 0 10px}a{color:var(--color-primary);text-decoration:none;transition:color .15s ease}a:hover{color:var(--color-primary-dark);text-decoration:underline}ul{padding-left:20px}li{margin-bottom:6px}::selection{background:var(--color-primary-light);color:var(--color-primary-dark)}.container{max-width:1120px;margin:0 auto;padding:32px 24px 72px}.auth-main{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px}body.auth-page{background:radial-gradient(circle at 15% 15%, rgba(31, 111, 92, 0.16), transparent 45%),radial-gradient(circle at 85% 85%, rgba(217, 138, 61, 0.14), transparent 45%),var(--color-bg)}.navbar{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--color-border)}.navbar-inner{max-width:1120px;margin:0 auto;display:flex;align-items:center;gap:28px;padding:12px 24px;flex-wrap:wrap}.navbar-brand a{display:flex;align-items:center;gap:9px;color:var(--color-text)}.navbar-brand a:hover{text-decoration:none}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg, var(--color-primary), var(--color-primary-dark));color:#fff;font-family:var(--font-display);font-weight:600;font-size:.95rem;box-shadow:var(--shadow-sm)}.brand-name{font-family:var(--font-display);font-weight:600;font-size:1.15rem;letter-spacing:-0.01em}.navbar-links{display:flex;align-items:center;gap:4px;flex:1;flex-wrap:wrap}.navbar-links a{color:var(--color-text-muted);font-size:.88rem;font-weight:500;padding:7px 12px;border-radius:var(--radius-sm);transition:background .15s ease,color .15s ease}.navbar-links a:hover{background:var(--color-primary-light);color:var(--color-primary-dark);text-decoration:none}.navbar-links a.active{background:var(--color-primary);color:#fff}.nav-dropdown{position:relative}.nav-dropdown summary{list-style:none;cursor:pointer;color:var(--color-text-muted);font-size:.88rem;font-weight:500;padding:7px 12px;border-radius:var(--radius-sm);display:inline-flex;align-items:center;gap:5px;user-select:none;transition:background .15s ease,color .15s ease}.nav-dropdown summary::-webkit-details-marker{display:none}.nav-dropdown summary::after{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);opacity:.6}.nav-dropdown summary:hover,.nav-dropdown[open] summary{background:var(--color-primary-light);color:var(--color-primary-dark)}.nav-dropdown summary.active{background:var(--color-primary);color:#fff}.nav-dropdown-menu{position:absolute;top:calc(100% + 6px);left:0;min-width:180px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:6px;display:flex;flex-direction:column;gap:2px;z-index:30}.nav-dropdown-menu a{color:var(--color-text);font-size:.87rem;font-weight:500;padding:8px 10px;border-radius:var(--radius-sm)}.nav-dropdown-menu a:hover{background:var(--color-primary-light);color:var(--color-primary-dark);text-decoration:none}.nav-dropdown-menu a.active{background:var(--color-primary);color:#fff}.navbar-user{display:flex;align-items:center;gap:14px}.user-chip{display:flex;align-items:center;gap:9px}.user-avatar{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--color-primary-light);color:var(--color-primary-dark);font-size:.72rem;font-weight:700;text-transform:uppercase;flex-shrink:0}.user-info{display:flex;flex-direction:column;line-height:1.25}.user-name{font-size:.83rem;font-weight:600;color:var(--color-text)}.btn-link{background:none;border:none;padding:0;color:var(--color-text-faint);font-size:.8rem;cursor:pointer;font-family:inherit;text-decoration:underline;text-underline-offset:2px}.btn-link:hover{color:var(--color-danger)}.badge{display:inline-block;padding:1px 8px;border-radius:999px;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;width:fit-content}.badge-gestionnaire{background:var(--color-primary-light);color:var(--color-primary-dark)}.badge-occupant{background:var(--color-warning-bg);color:var(--color-warning)}.flash{padding:12px 16px;border-radius:var(--radius);margin-bottom:20px;font-size:.9rem;font-weight:500;box-shadow:var(--shadow-sm)}.flash.notice{background:var(--color-success-bg);color:var(--color-success)}.flash.alert{background:var(--color-danger-bg);color:var(--color-danger)}.page-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:24px;flex-wrap:wrap;gap:12px;padding-bottom:16px;border-bottom:1px solid var(--color-border)}.page-header h1{margin:0}.page-header h2{margin:0}.btn{display:inline-flex;align-items:center;gap:6px;padding:9px 18px;border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;border:1px solid var(--color-primary);cursor:pointer;font-family:inherit;font-size:.87rem;font-weight:600;transition:background .15s ease,border-color .15s ease,transform .1s ease,box-shadow .15s ease;box-shadow:var(--shadow-sm)}.btn:hover{background:var(--color-primary-dark);border-color:var(--color-primary-dark);text-decoration:none;transform:translateY(-1px);box-shadow:var(--shadow)}.btn:active{transform:translateY(0)}.btn.btn-secondary{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border-strong);box-shadow:none}.btn.btn-secondary:hover{background:var(--color-surface-alt);border-color:var(--color-text-faint);color:var(--color-text)}.btn.btn-danger{background:var(--color-danger);border-color:var(--color-danger)}.btn.btn-danger:hover{background:#8f1d17;border-color:#8f1d17}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:24px;margin-bottom:20px;box-shadow:var(--shadow-sm)}.card>h2:first-child,.card>.page-header:first-child{margin-top:0}table.data-table{width:100%;border-collapse:separate;border-spacing:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}table.data-table th,table.data-table td{padding:13px 16px;text-align:left;border-bottom:1px solid var(--color-border);font-size:.9rem}table.data-table th{background:var(--color-surface-alt);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}table.data-table tbody tr{transition:background .12s ease}table.data-table tbody tr:hover{background:var(--color-surface-alt)}table.data-table tr:last-child td{border-bottom:none}table.data-table .actions{display:flex;gap:8px;flex-wrap:wrap}table.data-table .actions .btn{padding:6px 12px;font-size:.8rem}form .field{margin-bottom:18px;display:flex;flex-direction:column;gap:6px}form label{font-weight:600;font-size:.83rem;color:var(--color-text)}form input[type=text],form input[type=email],form input[type=password],form input[type=number],form input[type=date],form select,form textarea,form input[type=file]{padding:10px 12px;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);font-size:.92rem;font-family:inherit;background:var(--color-surface);color:var(--color-text);transition:border-color .15s ease,box-shadow .15s ease}form input:focus,form select:focus,form textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}form input[type=file]{padding:8px}form textarea{resize:vertical}form .field_with_errors input,form .field_with_errors select,form .field_with_errors textarea{border-color:var(--color-danger)}form .field_with_errors input:focus,form .field_with_errors select:focus,form .field_with_errors textarea:focus{box-shadow:0 0 0 3px var(--color-danger-bg)}.error-explanation{background:var(--color-danger-bg);border:1px solid rgba(179,38,30,.25);border-radius:var(--radius);padding:14px 18px;margin-bottom:20px;color:var(--color-danger);font-size:.88rem}.error-explanation h2{font-family:var(--font-body);font-size:.9rem;margin:0}.actions-row{display:flex;gap:10px;margin-top:24px;align-items:center}.status-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 11px;border-radius:999px;font-size:.72rem;font-weight:700;text-transform:capitalize}.status-pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.status-nouvelle{background:var(--color-warning-bg);color:var(--color-warning)}.status-en_cours{background:var(--color-info-bg);color:var(--color-info)}.status-resolue,.status-fermee{background:var(--color-success-bg);color:var(--color-success)}.status-a_payer{background:var(--color-warning-bg);color:var(--color-warning)}.status-payee{background:var(--color-success-bg);color:var(--color-success)}.status-en_retard{background:var(--color-danger-bg);color:var(--color-danger)}.priority-basse{color:var(--color-text-faint)}.priority-normale{color:var(--color-text-muted)}.priority-haute{color:var(--color-accent);font-weight:600}.priority-urgente{color:var(--color-danger);font-weight:700}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(200px, 1fr));gap:16px;margin-bottom:28px}.stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:22px;box-shadow:var(--shadow-sm);transition:transform .15s ease,box-shadow .15s ease}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.stat-card .stat-value{font-family:var(--font-display);font-size:2.1rem;font-weight:600;color:var(--color-primary-dark);line-height:1.1}.stat-card .stat-label{color:var(--color-text-muted);font-size:.8rem;font-weight:500;margin-top:4px}#map{height:560px;border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.map-legend{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--color-text-muted)}.map-legend .legend-dot{display:inline-block;width:10px;height:10px;border-radius:3px;background:var(--color-primary)}#occupants-map{height:420px;border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.occupant-marker{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--color-primary);color:#fff;font-family:var(--font-body);font-size:.68rem;font-weight:700;border:2px solid var(--color-surface);box-shadow:var(--shadow);cursor:pointer;transition:transform .12s ease}.occupant-marker:hover{transform:scale(1.12)}.occupant-marker-proprietaire{background:var(--color-primary)}.occupant-marker-locataire{background:var(--color-accent)}.leaflet-popup-content-wrapper{border-radius:var(--radius);box-shadow:var(--shadow-lg)}.leaflet-popup-content{font-family:var(--font-body);margin:12px 14px}.occupant-popup .popup-title{font-family:var(--font-display);font-weight:600;font-size:1rem;margin-bottom:4px}.occupant-popup .popup-badge{display:inline-block;padding:1px 8px;border-radius:999px;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;margin-bottom:8px;color:#fff}.occupant-popup .popup-badge-proprietaire{background:var(--color-primary)}.occupant-popup .popup-badge-locataire{background:var(--color-accent)}.occupant-popup .popup-row{font-size:.82rem;color:var(--color-text-muted);margin-bottom:3px}.occupant-popup .popup-link{display:inline-block;margin-top:8px;font-size:.82rem;font-weight:600}.auth-card{width:100%;max-width:420px;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:32px}.auth-card h1{text-align:center;margin-bottom:22px}.auth-card .actions-row{justify-content:center;margin-bottom:4px}.auth-card .btn{width:100%;justify-content:center}.auth-card p{text-align:center;font-size:.85rem;color:var(--color-text-muted)}.auth-card p a{font-weight:600}.auth-card em{font-size:.78rem;color:var(--color-text-faint)}.empty-state{text-align:center;padding:32px 16px;color:var(--color-text-muted);font-size:.9rem}@media(max-width: 720px){.navbar-inner{gap:12px}.navbar-links{order:3;width:100%;gap:2px}.user-info{display:none}.container{padding:20px 16px 56px}}
