:root {
    --jmrp-green: #58b83f;
    --jmrp-green-dark: #43952e;
    --jmrp-green-soft: #edf8e9;
    --jmrp-ink: #233038;
    --jmrp-text: #33424a;
    --jmrp-muted: #6f7c84;
    --jmrp-border: #dbe3dd;
    --jmrp-surface: #ffffff;
    --jmrp-surface-soft: #f5f8f5;
    --jmrp-bg: #f3f6f3;
    --danger: #b42318;
    font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: var(--jmrp-text);
    background: var(--jmrp-bg);
    font-synthesis: none;
}

* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; background: var(--jmrp-bg); }
body { min-width: 320px; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }

.app-shell { min-height: 100vh; padding-bottom: 90px; }
.topbar {
    height: 84px;
    background: rgba(255,255,255,.95);
    border-bottom: 1px solid var(--jmrp-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 24px;
    position: sticky;
    top: 0;
    z-index: 20;
    backdrop-filter: blur(16px);
    box-shadow: 0 10px 28px rgba(26,35,32,.05);
}
.brand { display: flex; align-items: center; gap: 14px; min-width: 0; }
.brand-logo { height: 46px; width: auto; display: block; }
.brand-text { min-width: 0; }
.brand-text strong {
    display: block;
    color: var(--jmrp-ink);
    letter-spacing: .01em;
    font-size: 16px;
}
.brand-text small {
    display: block;
    margin-top: 2px;
    color: var(--jmrp-muted);
    font-size: 12px;
}
.status-pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 40px;
    padding: 0 14px;
    border-radius: 999px;
    background: var(--jmrp-surface-soft);
    color: var(--jmrp-text);
    border: 1px solid var(--jmrp-border);
    font-size: 12px;
    font-weight: 700;
}
.status-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--jmrp-green);
    box-shadow: 0 0 0 4px rgba(88,184,63,.16);
}
.content { max-width: 1080px; margin: 0 auto; padding: 30px 20px 40px; }

.hero { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.hero-card {
    background: linear-gradient(135deg, #ffffff 0%, #f7fbf6 100%);
    border: 1px solid var(--jmrp-border);
    border-radius: 26px;
    padding: 24px;
    box-shadow: 0 10px 28px rgba(35,48,56,.05);
    margin-bottom: 18px;
}
.hero h1, .page-heading h1 { margin: 5px 0 5px; font-size: clamp(28px, 6vw, 38px); letter-spacing: -.035em; line-height: 1.05; color: var(--jmrp-ink); }
.hero p, .page-heading p { margin: 0; color: var(--jmrp-muted); font-size: 14px; max-width: 650px; }
.eyebrow { color: var(--jmrp-green-dark); font-size: 11px; text-transform: uppercase; letter-spacing: .12em; font-weight: 800; }
.section-kicker { color: var(--jmrp-green-dark); font-size: 11px; text-transform: uppercase; letter-spacing: .12em; font-weight: 800; display: block; margin-bottom: 4px; }
.avatar {
    flex: 0 0 auto;
    width: 60px;
    height: 60px;
    border-radius: 18px;
    display: grid;
    place-items: center;
    background: var(--jmrp-green-soft);
    color: var(--jmrp-green-dark);
    font-weight: 900;
    font-size: 20px;
    border: 1px solid rgba(88,184,63,.22);
}

.progress-card {
    background: linear-gradient(135deg, var(--jmrp-green-dark) 0%, var(--jmrp-green) 100%);
    color: white;
    border-radius: 24px;
    padding: 24px;
    box-shadow: 0 18px 40px rgba(67,149,46,.26);
}
.progress-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.muted-light { color: rgba(255,255,255,.84); font-size: 12px; }
.big-number { font-size: 38px; font-weight: 800; margin-top: 3px; letter-spacing: -.04em; }
.target { color: rgba(255,255,255,.92); font-size: 12px; background: rgba(255,255,255,.15); padding: 8px 10px; border-radius: 12px; border: 1px solid rgba(255,255,255,.2); }
.target strong { color: white; }
.progress-track { height: 10px; border-radius: 999px; background: rgba(255,255,255,.24); margin: 20px 0 9px; overflow: hidden; }
.progress-fill { height: 100%; min-width: 2px; background: white; border-radius: inherit; transition: width .25s ease; }
.progress-foot { display: flex; justify-content: space-between; color: rgba(255,255,255,.95); font-size: 12px; }

.stats-grid { display: grid; gap: 12px; grid-template-columns: repeat(3, 1fr); margin: 16px 0 24px; }
.stat-card {
    background: var(--jmrp-surface);
    border: 1px solid var(--jmrp-border);
    border-radius: 20px;
    padding: 18px;
    box-shadow: 0 4px 16px rgba(35,48,56,.04);
}
.stat-card small, .stat-card strong, .stat-card span { display: block; }
.stat-card small { color: var(--jmrp-muted); font-size: 11px; text-transform: uppercase; letter-spacing: .08em; }
.stat-card strong { color: var(--jmrp-ink); font-size: 28px; margin: 8px 0 4px; letter-spacing: -.03em; }
.stat-card span { color: var(--jmrp-muted); font-size: 12px; }

.quick-grid { display: grid; gap: 12px; grid-template-columns: 1fr 1fr; margin: 18px 0 28px; }
.quick-card {
    min-height: 96px;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 13px;
    padding: 18px;
    border-radius: 20px;
    background: var(--jmrp-surface);
    border: 1px solid var(--jmrp-border);
    box-shadow: 0 4px 16px rgba(35,48,56,.04);
    transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.quick-card:hover { border-color: rgba(88,184,63,.35); transform: translateY(-1px); box-shadow: 0 8px 20px rgba(35,48,56,.06); }
.quick-icon {
    width: 42px;
    height: 42px;
    border-radius: 14px;
    background: var(--jmrp-green-soft);
    color: var(--jmrp-green-dark);
    display: grid;
    place-items: center;
    font-weight: 900;
    font-size: 22px;
}
.quick-card strong, .quick-card small { display: block; }
.quick-card strong { font-size: 14px; color: var(--jmrp-ink); }
.quick-card small { margin-top: 3px; color: var(--jmrp-muted); font-size: 12px; }
.quick-card .arrow { color: #9aa7ad; font-size: 24px; }
.primary-card { background: linear-gradient(135deg, #ffffff 0%, #f7fbf6 100%); }
.primary-card .quick-icon { background: linear-gradient(135deg, var(--jmrp-green-dark) 0%, var(--jmrp-green) 100%); color: white; }

.section-block { margin-top: 8px; }
.section-title-row { display: flex; align-items: end; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.section-title-row h2 { margin: 0; font-size: 20px; color: var(--jmrp-ink); }
.section-title-row a { color: var(--jmrp-green-dark); font-size: 13px; font-weight: 800; }
.entry-list { display: grid; gap: 10px; }
.entry-card {
    position: relative;
    display: flex;
    gap: 12px;
    align-items: center;
    overflow: hidden;
    background: var(--jmrp-surface);
    border: 1px solid var(--jmrp-border);
    border-radius: 18px;
    min-height: 86px;
    padding: 14px 14px 14px 18px;
    box-shadow: 0 4px 16px rgba(35,48,56,.04);
}
.entry-accent { position: absolute; left: 0; top: 14px; bottom: 14px; width: 4px; background: linear-gradient(180deg, var(--jmrp-green) 0%, var(--jmrp-green-dark) 100%); border-radius: 0 6px 6px 0; }
.entry-main { min-width: 0; flex: 1; }
.entry-top { display: flex; justify-content: space-between; align-items: center; gap: 15px; }
.entry-top strong { font-size: 13px; color: var(--jmrp-ink); }
.entry-top span { font-weight: 800; font-size: 14px; color: var(--jmrp-ink); }
.entry-label { margin: 4px 0 3px; color: var(--jmrp-text); font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.entry-card small { color: var(--jmrp-muted); font-size: 11px; }
.sync-badge { flex: 0 0 auto; padding: 5px 8px; border-radius: 999px; font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.sync-badge.pending { color: var(--jmrp-green-dark); background: var(--jmrp-green-soft); border: 1px solid rgba(88,184,63,.22); }
.empty-inline { padding: 22px; text-align: center; border: 1px dashed #c7d3cb; border-radius: 16px; color: var(--jmrp-muted); font-size: 13px; background: rgba(255,255,255,.55); }

.page-heading { margin: 2px 0 22px; }
.page-heading.compact { margin-bottom: 16px; }
.form-card {
    display: grid;
    gap: 18px;
    background: var(--jmrp-surface);
    border: 1px solid var(--jmrp-border);
    border-radius: 24px;
    padding: 22px;
    margin-bottom: 14px;
    box-shadow: 0 8px 26px rgba(35,48,56,.05);
}
.form-card-header { display: flex; align-items: start; justify-content: space-between; gap: 12px; }
.form-card-header h2 { margin: 0; font-size: 20px; color: var(--jmrp-ink); }
.helper-badge {
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    padding: 0 12px;
    border-radius: 999px;
    background: var(--jmrp-green-soft);
    color: var(--jmrp-green-dark);
    font-weight: 800;
    font-size: 12px;
    border: 1px solid rgba(88,184,63,.22);
}
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.form-group-full { grid-column: 1 / -1; }
.form-group label { display: block; margin-bottom: 7px; font-size: 12px; font-weight: 750; color: var(--jmrp-text); }
.form-group { min-width: 0; }
.date-form-group {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
}
.date-input {
    display: block;
    width: 100%;
    inline-size: 100%;
    min-width: 0;
    min-inline-size: 0;
    max-width: 100%;
    max-inline-size: 100%;
    box-sizing: border-box;
    -webkit-appearance: none;
    appearance: none;
    overflow: hidden;
}
.date-input::-webkit-date-and-time-value {
    min-width: 0;
    text-align: left;
}
.date-input::-webkit-datetime-edit {
    min-width: 0;
    padding: 0;
}
@supports (-webkit-touch-callout: none) {
    .date-form-group .date-input {
        width: -webkit-fill-available;
        max-width: -webkit-fill-available;
        min-width: 0;
    }
}
.optional { color: #8b989f; font-weight: 500; }
.input {
    width: 100%;
    min-height: 50px;
    border: 1px solid #ced8d1;
    border-radius: 14px;
    padding: 11px 13px;
    background: #fff;
    color: var(--jmrp-ink);
    outline: none;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.input:focus { border-color: var(--jmrp-green); box-shadow: 0 0 0 3px rgba(88,184,63,.12); }
.textarea { min-height: 110px; resize: vertical; }
.hint { display: block; color: var(--jmrp-muted); margin-top: 6px; font-size: 11px; }
.duration-row { display: flex; flex-wrap: wrap; gap: 8px; }
.duration-chip {
    padding: 9px 12px;
    border-radius: 999px;
    border: 1px solid #ced8d1;
    background: white;
    color: var(--jmrp-text);
    font-size: 11px;
    font-weight: 800;
}
.duration-chip.selected { background: var(--jmrp-green-dark); color: white; border-color: var(--jmrp-green-dark); }
.btn {
    display: inline-flex;
    min-height: 50px;
    padding: 0 18px;
    border-radius: 14px;
    align-items: center;
    justify-content: center;
    border: 0;
    font-weight: 800;
    font-size: 13px;
}
.btn.primary { background: linear-gradient(135deg, var(--jmrp-green-dark) 0%, var(--jmrp-green) 100%); color: white; box-shadow: 0 10px 24px rgba(67,149,46,.22); }
.btn.secondary { background: white; color: var(--jmrp-text); border: 1px solid var(--jmrp-border); }
.btn.full { width: 100%; }
.action-bar { display: flex; gap: 12px; flex-wrap: wrap; }
.success-banner, .error-banner { padding: 13px 15px; border-radius: 14px; font-size: 12px; margin: 0 0 14px; }
.success-banner { background: #ecfdf3; color: #027a48; border: 1px solid #abefc6; }
.error-banner { background: #fef3f2; color: #b42318; border: 1px solid #fecdca; }

.summary-strip {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    background: var(--jmrp-surface);
    border: 1px solid var(--jmrp-border);
    border-radius: 20px;
    padding: 16px 8px;
    margin-bottom: 23px;
    box-shadow: 0 6px 22px rgba(35,48,56,.04);
}
.summary-strip div { padding: 0 12px; border-right: 1px solid var(--jmrp-border); }
.summary-strip div:last-child { border-right: 0; }
.summary-strip small, .summary-strip strong { display: block; }
.summary-strip small { color: var(--jmrp-muted); font-size: 10px; margin-bottom: 5px; text-transform: uppercase; letter-spacing: .08em; }
.summary-strip strong { font-size: 18px; color: var(--jmrp-ink); }
.history-day { margin-top: 22px; }
.history-day-head { display: flex; justify-content: space-between; align-items: end; margin-bottom: 9px; padding: 0 2px; }
.history-day-head strong, .history-day-head small { display: block; }
.history-day-head strong { font-size: 14px; text-transform: capitalize; color: var(--jmrp-ink); }
.history-day-head small { color: var(--jmrp-muted); font-size: 10px; margin-top: 3px; }
.history-day-head > span { font-size: 14px; font-weight: 800; color: var(--jmrp-ink); }
.history-entry { padding-right: 10px; }
.icon-button { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; border: 0; background: #f3f4f6; font-size: 20px; }
.icon-button.danger { color: var(--danger); }
.empty-state { max-width: 420px; margin: 50px auto; text-align: center; color: var(--jmrp-muted); }
.empty-state h1, .empty-state h2 { color: var(--jmrp-ink); }
.empty-icon { width: 64px; height: 64px; margin: 0 auto 16px; border-radius: 20px; display: grid; place-items: center; background: var(--jmrp-green-soft); color: var(--jmrp-green-dark); font-weight: 900; font-size: 20px; }
.loading-card {
    padding: 40px;
    text-align: center;
    color: var(--jmrp-muted);
    background: var(--jmrp-surface);
    border-radius: 20px;
    border: 1px solid var(--jmrp-border);
}

.bottom-nav {
    position: fixed;
    z-index: 30;
    left: 50%;
    bottom: max(12px, env(safe-area-inset-bottom));
    transform: translateX(-50%);
    width: min(520px, calc(100% - 24px));
    height: 70px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    align-items: stretch;
    background: rgba(255,255,255,.96);
    backdrop-filter: blur(15px);
    border-radius: 22px;
    padding: 8px;
    border: 1px solid var(--jmrp-border);
    box-shadow: 0 18px 35px rgba(35,48,56,.12);
}
.bottom-nav a {
    display: flex;
    flex-direction: column;
    gap: 2px;
    align-items: center;
    justify-content: center;
    color: var(--jmrp-muted);
    font-size: 10px;
    border-radius: 15px;
    font-weight: 700;
}
.bottom-nav a.active { color: var(--jmrp-green-dark); background: var(--jmrp-green-soft); }
.nav-icon { font-size: 17px; line-height: 1; }
.nav-icon.plus { font-size: 22px; font-weight: 800; }

.boot-loader { min-height: 100vh; display: flex; flex-direction: column; gap: 12px; align-items: center; justify-content: center; color: var(--jmrp-muted); font-size: 12px; background:#ffffff; padding:24px; }
.boot-logo-image { width: min(82vw, 340px); height: auto; object-fit: contain; display: block; }
.boot-loader strong { color: var(--jmrp-ink); letter-spacing: .09em; font-size: 15px; }
#blazor-error-ui { background: #fef3f2; bottom: 0; box-shadow: 0 -1px 8px rgba(0,0,0,.15); display: none; left: 0; padding: .8rem 1.25rem; position: fixed; width: 100%; z-index: 1000; color: #b42318; }
#blazor-error-ui .dismiss { cursor: pointer; position: absolute; right: .75rem; top: .5rem; }

@media (max-width: 780px) {
    .content { padding: 22px 14px 38px; }
    .topbar { height: 78px; padding: 0 14px; }
    .brand-logo { height: 40px; }
    .status-pill { padding: 0 10px; font-size: 11px; }
    .stats-grid, .quick-grid, .form-grid { grid-template-columns: 1fr; }
    .summary-strip { grid-template-columns: 1fr; gap: 8px; }
    .summary-strip div { border-right: 0; border-bottom: 1px solid var(--jmrp-border); padding: 6px 12px; }
    .summary-strip div:last-child { border-bottom: 0; }
    .hero { align-items: flex-start; }
}

@media (max-width: 640px) {
    .hero-card, .progress-card, .form-card { padding: 18px; border-radius: 20px; }
    .date-form-group { width: 100%; max-width: 100%; min-width: 0; }
    .date-input { width: 100%; inline-size: 100%; min-width: 0; max-width: 100%; max-inline-size: 100%; }
    .hero { flex-direction: column; align-items: flex-start; }
    .hero h1, .page-heading h1 { font-size: 28px; }
    .brand-text small { font-size: 11px; }
    .status-pill span:last-child { display: none; }
    .progress-head { flex-direction: column; }
    .action-bar { display: grid; grid-template-columns: 1fr; }
    .btn { width: 100%; }
}

/* =========================
   V3 - Interface professionnelle
   ========================= */
.auth-shell { min-height: 100vh; background: #f3f6f3; }
.login-page { min-height: 100vh; display: grid; grid-template-columns: minmax(360px, .92fr) minmax(440px, 1.08fr); }
.login-brand-panel {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 58px;
    overflow: hidden;
    color: white;
    background:
        radial-gradient(circle at 12% 16%, rgba(255,255,255,.14), transparent 34%),
        radial-gradient(circle at 90% 82%, rgba(255,255,255,.09), transparent 30%),
        linear-gradient(145deg, #253038 0%, #303f47 58%, #438f32 145%);
}
.login-brand-panel::after {
    content: "";
    position: absolute;
    width: 360px;
    height: 360px;
    right: -160px;
    bottom: -170px;
    border-radius: 50%;
    border: 1px solid rgba(255,255,255,.14);
    box-shadow: 0 0 0 70px rgba(255,255,255,.025), 0 0 0 140px rgba(255,255,255,.02);
}
.login-brand-content, .login-brand-footer { position: relative; z-index: 1; }
.login-logo { width: min(310px, 82%); height: auto; background: white; border-radius: 22px; padding: 18px 20px; box-shadow: 0 20px 50px rgba(0,0,0,.18); }
.login-brand-copy { margin-top: 58px; max-width: 540px; }
.login-brand-copy > span { display: block; font-size: 11px; font-weight: 800; letter-spacing: .16em; color: rgba(255,255,255,.68); }
.login-brand-copy h1 { margin: 12px 0 12px; font-size: clamp(38px, 5vw, 62px); letter-spacing: -.045em; line-height: .98; }
.login-brand-copy p { margin: 0; max-width: 460px; color: rgba(255,255,255,.75); font-size: 16px; line-height: 1.55; }
.login-brand-footer { color: rgba(255,255,255,.55); font-size: 11px; letter-spacing: .04em; }
.login-form-panel { display: grid; place-items: center; padding: 42px; background: #f6f8f6; }
.login-card { width: min(460px, 100%); background: white; border: 1px solid var(--jmrp-border); border-radius: 28px; padding: 38px; box-shadow: 0 24px 60px rgba(35,48,56,.09); }
.login-mobile-logo { display: none; }
.login-card h2 { margin: 6px 0 8px; color: var(--jmrp-ink); font-size: 34px; letter-spacing: -.035em; }
.login-intro { margin: 0 0 28px; color: var(--jmrp-muted); font-size: 14px; }
.login-fields { display: grid; gap: 18px; }
.login-button { margin-top: 20px; }
.demo-note { margin-top: 22px; padding: 14px 15px; border-radius: 14px; background: var(--jmrp-surface-soft); border: 1px solid var(--jmrp-border); }
.demo-note strong, .demo-note span { display: block; }
.demo-note strong { color: var(--jmrp-ink); font-size: 11px; text-transform: uppercase; letter-spacing: .08em; }
.demo-note span { color: var(--jmrp-muted); font-size: 11px; line-height: 1.45; margin-top: 5px; }

.desktop-shell { padding-bottom: 88px; }
.sidebar { display: none; }
.main-column { min-width: 0; }
.topbar {
    height: 74px;
    padding: 0 16px;
    background: rgba(255,255,255,.96);
    border-bottom: 1px solid var(--jmrp-border);
    box-shadow: 0 8px 24px rgba(35,48,56,.035);
}
.mobile-brand { display: block; min-width: 0; }
.mobile-brand img { display: block; width: 116px; height: auto; }
.topbar-title { display: none; }
.user-chip { margin-left: auto; display: flex; align-items: center; gap: 9px; min-width: 0; }
.user-avatar { width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center; background: var(--jmrp-green-soft); color: var(--jmrp-green-dark); font-size: 12px; font-weight: 900; border: 1px solid rgba(88,184,63,.2); }
.user-copy { display: none; }
.mobile-logout { width: 34px; height: 34px; border: 1px solid var(--jmrp-border); background: white; color: var(--jmrp-muted); border-radius: 10px; font-size: 20px; line-height: 1; }

.bottom-nav svg, .sidebar-nav svg, .sidebar-logout svg, .week-icon svg, .mini-stat-icon svg { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.bottom-nav svg { width: 20px; height: 20px; }
.bottom-main-action .bottom-plus { width: 36px; height: 36px; border-radius: 12px; display: grid; place-items: center; color: white; background: linear-gradient(135deg, var(--jmrp-green-dark), var(--jmrp-green)); box-shadow: 0 8px 18px rgba(67,149,46,.25); font-size: 22px; line-height: 1; }
.bottom-nav a.active .bottom-plus { color: white; }

.dashboard-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin: 3px 0 22px; }
.dashboard-heading h1 { margin: 5px 0 5px; font-size: clamp(28px, 5vw, 38px); letter-spacing: -.04em; line-height: 1.05; color: var(--jmrp-ink); }
.dashboard-heading p { margin: 0; color: var(--jmrp-muted); font-size: 14px; }
.desktop-quick-action { display: none; }
.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(250px, .72fr); gap: 14px; }
.dashboard-main-card { min-height: 210px; display: flex; flex-direction: column; justify-content: center; }
.week-card { background: white; border: 1px solid var(--jmrp-border); border-radius: 24px; padding: 22px; box-shadow: 0 8px 28px rgba(35,48,56,.045); }
.week-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.week-card-head strong { display: block; margin-top: 8px; color: var(--jmrp-ink); font-size: 30px; letter-spacing: -.04em; }
.week-icon { width: 46px; height: 46px; border-radius: 15px; display: grid; place-items: center; color: var(--jmrp-green-dark); background: var(--jmrp-green-soft); }
.week-icon svg { width: 23px; height: 23px; }
.week-card p { color: var(--jmrp-muted); font-size: 12px; line-height: 1.5; margin: 20px 0 16px; }
.week-card a { color: var(--jmrp-green-dark); font-size: 12px; font-weight: 800; }
.week-card a span { margin-left: 4px; }
.mini-stats-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 14px 0 28px; }
.mini-stat { display: flex; align-items: center; gap: 13px; padding: 16px; background: white; border: 1px solid var(--jmrp-border); border-radius: 18px; box-shadow: 0 4px 14px rgba(35,48,56,.035); }
.mini-stat-icon { width: 38px; height: 38px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 12px; background: var(--jmrp-surface-soft); color: var(--jmrp-green-dark); }
.mini-stat-icon svg { width: 20px; height: 20px; }
.mini-stat small, .mini-stat strong { display: block; }
.mini-stat small { color: var(--jmrp-muted); font-size: 10px; text-transform: uppercase; letter-spacing: .06em; }
.mini-stat strong { margin-top: 3px; color: var(--jmrp-ink); font-size: 17px; }
.dashboard-list-section { margin-top: 2px; }
.enhanced-empty { display: flex; align-items: center; text-align: left; gap: 14px; padding: 18px; }
.enhanced-empty .empty-inline-icon { width: 42px; height: 42px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 13px; background: var(--jmrp-green-soft); color: var(--jmrp-green-dark); font-size: 22px; font-weight: 900; }
.enhanced-empty div { min-width: 0; flex: 1; }
.enhanced-empty strong, .enhanced-empty div span { display: block; }
.enhanced-empty strong { color: var(--jmrp-ink); font-size: 13px; }
.enhanced-empty div span { color: var(--jmrp-muted); font-size: 11px; margin-top: 3px; }
.enhanced-empty .btn { width: auto; min-height: 42px; }

@media (min-width: 900px) {
    .desktop-shell { display: grid; grid-template-columns: 255px minmax(0, 1fr); padding-bottom: 0; }
    .sidebar {
        display: flex;
        position: sticky;
        top: 0;
        height: 100vh;
        flex-direction: column;
        overflow: hidden;
        background: #273239;
        color: white;
        border-right: 1px solid rgba(255,255,255,.05);
        z-index: 40;
    }
    .sidebar-brand { height: 104px; flex: 0 0 auto; display: flex; flex-direction: column; justify-content: center; gap: 6px; padding: 18px 22px; border-bottom: 1px solid rgba(255,255,255,.08); }
    .sidebar-brand img { width: 154px; height: auto; background: white; border-radius: 11px; padding: 6px 8px; }
    .sidebar-brand span { color: rgba(255,255,255,.46); font-size: 9px; font-weight: 800; letter-spacing: .19em; padding-left: 4px; }
    .sidebar-nav { display: grid; gap: 6px; padding: 20px 12px; flex: 1 1 auto; min-height: 0; overflow-y: auto; overflow-x: hidden; align-content: start; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.24) transparent; }
    .sidebar-nav::-webkit-scrollbar { width: 6px; }
    .sidebar-nav::-webkit-scrollbar-track { background: transparent; }
    .sidebar-nav::-webkit-scrollbar-thumb { background: rgba(255,255,255,.20); border-radius: 999px; }
    .sidebar-nav::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,.32); }
    .sidebar-nav a { min-height: 48px; display: flex; align-items: center; gap: 12px; border-radius: 12px; padding: 0 13px; color: rgba(255,255,255,.68); font-size: 13px; font-weight: 700; }
    .sidebar-nav a:hover { color: white; background: rgba(255,255,255,.055); }
    .sidebar-nav a.active { color: white; background: linear-gradient(90deg, rgba(88,184,63,.22), rgba(88,184,63,.10)); box-shadow: inset 3px 0 0 var(--jmrp-green); }
    .sidebar-nav svg { width: 20px; height: 20px; flex: 0 0 auto; }
    .sidebar-footer { flex: 0 0 auto; margin-top: auto; padding: 14px 12px 18px; border-top: 1px solid rgba(255,255,255,.08); background: #273239; }
    .local-state { display: flex; align-items: center; gap: 10px; padding: 10px 10px 14px; }
    .local-state .status-dot { flex: 0 0 auto; }
    .local-state strong, .local-state small { display: block; }
    .local-state strong { font-size: 11px; }
    .local-state small { margin-top: 2px; color: rgba(255,255,255,.45); font-size: 9px; }
    .sidebar-logout { width: 100%; min-height: 42px; display: flex; align-items: center; gap: 10px; padding: 0 11px; border: 0; border-radius: 11px; background: rgba(255,255,255,.055); color: rgba(255,255,255,.7); font-size: 11px; font-weight: 700; }
    .sidebar-logout:hover { color: white; background: rgba(255,255,255,.085); }
    .sidebar-logout svg { width: 18px; height: 18px; }
    .main-column { min-height: 100vh; }
    .topbar { position: sticky; height: 74px; padding: 0 28px; }
    .mobile-brand { display: none; }
    .topbar-title { display: block; }
    .topbar-title strong, .topbar-title span { display: block; }
    .topbar-title strong { color: var(--jmrp-ink); font-size: 13px; }
    .topbar-title span { color: var(--jmrp-muted); font-size: 10px; margin-top: 2px; }
    .user-copy { display: block; }
    .user-copy strong, .user-copy span { display: block; }
    .user-copy strong { color: var(--jmrp-ink); font-size: 11px; }
    .user-copy span { color: var(--jmrp-muted); font-size: 9px; margin-top: 2px; }
    .mobile-logout { display: none; }
    .content { max-width: 1180px; padding: 32px 34px 48px; }
    .bottom-nav { display: none; }
    .desktop-quick-action { display: inline-flex; width: auto; }
}

@media (max-width: 899px) {
    .dashboard-grid { grid-template-columns: 1fr; }
    .dashboard-main-card { min-height: unset; }
    .mini-stats-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
    .login-page { display: block; min-height: 100vh; }
    .login-brand-panel { display: none; }
    .login-form-panel { min-height: 100vh; padding: 22px 16px; }
    .login-card { padding: 26px 20px; border-radius: 22px; }
    .login-mobile-logo { display: block; margin-bottom: 26px; }
    .login-mobile-logo img { width: 170px; max-width: 65%; height: auto; }
    .login-card h2 { font-size: 30px; }
    .mini-stats-grid { grid-template-columns: 1fr; }
    .dashboard-heading { align-items: flex-start; }
    .enhanced-empty { align-items: flex-start; flex-wrap: wrap; }
    .enhanced-empty .btn { width: 100%; }
}

/* ===== V4 POINTAGE ===== */
.bottom-nav-five { grid-template-columns: repeat(5, minmax(0, 1fr)); width: min(650px, calc(100% - 20px)); }
.bottom-nav-five a { min-width: 0; }
.bottom-nav-five a span:last-child { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }

.home-week-strip { display: grid; grid-template-columns: repeat(7, 1fr); gap: 10px; margin: 14px 0 22px; }
.home-day-card { min-height: 98px; padding: 14px; background: white; border: 1px solid var(--jmrp-border); border-radius: 18px; display: flex; flex-direction: column; justify-content: space-between; box-shadow: 0 4px 14px rgba(35,48,56,.03); }
.home-day-card > span { color: var(--jmrp-muted); font-size: 11px; text-transform: uppercase; font-weight: 800; }
.home-day-card strong { color: var(--jmrp-ink); font-size: 20px; }
.home-day-card small { font-size: 10px; font-weight: 700; }
.home-day-card.complete { border-color: rgba(88,184,63,.45); background: #f5fbf3; }
.home-day-card.complete small { color: var(--jmrp-green-dark); }
.home-day-card.partial { border-color: #f2c979; background: #fffaf0; }
.home-day-card.partial small { color: #a15c05; }
.home-day-card.empty small { color: var(--jmrp-muted); }
.home-day-card.future { opacity: .58; }

.draft-banner, .info-banner { margin: 0 0 14px; border-radius: 15px; padding: 14px 16px; }
.draft-banner { display: flex; align-items: center; gap: 14px; justify-content: space-between; background: #fff9eb; border: 1px solid #f1d596; }
.draft-banner strong, .draft-banner span { display: block; }
.draft-banner strong { color: #7a4a06; font-size: 12px; }
.draft-banner span { color: #8b6a36; font-size: 11px; margin-top: 3px; }
.draft-banner button { border: 0; background: transparent; color: #8d5200; font-size: 11px; font-weight: 800; }
.info-banner { background: #f0f7ff; color: #175cd3; border: 1px solid #b2ddff; font-size: 12px; }

.affair-picker { position: relative; }
.affaire-search-wrap { position: relative; }
.affaire-search-wrap .search-icon { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); z-index: 2; color: var(--jmrp-muted); font-size: 20px; }
.affaire-search { padding-left: 42px; }
.affaire-shortcuts { margin-top: 12px; }
.affaire-shortcuts > small { display: block; margin-bottom: 7px; color: var(--jmrp-muted); font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; }
.affaire-chip-row { display: flex; flex-wrap: wrap; gap: 7px; }
.affaire-chip { border: 1px solid var(--jmrp-border); background: white; color: var(--jmrp-text); border-radius: 999px; min-height: 34px; padding: 0 11px; font-size: 10px; font-weight: 800; }
.affaire-chip:hover, .affaire-chip.favorite { border-color: rgba(88,184,63,.45); background: var(--jmrp-green-soft); color: var(--jmrp-green-dark); }
.affaire-results { margin-top: 10px; border: 1px solid var(--jmrp-border); border-radius: 16px; overflow: hidden; background: white; box-shadow: 0 14px 30px rgba(35,48,56,.08); }
.affaire-result-row { display: grid; grid-template-columns: minmax(0,1fr) 40px 46px; align-items: stretch; border-bottom: 1px solid #edf1ee; }
.affaire-result-row:last-child { border-bottom: 0; }
.affaire-result-main { padding: 12px 14px; border: 0; background: white; text-align: left; }
.affaire-result-main:hover { background: var(--jmrp-surface-soft); }
.affaire-result-main strong, .affaire-result-main span { display: block; }
.affaire-result-main strong { color: var(--jmrp-ink); font-size: 12px; }
.affaire-result-main span { color: var(--jmrp-muted); font-size: 11px; margin-top: 3px; }
.favorite-toggle { border: 0; border-left: 1px solid #edf1ee; background: white; color: #b6c0ba; font-size: 20px; }
.favorite-toggle.active { color: var(--jmrp-green-dark); background: var(--jmrp-green-soft); }
.affaire-no-result { padding: 18px; color: var(--jmrp-muted); font-size: 12px; text-align: center; }
.selected-affaire { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 15px; border-radius: 15px; border: 1px solid rgba(88,184,63,.32); background: var(--jmrp-green-soft); }
.selected-affaire strong, .selected-affaire span { display: block; }
.selected-affaire strong { color: var(--jmrp-green-dark); font-size: 13px; }
.selected-affaire span { color: #53665a; font-size: 11px; margin-top: 3px; }
.selected-affaire button { flex: 0 0 auto; border: 0; background: white; color: var(--jmrp-green-dark); border-radius: 10px; padding: 8px 10px; font-size: 10px; font-weight: 800; }
.day-total-preview { margin: 0 0 14px; padding: 14px 16px; display: flex; justify-content: space-between; align-items: center; gap: 16px; background: white; border: 1px solid var(--jmrp-border); border-radius: 16px; }
.day-total-preview small, .day-total-preview > div strong { display: block; }
.day-total-preview small { color: var(--jmrp-muted); font-size: 10px; }
.day-total-preview > div strong { margin-top: 3px; color: var(--jmrp-ink); font-size: 17px; }
.day-total-preview > span { color: var(--jmrp-muted); font-size: 11px; }
.day-total-preview > span strong { color: var(--jmrp-green-dark); }

.history-heading-row, .week-page-heading, .calendar-heading-row { display: flex; align-items: end; justify-content: space-between; gap: 18px; }
.history-heading-row .btn { width: auto; }
.entry-sync-line { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.entry-sync-line > span:last-child { color: var(--jmrp-muted); font-size: 9px; }
.history-entry-actions { align-items: stretch; }
.entry-actions { flex: 0 0 92px; display: flex; flex-direction: column; justify-content: center; gap: 5px; border-left: 1px solid #edf1ee; padding-left: 10px; }
.entry-action { min-height: 29px; border: 0; border-radius: 8px; background: var(--jmrp-surface-soft); color: var(--jmrp-text); display: grid; place-items: center; padding: 0 8px; font-size: 9px; font-weight: 800; }
.entry-action:hover { background: var(--jmrp-green-soft); color: var(--jmrp-green-dark); }
.entry-action.danger { color: var(--danger); }
.history-day-head-actions { align-items: center; }
.history-day-total-actions { display: flex; align-items: flex-end; flex-direction: column; gap: 4px; }
.text-action { border: 0; background: transparent; color: var(--jmrp-green-dark); font-size: 9px; font-weight: 800; padding: 0; }
.duplicate-day-panel { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0 0 18px; padding: 16px; background: #fff; border: 1px solid rgba(88,184,63,.35); border-radius: 18px; box-shadow: 0 8px 24px rgba(35,48,56,.04); }
.duplicate-day-panel strong { display: block; color: var(--jmrp-ink); text-transform: capitalize; }
.duplicate-day-controls { display: flex; align-items: center; gap: 8px; }
.duplicate-day-controls .input { width: 165px; min-height: 44px; }
.duplicate-day-controls .btn { min-height: 44px; width: auto; }

.period-nav { display: flex; align-items: center; gap: 7px; }
.period-nav button { min-width: 42px; height: 40px; padding: 0 12px; border: 1px solid var(--jmrp-border); border-radius: 11px; background: white; color: var(--jmrp-text); font-size: 12px; font-weight: 800; }
.period-nav button:disabled { opacity: .35; cursor: default; }
.period-nav .period-current { min-width: 115px; }
.week-summary-card { display: grid; grid-template-columns: minmax(0,1fr) minmax(180px,.55fr); align-items: center; gap: 24px; padding: 22px; border-radius: 22px; color: white; background: linear-gradient(135deg, var(--jmrp-green-dark), var(--jmrp-green)); box-shadow: 0 16px 36px rgba(67,149,46,.22); margin-bottom: 16px; }
.week-summary-card small, .week-summary-card strong, .week-summary-card span { display: block; }
.week-summary-card small { color: rgba(255,255,255,.82); font-size: 11px; }
.week-summary-card strong { margin: 5px 0; font-size: 31px; letter-spacing: -.04em; }
.week-summary-card span { color: rgba(255,255,255,.84); font-size: 11px; }
.week-summary-progress > div { height: 9px; overflow: hidden; background: rgba(255,255,255,.25); border-radius: 999px; }
.week-summary-progress > div > span { height: 100%; background: white; border-radius: 999px; }
.week-summary-progress > small { margin-top: 7px; text-align: right; }
.week-days-grid { display: grid; grid-template-columns: repeat(7, minmax(130px,1fr)); gap: 10px; overflow-x: auto; padding-bottom: 4px; }
.week-day-panel { min-width: 170px; background: white; border: 1px solid var(--jmrp-border); border-radius: 19px; padding: 15px; box-shadow: 0 4px 15px rgba(35,48,56,.035); }
.week-day-panel.complete { border-color: rgba(88,184,63,.42); }
.week-day-panel.partial { border-color: #f1ca7c; }
.week-day-panel.future { opacity: .62; }
.week-day-panel > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.week-day-panel header span, .week-day-panel header strong { display: block; text-transform: capitalize; }
.week-day-panel header span { color: var(--jmrp-muted); font-size: 10px; }
.week-day-panel header strong { margin-top: 3px; color: var(--jmrp-ink); font-size: 13px; }
.week-day-total { text-align: right; }
.week-day-total strong { font-size: 17px !important; }
.week-day-total span { margin-top: 2px; font-size: 8px !important; font-weight: 800; color: var(--jmrp-muted); }
.week-day-panel.complete .week-day-total span { color: var(--jmrp-green-dark); }
.week-day-panel.partial .week-day-total span { color: #a15c05; }
.week-day-progress { height: 5px; background: #edf1ee; border-radius: 999px; overflow: hidden; margin: 13px 0; }
.week-day-progress span { display: block; height: 100%; background: var(--jmrp-green); border-radius: 999px; }
.week-day-panel.partial .week-day-progress span { background: #e7a532; }
.week-day-entries { display: grid; gap: 6px; }
.week-day-entries a { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px; border-radius: 10px; background: var(--jmrp-surface-soft); }
.week-day-entries a div { min-width: 0; }
.week-day-entries strong, .week-day-entries span { display: block; }
.week-day-entries strong { color: var(--jmrp-ink); font-size: 9px; }
.week-day-entries span { margin-top: 2px; color: var(--jmrp-muted); font-size: 8px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.week-day-entries b { color: var(--jmrp-ink); font-size: 9px; }
.week-day-empty { min-height: 55px; display: grid; place-items: center; color: #9aa49e; font-size: 9px; border: 1px dashed #dbe3dd; border-radius: 10px; }
.week-add-link { display: block; margin-top: 10px; text-align: center; color: var(--jmrp-green-dark); font-size: 9px; font-weight: 800; }

.calendar-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 10px; }
.calendar-toolbar > strong { color: var(--jmrp-ink); font-size: 18px; text-transform: capitalize; }
.calendar-legend { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; color: var(--jmrp-muted); font-size: 9px; }
.calendar-legend span { display: flex; align-items: center; gap: 5px; }
.legend-dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; background: #dfe5e1; }
.legend-dot.complete { background: var(--jmrp-green); }
.legend-dot.partial { background: #e7a532; }
.legend-dot.empty { background: #dfe5e1; }
.calendar-card { background: white; border: 1px solid var(--jmrp-border); border-radius: 22px; padding: 12px; box-shadow: 0 7px 24px rgba(35,48,56,.04); }
.calendar-weekdays, .calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0,1fr)); gap: 6px; }
.calendar-weekdays { margin-bottom: 6px; }
.calendar-weekdays span { padding: 8px 4px; text-align: center; color: var(--jmrp-muted); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.calendar-cell { min-height: 86px; border: 1px solid #e7ece8; border-radius: 12px; background: #fafcfa; display: flex; flex-direction: column; align-items: flex-start; gap: 5px; padding: 9px; color: var(--jmrp-text); text-align: left; }
.calendar-cell.spacer { border-color: transparent; background: transparent; }
button.calendar-cell:hover { border-color: rgba(88,184,63,.45); }
.calendar-cell.complete { background: #f2faf0; border-color: rgba(88,184,63,.32); }
.calendar-cell.partial { background: #fff9ec; border-color: #f1d391; }
.calendar-cell.future { opacity: .45; }
.calendar-cell.selected { outline: 2px solid var(--jmrp-green); outline-offset: 1px; }
.calendar-day-number { font-size: 11px; font-weight: 900; color: var(--jmrp-ink); }
.calendar-cell strong { margin-top: auto; font-size: 12px; color: var(--jmrp-ink); }
.calendar-cell small { font-size: 8px; font-weight: 800; color: var(--jmrp-muted); }
.calendar-cell.complete small { color: var(--jmrp-green-dark); }
.calendar-cell.partial small { color: #a15c05; }
.calendar-detail { margin-top: 24px; }
.calendar-entry { cursor: pointer; }
.calendar-day-total { margin-top: 10px; padding: 12px 14px; display: flex; justify-content: flex-end; gap: 10px; color: var(--jmrp-muted); font-size: 11px; }
.calendar-day-total strong { color: var(--jmrp-ink); font-size: 14px; }

@media (max-width: 899px) {
    .home-week-strip { overflow-x: auto; grid-template-columns: repeat(7, minmax(105px, 1fr)); padding-bottom: 4px; }
    .week-days-grid { grid-template-columns: repeat(7, minmax(160px, 1fr)); }
}

@media (max-width: 720px) {
    .bottom-nav-five { height: 72px; padding: 6px; }
    .bottom-nav-five a { font-size: 8px; }
    .bottom-nav-five svg { width: 18px; height: 18px; }
    .bottom-main-action .bottom-plus { width: 34px; height: 34px; }
    .history-heading-row, .week-page-heading, .calendar-heading-row { display: block; }
    .history-heading-row .btn { margin-top: 14px; width: 100%; }
    .period-nav { margin-top: 14px; justify-content: space-between; }
    .period-nav .period-current { flex: 1; }
    .week-summary-card { grid-template-columns: 1fr; gap: 16px; }
    .duplicate-day-panel { align-items: stretch; flex-direction: column; }
    .duplicate-day-controls { display: grid; grid-template-columns: 1fr 1fr; }
    .duplicate-day-controls .input { width: 100%; grid-column: 1 / -1; }
    .entry-card.history-entry-actions { flex-wrap: wrap; }
    .entry-actions { flex: 1 0 100%; border-left: 0; border-top: 1px solid #edf1ee; padding: 9px 0 0; flex-direction: row; }
    .entry-action { flex: 1; }
    .day-total-preview { align-items: flex-start; flex-direction: column; }
    .calendar-toolbar { align-items: flex-start; flex-direction: column; }
    .calendar-card { padding: 7px; overflow-x: auto; }
    .calendar-weekdays, .calendar-grid { min-width: 610px; }
    .calendar-cell { min-height: 78px; }
}

@media (max-width: 430px) {
    .bottom-nav-five a span:last-child { font-size: 7px; }
    .calendar-legend { gap: 8px; }
}

/* V5 - échéance hebdomadaire du lundi 17h */
.deadline-modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 2000;
    display: grid;
    place-items: center;
    padding: 20px;
    background: rgba(24, 33, 29, .52);
    backdrop-filter: blur(5px);
}
.deadline-modal {
    width: min(520px, 100%);
    padding: 26px;
    border-radius: 24px;
    background: #fff;
    border: 1px solid var(--jmrp-border);
    box-shadow: 0 28px 70px rgba(24, 33, 29, .26);
}
.deadline-modal-icon {
    width: 52px;
    height: 52px;
    display: grid;
    place-items: center;
    margin-bottom: 18px;
    border-radius: 16px;
    background: #fff4db;
    color: #986006;
    font-size: 24px;
    font-weight: 900;
    border: 1px solid #f1d391;
}
.deadline-modal-copy h2 {
    margin: 4px 0 9px;
    color: var(--jmrp-ink);
    font-size: 24px;
    letter-spacing: -.025em;
}
.deadline-modal-copy p {
    margin: 0;
    color: var(--jmrp-muted);
    font-size: 14px;
    line-height: 1.55;
}
.deadline-time-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 20px 0;
    padding: 14px 16px;
    border-radius: 15px;
    background: var(--jmrp-surface-soft);
    border: 1px solid var(--jmrp-border);
}
.deadline-time-card span { color: var(--jmrp-muted); font-size: 12px; }
.deadline-time-card strong { color: var(--jmrp-ink); font-size: 16px; }

.lock-banner, .deadline-warning-banner {
    display: flex;
    align-items: center;
    gap: 13px;
    margin: 0 0 18px;
    padding: 15px 17px;
    border-radius: 16px;
}
.lock-banner {
    background: #f4f5f4;
    border: 1px solid #d9dfdb;
}
.deadline-warning-banner {
    background: #fff8e8;
    border: 1px solid #f0d28d;
}
.lock-banner-icon {
    flex: 0 0 auto;
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: #fff;
    border: 1px solid rgba(0,0,0,.06);
    font-weight: 900;
}
.lock-banner strong, .lock-banner span,
.deadline-warning-banner strong, .deadline-warning-banner span { display: block; }
.lock-banner strong, .deadline-warning-banner strong { color: var(--jmrp-ink); font-size: 13px; }
.lock-banner span, .deadline-warning-banner span { margin-top: 3px; color: var(--jmrp-muted); font-size: 11px; line-height: 1.45; }
.locked-inline-badge {
    display: inline-flex !important;
    align-items: center;
    width: fit-content;
    margin-top: 5px;
    padding: 4px 7px;
    border-radius: 999px;
    background: #eef1ef;
    color: #68746d !important;
    border: 1px solid #d9dfdb;
    font-size: 8px !important;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.entry-action.locked {
    color: #6d7871;
    background: #eef1ef;
    cursor: default;
}
.locked-pointage-card {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 18px;
    padding: 18px;
    border-radius: 18px;
    background: #fff;
    border: 1px solid var(--jmrp-border);
}
.locked-pointage-card span, .locked-pointage-card strong, .locked-pointage-card small { display: block; }
.locked-pointage-card span { color: var(--jmrp-muted); font-size: 10px; }
.locked-pointage-card strong { margin: 3px 0; color: var(--jmrp-ink); font-size: 14px; }
.locked-pointage-card small { color: var(--jmrp-muted); font-size: 10px; }
.week-entry-locked {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto auto;
    align-items: center;
    gap: 8px;
    padding: 8px;
    border-radius: 10px;
    background: #f0f2f1;
    color: #7a857f;
}
.week-entry-locked div { min-width: 0; }
.week-entry-locked strong, .week-entry-locked span { display: block; }
.week-entry-locked strong { font-size: 9px; color: #5f6a64; }
.week-entry-locked span { margin-top: 2px; font-size: 8px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.week-entry-locked b, .week-entry-locked small { font-size: 9px; }
.week-locked-label {
    display: block;
    margin-top: 10px;
    text-align: center;
    color: #77827c;
    font-size: 9px;
    font-weight: 800;
}
.legend-dot.locked { background: #8a948e; }
.calendar-cell.locked {
    background: #f0f2f1;
    border-color: #d4dad6;
    color: #7a857f;
}
.calendar-cell.locked .calendar-day-number,
.calendar-cell.locked strong,
.calendar-cell.locked small { color: #737d77; }
.calendar-entry-locked { cursor: default; background: #f7f8f7; }
.btn:disabled {
    opacity: .45;
    cursor: not-allowed;
    box-shadow: none;
}

@media (max-width: 640px) {
    .deadline-modal { padding: 20px; border-radius: 20px; }
    .deadline-modal-copy h2 { font-size: 21px; }
    .deadline-time-card { align-items: flex-start; flex-direction: column; }
}


/* V7 - Feuille d'heures FORM-02 */
.week-sheet-link { display:flex; align-items:center; justify-content:center; margin-top:14px; min-height:56px; padding:0 16px; border-radius:16px; background:#243038; color:#fff; font-size:13px; font-weight:800; box-shadow:0 12px 26px rgba(35,48,56,.18); }
.sheet-period-card { display:flex; align-items:center; justify-content:space-between; gap:18px; background:linear-gradient(135deg,#fff,#f4faf2); border:1px solid var(--jmrp-border); border-radius:22px; padding:20px 22px; margin-bottom:14px; box-shadow:0 8px 24px rgba(35,48,56,.05); }
.sheet-period-card span,.sheet-period-card strong,.sheet-period-card small { display:block; }
.sheet-period-card span { color:var(--jmrp-green-dark); font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.sheet-period-card > div > strong { color:var(--jmrp-ink); margin-top:5px; font-size:17px; }
.sheet-period-total { text-align:right; }
.sheet-period-total small { color:var(--jmrp-muted); font-size:11px; }
.sheet-period-total strong { margin-top:4px; color:var(--jmrp-ink); font-size:27px; }
.sheet-readiness { display:grid; gap:4px; padding:14px 16px; border-radius:15px; margin-bottom:14px; font-size:12px; }
.sheet-readiness strong,.sheet-readiness span { display:block; }
.sheet-readiness.warning { background:#fff8e8; border:1px solid #f4d899; color:#805b10; }
.sheet-readiness.ready { background:#eef9ea; border:1px solid #c6e9ba; color:#326c25; }
.sheet-note { margin:0; padding:11px 13px; border-radius:12px; background:#f7f8f7; color:var(--jmrp-muted); font-size:11px; border:1px solid var(--jmrp-border); }
.inline-day-note { min-height:42px; display:flex; align-items:center; padding:0 12px; border:1px dashed var(--jmrp-border); border-radius:12px; color:var(--jmrp-muted); font-size:11px; background:#fff; }
.sheet-checkbox-label { min-height:48px; display:flex !important; align-items:center; gap:10px; padding:0 13px; border:1px solid #ced8d1; border-radius:14px; background:#fff; cursor:pointer; }
.sheet-checkbox-label input { width:18px; height:18px; accent-color:var(--jmrp-green-dark); }
.sheet-checkbox-label span { font-size:12px; font-weight:750; color:var(--jmrp-text); }
.compact-check { min-height:42px; }
.daily-extras-list { display:grid; gap:10px; }
.daily-extra-card { border:1px solid var(--jmrp-border); border-radius:17px; padding:14px; background:#fbfcfb; }
.daily-extra-card > header { display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; }
.daily-extra-card > header div strong,.daily-extra-card > header div span { display:block; }
.daily-extra-card > header div strong { text-transform:capitalize; color:var(--jmrp-ink); font-size:13px; }
.daily-extra-card > header div span { color:var(--jmrp-muted); font-size:10px; margin-top:2px; }
.daily-extra-card > header b { color:var(--jmrp-green-dark); font-size:15px; }
.daily-extra-grid { display:grid; grid-template-columns:1.05fr .8fr .7fr 1.4fr 1fr; gap:9px; align-items:end; }
.daily-extra-grid.revised { grid-template-columns: repeat(3, minmax(0,1fr)); }
.choice-row { display:flex; flex-wrap:wrap; gap:8px; }
.choice-pill { display:inline-flex; align-items:center; gap:8px; min-height:42px; padding:0 12px; border:1px solid #ced8d1; border-radius:12px; background:#fff; font-size:12px; color:var(--jmrp-text); }
.choice-pill input { accent-color: var(--jmrp-green-dark); }
.vehicle-choice-group { grid-column: 1 / -1; }
.input-compact { min-height:42px; border-radius:11px; padding:8px 10px; }
.sheet-preview-card { background:#fff; border:1px solid var(--jmrp-border); border-radius:22px; padding:20px; margin-bottom:14px; box-shadow:0 8px 24px rgba(35,48,56,.05); }
.sheet-preview-scroll { overflow-x:auto; margin-top:16px; }
.sheet-preview-table { width:100%; min-width:900px; border-collapse:collapse; font-size:11px; }
.sheet-preview-table th { background:#f2f5f2; color:var(--jmrp-text); font-size:9px; text-transform:uppercase; letter-spacing:.04em; }
.sheet-preview-table th,.sheet-preview-table td { border:1px solid var(--jmrp-border); padding:8px 7px; text-align:center; }
.sheet-preview-table td:first-child,.sheet-preview-table td:nth-child(2),.sheet-preview-table td:nth-child(3) { text-align:left; }
.sheet-action-bar { display:flex; justify-content:flex-end; gap:10px; flex-wrap:wrap; margin:16px 0 6px; }
.sheet-pdf-button { background:#243038; color:#fff; min-height:58px; padding:0 22px; box-shadow:0 14px 28px rgba(35,48,56,.18); }
.sheet-pdf-button:hover { background:#1d272d; }
.sheet-pdf-button span { display:inline-grid; place-items:center; min-width:30px; height:25px; margin-right:8px; border-radius:7px; background:rgba(255,255,255,.2); font-size:9px; letter-spacing:.04em; }

@media (max-width: 900px) {
    .daily-extra-grid { grid-template-columns:1fr 1fr; }
    .daily-extra-grid.revised { grid-template-columns:1fr 1fr; }
}
@media (max-width: 640px) {
    .sheet-period-card { align-items:flex-start; padding:16px; }
    .sheet-period-total strong { font-size:22px; }
    .daily-extra-grid { grid-template-columns:1fr; }
    .daily-extra-grid.revised { grid-template-columns:1fr; }
    .sheet-action-bar { display:grid; grid-template-columns:1fr; }
}

.deadline-modal-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
@media (max-width:640px){ .deadline-modal-actions { grid-template-columns:1fr; } }

.sheet-fix-links { display:flex; flex-wrap:wrap; gap:6px; margin-top:6px; }
.sheet-fix-links a { display:inline-flex; padding:5px 8px; border-radius:8px; background:rgba(255,255,255,.65); color:inherit; font-size:10px; font-weight:750; border:1px solid rgba(128,91,16,.18); }


/* V9 - Affectations obligatoires / PDF semaine partielle */
.required-mark { margin-left:6px; color:#b42318; font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.sheet-missing-panel { margin-bottom:14px; padding:16px; border-radius:18px; background:#fff7f6; border:1px solid #f2c4bf; }
.sheet-missing-head { display:flex; justify-content:space-between; align-items:flex-start; gap:14px; margin-bottom:12px; }
.sheet-missing-head strong,.sheet-missing-head span { display:block; }
.sheet-missing-head strong { color:#8f2118; font-size:14px; }
.sheet-missing-head > div > span { color:#8d4a44; font-size:11px; margin-top:3px; }
.missing-count { min-width:34px; height:34px; display:grid !important; place-items:center; border-radius:999px; background:#b42318; color:#fff !important; font-size:12px; font-weight:900; }
.sheet-missing-list { display:grid; gap:8px; }
.sheet-missing-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 12px; border-radius:13px; background:#fff; border:1px solid #f0d7d4; }
.sheet-missing-row strong,.sheet-missing-row span { display:block; }
.sheet-missing-row strong { color:var(--jmrp-ink); font-size:12px; text-transform:capitalize; }
.sheet-missing-row span { color:var(--jmrp-muted); font-size:10px; margin-top:3px; }
.sheet-complete-button { min-height:38px; width:auto; padding:0 14px; background:#243038; color:#fff; flex:0 0 auto; box-shadow:none; }
.sheet-complete-button:hover { background:#1b242a; }
@media (max-width:640px) {
    .sheet-missing-row { align-items:stretch; flex-direction:column; }
    .sheet-complete-button { width:100%; }
}

/* JMRP Time 1.2 - diagnostic réseau */
.network-heading { align-items: flex-end; }
.network-status-banner { display:flex; gap:14px; align-items:center; padding:18px 20px; border:1px solid var(--border, #d9dfdc); border-radius:16px; margin:18px 0; background:#fff; }
.network-status-banner.ok { border-left:5px solid #4f7d64; }
.network-status-banner.warning { border-left:5px solid #9a7a39; }
.network-status-banner strong, .network-status-banner span { display:block; }
.network-status-banner span { margin-top:3px; color:#66706b; }
.network-status-dot { width:12px; height:12px; border-radius:50%; background:currentColor; flex:0 0 auto; }
.network-status-banner.ok .network-status-dot { color:#4f7d64; }
.network-status-banner.warning .network-status-dot { color:#9a7a39; }
.network-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-bottom:18px; }
.network-card { background:#fff; border:1px solid #e0e5e2; border-radius:16px; padding:18px; display:flex; flex-direction:column; gap:8px; min-width:0; }
.network-card > strong { font-size:1.05rem; }
.network-card small { color:#68716d; }
.network-path { overflow-wrap:anywhere; }
.network-check { margin-top:5px; padding:8px 10px; border-radius:10px; font-size:.88rem; font-weight:700; background:#f1f3f2; }
.network-check.ok { background:#edf5f0; color:#315d46; }
.network-check.error { background:#faeeee; color:#8d3b3b; }
.network-check.neutral { color:#5d6662; }
.network-alert { display:flex; flex-direction:column; gap:4px; border-radius:12px; padding:14px 16px; margin:14px 0; }
.network-alert.error { background:#faeeee; color:#7e3434; border:1px solid #efd1d1; }
.network-table-list { display:flex; flex-direction:column; }
.network-table-row { display:grid; grid-template-columns:minmax(140px,1fr) auto; gap:8px 16px; align-items:center; padding:12px 0; border-bottom:1px solid #ecefed; }
.network-table-row:last-child { border-bottom:0; }
.network-table-row small { grid-column:1/-1; color:#8d3b3b; overflow-wrap:anywhere; }
.network-pill { border-radius:999px; padding:5px 9px; font-size:.8rem; font-weight:800; }
.network-pill.ok { background:#edf5f0; color:#315d46; }
.network-pill.error { background:#faeeee; color:#8d3b3b; }
.network-preview-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-top:16px; }
.network-preview-row { display:flex; justify-content:space-between; gap:12px; padding:10px 0; border-bottom:1px solid #ecefed; }
.network-preview-row span { color:#68716d; text-align:right; }
.network-next-step { margin:18px 0 8px; padding:16px 18px; background:#f3f5f4; border-radius:14px; display:flex; flex-direction:column; gap:4px; }
.network-next-step span { color:#626b67; }
@media (max-width: 850px) { .network-grid { grid-template-columns:1fr; } .network-preview-grid { grid-template-columns:1fr; } .network-heading { align-items:stretch; } }

/* --- JMRP Time 1.2 : comptes réseau --- */
.simple-auth-page{min-height:100vh;background:#f4f6f5;display:flex;align-items:flex-start;justify-content:center;padding:42px 18px}.simple-auth-card{width:min(860px,100%);background:#fff;border:1px solid #dfe5e1;border-radius:18px;padding:28px;box-shadow:0 16px 50px rgba(24,36,30,.08)}.admin-logo{height:42px;width:auto;margin-bottom:20px}.admin-account-card h1{margin:.35rem 0 .5rem}.admin-account-card>p{color:#66716b;max-width:700px}.admin-accounts-list{margin-top:22px;border-top:1px solid #e7ebe8}.admin-account-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid #e7ebe8}.admin-account-row>div{display:flex;flex-direction:column;gap:3px}.admin-account-row small{color:#758078}.admin-password-panel{margin-top:24px;padding:20px;background:#f6f8f7;border:1px solid #e0e5e2;border-radius:14px}.admin-password-panel h2{margin-top:0}.admin-back-link{display:inline-block;margin-top:24px;color:#405148;text-decoration:none}.sidebar-account-link{display:block;margin:8px 0 10px;padding:8px 10px;border-radius:8px;text-align:center;text-decoration:none;color:inherit;font-size:.86rem;background:rgba(255,255,255,.06)}.account-password-card{max-width:680px}.btn.small{padding:7px 11px;font-size:.82rem}
@media(max-width:720px){.simple-auth-page{padding:20px 12px}.simple-auth-card{padding:20px}.admin-account-row{align-items:flex-start}.admin-account-row .btn{flex:0 0 auto}}

/* JMRP Time 1.3 - connexion PERSONNE */
.network-alert.ok { background:#edf7f0; color:#245b36; border:1px solid #cfe6d5; }

/* V1.8 - Mes activités + récapitulatif + affichage mot de passe */
.password-field { position: relative; }
.password-field .input { padding-right: 52px; }
.password-toggle {
    position: absolute;
    right: 7px;
    top: 50%;
    transform: translateY(-50%);
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: #66736c;
    z-index: 2;
}
.password-toggle:hover { background: #f0f4f1; color: var(--jmrp-green-dark); }
.password-toggle:focus-visible { outline: 2px solid rgba(88,184,63,.45); outline-offset: 1px; }
.password-toggle svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

.activities-page-heading { display: flex; align-items: end; justify-content: space-between; gap: 18px; }
.activity-period-switch {
    display: inline-flex;
    gap: 4px;
    padding: 4px;
    margin-bottom: 12px;
    background: #e9eeeb;
    border: 1px solid #dde5df;
    border-radius: 14px;
}
.activity-period-switch button {
    min-width: 100px;
    min-height: 40px;
    padding: 0 16px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: #65716a;
    font-weight: 800;
    font-size: 12px;
}
.activity-period-switch button.active { background: white; color: var(--jmrp-green-dark); box-shadow: 0 3px 10px rgba(26,35,32,.08); }

.activity-period-nav {
    display: grid;
    grid-template-columns: 42px minmax(180px,1fr) auto 42px;
    gap: 8px;
    align-items: center;
    margin-bottom: 16px;
}
.activity-period-arrow,
.activity-period-current {
    min-height: 42px;
    border: 1px solid var(--jmrp-border);
    border-radius: 12px;
    background: white;
    color: var(--jmrp-text);
    font-weight: 800;
    font-size: 12px;
}
.activity-period-arrow:disabled { opacity: .35; cursor: default; }
.activity-period-label {
    min-height: 42px;
    padding: 5px 13px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    border: 1px solid var(--jmrp-border);
    border-radius: 12px;
    background: white;
}
.activity-period-label small { color: var(--jmrp-muted); font-size: 10px; text-transform: uppercase; letter-spacing: .08em; font-weight: 800; }
.activity-period-label strong { color: var(--jmrp-ink); font-size: 13px; text-transform: capitalize; }
.activity-period-current { padding: 0 16px; }

.activity-summary-grid {
    display: grid;
    grid-template-columns: minmax(260px, 1.5fr) repeat(3, minmax(130px, .7fr));
    gap: 12px;
    margin-bottom: 22px;
}
.activity-total-card,
.activity-stat-card {
    min-height: 132px;
    padding: 20px;
    border-radius: 20px;
    border: 1px solid var(--jmrp-border);
    background: white;
    box-shadow: 0 6px 20px rgba(35,48,56,.05);
}
.activity-total-card { color: white; border: 0; background: linear-gradient(135deg, var(--jmrp-green-dark), var(--jmrp-green)); box-shadow: 0 15px 34px rgba(67,149,46,.22); }
.activity-total-card span,
.activity-stat-card span { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .08em; font-weight: 800; opacity: .82; }
.activity-total-card strong,
.activity-stat-card strong { display: block; margin: 7px 0 3px; font-size: 31px; letter-spacing: -.04em; }
.activity-total-card small { color: rgba(255,255,255,.8); }
.activity-total-card a { display: inline-block; margin-top: 11px; font-size: 11px; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.activity-stat-card strong { color: var(--jmrp-ink); }
.activity-stat-card small { color: var(--jmrp-muted); font-size: 11px; }

.activity-section { margin-top: 24px; }
.activity-section-heading { display: flex; justify-content: space-between; align-items: end; gap: 16px; margin-bottom: 12px; }
.activity-section-heading h2 { margin: 0; color: var(--jmrp-ink); font-size: 20px; }
.activity-section-heading p { margin: 4px 0 0; color: var(--jmrp-muted); font-size: 12px; }

.activity-day-list { display: grid; gap: 10px; }
.activity-day-row {
    background: white;
    border: 1px solid var(--jmrp-border);
    border-radius: 18px;
    padding: 16px;
    box-shadow: 0 4px 16px rgba(35,48,56,.04);
}
.activity-day-row > header { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding-bottom: 11px; border-bottom: 1px solid #edf1ee; }
.activity-day-row > header div { display: flex; flex-direction: column; gap: 2px; }
.activity-day-row > header strong { color: var(--jmrp-ink); font-size: 13px; text-transform: capitalize; }
.activity-day-row > header span { color: var(--jmrp-muted); font-size: 10px; }
.activity-day-row > header b { color: var(--jmrp-green-dark); font-size: 17px; }
.activity-day-items { display: grid; gap: 3px; margin-top: 7px; }
.activity-day-item { display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: 10px; padding: 8px 6px; border-radius: 10px; }
.activity-day-item:hover { background: #f7f9f7; }
.activity-day-item div { min-width: 0; }
.activity-day-item strong,
.activity-day-item span { display: block; }
.activity-day-item strong { color: var(--jmrp-ink); font-size: 12px; }
.activity-day-item span { color: var(--jmrp-muted); font-size: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.activity-day-item b { color: var(--jmrp-ink); font-size: 12px; }
.activity-day-item small { font-size: 10px; }

.activity-month-grid { display: grid; grid-template-columns: repeat(4, minmax(140px,1fr)); gap: 10px; }
.activity-month-card {
    min-height: 102px;
    text-align: left;
    padding: 15px;
    border: 1px solid var(--jmrp-border);
    border-radius: 16px;
    background: white;
    color: var(--jmrp-text);
    box-shadow: 0 3px 12px rgba(35,48,56,.035);
}
.activity-month-card:hover { border-color: rgba(88,184,63,.45); transform: translateY(-1px); }
.activity-month-card span,
.activity-month-card strong,
.activity-month-card small { display: block; }
.activity-month-card span { text-transform: capitalize; font-size: 11px; color: var(--jmrp-muted); font-weight: 800; }
.activity-month-card strong { margin: 6px 0 2px; font-size: 21px; color: var(--jmrp-ink); }
.activity-month-card small { color: var(--jmrp-muted); font-size: 10px; }
.activity-month-card.has-hours { background: linear-gradient(145deg, #fff, #f6fbf5); border-color: rgba(88,184,63,.28); }
.activity-month-card.has-hours strong { color: var(--jmrp-green-dark); }

.affair-time-list { display: grid; gap: 9px; }
.affair-time-row { padding: 16px 17px; background: white; border: 1px solid var(--jmrp-border); border-radius: 17px; box-shadow: 0 3px 14px rgba(35,48,56,.035); }
.affair-time-head { display: flex; justify-content: space-between; gap: 14px; align-items: start; }
.affair-time-head > div { min-width: 0; }
.affair-time-head strong { display: block; color: var(--jmrp-ink); font-size: 13px; }
.affair-time-head span { display: block; margin-top: 2px; color: var(--jmrp-muted); font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.affair-time-head b { white-space: nowrap; color: var(--jmrp-ink); font-size: 15px; }
.affair-time-progress { height: 6px; margin: 11px 0 7px; overflow: hidden; border-radius: 999px; background: #edf1ee; }
.affair-time-progress span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--jmrp-green-dark), var(--jmrp-green)); }
.affair-time-meta { display: flex; justify-content: space-between; gap: 12px; color: var(--jmrp-muted); font-size: 10px; }

@media(max-width:900px) {
    .activity-summary-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .activity-total-card { grid-column: 1 / -1; }
    .activity-month-grid { grid-template-columns: repeat(3, minmax(120px,1fr)); }
}

@media(max-width:620px) {
    .activities-page-heading { display: block; }
    .activity-period-switch { display: grid; grid-template-columns: repeat(3,1fr); width: 100%; }
    .activity-period-switch button { min-width: 0; padding: 0 8px; }
    .activity-period-nav { grid-template-columns: 42px minmax(0,1fr) 42px; }
    .activity-period-current { grid-column: 1 / -1; grid-row: 2; }
    .activity-summary-grid { grid-template-columns: repeat(3, minmax(0,1fr)); gap: 8px; }
    .activity-total-card { grid-column: 1 / -1; }
    .activity-stat-card { min-height: 102px; padding: 13px; }
    .activity-stat-card strong { font-size: 23px; }
    .activity-stat-card span { font-size: 9px; }
    .activity-stat-card small { font-size: 9px; }
    .activity-month-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .affair-time-meta { display: block; }
    .affair-time-meta span { display: block; margin-top: 2px; }
}


/* V1.8.1 - Bloc PDF Mes activités */
.activity-pdf-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
    margin: 0 0 22px;
    padding: 20px 22px;
    border: 1px solid #dce3df;
    border-radius: 20px;
    background: linear-gradient(135deg, #ffffff, #f7f9f8);
    box-shadow: 0 8px 24px rgba(35,48,56,.06);
}
.activity-pdf-copy { display: flex; align-items: center; gap: 16px; min-width: 0; }
.activity-pdf-badge {
    width: 54px;
    height: 54px;
    flex: 0 0 54px;
    display: grid;
    place-items: center;
    border-radius: 15px;
    background: #243038;
    color: #fff;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .08em;
}
.activity-pdf-copy h2 { margin: 2px 0 4px; color: var(--jmrp-ink); font-size: 18px; }
.activity-pdf-copy p { margin: 0; color: var(--jmrp-muted); font-size: 11px; line-height: 1.45; }
.activity-pdf-button {
    flex: 0 0 auto;
    min-height: 54px;
    padding: 0 20px;
    background: #243038;
    color: #fff;
    box-shadow: 0 12px 24px rgba(35,48,56,.16);
}
.activity-pdf-button:hover { background: #1d272d; color: #fff; }
.activity-pdf-button span {
    display: inline-grid;
    place-items: center;
    min-width: 30px;
    height: 25px;
    margin-right: 8px;
    border-radius: 7px;
    background: rgba(255,255,255,.18);
    font-size: 9px;
    letter-spacing: .04em;
}
@media(max-width:700px) {
    .activity-pdf-card { align-items: stretch; flex-direction: column; padding: 17px; }
    .activity-pdf-copy { align-items: flex-start; }
    .activity-pdf-button { width: 100%; }
}

/* V1.9 — synchronisation Access et console administrateur */
.activity-sync-row{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin:-2px 0 14px;color:var(--jmrp-muted);font-size:10px}.activity-refresh-button{border:1px solid var(--jmrp-border);background:#fff;color:var(--jmrp-ink);border-radius:10px;padding:7px 11px;font-size:10px;font-weight:800}.activity-refresh-button:hover{border-color:rgba(88,184,63,.45);color:var(--jmrp-green-dark)}.activity-refresh-button:disabled{opacity:.5;cursor:default}

.admin-console-page{min-height:100vh;background:#f2f5f3;padding:24px}.admin-console-shell{width:min(1240px,100%);margin:0 auto}.admin-console-header{display:flex;align-items:center;justify-content:space-between;gap:24px;background:#fff;border:1px solid var(--jmrp-border);border-radius:22px;padding:22px 24px;box-shadow:0 10px 30px rgba(29,42,35,.05)}.admin-console-brand{display:flex;align-items:center;gap:20px}.admin-console-brand .admin-logo{height:48px;margin:0}.admin-console-brand h1{margin:3px 0 4px;color:var(--jmrp-ink);font-size:28px;letter-spacing:-.03em}.admin-console-brand p{margin:0;color:var(--jmrp-muted);font-size:12px}.admin-live-pill{display:flex;align-items:center;gap:8px;white-space:nowrap;border:1px solid #dce8dc;background:#f5fbf3;border-radius:999px;padding:9px 13px;color:#3d6840;font-size:11px;font-weight:800}.admin-live-pill span{width:8px;height:8px;border-radius:50%;background:var(--jmrp-green);box-shadow:0 0 0 4px rgba(88,184,63,.13)}
.admin-unlock-card{margin-top:18px;background:#fff;border:1px solid var(--jmrp-border);border-radius:22px;padding:28px;display:grid;grid-template-columns:1fr minmax(300px,430px);gap:34px;align-items:center;box-shadow:0 10px 30px rgba(29,42,35,.04)}.admin-unlock-card h2{margin:4px 0 8px;color:var(--jmrp-ink);font-size:24px}.admin-unlock-card p{margin:0;color:var(--jmrp-muted);font-size:12px;line-height:1.6}.admin-unlock-form{display:grid;gap:10px}.admin-unlock-form label{font-size:11px;font-weight:800;color:var(--jmrp-ink)}
.admin-tabs{display:flex;gap:5px;margin-top:18px;padding:5px;border:1px solid var(--jmrp-border);background:#e9eeeb;border-radius:14px;width:max-content;max-width:100%;overflow:auto}.admin-tabs button{height:38px;padding:0 16px;border:0;border-radius:10px;background:transparent;color:#607069;font-size:11px;font-weight:800;white-space:nowrap}.admin-tabs button.active{background:#fff;color:var(--jmrp-green-dark);box-shadow:0 3px 9px rgba(30,44,35,.08)}
.admin-period-toolbar{display:grid;grid-template-columns:auto minmax(280px,1fr) auto;align-items:center;gap:12px;margin-top:14px}.admin-period-switch{display:flex;gap:4px;border:1px solid var(--jmrp-border);background:#fff;padding:4px;border-radius:12px}.admin-period-switch button{height:34px;padding:0 13px;border:0;border-radius:8px;background:transparent;color:var(--jmrp-muted);font-size:10px;font-weight:800}.admin-period-switch button.active{background:var(--jmrp-green-soft);color:var(--jmrp-green-dark)}.admin-period-nav{display:grid;grid-template-columns:38px minmax(0,1fr) 38px;align-items:center;border:1px solid var(--jmrp-border);background:#fff;border-radius:12px;min-height:44px}.admin-period-nav>button{height:100%;border:0;background:transparent;color:var(--jmrp-ink);font-weight:900}.admin-period-nav>button:disabled{opacity:.3;cursor:default}.admin-period-nav>div{text-align:center;display:flex;flex-direction:column}.admin-period-nav small{text-transform:uppercase;font-size:8px;letter-spacing:.09em;color:var(--jmrp-muted);font-weight:800}.admin-period-nav strong{text-transform:capitalize;font-size:11px;color:var(--jmrp-ink)}.admin-refresh-btn{min-height:44px;white-space:nowrap}
.admin-kpi-grid{display:grid;grid-template-columns:1.35fr repeat(3,1fr);gap:12px;margin-top:14px}.admin-kpi{background:#fff;border:1px solid var(--jmrp-border);border-radius:18px;padding:18px;min-height:120px;box-shadow:0 4px 16px rgba(29,42,35,.035)}.admin-kpi span,.admin-kpi strong,.admin-kpi small{display:block}.admin-kpi span{font-size:9px;font-weight:900;letter-spacing:.09em;text-transform:uppercase;color:var(--jmrp-muted)}.admin-kpi strong{margin:9px 0 4px;color:var(--jmrp-ink);font-size:28px;letter-spacing:-.04em}.admin-kpi small{font-size:10px;color:var(--jmrp-muted)}.admin-kpi.primary{background:linear-gradient(135deg,#29353a,#1f292d);border:0}.admin-kpi.primary span,.admin-kpi.primary small{color:rgba(255,255,255,.68)}.admin-kpi.primary strong{color:#fff}
.admin-two-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.admin-panel{background:#fff;border:1px solid var(--jmrp-border);border-radius:18px;padding:18px;box-shadow:0 4px 16px rgba(29,42,35,.035)}.admin-panel-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:14px}.admin-panel-heading h2{margin:0;color:var(--jmrp-ink);font-size:18px}.admin-panel-heading p{margin:4px 0 0;color:var(--jmrp-muted);font-size:10px}.admin-panel-heading>button{border:0;background:transparent;color:var(--jmrp-green-dark);font-size:10px;font-weight:900}.admin-panel-heading>small{color:var(--jmrp-muted);font-size:9px}
.admin-ranking-list{display:grid;gap:12px}.admin-ranking-list article{display:grid;gap:5px}.admin-ranking-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.admin-ranking-head>div{min-width:0}.admin-ranking-head strong,.admin-ranking-head span{display:block}.admin-ranking-head strong{font-size:11px;color:var(--jmrp-ink)}.admin-ranking-head span{margin-top:1px;color:var(--jmrp-muted);font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-ranking-head b{font-size:11px;color:var(--jmrp-ink);white-space:nowrap}.admin-ranking-list article>small{color:var(--jmrp-muted);font-size:8px}.admin-ranking-bar{height:6px;background:#edf1ee;border-radius:999px;overflow:hidden}.admin-ranking-bar span{display:block;height:100%;border-radius:999px;background:var(--jmrp-green)}.admin-ranking-list.employee .admin-ranking-bar span{background:#64747c}
.admin-daily-panel{margin-top:12px}.admin-day-bars{height:180px;display:flex;align-items:stretch;gap:5px;overflow-x:auto;padding:8px 2px 0}.admin-day-bars article{flex:1 0 34px;min-width:34px;display:grid;grid-template-rows:1fr auto auto;gap:4px;text-align:center}.admin-day-bar{height:118px;background:#f3f6f4;border-radius:8px;display:flex;align-items:flex-end;overflow:hidden}.admin-day-bar span{width:100%;min-height:4px;background:linear-gradient(180deg,var(--jmrp-green),var(--jmrp-green-dark));border-radius:8px 8px 0 0}.admin-day-bars strong{font-size:8px;color:var(--jmrp-ink);text-transform:capitalize}.admin-day-bars small{font-size:7px;color:var(--jmrp-muted)}
.admin-table-panel,.admin-accounts-panel{margin-top:14px}.admin-search-heading{align-items:center}.admin-search{width:min(320px,42vw)}.admin-table-wrap{overflow:auto;border:1px solid #e7ece9;border-radius:12px}.admin-table{width:100%;border-collapse:collapse;min-width:760px}.admin-table th{padding:10px 12px;text-align:left;background:#f5f7f6;border-bottom:1px solid #e3e8e5;color:#6f7b75;font-size:8px;text-transform:uppercase;letter-spacing:.08em}.admin-table td{padding:11px 12px;border-bottom:1px solid #edf0ee;color:#526059;font-size:10px}.admin-table tbody tr:last-child td{border-bottom:0}.admin-table tbody tr:hover{background:#fafcfa}.admin-table td strong{color:var(--jmrp-ink)}.admin-table td.hours strong{color:var(--jmrp-green-dark);font-size:11px}.admin-code-badge{display:inline-flex;padding:4px 7px;border-radius:7px;background:#f0f3f1;color:#4d5d55;font-weight:800;font-size:9px}.admin-account-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}.admin-account-summary>div{background:#f6f8f7;border:1px solid #e4e9e6;border-radius:12px;padding:12px}.admin-account-summary strong,.admin-account-summary span{display:block}.admin-account-summary strong{font-size:20px;color:var(--jmrp-ink)}.admin-account-summary span{font-size:9px;color:var(--jmrp-muted)}
.admin-console-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 4px;color:var(--jmrp-muted);font-size:9px}.admin-console-footer a{color:var(--jmrp-green-dark);font-weight:800}

@media(max-width:900px){.admin-console-page{padding:14px}.admin-console-header{align-items:flex-start}.admin-console-brand{align-items:flex-start}.admin-live-pill{display:none}.admin-unlock-card{grid-template-columns:1fr}.admin-period-toolbar{grid-template-columns:1fr 1fr}.admin-period-nav{grid-column:1/-1;grid-row:1}.admin-period-switch{width:100%}.admin-period-switch button{flex:1}.admin-refresh-btn{width:100%}.admin-kpi-grid{grid-template-columns:repeat(2,1fr)}.admin-kpi.primary{grid-column:1/-1}.admin-two-columns{grid-template-columns:1fr}.admin-search-heading{align-items:stretch;flex-direction:column}.admin-search{width:100%}}
@media(max-width:600px){.activity-sync-row{align-items:flex-start;justify-content:space-between}.admin-console-page{padding:9px}.admin-console-header{padding:17px}.admin-console-brand{gap:12px}.admin-console-brand .admin-logo{height:36px}.admin-console-brand h1{font-size:23px}.admin-console-brand p{font-size:10px}.admin-tabs{width:100%}.admin-tabs button{flex:1;padding:0 10px}.admin-period-toolbar{grid-template-columns:1fr}.admin-period-nav,.admin-period-switch,.admin-refresh-btn{grid-column:auto;grid-row:auto}.admin-kpi-grid{gap:8px}.admin-kpi{min-height:100px;padding:14px}.admin-kpi strong{font-size:23px}.admin-panel{padding:14px}.admin-account-summary{grid-template-columns:1fr 1fr}.admin-console-footer{align-items:flex-start;flex-direction:column}}
.admin-attention-banner{margin-top:10px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 13px;border:1px solid #eadfc5;background:#fffaf0;border-radius:12px;color:#6c5b35;font-size:9px}.admin-attention-banner strong{font-size:10px;color:#584821}.admin-attention-banner span{color:#7e704f}
@media(max-width:600px){.admin-attention-banner{align-items:flex-start;flex-direction:column}}


/* V2.0 - gestion mots de passe et sécurité administration */
.user-password-action {
    display:inline-flex; align-items:center; justify-content:center; min-height:32px;
    padding:0 10px; border-radius:8px; text-decoration:none; font-size:.78rem;
    font-weight:700; color:#25323a; background:#eef2f1; white-space:nowrap;
}
.user-password-action:hover { background:#e2e9e6; }
.admin-password-unavailable {
    padding:12px 14px; border-radius:10px; background:#f4f6f5; color:#63706d;
    border:1px solid #dfe5e2; font-size:.88rem;
}
.admin-security-panel { max-width:900px; }
.admin-security-form { max-width:650px; margin-top:18px; }
@media (max-width: 760px) {
    .user-password-action { font-size:0; width:34px; padding:0; }
    .user-password-action::after { content:'🔐'; font-size:15px; }
}

/* V2.1 — Production / fiabilisation */
.production-error-banner{display:flex;align-items:center;justify-content:space-between;gap:14px}.production-error-banner>div{display:grid;gap:3px}.production-error-banner span{font-size:11px;line-height:1.45}.admin-click-row{cursor:pointer}.admin-click-row.selected{background:#f1f8ef!important;box-shadow:inset 3px 0 0 var(--jmrp-green)}
.admin-detail-card{margin-top:14px;padding:16px;border:1px solid #dfe7e2;border-radius:15px;background:linear-gradient(145deg,#fbfdfb,#f5f8f6)}.admin-detail-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:12px}.admin-detail-heading h3{margin:2px 0 0;font-size:16px;color:var(--jmrp-ink)}.admin-detail-heading>strong{font-size:19px;color:var(--jmrp-green-dark)}.admin-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.admin-detail-grid article{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;padding:11px 12px;border:1px solid #e1e7e3;border-radius:11px;background:#fff}.admin-detail-grid article>div{min-width:0}.admin-detail-grid strong,.admin-detail-grid span{display:block}.admin-detail-grid strong{font-size:10px;color:var(--jmrp-ink)}.admin-detail-grid span{font-size:8px;color:var(--jmrp-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-detail-grid b{font-size:11px;color:var(--jmrp-ink);white-space:nowrap}.admin-detail-grid small{grid-column:1/-1;font-size:8px;color:var(--jmrp-muted)}
.admin-sheet-toolbar{display:grid;grid-template-columns:auto minmax(220px,1fr) auto auto;gap:8px;align-items:center;margin-bottom:14px}.admin-sheet-toolbar>div{display:flex;flex-direction:column;text-align:center}.admin-sheet-toolbar small{font-size:8px;text-transform:uppercase;letter-spacing:.08em;color:var(--jmrp-muted);font-weight:800}.admin-sheet-toolbar strong{font-size:11px;color:var(--jmrp-ink)}.admin-sheet-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.admin-sheet-kpis article{padding:12px;border-radius:12px;border:1px solid #e2e8e4;background:#f7f9f8}.admin-sheet-kpis span,.admin-sheet-kpis strong{display:block}.admin-sheet-kpis span{font-size:8px;text-transform:uppercase;letter-spacing:.08em;color:var(--jmrp-muted);font-weight:900}.admin-sheet-kpis strong{margin-top:4px;font-size:22px;color:var(--jmrp-ink)}.admin-sheet-kpis article.ok{background:#f2faf0;border-color:#d7ead2}.admin-sheet-kpis article.ok strong{color:#3d7b35}.admin-sheet-kpis article.missing{background:#fff7f5;border-color:#efd9d4}.admin-sheet-kpis article.missing strong{color:#a24d42}.sheet-status,.audit-status{display:inline-flex;padding:4px 7px;border-radius:999px;font-size:8px;font-weight:900;white-space:nowrap}.sheet-status.ok,.audit-status.ok{background:#eaf7e7;color:#3f7439}.sheet-status.missing,.audit-status.error{background:#fff0ed;color:#a3483e}
@media(max-width:760px){.production-error-banner{align-items:stretch;flex-direction:column}.admin-detail-grid{grid-template-columns:1fr}.admin-sheet-toolbar{grid-template-columns:1fr 1fr}.admin-sheet-toolbar>div{grid-column:1/-1;grid-row:1}.admin-sheet-kpis{grid-template-columns:repeat(3,1fr)}.admin-tabs button{flex:0 0 auto}}

/* V2.3 — Congés & absences */
.leave-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px}.leave-new-button{min-width:170px}.leave-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 16px}.leave-summary-grid article{padding:14px 16px;border:1px solid var(--jmrp-border);border-radius:15px;background:#fff}.leave-summary-grid span,.leave-summary-grid strong{display:block}.leave-summary-grid span{font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:var(--jmrp-muted)}.leave-summary-grid strong{margin-top:5px;font-size:23px;color:var(--jmrp-ink)}.leave-summary-grid article.ok{background:#f3faf1;border-color:#d8ead3}.leave-summary-grid article.ok strong{color:#3f7b37}.leave-summary-grid article.refused{background:#fff7f5;border-color:#efd8d3}.leave-summary-grid article.refused strong{color:#a24d42}
.leave-tabs,.admin-leave-tabs{display:flex;gap:5px;padding:5px;border:1px solid var(--jmrp-border);background:#edf1ef;border-radius:13px;width:max-content;max-width:100%;margin-bottom:12px}.leave-tabs button,.admin-leave-tabs button{height:37px;padding:0 15px;border:0;border-radius:9px;background:transparent;color:#617069;font-size:10px;font-weight:900}.leave-tabs button.active,.admin-leave-tabs button.active{background:#fff;color:var(--jmrp-green-dark);box-shadow:0 3px 10px rgba(30,44,35,.07)}.leave-tabs button span{display:inline-grid;place-items:center;margin-left:5px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:#e58c39;color:#fff;font-size:8px}
.leave-list-panel{display:grid;gap:10px}.leave-request-card,.validation-card{border:1px solid var(--jmrp-border);border-radius:17px;background:#fff;overflow:hidden;box-shadow:0 4px 16px rgba(29,42,35,.035)}.leave-request-card.pending{border-left:4px solid #e4a33e}.leave-request-card.approved{border-left:4px solid var(--jmrp-green)}.leave-request-card.rejected{border-left:4px solid #cf675b}.leave-request-card.cancelled{border-left:4px solid #9aa5a0}.leave-request-main{width:100%;display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:13px;padding:15px;border:0;background:#fff;text-align:left}.leave-type-badge,.leave-mini-badge{display:grid;place-items:center;border-radius:12px;background:#26333a;color:#fff;font-weight:900}.leave-type-badge{width:48px;height:48px;font-size:10px;letter-spacing:.04em}.leave-mini-badge{width:38px;height:30px;font-size:9px}.leave-request-copy div{display:flex;gap:9px;align-items:baseline;flex-wrap:wrap}.leave-request-copy strong{font-size:12px;color:var(--jmrp-ink)}.leave-request-copy span{font-size:10px;color:#596861}.leave-request-copy small{display:block;margin-top:3px;font-size:9px;color:var(--jmrp-muted)}.leave-request-status{text-align:right}.leave-request-status span{display:block;font-size:10px;font-weight:900;color:var(--jmrp-ink)}.leave-request-status small{font-size:8px;color:#a56d24}.leave-request-details{border-top:1px solid #edf1ef;padding:15px;background:#fafcfa}.leave-detail-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.leave-detail-facts>div{padding:10px;border:1px solid #e7ece9;border-radius:10px;background:#fff}.leave-detail-facts span,.leave-detail-facts strong{display:block}.leave-detail-facts span{font-size:8px;text-transform:uppercase;letter-spacing:.06em;color:var(--jmrp-muted);font-weight:900}.leave-detail-facts strong{margin-top:3px;font-size:10px;color:var(--jmrp-ink)}.leave-timeline,.admin-leave-timeline{display:grid;gap:0;margin-top:14px}.leave-step,.admin-leave-timeline article{display:grid;grid-template-columns:18px 1fr;gap:8px;min-height:46px;position:relative}.leave-step i,.admin-leave-timeline article i{width:10px;height:10px;margin-top:4px;border-radius:50%;background:#ccd4d0;box-shadow:0 0 0 4px #f0f3f1}.leave-step:not(:last-child)::before,.admin-leave-timeline article:not(:last-child)::before{content:'';position:absolute;left:4px;top:17px;bottom:-2px;width:2px;background:#e0e5e2}.leave-step.approved i,.admin-leave-timeline article.approved i{background:var(--jmrp-green)}.leave-step.pending i,.admin-leave-timeline article.pending i{background:#e4a33e}.leave-step.rejected i,.admin-leave-timeline article.rejected i{background:#cf675b}.leave-step strong,.leave-step span,.leave-step small,.admin-leave-timeline strong,.admin-leave-timeline span,.admin-leave-timeline small{display:block}.leave-step strong,.admin-leave-timeline strong{font-size:10px;color:var(--jmrp-ink)}.leave-step span,.admin-leave-timeline span{font-size:9px;color:var(--jmrp-muted)}.leave-step small,.admin-leave-timeline small{margin-top:2px;font-size:8px;color:#74594c}.leave-detail-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}
.leave-validation-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:8px}.leave-validation-heading h2{margin:1px 0 0;font-size:18px;color:var(--jmrp-ink)}.validation-card{padding:15px}.validation-card-head{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:12px;align-items:center}.validation-card-head>div:nth-child(2) strong,.validation-card-head>div:nth-child(2) span,.validation-card-head>div:nth-child(2) small{display:block}.validation-card-head>div:nth-child(2) strong{font-size:12px;color:var(--jmrp-ink)}.validation-card-head>div:nth-child(2) span{font-size:10px;color:#56645e}.validation-card-head>div:nth-child(2) small{font-size:8px;color:var(--jmrp-muted)}.validation-step-badge{padding:5px 8px;border-radius:999px;background:#fff3df;color:#865c1e;font-size:8px;font-weight:900}.validation-comment{margin:12px 0;padding:10px 12px;border-radius:10px;background:#f5f7f6;color:#5e6964;font-size:10px;font-style:italic}.validation-decision-form{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px}.btn.danger{background:#b45147;color:#fff;border-color:#b45147}.btn.danger:hover{background:#9f463d}
.leave-modal-backdrop{position:fixed;inset:0;z-index:1200;background:rgba(19,28,24,.54);display:grid;place-items:center;padding:18px}.leave-modal{width:min(720px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:22px;padding:20px;box-shadow:0 30px 70px rgba(0,0,0,.25)}.leave-modal>header{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:14px}.leave-modal>header h2{margin:2px 0 0;color:var(--jmrp-ink);font-size:22px}.leave-modal>header>button{width:34px;height:34px;border:0;border-radius:10px;background:#f0f3f1;color:#46534d;font-size:22px}.leave-form-identity{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.leave-form-identity>div{padding:10px 12px;background:#f6f8f7;border-radius:11px}.leave-form-identity span,.leave-form-identity strong{display:block}.leave-form-identity span{font-size:8px;text-transform:uppercase;font-weight:900;color:var(--jmrp-muted)}.leave-form-identity strong{margin-top:2px;font-size:11px;color:var(--jmrp-ink)}.leave-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.leave-form-grid .full{grid-column:1/-1}.leave-textarea{min-height:82px;resize:vertical}.leave-form-total{margin-top:12px;padding:13px;border:1px solid #dce8d8;background:#f4faf2;border-radius:12px}.leave-form-total span,.leave-form-total strong,.leave-form-total small{display:block}.leave-form-total span{font-size:8px;text-transform:uppercase;font-weight:900;color:#64805e}.leave-form-total strong{margin:2px 0;font-size:18px;color:#376b32}.leave-form-total small{font-size:8px;color:#768473}.leave-modal>footer{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}
.calendar-cell.leave{background:#eef9eb;border-color:#bcdcb4}.legend-dot.leave{background:var(--jmrp-green)}.calendar-leave-badges{display:flex;flex-wrap:wrap;gap:2px;margin-top:3px}.calendar-leave-badges b{padding:2px 4px;border-radius:5px;background:var(--jmrp-green);color:#fff;font-size:7px}.calendar-leave-detail{display:grid;gap:6px;margin-bottom:9px}.calendar-leave-detail-row{display:flex;align-items:center;gap:9px;padding:10px;border:1px solid #d8ead3;background:#f4faf2;border-radius:11px}.calendar-leave-detail-row strong,.calendar-leave-detail-row small{display:block}.calendar-leave-detail-row strong{font-size:10px;color:#355e32}.calendar-leave-detail-row small{font-size:8px;color:#658062}
.admin-leave-module{margin-top:14px}.admin-leave-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:10px}.admin-leave-kpis article{padding:13px;border:1px solid var(--jmrp-border);border-radius:13px;background:#fff}.admin-leave-kpis span,.admin-leave-kpis strong{display:block}.admin-leave-kpis span{font-size:8px;text-transform:uppercase;letter-spacing:.07em;font-weight:900;color:var(--jmrp-muted)}.admin-leave-kpis strong{font-size:23px;color:var(--jmrp-ink)}.admin-leave-kpis .pending{background:#fffaf0}.admin-leave-kpis .approved{background:#f3faf1}.admin-leave-kpis .approved strong{color:#3f7838}.admin-leave-kpis .rejected{background:#fff6f4}.admin-leave-kpis .rejected strong{color:#a24d42}.admin-leave-filters{display:flex;gap:6px}.admin-leave-filters select{width:145px}.admin-leave-filters input{width:220px}.leave-admin-status{display:inline-flex;padding:4px 7px;border-radius:999px;font-size:8px;font-weight:900}.leave-admin-status.pending{background:#fff0d8;color:#8a6124}.leave-admin-status.approved{background:#eaf7e7;color:#3f7439}.leave-admin-status.rejected{background:#fff0ed;color:#a3483e}.leave-admin-status.cancelled{background:#edf0ef;color:#69736e}.admin-leave-request-detail{margin-top:12px;border:1px solid #e0e6e3;border-radius:14px;background:#fafcfa;padding:14px}.admin-leave-request-detail>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.admin-leave-request-detail h3{margin:2px 0;font-size:16px;color:var(--jmrp-ink)}.admin-leave-request-detail p{margin:0;color:var(--jmrp-muted);font-size:9px}.admin-leave-force{display:flex;justify-content:flex-end;gap:7px;margin-top:9px}.admin-leave-force .input{max-width:320px;margin-right:auto}.admin-leave-month-nav{display:flex;align-items:center;gap:8px}.admin-leave-month-nav button{width:31px;height:31px;border:1px solid var(--jmrp-border);background:#fff;border-radius:8px}.admin-leave-month-nav strong{text-transform:capitalize;font-size:11px}.leave-planning-scroll{overflow:auto;border:1px solid #e4e9e6;border-radius:12px}.leave-planning-grid{display:grid;min-width:max-content}.leave-planning-grid>div{min-height:31px;border-right:1px solid #edf0ee;border-bottom:1px solid #edf0ee;display:grid;place-items:center}.leave-planning-name{position:sticky;left:0;z-index:2;justify-items:start!important;padding:0 9px;background:#fff}.leave-planning-name strong,.leave-planning-name small{display:block}.leave-planning-name strong{font-size:9px;color:var(--jmrp-ink)}.leave-planning-name small{font-size:7px;color:var(--jmrp-muted)}.leave-planning-day{font-size:7px;font-weight:900;color:#4c5a54}.leave-planning-day.head,.leave-planning-name.head{position:sticky;top:0;z-index:3;background:#f5f7f6}.leave-planning-name.head{z-index:4;font-size:8px;font-weight:900}.leave-planning-day.head b,.leave-planning-day.head small{display:block}.leave-planning-day.head b{font-size:8px}.leave-planning-day.head small{font-size:6px}.leave-planning-day.occupied{background:#dff2da;color:#376b32}.admin-role-layout{display:grid;grid-template-columns:minmax(250px,.8fr) minmax(330px,1.2fr);gap:12px}.admin-role-users{display:grid;gap:5px;max-height:590px;overflow:auto}.admin-role-users button{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px;border:1px solid #e4e9e6;border-radius:10px;background:#fff;text-align:left}.admin-role-users button.active{border-color:#b9dcae;background:#f2f9f0}.admin-role-users strong,.admin-role-users small,.admin-role-users span{display:block}.admin-role-users strong{font-size:10px;color:var(--jmrp-ink)}.admin-role-users small{font-size:7px;color:var(--jmrp-muted)}.admin-role-users span{font-size:7px;color:#6c7a73;text-align:right}.admin-role-editor{padding:16px;border:1px solid #e0e6e3;border-radius:13px;background:#fafcfa}.admin-role-editor h3{margin:2px 0 12px;color:var(--jmrp-ink);font-size:17px}.admin-role-checks{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:13px}.admin-role-checks label{display:flex;align-items:center;gap:7px;padding:9px;border:1px solid #e1e7e3;border-radius:9px;background:#fff;font-size:9px;font-weight:800;color:#48564f}.admin-role-checks label.disabled{opacity:.65}.admin-role-checks input{accent-color:var(--jmrp-green)}
@media(max-width:760px){.leave-heading{display:block}.leave-new-button{width:100%;margin-top:12px}.leave-summary-grid{grid-template-columns:repeat(2,1fr)}.leave-request-main{grid-template-columns:46px minmax(0,1fr)}.leave-request-status{grid-column:2;text-align:left}.leave-detail-facts,.leave-form-identity,.leave-form-grid{grid-template-columns:1fr}.leave-form-grid .full{grid-column:auto}.validation-card-head{grid-template-columns:46px minmax(0,1fr)}.validation-step-badge{grid-column:2;width:max-content}.validation-decision-form{grid-template-columns:1fr 1fr}.validation-decision-form .input{grid-column:1/-1}.admin-leave-kpis{grid-template-columns:repeat(2,1fr)}.admin-leave-filters{width:100%;flex-wrap:wrap}.admin-leave-filters select,.admin-leave-filters input{flex:1;min-width:130px;width:auto}.admin-leave-request-detail>header,.admin-leave-force{flex-direction:column}.admin-leave-force .input{max-width:none;width:100%}.admin-role-layout{grid-template-columns:1fr}.admin-role-checks{grid-template-columns:1fr}.leave-planning-name{min-width:150px}}

/* V2.5 - info affaire */
.affaire-with-info { display: flex; align-items: center; gap: 8px; min-width: 0; }
.affaire-with-info > :first-child { min-width: 0; }
.affaire-info-bubble { position: relative; flex: 0 0 auto; }
.affaire-info-bubble > summary {
    list-style: none; width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center;
    border: 1px solid rgba(88,184,63,.42); background: var(--jmrp-green-soft); color: var(--jmrp-green-dark);
    font-size: 13px; font-weight: 900; cursor: pointer; user-select: none;
}
.affaire-info-bubble > summary::-webkit-details-marker { display: none; }
.affaire-info-bubble[open] > summary { background: var(--jmrp-green-dark); color: white; border-color: var(--jmrp-green-dark); }
.affaire-info-card {
    position: absolute; z-index: 120; top: 36px; right: 0; width: min(340px, 82vw); padding: 15px;
    border: 1px solid var(--jmrp-border); border-radius: 16px; background: white;
    box-shadow: 0 18px 45px rgba(35,48,56,.18); color: var(--jmrp-text); text-align: left;
}
.affaire-info-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding-bottom: 11px; border-bottom: 1px solid #edf1ee; }
.affaire-info-head small { display: block; font-size: 9px; font-weight: 900; letter-spacing: .1em; color: var(--jmrp-muted); }
.affaire-info-head strong { display: block; margin-top: 2px; color: var(--jmrp-ink); font-size: 16px; }
.affaire-status { white-space: nowrap; border-radius: 999px; padding: 5px 8px; font-size: 9px; font-weight: 900; }
.affaire-status.open { background: var(--jmrp-green-soft); color: var(--jmrp-green-dark); }
.affaire-status.closed { background: #f1f2f3; color: #6e767b; }
.affaire-status.unknown { background: #fff5df; color: #82611f; }
.affaire-info-list { margin: 10px 0 0; display: grid; gap: 8px; }
.affaire-info-list > div { display: grid; grid-template-columns: 105px minmax(0,1fr); gap: 10px; }
.affaire-info-list dt { color: var(--jmrp-muted); font-size: 10px; font-weight: 800; }
.affaire-info-list dd { margin: 0; color: var(--jmrp-ink); font-size: 11px; font-weight: 700; overflow-wrap: anywhere; }
.affaire-result-row { position: relative; }
.affaire-result-info { display: grid; place-items: center; background: white; }
.affaire-results { overflow: visible; }
.selected-affaire-main { display: flex; align-items: center; gap: 9px; min-width: 0; flex: 1 1 auto; }
.selected-affaire-main > div { min-width: 0; }
.selected-affaire-main span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.affaire-select-info { margin-top: 8px; display: flex; justify-content: flex-end; }

@media (max-width: 720px) {
    .affaire-info-card { position: fixed; left: 16px; right: 16px; top: 50%; transform: translateY(-50%); width: auto; max-height: 70vh; overflow: auto; }
    .affaire-info-list > div { grid-template-columns: 92px minmax(0,1fr); }
}
.login-card .input::placeholder { color: #a5ada8; opacity: 1; font-weight: 500; }

/* === V2.6 : interfaces par rôle & pilotage affaires === */
.sidebar-nav-section{margin:14px 12px 5px;padding-top:11px;border-top:1px solid rgba(255,255,255,.12);font-size:8px;font-weight:900;letter-spacing:.16em;color:rgba(255,255,255,.46)}
.role-mobile-nav{display:none}
.role-page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:18px;padding:22px 24px;border-radius:22px;background:linear-gradient(118deg,#18251f,#284a39);color:#fff;box-shadow:0 15px 34px rgba(24,37,31,.12)}
.role-page-head h1{margin:4px 0 5px;font-size:29px;color:#fff}.role-page-head p{margin:0;color:rgba(255,255,255,.72);max-width:760px}.role-page-head .eyebrow{color:#a9d9b6}.role-page-head .btn.secondary{background:#fff;border-color:#fff;color:#20352a}
.role-denied{display:flex;flex-direction:column;gap:4px;padding:18px;border:1px solid #ead8d0;border-left:4px solid #c56758;border-radius:14px;background:#fff8f6}.role-denied strong{color:#7c3f35}.role-denied span{color:#786761;font-size:11px}
.role-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-bottom:15px}.role-kpi-grid article{padding:16px 17px;border:1px solid var(--jmrp-border);border-radius:16px;background:#fff;box-shadow:0 6px 18px rgba(29,42,35,.04)}.role-kpi-grid article.primary{background:linear-gradient(135deg,#1d3528,#2f6545);color:#fff;border-color:transparent}.role-kpi-grid article.warning{background:#fff8ed;border-color:#efd6ad}.role-kpi-grid span,.role-kpi-grid small,.role-kpi-grid strong{display:block}.role-kpi-grid span{font-size:8px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--jmrp-muted)}.role-kpi-grid strong{font-size:25px;margin:5px 0 2px;color:var(--jmrp-ink)}.role-kpi-grid small{font-size:8px;color:var(--jmrp-muted)}.role-kpi-grid .primary span,.role-kpi-grid .primary small{color:rgba(255,255,255,.7)}.role-kpi-grid .primary strong{color:#fff}.role-kpi-grid .warning strong{color:#9a6523}
.card-soft{border:1px solid var(--jmrp-border);border-radius:15px;background:#f8faf9}
.project-toolbar{display:grid;grid-template-columns:auto minmax(220px,1fr) auto;gap:9px;align-items:center;padding:9px;margin-bottom:14px}.project-view-switch{display:flex;gap:4px;padding:3px;background:#e9eeeb;border-radius:10px}.project-view-switch button{height:34px;padding:0 13px;border:0;border-radius:8px;background:transparent;color:#617069;font-size:9px;font-weight:900}.project-view-switch button.active{background:#fff;color:#254b36;box-shadow:0 2px 8px rgba(30,44,35,.08)}
.project-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.project-card{padding:17px;border:1px solid var(--jmrp-border);border-radius:18px;background:#fff;box-shadow:0 6px 22px rgba(29,42,35,.045);transition:.18s ease}.project-card:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(29,42,35,.08)}.project-card.selected{border-color:#8fc0a0;box-shadow:0 0 0 2px rgba(69,132,89,.08)}.project-card.has-warning{border-top:3px solid #d89b45}.project-card-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.project-affaire-id strong,.project-affaire-id span{display:block}.project-affaire-id strong{font-size:18px;color:#1b3025}.project-affaire-id span{margin-top:3px;font-size:10px;color:#65726b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:250px}.project-star{width:34px;height:34px;border:1px solid #dfe6e2;border-radius:10px;background:#fff;color:#b7c0bb;font-size:18px;cursor:pointer}.project-star.active{color:#d99a2f;background:#fff9ed;border-color:#eed7a9}.project-card-meta{display:flex;flex-wrap:wrap;gap:5px;margin:12px 0}.project-card-meta span{font-size:8px;font-weight:800;color:#66736c;background:#f2f5f3;border-radius:999px;padding:5px 7px}.project-hours-row{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.project-hours-row>div{padding:9px;border-radius:10px;background:#f7f9f8}.project-hours-row small,.project-hours-row strong{display:block}.project-hours-row small{font-size:7px;color:#849088;text-transform:uppercase;font-weight:900}.project-hours-row strong{margin-top:2px;font-size:13px;color:#263a30}.project-progress-block{margin-top:12px}.project-progress-block>div:first-child{display:flex;justify-content:space-between;font-size:8px;color:#65726b;font-weight:800}.project-progress-track{height:7px;margin:6px 0;border-radius:999px;background:#e7ece9;overflow:hidden}.project-progress-track i{display:block;height:100%;background:linear-gradient(90deg,#45825d,#71aa7d);border-radius:inherit}.project-progress-block small{font-size:8px;color:#869188}.project-no-budget{margin-top:12px;padding:9px;border-radius:9px;background:#fafbfa;border:1px dashed #d5ddd8;color:#849088;font-size:8px}.project-warning{margin-top:9px;padding:8px 9px;border-radius:9px;background:#fff7e9;color:#8b6125;font-size:8px;line-height:1.4}.project-card-actions{display:flex;gap:7px;align-items:center;margin-top:13px}.project-card-actions .btn.secondary{flex:1}.danger-text{color:#9b4b42!important}
.role-empty-card{min-height:300px;border:1px dashed #cfd9d3;border-radius:20px;background:#fbfcfb;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px}.role-empty-icon{width:58px;height:58px;border-radius:16px;background:#e7f1e9;color:#386f4b;display:grid;place-items:center;font-weight:950;font-size:18px}.role-empty-card h2{margin:12px 0 4px;color:#263a30}.role-empty-card p{margin:0 0 14px;color:#77837d;font-size:11px}
.project-detail-shell{margin-top:18px;border:1px solid var(--jmrp-border);border-radius:20px;background:#f4f7f5;padding:15px}.project-detail-header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:5px 5px 14px}.project-detail-header h2{margin:3px 0;font-size:21px;color:#20352a}.project-detail-header p{margin:0;color:#718078;font-size:10px}.project-detail-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.7fr);gap:12px}.project-detail-main,.project-detail-side{display:flex;flex-direction:column;gap:12px}.project-pilotage-form{display:grid;grid-template-columns:1fr 1fr;gap:9px}.project-pilotage-form .full{grid-column:1/-1}.project-pilotage-form .btn{width:max-content}.project-pilotage-comparison{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:13px}.project-pilotage-comparison>div{padding:10px;border-radius:10px;background:#f5f8f6}.project-pilotage-comparison span,.project-pilotage-comparison strong{display:block}.project-pilotage-comparison span{font-size:7px;text-transform:uppercase;color:#7c8881;font-weight:900}.project-pilotage-comparison strong{font-size:13px;margin-top:3px;color:#274031}.project-poste-list,.project-activity-list,.role-ranking,.role-leave-mini-list{display:flex;flex-direction:column}.project-poste-list>div,.role-ranking>div{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid #edf1ef}.project-poste-list>div:last-child,.role-ranking>div:last-child{border-bottom:0}.project-poste-list span{font-size:9px;color:#56655d}.project-poste-list strong{font-size:10px;color:#263a30}.project-activity-list>div{padding:9px 0;border-bottom:1px solid #edf1ef}.project-activity-list strong,.project-activity-list span,.project-activity-list small{display:block}.project-activity-list strong{font-size:9px;color:#273a30}.project-activity-list span{font-size:8px;color:#718078;margin-top:2px}.project-activity-list small{font-size:8px;color:#8a766d;margin-top:3px;line-height:1.35}
.project-picker{width:min(760px,calc(100vw - 24px));max-height:88vh}.project-picker header p{margin:3px 0 0;color:#75817a;font-size:9px}.project-picker-search{display:grid;grid-template-columns:1fr auto;gap:8px;margin:12px 0}.project-search-results{display:flex;flex-direction:column;max-height:520px;overflow:auto}.project-search-results article{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 3px;border-bottom:1px solid #edf1ef}.project-search-results article>div{min-width:0}.project-search-results strong,.project-search-results span,.project-search-results small{display:block}.project-search-results strong{font-size:12px;color:#23382c}.project-search-results span{font-size:9px;color:#56655d;margin-top:2px}.project-search-results small{font-size:8px;color:#89938e;margin-top:3px}.project-assigned-badge{padding:5px 8px;border-radius:999px;background:#e8f3e9;color:#3d764b;font-size:8px!important;font-weight:900;white-space:nowrap}
.role-table-card{margin-top:12px}.role-leave-mini-list>div{display:grid;grid-template-columns:minmax(160px,.7fr) 1.4fr auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid #edf1ef}.role-leave-mini-list>div:last-child{border-bottom:0}.role-leave-mini-list strong{font-size:10px;color:#273a30}.role-leave-mini-list span{font-size:9px;color:#6d7972}.role-leave-mini-list b{font-size:10px;color:#315c42}.role-ranking span strong,.role-ranking span small{display:block}.role-ranking span strong{font-size:10px;color:#263a30}.role-ranking span small{font-size:8px;color:#7c8881;margin-top:2px}.role-ranking b{font-size:11px;color:#315c42}

/* Administration V2.6 - rangement inspiré de l'application FCSER */
.admin-workspace{display:grid;grid-template-columns:220px minmax(0,1fr);gap:14px;align-items:start}.admin-tabs.admin-tabs-vertical{position:sticky;top:12px;display:flex;flex-direction:column;align-items:stretch;width:100%;padding:10px;background:linear-gradient(180deg,#18251f,#243a2f);border:0;border-radius:18px;box-shadow:0 12px 30px rgba(24,37,31,.12)}.admin-tabs.admin-tabs-vertical button{width:100%;height:38px;text-align:left;padding:0 11px;color:rgba(255,255,255,.76);border-radius:9px}.admin-tabs.admin-tabs-vertical button.active{background:rgba(255,255,255,.12);color:#fff;box-shadow:inset 3px 0 0 #72b77f}.admin-nav-title{margin:12px 10px 5px;font-size:7px;font-weight:950;letter-spacing:.15em;color:rgba(255,255,255,.38)}.admin-nav-title:first-child{margin-top:4px}.admin-workspace-content{min-width:0}.admin-password-privacy{display:flex;flex-direction:column;gap:4px;padding:12px;border:1px solid #dce5df;border-left:4px solid #4d855f;border-radius:11px;background:#f6faf7;margin-bottom:12px}.admin-password-privacy strong{font-size:10px;color:#2f563c}.admin-password-privacy span{font-size:9px;color:#6f7e75;line-height:1.45}

@media(max-width:1050px){.project-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-detail-grid{grid-template-columns:1fr}.admin-workspace{grid-template-columns:180px minmax(0,1fr)}}
@media(max-width:760px){.role-mobile-nav{display:flex;gap:6px;overflow:auto;padding:8px 12px;background:#fff;border-bottom:1px solid var(--jmrp-border)}.role-mobile-nav a{flex:0 0 auto;padding:7px 10px;border-radius:999px;background:#f1f4f2;color:#5b6861;font-size:8px;font-weight:900}.role-mobile-nav a.active{background:#254b36;color:#fff}.role-page-head{display:block;padding:18px}.role-page-head h1{font-size:24px}.role-page-head .btn{width:100%;margin-top:12px}.role-kpi-grid{grid-template-columns:repeat(2,1fr)}.project-toolbar{grid-template-columns:1fr}.project-card-grid{grid-template-columns:1fr}.project-detail-shell{padding:9px}.project-pilotage-form,.project-pilotage-comparison{grid-template-columns:1fr 1fr}.project-pilotage-form .full{grid-column:1/-1}.project-picker-search{grid-template-columns:1fr}.role-leave-mini-list>div{grid-template-columns:1fr auto}.role-leave-mini-list span{grid-column:1/-1;grid-row:2}.admin-workspace{grid-template-columns:1fr}.admin-tabs.admin-tabs-vertical{position:static;display:grid;grid-template-columns:repeat(2,1fr)}.admin-nav-title{grid-column:1/-1}.admin-tabs.admin-tabs-vertical button{text-align:center}.admin-console-shell{padding-left:8px;padding-right:8px}}
.admin-role-help-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:0 0 13px}.admin-role-help-grid>div{padding:9px 10px;border:1px solid #e4e9e6;border-radius:9px;background:#fff}.admin-role-help-grid strong,.admin-role-help-grid span{display:block}.admin-role-help-grid strong{font-size:9px;color:#2c4436}.admin-role-help-grid span{margin-top:2px;font-size:7px;line-height:1.4;color:#79867f}@media(max-width:760px){.admin-role-help-grid{grid-template-columns:1fr}}

/* === JMRP Time 1.0.0 officielle : congés / RH === */
.leave-config-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;margin-bottom:14px;border:1px solid #ead8ae;border-left:4px solid #d69a39;border-radius:14px;background:#fffaf0}.leave-config-banner>div{display:grid;gap:3px}.leave-config-banner strong{font-size:11px;color:#6f4e1f}.leave-config-banner span,.leave-config-banner small{font-size:9px;line-height:1.45;color:#826d4c}.leave-balance-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}.leave-balance-cards article{min-height:118px;padding:16px;border:1px solid var(--jmrp-border);border-radius:17px;background:#fff;box-shadow:0 5px 18px rgba(29,42,35,.035);display:flex;flex-direction:column;justify-content:space-between}.leave-balance-cards article.primary{border:0;color:#fff;background:linear-gradient(135deg,#244a36,#559566);box-shadow:0 14px 30px rgba(52,112,72,.18)}.leave-balance-cards article>div span,.leave-balance-cards article>div small,.leave-balance-cards article>strong,.leave-balance-cards article>small{display:block}.leave-balance-cards article>div span{font-size:9px;text-transform:uppercase;letter-spacing:.08em;font-weight:900}.leave-balance-cards article>div small,.leave-balance-cards article>small{font-size:8px;color:var(--jmrp-muted)}.leave-balance-cards article.primary small{color:rgba(255,255,255,.72)}.leave-balance-cards article>strong{font-size:27px;color:var(--jmrp-ink);letter-spacing:-.04em}.leave-balance-cards article.primary>strong{color:#fff}.leave-contract-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-bottom:14px;padding:10px;border:1px solid #e0e6e2;border-radius:14px;background:#f7f9f8}.leave-contract-strip>div{padding:8px 10px;border-radius:9px;background:#fff}.leave-contract-strip span,.leave-contract-strip strong{display:block}.leave-contract-strip span{font-size:7px;text-transform:uppercase;letter-spacing:.07em;font-weight:900;color:var(--jmrp-muted)}.leave-contract-strip strong{margin-top:3px;font-size:9px;color:var(--jmrp-ink)}.leave-balance-detail-panel{padding:15px;margin-bottom:16px;border:1px solid var(--jmrp-border);border-radius:17px;background:#fff}.leave-balance-table-wrap{overflow:auto}.leave-balance-table{width:100%;border-collapse:collapse;font-size:9px}.leave-balance-table th{padding:8px 9px;border-bottom:1px solid #dfe6e2;text-align:right;color:#78857e;font-size:7px;text-transform:uppercase;letter-spacing:.07em}.leave-balance-table th:first-child{text-align:left}.leave-balance-table td{padding:10px 9px;border-bottom:1px solid #edf1ef;text-align:right;color:#45544c}.leave-balance-table td:first-child{text-align:left}.leave-balance-table td strong,.leave-balance-table td small{display:block}.leave-balance-table td strong{font-size:10px;color:#273a30}.leave-balance-table td small{margin-top:2px;font-size:7px;color:#8a9690}.leave-balance-table td b{font-size:11px;color:#315d42}.leave-balance-table tr.not-configured{opacity:.58}.leave-my-list{margin-top:4px}.leave-request-balance-preview{display:flex;justify-content:space-between;align-items:center;margin-top:8px;padding:10px 12px;border:1px solid #dce7df;border-radius:10px;background:#f5faf5}.leave-request-balance-preview span{font-size:9px;color:#65736b}.leave-request-balance-preview strong{font-size:13px;color:#315d42}
.rh-page-head{margin-bottom:14px}.rh-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}.rh-kpi-grid article{padding:14px;border:1px solid var(--jmrp-border);border-radius:15px;background:#fff}.rh-kpi-grid article.pending{background:#fffaf0}.rh-kpi-grid article.approved{background:#f3faf1}.rh-kpi-grid span,.rh-kpi-grid strong,.rh-kpi-grid small{display:block}.rh-kpi-grid span{font-size:8px;text-transform:uppercase;letter-spacing:.07em;font-weight:900;color:var(--jmrp-muted)}.rh-kpi-grid strong{margin:3px 0;font-size:24px;color:var(--jmrp-ink)}.rh-kpi-grid small{font-size:8px;color:#849087}.rh-tabs{display:flex;gap:5px;overflow:auto;padding:5px;margin-bottom:12px;border:1px solid var(--jmrp-border);border-radius:13px;background:#edf1ef}.rh-tabs button{flex:0 0 auto;height:37px;padding:0 13px;border:0;border-radius:9px;background:transparent;color:#617069;font-size:9px;font-weight:900}.rh-tabs button.active{background:#fff;color:var(--jmrp-green-dark);box-shadow:0 3px 10px rgba(30,44,35,.07)}.rh-tabs button span{display:inline-grid;place-items:center;min-width:18px;height:18px;margin-left:4px;border-radius:999px;background:#e58c39;color:#fff;font-size:7px}.rh-config-warning{margin-bottom:12px}.rh-muted{color:#9aa49f;font-size:9px}.rh-decision-card{margin-top:12px;padding:14px;border:1px solid #dce5df;border-left:4px solid #d79b40;border-radius:14px;background:#fbfcfb}.rh-decision-card h3{margin:2px 0;color:#263a30}.rh-decision-card p{margin:0;color:#76827b;font-size:9px}.rh-decision-card blockquote{margin:10px 0;padding:9px 11px;border-left:3px solid #d7dfda;background:#f4f6f5;color:#5d6962;font-size:9px}.rh-balance-table td:nth-child(n+4){font-weight:800}.rh-employee-balance-detail{margin-top:12px;padding:14px;border:1px solid #dfe6e2;border-radius:15px;background:#f8faf9}.rh-employee-balance-detail>header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}.rh-employee-balance-detail h3{margin:2px 0;color:#263a30}.rh-employee-balance-detail p{margin:0;color:#7a867f;font-size:9px}.rh-balance-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.rh-balance-detail-grid article{padding:12px;border:1px solid #e0e6e2;border-radius:12px;background:#fff}.rh-balance-detail-grid article.not-configured{opacity:.55}.rh-balance-detail-grid article>div{display:flex;justify-content:space-between;gap:8px}.rh-balance-detail-grid article>div strong,.rh-balance-detail-grid article>div small{display:block}.rh-balance-detail-grid article>div strong{font-size:10px;color:#2b4034}.rh-balance-detail-grid article>div small{font-size:7px;color:#88938d}.rh-balance-detail-grid article>b{display:block;margin:8px 0;font-size:21px;color:#315f43}.rh-balance-detail-grid dl{display:grid;grid-template-columns:1fr auto;gap:3px 8px;margin:0}.rh-balance-detail-grid dt,.rh-balance-detail-grid dd{margin:0;font-size:8px}.rh-balance-detail-grid dt{color:#7c8982}.rh-balance-detail-grid dd{font-weight:800;color:#45544c}.rh-two-columns{display:grid;grid-template-columns:minmax(300px,.85fr) minmax(380px,1.15fr);gap:12px}.rh-editor-panel{position:sticky;top:12px}.rh-contract-list,.rh-profile-list{display:flex;flex-direction:column;gap:5px;max-height:620px;overflow:auto}.rh-contract-list button,.rh-profile-list button{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px;border:1px solid #e3e8e5;border-radius:10px;background:#fff;text-align:left}.rh-contract-list button.active,.rh-profile-list button.active{border-color:#a8d0b0;background:#f2f9f2}.rh-contract-list button>div,.rh-profile-list button>div{min-width:0}.rh-contract-list strong,.rh-contract-list span,.rh-contract-list small,.rh-profile-list strong,.rh-profile-list span,.rh-profile-list small{display:block}.rh-contract-list strong,.rh-profile-list strong{font-size:10px;color:#2a3e33}.rh-contract-list span,.rh-profile-list span{margin-top:2px;font-size:8px;color:#75827b}.rh-contract-list small,.rh-profile-list small{font-size:8px;color:#7b887f;text-align:right}.rh-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.rh-form-grid .full{grid-column:1/-1}.rh-weekdays{display:flex;flex-wrap:wrap;gap:6px}.rh-weekdays label,.rh-check-line label{display:flex;align-items:center;gap:5px;padding:7px 9px;border:1px solid #e1e7e3;border-radius:9px;background:#fff;font-size:8px;font-weight:800;color:#536159}.rh-check-line{display:flex;flex-wrap:wrap;gap:7px}.rh-editor-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:11px}.rh-editor-actions .btn.danger{margin-right:auto}.rh-holiday-list,.rh-adjustment-list{display:flex;flex-direction:column;max-height:620px;overflow:auto}.rh-holiday-list>div,.rh-adjustment-list>div{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #edf1ef}.rh-holiday-list span,.rh-adjustment-list span{min-width:0}.rh-holiday-list strong,.rh-holiday-list small,.rh-adjustment-list strong,.rh-adjustment-list small{display:block}.rh-holiday-list strong,.rh-adjustment-list strong{font-size:9px;color:#2d4135}.rh-holiday-list small,.rh-adjustment-list small{font-size:8px;color:#7d8983;line-height:1.4}.rh-adjustment-list b{white-space:nowrap;font-size:11px}.rh-adjustment-list b.positive{color:#3f7a4b}.rh-adjustment-list b.negative{color:#a24d42}.rh-settings-panel{max-width:780px}.rh-settings-explainer{display:flex;flex-direction:column;gap:4px;margin-bottom:14px;padding:12px;border:1px solid #dce6df;border-left:4px solid #4b865d;border-radius:11px;background:#f5faf6}.rh-settings-explainer strong{font-size:10px;color:#315b3e}.rh-settings-explainer span{font-size:9px;line-height:1.5;color:#6e7b73}.rh-settings-form{max-width:560px}.rh-settings-current{display:block;margin-top:10px;color:#818d86;font-size:8px}.responsible-leave-list{display:grid;gap:9px}.responsible-leave-list article{padding:13px;border:1px solid #e0e6e2;border-radius:13px;background:#fff}.responsible-leave-list .validation-decision-form{margin-top:10px}.admin-role-only-module{margin-top:0}
@media(max-width:1050px){.leave-balance-cards,.rh-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.leave-contract-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.rh-balance-detail-grid{grid-template-columns:1fr}.rh-two-columns{grid-template-columns:1fr}.rh-editor-panel{position:static}}
@media(max-width:760px){.leave-balance-cards,.rh-kpi-grid,.leave-contract-strip{grid-template-columns:1fr 1fr}.leave-balance-table{min-width:760px}.rh-form-grid{grid-template-columns:1fr}.rh-form-grid .full{grid-column:auto}.rh-check-line{display:grid}.rh-decision-card .validation-decision-form,.responsible-leave-list .validation-decision-form{grid-template-columns:1fr 1fr}.rh-decision-card .validation-decision-form .input,.responsible-leave-list .validation-decision-form .input{grid-column:1/-1}.rh-employee-balance-detail>header{flex-direction:column}.rh-config-warning{align-items:stretch;flex-direction:column}}

/* === V1.1.0 : finition UX, recherches et feuille d'heures === */
.affaire-info-bubble > summary { padding:0; }
.affaire-info-icon { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.affaire-info-bubble[open] .affaire-info-icon { stroke:white; }

.admin-account-row-clickable { cursor:pointer; border-radius:12px; padding-left:10px; padding-right:10px; transition:background .15s ease,border-color .15s ease,transform .15s ease; outline:none; }
.admin-account-row-clickable:hover,.admin-account-row-clickable:focus-visible { background:#f4f9f3; box-shadow:inset 0 0 0 1px #cfe4cc; }
.admin-account-row-clickable.selected { background:#eef8eb; box-shadow:inset 3px 0 0 var(--jmrp-green-dark); }
.admin-account-open { flex:0 0 auto; color:var(--jmrp-green-dark); font-size:9px; font-weight:900; white-space:nowrap; }
#admin-account-editor { scroll-margin-top:24px; }

.daily-extra-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:4px; }
.daily-extra-details { display:grid; grid-template-columns:minmax(130px,.55fr) minmax(220px,1.15fr) minmax(280px,1.3fr); gap:12px; align-items:end; margin-top:12px; padding:13px; border:1px solid #dfe7e1; border-radius:14px; background:#f7faf7; }
.daily-extra-details .form-group { min-width:0; }
.daily-extra-details .input { width:100%; max-width:100%; box-sizing:border-box; }
.daily-extra-details .choice-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.daily-extra-details .choice-pill { min-width:0; justify-content:flex-start; padding:0 10px; }
.daily-extra-details .choice-pill span { min-width:0; overflow-wrap:anywhere; }
.daily-extra-location { min-width:0; }
.inline-day-note { justify-content:center; text-align:center; }

.sheet-preview-scroll { overflow-x:auto; margin-top:16px; border:1px solid #e5ebe7; border-radius:14px; background:#fff; }
.sheet-preview-table { width:100%; min-width:1040px; table-layout:fixed; border-collapse:collapse; font-size:10px; }
.sheet-preview-table .col-client { width:14%; }
.sheet-preview-table .col-affaire { width:12%; }
.sheet-preview-table .col-postes { width:17%; }
.sheet-preview-table .col-day { width:7.2%; }
.sheet-preview-table .col-total { width:6.6%; }
.sheet-preview-table th,.sheet-preview-table td { padding:9px 6px; vertical-align:middle; overflow-wrap:anywhere; word-break:normal; }
.sheet-preview-table th { position:sticky; top:0; z-index:1; }
.sheet-preview-client,.sheet-preview-postes { line-height:1.35; }
.sheet-preview-postes { color:#66756d; font-size:9px; }
.sheet-day-cell { min-width:0; }
.sheet-day-cell > strong,.sheet-row-total strong { color:#253b2f; white-space:nowrap; }
.sheet-zero { color:#a0aaa4; }
.sheet-day-allocations { display:grid; gap:4px; min-width:0; }
.sheet-day-allocations span { display:block; padding:4px 3px; border-radius:7px; background:#f2f7f1; color:#40544a; font-size:7.5px; line-height:1.2; text-align:left; overflow-wrap:anywhere; }
.sheet-day-allocations strong { color:var(--jmrp-green-dark); white-space:nowrap; }
.sheet-row-total { background:#f6faf5; }
.sheet-action-bar { padding:12px; border:1px solid #e1e7e3; border-radius:15px; background:#f8faf9; align-items:center; }
.sheet-action-bar .btn { min-height:48px; }
.sheet-pdf-button { min-height:48px; }

@media (max-width:900px) {
    .daily-extra-options { grid-template-columns:1fr 1fr; }
    .daily-extra-details { grid-template-columns:1fr 1fr; }
    .daily-extra-details .vehicle-choice-group { grid-column:1/-1; }
}
@media (max-width:640px) {
    .daily-extra-options,.daily-extra-details { grid-template-columns:1fr; }
    .daily-extra-details .vehicle-choice-group { grid-column:auto; }
    .daily-extra-details .choice-row { grid-template-columns:1fr; }
    .sheet-preview-card { padding:14px; }
}
.affaire-search-wrap .search-icon svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; }

/* ========================================================================== */
/* JMRP Time 1.2.0 - tableaux de bord métier, anomalies et notifications      */
/* ========================================================================== */
.notification-shell{position:relative;margin-left:auto}
.notification-button{width:42px;height:42px;border:1px solid #e1e6e2;background:#fff;border-radius:12px;display:grid;place-items:center;position:relative;cursor:pointer;color:#35443b}
.notification-button:hover{border-color:#75c043;background:#f7fbf4}.notification-button svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.notification-button>span{position:absolute;right:-5px;top:-6px;min-width:19px;height:19px;padding:0 5px;border-radius:10px;background:#e33d3d;color:#fff;font-size:11px;font-weight:800;display:grid;place-items:center;border:2px solid #fff}
.notification-popover{position:absolute;right:0;top:50px;width:min(390px,calc(100vw - 28px));background:#fff;border:1px solid #e0e7e1;border-radius:16px;box-shadow:0 16px 50px rgba(23,39,28,.18);z-index:120;overflow:hidden}
.notification-popover header{display:flex;justify-content:space-between;gap:14px;padding:15px 16px;border-bottom:1px solid #edf0ed;background:#fbfcfb}.notification-popover header div{display:flex;flex-direction:column}.notification-popover header strong{font-size:15px}.notification-popover header small{color:#788279;font-size:12px;margin-top:2px}.notification-popover header button{border:0;background:transparent;font-size:22px;color:#6c756e;cursor:pointer}
.notification-list{max-height:390px;overflow:auto}.notification-item{display:flex;gap:11px;padding:13px 16px;border-bottom:1px solid #eff2ef;text-decoration:none;color:inherit}.notification-item:hover{background:#f7faf7}.notification-item i{width:9px;height:9px;border-radius:50%;background:#4f9c35;margin-top:6px;flex:0 0 auto}.notification-item.warning i{background:#e49a23}.notification-item.danger i{background:#df4343}.notification-item.success i{background:#49a855}.notification-item span{display:flex;flex-direction:column;gap:3px}.notification-item strong{font-size:13px;color:#1f2b23}.notification-item small{font-size:12px;line-height:1.35;color:#69746c}.notification-empty{padding:24px 18px;display:flex;flex-direction:column;text-align:center;color:#7a837c}.notification-empty strong{color:#263129;margin-bottom:4px}.notification-popover footer{padding:9px 12px;background:#fafbfa;text-align:right}

.home-ops-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:16px 0 18px}.home-ops-card{background:#fff;border:1px solid #e3e8e4;border-radius:16px;padding:16px;display:grid;grid-template-columns:auto 1fr auto;gap:13px;align-items:center;text-decoration:none;color:inherit;box-shadow:0 4px 18px rgba(32,48,37,.04)}.home-ops-card:hover{border-color:#94c979;transform:translateY(-1px)}.home-ops-card.warning{border-color:#f0d2a1;background:#fffdf8}.home-ops-card.ok{border-color:#dce9d8}.home-ops-icon{width:38px;height:38px;border-radius:12px;background:#eff7ec;color:#4f9f35;display:grid;place-items:center;font-weight:900;font-size:18px}.home-ops-card.warning .home-ops-icon{background:#fff0d7;color:#c27a0f}.home-ops-card>div{min-width:0;display:flex;flex-direction:column}.home-ops-card small{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#758078}.home-ops-card strong{font-size:18px;color:#1e2a22;margin:2px 0}.home-ops-card span:not(.home-ops-icon){font-size:12px;color:#738078;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home-ops-card>b{font-size:18px;color:#7e8981}

.anomaly-filter-bar{display:flex;gap:12px;align-items:end;margin-bottom:16px}.anomaly-filter-bar .form-group{min-width:170px}.anomaly-kpis{margin-bottom:16px}.anomaly-list{display:flex;flex-direction:column}.anomaly-row{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:14px;align-items:center;padding:13px 8px;text-decoration:none;color:inherit;border-bottom:1px solid #edf0ed}.anomaly-row:last-child{border-bottom:0}.anomaly-row:hover{background:#fafcfa}.anomaly-row.warning{border-left:3px solid #e5a03c}.anomaly-row.danger{border-left:3px solid #d94646}.anomaly-date{width:48px;height:48px;border-radius:12px;background:#f3f6f3;display:flex;flex-direction:column;align-items:center;justify-content:center}.anomaly-date strong{font-size:18px}.anomaly-date small{text-transform:uppercase;font-size:10px;color:#78847b}.anomaly-copy{display:flex;flex-direction:column;gap:3px}.anomaly-copy small{color:#6e786f}.anomaly-action{font-size:12px;color:#579e3e;font-weight:700}.anomaly-empty .role-empty-icon{background:#edf7e9;color:#4d9b35}

.role-mini-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:-2px 0 16px}.role-mini-strip>div{background:#fff;border:1px solid #e5e9e5;border-radius:12px;padding:11px 14px;display:flex;justify-content:space-between;align-items:center}.role-mini-strip span{font-size:12px;color:#717b73}.role-mini-strip strong{font-size:16px;color:#253028}.role-mini-strip .warning{border-color:#efcf9e;background:#fffaf2}
.team-status{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:750;background:#f1f3f1;color:#667067}.team-status.present{background:#eaf6e6;color:#43892e}.team-status.leave{background:#eaf2fb;color:#3974a8}.team-status.missing{background:#fff0df;color:#b56d09}.team-status.rest{background:#f2f3f4;color:#757c78}.team-hours{display:block;margin-top:4px;color:#7b857d}.team-alert-count{font-size:12px;font-weight:700;color:#b56d09}.team-ok{color:#4d9c35;font-weight:900}.panel-count{min-width:34px;height:34px;padding:0 9px;border-radius:12px;background:#eef3ef;color:#526057;display:grid;place-items:center;font-weight:800}.panel-count.warning{background:#fff0da;color:#b9710c}.panel-count.ok{background:#eaf6e6;color:#43892e}
.team-anomaly-list{display:flex;flex-direction:column;gap:8px}.team-anomaly-row{display:grid;grid-template-columns:minmax(170px,1fr) 80px minmax(230px,1.4fr);gap:14px;align-items:center;padding:11px 13px;border-radius:11px;background:#fafbfa;border:1px solid #edf0ed}.team-anomaly-row.warning{border-left:3px solid #e4a03e}.team-anomaly-row.danger{border-left:3px solid #d94747}.team-anomaly-row span{display:flex;flex-direction:column}.team-anomaly-row small,.team-anomaly-row em{color:#758078;font-size:12px;font-style:normal}.leave-insight-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0 12px}.leave-insight-row>span{background:#f7f9f7;border:1px solid #e5e9e5;border-radius:10px;padding:9px 11px;display:flex;flex-direction:column}.leave-insight-row>span.warning{background:#fff8ed;border-color:#efd09d}.leave-insight-row small{color:#778179;font-size:11px}.leave-insight-row strong{font-size:14px;margin-top:2px}.leave-insight-row em{font-size:11px;color:#846b48;font-style:normal;margin-top:2px}

.project-attention-panel{margin-bottom:16px}.project-alert-list{display:flex;flex-direction:column;gap:7px}.project-alert-list button{width:100%;display:grid;grid-template-columns:minmax(160px,.8fr) minmax(250px,1.5fr) auto;gap:14px;align-items:center;border:1px solid #eee2cf;background:#fffaf4;border-radius:11px;padding:10px 12px;text-align:left;cursor:pointer}.project-alert-list button:hover{border-color:#dfb26c}.project-alert-list span{display:flex;flex-direction:column}.project-alert-list small{color:#7b817c}.project-alert-list em{font-style:normal;color:#9a650d;font-size:12px}.project-alert-list b{font-size:12px;color:#5a8f43}.project-projection{margin-top:9px;border-top:1px dashed #dfe4df;padding-top:8px;display:flex;align-items:center;gap:9px;font-size:11px;color:#6f7972}.project-projection strong{font-size:13px;color:#273329}.project-projection small{margin-left:auto;color:#b56b0a}.project-pilotage-comparison .warning{background:#fff5e8;border-color:#efcf9c}

.rh-kpi-grid-extended{grid-template-columns:repeat(6,minmax(0,1fr))}.rh-alert-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:16px}.rh-contract-alert-list{display:flex;flex-direction:column;gap:7px}.rh-contract-alert-list button{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;width:100%;border:1px solid #e8ece8;background:#fff;border-radius:10px;padding:11px;text-align:left;cursor:pointer}.rh-contract-alert-list button:hover{border-color:#92c779}.rh-contract-alert-list button span{display:flex;flex-direction:column}.rh-contract-alert-list small{color:#758078}.rh-contract-alert-list em{font-style:normal;background:#fff1dd;color:#b16b0a;border-radius:999px;padding:4px 7px;font-size:11px}.rh-employee-summary-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:12px 0}.rh-employee-summary-strip span{padding:10px 12px;background:#f7f9f7;border-radius:10px;display:flex;flex-direction:column}.rh-employee-summary-strip small{color:#78817a}.rh-employee-summary-strip strong{font-size:13px;margin-top:2px}.rh-employee-history{margin-top:14px;border-top:1px solid #e7ebe7;padding-top:12px;display:flex;flex-direction:column;gap:6px}.rh-employee-history>strong{font-size:13px}.rh-employee-history>span{display:flex;align-items:center;gap:7px;font-size:12px;color:#5e6961}.rh-employee-history em{margin-left:auto;font-style:normal}

.planning-month-shell{display:flex;flex-direction:column;gap:14px;margin-bottom:16px}.planning-month-head{display:flex;justify-content:space-between;gap:16px;align-items:end;background:#fff;border:1px solid #e4e9e4;border-radius:15px;padding:16px}.planning-month-head h2{margin:2px 0}.planning-month-head p{margin:0;color:#707a72}.planning-period-picker{display:flex;gap:8px}.planning-period-picker select{min-width:145px}.planning-period-picker .year-input{width:105px}.planning-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.planning-kpi-grid article{background:#fff;border:1px solid #e4e9e4;border-radius:14px;padding:14px;display:flex;flex-direction:column}.planning-kpi-grid span{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#747e76}.planning-kpi-grid strong{font-size:25px;margin:2px 0;color:#273229}.planning-kpi-grid small{font-size:11px;color:#7a837c}.planning-kpi-grid .ok{border-top:3px solid #5aa443}.planning-kpi-grid .warning{border-top:3px solid #e3a13b}.planning-kpi-grid .danger{border-top:3px solid #da4a4a}.planning-closure-card{display:flex;justify-content:space-between;gap:16px;align-items:center;border:1px solid #e3e8e3;border-radius:14px;padding:14px 16px;background:#fff}.planning-closure-card.closed{background:#f5fbf3;border-color:#cfe4c8}.planning-closure-card>div:first-child{display:flex;gap:11px;align-items:center}.planning-lock-icon{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#fff0dc;color:#b8710b;font-weight:900}.planning-closure-card.closed .planning-lock-icon{background:#e4f3df;color:#448d31}.planning-closure-card>div:first-child div{display:flex;flex-direction:column}.planning-closure-card small{color:#718077}.planning-closure-actions{display:flex;gap:8px;align-items:center}.planning-closure-actions .input{min-width:240px}.planning-table-panel{margin:0}.planning-status{display:inline-flex;flex-direction:column;padding:5px 8px;border-radius:8px;font-size:11px;font-weight:700}.planning-status.complete{background:#e9f5e5;color:#438b2f}.planning-status.incomplete{background:#fff1dd;color:#a9670c}.planning-status.missing{background:#fde9e9;color:#b53838}.planning-status small{font-weight:500;margin-top:2px}

.direction-today-grid,.direction-budget-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:14px}.direction-today-grid article,.direction-budget-grid article{background:#fff;border:1px solid #e4e9e4;border-radius:15px;padding:15px;display:flex;flex-direction:column}.direction-today-grid span,.direction-budget-grid span{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#727d74}.direction-today-grid strong,.direction-budget-grid strong{font-size:28px;color:#253127;margin:3px 0}.direction-today-grid small,.direction-budget-grid small{font-size:11px;color:#7b857d}.direction-hero-kpi{background:linear-gradient(135deg,#27452f,#397548)!important;border-color:transparent!important}.direction-hero-kpi span,.direction-hero-kpi strong,.direction-hero-kpi small{color:#fff!important}.direction-budget-grid .ok{border-top:3px solid #57a441}.direction-budget-grid .warning{border-top:3px solid #e3a13b}.direction-budget-grid .danger{border-top:3px solid #d94a4a}.direction-health-panel{margin-bottom:16px}.direction-project-status{display:inline-flex;border-radius:999px;padding:5px 8px;font-size:11px;font-weight:700;white-space:nowrap}.direction-project-status.ok{background:#e8f5e4;color:#438c2f}.direction-project-status.warning{background:#fff1dc;color:#a8660c}.direction-project-status.danger{background:#fde8e8;color:#b63b3b}.direction-project-status.neutral{background:#f0f2f0;color:#6e7770}.cell-sub{display:block;color:#7a837c;font-size:10px;margin-top:2px}.cell-sub.danger{color:#bc3e3e}.button-count{margin-left:6px;background:rgba(255,255,255,.24);padding:2px 6px;border-radius:999px}

@media(max-width:1100px){.rh-kpi-grid-extended{grid-template-columns:repeat(3,minmax(0,1fr))}.direction-today-grid,.direction-budget-grid,.planning-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rh-alert-grid{grid-template-columns:1fr}.team-anomaly-row{grid-template-columns:minmax(160px,1fr) 70px}.team-anomaly-row em{grid-column:1/-1}.project-alert-list button{grid-template-columns:1fr auto}.project-alert-list em{grid-column:1/-1}.home-ops-grid{grid-template-columns:1fr 1fr}.home-ops-card:last-child{grid-column:1/-1}}
@media(max-width:760px){.notification-shell{margin-left:auto}.notification-popover{position:fixed;right:12px;top:68px}.home-ops-grid,.role-mini-strip,.planning-kpi-grid,.direction-today-grid,.direction-budget-grid,.rh-kpi-grid-extended{grid-template-columns:1fr}.home-ops-card:last-child{grid-column:auto}.anomaly-filter-bar{display:grid;grid-template-columns:1fr 1fr}.anomaly-filter-bar .form-group{min-width:0}.anomaly-filter-bar .btn{grid-column:1/-1}.anomaly-row{grid-template-columns:52px 1fr}.anomaly-action{grid-column:2}.leave-insight-row{grid-template-columns:1fr}.planning-month-head,.planning-closure-card{align-items:stretch;flex-direction:column}.planning-period-picker,.planning-closure-actions{flex-wrap:wrap}.planning-period-picker .input,.planning-closure-actions .input{flex:1;min-width:130px}.rh-employee-summary-strip{grid-template-columns:1fr}.project-alert-list button{grid-template-columns:1fr}.project-alert-list b{justify-self:start}}

/* JMRP Time 1.3.0 - RH : suivi des saisies en direct */
.rh-live-tab-badge{display:inline-flex;align-items:center;justify-content:center;margin-left:5px;padding:2px 5px;border-radius:999px;background:#e8f5e7;color:#397848;font-size:7px;font-style:normal;font-weight:900;letter-spacing:.05em}.rh-tabs button.active .rh-live-tab-badge{background:#4f9659;color:#fff}.rh-live-panel{overflow:hidden}.rh-live-heading{align-items:center}.rh-live-state{display:grid;grid-template-columns:8px auto;gap:1px 6px;align-items:center;justify-items:start;min-width:132px;padding:8px 11px;border:1px solid #d9eadc;border-radius:11px;background:#f5fbf5}.rh-live-state i{width:8px;height:8px;border-radius:999px;background:#4c9d58;box-shadow:0 0 0 4px rgba(76,157,88,.12)}.rh-live-state span{font-size:8px;font-weight:900;letter-spacing:.08em;color:#367743}.rh-live-state small{grid-column:1/-1;margin-top:2px;color:#78847d;font-size:8px}.rh-live-toolbar{display:grid;grid-template-columns:auto 145px 145px minmax(190px,1fr) auto;gap:8px;align-items:end;margin:12px 0}.rh-live-toolbar .form-group{margin:0}.rh-live-toolbar label{font-size:8px}.rh-live-presets{display:flex;gap:4px;padding:4px;border:1px solid #dfe6e1;border-radius:10px;background:#f0f3f1}.rh-live-presets button{height:33px;padding:0 10px;border:0;border-radius:7px;background:transparent;color:#65726b;font-size:8px;font-weight:900;cursor:pointer}.rh-live-presets button.active{background:#fff;color:#397748;box-shadow:0 2px 7px rgba(33,52,40,.08)}.rh-live-refresh{height:39px;white-space:nowrap}.rh-live-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:10px 0 12px}.rh-live-kpis article{padding:11px 12px;border:1px solid #e0e7e2;border-radius:12px;background:#fafcfb}.rh-live-kpis span,.rh-live-kpis strong,.rh-live-kpis small{display:block}.rh-live-kpis span{font-size:7px;font-weight:900;letter-spacing:.06em;color:#7e8983;text-transform:uppercase}.rh-live-kpis strong{margin:3px 0;color:#2d4435;font-size:18px}.rh-live-kpis small{color:#8a948e;font-size:8px}.rh-live-table-wrap{max-height:560px;overflow:auto;border:1px solid #e3e8e5;border-radius:12px}.rh-live-table{min-width:max-content;margin:0}.rh-live-table th,.rh-live-table td{min-width:84px;text-align:center}.rh-live-table thead th{position:sticky;top:0;z-index:4;background:#f4f7f5}.rh-live-table thead th small,.rh-live-table thead th strong{display:block}.rh-live-table thead th small{font-size:7px;color:#8a948e;text-transform:capitalize}.rh-live-table thead th strong{font-size:8px;color:#405046}.rh-live-table .rh-live-sticky{position:sticky;left:0;z-index:3;min-width:190px;text-align:left;background:#fff;box-shadow:6px 0 8px -9px #314239}.rh-live-table thead .rh-live-sticky{z-index:6;background:#f4f7f5}.rh-live-table td.rh-live-sticky strong,.rh-live-table td.rh-live-sticky small{display:block}.rh-live-table td.rh-live-sticky strong{font-size:9px;color:#2b4033}.rh-live-table td.rh-live-sticky small{margin-top:2px;font-size:7px;color:#87918b}.rh-live-day-cell{padding:4px!important}.rh-live-day-cell button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:100%;min-width:72px;min-height:42px;padding:5px;border:1px solid transparent;border-radius:8px;background:transparent;cursor:pointer}.rh-live-day-cell button.has-hours{border-color:#cfe4d1;background:#f1f8f1}.rh-live-day-cell button.has-hours:hover{border-color:#82bb89;background:#e8f4e9}.rh-live-day-cell button.empty{color:#a4ada7}.rh-live-day-cell button strong{font-size:9px;color:inherit}.rh-live-day-cell button.has-hours strong{color:#356e40}.rh-live-day-cell button small{font-size:7px;color:#718078}.rh-live-total{font-weight:900;color:#315e3d;white-space:nowrap}.rh-live-detail{margin-top:12px;padding:13px;border:1px solid #dce7df;border-radius:13px;background:#f8fbf9}.rh-live-detail header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:9px}.rh-live-detail h3{margin:2px 0 0;color:#2c4234;font-size:14px;text-transform:capitalize}.rh-live-detail header>strong{padding:7px 10px;border-radius:9px;background:#e8f4e9;color:#397447;font-size:15px}.rh-live-entry-list{display:grid;gap:6px}.rh-live-entry-list article{display:grid;grid-template-columns:70px minmax(160px,1fr) minmax(180px,1.4fr) auto;gap:10px;align-items:center;padding:9px 10px;border:1px solid #e4e9e5;border-radius:10px;background:#fff}.rh-live-entry-list article>b{color:#356f42;font-size:12px}.rh-live-entry-list article>div strong,.rh-live-entry-list article>div span{display:block}.rh-live-entry-list article>div strong{font-size:9px;color:#2c4034}.rh-live-entry-list article>div span{font-size:8px;color:#7a867f}.rh-live-entry-list article>p{margin:0;color:#5f6c64;font-size:8px;line-height:1.35}.rh-live-entry-list article>small{color:#7e8982;font-size:8px;white-space:nowrap}
@media(max-width:1100px){.rh-live-toolbar{grid-template-columns:1fr 1fr 1fr}.rh-live-presets{grid-column:1/-1}.rh-live-search{grid-column:1/3}.rh-live-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.rh-live-entry-list article{grid-template-columns:60px 1fr}.rh-live-entry-list article>p,.rh-live-entry-list article>small{grid-column:2}}
@media(max-width:760px){.rh-live-heading{align-items:stretch;flex-direction:column}.rh-live-state{align-self:flex-start}.rh-live-toolbar{grid-template-columns:1fr 1fr}.rh-live-presets,.rh-live-search{grid-column:1/-1}.rh-live-refresh{grid-column:1/-1}.rh-live-kpis{grid-template-columns:1fr 1fr}.rh-live-table .rh-live-sticky{min-width:145px}.rh-live-detail header{align-items:flex-start;flex-direction:column}.rh-live-entry-list article{grid-template-columns:52px 1fr}.rh-live-entry-list article>p,.rh-live-entry-list article>small{grid-column:1/-1}.rh-live-entry-list article>small{white-space:normal}}

/* ========================================================================== */
/* JMRP Time 1.4.0 - optimisation pointage, RH et génération FORM-02          */
/* ========================================================================== */
.personal-pdf-storage{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:14px 0 0;padding:13px 15px;border:1px solid #dfe7e1;border-radius:15px;background:#f8faf9}.personal-pdf-storage>div{min-width:0}.personal-pdf-storage span,.personal-pdf-storage strong,.personal-pdf-storage small{display:block}.personal-pdf-storage strong{margin:3px 0;color:#2d4235;font-size:12px}.personal-pdf-storage small{max-width:760px;color:#7b8780;font-size:9px;line-height:1.45}.calendar-edit-hint{display:inline-flex;margin-top:6px;padding:4px 7px;border-radius:8px;background:#edf7eb;color:#397348;font-size:8px;font-weight:900}.project-status-filter{min-width:145px}.admin-employee-tools{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.admin-employee-tools .admin-search{min-width:230px}.rh-employee-create-modal{max-width:620px}.rh-page-head .btn{flex:0 0 auto}.rh-kpi-grid-simple{grid-template-columns:repeat(4,minmax(0,1fr))}.rh-tabs{scrollbar-width:thin}.leave-other-reason .hint{display:block;margin-top:5px;line-height:1.4}.affaire-live-search-hint{font-size:8px;color:#7b8780}.sheet-preview-table{min-width:940px}.sheet-preview-table td{max-width:0}.sheet-preview-table td strong,.sheet-preview-table td span{max-width:100%}.daily-extra-card{overflow:hidden}.daily-extra-details{max-width:100%;box-sizing:border-box}.daily-extra-details>*{min-width:0}
@media(max-width:900px){.personal-pdf-storage{align-items:flex-start}.admin-employee-tools{width:100%;justify-content:flex-start}.admin-employee-tools .admin-search{flex:1 1 220px}.rh-kpi-grid-simple{grid-template-columns:repeat(2,minmax(0,1fr))}.project-status-filter{min-width:125px}}
@media(max-width:640px){.personal-pdf-storage{flex-direction:column}.personal-pdf-storage .btn{width:100%}.admin-employee-tools{display:grid;grid-template-columns:1fr}.admin-employee-tools .admin-search{min-width:0;width:100%}.rh-page-head{align-items:stretch;flex-direction:column}.rh-page-head .btn{width:100%}.rh-kpi-grid-simple{grid-template-columns:1fr 1fr}.sheet-preview-table{min-width:860px}}
