/* Droneus Buzz — outil de travail : rail ardoise, zone claire, listes denses, photos en vignettes */
:root{--bg:#f2f3f5;--surface:#ffffff;--surface-2:#f7f8fa;--ink:#16191f;--ink-2:#3d4451;--ink-3:#566070;--line:#dfe2e7;--line-2:#c8cdd5;--line-strong:#868e9b;--accent:#1f4fae;--accent-ink:#163a84;--accent-tint:#e9effb;--accent-tint-2:#d3def5;--rail:#1d2330;--rail-2:#2b3343;--rail-line:#3a4456;--rail-ink:#d6dbe3;--rail-muted:#a9b1bf;--rail-mark:#8fb0ff;--ok:#17663a;--ok-tint:#e2f2e7;--warn:#6e4300;--warn-line:#c98a1a;--warn-tint:#fcf1da;--danger:#a11f1f;--danger-line:#d9a29d;--danger-tint:#fbe7e5;--focus:#1d4ed8;--r:6px;--r-sm:4px;--font:system-ui,-apple-system,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--rail-w:14.5rem}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
[hidden]{display:none!important}
body{margin:0;min-height:100vh;min-height:100dvh;font-family:var(--font);font-size:1rem;line-height:1.5;color:var(--ink);background:var(--bg);overflow-x:clip;-webkit-font-smoothing:antialiased}
body:has(dialog[open]){overflow:hidden}
h1,h2,h3,h4{margin:0;font-weight:650;line-height:1.25;color:var(--ink)}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
fieldset{margin:0;padding:0;border:0;min-width:0}
legend{padding:0}
img,svg{max-width:100%}
img{display:block}
a{color:var(--accent);text-underline-offset:.18em}
a:hover{color:var(--accent-ink)}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
::selection{background:var(--accent-tint-2)}
.vh{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:1rem;top:-4rem;z-index:100;padding:.625rem 1rem;border-radius:var(--r-sm);background:var(--ink);color:#fff;font-weight:600}
.skip-link:focus{top:1rem;color:#fff}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.icon{width:1.25rem;height:1.25rem;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.icon-sm{width:1rem;height:1rem}
.icon-lg{width:1.5rem;height:1.5rem}
.stack{display:grid;gap:1rem;min-width:0}
.eyebrow{font-size:.8125rem;font-weight:600;color:var(--ink-3)}
.section-title{font-size:1.0625rem}
.subsection-title{font-size:1rem}
.panel-text,.view-intro{max-width:46rem;font-size:.9375rem;color:var(--ink-2)}

/* Boutons */
.button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:2.75rem;padding:.5rem 1rem;border:1px solid var(--accent);border-radius:var(--r-sm);background:var(--accent);color:#fff;font-size:.9375rem;font-weight:600;line-height:1.2;text-align:center;text-decoration:none;cursor:pointer;transition:background-color .12s,border-color .12s,color .12s}
.button:hover{background:var(--accent-ink);border-color:var(--accent-ink);color:#fff}
.button:active{background:#102c66;border-color:#102c66}
.button-large{min-height:3rem;padding:.625rem 1.25rem;font-size:1rem}
.button-small{min-height:2.5rem;padding:.375rem .75rem;font-size:.875rem}
.button-block{width:100%}
.button-secondary{background:var(--surface);color:var(--ink);border-color:var(--line-2)}
.button-secondary:hover{background:var(--accent-tint);color:var(--accent-ink);border-color:var(--accent)}
.button-ghost{background:transparent;color:var(--accent-ink);border-color:transparent}
.button-ghost:hover{background:var(--accent-tint);color:var(--accent-ink);border-color:transparent}
.button-danger{background:var(--surface);color:var(--danger);border-color:var(--danger-line)}
.button-danger:hover{background:var(--danger);color:#fff;border-color:var(--danger)}
.button:disabled,.button[aria-disabled='true']{background:#e7e9ed;border-color:#d5d9df;color:#5a6270;cursor:not-allowed}
.button[aria-disabled='true']{pointer-events:none}
body:has(#busy:not([hidden])) .button:disabled{cursor:progress}
.icon-button{display:inline-grid;place-items:center;flex:none;width:2.75rem;height:2.75rem;padding:0;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);cursor:pointer}
.icon-button:hover{background:var(--accent-tint);border-color:var(--accent);color:var(--accent-ink)}
.form-actions,.publish-actions,.import-actions,.connect-row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}

/* Champs */
.field{display:grid;gap:.3125rem;min-width:0;align-content:start}
.field>label,.field-label{font-size:.9375rem;font-weight:600;color:var(--ink)}
.field-hint{font-size:.875rem;color:var(--ink-3)}
.field-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.25rem 1rem;min-width:0}
.field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr));gap:.875rem 1rem}
.field-wide{grid-column:1/-1}
input[type='text'],input[type='url'],input[type='number'],input[type='password'],input[type='search'],select,textarea{display:block;width:100%;min-width:0;min-height:2.75rem;padding:.5rem .75rem;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:#fff;color:var(--ink);line-height:1.4;transition:border-color .12s}
textarea{min-height:6rem;resize:vertical;line-height:1.55}
input::placeholder,textarea::placeholder{color:#636b78;opacity:1}
input:hover,select:hover,textarea:hover{border-color:var(--ink-3)}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--focus);outline-offset:0;border-color:var(--focus)}
input:disabled,select:disabled,textarea:disabled{background:#eceef1;color:#5a6270;cursor:not-allowed}
input:user-invalid,select:user-invalid,textarea:user-invalid{border-color:var(--danger)}
select{appearance:none;-webkit-appearance:none;padding-right:2.5rem;background-image:url('data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 20 20%27%3E%3Cpath d=%27M5 7.5l5 5 5-5%27 fill=%27none%27 stroke=%27%233d4451%27 stroke-width=%271.8%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27/%3E%3C/svg%3E');background-repeat:no-repeat;background-position:right .75rem center;background-size:1.1rem}
input[type='file']{display:block;width:100%;min-width:0;padding:.5rem;border:1px dashed var(--line-strong);border-radius:var(--r-sm);background:var(--surface);cursor:pointer}
input[type='file']::file-selector-button{margin-right:.75rem;padding:.4rem .75rem;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface-2);color:var(--ink);font-weight:600;cursor:pointer}
input[type='checkbox'],input[type='radio']{accent-color:var(--accent)}

/* Messages */
.notice{padding:.75rem 1rem;border:1px solid var(--accent-tint-2);border-left:3px solid var(--accent);border-radius:var(--r-sm);background:var(--accent-tint);color:#172f63;font-size:.9375rem;overflow-wrap:anywhere}
.notice:empty{display:none}
.notice-warning{border-color:#ecd39b;border-left-color:var(--warn-line);background:var(--warn-tint);color:var(--warn)}
.notice-error{border-color:#ecbcb7;border-left-color:var(--danger);background:var(--danger-tint);color:#7a1717}
.notice-success{border-color:#b9dcc5;border-left-color:var(--ok);background:var(--ok-tint);color:#12492a}
.notice ul{display:grid;gap:.25rem;padding-left:1.1rem;list-style:disc}
.note{display:flex;gap:.5rem;align-items:flex-start;font-size:.875rem;color:var(--ink-2)}
.note .icon{margin-top:.125rem;color:var(--ink-3)}

/* Notifications et activité */
#toast{position:fixed;right:1.5rem;bottom:1.5rem;z-index:90;width:max-content;max-width:min(28rem,calc(100% - 3rem));padding:.75rem 1rem;border-left:4px solid var(--rail-mark);border-radius:var(--r);background:var(--rail);color:#fff;font-weight:500;box-shadow:0 8px 24px rgba(16,20,28,.28);overflow-wrap:anywhere;animation:toast-in .18s ease-out both}
#toast.is-error,#toast[data-tone='error']{background:#8a1c1c;border-left-color:#ffb4a8}
#toast.is-success,#toast[data-tone='success']{background:#145232;border-left-color:#8fe0b2}
.modal>#toast{position:static;flex:none;order:2;width:auto;max-width:none;max-height:min(9rem,28dvh);margin:0;padding:.75rem 1.5rem calc(.75rem + env(safe-area-inset-bottom));border-left:0;border-top:3px solid var(--rail-mark);border-radius:0;box-shadow:none;transform:none;overflow-y:auto;animation-name:toast-flow}
.modal>#toast.is-error{border-top-color:#ffb4a8}
#busy{position:fixed;top:.75rem;left:50%;transform:translateX(-50%);z-index:95;display:flex;align-items:center;gap:.625rem;width:max-content;max-width:calc(100% - 2rem);padding:.5rem 1rem;border:1px solid var(--line-2);border-radius:var(--r);background:#fff;color:var(--ink);font-size:.9375rem;font-weight:600;box-shadow:0 6px 18px rgba(16,20,28,.18)}
#busy::before{content:'';flex:none;width:1rem;height:1rem;border-radius:50%;border:2px solid var(--accent-tint-2);border-top-color:var(--accent);animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes toast-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes toast-flow{from{opacity:0}to{opacity:1}}

/* Pastilles et statuts */
.status-pill,.count-pill{display:inline-flex;align-items:center;gap:.45rem;max-width:100%;min-height:2rem;padding:.25rem .625rem;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface);color:var(--ink-2);font-size:.875rem;font-weight:600}
.status-pill::before{content:'';flex:none;width:.5rem;height:.5rem;border-radius:50%;background:var(--line-strong)}
.status-pill[data-state='ok']::before,.status-pill.is-ok::before{background:var(--ok)}
.status-pill[data-state='warning']::before,.status-pill.is-warning::before{background:var(--warn-line)}
.status-pill[data-state='none']::before,.status-pill.is-none::before{background:var(--danger)}
.count-pill{background:var(--surface-2)}
.status-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.0625rem .5rem;border-radius:var(--r-sm);background:#e9ebef;color:var(--ink-2);font-size:.8125rem;font-weight:600;line-height:1.6;white-space:nowrap}
.status-badge::before{content:'';flex:none;width:.4375rem;height:.4375rem;border-radius:50%;background:currentColor}
.status-badge.is-ready,.status-badge[data-status='ready']{background:var(--accent-tint);color:var(--accent-ink)}
.status-badge.is-published,.status-badge[data-status='published']{background:var(--ok-tint);color:#12492a}
.status-badge.is-partial,.status-badge.is-pending,.status-badge.is-warning,.status-badge[data-status='partial'],.status-badge[data-status='pending'],.status-badge[data-status='queued']{background:var(--warn-tint);color:var(--warn)}
.status-badge.is-error,.status-badge.is-failed,.status-badge[data-status='error'],.status-badge[data-status='failed']{background:var(--danger-tint);color:#7a1717}

/* Connexion */
.auth-screen{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--bg)}
.auth-aside{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1.5rem;padding:.75rem 2rem;padding-top:calc(.75rem + env(safe-area-inset-top));background:var(--rail);color:var(--rail-ink)}
.brand{display:flex;align-items:center;gap:.625rem;min-width:0}
.brand-mark{width:2.25rem;height:2.25rem;flex:none;border-radius:50%}
.brand-name{font-size:1.0625rem;font-weight:700;color:var(--ink)}
.auth-aside .brand-name,.sidebar .brand-name{color:#fff}
.auth-foot{font-size:.875rem;color:var(--rail-muted)}
.auth-main{flex:1;display:flex;flex-direction:column;align-items:center;gap:1.25rem;padding:clamp(1.5rem,10vh,6rem) 1rem 3rem}
.auth-card{width:min(100%,24rem);display:grid;gap:.375rem;padding:1.5rem;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.auth-card h1{font-size:1.5rem}
.auth-subtitle{margin-bottom:.75rem;color:var(--ink-2);font-size:.9375rem}
.auth-form{display:grid;gap:1rem}
.auth-points{width:min(100%,24rem);display:grid;gap:.375rem;padding:0 .25rem 0 1.5rem;list-style:disc;color:var(--ink-3);font-size:.875rem}
.auth-points li::marker{color:var(--line-strong)}

/* Coque de l’application */
.app-shell{min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:var(--rail-w) minmax(0,1fr)}
.sidebar{position:sticky;top:0;height:100vh;height:100dvh;display:flex;flex-direction:column;padding:1rem .75rem;background:var(--rail);color:var(--rail-ink);overflow-y:auto}
.sidebar :focus-visible{outline-color:var(--rail-mark)}
.sidebar .brand{padding:.25rem .5rem}
.main-nav{display:flex;flex-direction:column;gap:.125rem;margin-top:1.25rem}
.nav-item{position:relative;display:flex;align-items:center;gap:.75rem;width:100%;min-height:2.75rem;padding:.5rem .75rem;border:0;border-radius:var(--r-sm);background:transparent;color:var(--rail-ink);font-size:.9375rem;font-weight:500;text-align:left;cursor:pointer;transition:background-color .12s,color .12s}
.nav-item:hover{background:var(--rail-2);color:#fff}
.nav-item.is-active,.nav-item[aria-current='page']{background:var(--rail-2);color:#fff;font-weight:650}
.nav-item.is-active::before,.nav-item[aria-current='page']::before{content:'';position:absolute;left:0;top:.5rem;bottom:.5rem;width:3px;border-radius:2px;background:var(--rail-mark)}
.nav-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sidebar-user{margin-top:auto;padding-top:.75rem;border-top:1px solid var(--rail-line);display:grid;gap:.5rem}
.user-card{display:flex;align-items:center;gap:.625rem;min-width:0;padding:0 .25rem}
.user-avatar{display:grid;place-items:center;flex:none;width:2.25rem;height:2.25rem;border-radius:var(--r-sm);background:var(--rail-2);color:var(--rail-ink)}
.user-meta{display:grid;min-width:0}
.user-label{font-size:.8125rem;color:var(--rail-muted)}
#user-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;color:#fff}
.logout-button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:2.5rem;padding:.375rem .75rem;border:1px solid var(--rail-line);border-radius:var(--r-sm);background:transparent;color:var(--rail-ink);font-size:.875rem;font-weight:600;cursor:pointer}
.logout-button:hover{background:var(--rail-2);color:#fff}
.main-wrap{min-width:0;display:flex;flex-direction:column}
.page-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1.5rem;padding:1rem 2rem;border-bottom:1px solid var(--line);background:var(--surface)}
.page-heading{flex:1 1 20rem;min-width:0}
.page-header h1{font-size:1.375rem}
.page-header p{margin-top:.125rem;max-width:46rem;color:var(--ink-3);font-size:.9375rem}
.header-status{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;min-width:0}
.main{width:100%;max-width:74rem;min-width:0;padding:1.5rem 2rem 3rem}
.main:focus{outline:none}
.section-view{display:grid;gap:1.25rem;min-width:0}
.panel{min-width:0;padding:1.25rem;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.panel-head{display:grid;gap:.25rem}
.panel-icon{display:none}

/* Créer */
.import-panel{display:grid;gap:.875rem;min-width:0;padding:1.25rem;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.import-panel .field{gap:.5rem}
.import-panel .field-label{font-size:1rem}
#listing-urls{min-height:8.5rem;background:var(--surface-2);font-family:var(--mono);font-size:.9375rem;line-height:1.7}
#listing-urls:focus-visible{background:#fff}
.import-panel .note{padding-top:.75rem;border-top:1px solid var(--line)}
.manual-panel{display:grid;gap:1rem;border-left:3px solid var(--accent)}
.import-results{display:grid;gap:.5rem}
.import-results:empty{display:none}
.result-item{display:flex;gap:.75rem;align-items:flex-start;min-width:0;padding:.875rem 1rem;border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:var(--r-sm);background:var(--surface)}
.result-item.is-success{border-left-color:var(--ok)}
.result-item.is-warning{border-left-color:var(--warn-line);background:#fffbf2}
.result-item.is-error{border-left-color:var(--danger);background:#fff8f7}
.result-icon{flex:none;margin-top:.125rem;color:var(--accent)}
.result-item.is-success .result-icon{color:var(--ok)}
.result-item.is-warning .result-icon{color:#8a5a00}
.result-item.is-error .result-icon{color:var(--danger)}
.result-body{display:grid;gap:.25rem;flex:1;min-width:0}
.result-title{font-weight:650}
.result-url{font-family:var(--mono);font-size:.8125rem;color:var(--ink-3);overflow-wrap:anywhere}
.result-text{font-size:.9375rem;color:var(--ink-2)}
.result-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.375rem}
.empty-state{display:grid;gap:.625rem;min-width:0;padding:1.25rem;border:1px dashed var(--line-2);border-radius:var(--r);background:var(--surface)}
.empty-state h2{font-size:1rem}
.empty-state>p{max-width:42rem;color:var(--ink-2);font-size:.9375rem}
.empty-compact{padding-block:1.5rem}
.steps{display:grid;gap:.375rem;padding-left:1.375rem;list-style:decimal;color:var(--ink-2);font-size:.9375rem}
.steps li{padding-left:.25rem}
.steps li::marker{color:var(--ink-3);font-weight:650}
.recent-block{display:grid;gap:.625rem}
.recent-block:not(:has(#recent-listings>*)){display:none}

/* Mes biens : liste de lignes */
.property-grid{display:grid;min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.property-grid:empty,#library-list:empty{display:none}
.property-card{display:grid;grid-template-columns:9.5rem minmax(0,1fr) auto;align-items:center;gap:.5rem 1.25rem;min-width:0;padding:.75rem 1rem .75rem .75rem}
.property-card+.property-card{border-top:1px solid var(--line)}
.property-card:hover,.property-card:focus-within{background:var(--surface-2)}
.property-cover{position:relative;display:grid;place-items:center;aspect-ratio:4/3;overflow:hidden;border-radius:var(--r-sm);background:#e4e7ec;color:var(--ink-3)}
.property-cover>span[role='img']{display:grid;place-items:center}
.property-cover .icon{width:1.75rem;height:1.75rem}
.property-cover img{width:100%;height:100%;object-fit:cover}
.property-body{display:grid;gap:.25rem;align-content:center;min-width:0}
.property-head{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .625rem;min-width:0}
.property-body .status-badge{justify-self:start}
.property-title{flex:1 1 14rem;min-width:0;font-size:1rem;font-weight:650;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.property-price{font-size:1.0625rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink)}
.property-meta{display:flex;flex-wrap:wrap;gap:.125rem .5rem;font-size:.875rem;color:var(--ink-2)}
.property-meta>*+*::before{content:'·';margin-right:.5rem;color:var(--ink-3)}
.card-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}

/* Connexions */
.network-trust{padding:.625rem .875rem;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2)}
.connection-list{display:grid;gap:1rem}
.connection-list:empty{display:none}
.network-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr));align-items:stretch}
.network-card{display:flex;flex-direction:column;gap:.75rem;min-width:0;padding:1rem;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.network-card[aria-busy='true']{border-color:var(--accent-tint-2);background:var(--surface-2);cursor:progress}
.network-card-head{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;min-width:0}
.network-title{flex:1 1 6rem;min-width:0;font-size:1.0625rem}
.network-mark{display:grid;place-items:center;flex:none;width:2rem;height:2rem;border-radius:var(--r-sm);background:#1b4f9c;color:#fff}
.network-mark-instagram{background:#a8306a}
.network-glyph{width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.network-mark-facebook .network-glyph{fill:currentColor;stroke-width:.6}
.network-glyph-dot{fill:currentColor;stroke:none}
.network-status{flex:none}
.network-status[data-state='ok']{background:var(--ok-tint);color:#12492a}
.network-status[data-state='warning']{background:var(--warn-tint);color:var(--warn)}
.network-status[data-state='error']{background:var(--danger-tint);color:#7a1717}
.network-status[data-state='none']{background:#e9ebef;color:var(--ink-2)}
.network-hint{font-size:.9375rem;color:var(--ink-2)}
.network-facts{display:grid;margin:0;padding:0;border-bottom:1px solid var(--line)}
.network-fact{display:grid;grid-template-columns:minmax(8rem,auto) minmax(0,1fr);align-items:baseline;gap:.125rem 1rem;min-width:0;padding:.5rem 0;border-top:1px solid var(--line)}
.network-fact dt{font-size:.875rem;color:var(--ink-3)}
.network-fact dd{margin:0;font-size:.9375rem;font-weight:600;color:var(--ink);text-align:right;overflow-wrap:anywhere}
.network-feedback{padding:.625rem .875rem;border-left:3px solid var(--accent);border-radius:var(--r-sm);background:var(--accent-tint);color:#172f63;font-size:.9375rem;overflow-wrap:anywhere}
.network-feedback:empty{display:none}
.network-feedback[data-tone='error'],.network-feedback.is-error{border-left-color:var(--danger);background:var(--danger-tint);color:#7a1717}
.network-feedback[data-tone='warning'],.network-feedback.is-warning{border-left-color:var(--warn-line);background:var(--warn-tint);color:var(--warn)}
.network-feedback[data-tone='success'],.network-feedback.is-success{border-left-color:var(--ok);background:var(--ok-tint);color:#12492a}
.network-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:auto}
.network-button{flex:1 1 9rem;min-width:0;padding-inline:.75rem}
.network-help{font-size:.875rem;color:var(--ink-3)}
.network-accounts{display:grid;gap:.5rem}
.network-accounts:empty{display:none}
.connection-card{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;min-width:0;padding:.75rem 1rem;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2)}
.connection-main{flex:1 1 14rem;min-width:0}
.connection-name{font-size:1rem;font-weight:650;overflow-wrap:anywhere}
.connection-meta{font-size:.875rem;color:var(--ink-2);overflow-wrap:anywhere}
.page-choices{display:grid;gap:.5rem}
.page-choices:empty{display:none}
.page-choices fieldset{gap:.5rem}
.page-choices fieldset:disabled{opacity:.65;cursor:progress}
.page-choices legend{margin-bottom:.5rem}
.page-choice{display:flex;align-items:center;gap:.75rem;min-width:0;min-height:2.75rem;padding:.5rem .875rem;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface);cursor:pointer}
.page-choice:hover{border-color:var(--accent)}
.page-choice:has(input:checked){border-color:var(--accent);background:var(--accent-tint)}
.page-choice input{flex:none;width:1.125rem;height:1.125rem;margin:0}
.switch-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;cursor:pointer}
.switch-text{display:grid;gap:.25rem;min-width:0}
.switch-title{font-weight:650}
.switch-desc{font-size:.9375rem;color:var(--ink-2)}
.switch-input{appearance:none;-webkit-appearance:none;flex:none;width:3rem;height:1.75rem;margin:0;border:2px solid #6b7280;border-radius:999px;background:radial-gradient(circle at .75rem 50%,#fff 0 .55rem,transparent .6rem),#6b7280;cursor:pointer;transition:background-color .15s,border-color .15s}
.switch-input:checked{border-color:var(--accent);background:radial-gradient(circle at calc(100% - .75rem) 50%,#fff 0 .55rem,transparent .6rem),var(--accent)}
.switch-input:disabled{opacity:.5;cursor:not-allowed}
.jobs-list{display:grid;overflow:hidden;border:1px solid var(--line);border-radius:var(--r-sm)}
.jobs-list:empty{border:0}
.jobs-list:empty::before{content:'Aucune publication pour le moment.';color:var(--ink-3);font-size:.9375rem}
.job-item{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem 1rem;min-width:0;padding:.625rem .875rem;background:var(--surface)}
.job-item+.job-item{border-top:1px solid var(--line)}
.job-title{flex:1 1 12rem;min-width:0;font-weight:600;overflow-wrap:anywhere}
.job-meta{font-size:.875rem;color:var(--ink-3)}
.job-error{flex-basis:100%;font-size:.875rem;color:#7a1717;overflow-wrap:anywhere}

/* Compte */
.info-list{display:grid}
.info-list:empty{display:none}
.info-row{display:grid;grid-template-columns:10rem minmax(0,1fr);gap:.125rem 1rem;padding:.625rem 0;border-top:1px solid var(--line)}
.info-row:first-child{border-top:0;padding-top:0}
.info-label{color:var(--ink-3);font-size:.9375rem}
.info-value{font-weight:600;overflow-wrap:anywhere}
.users-list{display:grid;overflow:hidden;border:1px solid var(--line);border-radius:var(--r-sm)}
.users-list:empty{display:none}
.user-item{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem 1rem;min-width:0;padding:.625rem .875rem;background:var(--surface)}
.user-item+.user-item{border-top:1px solid var(--line)}
.user-item-name{flex:1 1 10rem;min-width:0;font-weight:600;overflow-wrap:anywhere}
.user-item-meta{font-size:.875rem;color:var(--ink-3);overflow-wrap:anywhere}

/* Fiche du bien */
.modal{width:min(80rem,calc(100% - 2rem));max-width:none;max-height:calc(100dvh - 2rem);padding:0;border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface);color:var(--ink);box-shadow:0 20px 50px rgba(16,20,28,.35);overflow:hidden}
.modal[open]{display:flex;flex-direction:column}
.modal::backdrop{background:rgba(16,20,28,.55)}
.modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex:none;padding:.625rem .75rem .625rem 1.5rem;border-bottom:1px solid var(--line);background:var(--surface)}
.modal-heading{min-width:0}
.modal-header h2{font-size:1.1875rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:0;display:grid;align-content:start}
.editor-warnings{margin:1rem 1.5rem 0}
.editor-grid{display:grid;align-items:stretch;min-width:0}
.editor-col{display:grid;align-content:start;min-width:0;padding:0 1.5rem}
.editor-col+.editor-col{border-top:1px solid var(--line);background:var(--surface-2)}
.editor-section{display:grid;gap:.875rem;align-content:start;min-width:0;padding:1.25rem 0}
.editor-section+.editor-section{border-top:1px solid var(--line)}
.editor-section-title{display:flex;align-items:center;gap:.625rem;font-size:1rem}
.step-num{display:inline-grid;place-items:center;flex:none;width:1.5rem;height:1.5rem;border-radius:var(--r-sm);background:#e4e7ec;color:var(--ink);font-size:.8125rem;font-weight:700}
.editor-section .field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,6rem),1fr));grid-auto-flow:dense;gap:.5rem}
.photo-grid:empty::before{content:'Aucune photo pour ce bien. Ajoutez vos propres photos ci-dessous.';grid-column:1/-1;padding:1rem;border:1px dashed var(--line-strong);border-radius:var(--r-sm);color:var(--ink-2);font-size:.9375rem}
.photo-tile{position:relative;aspect-ratio:4/3;overflow:hidden;border:1px solid var(--line);border-radius:var(--r-sm);background:#e4e7ec}
.photo-tile img{width:100%;height:100%;object-fit:cover}
.photo-tile.is-cover{grid-column:span 2;grid-row:span 2;border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.photo-badge{position:absolute;left:.375rem;bottom:.375rem;padding:.0625rem .5rem;border-radius:3px;background:var(--ink);color:#fff;font-size:.8125rem;font-weight:600}
.photo-actions{position:absolute;left:.375rem;right:.375rem;top:.375rem;display:flex;justify-content:flex-end;gap:.25rem}
.photo-action{display:inline-grid;place-items:center;width:2.5rem;height:2.5rem;padding:0;border:0;border-radius:var(--r-sm);background:rgba(22,25,31,.88);color:#fff;cursor:pointer}
.photo-action:hover{background:var(--ink)}
.photo-action.is-danger:hover{background:var(--danger)}
.generated-preview{position:relative;display:grid;place-items:center;width:100%;max-width:20rem;aspect-ratio:4/5;margin-inline:auto;overflow:hidden;border:1px dashed var(--line-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--ink-2);text-align:center}
.generated-preview:empty::before{content:'Le visuel apparaîtra ici une fois généré.';max-width:14rem;padding:1.25rem;font-size:.9375rem}
.generated-preview:not(:empty){border-style:solid;border-color:var(--line-2)}
.generated-preview img,.generated-preview svg{width:100%;height:100%;object-fit:contain}
#generated-help{text-align:center}
.check-group{display:grid;gap:.5rem}
.check-group legend{margin-bottom:.375rem;font-weight:600}
.check-row{display:flex;flex-wrap:wrap;gap:.5rem}
.check-card{display:inline-flex;align-items:center;gap:.625rem;flex:1 1 9rem;min-height:2.75rem;padding:.5rem .875rem;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:#fff;font-weight:600;cursor:pointer}
.check-card input{flex:none;width:1.125rem;height:1.125rem;margin:0}
.check-card:hover{border-color:var(--accent)}
.check-card:has(input:checked){border-color:var(--accent);background:var(--accent-tint)}
.check-card:has(input:disabled){background:#eceef1;border-color:var(--line-2);color:#5a6270;cursor:not-allowed}
.publication-status{display:grid;gap:.5rem;padding:.75rem .875rem;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);font-size:.9375rem;overflow-wrap:anywhere}
.publication-status:empty{display:none}
.publication-line{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.25rem 1rem}
.danger-zone{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1rem;padding:1.25rem 0 1.5rem;border-top:1px solid var(--line);color:var(--ink-2);font-size:.9375rem}

/* Bureau */
@media (min-width:900px){
.editor-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}
.editor-col+.editor-col{border-top:0;border-left:1px solid var(--line)}
}
@media (min-width:1200px){
.property-card{grid-template-columns:11rem minmax(0,1fr) auto}
}
@media (pointer:coarse){
.button-small{min-height:2.75rem}
}

/* Mobile et tablette étroite */
@media (max-width:899px){
.app-shell{display:block}
.sidebar{position:sticky;top:0;z-index:40;height:auto;flex-direction:row;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem .75rem .5rem 1rem;padding-top:calc(.5rem + env(safe-area-inset-top));overflow:visible}
.sidebar .brand{padding:0}
.main-nav{position:fixed;left:0;right:0;bottom:0;z-index:50;flex-direction:row;gap:.25rem;margin:0;padding:.25rem .25rem calc(.25rem + env(safe-area-inset-bottom));border-top:1px solid var(--line-2);background:var(--surface)}
.nav-item{flex:1 1 0;min-width:0;min-height:3.5rem;flex-direction:column;justify-content:center;gap:.125rem;padding:.375rem .125rem;color:var(--ink-3);font-size:.8125rem;text-align:center}
.nav-item:hover{background:var(--surface-2);color:var(--ink)}
.nav-item.is-active,.nav-item[aria-current='page']{background:var(--accent-tint);color:var(--accent-ink)}
.nav-item.is-active::before,.nav-item[aria-current='page']::before{left:25%;right:25%;top:0;bottom:auto;width:auto;height:3px;border-radius:0 0 2px 2px;background:var(--accent)}
.main-nav .nav-item:focus-visible{outline-color:var(--focus);outline-offset:-2px}
.nav-label{max-width:100%}
.sidebar-user{margin:0;padding:0;border:0;display:flex;align-items:center}
.user-card{display:none}
.logout-label{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.logout-button{width:2.75rem;height:2.75rem;min-height:0;padding:0}
.page-header{padding:.875rem 1rem}
.page-header h1{font-size:1.25rem}
.main{padding:1rem 1rem calc(6rem + env(safe-area-inset-bottom))}
#toast{left:.75rem;right:.75rem;bottom:calc(4.75rem + env(safe-area-inset-bottom));width:auto;max-width:none}
#busy{top:calc(.75rem + env(safe-area-inset-top))}
.modal{width:calc(100% - 1.5rem)}
.editor-col{padding:0 1.25rem}
.auth-aside{padding-inline:1rem}
}

/* Petits écrans (360 px) */
@media (max-width:600px){
.modal{width:100%;max-width:100%;height:100dvh;max-height:100dvh;margin:0;border:0;border-radius:0}
.modal-header{padding:.5rem .5rem .5rem 1rem;padding-top:calc(.5rem + env(safe-area-inset-top))}
.modal-header h2{font-size:1.0625rem}
.editor-col{padding:0 1rem}
.editor-warnings{margin:1rem 1rem 0}
.editor-section{padding:1rem 0}
.import-actions .button,.publish-actions .button,.form-actions .button{width:100%}
.danger-zone{flex-direction:column;align-items:stretch}
.danger-zone .button{width:100%}
.panel,.import-panel{padding:1rem}
.header-status{width:100%}
.property-card{grid-template-columns:6.5rem minmax(0,1fr);align-items:start;gap:.5rem .875rem;padding:.75rem}
.property-title{flex-basis:100%;font-size:.9375rem}
.property-meta{gap:.125rem .75rem}
.property-meta>*+*::before{content:none}
.card-actions{grid-column:2;justify-content:stretch}
.card-actions .button{flex:1 1 auto}
.info-row{grid-template-columns:minmax(0,1fr)}
.switch-row{gap:.75rem}
.auth-main{padding-top:1.5rem}
.auth-card{padding:1.25rem}
}
@media (max-width:420px){
.network-card{padding:.875rem}
.network-fact{grid-template-columns:minmax(0,1fr)}
.network-fact dd{text-align:left}
.network-button{flex-basis:100%}
.network-status{order:3}
}

@media (prefers-reduced-motion:reduce){
*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

@media (forced-colors:active){
.button,.nav-item,.check-card,.page-choice,.status-badge,.status-pill{border:1px solid ButtonText}
.nav-item.is-active,.nav-item[aria-current='page']{outline:2px solid Highlight}
.photo-tile.is-cover{outline:3px solid Highlight}
.switch-input,.switch-input:checked{appearance:auto;-webkit-appearance:auto;width:1.5rem;height:1.5rem;border:0;border-radius:0;background:none}
}

/* LinkedIn, tuto de connexion */
.network-mark-linkedin{background:#0a66c2}
.network-mark-linkedin .network-glyph{stroke-width:2.2}
.network-guide{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2);padding:.75rem 1rem}
.network-guide summary{cursor:pointer;font-weight:650;color:var(--ink)}
.network-guide[open] summary{margin-bottom:.5rem}
.guide-steps{display:grid;gap:.5rem;margin:0;padding-left:1.25rem;font-size:.9375rem;color:var(--ink-2)}
.guide-steps strong{color:var(--ink)}
.link-button{all:unset;cursor:pointer;color:var(--accent);text-decoration:underline;font-size:.875rem}
.link-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
/* Lien de connexion */
.link-panel{border-color:var(--accent-tint-2)}
.link-box{display:grid;gap:.75rem;padding:1rem;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-2)}
.link-box[hidden]{display:none}
.link-url{width:100%;padding:.625rem .75rem;border:1px solid var(--line-2);border-radius:var(--r-sm);font:inherit;font-size:.9375rem;background:var(--surface)}
.link-actions{display:flex;flex-wrap:wrap;gap:.5rem}
.link-actions .button{flex:1 1 9rem}

/* Abonnement */
.plan-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr))}
.plan-card{display:grid;gap:.5rem;align-content:start;padding:1.125rem;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.plan-card.is-current{border-color:var(--ok);box-shadow:inset 0 0 0 1px var(--ok)}
.plan-name{font-size:1rem;font-weight:700}
.plan-price{font-size:1.5rem;font-weight:800;color:var(--ink)}
.plan-note{font-size:.875rem;color:var(--ink-2)}
.plan-current{font-weight:700;color:var(--ok)}
.billing-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1rem}
