:root{--bg:#07111f;--panel:#102038;--line:#2b4666;--text:#eef6ff;--muted:#9eb3ca;--accent:#56b8ff;--accent2:#8d72ff;--success:#4ad67d}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top,#102544,#060d17 55%);color:var(--text);font-family:Segoe UI,Arial,sans-serif;min-height:100vh}
.topbar{display:flex;justify-content:space-between;align-items:center;padding:16px 5%;border-bottom:1px solid var(--line);background:#07101ddd}
.brand{color:white;text-decoration:none;font-weight:800;font-size:1.25rem}.topbar nav{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.topbar a{color:white}
.container{max-width:1200px;margin:auto;padding:38px 22px}.hero{text-align:center;padding:100px 20px}.hero h1{font-size:clamp(3rem,8vw,6rem);margin:0;background:linear-gradient(90deg,var(--accent),var(--accent2));-webkit-background-clip:text;color:transparent}
.hero p{color:var(--muted);font-size:1.25rem}.actions{display:flex;justify-content:center;gap:12px;margin-top:28px}
.button,button{display:inline-block;border:1px solid var(--line);background:#172b49;color:white;padding:11px 16px;border-radius:10px;text-decoration:none;cursor:pointer}
.primary{background:linear-gradient(135deg,#158dde,#725be0);border:0}.panel,.card{background:linear-gradient(145deg,#12243e,#0c192c);border:1px solid var(--line);border-radius:17px;padding:22px;box-shadow:0 18px 50px #0004}
.narrow{max-width:520px;margin:auto}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}.card.link{text-decoration:none;color:white}.disabled{opacity:.58}
label{display:block;margin:14px 0;color:var(--muted)}input,select{width:100%;margin-top:7px;padding:12px;border-radius:9px;border:1px solid var(--line);background:#071525;color:white}
.check{display:flex;gap:10px;align-items:center}.check input{width:auto;margin:0}.inline{display:inline-flex;gap:8px;align-items:center}.inline select{width:auto;margin:0}
.flash{padding:12px 15px;border-radius:10px;margin-bottom:15px;background:#18324e}.flash.error{background:#57252d}.flash.warning{background:#59451c}.flash.success{background:#164832}
table{width:100%;border-collapse:collapse;background:#0c192b}th,td{padding:12px;border-bottom:1px solid var(--line);text-align:left}.online{color:var(--success)}

/* ==========================================================
   ROADBOOK PERSONAL — PACK-197
   ========================================================== */

.roadbook-page {
    max-width: 980px;
    margin: 0 auto;
}

.roadbook-hero {
    padding: 28px;
    margin-bottom: 22px;
    border-radius: 18px;
    background: linear-gradient(135deg, #102a43, #1f4f75);
    color: white;
}

.roadbook-kicker {
    margin: 0 0 8px;
    font-size: .82rem;
    letter-spacing: .12em;
    font-weight: 700;
}

.roadbook-hero h1 {
    margin: 0 0 10px;
    font-size: 2rem;
}

.roadbook-hero p:last-child {
    margin: 0;
    opacity: .9;
    max-width: 700px;
}

.roadbook-card {
    background: white;
    border-radius: 18px;
    padding: 28px;
    box-shadow: 0 8px 30px rgba(0,0,0,.08);
}

.roadbook-card h2 {
    margin-top: 0;
}

.roadbook-intro {
    color: #52606d;
}

.roadbook-modes {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin: 24px 0;
}

.roadbook-mode {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    padding: 20px;
    border: 2px solid #d9e2ec;
    border-radius: 14px;
    cursor: pointer;
    transition: .15s ease;
}

.roadbook-mode:hover {
    transform: translateY(-1px);
    border-color: #627d98;
}

.roadbook-mode input {
    margin-top: 5px;
}

.roadbook-mode-icon {
    font-size: 1.5rem;
}

.roadbook-mode strong {
    display: block;
    font-size: 1.1rem;
    margin-bottom: 6px;
}

.roadbook-mode small {
    display: block;
    color: #52606d;
    line-height: 1.5;
}

.roadbook-upload {
    display: grid;
    gap: 8px;
    padding: 20px;
    border: 2px dashed #bcccdc;
    border-radius: 14px;
    margin-bottom: 20px;
}

.roadbook-upload small {
    color: #627d98;
}

.roadbook-submit {
    width: 100%;
    border: 0;
    border-radius: 12px;
    padding: 15px 20px;
    font-size: 1rem;
    font-weight: 800;
    cursor: pointer;
}

.roadbook-success {
    display: flex;
    gap: 18px;
    margin-top: 24px;
    padding: 20px;
    border-radius: 14px;
    border: 1px solid #8fd19e;
    background: #f0fff4;
}

.roadbook-success-icon {
    font-size: 2rem;
}

.roadbook-success h2 {
    margin: 0 0 8px;
}

.roadbook-success p {
    margin: 6px 0;
}

.roadbook-next {
    font-weight: 700;
}

@media (max-width: 700px) {
    .roadbook-modes {
        grid-template-columns: 1fr;
    }

    .roadbook-card,
    .roadbook-hero {
        padding: 20px;
    }
}

/* =========================================
   ROADBOOK — CONTRASTE ET LISIBILITE
   ========================================= */

.roadbook-page {
    color: #eaf2ff;
}

.roadbook-card {
    background: #ffffff;
    color: #142235;
}

.roadbook-card h1,
.roadbook-card h2,
.roadbook-card h3,
.roadbook-card strong {
    color: #10243d;
}

.roadbook-card p,
.roadbook-card small,
.roadbook-card label {
    color: #31465f;
}

.roadbook-card a {
    color: #2458a6;
    font-weight: 700;
}

.roadbook-card a:hover {
    color: #173f7c;
}

.roadbook-success {
    background: #f4f8fc;
    color: #16283f;
    border: 1px solid #d8e4f1;
}

.roadbook-success h1,
.roadbook-success h2,
.roadbook-success h3,
.roadbook-success strong {
    color: #10243d;
}

.roadbook-success p {
    color: #31465f;
}

.roadbook-mode {
    background: #ffffff;
    color: #142235;
}

.roadbook-mode strong {
    color: #10243d;
}

.roadbook-mode small {
    color: #52677f;
}

.roadbook-upload {
    color: #142235;
}

.roadbook-upload strong {
    color: #10243d;
}

.roadbook-upload small {
    color: #52677f;
}

.roadbook-card input[type="file"] {
    color: #ffffff;
}

.roadbook-card table,
.roadbook-card td,
.roadbook-card th {
    color: #142235;
}


/* =========================================
   PACK-210 — ROADBOOK RESULT UI
   ========================================= */

.roadbook-result-page {
    max-width: 1180px;
    margin: 0 auto;
}

.roadbook-result-summary {
    display: grid;
    grid-template-columns:
        repeat(4, minmax(0, 1fr));
    gap: 16px;
    margin: 22px 0;
}

.roadbook-result-stat {
    background: #ffffff;
    color: #142235;
    border-radius: 18px;
    padding: 22px;
    border: 1px solid #dce7f2;
    box-shadow:
        0 10px 28px
        rgba(0, 0, 0, 0.12);
}

.roadbook-result-stat-label {
    display: block;
    font-size: 0.82rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #5c7088;
    margin-bottom: 8px;
    font-weight: 800;
}

.roadbook-result-stat-value {
    display: block;
    font-size: 2.25rem;
    line-height: 1;
    color: #0d223a;
    margin-bottom: 6px;
}

.roadbook-result-stat-status {
    display: block;
    font-size: 1.45rem;
    color: #173b63;
}

.roadbook-result-stat small {
    color: #61758b;
}

.roadbook-result-stat-quebec {
    border-top: 5px solid #2563a9;
}

.roadbook-result-stat-federal {
    border-top: 5px solid #b3272d;
}

.roadbook-result-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 22px;
}

.roadbook-result-link {
    display: inline-flex;
    align-items: center;
    padding: 10px 14px;
    border-radius: 10px;
    background: #ffffff;
    color: #174f91;
    text-decoration: none;
    font-weight: 800;
    border: 1px solid #d8e4f0;
}

.roadbook-result-link:hover {
    background: #f1f6fb;
}

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

.roadbook-period-card {
    background: #ffffff;
    color: #142235;
    border-radius: 20px;
    padding: 24px;
    border: 1px solid #dce7f2;
    box-shadow:
        0 10px 28px
        rgba(0, 0, 0, 0.12);
}

.roadbook-period-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 15px;
    margin-bottom: 22px;
}

.roadbook-period-number {
    display: block;
    font-size: 0.83rem;
    color: #54708d;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.07em;
}

.roadbook-period-header h2 {
    margin: 6px 0 0;
    font-size: 1.8rem;
    color: #10243d;
}

.roadbook-midnight-badge {
    border-radius: 999px;
    padding: 7px 11px;
    font-size: 0.78rem;
    font-weight: 800;
    white-space: nowrap;
}

.roadbook-midnight-yes {
    background: #e9efff;
    color: #294f9e;
}

.roadbook-midnight-no {
    background: #edf8ef;
    color: #28733a;
}

.roadbook-period-times {
    display: grid;
    grid-template-columns:
        1fr auto 1fr;
    gap: 12px;
    align-items: center;
    padding: 16px;
    background: #f6f9fc;
    border-radius: 14px;
    margin-bottom: 18px;
}

.roadbook-time-block span {
    display: block;
    font-size: 0.78rem;
    color: #657b92;
    text-transform: uppercase;
    font-weight: 800;
    margin-bottom: 4px;
}

.roadbook-time-block strong {
    display: block;
    color: #17304d;
    line-height: 1.4;
}

.roadbook-time-arrow {
    font-size: 1.4rem;
    color: #7790a9;
    font-weight: 900;
}

.roadbook-meal-grid {
    display: grid;
    grid-template-columns:
        1fr 1fr;
    gap: 12px;
}

.roadbook-meal-box {
    border-radius: 14px;
    padding: 16px;
}

.roadbook-meal-box span,
.roadbook-meal-box small {
    display: block;
}

.roadbook-meal-box span {
    font-weight: 800;
    margin-bottom: 5px;
}

.roadbook-meal-box strong {
    display: block;
    font-size: 2rem;
    line-height: 1;
    margin-bottom: 5px;
}

.roadbook-meal-quebec {
    background: #eef6ff;
    color: #164f8a;
}

.roadbook-meal-federal {
    background: #fff0f1;
    color: #922d35;
}

.roadbook-result-note {
    margin-top: 22px;
    padding: 18px 20px;
    border-radius: 14px;
    background: #172b43;
    color: #e9f2fc;
    border: 1px solid #2a4868;
}

.roadbook-result-note strong {
    color: #ffffff;
}

.roadbook-result-note p {
    margin-bottom: 0;
    color: #d5e3f2;
}

@media (max-width: 900px) {

    .roadbook-result-summary {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .roadbook-period-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {

    .roadbook-result-summary {
        grid-template-columns: 1fr;
    }

    .roadbook-period-times {
        grid-template-columns: 1fr;
    }

    .roadbook-time-arrow {
        transform: rotate(90deg);
        justify-self: center;
    }

    .roadbook-meal-grid {
        grid-template-columns: 1fr;
    }

    .roadbook-period-header {
        flex-direction: column;
    }
}


/* =========================================
   PACK-218 — ROADBOOK MEAL CAP PORTAL
   ========================================= */

.roadbook-cap-option {
    margin: 18px 0;
}

.roadbook-cap-choice {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 18px;
    border-radius: 16px;
    border: 2px solid #d9e5f1;
    background: #f8fbfe;
    cursor: pointer;
}

.roadbook-cap-choice:hover {
    border-color: #96b9dd;
    background: #f1f7fd;
}

.roadbook-cap-choice input {
    width: 20px;
    height: 20px;
    flex: 0 0 auto;
}

.roadbook-cap-choice strong,
.roadbook-cap-choice small {
    display: block;
}

.roadbook-cap-choice strong {
    color: #10243d;
    font-size: 1rem;
    margin-bottom: 4px;
}

.roadbook-cap-choice small {
    color: #52677f;
    line-height: 1.45;
}

.roadbook-cap-check {
    display: none;
}

.roadbook-cap-status-card {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    padding: 20px;
    margin: 0 0 22px;
    border-radius: 18px;
    background: #ffffff;
    color: #142235;
    border: 1px solid #dce7f2;
    box-shadow:
        0 10px 28px
        rgba(0, 0, 0, 0.10);
}

.roadbook-cap-status-icon {
    font-size: 1.8rem;
    line-height: 1;
}

.roadbook-cap-status-kicker {
    display: block;
    color: #667d95;
    font-size: 0.75rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin-bottom: 4px;
}

.roadbook-cap-status-card h2 {
    color: #10243d;
    margin: 0 0 8px;
}

.roadbook-cap-status-card p {
    color: #40566e;
    margin: 4px 0;
}

.roadbook-cap-warning {
    padding: 10px 12px;
    background: #fff7dc;
    border-radius: 10px;
    border-left: 4px solid #d7a51b;
}


/* =========================================
   PACK-222 — ROADBOOK WEEKLY SUMMARY
   ========================================= */

.roadbook-weekly-section {
    margin: 32px 0;
}

.roadbook-weekly-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 18px;
}

.roadbook-weekly-heading h2 {
    margin: 4px 0;
    color: #ffffff;
}

.roadbook-weekly-heading p {
    margin: 0;
    color: #b7c8dc;
}

.roadbook-week-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 9px 15px;
    border-radius: 999px;
    background: #2458a6;
    color: #ffffff;
    font-weight: 800;
    white-space: nowrap;
}

.roadbook-global-grid {
    display: grid;
    grid-template-columns:
        repeat(
            auto-fit,
            minmax(165px, 1fr)
        );
    gap: 14px;
    margin-bottom: 24px;
}

.roadbook-global-stat {
    background: #ffffff;
    color: #142235;
    border: 1px solid #dce7f2;
    border-radius: 16px;
    padding: 18px;
    box-shadow:
        0 10px 25px
        rgba(0, 0, 0, 0.08);
}

.roadbook-global-stat span {
    display: block;
    margin-bottom: 6px;
    color: #60758c;
    font-size: 0.82rem;
    font-weight: 800;
}

.roadbook-global-stat strong {
    display: block;
    color: #10243d;
    font-size: 1.35rem;
}

.roadbook-global-stat small {
    display: block;
    margin-top: 5px;
    color: #6f8092;
}

.roadbook-global-stat-primary {
    border: 2px solid #75a8dd;
    background: #f5f9ff;
}

.roadbook-weeks-list {
    display: grid;
    gap: 16px;
}

.roadbook-week-card {
    background: #ffffff;
    color: #142235;
    border: 1px solid #dce7f2;
    border-radius: 18px;
    padding: 20px;
    box-shadow:
        0 10px 26px
        rgba(0, 0, 0, 0.08);
}

.roadbook-week-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding-bottom: 14px;
    border-bottom: 1px solid #e6edf5;
}

.roadbook-week-number {
    display: block;
    color: #2458a6;
    font-size: 0.78rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.07em;
}

.roadbook-week-card h3 {
    margin: 4px 0 0;
    color: #10243d;
}

.roadbook-week-km {
    color: #10243d;
    font-size: 1.25rem;
    white-space: nowrap;
}

.roadbook-week-stats {
    display: grid;
    grid-template-columns:
        repeat(
            auto-fit,
            minmax(120px, 1fr)
        );
    gap: 12px;
    margin-top: 15px;
}

.roadbook-week-stats div {
    padding: 11px 12px;
    background: #f5f8fc;
    border-radius: 12px;
}

.roadbook-week-stats span {
    display: block;
    color: #6b7d90;
    font-size: 0.76rem;
    font-weight: 800;
}

.roadbook-week-stats strong {
    display: block;
    margin-top: 3px;
    color: #142235;
}

.roadbook-week-stats small {
    display: block;
    margin-top: 3px;
    color: #6b7d90;
}

.roadbook-week-work {
    background: #eef5ff !important;
}

@media (max-width: 700px) {

    .roadbook-weekly-heading,
    .roadbook-week-card-head {
        align-items: flex-start;
        flex-direction: column;
    }
}


/* PACK-223 — RoadBook Daily Detail */

.roadbook-daily-details {
    margin-top: 18px;
    border-top: 1px solid rgba(255,255,255,.08);
    padding-top: 14px;
}

.roadbook-daily-details summary {
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    font-weight: 700;
    padding: 10px 0;
}

.roadbook-daily-details summary span {
    opacity: .7;
    font-size: .9rem;
}

.roadbook-daily-list {
    display: grid;
    gap: 10px;
    margin-top: 10px;
}

.roadbook-day-card {
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 14px;
    padding: 14px;
    background: rgba(255,255,255,.025);
}

.roadbook-day-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px;
}

.roadbook-day-head strong {
    font-size: 1rem;
}

.roadbook-day-head span {
    font-weight: 700;
}

.roadbook-day-stats {
    display: grid;
    grid-template-columns:
        repeat(
            auto-fit,
            minmax(120px, 1fr)
        );
    gap: 10px;
}

.roadbook-day-stats > div {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.roadbook-day-stats span,
.roadbook-day-stats small {
    opacity: .72;
}

.roadbook-day-stats strong {
    font-size: 1.05rem;
}

/* =========================================
   PACK-225 — ROADBOOK MONTHLY CALENDAR
   ========================================= */

.roadbook-calendar-launch {
    margin: 0 0 24px;
}

.roadbook-calendar-launch-button {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 20px 24px;
    border-radius: 18px;
    text-decoration: none;
    background: #2458a6;
    color: #ffffff;
    box-shadow:
        0 12px 28px
        rgba(0, 0, 0, 0.12);
}

.roadbook-calendar-launch-button:hover {
    filter: brightness(1.08);
}

.roadbook-calendar-launch-icon {
    font-size: 2rem;
}

.roadbook-calendar-launch-button strong,
.roadbook-calendar-launch-button small {
    display: block;
}

.roadbook-calendar-launch-button small {
    margin-top: 3px;
    opacity: .8;
}


.roadbook-year-summary {
    display: grid;
    grid-template-columns:
        repeat(
            auto-fit,
            minmax(150px, 1fr)
        );
    gap: 12px;
    margin: 24px 0 30px;
}

.roadbook-year-stat {
    background: #ffffff;
    color: #142235;
    border: 1px solid #dce7f2;
    border-radius: 15px;
    padding: 16px;
}

.roadbook-year-stat span {
    display: block;
    color: #64798f;
    font-size: .78rem;
    font-weight: 800;
    margin-bottom: 5px;
}

.roadbook-year-stat strong {
    display: block;
    color: #10243d;
    font-size: 1.2rem;
    text-align: center;
}

.roadbook-year-stat small {
    color: #718296;
}

.roadbook-year-stat-primary {
    border: 2px solid #75a8dd;
    background: #f5f9ff;
}


.roadbook-month-navigation {
    display: grid;
    grid-template-columns:
        70px 1fr 70px;
    align-items: center;
    gap: 18px;
    margin: 28px 0 18px;
}

.roadbook-month-title {
    text-align: center;
}

.roadbook-month-title span {
    display: block;
    color: #8da3bd;
    font-size: .76rem;
    font-weight: 900;
    letter-spacing: .12em;
}

.roadbook-month-title h2 {
    margin: 4px 0 0;
    color: #ffffff;
    font-size: 2rem;
}

.roadbook-month-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 56px;
    border-radius: 15px;
    text-decoration: none;
    background: #2458a6;
    color: #ffffff;
    font-size: 2rem;
    font-weight: 800;
}


.roadbook-calendar {
    background: #ffffff;
    color: #142235;
    border-radius: 20px;
    overflow: hidden;
    border: 1px solid #dce7f2;
    box-shadow:
        0 12px 30px
        rgba(0, 0, 0, .10);
}

.roadbook-calendar-weekdays {
    display: grid;
    grid-template-columns:
        repeat(7, 1fr);
    background: #173f79;
    color: #ffffff;
}

.roadbook-calendar-weekdays div {
    padding: 13px 6px;
    text-align: center;
    font-size: .76rem;
    font-weight: 900;
}

.roadbook-calendar-grid {
    display: grid;
    grid-template-columns:
        repeat(7, 1fr);
}

.roadbook-calendar-day {
    min-height: 120px;
    padding: 10px;
    border-right: 1px solid #e2eaf2;
    border-bottom: 1px solid #e2eaf2;
    background: #ffffff;
}

.roadbook-calendar-day:nth-child(7n) {
    border-right: 0;
}

.roadbook-calendar-day-empty {
    background: #f4f6f8;
}

.roadbook-calendar-day-data {
    background: #f5f9ff;
}

.roadbook-calendar-day {
    border-top: 4px solid #2458a6;
}

.roadbook-calendar-day-worked {
    border-top-color: #2458a6;
}

.roadbook-calendar-day-number {
    font-size: 1.05rem;
    font-weight: 900;
    color: #173f79;
}

.roadbook-calendar-day-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-top: 16px;
}

.roadbook-calendar-day-info strong {
    color: #10243d;
}

.roadbook-calendar-day-info span {
    color: #2458a6;
    font-weight: 800;
}

.roadbook-calendar-day-info small {
    color: #718296;
}

.roadbook-calendar-day-no-data {
    margin-top: 20px;
    color: #c0cad5;
}

.roadbook-calendar-actions {
    display: flex;
    justify-content: space-between;
    gap: 15px;
    flex-wrap: wrap;
    margin-top: 22px;
}


@media (max-width: 700px) {

    .roadbook-calendar-day {
        min-height: 85px;
        padding: 6px;
    }

    .roadbook-calendar-day-info {
        margin-top: 8px;
    }

    .roadbook-calendar-day-info strong {
        font-size: .75rem;
    }

    .roadbook-calendar-day-info span {
        font-size: .72rem;
    }

    .roadbook-calendar-day-info small {
        display: none;
    }

    .roadbook-month-navigation {
        grid-template-columns:
            50px 1fr 50px;
        gap: 8px;
    }

    .roadbook-month-arrow {
        height: 48px;
    }

    .roadbook-month-title h2 {
        font-size: 1.35rem;
    }

}

/* =========================================
   PACK-227 — CALENDAR SHIFT ATTRIBUTION
   ========================================= */

.roadbook-shift-duration {
    color: #2458a6 !important;
    font-weight: 900 !important;
    font-size: 0.95rem;
}

.roadbook-shift-hours {
    color: #526b86 !important;
    font-weight: 700;
}

.roadbook-no-shift {
    color: #a9b5c2 !important;
    font-weight: 700 !important;
}

@media (max-width: 700px) {

    .roadbook-shift-duration {
        font-size: .72rem;
    }

    .roadbook-shift-hours {
        font-size: .65rem;
    }

}

/* =========================================
   PACK-229 — CALENDAR VISUAL CARDS
   ========================================= */

.roadbook-vcard-stack {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: 10px;
}

.roadbook-vcard {
    border-radius: 8px;
    padding: 6px 8px;
    font-size: .78rem;
}

.roadbook-vcard-distance {
    display: flex;
    align-items: center;
    gap: 6px;
    border: 1px solid #a9c8ff;
    background: #f3f7ff;
    color: #123f91;
}

.roadbook-vcard-driving {
    display: flex;
    align-items: center;
    gap: 6px;
    border: 1px solid #a9d7a9;
    background: #f3fbf2;
    color: #176b31;
}

.roadbook-vcard-shift {
    border: 1px solid #d5dce6;
    background: #ffffff;
    color: #17304f;
}

.roadbook-vcard-shift-time {
    display: flex;
    align-items: center;
    gap: 5px;
    flex-wrap: wrap;
}

.roadbook-vcard-shift-time em {
    display: none;
}

.roadbook-vcard-shift-duration {
    margin-top: 3px;
    color: #2458a6;
    font-weight: 900;
}

.roadbook-vcard-meals {
    margin-top: 5px;
    color: #6b36b5;
    font-weight: 900;
}

.roadbook-vcard-empty {
    display: flex;
    align-items: center;
    gap: 6px;
    border: 1px solid #e1e6ec;
    background: #fafbfc;
    color: #8794a3;
}

.roadbook-vcard-icon {
    font-size: .8rem;
}

@media (max-width: 900px) {

    .roadbook-vcard {
        padding: 5px;
        font-size: .68rem;
    }

    .roadbook-vcard-shift-time {
        gap: 3px;
    }

    .roadbook-vcard-meals {
        margin-top: 3px;
    }
}

/* =========================================
   PACK-229 — REPAS QUÉBEC / FÉDÉRAL
   ========================================= */

.roadbook-vcard-meals {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 6px;
}

.roadbook-meal {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: .78rem;
    font-weight: 900;
    line-height: 1;
}

.roadbook-meal-quebec {
    color: #174ea6;
}

.roadbook-meal-federal {
    color: #c62828;
}

.roadbook-meal strong {
    color: #17304f;
    font-size: .82rem;
}

@media (max-width: 900px) {

    .roadbook-vcard-meals {
        gap: 7px;
    }

    .roadbook-meal {
        font-size: .68rem;
    }

    .roadbook-meal strong {
        font-size: .7rem;
    }
}

/* =========================================
   PACK-229 — VRAIS DRAPEAUX REPAS
   ========================================= */

.roadbook-meal-flag {
    width: 23px;
    height: 16px;
    object-fit: contain;
    display: block;
    flex: 0 0 auto;
}

.roadbook-meal {
    gap: 5px;
}

.roadbook-meal strong {
    font-size: .85rem;
}

@media (max-width: 900px) {
    .roadbook-meal-flag {
        width: 19px;
        height: 14px;
    }
}


/* =========================================
   PACK-230 — ROADBOOK CALENDAR DAY DETAIL
   ========================================= */

.roadbook-calendar-day-clickable {
    cursor: pointer;
    transition:
        transform .15s ease,
        box-shadow .15s ease,
        background .15s ease;
}

.roadbook-calendar-day-clickable:hover {
    transform: translateY(-2px);
    box-shadow:
        0 10px 25px rgba(24, 62, 110, .14);
    position: relative;
    z-index: 2;
}

.roadbook-calendar-day-clickable:focus {
    outline: 3px solid rgba(36, 88, 166, .25);
    outline-offset: -3px;
}


.roadbook-day-detail-page {
    max-width: 1180px;
    margin: 0 auto;
}


.roadbook-day-detail-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
    margin-bottom: 28px;
}

.roadbook-day-detail-eyebrow {
    display: block;
    margin-bottom: 7px;
    color: #2458a6;
    font-size: .78rem;
    font-weight: 900;
    letter-spacing: .08em;
}

.roadbook-day-detail-header h1 {
    margin: 0;
    color: #10243d;
    font-size: 2rem;
    font-weight: 900;
}

.roadbook-day-detail-header p {
    margin: 7px 0 0;
    color: #718296;
}


.roadbook-day-source-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}


.roadbook-day-source-card {
    overflow: hidden;
    border: 1px solid #dce6f0;
    border-radius: 18px;
    background: #ffffff;
    box-shadow:
        0 10px 35px rgba(18, 47, 82, .08);
}


.roadbook-day-source-title {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 22px 24px;
    border-bottom: 1px solid #e7edf4;
    background: #f7faff;
}

.roadbook-day-source-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 14px;
    background: #ffffff;
    font-size: 1.5rem;
    box-shadow:
        0 4px 15px rgba(30, 68, 110, .09);
}

.roadbook-day-source-title small {
    color: #7a8da2;
    font-size: .7rem;
    font-weight: 900;
    letter-spacing: .08em;
}

.roadbook-day-source-title h2 {
    margin: 2px 0 0;
    color: #173f79;
    font-size: 1.4rem;
    font-weight: 900;
}


.roadbook-day-stat-grid {
    display: grid;
    gap: 12px;
    padding: 24px;
}

.roadbook-day-stat {
    display: grid;
    grid-template-columns: 42px 1fr auto;
    align-items: center;
    gap: 10px;
    min-height: 65px;
    padding: 10px 16px;
    border-radius: 13px;
    background: #f7f9fc;
}

.roadbook-day-stat > span {
    font-size: 1.25rem;
}

.roadbook-day-stat small {
    color: #75879b;
    font-weight: 700;
}

.roadbook-day-stat strong {
    color: #10243d;
    font-size: 1.1rem;
    font-weight: 900;
}


.roadbook-day-shift {
    padding: 24px;
}

.roadbook-day-shift + .roadbook-day-shift {
    border-top: 1px solid #e7edf4;
}


.roadbook-day-shift-time {
    display: grid;
    grid-template-columns: 1fr 40px 1fr;
    align-items: center;
    gap: 12px;
}

.roadbook-day-shift-time > div {
    padding: 14px;
    border-radius: 13px;
    background: #f7f9fc;
    text-align: center;
}

.roadbook-day-shift-time small {
    display: block;
    margin-bottom: 4px;
    color: #7a8da2;
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
}

.roadbook-day-shift-time strong {
    color: #10243d;
    font-size: 1.2rem;
    font-weight: 900;
}

.roadbook-day-shift-time em {
    margin-left: 4px;
    color: #2458a6;
    font-size: .72rem;
    font-style: normal;
}

.roadbook-day-shift-arrow {
    color: #2458a6;
    font-size: 1.5rem;
    font-weight: 900;
    text-align: center;
}


.roadbook-day-duration {
    margin-top: 14px;
    padding: 16px;
    border-radius: 13px;
    background: #edf4ff;
    text-align: center;
}

.roadbook-day-duration small {
    display: block;
    color: #637c99;
    font-size: .7rem;
    font-weight: 900;
    letter-spacing: .06em;
}

.roadbook-day-duration strong {
    display: block;
    margin-top: 4px;
    color: #173f79;
    font-size: 1.35rem;
    font-weight: 900;
}


.roadbook-day-meals {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-top: 14px;
}

.roadbook-day-meal {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 68px;
    padding: 12px 15px;
    border: 1px solid #e1e9f2;
    border-radius: 13px;
    background: #ffffff;
}

.roadbook-day-meal img {
    width: 38px;
    height: 27px;
    object-fit: contain;
}

.roadbook-day-meal small {
    display: block;
    color: #718296;
    font-size: .7rem;
    font-weight: 800;
}

.roadbook-day-meal strong {
    display: block;
    color: #173f79;
    font-size: 1.25rem;
    font-weight: 900;
}


.roadbook-day-empty {
    margin: 24px;
    padding: 28px 20px;
    border-radius: 13px;
    background: #f7f9fc;
    color: #8a99aa;
    text-align: center;
    font-weight: 700;
}


.roadbook-day-detail-footer {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    margin-top: 22px;
    padding: 15px 18px;
    border: 1px solid #e1e8f0;
    border-radius: 13px;
    background: #f8fafc;
    color: #718296;
    font-size: .8rem;
    font-weight: 700;
}


@media (max-width: 800px) {

    .roadbook-day-detail-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .roadbook-day-source-grid {
        grid-template-columns: 1fr;
    }

    .roadbook-day-detail-footer {
        flex-direction: column;
    }

}


@media (max-width: 500px) {

    .roadbook-day-detail-header h1 {
        font-size: 1.5rem;
    }

    .roadbook-day-meals {
        grid-template-columns: 1fr;
    }

    .roadbook-day-stat {
        grid-template-columns: 34px 1fr;
    }

    .roadbook-day-stat strong {
        grid-column: 2;
    }

}



/* =========================================
   PACK-230 — FIX CONTRASTE TITRE
   ========================================= */

.roadbook-day-detail-page .roadbook-day-detail-header h1 {
    color: #ffffff;
}

.roadbook-day-detail-page .roadbook-day-detail-header p {
    color: #9fb7d5;
}

.roadbook-day-detail-page .roadbook-day-detail-eyebrow {
    color: #4f91e8;
}



/* =========================================
   PACK-230 — CLARIFICATION ISAAC / ROADBOOK
   ========================================= */

.roadbook-vcard-driving {
    display: block;
}

.roadbook-vcard-metric-label {
    margin-bottom: 3px;
    color: #52845d;
    font-size: .58rem;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.roadbook-vcard-metric-value {
    display: flex;
    align-items: center;
    gap: 6px;
}

.roadbook-vcard-shift-duration {
    display: flex;
    flex-direction: column;
    gap: 2px;
    align-items: center;
    text-align: center;
}

.roadbook-vcard-shift-label {
    color: #6f8195;
    font-size: .56rem;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.roadbook-vcard-shift-duration strong {
    color: #2458a6;
    font-size: .98rem;
    font-weight: 900;
    letter-spacing: .02em;
    text-align: center;
}

@media (max-width: 900px) {

    .roadbook-vcard-metric-label,
    .roadbook-vcard-shift-label {
        font-size: .5rem;
    }

    .roadbook-vcard-shift-duration strong {
        font-size: .72rem;
    }
}
/* =========================================
   PACK-231 — STEVELAB MODULE DASHBOARD
   ========================================= */

.sl-dashboard {
    max-width: 1120px;
    margin: 0 auto;
}

.sl-dashboard-hero {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 30px;
    margin-bottom: 34px;
}

.sl-dashboard-kicker {
    margin: 0 0 7px;
    color: #56b8ff;
    font-size: .75rem;
    font-weight: 900;
    letter-spacing: .18em;
}

.sl-dashboard-hero h1 {
    margin: 0;
    color: #ffffff;
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 900;
}

.sl-dashboard-intro {
    max-width: 620px;
    margin: 10px 0 0;
    color: #9eb3ca;
    font-size: 1rem;
    line-height: 1.55;
}

.sl-dashboard-status {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 9px 13px;
    border: 1px solid #294869;
    border-radius: 999px;
    background: rgba(10, 27, 47, .75);
    color: #a9bed4;
    font-size: .76rem;
    font-weight: 700;
    white-space: nowrap;
}

.sl-dashboard-status-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #4ad67d;
    box-shadow: 0 0 12px rgba(74,214,125,.65);
}


.sl-dashboard-section-title {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 20px;
    margin-bottom: 16px;
}

.sl-dashboard-section-title small {
    color: #6383a7;
    font-size: .7rem;
    font-weight: 900;
    letter-spacing: .14em;
}

.sl-dashboard-section-title h2 {
    margin: 3px 0 0;
    color: #ffffff;
    font-size: 1.35rem;
}

.sl-dashboard-section-title > span {
    color: #7890aa;
    font-size: .8rem;
}


.sl-module-grid {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
    gap: 18px;
}


.sl-module-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 235px;
    padding: 20px;
    overflow: hidden;

    border: 1px solid #284563;
    border-radius: 19px;

    background:
        linear-gradient(
            145deg,
            #12243e,
            #0b182a
        );

    color: #ffffff;

    box-shadow:
        0 16px 40px rgba(0,0,0,.20);
}


a.sl-module-card {
    text-decoration: none;
}


.sl-module-active {
    transition:
        transform .18s ease,
        border-color .18s ease,
        box-shadow .18s ease;
}

.sl-module-active:hover {
    transform: translateY(-5px);
    border-color: #4c8ed6;

    box-shadow:
        0 22px 48px rgba(0,0,0,.30);
}


.sl-module-roadbook::before,
.sl-module-raphcraft::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 4px;
}

.sl-module-roadbook::before {
    background:
        linear-gradient(
            90deg,
            #56b8ff,
            #3977df
        );
}

.sl-module-raphcraft::before {
    background:
        linear-gradient(
            90deg,
            #8d72ff,
            #546cff
        );
}


.sl-module-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 15px;
}

.sl-module-icon {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 48px;
    height: 48px;

    border: 1px solid #304c6b;
    border-radius: 14px;

    background:
        rgba(255,255,255,.045);

    font-size: 1.45rem;
}


.sl-module-badge {
    padding: 5px 8px;

    border: 1px solid rgba(74,214,125,.25);
    border-radius: 999px;

    background:
        rgba(74,214,125,.10);

    color: #72e69a;

    font-size: .58rem;
    font-weight: 900;
    letter-spacing: .08em;
}

.sl-module-badge-soon {
    border-color: rgba(158,179,202,.18);
    background: rgba(158,179,202,.07);
    color: #8299b2;
}


.sl-module-content {
    flex: 1;
    padding-top: 22px;
}

.sl-module-content h3 {
    margin: 0 0 8px;
    color: #ffffff;
    font-size: 1.3rem;
    font-weight: 900;
}

.sl-module-content p {
    margin: 0;
    color: #9eb3ca;
    font-size: .86rem;
    line-height: 1.55;
}


.sl-module-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;

    margin-top: 20px;
    padding-top: 14px;

    border-top: 1px solid rgba(117,151,187,.16);

    color: #77bfff;
    font-size: .76rem;
    font-weight: 800;
}

.sl-module-footer strong {
    font-size: 1.2rem;
}


.sl-module-disabled {
    opacity: .58;
}

.sl-module-disabled .sl-module-footer {
    color: #8294a8;
}


@media (max-width: 900px) {

    .sl-module-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

}


@media (max-width: 650px) {

    .sl-dashboard-hero {
        align-items: flex-start;
        flex-direction: column;
    }

    .sl-dashboard-section-title {
        align-items: flex-start;
        flex-direction: column;
    }

    .sl-module-grid {
        grid-template-columns: 1fr;
    }

    .sl-module-card {
        min-height: 210px;
    }

}

/* =========================================
   PACK-232 — ROADBOOK INTERNAL NAVIGATION
   ========================================= */

.roadbook-internal-nav {
    display: grid;
    grid-template-columns:
        auto 1fr auto;
    align-items: center;
    gap: 20px;

    margin-bottom: 20px;
    padding: 10px 12px;

    border: 1px solid #294765;
    border-radius: 15px;

    background:
        linear-gradient(
            145deg,
            rgba(16, 37, 64, .92),
            rgba(9, 24, 42, .92)
        );

    box-shadow:
        0 12px 30px rgba(0,0,0,.16);
}


.roadbook-internal-brand {
    display: flex;
    align-items: center;
    gap: 9px;

    padding-right: 16px;
    border-right: 1px solid rgba(116,151,190,.20);

    color: #ffffff;
}

.roadbook-internal-brand-icon {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 34px;
    height: 34px;

    border-radius: 10px;

    background:
        linear-gradient(
            135deg,
            #1e5fa7,
            #173f79
        );

    font-size: 1rem;
}

.roadbook-internal-brand strong {
    font-size: .9rem;
    font-weight: 900;
}


.roadbook-internal-links {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}


.roadbook-internal-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;

    padding: 8px 11px;

    border: 1px solid transparent;
    border-radius: 10px;

    color: #9db4cc;
    text-decoration: none;

    font-size: .78rem;
    font-weight: 800;

    transition:
        background .15s ease,
        color .15s ease,
        border-color .15s ease;
}

.roadbook-internal-link:hover {
    color: #ffffff;
    background: rgba(73, 124, 181, .13);
}

.roadbook-internal-link.is-active {
    border-color: #3c6fa7;

    background:
        linear-gradient(
            135deg,
            #1c4f84,
            #173b67
        );

    color: #ffffff;

    box-shadow:
        inset 0 0 0 1px rgba(255,255,255,.03);
}


.roadbook-internal-back {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 8px 12px;

    border: 1px solid #324f6e;
    border-radius: 10px;

    background: rgba(255,255,255,.03);

    color: #a7bdd3;
    text-decoration: none;

    font-size: .75rem;
    font-weight: 800;

    white-space: nowrap;
}

.roadbook-internal-back:hover {
    color: #ffffff;
    border-color: #4d78a6;
    background: rgba(74, 126, 184, .10);
}


@media (max-width: 760px) {

    .roadbook-internal-nav {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .roadbook-internal-brand {
        padding-right: 0;
        padding-bottom: 8px;
        border-right: 0;
        border-bottom: 1px solid rgba(116,151,190,.20);
    }

    .roadbook-internal-links {
        display: grid;
        grid-template-columns: 1fr;
    }

    .roadbook-internal-link {
        justify-content: flex-start;
    }

    .roadbook-internal-back {
        justify-self: start;
    }

}

/* =========================================
   PACK-234 — ROADBOOK ANALYSIS STATUS
   ========================================= */

.roadbook-history-title-row {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.roadbook-history-title-row h2 {
    margin-bottom: 0;
}

.roadbook-history-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 5px 9px;

    border-radius: 999px;

    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .06em;
}

.roadbook-history-status-current {
    background: rgba(45, 168, 94, .13);
    border: 1px solid rgba(45, 168, 94, .35);
    color: #198344;
}

.roadbook-history-status-replaced {
    background: rgba(120, 133, 148, .12);
    border: 1px solid rgba(120, 133, 148, .30);
    color: #667788;
}

.roadbook-history-replacement {
    margin: 8px 0;
    padding: 9px 11px;

    border-left: 3px solid #9aa8b6;

    background: rgba(115, 130, 145, .07);

    color: #607080;
    font-size: .85rem;
}

.roadbook-history-replacement a {
    font-weight: 800;
}

.roadbook-detail-current,
.roadbook-detail-superseded {
    display: inline-flex;
    align-items: center;
    gap: 8px;

    margin-top: 8px;
    padding: 7px 10px;

    border-radius: 9px;

    font-size: .78rem;
    font-weight: 800;
}

.roadbook-detail-current {
    color: #dffbea;
    background: rgba(45, 168, 94, .18);
    border: 1px solid rgba(77, 201, 126, .30);
}

.roadbook-detail-superseded {
    flex-wrap: wrap;

    color: #e0e6ed;
    background: rgba(120, 133, 148, .18);
    border: 1px solid rgba(160, 175, 190, .25);
}

.roadbook-detail-superseded a {
    color: #ffffff;
    font-weight: 900;
}

/* =========================================
   PACK-235 — ROADBOOK HISTORY FILTERS
   ========================================= */

.roadbook-history-toolbar {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap: 12px;
    margin: 0 0 18px;
}

.roadbook-history-filter {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;

    padding: 14px 16px;

    border: 1px solid #d9e2ec;
    border-radius: 14px;

    background: #ffffff;
    color: #52606d;

    text-decoration: none;
    font-weight: 800;

    transition:
        transform .15s ease,
        border-color .15s ease,
        box-shadow .15s ease;
}

.roadbook-history-filter:hover {
    transform: translateY(-1px);
    border-color: #829ab1;
    box-shadow: 0 7px 20px rgba(0,0,0,.06);
}

.roadbook-history-filter strong {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-width: 31px;
    height: 31px;
    padding: 0 8px;

    border-radius: 999px;

    background: #edf2f7;
    color: #334e68;

    font-size: .82rem;
}

.roadbook-history-filter.is-active {
    border-color: #2680c2;
    background:
        linear-gradient(
            135deg,
            #f0f8ff,
            #ffffff
        );

    color: #186faf;

    box-shadow:
        0 8px 24px
        rgba(38,128,194,.12);
}

.roadbook-history-filter.is-active strong {
    background: #2680c2;
    color: #ffffff;
}

.roadbook-history-empty {
    margin: 0;
    padding: 30px;

    text-align: center;
    color: #829ab1;
}

@media (max-width: 700px) {

    .roadbook-history-toolbar {
        grid-template-columns: 1fr;
    }

}

/* =========================================
   PACK-236 — ROADBOOK ANALYSIS COVERAGE
   ========================================= */

.roadbook-history-coverage {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;

    margin: 10px 0 6px;
}

.roadbook-history-coverage strong {
    color: #243b53;
    font-size: .95rem;
}

.roadbook-history-coverage span {
    display: inline-flex;
    align-items: center;

    padding: 4px 8px;

    border-radius: 8px;
    background: #edf4fb;
    color: #486581;

    font-size: .80rem;
    font-weight: 700;
}

.roadbook-history-import-date {
    margin: 5px 0 8px;
    color: #829ab1;
    font-size: .80rem;
}

/* =========================================
   PACK-237 — ROADBOOK CHRONOLOGICAL HISTORY
   ========================================= */

.roadbook-history-year {
    margin: 0 0 24px;
}

.roadbook-history-year-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;

    margin: 0 0 10px;
    padding: 4px 4px 0;
}

.roadbook-history-year-header h2 {
    margin: 2px 0 0;

    color: #243b53;
    font-size: 1.45rem;
}

.roadbook-history-year-header p {
    margin: 5px 0 0;

    color: #829ab1;
    font-size: .82rem;
}

.roadbook-history-year-kicker {
    color: #829ab1;

    font-size: .66rem;
    font-weight: 900;
    letter-spacing: .11em;
}

.roadbook-history-year-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-width: 42px;
    min-height: 34px;

    padding: 5px 10px;

    border: 1px solid #d9e2ec;
    border-radius: 999px;

    background: #ffffff;
    color: #52606d;

    font-size: .76rem;
    font-weight: 800;
}

.roadbook-history-entry {
    margin-bottom: 1rem;
}

.roadbook-history-entry:last-child {
    margin-bottom: 0;
}

.roadbook-history-legacy {
    margin-top: 30px;
}

.roadbook-history-legacy
.roadbook-history-year-header {
    padding-top: 17px;

    border-top: 1px solid #d9e2ec;
}

.roadbook-history-no-coverage {
    display: inline-flex;

    margin: 9px 0 5px;
    padding: 5px 9px;

    border-radius: 8px;

    background: #f0f4f8;
    color: #627d98;

    font-size: .78rem;
    font-weight: 700;
}

@media (max-width: 700px) {

    .roadbook-history-year-header {
        align-items: flex-start;
    }

}

/* =========================================
   PACK-238 — ROADBOOK ANNUAL HISTORY SUMMARY
   ========================================= */

.roadbook-history-year-summary {
    display: grid;
    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    gap: 10px;
    margin: 0 0 12px;
}

.roadbook-history-year-stat {
    display: flex;
    flex-direction: column;
    gap: 4px;

    padding: 13px 15px;

    border: 1px solid #d9e2ec;
    border-radius: 12px;

    background: #ffffff;
}

.roadbook-history-year-stat span {
    color: #829ab1;

    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.roadbook-history-year-stat strong {
    color: #243b53;

    font-size: 1.18rem;
    font-weight: 900;
}

@media (max-width: 800px) {

    .roadbook-history-year-summary {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

}

@media (max-width: 460px) {

    .roadbook-history-year-summary {
        grid-template-columns: 1fr;
    }

}

/* =========================================
   PACK-239 — ROADBOOK OVERLAP AWARE SUMMARY
   ========================================= */

.roadbook-history-total-warning {
    color: #a96a00 !important;
}

.roadbook-history-overlap-warning {
    display: flex;
    gap: 13px;
    align-items: flex-start;

    margin: 0 0 12px;
    padding: 14px 16px;

    border: 1px solid #f0c36b;
    border-radius: 12px;

    background: #fff9e8;
    color: #6b4b00;
}

.roadbook-history-overlap-icon {
    font-size: 1.25rem;
    line-height: 1;
}

.roadbook-history-overlap-warning strong {
    color: #7c5400;
}

.roadbook-history-overlap-warning p {
    margin: 4px 0 5px;

    color: #7d6222;
    font-size: .84rem;
}

.roadbook-history-overlap-warning small {
    color: #9a7a32;
    font-weight: 700;
}

/* =========================================
   PACK-241 — ROADBOOK CONSOLIDATED TOTALS
   ========================================= */

.roadbook-history-consolidated-notice {
    display: flex;
    align-items: flex-start;
    gap: 13px;

    margin: 0 0 12px;
    padding: 14px 16px;

    border: 1px solid #9ad9b3;
    border-radius: 12px;

    background: #effbf4;
    color: #276749;
}

.roadbook-history-consolidated-icon {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 25px;
    height: 25px;
    flex: 0 0 25px;

    border-radius: 999px;

    background: #d9f5e4;
    color: #207544;

    font-weight: 900;
}

.roadbook-history-consolidated-notice strong {
    color: #1f6f43;
}

.roadbook-history-consolidated-notice p {
    margin: 4px 0 5px;

    color: #397859;
    font-size: .84rem;
}

.roadbook-history-consolidated-notice small {
    color: #5a8c70;
    font-weight: 700;
}

/* =========================================
   PACK-242 — ROADBOOK COVERAGE INTEGRITY
   ========================================= */

.roadbook-coverage-integrity {
    margin: 0 0 18px;
    padding: 18px;

    border: 1px solid #b9dfc8;
    border-radius: 14px;

    background: #f3fbf6;
}

.roadbook-coverage-integrity.is-warning {
    border-color: #efca78;
    background: #fff9e9;
}

.roadbook-coverage-integrity-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;

    margin-bottom: 14px;
}

.roadbook-coverage-integrity-kicker {
    color: #6b8f79;

    font-size: .67rem;
    font-weight: 900;
    letter-spacing: .1em;
}

.roadbook-coverage-integrity-head h2 {
    margin: 4px 0 0;

    color: #243b53;
    font-size: 1.28rem;
}

.roadbook-coverage-integrity-status {
    display: inline-flex;
    align-items: center;

    padding: 7px 11px;

    border-radius: 999px;

    font-size: .76rem;
    font-weight: 900;
    white-space: nowrap;
}

.roadbook-coverage-integrity-status.is-ok {
    background: #ddf5e6;
    color: #237348;
}

.roadbook-coverage-integrity-status.is-warning {
    background: #fff0bf;
    color: #936500;
}

.roadbook-coverage-integrity-stats {
    display: grid;
    grid-template-columns:
        repeat(5, minmax(0, 1fr));

    gap: 9px;
}

.roadbook-coverage-integrity-stats article {
    padding: 11px 12px;

    border: 1px solid rgba(116, 146, 128, .22);
    border-radius: 10px;

    background: rgba(255, 255, 255, .72);
}

.roadbook-coverage-integrity-stats span {
    display: block;

    color: #829ab1;

    font-size: .64rem;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.roadbook-coverage-integrity-stats strong {
    display: block;

    margin-top: 3px;

    color: #243b53;

    font-size: 1.1rem;
    font-weight: 900;
}

.roadbook-coverage-integrity-gaps {
    margin-top: 13px;
    padding-top: 12px;

    border-top: 1px solid #efd58f;

    color: #795c16;
}

.roadbook-coverage-integrity-gap {
    margin-top: 5px;

    font-size: .82rem;
    font-weight: 700;
}

@media (max-width: 900px) {

    .roadbook-coverage-integrity-stats {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

}

@media (max-width: 600px) {

    .roadbook-coverage-integrity-head {
        flex-direction: column;
    }

    .roadbook-coverage-integrity-stats {
        grid-template-columns: 1fr;
    }

}

/* =========================================
   PACK-243 — ROADBOOK ANNUAL TIMELINE
   ========================================= */

.roadbook-annual-timeline {
    margin: 0 0 20px;
    padding: 18px;

    border: 1px solid #d7e4f2;
    border-radius: 14px;

    background: #f7fbff;
}

.roadbook-annual-timeline-heading {
    margin-bottom: 14px;
}

.roadbook-annual-timeline-heading span {
    color: #6d8bac;

    font-size: .67rem;
    font-weight: 900;
    letter-spacing: .1em;
}

.roadbook-annual-timeline-heading h2 {
    margin: 4px 0;

    color: #243b53;
    font-size: 1.28rem;
}

.roadbook-annual-timeline-heading p {
    margin: 0;

    color: #829ab1;
    font-size: .82rem;
}

.roadbook-annual-timeline-years {
    display: grid;

    grid-template-columns:
        repeat(
            auto-fit,
            minmax(300px, 1fr)
        );

    gap: 12px;
}

.roadbook-annual-timeline-year {
    padding: 15px;

    border: 1px solid #d9e6f3;
    border-radius: 12px;

    background: #ffffff;
}

.roadbook-annual-timeline-year-head {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 10px;

    margin-bottom: 12px;
}

.roadbook-annual-timeline-year-head > strong {
    color: #1d4f91;

    font-size: 1.35rem;
    font-weight: 900;
}

.roadbook-annual-timeline-year-head > span {
    padding: 5px 9px;

    border-radius: 999px;

    background: #edf4fb;
    color: #5c7a99;

    font-size: .72rem;
    font-weight: 800;
}

.roadbook-annual-timeline-stats {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 8px;
}

.roadbook-annual-timeline-stats > div {
    padding: 10px;

    border: 1px solid #edf2f7;
    border-radius: 9px;

    background: #fbfdff;
}

.roadbook-annual-timeline-stats span {
    display: block;

    color: #829ab1;

    font-size: .62rem;
    font-weight: 900;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.roadbook-annual-timeline-stats strong {
    display: block;

    margin-top: 3px;

    color: #243b53;
    font-size: 1rem;
    font-weight: 900;
}

@media (max-width: 600px) {

    .roadbook-annual-timeline-years {
        grid-template-columns: 1fr;
    }

    .roadbook-annual-timeline-stats {
        grid-template-columns: 1fr;
    }

}


/* ======================================== */
/* PACK-244 — ANNUAL TIMELINE DETAIL       */
/* ======================================== */
.roadbook-annual-detail {
    max-width: 1500px;
    margin: 0 auto;
}

.roadbook-annual-detail-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 24px;
    margin-bottom: 24px;
}

.roadbook-annual-detail-header h1 {
    margin: 0 0 8px;
    font-size: 2rem;
}

.roadbook-annual-detail-header p {
    max-width: 850px;
}

.roadbook-annual-detail-kicker {
    margin: 0 0 6px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
    opacity: .7;
}

.roadbook-annual-back {
    display: inline-block;
    padding: 10px 14px;
    border: 1px solid rgba(255,255,255,.15);
    border-radius: 10px;
    text-decoration: none;
}

.roadbook-annual-detail-summary {
    display: grid;
    grid-template-columns:
        repeat(auto-fit, minmax(170px, 1fr));
    gap: 12px;
    margin-bottom: 22px;
}

.roadbook-annual-detail-stat {
    padding: 16px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 14px;
    background: rgba(255,255,255,.035);
}

.roadbook-annual-detail-stat span {
    display: block;
    margin-bottom: 5px;
    font-size: .85rem;
    opacity: .7;
}

.roadbook-annual-detail-stat strong {
    font-size: 1.35rem;
}

.roadbook-annual-detail-table-wrap {
    overflow-x: auto;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 14px;
}

.roadbook-annual-detail-table {
    width: 100%;
    border-collapse: collapse;
}

.roadbook-annual-detail-table th,
.roadbook-annual-detail-table td {
    padding: 12px 14px;
    text-align: left;
    border-bottom:
        1px solid rgba(255,255,255,.08);
    vertical-align: middle;
}

.roadbook-annual-detail-table th {
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    opacity: .7;
}

.roadbook-annual-detail-table tbody tr:hover {
    background: rgba(255,255,255,.035);
}

.roadbook-annual-detail-table tbody tr:last-child td {
    border-bottom: 0;
}

.roadbook-annual-source {
    display: inline-block;
    margin: 2px;
    padding: 4px 7px;
    border-radius: 7px;
    background: rgba(255,255,255,.07);
    text-decoration: none;
    font-size: .82rem;
}

.roadbook-annual-detail-footer {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
    margin-top: 18px;
    padding: 15px 18px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 12px;
}

@media (max-width: 700px) {
    .roadbook-annual-detail-header {
        display: block;
    }

    .roadbook-annual-back {
        margin-top: 14px;
    }
}

.roadbook-annual-year-link {
    color: inherit;
    text-decoration: none;
}

.roadbook-annual-year-link:hover {
    text-decoration: underline;
}

/* =========================================
   PACK-244 — CLICKABLE YEAR CARDS
   ========================================= */

.roadbook-annual-year-card {
    display: block;
    color: inherit;
    text-decoration: none;
    cursor: pointer;
    transition:
        transform .15s ease,
        box-shadow .15s ease,
        border-color .15s ease;
}

.roadbook-annual-year-card:hover {
    transform: translateY(-2px);
    border-color: #8fb7df;
    box-shadow: 0 8px 24px rgba(15, 45, 75, .10);
}

.roadbook-annual-year-card:focus-visible {
    outline: 3px solid #4d90d8;
    outline-offset: 3px;
}

.roadbook-annual-year-open {
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px solid #e5edf5;

    color: #1d5fa7;
    font-size: .82rem;
    font-weight: 900;
}

/* =========================================
   PACK-245 — ROADBOOK YEAR NAVIGATION
   ========================================= */

.roadbook-year-navigation {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 16px;

    margin: 0 0 22px;
    padding: 14px 16px;

    border: 1px solid rgba(255,255,255,.12);
    border-radius: 14px;

    background: rgba(255,255,255,.025);
}

.roadbook-year-navigation-side {
    display: flex;
    justify-content: flex-start;
}

.roadbook-year-navigation-side-right {
    justify-content: flex-end;
}

.roadbook-year-navigation-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-width: 105px;
    padding: 10px 15px;

    border: 1px solid rgba(255,255,255,.15);
    border-radius: 10px;

    color: inherit;
    text-decoration: none;
    font-weight: 800;

    transition:
        transform .15s ease,
        border-color .15s ease,
        box-shadow .15s ease;
}

.roadbook-year-navigation-button:hover {
    transform: translateY(-1px);
    border-color: #8fb7df;
    box-shadow: 0 6px 18px rgba(15,45,75,.10);
}

.roadbook-year-navigation-button:focus-visible {
    outline: 3px solid #4d90d8;
    outline-offset: 3px;
}

.roadbook-year-navigation-current {
    text-align: center;
}

.roadbook-year-navigation-current span {
    display: block;
    margin-bottom: 2px;

    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    opacity: .65;
}

.roadbook-year-navigation-current strong {
    font-size: 1.35rem;
}

@media (max-width: 650px) {

    .roadbook-year-navigation {
        grid-template-columns: 1fr 1fr;
    }

    .roadbook-year-navigation-current {
        grid-column: 1 / -1;
        grid-row: 1;
        margin-bottom: 4px;
    }

}

/* =========================================
   PACK-246 — ROADBOOK MONTH NAVIGATION
   ========================================= */

.roadbook-month-navigation {
    margin: 0 0 18px;
    padding: 14px 16px;

    border: 1px solid #d8e4ef;
    border-radius: 14px;

    background: #f8fbfe;
}

.roadbook-month-navigation-label {
    margin-bottom: 10px;

    color: #6f8295;

    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.roadbook-month-navigation-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.roadbook-month-navigation-button {
    display: inline-flex;
    align-items: center;
    gap: 8px;

    padding: 8px 11px;

    border: 1px solid #d7e3ef;
    border-radius: 10px;

    background: #ffffff;
    color: #315b83;

    text-decoration: none;

    transition:
        transform .15s ease,
        border-color .15s ease,
        box-shadow .15s ease;
}

.roadbook-month-navigation-button:hover {
    transform: translateY(-1px);

    border-color: #8fb7df;

    box-shadow:
        0 5px 15px
        rgba(25, 75, 120, .08);
}

.roadbook-month-navigation-button strong {
    font-size: .85rem;
}

.roadbook-month-navigation-button span {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-width: 24px;
    height: 24px;
    padding: 0 6px;

    border-radius: 999px;

    background: #edf4fb;

    color: #547493;

    font-size: .72rem;
    font-weight: 900;
}

.roadbook-month-section-row td {
    padding: 0 !important;

    border-bottom: 0 !important;

    background: #eef5fb;
}

.roadbook-month-section {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;

    padding: 12px 15px;

    border-top: 1px solid #d4e2ef;
    border-bottom: 1px solid #d4e2ef;

    scroll-margin-top: 90px;
}

.roadbook-month-section > div:first-child {
    display: flex;
    align-items: baseline;
    gap: 9px;
}

.roadbook-month-section strong {
    color: #244f79;

    font-size: 1rem;
    font-weight: 900;
}

.roadbook-month-section > div:first-child span {
    color: #73889c;

    font-size: .78rem;
    font-weight: 800;
}

.roadbook-month-section-stats {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 6px;
}

.roadbook-month-section-stats span {
    padding: 4px 8px;

    border-radius: 999px;

    background: #ffffff;
    color: #607b96;

    font-size: .72rem;
    font-weight: 800;
}

@media (max-width: 700px) {

    .roadbook-month-section {
        align-items: flex-start;
        flex-direction: column;
    }

    .roadbook-month-section-stats {
        justify-content: flex-start;
    }

}

/* =========================================
   PACK-247 — MONTHLY CONSOLIDATED SUMMARY
   ========================================= */

.roadbook-month-summary {
    padding: 15px 16px 16px;
    border-top: 1px solid #d4e2ef;
    border-bottom: 1px solid #d4e2ef;
    background: linear-gradient(135deg,#f4f9fd 0%,#edf5fb 100%);
    scroll-margin-top: 90px;
}

.roadbook-month-summary-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 12px;
}

.roadbook-month-summary-head > div {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 9px;
}

.roadbook-month-summary-head strong {
    color: #244f79;
    font-size: 1.05rem;
    font-weight: 900;
}

.roadbook-month-summary-head > div > span {
    color: #73889c;
    font-size: .78rem;
    font-weight: 800;
}

.roadbook-month-summary-status {
    display: inline-flex;
    align-items: center;
    padding: 5px 9px;
    border: 1px solid #c8deef;
    border-radius: 999px;
    background: #fff;
    color: #4c7396;
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.roadbook-month-summary-grid {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 8px;
}

.roadbook-month-summary-stat {
    min-width: 0;
    padding: 9px 11px;
    border: 1px solid #d8e5f0;
    border-radius: 10px;
    background: rgba(255,255,255,.88);
}

.roadbook-month-summary-stat span {
    display: block;
    margin-bottom: 3px;
    color: #788da1;
    font-size: .65rem;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.roadbook-month-summary-stat strong {
    display: block;
    color: #244f79;
    font-size: .95rem;
    font-weight: 900;
}

@media (max-width:760px) {
    .roadbook-month-summary-grid {
        grid-template-columns: repeat(2,minmax(0,1fr));
    }
}

@media (max-width:480px) {
    .roadbook-month-summary-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .roadbook-month-summary-grid {
        grid-template-columns: 1fr;
    }
}

/* =========================================
   PACK-248 — MONTH/YEAR RECONCILIATION
   ========================================= */

.roadbook-reconciliation-status {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 14px;

    margin: 0 0 18px;
    padding: 14px 16px;

    border: 1px solid #c8dfd1;
    border-radius: 14px;

    background: #f3fbf6;
}

.roadbook-reconciliation-status.is-warning {
    border-color: #ecd28c;
    background: #fff9ea;
}

.roadbook-reconciliation-icon {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 36px;
    height: 36px;

    border-radius: 999px;

    background: #dff3e6;
    color: #25734a;

    font-size: 1rem;
    font-weight: 900;
}

.roadbook-reconciliation-status.is-warning
.roadbook-reconciliation-icon {
    background: #fff0c3;
    color: #8b6500;
}

.roadbook-reconciliation-content strong {
    display: block;

    color: #315e46;

    font-size: .9rem;
    font-weight: 900;
}

.roadbook-reconciliation-status.is-warning
.roadbook-reconciliation-content strong {
    color: #7e5a00;
}

.roadbook-reconciliation-content span {
    display: block;

    margin-top: 2px;

    color: #728777;

    font-size: .78rem;
}

.roadbook-reconciliation-checks {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 6px;
}

.roadbook-reconciliation-checks span {
    padding: 5px 8px;

    border-radius: 999px;

    font-size: .68rem;
    font-weight: 900;
}

.roadbook-reconciliation-checks .is-ok {
    background: #dff3e6;
    color: #26724a;
}

.roadbook-reconciliation-checks .is-error {
    background: #ffe1df;
    color: #a33d37;
}

@media (max-width: 850px) {

    .roadbook-reconciliation-status {
        grid-template-columns: auto 1fr;
    }

    .roadbook-reconciliation-checks {
        grid-column: 1 / -1;
        justify-content: flex-start;
    }

}

/* =========================================
   PACK-249 — ANNUAL RECONCILIATION OVERVIEW
   ========================================= */

.roadbook-annual-year-head-meta {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 7px;
}

.roadbook-annual-year-head-meta > span:first-child {
    padding: 5px 9px;

    border-radius: 999px;

    background: #edf4fb;
    color: #5c7a99;

    font-size: .72rem;
    font-weight: 800;
}

.roadbook-annual-reconciliation-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 5px 9px;

    border: 1px solid transparent;
    border-radius: 999px;

    font-size: .68rem;
    font-weight: 900;

    letter-spacing: .02em;
}

.roadbook-annual-reconciliation-badge.is-ok {
    border-color: #c5e3d0;
    background: #eaf8ef;
    color: #28734a;
}

.roadbook-annual-reconciliation-badge.is-warning {
    border-color: #edd38d;
    background: #fff6d9;
    color: #876200;
}

@media (max-width: 600px) {

    .roadbook-annual-timeline-year-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .roadbook-annual-year-head-meta {
        justify-content: flex-start;
    }

}

/* =========================================
   PACK-251 — ROADBOOK HEALTH SUMMARY
   ========================================= */

.roadbook-health-summary {
    display: grid;
    grid-template-columns: minmax(280px, .9fr) 1.6fr;
    align-items: center;
    gap: 20px;

    margin: 0 0 18px;
    padding: 18px;

    border: 1px solid #c6e2d0;
    border-radius: 16px;

    background:
        linear-gradient(
            135deg,
            #f2fbf5 0%,
            #f8fcfa 100%
        );
}

.roadbook-health-summary.is-warning {
    border-color: #ead28e;

    background:
        linear-gradient(
            135deg,
            #fff8e5 0%,
            #fffdf7 100%
        );
}

.roadbook-health-summary-main {
    display: flex;
    align-items: center;
    gap: 13px;
}

.roadbook-health-summary-icon {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;

    width: 44px;
    height: 44px;

    border-radius: 999px;

    background: #dff4e6;
    color: #237449;

    font-size: 1.15rem;
    font-weight: 900;
}

.roadbook-health-summary.is-warning
.roadbook-health-summary-icon {
    background: #fff0c5;
    color: #896400;
}

.roadbook-health-summary-kicker {
    display: block;

    margin-bottom: 2px;

    color: #568169;

    font-size: .68rem;
    font-weight: 900;

    letter-spacing: .08em;
}

.roadbook-health-summary h2 {
    margin: 0;

    color: #285d40;

    font-size: 1.08rem;
}

.roadbook-health-summary.is-warning h2 {
    color: #805e08;
}

.roadbook-health-summary p {
    margin: 3px 0 0;

    color: #72887a;

    font-size: .76rem;
}

.roadbook-health-summary-checks {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 7px;
}

.roadbook-health-check {
    display: inline-flex;
    align-items: center;
    gap: 5px;

    padding: 6px 9px;

    border-radius: 999px;

    font-size: .68rem;
    font-weight: 900;
}

.roadbook-health-check.is-ok {
    background: #dff4e6;
    color: #28734b;
}

.roadbook-health-check.is-error {
    background: #ffe1df;
    color: #a23e38;
}

@media (max-width: 900px) {

    .roadbook-health-summary {
        grid-template-columns: 1fr;
    }

    .roadbook-health-summary-checks {
        justify-content: flex-start;
    }

}

/* =========================================
   FIX — ROADBOOK CALENDAR MONTH TITLE
   Contraste du mois / année sur fond clair
   ========================================= */

.roadbook-calendar-page .roadbook-month-title h2 {
    color: #123f73;
}


/* =========================================
   ROADBOOK — RÉSUMÉ JOURNÉE
   ========================================= */

.roadbook-day-summary {
    margin-bottom: 24px;
    overflow: hidden;
    border: 1px solid #d7e3ef;
    border-radius: 18px;
    background: linear-gradient(
        135deg,
        #f7fbff 0%,
        #ffffff 55%,
        #f4f8fd 100%
    );
    box-shadow:
        0 10px 35px rgba(18, 47, 82, .08);
}

.roadbook-day-summary-heading {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 22px;
    border-bottom: 1px solid #e4ebf3;
    background: #f7faff;
}

.roadbook-day-summary-heading > span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 11px;
    background: #ffffff;
    font-size: 1.15rem;
    box-shadow:
        0 3px 12px rgba(30, 68, 110, .08);
}

.roadbook-day-summary-heading small {
    display: block;
    color: #2458a6;
    font-size: .62rem;
    font-weight: 900;
    letter-spacing: .08em;
}

.roadbook-day-summary-heading strong {
    display: block;
    margin-top: 2px;
    color: #173f79;
    font-size: .95rem;
    font-weight: 900;
}

.roadbook-day-summary-metrics {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
}

.roadbook-day-summary-metric {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 72px;
    padding: 14px 20px;
    border-right: 1px solid #e4ebf3;
}

.roadbook-day-summary-metric:last-child {
    border-right: 0;
}

.roadbook-day-summary-metric > span {
    font-size: 1.25rem;
}

.roadbook-day-summary-metric small {
    display: block;
    color: #7a8da2;
    font-size: .58rem;
    font-weight: 900;
    letter-spacing: .06em;
}

.roadbook-day-summary-metric strong {
    display: block;
    margin-top: 3px;
    color: #2458a6;
    font-size: 1.05rem;
    font-weight: 900;
    letter-spacing: .02em;
}

.roadbook-day-summary-total {
    background: rgba(36, 88, 166, .035);
}

.roadbook-day-summary-total strong {
    color: #173f79;
    font-size: 1.15rem;
}

@media (max-width: 700px) {

    .roadbook-day-summary-metrics {
        grid-template-columns: 1fr;
    }

    .roadbook-day-summary-metric {
        border-right: 0;
        border-bottom: 1px solid #e4ebf3;
    }

    .roadbook-day-summary-metric:last-child {
        border-bottom: 0;
    }

}


/* =========================================
   ROADBOOK — BILAN HEBDOMADAIRE
   ========================================= */

.roadbook-week-summary {
    margin-top: -10px;
    margin-bottom: 24px;
    overflow: hidden;
    border: 1px solid #d7e3ef;
    border-radius: 16px;
    background: #ffffff;
    box-shadow:
        0 8px 28px rgba(18, 47, 82, .07);
}

.roadbook-week-summary-title {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 11px 20px;
    border-bottom: 1px solid #e4ebf3;
    background: #f7faff;
}

.roadbook-week-summary-title > span {
    font-size: 1.05rem;
}

.roadbook-week-summary-title small {
    display: block;
    color: #2458a6;
    font-size: .58rem;
    font-weight: 900;
    letter-spacing: .07em;
}

.roadbook-week-summary-title strong {
    display: block;
    margin-top: 1px;
    color: #173f79;
    font-size: .78rem;
    font-weight: 900;
}

.roadbook-week-summary-metrics {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
}

.roadbook-week-summary-metrics > div {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 62px;
    padding: 10px 18px;
    border-right: 1px solid #e4ebf3;
}

.roadbook-week-summary-metrics > div:last-child {
    border-right: 0;
}

.roadbook-week-summary-metrics > div > span {
    font-size: 1.05rem;
}

.roadbook-week-summary-metrics small {
    display: block;
    color: #8292a3;
    font-size: .53rem;
    font-weight: 900;
    letter-spacing: .05em;
}

.roadbook-week-summary-metrics strong {
    display: block;
    margin-top: 2px;
    color: #2458a6;
    font-size: .9rem;
    font-weight: 900;
}

.roadbook-week-summary-total {
    background: rgba(36, 88, 166, .035);
}

.roadbook-week-summary-total strong {
    color: #173f79;
    font-size: 1rem;
}

@media (max-width: 700px) {

    .roadbook-week-summary-metrics {
        grid-template-columns: 1fr;
    }

    .roadbook-week-summary-metrics > div {
        border-right: 0;
        border-bottom: 1px solid #e4ebf3;
    }

    .roadbook-week-summary-metrics > div:last-child {
        border-bottom: 0;
    }

}

