:root {
    --ink: #24303a;
    --muted: #71808d;
    --paper: #fffdf8;
    --canvas: #000000;
    --line: #d8d1c4;
    --nav: #263640;
    --nav-light: #344955;
    --blue: #5f747f;
    --amber: #e58b2a;
    --green: #31965a;
    --danger: #c83f3a;
    --return: #68737a;
    --remark-bg: #f8fbfc;
    --remark-border: #d8e4ea;
    --remark-accent: #45a9dc;
    --expense-bg: #fff8ec;
    --expense-border: #e8c991;
    --expense-accent: #e3a034;
    --document-bg: #eef8f2;
    --document-border: #bddbc8;
    --document-accent: #31965a;
    --shadow: 0 12px 35px rgba(51, 43, 31, .12);
}

* { box-sizing: border-box; }
.unified-dialog-action-hidden{display:none!important}
.full-edit-hidden-action{display:none!important}
.timesheet-edit-template #add-meal,.timesheet-edit-template [data-open-document-dialog],.timesheet-edit-template [data-open-remark-dialog]{display:none!important}
.timesheet-actions-dialog .timesheet-actions-menu{display:grid;gap:10px}
.timesheet-actions-dialog .timesheet-actions-menu button{width:100%;min-height:56px;margin:0;font-size:18px;font-weight:700}
.timesheet-actions-dialog .timesheet-actions-menu .danger{background:#cf403b;color:#fff}
.timesheet-form-template{width:100%;max-width:none}
.timesheet-form-template>.page-heading{align-items:flex-start}
.timesheet-form-template>.page-heading h1{margin-top:0}
.timesheet-form-template .form-grid{align-items:end}
.timesheet-form-template .main-date-field{border:2px solid var(--green);border-radius:10px;background:#f1faf5;padding:10px}
.timesheet-form-template .live-sheet-totals{grid-template-columns:repeat(5,minmax(0,1fr))}
.timesheet-form-template .paper-section{border-top:1px solid #d8e5eb;padding-top:14px}
.timesheet-form-template .edit-entry-row,.timesheet-form-template .edit-meal-row,.timesheet-form-template .edit-article-row{border-left:4px solid var(--blue);border-radius:9px}
@media(max-width:760px){.timesheet-form-template .live-sheet-totals{grid-template-columns:repeat(2,minmax(0,1fr))}}
.timesheet-new-pending-additions{margin-top:22px;background:var(--document-bg);border:1px solid var(--document-border)!important}
.timesheet-new-pending-additions h2{margin:0 0 6px}
.timesheet-new-add-toolbar{margin-top:12px}
.timesheet-new-template [data-route-picker]{display:none!important}
.site-question-dialog{width:min(460px,calc(100% - 24px));padding:0;border:0;border-radius:14px;background:#fff;box-shadow:0 22px 75px rgba(0,0,0,.48)}
.site-question-dialog::backdrop{background:rgba(11,27,37,.62);backdrop-filter:blur(2px)}
.site-question-card{padding:24px;text-align:left}
.site-question-card h2{margin:0 0 9px;color:var(--ink);font-size:20px}
.site-question-card p{margin:0 0 20px;color:var(--muted);font-size:15px}
.site-question-actions{display:flex;align-items:center;justify-content:flex-end;gap:.5cm}
.site-question-actions button{min-width:112px;margin:0}
@media(max-width:480px){.site-question-card{padding:20px}.site-question-actions{display:grid;grid-template-columns:1fr 1fr}.site-question-actions button{width:100%;min-width:0}}

/* Modification d'une ligne depuis la fiche, présentation identique à la vue Personnel. */
.timesheet-edit-entry-summary{display:block;width:100%;margin:0 0 8px;padding:12px 14px;border:1px solid #c7dce8;border-left:4px solid var(--blue);border-radius:8px;background:#fff;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
button.timesheet-edit-entry-summary:hover,
button.timesheet-edit-entry-summary:focus,
button.timesheet-edit-entry-summary:focus-visible,
button.timesheet-edit-entry-summary:active{background:#fff!important;background-color:#fff!important;background-image:none!important;border-color:#79b9dc!important;color:var(--ink)!important;box-shadow:0 0 0 2px rgba(69,169,220,.12)!important;filter:none!important;transform:none!important;text-align:left!important;outline:none!important}
.timesheet-edit-entry-summary .entry-project-number{color:var(--blue);font-weight:800}
.timesheet-edit-entry-summary .entry-work-time{color:#2f995c;font-weight:800}
.timesheet-edit-entry-summary .entry-task-label{color:#c02c91;font-weight:800}
.timesheet-task-panel{display:block;width:100%;border:1px solid #c7dce8;border-left:4px solid var(--blue);border-radius:9px;background:#fff;overflow:hidden}
.timesheet-task-panel>.timesheet-edit-entry-summary{margin:0;border:0!important;border-radius:0;box-shadow:none!important}
.timesheet-task-panel>.timesheet-task-additions{margin:0;border:0;border-top:1px solid #bcdcca;border-left:0;border-radius:0;background:#f0faf4}
.timesheet-task-panel>.timesheet-task-additions[hidden]{display:none}
.edit-entry-row.timesheet-line-editor{display:none}
.timesheet-line-dialog{width:min(1040px,calc(100% - 24px));padding:0;border:0;border-radius:14px;background:#fff;box-shadow:0 22px 75px rgba(0,0,0,.46)}
.timesheet-line-dialog::backdrop{background:rgba(11,27,37,.7);backdrop-filter:blur(2px)}
.timesheet-line-dialog-card{padding:22px}
.timesheet-line-dialog-card .edit-entry-row{display:grid!important;margin:12px 0 0}
.timesheet-line-dialog-card .edit-entry-row .remove-row{display:none}
#entry-rows.edit-entry-rows{display:flex;flex-direction:column;gap:12px}
@media(max-width:760px){.timesheet-line-dialog-card{padding:16px}}
:where(.site-remark-element,.remark-panel){padding:12px 14px;border:1px solid var(--remark-border);border-left:4px solid var(--remark-accent);border-radius:8px;background:var(--remark-bg)}
:where(.site-expense-element,.expense-panel){padding:12px 14px;border:1px solid var(--expense-border);border-left:4px solid var(--expense-accent);border-radius:8px;background:var(--expense-bg)}
:where(.site-document-element,.document-panel){padding:12px 14px;border:1px solid var(--document-border);border-left:4px solid var(--document-accent);border-radius:8px;background:var(--document-bg)}
:where(.site-remark-element,.site-expense-element,.site-document-element,.remark-panel,.expense-panel,.document-panel)>:first-child{margin-top:0}
:where(.site-remark-element,.site-expense-element,.site-document-element,.remark-panel,.expense-panel,.document-panel)>:last-child{margin-bottom:0}
html { min-height: 100%; background: var(--canvas); }
body {
    margin: 0;
    min-height: 100vh;
    color: var(--ink);
    background:
        var(--canvas);
    font: 14px/1.45 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

a { color: #17658f; text-decoration: none; }
a:hover { text-decoration: underline; }
.danger-text { color: var(--danger); }
.financial-chart {
    height: 240px;
    display: grid;
    grid-template-columns: repeat(12, minmax(34px, 1fr));
    gap: 10px;
    align-items: end;
    margin: 20px 0 8px;
    padding: 18px 14px 8px;
    border: 1px solid var(--line);
    background: #f7f6f2;
}
.financial-month { min-width: 0; text-align: center; }
.financial-bars { height: 185px; display: flex; gap: 3px; align-items: end; justify-content: center; }
.financial-bar { display: block; width: 12px; min-height: 2px; border-radius: 3px 3px 0 0; }
.financial-bar.invoiced, .legend-invoiced { background: var(--blue); }
.financial-bar.paid, .legend-paid { background: var(--green); }
.chart-legend { display: flex; gap: 8px; align-items: center; justify-content: flex-end; color: var(--muted); }
.chart-legend span { width: 12px; height: 12px; display: inline-block; border-radius: 2px; margin-left: 12px; }
main {
    width: min(920px, calc(100% - 300px));
    margin: 0 auto 0 270px;
    padding: 34px 28px 60px;
}
main.wide { width: min(1260px, calc(100% - 300px)); max-width: none; }

.binder-nav {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 20;
    width: 225px;
    display: flex;
    flex-direction: column;
    color: white;
    background: var(--nav);
    box-shadow: 8px 0 24px rgba(25, 35, 41, .18);
}
.binder-brand {
    display: flex;
    gap: 12px;
    align-items: center;
    padding: 18px 16px;
    color: white;
    border-bottom: 1px solid rgba(255,255,255,.1);
}
.binder-brand:hover { text-decoration: none; background: rgba(255,255,255,.04); }
.binder-brand > span:last-child { min-width: 0; }
.binder-brand strong, .binder-brand small { display: block; }
.binder-brand strong { font-size: 16px; letter-spacing: .02em; }
.binder-brand small {
    color: #b9c7ce;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}
.binder-logo {
    display: grid;
    flex: 0 0 38px;
    height: 44px;
    place-items: center;
    color: var(--nav);
    background: #f3c461;
    border-radius: 4px 10px 10px 4px;
    font-weight: 900;
    box-shadow: inset 5px 0 rgba(0,0,0,.12);
}
.binder-nav nav { padding: 15px 0 15px 12px; }
.binder-nav nav a {
    display: flex;
    gap: 12px;
    align-items: center;
    margin: 4px 0;
    padding: 9px 13px;
    color: #dce5e9;
    border-radius: 8px 0 0 8px;
}
.binder-nav nav a:hover { background: var(--nav-light); text-decoration: none; }
.binder-nav nav a.active {
    color: #fff;
    background: #49545a;
    font-weight: 750;
}
.tab-icon {
    display: grid;
    width: 25px;
    height: 25px;
    place-items: center;
    border: 1px solid currentColor;
    border-radius: 6px;
    font-size: 14px;
}
.binder-account {
    margin-top: auto;
    padding: 14px 16px 18px;
    border-top: 1px solid rgba(255,255,255,.1);
}
.binder-account span, .binder-account a { display: block; }
.binder-account span { margin-bottom: 7px; font-weight: 700; }
.binder-account a { color: #bdcbd2; font-size: 13px; margin-top: 5px; }

.card {
    position: relative;
    background: var(--paper);
    border: 1px solid rgba(144, 129, 103, .25);
    border-radius: 5px 14px 14px 5px;
    padding: 21px;
    box-shadow: var(--shadow);
}
.card::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 7px;
    background: linear-gradient(90deg, #c8bda9, #ece5d9);
    border-radius: 5px 0 0 5px;
}
h1, h2 { line-height: 1.2; }
h1 { margin: 0 0 13px; font-size: clamp(22px, 3vw, 30px); }
h2 { margin-top: 23px; font-size: 17px; }
.eyebrow {
    margin: 0 0 5px;
    color: var(--blue);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.page-heading {
    display: flex;
    gap: 25px;
    justify-content: space-between;
    align-items: start;
}
.page-heading p { margin-top: 0; color: var(--muted); }
.template-actions {
    display: flex;
    flex: 0 0 auto;
    justify-content: flex-end;
    align-items: center;
    gap: 8px;
    margin-left: auto;
}
.template-actions .button,
.template-actions button {
    width: auto;
    min-width: 100px;
    margin: 0;
    text-align: center;
}
.template-action-source-hidden { display: none !important; }
.generated-page-heading { margin-bottom: 14px; }

.folder-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin: 22px 0 27px;
}
.folder {
    position: relative;
    min-height: 98px;
    padding: 23px 17px 14px;
    color: white;
    border-radius: 5px 12px 12px 12px;
    box-shadow: 0 8px 20px rgba(45, 53, 58, .15);
    transition: transform .18s ease, box-shadow .18s ease;
}
.folder::before {
    content: "";
    position: absolute;
    top: -10px;
    left: 0;
    width: 42%;
    height: 22px;
    background: inherit;
    border-radius: 7px 12px 0 0;
}
.folder:hover { transform: translateY(-3px); box-shadow: 0 13px 24px rgba(45, 53, 58, .2); text-decoration: none; }
.folder span, .folder small { display: block; position: relative; }
.folder span { font-size: 16px; font-weight: 750; }
.folder small { margin-top: 5px; color: rgba(255,255,255,.82); }
.folder-blue { background: #337fa9; }
.folder-amber { background: #c58f35; }
.folder-green { background: #4d876f; }
.folder-slate { background: #60727e; }

.paper-section {
    padding-top: 4px;
    border-top: 1px solid var(--line);
}
.document-list { list-style: none; padding: 0; }
.document-list li { border-bottom: 1px solid #e4ded2; }
.document-list li > a {
    display: flex;
    gap: 12px;
    align-items: center;
    padding: 13px 8px;
    color: var(--ink);
}
.document-list li > a:hover { background: #f5f1e9; text-decoration: none; }
.document-list li > a > span:nth-child(2) { flex: 1; }
.document-list strong, .document-list small { display: block; }
.paper-icon { color: var(--blue); font-size: 19px; }

form { display: grid; gap: 14px; }
label { display: grid; gap: 6px; font-weight: 650; }
label.check { display: flex; align-items: center; gap: 8px; }
label.check input { width: auto; }
input, select, textarea, button {
    width: 100%;
    font: inherit;
    padding: 9px 10px;
    color: var(--ink);
    background: #fff;
    border: 1px solid #bfc6c9;
    border-radius: 7px;
}
input:focus, select:focus, textarea:focus {
    outline: 3px solid rgba(40,121,168,.18);
    border-color: var(--blue);
}
button, .button {
    display: inline-block;
    width: auto;
    padding: 9px 14px;
    color: #fff;
    background: var(--green);
    border: 0;
    border-radius: 7px;
    cursor: pointer;
    font-weight: 750;
    text-align: center;
}
button:hover, .button:hover { filter: brightness(.94); text-decoration: none; }
.button.secondary, .back-button { background: var(--return); }
.button-add { background: #2f9950 !important; color: #fff; }
.button-save { background: #6fbe83 !important; color: #fff; }
.button-edit { background: #5d9fce !important; color: #fff; }
.danger-button { background: #c94135 !important; color: #fff; }
.project-selected-address { margin-bottom: 12px; padding: 12px 14px; border: 1px solid var(--line); border-left: 3px solid var(--accent); border-radius: 7px; background: #fff; }
.project-selected-address p { margin: 4px 0 0; }
.project-address-dialog { width: min(720px, calc(100vw - 32px)); }
.mobile-site-address [data-route-address] strong { color: var(--ink); font-size: 1.05em; }
.route-modal-destination { margin: -4px 0 12px; text-align: center; font-weight: 800; color: var(--ink); }
.action-green { background: #31965a !important; color: #fff !important; }
.action-red { background: #c83f3a !important; color: #fff !important; }
.action-gray { background: #68737a !important; color: #fff !important; }
.action-gray:hover,
.action-gray:focus-visible,
.button.secondary:hover,
.button.secondary:focus-visible,
.back-button:hover,
.back-button:focus-visible {
    background: #59636a !important;
    color: #fff !important;
}
.action-blue { background: #2879a8 !important; color: #fff !important; }
.button.edit-action, button.edit-action { background: var(--amber); color: #21170c; }
button.danger, .button.danger { background: var(--danger); color: #fff; }
.mini-action {
    display: inline-block;
    margin-left: 5px;
    padding: 3px 9px;
    border-radius: 5px;
    font-size: 12px;
    font-weight: 750;
}
.mini-action.edit-action { color: #21170c; background: var(--amber); }
.mini-action:hover { text-decoration: none; filter: brightness(.94); }
.clickable-client-row{cursor:pointer;transition:background-color .15s ease,box-shadow .15s ease}
.clickable-client-row:hover{background:#eef8fd}
.clickable-client-row:focus{outline:2px solid #48a8df;outline-offset:-2px;background:#eef8fd}
.clickable-client-row td:first-child{border-left:3px solid transparent}
.clickable-client-row:hover td:first-child,.clickable-client-row:focus td:first-child{border-left-color:#48a8df}
.client-identity strong{display:block;font-size:16px;font-weight:800;line-height:1.25;color:#223846}
.client-identity small{display:block;margin-top:4px;font-size:12px;font-weight:650;color:#6d7f8b}
.free-project-button{display:block;width:100%;margin:10px 0 12px;padding:11px 14px;text-align:left}
.free-project-button[aria-expanded="true"]{border-color:#e78b1c;background:#fff3e3;color:#6c430d}
.timesheet-new-template #add-entry.client-required{background:var(--amber)!important;border-color:var(--amber)!important;color:#fff!important}
.timesheet-new-template #add-entry.client-required:disabled{opacity:.72!important;cursor:not-allowed!important;box-shadow:none!important}
.timesheet-new-template .timesheet-new-add-toolbar button.client-required{background:var(--amber)!important;border-color:var(--amber)!important;color:#fff!important}
.timesheet-new-template .timesheet-new-add-toolbar button.client-required:disabled{opacity:.72!important;cursor:not-allowed!important;box-shadow:none!important}
:is(.timesheet-new-template,.timesheet-edit-template) .entry-task-number{grid-column:1/-1;display:block;color:#d43f3a;font-size:20px;font-weight:700;line-height:1.2;margin:0 0 2px}
:is(.timesheet-new-template,.timesheet-edit-template) .entry-task-number::after{content:" / Intervention #" attr(data-intervention)}
#clock-free-project[hidden],#free-project-fields[hidden]{display:none!important}
.sortable-column{display:inline-flex;align-items:center;gap:5px;color:inherit;text-decoration:none;white-space:nowrap}
.sortable-column:hover{color:#1678ad;text-decoration:none}

fieldset {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    padding: 12px;
    background: #faf7f1;
    border: 1px solid var(--line);
    border-radius: 8px;
}
legend { padding: 0 6px; font-weight: 750; }
.error, .success, .notice { padding: 12px 14px; border-radius: 7px; }
.error { background: #f8deda; color: #832f2a; }
.edit-entry-row.row-invalid {
  border-color: #c83f37;
  box-shadow: 0 0 0 2px rgba(200, 63, 55, .14);
}
.client-validation-error[hidden] { display: none; }
.task-theme-list {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  min-width: 160px;
}
.task-theme-tag {
  display: inline-flex;
  padding: 3px 7px;
  border: 1px solid #b9d8e8;
  border-radius: 999px;
  background: #edf7fc;
  color: #254d63;
  font-size: .75rem;
  white-space: nowrap;
}
.success { background: #dcefe4; color: #2d684d; }
.notice { background: #e4eff5; }
small { color: var(--muted); }
details { padding: 17px 0; border-top: 1px solid var(--line); }
summary { margin-bottom: 14px; cursor: pointer; }

.totals {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 9px;
    margin: 15px 0;
}
.totals div {
    padding: 10px 7px;
    text-align: center;
    background: #f1eee7;
    border-bottom: 3px solid var(--amber);
    border-radius: 7px;
}
.totals strong, .totals span { display: block; }
.totals span { margin-top: 4px; color: var(--muted); font-size: 13px; }
.entries { padding-left: 20px; }
.entries li { margin: 8px 0; }
.filters { grid-template-columns: repeat(4, 1fr); align-items: end; }
.form-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.article-line { display: grid; grid-template-columns: 3fr 1fr; gap: 12px; margin-bottom: 10px; }
.danger-zone { margin-top: 26px; padding-top: 18px; border-top: 1px solid #e7c2bf; }
.inline-form { display: inline-block; margin-left: 6px; }
.inline-form button { width: auto; }
.invoice-sheet { margin: 22px 0; padding: 24px; background: #fff; border: 1px solid var(--line); border-radius: 8px; }
.invoice-total { display: flex; justify-content: flex-end; gap: 30px; padding: 18px; font-size: 20px; }
.selection-list { max-height: 330px; overflow: auto; padding: 12px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.table-wrap {
    overflow: auto;
    border: 1px solid var(--line);
    border-radius: 8px;
}
table { width: 100%; border-collapse: collapse; background: #fff; }
th, td { padding: 11px; text-align: left; white-space: nowrap; border-bottom: 1px solid #e4ded2; }
th { color: #4d5a63; background: #eeeae2; font-size: 13px; text-transform: uppercase; letter-spacing: .04em; }
.status {
    display: inline-block;
    padding: 4px 8px;
    color: #53616b;
    background: #e8edf1;
    border-radius: 20px;
    font-size: 12px;
}
.status-approved { color: #286047; background: #dcefe4; }
.status-rejected { color: #832f2a; background: #f8deda; }
.status-submitted { color: #795a20; background: #f8e9bd; }
.approval-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 20px; }
.approval-actions form { display: block; }
.approval-actions button { width: 100%; }

body:not(:has(.binder-nav)) main {
    width: min(760px, calc(100% - 32px));
    margin: 0 auto;
    padding-top: 7vh;
}

@media (max-width: 760px) {
    body { padding-bottom: 82px; }
    main, main.wide {
        width: 100%;
        margin: 0;
        padding: 15px 11px 28px;
    }
    .binder-nav {
        inset: auto 0 0;
        width: auto;
        height: 72px;
        flex-direction: row;
        overflow-x: auto;
        box-shadow: 0 -5px 20px rgba(25,35,41,.18);
    }
    .binder-brand, .binder-account { display: none; }
    .binder-nav nav {
        display: flex;
        width: max-content;
        padding: 7px 8px;
    }
    .binder-nav nav a {
        min-width: 82px;
        flex-direction: column;
        gap: 2px;
        margin: 0;
        padding: 5px 8px;
        border-radius: 8px;
        font-size: 11px;
        text-align: center;
    }
    .binder-nav nav a.active { background: #f3c461; color: var(--nav); }
    .tab-icon { width: 27px; height: 27px; }
    .card { padding: 16px 13px; border-radius: 5px 12px 12px 5px; }
    .page-heading { display: block; }
    .page-heading .button { margin-top: 5px; }
    .template-actions {
        display: grid;
        grid-template-columns: repeat(2,minmax(0,1fr));
        margin: 10px 0 0;
    }
    .template-actions .button,
    .template-actions button { width: 100%; margin: 0; }
    .folder-grid { grid-template-columns: 1fr; gap: 12px; }
    .folder { min-height: 82px; }
    fieldset { grid-template-columns: 1fr; }
    .totals, .filters, .form-grid { grid-template-columns: repeat(2, 1fr); }
    .article-line { grid-template-columns: 1fr; }
    .approval-actions { grid-template-columns: 1fr; }
}
.revision-layout {
    display: grid;
    grid-template-columns: minmax(220px,.75fr) minmax(0,2fr);
    gap: 16px;
}
.revision-list { display: grid; align-content: start; gap: 7px; }
.revision-list a {
    display: grid;
    gap: 3px;
    padding: 11px;
    color: inherit;
    border: 1px solid var(--line);
    border-left: 3px solid #8b9499;
    border-radius: 7px;
    background: #fff;
}
.revision-list a.active { border-left-color: var(--blue); background: #eef7fc; }
.revision-list small,
.revision-list span { color: var(--muted); font-size: 11px; }
.revision-detail {
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}
.revision-detail h2 { margin-top: 0; }
.revision-restore {
    margin-top: 18px;
    padding-top: 14px;
    border-top: 1px solid var(--line);
}
.revision-restore button { width: 100%; margin: 0; }
.revision-entry-list { display: grid; gap: 6px; }
.revision-entry-list article {
    display: grid;
    grid-template-columns: minmax(130px,1fr) minmax(220px,2fr) auto;
    gap: 10px;
    padding: 9px;
    border-bottom: 1px solid var(--line);
}
@media (max-width: 760px) {
    .revision-layout { grid-template-columns: 1fr; }
    .revision-entry-list article { grid-template-columns: 1fr; }
}
.employee-filters { grid-template-columns: minmax(240px,2fr) minmax(190px,1fr) auto; }
.employee-directory { display: grid; overflow-x: auto; }
.employee-directory > article,
.employee-directory-head {
    display: grid;
    grid-template-columns: minmax(180px,1.5fr) minmax(120px,1fr) minmax(150px,1.25fr) minmax(95px,.75fr) minmax(85px,.7fr) minmax(75px,.6fr) minmax(220px,1.4fr);
    gap: 10px;
    align-items: center;
    min-width: 1050px;
    padding: 11px;
    border-bottom: 1px solid var(--line);
}
.employee-directory-head {
    color: var(--muted);
    background: #f2f6f8;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
}
.employee-directory span strong,
.employee-directory span small { display: block; }
.employee-directory span small { margin-top: 3px; color: var(--muted); }
.employee-directory-actions { display: flex !important; gap: 6px; }
.employee-directory-actions .button { margin: 0; padding: 7px 9px; font-size: 10px; }
@media (max-width: 760px) {
    .employee-filters { grid-template-columns: 1fr; }
}
.payroll-kpis { grid-template-columns: repeat(4,minmax(0,1fr)); }
.payroll-table { display: grid; overflow-x: auto; }
.payroll-table > article,
.payroll-head {
    display: grid;
    grid-template-columns: minmax(170px,1.5fr) repeat(4,minmax(85px,.7fr)) minmax(110px,.9fr) repeat(2,minmax(125px,1fr));
    gap: 10px;
    align-items: center;
    min-width: 1050px;
    padding: 11px;
    border-bottom: 1px solid var(--line);
}
.payroll-head {
    color: var(--muted);
    background: #f2f6f8;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
}
.payroll-table span strong,
.payroll-table span small { display: block; }
.payroll-table span small { margin-top: 3px; color: var(--muted); }
@media (max-width: 760px) {
    .payroll-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 480px) {
    .payroll-kpis { grid-template-columns: 1fr; }
}
.section-heading {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-bottom: 10px;
}
.section-heading h2 { margin: 0; }
.section-heading button { width: auto; margin: 0; }
.edit-entry-rows,
.edit-meal-rows,
.edit-article-rows { display: grid; gap: 10px; }
.edit-entry-row,
.edit-meal-row,
.edit-article-row {
    display: grid;
    gap: 8px;
    align-items: end;
    padding: 12px;
    border: 1px solid var(--line);
    border-left: 3px solid var(--blue);
    border-radius: 8px;
    background: #fff;
}
.edit-entry-row { grid-template-columns: 1fr 1fr 1.15fr 1.15fr .75fr 1.2fr auto; }
.edit-meal-row { grid-template-columns: 1fr .65fr .8fr 1.5fr auto; }
.edit-article-row { grid-template-columns: 1.5fr .65fr .8fr .65fr .65fr 1.2fr auto; }
.edit-entry-row label,
.edit-meal-row label,
.edit-article-row label { margin: 0; }
.edit-entry-row .remove-row,
.edit-meal-row .remove-row,
.edit-article-row .remove-row { width: auto; margin: 0; white-space: nowrap; }
@media (max-width: 1100px) {
    .edit-entry-row,
    .edit-article-row { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .edit-meal-row { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 760px) {
    .section-heading { align-items: stretch; flex-direction: column; }
    .section-heading button { width: 100%; }
    .edit-entry-row,
    .edit-meal-row,
    .edit-article-row { grid-template-columns: 1fr; }
}
.holiday-toolbar {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 16px;
    margin-bottom: 14px;
}
.holiday-editor form { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; align-items: end; }
.holiday-list { display: grid; gap: 8px; }
.holiday-list article {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    padding: 11px;
    border: 1px solid var(--line);
    border-left: 3px solid var(--blue);
    border-radius: 7px;
    background: #fff;
}
.holiday-list strong,
.holiday-list small { display: block; }
.holiday-list small { margin-top: 4px; color: var(--muted); }
@media (max-width: 760px) {
    .holiday-editor form { grid-template-columns: 1fr; }
    .holiday-list article { align-items: stretch; flex-direction: column; }
}
@media (max-width: 480px) {
    .form-grid { grid-template-columns: 1fr; }
}
.cost-report-kpis { grid-template-columns: repeat(3,minmax(0,1fr)); }
.employee-cost-table { display: grid; overflow-x: auto; }
.employee-cost-table > div {
    display: grid;
    grid-template-columns: minmax(170px,1.5fr) repeat(5,minmax(100px,1fr)) minmax(120px,.8fr);
    gap: 10px;
    align-items: center;
    min-width: 940px;
    padding: 10px;
    border-bottom: 1px solid var(--line);
}
.employee-cost-head {
    color: var(--muted);
    background: #f2f6f8;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
}
.employee-cost-table span strong,
.employee-cost-table span small { display: block; }
.employee-cost-table span small { margin-top: 3px; color: var(--muted); }
@media (max-width: 760px) {
    .cost-report-kpis { grid-template-columns: 1fr; }
}
.contract-editor form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.contract-editor .employee-week,
.contract-editor .employee-profile-fields,
.contract-editor .employee-cost-fields,
.contract-editor button { grid-column: 1 / -1; }
.employee-profile-fields,
.employee-cost-fields {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 10px;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
}
.employee-profile-fields legend,
.employee-cost-fields legend { padding: 0 6px; font-weight: 700; }
.employee-profile-fields label,
.employee-cost-fields label { margin: 0; }
.contract-history { display: grid; gap: 8px; }
.contract-history article {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding: 12px;
    border: 1px solid var(--line);
    border-left: 3px solid var(--blue);
    border-radius: 7px;
    background: #fff;
}
.contract-history strong,
.contract-history small { display: block; }
.contract-history small { margin-top: 4px; color: var(--muted); }
.contract-week-total {
    grid-column: 1 / -1;
    margin: 0;
    padding: 10px 12px;
    border-left: 3px solid var(--green);
    border-radius: 6px;
    background: #eef8f2;
}
.contract-day-breakdown {
    display: grid;
    grid-template-columns: repeat(7,minmax(52px,1fr));
    gap: 5px;
    margin-top: 10px;
}
.contract-day-breakdown span {
    padding: 6px;
    border: 1px solid var(--line);
    border-radius: 5px;
    background: #f7fafb;
    text-align: center;
}
.contract-day-breakdown span small { margin: 0 0 2px; }
.contract-period-table { display: grid; gap: 4px; overflow-x: auto; }
.contract-period-table > div {
    display: grid;
    grid-template-columns: minmax(115px,1.2fr) repeat(5,minmax(95px,1fr));
    gap: 8px;
    align-items: center;
    min-width: 720px;
    padding: 10px;
    border-bottom: 1px solid var(--line);
}
.contract-period-head {
    color: var(--muted);
    background: #f2f6f8;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
}
@media (max-width: 760px) {
    .contract-editor form { grid-template-columns: 1fr; }
    .employee-profile-fields,
    .employee-cost-fields { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .contract-history article { flex-direction: column; }
    .contract-day-breakdown { grid-template-columns: repeat(4,minmax(52px,1fr)); }
}
@media (max-width: 480px) {
    .employee-profile-fields,
    .employee-cost-fields { grid-template-columns: 1fr; }
    .contract-day-breakdown { grid-template-columns: repeat(2,minmax(70px,1fr)); }
}

/* Template porte-documents horizontal, inspiré de l'interface de référence. */
:root {
    --nav: #142f40;
    --nav-light: #24495f;
    --blue: #48a4d8;
    --canvas: #f3f5f7;
    --paper: #ffffff;
    --line: #d4e0e8;
}
html, body { background: var(--canvas); }
body { color: #1c3140; }
main, main.wide {
    width: min(1120px, calc(100% - 36px));
    max-width: 1120px;
    margin: 0 auto;
    padding: 115px 0 50px;
}
.binder-nav {
    inset: 0 0 auto;
    width: 100%;
    height: auto;
    display: grid;
    grid-template-columns: auto 1fr auto;
    grid-template-rows: 70px 45px;
    color: #fff;
    background: var(--nav);
    border-bottom: 3px solid var(--blue);
    box-shadow: 0 4px 15px rgba(17, 40, 54, .16);
}
.binder-brand {
    grid-column: 1;
    grid-row: 1;
    min-width: 230px;
    padding: 12px 20px;
    border: 0;
}
.binder-logo {
    flex-basis: 40px;
    height: 40px;
    color: #fff;
    background: #2f6d90;
    border-radius: 7px;
    box-shadow: none;
}
.binder-brand small { color: #a9c1cf; font-size: 11px; }
.binder-nav nav {
    grid-column: 1 / -1;
    grid-row: 2;
    display: flex;
    align-items: end;
    gap: 3px;
    overflow-x: auto;
    padding: 5px max(18px, calc((100vw - 1120px) / 2)) 0;
    background: #e7f1f7;
    border-top: 1px solid rgba(255,255,255,.08);
}
.binder-nav nav a {
    min-width: max-content;
    gap: 6px;
    margin: 0;
    padding: 9px 13px;
    color: #416174;
    background: #d9eaf4;
    border: 1px solid #bdd8e8;
    border-bottom: 0;
    border-radius: 7px 7px 0 0;
    font-size: 12px;
}
.binder-nav nav a:hover {
    color: #17384b;
    background: #edf7fc;
}
.binder-nav nav a.active {
    color: #18384b;
    background: #fff;
    box-shadow: inset 0 3px var(--blue);
}
.nav-group {
    position: relative;
    flex: 0 0 auto;
}
.nav-group > summary {
    display: flex;
    min-width: max-content;
    gap: 6px;
    align-items: center;
    padding: 9px 13px;
    color: #416174;
    background: #d9eaf4;
    border: 1px solid #bdd8e8;
    border-bottom: 0;
    border-radius: 7px 7px 0 0;
    font-size: 12px;
    cursor: pointer;
    list-style: none;
}
.nav-group > summary::-webkit-details-marker { display: none; }
.nav-group > summary::after {
    content: "▾";
    margin-left: 2px;
    font-size: 9px;
}
.nav-group > summary:hover { color: #17384b; background: #edf7fc; }
.nav-group.active > summary {
    color: #18384b;
    background: #fff;
    box-shadow: inset 0 3px var(--blue);
    font-weight: 750;
}
.nav-group[open] > summary::after { transform: rotate(180deg); }
.nav-group-menu {
    position: fixed;
    z-index: 40;
    top: 96px;
    left: 50%;
    width: min(760px, calc(100vw - 24px));
    padding: 10px;
    transform: translateX(-50%);
    background: #263640;
    border: 1px solid #49606d;
    border-radius: 0 0 10px 10px;
    box-shadow: 0 15px 30px rgba(0,0,0,.28);
}
.binder-nav nav .nav-group-menu a {
    display: flex;
    width: 100%;
    gap: 9px;
    margin: 2px 0;
    padding: 9px 11px;
    color: #dce5e9;
    background: transparent;
    border: 0;
    border-radius: 6px;
    box-shadow: none;
}
.binder-nav nav .nav-group-menu a:hover { color: #fff; background: #344955; }
.binder-nav nav .nav-group-menu a.active {
    color: #fff;
    background: #49545a;
    box-shadow: inset 3px 0 #f3c461;
}
.tab-icon {
    width: 20px;
    height: 20px;
    border: 0;
    border-radius: 4px;
    background: rgba(72,164,216,.12);
    font-size: 12px;
}
.binder-account {
    grid-column: 3;
    grid-row: 1;
    display: flex;
    gap: 12px;
    align-items: center;
    margin: 0;
    padding: 0 22px;
    border: 0;
}
.binder-account a {
    display: inline-block;
    margin: 0;
    padding: 7px 10px;
    color: #d8e7ef;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 5px;
    font-size: 11px;
}
.binder-account a:first-child {
    border: 0;
    font-weight: 700;
}
.card {
    padding: 18px;
    border: 1px solid #cbdde8;
    border-radius: 9px;
    box-shadow: 0 10px 26px rgba(27, 57, 74, .08);
}
.card::before { display: none; }
h1 { font-size: clamp(21px, 2.5vw, 27px); }
h2 { font-size: 16px; }
.folder-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}
.folder,
.folder-blue,
.folder-amber,
.folder-green,
.folder-slate {
    min-height: 88px;
    padding: 20px 14px 12px;
    color: #19384b;
    background: #fff;
    border: 1px solid #d2e0e8;
    border-top: 3px solid var(--blue);
    border-radius: 7px;
    box-shadow: 0 4px 12px rgba(30, 69, 91, .07);
}
.folder::before {
    top: -8px;
    width: 38%;
    height: 12px;
    background: #dceef8;
    border: 1px solid #c4dce9;
    border-bottom: 0;
}
.folder:hover {
    transform: translateY(-2px);
    background: #f8fcfe;
    box-shadow: 0 7px 16px rgba(30,69,91,.12);
}
.folder small { color: #6d8290; }
.totals div {
    background: #fff;
    border: 1px solid #d5e1e8;
    border-top: 3px solid var(--blue);
    border-bottom-width: 1px;
}
th { color: #486575; background: #eaf3f8; }

.calendar-toolbar {
    display: flex;
    align-items: end;
    gap: 9px;
    margin: 18px 0;
    padding: 11px;
    background: #eef5f9;
    border: 1px solid #d2e0e8;
    border-radius: 7px;
}
.calendar-toolbar label {
    min-width: 150px;
    margin: 0;
}
.calendar-toolbar input,
.calendar-toolbar select { margin: 3px 0 0; }
.calendar-toolbar .button,
.calendar-toolbar button {
    min-height: 38px;
    margin: 0;
    white-space: nowrap;
}
.calendar-scroll {
    overflow-x: auto;
    border: 1px solid #ccdce5;
    border-radius: 7px;
    background: #fff;
}
.calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(135px, 1fr));
    min-width: 945px;
}
.calendar-weekdays div {
    padding: 9px;
    color: #486575;
    background: #eaf3f8;
    border-right: 1px solid #d2e0e8;
    font-size: 11px;
    font-weight: 800;
    text-align: center;
    text-transform: uppercase;
}
.calendar-weekdays div:last-child { border-right: 0; }
.calendar-day {
    min-height: 135px;
    padding: 7px;
    border-top: 1px solid #dbe5eb;
    border-right: 1px solid #dbe5eb;
    background: #fff;
}
.calendar-day:nth-child(7n) { border-right: 0; }
.calendar-day.outside { background: #f2f5f7; }
.calendar-day.today {
    background: #f1f9fd;
    box-shadow: inset 0 0 0 2px #55a7d7;
}
.calendar-number {
    display: block;
    margin-bottom: 6px;
    color: #486575;
    font-size: 12px;
}
.calendar-day-heading {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 6px;
    margin-bottom: 6px;
    width: 100%;
    min-width: 0;
}
.calendar-day-heading .calendar-number { margin-bottom: 0; }
.calendar-day-hours {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    margin: 0;
    padding: 4px 3px;
    border-radius: 5px;
    background: #fff;
    color: #287fae;
    border: 2px solid #45a9dc;
    font-size: 9px;
    line-height: 1.1;
    white-space: normal;
    overflow-wrap: anywhere;
}
.calendar-day-hours:hover { background: #edf8fd; }
.clock-today-heading { align-items: center; }
.clock-today-heading .clock-today-hours-button {
    width: auto;
    padding: 8px 12px;
    font-size: 13px;
    white-space: nowrap;
}
.calendar-day-dialog {
    width: min(760px, calc(100% - 28px));
    max-height: calc(100vh - 28px);
    padding: 0;
    border: 0;
    border-radius: 14px;
    box-shadow: 0 24px 70px rgba(15, 39, 52, .28);
}
.calendar-day-dialog::backdrop { background: rgba(15, 39, 52, .68); }
.calendar-day-dialog-card { padding: 22px; }
.calendar-day-dialog-actions { display: flex; align-items: center; gap: 8px; }
.calendar-day-totals {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 10px;
    margin: 18px 0;
}
.calendar-day-total-value {
    min-width: 0;
    padding: 13px;
    text-align: center;
    border: 1px solid #c8dce7;
    border-top: 3px solid #45a9dc;
    border-radius: 8px;
    font-size: 20px;
    font-weight: 800;
}
.calendar-day-total-value small { display: block; margin-top: 3px; color: #6b7f8e; font-size: 12px; font-weight: 600; }
.calendar-day-total-hours,.calendar-day-transport-km{display:block;width:100%;text-align:center}
.calendar-day-total-hours{font:inherit}
.calendar-day-transport-km{margin-top:2px;color:#2f87b6;font-size:12px;font-weight:800;line-height:1.1;white-space:nowrap}
.calendar-day-total-currency {
    display: block;
    margin: 2px 0 0;
    font-size: .72em;
    line-height: 1;
}
.calendar-day-detail-list { display: grid; gap: 8px; max-height: 55vh; overflow: auto; }
.calendar-day-detail { padding: 12px; border: 1px solid #d3e1e8; border-left: 4px solid #45a9dc; border-radius: 7px; background: #f8fbfc; }
.calendar-day-detail-context { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding-bottom: 5px; border-bottom: 1px solid #d8e6ec; }
.calendar-entry-client { color: #263d49; }
.calendar-entry-intervention { color: #637987; text-align: right; }
.calendar-entry-project { margin: 7px 0 5px !important; }
.calendar-entry-task-line,
.calendar-entry-hours-line { margin: 4px 0 2px !important; }
.calendar-day-detail-heading { display: flex; justify-content: space-between; gap: 12px; }
.calendar-entry-work-time { color: #2f995c; font-weight: 800; white-space: nowrap; }
.calendar-entry-task-label { color: #c02c91; font-weight: 800; }
.calendar-entry-travel-label { color: #e48016; font-weight: 800; }
.calendar-entry-project-number { color: var(--blue); }
.calendar-day-detail p { margin: 5px 0 2px; font-weight: 700; }
.calendar-day-detail small { display: block; color: #637987; }
.calendar-task-additions { display: grid; gap: 5px; margin-top: 9px; padding-top: 8px; border-top: 1px solid #d8e6ec; }
.calendar-task-addition { display: grid; grid-template-columns: max-content 1fr; gap: 7px; padding: 6px 8px; border-left: 3px solid #45a9dc; border-radius: 4px; background: #fff; font-size: 12px; }
.calendar-task-addition strong { color: #263d49; }
.calendar-task-addition span { min-width: 0; }
.calendar-task-expense { border-left-color: #e8a52e; background: #fffaf0; }
.calendar-task-document { border-left-color: #31965a; background: #f3fbf6; }
.calendar-task-document a { color: #287fae; font-weight: 700; }
.calendar-day-attachments { display: grid; gap: 7px; margin-top: 10px; padding-top: 10px; border-top: 1px solid #d3e1e8; }
.calendar-day-attachments h3 { margin: 0 0 2px; }
.calendar-day-attachment { padding: 10px; border: 1px solid #d6e4ea; border-left: 4px solid #45a9dc; border-radius: 7px; background: #fff; }
.calendar-day-attachment p { margin: 4px 0 0; }
.calendar-day-attachment small { display: block; margin-top: 3px; color: #637987; }
.calendar-day-expense { border-left-color: #e8a52e; background: #fffaf0; }
.calendar-day-document { display: flex; align-items: center; justify-content: space-between; gap: 12px; border-left-color: #31965a; background: #f3fbf6; }
.calendar-day-document .button { flex: 0 0 auto; }
@media (max-width: 700px) {
    .calendar-day-totals {
        grid-template-columns: repeat(6, minmax(0, 1fr));
        gap: 4px;
        margin: 12px 0;
    }
    .calendar-day-total-value {
        min-width: 0;
        padding: 8px 2px;
        border-radius: 6px;
        font-size: clamp(12px, 4vw, 17px);
        line-height: 1.05;
        white-space: nowrap;
    }
    .calendar-day-total-value small {
        margin-top: 4px;
        font-size: clamp(7px, 2.3vw, 10px);
        line-height: 1.05;
        white-space: normal;
        overflow-wrap: anywhere;
    }
    .calendar-day-total-currency {
        display: block;
        margin: 2px 0 0;
        font-size: .72em;
        line-height: 1;
    }
    .calendar-day-detail-heading { display: block; }
    .calendar-day-detail-heading span { display: block; margin-top: 3px; }
    .calendar-day-detail-context { display: block; }
    .calendar-entry-intervention { display: block; margin-top: 2px; text-align: left; }
}
@media print {
    /*
     * Gabarit PDF unique, calé sur les coordonnées utilisées sur GSM.
     * Les marges appartiennent à la page A4 et non à la fenêtre HTML :
     * Chrome et Safari disposent ainsi de la même largeur imprimable.
     */
    @page { size: A4 portrait; margin: 16mm 19mm 14mm; }
    html,
    body {
        width: auto !important;
        height: auto !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: visible !important;
        background: #fff !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
    body > * { display: none !important; }
    #calendar-day-dialog::backdrop,
    #clock-today-day-dialog::backdrop { background: transparent !important; }
    #calendar-day-dialog[open],
    #clock-today-day-dialog[open] {
        display: block !important;
        position: static !important;
        inset: auto !important;
        width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        max-width: none !important;
        max-height: none !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: visible !important;
        border: 0 !important;
        box-shadow: none !important;
        transform: none !important;
        font-size: 9pt !important;
        page-break-before: avoid !important;
        page-break-after: avoid !important;
    }
    #calendar-day-dialog .calendar-day-dialog-card,
    #clock-today-day-dialog .calendar-day-dialog-card {
        box-sizing: border-box !important;
        width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        padding: 0 !important;
        overflow: visible !important;
        page-break-after: avoid !important;
    }
    #calendar-day-dialog .calendar-day-dialog-actions,
    #clock-today-day-dialog .calendar-day-dialog-actions { display: none !important; }
    #calendar-day-dialog .section-heading,
    #clock-today-day-dialog .section-heading { margin: 0 0 5px !important; padding: 0 0 5px !important; }
    #calendar-day-dialog .eyebrow,
    #clock-today-day-dialog .eyebrow { margin: 0 0 2px !important; font-size: 10px !important; }
    #calendar-day-dialog h2,
    #clock-today-day-dialog h2 { margin: 0 !important; font-size: 19px !important; }
    #calendar-day-dialog .calendar-day-totals,
    #clock-today-day-dialog .calendar-day-totals { grid-template-columns: repeat(6, minmax(0, 1fr)) !important; gap: 4px !important; margin: 5px 0 7px !important; }
    #calendar-day-dialog .calendar-day-total-value,
    #clock-today-day-dialog .calendar-day-total-value { padding: 5px !important; font-size: 17px !important; border-width: 1px !important; }
    #calendar-day-dialog .calendar-day-total-value small,
    #clock-today-day-dialog .calendar-day-total-value small { margin-top: 1px !important; font-size: 10px !important; }
    #calendar-day-dialog .calendar-day-total-currency,
    #clock-today-day-dialog .calendar-day-total-currency { display: block !important; margin: 1px 0 0 !important; font-size: .72em !important; line-height: 1 !important; }
    #calendar-day-dialog .calendar-day-detail-list,
    #clock-today-day-dialog .calendar-day-detail-list {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 4px !important;
        max-height: none !important;
        overflow: visible !important;
    }
    #calendar-day-dialog .calendar-day-detail,
    #clock-today-day-dialog .calendar-day-detail { padding: 5px 7px !important; border-width: 1px !important; border-left-width: 3px !important; }
    #calendar-day-dialog .calendar-day-detail-context,
    #clock-today-day-dialog .calendar-day-detail-context { display: flex !important; align-items: baseline !important; justify-content: space-between !important; gap: 5px !important; padding-bottom: 2px !important; }
    #calendar-day-dialog .calendar-entry-intervention,
    #clock-today-day-dialog .calendar-entry-intervention { display: inline !important; margin-top: 0 !important; text-align: right !important; }
    #calendar-day-dialog .calendar-entry-project,
    #clock-today-day-dialog .calendar-entry-project { margin: 3px 0 2px !important; }
    #calendar-day-dialog .calendar-day-detail-heading,
    #clock-today-day-dialog .calendar-day-detail-heading { display: flex !important; justify-content: space-between !important; gap: 7px !important; }
    #calendar-day-dialog .calendar-day-detail-heading span,
    #clock-today-day-dialog .calendar-day-detail-heading span { display: inline !important; margin-top: 0 !important; }
    #calendar-day-dialog .calendar-day-detail p,
    #clock-today-day-dialog .calendar-day-detail p { margin: 2px 0 1px !important; }
    #calendar-day-dialog .calendar-day-detail small,
    #clock-today-day-dialog .calendar-day-detail small { line-height: 1.15 !important; }
    #calendar-day-dialog .calendar-task-additions,
    #clock-today-day-dialog .calendar-task-additions { gap: 2px !important; margin-top: 3px !important; padding-top: 3px !important; }
    #calendar-day-dialog .calendar-task-addition,
    #clock-today-day-dialog .calendar-task-addition { display: block !important; padding: 2px 4px !important; font-size: 10px !important; }
    #calendar-day-dialog .calendar-task-addition strong,
    #clock-today-day-dialog .calendar-task-addition strong { display: block !important; }
    #calendar-day-dialog .calendar-day-attachments,
    #clock-today-day-dialog .calendar-day-attachments { grid-column: 1 / -1; gap: 3px !important; margin-top: 4px !important; padding-top: 4px !important; }
    #calendar-day-dialog .calendar-day-attachments h3,
    #clock-today-day-dialog .calendar-day-attachments h3 { font-size: 13px !important; }
    #calendar-day-dialog .calendar-day-attachment,
    #clock-today-day-dialog .calendar-day-attachment { padding: 4px 6px !important; }
    #calendar-day-dialog .calendar-day-document .button,
    #clock-today-day-dialog .calendar-day-document .button { display: none !important; }
    #calendar-day-dialog .calendar-day-detail,
    #calendar-day-dialog .calendar-day-attachment,
    #clock-today-day-dialog .calendar-day-detail,
    #clock-today-day-dialog .calendar-day-attachment { break-inside: avoid !important; }
}
.calendar-entry {
    display: block;
    margin: 0 0 6px;
    padding: 6px 7px;
    color: #263d49;
    background: #f7fafc;
    border: 1px solid #d7e2e8;
    border-left: 3px solid #8295a0;
    border-radius: 5px;
    font-size: 10px;
    line-height: 1.25;
}
.calendar-entry:hover { background: #edf6fb; }
.calendar-entry strong,
.calendar-entry small { display: block; }
.calendar-entry small { margin-top: 2px; color: #68808e; }
.calendar-entry .status {
    display: inline-block;
    margin-top: 4px;
    padding: 2px 5px;
    font-size: 8px;
}
.status-border-submitted { border-left-color: #4c8db5; }
.status-border-approved { border-left-color: #31965a; }
.status-border-rejected { border-left-color: #c7473c; }
.status-border-invoiced { border-left-color: #8b68b4; }
.duplicate-box {
    margin: 20px 0;
    padding: 11px 13px;
    background: #fff8ec;
    border: 1px solid #e8c991;
    border-radius: 7px;
}
.duplicate-box summary {
    color: #8a5815;
    font-weight: 800;
    cursor: pointer;
}
.duplicate-box form {
    display: flex;
    align-items: end;
    gap: 10px;
    margin-top: 12px;
}
.duplicate-box label { max-width: 230px; margin: 0; }
.duplicate-box button { margin: 0; }
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
.global-search {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 9px;
    margin: 18px 0;
    padding: 12px;
    background: #eaf3f8;
    border: 1px solid #cfdee7;
    border-radius: 8px;
}
.global-search input,
.global-search button { min-height: 42px; margin: 0; }
.global-search input { font-size: 14px; }
.search-count { color: #657d8a; }
.search-group { margin-top: 20px; }
.search-group h2 {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-bottom: 7px;
}
.search-group h2 span {
    min-width: 22px;
    padding: 2px 6px;
    color: #486575;
    background: #dfeef6;
    border-radius: 10px;
    font-size: 10px;
    text-align: center;
}
.search-results {
    overflow: hidden;
    border: 1px solid #d2e0e8;
    border-radius: 7px;
    background: #fff;
}
.search-results > a {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) auto;
    gap: 9px;
    align-items: center;
    padding: 9px 11px;
    color: #263d49;
    border-bottom: 1px solid #e2e9ed;
}
.search-results > a:last-child { border-bottom: 0; }
.search-results > a:hover { background: #f2f8fb; }
.search-results strong,
.search-results small { display: block; }
.search-results small {
    margin-top: 2px;
    overflow: hidden;
    color: #6b808c;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.search-icon {
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    color: #2a7199;
    background: #dfeef6;
    border-radius: 6px;
    font-size: 9px;
    font-weight: 900;
}
.clock-page { max-width: 720px; margin-inline: auto; }
.clock-running {
    margin: 18px 0;
    padding: 22px;
    text-align: center;
    background: #eef8f2;
    border: 1px solid #aad3ba;
    border-radius: 10px;
}
.clock-running p { margin: 5px 0; color: #39714f; font-weight: 800; text-transform: uppercase; font-size: 10px; }
.clock-running h2 { margin: 5px 0; color: #205c38; font-size: 20px; }
.clock-running small { display: block; margin-top: 5px; color: #597467; }
.clock-running .clock-active-context { grid-template-columns: 1fr 1fr; margin-bottom: 16px; text-align: left; }
.clock-running .clock-active-context strong { color: #18394b; }
.clock-active-project { margin: 8px 0 12px; color: #18394b; font-size: 18px; line-height: 1.25; }
.clock-pulse {
    display: inline-block;
    width: 12px;
    height: 12px;
    background: #31965a;
    border-radius: 50%;
    box-shadow: 0 0 0 0 rgba(49,150,90,.5);
    animation: clockPulse 1.7s infinite;
}
@keyframes clockPulse {
    70% { box-shadow: 0 0 0 10px rgba(49,150,90,0); }
    100% { box-shadow: 0 0 0 0 rgba(49,150,90,0); }
}
.clock-counter {
    margin: 16px 0 6px;
    color: #173f29;
    font-size: clamp(35px, 9vw, 56px);
    font-variant-numeric: tabular-nums;
    font-weight: 800;
    letter-spacing: 2px;
}
.clock-start-form,
.clock-stop-form {
    padding: 15px;
    background: #f7fafb;
    border: 1px solid #d2e0e8;
    border-radius: 8px;
}
.clock-start,
.clock-stop {
    width: 100%;
    min-height: 52px;
    margin-top: 8px;
    background: #31965a;
    font-size: 15px;
}
.clock-stop { background: #c7473c; }
.clock-pause {
    width: 100%;
    margin: 0 0 8px;
    background: #d78025;
}
.clock-is-paused {
    background: #fff5e5;
    border-color: #e3b066;
}
.clock-is-paused .clock-pulse { background: #d78025; }
.clock-is-paused h2,
.clock-is-paused .clock-counter { color: #885116; }
.planned-task-banner {
    padding: 12px 14px;
    background: #eef8f2;
    border: 1px solid #b9d9c5;
    border-left: 4px solid #31965a;
    border-radius: 7px;
}
.planned-task-banner strong,
.planned-task-banner small { display: block; }
.planned-task-banner small { margin-top: 4px; color: #597467; }
.planned-task-files { display: grid; gap: 7px; margin-top: 12px; padding: 10px; border: 1px solid #b9d9c5; border-radius: 7px; background: #fff; }
.planned-task-files > strong { font-size: .9rem; }
.planned-task-files a { display: block; padding: 7px 9px; border: 1px solid #d7e8df; border-radius: 6px; color: #216b46; text-decoration: none; }
.planned-task-files a:hover { background: #eef8f2; }
.planned-task-files a small { display: block; margin-top: 2px; overflow-wrap: anywhere; color: #60756a; }
.clock-save-km { width: 100%; margin: 7px 0 0; }
.clock-cancel { margin-top: 9px; text-align: center; }
.clock-cancel button { margin: 0; }
.clock-cancel { display: none; margin: 0; }
.clock-actions-open { margin-top: 10px; }
.clock-actions-dialog .section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.clock-actions-dialog .section-heading h2 { margin: 3px 0 0; }
.clock-general-actions { display: grid; gap: 10px; }
.clock-general-actions button { width: 100%; min-height: 54px; margin: 0; font-size: 15px; }
.clock-general-actions .clock-pause,
.clock-general-actions .clock-stop,
.clock-general-actions .clock-cancel-action {
    min-height: 68px;
    padding: 16px 20px;
    font-size: 17px;
    font-weight: 800;
}
.clock-general-actions .clock-pause { background: #d78025; }
.clock-general-actions .clock-stop { background: #31965a; }
.clock-general-actions .clock-cancel-action { background: #707d85; }
.clock-general-actions .clock-finish-intervention { margin-top: 0; background: #31965a; }
.clock-general-actions .clock-finish-day { margin-top: 20px; background: #31965a; }
.clock-general-actions button:disabled { opacity: .48; cursor: not-allowed; }
.clock-continuation {
    margin: 18px 0;
    padding: 17px;
    background: #fff8ec;
    border: 1px solid #e7c78f;
    border-radius: 9px;
}
.clock-continuation h2 { margin: 4px 0 7px; color: #704711; }
.clock-continuation form { margin-top: 12px; }
.clock-continuation .clock-start { margin-top: 8px; }
.clock-continuation-counter { margin: 14px 0 8px; color: #236b42; text-align: center; }
.clock-next-dialog { width: min(680px, calc(100vw - 24px)); max-height: 88vh; padding: 0; border: 0; border-radius: 12px; box-shadow: 0 22px 70px rgba(0,0,0,.38); }
.clock-next-dialog::backdrop { background: rgba(11,27,37,.68); }
.clock-next-dialog-card { padding: 20px; }
.clock-next-dialog .section-heading { margin-bottom: 14px; }
.clock-next-context { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin: 0 0 12px; }
.clock-next-context > div { padding: 11px 13px; background: #eef7fc; border: 1px solid #c8dfeb; border-left: 4px solid #49a5d8; border-radius: 8px; }
.clock-next-context span { display: block; margin-bottom: 3px; color: #617684; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.clock-next-context strong { display: block; color: #18394b; font-size: 16px; }
.clock-next-shortcuts { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin: 4px 0 12px; }
.clock-next-shortcuts button { width: 100%; min-height: 48px; }
.clock-next-shortcuts button:not(.is-selected) { background: #4f6877; }
.clock-next-shortcuts button:disabled { opacity: .45; cursor: not-allowed; }
.clock-next-option { margin: 10px 0; padding: 12px; background: #f6fafc; border: 1px solid #cbdce5; border-radius: 8px; }
.clock-next-panel { min-height: 286px; box-sizing: border-box; }
.clock-next-panel[hidden] { display: none !important; }
.clock-next-panel > summary { pointer-events: none; }
.mobile-remark-box {
  border-color: var(--remark-border);
  background: var(--remark-bg);
}
.mobile-remark-box > summary { color: #246b98; }
.mobile-remark-box textarea { resize: vertical; }
.clock-next-option > summary { cursor: pointer; font-weight: 700; color: #213d4d; }
.clock-current-project-number { float: right; margin-left: 16px; color: #2f7198; font-weight: 800; }
.clock-next-option form { margin-top: 12px; }
.clock-next-option.is-disabled { opacity: .72; }
.clock-next-direct { margin-top: 9px !important; }
.clock-next-direct button { width: 100%; }
.clock-next-close-actions { margin: 0 0 12px; padding: 12px; border: 2px solid #2f9b5f; border-radius: 10px; background: #f2fbf6; }
.clock-next-close-actions p { margin: 0 0 6px; }
@media (max-width: 560px) { .clock-next-context, .clock-next-shortcuts { grid-template-columns: 1fr; } .clock-next-context.clock-active-context { grid-template-columns: 1fr 1fr; gap: 6px; } .clock-next-context.clock-active-context > div { padding: 9px 8px; } .clock-next-context.clock-active-context strong { font-size: 13px; } .clock-next-panel { min-height: 286px; } }
.clock-finish-form { text-align: center; }
.clock-finish-form button { width: 100%; margin: 0; }
.clock-finalize {
    margin-top: 16px;
    padding: 18px;
    background: #f7fafc;
    border: 1px solid #cbdce5;
    border-left: 4px solid #4b9bca;
    border-radius: 8px;
}
.clock-finalize h2 { margin: 4px 0 7px; color: #263d49; }
.clock-finalize-continuing { margin-top: 14px; background: #fff; }
.clock-finalize form { margin-top: 14px; }
.clock-finalize-actions {
    display: flex;
    justify-content: flex-end;
    gap: 9px;
    margin-top: 12px;
}
.clock-finalize-actions button { margin: 0; }
.mobile-meal-box {
    margin: 18px 0;
    padding: 12px 14px;
    background: var(--expense-bg);
    border: 1px solid var(--expense-border);
    border-radius: 8px;
}
.mobile-meal-box summary {
    color: #875718;
    font-weight: 800;
    cursor: pointer;
}
.mobile-meal-box form {
    display: grid;
    grid-template-columns: 1fr;
    gap: 9px;
    margin-top: 12px;
    text-align: left;
}
.mobile-meal-box label,
.mobile-meal-box label small {
    display: block;
    width: 100%;
    margin: 0;
    text-align: left;
}
.mobile-meal-box button { grid-column: 1 / -1; margin: 0; }
.mobile-article-box {
    margin: 12px 0 18px;
    padding: 12px 14px;
    background: #eef5f9;
    border: 1px solid #c6dce8;
    border-radius: 8px;
}
.mobile-article-box summary {
    color: #2f6684;
    font-weight: 800;
    cursor: pointer;
}
.mobile-article-box form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
    margin-top: 12px;
}
.mobile-article-box label { margin: 0; }
.mobile-article-box button { grid-column: 1 / -1; margin: 0; }
.mobile-document-box {
    margin: 12px 0 18px;
    padding: 12px 14px;
    background: var(--document-bg);
    border: 1px solid var(--document-border);
    border-radius: 8px;
}
.mobile-document-box summary {
    color: #2f7048;
    font-weight: 800;
    cursor: pointer;
}
.mobile-document-box form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
    margin-top: 12px;
}
.mobile-document-box label { margin: 0; }
.mobile-document-box button { grid-column: 1 / -1; margin: 0; }
.signature-page { max-width: 760px; margin-inline: auto; }
.signature-sheet-info {
    display: grid;
    gap: 3px;
    margin: 15px 0;
    padding: 12px;
    background: #eef5f9;
    border: 1px solid #d0e0e8;
    border-radius: 7px;
}
.signature-sheet-info span { color: #647d8a; }
.signature-canvas-wrap {
    height: 230px;
    margin: 6px 0 10px;
    background: #fff;
    border: 2px dashed #8fa5b1;
    border-radius: 8px;
    touch-action: none;
}
.signature-canvas-wrap canvas {
    display: block;
    width: 100%;
    height: 100%;
    cursor: crosshair;
    touch-action: none;
}
.signature-actions { display: flex; justify-content: space-between; gap: 10px; }
.signature-actions button { margin: 0; }
.signature-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: 20px;
}
.signature-heading h2,
.signature-heading .button { margin: 0; }
.saved-signatures {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
    gap: 10px;
    margin: 10px 0 18px;
}
.saved-signatures > div {
    padding: 10px;
    background: #fff;
    border: 1px solid #d2e0e8;
    border-radius: 7px;
}
.saved-signatures img {
    display: block;
    width: 100%;
    height: 95px;
    margin-bottom: 7px;
    object-fit: contain;
    background: #fafafa;
    border-bottom: 1px solid #dce4e8;
}
.saved-signatures strong,
.saved-signatures small { display: block; }
.saved-signatures small { margin-top: 3px; color: #6b808c; }
.review-comment {
    margin: 12px 0 18px;
    padding: 11px 13px;
    color: #35596d;
    background: #eef6fa;
    border: 1px solid #c6dce8;
    border-left: 4px solid #4c8db5;
    border-radius: 6px;
}
.review-comment p { margin: 5px 0 0; }
.review-comment.review-rejected {
    color: #84342e;
    background: #fff1ef;
    border-color: #edc0bb;
    border-left-color: #c7473c;
}
.approval-actions form { min-width: min(100%, 280px); }
.approval-actions textarea { width: 100%; }
.dashboard-summary { margin: 18px 0; }
.dashboard-kpis {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 9px;
}
.dashboard-kpis > div {
    padding: 12px;
    background: #fff;
    border: 1px solid #d2e0e8;
    border-top: 3px solid #4b9bca;
    border-radius: 7px;
}
.dashboard-kpis strong,
.dashboard-kpis span { display: block; }
.dashboard-kpis strong { color: #19384b; font-size: 18px; }
.dashboard-kpis span { margin-top: 4px; color: #6a808c; font-size: 10px; text-transform: uppercase; }
.dashboard-lower {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(220px, 1fr);
    gap: 10px;
    margin-top: 10px;
}
.week-panel,
.status-panel {
    padding: 12px;
    background: #fff;
    border: 1px solid #d2e0e8;
    border-radius: 7px;
}
.summary-title {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
}
.summary-title small { color: #738995; }
.week-chart {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 5px;
    height: 125px;
}
.week-column {
    display: grid;
    grid-template-rows: 1fr auto;
    gap: 4px;
    min-width: 0;
    text-align: center;
}
.week-bars {
    display: flex;
    align-items: end;
    justify-content: center;
    gap: 2px;
    min-height: 88px;
    padding: 3px;
    background: #f4f7f9;
    border-radius: 4px;
}
.week-bars i { display: block; width: 9px; min-height: 1px; border-radius: 3px 3px 0 0; }
.bar-work { background: #31965a; }
.bar-travel { background: #4b9bca; }
.week-column small { color: #6c818c; font-size: 9px; line-height: 1.25; }
.status-lines { display: grid; gap: 7px; }
.status-lines > span {
    display: grid;
    grid-template-columns: 10px 1fr auto;
    gap: 7px;
    align-items: center;
    color: #526b78;
    font-size: 11px;
}
.status-dot { width: 8px; height: 8px; border-radius: 50%; background: #8295a0; }
.status-dot.submitted { background: #4c8db5; }
.status-dot.approved { background: #31965a; }
.status-dot.rejected { background: #c7473c; }
.status-dot.invoiced { background: #8b68b4; }
.empty-state {
    margin: 20px 0;
    padding: 28px;
    color: #39714f;
    text-align: center;
    background: #eef8f2;
    border: 1px solid #b9d9c5;
    border-radius: 9px;
}
.empty-state strong { font-size: 18px; }
.empty-state p { margin-bottom: 0; }
.task-section { margin-top: 20px; }
.task-section h2 {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-bottom: 7px;
}
.task-section h2 span {
    min-width: 23px;
    padding: 2px 6px;
    color: #486575;
    background: #dfeef6;
    border-radius: 11px;
    font-size: 10px;
    text-align: center;
}
.task-list {
    overflow: hidden;
    background: #fff;
    border: 1px solid #d2e0e8;
    border-radius: 7px;
}
.task-list > a {
    display: grid;
    grid-template-columns: 13px minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    padding: 10px 12px;
    color: #263d49;
    border-bottom: 1px solid #e1e9ed;
}
.task-list > a:last-child { border-bottom: 0; }
.task-list > a:hover { background: #f3f8fb; }
.task-list strong,
.task-list small { display: block; }
.task-list small { margin-top: 3px; color: #6b808c; }
.task-mark {
    width: 10px;
    height: 10px;
    background: #8295a0;
    border-radius: 50%;
}
.task-mark.live {
    background: #31965a;
    box-shadow: 0 0 0 4px rgba(49,150,90,.15);
}
.task-mark.draft { background: #8295a0; }
.task-mark.submitted { background: #4c8db5; }
.task-mark.rejected { background: #c7473c; }
.task-mark.planned {
    background: #d78025;
    box-shadow: 0 0 0 4px rgba(215,128,37,.14);
}
.task-live h2 { color: #287346; }
.task-planning h2 { color: #8a5512; }
.task-validation h2 { color: #306d91; }
.task-danger h2 { color: #a63730; }
.daily-date-form {
    display: flex;
    align-items: end;
    gap: 9px;
    margin: 15px 0;
    padding: 12px;
    background: #f2f6f8;
    border: 1px solid #d4e0e6;
    border-radius: 7px;
}
.daily-date-form label { margin: 0; }
.daily-date-form button,
.daily-date-form .button { margin: 0; }
.daily-kpis {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 9px;
    margin: 15px 0;
}
.daily-kpis > div {
    min-width: 0;
    padding: 14px;
    background: #fff;
    border: 1px solid #d4e0e6;
    border-top: 3px solid #4b9bca;
    border-radius: 7px;
}
.daily-kpis strong,
.daily-kpis span { display: block; }
.daily-kpis strong { color: #263d49; font-size: 18px; }
.daily-kpis span { margin-top: 4px; color: #6b808c; font-size: 10px; }
.daily-sheet-list { display: grid; gap: 10px; }
.daily-sheet-list article {
    padding: 14px;
    background: #fff;
    border: 1px solid #d4e0e6;
    border-left: 4px solid #4b9bca;
    border-radius: 7px;
}
.daily-sheet-title {
    display: flex;
    align-items: start;
    justify-content: space-between;
    gap: 12px;
}
.daily-sheet-title strong,
.daily-sheet-title small { display: block; }
.daily-sheet-title small { margin-top: 3px; color: #6b808c; }
.daily-sheet-values {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    margin: 11px 0;
    padding: 8px 0;
    border-block: 1px solid #e2e9ed;
}
.daily-sheet-values span { color: #657b87; font-size: 11px; }
.daily-sheet-values strong { color: #263d49; }
.daily-meals { display: flex; flex-wrap: wrap; gap: 8px; }
.daily-meals span {
    padding: 8px 11px;
    background: #fff7e9;
    border: 1px solid #ebca91;
    border-radius: 6px;
}
.heading-actions { display: flex; align-items: center; gap: 8px; }
.heading-actions .button,
.heading-actions button { margin: 0; }
.week-navigation {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 10px;
    align-items: end;
    margin: 15px 0;
    padding: 12px;
    background: #f2f6f8;
    border: 1px solid #d4e0e6;
    border-radius: 7px;
}
.week-navigation form {
    display: flex;
    align-items: end;
    justify-content: center;
    gap: 8px;
}
.week-navigation label,
.week-navigation button,
.week-navigation .button { margin: 0; }
.weekly-table-wrap {
    overflow-x: auto;
    margin-top: 16px;
    border: 1px solid #d4e0e6;
    border-radius: 7px;
}
.weekly-table {
    width: 100%;
    min-width: 720px;
    border-collapse: collapse;
    background: #fff;
}
.weekly-table th,
.weekly-table td {
    padding: 11px 12px;
    border-bottom: 1px solid #e1e9ed;
    text-align: right;
    white-space: nowrap;
}
.weekly-table th:first-child,
.weekly-table td:first-child { text-align: left; }
.weekly-table thead th {
    color: #526b78;
    background: #edf4f7;
    font-size: 10px;
    text-transform: uppercase;
}
.weekly-table tbody tr.is-today { background: #eef8f2; }
.weekly-table td small { display: block; margin-top: 3px; color: #718690; }
.weekly-table tfoot th {
    color: #263d49;
    background: #f2f6f8;
    border-bottom: 0;
}
.team-table { min-width: 940px; }
.weekly-table .attention-cell {
    color: #8a5512;
    background: #fff4dc;
    font-weight: 800;
}
.weekly-table .danger-cell {
    color: #a63730;
    background: #fdebea;
    font-weight: 800;
}
.balance-positive { color: #267347 !important; }
.balance-negative { color: #a63730 !important; }
.daily-kpis .balance-positive { border-top-color: #31965a; }
.daily-kpis .balance-negative { border-top-color: #c7473c; }
.weekly-kpis { grid-template-columns: repeat(6, 1fr); }
.absence-create form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    padding-top: 12px;
}
.absence-create form label { margin: 0; }
.absence-create form button { grid-column: 1 / -1; margin: 0; }
.absence-list { display: grid; gap: 9px; }
.absence-list article {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 12px;
    align-items: center;
    padding: 12px 14px;
    background: #fff;
    border: 1px solid #d4e0e6;
    border-left: 4px solid #8295a0;
    border-radius: 7px;
}
.absence-list strong,
.absence-list small { display: block; }
.absence-list small { margin-top: 4px; color: #6b808c; }
.absence-list p { margin: 6px 0 0; }
.absence-actions,
.absence-actions form { display: flex; gap: 6px; margin: 0; }
.absence-actions button { margin: 0; }
.absence-pending { color: #8a5512; background: #fff4dc; }
.absence-approved { color: #267347; background: #e5f4ea; }
.absence-rejected { color: #a63730; background: #fdebea; }
.planning-editor { margin: 16px 0; }
.planning-dialog {
    width: min(720px, calc(100% - 24px));
    max-height: min(88vh, 900px);
    margin: auto;
    padding: 22px;
    overflow: auto;
    border: 0;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 22px 70px rgba(13, 35, 49, .35);
}
.planning-dialog::backdrop { background: rgba(13, 35, 49, .62); }
.planning-dialog-heading {
    position: sticky;
    top: -22px;
    z-index: 12;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin: -22px -22px 16px;
    padding: 18px 22px 14px;
    border-bottom: 1px solid #d8e5eb;
    background: #fff;
    box-shadow: 0 5px 12px rgba(13,35,49,.06);
}
.planning-dialog-heading h2 { margin: 2px 0 0; }
.planning-dialog-heading button { margin: 0; }
.planning-dialog-heading-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
#planning-editor > form > .planning-form-actions [data-planning-action-open] { display: none; }
.planning-copy { margin: -5px 0 16px; text-align: right; }
.planning-copy button { margin: 0; }
.planning-totals {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 14px 0;
}
.planning-totals > div {
    min-width: 145px;
    padding: 10px 12px;
    background: #eef6fa;
    border: 1px solid #c9dfe9;
    border-top: 3px solid #48a4d8;
    border-radius: 7px;
}
.planning-totals strong,
.planning-totals span { display: block; }
.planning-totals span { margin-top: 3px; color: #657b87; font-size: 10px; }
.planning-editor form {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 10px;
    padding-top: 12px;
}
.planning-editor label { margin: 0; }
.planning-schedule-row { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.planning-schedule-row label { min-width: 0; }
.planning-schedule-row input { width: 100%; }
.planning-project-field { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr; gap: 10px; }
.planning-project-field label { min-width: 0; }
.planning-attachment-picker { display: grid; gap: 8px; }
.planning-attachment-picker [data-planning-attachments] { display: grid; gap: 8px; }
.planning-file-previews { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 8px; }
.planning-file-previews[hidden] { display: none; }
.planning-file-preview { display: grid; gap: 5px; min-width: 0; padding: 7px; border: 1px solid #c9dfe9; border-radius: 8px; background: #f7fbfd; color: #244256; text-decoration: none; }
.planning-file-preview img, .planning-file-preview-symbol { width: 100%; height: 82px; border-radius: 5px; object-fit: cover; }
.planning-file-preview-symbol { display: grid; place-items: center; background: #e6f2f8; font-weight: 700; }
.planning-file-preview span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .8rem; }
.planning-attachment-row { display: flex; align-items: center; gap: 8px; }
.planning-attachment-row input { flex: 1; min-width: 0; }
.planning-attachment-row button { flex: none; margin: 0; }
.planning-attachment-picker > button { justify-self: start; margin: 0; }
.planning-employee-picker { grid-column: 1 / -1; margin: 0; padding: 12px; border: 1px solid #c9dfe9; border-radius: 8px; }
.planning-employee-picker legend { padding: 0 5px; font-weight: 700; }
.planning-employee-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 8px; max-height: 180px; overflow: auto; }
.planning-employee-list label { display: flex; align-items: center; gap: 8px; padding: 8px; border: 1px solid #dbe7ed; border-radius: 6px; cursor: pointer; }
.planning-employee-list input { width: auto; margin: 0; }
.planning-instructions,
.planning-form-actions { grid-column: 1 / -1; }
.planning-form-actions { display: flex; justify-content: flex-end; gap: 8px; }
.planning-dialog .planning-form-actions { position: sticky; bottom: -22px; z-index: 1; padding: 12px 0 0; background: #fff; }
.planning-form-actions .button,
.planning-form-actions button { margin: 0; }
.planning-week { display: grid; gap: 10px; margin-top: 16px; }
.planning-day {
    padding: 12px;
    background: #f7fafc;
    border: 1px solid #d4e0e6;
    border-radius: 8px;
}
.planning-day.is-today { border-left: 4px solid #48a4d8; }
.planning-day h2 {
    display: flex;
    justify-content: space-between;
    margin: 0 0 9px;
    font-size: 14px;
}
.planning-day h2 small { color: #71808d; font-weight: 500; }
.planning-empty { margin: 0; color: #8a9aa3; font-size: 11px; }
.planning-entry {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto auto;
    gap: 12px;
    align-items: center;
    margin-top: 7px;
    padding: 10px 12px;
    background: #fff;
    border: 1px solid #dce5ea;
    border-left: 4px solid #4b9bca;
    border-radius: 6px;
}
.planning-entry.status-completed { border-left-color: #31965a; }
.planning-entry.status-cancelled { border-left-color: #c7473c; opacity: .72; }
.planning-entry strong,
.planning-entry small { display: block; }
.planning-entry small { margin-top: 3px; color: #657b87; }
.planning-entry p { margin: 5px 0 0; }
.planning-entry-actions,
.planning-entry-actions form { display: flex; gap: 6px; margin: 0; }
.planning-entry-actions .button,
.planning-entry-actions button { margin: 0; }

@media (max-width: 760px) {
    body { padding: 0; }
    main, main.wide {
        width: calc(100% - 20px);
        margin: 0 auto;
        padding: 102px 0 28px;
    }
    .binder-nav {
        inset: 0 0 auto;
        height: 102px;
        display: grid;
        grid-template-columns: 1fr;
        grid-template-rows: 53px 49px;
        overflow: visible;
        box-shadow: 0 4px 15px rgba(17,40,54,.16);
    }
    .binder-brand {
        display: flex;
        grid-column: 1;
        grid-row: 1;
        min-width: 0;
        padding: 7px 12px;
    }
    .binder-logo { flex-basis: 34px; height: 34px; }
    .binder-account { display: none; }
    .binder-nav nav {
        grid-column: 1;
        grid-row: 2;
        width: 100%;
        padding: 6px 7px 0;
    }
    .binder-nav nav a {
        min-width: max-content;
        flex-direction: row;
        gap: 4px;
        padding: 8px 10px;
        border-radius: 6px 6px 0 0;
        font-size: 10px;
    }
    .nav-group > summary {
        gap: 4px;
        padding: 8px 10px;
        font-size: 10px;
    }
    .nav-group-menu {
        top: 102px;
        width: calc(100vw - 14px);
        max-height: calc(100vh - 112px);
        overflow-y: auto;
    }
    .tab-icon { width: 18px; height: 18px; }
    .folder-grid { grid-template-columns: repeat(2, 1fr); }
    .folder { min-height: 80px; }
    .calendar-toolbar {
        align-items: stretch;
        flex-direction: column;
    }
    .calendar-toolbar label { width: 100%; }
    .duplicate-box form { align-items: stretch; flex-direction: column; }
    .global-search { grid-template-columns: 1fr; }
    .search-results > a { grid-template-columns: 34px minmax(0, 1fr); }
    .search-results > a > :last-child:not(:nth-child(2)) {
        grid-column: 2;
        justify-self: start;
    }
    .clock-page { padding: 14px; }
    .clock-finalize-actions { align-items: stretch; flex-direction: column; }
    .clock-finalize-actions button { width: 100%; }
    .mobile-meal-box form { grid-template-columns: 1fr; }
    .mobile-article-box form { grid-template-columns: 1fr; }
    .mobile-document-box form { grid-template-columns: 1fr; }
    .signature-canvas-wrap { height: 190px; }
    .signature-actions { flex-direction: column; }
    .dashboard-kpis { grid-template-columns: repeat(2, 1fr); }
    .dashboard-lower { grid-template-columns: 1fr; }
    .task-list > a { grid-template-columns: 13px minmax(0, 1fr); }
    .task-list > a > :last-child:not(:nth-child(2)) { grid-column: 2; justify-self: start; }
    .daily-date-form { align-items: stretch; flex-direction: column; }
    .daily-date-form button,
    .daily-date-form .button { width: 100%; text-align: center; }
    .daily-kpis { grid-template-columns: repeat(2, 1fr); }
    .weekly-kpis { grid-template-columns: repeat(2, 1fr); }
    .absence-create form { grid-template-columns: 1fr; }
    .absence-list article { grid-template-columns: 1fr; }
    .absence-actions,
    .absence-actions form { align-items: stretch; flex-direction: column; }
    .absence-actions button { width: 100%; }
    .planning-editor form { grid-template-columns: 1fr; }
    .planning-schedule-row { grid-template-columns: 1fr 1fr; }
    .planning-schedule-row label:first-child { grid-column: 1 / -1; }
    .planning-project-field { grid-template-columns: 1fr; }
    .planning-employee-list { grid-template-columns: 1fr; }
    .planning-editor label,
    .planning-instructions,
    .planning-form-actions { grid-column: 1; }
    .planning-form-actions { align-items: stretch; flex-direction: column; }
    .planning-form-actions .button,
    .planning-form-actions button { width: 100%; text-align: center; }
    .planning-entry { grid-template-columns: 1fr; }
    .planning-entry-actions,
    .planning-entry-actions form { align-items: stretch; flex-direction: column; }
    .planning-entry-actions .button,
    .planning-entry-actions button { width: 100%; text-align: center; }
    .daily-sheet-title { flex-direction: column; }
    .heading-actions { align-items: stretch; flex-direction: column; width: 100%; }
    .heading-actions .button,
    .heading-actions button { width: 100%; text-align: center; }
    .week-navigation { grid-template-columns: 1fr; }
    .week-navigation form { align-items: stretch; flex-direction: column; }
    .week-navigation .button,
    .week-navigation button { width: 100%; text-align: center; }
}
@media (max-width: 480px) {
    .folder-grid { grid-template-columns: 1fr; }
    .daily-kpis { grid-template-columns: 1fr; }
}

/* Menu principal centré dans la barre sombre de l’en-tête. */
@media (min-width: 761px) {
    main, main.wide { padding-top: 70px; }
    .binder-nav {
        grid-template-rows: 70px;
        height: 70px;
    }
    .binder-nav nav {
        grid-column: 2;
        grid-row: 1;
        align-items: center;
        justify-content: center;
        gap: 5px;
        overflow: visible;
        padding: 0 10px;
        background: transparent;
        border: 0;
    }
    .binder-nav nav > a,
    .nav-group > summary {
        min-width: max-content;
        gap: 5px;
        margin: 0;
        padding: 8px 9px;
        color: #dce8ee;
        background: transparent;
        border: 1px solid transparent;
        border-radius: 7px;
        font-size: 11px;
    }
    .binder-nav nav > a:hover,
    .nav-group > summary:hover {
        color: #fff;
        background: #24495f;
    }
    .binder-nav nav > a.active,
    .nav-group.active > summary {
        color: #fff;
        background: #2f6d90;
        box-shadow: none;
    }
    .nav-group-menu {
        position: absolute;
        top: 100%;
        left: 0;
        width: 340px;
        max-height: calc(100vh - 82px);
        overflow-y: auto;
        transform: none;
        border-radius: 0 0 10px 10px;
    }
    .nav-group:nth-last-of-type(-n+3) > .nav-group-menu {
        right: 0;
        left: auto;
    }
}
@media (min-width: 761px) and (hover: hover) and (pointer: fine) {
    .nav-group:hover > summary {
        color: #fff;
        background: #24495f;
    }
    .nav-group:hover > summary::after { transform: rotate(180deg); }
}
@media (max-width: 760px) {
    .binder-nav nav {
        align-items: center;
        background: var(--nav);
        border-top: 1px solid rgba(255,255,255,.1);
    }
    .binder-nav nav > a,
    .nav-group > summary {
        color: #dce8ee;
        background: transparent;
        border: 1px solid transparent;
        border-radius: 6px;
    }
    .binder-nav nav > a.active,
    .nav-group.active > summary {
        color: #fff;
        background: #2f6d90;
        box-shadow: none;
    }
}
@media print {
    .binder-nav,
    .no-print { display: none !important; }
    body { background: #fff; }
    main,
    main.wide { width: 100%; margin: 0; padding: 0; }
    .daily-summary { border: 0; box-shadow: none; }
    .binder-page { border: 0; box-shadow: none; }
    .paper-section,
    .summary-card { break-inside: avoid; }
    /* Même zone imprimable pour toutes les autres fiches PDF du site. */
    @page { size: A4 portrait; margin: 16mm 19mm 14mm; }
}

.expense-review-actions {
    display: grid;
    gap: .35rem;
    min-width: 10rem;
}
.expense-review-actions input {
    min-width: 10rem;
}
.main-date-field {
    padding: .55rem;
    border: 2px solid var(--green);
    border-radius: 8px;
    background: #f3fbf5;
}
.section-settings-list {
    display: grid;
    gap: .7rem;
}
.entry-theme-field[hidden],
.entry-km-field[hidden] {
    display: none !important;
}
.section-setting-row {
    display: grid;
    grid-template-columns: 1.2fr 2fr 90px 90px auto;
    gap: .65rem;
    align-items: end;
    padding: .75rem;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
}
.section-setting-row > div {
    display: grid;
    gap: .35rem;
}
@media (max-width: 850px) {
    .section-setting-row { grid-template-columns: 1fr; }
}

/* Horaire contractuel et solde de vacances par salarié. */
.employee-week {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin: 14px 0;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
}
.employee-week legend {
    padding: 0 6px;
    font-weight: 700;
}
.employee-week label { margin: 0; }
.vacation-kpis {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin: 0 0 16px;
}
.vacation-kpis > div {
    padding: 13px;
    border: 1px solid var(--line);
    border-top: 3px solid var(--blue);
    border-radius: 8px;
    background: #fff;
}
.vacation-kpis strong,
.vacation-kpis small { display: block; }
.vacation-kpis strong { font-size: 18px; }
.vacation-kpis small {
    margin-top: 3px;
    color: var(--muted);
    font-size: 10px;
    text-transform: uppercase;
}
@media (max-width: 760px) {
    .employee-week { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
    .employee-week,
    .vacation-kpis { grid-template-columns: 1fr; }
}

.schedule-summary { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.schedule-summary.accrual-summary { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.personal-schedule {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 8px;
}
.personal-schedule article {
    min-height: 110px;
    padding: 12px 8px;
    border: 1px solid var(--line);
    border-top: 3px solid var(--blue);
    border-radius: 8px;
    background: #fff;
    text-align: center;
}
.personal-schedule span,
.personal-schedule strong,
.personal-schedule small { display: block; }
.personal-schedule strong {
    margin: 12px 0 5px;
    font-size: 18px;
}
.personal-schedule small { color: var(--muted); }
.personal-schedule .rest-day {
    border-top-color: #8b9499;
    background: #f4f6f7;
}
.muted-note {
    margin-top: 14px;
    color: var(--muted);
    font-size: 12px;
}
@media (max-width: 900px) {
    .schedule-summary.accrual-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .personal-schedule { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
    .schedule-summary,
    .schedule-summary.accrual-summary,
    .personal-schedule { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
    .schedule-summary,
    .schedule-summary.accrual-summary,
    .personal-schedule { grid-template-columns: 1fr; }
    .personal-schedule article { min-height: 88px; }
}
/* Suivi chronologique du dossier client */
.client-activity-form{padding:14px;border:1px solid #d7e2e8;border-radius:8px;background:#f7fafb;margin-bottom:16px}
.client-activity-list{display:grid;gap:10px}
.client-activity-item{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:13px 14px;border-left:3px solid #39a5df;border-radius:5px;background:#f7fafb}
.client-activity-item>div{display:grid;gap:5px}
.client-activity-item strong{font-size:.95rem}
.client-activity-item small{color:#607381}
.client-activity-item p{margin:3px 0 0;white-space:normal}
.activity-actions{display:flex!important;align-items:center;gap:7px}
.activity-actions form{margin:0}
.activity-completed{opacity:.68;border-left-color:#76909f}
.activity-completed strong{text-decoration:line-through}
@media(max-width:700px){.client-activity-item{display:block}.client-activity-item form{margin-top:10px}}
/* Plusieurs personnes de contact dans le dossier client */
.contact-editor{padding:11px 14px;border:1px solid #d7e2e8;border-radius:8px;background:#f7fafb;margin-bottom:15px}
.contact-editor summary{cursor:pointer;font-weight:700;color:#183648}
.contact-editor form{margin-top:13px}
.contact-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:11px}
.contact-card{padding:14px;border:1px solid #d7e2e8;border-top:3px solid #39a5df;border-radius:7px;background:#fff}
.contact-card>div:first-child{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.contact-card small{display:block;width:100%;color:#607381}
.contact-card p{margin:9px 0}
.project-contact{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,1fr);gap:18px;margin-top:14px;padding:13px 15px;border-left:3px solid #39a5df;border-radius:6px;background:#f7fafb}
.project-contact strong,.project-contact span,.project-contact small{display:block}
.project-contact small{color:#607381;margin-top:3px}
@media(max-width:650px){.project-contact{grid-template-columns:1fr}}
.timesheet-contact{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:10px 13px;margin:10px 0;border-left:3px solid #39a5df;border-radius:6px;background:#f7fafb}
.timesheet-contact span,.timesheet-contact small{display:block}
.timesheet-contact small{color:#607381}
@media(max-width:650px){.timesheet-contact{display:block}.timesheet-contact>div+div{margin-top:8px}}
.mobile-contact{margin-top:12px;padding:10px 12px;border:1px solid #b9d9c8;border-radius:7px;background:#edf8f2;color:#1d5639}
.mobile-contact strong,.mobile-contact small{display:block}
.mobile-contact small{margin-top:2px}
.mobile-contact div{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin-top:8px}
.mobile-contact .mobile-contact-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-top:0}
.mobile-contact .mobile-contact-info{display:block;min-width:0;margin-top:0}
.mobile-contact .mobile-contact-name{display:block}
.mobile-contact .mobile-contact-actions{display:flex;flex:0 0 auto;align-self:flex-start;gap:8px;margin-top:0}
.mobile-contact a{display:inline-block;padding:7px 12px;border-radius:5px;background:#31965a;color:#fff;text-decoration:none;font-weight:700}
.clock-contacts-open{display:block;width:100%;margin-top:12px;background:#31965a;color:#fff;font-weight:750}.clock-project-contact-dialog .clock-next-dialog-card{max-height:88vh;overflow-y:auto}.clock-contact-dialog-list .mobile-contact:first-child{margin-top:0}
.selection-contact{margin:0 0 13px;text-align:left}
.mobile-site-address{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;padding:10px 12px;border:1px solid #d7e2e8;border-radius:7px;background:#f7fafb;color:#294757;text-align:left}
.mobile-site-address a{flex:0 0 auto;padding:8px 12px;border-radius:5px;background:#68737a;color:#fff;text-decoration:none;font-weight:700}
.route-app-picker{position:relative;flex-wrap:wrap}
.route-app-picker>[data-route-toggle]{order:2;flex:0 0 auto;margin:0}
.clock-route-summary{order:1;flex:0 0 auto;margin-left:auto;font-weight:750;color:#294757;white-space:nowrap}
.clock-route-summary[hidden]{display:none}
.route-app-picker:has(.clock-route-summary[hidden])>[data-route-toggle]{margin-left:auto}
.route-app-choices{flex:1 0 100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;padding-top:3px}
.route-app-choices[hidden]{display:none!important}
.route-app-choices button{min-width:0;margin:0;padding:9px 8px;background:#68737a;color:#fff;font-size:.86rem;white-space:nowrap}
.route-app-choices button:hover,.route-app-choices button:focus{background:#315f7a}
.route-modal-open{overflow:hidden}
.route-modal-backdrop{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(10,48,91,.58);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
.route-modal{width:min(350px,calc(100vw - 38px));padding:20px;border:1px solid rgba(255,255,255,.72);border-radius:25px;background:linear-gradient(145deg,#eaf8ff 0%,#cfeeff 48%,#b9ddff 100%);box-shadow:0 22px 60px rgba(6,70,135,.38),inset 0 1px 0 rgba(255,255,255,.9);color:#123f6b;text-align:center}
.route-modal h2{margin:2px 6px 17px;color:#123f6b;font-size:1.05rem;font-weight:800}
.route-modal .route-modal-destination{color:#1768a6}
.route-modal button{display:block;width:100%;margin:9px 0 0;padding:13px 12px;border:1px solid rgba(255,255,255,.5);border-radius:24px;background:linear-gradient(135deg,#168ee0,#0872c9);color:#fff;font-size:1rem;font-weight:700;box-shadow:0 5px 13px rgba(9,107,185,.24);transition:background .18s ease,transform .18s ease,box-shadow .18s ease}
.route-modal button:hover,.route-modal button:focus{background:linear-gradient(135deg,#20a6ed,#0869b8);outline:3px solid rgba(30,156,232,.3);outline-offset:2px;transform:translateY(-1px)}
.route-modal .route-modal-cancel{margin-top:12px;border-color:#9fcdf1;background:#fff;color:#1768a6;box-shadow:0 3px 10px rgba(20,104,166,.12)}
.route-modal .route-modal-cancel:hover,.route-modal .route-modal-cancel:focus{background:#e8f6ff;color:#0d568f}
.project-address-picker{margin:12px 0;padding:14px;border:1px solid #d7e2e8;border-left:3px solid #3ea9e5;border-radius:7px;background:#f7fafb}
.project-address-picker>label:first-child{margin-top:0}
.project-contact-picker{margin:12px 0;padding:14px;border:1px solid #d7e2e8;border-left:3px solid #3ea9e5;border-radius:7px;background:#f7fafb}
.project-contact-picker>label:first-child{margin-top:0}
.project-contact-search{margin-bottom:10px}
.project-form-panel{margin:14px 0;padding:16px;border:1px solid #d7e2e8;border-left:3px solid #3ea9e5;border-radius:8px;background:#fbfcfd}
.project-form-panel h2{margin:0 0 13px;font-size:15px;color:#243b4a}
.project-form-panel>label:first-of-type{margin-top:0}
.project-form-panel .project-contact-picker,.project-form-panel .project-address-picker{margin:0;border:0;border-left:0;padding:0;background:transparent}
.project-form-panel-status{border-left-color:#ef8b18;background:#fffaf4}
.project-form-panel-status h2{color:#81500f}
.project-selected-contacts{display:grid;gap:8px;margin-bottom:12px}
.project-selected-contact{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid #cfe0e9;border-radius:7px;background:#fff}
.project-selected-contact strong,.project-selected-contact small{display:block}.project-selected-contact small{margin-top:2px;color:#647985}
.project-selected-contact .danger{width:34px;height:34px;padding:0;font-size:20px}
.project-contact-actions{display:flex;flex-wrap:wrap;gap:8px}
.project-role-contact-picker{min-width:min(100%,460px);padding:8px 0}
.project-role-contact-picker .project-selected-contacts{margin-bottom:8px}
.project-role-contact-picker .project-contact-actions button{font-size:.86rem;padding:8px 10px}
.project-contact-dialog{width:min(720px,calc(100% - 24px));max-height:82vh;padding:0;border:0;border-radius:12px;box-shadow:0 20px 70px rgba(0,0,0,.35)}
.project-contact-dialog::backdrop{background:rgba(11,27,37,.62)}
.project-contact-dialog-card{padding:20px;margin:0}.project-contact-dialog-card .section-heading{margin-bottom:14px}
.project-contact-results{display:grid;gap:7px;max-height:48vh;overflow:auto;margin:12px 0;padding:4px}
.project-contact-choice{display:flex;align-items:center;gap:10px;padding:11px;border:1px solid #d7e2e8;border-radius:7px;background:#fff;cursor:pointer}
.project-contact-choice:hover{background:#eef8fd}.project-contact-choice input{width:18px;height:18px;margin:0}.project-contact-choice span{flex:1}
.project-contact-choice strong,.project-contact-choice small{display:block}.project-contact-choice small{margin-top:2px;color:#647985}
.project-contact-dialog-actions{display:flex;justify-content:flex-end;margin-top:12px}
.timesheet-remark-dialog{width:min(680px,calc(100% - 24px));max-height:88vh;padding:0;border:0;border-radius:14px;box-shadow:0 22px 75px rgba(0,0,0,.4)}
.timesheet-remark-dialog::backdrop{background:rgba(11,27,37,.68);backdrop-filter:blur(2px)}
.timesheet-remark-dialog-card{padding:22px}.timesheet-remark-dialog-card .section-heading{margin-bottom:16px}.timesheet-remark-dialog-card textarea{min-height:130px}
.timesheet-remark-dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}
.timesheet-remark-dialog-actions [hidden]{display:none!important}
.timesheet-remark-dialog-actions .danger{margin-left:auto}
.addition-sheet-identity{margin:0 0 12px;padding:10px 12px;border-left:4px solid var(--blue);border-radius:6px;background:#eef8fd;color:#183e55}
.timesheet-edit-remark{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid var(--line)}
.timesheet-edit-remark:last-child{border-bottom:0}.timesheet-edit-remark p{margin:0;flex:1}.timesheet-edit-remark button{flex:0 0 auto}
.clock-remarks-summary{margin:14px 0;padding:14px;border:1px solid var(--remark-border);border-radius:12px;background:var(--remark-bg)}.clock-remarks-summary .section-heading{margin-bottom:4px}.clock-remarks-summary .section-heading small{display:block;color:var(--muted)}
.clock-remarks-summary article{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}.clock-remarks-summary article:last-child{border-bottom:0}.clock-remarks-summary article p{margin:3px 0 0;color:var(--muted);font-size:.92rem}
.clock-attachment-preview{margin:14px 0;padding:14px;border:1px solid var(--line);border-radius:12px;text-align:left}.clock-expense-preview{background:var(--expense-bg);border-color:var(--expense-border)}.clock-document-preview{background:var(--document-bg);border-color:var(--document-border)}.clock-attachment-preview>.section-heading{margin-bottom:4px}.clock-attachment-preview>.section-heading small,.clock-attachment-preview article small{display:block;color:var(--muted);margin-top:2px}.clock-attachment-preview article{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid rgba(72,93,104,.18)}.clock-attachment-preview article:last-child{border-bottom:0}.clock-attachment-preview article>div{min-width:0}.clock-attachment-preview article p{margin:3px 0 0;color:var(--muted);font-size:.92rem}.clock-attachment-preview article .button{flex:0 0 auto;margin:0}
.clock-edit-remark-dialog{width:min(620px,calc(100% - 24px));padding:0;border:0;border-radius:14px;box-shadow:0 22px 75px rgba(0,0,0,.42)}.clock-edit-remark-dialog::backdrop{background:rgba(11,27,37,.68);backdrop-filter:blur(2px)}.clock-edit-remark-card{padding:20px}.clock-edit-remark-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:15px}
.clock-add-toolbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:14px 0}.clock-add-button{margin:0;padding:13px 10px;background:#2f995c;color:#fff;border:0;border-radius:9px;font-weight:800}
.clock-add-toolbar[hidden]{display:none!important}
.clock-general-actions .clock-add-action{min-height:68px;margin-bottom:14px;padding:16px 20px;background:#2f995c;color:#fff;font-size:18px;font-weight:800}
.clock-add-dialog{width:min(720px,calc(100% - 24px));max-height:88vh;padding:0;border:0;border-radius:14px;box-shadow:0 22px 75px rgba(0,0,0,.42)}.clock-add-dialog::backdrop{background:rgba(11,27,37,.68);backdrop-filter:blur(2px)}.clock-add-dialog-card{padding:20px}.clock-add-dialog-card>.section-heading{margin-bottom:14px;text-align:left}.clock-add-dialog details{margin:0;padding:0;border:0;background:transparent;text-align:left}.clock-add-dialog details>summary[hidden]{display:none}.clock-add-dialog form{margin:0;grid-template-columns:1fr;text-align:left}.clock-add-dialog form label,.clock-add-dialog form p,.clock-add-dialog form small{display:block;text-align:left}.clock-add-dialog form label{width:100%}.clock-add-dialog form button{grid-column:1}
@media(max-width:640px){.clock-add-toolbar{grid-template-columns:1fr}.clock-add-dialog-card{padding:15px}}
.clock-modify-dialog form{display:grid;grid-template-columns:1fr;gap:14px;margin:0;text-align:left}
.clock-modify-dialog form>label{display:block;width:100%;margin:0;text-align:left}
.clock-modify-dialog form>label[hidden]{display:none!important}
.clock-modify-dialog form>label select,.clock-modify-dialog form>label input,.clock-modify-dialog form>label textarea{width:100%;margin-top:6px}
.clock-modify-dialog .clock-edit-remark-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:4px;width:100%}
.clock-modify-dialog .clock-edit-remark-actions button{grid-column:auto!important;flex:0 0 auto;width:auto;min-width:180px;margin:0}
@media(max-width:640px){.clock-modify-dialog .clock-edit-remark-actions{display:grid;grid-template-columns:1fr}.clock-modify-dialog .clock-edit-remark-actions button{width:100%;min-width:0}}
#documents .task-annotations>p{position:relative;min-height:58px;margin:0;padding:10px 150px 10px 0;border-bottom:1px solid var(--line)}
#documents .task-annotations>p:last-of-type{border-bottom:0}
#documents .task-annotations>p>a.button{position:absolute;top:50%;right:0;transform:translateY(-50%);margin:0}
@media(max-width:640px){#documents .task-annotations>p{padding-right:0;padding-bottom:62px}#documents .task-annotations>p>a.button{top:auto;right:0;bottom:10px;transform:none}}
.timesheet-edit-add-toolbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0;padding:14px;border:1px solid var(--line);border-radius:12px;background:#f8fbfc}
.timesheet-edit-add-toolbar .timesheet-add-button{width:100%!important;margin:0!important;padding:15px 12px}
.timesheet-empty-heading .timesheet-add-button{display:none!important}
.timesheet-task-additions{grid-column:1/-1;margin:-2px 0 12px;padding:12px 14px;border:1px solid #bcdcca;border-left:4px solid #31965a;border-radius:8px;background:#f0faf4}
.timesheet-task-additions-title{display:block;margin-bottom:7px;color:#246e45}
.timesheet-task-additions .timesheet-edit-remark,.timesheet-task-additions .edit-meal-row,.timesheet-task-additions>p{background:#fff}
.timesheet-intervention-additions{box-sizing:border-box;margin-top:24px;padding:14px;border:1px solid #bcdcca;background:#f5fbf7}.timesheet-intervention-additions h2{margin:0 0 10px}
.timesheet-intervention-additions [data-intervention-items]{display:grid;gap:8px}
.timesheet-expense-create-dialog{overflow:hidden!important}
.timesheet-expense-create-dialog .clock-add-dialog-card{box-sizing:border-box;max-height:88vh;overflow-y:auto}
.timesheet-addition-record{margin:0!important;border:1px solid #d7e8dd!important;border-left:4px solid #31965a!important;border-radius:7px!important;background:#fff!important;box-shadow:none!important}
.timesheet-addition-remark{border-color:var(--remark-border)!important;border-left-color:var(--remark-accent)!important;background:var(--remark-bg)!important}
.timesheet-addition-expense{border-color:var(--expense-border)!important;border-left-color:var(--expense-accent)!important;background:var(--expense-bg)!important}
.timesheet-addition-document{border-color:var(--document-border)!important;border-left-color:var(--document-accent)!important;background:var(--document-bg)!important}
.timesheet-addition-remark{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 12px!important}
.timesheet-addition-remark p{margin:0;flex:1}
.timesheet-addition-remark>button{flex:0 0 110px;width:110px}
.timesheet-addition-document{position:relative;min-height:58px;padding:10px 256px 10px 12px!important}
.timesheet-addition-document>.button{position:absolute;top:50%;width:110px;transform:translateY(-50%);margin:0;text-align:center}
.timesheet-addition-document>.timesheet-document-preview-button{right:134px}
.timesheet-addition-document>.timesheet-document-edit-button{right:12px}
.timesheet-addition-expense{display:block!important;padding:10px 12px!important}
.timesheet-expense-summary{display:flex;align-items:center;justify-content:space-between;gap:12px}
.timesheet-expense-summary p{flex:1;margin:0}
.timesheet-expense-summary small{color:var(--muted)}
.timesheet-expense-summary>button{flex:0 0 110px;width:110px}
.timesheet-expense-summary>.button{flex:0 0 auto;margin:0}
.timesheet-addition-expense:not(.is-editing)>label,.timesheet-addition-expense:not(.is-editing)>.remove-row,.timesheet-addition-expense:not(.is-editing)>a.button{display:none!important}
.timesheet-addition-expense.is-editing{display:grid!important;margin:0!important}
.timesheet-addition-expense.is-editing .timesheet-expense-summary{grid-column:1/-1;margin-bottom:4px}
.timesheet-expense-dialog-form{display:grid;gap:14px}
.timesheet-expense-dialog-form label{display:grid;gap:6px;text-align:left;font-weight:700}
.timesheet-expense-dialog-form [data-expense-receipt]{text-align:left}
.timesheet-expense-dialog-form [data-expense-receipt] p{margin:0}
.timesheet-addition-document-form{padding:12px!important}
@media(max-width:640px){.timesheet-addition-remark,.timesheet-expense-summary{align-items:stretch;flex-direction:column}.timesheet-addition-remark button,.timesheet-expense-summary .button,.timesheet-expense-summary button{width:100%}.timesheet-addition-document{padding:10px 10px 62px!important}.timesheet-addition-document>a.button{top:auto;right:10px;bottom:10px;transform:none}}
.timesheet-linked-document{position:relative;min-height:58px;margin:0;padding:10px 256px 10px 12px;border-bottom:1px solid var(--line)}
.timesheet-linked-document>.button{position:absolute;top:50%;width:110px;transform:translateY(-50%);margin:0;text-align:center}
.timesheet-linked-document>.timesheet-document-preview-button{right:134px}
.timesheet-linked-document>.timesheet-document-edit-button{right:12px}
@media(max-width:700px){.timesheet-edit-add-toolbar{grid-template-columns:1fr}.timesheet-task-additions{padding:10px}}
@media(max-width:640px){.timesheet-addition-document,.timesheet-linked-document{padding-right:10px!important;padding-bottom:62px!important}.timesheet-addition-document>.button,.timesheet-linked-document>.button{top:auto;bottom:10px;transform:none}.timesheet-addition-document>.timesheet-document-preview-button,.timesheet-linked-document>.timesheet-document-preview-button{right:132px}.timesheet-addition-document>.timesheet-document-edit-button,.timesheet-linked-document>.timesheet-document-edit-button{right:10px}}
.timesheet-document-preview-dialog{width:min(1180px,calc(100% - 24px));max-height:94vh;padding:0;border:0;border-radius:14px;box-shadow:0 22px 75px rgba(0,0,0,.46)}
.timesheet-document-preview-dialog::backdrop{background:rgba(11,27,37,.72);backdrop-filter:blur(2px)}
.timesheet-document-preview-card{padding:18px}.timesheet-document-preview-card>.section-heading{margin-bottom:12px}.timesheet-document-preview-content{min-height:300px}
.timesheet-document-preview-card>.section-heading>[data-preview-download]{margin-left:auto}.timesheet-document-preview-card>.section-heading>[data-close-preview]{margin-left:8px}
.timesheet-inline-image-preview,.timesheet-inline-document-frame{height:calc(88vh - 150px);min-height:420px}
.timesheet-document-preview-actions{display:flex;justify-content:flex-end;margin-top:12px}
@media(max-width:640px){.timesheet-document-preview-card{padding:10px}.timesheet-inline-image-preview,.timesheet-inline-document-frame{height:calc(86vh - 185px);min-height:330px}.timesheet-document-preview-actions .button{width:100%;text-align:center}}
.project-address-search{margin:0 0 10px}
.project-address-search input{padding-left:38px;background:#fff}
.project-address-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:10px 0}
.project-address-actions .button,.project-address-actions button{margin:0}
.project-cell-link{display:block;margin:-8px -10px;padding:8px 10px;border-radius:5px;color:inherit;text-decoration:none}
.project-cell-link strong{color:#17364a}
.project-cell-link small{color:#607887}
.project-cell-link:hover,.project-cell-link:focus{background:#eaf6fc;box-shadow:inset 3px 0 #3ea9e5;outline:none}
.project-cell-link:hover strong,.project-cell-link:focus strong{color:#176b99}
.clickable-project-row{cursor:pointer;transition:background-color .15s ease,box-shadow .15s ease}
.clickable-project-row:hover,.clickable-project-row:focus{background:#eef8fd;outline:2px solid #48a8df;outline-offset:-2px}
.clickable-project-row td:first-child{border-left:3px solid transparent}
.clickable-project-row:hover td:first-child,.clickable-project-row:focus td:first-child{border-left-color:#48a8df}
@media(max-width:650px){.project-address-actions{display:grid;grid-template-columns:1fr}.project-address-actions .button,.project-address-actions button{width:100%;text-align:center}}
.selection-address{margin:0 0 13px}
@media(max-width:500px){.mobile-site-address{align-items:stretch;flex-direction:column}.mobile-site-address a{text-align:center}.route-app-choices{grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.mobile-site-address.route-app-picker{flex-direction:row;align-items:center;justify-content:flex-start}.mobile-site-address.route-app-picker>[data-route-address]{flex:0 0 100%}}
.project-instructions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin:12px 0}
.project-instructions article{padding:12px 14px;border-left:3px solid #68737a;border-radius:6px;background:#f7fafb}
.project-instructions article.safety{border-left-color:#df8518;background:#fff7e9}
.project-instructions p{margin:6px 0 0}
.mobile-instructions{margin:10px 0 13px;padding:10px 12px;border:1px solid #d7e2e8;border-radius:7px;background:#f7fafb;text-align:left}
.mobile-instructions p{margin:0;padding:5px 0}
.mobile-instructions p+p{border-top:1px solid #d7e2e8}
.mobile-instructions strong,.mobile-instructions span{display:block}
.mobile-instructions .safety strong{color:#a45d08}
.safety-confirm{display:flex!important;align-items:flex-start;gap:9px;margin:0 0 13px!important;padding:12px!important;border:2px solid #df8518!important;border-radius:7px;background:#fff7e9;color:#70400a;font-weight:700}
.safety-confirm input{flex:0 0 auto;width:20px;height:20px;margin:0}
.safety-confirm[hidden]{display:none!important}
.safety-ack-list{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0;padding:10px 12px;border-left:3px solid #31965a;border-radius:6px;background:#edf8f2}
.safety-ack-list span{font-size:.85rem;color:#315b46}
@media(max-width:650px){.project-instructions{grid-template-columns:1fr}}
.quote-price.quote-price-missing{border-color:#cf4339;background:#fff3f2;box-shadow:0 0 0 1px rgba(207,67,57,.18)}
.quote-price.quote-price-missing:focus{outline:2px solid #cf4339;outline-offset:1px}
.quote-progress{margin:13px 0;padding:11px 13px;border:1px solid #d7e2e8;border-radius:7px;background:#f7fafb}
.quote-progress>div{display:flex;justify-content:space-between;gap:12px;margin-bottom:7px;color:#294757}
.quote-progress progress{display:block;width:100%;height:12px;accent-color:#31965a}
.quote-progress.quote-total-invalid{border-color:#cf4339;background:#fff3f2}
.quote-progress.quote-total-invalid progress{accent-color:#cf4339}
@media(max-width:500px){.quote-progress>div{align-items:flex-start;flex-direction:column;gap:3px}}
.form-submitting button{pointer-events:none;opacity:.68}
/* Porte-documents du répertoire client */
.client-address-book{max-width:1180px;margin:34px auto 80px;padding:0 18px 30px;border:1px solid #cbdde8;border-radius:12px;background:#fff;box-shadow:0 16px 38px rgba(25,55,72,.09);overflow:visible}
.client-address-book>.page-heading{margin:-82px 0 24px;padding:0 0 16px;transform:translateY(-34px);background:transparent;border:0}
.client-address-book>.page-heading h1{font-size:25px;letter-spacing:-.5px;color:#172f40}
.client-address-book>.page-heading .eyebrow,.client-address-book>.page-heading p:last-child{display:none}
.client-book-tabs{margin:0 -18px 20px;padding:10px 14px 0;background:#eaf4fa;border-bottom:3px solid #48a8df;border-radius:11px 11px 0 0;display:flex;gap:5px;overflow-x:auto}
.client-book-tabs a{display:flex;align-items:center;gap:8px;min-height:47px;padding:0 18px;border:1px solid #bfd8e8;border-bottom:0;border-radius:9px 9px 0 0;background:#dcecf5;color:#294b60;font-weight:700;text-decoration:none;white-space:nowrap}
.client-book-tabs a.active{background:#fff;color:#173548;border-color:#80bee3;box-shadow:0 -2px 0 #fff}
.client-book-tabs a span{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:12px;background:#bfdceb;color:#315d75;font-size:12px}
.client-address-book>.paper-section{margin:0 4px 18px;padding:16px;border:1px solid #d9e4ea;border-left:4px solid #48a8df;border-radius:10px;background:#fff;box-shadow:0 7px 18px rgba(27,62,82,.05)}
.client-address-book .section-heading{margin:-2px 0 16px;padding-bottom:12px;border-bottom:1px solid #e1e9ee}
.client-address-book .section-heading h2{font-size:18px;color:#183449}
.client-address-book .section-heading h2:before{content:'ADR';display:inline-flex;align-items:center;justify-content:center;width:39px;height:34px;margin-right:11px;border-radius:8px;background:#e3f3fb;color:#1875a8;font-size:11px;letter-spacing:.6px;vertical-align:middle}
.client-address-book #client-contacts .section-heading h2:before{content:'CNT'}
.client-address-book #other-addresses .section-heading h2:before{content:'DIV'}
.client-address-book .form-grid{gap:12px 16px}
.client-address-book label{font-size:13px;color:#2a4353}
.client-address-book input,.client-address-book select,.client-address-book textarea{border-color:#bdced8;background:#fff}
.client-address-book table{border:1px solid #d9e4ea;border-radius:9px;overflow:hidden}
.client-address-book table th{background:#f4f8fa;color:#4e6878;font-size:11px;text-transform:uppercase;letter-spacing:.6px}
.client-address-book table td{padding-top:12px;padding-bottom:12px}
@media(max-width:760px){.client-address-book{margin-top:20px;padding-left:10px;padding-right:10px}.client-address-book>.page-heading{margin:0;transform:none}.client-book-tabs{margin-left:-10px;margin-right:-10px}.client-address-book>.paper-section{margin-left:0;margin-right:0}.client-address-book .heading-actions{width:100%}}

/* Ajustement fidèle au modèle de porte-documents client */
body main.wide>.client-book-external-title{max-width:1400px;margin:38px auto 24px;padding:0 4px;color:#172f40;font-size:28px;line-height:1.2;letter-spacing:-.7px}
body main.wide>.client-address-book{box-sizing:border-box;width:calc(100% - 48px);max-width:1400px;margin:0 auto 90px;padding:0 22px 54px;border:1px solid #c8dce8;border-radius:12px;background:#fff;box-shadow:0 14px 34px rgba(31,62,80,.08);overflow:hidden}
body .client-address-book>.client-book-tabs{box-sizing:border-box;display:flex!important;align-items:flex-end;gap:5px;width:auto;margin:0 -22px 22px;padding:11px 14px 0;background:#e8f3f9;border:0;border-bottom:3px solid #4ba8de;border-radius:11px 11px 0 0;white-space:nowrap}
body .client-address-book>.client-book-tabs>a{box-sizing:border-box;display:flex!important;align-items:center;gap:9px;min-height:49px;padding:0 20px;border:1px solid #c0d9e8;border-bottom:0;border-radius:9px 9px 0 0;background:#dcecf5;color:#294b60;font-size:14px;font-weight:750;line-height:1;text-decoration:none}
body .client-address-book>.client-book-tabs>a.active{position:relative;top:2px;min-height:51px;background:#fff;color:#173548;border-color:#83bee2;box-shadow:inset 0 2px 0 #78bce5}
body .client-address-book>.client-book-tabs>a>span{display:inline-flex!important;align-items:center;justify-content:center;min-width:23px;height:23px;padding:0 6px;border-radius:13px;background:#bfddea;color:#315e75;font-size:12px}
body .client-address-book>.client-book-panel{margin:0;padding:0 0 24px;border:0;border-left:0;border-radius:0;background:#fff;box-shadow:none}
body .client-address-book>.client-book-panel>.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 18px;padding:0 0 16px;border-bottom:1px solid #dbe6ec}
body .client-address-book>.client-book-panel>.section-heading>div{position:relative;padding-left:57px}
body .client-address-book>.client-book-panel>.section-heading h2{margin:0 0 3px;color:#193448;font-size:20px}
body .client-address-book>.client-book-panel>.section-heading h2:before{position:absolute;left:0;top:-4px;width:43px;height:40px;margin:0;border-radius:9px;background:#e3f3fb;color:#1678ad;font-size:11px}
body .client-address-book .client-book-panel-actions{display:flex;gap:9px;margin-left:auto;white-space:nowrap}
body .client-address-book .client-book-panel-actions .button{min-height:42px;display:inline-flex;align-items:center}
body .client-address-book>.client-book-panel>form{padding:14px;border:1px solid #dbe5ea;border-radius:10px;background:#fbfdfe}
body .client-address-book>.client-book-panel .form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 16px}
body .client-address-book>.client-book-panel .form-actions{display:flex;justify-content:flex-end;margin-top:13px}
body .client-address-book>.client-book-panel details{border:1px solid #d7e3e9;border-radius:9px;background:#f8fbfc}
body .client-address-book>.client-book-panel details summary{padding:15px 17px;font-weight:750;color:#24475c}
body .client-address-book>.client-book-panel .table-wrap{border:1px solid #d8e3e9;border-radius:10px;box-shadow:0 8px 20px rgba(25,58,77,.05)}
@media(max-width:900px){body main.wide>.client-address-book{width:calc(100% - 20px);padding-left:12px;padding-right:12px}body main.wide>.client-book-external-title{margin:22px 14px 16px;font-size:23px}body .client-address-book>.client-book-tabs{margin-left:-12px;margin-right:-12px;overflow-x:auto}body .client-address-book>.client-book-panel .form-grid{grid-template-columns:1fr}body .client-address-book>.client-book-panel>.section-heading{align-items:flex-start;flex-direction:column}body .client-address-book .client-book-panel-actions{margin-left:0;width:100%}}
.clock-binder-tabs{display:flex;align-items:flex-end;gap:5px;margin:18px -18px 22px;padding:0 18px;border-bottom:3px solid #45a9dc;background:#e9f5fb}
.clock-binder-view-pointage:is(.clock-selecting,.clock-action-header){padding-top:70px}
.clock-binder-view-pointage:is(.clock-selecting,.clock-action-header) .clock-selecting-header{position:sticky;top:70px;z-index:10;margin:-18px -18px 18px;padding:14px 18px 0;background:#fff;box-shadow:0 5px 16px rgba(20,53,73,.13)}
.clock-binder-view-pointage:is(.clock-selecting,.clock-action-header) .clock-selecting-header .clock-page-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:12px}
.clock-binder-view-pointage:is(.clock-selecting,.clock-action-header) .clock-selecting-header .clock-page-header>*:not(.clock-header-actions){grid-column:1}
.clock-header-actions{grid-column:2;grid-row:1 / span 3;align-self:start;display:grid;gap:6px}
.clock-selection-action-button{min-height:44px;margin:0;padding:10px 20px;background:#278b56;font-size:1rem;font-weight:750;white-space:nowrap}
.clock-header-contacts{min-height:36px;margin:0;padding:7px 14px;background:#31965a;color:#fff;font-size:.9rem;font-weight:750}
.clock-header-contacts[hidden],.clock-contacts-open[hidden]{display:none!important}
.clock-binder-view-pointage:is(.clock-selecting,.clock-action-header) .clock-binder-tabs{margin-bottom:0}
.clock-selecting .clock-prestart form,.clock-selecting #clock-start-form>.clock-start,.clock-selecting #clock-site-address>[data-route-toggle]{display:none}
@media(max-width:760px){.clock-binder-view-pointage:is(.clock-selecting,.clock-action-header){padding-top:102px}.clock-binder-view-pointage:is(.clock-selecting,.clock-action-header) .clock-selecting-header{top:102px}}
@media(max-width:640px){.clock-binder-view-pointage:is(.clock-selecting,.clock-action-header) .clock-selecting-header{margin:-14px -14px 14px;padding:10px 14px 0}.clock-selection-action-button{min-height:46px;padding:10px 14px;font-size:.94rem;white-space:normal}}
.clock-binder-tabs a{display:flex;align-items:center;gap:9px;padding:13px 18px;margin-bottom:-3px;border:1px solid #bdd9e8;border-bottom:3px solid #45a9dc;border-radius:10px 10px 0 0;background:#dceef7;color:#29465a;text-decoration:none;font-weight:700}
.clock-binder-tabs a:hover{background:#f4fbff}
.clock-binder-tabs a.is-active{background:#fff;border-color:#72bce4;border-bottom-color:#fff;color:#17384d}
.clock-binder-tabs small{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 7px;border-radius:99px;background:#c7e3f2;color:#31566d;font-size:.78rem}
.clock-page-header h1{margin-bottom:4px}
.clock-binder-view-pointage .clock-today-section{display:none}
.clock-binder-view-today .clock-page> :not(.clock-selecting-header):not(.clock-today-section){display:none!important}
.clock-binder-view-today .clock-today-section{margin-top:0;border:1px solid #d5e5ee;border-top:3px solid #45a9dc;border-radius:9px;padding:18px;background:#fff}
@media(max-width:640px){.clock-binder-tabs{margin-left:-12px;margin-right:-12px;padding:0 10px}.clock-binder-tabs a{padding:11px 10px;font-size:.88rem}}
.clock-choice-continuing{position:relative;margin:0 0 16px;padding:16px;border:1px solid #efcf91;border-left:4px solid #e3a034;border-radius:9px;background:#fff8e9;color:#654514}
.clock-choice-continuing p{margin:5px 0}.clock-choice-continuing .eyebrow{color:#b77918}.clock-choice-end-day{margin-top:12px}.clock-choice-end-day button{width:100%}
.timesheet-add-heading{display:flex!important;align-items:center!important;justify-content:space-between!important;flex-direction:row!important;gap:14px}
.timesheet-add-heading .timesheet-add-button{flex:0 0 auto;width:auto!important;margin:0 0 0 auto!important;text-align:center;white-space:nowrap}
@media(max-width:640px){.timesheet-add-heading{align-items:flex-start!important}.timesheet-add-heading .timesheet-add-button{align-self:flex-end}}
.document-preview-page main{width:min(1500px,calc(100% - 24px));max-width:none;margin:12px auto}
.document-preview-card{padding:16px}.document-preview-card .page-heading{margin-bottom:14px}
.document-preview-frame{display:block;width:100%;height:calc(100vh - 150px);min-height:520px;border:1px solid var(--line);border-radius:10px;background:#f3f6f8}
.document-image-preview{display:flex;align-items:center;justify-content:center;width:100%;height:calc(100vh - 150px);min-height:520px;padding:12px;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:#eef2f4}
.document-image-preview img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:5px;box-shadow:0 4px 18px rgba(14,35,48,.16);cursor:zoom-in;user-select:none}
.document-image-preview.is-zoomed{display:block;overflow:auto;text-align:center}
.document-image-preview.is-zoomed img{display:inline-block;max-width:none;max-height:none;object-fit:none;cursor:zoom-out}
@media(max-width:640px){.document-preview-page main{width:calc(100% - 12px);margin:6px auto}.document-preview-card{padding:10px}.document-preview-card .page-heading{align-items:stretch}.document-preview-card .heading-actions{display:flex}.document-preview-card .heading-actions>*{flex:1}.document-preview-frame{height:calc(100vh - 190px);min-height:420px}}
@media(max-width:640px){.document-image-preview{height:calc(100vh - 190px);min-height:420px;padding:6px}}
.project-tabs{display:flex;gap:.45rem;margin:1rem 0 1.25rem;padding:.45rem;background:#eaf6fc;border:1px solid #b9d9ea;border-radius:12px;overflow-x:auto}.project-tab{appearance:none;border:1px solid transparent;border-radius:9px;background:transparent;color:#244256;font:inherit;font-weight:800;white-space:nowrap;padding:.75rem 1rem;cursor:pointer}.project-tab:hover{background:#fff}.project-tab.is-active{background:#fff;border-color:#49a9d8;color:#17384d;box-shadow:0 1px 3px rgba(20,54,72,.08)}.project-tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;height:1.5rem;margin-left:.3rem;padding:0 .35rem;border-radius:999px;background:#d9edf7;color:#286683;font-size:.8rem}.project-tab-panel[hidden]{display:none!important}.project-tab-panel.is-active{animation:project-tab-in .18s ease-out}@keyframes project-tab-in{from{opacity:.35;transform:translateY(3px)}to{opacity:1;transform:none}}@media(max-width:700px){.project-tabs{margin-inline:-.2rem;padding:.35rem}.project-tab{padding:.65rem .8rem;font-size:.9rem}}
.project-page-heading{display:flex;flex-direction:column;align-items:stretch;gap:.75rem}.project-page-heading>.template-actions{order:0;align-self:stretch;flex-wrap:wrap;justify-content:flex-end}.project-page-heading>div:first-child{order:1;min-width:0;width:100%;align-self:stretch}.project-page-title{max-width:100%;margin:0 0 .35rem;white-space:nowrap;overflow-x:auto;font-size:clamp(1.05rem,1.6vw,1.7rem)}.project-page-heading p{margin:0;white-space:nowrap;overflow-x:auto}
.project-actions-dialog{width:min(480px,calc(100% - 24px));max-height:85vh;padding:0;border:0;border-radius:12px;box-shadow:0 20px 70px rgba(0,0,0,.3)}.project-actions-dialog::backdrop{background:rgba(11,27,37,.62)}.project-actions-dialog-card{padding:20px}.project-actions-dialog-card .section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.project-actions-list{display:grid;gap:12px;margin-top:18px}.project-actions-list .button{display:flex;align-items:center;justify-content:center;width:100%;min-height:62px;margin:0;padding:14px 18px;font-size:1.05rem;font-weight:750;text-align:center}.project-actions-list [aria-current="page"]{outline:2px solid #238b55;outline-offset:2px}
.project-overview{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.25fr);gap:1rem;align-items:start}.project-overview-column{display:grid;gap:1rem}.project-dossier-card{overflow:hidden;border:1px solid #b9d9ea;border-radius:10px;background:#fff;box-shadow:0 2px 8px rgba(24,66,88,.05)}.project-dossier-heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.65rem .85rem;background:#dff2fb;border-bottom:1px solid #b9d9ea}.project-dossier-heading h2{margin:0;color:#173f57;font-size:1rem}.project-dossier-heading .button{margin:0;white-space:nowrap}.project-dossier-list{margin:0;padding:.35rem .85rem .65rem}.project-dossier-list>div{display:grid;grid-template-columns:minmax(130px,38%) minmax(0,1fr);gap:.75rem;padding:.48rem 0;border-bottom:1px solid #e3edf2}.project-dossier-list>div:last-child{border-bottom:0}.project-dossier-list dt{color:#547083;font-weight:700}.project-dossier-list dd{min-width:0;margin:0;color:#1f3442;overflow-wrap:anywhere}.project-state-body{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;background:#edf8e9}.project-state-body strong{color:#397334}.project-overview-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.45rem;padding:.8rem}.project-overview-kpis div{min-width:0;padding:.7rem .35rem;text-align:center;border-top:3px solid #49a9d8;border-radius:7px;background:#f8fbfd}.project-overview-kpis strong,.project-overview-kpis span{display:block}.project-overview-kpis strong{font-size:1rem;color:#17384d}.project-overview-kpis span{margin-top:.2rem;color:#647b8a;font-size:.75rem}.project-recent-list{display:grid;gap:.45rem;padding:.75rem}.project-recent-list a{display:grid;grid-template-columns:auto 1fr;gap:.15rem .75rem;padding:.65rem .75rem;border:1px solid #d5e4ec;border-left:4px solid #49a9d8;border-radius:7px;background:#f9fcfd;color:#243c4b;text-decoration:none}.project-recent-list a:hover{border-color:#49a9d8;background:#eef8fc}.project-recent-list a span{text-align:right;color:#32865a}.project-recent-list a small{grid-column:1/-1;color:#647b8a}.project-recent-list .muted{margin:.25rem}
@media(max-width:1000px){.project-overview{grid-template-columns:1fr}.project-overview-kpis{grid-template-columns:repeat(5,minmax(90px,1fr));overflow-x:auto}}
@media(max-width:650px){.project-dossier-heading{align-items:flex-start;flex-wrap:wrap}.project-dossier-list>div{grid-template-columns:1fr;gap:.15rem}.project-overview-kpis{margin:0;gap:.3rem;padding:.55rem}.project-overview-kpis strong{font-size:.88rem}.project-overview-kpis span{font-size:.68rem}.project-recent-list a{grid-template-columns:1fr}.project-recent-list a span{text-align:left}}
.project-inline-editor{margin:1rem 0 1.25rem;border:1px solid #b8d7e7;border-radius:12px;overflow:hidden;background:#f4f7f9;box-shadow:inset 0 0 0 1px rgba(68,166,216,.08)}
.project-inline-editor[hidden]{display:none!important}
.project-inline-editor-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.2rem;background:#fff;border-bottom:1px solid #c9dce6}
.project-inline-editor-header .eyebrow{margin:0 0 .2rem}
.project-inline-editor-header h2{margin:0;color:#193548}
.project-inline-editor-frame{display:block;width:100%;height:1200px;min-height:760px;border:0;background:#f4f7f9}
.project-create-dialog{width:min(680px,calc(100% - 24px));padding:0;border:0;border-radius:12px;background:#fff;box-shadow:0 22px 75px rgba(0,0,0,.42)}
.project-create-dialog::backdrop{background:rgba(11,27,37,.65)}
.project-create-dialog-card{padding:20px}
.project-create-dialog form{display:grid;gap:13px}
.project-create-dialog form>button{margin-top:4px}
.project-create-page-form{display:block;width:100%;margin:1.25rem 0}.project-create-page-form>.template-actions{margin-top:1rem}.project-create-page-form .project-dossier-list input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),.project-create-page-form .project-dossier-list textarea,.project-create-page-form .project-dossier-list select,.project-create-page-form .project-state-body select{box-sizing:border-box;width:100%;min-height:2rem;margin:0;padding:.32rem .45rem;border:1px solid #8fc8e4;border-radius:5px;background:#fff;color:#1f3442;font:inherit;line-height:1.35}.project-create-page-form .project-dossier-list input:focus,.project-create-page-form .project-dossier-list textarea:focus,.project-create-page-form .project-dossier-list select:focus{outline:3px solid rgba(73,169,216,.2);border-color:#2389bd}
.project-create-contact{display:grid;gap:8px}.project-create-contact-actions{display:flex;flex-wrap:wrap;gap:7px}.project-create-contact-actions button{font-size:.82rem;padding:7px 9px}.project-create-contact [data-create-selected]{display:grid;gap:7px}.project-create-contact .project-role-card{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px;border:1px solid #cfe0e9;border-radius:7px;background:#fff}.project-create-contact .project-role-card strong,.project-create-contact .project-role-card small{display:block}.project-create-contact .project-role-card small{color:#647985}.project-create-contact .project-role-card .danger{width:30px;height:30px;padding:0}.project-create-contact-dialog{width:min(720px,calc(100% - 24px));max-height:82vh;padding:0;border:0;border-radius:12px;box-shadow:0 20px 70px rgba(0,0,0,.35)}.project-create-contact-dialog::backdrop{background:rgba(11,27,37,.62)}.project-create-contact-dialog-card{display:grid;gap:12px;padding:20px}.project-create-contact-results{display:grid;gap:7px;max-height:48vh;overflow:auto}.project-create-contact-results .project-role-choice{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid #d4e1e8;border-radius:7px}.project-create-contact-results .project-role-choice input{width:18px;height:18px}.project-create-contact-results .project-role-choice strong,.project-create-contact-results .project-role-choice small{display:block}
.project-create-page-form .project-role-contact-link{color:#1673a5;font-weight:700;text-decoration:underline;text-underline-offset:3px}.project-create-page-form .project-route-line{display:flex;align-items:center;gap:8px}.project-create-page-form .project-route-calculate{display:inline-grid;place-items:center;flex:0 0 32px;width:32px;height:32px;padding:0;border:0;border-radius:50%;background:#2f965b;color:#fff;font-size:22px;font-weight:700;line-height:1;cursor:pointer}.project-create-page-form [data-project-route-status]{display:block;margin-top:5px}.project-create-page-form .project-inline-address-picker{min-width:0}.project-create-page-form .project-selected-address{margin:0;cursor:pointer}.project-create-page-form [data-create-client-number]{background:#f8fbfd}.project-create-contact-sources{display:flex;flex-wrap:wrap;gap:8px}.project-create-contact-sources button.is-active{background:#238b55;color:#fff}.project-inline-address-dialog{width:min(720px,calc(100% - 24px));max-height:82vh;padding:0;border:0;border-radius:12px;box-shadow:0 20px 70px rgba(0,0,0,.35)}.project-inline-address-dialog::backdrop{background:rgba(11,27,37,.62)}.project-inline-address-dialog .project-role-dialog-card{display:grid;gap:12px;padding:20px}.project-inline-address-dialog .project-role-source-actions{display:flex;flex-wrap:wrap;gap:8px}.project-inline-address-dialog .project-role-results{display:grid;gap:7px;max-height:45vh;overflow:auto}.project-inline-address-dialog .project-role-choice{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid #d4e1e8;border-radius:7px}.project-inline-address-dialog .project-role-choice input{width:18px;height:18px}.project-inline-address-dialog .project-role-choice strong,.project-inline-address-dialog .project-role-choice small{display:block}
.project-reference-company-picker{min-width:0}.project-selected-company{display:block;width:100%;min-height:38px;padding:8px 10px;border:1px solid #cfe0e9;border-radius:7px;background:#fff;color:#243c4b;text-align:left;cursor:pointer}.project-selected-company:hover{border-color:#49a9d8;background:#f4fbff}.project-company-dialog .project-role-choice strong{overflow-wrap:anywhere}.project-company-dialog [hidden]{display:none!important}
body.embedded-project-editor{background:#f4f7f9}
body.embedded-project-editor main{width:100%;max-width:none;margin:0;padding:12px}
body.embedded-project-editor main>.card{margin:0;box-shadow:none}
@media(max-width:700px){.project-inline-editor{margin:.75rem 0;border-radius:10px}.project-inline-editor-header{align-items:flex-start;padding:.8rem}.project-inline-editor-header h2{font-size:1.15rem}.project-inline-editor-header .button{padding:.65rem .8rem}.project-inline-editor-frame{min-height:900px}body.embedded-project-editor main{padding:8px}}
.project-autosave-notice{position:sticky;top:.5rem;z-index:20;width:max-content;max-width:100%;margin:0 0 .65rem auto;padding:.4rem .7rem;border:1px solid #b9d9ea;border-radius:999px;background:#f5fbfe;color:#547083;font-size:.82rem;box-shadow:0 2px 7px rgba(24,66,88,.08)}
.project-autosave-notice[data-state="saving"]{color:#24678b}.project-autosave-notice[data-state="saved"]{border-color:#9bd4af;background:#eefaf2;color:#267142}.project-autosave-notice[data-state="error"]{border-color:#e7a0a0;background:#fff1f1;color:#a32929}
.project-dossier-list .project-autosave,.project-state-body .project-autosave{box-sizing:border-box;width:100%;min-height:2rem;margin:0;padding:.32rem .45rem;border:1px solid #8fc8e4;border-radius:5px;background:#fff;color:#1f3442;font:inherit;line-height:1.35}.project-dossier-list textarea.project-autosave{resize:vertical}.project-dossier-list .project-autosave:hover{border-color:#49a9d8}.project-dossier-list .project-autosave:focus,.project-state-body .project-autosave:focus{outline:3px solid rgba(73,169,216,.2);border-color:#2389bd}.project-autosave[data-save-state="saving"]{background:#f0f8fc}.project-autosave[data-save-state="saved"]{border-color:#48ad6b;background:#f3fcf6}.project-autosave[data-save-state="error"]{border-color:#d84c4c;background:#fff5f5}
.project-autosave-pair{display:grid;grid-template-columns:minmax(55px,1fr) auto minmax(55px,1fr) auto;gap:.3rem;align-items:center}.project-state-body .project-status-select{width:auto;min-width:10rem}
.planning-calendar-controls{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin:16px 0}.planning-calendar-move,.planning-view-tabs{display:flex;align-items:center;flex-wrap:wrap;gap:7px}.planning-calendar-move form{display:flex;align-items:center;gap:6px;margin:0}.planning-calendar-move input{width:auto;margin:0}.planning-calendar-move button{margin:0}.planning-view-tabs{padding:4px;border:1px solid #c9deeb;border-radius:9px;background:#eef7fc}.planning-view-tabs a{padding:9px 14px;border-radius:7px;color:#294757;text-decoration:none;font-weight:700}.planning-view-tabs a.is-active{background:#298fbf;color:#fff}.planning-calendar-scroll{overflow-x:auto;border:1px solid #d1e1ea;border-radius:9px}.planning-time-calendar{display:grid;grid-template-columns:58px repeat(7,minmax(165px,1fr));min-width:1213px}.planning-time-calendar.is-day{grid-template-columns:58px minmax(280px,1fr);min-width:0}.planning-time-gutter-heading,.planning-time-heading{padding:10px 8px;border-bottom:1px solid #d1e1ea;background:#eef7fc;font-weight:750}.planning-time-heading{display:flex;justify-content:space-between;gap:5px;border-left:1px solid #d1e1ea}.planning-time-heading.is-today{background:#dff3ff;color:#126e9b}.planning-time-labels{position:relative;height:1090px;padding-top:66px;background:#f8fbfd}.planning-time-labels span{position:absolute;left:6px;color:#5d7480;font-size:.72rem}.planning-time-column{position:relative;min-height:1090px;border-left:1px solid #d1e1ea;background:repeating-linear-gradient(to bottom,#fff 0,#fff 63px,#e6edf1 64px);background-position:0 66px}.planning-time-column.is-today{background-color:#f8fcff}.planning-all-day{position:relative;z-index:1;margin:3px;padding:3px 5px;border-left:4px solid #3093bd;border-radius:4px;background:#d9f3fb;font-size:.7rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.planning-all-day a,.planning-time-event a,.planning-month-event a{color:inherit;text-decoration:none}.planning-time-events{position:relative;height:1024px;margin-top:66px}.planning-time-event{position:absolute;z-index:1;box-sizing:border-box;min-height:28px;padding:5px;border-left:4px solid #2b9ac4;border-radius:5px;background:#b9e7f3;box-shadow:0 1px 3px #0002;overflow:hidden;font-size:.73rem;line-height:1.25}.planning-time-event strong,.planning-time-event span,.planning-time-event small{display:block}.planning-time-event span{font-weight:700}.planning-time-event small{margin-top:3px}.planning-time-event.status-completed,.planning-month-event.status-completed{background:#c7e6c9;border-color:#29925b}.planning-time-event.status-cancelled,.planning-month-event.status-cancelled{background:#e9e9e9;border-color:#888;color:#5d656a}.planning-month-calendar{display:grid;grid-template-columns:repeat(7,minmax(125px,1fr));overflow-x:auto;border:1px solid #d1e1ea;border-radius:9px}.planning-month-weekday{padding:10px;background:#eef7fc;text-align:center;font-weight:750}.planning-month-day,.planning-month-empty{min-height:125px;padding:7px;border-top:1px solid #d1e1ea;border-right:1px solid #d1e1ea}.planning-month-day.is-today{background:#f1fbff}.planning-month-day-number{display:inline-block;margin-bottom:5px;font-weight:800}.planning-month-event{margin:3px 0;padding:4px 5px;border-left:3px solid #2b9ac4;border-radius:4px;background:#d9f3fb;font-size:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.planning-year-calendar{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}.planning-year-month{padding:12px;border:1px solid #d1e1ea;border-radius:9px;background:#fff}.planning-year-month h2{margin:0 0 10px;font-size:1rem}.planning-year-days{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;text-align:center}.planning-year-days>*{padding:5px 0;border-radius:5px}.planning-year-days a.has-plan{background:#b9e7f3;font-weight:800}.planning-year-days a.is-today{outline:2px solid #298fbf}.planning-year-weekday{color:#5d7480;font-size:.75rem;font-weight:800}@media(max-width:650px){.planning-calendar-controls{align-items:stretch}.planning-calendar-move,.planning-view-tabs{width:100%;justify-content:center}.planning-month-calendar{min-width:875px}}
.planning-all-day-list{height:66px;overflow-y:auto;border-bottom:1px solid #d1e1ea}.planning-time-events{margin-top:0}
.planning-time-event[draggable="true"]{cursor:grab}.planning-time-event.is-dragging{opacity:.45;cursor:grabbing}.planning-time-events.is-drop-target{background:rgba(41,143,191,.16)}.planning-drag-message{margin:9px 0 0;color:#536e7d;font-size:.86rem}
.planning-time-event[draggable="true"]{touch-action:none}.planning-drag-ghost{position:fixed;z-index:9999;box-sizing:border-box;pointer-events:none;padding:5px;border-left:4px solid #2b9ac4;border-radius:5px;background:#b9e7f3;box-shadow:0 9px 24px #0005;opacity:.95;font-size:.73rem;line-height:1.25}.planning-drag-ghost strong,.planning-drag-ghost span,.planning-drag-ghost small{display:block}
