:root{--navy:#17365d;--teal:#0f6b78;--blue:#2476d3;--pale:#f4f7fb;--line:#dce4ee;--ink:#172033;--muted:#657187;--green:#16845b;--red:#c53535;--amber:#bb6b08;--shadow:0 12px 35px rgba(25,48,79,.12)}
.column-sort{display:block;width:100%;padding:5px 0;border:0;background:transparent;color:inherit;font:inherit;font-weight:700;text-align:left;cursor:pointer;white-space:nowrap}.column-sort:hover{color:var(--blue)}.column-sort:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.column-filters th{position:static;padding:6px 8px!important;background:var(--pale)}.column-filters input{width:100%;min-width:115px;max-width:240px;padding:7px 9px;border:1px solid var(--line);border-radius:7px;background:white;color:var(--ink);font-size:12px}.column-tools-bar{display:flex;gap:15px;align-items:center;justify-content:space-between;padding:8px 0;color:var(--muted);font-size:12px}.column-tools-actions,.entity-selection-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.entity-selection-actions .btn{padding:8px 11px}.entity-selection-actions .btn:disabled{opacity:.48;cursor:not-allowed;transform:none;filter:none}.row-select-col,.row-select-cell{width:72px;min-width:72px;text-align:left}.entity-row-selector{width:18px;height:18px;margin:0;accent-color:var(--blue);cursor:pointer}.table-wrap tr.entity-row-selected td{background:#e6f1ff;box-shadow:inset 0 1px #8ebdff,inset 0 -1px #8ebdff}.table-wrap tr.entity-row-selected td:first-child{box-shadow:inset 3px 0 var(--blue),inset 0 1px #8ebdff,inset 0 -1px #8ebdff}.table-wrap tr[hidden]{display:none!important}th[aria-sort=ascending],th[aria-sort=descending]{color:var(--blue)}
.dark-mode .column-filters input{background:#172231;color:var(--ink)}.dark-mode .table-wrap tr.entity-row-selected td{background:#233f61;box-shadow:inset 0 1px #4387cc,inset 0 -1px #4387cc}.dark-mode .table-wrap tr.entity-row-selected td:first-child{box-shadow:inset 3px 0 #69aaf0,inset 0 1px #4387cc,inset 0 -1px #4387cc}
@media(max-width:650px){.column-tools-bar{flex-wrap:wrap}.column-tools-actions{width:100%}.column-filters input{min-width:110px}}
@media print{.column-filters,.column-tools-bar{display:none!important}.column-sort{padding:0}}
.sticky-list-toolbar{position:sticky;top:100px;z-index:3;margin:0 0 9px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.97);box-shadow:0 5px 16px rgba(25,48,79,.1);backdrop-filter:blur(10px)}.selection-context{display:inline-block;max-width:310px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:7px 9px;border-radius:7px;background:var(--pale);color:var(--ink);font-weight:700}.table-wrap tr.selectable-row{cursor:pointer}.table-wrap tr.selectable-row:focus-visible{outline:3px solid var(--blue);outline-offset:-3px}.dark-mode .sticky-list-toolbar{background:rgba(23,34,49,.97)}.dark-mode .selection-context{background:#111b27}@media(max-width:760px){.sticky-list-toolbar{position:static}.selection-context{max-width:100%;flex:1 1 100%}.about-actions{grid-template-columns:1fr auto}.about-actions .about-proposed{grid-column:1/-1;grid-row:1;justify-self:center}.about-actions .about-copyright{grid-column:1;grid-row:2}.about-actions .btn{grid-column:2;grid-row:2}}
/* Outils V2.4.0 : styles limités aux nouveaux composants. */
.toolbox-nav,.toolbox-filters,.toolbox-template{display:flex;gap:12px;flex-wrap:wrap;align-items:end;margin-bottom:20px}
.toolbox-nav .btn{white-space:normal}.toolbox-filters label,.toolbox-form label,.toolbox-template label,#toolboxBody>label{display:grid;gap:7px;flex:1;min-width:180px;font-weight:600}
.toolbox-form{display:grid;gap:18px;max-width:860px;margin-top:20px}.toolbox-form textarea{min-height:100px;resize:vertical}
.toolbox-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.toolbox-cards article{border:1px solid var(--line);border-radius:12px;padding:16px;background:var(--pale)}
.toolbox-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:13px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.toolbox-row>span{flex:1;min-width:180px}.toolbox-address{white-space:pre-line}
.toolbox-template{margin:16px 24px;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--pale)}.qr-video{display:block;width:100%;max-width:640px;max-height:50vh;border-radius:12px;background:var(--pale)}
#historyDialog{width:min(900px,95vw);max-height:90vh;padding:0}#historyBody{max-height:72vh;overflow:auto}#historyBody h4{margin-top:24px}
@media(max-width:600px){.toolbox-row .btn{max-width:100%;white-space:normal}.toolbox-nav .btn{flex:1 1 140px}.toolbox-template{margin:12px}.toolbox-filters label{min-width:100%}}
.agent-state.neutral{background:var(--pale);color:var(--muted)}
[data-operation-checklist][hidden]{display:none}
select:not([multiple]){min-height:44px;padding:0 12px;border:1px solid var(--line);border-radius:9px;background:var(--pale);color:var(--ink)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Segoe UI,Inter,Arial,sans-serif;color:var(--ink);background:#edf2f7}button,input,select,textarea{font:inherit}.sidebar{position:fixed;inset:0 auto 0 0;width:255px;background:linear-gradient(180deg,var(--navy),var(--navy) 60%,var(--teal));color:white;padding:22px 16px;display:flex;flex-direction:column;z-index:5}.brand{display:flex;align-items:center;gap:12px;padding:0 8px 18px}.brand-mark{display:grid;place-items:center;width:42px;height:42px;min-width:42px;border-radius:12px;background:white;color:var(--navy);font-weight:800;font-size:23px;overflow:hidden}.brand-mark img{width:100%;height:100%;object-fit:contain;padding:3px}.brand-title{display:flex;align-items:baseline;gap:6px;min-width:0}.brand strong{display:block;font-size:17px;max-width:160px;overflow:hidden;text-overflow:ellipsis}.brand small{display:block;color:#bbd1e7;margin-top:3px}.brand-version{font-size:9px;font-weight:650;color:#bbd1e7;white-space:nowrap}.sidebar nav{display:grid;gap:11px;overflow-y:auto;padding-right:3px}.nav-group{display:grid;gap:3px}.nav-group>small{padding:0 12px 4px;color:#9fb8d1;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.12em}.nav-btn{border:0;background:transparent;color:#d7e5f3;padding:8px 12px;border-radius:9px;text-align:left;cursor:pointer;display:flex;gap:10px;align-items:center;transition:.16s}.nav-btn:hover,.nav-btn.active{background:rgba(255,255,255,.14);color:#fff;transform:translateX(2px)}.nav-btn span{width:22px;text-align:center}.sidebar-note{margin-top:12px;background:rgba(255,255,255,.09);padding:10px 12px;border-radius:10px;font-size:12px;line-height:1.45;color:#d4e3ef}.main{margin-left:255px;min-height:100vh}.topbar{height:92px;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:18px 28px;position:sticky;top:0;z-index:4}.topbar h1{font-size:24px;margin:0}.topbar p{margin:5px 0 0;color:var(--muted);font-size:13px}.top-actions{display:flex;gap:9px;align-items:center}.square-btn{width:40px;padding:10px}.global-search{display:flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--pale);border-radius:9px;padding:0 11px;height:40px}.global-search input{border:0;outline:0;background:transparent;width:210px}.btn{border:0;border-radius:8px;padding:10px 14px;cursor:pointer;font-weight:650;transition:.15s}.btn:hover,.icon-btn:hover{filter:brightness(.97);transform:translateY(-1px)}.btn.primary{background:var(--blue);color:white}.btn.secondary{background:#e9f0f8;color:var(--navy)}.btn.ghost{background:transparent;color:var(--muted);border:1px solid var(--line)}.btn.danger{background:#fde8e8;color:var(--red)}#content{padding:24px 28px 60px}.hero{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(125deg,var(--navy),var(--teal));color:white;border-radius:16px;padding:25px 27px;margin-bottom:16px;box-shadow:var(--shadow)}.hero h2{margin:0 0 7px;font-size:25px}.hero p{margin:0;color:#d4e7ee}.quick-actions{display:flex;gap:9px;margin-bottom:16px}.cards{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:14px;margin-bottom:20px}.card{background:white;border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:0 4px 15px rgba(25,48,79,.05)}.card.danger-card{border-color:#efb3b3;background:#fffafa}.card .label{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.07em}.card .value{font-size:30px;font-weight:780;margin-top:8px}.card .hint{font-size:12px;color:var(--muted);margin-top:5px}.panel{background:white;border:1px solid var(--line);border-radius:14px;box-shadow:0 4px 15px rgba(25,48,79,.05);margin-bottom:18px}.panel-head{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;border-bottom:1px solid var(--line)}.panel-head h3{margin:0;font-size:16px}.panel-head p{margin:4px 0 0;color:var(--muted);font-size:12px}.panel-body{padding:17px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.dashboard-grid{grid-template-columns:1.35fr .65fr}.toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:15px}.toolbar-left,.toolbar-right{display:flex;gap:8px;align-items:center}.field-search,.filter-select{height:40px;border:1px solid var(--line);border-radius:8px;padding:0 11px;background:white}.field-search{width:280px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px}table{width:100%;border-collapse:collapse;white-space:nowrap;background:white}th{background:#f1f5fa;color:#41506a;text-align:left;font-size:12px;padding:11px;border-bottom:1px solid var(--line);position:sticky;top:0}td{padding:10px 11px;border-bottom:1px solid #e8edf3;font-size:13px;max-width:340px;overflow:hidden;text-overflow:ellipsis}tr:hover td{background:#f8fbff}.actions{display:flex;gap:5px}.icon-btn{border:0;background:#eef3f8;border-radius:7px;cursor:pointer;padding:6px 9px;color:var(--navy);transition:.15s}.empty{padding:38px;text-align:center;color:var(--muted)}.badge{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:700;background:#e8eef5;color:#4c5c72}.badge.green{background:#dff5eb;color:#08744b}.badge.red{background:#fde6e6;color:#a51f1f}.badge.amber{background:#fff0d9;color:#995500}.client-picker{height:40px;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.14);color:white;border-radius:8px;padding:0 12px;min-width:240px}.client-picker option{color:var(--ink)}.security{border-left:5px solid var(--red);background:#fff4f4;padding:14px 16px;border-radius:9px;color:#8a2323;font-size:13px}.detail-list{display:grid;grid-template-columns:150px 1fr;gap:9px 12px;font-size:13px}.detail-list dt{color:var(--muted)}.detail-list dd{margin:0;font-weight:600}dialog{width:min(860px,92vw);border:0;border-radius:15px;padding:0;box-shadow:0 30px 80px rgba(10,25,45,.3)}dialog::backdrop{background:rgba(10,25,45,.55)}.dialog-head{display:flex;justify-content:space-between;padding:20px 22px;border-bottom:1px solid var(--line)}.dialog-head h2{margin:0}.dialog-head p{margin:4px 0 0;color:var(--muted);font-size:12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:20px 22px;max-height:65vh;overflow:auto}.form-field{display:grid;gap:6px}.form-field.wide{grid-column:1/-1}.form-field label{font-size:12px;color:#4d5b70;font-weight:700}.field-help{color:var(--muted);font-size:11px}.form-field input,.form-field select,.form-field textarea{border:1px solid var(--line);border-radius:8px;padding:10px;outline:0;background:white;color:var(--ink)}.form-field textarea{min-height:86px;resize:vertical}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(36,118,211,.12)}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;padding:16px 22px;border-top:1px solid var(--line)}.detail-dialog{width:min(960px,94vw)}.detail-grid{display:grid;grid-template-columns:210px 1fr;gap:0;margin:0;padding:10px 22px;max-height:62vh;overflow:auto}.detail-grid dt,.detail-grid dd{padding:10px;border-bottom:1px solid var(--line)}.detail-grid dt{color:var(--muted);font-size:12px;font-weight:700}.detail-grid dd{margin:0;white-space:pre-wrap;font-size:13px}.detail-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:9px;padding:16px 22px;border-top:1px solid var(--line)}.toast{position:fixed;right:24px;bottom:24px;background:var(--navy);color:white;border-radius:9px;padding:12px 16px;opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s;box-shadow:var(--shadow)}.toast.show{opacity:1;transform:none}.search-results{display:grid;gap:9px}.search-result{background:white;border:1px solid var(--line);border-radius:10px;padding:13px;cursor:pointer}.search-result:hover{border-color:var(--blue)}.search-result strong{display:block}.search-result small{color:var(--muted)}.settings-form{display:grid;gap:22px}.settings-section{border-top:1px solid var(--line);padding-top:16px}.settings-section h4{margin:0 0 14px}.logo-editor{display:flex;align-items:center;gap:20px;padding-bottom:20px;border-bottom:1px solid var(--line)}.logo-preview{width:180px;height:100px;border:1px dashed var(--line);border-radius:12px;background:var(--pale);display:grid;place-items:center;color:var(--muted);overflow:hidden}.logo-preview img{max-width:100%;max-height:100%;object-fit:contain}.logo-editor p{font-size:12px;color:var(--muted);margin:10px 0 0}.file-btn{display:inline-block;margin-right:6px}.settings-fields{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:14px}.settings-fields.operational{grid-template-columns:repeat(4,1fr)}.settings-fields input[type=color]{width:100%;height:44px;padding:4px}.settings-actions{display:flex;justify-content:flex-end;gap:9px}.alert-list{display:grid;gap:8px}.alert-row{width:100%;border:1px solid var(--line);background:#fff;border-radius:10px;padding:11px;text-align:left;display:grid;grid-template-columns:9px 1fr;gap:11px;cursor:pointer}.alert-row>span{width:9px;height:9px;border-radius:99px;margin-top:4px;background:var(--amber)}.alert-row.red>span{background:var(--red)}.alert-row strong,.alert-row small{display:block}.alert-row small{color:var(--muted);margin-top:4px}.success-state{padding:28px;text-align:center;color:var(--green);font-weight:700}.workload-list{display:grid;gap:14px}.workload-list>div{display:grid;grid-template-columns:1fr auto;gap:5px}.workload-list i{grid-column:1/-1;height:6px;background:#e7edf4;border-radius:99px;overflow:hidden}.workload-list b{display:block;height:100%;background:linear-gradient(90deg,var(--teal),var(--blue));border-radius:99px}
.badge.sleep{background:#e7e0fa;color:#593e98}.sleep-row td{background:#f3effd;border-bottom-color:#ddd3f4}.sleep-row:hover td{background:#ebe4fa}.locked-row td{background:#f3f4f6;color:#7a8494}.locked-row:hover td{background:#eceef1}.locked-label{display:inline-flex;align-items:center;gap:5px;color:#72579c;font-size:12px;font-weight:700}.sleep-hero{background:linear-gradient(125deg,#54406f,#76619a)}.sleep-panel{text-align:center;border-color:#d9cff0}.sleep-panel .panel-body{padding:42px 24px}.sleep-panel h3{font-size:22px;margin:10px 0}.sleep-panel p{max-width:680px;margin:0 auto 20px;color:var(--muted);line-height:1.6}.sleep-lock{font-size:42px}
.request-health-legend{display:flex;align-items:center;flex-wrap:wrap;gap:10px 18px;margin:0 0 14px;padding:10px 13px;border:1px solid var(--line);border-radius:9px;background:#f8fafc;color:var(--muted);font-size:12px}.request-health-legend span{display:inline-flex;align-items:center;gap:7px}.health-symbol{font-style:normal;font-size:18px;line-height:1}.health-symbol.red,.request-health.red{color:var(--red)}.health-symbol.yellow,.request-health.yellow{color:#d69600}.health-symbol.green,.request-health.green{color:var(--green)}.health-col,.health-cell{text-align:left;min-width:116px}.request-health{display:inline-flex;align-items:center;justify-content:flex-start;gap:7px;min-width:94px;font-size:20px;line-height:1;cursor:help}.request-health small{font-size:11px;font-weight:750;white-space:nowrap}
.compact-mode .panel-body{padding:12px}.compact-mode .panel-head{padding:12px 15px}.compact-mode td,.compact-mode th{padding:7px 9px}.compact-mode .form-grid{gap:9px;padding:14px 18px}.compact-mode .card{padding:14px}.dark-mode{--pale:#172231;--line:#2c3b4d;--ink:#e7edf5;--muted:#9caabd;background:#101822}.dark-mode .topbar,.dark-mode .panel,.dark-mode .card,.dark-mode table,.dark-mode .search-result,.dark-mode .alert-row,.dark-mode dialog{background:#172231;color:var(--ink)}.dark-mode th{background:#1d2a3a;color:#bac7d8}.dark-mode td{border-bottom-color:#29384a}.dark-mode tr:hover td{background:#1d2b3c}.dark-mode .field-search,.dark-mode .filter-select,.dark-mode .form-field input,.dark-mode .form-field select,.dark-mode .form-field textarea{background:#111b27;color:var(--ink)}.dark-mode .request-health-legend,.dark-mode .icon-btn,.dark-mode .btn.secondary{background:#213044;color:#dce8f5}.dark-mode .security{background:#351f25;color:#f2b7be}.dark-mode .sleep-row td{background:#2a2438}.dark-mode .locked-row td{background:#202936}.dark-mode .success-state{color:#56d29f}
@media(max-width:1050px){.cards{grid-template-columns:repeat(2,1fr)}.top-actions .secondary:not(.square-btn){display:none}.grid-2,.dashboard-grid{grid-template-columns:1fr}.settings-fields,.settings-fields.operational{grid-template-columns:1fr 1fr}}@media(max-width:760px){.sidebar{position:static;width:auto}.sidebar nav{grid-template-columns:repeat(2,1fr);overflow:visible}.sidebar-note{display:none}.main{margin:0}.topbar{height:auto;align-items:flex-start;gap:12px;flex-direction:column}.top-actions{width:100%}.global-search{flex:1}.global-search input{width:100%}.cards{grid-template-columns:1fr}.form-grid,.settings-fields,.settings-fields.operational{grid-template-columns:1fr}.form-field.wide{grid-column:auto}.logo-editor{align-items:flex-start;flex-direction:column}.toolbar{align-items:stretch;flex-direction:column}.toolbar-left{align-items:stretch;flex-direction:column}.field-search{width:100%}.quick-actions{flex-wrap:wrap}}
/* Couche serveur V1.8.1 */
.server-auth{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#102a49,#0f6b78)}
.auth-card{width:min(410px,100%);background:#fff;border-radius:20px;padding:28px;box-shadow:0 24px 70px #07172d66}
.auth-brand{display:flex;align-items:center;gap:14px;margin-bottom:28px}.auth-brand img{width:58px;height:58px}.auth-brand h1{margin:0}.auth-brand p,.auth-info{color:#657187}.auth-card form{display:grid;gap:16px}.auth-card label{display:grid;gap:6px;font-weight:700}.auth-card input{border:1px solid #ccd6e3;border-radius:9px;padding:12px;font:inherit}.auth-card button{padding:13px}.auth-error{padding:10px;border-radius:8px;background:#fff0f0;color:#a51d27}
.server-sync{font-size:12px;color:#5b687b;white-space:nowrap}.server-user{display:grid;line-height:1.15;white-space:nowrap}.server-user small{color:#657187}.server-form{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:10px;margin-bottom:22px}.server-form input,.server-form select{min-width:0;border:1px solid #ccd6e3;border-radius:8px;padding:9px}
.brand-logout{white-space:nowrap;background:linear-gradient(135deg,var(--navy),var(--teal));color:#fff;box-shadow:0 4px 12px rgba(23,54,93,.24)}.brand-logout:hover{filter:brightness(1.08)}.brand-logout:focus-visible{outline:3px solid var(--teal);outline-offset:2px}#serverLogout .logout-power-icon{display:block!important;width:20px;height:20px;min-width:20px;visibility:visible;opacity:1;stroke:currentColor;stroke-width:2.2}.about-trigger{white-space:nowrap}.about-dialog{width:min(820px,94vw)}.about-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:24px 26px;background:linear-gradient(125deg,var(--navy),var(--teal));color:#fff}.about-head .icon-btn{background:rgba(255,255,255,.16);color:#fff;min-width:38px}.about-brand{display:flex;align-items:center;gap:16px}.about-logo{display:grid;place-items:center;width:68px;height:68px;min-width:68px;border-radius:17px;background:#fff;box-shadow:0 8px 24px rgba(0,0,0,.18)}.about-logo img{display:block;width:58px;height:58px;object-fit:contain}.about-brand small{display:block;margin-bottom:3px;color:#bcd8e6;font-size:10px;font-weight:750;letter-spacing:.14em}.about-brand h2{margin:0;font-size:26px}.about-brand p{margin:4px 0 0;color:#d9edf2}.about-body{max-height:65vh;overflow:auto;padding:24px 26px}.about-lead{margin:0 0 20px;font-size:15px;line-height:1.65;color:#38475c}.about-facts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0}.about-facts>div{min-width:0;padding:13px 14px;border:1px solid var(--line);border-radius:10px;background:var(--pale)}.about-facts dt{margin-bottom:4px;color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.about-facts dd{margin:0;font-size:13px;font-weight:600;overflow-wrap:anywhere}.about-sections{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px}.about-sections section{padding-top:15px;border-top:1px solid var(--line)}.about-sections h3{margin:0 0 7px}.about-sections p{margin:0;color:var(--muted);line-height:1.55}.about-license{margin:20px 0 0;padding:13px 15px;border-left:4px solid var(--teal);border-radius:8px;background:var(--pale);color:var(--muted);font-size:12px;line-height:1.55}.about-actions{display:grid;grid-template-columns:1fr auto 1fr;align-items:center}.about-actions .about-copyright{justify-self:start;color:var(--muted);font-size:12px}.about-actions .about-proposed{display:flex;align-items:center;justify-content:center;gap:8px;color:var(--muted);font-size:12px;white-space:nowrap}.about-actions .about-proposed[hidden]{display:none}.about-proposed img{display:block;width:auto;height:28px;max-width:96px;object-fit:contain}.about-actions .btn{justify-self:end}.dark-mode .about-lead{color:var(--ink)}
.dialog-head,.server-panel-title{background:linear-gradient(125deg,var(--navy),var(--teal));color:#fff;border-bottom-color:transparent}.dialog-head p,.server-panel-title p{color:#d7e5f3}.dialog-head .icon-btn{background:rgba(255,255,255,.16);color:#fff}.server-panel-title .btn.secondary{background:rgba(255,255,255,.92)}
.server-form.user-form{grid-template-columns:repeat(4,minmax(145px,1fr));align-items:center}.user-delete:disabled{opacity:.45;cursor:not-allowed}.user-delete:not(:disabled){background:#fde8e8;color:var(--red)}
@media(max-width:1000px){.server-form{grid-template-columns:1fr 1fr}.server-user,.server-sync{display:none}}
/* Contacts rattachés à la fiche client, dans le thème existant. */
.detail-contacts { margin: 0 24px 24px; }
.detail-contacts h3 { margin: 0 0 12px; }
.server-sync-error { margin: 16px 28px; padding: 18px; border: 2px solid #b7791f; border-radius: 12px; }
.server-sync-error h2 { margin: 0 0 8px; font-size: 18px; }
.server-sync-error .actions { flex-wrap: wrap; }
.portal-access-fields { grid-column: 1 / -1; border: 1px solid var(--line); border-radius: 10px; padding: 16px; }
.portal-access-fields .check-line { display: flex; gap: 10px; align-items: center; }
.portal-access-fields input[type=checkbox] { width: 18px; height: 18px; }
.portal-access-fields small { color: var(--muted); }
.auth-links { display: grid; gap: 8px; margin-top: 14px; }
.detail-extras { padding: 0 22px 20px; }
.contract-usage { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; }
.contract-usage > span { background: var(--pale); padding: 16px; border-radius: 10px; }
.contract-usage strong { display: block; font-size: 22px; margin-top: 8px; }
.checklist label { display: flex; align-items: center; gap: 10px; padding: 8px; }
.checklist input { width: 18px; height: 18px; }
.thread-list { display: grid; gap: 12px; max-height: 360px; overflow-y: auto; }
.thread-message { padding: 15px; border: 1px solid var(--line); border-radius: 10px; background: var(--pale); }
.thread-message.internal { border-left: 4px solid var(--amber); }
.thread-message header { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.thread-message header span,.thread-message time { font-size: 11px; color: var(--muted); }
.thread-message p { white-space: pre-wrap; overflow-wrap: anywhere; }
.message-form,.mfa-form { display: grid; gap: 14px; margin-top: 20px; max-width: 650px; }
.message-form label,.mfa-form label,.report-form label { display: grid; gap: 6px; }
.message-form textarea,.message-form select,.mfa-form input,.report-form input,.report-form select,.view-toolbar select { border: 1px solid var(--line); border-radius: 8px; padding: 10px; background: var(--pale); color: var(--ink); }
.report-form { display: flex; flex-wrap: wrap; gap: 16px; align-items: end; }
.view-toolbar { display: flex; flex-wrap: wrap; align-items: end; gap: 10px; margin-bottom: 16px; }
.view-toolbar label { display: grid; gap: 5px; font-size: 12px; color: var(--muted); }
.column-options { display: grid; grid-template-columns: 1fr 1fr; padding: 24px; gap: 14px; }
.column-options label { display: flex; gap: 8px; align-items: center; }
.request-board { display: grid; grid-auto-columns: minmax(255px,1fr); grid-auto-flow: column; gap: 15px; overflow-x: auto; align-items: start; padding-bottom: 16px; }
.board-column { background: var(--pale); border: 1px solid var(--line); padding: 12px; border-radius: 12px; }
.board-column h3 { font-size: 14px; margin: 0 0 14px; display: flex; justify-content: space-between; }
.board-card { background: white; border: 1px solid var(--line); border-radius: 10px; padding: 14px; margin-bottom: 12px; display: grid; gap: 10px; }
.board-card small,.board-card p { color: var(--muted); margin: 0; font-size: 12px; }
.board-card strong { overflow-wrap: anywhere; }
.board-card select { width: 100%; padding: 8px; border-radius: 6px; border: 1px solid var(--line); }
.board-card.locked { opacity: .65; }
.dark-mode .board-card { background: #172231; }
.dark-mode .board-card select { background: var(--pale); color: var(--ink); }
.mfa-qr { width: 276px; max-width: 100%; padding: 10px; background: white; }
.mfa-qr svg { display: block; width: 100%; height: auto; }
.mfa-manual { margin: 12px 0; }
.mfa-manual summary { cursor: pointer; font-weight: 600; }
.mfa-manual code { overflow-wrap: anywhere; }
.mfa-recovery { width: 100%; max-width: 430px; font: 16px monospace; padding: 16px; }
#messageError,#mfaProfileError,#mfaLoginError,#columnsError { color: var(--red); }
.maintenance-overview { margin-top: 20px; }
.maintenance-overview .quick-actions { flex-wrap: wrap; }
@media(max-width:760px){.contract-usage,.column-options { grid-template-columns: 1fr 1fr; }.view-toolbar button { padding: 9px; }}

/* À propos : présentation compacte des informations, sans cartes imbriquées. */
.about-facts {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0 30px;
  padding:4px 0;
}
.about-facts>div {
  display:grid;
  grid-template-columns:minmax(112px,max-content) minmax(0,1fr);
  align-items:baseline;
  gap:12px;
  min-width:0;
  padding:8px 0;
  border:0;
  border-radius:0;
  background:transparent;
  border-bottom:1px solid var(--line);
}
.about-facts dt {
  margin:0;
  color:var(--ink);
  font-size:12px;
  font-weight:500;
  letter-spacing:0;
  text-transform:none;
  text-align:right;
  white-space:nowrap;
}
.about-facts dd {
  min-width:0;
  color:var(--muted);
  font-size:13px;
  font-weight:500;
  line-height:1.4;
}
@media(max-width:760px){
  .about-facts { grid-template-columns:minmax(0,1fr); gap:0; }
  .about-facts>div { grid-template-columns:minmax(112px,38%) minmax(0,1fr); }
  .about-facts dt { text-align:right; }
}

/* Suivi : toutes les pastilles occupent exactement le même encadrement. */
.health-cell .request-health {
  box-sizing:border-box;
  display:inline-flex;
  width:190px;
  min-width:190px;
  max-width:190px;
  min-height:34px;
  padding:6px 12px;
  align-items:center;
  justify-content:flex-start;
  border-radius:999px;
  overflow:hidden;
}
.health-cell .request-health small {
  overflow:hidden;
  text-overflow:ellipsis;
}
/* Vue globale du tableau de bord — même palette que les registres. */
.hero.dashboard-hero { gap: 14px 24px; flex-wrap: wrap; padding: 16px 22px; background: var(--navy); }
.dashboard-hero h2 { font-size: 23px; margin-bottom: 5px; }
.dashboard-hero p { color: inherit; opacity: .85; }
.dashboard-scope { display: flex; align-items: center; gap: 12px; font-size: 13px; max-width: 100%; min-width: 0; }
.dashboard-scope-label { flex: 0 0 auto; font-weight: 600; }
.dashboard-scope .client-picker { flex: 1 1 280px; width: 320px; min-width: 0; max-width: 420px; }
.dashboard-scope-note { color: var(--muted); line-height: 1.6; font-size: 12px; margin: 0 0 18px; }
.dashboard-stat { text-align: left; color: var(--ink); min-width: 0; }
.dashboard-stat>span { display: block; }
button.dashboard-stat { cursor: pointer; transition: border-color .15s, transform .15s; }
button.dashboard-stat:hover { border-color: var(--blue); transform: translateY(-2px); }
.metric-action { font-size: 11px; color: var(--muted); margin-top: 12px; }
button.dashboard-stat .metric-action { color: var(--blue); }
.dashboard-client-link { border: 0; padding: 4px 0; background: transparent; color: var(--blue); cursor: pointer; text-decoration: underline; text-underline-offset: 3px; text-align: left; }
button.dashboard-stat:focus-visible,.dashboard-client-link:focus-visible,.dashboard-recent button:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; }
.global-workload { max-height: 340px; overflow-y: auto; }
.dashboard-recent { display: grid; gap: 10px; }
.dashboard-recent button { text-align: left; color: var(--ink); width: 100%; min-width: 0; }
.dashboard-recent span { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 12px; margin-top: 6px; }
.dark-mode .dashboard-client-link,.dark-mode button.dashboard-stat .metric-action { color: #90bfff; }
@media(max-width:760px){.dashboard-scope { width: 100%; }.dashboard-scope .client-picker { min-width: 0; max-width: 100%; }.hero.dashboard-hero { padding: 14px 16px; }}
.auth-password-help { display: inline-block; margin-top: 14px; font-size: 0.8125rem; font-weight: 400; color: #17365d; text-decoration: underline; text-underline-offset: 3px; }
.auth-password-help:hover { color: #0f6b78; }
.auth-password-help:focus-visible { outline: 2px solid #2476d3; outline-offset: 4px; border-radius: 2px; }
.auth-security-note { display: block; margin-top: 10px; font-size: 0.75rem; line-height: 1.5; color: #64748b; }
.security-code { border: 1px solid var(--line); border-radius: 10px; padding: 16px; margin: 12px 0; }
.security-code input { width: 100%; padding: 10px; font-family: monospace; }
#identityError, #contactPortalError { color: var(--red); }
.topbar { height: auto; min-height: 92px; gap: 12px; }
.top-actions { flex-wrap: wrap; }
.top-actions #serverSecurity { display: inline-flex; }
.auth-company-logo { display: flex; justify-content: center; margin-bottom: 24px; }
.auth-company-logo img { display: block; max-width: 240px; max-height: 110px; object-fit: contain; }
.auth-company-logo[hidden] { display: none; }
.auth-brand h1 { overflow-wrap: anywhere; }
.administration-grid { display: grid; grid-template-columns: repeat(3,minmax(220px,1fr)); gap: 14px; }
.administration-card { margin: 0; padding: 18px; display: flex; align-items: flex-start; flex-direction: column; }
.administration-card h3 { margin: 0 0 8px; font-size: 16px; }
.administration-card p { color: var(--muted); margin: 0 0 14px; line-height: 1.5; flex: 1; }
.administration-card .btn { margin-top: auto; width: 100%; min-height: 42px; display: inline-flex; align-items: center; justify-content: center; text-align: center; }
.administration-help { color: var(--muted); line-height: 1.6; margin: 20px 0 0; }
.admin-breadcrumb { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; color: var(--muted); font-size: 13px; }
.nav-btn .admin-notice { margin-left: auto; width: auto; min-width: 22px; padding: 2px 6px; border-radius: 20px; background: #fff; color: var(--navy); font-size: 11px; font-weight: 700; }

/* Rapports : sous-menu extensible et aperçu PDF commun. */
.nav-collapsible{grid-template-columns:minmax(0,1fr)!important}.nav-section-toggle{width:100%;border:0;background:rgba(255,255,255,.07);color:#eef6ff;padding:9px 12px;border-radius:9px;display:grid;grid-template-columns:22px 1fr 16px;gap:10px;align-items:center;text-align:left;cursor:pointer}.nav-section-toggle strong{font-size:13px;font-weight:650}.nav-section-toggle b{font-size:19px;line-height:1;transition:transform .16s}.nav-section-toggle.open b{transform:rotate(90deg)}.nav-section-toggle:hover,.nav-section-toggle.open{background:rgba(255,255,255,.13)}.nav-submenu{display:grid;grid-template-columns:minmax(0,1fr);gap:3px;margin:3px 0 0 17px;padding-left:8px;border-left:1px solid rgba(255,255,255,.2)}.nav-submenu[hidden]{display:none}.nav-submenu .nav-btn{font-size:12px;padding:7px 9px}.report-preview-panel{margin-top:18px}.report-preview-actions{display:flex;gap:8px;flex-wrap:wrap}.report-pdf-frame{display:block;width:100%;height:min(72vh,900px);min-height:560px;border:0;border-radius:0 0 14px 14px;background:#dfe5ec}.report-preview-panel[hidden]{display:none}
@media(max-width:700px){.report-preview-panel .panel-head{align-items:flex-start;gap:12px}.report-preview-actions{width:100%}.report-preview-actions .btn{flex:1}.report-pdf-frame{min-height:65vh}}
@media(max-width:1100px) { .administration-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width:760px) { .administration-grid { grid-template-columns: 1fr; } }

/* Modèle A : fiches compactes à onglets, mêmes données et actions. */
#recordDialog { width: min(900px,94vw); max-height: 94vh; max-height: 94dvh; overflow: hidden; }
#recordForm { display: flex; flex-direction: column; max-height: 94vh; max-height: 94dvh; }
#recordForm .record-head { flex: none; background: var(--navy); padding: 22px 24px; align-items: center; gap: 14px; }
#recordForm .record-app-icon { width: 44px; height: 44px; border-radius: 12px; border: 1px solid rgba(255,255,255,.35); flex: none; }
#recordForm .record-heading { min-width: 0; flex: 1; }
#recordForm .record-heading small { font-size: 10px; letter-spacing: .08em; color: #d7e5f3; }
#recordForm .record-heading h2 { margin: 5px 0 0; font-size: 21px; font-weight: 600; overflow-wrap: anywhere; }
#recordForm .record-mode { border: 1px solid rgba(255,255,255,.4); padding: 5px 10px; border-radius: 20px; white-space: nowrap; font-size: 11px; }
#recordForm .record-tabs { display: flex; flex-wrap: wrap; gap: 0; padding: 0 16px; flex: none; border-bottom: 1px solid var(--line); }
#recordForm .record-tab { border: 0; border-bottom: 3px solid transparent; background: transparent; color: var(--muted); padding: 15px 12px 12px; font-size: 13px; cursor: pointer; }
#recordForm .record-tab[aria-selected=true] { border-bottom-color: var(--teal); color: var(--teal); font-weight: 650; }
#recordForm .record-tab:focus-visible { outline: 2px solid var(--blue); outline-offset: -4px; }
#recordForm .record-fields { overflow-y: auto; overscroll-behavior: contain; min-height: 0; }
#recordForm .record-tab-panel[hidden] { display: none; }
#recordForm .record-panel-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; padding: 24px; align-items: start; }
#recordForm .form-field { min-width: 0; }
#recordForm .form-field.wide { grid-column: 1 / -1; }
#recordForm .form-field label { color: var(--ink); font-size: 12px; font-weight: 600; }
#recordForm .form-field input:not([type=checkbox]),#recordForm .form-field select,#recordForm .form-field textarea { width: 100%; min-width: 0; min-height: 42px; font-size: 14px; }
#recordForm .form-field input[type=hidden] { display: none; }
#recordForm .form-field textarea { min-height: 88px; resize: vertical; }
#recordForm .form-field small { color: var(--muted); font-size: 11px; line-height: 1.5; }
#recordForm .record-catalogue { margin: 0; padding: 16px; border: 1px solid var(--line); border-radius: 10px; background: color-mix(in srgb,var(--teal) 6%,transparent); }
#recordForm .record-catalogue legend { font-size: 12px; font-weight: 650; padding: 0 6px; color: var(--teal); }
#recordForm .record-catalogue-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
#recordForm .record-footer { background: var(--pale); border-top: 1px solid var(--line); padding: 16px 24px; flex: none; }
#recordForm .dialog-actions { border: 0; padding: 0; background: transparent; align-items: center; flex-wrap: wrap; }
#recordForm .dialog-actions>small { margin-right: auto; color: var(--muted); font-size: 11px; }
#recordForm .dialog-actions .btn.primary { background: var(--teal); }
#recordForm .record-print { margin-bottom: 16px; }
#recordForm .record-print-label { display: flex; gap: 10px; align-items: flex-start; cursor: pointer; }
#recordForm .record-print-label input { flex: none; width: 17px; height: 17px; margin: 2px 0 0; accent-color: var(--teal); }
#recordForm .record-print-label small { display: block; font-weight: 400; margin-top: 3px; }
#recordForm .form-checkbox-field{align-content:center;min-height:44px}#recordForm .record-checkbox{display:flex;align-items:center;gap:10px;min-height:44px;cursor:pointer;color:var(--ink);font-size:14px}#recordForm .record-checkbox input{flex:none;width:18px;height:18px;margin:0;accent-color:var(--teal)}#recordForm input[readonly]{background:var(--pale);color:var(--muted)}
#recordFormError { color: var(--red); font-size: 12px; margin: 0 0 12px; }
#recordFormError:empty { display: none; }
#recordForm .record-linked-summary { margin: 0 24px 24px; background: var(--pale); border: 1px solid var(--line); border-radius: 10px; padding: 16px; }
#recordForm .record-linked-summary h3 { margin: 0 0 8px; font-size: 14px; }
#recordForm .record-linked-summary p { margin: 0 0 5px; }
#recordForm .record-linked-summary small { color: var(--muted); }
.dark-mode #recordForm .record-tab[aria-selected=true],.dark-mode #recordForm .record-catalogue legend { color: #91d9e1; }
.compact-mode #recordForm .record-panel-grid { padding: 18px 22px; gap: 12px; }
@media(max-width:600px) {
 #recordForm .record-head { padding: 16px; gap: 10px; }
 #recordForm .record-mode { display: none; }
 #recordForm .record-heading h2 { font-size: 18px; }
 #recordForm .record-app-icon { width: 36px; height: 36px; }
 #recordForm .record-tabs { padding: 0 6px; }
 #recordForm .record-tab { padding: 12px 9px 10px; font-size: 12px; }
 #recordForm .record-panel-grid,#recordForm .record-catalogue-grid { grid-template-columns: 1fr; gap: 14px; }
 #recordForm .record-panel-grid,.compact-mode #recordForm .record-panel-grid { padding: 18px 16px; }
 #recordForm .record-footer { padding: 14px 16px; }
 #recordForm .dialog-actions>small { flex-basis: 100%; }
 #recordForm .form-field input:not([type=checkbox]),#recordForm .form-field select,#recordForm .form-field textarea { font-size: 16px; }
}
@media(pointer:coarse) { #recordForm button { min-height: 44px; } #recordForm .record-print-label { min-height: 44px; } }
.intervention-signature-pad{position:relative;margin-top:7px;border:1.5px solid var(--line);border-radius:10px;background:#fff;overflow:hidden;min-height:180px}.intervention-signature-pad canvas{display:block;width:100%;height:clamp(180px,25vh,260px);touch-action:none;cursor:crosshair}.signature-placeholder{position:absolute;inset:0;display:grid;place-items:center;padding:20px;color:#6b7788;font-size:13px;text-align:center;pointer-events:none}.intervention-signature-actions{display:flex;align-items:center;gap:12px;justify-content:space-between;margin-top:10px}.intervention-signature-actions small{flex:1}.dark-mode .intervention-signature-pad{border-color:#66758a}
.waze-button { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; padding: 8px; border: 1px solid #84becd; border-radius: 10px; background: #e3f7fc; cursor: pointer; flex: none; }
.waze-button img { display: block; width: 26px; height: 26px; }
.waze-button:hover:not(:disabled) { background: #c9f0fa; }
.waze-button:disabled { opacity: .45; cursor: not-allowed; }
.waze-button[hidden] { display: none; }
.waze-column { width: 58px; text-align: center; }
@media(pointer:coarse) { .waze-button { width: 44px; height: 44px; } }
/* Supervision agents : états distincts des voyants des demandes. */
.agent-help,.agent-measure-note{color:var(--muted);line-height:1.6}
.agent-controls{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap}
.agent-controls label{display:flex;flex-direction:column;gap:7px;min-width:180px;flex:1}
.agent-controls .agent-checkbox{flex-direction:row;align-items:center;max-width:360px;line-height:1.5}
.agent-controls .agent-checkbox input{width:auto}
.rustdesk-admin .panel-body>h4{margin:26px 0 10px}.rustdesk-admin .panel-body>h4:first-of-type{margin-top:18px}
.rustdesk-form{display:grid;gap:14px;width:min(100%,960px);margin:16px 0 20px}
.rustdesk-field{display:grid;gap:7px;min-width:0;font-weight:700}
.rustdesk-form input:not([type=checkbox]),.rustdesk-form select,.rustdesk-public-config input{display:block;width:100%;min-width:0;height:44px;padding:0 12px;border:1px solid var(--line);border-radius:9px;background:var(--pale);color:var(--ink);font:inherit}
.rustdesk-form .btn{width:100%;min-height:44px}
.rustdesk-check{display:flex;align-items:center;gap:10px;min-height:44px;font-weight:650}.rustdesk-check input{flex:0 0 auto;width:18px;height:18px;margin:0;accent-color:var(--blue)}
.rustdesk-server-form{grid-template-columns:minmax(0,1fr)}
.rustdesk-access-form{grid-template-columns:repeat(3,minmax(0,1fr))}.rustdesk-access-form .btn{grid-column:1/-1}
.rustdesk-install-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,auto);align-items:center;gap:12px;width:min(100%,960px)}
.rustdesk-install-row input{width:100%;min-width:0;min-height:44px;padding:7px 10px;border:1px solid var(--line);border-radius:9px;background:var(--pale);color:var(--ink)}
.rustdesk-install-row .btn{min-height:44px}
.rustdesk-public-config{display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,auto);align-items:end;gap:12px;width:min(100%,960px);margin:14px 0 20px}
.rustdesk-public-config .rustdesk-public-key{height:44px;white-space:nowrap;overflow-x:auto;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.rustdesk-public-config .btn{height:44px;min-height:44px;margin-bottom:0}
@media(max-width:760px){.rustdesk-access-form,.rustdesk-install-row,.rustdesk-public-config{grid-template-columns:minmax(0,1fr)}.rustdesk-access-form .btn{grid-column:auto}.rustdesk-public-config .btn,.rustdesk-install-row .btn{width:100%}}
#rustdeskDialogBody p{line-height:1.5;overflow-wrap:anywhere}
#rustdeskDialogBody .btn{display:inline-block;text-decoration:none}
#rustdeskDialogBody #rustdeskOpen{display:inline-flex;min-width:260px;max-width:100%;padding-inline:28px;align-items:center;justify-content:center}
.agent-state{display:inline-flex;align-items:center;gap:7px;border-radius:30px;padding:6px 12px;font-size:12px;font-weight:700;white-space:nowrap}
.agent-state::before{content:'';width:8px;height:8px;border-radius:50%;background:currentColor}
.agent-state.online{color:#12663c;background:#ddf5e6}.agent-state.offline{color:#755619;background:#fff1cc}
.table-wrap .agent-state{width:150px;min-width:150px;max-width:150px;justify-content:flex-start;text-align:left}
.table-wrap .agent-state::before{flex:0 0 8px}
.connection-status-stack{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:150px}
.connection-status-chip{font-size:11px;padding:5px 9px}
.connection-status-chip::before{width:7px;height:7px}
.table-wrap .reading-state{display:inline-flex;align-items:center;gap:7px;width:170px;min-width:170px;max-width:170px;min-height:30px;padding:6px 11px;border-radius:999px;justify-content:flex-start;text-align:left;overflow:hidden;text-overflow:ellipsis}.table-wrap .reading-state.good{background:#ddf5e6}.table-wrap .reading-state.warn{background:#fff1cc}.table-wrap .reading-state.bad{background:#fde6e6}.table-wrap .reading-state.neutral{background:var(--pale)}
.selection-more{position:relative}.selection-more-menu{position:absolute;right:0;top:calc(100% + 7px);z-index:8;display:grid;gap:6px;min-width:150px;padding:7px;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:0 14px 32px rgba(15,35,60,.2)}.selection-more-menu[hidden]{display:none}.selection-more-menu .btn{width:100%;justify-content:flex-start;text-align:left}.dark-mode .selection-more-menu{background:#172231}
.resizable-column{position:sticky}.column-resizer{position:absolute;right:-4px;top:0;width:9px;height:100%;z-index:7;cursor:col-resize;touch-action:none}.column-resizer:hover,.resizing-columns .column-resizer{border-right:2px solid var(--blue)}.resizing-columns{cursor:col-resize;user-select:none}
@media(min-width:900px){.sticky-key-columns .row-select-col,.sticky-key-columns .row-select-cell{position:sticky;left:0;z-index:4;background:#fff}.sticky-key-columns thead .row-select-col{z-index:6;background:#f1f5fa}.sticky-key-columns tr.entity-row-selected .row-select-cell{background:#e6f1ff}.dark-mode .sticky-key-columns .row-select-cell{background:#172231}.dark-mode .sticky-key-columns thead .row-select-col{background:#1d2a3a}.dark-mode .sticky-key-columns tr.entity-row-selected .row-select-cell{background:#233f61}}
@media(min-width:1400px){table[data-entity="assets"].sticky-key-columns .row-select-col,table[data-entity="assets"].sticky-key-columns .row-select-cell{position:sticky;left:0;width:88px;min-width:88px;max-width:88px;z-index:4;background:#fff}table[data-entity="assets"].sticky-key-columns .health-col,table[data-entity="assets"].sticky-key-columns .health-cell{position:sticky;left:88px;width:230px;min-width:230px;max-width:230px;z-index:4;background:#fff}table[data-entity="assets"].sticky-key-columns .presence-col,table[data-entity="assets"].sticky-key-columns .presence-cell{position:sticky;left:318px;width:170px;min-width:170px;max-width:170px;z-index:4;background:#fff}table[data-entity="assets"].sticky-key-columns .machine-col,table[data-entity="assets"].sticky-key-columns .machine-cell{position:sticky;left:488px;width:190px;min-width:190px;max-width:190px;z-index:4;background:#fff;box-shadow:5px 0 8px rgba(25,48,79,.08)}table[data-entity="assets"].sticky-key-columns thead .row-select-col,table[data-entity="assets"].sticky-key-columns thead .health-col,table[data-entity="assets"].sticky-key-columns thead .presence-col,table[data-entity="assets"].sticky-key-columns thead .machine-col{background:#f1f5fa;z-index:6}table[data-entity="assets"] tr.entity-row-selected .row-select-cell,table[data-entity="assets"] tr.entity-row-selected .health-cell,table[data-entity="assets"] tr.entity-row-selected .presence-cell,table[data-entity="assets"] tr.entity-row-selected .machine-cell{background:#e6f1ff}.dark-mode table[data-entity="assets"].sticky-key-columns .row-select-cell,.dark-mode table[data-entity="assets"].sticky-key-columns .health-cell,.dark-mode table[data-entity="assets"].sticky-key-columns .presence-cell,.dark-mode table[data-entity="assets"].sticky-key-columns .machine-cell{background:#172231}.dark-mode table[data-entity="assets"].sticky-key-columns thead .row-select-col,.dark-mode table[data-entity="assets"].sticky-key-columns thead .health-col,.dark-mode table[data-entity="assets"].sticky-key-columns thead .presence-col,.dark-mode table[data-entity="assets"].sticky-key-columns thead .machine-col{background:#1d2a3a}.dark-mode table[data-entity="assets"] tr.entity-row-selected .row-select-cell,.dark-mode table[data-entity="assets"] tr.entity-row-selected .health-cell,.dark-mode table[data-entity="assets"] tr.entity-row-selected .presence-cell,.dark-mode table[data-entity="assets"] tr.entity-row-selected .machine-cell{background:#233f61}}
.time-tracker-hero{gap:24px}.time-tracker-live{display:grid;gap:4px;min-width:210px;padding:13px 18px;border:1px solid rgba(255,255,255,.3);border-radius:13px;background:rgba(255,255,255,.12);text-align:right}.time-tracker-live small{font-size:10px;font-weight:750;letter-spacing:.12em}.time-tracker-live strong{font-size:31px;font-variant-numeric:tabular-nums;letter-spacing:.04em}.time-tracker-form{display:grid;grid-template-columns:minmax(180px,1fr) minmax(240px,1.4fr) minmax(180px,1fr) auto;gap:14px;align-items:end}.time-tracker-form input,.time-tracker-form select{height:42px;border:1px solid var(--line);border-radius:8px;padding:0 11px;background:#fff;color:var(--ink)}.time-tracker-actions{display:flex;gap:8px}.time-tracker-current{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:17px 0 0;padding:12px 14px;border-left:4px solid var(--blue);border-radius:8px;background:var(--pale)}.time-tracker-current small{color:var(--muted)}.duration-badge{display:inline-flex;min-width:90px;justify-content:center;padding:6px 10px;border-radius:999px;background:var(--pale);font-weight:750;font-variant-numeric:tabular-nums}.table-check{display:flex;align-items:center;gap:8px;min-width:130px;text-align:left}.table-check input{width:18px;height:18px;margin:0;accent-color:var(--blue)}.table-check input:disabled{cursor:not-allowed}.open-project-list{display:grid;grid-template-columns:repeat(2,minmax(420px,1fr));gap:12px}.open-project-list article{display:grid;grid-template-columns:minmax(170px,1fr) auto auto;align-items:center;gap:16px;padding:14px;border:1px solid var(--line);border-radius:11px;background:var(--pale)}.open-project-list article.project-completed{border-color:#b9d8c7}.open-project-list .project-main{display:grid;gap:4px;min-width:0}.open-project-list .project-status{display:grid;gap:7px;min-width:145px}.open-project-list strong,.open-project-list span,.open-project-list small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.open-project-list span,.open-project-list small{color:var(--muted)}.dark-mode .time-tracker-form input,.dark-mode .time-tracker-form select{background:#111b27}
.toast.has-action{display:flex;align-items:center;gap:14px;pointer-events:auto;z-index:30}.toast.has-action .btn{min-height:32px;padding:6px 10px;white-space:nowrap}
.global-clock{display:flex;align-items:center;gap:8px;min-width:128px;padding:6px 11px;border:1px solid color-mix(in srgb,var(--blue) 36%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--blue) 8%,#fff);box-shadow:0 3px 10px rgba(25,48,79,.08);color:var(--navy)}.global-clock>span:first-child{font-size:20px;color:var(--blue)}.global-clock>span:last-child{display:grid}.global-clock small{color:var(--muted);font-size:9px;font-weight:700;text-transform:capitalize}.global-clock strong{font-size:15px;font-variant-numeric:tabular-nums;letter-spacing:.05em}.project-open-badge{display:inline-flex;align-items:center;min-width:130px;padding:7px 11px;border-radius:999px;background:#ddf5e6;color:#12663c;font-size:12px;font-weight:700}.dark-mode .global-clock{background:#172b40;color:var(--ink)}
.time-tracker-form{grid-template-columns:repeat(4,minmax(0,1fr));gap:11px}.time-tracker-form .form-field{min-width:0}.time-tracker-form input,.time-tracker-form select{width:100%;min-width:0}.time-tracker-actions{grid-column:1/-1;justify-content:flex-end}.time-project-heading{gap:18px}.time-year-filter{display:grid;grid-template-columns:auto 100px;align-items:center;gap:9px;color:var(--muted);font-size:12px;font-weight:750}.time-year-filter select{height:38px;border:1px solid var(--line);border-radius:8px;padding:0 9px;background:#fff;color:var(--ink)}.time-project-tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px}.time-project-tab{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:9px;padding:8px 11px;background:#fff;color:var(--muted);font-weight:700;cursor:pointer}.time-project-tab span{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--pale);font-size:11px}.time-project-tab.active{border-color:var(--blue);background:color-mix(in srgb,var(--blue) 9%,#fff);color:var(--navy);box-shadow:0 0 0 2px color-mix(in srgb,var(--blue) 14%,transparent)}.open-project-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:8px}.open-project-list article{grid-template-columns:minmax(0,1fr) auto;gap:8px 10px;padding:10px 11px}.open-project-list .project-main{grid-column:1/-1;gap:2px}.open-project-list .project-main strong{font-size:13px}.open-project-list .project-main span,.open-project-list .project-main small{font-size:11px}.open-project-list .project-status{display:flex;align-items:center;gap:10px;min-width:0}.open-project-list .table-check{min-width:0;gap:5px;font-size:11px}.open-project-list .table-check input{width:16px;height:16px}.open-project-list article>.btn{padding:7px 11px;font-size:12px}.project-open-badge{min-width:0;padding:5px 9px;font-size:11px}.dark-mode .time-year-filter select,.dark-mode .time-project-tab{background:#172231;color:var(--ink)}
@media(max-width:1350px){.time-tracker-form{grid-template-columns:repeat(2,minmax(0,1fr))}}
.global-clock,.dark-mode .global-clock{height:40px;min-height:40px;padding:3px 11px;border:0;border-radius:8px;background:linear-gradient(135deg,var(--navy),var(--teal) 62%,var(--blue));box-shadow:0 6px 15px color-mix(in srgb,var(--navy) 24%,transparent);color:#fff;align-self:center}.global-clock>span:first-child{color:#fff;font-size:17px}.global-clock>span:last-child{line-height:1.05}.global-clock small{color:rgba(255,255,255,.78);font-size:8px}.global-clock strong{color:#fff;font-size:14px}
.time-tracker-form{grid-template-columns:repeat(8,minmax(0,1fr))}.time-tracker-form .time-project-client{grid-column:span 2}.time-tracker-form .time-project-name{grid-column:span 3}.time-tracker-form .time-project-date{grid-column:span 1}.time-tracker-form .time-project-author{grid-column:span 2}.time-project-tabs{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));width:100%;overflow-x:auto;padding:2px}.time-project-tab{width:100%;min-width:150px;min-height:42px;justify-content:center;text-align:center}.time-year-filter{display:flex;align-items:center;gap:9px}.time-year-control{display:grid;grid-template-columns:34px 92px 34px;gap:5px}.time-year-control button,.time-year-control select{height:38px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--navy);font-weight:750}.time-year-control button{padding:0;cursor:pointer;font-size:20px}.time-year-control button:disabled{opacity:.4;cursor:not-allowed}.time-year-control select{width:92px;padding:0 8px}.dark-mode .time-year-control button,.dark-mode .time-year-control select{background:#172231;color:var(--ink)}
@media(max-width:1350px){.time-tracker-form{grid-template-columns:minmax(240px,1.7fr) minmax(150px,.7fr)}.time-tracker-form .time-project-client,.time-tracker-form .time-project-name{grid-column:1}.time-tracker-form .time-project-date,.time-tracker-form .time-project-author{grid-column:2}}

/* Gestion du temps : proportions stables et trois onglets de largeur égale. */
@media(min-width:1351px){
 .time-tracker-form{grid-template-columns:minmax(210px,1.35fr) minmax(360px,2.8fr) minmax(145px,.72fr) minmax(190px,1.15fr);align-items:end}
 .time-tracker-form .time-project-client,.time-tracker-form .time-project-name,.time-tracker-form .time-project-date,.time-tracker-form .time-project-author{grid-column:auto}
}
.time-project-tabs{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:8px;width:100%;overflow-x:auto;padding:2px}
.time-project-tab{box-sizing:border-box;width:100%;min-width:150px;min-height:42px;justify-content:center;text-align:center}
.agent-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0}
.agent-metrics>div{border:1px solid var(--line);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:9px}
.agent-metrics strong{font-size:23px;font-variant-numeric:tabular-nums}.agent-metrics span,.agent-metrics small{font-size:12px;color:var(--muted)}
.agent-metrics progress{width:100%;height:9px;accent-color:var(--blue)}
.agent-volumes{display:flex;gap:12px;flex-wrap:wrap}.agent-volumes span{padding:10px;border:1px solid var(--line);border-radius:8px}
.agent-code{margin:16px 0;padding:18px;border:2px solid var(--blue);border-radius:12px}.agent-code input{font-family:monospace;letter-spacing:.04em;width:100%;max-width:470px}
.agent-inventory details{border-bottom:1px solid var(--line);padding:12px 0}.agent-inventory summary{font-weight:600;cursor:pointer}
.agent-inventory-fields{display:grid;grid-template-columns:minmax(150px,1fr) 2fr;gap:7px 16px;font-size:13px;overflow-wrap:anywhere}.agent-inventory-fields dt{color:var(--muted)}.agent-inventory-fields dd{margin:0}
.agent-inventory-list{padding-left:20px}.agent-inventory-list>li{margin-bottom:10px}
@media(max-width:800px){.agent-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.agent-inventory-fields{grid-template-columns:1fr}.agent-controls{align-items:stretch}}
.agent-controls input:not([type=checkbox]),.agent-controls select,#agentSoftwareSearch,.agent-code input{min-width:0;border:1px solid var(--line);background:var(--pale);color:var(--ink);border-radius:8px;padding:10px;font:inherit}
/* Coordonnées de la société : même langage visuel que les réglages existants. */
.settings-fields.company-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
.company-fields .wide,.company-print-option{grid-column:1/-1}
.company-print-option{display:flex;align-items:flex-start;gap:10px;font-size:13px;line-height:1.5}
.company-print-option input{flex:none;margin-top:3px}
#backupScheduleForm [hidden],#agentEnrollment [hidden]{display:none!important}
.settings-fields.brand-colors{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:760px){.settings-fields.company-fields,.settings-fields.brand-colors{grid-template-columns:1fr}}
.agent-installer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin:12px 0 18px}.agent-installer{display:flex;flex-direction:column;gap:7px;padding:14px;border:1px solid var(--border,#d7dde5);border-radius:10px;background:var(--surface,#fff)}.agent-installer strong{font-size:1rem}.agent-installer span,.agent-installer small{display:block}.agent-installer .btn{margin-top:auto}
.agent-installer-sha{display:block;max-width:100%;font-size:.8rem;line-height:1.4;overflow-wrap:anywhere}.agent-installer-sha span{display:block}


/* Déploiement agent : formulaire guidé et structuré. */
.agent-enrollment-panel .panel-body{padding-top:20px}
.agent-enrollment-title{align-items:flex-start}
.agent-enrollment-title p{margin:5px 0 0;color:var(--muted);font-size:13px;font-weight:400}
.agent-enrollment-notice{display:flex;align-items:flex-start;gap:14px;margin:0 0 18px;padding:13px 15px;border:1px solid color-mix(in srgb,var(--blue) 28%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--blue) 6%,var(--surface,#fff));line-height:1.45}
.agent-enrollment-notice strong{white-space:nowrap;color:var(--blue)}
.agent-enrollment-notice span{color:var(--muted)}
.agent-enrollment-form{display:grid;gap:14px}
.agent-enrollment-section{border:1px solid var(--line);border-radius:14px;background:var(--surface,#fff);padding:18px}
.agent-enrollment-heading{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px}
.agent-enrollment-heading h4{margin:0;font-size:16px}
.agent-enrollment-heading p{margin:4px 0 0;color:var(--muted);font-size:13px;line-height:1.45}
.agent-step{display:inline-flex;align-items:center;justify-content:center;flex:0 0 28px;width:28px;height:28px;border-radius:50%;background:var(--blue);color:#fff;font-size:13px;font-weight:800}
.agent-enrollment-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.agent-enrollment-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.agent-enrollment-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.agent-enrollment-grid>label,.agent-field-card{display:flex;flex-direction:column;gap:7px;min-width:0;font-weight:600}
.agent-enrollment-grid input:not([type=checkbox]),.agent-enrollment-grid select,.agent-field-card input:not([type=checkbox]),.agent-field-card select{width:100%;min-width:0;min-height:42px;border:1px solid var(--line);background:var(--pale);color:var(--ink);border-radius:9px;padding:10px;font:inherit}
.agent-enrollment-grid small,.agent-field-card small{font-weight:400;color:var(--muted);line-height:1.4}
.agent-option-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.agent-option-card,.agent-software-choice{display:flex;align-items:flex-start;gap:11px;padding:13px 14px;border:1px solid var(--line);border-radius:11px;background:var(--pale);cursor:pointer;min-width:0}
.agent-option-card:hover,.agent-software-choice:hover{border-color:color-mix(in srgb,var(--blue) 45%,var(--line));background:color-mix(in srgb,var(--blue) 4%,var(--pale))}
.agent-option-card input,.agent-software-choice input{flex:0 0 auto;width:17px;height:17px;margin:2px 0 0}
.agent-option-card span,.agent-software-choice span{display:flex;flex-direction:column;gap:3px;min-width:0}
.agent-option-card strong,.agent-software-choice strong{font-size:14px;line-height:1.35}
.agent-option-card small,.agent-software-choice small{color:var(--muted);line-height:1.4}
.agent-field-card{padding:13px 14px;border:1px solid var(--line);border-radius:11px;background:var(--pale)}
.agent-software-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.agent-section-help{margin:12px 0 0}
.agent-advanced{border:1px solid var(--line);border-radius:14px;background:var(--surface,#fff);overflow:hidden}
.agent-advanced>summary{padding:15px 18px;cursor:pointer;font-weight:750;color:var(--blue);list-style-position:inside}
.agent-advanced[open]>summary{border-bottom:1px solid var(--line);background:var(--pale)}
.agent-advanced-body{display:grid;gap:18px;padding:18px}
.agent-software-block{display:grid;gap:10px}
.agent-rustdesk-status{margin:12px 0 0;padding:10px 12px;border-radius:9px;background:color-mix(in srgb,#d89a00 12%,var(--pale));color:var(--ink);font-size:13px;line-height:1.45}
.agent-rustdesk-status:empty{display:none}.agent-rustdesk-status.is-ready{background:color-mix(in srgb,#168757 12%,var(--pale));color:#126844}.agent-rustdesk-status.is-pending{background:color-mix(in srgb,var(--blue) 10%,var(--pale));color:var(--navy)}
.agent-code-row{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}.agent-code-row label{flex:1 1 260px}.agent-code-row .btn{margin-bottom:0}
.agent-enrollment-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;border-radius:14px;background:var(--pale);border:1px solid var(--line)}
.agent-enrollment-actions>div{display:flex;flex-direction:column;gap:3px}
.agent-enrollment-actions small{color:var(--muted);line-height:1.4}
.agent-enrollment-actions .btn{flex:0 0 auto;min-width:210px}
.agent-deployment-footnote{margin:18px 0 0;color:var(--muted);font-size:12px;line-height:1.5}
@media(max-width:1050px){.agent-enrollment-grid,.agent-enrollment-grid-2,.agent-enrollment-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.agent-enrollment-notice{flex-direction:column;gap:4px}.agent-enrollment-grid,.agent-enrollment-grid-2,.agent-enrollment-grid-3,.agent-option-grid,.agent-software-options{grid-template-columns:1fr}.agent-enrollment-actions{align-items:stretch;flex-direction:column}.agent-enrollment-actions .btn{width:100%;min-width:0}.agent-enrollment-section{padding:15px}.agent-enrollment-heading{margin-bottom:13px}}

/* V2.8.11-9 — boutons « Dégradé de marque » sélectionnés par l’utilisateur. */
.btn{
 display:inline-flex;
 align-items:center;
 justify-content:center;
 gap:7px;
 vertical-align:middle;
 border:1px solid transparent;
 border-radius:12px;
 box-shadow:0 5px 13px color-mix(in srgb,var(--navy) 16%,transparent);
 transition:transform .16s ease,filter .16s ease,box-shadow .16s ease,border-color .16s ease;
}
.btn-icon{display:block;width:16px;height:16px;flex:0 0 16px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.btn.primary,.brand-logout{
 background:linear-gradient(135deg,var(--navy),var(--teal) 62%,var(--blue));
 color:#fff;
 border-color:color-mix(in srgb,var(--teal) 68%,var(--navy));
 box-shadow:0 6px 15px color-mix(in srgb,var(--navy) 24%,transparent);
 text-shadow:0 1px 1px rgba(0,0,0,.18);
}
.btn.secondary{
 background:linear-gradient(145deg,color-mix(in srgb,var(--blue) 7%,#fff),color-mix(in srgb,var(--teal) 13%,#fff));
 color:var(--navy);
 border-color:color-mix(in srgb,var(--teal) 23%,var(--line));
 box-shadow:0 4px 11px color-mix(in srgb,var(--navy) 11%,transparent);
}
.btn.ghost{
 background:linear-gradient(145deg,color-mix(in srgb,var(--pale) 62%,transparent),color-mix(in srgb,var(--blue) 4%,transparent));
 color:var(--muted);
 border-color:color-mix(in srgb,var(--teal) 16%,var(--line));
 box-shadow:0 3px 9px color-mix(in srgb,var(--navy) 7%,transparent);
}
.btn.danger{
 background:linear-gradient(135deg,#9e2830,var(--red) 58%,#dc5157);
 color:#fff;
 border-color:#9e2830;
 box-shadow:0 6px 15px rgba(158,40,48,.22);
 text-shadow:0 1px 1px rgba(0,0,0,.18);
}
.btn:hover:not(:disabled),.brand-logout:hover:not(:disabled){
 filter:brightness(1.07) saturate(1.04);
 transform:translateY(-2px);
 box-shadow:0 9px 20px color-mix(in srgb,var(--navy) 23%,transparent);
}
.btn:active:not(:disabled),.brand-logout:active:not(:disabled){
 transform:translateY(0);
 filter:brightness(.98);
 box-shadow:0 3px 8px color-mix(in srgb,var(--navy) 16%,transparent);
}
.btn:focus-visible,.brand-logout:focus-visible{
 outline:3px solid color-mix(in srgb,var(--blue) 72%,#fff);
 outline-offset:2px;
}
.dark-mode .btn.secondary{
 background:linear-gradient(145deg,color-mix(in srgb,var(--navy) 78%,#111b27),color-mix(in srgb,var(--teal) 55%,#111b27));
 color:#e7f4f6;
 border-color:color-mix(in srgb,var(--teal) 52%,var(--line));
}
.dark-mode .btn.ghost{
 background:linear-gradient(145deg,color-mix(in srgb,var(--pale) 84%,transparent),color-mix(in srgb,var(--teal) 12%,transparent));
 color:var(--ink);
 border-color:color-mix(in srgb,var(--teal) 28%,var(--line));
}
.btn#detailRustDesk,.btn[data-rustdesk-id],.btn.cw-selected-rustdesk,.btn.entity-selected-rustdesk,.btn#rustdeskOpen,.btn#rustdeskProfile,
.dark-mode .btn#detailRustDesk,.dark-mode .btn[data-rustdesk-id],.dark-mode .btn.cw-selected-rustdesk,.dark-mode .btn.entity-selected-rustdesk,.dark-mode .btn#rustdeskOpen,.dark-mode .btn#rustdeskProfile{
 background:linear-gradient(135deg,var(--navy),var(--teal) 62%,var(--blue));
 color:#fff;
 border-color:color-mix(in srgb,var(--teal) 68%,var(--navy));
 box-shadow:0 6px 15px color-mix(in srgb,var(--navy) 24%,transparent);
 text-shadow:0 1px 1px rgba(0,0,0,.18);
}
.btn:disabled{
 opacity:.5;
 filter:saturate(.55);
 box-shadow:none;
 cursor:not-allowed;
 transform:none;
 text-shadow:none;
}
@media(prefers-reduced-motion:reduce){.btn{transition:none}}

/* Contraste configurable de la navigation : reste lisible même avec un fond clair. */
.sidebar{color:var(--nav-text,#fff)}
.brand small,.brand-version,.nav-group>small{color:color-mix(in srgb,var(--nav-text,#fff) 70%,transparent)}
.nav-btn{color:color-mix(in srgb,var(--nav-text,#fff) 88%,transparent)}
.nav-btn:hover,.nav-btn.active{background:color-mix(in srgb,var(--nav-text,#fff) 14%,transparent);color:var(--nav-text,#fff)}
.nav-section-toggle{color:color-mix(in srgb,var(--nav-text,#fff) 92%,transparent);background:color-mix(in srgb,var(--nav-text,#fff) 7%,transparent)}
.sidebar-note{background:color-mix(in srgb,var(--nav-text,#fff) 10%,transparent);color:color-mix(in srgb,var(--nav-text,#fff) 78%,transparent)}
.nav-btn .admin-notice{background:var(--nav-text,#fff);color:var(--navy)}
.nav-text-color-field{min-width:0}
.nav-text-color-field .color-auto-btn{justify-self:start;padding:7px 10px;font-size:12px}
.entity-pagination{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap;margin-top:14px;color:var(--muted,#65738b);font-size:13px}
.entity-pagination label{display:inline-flex;align-items:center;gap:6px}
.entity-pagination select{min-width:70px;padding:7px 9px;border:1px solid var(--border,#cbd6e4);border-radius:8px;background:var(--surface,#fff);color:inherit}
.entity-pagination .btn{padding:6px 11px;min-width:36px}
.software-deployment-tabs{display:flex;gap:8px;padding:14px 18px 0;border-bottom:1px solid var(--border,#d7e0ec);overflow-x:auto}
.software-deployment-tab{border:0;border-bottom:3px solid transparent;background:transparent;color:var(--muted,#65738b);padding:10px 14px;font:inherit;font-weight:700;cursor:pointer;white-space:nowrap}
.software-deployment-tab:hover,.software-deployment-tab.active{color:var(--navy,#172033);border-bottom-color:var(--teal,#0f6b78)}
.automation-editor textarea[name="content"]{min-height:340px;width:100%;font:13px/1.55 ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;tab-size:4;white-space:pre;overflow:auto;background:#101628;color:#f1f5ff;border:1px solid #3b4a6b;border-radius:10px;padding:16px}
.automation-editor textarea[name="content"]:focus{outline:3px solid color-mix(in srgb,var(--blue,#2476d3) 30%,transparent);border-color:var(--blue,#2476d3)}
.aw-bitlocker-status{font-weight:700;color:var(--teal,#0f6b78)}
.automation-run-actions{display:flex;justify-content:flex-end;margin:0 0 12px}
@media print{
}

.phonebook-hero{display:flex;align-items:center;justify-content:space-between;gap:18px}
.phonebook-panel{margin-top:18px}
.phonebook-search{display:grid;gap:6px;max-width:720px;margin-bottom:18px}.phonebook-search>span{font-size:12px;font-weight:700;color:var(--muted)}.phonebook-search .field-search{width:100%;height:44px;min-width:0}
.phonebook-table-wrap{overflow-x:auto}
.phonebook-table{min-width:760px}
.phonebook-table th,.phonebook-table td{vertical-align:middle;font-family:Segoe UI,Inter,Arial,sans-serif;font-weight:400}
.phonebook-table th{font-weight:500}
.phonebook-table tbody td,.phonebook-table tbody td strong,.phonebook-table tbody td .link-button{font-weight:400!important}
.phonebook-table td:nth-child(4){white-space:nowrap;text-align:left}
.phonebook-table td:nth-child(5){min-width:260px}
.phonebook-table td:nth-child(5){text-align:left}
.phonebook-table tbody tr:nth-child(odd){background:#fff}
.phonebook-table tbody tr:nth-child(even){background:color-mix(in srgb,var(--blue,#2476d3) 8%,#fff)}
.phonebook-table tbody tr:hover{background:color-mix(in srgb,var(--blue,#2476d3) 14%,#fff)}
.phonebook-table tbody td,.phonebook-table tbody td .link-button{color:#000!important}
.link-button{border:0;background:none;color:var(--accent,#2476d3);font:inherit;font-weight:700;cursor:pointer;padding:0;text-align:left}
.link-button:hover{text-decoration:underline}
/* Police choisie dans Paramètres > Affichage ; le nom de marque conserve sa typographie. */
html,body,button,input,select,textarea{font-family:var(--app-font,Inter,Segoe UI,system-ui,-apple-system,Arial,sans-serif)}
.brand strong,.about-brand h2,.print-app-name{font-family:Segoe UI,Arial,sans-serif}
.network-check-form{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:12px;align-items:end;margin-bottom:20px}.network-check-form>label{display:flex;flex-direction:column;gap:6px}.network-check-form .check-inline{display:flex;flex-direction:row;align-items:center;gap:8px}.network-check-form details{grid-column:1/-1;border:1px solid var(--line,#d9e1ee);border-radius:10px;padding:10px 12px}.network-snmp-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px;margin-top:10px}.network-snmp-grid label{display:flex;flex-direction:column;gap:5px}.network-snmp-grid .network-snmp-oids{grid-column:span 2}.network-snmp-oids textarea{min-height:88px;font:12px/1.4 ui-monospace,SFMono-Regular,Consolas,monospace}.network-snmp-oids small{color:var(--muted,#65738b)}.network-actions{display:flex;gap:6px;flex-wrap:wrap}.network-actions .btn{white-space:nowrap}
.mib-test-panel{border:1px solid var(--line);border-radius:12px;margin:18px 0;padding:0;background:var(--pale)}.mib-test-panel>.panel-head{background:transparent}.mib-test-form{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:12px;padding:16px}.mib-test-form>label{display:flex;flex-direction:column;gap:6px;font-weight:650;color:var(--ink)}.mib-test-form input,.mib-test-form select{min-height:42px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink);padding:9px}.mib-test-form .wide{grid-column:1/-1}.mib-test-oids{border:1px solid var(--line);border-radius:9px;background:white;padding:12px}.mib-test-oids-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.mib-test-oids-actions{display:flex;gap:6px;margin-left:auto}.mib-test-oids-actions .btn{padding:6px 9px;font-size:11px}.mib-test-oid-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 14px;max-height:260px;overflow:auto}.mib-test-oid-list label{display:flex;align-items:flex-start;gap:8px;padding:7px;border-radius:7px}.mib-test-oid-list label:hover{background:#eef5fb}.mib-test-oid-list strong,.mib-test-oid-list small{display:block}.mib-test-oid-list small{color:var(--muted);font-size:11px;margin-top:2px}.mib-test-status{padding:10px 12px;border-left:4px solid var(--blue);background:#e9f3fb;border-radius:7px}.mib-test-error{padding:10px 12px;border-left:4px solid var(--red);background:#fff0f0;color:#8f2020;border-radius:7px}.mib-test-flags{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.mib-test-result-host{min-height:42px}.dark-mode .mib-test-form input,.dark-mode .mib-test-form select,.dark-mode .mib-test-oids{background:#111b27;color:var(--ink)}.dark-mode .mib-test-panel{background:#182536}.dark-mode .mib-test-oid-list label:hover{background:#213044}
@media(max-width:900px){.network-check-form,.network-snmp-grid{grid-template-columns:1fr}.network-snmp-grid .network-snmp-oids{grid-column:auto}.network-check-form details{grid-column:auto}}
@media print{
 @page{size:A4 portrait;margin:38mm 12mm 25mm 12mm}
 body:has(.phonebook-panel) .phonebook-letterhead{display:block!important;visibility:visible!important;position:fixed;top:-38mm;left:-12mm;width:210mm;height:297mm;z-index:0}
 body:has(.phonebook-panel) *{visibility:hidden!important}
 body:has(.phonebook-panel) .phonebook-panel,body:has(.phonebook-panel) .phonebook-panel *{visibility:visible!important}
 body:has(.phonebook-panel) .phonebook-panel{position:relative;z-index:1;margin:0;padding:0;background:transparent;box-shadow:none}
 body:has(.phonebook-panel) .phonebook-panel .panel-head button,body:has(.phonebook-panel) .phonebook-search{display:none!important}
 body:has(.phonebook-panel) .phonebook-table{min-width:0;width:100%;font-size:11pt}
}
 .backup-browse-body{padding:20px 22px}.backup-browse-body>p{margin-top:0}.backup-browse-list{display:grid;gap:9px;max-height:52vh;overflow:auto}.backup-browse-choice{display:flex;align-items:center;gap:12px;padding:13px 14px;border:1px solid var(--line);border-radius:10px;background:var(--pale);cursor:pointer}.backup-browse-choice:hover{border-color:var(--blue);background:#f8fbff}.backup-browse-choice input{accent-color:var(--teal);width:17px;height:17px;flex:0 0 auto}.backup-browse-choice span{display:grid;gap:4px;min-width:0}.backup-browse-choice strong,.backup-browse-choice small{overflow-wrap:anywhere}.backup-browse-choice small{color:var(--muted)}.dark-mode .backup-browse-choice:hover{background:#1d2b3c}
/* Diagnostic lisible des tests SNMP */
.mib-test-diagnostic{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:0 0 12px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--pale);color:var(--ink)}
.mib-test-diagnostic strong{margin-right:4px}
.mib-test-diagnostic span{color:var(--muted)}
.bulk-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.bulk-edit-field{display:grid;gap:6px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--surface,#fff)}.bulk-edit-field>label{font-weight:700}.bulk-edit-field input[type=checkbox]{width:18px;height:18px;vertical-align:middle}.bulk-edit-field select,.bulk-edit-field input,.bulk-edit-field textarea{width:100%}@media(max-width:720px){.bulk-edit-grid{grid-template-columns:1fr}}

/* Repère de sélection des entrées actives, inspiré de Tests SNMP. */
.sidebar nav .nav-btn.active{background:#0b679b;color:#fff;border:1px solid #64dfeb;border-left:5px solid #64dfeb;padding-left:7px;box-shadow:0 4px 14px rgba(4,32,59,.28);font-weight:750;transform:none}
.sidebar nav .nav-btn.active:hover{background:#0b679b;color:#fff;transform:none}
.sidebar nav .nav-btn.active:focus-visible{outline:3px solid #a8f4f2;outline-offset:2px}

/* Pied de page applicatif aligné sur la zone principale, après la navigation latérale. */
.app-status-footer{position:fixed;left:255px;right:0;bottom:0;z-index:8;min-height:42px;padding:7px 22px;background:rgba(255,255,255,.97);backdrop-filter:blur(10px);border-top:1px solid var(--line);box-shadow:0 -3px 12px rgba(25,48,79,.06);display:flex;align-items:center;justify-content:space-between;gap:18px;font-size:12px;color:#46566e}
.app-backup-status,.app-footer-identity{display:flex;align-items:center;gap:8px;min-width:0}
.app-backup-status{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.app-status-icon{flex:0 0 auto;font-size:16px;font-weight:800;line-height:1}
.app-backup-status.success .app-status-icon{color:#07804f}
.app-backup-status.error,.app-backup-status.error strong{color:#a51f1f}
.app-backup-status.warning .app-status-icon{color:#a35a00}
.app-backup-status.neutral .app-status-icon{color:#718096}
.app-backup-status.error strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.app-footer-identity{flex:0 0 auto;color:#33445d;font-weight:650;white-space:nowrap}
.app-footer-separator{color:#9aa7b7}
.main{padding-bottom:44px}
@media screen and (max-width:760px){
 .app-status-footer{left:0;bottom:68px;min-height:42px;padding:6px 12px;gap:10px;font-size:11px}
 .app-footer-identity{gap:5px}
 .app-backup-status{flex:1 1 auto}
 .main{padding-bottom:48px}
}
.app-backup-status[hidden]{display:none}
.app-backup-status{margin-right:auto;justify-content:flex-start;text-align:left}
.app-footer-identity{margin-left:auto;justify-content:flex-end;text-align:right}
.app-footer-user{display:grid;line-height:1.15;text-align:right}
.app-footer-user small{font-size:10px;font-weight:500;color:#657187}
#automationDialog .dialog-head .context-help-button{display:inline-grid!important;visibility:visible!important;opacity:1!important}
.context-help-button{width:30px;height:30px;border:1px solid #b9cbe0;border-radius:50%;background:#edf5ff;color:#1e5f9d;font-weight:800;cursor:pointer;display:inline-grid;place-items:center;flex:0 0 auto}.context-help-button:hover{background:#dcecff}.context-help-dialog{width:min(680px,calc(100vw - 28px));max-height:82vh;border:0;border-radius:15px;padding:0;box-shadow:0 22px 70px rgba(13,33,59,.3);color:var(--ink)}.context-help-dialog::backdrop{background:rgba(14,31,51,.45);backdrop-filter:blur(2px)}.context-help-dialog .dialog-head{position:sticky;top:0;z-index:1;background:#fff;border-bottom:1px solid var(--line);padding:18px 22px;display:flex;justify-content:space-between;align-items:center}.context-help-dialog .dialog-head small{color:var(--teal);font-size:10px;font-weight:800;letter-spacing:.09em}.context-help-dialog h2{margin:3px 0 0;font-size:21px}.context-help-body{padding:18px 24px 25px;line-height:1.6;color:#344256}.context-help-body ul{padding-left:22px}.context-help-body li{margin:7px 0}.context-help-body p{margin:0 0 13px}
.context-help-dialog{position:fixed;inset:0 0 0 auto;margin:0;width:min(455px,94vw);height:100dvh;max-height:100dvh;border-radius:14px 0 0 14px;display:none;flex-direction:column;overflow:hidden;transform:translateX(0);animation:context-help-slide-in .18s ease-out;color:var(--ink);background:#fff}.context-help-dialog[open]{display:flex}.context-help-dialog::backdrop{background:rgba(14,31,51,.27);backdrop-filter:blur(1px)}.context-help-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex:0 0 auto;padding:17px 19px;background:linear-gradient(125deg,#17365d,#0f6b78);color:#fff;border-bottom:1px solid #d7e2ee}.context-help-head small{font-size:10px;font-weight:800;letter-spacing:.1em;color:#d4e7ee}.context-help-head h2{margin:3px 0 0;font-size:21px;color:#fff}.context-help-close{display:inline-flex!important;align-items:center;gap:6px;padding:7px 10px!important;border:1px solid rgba(255,255,255,.62)!important;border-radius:8px!important;background:rgba(255,255,255,.15)!important;color:#fff!important;cursor:pointer!important;font-size:13px!important;opacity:1!important;visibility:visible!important}.context-help-close span{font-size:19px;line-height:1}.context-help-tools{flex:0 0 auto;padding:12px 15px 8px;border-bottom:1px solid var(--line);background:#f7f9fc}.context-help-search{display:flex;align-items:center;gap:9px;height:38px;padding:0 10px;border:1px solid #cad6e4;border-radius:8px;background:#fff;color:#64748b}.context-help-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--ink);font:inherit}.context-help-contents{margin-top:9px}.context-help-contents summary{color:#235b90;font-size:12px;font-weight:700;cursor:pointer;list-style:none}.context-help-contents summary::-webkit-details-marker{display:none}.context-help-contents summary:after{content:'⌄';float:right}.context-help-contents[open] summary:after{content:'⌃'}.context-help-contents nav{display:grid;grid-template-columns:1fr 1fr;gap:4px 6px;max-height:185px;overflow:auto;padding:7px 2px 3px}.context-help-topic{border:0;border-radius:6px;padding:6px 8px;background:transparent;text-align:left;color:#344256;font:inherit;font-size:11px;line-height:1.3;cursor:pointer}.context-help-topic:hover,.context-help-topic[aria-current=true]{background:#e5effb;color:#174f83}.context-help-topic[hidden]{display:none}.context-help-body{flex:1 1 auto;min-height:0;overflow:auto;padding:20px 21px 30px;line-height:1.55;color:#344256;overscroll-behavior:contain}.context-help-body:focus{outline:none}.context-help-body h3{margin:21px 0 8px;color:#174c7d;font-size:16px}.context-help-body h4{margin:16px 0 5px;font-size:13px;color:#285c82}.context-help-body p{margin:0 0 12px}.context-help-body ul,.context-help-body ol{padding-left:22px;margin:7px 0 15px}.context-help-body li{margin:5px 0}.context-help-body table{width:100%;border-collapse:collapse;margin:10px 0 17px;font-size:11px}.context-help-body th,.context-help-body td{border-bottom:1px solid var(--line);padding:7px 6px;text-align:left;vertical-align:top}.context-help-body th{background:#f2f6fa;color:#244a70}.context-help-callout{margin:12px 0;padding:11px 12px;border-left:3px solid #2680c2;border-radius:5px;background:#eef6fd;font-size:12px}.context-help-callout.warning{border-color:#d28a19;background:#fff7e8}.context-help-dialog .context-help-empty{color:var(--muted);font-size:13px;padding:7px 4px}.dark-mode .context-help-dialog{background:var(--panel,#182638);color:var(--ink,#e4edf7)}.dark-mode .context-help-head{background:linear-gradient(125deg,#142943,#0d525b)}.dark-mode .context-help-body{color:#d3deeb}.dark-mode .context-help-search,.dark-mode .context-help-search input{background:#1d3045;color:#e4edf7}.dark-mode .context-help-topic{color:#d3deeb}.dark-mode .context-help-topic:hover,.dark-mode .context-help-topic[aria-current=true]{background:#294563;color:#fff}.dark-mode .context-help-callout{background:#203d50;color:#e4edf7}.dark-mode .context-help-callout.warning{background:#4a3720}.dark-mode .context-help-body th{background:#22364d;color:#e4edf7}@keyframes context-help-slide-in{from{transform:translateX(18px);opacity:.82}to{transform:translateX(0);opacity:1}}@media(max-width:640px){.context-help-dialog{width:100vw;border-radius:0}.app-help-launch{padding:9px 10px!important}.context-help-contents nav{grid-template-columns:1fr 1fr}}
/* Documents attachés aux projets de gestion du temps */
.project-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.time-project-doc-dialog{width:min(920px,calc(100vw - 28px));max-width:920px}
.time-project-doc-dialog .dialog-body>label{display:grid;gap:6px;margin:12px 0;font-weight:700}
.time-project-doc-dialog input,.time-project-doc-dialog textarea{width:100%;min-height:40px;border:1px solid var(--line);border-radius:8px;padding:9px 11px;background:var(--surface,#fff);color:var(--ink)}
.time-project-doc-dialog input[type=file]{height:auto}
.time-project-doc-dialog .table-wrap td small{display:block;color:var(--muted);margin-top:3px}
@media(max-width:620px){.project-actions{justify-content:stretch}.project-actions>.btn{flex:1}.time-project-doc-dialog .dialog-actions{flex-wrap:wrap}.time-project-doc-dialog .dialog-actions>.btn{flex:1}}
.time-tracker-form .time-project-assign{grid-column:span 3}.time-tracker-form .time-project-assign select{height:100px;padding:6px}.time-tracker-form .time-project-assign .field-help{display:block;margin-top:4px}.open-project-list .project-main small{white-space:normal;line-height:1.3}.project-overrun{color:#a61e2b!important;font-weight:800}.time-project-manager{width:min(1060px,calc(100vw - 28px));max-width:1060px}.time-project-manager .dialog-body{display:grid;gap:17px;max-height:min(72vh,950px);overflow-y:auto}.time-project-manager section{padding:14px;border:1px solid var(--line);border-radius:11px}.time-project-manager section h3{margin:0 0 13px}.project-budget-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.project-budget-grid>div{display:grid;gap:5px;padding:11px;border-radius:9px;background:var(--pale)}.project-budget-grid small{color:var(--muted)}.project-budget-grid strong{font-size:15px}.project-manager-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.project-manager-fields label,.project-link-picker label{display:grid;gap:6px;font-weight:700}.time-project-manager input,.time-project-manager select{width:100%;min-height:40px;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:var(--surface,#fff);color:var(--ink)}.time-project-manager select[multiple]{height:114px}.project-section-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.project-stage-row{display:grid;grid-template-columns:minmax(160px,2fr) 150px 150px 40px;gap:8px;margin:8px 0}.project-stage-row .project-stage-remove{padding:3px;font-size:20px}.project-tech-stages{display:grid;gap:8px}.project-tech-stage{display:grid;grid-template-columns:minmax(180px,2fr) minmax(130px,1fr) minmax(140px,1fr);align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--line)}.project-link-picker{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto;align-items:end;gap:9px;margin-bottom:14px}.project-link-open{border:0;background:none;color:var(--blue);font-weight:750;cursor:pointer;text-decoration:underline}.time-project-manager .dialog-actions{flex-wrap:wrap}@media(max-width:760px){.project-budget-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-manager-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.project-stage-row{grid-template-columns:minmax(0,1fr) minmax(130px,1fr)}.project-link-picker{grid-template-columns:minmax(0,1fr) auto}.time-tracker-form .time-project-assign{grid-column:1/-1}}@media(max-width:490px){.project-manager-fields,.project-tech-stage{grid-template-columns:1fr}.project-stage-row{grid-template-columns:1fr 1fr}.project-link-picker{grid-template-columns:1fr}.project-link-picker .btn{width:100%}}

.phonebook-letterhead{display:none}

/* Gestion du temps : mêmes marges et défilement interne que les autres fiches. */
.time-project-doc-dialog[open],.time-project-manager[open]{display:flex;flex-direction:column;max-height:calc(100dvh - 32px);overflow:hidden}
.time-project-doc-dialog .dialog-head,.time-project-manager .dialog-head,
.time-project-doc-dialog .dialog-actions,.time-project-manager .dialog-actions{flex:none}
.time-project-doc-dialog>.dialog-body,.time-project-doc-dialog form>.dialog-body,
.time-project-manager>.dialog-body{min-height:0;overflow-y:auto;padding:20px 24px 24px}
.time-project-doc-dialog>.dialog-body,.time-project-manager>.dialog-body{flex:1 1 auto}
.time-project-doc-dialog form{display:flex;flex-direction:column;min-height:0;flex:1 1 auto}
.time-project-doc-dialog form>.dialog-body{flex:1 1 auto}
.time-project-doc-dialog .dialog-body>p:first-child{margin-top:0}
.time-project-doc-dialog .dialog-body>.table-wrap{margin:14px 0}
.time-project-manager #projectManagerForm{display:grid;gap:16px}
.time-project-manager #projectManagerSave{justify-self:start}
.time-project-manager .project-manager-fields{align-items:start}
.time-project-manager .project-manager-fields label{min-width:0;align-content:start;grid-template-rows:auto auto}
.time-project-manager .project-manager-fields input{height:42px;align-self:start}
.time-project-manager .project-manager-fields select[multiple]{height:114px}
.report-preview-fallback{margin:0;padding:10px 18px 14px;color:var(--muted);font-size:12px}
.report-preview-fallback a{color:var(--blue);font-weight:700}
.license-seat-form{display:flex;align-items:end;flex-wrap:wrap;gap:.75rem;margin:1rem 0}
.license-seat-form label{width:100%;font-weight:600}
.license-seat-form select{min-width:min(100%,18rem);flex:1;max-width:34rem}
.license-seat-form>div{display:flex;flex-direction:column;gap:.4rem;flex:1 1 15rem;min-width:min(100%,15rem)}
.license-seat-form input,.license-seat-form select{width:100%;min-width:0;max-width:none}
.license-seat-form>button{align-self:end}

/* Le client reste visible pendant la navigation et le défilement de la licence. */
#recordForm .record-client-context { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 12px; flex: none; padding: 12px 24px; border-bottom: 1px solid var(--line); background: var(--pale); color: var(--ink); }
#recordForm .record-client-context span { font-size: 12px; font-weight: 600; color: var(--muted); }
#recordForm .record-client-context strong { min-width: 0; overflow-wrap: anywhere; font-size: 15px; }
@media(max-width:600px) { #recordForm .record-client-context { padding: 10px 16px; } }

/* V3.4.210 — commandes de la fiche société */
#content > .admin-breadcrumb.settings-fixed-actions{position:sticky;top:var(--settings-toolbar-top,92px);z-index:3;display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:12px;background:#fff;color:#17365d;border:1px solid var(--line);border-radius:8px;box-shadow:0 3px 10px #19304f14}
.settings-fixed-actions .settings-save{margin-left:auto}
#settingsForm .settings-color-actions{display:flex;align-items:center;flex-wrap:wrap;gap:9px;grid-column:1/-1}
#settingsForm .settings-color-actions .btn{width:auto;margin:0;flex:0 0 auto}
@media print{#content > .settings-fixed-actions{display:none!important}}

/* Création dans une fenêtre et couleurs stables par projet. */
.time-project-create-dialog{width:min(1060px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:0;overflow:auto;border:1px solid var(--line);border-radius:12px;background:var(--surface,#fff)}
.time-project-create-dialog::backdrop{background:rgba(12,30,48,.45)}
.time-project-create-dialog>.panel{margin:0;border:0}
.time-project-create-dialog .panel-head{position:sticky;top:0;z-index:2;background:var(--surface,#fff)}
.time-project-create-dialog .time-tracker-actions{grid-column:1/-1}
.open-project-list>article.time-project-color-card{border-top:4px solid var(--project-color);background:color-mix(in srgb,var(--project-color) 7%,#fff);box-shadow:0 3px 8px #142d4610}
.open-project-list .time-project-color-card .project-main>strong{color:var(--project-color)}
.dark-mode .open-project-list>article.time-project-color-card{background:color-mix(in srgb,var(--project-color) 18%,#172231)}
.dark-mode .time-project-color-card .project-main>strong{color:#e7edf5}
@media(max-width:760px){.time-project-create-dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}}

/* RGPD duration inputs follow the standard field appearance. */
#rgpdRetentionRows input[data-retention-key]{box-sizing:border-box;appearance:auto;width:112px;max-width:100%;min-height:40px;padding:8px 11px;border:1px solid var(--line,#bdcbdc)!important;border-radius:9px!important;background:var(--surface,#fff);color:var(--ink,#173858);font:inherit}
#rgpdRetentionRows input[data-retention-key]:focus{outline:2px solid var(--blue,#1768aa);outline-offset:1px}
.dark-mode #rgpdRetentionRows input[data-retention-key]{background:#172231;color:#f1f5f9;border-color:#65758a!important}

.aa-dialog .conservation-toolbar{align-items:flex-end!important;gap:10px}
.aa-dialog .conservation-toolbar>label{margin:0!important;flex:0 0 auto}
.aa-dialog .conservation-toolbar>label>input,.aa-dialog .conservation-toolbar>button{height:40px!important;min-height:40px!important;box-sizing:border-box;margin:0!important}
.aa-dialog .conservation-toolbar>[role=status]{align-self:center;margin-top:20px}

.mfa-manual code{overflow-wrap:anywhere;word-break:break-word;user-select:all}.mfa-recovery{width:100%;max-width:100%;box-sizing:border-box}

/* Sortie toujours accessible au bas de la navigation. */
.sidebar nav{flex:1 1 auto;min-height:0}
.sidebar .sidebar-note{flex:0 0 auto}
.sidebar .sidebar-exit{flex:0 0 auto;margin-top:12px;border:1px solid rgba(255,255,255,.28);color:inherit;width:100%;justify-content:flex-start;min-height:42px}
.sidebar .sidebar-exit svg{flex:0 0 auto}
.sidebar .sidebar-exit:disabled{opacity:.6;cursor:wait}

.time-project-color-card.project-tone-0{--project-color:#184e77}
.time-project-color-card.project-tone-1{--project-color:#147d73}
.time-project-color-card.project-tone-2{--project-color:#695092}
.time-project-color-card.project-tone-3{--project-color:#996415}
.time-project-color-card.project-tone-4{--project-color:#be4f73}
.time-project-color-card.project-tone-5{--project-color:#287cbe}

.project-actions button[data-project-stop]{background:#b42332!important;color:#fff!important;border:1px solid #b42332!important}
.project-actions button[data-project-stop]:hover{background:#941b28!important}

.project-running-badge{display:block;border-radius:8px;padding:8px 10px;background:#b42332;color:#fff;font-size:12px;font-weight:700}
@media(max-width:760px){
.open-project-list .project-actions{display:flex;flex-wrap:wrap;gap:8px;min-width:0;width:100%}
.open-project-list .project-actions>button{flex:1 1 auto;min-width:88px;white-space:nowrap!important;word-break:normal!important;overflow-wrap:normal!important}
.open-project-list .project-actions>button[data-project-stop]{flex:1 0 100%;width:100%;justify-content:center}
}

html body #content .open-project-list .project-running-badge,html body #content .open-project-list .project-running-badge *{color:#fff!important}
.project-running-badge small{display:block;margin-top:4px;font-weight:400}

.project-elapsed-clock{display:inline-block;white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:800}

html body #content .open-project-list .project-running-badge{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:8px;line-height:1.4}
html body #content .open-project-list .project-elapsed-clock{vertical-align:baseline;line-height:inherit;font-variant-numeric:tabular-nums;white-space:nowrap}
html body #content .open-project-list .project-status{display:flex!important;flex-wrap:wrap;gap:10px;grid-column:1/-1}
html body #content .open-project-list .project-status input[type=checkbox]{display:inline-block!important;visibility:visible!important;opacity:1!important;width:20px!important;height:20px!important;flex:0 0 20px}
html body #content .open-project-list .project-status label{display:inline-flex!important;align-items:center;gap:6px}
html body #content .open-project-list .project-actions{grid-column:1/-1;justify-content:flex-end}

html body #content .open-project-list .project-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
html body #content .open-project-list .project-actions>.project-running-badge{flex:0 1 auto;margin-right:auto;min-height:44px;box-sizing:border-box}
@media(max-width:760px){html body #content .open-project-list .project-actions>.project-running-badge{flex-basis:100%;margin-right:0}}

.attachment-preview-dialog{width:min(960px,96vw);max-height:94dvh}.attachment-preview-dialog .dialog-head h2{overflow-wrap:anywhere;min-width:0}.attachment-photo-preview{display:block;max-width:100%;max-height:65dvh;object-fit:contain;margin:auto}.attachment-pdf-preview{width:100%;height:65dvh;border:0}.attachment-preview-dialog .dialog-actions{display:flex;flex-wrap:wrap;gap:8px}

/* Documents des projets : accès et ajout visibles aussi sur tablette et téléphone. */
.project-doc-header-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.project-doc-title{font:inherit;font-weight:750;background:transparent;border:0;padding:4px 0;color:var(--blue);text-decoration:underline;cursor:pointer;text-align:left;white-space:normal;overflow-wrap:anywhere}
@media(max-width:1024px){
 #timeProjectDocumentsDialog .dialog-head{align-items:flex-start;gap:12px;flex-wrap:wrap}
 #timeProjectDocumentsDialog .project-doc-header-actions{margin-left:auto}
 #timeProjectDocumentsDialog .project-doc-table{overflow:visible;border:0}
 #timeProjectDocumentsDialog .project-doc-table table,#timeProjectDocumentsDialog .project-doc-table tbody{display:block;width:100%;white-space:normal;background:transparent}
 #timeProjectDocumentsDialog .project-doc-table thead{display:none}
 #timeProjectDocumentsDialog .project-doc-table tr{display:block;margin:0 0 12px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface,#fff)}
 #timeProjectDocumentsDialog .project-doc-table td{display:block;max-width:none;width:100%;border:0;padding:5px 0;overflow:visible;white-space:normal;overflow-wrap:anywhere}
 #timeProjectDocumentsDialog .project-doc-table td[data-label]::before{content:attr(data-label) ' : ';color:var(--muted)}
 #timeProjectDocumentsDialog .project-doc-table td.project-doc-row-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
 #timeProjectDocumentsDialog .project-doc-row-actions>.btn{min-height:44px;flex:1}
 #timeProjectDocumentsDialog .project-doc-title{min-height:44px}
}

/* Documents : liste autonome, sans les transformations des tableaux génériques. */
.project-document-list{display:grid;gap:12px;margin:16px 0;min-width:0}
.project-document-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--surface,#fff);min-width:0}
.project-document-info{min-width:0;flex:1}.project-document-info>small{display:block;color:var(--muted);margin:5px 0 8px}.project-document-info>.project-doc-title{max-width:100%}
.project-doc-row-actions{display:flex;flex-wrap:wrap;gap:8px;flex-shrink:0}.project-doc-row-actions>.btn{min-height:44px}
#timeProjectDocumentsDialog>.dialog-head,#timeProjectDocumentsDialog>.dialog-command-frame,.attachment-preview-dialog>.dialog-head,.attachment-preview-dialog>.dialog-command-frame{position:relative!important;top:auto!important;flex:0 0 auto;z-index:auto!important}
.attachment-preview-dialog[open]{display:flex;flex-direction:column;overflow:hidden;max-height:calc(100dvh - 24px)}
.attachment-preview-dialog>.dialog-body{flex:1 1 auto;min-height:0;overflow:auto}
#timeProjectDocumentsDialog>.dialog-body{overflow:auto;min-height:0;flex:1 1 auto}
@media(max-width:1024px){.project-document-item{align-items:stretch;flex-direction:column;gap:10px}.project-doc-row-actions>.btn{flex:1}.project-doc-row-actions{width:100%}}

.mib-profile-panel>.mib-profile-head{background:linear-gradient(110deg,var(--navy),var(--teal));color:#fff;display:flex;align-items:center;justify-content:space-between;gap:16px}.mib-profile-head h2{color:#fff}.mib-profile-head p{color:#d5e8ed}.mib-profile-head #mibBack{flex-shrink:0}.mib-profile-panel>.mib-profile-actions{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px;border-bottom:1px solid var(--line);background:var(--pale)}

#content:has(>.network-check-panel){width:100%;max-width:none}#content>.network-check-panel{width:100%;max-width:none;min-height:calc(100dvh - 170px)}.network-check-panel>.network-check-heading{background:linear-gradient(110deg,var(--navy),var(--teal));color:#fff;display:flex;align-items:center;justify-content:space-between;gap:16px}.network-check-heading h2{color:#fff}.network-check-heading p{color:#d5e8ed}.network-check-panel>#networkMonitorBody{width:100%;max-width:none;box-sizing:border-box}.network-check-panel .network-check-form{width:100%;max-width:none}

/* Backup settings: destination, schedule, triggers, then one save action. */
.backup-settings-panel #backupScheduleForm{display:grid;gap:18px;max-width:none}.backup-settings-panel .backup-section{min-width:0;margin:0;padding:16px;border:1px solid var(--line);border-radius:10px}.backup-section legend{padding:0 8px;font-weight:700;color:var(--ink)}.backup-settings-panel .backup-section .settings-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:start;gap:16px;margin-top:16px}.backup-settings-panel .form-field{display:grid;gap:8px;min-width:0}.backup-settings-panel .input-with-action{display:flex;align-items:stretch;gap:8px}.backup-settings-panel .input-with-action input{flex:1;min-width:0;width:auto}.backup-settings-panel .input-with-action button{flex-shrink:0}.backup-settings-panel input:not([type=checkbox]),.backup-settings-panel select{width:100%;min-height:42px;box-sizing:border-box}.backup-settings-panel .company-print-option{display:flex;align-items:center;gap:10px;margin:0}.backup-trigger-section{display:grid;gap:14px}.backup-trigger-section p{margin:0}.backup-settings-panel .backup-save-actions,.backup-copy-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px;flex-wrap:wrap}.backup-copies-panel>.panel-head{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}.backup-copy-actions{margin-left:auto}.backup-copies-panel ul{list-style:none;padding:0}.backup-copies-panel .backup-copy-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.backup-copy-row button{margin-left:auto;flex-shrink:0}.backup-section [hidden]{display:none!important}@media(max-width:1100px){.backup-settings-panel .backup-section .settings-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.backup-settings-panel .backup-section .settings-fields{grid-template-columns:1fr}.backup-settings-panel .input-with-action{flex-wrap:wrap}.backup-settings-panel .input-with-action input{flex-basis:100%}.backup-copies-panel .backup-copy-row{flex-wrap:wrap}}
/* All tab captions use the same bold weight, active or inactive. */
html body [role="tab"],html body :is(.automation-main-tabs,.automation-tabs,.aw-tabs,.cvse-tabs,.cw-tabs,.flat-tabs,.grievance-tabs,.ink-view-tabs,.monitor-tabs,.np-tabs,.ops-tabs,.pv-config-tabs,.pv-tabs,.qs-tabs,.record-tabs,.segmented-tabs,.software-deployment-tabs,.time-project-tabs)>:is(button,a),html body [role="tablist"]>:is(button,a){font-weight:700!important}
html body [role="tab"] :is(span,strong),html body :is(.automation-main-tabs,.automation-tabs,.aw-tabs,.cvse-tabs,.cw-tabs,.flat-tabs,.grievance-tabs,.ink-view-tabs,.monitor-tabs,.np-tabs,.ops-tabs,.pv-config-tabs,.pv-tabs,.qs-tabs,.record-tabs,.segmented-tabs,.software-deployment-tabs,.time-project-tabs)>:is(button,a) span{font-weight:700!important}

.software-deployment-panel>.panel-head[hidden]{display:none!important}

/* A bounded updates list keeps the form reachable without growing on page scroll. */
#auTable>.au-table-scroll{max-height:min(48dvh,520px)!important;overflow:auto!important;min-height:0;overscroll-behavior:contain}

/* The follow-up table needs room for its filters and actual client rows. */
.dashboard-follow-panel .table-wrap{min-height:340px;max-height:min(65dvh,520px)!important;overflow:auto!important}.dashboard-follow-panel .panel-body{min-width:0}@media(max-width:600px){.dashboard-follow-panel .table-wrap{min-height:260px}}

.dashboard-main-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.dashboard-maintenance-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-left:auto;padding-left:12px;border-left:1px solid var(--line)}@media(max-width:900px){.dashboard-maintenance-actions{margin-left:0;padding-left:0;border-left:0;flex-basis:100%}}

/* Visit preparation uses semantic columns, not rows of right-aligned actions. */
.toolbox-visit{display:grid;gap:16px;min-width:0}.visit-identity{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:var(--pale)}.visit-identity h3{margin:0 0 6px}.visit-identity p{margin:0;color:var(--muted)}.visit-counts{display:flex;gap:8px;flex-wrap:wrap}.visit-counts span{padding:6px 10px;background:var(--surface,#fff);border:1px solid var(--line);border-radius:8px;font-weight:600;white-space:nowrap}.visit-summary-grid{display:grid;grid-template-columns:minmax(220px,1fr) minmax(0,2fr);gap:16px}.visit-section{min-width:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface,#fff)}.visit-section>h4{margin:0;padding:12px 14px;background:var(--pale);border-bottom:1px solid var(--line);font-weight:700}.visit-contacts{padding:12px 14px;display:grid;gap:12px}.visit-contacts article{display:grid;gap:4px;overflow-wrap:anywhere}.visit-contacts small,.visit-contacts span{color:var(--muted)}.visit-empty{margin:0;padding:14px;color:var(--muted)}.visit-contacts>.visit-empty{padding:0}.visit-section .table-wrap{margin:0;border:0;border-radius:0}.visit-section .column-tools-bar{margin:0}.visit-table{width:100%;table-layout:fixed}.visit-table th,.visit-table td{text-align:left;vertical-align:middle;white-space:normal;overflow-wrap:anywhere}.visit-assets .visit-table th:first-child{width:43%}.visit-record-link{border:0;background:transparent;color:var(--blue);padding:2px 0;text-align:left;white-space:normal;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.visit-record-link:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.visit-status{display:inline-block;padding:4px 8px;border-radius:6px;background:var(--pale);color:var(--ink)}@media(max-width:800px){.visit-summary-grid{grid-template-columns:1fr}.visit-identity{align-items:flex-start;flex-direction:column}.visit-assets .visit-table{min-width:650px}}

.toolbox-alert-groups{display:grid;gap:16px}.alert-summary-table th:nth-child(2){width:38%}.alert-summary-table th:last-child{width:130px}
.template-editor-form{width:100%;max-width:none;margin-top:16px;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.template-editor-form label{display:grid;gap:7px;min-width:0;font-weight:600}.template-editor-form .wide{grid-column:1/-1}.template-editor-form textarea{min-height:130px;resize:vertical}
@media(max-width:700px){.template-editor-form{grid-template-columns:1fr}.alert-summary-table{min-width:650px}}
.template-editor-form>.ui-model-actions{display:flex;justify-content:flex-end;width:100%}
/* Largeurs explicites selon le contenu attendu, sans modifier les valeurs. */
#settingsForm #companyLanguage{width:100%;max-width:28ch}
#settingsForm input[name="companyPhone"]{width:100%;max-width:23ch}
#settingsForm input[name="companySiret"],#settingsForm input[name="companyVat"]{width:100%;max-width:25ch}
#settingsForm input[name="companyNaf"]{width:100%;max-width:13ch}
#settingsForm input[name="companyRcs"]{width:100%;max-width:35ch}
#settingsForm input[name="companyName"],#settingsForm input[name="companyContact"],#settingsForm input[name="companyEmail"]{width:100%;max-width:42ch}

/* Client replies keep a distinct, readable author cue in both themes. */
.thread-message.client-reply{background:#f0faf8;border-color:#afd9d2;border-left:4px solid #218577;color:#173b36}
.thread-message.client-reply header span,.thread-message.client-reply time{color:#426d65}
.dark-mode .thread-message.client-reply{background:#183b38;border-color:#39776e;border-left-color:#65d7bf;color:#e5faf5}
.dark-mode .thread-message.client-reply header span,.dark-mode .thread-message.client-reply time{color:#b1d9d0}

/* V677: centre the date and time on the entire clock, independently of its icon. */
.topbar .top-actions #globalClock{position:relative;justify-content:center;padding-inline:30px}
.topbar .top-actions #globalClock>span:first-child{position:absolute;left:10px;top:50%;transform:translateY(-50%)}
.topbar .top-actions #globalClock>span:last-child{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;width:100%}
