:root {
  --cream: #fbf7f1;
  --cream-2: #f3eadf;
  --sand: #dec6ad;
  --camel: #b98b63;
  --camel-dark: #7f593d;
  --camel-text: #a8734f;
  --brown: #6f5846;
  --brown-soft: #786351;
  --olive: #8b8a63;
  --olive-soft: #eeeee6;
  --line: #e2d5c8;
  --white: #fffdf9;
  --shadow: 0 18px 48px rgba(112, 88, 70, 0.09);
  --radius: 26px;
  --focus-ring: #7f593d;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; font-size: 100%; }
body {
  margin: 0;
  min-height: 100vh;
  font-size: 1rem;
  font-weight: 400;
  color: var(--brown);
  background:
    radial-gradient(circle at 8% 8%, rgba(185, 139, 99, 0.12), transparent 24%),
    radial-gradient(circle at 90% 10%, rgba(139, 138, 99, 0.08), transparent 22%),
    linear-gradient(180deg, #fffdf9 0%, var(--cream) 100%);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

small { font-size: 1rem; }
button, input, select, textarea { font-family: inherit; font-size: 1rem; line-height: 1.4; }
button, input[type="submit"], input[type="button"] { font-weight: 500; }
a { color: inherit; text-decoration: none; }
.skip-link { position: fixed; z-index: 2000; top: 10px; left: 10px; padding: 12px 16px; border: 2px solid var(--focus-ring); border-radius: 10px; color: var(--white); background: var(--brown); font-weight: 500; transform: translateY(-180%); }
.skip-link:focus { transform: translateY(0); }
.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; clip-path: inset(50%) !important; border: 0 !important; white-space: nowrap !important; }
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 3px; }
.shell { width: min(1180px, calc(100% - 36px)); margin: 0 auto; }
header { min-height: 82px; display: flex; justify-content: space-between; align-items: center; gap: 18px; }
.brand { display: flex; align-items: center; color: var(--brown); line-height: 1; }
.brand-logo { display: block; width: 300px; max-width: min(62vw, 300px); height: auto; }
.soon {
  padding: 8px 12px;
  border: 1px solid #dec7b3;
  border-radius: 999px;
  color: var(--camel-dark);
  background: #f2e6da;
  font-size: 1rem;
  font-weight: 400;
}
.landing-nav { display: flex; min-width: 0; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 16px; color: var(--brown-soft); font-size: 1rem; font-weight: 500; }
.landing-nav-cta { padding: 10px 15px; border: 1px solid var(--camel-dark); border-radius: 999px; color: var(--white); background: var(--camel-dark); }
.landing-admin { color: var(--camel-dark); font-size: 1rem; letter-spacing: .04em; text-transform: uppercase; }
.account-link { display: inline-flex; min-width: 0; max-width: 230px; align-items: center; gap: .32em; }
.account-link > span:first-child { flex: 0 0 auto; }
.account-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

main { padding: 58px 0 38px; }
.hero { display: grid; grid-template-columns: minmax(0, 1.04fr) minmax(410px, 0.96fr); gap: 60px; align-items: center; }
.kicker { display: block; margin-bottom: 18px; color: var(--camel-dark); font-size: 1rem; font-weight: 600; letter-spacing: 0.04em; }
h1 { margin: 0; color: var(--brown); font: 700 clamp(50px, 6.4vw, 86px)/0.98 Georgia, "Times New Roman", serif; letter-spacing: -3.6px; }
h1 span { color: var(--camel-text); }
.lead { max-width: 700px; margin: 26px 0 0; color: #6e5a4a; font-size: clamp(20px, 2vw, 25px); line-height: 1.5; }
.sub { max-width: 680px; margin: 15px 0 0; color: var(--brown-soft); font-size: 1rem; line-height: 1.75; }
.landing-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 25px; }
.landing-action { display: inline-flex; min-width: 0; max-width: 100%; overflow-wrap: anywhere; text-align: center; min-height: 44px; align-items: center; justify-content: center; padding: 11px 16px; border: 1px solid var(--line); border-radius: 999px; color: var(--brown); background: var(--white); font-size: 1rem; font-weight: 500; }
.landing-action-primary { border-color: var(--camel-dark); color: var(--white); background: var(--camel-dark); }
.chips { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 27px; }
.chip { padding: 10px 13px; border: 1px solid var(--line); border-radius: 999px; color: #756250; background: var(--white); font-size: 1rem; font-weight: 400; }
.chip b { color: var(--camel-dark); }

.showcase { position: relative; display: grid; min-height: 500px; place-items: center; }
.ring { position: absolute; width: 390px; height: 390px; border: 1px dashed rgba(185, 139, 99, 0.4); border-radius: 50%; }
.maincard { position: relative; z-index: 2; width: min(100%, 450px); padding: 26px; border: 1px solid var(--line); border-radius: 32px; background: var(--white); box-shadow: var(--shadow); }
.maincard h2 { margin: 0 0 18px; color: var(--brown); font: 700 22px Georgia, serif; }
.collection { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.item { position: relative; display: flex; align-items: flex-end; min-height: 112px; padding: 14px; overflow: hidden; border-radius: 19px; color: #fffaf4; font-size: 1rem; font-weight: 400; }
.item::before { position: absolute; top: 10px; right: 12px; font-size: 34px; opacity: 0.92; }
.a { background: #8f5f3f; } .a::before { content: "🗺️"; }
.b { background: #6f674f; } .b::before { content: "✉️"; }
.c { background: #7b6858; } .c::before { content: "🚗"; }
.d { background: #80683e; } .d::before { content: "🪙"; }
.match { display: flex; gap: 12px; align-items: center; margin-top: 14px; padding: 15px; border: 1px solid #eadccd; border-radius: 18px; background: var(--cream-2); }
.heart { display: grid; flex: 0 0 42px; width: 42px; height: 42px; border-radius: 50%; color: #fff; background: var(--camel-dark); font-size: 18px; place-items: center; }
.match strong { display: block; margin-bottom: 2px; font-size: 1rem; }
.match span { color: var(--brown-soft); font-size: 1rem; }
.float { position: absolute; z-index: 3; padding: 10px 14px; border: 1px solid #dedfcd; border-radius: 999px; color: #626342; background: var(--olive-soft); box-shadow: 0 12px 30px rgba(90, 87, 63, 0.1); font-size: 1rem; font-weight: 400; }
.fa { top: 114px; left: -2%; transform: rotate(-6deg); }
.fb { right: 2%; bottom: -28px; transform: rotate(5deg); }

.how-it-works { margin-top: 82px; padding: clamp(28px, 4vw, 44px); scroll-margin-top: 24px; border: 1px solid var(--line); border-radius: 30px; background: rgba(255,253,249,.9); }
.how-it-works-heading { text-align: center; }
.how-it-works-heading .kicker { margin-bottom: 8px; }
.how-it-works h2 { margin: 0; color: var(--brown); font: 700 clamp(32px, 4vw, 46px)/1.08 Georgia, serif; letter-spacing: -1.2px; }
.how-it-works-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; margin-top: 30px; }
.how-it-works-step { min-width: 0; padding: 24px; border: 1px solid var(--line); border-radius: 21px; background: var(--cream); }
.how-it-works-number { display: grid; width: 38px; height: 38px; margin-bottom: 18px; border: 1px solid #d8d8c5; border-radius: 50%; color: var(--brown); background: var(--olive-soft); font-weight: 900; place-items: center; }
.how-it-works-step h3 { margin: 0; color: var(--brown); font: 700 20px/1.25 Georgia, serif; }
.how-it-works-step p { margin: 11px 0 0; color: var(--brown-soft); font-size: 1rem; line-height: 1.65; }
.how-it-works-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 26px; }
.how-it-works .landing-action:focus-visible { outline-color: var(--focus-ring); }

.statement { display: grid; grid-template-columns: 0.88fr 1.12fr; gap: 46px; margin-top: 92px; padding: 46px; border: 1px solid #dfcdbb; border-radius: 34px; background: #efe3d6; }
.statement h2, .seo h2 { margin: 0; color: var(--brown); font-family: Georgia, serif; }
.statement h2 { font-size: clamp(32px, 4vw, 48px); line-height: 1.06; letter-spacing: -1.6px; }
.statement h2 span { color: var(--camel-dark); }
.statement p { margin: 0; color: #725c4b; font-size: 1rem; line-height: 1.8; }
.roles { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 24px; }
.role { padding: 18px; border: 1px solid #ddcdbd; border-radius: 18px; background: rgba(255, 253, 249, 0.72); }
.role strong { display: block; margin-bottom: 6px; color: var(--brown); }
.role span { color: #7c6b5b; font-size: 1rem; line-height: 1.55; }
.role-link { transition: border-color .16s ease, transform .16s ease; }
.role-link:hover, .role-link:focus-visible { border-color: var(--camel); transform: translateY(-2px); }

.seo { max-width: 900px; margin: 86px auto 0; text-align: center; }
.seo h2 { font-size: clamp(30px, 3.7vw, 44px); letter-spacing: -1.2px; }
.seo h2 span { color: var(--camel-text); }
.seo p { max-width: 830px; margin: 16px auto 0; color: var(--brown-soft); line-height: 1.8; }
.category-note { max-width: 780px; margin: 24px auto 0; padding: 16px 18px; border: 1px solid var(--line); border-radius: 16px; color: var(--brown-soft); background: #f4eadf; font-size: 1rem; line-height: 1.6; }
.category-note strong { display: block; margin-bottom: 4px; color: var(--brown); font-size: 1rem; }
.category-note span { display: block; }
.tags { display: flex; flex-wrap: wrap; justify-content: center; gap: 9px; margin-top: 25px; }
.tag { padding: 9px 12px; border: 1px solid var(--line); border-radius: 999px; color: #796655; background: var(--white); font-size: 1rem; }
.latest-offers { margin-top: 82px; padding: clamp(24px, 4vw, 40px); border: 1px solid var(--line); border-radius: 30px; background: rgba(255,253,249,.9); }
.latest-offers-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 24px; }
.latest-offers-heading .kicker { margin-bottom: 8px; }
.latest-offers h2 { margin: 0; color: var(--brown); font: 700 clamp(30px, 4vw, 44px)/1.1 Georgia, serif; letter-spacing: -1.2px; }
.latest-offers-empty { margin: 0; padding: 18px; border-radius: 16px; color: var(--brown-soft); background: var(--cream); text-align: center; }
.waiting { margin-top: 70px; padding-top: 40px; border-top: 1px solid var(--line); text-align: center; }
.waiting strong { display: block; color: var(--brown); font: 700 27px Georgia, serif; }
.waiting p { margin: 8px auto 0; color: var(--brown-soft); font-size: 1rem; }

.error-page { width: min(760px, calc(100% - 36px)); margin: 12vh auto; text-align: center; }
.error-page h1 { font-size: clamp(38px, 7vw, 68px); }
.error-page p { color: var(--brown-soft); }
.button { display: inline-block; margin-top: 20px; padding: 12px 18px; border-radius: 999px; color: var(--white); background: var(--camel-dark); font-weight: 500; }
.request-id { font-size: 1rem; }

@media (max-width: 900px) {
  .hero { grid-template-columns: 1fr; gap: 38px; }
  .showcase { min-height: 430px; }
  .fa { top: -27px; left: calc(50% - 250px); }
  .how-it-works-steps { grid-template-columns: 1fr; }
  .statement { grid-template-columns: 1fr; padding: 36px; }
}

@media (max-width: 560px) {
  .shell { width: min(calc(100% - 24px), 1180px); }
  .brand { max-width: calc(100% - 116px); }
  .brand-logo { width: 250px; max-width: 100%; }
  .soon { font-size: 1rem; }
  .landing-header { flex-wrap: wrap; justify-content: center; padding: 12px 0; }
  .landing-header .brand { max-width: 100%; }
  .landing-nav { width: 100%; flex-wrap: wrap; justify-content: center; gap: 10px 14px; font-size: 1rem; }
  .account-link { max-width: min(100%, 220px); }
  .landing-nav-cta { padding: 8px 12px; }
  main { padding-top: 36px; }
  .hero-copy, h1, .kicker, .lead, .sub, .statement h2, .category-note { text-align: center; }
  h1 { font-size: clamp(46px, 12vw, 60px); line-height: 1.02; letter-spacing: -2px; }
  .kicker { margin-bottom: 15px; font-size: 1rem; letter-spacing: 0.03em; }
  .lead, .sub { margin-right: auto; margin-left: auto; }
  .chips { justify-content: center; width: 100%; }
  .landing-actions { justify-content: center; }
  .showcase { min-height: auto; padding: 30px 0 8px; }
  .ring, .float { display: none; }
  .how-it-works { margin-top: 54px; padding: 24px 16px; border-radius: 24px; }
  .how-it-works-step { padding: 20px; }
  .how-it-works-actions .landing-action { width: 100%; }
  .statement { margin-top: 54px; padding: 27px; border-radius: 24px; }
  .roles { grid-template-columns: 1fr; }
  .category-note { padding: 15px 16px; }
  .latest-offers { margin-top: 54px; padding: 22px 16px; border-radius: 24px; }
  .latest-offers-heading { align-items: stretch; flex-direction: column; text-align: center; }
  .latest-offers-heading .landing-action { width: 100%; }
  .footer-bottom { align-items: center; flex-direction: column; text-align: center; }
}

/* Application, authentification et administration — déclinaison V11 */
.app-body { background: linear-gradient(150deg, var(--white), var(--cream) 62%, var(--olive-soft)); }
.app-header { width: min(1180px, calc(100% - 36px)); margin: 0 auto; }
.app-header { min-height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border-bottom: 1px solid var(--line); }
.app-nav { display: flex; min-width: 0; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 18px; color: var(--brown-soft); font-size: 1rem; font-weight: 500; }
.nav-message-link { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.nav-unread-badge { display: inline-grid; min-width: 20px; height: 20px; padding: 0 6px; place-items: center; border: 1px solid #a9aa78; border-radius: 999px; color: var(--brown); background: var(--olive-soft); font-size: 1rem; font-weight: 500; line-height: 1; }
.nav-cta, .primary-button, .secondary-button { display: inline-flex; min-width: 0; max-width: 100%; overflow-wrap: anywhere; text-align: center; min-height: 44px; align-items: center; justify-content: center; border-radius: 999px; font-weight: 500; cursor: pointer; }
.nav-cta, .primary-button { padding: 12px 20px; border: 1px solid var(--camel-dark); color: var(--white); background: var(--camel-dark); }
.secondary-button { padding: 11px 18px; border: 1px solid var(--line); color: var(--brown); background: var(--white); }
.inline-form { display: inline; margin: 0; }
.link-button { padding: 0; border: 0; color: var(--brown-soft); background: transparent; font: inherit; cursor: pointer; }
.app-main { width: min(1180px, calc(100% - 36px)); min-height: calc(100vh - 190px); margin: 0 auto; padding: 64px 0 80px; }
.site-footer { width: min(1180px, calc(100% - 36px)); margin: 54px auto 0; padding: 34px 0 28px; border-top: 1px solid var(--line); color: var(--brown-soft); }
.shell > .site-footer { width: 100%; }
.footer-groups { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: clamp(24px,4vw,54px); }
.footer-groups h2 { margin: 0 0 13px; color: var(--brown); font: 700 17px Georgia,serif; }
.footer-groups ul { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; }
.footer-groups li { min-width: 0; line-height: 1.4; }
.footer-groups a { color: var(--brown); font-weight: 500; }
.footer-groups span { color: var(--brown-soft); }
.footer-groups a:focus-visible,.universe-card > summary:focus-visible { border-radius: 6px; outline-color: var(--focus-ring); }
.footer-bottom { display: flex; justify-content: space-between; gap: 20px; margin-top: 30px; padding-top: 20px; border-top: 1px solid var(--line); font-size: 1rem; }
.site-footer-compact { margin-top: 20px; padding-top: 18px; }
.site-footer-compact .footer-bottom { margin-top: 0; padding-top: 0; border-top: 0; }
.auth-card, .content-card, .admin-panel { border: 1px solid var(--line); background: rgba(255,253,249,.96); box-shadow: var(--shadow); }
.auth-card { width: min(620px, 100%); margin: 0 auto; padding: clamp(28px, 5vw, 52px); border-radius: 30px; }
.compact-card { width: min(520px, 100%); }
.auth-card h1, .content-card h1, .admin-shell h1 { margin: 0; color: var(--brown); font: 700 clamp(36px, 6vw, 54px)/1.05 Georgia, serif; letter-spacing: -1.5px; }
.eyebrow { margin: 0 0 10px; color: var(--camel-dark); font-size: 1rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.form-intro, .message-card > p, .trust-note { color: var(--brown-soft); line-height: 1.65; }
.stack-form { display: grid; gap: 18px; margin-top: 28px; }
.stack-form label { display: grid; gap: 7px; color: var(--brown); font-size: 1rem; font-weight: 600; }
.stack-form input { width: 100%; min-height: 48px; padding: 11px 13px; border: 1px solid #d9c9ba; border-radius: 13px; color: var(--brown); background: #fff; font: inherit; font-size: 1rem; font-weight: 400; line-height: 1.4; }
.stack-form input:focus { border-color: var(--focus-ring); box-shadow: 0 0 0 3px rgba(127,89,61,.16); }
.stack-form small, .optional { color: var(--brown-soft); font-size: 1rem; font-weight: 500; }
.alert { margin: 20px 0 0; padding: 14px 16px; border-radius: 14px; font-size: 1rem; line-height: 1.55; }
.alert ul { margin: 0; padding-left: 18px; }
.alert-error { border: 1px solid #d9b9a6; color: #79523c; background: #f7e8df; }
.alert-success { border: 1px solid #cfd1af; color: #626342; background: var(--olive-soft); }
.notice-with-action { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.notice-with-action .secondary-button { min-height: 40px; padding: 9px 15px; }
.alert-warning { border: 1px solid #dbc6a4; color: #715d3f; background: #faf0dc; }
.auth-switch { margin: 26px 0 0; text-align: center; color: var(--brown-soft); font-size: 1rem; }
.auth-switch a, .auth-links a, .table-wrap a { color: var(--camel-dark); font-weight: 500; }
.auth-links { display: flex; justify-content: space-between; gap: 14px; margin-top: 20px; font-size: 1rem; }
.message-card { text-align: center; }
.message-card .primary-button { margin-top: 18px; }
.registration-success { display: grid; gap: 5px; }
.registration-success strong { font: 700 20px Georgia, serif; }
.registration-success a { margin-top: 4px; color: var(--camel-dark); font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }
.content-card { padding: clamp(28px, 5vw, 50px); border-radius: 30px; }
.editorial-page { width: min(920px,100%); margin: 0 auto; }
.editorial-page h1 { overflow-wrap: anywhere; }
.editorial-page > .eyebrow,.editorial-page > h1,.editorial-intro { text-align: center; }
.editorial-intro { max-width: 760px; margin: 18px auto 0; color: var(--brown-soft); font-size: 17px; line-height: 1.7; }
.editorial-page h2 { margin: 42px 0 13px; color: var(--brown); font: 700 clamp(25px,4vw,32px)/1.2 Georgia,serif; }
.editorial-page h3 { margin: 25px 0 9px; color: var(--brown); font: 700 21px/1.3 Georgia,serif; }
.editorial-page p,.editorial-page li,.editorial-page address { color: var(--brown-soft); line-height: 1.75; }
.editorial-page li + li { margin-top: 6px; }
.editorial-page a { overflow-wrap: anywhere; font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }
.editorial-page a:focus-visible { border-radius: 4px; outline-color: var(--focus-ring); }
.editorial-note a,.moderation-statement a,.transaction-safety-tip a,.content-card p > a:not(.primary-button):not(.secondary-button),.catalog-section p > a:not(.primary-button):not(.secondary-button) { text-decoration: underline; text-underline-offset: 3px; }
.editorial-toc { margin: 28px 0 8px; padding: 20px 22px; border: 1px solid #cfd1af; border-radius: 18px; background: var(--olive-soft); }
.editorial-toc strong { color: var(--brown); }
.editorial-toc ul { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px 24px; margin: 12px 0 0; padding-left: 20px; }
.editorial-section { scroll-margin-top: 22px; }
.editorial-note { margin: 22px 0; padding: 16px 18px; border: 1px solid #dbc6a4; border-radius: 15px; color: #715d3f; background: #faf0dc; }
.help-entry-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; margin-top: 32px; }
.help-entry { min-width: 0; padding: 24px; border: 1px solid var(--line); border-radius: 20px; background: var(--cream); }
.help-entry-collector { border-top: 5px solid var(--olive); }
.help-entry-owner { border-top: 5px solid var(--camel-dark); }
.help-entry-label { margin: 0; color: var(--camel-dark); font-size: 1rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.help-entry h2 { margin: 8px 0 12px; font-size: clamp(24px,3vw,30px); }
.help-entry p:not(.help-entry-label) { margin: 0 0 18px; }
.help-page .primary-button,.help-page .secondary-button { text-decoration: none; }
.help-illustration-note { max-width: 760px; margin: 18px auto 0; font-size: 1rem; text-align: center; }
.help-section { padding-top: 4px; scroll-margin-top: 22px; }
.help-section > .eyebrow { margin-top: 42px; }
.help-section > .eyebrow + h2 { margin-top: 8px; }
.help-steps { display: grid; gap: 15px; margin: 20px 0 0; padding: 0; counter-reset: help-step; list-style: none; }
.help-steps > li { display: grid; min-width: 0; grid-template-columns: 42px minmax(0,1fr); gap: 14px; align-items: start; counter-increment: help-step; }
.help-steps > li::before { display: grid; width: 42px; height: 42px; border: 1px solid #d8d8c5; border-radius: 50%; color: var(--brown); background: var(--olive-soft); content: counter(help-step); font-weight: 900; place-items: center; }
.help-steps h3 { margin: 0 0 5px; font-size: 20px; }
.help-steps p { margin: 0; }
.help-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.help-back { margin-top: 22px; font-size: 1rem; text-align: right; }
.help-verification-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; margin: 22px 0 0; }
.help-verification-list > div { min-width: 0; padding: 20px; border: 1px solid var(--line); border-radius: 17px; background: var(--cream); }
.help-verification-list dt { color: var(--brown); font: 700 20px/1.3 Georgia,serif; }
.help-verification-list dd { margin: 8px 0 0; color: var(--brown-soft); line-height: 1.65; }
.help-two-columns { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; margin-top: 20px; }
.help-panel { min-width: 0; padding: 21px; border: 1px solid var(--line); border-radius: 18px; background: var(--cream); }
.help-panel h3 { margin-top: 0; }
.help-panel ul { margin-bottom: 0; padding-left: 21px; }
.help-faq-list { display: grid; gap: 10px; margin-top: 20px; }
.help-faq { border: 1px solid var(--line); border-radius: 14px; background: var(--cream); }
.help-faq summary { min-height: 48px; padding: 13px 16px; color: var(--brown); cursor: pointer; font-weight: 850; }
.help-faq summary:focus-visible { border-radius: 14px; outline-color: var(--focus-ring); }
.help-faq p { margin: 0; padding: 0 16px 16px; }
.help-link-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 13px; margin-top: 20px; }
.help-link-grid a { display: block; min-width: 0; min-height: 92px; padding: 18px; border: 1px solid var(--line); border-radius: 16px; background: var(--cream); text-decoration: none; }
.help-link-grid a:hover,.help-link-grid a:focus-visible { border-color: var(--camel); }
.help-link-grid strong,.help-link-grid span { display: block; }
.help-link-grid span { margin-top: 5px; color: var(--brown-soft); font-weight: 500; line-height: 1.5; }
.editorial-grid,.site-map-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; margin-top: 20px; }
.editorial-panel,.site-map-group { min-width: 0; padding: 20px; border: 1px solid var(--line); border-radius: 18px; background: var(--cream); }
.editorial-panel h2,.site-map-group h2 { margin-top: 0; }
.legal-address { font-style: normal; }
.cookie-table { width: 100%; margin-top: 20px; border-collapse: collapse; }
.cookie-table th,.cookie-table td { padding: 12px; border: 1px solid var(--line); text-align: left; vertical-align: top; }
.cookie-table th { color: var(--brown); background: var(--olive-soft); }
.cookie-table-wrap { overflow-x: auto; }
.coming-soon-card { max-width: 760px; margin: 0 auto; }
.coming-soon-actions { justify-content: center; margin-top: 24px; }
.dev-mailbox { max-width: 900px; margin: 0 auto; }
.dev-mailbox > .empty-state { margin-top: 24px; }
.dev-mail-list { display: grid; gap: 14px; margin-top: 28px; }
.dev-mail-item { display: grid; grid-template-columns: 1fr 1.4fr auto; gap: 16px; align-items: center; padding: 18px; border: 1px solid var(--line); border-radius: 18px; background: var(--cream); }
.dev-mail-item > div { display: grid; gap: 4px; min-width: 0; }
.dev-mail-item span { color: var(--brown-soft); font-size: 1rem; }
.dev-mail-item strong { overflow-wrap: anywhere; font-size: 1rem; }
.dev-mail-item .dev-mail-meta { gap: 3px; }
.dev-mail-item .primary-button { min-height: 40px; padding: 9px 14px; font-size: 1rem; }
.trust-grid, .stat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-top: 30px; }
.account-trust-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
.trust-grid > div, .stat-grid article { display: grid; gap: 7px; padding: 20px; border: 1px solid var(--line); border-radius: 18px; background: var(--cream); }
.trust-grid span { color: var(--brown-soft); font-size: 1rem; }
.account-actions { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin-top: 24px; }
.status-good { color: #676943 !important; font-weight: 600; }
.admin-shell { display: grid; grid-template-columns: minmax(0,1fr); gap: 26px; }
.admin-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; }
.stat-grid { grid-template-columns: repeat(5, 1fr); margin-top: 0; }
.stat-grid strong { color: var(--camel-dark); font: 700 34px Georgia, serif; }
.stat-grid span { color: var(--brown-soft); font-size: 1rem; }
.admin-panel { padding: 26px; border-radius: 24px; box-shadow: none; }
.admin-panel h2 { margin: 0 0 18px; color: var(--brown); font: 700 23px Georgia, serif; }
.tech-list, .detail-list { display: grid; gap: 0; margin: 0; }
.tech-list div, .detail-list div { display: grid; grid-template-columns: minmax(150px, .45fr) 1fr; gap: 18px; padding: 13px 0; border-bottom: 1px solid var(--line); }
.tech-list dt, .detail-list dt { color: var(--brown-soft); font-size: 1rem; }
.tech-list dd, .detail-list dd { margin: 0; color: var(--brown); font-weight: 600; overflow-wrap: anywhere; }
.table-wrap { position: relative; overflow-x: auto; border: 1px solid var(--line); border-radius: 20px; background: var(--white); }
table { width: 100%; border-collapse: collapse; text-align: left; }
th, td { padding: 14px 16px; border-bottom: 1px solid var(--line); vertical-align: middle; font-size: 1rem; }
th { color: var(--brown-soft); background: var(--cream-2); font-size: 1rem; letter-spacing: .04em; text-transform: uppercase; }
td small { display: block; margin-top: 4px; color: var(--brown-soft); }
.technical-code { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; overflow-wrap: anywhere; }
.narrow-admin { max-width: 820px; margin: 0 auto; }
.mfa-card { width: min(700px, 100%); }
.secret-box { display: grid; gap: 8px; margin: 24px 0; padding: 18px; border: 1px dashed var(--camel); border-radius: 16px; background: var(--cream); text-align: center; }
.secret-box span { color: var(--brown-soft); font-size: 1rem; font-weight: 800; text-transform: uppercase; }
.secret-box code, .recovery-grid code { color: var(--brown); font-size: 17px; font-weight: 800; letter-spacing: .08em; overflow-wrap: anywhere; }
.uri-code { display: block; margin-top: 10px; padding: 12px; border-radius: 10px; background: var(--cream); overflow-wrap: anywhere; font-size: 1rem; }
.recovery-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 22px 0; }
.recovery-grid code { padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--cream); text-align: center; }

/* Catalogue et parcours « Je collectionne » */
.catalog-hero { display: flex; align-items: end; justify-content: space-between; gap: 36px; padding: clamp(28px, 5vw, 52px); border: 1px solid var(--line); border-radius: 30px; background: rgba(255,253,249,.96); box-shadow: var(--shadow); }
.catalog-hero > div { max-width: 680px; }
.catalog-hero > .catalog-hero-actions { display: flex; flex: 0 0 auto; flex-direction: column; align-items: stretch; gap: 10px; }
.catalog-hero h1 { font-size: clamp(40px, 6vw, 62px); }
.catalog-hero p, .catalog-card p, .universe-card p, .interest-card p, .proposal-panel p { color: var(--brown-soft); line-height: 1.6; }
.search-form { display: grid; flex: 0 1 470px; gap: 8px; }
.search-form label { color: var(--brown); font-size: 1rem; font-weight: 600; }
.search-form > div { display: flex; gap: 9px; }
.search-form input, .stack-form select, .stack-form textarea, .add-interest-form input, .alias-list input, .alias-list select, .alias-add input, .alias-add select { min-width: 0; padding: 11px 13px; border: 1px solid #d9c9ba; border-radius: 13px; color: var(--brown); background: #fff; font: inherit; font-size: 1rem; font-weight: 400; line-height: 1.4; }
.search-form input { width: 100%; min-height: 48px; font-size: 1rem; }
.stack-form textarea { width: 100%; resize: vertical; }
.stack-form select { min-height: 48px; }
.check-line { display: flex !important; grid-template-columns: auto 1fr; align-items: center; }
.check-line input { width: 18px; min-height: 18px; }
.catalog-section { margin-top: 30px; padding: clamp(24px, 4vw, 38px); border: 1px solid var(--line); border-radius: 26px; background: rgba(255,253,249,.9); }
.catalog-section h2 { margin: 0 0 20px; color: var(--brown); font: 700 clamp(26px, 4vw, 36px) Georgia, serif; }
.catalog-section h3 { margin: 0; color: var(--brown); font: 700 20px Georgia, serif; }
.section-heading, .button-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.result-grid, .universe-grid, .interest-grid, .quick-add-grid { display: grid; gap: 14px; }
.result-grid { grid-template-columns: repeat(3, 1fr); }
.universe-grid { grid-template-columns: repeat(2, minmax(0,1fr)); align-items: start; }
.interest-grid { grid-template-columns: repeat(3, 1fr); }
.catalog-card, .universe-card, .interest-card { border: 1px solid var(--line); border-radius: 18px; background: var(--cream); }
.catalog-card, .interest-card { padding: 20px; }
.taxonomy-link { color: var(--brown); text-decoration-color: rgba(147,108,76,.45); text-underline-offset: 3px; }
.taxonomy-link:hover,.taxonomy-link:focus-visible { color: var(--camel-dark); text-decoration-thickness: 2px; }
.breadcrumbs { margin: 0 0 18px; color: var(--brown-soft); font-size: 1rem; overflow-wrap: anywhere; }
.breadcrumbs ol { display: flex; align-items: center; gap: 7px; margin: 0; padding: 0; list-style: none; flex-wrap: wrap; }
.breadcrumbs li { display: inline-flex; align-items: center; gap: 7px; min-width: 0; }
.breadcrumbs li:not(:last-child)::after { content: '›'; color: var(--camel); }
.breadcrumbs a { color: var(--brown-soft); text-underline-offset: 3px; }
.category-seo-hero { align-items: center; }
.catalog-card small, .universe-card small, .interest-card small, .quick-add-grid small, .add-interest-form small { display: block; margin-top: 5px; color: var(--brown-soft); }
.level-badge, .status-pill { display: inline-block; margin-bottom: 9px; padding: 5px 8px; border-radius: 999px; color: #686944; background: var(--olive-soft); font-size: 1rem; font-weight: 400; letter-spacing: .04em; }
.universe-card { overflow: hidden; }
.universe-card > summary { display: flex; min-height: 76px; align-items: center; justify-content: space-between; gap: 16px; padding: 17px 20px; color: var(--brown); cursor: pointer; list-style: none; }
.universe-card > summary::-webkit-details-marker { display: none; }
.universe-card > summary::after { content: '+'; display: grid; width: 30px; height: 30px; flex: 0 0 30px; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--camel-dark); background: var(--white); font-size: 20px; }
.universe-card[open] > summary { border-bottom: 1px solid var(--line); }
.universe-card[open] > summary::after { content: '−'; }
.universe-card > summary span,.universe-card > summary strong { display: block; }
.universe-card > summary strong { font: 700 19px/1.25 Georgia,serif; }
.universe-card > summary small { margin-top: 5px; color: var(--brown-soft); font-size: 1rem; }
.universe-card-content { padding: 4px 20px 18px; }
.universe-card-content > p { margin: 14px 0 4px; }
.collection-list,.subject-list { margin: 0; list-style: none; }
.collection-list { padding: 0; }
.collection-item { padding: 13px 0; border-bottom: 1px solid var(--line); }
.collection-item:last-child { border-bottom: 0; }
.subject-list { display: grid; gap: 6px; margin-top: 8px; padding: 0 0 0 13px; border-left: 2px solid var(--olive); color: var(--brown-soft); font-size: 1rem; }
.taxonomy-add-interest { display: flex; min-height: 38px; align-items: center; justify-content: space-between; gap: 12px; }
.taxonomy-add-interest button { min-height: 36px; padding: 7px 12px; border: 1px solid var(--camel); border-radius: 999px; color: var(--camel-dark); background: var(--white); cursor: pointer; font-weight: 500; }
.taxonomy-add-interest.is-selected { color: #686944; }
.taxonomy-add-interest .status-pill { flex: 0 0 auto; }
.interest-card { display: grid; align-content: start; gap: 12px; }
.interest-edit { display: grid; grid-template-columns: 1fr 1fr auto; gap: 7px; }
.interest-edit input { min-width: 0; padding: 9px 10px; border: 1px solid #d9c9ba; border-radius: 10px; color: var(--brown); background: #fff; }
.interest-edit button { border: 1px solid var(--camel); border-radius: 10px; color: var(--camel-dark); background: var(--white); cursor: pointer; font-weight: 500; }
.text-danger { border: 0; color: #8c513f; background: transparent; cursor: pointer; font-weight: 500; }
.empty-state { padding: 18px; border: 1px dashed var(--line); border-radius: 14px; color: var(--brown-soft); background: var(--cream); }
.split-panel, .proposal-panel { display: grid; grid-template-columns: 1fr 1fr; gap: 34px; }
.add-interest-form { display: grid; grid-template-columns: 1.1fr 1fr 1fr auto; gap: 8px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--line); }
.quick-add-grid { grid-template-columns: repeat(3, 1fr); }
.quick-add-grid form { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 13px; border: 1px solid var(--line); border-radius: 14px; background: var(--cream); }
.quick-add-grid button, .alias-add button, .alias-list button, .button-row button { min-width: 34px; min-height: 34px; border: 1px solid var(--camel); border-radius: 10px; color: var(--camel-dark); background: var(--white); cursor: pointer; font-weight: 500; }
.proposal-panel .stack-form { margin-top: 0; }
.category-nearby { display: grid; gap: 6px; padding: 10px 12px; border-radius: 12px; color: var(--brown-soft); background: var(--olive-soft); }
.category-nearby:empty { display: none; }
.category-nearby strong { color: var(--brown); font-size: 1rem; }
.category-nearby ul { display: flex; flex-wrap: wrap; gap: 7px 14px; margin: 0; padding-left: 20px; }
.category-nearby a { color: var(--camel-dark); font-weight: 600; }
.category-request-history { display: grid; gap: 10px; }
.category-request-history-item { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 15px 17px; border: 1px solid var(--line); border-radius: 14px; background: var(--cream); }
.category-request-history-item > div { display: grid; gap: 6px; }
.category-request-history-item small { color: var(--brown-soft); }
.catalog-request-table { min-width: 1180px; }
.catalog-request-actions { display: grid; min-width: 260px; gap: 10px; }
.catalog-request-link { display: grid; gap: 8px; }
.catalog-request-link label { display: grid; gap: 5px; color: var(--brown-soft); font-size: 1rem; }
.catalog-request-link select { width: 100%; min-width: 0; padding: 9px 10px; border: 1px solid #d9c9ba; border-radius: 10px; color: var(--brown); background: #fff; font: inherit; }
.catalog-request-context { padding: 16px 18px; border: 1px solid var(--line); border-radius: 14px; color: var(--brown-soft); background: var(--cream); }
.catalog-request-context strong { color: var(--brown); }
.catalog-request-context p:last-child { margin-bottom: 0; }
.alias-list { display: grid; width: 100%; min-width: 0; gap: 7px; }
.alias-list form { display: grid; grid-template-columns: 1fr 120px auto; gap: 5px; }
.alias-list button, .alias-add button { min-width: max-content; }
.alias-add { display: grid; width: 100%; min-width: 0; grid-template-columns: minmax(0,1fr) 120px auto; gap: 5px; margin-top: 10px; }
.button-row { justify-content: flex-start; flex-wrap: wrap; }

/* Phase 4 — dépôt, annonces publiques et modération */
.offer-heading { display: flex; align-items: end; justify-content: space-between; gap: 28px; margin-bottom: 28px; padding: clamp(24px,4vw,42px); border: 1px solid var(--line); border-radius: 28px; background: rgba(255,253,249,.96); }
.offer-heading h1 { margin: 0; font: 700 clamp(38px,6vw,60px)/1 Georgia,serif; letter-spacing: -1.5px; }
.offer-heading p:not(.eyebrow) { margin: 12px 0 0; color: var(--brown-soft); }
.offer-form { max-width: 850px; margin: 0 auto; }
.offer-form input[type="search"][data-offer-category-input] { font-size: 1rem; }
.offer-form fieldset { padding: 0; border: 0; }
.offer-form legend { margin-bottom: 10px; color: var(--brown); font-weight: 600; }
.category-request-box { border: 1px dashed var(--camel); border-radius: 18px; background: var(--cream); }
.category-request-box > summary { padding: 14px 16px; color: var(--brown-soft); cursor: pointer; }
.category-request-box > summary strong { color: var(--camel-dark); }
.category-request-box[open] > summary { border-bottom: 1px solid var(--line); }
.category-request-content { display: grid; gap: 15px; padding: 18px 20px 20px; }
.category-request-box p { margin: 0; color: var(--brown-soft); line-height: 1.55; }
.category-request-box .alert { margin: 0; }
.category-request-box .secondary-button { justify-self: start; }
.category-request-box .category-request-note { font-size: 1rem; }
.choice-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }
.choice-grid label { display: flex; min-height: 54px; grid-template-columns: auto 1fr; align-items: center; padding: 12px; border: 1px solid var(--line); border-radius: 14px; background: var(--cream); cursor: pointer; }
.choice-grid input { width: 20px; min-height: 20px; }
.two-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.offer-list { display: grid; gap: 14px; }
.offer-row { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 22px; border: 1px solid var(--line); border-radius: 20px; background: var(--white); }
.offer-row h2,.photo-panel h2 { margin: 8px 0; color: var(--brown); font: 700 25px Georgia,serif; }
.offer-row small { color: var(--brown-soft); }
.offer-summary { min-width: 0; flex: 1; }
.offer-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; flex-wrap: wrap; }
.offer-action-form { margin: 0; }
.offer-actions .is-disabled { opacity: .52; cursor: not-allowed; }
.offer-more { position: relative; }
.offer-more > summary { list-style: none; user-select: none; }
.offer-more > summary::-webkit-details-marker,.offer-delete-confirm > summary::-webkit-details-marker { display: none; }
.offer-more-menu { position: absolute; z-index: 20; top: calc(100% + 8px); right: 0; display: grid; width: 260px; gap: 6px; padding: 10px; border: 1px solid var(--line); border-radius: 16px; background: var(--white); box-shadow: 0 16px 40px rgba(85,64,48,.16); }
.offer-more-menu form,.offer-more-menu button { width: 100%; }
.offer-more-menu button,.offer-delete-confirm > summary { min-height: 44px; padding: 10px 12px; border: 0; border-radius: 10px; color: var(--brown); background: var(--cream); cursor: pointer; font: inherit; font-size: 1rem; font-weight: 500; line-height: 1.4; text-align: left; }
.offer-more-menu button:focus-visible,.offer-more > summary:focus-visible,.offer-delete-confirm > summary:focus-visible { outline: 3px solid rgba(147,108,76,.35); outline-offset: 2px; }
.offer-delete-confirm > summary { color: #8c513f; }
.offer-delete-confirm[open] > summary { border-radius: 10px 10px 0 0; }
.offer-delete-confirm > div { padding: 12px; border-radius: 0 0 10px 10px; background: #fbf1ed; }
.offer-delete-confirm p { margin: 0 0 10px; color: #6f4538; font-size: 1rem; line-height: 1.45; }
.offer-delete-confirm .text-danger { min-height: 44px; color: #fff; background: #8c513f; text-align: center; }
.photo-panel,.publish-panel { max-width: 1000px; margin: 28px auto 0; }
.photo-panel > p { color: var(--brown-soft); }
.photo-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.photo-counter { flex: 0 0 auto; padding: 8px 11px; border-radius: 999px; color: #626342; background: var(--olive-soft); font-size: 1rem; }
.photo-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; margin: 20px 0; }
.photo-grid article { position: relative; overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: var(--cream); }
.photo-grid img { display: block; width: 100%; aspect-ratio: 4/3; border-radius: 14px; object-fit: cover; }
.photo-grid article form { padding: 8px; text-align: center; }
.primary-photo-label { position: absolute; z-index: 2; top: 8px; left: 8px; padding: 6px 9px; border-radius: 999px; color: var(--white); background: rgba(111,88,70,.9); font-size: 1rem; font-weight: 400; }
.upload-form { display: flex; align-items: end; gap: 12px; padding: 18px; border: 1px dashed var(--camel); border-radius: 16px; background: var(--cream); }
.upload-form label { display: grid; flex: 1; gap: 8px; font-weight: 600; }
.upload-form input { min-height: 46px; padding: 9px; border: 1px solid var(--line); border-radius: 12px; background: var(--white); }
.photo-limit-reached { padding: 15px 16px; border: 1px solid #cfd1af; border-radius: 14px; color: #626342; background: var(--olive-soft); font-weight: 600; }
.photo-reorder-form { margin-top: 20px; }
.public-offer-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.public-offer-card { display: block; min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 22px; background: var(--white); box-shadow: 0 12px 34px rgba(85,64,48,.08); transition: border-color .16s ease, transform .16s ease, box-shadow .16s ease; }
.public-offer-card:hover,.public-offer-card:focus-within { border-color: var(--camel); transform: translateY(-2px); box-shadow: 0 16px 38px rgba(85,64,48,.13); }
.public-offer-card img { display: block; width: 100%; height: 100%; aspect-ratio: auto; border-radius: 0; object-fit: cover; object-position: center; }
.public-offer-card > .public-offer-content { padding: 20px; }
.public-offer-content,.public-offer-photo { display: block; color: inherit; text-decoration: none; }
.public-offer-photo { width: 100%; aspect-ratio: 4/3; overflow: hidden; border-radius: 21px 21px 0 0; background: var(--cream); }
.public-offer-photo.lightbox-trigger { width: 100%; border-radius: 21px 21px 0 0; }
.public-offer-placeholder { display: grid; width: 100%; aspect-ratio: 4/3; place-items: center; color: var(--camel-dark); background: linear-gradient(145deg,var(--cream-2),var(--olive-soft)); font: 700 28px Georgia,serif; }
.public-offer-card h2 { margin: 10px 0; font: 700 24px Georgia,serif; }
.public-offer-card p { color: var(--brown-soft); overflow-wrap: anywhere; }
.public-offer-card strong,.offer-price { color: var(--camel-dark); font: 700 25px Georgia,serif; }
.matches-empty { max-width: 760px; margin: 0 auto; }
.matches-pagination { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 28px; color: var(--brown-soft); font-weight: 500; }
.public-offer { display: grid; grid-template-columns: minmax(0,1fr) minmax(320px,.85fr); gap: 28px; align-items: start; }
.public-gallery { grid-template-columns: repeat(2,1fr); align-items: start; margin: 0; }
.public-gallery img { display: block; width: auto; max-width: 100%; height: auto; max-height: min(70vh,720px); aspect-ratio: auto; margin-inline: auto; object-fit: contain; object-position: center; }
.public-offer .content-card h1 { font-size: clamp(36px,5vw,54px); }
.offer-description { color: var(--brown-soft); line-height: 1.75; }
.otp-code { color: var(--camel-dark); font: 800 28px ui-monospace,monospace !important; letter-spacing: .18em; }
.signal-box { max-height: 360px; padding: 14px; overflow: auto; border-radius: 12px; color: var(--brown); background: var(--cream); white-space: pre-wrap; overflow-wrap: anywhere; }
.technical-details { margin-top: 16px; }
.technical-details summary { min-height: 44px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; color: var(--brown); background: var(--cream); cursor: pointer; font-weight: 800; }
.technical-details[open] summary { border-radius: 12px 12px 0 0; }
.technical-details .signal-box { margin: 0; border-radius: 0 0 12px 12px; }
.moderation-action-guide { position: sticky; z-index: 15; top: 10px; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 13px 16px; border: 1px solid #c7b59f; border-radius: 16px; background: rgba(255,253,249,.97); box-shadow: 0 10px 28px rgba(85,64,48,.12); backdrop-filter: blur(8px); }
.moderation-action-guide strong,.moderation-action-guide span { display: block; }
.moderation-action-guide span { margin-top: 3px; color: var(--brown-soft); font-size: 1rem; }
.moderation-action-guide-links { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.moderation-action-guide-links > a:not(.primary-button) { display: inline-flex; min-height: 44px; align-items: center; padding: 9px 12px; color: var(--brown); font-weight: 500; }
.moderation-review-zone,.moderation-decision-panel { scroll-margin-top: 92px; }
.moderation-scope-note { padding: 13px 15px; border-left: 4px solid var(--camel); border-radius: 0 12px 12px 0; color: var(--brown-soft); background: var(--cream); line-height: 1.55; }
.moderation-decision-panel { padding: clamp(24px,4vw,38px); }
.moderation-decision-heading { display: flex; align-items: end; justify-content: space-between; gap: 22px; }
.moderation-decision-heading h2 { margin: 0; color: var(--brown); font: 700 28px Georgia,serif; }
.moderation-decision-heading > p { max-width: 560px; margin: 0; color: var(--brown-soft); line-height: 1.55; }
.moderation-decision-actions { position: sticky; z-index: 10; bottom: 10px; padding: 12px; border: 1px solid #c7b59f; border-radius: 16px; background: rgba(255,253,249,.97); box-shadow: 0 10px 28px rgba(85,64,48,.14); backdrop-filter: blur(8px); }
.moderation-action-guide a:focus-visible,.moderation-decision-actions button:focus-visible { outline-color: var(--focus-ring); }
.totp-qr-frame { width: min(100%, 320px); margin: 22px auto; padding: 16px; border: 1px solid var(--line); border-radius: 18px; background: #fff; }
.totp-qr { display: block; width: 100%; height: auto; }

/* Messagerie V1 liée aux annonces */
.offer-contact { margin-top: 22px; }
.offer-contact .stack-form { padding: 18px; border: 1px solid var(--line); border-top: 0; border-radius: 0 0 12px 12px; background: var(--white); }
.messages-heading { margin-bottom: 22px; }
.conversation-list { display: grid; gap: 12px; }
.conversation-card { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: 22px; padding: 19px 21px; border: 1px solid var(--line); border-radius: 18px; color: inherit; background: var(--white); box-shadow: 0 8px 24px rgba(85,64,48,.06); text-decoration: none; }
.conversation-card:hover,.conversation-card:focus-visible { border-color: var(--camel); box-shadow: 0 12px 30px rgba(85,64,48,.11); }
.conversation-card:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 3px; }
.conversation-card.is-unread { border-left: 5px solid var(--camel-dark); }
.conversation-card-main,.conversation-card-meta,.conversation-card-title,.conversation-card-offer,.conversation-card-preview { display: block; min-width: 0; }
.conversation-card-main { flex: 1; }
.conversation-card-title { color: var(--brown); font-weight: 850; }
.conversation-card-offer { margin-top: 4px; font: 700 20px Georgia,serif; }
.conversation-card-preview { margin-top: 7px; overflow: hidden; color: var(--brown-soft); text-overflow: ellipsis; white-space: nowrap; }
.conversation-card-meta { flex: 0 0 auto; color: var(--brown-soft); font-size: 1rem; text-align: right; }
.conversation-card-meta .status-pill { display: block; margin-left: auto; }
.conversation-heading { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 20px; }
.conversation-offer-photo { width: 150px; aspect-ratio: 4/3; flex: 0 0 auto; border-radius: 14px; object-fit: cover; }
.message-thread { display: grid; gap: 12px; margin: 20px 0; padding: 22px; border: 1px solid var(--line); border-radius: 22px; background: var(--cream); }
.message-bubble { width: min(78%,680px); padding: 14px 16px; border: 1px solid var(--line); border-radius: 18px 18px 18px 5px; background: var(--white); overflow-wrap: anywhere; }
.message-bubble.is-mine { justify-self: end; border-color: #c7b59f; border-radius: 18px 18px 5px 18px; background: #f3e7dc; }
.message-bubble p { margin: 0; line-height: 1.6; }
.message-bubble footer { margin-top: 7px; color: var(--brown-soft); font-size: 1rem; }
.conversation-safety { display: grid; gap: 10px; margin-top: 20px; }
.transaction-safety-tip { margin-top: 20px; }
.transaction-safety-tip > div { padding: 15px 16px 17px; border: 1px solid var(--line); border-top: 0; border-radius: 0 0 12px 12px; background: var(--cream); }
.transaction-safety-tip p { margin: 0 0 8px; color: var(--brown-soft); line-height: 1.55; }
.transaction-safety-tip a { display: inline-flex; min-height: 44px; align-items: center; font-weight: 500; }
.trust-transaction { margin-top: 34px; padding-top: 30px; border-top: 1px solid var(--line); scroll-margin-top: 24px; }
.trust-transaction > h2 { margin-top: 5px; }
.transaction-positioning { margin: 22px 0; padding: 16px 18px; border: 1px solid #cfd1af; border-radius: 15px; color: #626342; background: var(--olive-soft); line-height: 1.6; }
.transaction-guidance-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; align-items: start; }
.trust-guidance { padding: 20px; border: 1px solid var(--line); border-radius: 18px; background: var(--cream); }
.trust-guidance h3 { margin: 0 0 12px; color: var(--brown); font: 700 23px Georgia,serif; }
.trust-guidance p,.trust-guidance li { color: var(--brown-soft); line-height: 1.6; }
.trust-guidance ul { margin: 10px 0; padding-left: 21px; }
.trust-guidance li + li { margin-top: 7px; }
.danger-button { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; padding: 12px 20px; border: 1px solid #8c513f; border-radius: 999px; color: #fff; background: #8c513f; cursor: pointer; font-weight: 500; }

@media (max-width: 800px) {
  .stat-grid { grid-template-columns: repeat(2, 1fr); }
  .trust-grid { grid-template-columns: repeat(2, 1fr); }
  .account-trust-grid { grid-template-columns: repeat(2,1fr); }
  .catalog-hero, .split-panel, .proposal-panel { display: grid; grid-template-columns: 1fr; align-items: stretch; }
  .search-form { flex-basis: auto; }
  .result-grid, .interest-grid, .quick-add-grid { grid-template-columns: repeat(2, 1fr); }
  .add-interest-form { grid-template-columns: 1fr 1fr; }
  .interest-edit { grid-template-columns: 1fr; }
  .category-request-history-item { align-items: flex-start; flex-direction: column; }
  .public-offer-grid { grid-template-columns: repeat(2,1fr); }
  .public-offer { grid-template-columns: 1fr; }
  .photo-grid { grid-template-columns: repeat(2,1fr); }
  .footer-groups { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .message-bubble { width: min(88%,680px); }
  .transaction-guidance-grid { grid-template-columns: 1fr; }
  .editorial-grid,.site-map-grid { grid-template-columns: 1fr; }
  .help-entry-grid,.help-verification-list,.help-two-columns,.help-link-grid { grid-template-columns: 1fr; }
  .moderation-decision-heading { align-items: stretch; flex-direction: column; }
}

@media (max-width: 560px) {
  .app-header, .app-main, .site-footer { width: min(calc(100% - 24px), 1180px); }
  .app-header { align-items: center; flex-wrap: wrap; padding: 12px 0; }
  .app-header .brand { max-width: 180px; }
  .app-nav { width: 100%; justify-content: center; flex-wrap: wrap; gap: 10px 14px; font-size: 1rem; }
  .nav-cta { min-height: 38px; padding: 8px 12px; }
  .app-main { padding: 34px 0 54px; }
  .auth-card { padding: 26px 20px; border-radius: 22px; }
  .auth-card h1, .content-card h1, .admin-shell h1 { font-size: 38px; }
  .content-card h1 { overflow-wrap: anywhere; }
  .auth-links, .admin-heading { align-items: stretch; flex-direction: column; }
  .trust-grid, .stat-grid, .recovery-grid { grid-template-columns: 1fr; }
  .account-actions { align-items: stretch; flex-direction: column; }
  .account-actions a { width: 100%; }
  .tech-list div, .detail-list div { grid-template-columns: 1fr; gap: 5px; }
  .catalog-hero, .catalog-section { padding: 22px 18px; border-radius: 22px; }
  .breadcrumbs { font-size: 1rem; }
  .search-form > div, .section-heading { align-items: stretch; flex-direction: column; }
  .result-grid, .universe-grid, .interest-grid, .quick-add-grid, .add-interest-form { grid-template-columns: 1fr; }
  .alias-list form,.alias-add { grid-template-columns: minmax(0,1fr); }
  .alias-list,.alias-add { min-width: 12rem; }
  .dev-mail-item { grid-template-columns: 1fr; align-items: stretch; }
  .offer-heading,.offer-row,.upload-form,.photo-heading { align-items: stretch; flex-direction: column; }
  .offer-heading .primary-button,.upload-form .secondary-button { width: 100%; }
  .offer-actions { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); width: 100%; }
  .offer-actions > a,.offer-actions > span,.offer-action-form,.offer-action-form button,.offer-more,.offer-more > summary { width: 100%; }
  .offer-more-menu { right: 0; width: min(280px,calc(100vw - 48px)); }
  .choice-grid,.two-fields,.public-offer-grid,.photo-grid,.public-gallery { grid-template-columns: 1fr; }
  .offer-form .primary-button,.offer-form .category-request-box .secondary-button,.publish-panel .primary-button,.publish-panel .secondary-button { width: 100%; min-height: 50px; }
  .universe-card > summary { min-height: 68px; padding: 15px 16px; }
  .universe-card-content { padding-right: 16px; padding-left: 16px; }
  .footer-groups { grid-template-columns: 1fr; gap: 26px; }
  .footer-groups li { display: flex; min-height: 44px; align-items: center; }
  .footer-groups a { display: inline-flex; min-height: 44px; align-items: center; }
  .editorial-toc ul { grid-template-columns: 1fr; }
  .editorial-page { padding: 26px 19px; }
  .help-entry { padding: 20px 18px; }
  .help-steps > li { grid-template-columns: 36px minmax(0,1fr); gap: 11px; }
  .help-steps > li::before { width: 36px; height: 36px; }
  .help-actions { align-items: stretch; flex-direction: column; }
  .help-actions .primary-button,.help-actions .secondary-button { width: 100%; }
  .help-back { text-align: left; }
  .conversation-card,.conversation-heading { align-items: stretch; flex-direction: column; }
  .conversation-card-meta { text-align: left; }
  .conversation-card-meta .status-pill { margin-left: 0; }
  .conversation-offer-photo { width: 100%; max-height: 220px; }
  .message-thread { padding: 14px 10px; }
  .message-bubble { width: 92%; }
  .offer-contact .primary-button,.conversation-safety .secondary-button,.conversation-safety .danger-button { width: 100%; }
  .moderation-action-guide { top: 6px; align-items: stretch; flex-direction: column; gap: 9px; }
  .moderation-action-guide-links { display: grid; grid-template-columns: 1fr 1fr; }
  .moderation-action-guide-links > a { width: 100%; text-align: center; }
  .moderation-decision-actions { position: static; display: grid; grid-template-columns: 1fr; }
  .moderation-decision-actions button { width: 100%; min-height: 48px; }
}

.proof-code { font-size: clamp(24px,5vw,42px); letter-spacing: .08em; }
.proof-instructions { display: grid; min-width: 0; gap: 14px; overflow-wrap: anywhere; }
.proof-instructions h2, .proof-instructions h3 { margin: 0; color: var(--brown); font-family: Georgia, serif; }
.proof-instructions p { margin: 0; line-height: 1.65; }
.proof-instructions__steps { margin: 0; padding-inline-start: 1.7rem; }
.proof-instructions__steps li { padding-inline-start: .35rem; line-height: 1.65; }
.proof-instructions__steps li + li { margin-top: 10px; }
.proof-instructions__important { padding: 14px 16px; border-left: 4px solid var(--camel-dark); background: var(--cream-2); }
.proof-instructions__privacy { color: var(--brown-soft); }
.proof-member-message { padding: 14px 16px; border: 1px solid #dbc6a4; border-radius: 14px; background: var(--olive-soft); overflow-wrap: anywhere; }
.proof-member-message p { margin: 5px 0 0; line-height: 1.6; }
.proof-history { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--line); }
.proof-history ol { margin: 0; padding-inline-start: 1.5rem; }
.proof-history li { padding-inline-start: .25rem; line-height: 1.55; overflow-wrap: anywhere; }
.proof-history li + li { margin-top: 14px; }
.proof-history p { margin: 5px 0 0; }
.proof-preview { display: block; width: min(100%,720px); max-height: 560px; object-fit: contain; border-radius: 18px; border: 1px solid var(--line); background: var(--paper); }
.proof-callout { max-width: 700px; margin-top: 14px; padding: 14px 16px; border: 1px solid #dbc6a4; border-radius: 14px; background: #faf0dc; }
.proof-callout p { margin: 4px 0 0; color: #715d3f; font-size: 1rem; line-height: 1.5; }

/* Visionneuse locale des photos */
.lightbox-trigger { display: block; margin: 0; padding: 0; overflow: hidden; border: 0; border-radius: 14px; color: inherit; background: transparent; cursor: zoom-in; }
.lightbox-trigger:focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 3px; }
.gallery-photo { display: flex; width: 100%; align-items: flex-start; justify-content: center; }
.proof-lightbox-trigger { width: min(100%,720px); }
.proof-lightbox-trigger .proof-preview { width: 100%; }
.qcq-lightbox[hidden],.qcq-lightbox button[hidden] { display: none; }
.qcq-lightbox-open { overflow: hidden; }
.qcq-lightbox { position: fixed; z-index: 1000; inset: 0; display: grid; padding: clamp(10px,2vw,24px); place-items: center; background: rgba(29,22,18,.94); }
.qcq-lightbox-dialog { display: grid; width: min(1180px,100%); height: min(92vh,900px); grid-template-rows: auto minmax(0,1fr) auto; border: 1px solid rgba(255,255,255,.16); border-radius: 20px; background: #211b17; box-shadow: 0 24px 80px rgba(0,0,0,.45); }
.qcq-lightbox-toolbar { display: flex; justify-content: flex-end; gap: 8px; padding: 10px; }
.qcq-lightbox button { display: grid; min-width: 48px; min-height: 48px; padding: 0; place-items: center; border: 1px solid rgba(255,255,255,.25); border-radius: 999px; color: #fff; background: rgba(255,255,255,.1); cursor: pointer; font: 700 28px/1 Arial,sans-serif; }
.qcq-lightbox button:hover,.qcq-lightbox button:focus-visible { background: rgba(255,255,255,.2); outline: 3px solid rgba(255,255,255,.55); outline-offset: 2px; }
.qcq-lightbox button:disabled { opacity: .35; cursor: not-allowed; }
.qcq-lightbox-stage { display: grid; min-height: 0; grid-template-columns: 64px minmax(0,1fr) 64px; gap: 8px; align-items: center; padding: 0 10px; }
.qcq-lightbox-previous { grid-column: 1; grid-row: 1; }
.qcq-lightbox-image-wrap { position: relative; display: flex; width: 100%; height: 100%; min-width: 0; min-height: 0; grid-column: 2; grid-row: 1; align-items: center; justify-content: center; overflow: auto; overscroll-behavior: contain; }
.qcq-lightbox-next { grid-column: 3; grid-row: 1; }
.qcq-lightbox-image-wrap.is-zoomed { align-items: flex-start; cursor: grab; }
.qcq-lightbox-image { position: relative; display: block; width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; object-position: center; transform-origin: center top; transition: transform .16s ease; }
.qcq-lightbox-footer { display: flex; min-height: 54px; align-items: center; justify-content: space-between; gap: 16px; padding: 10px 18px; color: #f7efe8; }
.qcq-lightbox-caption,.qcq-lightbox-indicator { margin: 0; }
.qcq-lightbox-caption { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.qcq-lightbox-indicator { flex: 0 0 auto; font-weight: 800; }

@media (max-width: 560px) {
  .qcq-lightbox { padding: 0; }
  .qcq-lightbox-dialog { width: 100%; height: 100dvh; border: 0; border-radius: 0; }
  .qcq-lightbox-stage { grid-template-columns: 52px minmax(0,1fr) 52px; gap: 2px; padding: 0 4px; }
  .qcq-lightbox-footer { align-items: flex-start; flex-direction: column; gap: 4px; font-size: 1rem; }
  .qcq-lightbox-caption { max-width: 100%; }
}

@media (max-width: 390px) {
  .brand-logo { width: 220px; }
  .soon { padding: 7px 10px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
.anti-spam-field{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.public-notice-form{position:relative}.checkbox-row{display:flex;align-items:flex-start;gap:.65rem}.checkbox-row input{width:auto;margin-top:.25rem}
.moderation-statement{grid-column:1/-1;margin:.75rem 0;padding:1rem;border:1px solid #d8c2ad;border-radius:14px;background:#fbf7f2}.moderation-statement h3{margin-top:0}
