:root {
    --navy: #0d2848;
    --navy-dark: #081b31;
    --gold: #b68835;
    --gold-soft: #ead9b8;
    --ivory: #f7f2e9;
    --paper: #fffdf8;
    --ink: #14253a;
    --muted: #65768a;
    --line: rgba(13, 40, 72, .13);
    --success: #28745b;
    --danger: #a23b3b;
    --white: #fff;
    --shadow: 0 18px 60px rgba(8, 27, 49, .10);
}

* {
    box-sizing: border-box;
}

html {
    min-height: 100%;
}

body {
    min-height: 100vh;
    margin: 0;
    color: var(--ink);
    background: var(--paper);
    font-family: Arial, Helvetica, sans-serif;
    -webkit-font-smoothing: antialiased;
}

button,
input,
select,
textarea {
    font: inherit;
}

a {
    color: inherit;
    text-decoration: none;
}

button,
a,
input,
select,
textarea {
    -webkit-tap-highlight-color: transparent;
}

/* Lot 3 — Prospects et pipeline */
.page-head { display:flex; align-items:flex-start; justify-content:space-between; gap:32px; margin-bottom:38px; }
.page-head h1 { margin:0 0 8px; color:var(--navy); font:400 clamp(38px,4vw,60px)/1 Georgia,"Times New Roman",serif; }
.page-head p { margin:0; color:var(--muted); line-height:1.6; }
.compact { display:inline-flex; width:auto; min-width:190px; min-height:48px; gap:24px; }
.head-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:10px; }
.secondary-button { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:0 22px; color:var(--navy); background:var(--gold-soft); border:0; border-radius:5px; font-weight:800; line-height:1.25; text-align:center; cursor:pointer; }
.filters { display:grid; grid-template-columns:minmax(240px,1fr) 220px auto; gap:12px; margin-bottom:22px; }
.filters input,.filters select,.crm-form input,.crm-form select,.crm-form textarea,.pipeline-card select { width:100%; padding:12px 14px; color:var(--ink); background:#fff; border:1px solid var(--line); border-radius:5px; }
.data-card,.form-section,.detail-card { background:#fff; border:1px solid var(--line); }
.prospect-row { display:grid; grid-template-columns:minmax(260px,1.5fr) minmax(190px,1fr) minmax(170px,.8fr) 20px; align-items:center; gap:24px; padding:22px 25px; border-bottom:1px solid var(--line); transition:background .15s; }
.prospect-row:last-child { border-bottom:0; }
.prospect-row:hover { background:#fbf8f1; }
.prospect-row strong,.prospect-row small { display:block; }
.prospect-row small { margin-top:6px; color:var(--muted); font-size:11px; }
.stage-badge { display:inline-block; padding:6px 10px; color:var(--navy); background:#edf2f5; border-radius:99px; font-size:10px; font-weight:800; }
.empty-state { padding:70px 30px; text-align:center; }
.empty-state h2,.form-section h2,.detail-card h2 { color:var(--navy); font:400 27px Georgia,"Times New Roman",serif; }
.crm-form { display:grid; gap:20px; max-width:1120px; }
.form-section { padding:28px; }
.form-section h2 { margin:0 0 22px; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.form-grid label { display:grid; gap:8px; color:var(--navy); font-size:12px; font-weight:800; }
.form-grid .wide { grid-column:1/-1; }
.crm-form textarea { resize:vertical; min-height:110px; }
.form-actions { display:flex; align-items:center; justify-content:flex-end; gap:25px; padding:10px 0 30px; }
.form-errors { padding:18px 22px; color:var(--danger); background:#fff3f3; border:1px solid rgba(162,59,59,.25); }
.detail-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.detail-card { padding:28px; }
.wide-card { grid-column:1/-1; }
.detail-card h2 { margin-top:0; }
.detail-card dl { display:grid; grid-template-columns:130px 1fr; gap:14px; margin:0; }
.detail-card dt { color:var(--muted); font-size:11px; text-transform:uppercase; }
.detail-card dd { margin:0; }
.timeline-item { display:flex; justify-content:space-between; gap:20px; padding:15px 0; border-bottom:1px solid var(--line); }
.timeline-item small { color:var(--muted); }
.pipeline-board { display:grid; grid-template-columns:repeat(5,minmax(235px,1fr)); gap:14px; padding-bottom:25px; overflow-x:auto; }
.pipeline-column { min-height:470px; padding:14px; background:#edf1f4; border-top:3px solid var(--gold); }
.pipeline-column header { display:flex; justify-content:space-between; padding:7px 4px 17px; color:var(--navy); font-size:12px; }
.pipeline-column header span { display:grid; place-items:center; width:24px; height:24px; background:#fff; border-radius:50%; }
.pipeline-card { margin-bottom:12px; padding:16px; background:#fff; border:1px solid var(--line); box-shadow:0 4px 14px rgba(8,27,49,.05); }
.pipeline-card a strong,.pipeline-card a span,.pipeline-card a small { display:block; }
.pipeline-card a span { margin:8px 0; color:var(--muted); font-size:12px; line-height:1.4; }
.pipeline-card a small { color:var(--gold); font-size:10px; font-weight:800; }
.pipeline-card select { margin-top:14px; padding:8px; font-size:11px; }
.column-empty { color:var(--muted); font-size:11px; text-align:center; }

@media (max-width: 900px) {
    .page-head { flex-direction:column; }
    .filters,.form-grid,.detail-grid { grid-template-columns:1fr; }
    .form-grid .wide,.wide-card { grid-column:auto; }
    .prospect-row { grid-template-columns:1fr; gap:10px; }
}

/* Lot 4 — Organisation commerciale */
.view-switch { display:inline-flex; gap:4px; margin:-15px 0 22px; padding:4px; background:#e9eef2; border-radius:5px; }
.view-switch a { padding:9px 14px; color:var(--muted); border-radius:4px; font-size:11px; font-weight:800; }
.view-switch a.active { color:var(--navy); background:#fff; box-shadow:0 2px 8px rgba(8,27,49,.07); }
.work-list { background:#fff; border:1px solid var(--line); }
.work-row { display:grid; grid-template-columns:42px minmax(240px,1.5fr) 110px minmax(145px,.75fr) minmax(155px,.8fr) 55px; align-items:center; gap:18px; min-height:86px; padding:15px 20px; border-bottom:1px solid var(--line); }
.work-row:last-child { border-bottom:0; }
.work-row small,.work-row strong { display:block; }
.work-row small { margin-top:5px; color:var(--muted); font-size:10px; }
.work-row > div > strong { color:var(--navy); font-size:12px; }
.work-row.is-done { opacity:.55; }
.work-row.is-done > div:first-of-type strong { text-decoration:line-through; }
.check-button { display:grid; place-items:center; width:28px; height:28px; color:#fff; background:#fff; border:2px solid #c6d0d8; border-radius:50%; cursor:pointer; }
.is-done .check-button { background:var(--success); border-color:var(--success); }
.priority-label { justify-self:start; padding:6px 9px; border-radius:20px; font-size:9px; font-weight:800; }
.priority-low { color:#4b7da5; background:#e7f0f7; }
.priority-normal { color:#7a571a; background:#f6ecd9; }
.priority-high { color:var(--danger); background:#fae8e8; }
.overdue strong { color:var(--danger)!important; }
.appointment-row { grid-template-columns:54px minmax(240px,1.5fr) 135px minmax(120px,.6fr) minmax(155px,.8fr) 55px; }
.appointment-row time,.appointment-item time { display:grid; place-items:center; align-content:center; color:var(--navy); background:var(--ivory); }
.appointment-row time { width:48px; height:55px; }
.appointment-row time strong,.appointment-item time strong { font:400 22px Georgia,"Times New Roman",serif; }
.appointment-row time span,.appointment-item time span { color:var(--gold); font-size:9px; font-weight:800; text-transform:uppercase; }
.action-panel { min-height:360px; }
.panel-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:15px; margin-bottom:18px; }
.panel-heading h2 { margin-bottom:0; }
.panel-heading a { color:var(--gold); font-size:11px; font-weight:800; }
.dashboard-item { display:grid; grid-template-columns:12px 1fr auto; align-items:center; gap:14px; min-height:58px; padding:10px 0; border-bottom:1px solid var(--line); }
.dashboard-item strong,.dashboard-item small { display:block; }
.dashboard-item > div strong { color:var(--navy); font-size:12px; }
.dashboard-item small { margin-top:5px; color:var(--muted); font-size:10px; }
.dashboard-item button { display:grid; place-items:center; width:27px; height:27px; color:var(--success); background:transparent; border:1px solid rgba(40,116,91,.3); border-radius:50%; cursor:pointer; }
.priority-dot { width:8px; height:8px; border-radius:50%; }
.priority-dot.priority-low { background:#4b7da5; }
.priority-dot.priority-normal { background:var(--gold); }
.priority-dot.priority-high { background:var(--danger); }
.appointment-item { grid-template-columns:44px 1fr; }
.appointment-item time { width:40px; height:43px; }
.appointment-item time strong { font-size:17px; }
.empty-inline { padding:28px 0; color:var(--muted); font-size:12px; }

@media (max-width: 1100px) {
    .work-row,.appointment-row { grid-template-columns:42px 1fr 120px; }
    .work-row > :nth-child(4),.work-row > :nth-child(5),.appointment-row > :nth-child(4),.appointment-row > :nth-child(5) { display:none; }
}

/* Lot 5 — Mémoire commerciale */
.interaction-filters { grid-template-columns:190px 220px 150px auto; }
.inline-check { display:flex; align-items:center; gap:8px; min-height:46px; color:var(--muted); font-size:11px; }
.inline-check input { width:auto; accent-color:var(--navy); }
.interaction-list { background:#fff; border:1px solid var(--line); }
.interaction-row { display:grid; grid-template-columns:44px minmax(190px,.8fr) minmax(300px,1.5fr) 170px 18px; align-items:center; gap:20px; min-height:92px; padding:17px 22px; border-bottom:1px solid var(--line); }
.interaction-row:last-child { border-bottom:0; }
.interaction-row:hover { background:#fbf8f1; }
.interaction-row strong,.interaction-row small { display:block; }
.interaction-row strong { color:var(--navy); font-size:12px; line-height:1.45; }
.interaction-row small { margin-top:6px; color:var(--muted); font-size:10px; }
.channel-icon { display:grid; place-items:center; width:38px; height:38px; color:var(--navy); background:var(--gold-soft); border-radius:50%; font-size:12px; font-weight:900; }
.section-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.section-heading a { color:var(--gold); font-size:11px; font-weight:800; }
.prospect-interaction { display:grid; grid-template-columns:42px 1fr; gap:15px; padding:18px 0; border-bottom:1px solid var(--line); }
.prospect-interaction:last-child { border-bottom:0; }
.prospect-interaction strong { color:var(--navy); font-size:12px; }
.prospect-interaction p { margin:7px 0; color:var(--ink); font-size:12px; line-height:1.6; white-space:pre-line; }
.prospect-interaction small { color:var(--muted); font-size:10px; }
.recent-strip { margin-top:18px; padding:30px 35px; background:#fff; border:1px solid var(--line); }
.recent-strip .panel-heading h2 { margin:0; color:var(--navy); font:400 28px Georgia,"Times New Roman",serif; }
.recent-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); }
.recent-grid a { min-height:112px; padding:19px; background:#fff; }
.recent-grid strong,.recent-grid span,.recent-grid small { display:block; }
.recent-grid strong { color:var(--navy); font-size:12px; }
.recent-grid span { margin:10px 0; color:var(--ink); font-size:11px; }
.recent-grid small { color:var(--muted); font-size:9px; }

@media (max-width: 900px) {
    .interaction-filters,.recent-grid { grid-template-columns:1fr; }
    .interaction-row { grid-template-columns:40px 1fr; }
    .interaction-row > :nth-child(3),.interaction-row > :nth-child(4),.interaction-row > :nth-child(5) { display:none; }
}

:focus-visible {
    outline: 3px solid rgba(182, 136, 53, .55);
    outline-offset: 3px;
}

.guest-shell {
    background: var(--ivory);
}

.login-layout {
    display: grid;
    grid-template-columns: minmax(420px, .9fr) minmax(520px, 1.1fr);
    min-height: 100vh;
}

.login-intro {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 8vh 7vw 6vh;
    color: var(--white);
    background:
        radial-gradient(circle at 20% 20%, rgba(182, 136, 53, .28), transparent 32%),
        linear-gradient(145deg, var(--navy), var(--navy-dark));
}

.intro-content {
    max-width: 670px;
    margin: auto 0;
}

.intro-kicker,
.eyebrow {
    display: block;
    margin: 0 0 18px;
    color: var(--gold);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .17em;
    text-transform: uppercase;
}

.login-intro h1 {
    max-width: 720px;
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(45px, 5vw, 76px);
    font-weight: 400;
    line-height: 1.02;
}

.login-intro p {
    max-width: 620px;
    color: #c8d2dc;
    font-size: 17px;
    line-height: 1.7;
}

.login-intro .intro-foot {
    margin: 0;
    color: var(--gold-soft);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.login-panel {
    display: grid;
    place-items: center;
    padding: 48px;
    background:
        radial-gradient(circle at 75% 15%, rgba(182, 136, 53, .13), transparent 24%),
        var(--paper);
}

.login-card {
    width: min(460px, 100%);
}

.login-heading {
    margin-bottom: 34px;
}

.login-logo {
    display: inline-grid;
    place-items: center;
    width: 70px;
    height: 70px;
    margin-bottom: 28px;
    color: var(--white);
    background: var(--navy);
    border-radius: 50%;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 22px;
    letter-spacing: .04em;
    box-shadow: var(--shadow);
}

.login-heading p {
    margin: 0 0 8px;
    color: var(--gold);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.login-heading h2 {
    margin: 0 0 10px;
    color: var(--navy);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 42px;
    font-weight: 400;
}

.login-heading > span:last-child {
    color: var(--muted);
}

.auth-form {
    display: grid;
    gap: 18px;
}

.auth-form label {
    display: grid;
    gap: 8px;
    color: var(--navy);
    font-size: 13px;
    font-weight: 800;
}

.auth-form input[type="email"],
.auth-form input[type="password"] {
    width: 100%;
    height: 54px;
    padding: 0 15px;
    color: var(--ink);
    background: var(--white);
    border: 1px solid var(--line);
    border-radius: 5px;
    transition: border-color .18s, box-shadow .18s;
}

.auth-form input:focus {
    border-color: var(--gold);
    outline: none;
    box-shadow: 0 0 0 4px rgba(182, 136, 53, .12);
}

.auth-form .remember {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 400;
}

.remember input {
    accent-color: var(--navy);
}

.primary-button {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 56px;
    padding: 0 21px;
    color: var(--white);
    background: var(--navy);
    border: 0;
    border-radius: 5px;
    cursor: pointer;
    font-weight: 800;
    transition: transform .18s, background .18s;
}

.primary-button:hover {
    background: var(--navy-dark);
    transform: translateY(-2px);
}

.field-error {
    margin: -10px 0 0;
    color: var(--danger);
    font-size: 12px;
}

.security-note {
    margin: 24px 0 0;
    color: var(--muted);
    font-size: 11px;
    line-height: 1.5;
}

.app-shell {
    display: grid;
    grid-template-columns: 270px minmax(0, 1fr);
    background: #f5f7f9;
}

.sidebar {
    position: sticky;
    top: 0;
    display: flex;
    flex-direction: column;
    height: 100vh;
    padding: 28px 22px 22px;
    color: var(--white);
    background: var(--navy-dark);
}

.brand {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 0 8px 28px;
    border-bottom: 1px solid rgba(255, 255, 255, .12);
}

.brand-mark {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 31px;
}

.brand strong,
.brand small {
    display: block;
}

.brand strong {
    color: var(--gold-soft);
    font-size: 13px;
    letter-spacing: .12em;
}

.brand small {
    margin-top: 4px;
    color: #8294a6;
    font-size: 10px;
}

.main-nav {
    display: grid;
    gap: 7px;
    margin-top: 30px;
}

.main-nav a,
.nav-disabled {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 48px;
    padding: 0 14px;
    border-radius: 5px;
    font-size: 13px;
}

.main-nav a.active {
    color: var(--navy-dark);
    background: var(--gold-soft);
    font-weight: 800;
}

.nav-disabled {
    color: #8595a5;
}

.nav-disabled small {
    font-size: 8px;
    text-transform: uppercase;
}

.sidebar-user {
    display: grid;
    grid-template-columns: 40px 1fr;
    gap: 11px;
    align-items: center;
    margin-top: auto;
    padding-top: 20px;
    border-top: 1px solid rgba(255, 255, 255, .12);
}

.avatar {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    color: var(--navy);
    background: var(--gold-soft);
    border-radius: 50%;
    font-weight: 900;
}

.sidebar-user strong,
.sidebar-user small {
    display: block;
}

.sidebar-user strong {
    font-size: 12px;
}

.sidebar-user small {
    margin-top: 4px;
    color: #8ea0b2;
    font-size: 10px;
}

.sidebar-user form {
    grid-column: 1 / -1;
}

.sidebar-user button {
    width: 100%;
    padding: 9px 12px;
    color: #9badbd;
    background: transparent;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 4px;
    cursor: pointer;
    font-size: 11px;
}

.main-content {
    min-width: 0;
    padding: 56px clamp(28px, 5vw, 76px);
}

.page-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 30px;
    margin-bottom: 42px;
}

.page-header h1 {
    margin: 0 0 10px;
    color: var(--navy);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(39px, 4vw, 60px);
    font-weight: 400;
}

.page-header > div > p:last-child {
    max-width: 680px;
    margin: 0;
    color: var(--muted);
    line-height: 1.65;
}

.status-chip {
    display: flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
    padding: 10px 13px;
    color: var(--success);
    background: rgba(40, 116, 91, .08);
    border: 1px solid rgba(40, 116, 91, .18);
    border-radius: 30px;
    font-size: 11px;
    font-weight: 800;
}

.status-chip span {
    width: 7px;
    height: 7px;
    background: var(--success);
    border-radius: 50%;
}

.metric-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
}

.metric-card {
    min-height: 170px;
    padding: 25px;
    background: var(--white);
    border: 1px solid var(--line);
    border-top: 4px solid var(--gold);
}

.metric-card > span,
.metric-card > small {
    display: block;
    color: var(--muted);
    font-size: 11px;
}

.metric-card strong {
    display: block;
    margin: 25px 0 17px;
    color: var(--navy);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 48px;
    font-weight: 400;
}

.metric-blue {
    border-top-color: #4b7da5;
}

.metric-green {
    border-top-color: var(--success);
}

.metric-navy {
    border-top-color: var(--navy);
}

.dashboard-grid {
    display: grid;
    grid-template-columns: 1.1fr .9fr;
    gap: 18px;
    margin-top: 18px;
}

.panel {
    min-height: 330px;
    padding: 36px;
    background: var(--white);
    border: 1px solid var(--line);
}

.panel h2 {
    margin: 0 0 17px;
    color: var(--navy);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 32px;
    font-weight: 400;
}

.panel > p,
.next-panel li {
    color: var(--muted);
    line-height: 1.7;
}

.progress {
    height: 7px;
    margin: 42px 0 11px;
    background: var(--ivory);
    border-radius: 10px;
    overflow: hidden;
}

.progress span {
    display: block;
    height: 100%;
    background: var(--gold);
}

.launch-panel > small {
    color: var(--muted);
    font-size: 10px;
}

.next-panel {
    display: grid;
    grid-template-columns: 70px 1fr;
    gap: 24px;
    color: var(--white);
    background: var(--navy);
}

.next-panel .eyebrow {
    color: var(--gold-soft);
}

.next-panel h2 {
    color: var(--white);
}

.panel-number {
    color: var(--gold-soft);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 52px;
}

.next-panel ul {
    margin: 25px 0 0;
    padding: 0;
    list-style: none;
}

.next-panel li {
    padding: 10px 0;
    color: #c9d2dc;
    border-bottom: 1px solid rgba(255, 255, 255, .12);
}

.vision-strip {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1px;
    margin-top: 18px;
    background: var(--line);
    border: 1px solid var(--line);
}

.vision-strip div {
    padding: 22px 25px;
    background: var(--ivory);
}

.vision-strip strong,
.vision-strip span {
    display: block;
}

.vision-strip strong {
    color: var(--navy);
    font-size: 13px;
}

.vision-strip span {
    margin-top: 6px;
    color: var(--muted);
    font-size: 11px;
}

.flash-success {
    margin-bottom: 24px;
    padding: 14px 17px;
    color: var(--success);
    background: rgba(40, 116, 91, .08);
    border: 1px solid rgba(40, 116, 91, .20);
    border-radius: 5px;
    font-size: 13px;
    font-weight: 700;
}

.page-action,
.secondary-action {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    min-height: 48px;
    padding: 0 18px;
    color: var(--white);
    background: var(--navy);
    border: 1px solid var(--navy);
    border-radius: 5px;
    cursor: pointer;
    font-size: 12px;
    font-weight: 800;
}

.back-link {
    color: var(--navy);
    border-bottom: 1px solid var(--gold);
    padding: 10px 0;
    font-size: 12px;
    font-weight: 800;
}

.compact-header {
    margin-bottom: 32px;
}

.user-list {
    background: var(--white);
    border: 1px solid var(--line);
}

.user-row {
    display: grid;
    grid-template-columns: 48px minmax(180px, 1.5fr) .65fr .55fr .75fr auto;
    gap: 18px;
    align-items: center;
    min-height: 92px;
    padding: 17px 22px;
    border-bottom: 1px solid var(--line);
}

.user-row:last-child {
    border-bottom: 0;
}

.avatar-light {
    color: var(--navy);
    background: var(--ivory);
}

.user-identity strong,
.user-identity span,
.user-last-login small,
.user-last-login span {
    display: block;
}

.user-identity strong {
    color: var(--navy);
    font-size: 13px;
}

.user-identity span,
.user-last-login span {
    margin-top: 5px;
    color: var(--muted);
    font-size: 11px;
}

.role-badge,
.account-status {
    justify-self: start;
    padding: 7px 10px;
    border-radius: 30px;
    font-size: 10px;
    font-weight: 800;
}

.role-owner {
    color: #7a571a;
    background: var(--gold-soft);
}

.role-director {
    color: var(--navy);
    background: #dce8f1;
}

.role-collaborator {
    color: var(--muted);
    background: #edf0f3;
}

.is-active {
    color: var(--success);
    background: rgba(40, 116, 91, .08);
}

.is-inactive {
    color: var(--danger);
    background: rgba(162, 59, 59, .08);
}

.user-last-login small {
    color: #8794a1;
    font-size: 9px;
    text-transform: uppercase;
}

.row-action {
    color: var(--navy);
    border-bottom: 1px solid var(--gold);
    padding: 8px 0;
    font-size: 11px;
    font-weight: 800;
}

.row-owner {
    color: var(--muted);
    font-size: 10px;
}

.form-panel {
    padding: 34px;
    background: var(--white);
    border: 1px solid var(--line);
}

.form-panel > h2 {
    margin: 0 0 22px;
    color: var(--navy);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 28px;
    font-weight: 400;
}

.crm-form {
    display: grid;
    gap: 20px;
}

.form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.crm-form label {
    display: grid;
    gap: 8px;
    color: var(--navy);
    font-size: 12px;
    font-weight: 800;
}

.crm-form input,
.crm-form select {
    width: 100%;
    height: 50px;
    padding: 0 13px;
    color: var(--ink);
    background: var(--white);
    border: 1px solid var(--line);
    border-radius: 4px;
}

.crm-form input:focus,
.crm-form select:focus {
    border-color: var(--gold);
    outline: none;
    box-shadow: 0 0 0 4px rgba(182, 136, 53, .10);
}

.form-separator {
    height: 1px;
    margin: 8px 0;
    background: var(--line);
}

.form-help,
.password-help {
    margin: 0;
    color: var(--muted);
    font-size: 11px;
    line-height: 1.6;
}

.form-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 20px;
    padding-top: 10px;
}

.form-actions > a {
    color: var(--muted);
    font-size: 12px;
}

.form-actions .primary-button {
    min-width: 200px;
}

.secondary-action {
    color: var(--navy);
    background: var(--white);
}

.settings-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

@media (max-width: 1050px) {
    .app-shell {
        grid-template-columns: 210px minmax(0, 1fr);
    }

    .metric-grid {
        grid-template-columns: 1fr 1fr;
    }

    .dashboard-grid {
        grid-template-columns: 1fr;
    }

    .user-row {
        grid-template-columns: 48px 1fr auto;
    }

    .role-badge,
    .account-status,
    .user-last-login {
        display: none;
    }

    .settings-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    .login-layout {
        grid-template-columns: 1fr;
    }

    .login-intro {
        min-height: 330px;
        padding: 55px 24px 35px;
    }

    .login-intro h1 {
        font-size: 43px;
    }

    .login-panel {
        padding: 50px 24px;
    }

    .app-shell {
        display: block;
    }

    .sidebar {
        position: static;
        height: auto;
        padding: 18px 20px;
    }

    .brand {
        padding-bottom: 17px;
    }

    .main-nav {
        display: flex;
        overflow-x: auto;
        margin-top: 16px;
        padding-bottom: 5px;
    }

    .main-nav a,
    .nav-disabled {
        flex: 0 0 auto;
    }

    .nav-disabled small {
        display: none;
    }

    .sidebar-user {
        display: none;
    }

    .main-content {
        padding: 42px 20px;
    }

    .page-header {
        display: block;
    }

    .status-chip {
        display: inline-flex;
        margin-top: 20px;
    }

    .metric-grid,
    .vision-strip,
    .form-grid {
        grid-template-columns: 1fr;
    }

    .next-panel {
        grid-template-columns: 1fr;
    }

    .panel-number {
        font-size: 34px;
    }

    .page-action,
    .back-link {
        margin-top: 22px;
    }

    .user-row {
        grid-template-columns: 42px 1fr;
    }

    .row-action,
    .row-owner {
        grid-column: 2;
        justify-self: start;
    }

    .form-panel {
        padding: 26px 20px;
    }

    .form-actions {
        align-items: stretch;
        flex-direction: column-reverse;
    }

    .form-actions .primary-button {
        width: 100%;
    }
}

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

/* Lot 6 — Acquisition depuis le site */
.utility-bar { display:flex; justify-content:flex-end; min-height:28px; margin:-30px 0 18px; }
.notification-link { display:inline-flex; align-items:center; gap:8px; color:var(--muted); font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.notification-link span { display:grid; place-items:center; min-width:21px; height:21px; padding:0 5px; color:#fff; background:var(--danger); border-radius:20px; font-size:9px; }
.notification-list { background:#fff; border:1px solid var(--line); }
.notification-list form { border-bottom:1px solid var(--line); }
.notification-list form:last-child { border-bottom:0; }
.notification-row { display:grid; grid-template-columns:12px 1fr auto; align-items:center; gap:18px; width:100%; min-height:92px; padding:18px 22px; color:var(--ink); background:#fff; border:0; cursor:pointer; text-align:left; }
.notification-row.unread { background:#fbf7ed; }
.notification-dot { width:8px; height:8px; background:#c8d0d7; border-radius:50%; }
.notification-row.unread .notification-dot { background:var(--gold); }
.notification-row strong { color:var(--navy); font-size:13px; }
.notification-row p { margin:7px 0; color:var(--ink); font-size:12px; }
.notification-row small { color:var(--muted); font-size:10px; }
.lead-public { min-height:100vh; background:#f5f1e9; }
.lead-header { display:flex; align-items:center; justify-content:space-between; padding:22px clamp(24px,6vw,90px); color:#fff; background:var(--navy-dark); }
.lead-header a { display:flex; align-items:baseline; gap:12px; }
.lead-header strong { font:400 29px Georgia,"Times New Roman",serif; }
.lead-header span { color:var(--gold-soft); font-size:12px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.lead-header small { color:#9aabba; font-size:10px; letter-spacing:.1em; text-transform:uppercase; }
.lead-public footer { padding:28px; color:var(--muted); font-size:10px; text-align:center; }
.lead-hero { display:grid; grid-template-columns:minmax(360px,.85fr) minmax(520px,1.15fr); width:min(1320px,calc(100% - 48px)); margin:50px auto; background:#fff; box-shadow:var(--shadow); }
.lead-promise { display:flex; flex-direction:column; justify-content:center; padding:clamp(38px,5vw,75px); color:#fff; background:linear-gradient(145deg,var(--navy),var(--navy-dark)); }
.lead-promise h1 { margin:0 0 23px; font:400 clamp(39px,4vw,61px)/1.07 Georgia,"Times New Roman",serif; }
.lead-promise > p { color:#cbd5de; line-height:1.7; }
.lead-promise ul { margin:25px 0; padding:0; list-style:none; }
.lead-promise li { padding:12px 0 12px 27px; color:#e3e9ee; border-bottom:1px solid rgba(255,255,255,.11); font-size:12px; position:relative; }
.lead-promise li::before { content:"✓"; position:absolute; left:0; color:var(--gold-soft); }
.response-promise { margin-top:28px; padding:18px; background:rgba(255,255,255,.07); border-left:3px solid var(--gold); }
.response-promise strong,.response-promise span { display:block; }
.response-promise strong { color:var(--gold-soft); font-size:12px; }
.response-promise span { margin-top:7px; color:#aebdca; font-size:10px; line-height:1.5; }
.lead-form { padding:clamp(35px,5vw,70px); }
.lead-form h2 { margin:0 0 30px; color:var(--navy); font:400 36px Georgia,"Times New Roman",serif; }
.lead-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.lead-grid label { display:grid; gap:7px; color:var(--navy); font-size:11px; font-weight:800; }
.lead-grid label.wide { grid-column:1/-1; }
.lead-grid input,.lead-grid select,.lead-grid textarea { width:100%; padding:12px 13px; color:var(--ink); background:#fff; border:1px solid var(--line); border-radius:4px; }
.lead-grid input,.lead-grid select { height:48px; }
.lead-grid textarea { resize:vertical; }
.lead-grid .consent { display:flex; grid-column:1/-1; flex-direction:row; align-items:flex-start; gap:10px; color:var(--muted); font-weight:400; line-height:1.5; }
.lead-grid .consent input { flex:0 0 auto; width:16px; height:16px; accent-color:var(--navy); }
.honeypot { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
.lead-submit { width:100%; margin-top:24px; }
.thank-you { display:grid; justify-items:center; max-width:780px; margin:12vh auto; padding:70px; background:#fff; box-shadow:var(--shadow); text-align:center; }
.success-mark { display:grid; place-items:center; width:68px; height:68px; margin-bottom:28px; color:#fff; background:var(--success); border-radius:50%; font-size:28px; }
.thank-you h1 { margin:0; color:var(--navy); font:400 clamp(38px,5vw,58px)/1.08 Georgia,"Times New Roman",serif; }
.thank-you p { max-width:570px; margin:24px 0 32px; color:var(--muted); line-height:1.7; }

@media (max-width:900px) {
    .lead-hero { grid-template-columns:1fr; width:min(100% - 24px,700px); margin:18px auto; }
    .lead-grid { grid-template-columns:1fr; }
    .lead-grid label.wide { grid-column:auto; }
}

/* Lot 8.1 — Formules et justification du prix */
.package-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:20px; }
.package-card { display:flex; flex-direction:column; padding:23px; background:#fff; border:1px solid var(--line); border-top:4px solid #8ea0ae; }
.package-card.level-standard { border-top-color:var(--gold); box-shadow:0 8px 22px rgba(16,47,80,.08); }
.package-card.level-custom { color:#fff; background:var(--navy); border-color:var(--navy); border-top-color:var(--gold-soft); }
.package-card > span { color:var(--gold-dark); font-size:10px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.package-card.level-custom > span,.package-card.level-custom h3,.package-card.level-custom h4,.package-card.level-custom li,.package-card.level-custom dt,.package-card.level-custom dd { color:#fff; }
.package-card h3 { min-height:68px; margin:15px 0 10px; color:var(--navy); font:400 18px/1.35 Georgia,"Times New Roman",serif; }
.package-card > p { min-height:78px; color:var(--muted); font-size:10px; line-height:1.55; }
.package-card.level-custom > p { color:#b9c7d2; }
.package-price-row { display:grid; grid-template-columns:repeat(3,1fr); margin:14px 0; border:1px solid var(--line); }
.package-price-row div { display:grid; gap:4px; padding:9px; border-right:1px solid var(--line); }
.package-price-row div:last-child { border-right:0; }
.package-price-row small { color:var(--muted); font-size:7px; text-transform:uppercase; }
.package-price-row strong { color:var(--navy); font-size:10px; }
.package-price-row em { color:var(--muted); font-size:7px; font-style:normal; line-height:1.25; }
.level-custom .package-price-row { border-color:rgba(255,255,255,.2); }
.level-custom .package-price-row div { border-color:rgba(255,255,255,.2); }
.level-custom .package-price-row strong { color:#fff; }
.package-card dl { display:grid; grid-template-columns:1fr auto; gap:6px; margin:5px 0 15px; font-size:9px; }
.package-card dd { margin:0; font-weight:800; }
.package-card h4 { margin:13px 0 4px; color:var(--navy); font-size:9px; text-transform:uppercase; }
.package-card ul { margin:5px 0; padding-left:16px; }
.package-card li { margin:6px 0; color:var(--ink); font-size:9px; line-height:1.35; }
.package-exclusions { opacity:.72; }
.choice-guide { margin-top:15px; padding:18px; color:#fff; background:var(--navy); border-left:4px solid var(--gold); }
.choice-guide strong { color:var(--gold-soft); font-size:10px; text-transform:uppercase; }
.choice-guide p { margin:8px 0 0; color:#d9e1e7; font-size:10px; line-height:1.65; }
.catalog-add-list form span small { display:block; margin-top:4px; color:var(--gold-dark); }
.print-section-label { color:#8a6a31; font-size:8px; font-weight:900; letter-spacing:.1em; }
.scope-lead { padding:12px; background:#f6f1e7; font-size:11px!important; }
.work-justification { display:grid; grid-template-columns:1fr auto; gap:5px 20px; margin:15px 0; padding:14px; color:#fff; background:#102f50; }
.work-justification strong { font-size:11px; }
.work-justification p { grid-column:1/2; margin:0; color:#d6e0e7; }
.work-justification span { grid-column:2; grid-row:1/3; align-self:center; padding:10px; color:#102f50; background:#edd49d; font-size:10px; font-weight:900; }
.print-phases article header { display:flex; justify-content:space-between; gap:10px; }
.print-phases article ul { margin:8px 0 0; padding-left:15px; }
.print-phases article li { margin:4px 0; font-size:8px; line-height:1.35; }
.print-scope-columns { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; margin-top:16px; }
.print-scope-columns > div { padding:14px; border:1px solid #dce2e6; }
@media (max-width:950px) {
    .package-grid { grid-template-columns:1fr; }
    .package-card h3,.package-card > p { min-height:0; }
}
@media print {
    .work-justification { print-color-adjust:exact; -webkit-print-color-adjust:exact; }
}

/* Lot 8 — Dossiers d'exécution et devis */
.work-plan { display:grid; grid-template-columns:repeat(5,1fr); gap:10px; margin-top:22px; }
.work-plan article { padding:17px; background:#f7f4ed; border-top:3px solid var(--gold); }
.work-plan header { display:flex; align-items:flex-start; gap:8px; }
.work-plan header span { flex:0 0 auto; padding:5px; color:#fff; background:var(--navy); font-size:8px; font-weight:800; }
.work-plan h3 { margin:2px 0; color:var(--navy); font-size:12px; line-height:1.35; }
.work-plan p { color:var(--muted); font-size:9px; line-height:1.5; }
.work-plan ul,.question-list { padding-left:17px; }
.work-plan li,.question-list li { margin:7px 0; color:var(--ink); font-size:9px; line-height:1.4; }
.quote-list { display:grid; gap:10px; }
.quote-row { display:grid; grid-template-columns:1fr 130px 140px 120px 75px; align-items:center; gap:20px; padding:20px 24px; color:var(--ink); background:#fff; border:1px solid var(--line); }
.quote-row h2 { margin:5px 0; color:var(--navy); font:400 20px Georgia,"Times New Roman",serif; }
.quote-row small,.quote-row span { color:var(--muted); font-size:9px; }
.quote-row strong { display:block; margin-top:5px; color:var(--navy); font-size:12px; }
.quote-summary-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:18px; }
.quote-summary-grid section { display:grid; gap:8px; padding:20px; background:#fff; border-top:3px solid var(--gold); }
.quote-summary-grid small { color:var(--muted); font-size:9px; text-transform:uppercase; }
.quote-summary-grid strong { color:var(--navy); font:400 25px Georgia,"Times New Roman",serif; }
.quote-summary-grid .internal-figure { color:#fff; background:var(--navy); }
.quote-summary-grid .internal-figure small,.quote-summary-grid .internal-figure strong { color:#fff; }
.quote-table { width:100%; border-collapse:collapse; }
.quote-table th,.quote-table td { padding:13px; border-bottom:1px solid var(--line); text-align:right; font-size:10px; vertical-align:top; }
.quote-table th:first-child,.quote-table td:first-child { text-align:left; }
.quote-table td small { display:block; max-width:650px; margin-top:5px; color:var(--muted); line-height:1.45; }
.preline { white-space:pre-line; }
.quote-lines-editor { margin-top:20px; }
.quote-lines-editor > h2,.quote-lines-editor > h3 { color:var(--navy); }
.quote-lines-editor > h3 { margin:28px 0 12px; font-size:12px; text-transform:uppercase; }
.editable-line { display:grid; grid-template-columns:1fr auto auto; align-items:center; gap:18px; padding:14px 0; border-bottom:1px solid var(--line); }
.editable-line small { display:block; margin-top:5px; color:var(--muted); font-size:9px; }
.catalog-add-list { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; }
.catalog-add-list form { display:grid; grid-template-columns:1fr auto auto; align-items:center; gap:10px; padding:11px; background:#f7f4ed; }
.catalog-add-list span { font-size:10px; }
.catalog-add-list strong { color:var(--navy); font-size:10px; }
.catalog-add-list button { padding:7px 10px; color:#fff; background:var(--navy); border:0; cursor:pointer; font-size:9px; }
.custom-line-form { display:grid; grid-template-columns:1fr 1.4fr .5fr .6fr .7fr auto; align-items:end; gap:10px; }
.custom-line-form label { display:grid; gap:6px; color:var(--navy); font-size:9px; font-weight:800; }
.custom-line-form input { width:100%; height:42px; padding:9px; border:1px solid var(--line); }
.form-help { padding:14px; color:var(--muted); background:#f7f4ed; font-size:10px; }

.quote-print { margin:0; color:#102f50; background:#e9edf0; font-family:Arial,sans-serif; }
.quote-print main { width:210mm; min-height:297mm; margin:20px auto; padding:19mm; background:#fff; box-shadow:0 8px 30px rgba(0,0,0,.12); box-sizing:border-box; }
.print-toolbar { position:sticky; top:0; z-index:2; padding:12px; background:#0a2239; text-align:center; }
.print-toolbar button { padding:11px 20px; color:#fff; background:#ba8730; border:0; font-weight:800; cursor:pointer; }
.print-header,.print-client { display:flex; justify-content:space-between; gap:30px; }
.print-header { padding-bottom:20px; border-bottom:2px solid #ba8730; }
.print-header div { display:grid; gap:4px; }
.print-header strong { font:400 34px Georgia,serif; }
.print-header div:last-child { text-align:right; }
.print-header span,.print-client small,.print-intro > span { color:#8a6a31; font-size:9px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.print-client { margin:32px 0; }
.print-client h1 { margin:8px 0; font:400 28px Georgia,serif; }
.print-client p { font-size:11px; line-height:1.5; }
.print-client dl { display:grid; grid-template-columns:auto auto; gap:8px 18px; font-size:10px; }
.print-client dd { margin:0; font-weight:800; }
.print-intro { padding:26px; background:#f6f1e7; }
.print-intro h2,.print-work h2,.print-finance h2,.print-conditions h2 { font:400 24px Georgia,serif; }
.print-intro p,.print-work p,.print-conditions p { font-size:10px; line-height:1.65; }
.print-work,.print-finance,.print-conditions { margin-top:30px; page-break-inside:avoid; }
.print-phases { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; }
.print-phases article { padding:13px; border:1px solid #dce2e6; }
.print-phases b,.print-phases span { display:block; font-size:10px; }
.print-phases span { margin-top:4px; color:#ba8730; }
.print-work li { margin:7px 0; font-size:10px; }
.print-finance table { width:100%; border-collapse:collapse; }
.print-finance th,.print-finance td { padding:10px; border-bottom:1px solid #dce2e6; font-size:9px; text-align:right; vertical-align:top; }
.print-finance th:first-child,.print-finance td:first-child { text-align:left; }
.print-finance td small { display:block; margin-top:5px; color:#637487; line-height:1.4; }
.print-totals { display:grid; justify-content:end; min-width:280px; margin-top:15px; }
.print-totals span,.print-totals > strong { display:grid; grid-template-columns:150px 100px; gap:20px; padding:7px; font-size:10px; }
.print-totals b { text-align:right; }
.print-totals > strong { color:#fff; background:#102f50; }
.quote-print footer { margin-top:40px; padding-top:15px; border-top:1px solid #dce2e6; color:#637487; font-size:8px; text-align:center; }

@media (max-width:1100px) {
    .work-plan { grid-template-columns:repeat(2,1fr); }
    .quote-row { grid-template-columns:1fr 120px 120px; }
    .quote-row > :nth-child(4),.quote-row > :nth-child(5) { display:none; }
    .custom-line-form { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:700px) {
    .work-plan,.quote-summary-grid,.catalog-add-list { grid-template-columns:1fr; }
    .quote-row { grid-template-columns:1fr; }
    .quote-row > * { display:block!important; }
}

/* Lot 13A — archivage et restauration */
.danger-toolbar,.danger-zone,.archive-warning,.archive-row{display:flex;align-items:center;justify-content:space-between;gap:24px}
.danger-toolbar{margin:0 0 24px;padding:14px 18px;border:1px solid #ead6d6;background:#fff8f8;color:#7f3333}
.danger-toolbar form,.danger-zone form,.archive-warning form,.archive-row form{margin:0}
.danger-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 18px;border:1px solid #a52d2d;background:#fff;color:#8d2323;font:inherit;font-weight:700;cursor:pointer}
.danger-button:hover{background:#8d2323;color:#fff}
.danger-zone{margin-top:28px;padding:26px;border:1px solid #e2baba;background:#fffafa}
.danger-zone h2{margin:5px 0 8px}.danger-zone p{margin:0;max-width:760px}
.organization-danger{align-items:flex-start}.archive-confirm-form{display:grid;grid-template-columns:1fr 1fr;gap:12px;min-width:480px}
.archive-confirm-form label{display:grid;gap:6px}.archive-confirm-form button{grid-column:1/-1;justify-self:end}
.archive-section{margin:0 0 28px;padding:26px;background:#fff;border:1px solid #d7dee5}
.archive-row{padding:15px 0;border-top:1px solid #e5e9ed}.archive-row:first-of-type{border-top:0}
.archive-row>div{display:grid;gap:4px}.archive-row span{color:#5d7185;font-size:.9rem}
.archive-warning{margin-bottom:28px;padding:20px 24px;border-left:5px solid #bd8625;background:#f4ebd8}.archive-warning p{margin:4px 0 0}
.empty-state{margin:14px 0 0;color:#6b7d8f}
@media(max-width:800px){.danger-toolbar,.danger-zone,.archive-warning,.archive-row{align-items:stretch;flex-direction:column}.danger-button,.archive-row button,.archive-warning button{width:100%}.archive-confirm-form{grid-template-columns:1fr;min-width:0;width:100%}.archive-confirm-form button{grid-column:auto}}
@media print {
    .print-toolbar { display:none!important; }
    .quote-print { background:#fff; }
    .quote-print main { width:auto; min-height:0; margin:0; padding:12mm; box-shadow:none; }
    @page { size:A4; margin:0; }
}

@media (max-width:600px) {
    .lead-header small { display:none; }
    .lead-promise,.lead-form,.thank-you { padding:34px 22px; }
    .thank-you { margin:25px 12px; }
}

/* Lot 7 — Catalogue des offres */
.offer-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.offer-card { display:flex; min-height:520px; padding:30px; flex-direction:column; background:#fff; border:1px solid var(--line); border-top:4px solid var(--gold); }
.offer-card.is-inactive { opacity:.62; border-top-color:#aab3ba; }
.offer-card-top,.offer-badges,.offer-card footer { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.offer-number { color:var(--gold); font-size:12px; font-weight:900; letter-spacing:.12em; }
.offer-badges { justify-content:flex-end; flex-wrap:wrap; }
.offer-category { display:inline-flex; width:max-content; padding:6px 9px; color:var(--navy); background:#f4ecdc; border-radius:3px; font-size:9px; font-weight:900; letter-spacing:.06em; text-transform:uppercase; }
.offer-card h2 { margin:26px 0 8px; color:var(--navy); font:400 30px/1.12 Georgia,"Times New Roman",serif; }
.offer-tagline { min-height:46px; color:var(--ink); font-weight:700; line-height:1.5; }
.offer-description { color:var(--muted); font-size:12px; line-height:1.7; }
.offer-deliverables { margin:15px 0 25px; padding:0; list-style:none; }
.offer-deliverables li { padding:10px 0 10px 22px; border-bottom:1px solid var(--line); font-size:11px; line-height:1.4; position:relative; }
.offer-deliverables li::before { content:"✓"; position:absolute; left:0; color:var(--gold); font-weight:900; }
.offer-card footer { margin-top:auto; padding-top:20px; border-top:1px solid var(--line); }
.offer-card footer strong { color:var(--navy); font-size:13px; }
.offer-card footer a { color:var(--gold-dark); font-size:11px; font-weight:800; }
.checkbox-field { display:flex!important; flex-direction:row!important; align-items:center; align-self:end; min-height:48px; gap:11px!important; }
.checkbox-field input { width:17px!important; height:17px!important; accent-color:var(--navy); }
.recommended-offers { display:grid; gap:10px; margin:20px 0; }
.recommended-offer { display:grid; grid-template-columns:minmax(260px,1fr) minmax(170px,.45fr) auto; align-items:center; gap:24px; padding:20px; background:#faf8f3; border:1px solid var(--line); border-left:4px solid var(--gold); }
.recommended-offer h3 { margin:9px 0 4px; color:var(--navy); font:400 21px Georgia,"Times New Roman",serif; }
.recommended-offer p { margin:0; color:var(--muted); font-size:11px; }
.recommended-offer-meta { display:grid; justify-items:start; gap:8px; }
.recommended-offer-meta strong { color:var(--navy); font-size:12px; }
.recommended-offer-meta small { color:var(--muted); line-height:1.45; }
.recommendation-status { padding:5px 8px; border-radius:20px; font-size:9px; font-weight:900; text-transform:uppercase; }
.status-recommended { color:#765411; background:#f2dfb5; }
.status-selected { color:#176a55; background:#e3f0eb; }
.status-declined { color:#7a3b3b; background:#f5e4e4; }
.text-danger { padding:0; color:var(--danger); background:none; border:0; cursor:pointer; font-size:10px; font-weight:800; }
.recommendation-form { display:grid; grid-template-columns:1.4fr .8fr .8fr auto; align-items:end; gap:12px; margin-top:22px; padding:20px; background:#f5f1e9; border:1px solid var(--line); }
.recommendation-form label { display:grid; gap:7px; color:var(--navy); font-size:10px; font-weight:800; }
.recommendation-form input,.recommendation-form select,.recommendation-form textarea { width:100%; min-height:44px; padding:10px; background:#fff; border:1px solid var(--line); }
.recommendation-notes { grid-column:1/-2; }
.recommendation-form .secondary-button { grid-column:-2/-1; min-height:44px; }

@media (max-width:1100px) {
    .offer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .recommendation-form { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .recommendation-notes,.recommendation-form .secondary-button { grid-column:auto; }
}
@media (max-width:700px) {
    .offer-grid { grid-template-columns:1fr; }
    .offer-card { min-height:auto; }
    .recommended-offer,.recommendation-form { grid-template-columns:1fr; }
}

/* Lot 7.1 — Catalogue commercial interne */
.nav-suboffers { display:grid; gap:2px; margin:-3px 0 7px 14px; padding-left:12px; border-left:1px solid rgba(255,255,255,.12); }
.nav-suboffers a { min-height:30px!important; padding:7px 8px!important; color:#849aae!important; font-size:9px!important; line-height:1.25; }
.nav-suboffers a.active { color:var(--gold-soft)!important; background:transparent!important; }
.offer-tabs { display:flex; margin:0 0 24px; background:#fff; border:1px solid var(--line); overflow-x:auto; }
.offer-tabs a { padding:15px 20px; color:var(--muted); border-right:1px solid var(--line); font-size:10px; font-weight:800; white-space:nowrap; }
.offer-tabs a.active { color:var(--navy); background:#f1dfb7; }
.internal-offer-list { display:grid; gap:12px; }
.internal-offer-row { display:grid; grid-template-columns:minmax(280px,1.2fr) minmax(360px,1.25fr) 120px 145px; align-items:center; gap:22px; padding:22px 24px; background:#fff; border:1px solid var(--line); border-left:4px solid var(--gold); }
.offer-row-main h2 { margin:10px 0 5px; color:var(--navy); font:400 23px/1.15 Georgia,"Times New Roman",serif; }
.offer-row-main p { margin:0; color:var(--muted); font-size:11px; line-height:1.45; }
.market-mini-grid { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--line); }
.market-mini-grid div { display:grid; gap:4px; padding:11px; border-right:1px solid var(--line); }
.market-mini-grid div:last-child { border-right:0; }
.market-mini-grid small,.offer-row-commission small { color:var(--muted); font-size:8px; font-weight:800; text-transform:uppercase; }
.market-mini-grid strong { color:var(--navy); font-size:12px; }
.market-mini-grid span { color:var(--muted); font-size:8px; }
.offer-row-commission { display:grid; gap:4px; text-align:center; }
.offer-row-commission strong { color:var(--gold-dark); font:400 28px Georgia,"Times New Roman",serif; }
.offer-row-commission span { color:var(--muted); font-size:8px; }
.offer-row-actions { display:grid; gap:8px; justify-items:stretch; text-align:center; }
.offer-row-actions > a:not(.primary-button) { color:var(--gold-dark); font-size:9px; font-weight:800; }
.internal-warning { margin:22px 0 0; padding:13px 16px; color:#745516; background:#fff3d7; border-left:3px solid var(--gold); font-size:10px; font-weight:700; }
.pricing-editor { display:grid; grid-template-columns:repeat(3,1fr); gap:15px; margin-bottom:22px; }
.pricing-editor fieldset { display:grid; gap:13px; margin:0; padding:18px; border:1px solid var(--line); }
.pricing-editor legend { padding:0 8px; color:var(--navy); font:400 19px Georgia,"Times New Roman",serif; }
.pricing-editor label { display:grid; gap:7px; color:var(--navy); font-size:10px; font-weight:800; }
.pricing-editor input { width:100%; height:45px; padding:10px; border:1px solid var(--line); }
.negotiation-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:15px; margin-bottom:18px; }
.market-price-card { padding:25px; background:var(--navy); color:#fff; border-top:4px solid var(--gold); }
.market-price-card > span { color:var(--gold-soft); font-size:10px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.market-price-card > small { display:block; margin-top:21px; color:#94a7b8; font-size:9px; text-transform:uppercase; }
.market-price-card > strong { display:block; margin:5px 0 18px; font:400 35px Georgia,"Times New Roman",serif; }
.fcfa-equivalent { margin:-12px 0 18px; color:var(--gold-soft); font-size:10px; }
.market-price-card dl { display:grid; grid-template-columns:1fr auto; gap:9px 15px; margin:0; padding-top:15px; border-top:1px solid rgba(255,255,255,.14); }
.market-price-card dt { color:#9fb0bf; font-size:9px; }
.market-price-card dd { margin:0; color:#fff; font-size:10px; font-weight:800; }
.offer-detail-grid .detail-card { min-height:260px; }
.sales-subtitle { margin:25px 0 8px; color:var(--gold-dark); font-size:10px; text-transform:uppercase; letter-spacing:.08em; }
.sales-list { margin:10px 0 0; padding:0; list-style:none; }
.sales-list li { padding:10px 0 10px 22px; border-bottom:1px solid var(--line); font-size:11px; position:relative; }
.sales-list li::before { content:"✓"; position:absolute; left:0; color:var(--success); font-weight:900; }
.sales-list.exclusions li::before { content:"—"; color:var(--danger); }
.objection-list { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin-top:16px; }
.objection-list article { padding:18px; background:#f7f4ed; border-left:3px solid var(--gold); }
.objection-list strong { color:var(--navy); font-size:12px; }
.objection-list p { margin:8px 0 0; color:var(--muted); font-size:11px; line-height:1.55; }
.internal-note { color:#fff; background:var(--navy); }
.internal-note h2,.internal-note p { color:#fff; }
.recommendation-form { grid-template-columns:1.3fr .65fr .65fr .8fr auto; }

@media (max-width:1250px) {
    .internal-offer-row { grid-template-columns:1fr 1.1fr 100px; }
    .offer-row-actions { grid-column:1/-1; grid-template-columns:200px auto; justify-content:end; align-items:center; }
}
@media (max-width:900px) {
    .internal-offer-row { grid-template-columns:1fr; }
    .market-mini-grid { grid-template-columns:1fr; }
    .market-mini-grid div { border-right:0; border-bottom:1px solid var(--line); }
    .market-mini-grid div:last-child { border-bottom:0; }
    .offer-row-actions { grid-column:auto; justify-content:stretch; }
    .pricing-editor,.negotiation-grid,.objection-list { grid-template-columns:1fr; }
}

/* Lot 9 — profil légal, partage client et acceptation */
.share-panel { margin:0 0 24px; padding:22px 26px; border:1px solid #d7c89f; background:#fbf7ed; }
.share-panel header,.share-actions,.share-meta,.response-actions { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.share-panel h2 { margin:0; font-size:22px; }
.share-panel p { margin:7px 0 0; color:var(--muted); }
.share-url { display:grid; grid-template-columns:1fr auto auto; gap:10px; margin-top:18px; }
.share-url input { width:100%; min-height:44px; padding:0 13px; border:1px solid var(--line); background:#fff; }
.share-meta { justify-content:flex-start; flex-wrap:wrap; margin-top:13px; font-size:11px; color:var(--muted); }

.public-proposal { margin:0; background:#e9edf0; color:var(--navy); font-family:Arial,sans-serif; }
.proposal-top { display:flex; justify-content:space-between; gap:25px; padding:25px max(24px,calc((100% - 980px)/2)); color:#fff; background:var(--navy); }
.proposal-top div { display:flex; flex-direction:column; gap:4px; }
.proposal-top strong { font-family:Georgia,serif; font-size:30px; }
.proposal-top span { color:#bdc9d3; font-size:11px; }
.proposal-document { width:min(980px,calc(100% - 32px)); margin:28px auto; background:#fff; box-shadow:0 12px 35px rgba(10,38,66,.12); }
.proposal-document > section,.proposal-document > footer { padding:34px 52px; }
.proposal-recipient { display:flex; justify-content:space-between; gap:35px; border-bottom:1px solid var(--line); }
.proposal-recipient small,.proposal-work > span,.proposal-response > div > span { color:var(--gold-dark); font-size:10px; font-weight:800; letter-spacing:.13em; }
.proposal-recipient h1 { margin:8px 0; font:38px/1.1 Georgia,serif; }
.proposal-recipient dl { display:grid; grid-template-columns:auto auto; gap:8px 20px; align-content:start; font-size:11px; }
.proposal-recipient dt { color:var(--muted); text-transform:uppercase; }
.proposal-recipient dd { margin:0; font-weight:800; }
.proposal-hero { background:#f5f0e5; }
.proposal-hero h2,.proposal-work h2,.proposal-finance h2,.proposal-conditions h2,.proposal-response h2 { margin:10px 0 16px; font:30px/1.15 Georgia,serif; }
.proposal-hero p,.scope-lead { color:#3d5570; line-height:1.65; }
.proposal-work { border-bottom:1px solid var(--line); }
.work-justification { margin:24px 0; padding:20px 22px; border-left:4px solid var(--gold); background:#f8f6f0; }
.work-justification p { margin:8px 0; color:var(--muted); line-height:1.55; }
.work-justification span { font-size:11px; font-weight:800; color:var(--gold-dark); }
.proposal-phases { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
.proposal-phases article { border:1px solid var(--line); padding:17px; }
.proposal-phases header { display:flex; justify-content:space-between; gap:10px; }
.proposal-phases header span { color:var(--gold-dark); font-size:10px; }
.proposal-phases ul,.proposal-scope ul { padding-left:18px; color:#3d5570; line-height:1.6; font-size:12px; }
.proposal-scope { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:20px; }
.proposal-scope > div { padding:20px; background:#f8f9fa; }
.proposal-scope h3 { margin-top:0; font:20px Georgia,serif; }
.proposal-finance table { width:100%; border-collapse:collapse; font-size:12px; }
.proposal-finance th,.proposal-finance td { padding:13px 9px; border-bottom:1px solid var(--line); text-align:right; vertical-align:top; }
.proposal-finance th:first-child,.proposal-finance td:first-child { text-align:left; }
.proposal-finance td small { display:block; margin-top:5px; color:var(--muted); }
.proposal-totals { width:min(390px,100%); margin:20px 0 0 auto; }
.proposal-totals span,.proposal-totals strong { display:flex; justify-content:space-between; gap:25px; padding:8px 0; }
.proposal-totals > strong { border-top:2px solid var(--navy); font-size:16px; }
.proposal-conditions { background:#f8f9fa; line-height:1.6; }
.proposal-response { display:grid; grid-template-columns:.8fr 1.2fr; gap:38px; border-top:5px solid var(--gold); }
.response-grid { display:grid; grid-template-columns:1fr 1fr; gap:13px; }
.response-grid label { display:flex; flex-direction:column; gap:6px; font-size:11px; font-weight:700; }
.response-grid input,.response-grid textarea { padding:11px; border:1px solid var(--line); font:inherit; background:#fff; }
.response-grid .wide { grid-column:1/-1; }
.response-grid .consent { flex-direction:row; align-items:flex-start; font-weight:400; line-height:1.4; }
.response-grid .consent input { width:auto; margin-top:2px; }
.response-actions { justify-content:flex-end; margin-top:17px; }
.response-complete { text-align:center; color:#12664f; background:#edf8f4; }
.response-complete.expired { color:#8b3e32; background:#fbefec; }
.proposal-document > footer { display:flex; flex-direction:column; gap:5px; color:#c6d1dc; background:var(--navy); font-size:10px; line-height:1.5; }

@media (max-width:760px) {
    .share-panel header,.share-actions,.proposal-recipient,.response-actions { align-items:stretch; flex-direction:column; }
    .share-url,.proposal-response,.response-grid,.proposal-phases,.proposal-scope { grid-template-columns:1fr; }
    .response-grid .wide { grid-column:auto; }
    .proposal-document > section,.proposal-document > footer { padding:27px 22px; }
    .proposal-recipient dl { grid-template-columns:1fr 1fr; }
}

@media print {
    .public-proposal { background:#fff; }
    .proposal-top,.proposal-response { display:none; }
    .proposal-document { width:100%; margin:0; box-shadow:none; }
}

/* Lot 10 — pilotage des projets */
.conversion-panel { display:flex; align-items:center; justify-content:space-between; gap:25px; margin:0 0 24px; padding:24px 28px; color:#fff; background:var(--navy); }
.conversion-panel h2 { margin:6px 0; color:#fff; font:26px Georgia,serif; }
.conversion-panel p { margin:0; color:#b9c8d5; }
.project-kpis { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin:0 0 24px; }
.project-kpis article { padding:20px 22px; border-top:4px solid var(--gold); background:#fff; box-shadow:0 2px 8px rgba(10,38,66,.05); }
.project-kpis small,.project-money small { display:block; color:var(--muted); font-size:10px; text-transform:uppercase; letter-spacing:.06em; }
.project-kpis strong { display:block; margin-top:10px; color:var(--navy); font:28px Georgia,serif; }
.project-row { display:grid; grid-template-columns:1fr 220px 160px; align-items:center; gap:28px; padding:24px 26px; border-bottom:1px solid var(--line); color:inherit; text-decoration:none; background:#fff; }
.project-row:hover { background:#fbf8f1; }
.project-row h2 { margin:5px 0 6px; font:23px Georgia,serif; }
.project-row p { margin:0; color:var(--muted); font-size:11px; }
.project-progress { display:grid; grid-template-columns:auto 1fr; gap:7px 10px; align-items:center; }
.project-progress i { height:7px; overflow:hidden; background:#e8e3d8; border-radius:8px; }
.project-progress i b { display:block; height:100%; background:var(--gold); }
.project-progress small { grid-column:1/-1; color:var(--muted); }
.project-money { text-align:right; }
.project-money strong { display:block; font-size:18px; }
.project-layout { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:22px; }
.project-layout main,.project-layout aside { display:flex; flex-direction:column; gap:22px; }
.project-section { min-height:0; }
.section-heading { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:18px; }
.section-heading h2 { margin:5px 0 0; }
.payment-row { display:grid; grid-template-columns:1fr 130px minmax(240px,auto); align-items:center; gap:18px; padding:17px 0; border-top:1px solid var(--line); }
.payment-row > div span,.payment-row > div small,.deliverable-row span,.project-task span { display:block; margin-top:5px; color:var(--muted); font-size:10px; }
.payment-row > b { font-size:16px; }
.payment-row form { display:flex; align-items:center; justify-content:flex-end; gap:7px; }
.payment-row input { width:110px; padding:9px; border:1px solid var(--line); }
.payment-row.paid { background:#f2f8f4; }
.deliverable-row,.project-task { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:15px 0; border-top:1px solid var(--line); }
.deliverable-row select,.stack-form input,.stack-form select,.stack-form textarea { width:100%; padding:10px; border:1px solid var(--line); background:#fff; }
.project-task.done strong { text-decoration:line-through; color:var(--muted); }
.project-task button { border:0; color:var(--gold-dark); background:none; font-weight:800; cursor:pointer; }
.stack-form { display:flex; flex-direction:column; gap:14px; margin-top:18px; }
.stack-form label { display:flex; flex-direction:column; gap:6px; color:var(--muted); font-size:10px; text-transform:uppercase; letter-spacing:.05em; }
.contact-project p { line-height:1.7; }

@media (max-width:1100px) {
    .project-kpis { grid-template-columns:repeat(2,1fr); }
    .project-layout { grid-template-columns:1fr; }
    .project-row { grid-template-columns:1fr 190px; }
    .project-money { grid-column:2; }
}
@media (max-width:760px) {
    .conversion-panel,.deliverable-row,.project-task { align-items:stretch; flex-direction:column; }
    .project-kpis,.project-row { grid-template-columns:1fr; }
    .project-money { grid-column:auto; text-align:left; }
    .payment-row { grid-template-columns:1fr; }
    .payment-row form { align-items:stretch; flex-direction:column; }
    .payment-row input { width:auto; }
}

/* Lot 11 — onboarding et portail client */
.client-portal-panel { display:flex; align-items:center; justify-content:space-between; gap:28px; margin-bottom:22px; padding:23px 27px; border:1px solid #d8c99f; background:#fbf7ed; }
.client-portal-panel h2 { margin:6px 0; font:25px Georgia,serif; }
.client-portal-panel p { margin:0 0 12px; color:var(--muted); }
.client-portal-panel input { width:min(620px,100%); padding:10px; border:1px solid var(--line); background:#fff; }
.portal-actions { display:flex; align-items:center; gap:9px; flex-wrap:wrap; justify-content:flex-end; }
.requirement-row { display:grid; grid-template-columns:1fr 280px; gap:22px; padding:18px 0; border-top:1px solid var(--line); }
.requirement-row p { margin:6px 0; color:var(--muted); font-size:11px; line-height:1.5; }
.requirement-row blockquote { margin:12px 0 0; padding:12px 15px; border-left:3px solid var(--gold); background:#f7f4ed; font-size:11px; }
.requirement-row form { display:flex; flex-direction:column; gap:7px; }
.requirement-row select,.requirement-row input,.requirement-row button,.update-form select,.update-form textarea { padding:9px; border:1px solid var(--line); background:#fff; }
.requirement-row button { color:#fff; border-color:var(--navy); background:var(--navy); cursor:pointer; }
.requirement-row.status-approved { background:#f2f8f4; }
.update-form { display:grid; grid-template-columns:160px 1fr auto; gap:10px; align-items:start; }
.update-form label { grid-column:2; font-size:10px; color:var(--muted); }
.update-form label input { width:auto; }
.update-timeline { margin-top:22px; }
.update-timeline article { padding:16px 0 16px 18px; border-top:1px solid var(--line); border-left:3px solid #8fa4b8; }
.update-timeline article.update-blocker { border-left-color:var(--danger); }
.update-timeline article.update-decision { border-left-color:var(--gold); }
.update-timeline header { display:flex; justify-content:space-between; gap:16px; }
.update-timeline header span { color:var(--muted); font-size:9px; }
.update-timeline p { margin:8px 0 0; line-height:1.55; }

.public-project { margin:0; color:var(--navy); background:#e9edf0; font-family:Arial,sans-serif; }
.portal-top { display:flex; justify-content:space-between; padding:23px max(24px,calc((100% - 1040px)/2)); color:#fff; background:var(--navy); }
.portal-top div { display:flex; flex-direction:column; gap:4px; }
.portal-top strong { font:30px Georgia,serif; }
.portal-top span { color:#b9c8d5; font-size:10px; }
.portal-document { width:min(1040px,calc(100% - 28px)); margin:25px auto; background:#fff; box-shadow:0 12px 36px rgba(10,38,66,.13); }
.portal-document > section,.portal-document > footer { padding:34px 45px; border-bottom:1px solid var(--line); }
.portal-success { padding:15px 45px; color:#12664f; background:#e8f5ef; }
.portal-hero { display:flex; align-items:center; justify-content:space-between; gap:35px; background:#f6f1e7; }
.portal-hero span,.portal-section-title span { color:var(--gold-dark); font-size:10px; font-weight:800; letter-spacing:.12em; }
.portal-hero h1 { margin:8px 0 3px; font:40px Georgia,serif; }
.portal-hero h2 { margin:0; font:24px Georgia,serif; color:#3b536d; }
.portal-hero p { color:var(--muted); }
.portal-progress { min-width:190px; text-align:right; }
.portal-progress strong { display:block; font:45px Georgia,serif; }
.portal-progress i { display:block; height:8px; margin-top:10px; overflow:hidden; background:#e4dbc8; border-radius:10px; }
.portal-progress i b { display:block; height:100%; background:var(--gold); }
.portal-section-title { display:flex; align-items:flex-start; justify-content:space-between; gap:30px; margin-bottom:20px; }
.portal-section-title h2 { margin:7px 0 0; font:28px Georgia,serif; }
.portal-section-title > p { width:45%; margin:0; color:var(--muted); font-size:11px; line-height:1.55; }
.portal-requirements { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.portal-requirement { padding:20px; border:1px solid var(--line); }
.portal-requirement header div { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.portal-requirement header span { padding:5px 8px; color:var(--gold-dark); background:#f7f0df; font-size:9px; }
.portal-requirement p { min-height:48px; color:var(--muted); font-size:11px; line-height:1.5; }
.portal-requirement textarea { width:100%; box-sizing:border-box; padding:10px; border:1px solid var(--line); resize:vertical; }
.portal-requirement button { margin-top:8px; }
.portal-requirement.status-approved { border-color:#a8d3c0; background:#f2f8f4; }
.approved-answer { color:#12664f; font-weight:700; }
.portal-columns { display:grid; grid-template-columns:1.5fr .7fr; gap:38px; }
.portal-line { display:flex; justify-content:space-between; gap:20px; padding:13px 0; border-top:1px solid var(--line); }
.portal-line span { display:block; margin-top:4px; color:var(--muted); font-size:10px; }
.portal-line > b { color:var(--gold-dark); font-size:10px; white-space:nowrap; }
.portal-dates { display:grid; grid-template-columns:1fr auto; gap:12px; font-size:11px; }
.portal-dates dt { color:var(--muted); }
.portal-dates dd { margin:0; font-weight:800; }
.portal-updates article { display:grid; grid-template-columns:90px 1fr; gap:20px; padding:15px 0; border-top:1px solid var(--line); }
.portal-updates time { color:var(--gold-dark); font-weight:800; }
.portal-updates p { margin:6px 0 0; color:var(--muted); line-height:1.55; }
.portal-document > footer { display:flex; flex-direction:column; gap:5px; color:#becbd6; background:var(--navy); font-size:10px; }

@media (max-width:800px) {
    .client-portal-panel,.portal-hero,.portal-section-title { align-items:stretch; flex-direction:column; }
    .requirement-row,.update-form,.portal-requirements,.portal-columns { grid-template-columns:1fr; }
    .update-form label { grid-column:auto; }
    .portal-actions { justify-content:flex-start; }
    .portal-progress { text-align:left; }
    .portal-section-title > p { width:auto; }
    .portal-document > section,.portal-document > footer { padding:27px 21px; }
}

/* Lot 12 — documents, validation et clôture */
.document-upload-form { display:grid; grid-template-columns:1.2fr .8fr 1fr 1fr; gap:9px; padding:16px; background:#f7f4ed; }
.document-upload-form input,.document-upload-form select { min-width:0; padding:9px; border:1px solid var(--line); background:#fff; }
.document-upload-form > label { display:flex; align-items:center; gap:7px; font-size:10px; }
.document-upload-form > label input { width:auto; }
.document-list { margin-top:18px; }
.document-list article { display:grid; grid-template-columns:44px 1fr 140px auto; align-items:center; gap:14px; padding:13px 0; border-top:1px solid var(--line); }
.file-icon { display:flex; align-items:center; justify-content:center; width:40px; height:40px; color:#fff; background:var(--navy); font-size:8px; font-weight:900; }
.document-list span,.document-list small { display:block; margin-top:4px; color:var(--muted); font-size:9px; }
.document-list p { margin:6px 0 0; font-size:10px; }
.document-list b { display:block; margin-top:5px; color:#12664f; font-size:9px; }
.document-list a,.linked-file { color:var(--gold-dark); font-size:10px; font-weight:800; text-decoration:none; }
.linked-file { display:block; margin-top:7px; }
.deliverable-row.extended { align-items:flex-start; }
.deliverable-row.extended blockquote { margin:9px 0; padding:9px 12px; border-left:3px solid var(--gold); background:#f7f4ed; font-size:10px; }
.deliverable-actions { display:flex; flex-direction:column; gap:8px; min-width:190px; }
.deliverable-actions select { width:100%; padding:9px; border:1px solid var(--line); }
.close-project-card { border-top:4px solid var(--gold); }
.close-project-card p,.completed-project-card p { color:var(--muted); line-height:1.5; }
.completed-project-card { color:#12664f; background:#edf8f4; }
.client-upload-form { display:grid; grid-template-columns:1fr; gap:7px; margin-top:13px; padding-top:13px; border-top:1px dashed var(--line); }
.client-upload-form input { padding:9px; border:1px solid var(--line); background:#fff; }
.client-files span { display:block; padding:5px 0; color:var(--muted); font-size:10px; }
.portal-completed { color:#12664f; text-align:center; background:#edf8f4; }
.portal-completed strong { font:28px Georgia,serif; }
.portal-completed p { margin-bottom:0; }
.portal-deliverable { padding:16px 0; border-top:1px solid var(--line); }
.portal-deliverable > header { display:flex; justify-content:space-between; gap:20px; }
.portal-deliverable header span { display:block; margin-top:5px; color:var(--muted); font-size:10px; }
.portal-deliverable header > b { color:var(--gold-dark); font-size:10px; white-space:nowrap; }
.portal-download { display:block; margin-top:10px; padding:10px 12px; color:var(--navy); background:#f5f0e5; font-size:10px; font-weight:800; text-decoration:none; }
.deliverable-decision-form { display:grid; gap:8px; margin-top:12px; padding:14px; background:#f7f8f9; }
.deliverable-decision-form input,.deliverable-decision-form textarea { padding:9px; border:1px solid var(--line); background:#fff; }
.deliverable-decision-form label { display:flex; align-items:flex-start; gap:7px; color:var(--muted); font-size:10px; }
.deliverable-decision-form label input { width:auto; }
.deliverable-decision-form > div { display:flex; gap:8px; justify-content:flex-end; }

@media (max-width:1000px) {
    .document-upload-form { grid-template-columns:1fr 1fr; }
}
@media (max-width:700px) {
    .document-upload-form,.document-list article { grid-template-columns:1fr; }
    .deliverable-actions { width:100%; }
    .deliverable-decision-form > div { align-items:stretch; flex-direction:column; }
}


/* REN_CRM_LOT_13B */
.import-upload-panel{margin-bottom:28px;padding:28px;background:#fff;border:1px solid #d7dee5}.import-upload-panel form{display:flex;align-items:end;justify-content:space-between;gap:24px}.import-upload-panel label{display:grid;gap:8px;flex:1}.import-upload-panel input{padding:14px;border:1px solid #b8c3cc;background:#fff}.import-upload-panel small{color:#64788c}
.import-history-row{display:grid;grid-template-columns:minmax(260px,1fr) 150px 120px 24px;align-items:center;gap:18px;padding:16px 0;border-top:1px solid #e5e9ed;color:#0b2746;text-decoration:none}.import-history-row>div{display:grid;gap:4px}.import-history-row span{color:#64788c}.import-status{display:inline-flex;justify-content:center;padding:6px 10px;background:#eef2f5;font-size:.8rem;font-weight:700}.import-status.status-completed{background:#e5f2ed;color:#1f6b55}.import-status.status-failed{background:#fae9e9;color:#922f2f}
.import-mapping-form{display:grid;gap:24px}.mapping-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.mapping-grid label{display:grid;gap:7px}.mapping-grid select{width:100%;padding:12px;border:1px solid #aebbc6;background:#fff}.table-scroll{overflow:auto}.import-preview{width:100%;border-collapse:collapse;white-space:nowrap}.import-preview th{padding:11px 13px;background:#0b2746;color:#fff;text-align:left}.import-preview td{padding:10px 13px;border-bottom:1px solid #dde3e8;color:#30485e}.import-submit-bar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 24px;background:#f4ebd8;border-left:5px solid #bd8625}.import-submit-bar p{margin:0}
.import-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:28px}.import-kpis article{padding:20px;border-top:4px solid #bd8625;background:#fff}.import-kpis span{display:block;color:#64788c}.import-kpis strong{display:block;margin-top:8px;font-family:Georgia,serif;font-size:2rem;color:#0b2746}.import-kpis .has-errors{border-color:#a52d2d}.import-error-row{display:grid;grid-template-columns:100px 1fr;gap:18px;padding:12px 0;border-top:1px solid #e5e9ed}.import-error-row span{color:#7e3030}
@media(max-width:900px){.mapping-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.import-kpis{grid-template-columns:repeat(2,1fr)}.import-history-row{grid-template-columns:1fr auto}.import-history-row b{display:none}}
@media(max-width:650px){.import-upload-panel form,.import-submit-bar{align-items:stretch;flex-direction:column}.mapping-grid{grid-template-columns:1fr}.import-kpis{grid-template-columns:1fr}.import-history-row{grid-template-columns:1fr}.import-history-row>span:last-child{display:none}}

