:root{--forest:#172536;--forest-2:#2d557d;--cream:#f5f7f8;--card:#fff;--ink:#1d2939;--muted:#74808f;--line:#e1e6ea;--peach:#ffe4c7;--blue:#dfeaf6;--gold:#ffe071;--red:#ef5b61;--shadow:0 12px 40px rgba(23,37,54,.08)}
*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',system-ui,sans-serif;font-size:14px}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:250px;background:var(--forest);color:white;padding:30px 18px 22px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:12px;padding:0 10px 32px}.brand-mark{width:42px;height:42px;border:1px solid rgba(255,255,255,.35);display:grid;place-items:center;border-radius:50%;font-family:'Playfair Display';font-weight:700}.brand strong,.brand span{display:block}.brand strong{font-family:'Playfair Display';font-size:19px}.brand span{opacity:.6;font-size:11px;letter-spacing:1.6px;text-transform:uppercase}.nav{display:flex;flex-direction:column;gap:7px}.nav-item{border:0;background:transparent;color:rgba(255,255,255,.65);padding:13px 14px;border-radius:10px;text-align:left;font:inherit;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:13px}.nav-item span{font-size:20px;width:19px;text-align:center}.nav-item b{margin-left:auto;background:#d98368;color:white;font-size:10px;border-radius:8px;padding:2px 6px}.nav-item:hover,.nav-item.active{background:rgba(255,255,255,.11);color:#fff}.sidebar-bottom{margin-top:auto}.help-card{margin:12px 0 18px;border:1px solid rgba(255,255,255,.12);border-radius:15px;padding:17px;background:rgba(255,255,255,.06)}.help-card>span{color:#f1cf91}.help-card strong,.help-card small{display:block}.help-card strong{margin:10px 0 4px}.help-card small{opacity:.62;line-height:1.5}.help-card button{width:100%;border:0;border-radius:8px;padding:9px;margin-top:13px;color:var(--forest);font-weight:700}.profile{width:100%;border:0;border-top:1px solid rgba(255,255,255,.12);padding:18px 5px 0;background:transparent;color:white;display:flex;align-items:center;text-align:left;gap:10px}.profile .avatar{width:35px;height:35px;border-radius:50%;display:grid;place-items:center;background:#d7ad80;color:#fff;font-weight:700}.profile strong,.profile small{display:block}.profile small{opacity:.55}.profile i{margin-left:auto;opacity:.5}.main{margin-left:250px;min-height:100vh}.topbar{height:74px;background:rgba(255,255,255,.88);backdrop-filter:blur(15px);border-bottom:1px solid var(--line);padding:0 38px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:10}.global-search{display:flex;align-items:center;gap:9px}.global-search span{font-size:22px;color:var(--muted)}.global-search input,.filter-bar input{border:0;outline:0;background:transparent;width:280px;font:inherit}.top-actions{display:flex;align-items:center;gap:14px}.icon-button{position:relative;border:0;background:transparent;font-size:20px}.icon-button em{position:absolute;top:-5px;right:-5px;background:#d96d59;color:#fff;border:2px solid white;width:17px;height:17px;border-radius:50%;font-size:9px;font-style:normal;display:grid;place-items:center}.primary-button,.outline-button{border:0;padding:11px 17px;border-radius:9px;font:inherit;font-weight:700;cursor:pointer}.primary-button{background:var(--forest);color:white;box-shadow:0 4px 12px rgba(23,60,52,.18)}.primary-button:hover{background:var(--forest-2)}.outline-button{background:#fff;border:1px solid var(--line);color:var(--ink)}.mobile-menu{display:none}.view{display:none;padding:38px;animation:fade .25s ease}.view.active{display:block}@keyframes fade{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:29px}.page-heading.compact{align-items:center}.eyebrow{color:#b88653!important;font-size:11px!important;font-weight:700;letter-spacing:1.7px;margin-bottom:7px!important}.page-heading h1{font-family:'Playfair Display';font-size:32px;margin:0 0 5px;letter-spacing:-.5px}.page-heading p{margin:0;color:var(--muted)}.weather{display:flex;align-items:center;gap:12px;background:rgba(255,255,255,.7);border:1px solid var(--line);padding:10px 15px;border-radius:12px}.weather-icon{font-size:26px;color:#e8b657}.weather strong,.weather small{display:block}.weather small{color:var(--muted)}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px;display:flex;align-items:center;gap:14px;position:relative;box-shadow:0 4px 16px rgba(31,51,46,.025)}.stat-card.green{background:#e8f0ed;border-color:#d8e5e1}.stat-icon{width:43px;height:43px;border-radius:12px;display:grid;place-items:center;background:var(--forest);color:white;font-size:18px}.stat-icon.peach{background:var(--peach);color:#a8674c}.stat-icon.blue{background:var(--blue);color:#4e7e89}.stat-icon.gold{background:var(--gold);color:#927234}.stat-card span,.stat-card strong,.stat-card small{display:block}.stat-card>div:nth-child(2)>span,.stat-card>div:first-child>span{color:var(--muted);font-size:12px;margin-bottom:3px}.stat-card strong{font-size:25px}.stat-card small{color:var(--muted);font-size:11px}.stat-card small b{color:#3e8b69}.stat-card>i{position:absolute;right:14px;top:13px;color:#3e8b69;background:#e3f1e9;border-radius:12px;padding:3px 7px;font-size:10px;font-style:normal}.stat-card>i.neutral{background:#eef0ef;color:#7a8783}.dashboard-grid{display:grid;grid-template-columns:minmax(550px,1.55fr) minmax(290px,.75fr);gap:20px}.panel{background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:0 6px 22px rgba(31,51,46,.03);overflow:hidden}.panel-header{display:flex;justify-content:space-between;align-items:center;padding:20px 22px;border-bottom:1px solid var(--line)}.panel h2{font-size:16px;margin:0 0 3px}.panel p{margin:0;color:var(--muted);font-size:12px}.text-button,.more{border:0;background:none;color:#527b70;font:inherit;font-size:12px;font-weight:700;cursor:pointer}.mission{display:grid;grid-template-columns:55px minmax(170px,1fr) 130px 108px 32px;gap:14px;align-items:center;padding:15px 22px;border-bottom:1px solid #eef0ee}.mission:last-child{border-bottom:0}.mission-time strong,.mission-time small{display:block}.mission-time small{color:var(--muted);font-size:10px}.property-cell{display:flex;align-items:center;gap:11px}.property-thumb{width:43px;height:43px;border-radius:10px;display:grid;place-items:center;font-size:20px;background:linear-gradient(135deg,#c5d2cc,#f1e3d3)}.property-cell strong,.property-cell small{display:block}.property-cell small{font-size:11px;color:var(--muted)}.agent-cell{display:flex;align-items:center;gap:8px}.tiny-avatar{width:29px;height:29px;border-radius:50%;display:grid;place-items:center;color:white;font-size:10px;font-weight:700}.status{font-size:10px;border-radius:12px;padding:6px 9px;text-align:center;font-weight:700}.status.todo{background:#f4eee4;color:#9a7240}.status.progress{background:#e8f0f2;color:#4c7c87}.status.done{background:#e2efe9;color:#397459}.complete-button{border:1px solid #d6ddda;background:#fff;width:28px;height:28px;border-radius:50%;color:#94a09c;cursor:pointer}.complete-button:hover{border-color:#4b8b72;color:#4b8b72}.side-column{display:flex;flex-direction:column;gap:20px}.alert-count{background:#f7e5df;color:#b65f4c;padding:4px 8px;border-radius:12px;font-size:11px;font-weight:700}.alert{display:flex;align-items:center;gap:10px;padding:14px 20px;border-bottom:1px solid #eef0ee}.alert:last-child{border:0}.alert-symbol{width:29px;height:29px;border-radius:8px;display:grid;place-items:center;font-weight:700}.alert-symbol.red{background:#f8e4e1;color:#bd5d53}.alert-symbol.amber{background:#f4ecd9;color:#9c793e}.alert-symbol.blue{background:#e1edef;color:#51818a}.alert div{flex:1}.alert strong{font-size:12px}.alert p{font-size:10px}.alert>small{font-size:9px;color:var(--muted)}.performance-panel{min-height:240px}.score-ring{margin:20px auto 12px;width:115px;height:115px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--forest) 0 94%,#edf0ee 94%);position:relative}.score-ring:after{content:"";position:absolute;inset:10px;background:#fff;border-radius:50%}.score-ring div{z-index:1;text-align:center}.score-ring strong{display:block;font-size:27px}.score-ring strong span{font-size:13px}.score-ring small{color:var(--muted);font-size:9px}.score-details{display:flex;justify-content:center;gap:18px;font-size:10px;color:var(--muted);padding-bottom:18px}.score-details b{color:var(--ink)}.dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:4px}.green-dot{background:var(--forest)}.gold-dot{background:#d3ad57}.filter-bar,.property-toolbar{background:#fff;border:1px solid var(--line);border-radius:12px;padding:7px;margin-bottom:16px;display:flex;align-items:center;gap:5px}.filter{border:0;background:transparent;padding:9px 13px;border-radius:8px;color:var(--muted);font:inherit;font-size:12px;font-weight:600;cursor:pointer}.filter.active{background:#e7efec;color:var(--forest)}.filter span{background:#d8e5e1;padding:2px 6px;border-radius:8px}.filter-bar input{margin-left:auto;border-left:1px solid var(--line);padding:8px 15px}.table-panel{overflow:auto}table{width:100%;border-collapse:collapse;min-width:780px}th{text-align:left;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.7px;padding:13px 18px;background:#fafbfa}td{padding:14px 18px;border-top:1px solid #edf0ee;font-size:12px}td strong,td small{display:block}td small{color:var(--muted)}.table-action{border:0;background:none;cursor:pointer}.property-toolbar .global-search{flex:1;padding-left:10px}.property-toolbar .global-search input{width:100%}.properties-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.property-card{background:#fff;border:1px solid var(--line);border-radius:15px;overflow:hidden;transition:.2s}.property-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.property-cover{height:130px;position:relative;display:flex;align-items:flex-end;padding:13px;background:linear-gradient(135deg,#a8b7b2,#eadbca)}.property-cover.cover-2{background:linear-gradient(135deg,#b5c7ca,#e7c8b3)}.property-cover.cover-3{background:linear-gradient(135deg,#d6c2aa,#7e9a91)}.property-cover.cover-4{background:linear-gradient(135deg,#8fa29c,#d8bfa8)}.property-cover:before{content:'⌂';font-size:55px;position:absolute;right:22px;top:30px;color:rgba(255,255,255,.48)}.occupancy{background:rgba(255,255,255,.9);color:#397459;border-radius:10px;padding:4px 8px;font-size:9px;font-weight:700}.occupancy.free{color:#a2743a}.property-body{padding:16px}.property-body h3{margin:0 0 3px;font-family:'Playfair Display';font-size:17px}.property-body>p{color:var(--muted);font-size:11px;margin:0 0 14px}.property-meta{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);padding-top:12px}.property-meta span{font-size:10px;color:var(--muted)}.property-meta b{display:block;color:var(--ink);font-size:12px}.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.team-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:22px;text-align:center}.large-avatar{margin:auto;width:62px;height:62px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:18px;font-weight:700}.team-card h3{margin:12px 0 2px}.team-card>p{margin:0 0 16px;color:var(--muted);font-size:11px}.availability{display:inline-flex;align-items:center;gap:5px;color:#397459;background:#e8f1ed;padding:5px 9px;border-radius:12px;font-size:10px}.availability.off{background:#f3ece7;color:#9b745a}.team-metrics{display:flex;justify-content:space-around;margin-top:17px;border-top:1px solid var(--line);padding-top:15px}.team-metrics strong,.team-metrics span{display:block}.team-metrics span{font-size:9px;color:var(--muted)}.finance-grid{display:grid;grid-template-columns:1.4fr .8fr;gap:20px}.chart{height:280px;padding:28px 25px 20px;display:flex;align-items:flex-end;justify-content:space-around;gap:14px;background:repeating-linear-gradient(to top,transparent 0,transparent 54px,#edf0ee 55px)}.bar-wrap{height:100%;flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:7px}.bar{width:70%;max-width:48px;border-radius:7px 7px 2px 2px;background:#b7d0c8;position:relative;transition:.3s}.bar.current{background:var(--forest)}.bar:hover:after{content:attr(data-value);position:absolute;top:-27px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;font-size:9px;padding:4px 6px;border-radius:5px}.bar-wrap small{color:var(--muted);font-size:10px}.invoice{display:flex;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line);gap:11px}.invoice:last-child{border:0}.invoice-icon{width:34px;height:34px;background:#e8efec;border-radius:9px;display:grid;place-items:center}.invoice div{flex:1}.invoice strong,.invoice small{display:block}.invoice small{color:var(--muted);font-size:10px}.invoice>b{font-size:12px}.modal-backdrop{position:fixed;inset:0;background:rgba(15,31,27,.55);backdrop-filter:blur(3px);z-index:100;display:none;align-items:center;justify-content:center;padding:20px}.modal-backdrop.open{display:flex}.modal{background:#fff;border-radius:18px;padding:28px;width:min(560px,100%);position:relative;box-shadow:0 25px 70px rgba(0,0,0,.2)}.modal-close{position:absolute;right:18px;top:16px;border:0;background:#f1f3f2;border-radius:50%;width:30px;height:30px;font-size:20px}.modal h2{font-family:'Playfair Display';font-size:25px;margin:0 0 5px}.modal>p:not(.eyebrow){color:var(--muted);margin:0 0 22px}.modal form{display:flex;flex-direction:column;gap:14px}.modal label{font-size:11px;font-weight:700;display:flex;flex-direction:column;gap:6px}.modal input,.modal select,.modal textarea{border:1px solid var(--line);border-radius:9px;padding:11px;font:inherit;outline:none;background:white}.modal input:focus,.modal select:focus,.modal textarea:focus{border-color:#79a096;box-shadow:0 0 0 3px #e7f0ed}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:13px}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:7px}.toast{position:fixed;right:25px;bottom:25px;background:var(--forest);color:white;padding:14px 18px;border-radius:12px;display:flex;align-items:center;gap:12px;box-shadow:0 10px 30px rgba(0,0,0,.2);transform:translateY(100px);opacity:0;transition:.3s;z-index:120}.toast.show{transform:none;opacity:1}.toast>span{width:29px;height:29px;border-radius:50%;background:rgba(255,255,255,.15);display:grid;place-items:center}.toast strong,.toast small{display:block}.toast small{opacity:.65}.empty{padding:35px;text-align:center;color:var(--muted)}
@media(max-width:1150px){.stats-grid{grid-template-columns:repeat(2,1fr)}.properties-grid,.team-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.side-column{display:grid;grid-template-columns:1fr 1fr}.mission{grid-template-columns:55px 1fr 120px 105px}.mission .complete-button{display:none}}
@media(max-width:780px){.sidebar{transform:translateX(-100%);transition:.25s}.sidebar.open{transform:none}.main{margin-left:0}.topbar{padding:0 18px}.mobile-menu{display:block;border:0;background:none;font-size:22px}.global-search{display:none}.view{padding:24px 16px}.top-actions .icon-button{display:none}.primary-button{padding:10px 12px}.page-heading{align-items:flex-start}.weather{display:none}.page-heading.compact{gap:18px}.page-heading.compact .primary-button{font-size:0}.page-heading.compact .primary-button:first-letter{font-size:17px}.stats-grid{grid-template-columns:1fr 1fr;gap:10px}.stat-card{padding:15px}.stat-card .stat-icon{display:none}.dashboard-grid{display:block}.side-column{display:block}.side-column .panel{margin-top:16px}.mission{grid-template-columns:48px 1fr 85px;padding:13px}.mission .agent-cell{display:none}.properties-grid,.team-grid{grid-template-columns:1fr}.property-toolbar .outline-button{display:none}.finance-grid{grid-template-columns:1fr}.filter-bar{overflow:auto}.filter-bar input{display:none}.form-row{grid-template-columns:1fr}.topbar .primary-button{font-size:0}.topbar .primary-button span{font-size:18px}}
@media(max-width:480px){.stats-grid{grid-template-columns:1fr}.page-heading h1{font-size:27px}.mission{grid-template-columns:45px 1fr}.mission .status{display:none}.score-details{flex-direction:column;align-items:center}.finance-stats{grid-template-columns:1fr 1fr}}

/* Identité et composants Binbi */
.brand-mark{border:0;border-radius:12px;background:var(--gold);color:var(--forest);font-family:'DM Sans';font-size:24px;font-weight:800}.brand strong{font-family:'DM Sans';font-size:23px;font-weight:800;letter-spacing:-1px}.brand span{font-size:9px;letter-spacing:1.3px}.nav-item b{background:var(--gold);color:var(--forest)}.help-card>span{color:var(--gold)}.eyebrow{color:#315d8d!important}.stat-card.green{background:#fff8d9;border-color:#f2e5aa}.stat-card.green .stat-icon{background:var(--gold);color:var(--forest)}.task-price{font-weight:800;color:var(--forest);white-space:nowrap}.status-button{border:0;cursor:pointer}.danger-action{width:28px;height:28px;border-radius:50%;color:#a85555;background:#fff0f0;font-size:18px}.edit-property{position:absolute;right:12px;bottom:11px;border:0;border-radius:8px;padding:7px 10px;background:rgba(23,37,54,.92);color:white;font:inherit;font-size:10px;font-weight:700;cursor:pointer}.property-cover{align-items:flex-end}.form-section-title{margin:3px 0 -3px;padding-top:11px;border-top:1px solid var(--line);color:#315d8d;font-size:10px;font-weight:800;letter-spacing:1px;text-transform:uppercase}.property-modal{width:min(650px,100%)}
@media(max-width:780px){.task-price{display:none}.edit-property{font-size:11px}.property-modal{max-height:92vh;overflow:auto}}
.row-actions{display:flex;gap:5px;align-items:center}.edit-action{width:28px;height:28px;border-radius:50%;background:#edf3f8;color:#315d8d}.invoice-group{gap:8px}.invoice-done{width:28px;height:28px;border:0;border-radius:50%;background:#e4f1eb;color:#397459;font-weight:800;cursor:pointer}.chart-empty{width:100%;align-self:center}.chart .bar-wrap small{max-width:70px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.clean-dashboard{grid-template-columns:1fr}.clean-dashboard .missions-panel{min-height:280px}.month-picker{border:1px solid var(--line);border-radius:9px;background:#fff;padding:10px 13px;color:var(--ink);font:inherit}.backup-button{padding:9px 12px;font-size:11px}
@media(max-width:780px){.backup-button{display:none}.month-picker{max-width:145px}.clean-dashboard .mission{grid-template-columns:48px 1fr}.clean-dashboard .mission .agent-cell,.clean-dashboard .mission .task-price{display:none}}
.property-cover.has-photo{background-size:cover;background-position:center}.property-cover.has-photo:before{display:none}.photo-editor{display:flex;gap:16px;align-items:center;padding:12px;background:#f6f8f9;border:1px solid var(--line);border-radius:12px}.photo-preview{width:130px;height:88px;flex:0 0 130px;border-radius:9px;background:linear-gradient(135deg,#dfe7ea,#eee3d7);background-size:cover;background-position:center;display:grid;place-items:center;font-size:30px;color:#82909a;overflow:hidden}.photo-preview.has-image{box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}.photo-editor>div:last-child{display:flex;align-items:flex-start;flex-direction:column;gap:7px}.photo-editor small{color:var(--muted);font-size:9px}.file-button,.remove-photo{display:inline-block;border:0;border-radius:8px;padding:8px 10px;font:inherit;font-size:10px;font-weight:700;cursor:pointer}.file-button{background:var(--forest);color:white}.remove-photo{background:transparent;color:#b55454;padding:2px}.team-card{position:relative}.team-edit{position:absolute;right:13px;top:13px;border:0;border-radius:8px;padding:6px 8px;background:#edf3f8;color:#315d8d;font:inherit;font-size:9px;font-weight:700;cursor:pointer}.team-contact{display:flex;flex-direction:column;gap:5px;min-height:47px;margin:-5px 0 12px}.team-contact a,.team-contact span{color:var(--muted);font-size:10px;text-decoration:none}.danger-button{border:0;background:#fff0f0;color:#b55454;border-radius:9px;padding:10px 14px;font:inherit;font-size:11px;font-weight:700;cursor:pointer}.modal-spacer{flex:1}
@media(max-width:560px){.photo-editor{align-items:flex-start}.photo-preview{width:100px;height:78px;flex-basis:100px}.modal-actions .danger-button{margin-right:auto}}
.clickable-property{cursor:pointer}.history-link{width:100%;margin-top:14px;padding:10px 0 0;border:0;border-top:1px solid var(--line);background:transparent;color:#315d8d;text-align:left;font:inherit;font-size:10px;font-weight:800;cursor:pointer}.history-modal{width:min(850px,96vw);max-height:90vh;overflow:auto}.history-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px}.history-heading h2{margin-bottom:3px}.history-heading p{color:var(--muted);margin:0}.history-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}.history-stats>div{background:#f5f7f8;border:1px solid var(--line);border-radius:11px;padding:13px 15px}.history-stats span,.history-stats strong{display:block}.history-stats span{color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.6px}.history-stats strong{margin-top:3px;font-size:19px}.history-list{border:1px solid var(--line);border-radius:12px;overflow:hidden;max-height:390px;overflow-y:auto}.history-item{display:grid;grid-template-columns:76px 30px minmax(180px,1fr) 70px 82px 30px;gap:10px;align-items:center;padding:13px 14px;border-bottom:1px solid var(--line)}.history-item:last-child{border-bottom:0}.history-date strong,.history-date small,.history-content strong,.history-content small{display:block}.history-date small,.history-content small{color:var(--muted);font-size:9px}.history-content strong{font-size:12px}.history-item>b{text-align:right;font-size:12px}.history-edit{border:0;cursor:pointer}.history-empty{display:flex;flex-direction:column;gap:4px}.history-empty strong{color:var(--ink)}.history-empty span{font-size:11px}.history-modal>.modal-actions{margin-top:16px}
@media(max-width:700px){.history-heading{align-items:flex-start}.history-heading .primary-button{font-size:0}.history-heading .primary-button:first-letter{font-size:18px}.history-item{grid-template-columns:58px minmax(130px,1fr) 55px}.history-item>.tiny-avatar,.history-item>.status,.history-item>.history-edit{display:none}.history-stats>div{padding:10px}.history-stats strong{font-size:15px}}

/* Tournées de linge */
.linen-heading-actions{display:flex;gap:9px}.linen-layout{display:grid;grid-template-columns:minmax(560px,1.5fr) minmax(280px,.7fr);gap:20px}.compact-select{border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:white;color:var(--ink);font:inherit;font-size:11px}.linen-tours-list{display:flex;flex-direction:column}.linen-tour-card{border-bottom:1px solid var(--line)}.linen-tour-card:last-child{border-bottom:0}.linen-tour-head{display:grid;grid-template-columns:68px minmax(190px,1fr) 82px 30px;gap:12px;align-items:center;padding:17px 20px;background:#fbfcfb}.linen-tour-head h3{margin:0 0 2px;font-size:14px}.linen-tour-head p{font-size:10px}.linen-date strong,.linen-date small{display:block}.linen-date strong{font-size:13px;text-transform:capitalize}.linen-date small{font-size:9px;color:var(--muted)}.linen-edit{border:0;cursor:pointer}.linen-stop-list{padding:0 20px}.linen-stop{display:grid;grid-template-columns:26px minmax(170px,1fr) 135px;gap:10px;align-items:center;padding:11px 0;border-top:1px solid #eef1ef}.linen-stop.is-done{opacity:.68}.linen-stop.is-done strong{text-decoration:line-through}.stop-order{width:23px;height:23px;border-radius:50%;display:grid;place-items:center;background:#e6eeeb;color:var(--forest);font-size:10px;font-weight:800}.linen-stop strong,.linen-stop small{display:block}.linen-stop strong{font-size:12px}.linen-stop small{font-size:9px;color:var(--muted)}.linen-stop select{border:1px solid var(--line);border-radius:8px;padding:7px;background:#fff;color:var(--ink);font:inherit;font-size:10px}.linen-tour-note{margin:0 20px 15px;padding:9px 11px;border-radius:8px;background:#fff8d9;color:#6c603a;font-size:10px}.linen-summary-panel{align-self:start;position:sticky;top:92px}.linen-load-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line)}.linen-load-grid>div{background:#fff;padding:13px 15px;display:flex;align-items:center;justify-content:space-between;gap:8px}.linen-load-grid span{font-size:10px;color:var(--muted)}.linen-load-grid strong{font-size:17px;color:var(--forest)}.linen-summary-note{padding:15px 18px;background:#f6f8f7;color:var(--muted);font-size:9px;line-height:1.5}.linen-tour-modal{width:min(720px,96vw);max-height:92vh;overflow:auto}.tour-stops-header{display:flex;align-items:center;justify-content:space-between}.tour-stops-header strong{font-size:11px}.tour-stops-header .outline-button{font-size:10px;padding:8px 10px}.tour-stops-editor{display:flex;flex-direction:column;gap:7px}.tour-stop-editor{display:grid;grid-template-columns:24px minmax(190px,1fr) 140px 30px;gap:7px;align-items:center;padding:8px;background:#f6f8f7;border:1px solid var(--line);border-radius:10px}.tour-stop-editor select{padding:9px}.drag-handle{color:#9aa5a1;font-size:13px;text-align:center}.remove-tour-stop{border:0;cursor:pointer}.linen-profile-modal{width:min(760px,96vw);max-height:92vh;overflow:auto}.linen-fields-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.linen-profile-modal .linen-fields-grid label{font-size:9px}.linen-profile-modal .linen-fields-grid input{padding:9px}.linen-stats .stat-card>div:first-child{width:100%}
@media(max-width:1050px){.linen-layout{grid-template-columns:1fr}.linen-summary-panel{position:static}.linen-fields-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.linen-heading-actions{flex-direction:column}.linen-heading-actions .outline-button{display:none}.linen-stats{grid-template-columns:1fr 1fr}.linen-tour-head{grid-template-columns:55px 1fr 28px}.linen-tour-head .status{display:none}.linen-stop{grid-template-columns:24px 1fr}.linen-stop select{grid-column:2}.tour-stop-editor{grid-template-columns:20px 1fr 30px}.tour-stop-editor .tour-stop-status{grid-column:2}.linen-fields-grid{grid-template-columns:repeat(2,1fr)}}

/* Connexion et synchronisation Supabase */
.cloud-status{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:20px;padding:7px 10px;background:#fff;color:var(--muted);font:inherit;font-size:9px;font-weight:800;cursor:pointer;white-space:nowrap}.cloud-status span{width:7px;height:7px;border-radius:50%;background:#9ba5a1}.cloud-status.online{background:#e7f2ec;color:#397459;border-color:#cee3d8}.cloud-status.online span{background:#41a875;box-shadow:0 0 0 3px rgba(65,168,117,.14)}.cloud-status.syncing{background:#fff8d9;color:#8c7330}.cloud-status.syncing span{background:#d6aa36;animation:cloudPulse 1s infinite}.cloud-status.error{background:#fff0f0;color:#ad5555;border-color:#f0d2d2}.cloud-status.error span{background:#ce5a5a}@keyframes cloudPulse{50%{opacity:.35}}
.auth-screen{position:fixed;inset:0;z-index:500;display:grid;place-items:center;padding:22px;background:radial-gradient(circle at 25% 20%,rgba(232,203,74,.18),transparent 35%),linear-gradient(145deg,#142f2a,#244c43);transition:.25s}.auth-screen.hidden{opacity:0;visibility:hidden;pointer-events:none}.auth-card{width:min(420px,100%);background:#fff;border-radius:22px;padding:34px;box-shadow:0 30px 90px rgba(0,0,0,.28)}.auth-brand{margin-bottom:28px}.auth-card h1{font-family:'Playfair Display';font-size:34px;margin:0 0 7px}.auth-card>p:not(.eyebrow){margin:0 0 23px;color:var(--muted);font-size:12px;line-height:1.55}.auth-card form{display:flex;flex-direction:column;gap:13px}.auth-card label{display:flex;flex-direction:column;gap:6px;font-size:10px;font-weight:800}.auth-card input{border:1px solid var(--line);border-radius:10px;padding:12px;font:inherit;outline:none}.auth-card input:focus{border-color:#79a096;box-shadow:0 0 0 3px #e7f0ed}.auth-submit{margin-top:3px}.offline-access{padding:7px}.auth-error{min-height:16px;margin:0;color:#b55454;font-size:10px}.auth-card>small{display:block;margin-top:18px;color:#8d9793;font-size:8px;line-height:1.45;text-align:center}
@media(max-width:780px){.cloud-status{padding:7px}.cloud-status{font-size:0}.cloud-status span{width:9px;height:9px}.auth-card{padding:27px 23px}}

/* Vue en colonnes et ajout multiple des tournées */
.linen-status-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:16px 20px 20px;background:#f7f9f8}.linen-status-column{border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden;min-width:0}.linen-status-column>header{display:flex;align-items:center;gap:8px;padding:11px 13px;border-bottom:1px solid var(--line);background:#fafbfa}.linen-status-column>header>span{width:8px;height:8px;border-radius:50%}.linen-status-column.pending>header>span{background:#d3a73d}.linen-status-column.delivered>header>span{background:#45a174}.linen-status-column>header strong{font-size:11px;flex:1}.linen-status-column>header b{display:grid;place-items:center;min-width:21px;height:21px;border-radius:11px;background:#edf1ef;font-size:9px}.linen-column-stop{display:grid;grid-template-columns:24px minmax(105px,1fr);gap:8px;align-items:center;padding:11px 12px;border-bottom:1px solid #edf0ee}.linen-column-stop:last-child{border-bottom:0}.linen-column-stop>div strong,.linen-column-stop>div small{display:block}.linen-column-stop>div strong{font-size:11px}.linen-column-stop>div small{max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:8px}.linen-column-stop select{grid-column:2;border:1px solid var(--line);border-radius:7px;padding:6px;background:#fff;font:inherit;font-size:9px}.linen-column-stop.is-done{background:#f7fbf9}.column-empty{margin:0;padding:24px 12px;text-align:center;color:var(--muted);font-size:9px}.bulk-property-picker{border:1px solid #dbe5e1;border-radius:12px;background:#f8faf9;padding:13px}.bulk-picker-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.bulk-picker-head strong,.bulk-picker-head small{display:block}.bulk-picker-head strong{font-size:11px}.bulk-picker-head small{margin-top:2px;color:var(--muted);font-size:8px}.bulk-property-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;max-height:180px;overflow:auto}.modal .bulk-property-option{display:flex;flex-direction:row;align-items:center;gap:7px;padding:8px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer;font-size:9px}.modal .bulk-property-option input{width:15px;height:15px;margin:0;padding:0;box-shadow:none}.bulk-property-option span{flex:1}.bulk-property-option small{color:#4d8870;font-size:7px}.bulk-property-option.already-added{opacity:.55;background:#edf2f0;cursor:default}.bulk-add-button{width:100%;margin-top:9px;font-size:10px}
@media(max-width:700px){.linen-status-columns{grid-template-columns:1fr;padding:12px}.bulk-property-grid{grid-template-columns:1fr 1fr}.bulk-picker-head{align-items:flex-start}}

/* Couleurs opérationnelles des livraisons */
.linen-status-column.pending{border-color:#efc9c9;background:#fff4f4}.linen-status-column.delivered{border-color:#c4e2d2;background:#f1faf5}.linen-status-column.pending>header{background:#f9dddd;border-color:#efc9c9;color:#9e4444}.linen-status-column.delivered>header{background:#dcefe5;border-color:#c4e2d2;color:#347558}.linen-status-column.pending>header>span{background:#d95f5f}.linen-status-column.delivered>header>span{background:#3f9b6e}.linen-status-column>header b{background:rgba(255,255,255,.75)}.linen-status-column.pending .linen-column-stop{background:rgba(255,245,245,.8);border-color:#f2d8d8}.linen-status-column.delivered .linen-column-stop{background:rgba(243,251,247,.85);border-color:#d7eadf}.linen-status-column.pending .linen-column-stop .stop-order{background:#f3caca;color:#a14444}.linen-status-column.delivered .linen-column-stop .stop-order{background:#cce8d9;color:#347558}

/* Tournées annulées */
.status.cancelled{background:#f2e7e7;color:#a25252}.tour-cancelled .linen-tour-head{background:#faf5f5}.tour-cancelled .linen-tour-head h3{text-decoration:line-through;color:#7e6868}.cancelled-tour-message{display:flex;flex-direction:column;gap:3px;margin:14px 20px;padding:14px 16px;border:1px solid #ebd0d0;border-radius:10px;background:#fff3f3;color:#994b4b}.cancelled-tour-message strong{font-size:12px}.cancelled-tour-message span{font-size:9px;color:#9b7474}

/* Suppression définitive d'une tournée */
.linen-tour-head{grid-template-columns:68px minmax(190px,1fr) 82px 30px 30px}.linen-delete{width:28px;height:28px;border:0;border-radius:50%;background:#fff0f0;color:#b55454;font-size:18px;line-height:1;cursor:pointer}.linen-delete:hover{background:#b55454;color:#fff}

/* Identité officielle BINBI — charte graphique 2025 */
:root{--forest:#171f26;--forest-2:#87b1c7;--cream:#f4f7f9;--card:#fff;--ink:#171f26;--muted:#68747d;--line:#dbe5ea;--peach:#eaf3f7;--blue:#dcecf3;--gold:#87b1c7;--shadow:0 14px 42px rgba(23,31,38,.09)}
body{background:var(--cream);color:var(--ink);font-family:'Poppins','Sofia Pro','Sofia',system-ui,sans-serif;font-weight:400}
.sidebar{background:#171f26;padding-top:24px;box-shadow:8px 0 30px rgba(23,31,38,.08)}
.brand-official{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:0 8px 27px}
.brand-official .brand-logo{display:block;width:190px;height:auto;object-fit:contain}
.brand-official>span{padding-left:48px;color:#87b1c7;opacity:1;font-size:8px;font-weight:700;letter-spacing:1.45px;text-transform:uppercase}
.nav{gap:6px}.nav-item{color:rgba(255,255,255,.67);border-radius:8px;font-weight:500}.nav-item:hover{background:rgba(135,177,199,.12);color:#fff}.nav-item.active{background:#87b1c7;color:#171f26}.nav-item.active span{color:#171f26}.nav-item b{background:#fff;color:#171f26}
.help-card{border-color:rgba(135,177,199,.24);background:linear-gradient(145deg,rgba(135,177,199,.16),rgba(135,177,199,.05));position:relative;overflow:hidden}.help-card:after{content:'•••';position:absolute;right:13px;top:3px;color:#87b1c7;font-size:22px;letter-spacing:2px;transform:rotate(-8deg)}.help-card>span{color:#87b1c7}.help-card button{background:#87b1c7;color:#171f26}.profile .avatar{background:#87b1c7;color:#171f26}
.topbar{background:rgba(255,255,255,.94);border-color:#dbe5ea}.primary-button{background:#171f26;color:#fff;border-radius:8px;box-shadow:0 5px 14px rgba(23,31,38,.16)}.primary-button:hover{background:#87b1c7;color:#171f26}.outline-button{border-color:#cfdde4;color:#171f26}.outline-button:hover{border-color:#87b1c7;background:#eef6f9}.text-button,.more,.history-link{color:#477f9a}
.page-heading h1,.modal h2,.auth-card h1,.property-body h3{font-family:'DM Sans','Papelli','Poppins',sans-serif;font-weight:700;letter-spacing:-.45px}.page-heading h1{font-size:31px}.eyebrow{color:#659db8!important;font-family:'DM Sans',sans-serif;font-weight:800;letter-spacing:1.9px}.eyebrow:before{content:'•••';display:inline-block;margin-right:8px;color:#87b1c7;letter-spacing:1px;transform:translateY(-1px)}
.stat-card{border-radius:12px}.stat-card.green{background:#eaf4f8;border-color:#cfe2eb}.stat-icon,.stat-card.green .stat-icon{background:#171f26;color:#fff}.stat-icon.peach,.stat-icon.blue,.stat-icon.gold{background:#87b1c7;color:#171f26}.panel,.property-card,.team-card{border-color:#dbe5ea;border-radius:12px}.panel-header{background:linear-gradient(90deg,#fff,#f8fbfc)}
.filter.active{background:#dcecf3;color:#294f61}.filter span{background:#c4dde8}.task-price,.linen-load-grid strong{color:#315f75}.complete-button:hover{border-color:#87b1c7;color:#315f75}.edit-action,.team-edit{background:#e4f1f6;color:#315f75}.form-section-title{color:#477f9a}
.property-cover{background:linear-gradient(135deg,#87b1c7,#dcecf3)}.property-cover.cover-2{background:linear-gradient(135deg,#6d9db5,#eef6f9)}.property-cover.cover-3{background:linear-gradient(135deg,#171f26,#87b1c7)}.property-cover.cover-4{background:linear-gradient(135deg,#b9d4df,#527f94)}.edit-property{background:rgba(23,31,38,.92)}.occupancy{color:#315f75}.availability{background:#e4f1f6;color:#315f75}
.modal-backdrop{background:rgba(23,31,38,.62)}.modal{border-radius:15px}.modal input:focus,.modal select:focus,.modal textarea:focus,.auth-card input:focus{border-color:#87b1c7;box-shadow:0 0 0 3px rgba(135,177,199,.2)}.file-button{background:#171f26}.toast{background:#171f26;border:1px solid rgba(135,177,199,.35)}
.bar{background:#b9d4df}.bar.current{background:#87b1c7}.invoice-icon,.stop-order{background:#dcecf3;color:#315f75}.cloud-status.online{background:#e7f2f6;color:#315f75;border-color:#cce1ea}.cloud-status.online span{background:#70abc4;box-shadow:0 0 0 3px rgba(135,177,199,.18)}
.auth-screen{background:radial-gradient(circle at 18% 14%,rgba(135,177,199,.28),transparent 34%),linear-gradient(145deg,#171f26,#284553)}.auth-screen:before{content:'•••';position:absolute;right:8vw;top:9vh;color:#87b1c7;font-size:90px;letter-spacing:14px;opacity:.2;transform:rotate(-9deg)}.auth-card{border-radius:16px;border-top:7px solid #87b1c7}.auth-brand{margin-bottom:24px;padding:0;align-items:center}.auth-brand .brand-logo{width:220px}.auth-brand>span{padding-left:0;text-align:center;color:#5f91aa;font-size:8px}.auth-submit{background:#87b1c7;color:#171f26}.auth-submit:hover{background:#171f26;color:#fff}
@media(max-width:780px){.brand-official .brand-logo{width:168px}.brand-official>span{padding-left:39px}.auth-brand .brand-logo{width:205px}.auth-brand>span{padding-left:0}}
@media(max-width:700px){.linen-tour-head{grid-template-columns:55px 1fr 28px 28px}.linen-tour-head .status{display:none}}
