:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;background:#0b1119;color:#e8eef5;font-size:16px}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 78% -15%,#143444 0,transparent 28rem),#0b1119}a{color:inherit;text-decoration:none}button,input,select{font:inherit}.topbar{height:76px;padding:0 max(24px,calc((100vw - 1240px)/2));display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid #263342;background:#0d151fcf}.brand{display:flex;align-items:center;gap:12px;font-size:1.14rem;font-weight:750;letter-spacing:.01em;white-space:nowrap}.brand small{display:block;color:#9aafbe;font-size:.72rem;font-weight:500;letter-spacing:.13em;text-transform:uppercase;margin-top:1px}.brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#72d8e4;color:#08161c;font-weight:900}.topnav{display:flex;align-items:center;gap:22px;color:#b9cad7;font-size:.9rem}.topnav a:hover,.text-button:hover{color:#72d8e4}.topnav form{margin:0}.user-name{border-left:1px solid #314351;padding-left:22px;color:#e8eef5}.text-button{border:0;background:none;color:#b9cad7;cursor:pointer;padding:8px 0}.container{max-width:1240px;margin:0 auto;padding:44px 24px 88px}.eyebrow{color:#72d8e4;font-weight:750;letter-spacing:.16em;font-size:.76rem;margin:0 0 12px}h1,h2,p{margin-top:0}h1{font-size:clamp(2rem,3vw,2.75rem);line-height:1.13;letter-spacing:-.035em;margin-bottom:14px}h2{font-size:1.12rem;line-height:1.35;letter-spacing:-.015em}.muted,.help{color:#a8bac9;line-height:1.6}.help{font-size:.86rem;margin:8px 0 0}.page-head{display:flex;align-items:start;justify-content:space-between;gap:24px;margin-bottom:34px}.page-head .muted{margin-bottom:0}.badge,.module-status{border:1px solid #314a58;background:#122934;color:#a9dce4;border-radius:999px;padding:6px 11px;font-size:.78rem;white-space:nowrap}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.module-card,.panel{border:1px solid #293947;background:#121d28;border-radius:18px;box-shadow:0 14px 35px #00000013}.module-card{min-height:212px;padding:25px;position:relative}.module-icon{display:grid;place-items:center;width:50px;height:50px;border-radius:13px;background:#1b3842;color:#77dce7;font-size:1.6rem;font-weight:700;margin-bottom:26px}.module-status{position:absolute;top:27px;right:25px;background:#202b36;border-color:#374958;color:#b2c1cb}.module-card h2{margin:0 0 7px}.module-card p{color:#a8bac9;line-height:1.5;margin:0}.next-step{margin-top:23px;padding:26px}.next-step h2{font-size:1.3rem;margin-bottom:6px}.next-step p:last-child{margin-bottom:0}.auth-layout{min-height:calc(100vh - 220px);display:grid;grid-template-columns:1fr 430px;align-items:center;gap:8vw}.auth-intro{max-width:560px}.auth-intro h1{font-size:clamp(2.7rem,5vw,4.6rem);line-height:1.05}.auth-intro p:last-child{font-size:1.06rem;color:#a8bac9;line-height:1.7;max-width:480px}.auth-card,.form-stack{padding:32px}.auth-card h2{font-size:1.5rem;margin-bottom:8px}.auth-card .muted{font-size:.92rem;margin-bottom:26px}label{display:block;color:#dbe6ee;font-size:.9rem;font-weight:650;margin:18px 0 8px}input,select{width:100%;height:46px;border:1px solid #3b4b59;border-radius:9px;background:#0c1720;color:#f0f6fa;padding:0 13px;outline:none}input:focus,select:focus{border-color:#72d8e4;box-shadow:0 0 0 3px #72d8e433}.button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 17px;border-radius:9px;border:1px solid transparent;font-weight:700;cursor:pointer;white-space:nowrap}.button.primary{background:#72d8e4;color:#09202a}.button.primary:hover{background:#a0e8ed}.button.secondary{background:#1d303d;color:#dcebf3;border-color:#3c5360}.button.secondary:hover{background:#294554}.button.full{width:100%;margin-top:25px}.auth-card .help{margin-top:20px}.alert,.notice,.code-panel{border-radius:10px;padding:13px 15px;line-height:1.5}.alert{background:#4d2429;color:#ffd9dc;border:1px solid #a34751}.notice{background:#193b36;color:#c5f6db;border:1px solid #357666}.narrow{max-width:600px;margin:35px auto}.narrow>.muted{margin-bottom:25px}.form-stack h2{margin-bottom:20px}.form-stack .button{margin-top:24px}.admin-grid{display:grid;grid-template-columns:360px 1fr;gap:20px;align-items:start}.admin-grid .panel{padding:25px}.user-list{display:grid}.user-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 0;border-top:1px solid #2b3c49}.user-row strong,.user-row span,.user-row small{display:block}.user-row span{color:#b9cad7;margin-top:3px}.user-row small{color:#8199a9;margin-top:5px}.code-panel{background:#183944;border:1px solid #397582;margin:18px 0 24px}.code-panel strong,.code-panel code{display:block}.code-panel code{font-size:1.25rem;font-weight:700;letter-spacing:.08em;margin:12px 0;color:#baf7fc;overflow-wrap:anywhere}.code-panel p{margin:0;color:#c0d8df}@media(max-width:850px){.auth-layout{grid-template-columns:1fr;gap:28px;align-items:start}.auth-intro h1{font-size:2.5rem}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-grid{grid-template-columns:1fr}.topbar{height:auto;min-height:70px;flex-wrap:wrap;padding:16px 24px}.topnav{flex-wrap:wrap;gap:14px}}@media(max-width:560px){.container{padding:30px 18px 60px}.cards{grid-template-columns:1fr}.module-card{min-height:170px}.page-head{display:block}.page-head .badge{display:inline-block;margin-top:20px}.auth-card,.form-stack{padding:23px}.topnav .user-name{display:none}.user-row{align-items:start;flex-direction:column}.auth-intro p:last-child{font-size:1rem}}

/* Images des modules */
.module-image{display:block;width:60px;height:60px;max-width:60px;max-height:60px;object-fit:contain;margin:0 0 16px}

/* Module Appartements */
.module-link{display:block;transition:border-color .15s,transform .15s}.module-link:hover,.module-link:focus-visible{border-color:#72d8e4;transform:translateY(-2px)}.module-link .module-status{background:#163c3e;border-color:#367c7e;color:#b8f4ef}.location-head-actions,.location-actions,.location-row-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.location-columns{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}.location-panel{padding:25px;margin-bottom:20px}.location-panel h2{margin-bottom:16px}.location-panel textarea{width:100%;min-height:92px;padding:12px 13px;border:1px solid #3b4b59;border-radius:9px;background:#0c1720;color:#f0f6fa;font:inherit;line-height:1.5;resize:vertical}.location-panel textarea:focus{outline:none;border-color:#72d8e4;box-shadow:0 0 0 3px #72d8e433}.location-grid-two,.location-grid-three{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.location-grid-three{grid-template-columns:1fr 2fr 1.2fr}.location-check{display:flex;align-items:center;gap:9px;margin:18px 0;color:#dbe6ee;font-size:.9rem}.location-check input[type=checkbox]{flex:none;width:18px;height:18px;margin:0;accent-color:#72d8e4}.location-actions{margin-top:22px}.location-list{display:grid}.location-row{display:flex;align-items:center;gap:16px;padding:16px 0;border-top:1px solid #2b3c49}.location-row:first-child{border-top:0}.location-row>div:first-child:not(.location-code),.location-main{flex:1;min-width:0}.location-row strong,.location-row span,.location-row small{display:block}.location-row strong{font-size:1rem}.location-row span{color:#a8bac9;margin-top:4px;line-height:1.45}.location-row small{color:#f3be74;margin-top:5px}.location-filters{display:grid;grid-template-columns:minmax(220px,1fr) 220px auto auto;align-items:end;gap:16px;padding:18px 22px;margin-bottom:20px}.location-filters label:not(.location-check){margin-top:0}.location-filters .location-check{margin-bottom:13px}.location-list-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.location-list-head h2{margin:0}.location-empty{padding:32px;text-align:center;color:#a8bac9}.location-empty p{margin-bottom:18px}.location-code{display:grid;place-items:center;flex:none;width:38px;height:38px;border-radius:10px;background:#1b3842;font-size:1.1rem}.location-meta{white-space:nowrap;color:#b8cbd6;font-size:.86rem}.location-row-actions{justify-content:flex-end}.text-link{color:#82dfe9;font-weight:650;font-size:.9rem}.text-link:hover{text-decoration:underline}.location-tabs{display:flex;gap:5px;overflow-x:auto;border-bottom:1px solid #355164;margin:10px 0 20px}.location-tabs a,.location-tabs span{padding:12px 16px;white-space:nowrap;color:#b4c9d5;border-radius:9px 9px 0 0}.location-tabs a:hover,.location-tabs a[aria-current=page]{background:#1b3440;color:#aef2f3}.location-tabs span{color:#778d9b}.location-form{display:grid;gap:0}.location-form .location-panel{scroll-margin-top:20px}.inventory-columns{grid-template-columns:minmax(0,1.35fr) minmax(300px,.8fr)}.inventory-row{display:flex;justify-content:space-between;align-items:start;gap:12px;padding:18px 0;border-top:1px solid #2b3c49}.inventory-row small{color:#72d8e4;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.inventory-row h3{margin:6px 0 7px;font-size:1rem}.inventory-row p{margin:0;color:#afc1ce;line-height:1.5}.inventory-delete{margin-top:24px;padding-top:20px;border-top:1px solid #3d4e59}.button.danger{background:#4d2429;color:#ffd9dc;border-color:#a34751}.button.danger:hover{background:#633038}@media(max-width:900px){.location-filters{grid-template-columns:1fr 1fr}.location-columns,.inventory-columns{grid-template-columns:1fr}.apartment-row{flex-wrap:wrap}.location-meta{white-space:normal}}@media(max-width:600px){.location-filters,.location-grid-two,.location-grid-three{grid-template-columns:1fr}.location-panel{padding:20px}.location-head-actions{margin-top:20px}.location-row{align-items:start}.apartment-row .location-row-actions{width:100%;justify-content:flex-start}.location-meta{width:100%;padding-left:54px}}

.location-filters {
    padding: 26px 28px;
    gap: 18px;
}

.location-filters.apartment-filters {
    grid-template-columns: minmax(240px, 1fr) auto auto;
}

.building-tabs {
    margin-top: 0;
}

.building-tabs a[aria-current="page"] {
    font-weight: 750;
    box-shadow: inset 0 -3px #72d8e4;
}

.location-tabs button {
    padding: 12px 16px;
    border: 0;
    border-radius: 9px 9px 0 0;
    background: transparent;
    color: #b4c9d5;
    font: inherit;
    white-space: nowrap;
    cursor: pointer;
}

.location-tabs button:hover,
.location-tabs button[aria-selected="true"] {
    background: #1b3440;
    color: #aef2f3;
}

.building-tabs button[aria-selected="true"] {
    font-weight: 750;
    box-shadow: inset 0 -3px #72d8e4;
}

.location-row[hidden],
.location-empty[hidden] {
    display: none !important;
}

.button.icon-button {
    width: 44px;
    min-width: 44px;
    padding: 0;
    font-size: 1.2rem;
    line-height: 1;
}

.button.soft-danger {
    background: #4b252d;
    border-color: #9a4d5b;
    color: #ffdce2;
}

.button.soft-danger:hover {
    background: #61303a;
}

.page-title-with-icon {
    display: flex;
    align-items: center;
    gap: 18px;
}

.page-title-with-icon > img {
    flex: none;
    width: 60px;
    height: 60px;
    object-fit: contain;
}

.page-title-with-icon h1 {
    margin-bottom: 8px;
}

@media (max-width: 600px) {
    .location-filters {
        padding: 22px;
    }

    .location-filters.apartment-filters {
        grid-template-columns: 1fr;
    }
}

/* Présentation commune des titres à l'intérieur des cadres. */
.panel h2,
.module-card h2 {
    text-align: center;
    text-transform: uppercase;
}

/* Navigation commune : liens encadrés dans la palette sombre existante. */
.topbar {
    height: auto;
    min-height: 76px;
    padding-top: 14px;
    padding-bottom: 14px;
    flex-wrap: wrap;
}

.topnav {
    gap: 8px;
    flex-wrap: wrap;
}

.topnav > a,
.topnav .text-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 9px 14px;
    border: 1px solid #293947;
    border-radius: 10px;
    background: #121d28;
    color: #b9cad7;
    line-height: 1.4;
    transition: background-color .15s, border-color .15s, color .15s;
}

.topnav > a:hover,
.topnav .text-button:hover {
    background: #1d303d;
    border-color: #3c5360;
    color: #72d8e4;
}

.topnav > a[aria-current] {
    background: #122934;
    border-color: #72d8e4;
    color: #a9dce4;
    font-weight: 700;
}

.topnav > a:focus-visible,
.topnav .text-button:focus-visible {
    outline: 2px solid #72d8e4;
    outline-offset: 3px;
}

.topnav .user-name {
    margin-left: 8px;
    padding-left: 16px;
    margin-right: 8px;
}

@media (max-width: 560px) {
    .topnav { gap: 8px; }
    .topnav > a,
    .topnav .text-button { padding: 9px 11px; }
}

@media (prefers-reduced-motion: reduce) {
    .topnav > a,
    .topnav .text-button { transition: none; }
}

/* Module Locataires */
.warning {
    padding: 13px 15px;
    border: 1px solid #9b7034;
    border-radius: 10px;
    background: #41321d;
    color: #ffe3ae;
    line-height: 1.5;
}

.tenant-filters {
    grid-template-columns: minmax(240px, 1fr) minmax(190px, .55fr) auto auto;
}

.tenant-row[hidden],
.tenant-tab-panel[hidden],
.tenant-save-actions[hidden],
[data-tenant-empty][hidden] {
    display: none !important;
}

[data-request-draft-form][hidden],
[data-prepare-request][hidden] {
    display: none !important;
}

.tenant-row {
    flex-wrap: nowrap;
}

.tenant-row .tenant-status-current {
    color: #7ee0c2;
}

.tenant-apartment-choice {
    padding: 24px 28px;
    margin-bottom: 18px;
}

.tenant-apartment-choice label {
    margin-top: 0;
}

.tenant-dossier-head {
    display: grid;
    grid-template-columns: minmax(210px, 1fr) minmax(300px, 430px) auto;
    align-items: center;
    gap: 22px;
}

.tenant-dossier-head h1 {
    margin: 0;
}

.tenant-header-apartment {
    width: 100%;
    margin: 0;
    padding: 14px 18px 16px;
    border-radius: 14px;
}

.tenant-header-apartment label {
    margin: 0 0 7px;
    font-size: .78rem;
}

.tenant-header-apartment select {
    height: 42px;
}

.tenant-back-button {
    gap: 8px;
}

.tenant-back-button .ui-icon {
    width: 18px;
    height: 18px;
}

.tenant-section-tabs {
    gap: 3px;
}

.tenant-section-tabs a.has-tenant-tab-count {
    position: relative;
    padding-right: 36px;
}

.tenant-section-tabs .tenant-tab-count {
    position: absolute;
    top: 4px;
    right: 6px;
    display: grid;
    place-items: center;
    box-sizing: border-box;
    width: 22px;
    min-width: 22px;
    max-width: 22px;
    height: 22px;
    min-height: 22px;
    max-height: 22px;
    margin: 0;
    padding: 0 !important;
    border: 1px solid #a7e8ff;
    border-radius: 999px;
    background: #7dd3fc;
    color: #10243a !important;
    font-size: .66rem;
    font-weight: 800;
    line-height: 22px;
    text-align: center;
    box-shadow: 0 0 12px #7dd3fc66;
}

.tenant-section-tabs :is(button, a):focus-visible,
.building-tabs button:focus-visible {
    outline: 2px solid #72d8e4;
    outline-offset: -2px;
}

.tenant-section-tabs a[aria-selected="true"] {
    background: #1b3440;
    color: #aef2f3;
}

.tenant-person {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    min-width: 0;
    margin-bottom: 0;
}

.tenant-people {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    align-items: stretch;
    margin-bottom: 22px;
}

.tenant-support-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    align-items: stretch;
}

.tenant-support-panel {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-width: 0;
    margin-bottom: 0;
}

.tenant-dossier-notes textarea {
    flex: 1 1 auto;
}

.tenant-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 8px;
}

.tenant-card-head h2 {
    flex: 1;
    margin: 0;
}

.tenant-add-person-action {
    display: grid;
    place-items: center;
    min-height: 210px;
    padding: 24px;
    border: 1px dashed #46606f;
    border-radius: 18px;
    background: #101b25;
}

.tenant-people.has-single-person .tenant-add-person-action {
    align-self: stretch;
}

.tenant-people.has-multiple-people .tenant-add-person-action {
    grid-column: 1 / -1;
    place-items: start;
    min-height: 0;
    padding: 0;
    border: 0;
    background: transparent;
}

.tenant-person:first-child .tenant-remove-person {
    display: none;
}

.tenant-person-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: auto;
    padding-top: 16px;
}

.tenant-person-footer .location-check {
    flex: 1;
    margin: 0;
}

.button.tenant-remove-person {
    flex: none;
    border-color: #784b3f;
    background: #382622;
    color: #f4b9a5;
}

.button.tenant-remove-person:hover,
.button.tenant-remove-person:focus-visible {
    border-color: #a8634f;
    background: #4a2d27;
    color: #ffd2c3;
}

.tenant-remove-confirmation {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 20px;
    padding: 20px 24px;
    border-color: #8c5548;
    background: #2b211f;
}

.tenant-remove-confirmation h2,
.tenant-remove-confirmation p {
    margin-bottom: 0;
}

.tenant-remove-confirmation p {
    margin-top: 5px;
    color: #d7c1ba;
}

.tenant-remove-confirmation form {
    display: flex;
    flex: none;
    gap: 10px;
}

.tenant-remove-confirmation .button {
    gap: 8px;
}

.tenant-remove-person,
.tenant-add-person-action .button,
.tenant-save-button {
    gap: 8px;
}

.tenant-remove-person .ui-icon,
.tenant-add-person-action .ui-icon,
.tenant-save-button .ui-icon {
    width: 18px;
    height: 18px;
}

.calculated-field {
    display: flex;
    align-items: center;
    min-height: 44px;
    padding: 10px 13px;
    border: 1px solid #355164;
    border-radius: 9px;
    background: #12232e;
    color: #aef2f3;
    font-weight: 700;
}

.tenant-exit-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
    margin-top: 20px;
    padding: 18px 20px;
    border: 1px solid #6d526e;
    border-radius: 12px;
    background: #251e2a;
}

.tenant-exit-card strong,
.tenant-exit-card p {
    display: block;
}

.tenant-exit-card p {
    margin: 5px 0 0;
    color: #c7b8cb;
    font-size: .88rem;
}

.tenant-exit-card input {
    width: min(220px, 100%);
    flex: none;
}

.lease-detail-columns {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    align-items: stretch;
}

.lease-detail-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-width: 0;
    margin-bottom: 0;
}

.lease-compact-grid,
.lease-deposit-grid,
.lease-irl-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

.lease-last-review-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
    gap: 10px;
}

.lease-renewal-fields {
    margin-top: 14px;
}

.lease-unit-field {
    min-width: 0;
}

.lease-unit-options {
    display: flex;
    align-items: center;
    gap: 6px;
    min-height: 30px;
}

.lease-unit-options label {
    display: flex;
    align-items: center;
    gap: 3px;
    min-height: auto;
    margin: 0;
    cursor: pointer;
    color: #26333b;
    font-size: .7rem;
    white-space: nowrap;
}

.lease-unit-options input {
    width: 12px;
    height: 12px;
    margin: 0;
    accent-color: #72d8e4;
}

.deposit-status {
    margin: 18px 0 4px;
    padding: 12px 14px;
    border: 1px solid #46606f;
    border-radius: 10px;
    background: #e2eaed;
    color: #43535c;
    font-size: .86rem;
    line-height: 1.4;
}

.deposit-status.is-complete {
    border-color: #6bb895;
    background: #d9f1e5;
    color: #185b40;
}

.deposit-status.needs-attention {
    border-color: #d19a52;
    background: #fff0d9;
    color: #704512;
}

@media (max-width: 1100px) {
    .lease-detail-columns { grid-template-columns: 1fr; }
}

.tenant-row-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 8px;
}

.location-row .tenant-badge {
    display: inline-flex;
    width: fit-content;
    margin: 0;
    padding: 4px 8px;
    border: 1px solid #46606f;
    border-radius: 999px;
    background: #172933;
    color: #c7d5dd;
    font-size: .73rem;
    font-weight: 700;
}

.location-row .tenant-badge.is-current {
    border-color: #34775f;
    background: #15372d;
    color: #8de7c8;
}

.location-row .tenant-badge.is-archived {
    color: #c7d5dd;
}

.location-row .tenant-badge.needs-attention {
    border-color: #9b7034;
    background: #41321d;
    color: #ffe3ae;
}

.tenant-dates {
    display: grid;
    gap: 5px;
    min-width: 205px;
}

.tenant-dates strong {
    color: #9edee4;
    font-size: .84rem;
}

.tenant-dates strong.is-overdue,
.lease-row strong.is-overdue {
    color: #ff9fa8;
}

.tenant-dates strong.is-soon,
.lease-row strong.is-soon {
    color: #ffe3ae;
}

.lease-overview-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 20px;
}

.lease-summary-card {
    padding: 20px;
}

.lease-summary-card span,
.lease-summary-card small {
    display: block;
    color: #a8bac9;
}

.lease-summary-card strong {
    display: block;
    margin: 8px 0 5px;
    color: #aef2f3;
    font-size: 2rem;
}

.lease-summary-card.is-alert strong {
    color: #ff9fa8;
}

.lease-summary-card.is-soon strong {
    color: #ffe3ae;
}

.lease-duration {
    min-width: 115px;
    color: #c8d7df;
    font-size: .88rem;
}

.tenant-save-actions {
    position: sticky;
    bottom: 14px;
    z-index: 5;
    display: flex;
    justify-content: center;
    padding: 14px;
    margin-top: 20px;
    border: 1px solid #314856;
    border-radius: 14px;
    background: #0d1721eb;
    box-shadow: 0 12px 30px #0008;
    backdrop-filter: blur(8px);
}

.button.tenant-save-button {
    min-width: 230px;
    border-color: #4ecb8c;
    background: #2fa66f;
    color: #071a11;
    box-shadow: 0 8px 22px #103d2a80;
}

.button.tenant-save-button:hover,
.button.tenant-save-button:focus-visible {
    background: #55d49a;
}

.amount-lines {
    display: grid;
    gap: 10px;
    margin-bottom: 14px;
}

.amount-line {
    display: grid;
    grid-template-columns: 150px minmax(220px, 1fr) 150px auto;
    gap: 10px;
    align-items: center;
}

.amount-footer {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 18px;
    margin: 4px 0 18px;
}

.amount-add-button {
    gap: 8px;
}

.amount-summary {
    display: grid;
    grid-template-columns: auto minmax(150px, 1fr);
    align-items: center;
    gap: 10px;
    width: 270px;
}

.amount-summary strong {
    white-space: nowrap;
}

.money-output {
    display: flex;
    align-items: center;
    height: var(--app-control-height, 30px);
    min-height: var(--app-control-height, 30px);
    padding: 0 var(--app-control-padding-inline, 5px);
    border: 1px solid #355164;
    border-radius: 9px;
    background: #132735;
    color: #baf7fc;
    font-size: var(--app-control-font-size, .78rem);
    font-weight: 750;
}

.feature-coming {
    min-height: 260px;
    display: grid;
    align-content: center;
    justify-items: center;
    text-align: center;
}

.feature-coming p {
    max-width: 720px;
    color: #a8bac9;
    line-height: 1.7;
}

.insurance-columns {
    grid-template-columns: minmax(0, 1.1fr) minmax(320px, .9fr);
}

.document-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 15px 0;
    border-top: 1px solid #2b3c49;
}

.document-row strong,
.document-row span {
    display: block;
}

.document-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: none;
}

.document-row span {
    margin-top: 5px;
    color: #a8bac9;
    font-size: .88rem;
}

.document-upload {
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid #3b4b59;
}

.archive-workflow {
    display: grid;
    gap: 18px;
}

.archive-refund-card form {
    display: grid;
    gap: 8px;
}

.archive-refund-fields {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.archive-refund-card textarea {
    min-height: 92px;
}

.archive-refund-card .button {
    justify-self: start;
}

.archive-action-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    align-items: stretch;
}

.archive-action-card {
    display: flex;
    flex-direction: column;
    min-height: 250px;
}

.archive-action-card > p {
    color: #334754;
    font-size: .86rem;
    line-height: 1.55;
}

.archive-action-card > form {
    margin-top: auto;
}

.archive-status {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 9px 10px;
    border: 1px solid #aebcc3;
    border-radius: 9px;
    background: #edf2f5;
    color: #334754 !important;
}

.archive-status.is-complete {
    border-color: #72c49b;
    background: #d9f2e4;
    color: #17623f !important;
}

.archive-status .ui-icon {
    flex: 0 0 auto;
}

.archive-checklist {
    margin: 0 0 16px;
    padding-left: 20px;
    color: #334754;
    font-size: .84rem;
    line-height: 1.7;
}

.archive-danger-card {
    border-color: #d7b7a9;
}

@media (max-width: 1100px) {
    .archive-action-grid {
        grid-template-columns: 1fr;
    }

    .archive-action-card {
        min-height: 0;
    }
}

@media (max-width: 700px) {
    .archive-refund-fields {
        grid-template-columns: 1fr;
    }
}

input[type="file"] {
    height: auto;
    min-height: 46px;
    padding: 10px 12px;
}

.recipient-summary {
    padding: 12px 14px;
    border: 1px solid #397582;
    border-radius: 10px;
    background: #183944;
    color: #c0eaf0;
    line-height: 1.55;
}

[data-prepare-request] {
    margin-top: 14px;
}

/* Navigation et tableau de bord — palette commune, accents par rubrique. */
:root {
    --app-night: #0b1119;
    --app-surface: #121d28;
    --app-line: #293947;
    --app-accent: #72d8e4;
    --section-color: var(--app-accent);
    --color-apartments: #72d8cf;
    --color-tenants: #91c9ff;
    --color-leases: #f1bc82;
    --color-rents: #8cd6ab;
    --color-mail: #78d9e8;
    --color-deposits: #f2bd62;
    --color-insurance: #77c9f2;
    --color-reviews: #d8b4fe;
    --color-electricity: #f6d34a;
    --color-documents: #b9a8ed;
    --color-incidents: #ec9eaf;
    --color-inventory: #83dbe8;
    --color-neutral: #bac9d6;
    --sidebar-width: 224px;
}
.section-apartments { --section-color: var(--color-apartments); }
.section-tenants { --section-color: var(--color-tenants); }
.section-leases { --section-color: var(--color-leases); }
.section-rents { --section-color: var(--color-rents); }
.section-mail { --section-color: var(--color-mail); }
.section-deposits { --section-color: var(--color-deposits); }
.section-insurance { --section-color: var(--color-insurance); }
.section-reviews { --section-color: var(--color-reviews); }
.section-electricity { --section-color: var(--color-electricity); }
.section-documents { --section-color: var(--color-documents); }
.section-incidents { --section-color: var(--color-incidents); }
.section-inventory { --section-color: var(--color-inventory); }
.section-users, .section-settings, .section-account { --section-color: var(--color-neutral); }
.ui-icon { display: inline-block; width: 22px; height: 22px; flex: none; vertical-align: middle; }
.button { gap: 8px; }
.button .ui-icon { width: 18px; height: 18px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.skip-link { position: fixed; left: 16px; top: -100px; z-index: 100; padding: 12px; background: #72d8e4; color: #09202a; border-radius: 8px; }
.skip-link:focus { top: 12px; }
.app-shell :is(a, button, summary):focus-visible { outline: 2px solid var(--app-accent); outline-offset: 4px; }
.app-shell { background: #0f172b; }
.app-shell [hidden] { display: none !important; }
.shell-sidebar { position: fixed; inset: 0 auto 0 0; width: var(--sidebar-width); z-index: 50; display: flex; flex-direction: column; overflow-y: auto; padding: 32px 14px 20px; background: #0d151f; border-right: 1px solid var(--app-line); }
.sidebar-heading { display: flex; justify-content: space-between; align-items: center; padding: 0 14px; margin-bottom: 24px; min-height: 30px; color: #a8bac9; font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.sidebar-links { display: grid; gap: 7px; }
.sidebar-link { display: flex; align-items: center; gap: 11px; padding: 12px; min-height: 48px; border: 1px solid transparent; border-radius: 10px; color: #bdcbd7; font-size: .88rem; }
.sidebar-link .ui-icon { color: var(--section-color); width: 21px; height: 21px; }
.sidebar-link[aria-current] { background: #172b37; border-color: #365669; box-shadow: inset 3px 0 var(--section-color); color: #f0f6fa; font-weight: 650; }
a.sidebar-link:hover { background: #162633; color: #fff; }
.sidebar-coming small { margin-left: auto; font-size: .62rem; white-space: nowrap; color: #a8bac9; border: 1px solid #293947; padding: 2px 4px; border-radius: 4px; }
.sidebar-coming { gap: 8px; }
.shell-topbar { margin-left: var(--sidebar-width); min-height: 100px; padding: 20px 28px; display: grid; grid-template-columns: auto minmax(160px, 1fr) auto; align-items: center; gap: 24px; background: #0d151fe8; border-bottom: 1px solid var(--app-line); }
.shell-brand-group { display: flex; gap: 12px; align-items: center; min-width: 0; }
.shell-brand { display: flex; align-items: center; white-space: nowrap; }
.shell-logo { display:block;width:210px;height:66px;object-fit:contain; }
.global-search { display: flex; align-items: center; justify-self:center; width:min(520px,100%); gap: 10px; min-width: 0; padding: 0 5px 0 14px; border: 1px solid #314553; border-radius: 12px; background: #111e2a; color: #a8bac9; }
.global-search:focus-within { border-color: var(--app-accent); }
.global-search input { border: 0; background: transparent; min-width: 0; height: 46px; padding: 0; font-size: .85rem; box-shadow: none; }
.global-search input:focus { box-shadow: none; }
.global-search input::placeholder { color: #a8bac9; opacity: 1; }
.shell-icon-button { display: inline-flex; align-items: center; justify-content: center; border: 1px solid #293947; width: 42px; min-width: 42px; height: 42px; border-radius: 9px; background: #121d28; color: #b9cad7; cursor: pointer; padding: 0; }
.global-search .shell-icon-button { border: 0; background: transparent; }
.shell-icon-button:hover { background: #1d303d; color: var(--app-accent); }
.shell-tools { position: relative; display: flex; align-items: center; gap: 12px; min-width: 0; }
.shell-dropdown summary { list-style: none; cursor: pointer; }
.shell-dropdown summary::-webkit-details-marker { display: none; }
.account-summary { display: flex; align-items: center; gap: 10px; min-height: 44px; color: #e8eef5; border-radius: 8px; }
.account-summary > .ui-icon:first-child { color: var(--app-accent); }
.account-summary > .ui-icon:last-child { width: 15px; }
.account-name { max-width: 145px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .83rem; }
.account-name small { display: block; margin-top: 3px; color: #a8bac9; font-size: .7rem; }
.shell-popover { position: absolute; z-index: 40; right: 0; top: calc(100% + 15px); width: 300px; max-width: calc(100vw - 32px); padding: 20px; border: 1px solid #3c5360; border-radius: 13px; background: #15232f; box-shadow: 0 15px 40px #0005; overflow-wrap: anywhere; }
.shell-popover p { color: #b9cad7; font-size: .85rem; line-height: 1.6; margin: 8px 0 16px; }
.shell-popover form { margin: 12px 0 0; }
.shell-popover a, .shell-popover button { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 44px; text-align: left; border: 0; border-radius: 8px; padding: 10px; color: #dcebf3; background: #1d303d; font: inherit; font-size: .83rem; cursor: pointer; }
.shell-content.container { max-width: 1600px; margin-left: var(--sidebar-width); margin-right: auto; padding: 24px 32px 72px; min-width: 0; }
.shell-content > * { min-width: 0; }
.shell-content :is(input, select, textarea, fieldset) { min-width: 0; max-width: 100%; }
.shell-content .location-tabs { flex-wrap: wrap; overflow-x: visible; }

/* La navigation PHP conserve visuellement la coque de l’application dans Chrome. */
@view-transition {
    navigation: auto;
}

.shell-sidebar {
    view-transition-name: app-sidebar;
}

.shell-topbar {
    view-transition-name: app-topbar;
}

::view-transition-old(app-sidebar),
::view-transition-new(app-sidebar),
::view-transition-old(app-topbar),
::view-transition-new(app-topbar) {
    animation: none;
    mix-blend-mode: normal;
}

::view-transition-old(root) {
    animation: 90ms ease-out both app-page-out;
}

::view-transition-new(root) {
    animation: 130ms ease-out both app-page-in;
}

@keyframes app-page-out {
    to { opacity: .96; }
}

@keyframes app-page-in {
    from { opacity: .96; }
}
.shell-content .location-tabs :is(a, button, span) { white-space: normal; }
.shell-content .location-grid-two, .shell-content .location-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.shell-content :is(.location-main, .location-row, .document-row, .panel) { overflow-wrap: anywhere; }
.shell-content .page-head h1 { font-size: clamp(1.8rem, 3vw, 2.6rem); }
.shell-content .eyebrow { color: var(--section-color); }
.sidebar-toggle, .sidebar-close { display: none; }
.sidebar-backdrop { position: fixed; inset: 0; background: #030910b8; border: 0; z-index: 45; }
.sidebar-backdrop[hidden] { display: none; }
.dashboard-heading { align-items: center; }
.dashboard-date { display: flex; align-items: center; gap: 9px; color: #b9cad7; font-size: .85rem; }
.dashboard-date .ui-icon { width: 18px; }
.dashboard-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.dashboard-card { display: flex; flex-direction: column; min-width: 0; min-height: 242px; padding: 24px; border: 1px solid #293947; border-radius: 16px; background: #121d28; box-shadow: 0 10px 30px #0001; }
a.dashboard-card:hover { border-color: var(--section-color); background: #152431; }
.dashboard-card-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; margin-bottom: 20px; }
.dashboard-icon { display: grid; place-items: center; width: 54px; height: 54px; border-radius: 14px; background: #1a2d3a; color: var(--section-color); }
.dashboard-icon .ui-icon { width: 31px; height: 31px; }
.dashboard-link-icon { color: #a8bac9; }
.dashboard-link-icon .ui-icon { width: 18px; }
.dashboard-coming { border: 1px solid #354753; padding: 4px 7px; border-radius: 6px; font-size: .66rem; color: #bdcbd7; }
.dashboard-card h2 { margin: 0 0 10px; font-size: 1rem; font-weight: 650; }
.dashboard-value { margin: 0 0 12px; font-size: 2.5rem; font-weight: 750; line-height: 1.15; font-variant-numeric: tabular-nums; letter-spacing: -.03em; }
.dashboard-value.is-unavailable { font-size: 1.1rem; color: #bdcbd7; font-weight: 500; letter-spacing: 0; line-height: 1.5; }
.dashboard-description { margin: auto 0 0; color: #a8bac9; font-size: .8rem; line-height: 1.6; }
.dashboard-followup { margin-top: 26px; padding: 28px; scroll-margin-top: 20px; }
.dashboard-section-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap; margin-bottom: 22px; }
.dashboard-section-head h2, .search-results h2 { display: flex; align-items: center; gap: 10px; text-align: left; text-transform: none; margin: 0; font-size: 1.2rem; }
.dashboard-section-head h2 .ui-icon { color: var(--app-accent); }
.insurance-summary { display: flex; gap: 14px 24px; flex-wrap: wrap; font-size: .82rem; color: #a8bac9; margin-bottom: 20px; }
.insurance-summary strong { color: #e8eef5; font-size: 1.1rem; margin-right: 5px; }
.dashboard-followup-row { display: flex; align-items: center; gap: 14px; border-top: 1px solid #293947; padding: 17px 0; }
.dashboard-followup-row > div { flex: 1; min-width: 0; }
.dashboard-followup-row p { margin: 5px 0 0; font-size: .8rem; color: #a8bac9; }
.dashboard-followup-row .button { font-size: .8rem; }
.followup-icon { color: #a8bac9; }
.search-scope { margin-bottom: 22px; }
.search-results { padding: 26px; margin-bottom: 20px; }
.search-results h2 { margin-bottom: 20px; }
.search-count { font-size: .8rem; color: #b9cad7; margin-left: auto; }
.search-result { display: flex; justify-content: space-between; align-items: center; gap: 20px; border-top: 1px solid #293947; padding: 20px 0; }
.search-result > div { min-width: 0; overflow-wrap: anywhere; }
.search-result h3 { margin: 0 0 7px; font-size: 1rem; }
.search-result p { color: #b9cad7; font-size: .87rem; line-height: 1.6; margin: 0 0 5px; }
.page-title-icon { display: grid; place-items: center; flex: none; width: 60px; height: 60px; border-radius: 16px; color: var(--section-color); background: #1a2d3a; }
.page-title-icon .ui-icon { width: 32px; height: 32px; }
@media (min-width: 1101px) and (max-width: 1280px) {
    .shell-topbar { gap: 16px; padding: 20px; }
    .account-name { max-width: 100px; }
    .shell-content .location-filters { grid-template-columns: 1fr; }
    .shell-content .amount-line { grid-template-columns: 1fr 1fr; }
    .shell-content .insurance-columns, .shell-content .inventory-columns { grid-template-columns: 1fr; }
}
@media (max-width: 1100px) {
    .shell-topbar { margin-left: 0; }
    .shell-content.container { margin-left: 0; }
    .shell-sidebar { position: static; width: auto; }
    .shell-ready .shell-sidebar { position: fixed; inset: 0 auto 0 0; width: min(300px, 85vw); transform: translateX(-100%); visibility: hidden; }
    .shell-ready.navigation-open .shell-sidebar { transform: translateX(0); visibility: visible; }
    .shell-ready .sidebar-toggle, .shell-ready .sidebar-close { display: inline-flex; }
    .navigation-open { overflow: hidden; }
    .sidebar-heading { padding: 0 0 0 12px; }
}
@media (max-width: 800px) {
    .shell-topbar { grid-template-columns: 1fr auto; padding: 16px 20px; gap: 16px; }
    .global-search { grid-column: 1 / -1; grid-row: 2; }
    .shell-tools { grid-column: 2; grid-row: 1; }
    .shell-content.container { padding: 22px 22px 60px; }
    .dashboard-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .shell-content .location-columns, .shell-content .inventory-columns, .shell-content .insurance-columns, .shell-content .admin-grid { grid-template-columns: 1fr; }
    .shell-content .page-head { flex-wrap: wrap; }
}
@media (max-width: 600px) {
    .shell-topbar { padding: 14px 16px; gap: 14px 8px; }
    .shell-logo { width:145px;height:46px; }
    .shell-brand-group { gap: 8px; }
    .shell-icon-button { min-width: 38px; width: 38px; height: 44px; }
    .shell-tools { gap: 6px; }
    .account-summary { gap: 4px; }
    .account-name { display: none; }
    .account-summary > .ui-icon:last-child { display: none; }
    .account-summary { min-width: 38px; justify-content: center; }
    .shell-content.container { padding: 20px 16px 48px; }
    .dashboard-grid { grid-template-columns: 1fr; gap: 14px; }
    .dashboard-card { min-height: 215px; }
    .dashboard-followup, .search-results { padding: 20px; }
    .dashboard-followup-row, .search-result, .shell-content .document-row { flex-wrap: wrap; }
    .dashboard-followup-row { display: grid; grid-template-columns: 22px minmax(0, 1fr); }
    .dashboard-followup-row .button { grid-column: 2; justify-self: start; }
    .search-result > div { width: 100%; }
    .shell-content .location-grid-two, .shell-content .location-grid-three { grid-template-columns: 1fr; }
    .shell-content .button { white-space: normal; text-align: center; }
    .global-search input { font-size: 16px; }
    .shell-content input, .shell-content select, .shell-content textarea { font-size: 16px; }
}

@media (max-width: 900px) {
    .tenant-row, .lease-row { flex-wrap: wrap; }
    .tenant-dossier-head { grid-template-columns: 1fr; align-items: stretch; }
    .tenant-dossier-head .tenant-back-button { justify-self: start; }
    .tenant-people { grid-template-columns: 1fr; }
    .tenant-support-grid { grid-template-columns: 1fr; }
    .tenant-add-person-action,
    .tenant-people.has-multiple-people .tenant-add-person-action { grid-column: 1; }
    .lease-detail-columns { grid-template-columns: 1fr; }
    .lease-overview-grid { grid-template-columns: 1fr 1fr; }
    .amount-line { grid-template-columns: 130px minmax(180px, 1fr) 130px; }
    .amount-line .button { grid-column: 1 / -1; justify-self: start; }
    .insurance-columns { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
    .tenant-filters,
    .amount-line { grid-template-columns: 1fr; }
    .tenant-row .location-meta,
    .tenant-row .location-row-actions,
    .lease-row .location-meta,
    .lease-row .location-row-actions { width: 100%; padding-left: 54px; justify-content: flex-start; }
    .tenant-card-head { align-items: flex-start; }
    .tenant-card-head h2 { text-align: left; }
    .tenant-person-footer { align-items: flex-start; flex-wrap: wrap; }
    .tenant-person-footer .tenant-remove-person { margin-left: auto; }
    .tenant-remove-confirmation { align-items: stretch; flex-direction: column; }
    .tenant-remove-confirmation form { flex-wrap: wrap; }
    .tenant-save-actions { bottom: 8px; }
    .tenant-save-actions .button { width: 100%; }

    .lease-compact-grid,
    .lease-deposit-grid,
    .lease-irl-grid,
    .lease-last-review-grid { grid-template-columns: 1fr; }

    .tenant-exit-card { align-items: stretch; flex-direction: column; }
    .tenant-exit-card input { width: 100%; }
    .lease-overview-grid { grid-template-columns: 1fr; }
    .lease-row .lease-duration { width: 100%; padding-left: 54px; }
}

/* Thème général : fond bleu nuit et encadrés clairs. */
html,
body,
.app-shell {
    background: #0f172b;
}

.panel,
.module-card,
.dashboard-card {
    border-color: #c5d0d5;
    background: #e2e8f0;
    color: #26333b;
    box-shadow: 0 10px 25px #00000018;
    color-scheme: light;
}

a.module-card:hover,
a.module-card:focus-visible,
a.dashboard-card:hover,
a.dashboard-card:focus-visible {
    border-color: var(--section-color, #3b8995);
    background: #d7e0e7;
}

.panel :is(h2, h3, label, legend, strong):not(.ql-editor *),
.module-card :is(h2, h3, strong),
.dashboard-card :is(h2, h3, strong),
.panel .location-check,
.panel .tenant-person-footer label {
    color: #26333b;
}

.panel :is(.muted, .help),
.panel .location-row span,
.panel .location-empty,
.panel .inventory-row p,
.panel .document-row span,
.panel .user-row span,
.panel .user-row small,
.panel.feature-coming p,
.panel .search-result p,
.module-card p,
.dashboard-card .dashboard-description,
.dashboard-card .dashboard-value.is-unavailable,
.lease-summary-card :is(span, small),
.dashboard-followup-row p,
.insurance-summary,
.search-count {
    color: #52636c;
}

.panel .location-meta,
.dashboard-card :is(.dashboard-link-icon, .dashboard-coming),
.dashboard-followup .followup-icon {
    color: #52636c;
}

.panel :is(input, select, textarea) {
    border-color: #aebcc3;
    background: #ffffff;
    color: #26333b;
    color-scheme: light;
}

.panel :is(input, select, textarea):focus {
    border-color: #3b8995;
    box-shadow: 0 0 0 3px #72d8e43d;
}

.panel .location-row,
.panel .inventory-row,
.panel .document-row,
.panel .dashboard-followup-row,
.panel .search-result,
.panel .user-row {
    border-color: #bdc9cf;
}

.panel .text-link {
    color: #116777;
}

.panel .inventory-row small,
.panel .dashboard-section-head h2 .ui-icon {
    color: #116777;
}

.dashboard-followup .insurance-summary strong {
    color: #26333b;
}

/* Composants communs : une seule densité pour les encadrés et formulaires. */
:root {
    --app-card-padding: 16px;
    --app-control-height: 30px;
    --app-textarea-min-height: 60px;
    --app-control-padding-inline: 5px;
    --app-control-font-size: .78rem;
    --app-label-font-size: .74rem;
    --app-field-label-gap: 2px;
    --app-panel-title-gap: 6px;
    --bs-primary: #0d6efd;
    --bs-info: #0dcaf0;
    --bs-dark: #212529;
    --bs-success: #198754;
    --bs-warning: #ffc107;
    --bs-danger: #dc3545;
}

/* Couleurs sémantiques alignées sur Bootstrap. */
.button.primary {
    border-color: var(--bs-primary);
    background: var(--bs-primary);
    color: #fff;
}

.button.primary:hover,
.button.primary:focus-visible {
    border-color: #0a58ca;
    background: #0b5ed7;
    color: #fff;
}

.button.info {
    border-color: var(--bs-info);
    background: var(--bs-info);
    color: #000;
}

.button.info:hover,
.button.info:focus-visible {
    border-color: #3dd5f3;
    background: #31d2f2;
    color: #000;
}

.button.dark,
.button.secondary.dark {
    border-color: var(--bs-dark);
    background: var(--bs-dark);
    color: #fff;
}

.button.dark:hover,
.button.dark:focus-visible,
.button.secondary.dark:hover,
.button.secondary.dark:focus-visible {
    border-color: #373b3e;
    background: #424649;
    color: #fff;
}

.button.success,
.button.tenant-save-button.success {
    border-color: var(--bs-success);
    background: var(--bs-success);
    color: #fff;
}

.button.success:hover,
.button.success:focus-visible,
.button.tenant-save-button.success:hover,
.button.tenant-save-button.success:focus-visible {
    border-color: #146c43;
    background: #157347;
    color: #fff;
}

.button.warning {
    border-color: var(--bs-warning);
    background: var(--bs-warning);
    color: #000;
}

.button.warning:hover,
.button.warning:focus-visible {
    border-color: #ffcd39;
    background: #ffca2c;
    color: #000;
}

.button.danger,
.button.soft-danger,
.button.tenant-remove-person {
    border-color: #f1aeb5;
    background: #f8d7da;
    color: #842029;
}

.button.danger:hover,
.button.danger:focus-visible,
.button.soft-danger:hover,
.button.soft-danger:focus-visible,
.button.tenant-remove-person:hover,
.button.tenant-remove-person:focus-visible {
    border-color: #ea868f;
    background: #f1aeb5;
    color: #58151c;
}

.button:disabled {
    cursor: not-allowed;
    opacity: .58;
}

.location-row .tenant-badge.success {
    border-color: var(--bs-success);
    background: var(--bs-success);
    color: #fff;
}

.location-row .tenant-badge.warning {
    border-color: var(--bs-warning);
    background: var(--bs-warning);
    color: #000;
}

.panel,
.module-card,
.dashboard-card,
body.app-shell .panel {
    padding: var(--app-card-padding);
}

.panel :is(
    input:not([type="radio"]):not([type="checkbox"]),
    select
) {
    height: var(--app-control-height);
    padding-inline: var(--app-control-padding-inline);
    font-size: var(--app-control-font-size);
}

.button {
    height: var(--app-control-height);
    min-height: var(--app-control-height);
    padding-inline: 12px;
    font-size: var(--app-control-font-size);
}

.button.icon-button {
    width: var(--app-control-height);
    min-width: var(--app-control-height);
    padding: 0;
}

.panel input[type="date"] {
    padding-inline: 2px;
    font-size: var(--app-control-font-size);
}

.panel textarea {
    min-height: var(--app-textarea-min-height);
    padding: 5px;
    font-size: var(--app-control-font-size);
}

.panel label:not(.location-check):not(.lease-review-check),
.panel .lease-field-label {
    display: block;
    min-height: auto;
    margin: 3px 0 var(--app-field-label-gap);
    font-size: var(--app-label-font-size);
    line-height: 1.15;
}

.panel .calculated-field {
    min-height: var(--app-control-height);
    padding: 5px;
    border-color: #aebcc3;
    background: #dde9ed;
    color: #164b56;
    font-size: var(--app-control-font-size);
    line-height: 1.15;
}

.panel :is(.location-check, .lease-review-check) {
    display: flex;
    align-items: center;
    gap: 5px;
    min-height: auto;
    margin: 3px 0 6px;
    font-size: var(--app-label-font-size);
    line-height: 1.2;
}

.panel :is(.location-check, .lease-review-check) input[type="checkbox"] {
    align-self: center;
    flex: 0 0 auto;
    width: 15px;
    height: 15px;
    margin: 0;
}

.panel-title {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--app-panel-title-gap);
    margin: 2px 0 6px;
    color: #26333b;
    font-size: .92rem;
    line-height: 1.2;
    text-align: center;
    text-transform: uppercase;
}

.panel-title .ui-icon {
    flex: 0 0 auto;
    width: 17px;
    height: 17px;
    color: #116777;
}

@media (max-width: 600px) {
    :root {
        --app-card-padding: 14px;
        --app-control-height: 44px;
        --app-textarea-min-height: 88px;
        --app-control-padding-inline: 10px;
        --app-control-font-size: 16px;
        --app-label-font-size: .84rem;
    }

    .panel :is(
        input:not([type="radio"]):not([type="checkbox"]),
        select,
        textarea
    ) {
        font-size: 16px;
    }
}

/* Documents générés depuis les dossiers locataires */
.document-generator-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:1rem;align-items:start}.document-generator-grid .panel{display:grid;gap:.75rem}.print-document{max-width:210mm;min-height:270mm;margin:1.5rem auto;padding:20mm;background:#fff;color:#111;box-shadow:0 18px 60px #0005;font-family:Arial,sans-serif;line-height:1.5}.print-document h1,.print-document h2{text-align:center;text-transform:uppercase;color:#111}.print-document h3{margin-top:1.6rem;text-transform:uppercase;color:#111}.signature-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;margin-top:3rem;min-height:6rem}.no-print{display:flex}@media print{.app-sidebar,.app-topbar,.no-print,.help{display:none!important}.app-shell,.app-main{display:block!important;margin:0!important;padding:0!important}.print-document{box-shadow:none;margin:0;padding:15mm;max-width:none;min-height:0}.signature-grid{break-inside:avoid}}@media(max-width:700px){.document-generator-grid{grid-template-columns:1fr}.print-document{margin:.5rem;padding:1rem}.signature-grid{grid-template-columns:1fr;gap:2rem}}

/* États des lieux mobiles */
.inspection-create-actions,.inspection-actions,.photo-inputs{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.inspection-list{display:grid;gap:.75rem;margin-top:1rem}.inspection-wizard{display:grid;gap:1rem}.inspection-progress{display:flex;gap:.55rem;overflow-x:auto;padding:.35rem 0 .75rem;scrollbar-width:thin}.inspection-progress button{min-width:135px;border:1px solid var(--border);border-radius:14px;background:var(--surface);color:var(--text);padding:.7rem;font:inherit;cursor:pointer}.inspection-progress button span{display:inline-grid;place-items:center;width:1.65rem;height:1.65rem;margin-right:.35rem;border-radius:50%;background:var(--surface-strong)}.inspection-progress button[aria-current="step"]{border-color:var(--cyan);color:var(--cyan);box-shadow:0 0 0 1px var(--cyan)}.inspection-progress button[aria-current="step"] span{background:var(--cyan);color:#05202b}.inspection-step{display:grid;gap:1rem}.inspection-items{display:grid;gap:1rem}.inspection-item{border:1px solid var(--border);border-radius:16px;padding:1rem;background:color-mix(in srgb,var(--surface) 90%,transparent)}.inspection-item h3{margin:0 0 .75rem;font-size:1rem}.inspection-result{display:grid;grid-template-columns:repeat(3,1fr);gap:.55rem;margin-bottom:.75rem}.inspection-result label{cursor:pointer}.inspection-result input{position:absolute;opacity:0;pointer-events:none}.inspection-result span{display:grid;place-items:center;min-height:48px;border:1px solid var(--border);border-radius:12px;background:var(--surface);text-align:center;padding:.45rem}.inspection-result input:checked+span{border-color:var(--cyan);background:color-mix(in srgb,var(--cyan) 18%,var(--surface));color:var(--cyan);font-weight:700}.camera-button{position:relative}.selected-photo-count{display:block;margin-top:.35rem;font-size:.8rem;color:var(--cyan)}.inspection-thumb,.inspection-photo-grid img{width:120px;height:90px;object-fit:cover;border-radius:10px;margin:.5rem .35rem 0 0}.inspection-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem}.inspection-photo-grid img{width:100%;height:140px}.signature-canvas{display:block;width:100%;max-width:900px;height:220px;background:#fff;border:2px dashed #7390a0;border-radius:14px;touch-action:none}.saved-signature{max-width:360px;max-height:140px;background:#fff}.inspection-report{max-width:210mm;margin:1.5rem auto;padding:16mm;background:#fff;color:#111;box-shadow:0 18px 60px #0005;font-family:Arial,sans-serif;line-height:1.4}.inspection-report header{text-align:center;border-bottom:2px solid #111;margin-bottom:1.25rem}.inspection-report h1,.inspection-report h2{color:#111}.inspection-report h1{font-size:22pt}.inspection-report h2{font-size:14pt;margin:1.4rem 0 .65rem}.report-details{display:grid;grid-template-columns:1fr 1fr;gap:.7rem 1.5rem}.report-details div{display:grid;grid-template-columns:130px 1fr}.report-details dt{font-weight:700}.inspection-report table{width:100%;border-collapse:collapse;font-size:10pt}.inspection-report th,.inspection-report td{border:1px solid #bbb;padding:7px;text-align:left;vertical-align:top}.inspection-report th{background:#e9eef1}.report-photo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10mm}.report-photo-grid figure{margin:0;break-inside:avoid}.report-photo-grid img{width:100%;height:70mm;object-fit:contain;background:#f3f3f3}.report-photo-grid figcaption{font-size:9pt;margin-top:3px}.report-signatures{display:grid;grid-template-columns:1fr 1fr;gap:20mm;margin-top:15mm;break-inside:avoid}.report-signatures>div{min-height:45mm}.report-signatures img{max-width:80mm;max-height:35mm}
@media(max-width:700px){.inspection-result{grid-template-columns:1fr}.inspection-progress button{min-width:115px}.inspection-actions{position:sticky;bottom:0;z-index:5;background:var(--bg);padding:.75rem 0}.inspection-actions .button{flex:1 1 45%}.signature-canvas{height:180px}.report-details{grid-template-columns:1fr}.report-photo-grid{grid-template-columns:1fr}}
@media print{.inspection-report{box-shadow:none;margin:0;padding:8mm;max-width:none}.inspection-report section,.inspection-report table{break-inside:auto}.inspection-report tr,.inspection-report figure{break-inside:avoid}.report-photo-grid{grid-template-columns:repeat(2,1fr)}}

/* Loyers, encaissements et quittances */
.rents-page-head{align-items:end}.rent-month-picker{display:grid;gap:7px;width:min(500px,100%)}.rent-month-picker label{margin:0;font-size:.75rem;color:#b8c7d2}.rent-month-controls{display:grid;grid-template-columns:42px minmax(170px,1fr) auto 42px;align-items:center;gap:8px}.rent-month-picker input{height:var(--app-control-height);border:1px solid #415667;border-radius:8px;padding:0 8px;background:#142431;color:#e8eef5;color-scheme:dark}.rent-month-arrow{width:42px;min-width:42px;padding:0}.rent-current-shortcut{display:flex;align-items:center;justify-content:center;gap:6px;justify-self:center;color:#8ce8f2;font-size:.72rem;font-weight:700}.rent-current-shortcut:hover{text-decoration:underline}.rent-current-shortcut.is-current{color:#9fb2c1}.rent-current-shortcut.is-current:hover{text-decoration:none}.rent-current-shortcut .ui-icon{width:15px;height:15px}
.rent-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.rent-summary-card{display:grid;gap:5px;min-height:104px}.rent-summary-card span,.rent-summary-card small{color:#52636c}.rent-summary-card strong{font-size:1.45rem}.rent-summary-card.is-paid{border-top:4px solid #198754}.rent-summary-card.is-due{border-top:4px solid #d78b75}
.rent-list-panel{padding:0!important;overflow:hidden}.rent-list-head{display:flex;justify-content:space-between;gap:12px;padding:16px}.rent-list-head .panel-title{justify-content:flex-start}.rent-list-head p{margin:3px 0 0}.rent-call-list{display:grid;gap:5px;padding:0 10px 10px}.rent-call{border:1px solid #315173;border-radius:10px;background:#102a52;color:#eef7ff;transition:border-color .16s ease,background-color .16s ease,box-shadow .16s ease}.rent-call.is-unpaid{border-color:#7a4050;background:#3a2031}.rent-call.is-partial{border-color:#7a6138;background:#392d24}.rent-call.is-settled{border-color:#315f58;background:#17384a}.rent-call:hover{border-color:#64dff0;background:#17385b;box-shadow:inset 4px 0 #64dff0}.rent-call-overview{display:grid;grid-template-columns:38px minmax(200px,1fr) minmax(180px,.8fr) minmax(92px,.42fr) minmax(100px,.48fr) minmax(365px,1.15fr);gap:14px;align-items:center;padding:14px 16px}.rent-status-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#f5b9b9;color:#8c2e2e}.is-partial .rent-status-icon{background:#f2c98c;color:#714600}.is-settled .rent-status-icon{background:#bde4cc;color:#146c43}.rent-identity,.rent-amount{display:grid;gap:2px;min-width:0}.rent-identity strong{overflow-wrap:anywhere}.rent-identity span,.rent-identity small,.rent-amount span,.rent-amount small{color:#a8c5df;font-size:.72rem;line-height:1.3}.rent-amount strong{color:#fff;font-size:1rem}.rent-remaining strong{color:#ffb4bf}.is-partial .rent-remaining strong{color:#ffd08a}.is-settled .rent-remaining strong{color:#91e4b3}.rent-amount,.rent-row-actions{position:relative}.rent-amount::before,.rent-row-actions::before{content:"";position:absolute;left:-7px;top:50%;width:1px;height:42px;transform:translateY(-50%);background:#57718b}.rent-row-actions{display:flex;justify-content:flex-end;gap:7px;flex-wrap:nowrap;min-width:0}.rent-row-actions form{margin:0}.rent-row-actions .button{min-height:40px;padding-inline:12px;font-size:.78rem}.rent-arrears-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:16px;padding:14px 16px;border-block:1px solid #8a6541;background:#31271f;color:#fff}.rent-arrears-heading>div{display:grid;gap:3px}.rent-arrears-heading small{color:#e8c79e}.rent-arrears-heading>span{display:grid;place-items:center;min-width:30px;height:30px;padding:0 8px;border-radius:999px;background:#f2bd62;color:#382306;font-weight:800}.rent-identity .rent-arrear-label{color:#ffd08a;font-weight:800}
.rent-call-details{display:grid;grid-template-columns:1.15fr .85fr;gap:14px;padding:0 16px 16px}.rent-detail-card{border:1px solid #aebcc3;border-radius:14px;padding:14px;background:#fff;color:#26333b}.rent-detail-card h3{display:flex;align-items:center;gap:7px;margin:0 0 12px;font-size:.94rem}.rent-detail-card h3 .ui-icon{width:18px;height:18px;color:#116777}.rent-payment-form{display:grid;grid-template-columns:120px 110px 130px minmax(170px,1fr) auto;gap:8px;align-items:end}.rent-payment-form label,.rent-edit-form label{display:block;margin:0 0 2px;font-size:var(--app-label-font-size)}.rent-payment-form :is(input,select),.rent-edit-form :is(input,textarea){width:100%}.rent-payment-list{margin-top:15px}.rent-payment-list h4{margin:0 0 6px;font-size:.8rem}.rent-payment-row{display:grid;grid-template-columns:95px 95px minmax(150px,1fr) auto;gap:8px;align-items:center;border-top:1px solid #d2dbe0;padding:7px 0;font-size:.75rem}.rent-payment-row small{color:#52636c;overflow-wrap:anywhere}.rent-edit-form{display:grid;grid-template-columns:repeat(4,minmax(80px,1fr));gap:8px;align-items:end}.rent-edit-note{grid-column:1/-1}.rent-edit-form button{grid-column:1/-1;justify-self:start}.rent-danger-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.rent-detail-card .help{margin:12px 0 0}
.receipt-toolbar{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-bottom:18px}.rent-receipt{max-width:210mm;min-height:260mm;margin:0 auto;padding:18mm;background:#fff;color:#17202a;box-shadow:0 20px 55px #0006;font-family:Arial,sans-serif;line-height:1.5}.rent-receipt header{text-align:center;border-bottom:2px solid #17202a;padding-bottom:12mm}.rent-receipt header p{margin:0}.rent-receipt h1{margin:6mm 0 2mm;text-transform:uppercase;letter-spacing:.06em}.receipt-parties{display:grid;grid-template-columns:1fr 1fr;gap:15mm;margin:12mm 0}.receipt-parties>div{border:1px solid #bcc5ca;padding:6mm}.receipt-parties span{display:block;margin-bottom:2mm;color:#5a6770;font-size:9pt;text-transform:uppercase}.receipt-parties p{margin:2mm 0 0}.rent-receipt table{width:100%;margin:12mm 0;border-collapse:collapse}.rent-receipt th,.rent-receipt td{border:1px solid #aab4bb;padding:4mm;text-align:left}.rent-receipt td:last-child,.rent-receipt th:last-child{text-align:right}.rent-receipt thead,.receipt-total{background:#e9eef1}.receipt-signature{min-height:35mm;margin-top:12mm;text-align:right;font-weight:700}
@media(max-width:1050px){.rent-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rent-call-overview{grid-template-columns:38px minmax(180px,1.2fr) minmax(150px,.8fr) minmax(90px,.45fr) minmax(95px,.5fr)}.rent-row-actions{grid-column:2/-1;justify-content:flex-start}.rent-row-actions::before{display:none}.rent-call-details{grid-template-columns:1fr}.rent-payment-form{grid-template-columns:repeat(3,1fr)}.rent-payment-note{grid-column:1/-1}.rent-payment-form button{grid-column:1/-1;justify-self:start}}
@media(max-width:700px){.rents-page-head{align-items:stretch}.rent-month-picker{width:100%}.rent-month-controls{grid-template-columns:42px minmax(0,1fr) 42px}.rent-month-picker input{grid-column:2;grid-row:1;min-width:0;height:44px;font-size:16px}.rent-month-previous{grid-column:1;grid-row:1}.rent-month-next{grid-column:3;grid-row:1}.rent-month-submit{grid-column:1/-1;grid-row:2}.rent-summary-grid{grid-template-columns:1fr 1fr;gap:9px}.rent-summary-card{min-height:90px}.rent-summary-card strong{font-size:1.1rem}.rent-call-overview{grid-template-columns:34px 1fr;gap:9px}.rent-identity{grid-column:2}.rent-amount,.rent-call-overview .rent-remaining{grid-column:auto}.rent-call-overview .rent-amount:first-of-type{grid-column:2}.rent-amount::before,.rent-row-actions::before{display:none}.rent-row-actions{grid-column:1/-1;justify-content:flex-start;flex-wrap:wrap}.rent-call-details{padding:0 10px 10px}.rent-payment-form,.rent-edit-form{grid-template-columns:1fr}.rent-payment-note,.rent-edit-note,.rent-payment-form button,.rent-edit-form button{grid-column:1}.rent-payment-form :is(input,select),.rent-edit-form :is(input,textarea){font-size:16px}.rent-payment-row{grid-template-columns:1fr auto}.rent-payment-row small{grid-column:1/-1}.rent-payment-row form{grid-column:2;grid-row:1/3}.rent-receipt{min-height:0;margin:0;padding:8mm}.receipt-parties{grid-template-columns:1fr;gap:5mm}}
@media print{.shell-sidebar,.shell-topbar,.no-print{display:none!important}.shell-content.container{margin:0!important;padding:0!important;max-width:none!important}.rent-receipt{box-shadow:none;margin:0;padding:12mm;max-width:none;min-height:0}.rent-receipt a{color:inherit;text-decoration:none}}

/* Messagerie et file d'envoi Gmail */
.sidebar-counter{display:grid;place-items:center;min-width:22px;height:22px;margin-left:auto;padding:0 6px;border-radius:999px;background:var(--section-color);color:#111827;font-size:.68rem;font-weight:800;line-height:1;box-shadow:none}
.sidebar-counter-danger,.sidebar-counter-reviews{background:var(--section-color);color:#111827}
.mail-page-head{align-items:center}.mail-connection{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px;border-left:5px solid #d2a235;background:#e2e8f0;color:#26333b}.mail-connection.is-connected{border-left-color:var(--bs-success)}.mail-connection .panel-title{justify-content:flex-start;margin-bottom:3px}.mail-connection p{margin:0}.mail-connection code{color:#164b56}.mail-connection-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.mail-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:16px}.mail-tabs a{display:flex;align-items:center;gap:9px;min-height:52px;padding:10px 14px;border:1px solid #405462;border-radius:12px;background:#152431;color:#c9d7e0}.mail-tabs a:hover,.mail-tabs a[aria-current=page]{border-color:var(--color-mail);background:#1c3945;color:#fff}.mail-tabs a strong{display:grid;place-items:center;min-width:25px;height:25px;margin-left:auto;padding:0 6px;border-radius:999px;background:#e2e8f0;color:#26333b;font-size:.75rem}
.mail-layout{display:grid;grid-template-columns:minmax(330px,.8fr) minmax(480px,1.2fr);gap:16px;align-items:start}.mail-list-panel,.mail-editor-panel{padding:0!important;overflow:hidden;background:#e2e8f0;color:#26333b}.mail-list-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px}.mail-list-heading .panel-title{justify-content:flex-start;margin:0}.mail-list-heading .help{margin:3px 0 0;color:#52636c}.mail-list{display:grid;border-top:1px solid #aebcc3}.mail-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;padding:13px 15px;border-bottom:1px solid #c5d0d7;background:#eef2f5;color:#26333b}.mail-row:hover,.mail-row.is-selected{background:#d7edf1}.mail-row.is-selected{box-shadow:inset 4px 0 var(--color-mail)}.mail-row-icon{display:grid;place-items:center;color:#116777}.mail-row-main{display:grid;gap:4px;min-width:0}.mail-row-main strong,.mail-row-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mail-row-main small,.mail-row-meta small{color:#52636c;font-size:.72rem}.mail-row-meta{display:grid;justify-items:end;gap:5px}.mail-row-meta em{display:flex;align-items:center;gap:3px;color:#52636c;font-size:.7rem;font-style:normal}.mail-row-meta .ui-icon{width:14px;height:14px}
.mail-editor-panel{padding:18px!important}.mail-editor-panel>.panel-title{justify-content:flex-start}.mail-editor-form{display:grid}.mail-editor-form label{color:#26333b}.mail-editor-form :is(input,textarea){width:100%;border-color:#aebcc3;background:#fff;color:#26333b}.mail-editor-form textarea{min-height:190px;padding:10px;resize:vertical}.mail-editor-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px}.mail-attachments{display:grid;gap:7px;margin-top:14px}.mail-attachments>strong{font-size:.82rem}.mail-attachments>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid #bdc9d0;border-radius:9px;background:#fff}.mail-attachments span{display:flex;align-items:center;gap:7px;min-width:0}.mail-attachments small{color:#52636c}.mail-attachments .ui-icon{width:17px;height:17px}.mail-editor-panel .notice.error{background:#f8d7da;color:#842029;border-color:#f1aeb5}
.mail-recipient-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:2px 0 8px}.mail-recipient-heading strong{font-size:.88rem}.mail-recipient-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.mail-recipient-help{margin:5px 0 10px!important}.mail-recipient-dialog{width:min(820px,calc(100% - 24px));max-height:min(780px,calc(100vh - 30px));padding:0;border:1px solid #607481;border-radius:18px;background:#e2e8f0;color:#26333b;box-shadow:0 28px 90px #0009}.mail-recipient-dialog::backdrop{background:#06101bd1;backdrop-filter:blur(3px)}.mail-recipient-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px 10px}.mail-recipient-dialog-head h2{display:flex;align-items:center;gap:8px;margin:2px 0 0;font-size:1.2rem}.mail-recipient-dialog>label,.mail-recipient-dialog>.help{display:block;margin:0 20px 5px}.mail-recipient-search{display:flex;align-items:center;gap:8px;margin:0 20px 10px;padding:0 10px;border:1px solid #aebcc3;border-radius:9px;background:#fff}.mail-recipient-search input{width:100%;border:0!important;background:transparent!important}.mail-recipient-search input:focus{outline:0}.mail-recipient-tools,.mail-recipient-dialog-actions{display:flex;flex-wrap:wrap;gap:8px;padding:0 20px 12px}.mail-recipient-list{max-height:360px;overflow:auto;border-block:1px solid #bdc9d0;background:#f4f7f9}.mail-recipient-row{display:flex!important;align-items:center;gap:12px;margin:0!important;padding:10px 20px;border-bottom:1px solid #d4dde2;cursor:pointer}.mail-recipient-row:hover{background:#d7edf1}.mail-recipient-row input{width:18px!important;height:18px}.mail-recipient-row span{display:grid;gap:2px}.mail-recipient-row small{color:#52636c}.mail-recipient-dialog>.help{padding:10px 0}.mail-recipient-dialog-actions{justify-content:flex-end;padding-bottom:18px}.mail-admin-settings{margin-top:18px;border:1px solid #324654;border-radius:12px;background:#111f2b;color:#bfcfd9}.mail-admin-settings summary{display:flex;align-items:center;gap:8px;padding:11px 14px;cursor:pointer;font-size:.76rem}.mail-admin-settings summary .ui-icon{width:17px;height:17px}.mail-admin-settings>div{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:0 14px 14px}.mail-admin-settings p{margin:0 auto 0 0;font-size:.76rem}.mail-admin-settings form{margin:0}
.mail-list-panel .mail-row-main .mail-row-error{color:#a32732!important;font-weight:750}
@media(max-width:950px){.mail-layout{grid-template-columns:1fr}.mail-list-panel{max-height:430px;overflow:auto}}
@media(max-width:600px){.mail-page-head{align-items:stretch}.mail-page-head>.button{width:100%}.mail-connection{align-items:stretch;flex-direction:column}.mail-tabs{grid-template-columns:1fr}.mail-row{grid-template-columns:30px minmax(0,1fr)}.mail-row-meta{grid-column:2;justify-items:start}.mail-editor-actions .button{width:100%}.mail-recipient-heading{align-items:stretch;flex-direction:column}.mail-recipient-grid{grid-template-columns:1fr}.mail-recipient-dialog-actions .button,.mail-recipient-tools .button{width:100%}.mail-admin-settings>div{align-items:stretch;flex-direction:column}.mail-admin-settings p{margin-right:0}.mail-admin-settings .button,.mail-admin-settings form,.mail-admin-settings form button{width:100%}}

/* Tableau de bord : grille sombre commune et listes d'échéances. */
.dashboard-stage{position:relative;isolation:isolate;margin:-8px -8px 0;padding:22px;border:1px solid #203b67;border-radius:22px;background:radial-gradient(circle at 78% 8%,#153d7e80 0,transparent 32%),radial-gradient(circle at 12% 45%,#0c6d8170 0,transparent 28%),linear-gradient(145deg,#07152f,#0b2249 55%,#081a38);box-shadow:inset 0 1px #79caff1c,0 20px 50px #02081766;overflow:hidden}
.dashboard-stage::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.13;background-image:linear-gradient(#7dd3fc22 1px,transparent 1px),linear-gradient(90deg,#7dd3fc22 1px,transparent 1px);background-size:36px 36px;mask-image:linear-gradient(to bottom,#000,transparent 78%)}
.dashboard-stage .dashboard-heading{margin-bottom:22px}.dashboard-stage .dashboard-heading h1{color:#f8fbff}.dashboard-stage .dashboard-heading .muted,.dashboard-stage .dashboard-date{color:#a8c5df}
.dashboard-grid-modern{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.dashboard-stage .dashboard-card-modern{--card-accent:#5ee7f0;position:relative;display:grid;grid-template-columns:88px minmax(0,1fr);align-items:center;gap:16px;min-height:190px;padding:18px;border:1px solid color-mix(in srgb,var(--card-accent) 34%,#29476e);border-radius:17px;background:linear-gradient(145deg,#112b58e8,#0a1d43ed);color:#edf8ff;color-scheme:dark;box-shadow:inset 0 1px #ffffff12,0 12px 28px #02081752;overflow:hidden;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.dashboard-stage .dashboard-card-modern::after{content:"";position:absolute;inset:auto -40px -70px auto;width:150px;height:150px;border-radius:50%;background:var(--card-accent);opacity:.08;filter:blur(6px)}
.dashboard-stage a.dashboard-card-modern:hover,.dashboard-stage a.dashboard-card-modern:focus-visible{transform:translateY(-3px);border-color:var(--card-accent);background:linear-gradient(145deg,#153566,#0b2551);box-shadow:0 16px 38px #02081780,0 0 0 1px color-mix(in srgb,var(--card-accent) 35%,transparent)}
.dashboard-stage .dashboard-card-modern{--card-accent:var(--section-color,#5ee7f0)}
.dashboard-visual{display:grid;place-items:center;width:88px;height:112px;border-radius:18px;background:linear-gradient(145deg,#ffffff16,#ffffff05);border:1px solid #ffffff16}.dashboard-visual img{display:block;width:94px;max-width:112%;height:104px;object-fit:contain;filter:drop-shadow(0 10px 10px #0007)}
.dashboard-card-content{display:flex;flex-direction:column;align-items:flex-start;min-width:0}.dashboard-kicker{margin-bottom:8px;color:var(--card-accent);font-size:.64rem;font-weight:750;letter-spacing:.1em}.dashboard-stage .dashboard-card-modern .dashboard-value,.dashboard-money{margin:0;color:#fff;font-size:2.25rem;font-weight:780;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.04em}.dashboard-money{font-size:1.62rem;white-space:nowrap}.dashboard-card-title{margin-top:7px;color:#f7fbff;font-size:1rem;font-weight:700}.dashboard-stage .dashboard-card-modern .dashboard-description{margin:7px 0 0;color:#a8c5df;font-size:.74rem;line-height:1.42}.dashboard-corner{position:absolute;top:14px;right:14px;color:var(--card-accent);opacity:.85}.dashboard-corner .ui-icon{width:17px;height:17px}.dashboard-count-badge{position:absolute;right:13px;bottom:13px;display:grid;place-items:center;min-width:25px;height:25px;padding:0 7px;border-radius:999px;background:var(--card-accent);color:#071529;font-size:.73rem;font-weight:800;box-shadow:none}
.dashboard-rent-card{grid-template-columns:72px minmax(0,1fr) 76px}.dashboard-rent-card .dashboard-visual{width:72px}.dashboard-rent-card .dashboard-visual img{width:82px}.dashboard-donut{display:grid;place-items:center;width:76px;height:76px;border-radius:50%;background:conic-gradient(var(--card-accent) var(--dashboard-progress),#284264 0);box-shadow:0 0 22px color-mix(in srgb,var(--card-accent) 24%,transparent)}.dashboard-donut::before{content:"";grid-area:1/1;width:56px;height:56px;border-radius:50%;background:#0c2148}.dashboard-donut>span{z-index:1;grid-area:1/1;display:grid;text-align:center}.dashboard-donut strong{color:#fff!important;font-size:.9rem}.dashboard-donut small{color:#9ebbd3;font-size:.55rem;text-transform:uppercase}
.dashboard-followup-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.dashboard-stage .dashboard-followup{margin-top:16px;padding:20px;border:1px solid #2b527a;background:linear-gradient(145deg,#102a52f2,#0b1e40f2);color:#eef7ff;color-scheme:dark;box-shadow:0 12px 28px #02081745}.dashboard-stage .dashboard-section-head{margin-bottom:13px}.dashboard-stage .dashboard-section-head h2,.dashboard-stage .dashboard-section-head h2 .ui-icon{color:#f4f9ff}.dashboard-stage .dashboard-section-head .eyebrow{color:#6edff0}.dashboard-panel-count{display:grid;place-items:center;min-width:38px;height:38px;padding:0 10px;border:1px solid #58d6e7;border-radius:12px;background:#143b62;color:#9df2f7;font-weight:800}.dashboard-stage .dashboard-followup-row{border-color:#315173}.dashboard-stage .dashboard-followup-row strong{color:#f4f9ff}.dashboard-stage .dashboard-followup-row p,.dashboard-stage .insurance-summary{color:#a8c5df}.dashboard-stage .dashboard-followup .insurance-summary strong{color:#f4f9ff}.dashboard-stage .followup-icon{color:#6edff0}.dashboard-stage .dashboard-followup .button.secondary{border-color:#43698a;background:#17375b;color:#eaf7ff}.dashboard-stage .dashboard-followup .button.secondary:hover{border-color:#64dff0;background:#1c496d}.dashboard-empty{display:flex;align-items:center;gap:9px;margin:18px 0 5px;color:#9fd9c0}.dashboard-empty .ui-icon{width:19px;height:19px}
@media(max-width:1180px){.dashboard-grid-modern{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.dashboard-stage{margin:0;padding:15px}.dashboard-grid-modern,.dashboard-followup-grid{grid-template-columns:1fr}.dashboard-stage .dashboard-card-modern{min-height:170px;grid-template-columns:74px minmax(0,1fr);padding:15px}.dashboard-visual{width:74px;height:96px}.dashboard-visual img{width:82px;height:90px}.dashboard-rent-card{grid-template-columns:62px minmax(0,1fr) 66px}.dashboard-rent-card .dashboard-visual{width:62px}.dashboard-donut{width:66px;height:66px}.dashboard-donut::before{width:48px;height:48px}.dashboard-money{font-size:1.35rem}}
@media(max-width:420px){.dashboard-stage .dashboard-card-modern{grid-template-columns:64px minmax(0,1fr);gap:12px}.dashboard-visual{width:64px}.dashboard-rent-card{grid-template-columns:54px minmax(0,1fr) 58px}.dashboard-rent-card .dashboard-visual{width:54px}.dashboard-donut{width:58px;height:58px}.dashboard-donut::before{width:42px;height:42px}.dashboard-donut strong{font-size:.75rem}.dashboard-stage .dashboard-card-modern .dashboard-description{font-size:.68rem}}

/* Encadrés bleus communs à l'ensemble de l'application. */
body :is(.panel,.module-card,.lease-detail-card,.inspection-item,.rent-detail-card){border-color:#2b527a;background:linear-gradient(145deg,#102a52f2,#0b1e40f2);color:#eef7ff;color-scheme:dark;box-shadow:inset 0 1px #ffffff10,0 12px 28px #0208173d}
body :is(.panel,.module-card,.lease-detail-card,.inspection-item,.rent-detail-card) :is(h2,h3,h4,label,legend,strong):not(.ql-editor *){color:#f4f9ff}
body :is(.panel,.module-card,.lease-detail-card,.inspection-item,.rent-detail-card) :is(.muted,.help,small){color:#a8c5df}
body :is(.panel,.lease-detail-card,.inspection-item,.rent-detail-card) :is(input:not([type="radio"]):not([type="checkbox"]),select,textarea){border-color:#8da8ba;background:#f8fbff;color:#26333b;color-scheme:light}
body :is(.panel,.module-card) :is(.location-row,.inventory-row,.document-row,.dashboard-followup-row,.search-result,.user-row){border-color:#315173}
body :is(.rent-summary-card,.lease-summary-card) :is(span,small),body .panel .location-row span{color:#a8c5df}
body .mail-row :is(strong,label){color:#26333b}
body .rent-call.is-unpaid .rent-remaining strong{color:#ffb4bf}
body .rent-call.is-partial .rent-remaining strong{color:#ffd08a}
body .rent-call.is-settled .rent-remaining strong{color:#91e4b3}
body .mail-attachments>div,body .mail-attachments>div span{color:#26333b}
body .mail-list-panel .mail-row-main strong{color:#26333b!important}
body .mail-list-panel .mail-row-main small,
body .mail-list-panel .mail-row-meta small,
body .mail-list-panel .mail-row-meta em{color:#52636c!important}

/* Cartes d'accueil : hauteur fixe, illustration sur le quart gauche. */
.dashboard-stage .dashboard-card-modern{grid-template-columns:25% minmax(0,1fr);height:200px;min-height:200px;max-height:200px}
.dashboard-stage .dashboard-visual{width:100%;height:100%;border:0;border-radius:0;background:transparent}
.dashboard-stage .dashboard-visual img{width:100%;max-width:150px;height:150px;object-fit:contain}
.dashboard-stage .dashboard-rent-card{grid-template-columns:25% minmax(0,1fr) 76px}
.dashboard-stage .dashboard-rent-card .dashboard-visual{width:100%}
.dashboard-stage .dashboard-rent-card .dashboard-visual img{width:100%;max-width:135px}
.dashboard-stage .dashboard-count-badge{right:14px;bottom:14px;min-width:38px;height:38px;padding:0 11px;border:2px solid #ffffff33;font-size:.9rem;box-shadow:none}
.dashboard-stage .dashboard-count-badge .ui-icon{width:21px;height:21px;stroke-width:3}
.dashboard-stage .dashboard-count-badge.is-ok{background:#28a86b;border-color:#84e5b6;color:#fff;box-shadow:none}
.dashboard-card-coming{cursor:default}.dashboard-coming-label{position:absolute;right:14px;bottom:14px;padding:6px 10px;border:1px solid color-mix(in srgb,var(--card-accent) 65%,#fff);border-radius:999px;background:#102b4f;color:var(--card-accent);font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
@media(max-width:760px){.dashboard-stage .dashboard-card-modern{grid-template-columns:25% minmax(0,1fr);height:200px;min-height:200px;max-height:200px}.dashboard-stage .dashboard-rent-card{grid-template-columns:25% minmax(0,1fr) 66px}.dashboard-stage .dashboard-visual,.dashboard-stage .dashboard-rent-card .dashboard-visual{width:100%;height:100%}.dashboard-stage .dashboard-visual img{width:100%;height:135px}}
@media(max-width:420px){.dashboard-stage .dashboard-card-modern{grid-template-columns:25% minmax(0,1fr);gap:10px}.dashboard-stage .dashboard-rent-card{grid-template-columns:23% minmax(0,1fr) 58px}.dashboard-stage .dashboard-card-modern .dashboard-value{font-size:1.9rem}.dashboard-stage .dashboard-visual img{height:118px}}

/* Réglages rapides des horizons de renouvellement et d'IRL. */
.dashboard-card-slot{position:relative;min-width:0;height:200px}
.dashboard-card-slot>.dashboard-card-modern{width:100%;height:200px}
.dashboard-stage .dashboard-money{color:#fff!important;text-shadow:0 2px 12px #0008}
.dashboard-card-settings{position:absolute;z-index:8;top:10px;left:10px}
.dashboard-card-settings summary{display:grid;place-items:center;width:34px;height:34px;border:1px solid #72d9ea80;border-radius:10px;background:#0b224be8;color:#b8f4fb;box-shadow:0 6px 18px #02081780;cursor:pointer;list-style:none}
.dashboard-card-settings summary::-webkit-details-marker{display:none}.dashboard-card-settings summary .ui-icon{width:18px;height:18px}
.dashboard-card-settings[open] summary{border-color:#72d9ea;background:#17486d;color:#fff}
.dashboard-card-settings>div{position:absolute;top:42px;left:0;display:grid;grid-template-columns:repeat(3,auto);gap:7px;width:190px;padding:11px;border:1px solid #4f7798;border-radius:12px;background:#0b1e40f7;box-shadow:0 18px 40px #020817c4}
.dashboard-card-settings>div strong{grid-column:1/-1;color:#eaf7ff;font-size:.72rem}.dashboard-card-settings>div a{display:grid;place-items:center;min-height:31px;padding:0 8px;border:1px solid #3c607f;border-radius:8px;color:#bcd1e3;font-size:.72rem;white-space:nowrap}.dashboard-card-settings>div a:hover,.dashboard-card-settings>div a.is-active{border-color:#64dff0;background:#1a526f;color:#fff}


/* Logements : ERP 1, ERP 2 et Autre restent visibles simultanément. */
.apartment-filters{grid-template-columns:minmax(240px,1fr) auto auto}
.apartment-filters .location-check{color:#fff!important}
.apartment-column-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}
.apartment-column{min-width:0;margin-bottom:0}
.apartment-column .location-list-head{gap:12px;padding-bottom:12px;border-bottom:1px solid #315173}
.apartment-column .panel-title{gap:9px}
.apartment-column-count{display:grid;place-items:center;min-width:29px;height:29px;margin-left:5px;padding:0 8px;border-radius:999px;background:#1b526d;color:#d7fbff;font-size:.76rem}
.apartment-column .location-list{margin-top:2px}
.apartment-column .apartment-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:8px 11px;align-items:start;padding:14px 0}
.apartment-column .location-code{grid-column:1;grid-row:1/3}
.apartment-column .location-main{grid-column:2;grid-row:1}
.apartment-column .location-main span{font-size:.75rem;line-height:1.35}
.apartment-column .location-meta{grid-column:2;grid-row:2;white-space:normal;font-size:.74rem}
.apartment-column .location-row-actions{grid-column:3;grid-row:1/3;align-self:center}
.apartment-column .location-empty{padding:28px 10px}
@media(max-width:1100px){.apartment-column-grid{grid-template-columns:1fr}.apartment-column .apartment-row{grid-template-columns:38px minmax(0,1fr) auto}.apartment-column .location-main span{font-size:.8rem}}
@media(max-width:600px){.apartment-filters{grid-template-columns:1fr}.apartment-column .apartment-row{grid-template-columns:38px minmax(0,1fr) auto}.apartment-column .location-meta{width:auto;padding-left:0}}

/* Cautions : synthèse et listes des dossiers à traiter. */
.deposit-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:16px}
.deposit-summary-card{display:grid;gap:5px;min-height:118px;border-top:4px solid #f2bd62}.deposit-summary-card.is-refund{border-top-color:#ef9c84}.deposit-summary-card>span,.deposit-summary-card>small{color:#a8c5df}.deposit-summary-card>strong{font-size:1.8rem}
.deposit-followup-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}.deposit-list-panel{padding:20px}.deposit-list-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:8px}.deposit-list-head .panel-title{justify-content:flex-start;margin:0}.deposit-row{display:flex;align-items:center;gap:13px;padding:16px 0;border-top:1px solid #315173}.deposit-row>div{flex:1;min-width:0}.deposit-row p{margin:5px 0 0;color:#a8c5df;font-size:.78rem;line-height:1.45}.deposit-row-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#173b61;color:#f2bd62}.deposit-row .button{flex:none}
.deposit-followup-row{grid-template-columns:40px minmax(150px,1fr) minmax(155px,.9fr) auto;padding-inline:8px}.deposit-followup-row .followup-detail{grid-column:auto}.deposit-list-head .dashboard-panel-count{width:34px;min-width:34px;height:34px;padding:0;border-radius:50%}
.insurance-followup-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.followup-row.insurance-followup-row{grid-template-columns:minmax(135px,1fr) minmax(145px,.95fr) auto;gap:10px;padding-inline:4px}.followup-row.insurance-followup-row .followup-detail{grid-column:auto}.followup-row.insurance-followup-row .followup-arrow{grid-column:auto;grid-row:auto}.insurance-followup-panel{min-width:0;overflow:hidden}.insurance-followup-panel.is-expiring{border-top:3px solid #77c9f2}.insurance-followup-panel.is-expired{border-top:3px solid #ef9c84}.insurance-followup-panel.is-missing{border-top:3px solid #f2bd62}.section-insurance .page-title-icon{color:var(--color-insurance)}.sidebar-counter-insurance{background:#8ed8f7!important;color:#0a3350!important;box-shadow:none!important}
@media(max-width:1050px){.insurance-followup-grid{grid-template-columns:1fr}}
@media(max-width:600px){.followup-row.insurance-followup-row{grid-template-columns:minmax(0,1fr) auto}.followup-row.insurance-followup-row .followup-detail{grid-column:1}.followup-row.insurance-followup-row .followup-arrow{grid-column:2;grid-row:1/3}}
@media(max-width:1050px){.deposit-followup-grid{grid-template-columns:1fr}}
@media(max-width:600px){.deposit-summary-grid{grid-template-columns:1fr}.deposit-row{display:grid;grid-template-columns:36px minmax(0,1fr)}.deposit-row .button{grid-column:2;justify-self:start}}

/* Listes communes des cautions et des révisions. */
.followup-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:16px}.followup-tabs a{display:flex;align-items:center;gap:9px;min-height:52px;padding:10px 14px;border:1px solid #405b7a;border-radius:12px;background:#102a52;color:#dcecff}.followup-tabs a:hover,.followup-tabs a[aria-current="page"]{border-color:#64dff0;background:#19406b;color:#fff}.followup-tabs a strong{display:grid;place-items:center;min-width:28px;height:28px;margin-left:auto;padding:0 7px;border-radius:999px;background:#7dd3fc;color:#10243a;font-size:.72rem}.followup-list-panel{padding:20px}.followup-list{display:grid}.followup-row{display:grid;grid-template-columns:40px minmax(220px,1fr) minmax(250px,.8fr) auto auto;align-items:center;gap:14px;padding:16px;border-top:1px solid #315173;border-radius:10px;color:#eef7ff;cursor:pointer}.followup-row:hover,.followup-row:focus-visible{background:#17385b;box-shadow:inset 4px 0 #64dff0;outline:none}.followup-identity,.followup-detail{display:grid;gap:5px;min-width:0}.followup-identity>span,.followup-detail>span,.followup-detail>small{color:#a8c5df;font-size:.78rem}.followup-phones{display:flex;flex-wrap:wrap;gap:6px 12px}.followup-arrow{color:#7dd3fc}.review-row .deposit-row-icon{color:#d8b4fe}.review-amounts strong{color:#fff;font-size:1rem}.review-action{display:grid;gap:6px;margin:0}.review-action form{margin:0}.review-horizon{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.review-horizon>span{color:#a8c5df;font-size:.76rem}.review-horizon .button{min-height:34px;padding:5px 10px}
.renewal-row .deposit-row-icon{color:var(--color-leases)}.renewal-row.is-overdue{background:#4b27304d}.renewal-row.is-overdue .followup-detail strong{color:#ffb4b4}
.renewal-action{position:relative}.renewal-action details{position:relative}.renewal-action summary{list-style:none;cursor:pointer}.renewal-action summary::-webkit-details-marker{display:none}.renewal-action details[open] summary{border-color:#7dd3fc}.renewal-action form{position:absolute;z-index:20;right:0;top:calc(100% + 8px);display:grid;gap:9px;width:min(370px,80vw);padding:15px;border:1px solid #64dff0;border-radius:13px;background:#102a52;box-shadow:0 16px 36px #020817aa}.renewal-action form label{color:#fff;font-weight:700;font-size:.82rem}.renewal-action form>div{display:grid;grid-template-columns:90px minmax(0,1fr);gap:8px}.renewal-action form input{min-width:0}.renewal-action form small{color:#a8c5df;line-height:1.4}
@media(max-width:980px){.followup-row{grid-template-columns:40px minmax(0,1fr) auto}.followup-detail{grid-column:2}.review-action{grid-column:2}.followup-arrow{grid-column:3;grid-row:1/3}}
@media(max-width:600px){.followup-tabs{grid-template-columns:1fr 1fr}.followup-tabs a{padding:9px;font-size:.72rem}.followup-tabs a .ui-icon{display:none}.followup-row{grid-template-columns:36px minmax(0,1fr) auto;padding:13px 8px}.review-action .button{width:100%}.page-head .review-horizon{width:100%}.renewal-action{grid-column:2}.renewal-action form{position:fixed;top:50%;right:16px;left:16px;width:auto;transform:translateY(-50%)}.renewal-action form>div{grid-template-columns:1fr}.renewal-action .button{width:100%}}
.lease-irl-subtitle{margin:10px 0 5px;color:#fff;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.035em}
.review-setup-panel{margin-top:16px}.review-row.is-setup{background:#162b4d}.review-row.is-setup .deposit-row-icon{color:#f8c05d}.review-row.is-setup:hover{background:#1b365e;box-shadow:inset 4px 0 #f8c05d}

/* La ligne complète d'un locataire ouvre son dossier. */
.tenant-row[role="link"]{color:inherit;text-decoration:none;cursor:pointer;padding-inline:16px;border-radius:11px;transition:background .15s ease,box-shadow .15s ease}
.tenant-row[role="link"]:hover,.tenant-row[role="link"]:focus-visible{background:#17385b;box-shadow:inset 3px 0 var(--color-tenants);outline:none}
.tenant-row .tenant-name{display:block;color:#fff!important}

/* Locataires : compteurs par immeuble et libellé des anciens dossiers. */
.tenant-filters .location-check{color:#fff!important}
.building-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;overflow:visible}
.building-tabs button{position:relative;display:flex;align-items:center;justify-content:center;min-width:0;padding:12px 31px 12px 10px;white-space:nowrap}
.building-tabs .tenant-building-count{position:absolute;top:3px;right:5px;display:grid;place-items:center;box-sizing:border-box;width:25px!important;min-width:25px!important;max-width:25px!important;height:25px!important;min-height:25px!important;margin:0!important;padding:0!important;border:0!important;border-radius:50%!important;background:#7dd3fc!important;color:#10243a!important;font-size:.64rem;font-weight:850;line-height:25px!important;white-space:nowrap!important;box-shadow:0 2px 8px #38bdf855}
.building-tabs button[aria-selected="true"] .tenant-building-count{background:#7dd3fc!important;color:#10243a!important}

/* Variante sombre commune : gris clair et texte noir sur tout le site. */
.button.dark,.button.secondary.dark{border-color:#b9c1c7;background:#dce1e5;color:#111}
.button.dark:hover,.button.dark:focus-visible,.button.secondary.dark:hover,.button.secondary.dark:focus-visible{border-color:#d5dadd;background:#eef1f3;color:#000}

/* Dossier locataire : documents séparés et navigation guidée. */
.tenant-document-workspace,.inventory-workspace{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.75fr);gap:16px;align-items:start}
.tenant-document-workspace>.panel,.inventory-workspace>.panel{margin-bottom:0}
.tenant-document-upload-panel{position:sticky;top:20px}
.inspection-create-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.inspection-create-grid .button{width:100%;white-space:normal;text-align:center}
.tenant-save-actions{gap:10px;flex-wrap:wrap}
.tenant-person-footer .location-check,.lease-review-check,.archive-action-card p,.archive-action-card li,.archive-action-card .location-check{color:#fff!important}

/* Liste des locataires : téléphone rapide, statuts et dossiers sortis. */
.tenant-name-line{display:flex;align-items:center;gap:13px;flex-wrap:wrap}
.tenant-location-line{display:block;margin-top:5px;color:#c7dceb!important;font-size:.79rem;font-weight:650}
.tenant-phone-list{display:inline-flex!important;align-items:center;gap:10px;flex-wrap:wrap;margin:0!important}
.tenant-phone-link{display:inline-flex!important;align-items:center;gap:5px;margin:0!important;color:#8fe8f2!important;font-size:.84rem;font-weight:750;white-space:nowrap;text-decoration:underline;text-underline-offset:3px}
.tenant-phone-link .ui-icon{width:16px;height:16px}
.tenant-row.is-departed{background:#2a2449}
.tenant-row.is-departed:hover,.tenant-row.is-departed:focus-visible{background:#352b5c;box-shadow:inset 4px 0 #c6a5ff}
.tenant-row.is-archived{background:#202b36;opacity:.88}
.tenant-row.is-archived:hover,.tenant-row.is-archived:focus-visible{background:#293745;box-shadow:inset 4px 0 #94a3b8}
.location-row .tenant-badge.alert-insurance{border-color:#e3a008;background:#facc15;color:#332400}
.location-row .tenant-badge.alert-deposit{border-color:#e6819a;background:#f8c3d0;color:#641c31}
.location-row .tenant-badge.alert-refund{border-color:#b692e8;background:#d8c1f4;color:#3d1e63}
.location-row .tenant-badge.status-departed{border-color:#8da3b4;background:#dce3e8;color:#26333b}

@media(max-width:900px){.tenant-document-workspace,.inventory-workspace{grid-template-columns:1fr}.tenant-document-upload-panel{position:static}}
@media(max-width:600px){.inspection-create-grid{grid-template-columns:1fr}.building-tabs{grid-template-columns:repeat(3,minmax(0,1fr));flex-wrap:nowrap}.building-tabs button{padding-inline:6px 28px;font-size:.78rem}.building-tabs .tenant-building-count{top:2px;right:3px;width:23px!important;min-width:23px!important;max-width:23px!important;height:23px!important;min-height:23px!important;font-size:.59rem;line-height:23px!important}.tenant-name-line{align-items:flex-start;flex-direction:column;gap:5px}.tenant-phone-list{align-items:flex-start;flex-direction:column;gap:5px}.tenant-phone-link{font-size:.9rem}}

/* Modèles de documents : constructeur A4 libre, utilisable aussi sur téléphone. */
.document-letterhead-settings{margin-bottom:16px;padding:18px}.document-letterhead-settings>summary{display:flex;align-items:center;gap:9px;color:#fff;font-weight:800;cursor:pointer}.document-letterhead-settings>form{display:grid;grid-template-columns:minmax(240px,1fr) auto;align-items:end;gap:10px 16px;margin-top:14px}.document-letterhead-settings>form label,.document-letterhead-settings>form .help{grid-column:1}.document-template-layout{display:grid;grid-template-columns:245px minmax(0,1fr);gap:16px;align-items:start}.document-template-list{padding:14px;position:sticky;top:18px}.document-template-list-head{display:flex;align-items:center;justify-content:space-between;padding:6px 6px 12px}.document-template-list-head h2{margin:0}.document-template-list-head>strong{display:grid;place-items:center;min-width:30px;height:30px;border-radius:999px;background:#7dd3fc;color:#10243a}.document-template-list>a{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px;border-top:1px solid #315173;border-radius:9px;color:#eaf5ff}.document-template-list>a:hover,.document-template-list>a[aria-current="page"]{background:#17385b;box-shadow:inset 3px 0 #64dff0}.document-template-list>a span{display:grid;gap:3px}.document-template-list>a small{color:#a8c5df;font-size:.72rem}.document-template-list>a .ui-icon{width:16px}.document-builder-panel{padding:18px}.document-builder-heading{display:flex;align-items:start;justify-content:space-between;gap:16px}.document-builder-heading h2{margin:0}.document-page-controls{display:flex;align-items:center;gap:8px}.document-page-controls>strong{white-space:nowrap;color:#dff7ff}.document-template-fields{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;margin:12px 0 18px}.document-template-fields label{margin-top:0}.document-builder-workspace{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:16px;align-items:start}.document-canvas-column{min-width:0}.document-canvas-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}.document-canvas-toolbar>span{margin-left:auto;color:#a8c5df;font-size:.74rem}.document-page-scroll{width:100%;max-height:74vh;overflow:auto;padding:14px;border:1px solid #315173;border-radius:14px;background:#08162d}.document-page{position:relative;width:794px;height:1123px;overflow:hidden;background-color:#fff;background-position:center;background-repeat:no-repeat;background-size:100% 100%;box-shadow:0 12px 35px #0009;color:#111;touch-action:none}.document-text-block{position:absolute;display:block;overflow:hidden;margin:0;padding:3px;border:1px dashed transparent;background:#69cdf20c;color:#111;font-family:Arial,sans-serif;line-height:1.25;white-space:pre-wrap;cursor:move;touch-action:none}.document-text-block:hover{border-color:#48a9cf}.document-text-block.is-selected{border:2px solid #1298c9;background:#5ad7ff1f;box-shadow:0 0 0 2px #fff8}.document-inspector{display:grid;gap:10px;position:sticky;top:18px;padding:15px;border:1px solid #315173;border-radius:14px;background:#0b2143}.document-inspector h3{display:flex;align-items:center;gap:8px;margin:0;color:#fff}.document-inspector textarea{width:100%;padding:10px;border:1px solid #8da8ba;border-radius:9px;background:#fff;color:#26333b;resize:vertical}.document-inspector-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.document-inspector-grid label{margin-top:4px}.document-variable-panel{margin-top:10px;padding-top:14px;border-top:1px solid #315173}.document-variable-buttons{display:flex;flex-wrap:wrap;gap:6px}.document-variable-buttons button{padding:6px 8px;border:1px solid #4c7897;border-radius:999px;background:#163d64;color:#c9f7ff;font-size:.62rem;font-weight:750;cursor:pointer}.document-variable-buttons button:hover{border-color:#7dd3fc;background:#22577e}.document-builder-actions{display:grid;grid-template-columns:auto auto minmax(220px,1fr) auto;align-items:end;gap:10px;margin-top:18px;padding-top:16px;border-top:1px solid #315173}.document-builder-actions label{margin:0 0 10px}.document-builder-actions select{grid-column:3}.document-builder-actions label[for="document-lease"]{grid-column:3;grid-row:1;margin-bottom:56px;pointer-events:none}.document-builder-actions .button.success{grid-column:4}.section-documents .page-title-icon{color:#d8b4fe}
@media(max-width:1180px){.document-template-layout{grid-template-columns:1fr}.document-template-list{position:static;display:flex;gap:7px;overflow-x:auto}.document-template-list-head{min-width:130px}.document-template-list>a{min-width:175px;border:1px solid #315173}.document-builder-workspace{grid-template-columns:1fr}.document-inspector{position:static}.document-template-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1000px){.document-page-scroll{max-height:none;display:flex;justify-content:center;align-items:flex-start;overflow:visible}.document-page{width:794px;height:1123px;flex:none}}
@media(max-width:700px){.document-letterhead-settings>form,.document-template-fields,.document-builder-actions{grid-template-columns:1fr}.document-letterhead-settings>form>*{grid-column:1}.document-builder-heading{display:grid}.document-page-controls{display:grid;grid-template-columns:1fr auto 1fr}.document-page-controls .button span{display:none}.document-page-scroll{padding:8px}.document-builder-actions>*{grid-column:1!important;grid-row:auto!important;margin:0!important}.document-builder-actions label{margin-top:7px!important}.document-inspector-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.document-canvas-toolbar>span{width:100%;margin:0}.document-template-list{margin:0}.document-builder-panel{padding:12px}}
.document-text-block{z-index:1}.document-text-block.is-selected{z-index:50;overflow:visible}.document-resize-handle{position:absolute;right:-7px;bottom:-7px;width:16px;height:16px;border:2px solid #fff;border-radius:50%;background:#1298c9;box-shadow:0 1px 5px #0008;cursor:nwse-resize;touch-action:none}
.document-text-block.is-image{padding:0;background:transparent}.document-text-block.is-image img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}.document-text-block [hidden]{display:none!important}
.document-save-status{display:inline-flex;align-items:center;min-height:24px;margin-top:5px;padding:3px 9px;border-radius:999px;background:#173b61;color:#b9d8e9;font-size:.7rem}.document-save-status[data-state="pending"],.document-save-status[data-state="saving"]{background:#54441d;color:#ffe49a}.document-save-status[data-state="saved"]{background:#174937;color:#baf4d5}.document-save-status[data-state="error"]{background:#5b2730;color:#ffd5dc}.document-save-status[data-state="warning"]{background:#5a421c;color:#ffe2a2}
.document-template-actions{display:flex;align-items:center;flex-wrap:wrap}.document-template-actions .help{flex:1 1 240px;margin:0 0 0 auto;align-self:center;color:#d7e9f6}.document-compose-panel{padding:18px}.document-compose-context{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0 18px}.document-compose-context span{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:999px;background:#173b61;color:#dff7ff}.document-compose-actions{display:flex;justify-content:flex-end;align-items:end;gap:12px;margin-top:18px;padding-top:16px;border-top:1px solid #315173}.document-compose-actions>div{display:grid;gap:5px;min-width:260px}.document-compose-actions label{margin:0}@media(max-width:700px){.document-compose-actions{display:grid}.document-compose-actions>div{min-width:0}}
.document-template-list>a.document-template-add{justify-content:center;margin:0 0 12px;border:1px solid #67d7ed;background:#38c6e8;color:#111!important}.document-template-list>a.document-template-add:hover{background:#76dcef;box-shadow:none}.document-template-list>a.document-template-add .ui-icon{width:20px;height:20px}.document-template-list>a.document-template-add strong{color:#111}
.document-template-fields{align-items:start}.document-template-fields input:not([type="hidden"]),.document-template-fields select{min-height:34px;height:34px;padding-block:5px}.document-template-fields input[type="file"]{padding:4px;font-size:.75rem}.document-text-options{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:12px 0;padding:8px 0;border-top:1px solid #315173;border-bottom:1px solid #315173}.document-inspector .document-text-options .location-check{display:flex;align-items:center;gap:6px;margin:0;color:#fff}.document-inspector .document-text-options input{margin:0}.document-canvas-toolbar .button .ui-icon{width:19px;height:19px}
.document-inspector .ql-toolbar.ql-snow{border:1px solid #8da8ba;border-radius:9px 9px 0 0;background:#eef5fa}.document-inspector .document-rich-editor.ql-container.ql-snow{height:250px;border:1px solid #8da8ba;border-top:0;border-radius:0 0 9px 9px;background:#fff;color:#17212b;font:14px/1.45 Arial,sans-serif}.document-inspector .document-rich-editor .ql-editor{padding:10px}.document-inspector .ql-snow .ql-picker{color:#17212b}.document-inspector .ql-snow .ql-stroke{stroke:#17212b}.document-inspector .ql-snow .ql-fill{fill:#17212b}.document-inspector .ql-toolbar button:hover .ql-stroke,.document-inspector .ql-toolbar button.ql-active .ql-stroke{stroke:#087ea4}.document-inspector .ql-toolbar button:hover .ql-fill,.document-inspector .ql-toolbar button.ql-active .ql-fill{fill:#087ea4}.document-text-block{padding:0;white-space:normal;text-align:left}.document-text-block .document-rich-content.ql-editor{width:100%;height:100%;overflow:hidden;padding:3px;color:#111;line-height:1.25;white-space:normal;cursor:move;pointer-events:none}.document-text-block .document-rich-content.ql-editor p,.document-text-block .document-rich-content.ql-editor ol,.document-text-block .document-rich-content.ql-editor ul{margin:0}.document-text-block .document-rich-content.ql-editor .ql-size-small{font-size:.75em}.document-text-block .document-rich-content.ql-editor .ql-size-large{font-size:1.5em}.document-text-block .document-rich-content.ql-editor .ql-size-huge{font-size:2.5em}.document-text-block .document-rich-content.ql-editor .ql-align-center{text-align:center}.document-text-block .document-rich-content.ql-editor .ql-align-right{text-align:right}.document-text-block .document-rich-content.ql-editor .ql-align-justify{text-align:justify}
.document-inspector [data-delete-block]{margin-top:12px}
.document-inspector .document-rich-editor .ql-editor,.document-text-block .document-rich-content.ql-editor{color:#000}
.document-text-block:hover{outline:1px dashed #48a9cf;outline-offset:1px}
.document-text-block.is-selected{outline:2px solid #1298c9;outline-offset:2px;box-shadow:0 0 0 2px #fff8}
.document-text-block .document-rich-content.ql-editor{padding:0}
.document-frame-settings{margin:12px 0 0;padding:10px;border:1px solid #315173;border-radius:10px}
.document-frame-settings legend{padding:0 6px;color:#dff7ff;font-weight:800}
.document-frame-settings input[type="color"]{width:100%;height:38px;padding:3px}
.document-transparent-choice{display:flex;align-items:center;gap:8px;margin-top:10px}
.document-transparent-choice input{width:18px;height:18px;margin:0}
@media(min-width:1401px){.electricity-sheet-head,.electricity-sheet-row{grid-template-columns:minmax(175px,1.15fr) 122px 112px 122px 112px 108px minmax(135px,.8fr) 105px minmax(245px,1.15fr);gap:9px}}
.document-inspector .document-rich-editor .ql-editor strong:not([style*="color"]):not([class*="ql-color-"]){color:inherit}
.document-page .document-rich-content{color:#000}.document-page .document-rich-content *:not([style*="color"]):not([class*="ql-color-"]){color:inherit!important}
.document-page .ql-color-white{color:#fff!important;-webkit-text-fill-color:#fff!important}.document-page .ql-color-red{color:#e60000!important;-webkit-text-fill-color:#e60000!important}.document-page .ql-color-orange{color:#f90!important;-webkit-text-fill-color:#f90!important}.document-page .ql-color-yellow{color:#ff0!important;-webkit-text-fill-color:#ff0!important}.document-page .ql-color-green{color:#008a00!important;-webkit-text-fill-color:#008a00!important}.document-page .ql-color-blue{color:#06c!important;-webkit-text-fill-color:#06c!important}.document-page .ql-color-purple{color:#93f!important;-webkit-text-fill-color:#93f!important}
.document-template-actions .document-template-duplicate{border-color:#78bdd7;background:#b9ddea;color:#12364a}.document-template-actions .document-template-duplicate:hover,.document-template-actions .document-template-duplicate:focus-visible{border-color:#9cd5e8;background:#d2eef7;color:#0b2939}.document-builder-workspace>.document-inspector{margin-top:44px}@media(max-width:1180px){.document-builder-workspace>.document-inspector{margin-top:0}}
.document-builder-workspace>.document-canvas-toolbar{grid-column:1/-1;width:100%;margin-bottom:0}.document-builder-workspace>.document-inspector{margin-top:0}
.document-block-actions{display:flex;align-items:center;gap:8px;margin-top:12px;flex-wrap:wrap}.document-inspector .document-block-actions [data-delete-block]{margin-top:0}
.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-login-card{width:min(100%,480px);padding:30px 34px 34px}.auth-login-card .auth-logo{display:block;width:100%;max-height:155px;object-fit:contain;margin:0 auto 24px}.auth-login-card h1{margin:0 0 22px;text-align:center;font-size:1.65rem}.auth-login-card .auth-remember-row{display:grid!important;grid-template-columns:18px max-content!important;align-items:center!important;justify-content:start;column-gap:9px;width:100%;min-height:34px;margin:18px 0 4px;padding:4px 0}.auth-login-card .auth-remember-row input[type="checkbox"]{display:block!important;width:18px!important;height:18px!important;margin:0!important;padding:0!important;accent-color:#72d8e4}.auth-login-card .auth-remember-row label{display:block!important;width:auto!important;margin:0!important;padding:0!important;color:#dbe6ee;font-weight:600;line-height:18px!important;white-space:nowrap;cursor:pointer}.auth-login-card .button.full{margin-top:22px}@media(max-width:560px){.auth-page{padding:16px}.auth-login-card{padding:24px 22px 28px}.auth-login-card .auth-logo{margin-bottom:18px}}
.account-avatar,.user-avatar{display:grid;place-items:center;flex:0 0 auto;overflow:hidden;border-radius:50%;object-fit:cover;background:#1b3842;color:#77dce7}.account-avatar{width:38px;height:38px}.account-avatar>img,.account-avatar-placeholder img{width:100%;height:100%;object-fit:cover}.account-avatar.ui-icon{padding:0}.account-avatar-placeholder .ui-icon{width:20px;height:20px}.account-summary>.account-avatar+ .account-name{margin-left:0}.user-account-card{display:grid;gap:13px;padding:17px 0;border-top:1px solid #315173}.user-account-heading{display:flex;align-items:center;gap:13px;min-width:0}.user-avatar{width:54px;height:54px}.user-avatar-placeholder .ui-icon{width:25px;height:25px}.user-account-identity{display:grid;gap:3px;min-width:0}.user-account-identity span,.user-account-identity small{color:#a8c5df;overflow-wrap:anywhere}.user-edit-details>summary{width:max-content;list-style:none}.user-edit-details>summary::-webkit-details-marker{display:none}.user-edit-details[open]>summary{border-color:#7dd3fc}.user-edit-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px;margin-top:12px;padding:14px;border:1px solid #315173;border-radius:12px;background:#0b2143}.user-edit-form label{margin-top:8px}.user-avatar-field,.user-edit-actions,.user-remove-avatar{grid-column:1/-1}.user-avatar-field small{display:block;margin-top:5px;color:#a8c5df}.user-remove-avatar{display:flex!important;align-items:center;gap:8px;margin:12px 0 0!important}.user-remove-avatar input{width:18px!important;height:18px!important;margin:0!important}.user-edit-actions{display:flex;justify-content:flex-end;margin-top:14px}.user-reset-form{margin:0}.user-reset-form .button{min-height:36px}@media(max-width:700px){.user-edit-form{grid-template-columns:1fr}.user-account-heading{align-items:flex-start}.user-edit-actions .button,.user-edit-details>summary{width:100%}}
body .mail-list-panel .mail-row-main .mail-row-error{color:#a32732!important;font-weight:750}
body .mail-recipient-dialog{color:#26333b}
body .mail-recipient-dialog-head h2{color:#202b33!important}
body .mail-recipient-dialog>label{color:#34414a!important;font-weight:700}
body .mail-recipient-dialog>.help{color:#596873!important}
body .mail-recipient-search .ui-icon{color:#26333b}
body .mail-recipient-search input{color:#1f2937!important}
body .mail-recipient-search input::placeholder{color:#7a8791!important;opacity:1}
body .mail-recipient-list{background:#e5ebf0}
body .mail-recipient-row{background:#fff;color:#111827!important}
body .mail-recipient-row strong{color:#111827!important;font-weight:750}
body .mail-recipient-row small{color:#68757e!important;font-weight:500}
body .mail-recipient-row:hover,body .mail-recipient-row:has(input:checked){background:#e7f5f8}
body .mail-recipient-row input{accent-color:#1aa9c2}
.sidebar-counter-electricity{background:#f6d34a!important;color:#362b00!important;box-shadow:none!important}
.electricity-page-head{align-items:flex-end}.electricity-filter{display:flex;align-items:end;gap:10px;margin-bottom:14px;padding:12px 16px}.electricity-filter label{margin:0}.electricity-filter select{width:min(300px,100%)}.electricity-summary .rent-summary-card{border-top:3px solid #f6d34a}.electricity-workflow-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(280px,.8fr);gap:14px;margin-bottom:14px}.electricity-capture-card,.electricity-settings-card{padding:18px}.electricity-reading-form{display:grid;gap:12px}.electricity-reading-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.electricity-settings-card form{display:grid;gap:12px}.electricity-rate-input{display:flex;align-items:center;gap:8px}.electricity-rate-input input{max-width:150px}.electricity-checkbox{display:flex!important;align-items:center;gap:9px;margin:5px 0!important}.electricity-checkbox input{width:18px!important;height:18px!important;margin:0!important;accent-color:#e5bd19}.button.electricity-action{border-color:#e2b91b;background:#f6d34a;color:#332800}.button.electricity-action:hover,.button.electricity-action:focus-visible{background:#ffe477;color:#251e00}.electricity-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 18px 10px}.electricity-section-head p{margin:3px 0 0}.electricity-readings-panel,.electricity-invoices-panel{padding:0;overflow:hidden;margin-bottom:14px}.electricity-reading-list,.electricity-invoice-list{display:grid}.electricity-reading-row{display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(170px,.7fr) minmax(320px,1.5fr);align-items:center;gap:16px;padding:14px 18px;border-top:1px solid #315173;background:#122b53}.electricity-reading-row:hover{background:#17365f}.electricity-reading-identity,.electricity-index,.electricity-invoice-row>div:first-child{display:grid;gap:3px;min-width:0}.electricity-reading-identity span,.electricity-reading-identity small,.electricity-index span,.electricity-index small,.electricity-invoice-row span,.electricity-invoice-row small{color:#a8c5df}.electricity-index strong{font-size:1.15rem;color:#fff}.electricity-reading-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.electricity-invoice-create{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.electricity-invoice-create select{width:auto;max-width:210px}.electricity-inline-rate{width:88px!important}.electricity-invoice-row{display:grid;grid-template-columns:minmax(260px,1.6fr) 150px 150px minmax(330px,auto);align-items:center;gap:15px;padding:14px 18px;border-top:1px solid #315173;background:#122b53;border-left:4px solid #ef7f75}.electricity-invoice-row.is-paid{border-left-color:#8493a3;background:#26384d;opacity:.78}.electricity-invoice-row.is-paid:hover{opacity:1}.electricity-invoice-row.is-partial{border-left-color:#f6d34a}.electricity-invoice-amount{display:grid;gap:2px}.electricity-invoice-amount strong{font-size:1.08rem}.electricity-invoice-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.electricity-invoice-actions form{margin:0}.electricity-quick-payment{display:flex!important;align-items:center;gap:6px}.electricity-quick-payment input{width:145px}.electricity-paid-label{display:inline-flex!important;align-items:center;gap:5px;padding:7px 10px;border-radius:999px;background:#647386;color:#fff!important;font-weight:800}.electricity-payment-dialog{position:fixed;inset:50% auto auto 50%;transform:translate(-50%,-50%);width:min(940px,calc(100% - 28px));max-height:calc(100vh - 40px);padding:0;border:1px solid #4d6d8d;border-radius:16px;background:#10264b;color:#eef6ff;box-shadow:0 25px 90px #000b;overflow:auto;z-index:80}.electricity-payment-dialog::backdrop{background:#06101bd1}.electricity-dialog-head{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px;border-bottom:1px solid #315173;background:#10264b}.electricity-dialog-head>div{display:grid;gap:3px}.electricity-dialog-head span{color:#a8c5df}.electricity-dialog-body{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:16px}.electricity-dialog-body section{padding:14px;border:1px solid #315173;border-radius:12px;background:#132f59}.electricity-dialog-body h3{margin:0 0 12px}.electricity-dialog-body form{display:grid;gap:8px}.electricity-payment-row{display:grid;grid-template-columns:90px 90px 1fr auto;gap:8px;padding:8px 0;border-bottom:1px solid #315173}.electricity-payment-row small{color:#a8c5df}.status-pill.success{display:inline-flex;padding:6px 10px;border-radius:999px;background:#1d8055;color:#fff;font-weight:700}
@media(max-width:1050px){.electricity-reading-row{grid-template-columns:1fr 180px}.electricity-reading-actions{grid-column:1/-1;justify-content:flex-start}.electricity-invoice-row{grid-template-columns:minmax(220px,1.4fr) 130px 130px}.electricity-invoice-actions{grid-column:1/-1;justify-content:flex-start}.electricity-dialog-body{grid-template-columns:1fr 1fr}.electricity-dialog-body section:first-child{grid-column:1/-1}}
@media(max-width:720px){.electricity-page-head{align-items:stretch}.electricity-workflow-grid,.electricity-reading-fields,.electricity-dialog-body{grid-template-columns:1fr}.electricity-filter{align-items:stretch;flex-direction:column}.electricity-filter select{width:100%}.electricity-reading-row,.electricity-invoice-row{grid-template-columns:1fr;gap:10px}.electricity-reading-actions,.electricity-invoice-actions,.electricity-invoice-create{justify-content:flex-start}.electricity-invoice-create select{max-width:none;width:100%}.electricity-dialog-body section:first-child{grid-column:auto}.electricity-payment-row{grid-template-columns:70px 80px 1fr auto}}
.electricity-history-panel{padding:0;overflow:hidden;margin-bottom:14px}.electricity-history-panel>summary{display:flex;align-items:center;gap:10px;padding:15px 18px;cursor:pointer;list-style:none}.electricity-history-panel>summary::-webkit-details-marker{display:none}.electricity-history-panel>summary>span{display:flex;align-items:center;gap:8px}.electricity-history-panel>summary small{margin-left:auto;color:#a8c5df}.electricity-history-table{overflow:auto;border-top:1px solid #315173}.electricity-history-head,.electricity-history-row{display:grid;grid-template-columns:minmax(220px,1.4fr) 170px 130px 110px minmax(260px,1.5fr);gap:12px;align-items:center;min-width:900px;padding:10px 18px}.electricity-history-head{background:#0d2345;color:#8fb3d4;font-size:.78rem;font-weight:700;text-transform:uppercase}.electricity-history-row{border-top:1px solid #294a70;background:#122b53}.electricity-history-row>span:first-child{display:grid;gap:2px}.electricity-history-row small{color:#a8c5df}.electricity-history-row>span:nth-child(4){font-weight:700;color:#f6d34a}
.electricity-reading-dialog{width:min(620px,calc(100% - 28px))}.electricity-reading-dialog .electricity-dialog-body{grid-template-columns:1fr}.electricity-reading-dialog .electricity-dialog-body section{grid-column:auto}
.electricity-workflow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:14px 0 18px;padding:0;overflow:hidden}
.electricity-workflow>div{display:flex;align-items:center;gap:12px;min-width:0;padding:15px 18px;border-right:1px solid rgba(120,187,221,.26)}
.electricity-workflow>div:last-child{border-right:0}
.electricity-workflow>div>strong{display:grid;place-items:center;flex:0 0 32px;height:32px;border-radius:50%;background:#f7d548;color:#17223c;font-size:16px}
.electricity-workflow span{display:grid;gap:3px;min-width:0}.electricity-workflow b{color:#fff}.electricity-workflow small{color:#abd0ec;line-height:1.3}
@media(max-width:900px){.electricity-workflow{grid-template-columns:1fr 1fr}.electricity-workflow>div:nth-child(2){border-right:0}.electricity-workflow>div:nth-child(-n+2){border-bottom:1px solid rgba(120,187,221,.26)}}
@media(max-width:560px){.electricity-workflow{grid-template-columns:1fr}.electricity-workflow>div{border-right:0;border-bottom:1px solid rgba(120,187,221,.26)}.electricity-workflow>div:last-child{border-bottom:0}}
.electricity-building-tabs{display:flex;gap:8px;padding:8px;margin-bottom:14px;overflow-x:auto}.electricity-building-tabs a{flex:1;min-width:110px;padding:11px 18px;border:1px solid #3d6287;border-radius:10px;color:#b9d4eb;text-align:center;font-weight:800;text-decoration:none;white-space:nowrap}.electricity-building-tabs a:hover,.electricity-building-tabs a:focus-visible{background:#1a3a62;color:#fff}.electricity-building-tabs a.is-active{border-color:#f6d34a;background:#f6d34a;color:#332800}
.electricity-sheet-panel{padding:0;overflow:hidden;margin-bottom:14px}.electricity-sheet{display:grid}.electricity-sheet-head,.electricity-sheet-row{display:grid;grid-template-columns:minmax(175px,1.15fr) 112px 122px 112px 108px minmax(135px,.8fr) 112px minmax(245px,1.15fr);gap:10px;align-items:center}.electricity-sheet-head{padding:9px 14px;background:#0b2244;color:#91b7d8;font-size:.75rem;font-weight:800;text-transform:uppercase}.electricity-sheet-row{padding:12px 14px;border-top:1px solid #315173;background:#122b53}.electricity-sheet-row:hover,.electricity-sheet-row:focus-within{background:#17365f}.electricity-sheet-row.is-complete{border-left:4px solid #5fd29b}.electricity-sheet-row label{display:grid;gap:4px;margin:0}.electricity-sheet-row label>span{display:none}.electricity-sheet-row input,.electricity-sheet-row select{min-width:0;width:100%}.electricity-sheet-previous,.electricity-sheet-identity,.electricity-sheet-amount,.electricity-sheet-submit{display:grid;gap:4px;min-width:0}.electricity-sheet-previous span,.electricity-sheet-amount strong{font-weight:800;color:#fff}.electricity-sheet-amount strong{font-size:1.1rem;color:#f6d34a}.electricity-sheet-row small{color:#a8c5df}.electricity-sheet-submit{grid-template-columns:minmax(120px,1fr) auto;align-items:center;gap:7px}.electricity-sheet-submit small{grid-column:1/-1}.electricity-sheet-submit button{white-space:nowrap}.electricity-sheet-submit button:disabled{opacity:.5;cursor:not-allowed}.electricity-settings-details{margin-bottom:14px;padding:0}.electricity-settings-details summary{padding:13px 16px;display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:800}.electricity-settings-details form{display:flex;align-items:end;gap:12px;padding:0 16px 16px}.electricity-settings-details form>label:first-of-type{max-width:190px}
@media(max-width:1400px){.electricity-sheet-head{display:none}.electricity-sheet-row{grid-template-columns:repeat(4,minmax(115px,1fr))}.electricity-sheet-identity{grid-column:span 2}.electricity-sheet-submit{grid-column:span 2}.electricity-sheet-row label>span{display:block;color:#91b7d8;font-size:.75rem;font-weight:700;text-transform:uppercase}}
@media(max-width:720px){.electricity-sheet-row{grid-template-columns:1fr 1fr;padding:14px}.electricity-sheet-row .electricity-sheet-identity{grid-column:1/-1}.electricity-sheet-previous,.electricity-sheet-amount{padding:9px;border-radius:8px;background:#0e264a}.electricity-sheet-submit{grid-column:1/-1;grid-template-columns:1fr}.electricity-sheet-submit button{width:100%}.electricity-quick-payment{align-items:stretch;flex-direction:column}.electricity-quick-payment input{width:100%}.electricity-settings-details form{align-items:stretch;flex-direction:column}.electricity-settings-details form>label:first-of-type{max-width:none;width:100%}}

.electricity-autosave-status{min-height:1em;color:#72d6a5!important;font-weight:700}.electricity-autosave-status:not(:empty)::before{content:'• ';}

/* Accordéons de la page Électricité */
.electricity-accordion{padding:0;overflow:hidden;margin-bottom:14px}
.electricity-accordion>summary{position:relative;display:flex;align-items:center;justify-content:center;min-height:58px;padding:14px 54px;cursor:pointer;list-style:none;text-align:center;color:#fff;font-size:1.22rem;font-weight:850}
.electricity-accordion>summary::-webkit-details-marker{display:none}
.electricity-accordion>summary>span{display:inline-flex;align-items:center;justify-content:center;gap:9px}
.electricity-accordion>summary>.ui-icon{position:absolute;right:20px;transition:transform .2s ease}
.electricity-accordion[open]>summary>.ui-icon{transform:rotate(180deg)}
.electricity-accordion-content{border-top:1px solid #315173}
.electricity-settings-details>form{border-top:1px solid #315173;padding-top:16px}
@media(max-width:720px){.electricity-accordion>summary{min-height:52px;padding:12px 44px;font-size:1.05rem}.electricity-accordion>summary>.ui-icon{right:14px}}

/* Présentation compacte des relevés et règlements d’électricité. */
.electricity-sheet-submit{display:grid;grid-template-columns:1fr;justify-items:start;align-content:center}.electricity-sheet-submit .button{width:auto;max-width:100%;padding:7px 10px;font-size:.75rem}.button.electricity-sheet-invoice-button.is-prepare{border-color:#45bf82;background:#249a61;color:#fff}.button.electricity-sheet-invoice-button.is-prepare:hover{background:#31ad70}.button.electricity-sheet-invoice-button.is-update{border-color:#e2b91b;background:#f6d34a;color:#332800}.button.electricity-sheet-invoice-button.is-update:hover{background:#ffe477;color:#251e00}
@media(min-width:1101px){.electricity-sheet-head,.electricity-sheet-row{grid-template-columns:minmax(155px,1.2fr) 108px 92px 108px 92px 88px minmax(95px,.7fr) 72px 150px;gap:7px}.electricity-sheet-head{display:grid}.electricity-sheet-row{padding-left:12px;padding-right:12px}.electricity-sheet-row input{padding-left:7px;padding-right:7px}.electricity-sheet-identity{grid-column:auto}.electricity-sheet-submit{grid-column:auto}.electricity-autosave-status{font-size:.67rem}}
.electricity-invoice-row{grid-template-columns:minmax(230px,1.5fr) 125px 135px minmax(300px,auto);gap:10px}.electricity-invoice-actions{flex-wrap:nowrap}.electricity-invoice-actions .button{white-space:nowrap;padding:7px 10px}.electricity-invoice-actions form{flex:0 0 auto}.electricity-invoice-detail{grid-column:1/-1;display:grid;grid-template-columns:minmax(280px,1fr) minmax(520px,1.4fr);gap:14px;padding:14px;border-top:1px solid #42678d;border-radius:10px;background:#0d2447}.electricity-invoice-detail[hidden]{display:none}.electricity-invoice-detail h4{margin:0 0 8px}.electricity-inline-payment{display:grid;grid-template-columns:145px 125px minmax(150px,1fr) auto;gap:8px;align-items:end}.electricity-inline-payment label{display:grid;gap:4px;margin:0}.electricity-inline-payment input{width:100%;min-width:0}.electricity-correction-link{grid-column:1/-1;color:#8eddf1;font-size:.76rem}.electricity-invoice-actions [aria-expanded="true"]{border-color:#7dd3fc;color:#7dd3fc}
@media(max-width:1200px){.electricity-invoice-row{grid-template-columns:minmax(210px,1.4fr) 115px 125px}.electricity-invoice-actions{grid-column:1/-1;justify-content:flex-start}.electricity-invoice-detail{grid-template-columns:1fr}.electricity-inline-payment{grid-template-columns:145px 125px minmax(150px,1fr) auto}}
@media(max-width:720px){.electricity-invoice-row{grid-template-columns:1fr}.electricity-invoice-actions{grid-column:1;flex-wrap:wrap}.electricity-invoice-detail{padding:10px}.electricity-inline-payment{grid-template-columns:1fr}.electricity-inline-payment .button{width:100%}}
.electricity-bulk-invoices{display:flex;align-items:center;justify-content:flex-end;gap:14px;padding:16px 18px;border-top:1px solid #315173;background:#0b2244}.electricity-bulk-invoices span{color:#a8c5df;font-size:.78rem}.electricity-sheet-row.has-bulk-error{border-left:4px solid #ef7f75;background:#4a2332}.electricity-bulk-invoices button:disabled{opacity:.65;cursor:wait}
@media(max-width:720px){.electricity-bulk-invoices{align-items:stretch;flex-direction:column}.electricity-bulk-invoices .button{width:100%}}
.mail-pagination{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;padding:12px 15px;border-top:1px solid #aebcc3;background:#e2e8f0}.mail-pagination>a:first-child{justify-self:start}.mail-pagination>a:last-child{justify-self:end}.mail-pagination strong{color:#52636c;font-size:.78rem;white-space:nowrap}
.electricity-invoice-row{grid-template-columns:minmax(250px,1fr) 180px minmax(300px,auto)}.electricity-invoice-remaining{display:grid;gap:3px;justify-items:start}.electricity-invoice-remaining>strong{display:flex;align-items:baseline;gap:7px;color:#f6d34a;font-size:1.35rem}.electricity-invoice-remaining>strong small{color:#a8c5df;font-size:.72rem;font-weight:700}.electricity-invoice-remaining>span{color:#a8c5df;font-size:.72rem}.electricity-payment-summary{display:flex;gap:18px;margin-bottom:8px;color:#a8c5df;font-size:.78rem}.electricity-payment-summary span{display:flex;gap:5px}.electricity-payment-summary strong{color:#fff}.electricity-inline-payment{grid-template-columns:135px 115px 155px minmax(140px,1fr) auto}
@media(max-width:1200px){.electricity-invoice-row{grid-template-columns:minmax(220px,1fr) 160px}.electricity-invoice-actions{grid-column:1/-1}}
@media(max-width:720px){.mail-pagination{grid-template-columns:1fr 1fr}.mail-pagination strong{grid-column:1/-1;grid-row:1;text-align:center}.mail-pagination>a{grid-row:2}.electricity-invoice-row{grid-template-columns:1fr}.electricity-invoice-actions{grid-column:1}.electricity-inline-payment{grid-template-columns:1fr}.electricity-payment-summary{align-items:flex-start;flex-direction:column;gap:4px}}
.mail-pagination-center{display:grid;justify-items:center;gap:7px}.mail-pagination-center>strong{color:#111!important}.mail-page-numbers{display:flex;align-items:center;justify-content:center;gap:5px}.mail-page-numbers :is(a,b){display:grid;place-items:center;min-width:29px;height:29px;padding:0 7px;border:1px solid #9bacb8;border-radius:7px;background:#fff;color:#1e2933!important;text-decoration:none;font-size:.76rem;font-style:normal}.mail-page-numbers a:hover{border-color:#1686a0;background:#d7edf1}.mail-page-numbers b{border-color:#1686a0;background:#1686a0;color:#fff!important}.mail-page-numbers i{color:#52636c;font-style:normal}
@media(max-width:720px){.mail-pagination-center{grid-column:1/-1;grid-row:1}.mail-pagination>a{grid-row:2}}
.electricity-accordion>summary{text-transform:uppercase}.electricity-accordion>summary .electricity-unit{text-transform:none}.rent-list-head{justify-content:center;text-align:center}.rent-list-head .panel-title{justify-content:center;width:100%;font-size:1.3rem;text-transform:uppercase;letter-spacing:.02em}
@media(max-width:600px){.deposit-followup-grid{gap:12px}.deposit-list-panel{padding:12px}.deposit-list-head{align-items:flex-start;margin-bottom:4px}.deposit-list-head>div{min-width:0}.deposit-list-head .panel-title{font-size:.92rem}.deposit-followup-row{grid-template-columns:36px minmax(0,1fr) 24px;gap:10px;padding:14px 4px;align-items:start}.deposit-followup-row .deposit-row-icon{grid-column:1;grid-row:1}.deposit-followup-row .followup-identity{grid-column:2;grid-row:1}.deposit-followup-row .followup-detail{grid-column:2/-1;grid-row:2;gap:4px;padding-top:2px}.deposit-followup-row .followup-detail :is(strong,span,small){word-break:normal;overflow-wrap:normal}.deposit-followup-row .followup-arrow{grid-column:3;grid-row:1/3;align-self:center;justify-self:center}.deposit-followup-row .followup-phones{gap:5px}.deposit-followup-row .tenant-phone-link{font-size:.78rem}}
@media(max-width:760px){.dashboard-grid-modern{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.dashboard-card-slot{min-width:0}.dashboard-stage .dashboard-card-modern,.dashboard-card-slot>.dashboard-card-modern{grid-template-columns:1fr;grid-template-rows:54px minmax(0,1fr);align-content:start;gap:5px;width:100%;height:150px;min-height:150px;max-height:150px;padding:10px}.dashboard-stage .dashboard-rent-card{grid-template-columns:1fr;grid-template-rows:54px minmax(0,1fr)}.dashboard-stage .dashboard-visual,.dashboard-stage .dashboard-rent-card .dashboard-visual{width:100%;height:54px}.dashboard-stage .dashboard-visual img,.dashboard-stage .dashboard-rent-card .dashboard-visual img{width:100%;max-width:74px;height:62px}.dashboard-card-content{align-items:center;text-align:center}.dashboard-card-title{margin-top:2px;font-size:.69rem;line-height:1.15;overflow-wrap:anywhere}.dashboard-stage .dashboard-card-modern .dashboard-value{font-size:1.55rem}.dashboard-money{font-size:1.08rem;white-space:normal;text-align:center}.dashboard-stage .dashboard-card-modern .dashboard-description{display:none}.dashboard-corner{top:8px;right:8px}.dashboard-corner .ui-icon{width:14px;height:14px}.dashboard-stage .dashboard-count-badge{right:7px;bottom:7px;min-width:27px;height:27px;padding:0 7px;border-width:1px;font-size:.72rem}.dashboard-stage .dashboard-count-badge .ui-icon{width:16px;height:16px}.dashboard-donut{display:none}.dashboard-card-settings{right:5px;bottom:5px}}
@media(max-width:300px){.dashboard-grid-modern{grid-template-columns:1fr}}

/* Les menus flottants de l'en-tête doivent toujours passer devant la page. */
.shell-topbar{
    position:relative;
    z-index:30;
    overflow:visible;
    isolation:isolate;
}
.shell-tools,
.shell-dropdown{
    overflow:visible;
}
.shell-tools{
    z-index:2;
}
.shell-dropdown{
    position:relative;
}
.shell-dropdown[open]{
    z-index:100;
}
.shell-popover{
    z-index:1000;
}

/* Titre centré de l'accueil, identique sur ordinateur et téléphone. */
.dashboard-stage .dashboard-heading{
    justify-content:center;
    width:100%;
    text-align:center;
}
.dashboard-stage .dashboard-heading>div{
    width:100%;
}
.dashboard-stage .dashboard-heading h1{
    color:#f6d34a;
    text-transform:uppercase;
}
.dashboard-stage .dashboard-date{
    justify-content:center;
}

/* Cartes du tableau de bord sans halo et hauteurs mobiles homogènes. */
.dashboard-stage .dashboard-card-modern,
.dashboard-stage a.dashboard-card-modern:hover,
.dashboard-stage a.dashboard-card-modern:focus-visible{
    box-shadow:none;
}
.dashboard-stage .dashboard-card-modern::after{
    display:none;
}
@media(max-width:760px){
    .dashboard-card-slot{
        height:150px;
    }
}

/* Cercle SVG fiable : la longueur colorée correspond exactement au pourcentage. */
.dashboard-stage .dashboard-donut{
    background:transparent;
}
.dashboard-stage .dashboard-donut::before,
.dashboard-stage .dashboard-donut::after{
    display:none;
}
.dashboard-donut-svg{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    overflow:visible;
    transform:rotate(-90deg);
}
.dashboard-donut-svg circle{
    fill:none;
    stroke-width:16;
}
.dashboard-donut-track{
    stroke:#284264;
}
.dashboard-donut-progress{
    stroke:var(--card-accent);
    stroke-linecap:butt;
}

/* Loyers et électricité : véritables camemberts de progression. */
.dashboard-stage .dashboard-progress-card{
    grid-template-columns:88px minmax(0,1fr) 76px;
}
.dashboard-stage .dashboard-donut{
    position:relative;
    isolation:isolate;
    transform:translateX(-8px);
    background:#284264;
    box-shadow:none;
}
.dashboard-stage .dashboard-donut::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:0;
    display:block;
    border-radius:50%;
    background:conic-gradient(from -90deg, var(--card-accent) 0 var(--dashboard-progress), #284264 var(--dashboard-progress) 100%);
}
.dashboard-stage .dashboard-donut::after{
    content:"";
    position:absolute;
    inset:10px;
    z-index:1;
    border-radius:50%;
    background:#0c2148;
    box-shadow:inset 0 0 0 1px #ffffff0d;
}
.dashboard-stage .dashboard-donut>span{
    position:relative;
    z-index:2;
    text-shadow:0 1px 4px #071529;
}
@media(max-width:760px){
    .dashboard-stage .dashboard-progress-card{
        grid-template-columns:1fr;
        grid-template-rows:54px minmax(0,1fr);
    }
    .dashboard-stage :is(.dashboard-rent-card,.dashboard-progress-card) .dashboard-donut{
        position:absolute;
        left:7px;
        bottom:7px;
        display:grid;
        width:42px;
        height:42px;
        transform:none;
    }
    .dashboard-stage :is(.dashboard-rent-card,.dashboard-progress-card) .dashboard-donut strong{
        font-size:.66rem;
    }
    .dashboard-stage :is(.dashboard-rent-card,.dashboard-progress-card) .dashboard-donut small{
        font-size:.42rem;
    }
    .dashboard-stage :is(.dashboard-rent-card,.dashboard-progress-card) .dashboard-donut::after{
        inset:6px;
    }
}

/* Le SVG reste la seule couche graphique du cercle. */
.dashboard-stage .dashboard-donut{
    background:transparent;
}
.dashboard-stage .dashboard-donut::before,
.dashboard-stage .dashboard-donut::after{
    content:none;
    display:none;
}

/* Position des diagrammes selon la taille d'écran. */
.dashboard-stage .dashboard-donut{
    transform:translateX(-16px);
}
@media(max-width:760px){
    .dashboard-stage :is(.dashboard-rent-card,.dashboard-progress-card) .dashboard-donut{
        display:none;
    }
}

/* Logements : engrenage dans le titre et onglets d'immeubles sur téléphone. */
.apartment-page-head .page-title-with-icon{
    width:100%;
}
.apartment-buildings-link{
    margin-left:auto;
}
.apartment-mobile-tabs{
    display:none;
}
@media(min-width:701px){
    .apartment-column-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}
@media(max-width:700px){
    .apartment-page-head{
        display:block;
    }
    .apartment-page-head .page-title-with-icon{
        gap:12px;
    }
    .apartment-page-head .page-title-with-icon>div{
        min-width:0;
    }
    .apartment-buildings-link{
        flex:none;
        margin-left:auto;
    }
    .apartment-mobile-tabs{
        display:grid;
        grid-template-columns:repeat(3,minmax(0,1fr));
        gap:5px;
        margin:0 0 16px;
        overflow:visible;
    }
    .apartment-mobile-tabs button{
        position:relative;
        min-width:0;
        padding:11px 27px 11px 6px;
        font-size:.78rem;
    }
    .apartment-mobile-tabs button span{
        position:absolute;
        top:3px;
        right:4px;
        display:grid;
        place-items:center;
        min-width:22px;
        height:22px;
        padding:0 5px;
        border-radius:999px;
        background:#7dd3fc;
        color:#10243a;
        font-size:.6rem;
        font-weight:850;
    }
    .apartment-column-grid{
        grid-template-columns:1fr;
    }
}

/* Loyers : titre mensuel centré et préparation groupée des appels. */
.rent-list-head{
    display:grid;
    grid-template-columns:1fr auto 1fr;
    align-items:center;
}
.rent-list-head .panel-title{
    grid-column:2;
    width:auto;
    justify-content:center;
    text-align:center;
}
.rent-bulk-call-form{
    grid-column:3;
    justify-self:end;
    margin:0;
}
.rent-bulk-call-button{
    min-height:48px;
    padding-inline:20px;
}
.rent-reminder-button{
    border-color:#b97884;
    background:#9f5362;
    color:#fff4f6;
}
.rent-reminder-button:hover,
.rent-reminder-button:focus-visible{
    border-color:#cf8e9a;
    background:#b86272;
    color:#fff;
}
.rent-payment-button{
    border-color:#b28a49;
    background:#8c692f;
    color:#fff8e8;
}
.rent-payment-button:hover,
.rent-payment-button:focus-visible{
    border-color:#c7a15e;
    background:#9d7838;
    color:#fff;
}

/* Les dossiers soldés restent discrets ; seul le reste dû ressort fortement. */
.rent-call.is-settled{
    border-color:#315173;
    background:#102a52;
}
.rent-call.is-partial{
    border-color:#716044;
    background:#302e2b;
}
.rent-call-overview .rent-amount:not(.rent-remaining) strong{
    color:#a8c5df;
    font-weight:700;
}
.rent-call-overview .rent-amount:not(.rent-remaining) span{
    color:#8eabc5;
}
.rent-call.is-settled:hover,
.rent-call.is-partial:hover{
    background:#17385b;
}
@media(max-width:700px){
    .rent-list-head{
        grid-template-columns:1fr;
        gap:10px;
    }
    .rent-list-head .panel-title,
    .rent-bulk-call-form{
        grid-column:1;
        justify-self:stretch;
    }
    .rent-bulk-call-form .button{
        width:100%;
    }
}

/* Électricité : feuille de règlement compacte sur téléphone. */
@media(max-width:720px){
    .electricity-invoice-row{
        grid-template-columns:minmax(0,1fr) auto;
        gap:10px 8px;
        align-items:start;
    }
    .electricity-invoice-row>div:first-child{
        grid-column:1;
        grid-row:1;
    }
    .electricity-invoice-remaining{
        grid-column:2;
        grid-row:1;
        justify-items:end;
        text-align:right;
    }
    .electricity-invoice-remaining>strong{
        justify-content:flex-end;
        white-space:nowrap;
        font-size:1.05rem;
    }
    .electricity-invoice-actions{
        grid-column:1/-1;
        grid-row:2;
        justify-content:flex-start;
        flex-wrap:nowrap;
        gap:4px;
    }
    .electricity-invoice-actions .button{
        min-height:38px;
        padding-inline:6px;
        gap:5px;
        font-size:.64rem;
        white-space:nowrap;
    }
    .electricity-invoice-actions .button .ui-icon{
        width:14px;
        height:14px;
    }
    .electricity-invoice-detail{
        grid-column:1/-1;
        grid-row:3;
    }
}

/* Révisions : action principale sur une seule ligne sur téléphone. */
@media(max-width:700px){
    .review-action .button{
        width:auto;
        max-width:100%;
        min-height:38px;
        padding-inline:7px;
        gap:5px;
        font-size:.68rem;
        white-space:nowrap;
    }
    .review-action .button .ui-icon{
        width:14px;
        height:14px;
    }
}

/* Loyers : cartes lisibles sur téléphone. */
@media(max-width:700px){
    .rent-call-overview{
        position:relative;
        grid-template-columns:repeat(3,minmax(0,1fr));
        gap:13px 8px;
        padding:14px 12px;
    }
    .rent-status-icon{
        position:absolute;
        top:14px;
        left:12px;
    }
    .rent-identity{
        grid-column:1/-1;
        min-height:36px;
        padding-left:44px;
    }
    .rent-call-overview .rent-amount,
    .rent-call-overview .rent-remaining{
        grid-column:auto;
        min-width:0;
        padding:0 4px;
        border-left:1px solid #57718b;
    }
    .rent-call-overview .rent-amount:first-of-type{
        grid-column:auto;
        border-left:0;
        padding-left:0;
    }
    .rent-amount :is(span,strong,small){
        word-break:normal;
        overflow-wrap:normal;
    }
    .rent-amount strong{
        white-space:nowrap;
        font-size:.92rem;
    }
    .rent-amount small{
        font-size:.63rem;
        line-height:1.3;
    }
    .rent-row-actions{
        grid-column:1/-1;
        gap:4px;
        padding-top:2px;
        flex-wrap:nowrap;
    }
    .rent-row-actions .button{
        min-height:38px;
        padding-inline:6px;
        font-size:.62rem;
        white-space:nowrap;
    }
    .rent-row-actions .button .ui-icon{
        width:14px;
        height:14px;
    }
}

/* Formulaires du dossier locataire compactés sur téléphone. */
.lease-exit-help-mobile{
    display:none;
}
.lease-deposit-grid>.deposit-status{
    grid-column:1/-1;
}
.contract-primary-grid,
.insurance-upload-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
}
.insurance-request-actions{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
    margin-top:20px;
}
.insurance-request-actions [data-prepare-request]{
    margin-top:0;
}
@media(max-width:700px){
    .amount-line{
        grid-template-columns:64px minmax(70px,1fr) 68px 38px;
        gap:5px;
    }
    .amount-line :is(select,input){
        min-width:0;
        height:42px;
        padding-inline:7px;
        font-size:.76rem;
    }
    .amount-line .button{
        grid-column:auto;
        justify-self:stretch;
        width:38px;
        min-width:38px;
        min-height:42px;
        padding:0;
        gap:0;
        font-size:0;
    }
    .amount-line .button .ui-icon{
        width:17px;
        height:17px;
    }
    .amount-footer{
        align-items:center;
        gap:8px;
    }
    .amount-add-button{
        flex:none;
        padding-inline:10px;
        font-size:.76rem;
        white-space:nowrap;
    }
    .amount-summary{
        grid-template-columns:auto minmax(92px,1fr);
        gap:6px;
        width:auto;
        min-width:0;
    }
    .amount-summary strong{
        font-size:.75rem;
    }
    .lease-primary-fields,
    .lease-renewal-fields,
    .lease-deposit-grid,
    .lease-last-review-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:8px;
    }
    .lease-exit-help-desktop{
        display:none;
    }
    .lease-exit-help-mobile{
        display:block;
        align-self:center;
        margin:18px 0 0;
        font-size:.68rem;
        line-height:1.35;
    }
    .lease-deposit-grid>.deposit-status{
        grid-column:auto;
        align-self:end;
        min-height:46px;
        margin:0;
        padding:8px 9px;
        font-size:.68rem;
        line-height:1.25;
    }
    .lease-irl-grid{
        grid-template-columns:repeat(3,minmax(0,1fr));
        gap:6px;
    }
    :is(.lease-primary-fields,.lease-renewal-fields,.lease-deposit-grid,.lease-irl-grid,.lease-last-review-grid) label{
        min-height:2.4em;
        margin-top:10px;
        font-size:.68rem;
        line-height:1.2;
    }
    :is(.lease-primary-fields,.lease-renewal-fields,.lease-deposit-grid,.lease-irl-grid,.lease-last-review-grid) :is(input,select,.calculated-field){
        min-width:0;
        width:100%;
        padding-inline:6px;
        font-size:.76rem;
    }
    .document-generator-grid .location-grid-two,
    .contract-primary-grid,
    .insurance-upload-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:8px;
    }
    .document-generator-grid :is(input,select),
    .insurance-upload-grid input{
        min-width:0;
        padding-inline:7px;
        font-size:.78rem;
    }
    .insurance-upload-grid label{
        min-height:2.4em;
        margin-top:10px;
        font-size:.7rem;
        line-height:1.2;
    }
    .archive-refund-fields{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:8px;
    }
    .archive-refund-fields>div:first-child{
        grid-column:1/-1;
    }
    .insurance-request-actions{
        margin-top:22px;
    }
}

/* Derniers ajustements des lignes financières sur téléphone. */
@media(max-width:700px){
    .amount-line{
        grid-template-columns:88px minmax(60px,1fr) 64px 36px;
        gap:4px;
    }
    .amount-line select{
        padding-left:6px;
        padding-right:2px;
        font-size:.72rem;
    }
    .amount-line input{
        padding-inline:6px;
    }
    .amount-line .button{
        width:36px;
        min-width:36px;
    }
    .shell-content .archive-refund-fields{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
    }
    .shell-content .archive-refund-fields>div:first-child{
        grid-column:1/-1;
    }
    .archive-refund-fields>div:nth-child(n+2) label{
        min-height:2.4em;
        margin-top:8px;
        font-size:.7rem;
        line-height:1.2;
    }
    .archive-refund-fields>div:nth-child(n+2) input{
        min-width:0;
        width:100%;
        padding-inline:6px;
        font-size:.76rem;
    }
}

/* Fiche locataire : nom et retour sur la même ligne sur téléphone. */
@media(max-width:700px){
    .tenant-dossier-head{
        grid-template-columns:minmax(0,1fr) auto;
        align-items:center;
        gap:14px 8px;
    }
    .tenant-dossier-head>div:first-child{
        grid-column:1;
        grid-row:1;
        min-width:0;
    }
    .tenant-dossier-head h1{
        font-size:clamp(1.35rem,7vw,1.8rem);
        overflow-wrap:anywhere;
    }
    .tenant-dossier-head .tenant-back-button{
        grid-column:2;
        grid-row:1;
        justify-self:end;
        min-height:40px;
        padding:0 10px;
        font-size:.76rem;
    }
    .tenant-header-apartment{
        grid-column:1/-1;
        grid-row:2;
    }
}

/* Dossier locataire : un sélecteur compact remplace les huit onglets sur mobile. */
.tenant-mobile-section-picker{
    display:none;
}
@media(max-width:700px){
    .tenant-section-tabs{
        display:none;
    }
    .tenant-mobile-section-picker{
        display:grid;
        gap:7px;
        margin:0 0 18px;
        padding:12px;
        border:1px solid #355164;
        border-radius:12px;
        background:#122b53;
    }
    .tenant-mobile-section-picker>span{
        color:#91b7d8;
        font-size:.72rem;
        font-weight:800;
        letter-spacing:.04em;
        text-transform:uppercase;
    }
    .tenant-mobile-section-picker select{
        width:100%;
        height:44px;
        margin:0;
        border-color:#4b6e8d;
        background:#0d2345;
        color:#fff;
        font-size:16px;
        font-weight:700;
    }
}

/* En-têtes simplifiés et actions compactes sur téléphone. */
.page-title-with-icon>div h1:only-child{
    margin-bottom:0;
}
.responsive-page-title{
    width:100%;
}
.responsive-title-action{
    margin-left:auto;
}
.rents-page-head .rent-month-picker,
.electricity-page-head .rent-month-picker{
    width:auto;
}
.rents-page-head .rent-month-controls,
.electricity-page-head .rent-month-controls{
    grid-template-columns:42px 170px auto 42px;
}
#rent-month,
#electricity-month{
    text-transform:uppercase;
}
@media(max-width:700px){
    .responsive-page-title{
        gap:12px;
    }
    .responsive-title-action{
        flex:none;
        width:44px;
        min-width:44px;
        padding:0;
    }
    .responsive-title-action span,
    .apartment-buildings-link span{
        display:none;
    }
    .apartment-buildings-link{
        width:44px;
        min-width:44px;
        padding:0;
    }
    .rents-page-head .rent-month-picker,
    .electricity-page-head .rent-month-picker{
        width:100%;
    }
    .rents-page-head .rent-month-controls,
    .electricity-page-head .rent-month-controls{
        grid-template-columns:42px minmax(0,1fr) 42px;
    }

    /* Électricité : les trois bâtiments restent dans leur cadre sur téléphone. */
    .electricity-building-tabs{
        gap:5px;
        padding:7px;
        overflow:hidden;
    }
    .electricity-building-tabs a{
        min-width:0;
        padding:10px 4px;
        font-size:.76rem;
    }

    /* L'éditeur de modèles de documents reste réservé aux grands écrans. */
    .desktop-only-navigation{
        display:none !important;
    }
}
