:root{--bg:#f4f7fb;--panel:#fff;--ink:#172033;--muted:#667085;--line:#e4e9f1;--primary:#116b8c;--primary2:#0a4f6c;--accent:#20a39e;--danger:#c9384a;--warning:#b7791f;--success:#15803d;--shadow:0 8px 28px rgba(25,48,72,.08)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--ink);background:var(--bg)}button,input,select,textarea{font:inherit}.app-shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.sidebar{background:#102b3a;color:white;padding:20px 14px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;gap:12px;align-items:center;padding:0 8px 22px;border-bottom:1px solid rgba(255,255,255,.12)}.brand-mark,.auth-logo{width:44px;height:44px;border-radius:13px;background:linear-gradient(135deg,var(--accent),#6dd5c9);display:grid;place-items:center;font-weight:800;color:#083342}.brand small{display:block;color:#b6cbd4;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}.sidebar nav{display:flex;flex-direction:column;gap:4px;margin-top:18px;overflow:auto}.nav-link{color:#c9d9e1;text-decoration:none;padding:10px 12px;border-radius:9px;display:flex;gap:11px;align-items:center;font-size:14px}.nav-link:hover,.nav-link.active{background:rgba(255,255,255,.1);color:white}.nav-link.active{box-shadow:inset 3px 0 var(--accent)}.sidebar-footer{margin-top:auto;border-top:1px solid rgba(255,255,255,.12);padding:16px 8px 0;display:flex;justify-content:space-between;align-items:center;color:#b6cbd4}.link-button{border:0;background:none;color:#f0c9ce;cursor:pointer}.main{min-width:0}.topbar{height:78px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:5}.topbar h1{font-size:20px;margin:0}.topbar p{font-size:12px;color:var(--muted);margin:4px 0 0}.content{padding:24px;max-width:1600px;margin:auto}.status-pill,.badge{border-radius:999px;padding:6px 10px;font-size:12px;background:#e8f7f2;color:#0d6848}.grid{display:grid;gap:18px}.metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.metric,.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.metric{padding:18px}.metric strong{font-size:28px;display:block;margin-top:9px}.metric small{color:var(--muted)}.card{padding:18px;margin-bottom:18px}.card h2{font-size:17px;margin:0 0 15px}.card-header{display:flex;justify-content:space-between;align-items:center;gap:12px}.two-col{grid-template-columns:minmax(300px,.8fr) minmax(500px,1.4fr)}.three-col{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.form-grid .wide{grid-column:1/-1}.stack{display:flex;flex-direction:column;gap:14px}label{font-size:12px;font-weight:650;color:#344054;display:flex;flex-direction:column;gap:6px}input,select,textarea{border:1px solid #cfd8e3;border-radius:8px;padding:10px 11px;background:white;color:var(--ink);width:100%}input[type=checkbox],input[type=radio]{width:18px;height:18px;min-width:18px;min-height:18px;padding:0;margin:0;flex:0 0 18px;accent-color:var(--primary);border-radius:4px}textarea{min-height:86px;resize:vertical}input:focus,select:focus,textarea:focus{outline:2px solid rgba(17,107,140,.15);border-color:var(--primary)}.btn{border:0;border-radius:8px;padding:10px 14px;font-weight:650;cursor:pointer;display:inline-flex;justify-content:center;align-items:center;gap:6px}.btn.primary{background:var(--primary);color:white}.btn.secondary{background:#eef3f7;color:#24455a}.btn.danger{background:#fae8eb;color:var(--danger)}.btn.success{background:#e6f6eb;color:var(--success)}.btn.small{padding:6px 9px;font-size:12px}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:14px}.toolbar input{max-width:320px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px}table{width:100%;border-collapse:collapse;font-size:13px;background:white}th,td{padding:11px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{background:#f8fafc;color:#475467;font-size:11px;text-transform:uppercase;letter-spacing:.04em;position:sticky;top:0}tr:last-child td{border-bottom:0}.muted{color:var(--muted)}.danger-text{color:var(--danger)}.warning-text{color:var(--warning)}.success-text{color:var(--success)}.form-error{color:var(--danger);font-size:13px;min-height:18px}.empty{padding:32px;text-align:center;color:var(--muted)}.toast{position:fixed;right:22px;bottom:22px;background:#172033;color:white;padding:13px 17px;border-radius:10px;box-shadow:var(--shadow);z-index:30}.auth-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(145deg,#eaf4f6,#f8fafc)}.auth-card,.setup-card{background:white;border:1px solid var(--line);border-radius:18px;box-shadow:0 20px 60px rgba(22,54,72,.14);padding:34px;width:min(430px,92vw)}.setup-card{width:min(760px,94vw)}.auth-card h1,.setup-card h1{margin:18px 0 6px}.auth-card p,.setup-card p{color:var(--muted);margin:0 0 24px}.mobile-menu{display:none;border:0;background:transparent;font-size:22px}.code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px}.section-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.section-tabs button{border:1px solid var(--line);background:white;border-radius:999px;padding:7px 12px;cursor:pointer}.section-tabs button.active{background:var(--primary);color:white;border-color:var(--primary)}[hidden]{display:none!important}@media(max-width:1050px){.metrics{grid-template-columns:repeat(2,1fr)}.two-col,.three-col{grid-template-columns:1fr}}@media(max-width:760px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;z-index:20;left:-270px;width:250px;transition:left .2s}.sidebar.open{left:0}.mobile-menu{display:block}.topbar{padding:0 16px}.content{padding:14px}.form-grid,.metrics{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}}
.pagination{display:flex;align-items:center;justify-content:center;gap:12px;padding:14px}.pagination button:disabled{opacity:.45;cursor:not-allowed}.actions-cell{white-space:nowrap}.modal-open{overflow:hidden}.modal-backdrop{position:fixed;inset:0;background:rgba(8,24,36,.58);z-index:100;display:grid;place-items:center;padding:20px}.modal-card{background:white;border-radius:14px;width:min(1180px,96vw);max-height:92vh;display:flex;flex-direction:column;box-shadow:0 30px 100px rgba(0,0,0,.28)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line)}.modal-header h2{margin:0}.modal-close{border:0;background:transparent;font-size:28px;cursor:pointer}.modal-body{padding:20px;overflow:auto}.detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.detail-item{padding:9px;background:#f8fafc;border:1px solid var(--line);border-radius:8px}.detail-item strong{display:block;font-size:11px;color:var(--muted);margin-bottom:4px}.order-banner{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;border-radius:10px;padding:12px;margin-bottom:15px;background:#eef6f8}.order-banner.blocked{background:#fdecef;border:1px solid #f4c5cc}.chip{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;background:#edf2f7;font-size:11px;margin:2px}.chip.selected{background:#dff5f0;color:#0d6848}.test-picker{border:1px solid var(--line);border-radius:10px;padding:12px}.test-search-results{max-height:280px;overflow:auto;margin-top:8px}.test-option{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px;border-bottom:1px solid var(--line)}.test-option:last-child{border-bottom:0}.test-option button{flex:none}.selected-tests{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}.discipline-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}.discipline-tabs button{border:1px solid var(--line);background:white;border-radius:999px;padding:5px 9px;cursor:pointer}.discipline-tabs button.active{background:var(--primary);color:white}.result-value{min-width:110px}.critical-row{background:#fff3f4}.blocked-text{color:var(--danger);font-weight:bold}.timeline{border-left:2px solid #dce4ed;margin-left:8px;padding-left:16px}.timeline-item{margin:0 0 14px}.timeline-item small{color:var(--muted)}.history-panel{margin-top:10px;border:1px solid var(--line);border-radius:9px;padding:10px;background:#fbfcfe}.history-panel canvas{width:100%;max-width:520px;height:160px}.billing-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.billing-summary>div{background:#f8fafc;padding:10px;border-radius:8px}.inline-actions{display:flex;gap:7px;flex-wrap:wrap}.subtabs{display:flex;gap:8px;margin-bottom:14px}.subtabs button{border:1px solid var(--line);background:white;padding:7px 11px;border-radius:8px;cursor:pointer}.subtabs button.active{background:var(--primary);color:white}@media(max-width:900px){.detail-grid,.billing-summary{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.detail-grid,.billing-summary{grid-template-columns:1fr}.modal-backdrop{padding:4px}.modal-card{width:100vw;max-height:100vh;border-radius:0}}

/* AIS LIS 2.2 */
.workflow-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.workflow-tabs a,.workflow-tabs button{padding:8px 12px;border:1px solid var(--line);border-radius:9px;background:white;text-decoration:none;color:var(--ink);cursor:pointer}.workflow-tabs .active{background:var(--primary);color:#fff;border-color:var(--primary)}.advanced-filters{display:grid;grid-template-columns:2fr repeat(5,minmax(120px,1fr)) auto auto;gap:8px;align-items:end;margin-bottom:14px}.advanced-filters label{font-size:11px}.queue-summary{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.queue-summary .chip strong{margin-left:5px}.select-col{width:34px}.preview-frame{width:100%;height:78vh;border:0}.column-chooser{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.column-chooser label{display:flex;flex-direction:row;align-items:center}.column-chooser input{width:auto}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.workspace-sticky{position:sticky;top:88px;z-index:3}.workflow-progress{min-width:160px}.progress-bar{height:7px;background:#e5ebf0;border-radius:999px;overflow:hidden;margin:4px 0}.progress-bar span{display:block;height:100%;background:var(--primary)}.result-editor-table input,.result-editor-table textarea{min-width:120px}.result-editor-table textarea{min-height:46px}.report-state.final{color:var(--success);font-weight:700}.report-state.provisional{color:var(--warning);font-weight:700}.payload-viewer{white-space:pre-wrap;word-break:break-word;background:#0e1c26;color:#d7e7ef;padding:14px;border-radius:9px;max-height:55vh;overflow:auto;font:12px Consolas,monospace}.connection-card{border:1px solid var(--line);border-radius:10px;padding:12px;background:#fbfcfe}.connection-card .connection-head{display:flex;justify-content:space-between;gap:10px}.qc-chart-wrap{border:1px solid var(--line);border-radius:10px;padding:10px;background:#fff}.qc-chart-wrap canvas{width:100%;height:330px}.print-toolbar{display:flex;gap:8px;flex-wrap:wrap}.admin-section-note{padding:10px;border-left:4px solid var(--primary);background:#eef6f8;margin-bottom:14px}.pill-count{background:#edf2f7;border-radius:999px;padding:2px 7px;font-size:11px}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px;background:#98a2b3}.status-dot.ok{background:#16a34a}.status-dot.error{background:#dc2626}.status-dot.wait{background:#d97706}@media(max-width:1250px){.advanced-filters{grid-template-columns:repeat(4,1fr)}.advanced-filters input:first-child{grid-column:span 2}}@media(max-width:760px){.advanced-filters{grid-template-columns:1fr}.advanced-filters input:first-child{grid-column:auto}.column-chooser{grid-template-columns:1fr}}
@media print{.sidebar,.topbar,.toolbar,.advanced-filters,.btn,.section-tabs,.subtabs,.pagination{display:none!important}.app-shell{display:block}.content{padding:0}.card{box-shadow:none;border:0}}

/* AIS LIS 2.3 - connexion et contexte de sécurité */
.auth-page-rich{background:radial-gradient(circle at 10% 15%,rgba(32,163,158,.18),transparent 34%),linear-gradient(135deg,#0e2b3a 0,#164a5e 48%,#edf5f7 48%,#f8fafc 100%);padding:24px}.login-shell{width:min(1040px,96vw);display:grid;grid-template-columns:1.2fr .8fr;gap:42px;align-items:center}.login-intro{color:white;padding:36px}.brand-large{display:flex;align-items:center;gap:14px}.brand-large strong{display:block;font-size:22px}.brand-large span{display:block;color:#b9d3dd;font-size:12px;margin-top:3px}.login-intro h1{font-size:38px;line-height:1.15;max-width:650px;margin:44px 0 16px}.login-intro>p{color:#d4e5eb;max-width:620px;font-size:16px;line-height:1.6}.login-features{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:30px}.login-features div{padding:14px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.07);border-radius:12px}.login-features strong,.login-features span{display:block}.login-features span{font-size:11px;color:#cce0e7;margin-top:6px;line-height:1.45}.login-card{width:100%;padding:30px}.login-card-head{display:flex;align-items:center;gap:12px;margin-bottom:24px}.login-card-head h2{margin:0;font-size:24px}.login-card-head p{margin:4px 0 0}.mobile-logo{display:none}.password-field{display:flex;position:relative}.password-field input{padding-right:78px}.password-field button{position:absolute;right:6px;top:6px;bottom:6px;border:0;background:#eef3f7;border-radius:6px;color:#24455a;cursor:pointer;font-size:11px}.remember-line{display:flex;flex-direction:row;align-items:center;font-weight:500}.remember-line input{width:auto}.login-submit{width:100%;min-height:44px}.security-note{margin-top:22px;border-top:1px solid var(--line);padding-top:16px}.security-note strong,.security-note span{display:block}.security-note span{font-size:11px;color:var(--muted);margin-top:5px;line-height:1.45}.login-version{display:block;text-align:center;color:#98a2b3;margin-top:20px}@media(max-width:850px){.auth-page-rich{background:linear-gradient(145deg,#eaf4f6,#f8fafc)}.login-shell{grid-template-columns:1fr;width:min(460px,96vw)}.login-intro{display:none}.mobile-logo{display:grid}}
.access-denied{display:flex;align-items:center;gap:22px;max-width:760px;margin:60px auto;padding:34px}.access-denied-icon{width:100px;height:100px;border-radius:24px;background:#fae8eb;color:var(--danger);display:grid;place-items:center;font-size:30px;font-weight:800;flex:none}.access-denied h2{font-size:24px;margin-bottom:8px}
.nav-group-title{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:#7fa0ae;padding:14px 12px 5px}.sidebar-footer>div{min-width:0}.sidebar-footer small,.sidebar-footer span{display:block;max-width:125px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-footer span{font-size:10px;color:#7fa0ae;margin-top:3px}.topbar-actions{display:flex;align-items:center;gap:12px}.scope-switcher{display:flex;flex-direction:row;align-items:center;gap:7px}.scope-switcher span{font-size:10px;color:var(--muted)}.scope-switcher select{padding:7px 28px 7px 9px;min-width:190px;font-size:11px}.topbar-title{min-width:0}@media(max-width:760px){.scope-switcher span{display:none}.scope-switcher select{min-width:125px;max-width:160px}.topbar-actions .status-pill{display:none}}
.qms-tabs{position:sticky;top:86px;z-index:4;background:var(--bg);padding:5px 0}.advanced-filters.compact{grid-template-columns:2fr 1fr 120px auto}.check-row{flex-direction:row;align-items:center}.check-row input{width:auto}@media(max-width:760px){.advanced-filters.compact{grid-template-columns:1fr}.access-denied{flex-direction:column;text-align:center}}
.metric-link{text-decoration:none;color:inherit;transition:transform .15s ease,box-shadow .15s ease}.metric-link:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(17,42,67,.12)}
.readiness-row{display:flex;justify-content:space-between;align-items:center;padding:11px 12px;margin:6px 0;border:1px solid var(--border,#dce4ed);border-radius:9px;text-decoration:none;color:inherit}.readiness-row.ready{border-left:4px solid #28835c}.readiness-row.missing{border-left:4px solid #c17a17;background:#fff8eb}.nested-card{margin-top:18px}.checkbox-label{display:flex!important;align-items:center;justify-content:space-between}.page-intro{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}.page-intro h2{margin:0 0 4px}.info-box{padding:10px 12px;background:#eef6fa;border:1px solid #cfe2ec;border-radius:8px;margin-bottom:12px;color:#28556a}

/* AIS LIS 2.3 - diagnostic visible au lieu d'une page blanche */
.loading-state{padding:32px;text-align:center;color:#475467}.loading-state strong{display:block;color:#172033;font-size:1.05rem;margin-bottom:8px}.page-error-banner{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 16px;margin-bottom:16px;border:1px solid #f1aeb5;border-radius:10px;background:#fff1f2;color:#842029}.page-error-banner span{flex:1;min-width:220px}.page-error-banner button{border:0;border-radius:7px;padding:7px 12px;background:#842029;color:#fff;cursor:pointer}.status-pill.error{background:#fff1f2;color:#842029;border-color:#f1aeb5}

/* AIS LIS 2.4 - ergonomie validation, pièces jointes, étiquettes et écrans mobiles */
.warning-box{border-color:#f2c879;background:#fff8e7;color:#7a4a00}.workspace-actionbar{position:sticky;bottom:10px;z-index:8;margin:18px 0 4px;padding:14px 16px;border:1px solid #bcd7e2;border-radius:12px;background:rgba(255,255,255,.97);box-shadow:0 12px 34px rgba(17,42,67,.18);display:flex;justify-content:space-between;align-items:center;gap:16px}.workspace-actionbar strong,.workspace-actionbar small{display:block}.workspace-actionbar small{color:var(--muted);margin-top:3px}.result-entry-line{display:flex;align-items:flex-start;gap:7px}.result-entry-line .result-value-input{flex:1;min-width:150px}.attachment-inline{flex:none}.discipline-result-section{scroll-margin-top:160px}.order-banner{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.order-banner>div:first-child{min-width:240px}.order-banner.blocked{border-left:4px solid var(--danger);padding-left:12px}.patient-file-actions{justify-content:flex-end;margin-bottom:10px}.attachment-layout{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(420px,1.3fr);gap:16px;min-height:60vh}.attachment-upload{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#f8fafc;margin-bottom:12px}.attachment-upload label:first-child{grid-column:1/-1}.attachment-upload button{align-self:end}.attachment-list{display:flex;flex-direction:column;gap:8px;max-height:52vh;overflow:auto}.attachment-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:9px;align-items:center;padding:9px;border:1px solid var(--line);border-radius:9px;background:#fff}.attachment-icon{width:38px;height:38px;border-radius:8px;background:#e8f2f7;display:grid;place-items:center;font-size:10px;font-weight:800;color:var(--primary)}.attachment-info{min-width:0}.attachment-info strong,.attachment-info small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-info small{color:var(--muted);font-size:10px;margin-top:2px}.attachment-preview{border:1px solid var(--line);border-radius:10px;min-height:52vh;background:#f8fafc;overflow:hidden}.attachment-preview iframe{width:100%;height:60vh;border:0;background:white}.attachment-preview-placeholder{height:100%;min-height:52vh;display:grid;place-items:center;text-align:center;color:var(--muted);padding:28px}.label-template-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.label-editor-layout{display:grid;grid-template-columns:minmax(560px,1.4fr) minmax(300px,.8fr);gap:18px}.label-fields-editor{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.label-field-row{display:grid;grid-template-columns:1.35fr 1.2fr repeat(5,minmax(70px,.7fr)) 1fr 1fr 1fr auto auto;gap:6px;align-items:end;padding:9px;border:1px solid var(--line);border-radius:9px;background:#f8fafc}.label-field-row label{font-size:10px}.label-field-row input,.label-field-row select{padding:7px}.label-visual-preview{position:relative;border:1px solid #344054;background:white;box-shadow:0 6px 18px rgba(0,0,0,.12);max-width:100%;overflow:hidden}.label-preview-field{position:absolute;border:1px dashed #8aa3b2;overflow:hidden;line-height:1.05;padding:1px}.label-preview-field.barcode{font-family:monospace;letter-spacing:1px;background:#f3f4f6}.form-grid.compact{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end}.sidebar-backdrop{display:none}.modal-card{max-width:min(1180px,96vw)}
@media(max-width:1250px){.label-template-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.label-editor-layout{grid-template-columns:1fr}.label-field-row{grid-template-columns:repeat(6,minmax(90px,1fr))}.attachment-layout{grid-template-columns:1fr 1fr}}
@media(max-width:900px){.workspace-actionbar{align-items:flex-start;flex-direction:column}.workspace-actionbar .inline-actions{width:100%}.workspace-actionbar .btn{flex:1}.order-banner{flex-direction:column}.order-banner .inline-actions{width:100%}.attachment-layout{grid-template-columns:1fr}.attachment-preview iframe{height:50vh}.label-template-grid{grid-template-columns:1fr}.form-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){body.sidebar-open{overflow:hidden}.sidebar-backdrop{display:block;position:fixed;inset:0;background:rgba(9,28,39,.5);z-index:19}.topbar{height:auto;min-height:70px;gap:8px}.topbar-title h1{font-size:16px}.topbar-title p{font-size:10px}.content{padding:10px}.card{padding:12px;border-radius:11px}.card-header,.page-intro{align-items:flex-start;flex-direction:column}.print-toolbar,.inline-actions{width:100%}.print-toolbar .btn,.order-banner .btn{flex:1;min-width:120px}.workspace-sticky{position:static}.workspace-actionbar{bottom:4px;margin-left:-4px;margin-right:-4px}.result-editor-table{min-width:820px}.result-entry-line{min-width:210px}.attachment-upload{grid-template-columns:1fr}.attachment-row{grid-template-columns:36px minmax(0,1fr)}.attachment-row>.inline-actions{grid-column:1/-1}.attachment-row>.inline-actions .btn{flex:1}.attachment-preview{min-height:42vh}.attachment-preview-placeholder{min-height:42vh}.label-field-row{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.compact{grid-template-columns:1fr}.modal-card{width:100vw;max-width:100vw;height:100vh;max-height:100vh;border-radius:0}.modal-body{max-height:calc(100vh - 62px);overflow:auto}.actions-cell{white-space:normal}.actions-cell .btn{margin:2px 0}.advanced-filters .btn{width:100%}}
@media print{.workspace-actionbar,.attachment-inline,.sidebar-backdrop{display:none!important}}

/* AIS LIS 2.5 — tri accessible des tableaux */
.table-sort{display:flex;align-items:center;gap:.35rem;width:100%;padding:0;border:0;background:transparent;color:inherit;font:inherit;font-weight:700;text-align:left;cursor:pointer}
.table-sort:hover,.table-sort:focus-visible{color:#0c7b83;outline:none}
.sort-indicator{margin-left:auto;font-size:.72rem;opacity:.65}
th[aria-sort="ascending"] .sort-indicator,th[aria-sort="descending"] .sort-indicator{opacity:1;color:#0c7b83}
.patient-id-help{display:flex;align-items:center;gap:.55rem;padding:.65rem .75rem;border:1px solid #d7e1e8;border-radius:.65rem;background:#f8fafc}
.patient-id-help input{width:auto}
.duplicate-patient-card{display:grid;gap:.75rem}
.duplicate-patient-summary{padding:1rem;border-radius:.75rem;background:#f3f7fa;border:1px solid #dbe5ec}
.schema-warning{margin:.75rem 0;padding:.75rem 1rem;border-radius:.65rem;background:#fff8e5;border:1px solid #f1d58a;color:#6f5100}

/* AIS LIS 2.8 — tableaux de bord, calculs, reporting et audit */
.dashboard-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:18px 0}.chart-card{min-height:330px}.modern-chart{min-height:250px;display:flex;align-items:center;justify-content:center}.modern-chart svg{width:100%;height:auto;overflow:visible}.chart-grid line{stroke:#dce5ec;stroke-width:1}.chart-grid text,.chart-labels text{fill:#667085;font-size:11px}.chart-area{fill:rgba(17,107,140,.12)}.chart-line{fill:none;stroke:var(--primary);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.modern-chart circle{fill:#fff;stroke:var(--primary);stroke-width:3}.chart-empty{width:100%;min-height:220px;display:grid;place-items:center}.horizontal-bars{width:100%;display:flex;flex-direction:column;gap:13px}.bar-row{display:grid;gap:5px}.bar-meta{display:flex;justify-content:space-between;gap:12px;font-size:12px}.bar-track{height:12px;border-radius:999px;background:#e9eff4;overflow:hidden}.bar-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary),var(--accent));min-width:2px}.settings-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.sequence-form{display:flex;flex-direction:column;gap:12px}.calculation-input-row{display:grid;grid-template-columns:110px 1fr 1fr 1fr auto;gap:8px;align-items:end;padding:10px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}.calculated-result-box{padding:9px 10px;border:1px dashed #7cb7c6;border-radius:8px;background:#edf8fa;color:#174f60;font-weight:700}.audit-json{max-height:360px;overflow:auto;padding:12px;border-radius:9px;background:#101828;color:#d0d5dd;font:12px/1.5 Consolas,monospace;white-space:pre-wrap}.report-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.report-summary-card{padding:14px;border:1px solid var(--line);border-radius:12px;background:#fff}.report-summary-card strong{display:block;font-size:22px;margin-top:6px}.specialty-validation-card{border-left:4px solid var(--primary)}
@media(max-width:1000px){.dashboard-chart-grid{grid-template-columns:1fr}.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.calculation-input-row{grid-template-columns:1fr 1fr}.report-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.settings-grid,.report-summary-grid{grid-template-columns:1fr}.calculation-input-row{grid-template-columns:1fr}.dashboard-chart-grid{gap:10px}.chart-card{min-height:290px}}

/* AIS LIS 2.9 — règles métier, dictionnaire et recherche patient */
.formula-guide{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px;padding:10px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}.formula-help code,.formula-help pre{font-family:Consolas,monospace}.formula-help pre{padding:12px;border-radius:9px;background:#101828;color:#e6edf3;overflow:auto;white-space:pre-wrap}.rule-builder-row{display:grid;grid-template-columns:1.15fr 1.5fr 1fr 1fr 1fr auto auto;gap:8px;align-items:end;padding:10px;margin-bottom:8px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}.rule-builder-row label{min-width:0}.patient-search-field{position:relative}.patient-search-results{position:absolute;z-index:18;top:68px;left:0;right:0;max-height:340px;overflow:auto;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:0 16px 35px rgba(20,40,60,.16)}.patient-search-results:empty{display:none}.patient-search-results button{display:flex;flex-direction:column;align-items:flex-start;width:100%;padding:10px 12px;border:0;border-bottom:1px solid var(--line);background:#fff;text-align:left;cursor:pointer}.patient-search-results button:hover{background:#eef7f9}.patient-search-results button span{margin-top:3px;color:var(--muted);font-size:11px}.selected-patient{margin-top:7px}.patient-selected-card{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px;border:1px solid #bcd7e2;border-radius:9px;background:#eef8fa}.patient-selected-card span{display:block;margin-top:3px;color:var(--muted);font-size:11px}.result-comment-dictionary{margin:7px 0 5px;font-size:12px;padding:7px}.billing-report-filters{grid-template-columns:repeat(4,minmax(150px,1fr));}.metric.compact{box-shadow:none;margin-bottom:8px}.metric.compact strong{font-size:20px}
@media(max-width:1150px){.rule-builder-row{grid-template-columns:repeat(3,minmax(0,1fr))}.billing-report-filters{grid-template-columns:repeat(3,minmax(140px,1fr))}}
@media(max-width:760px){.rule-builder-row,.billing-report-filters{grid-template-columns:1fr}.patient-search-results{position:static;max-height:260px}.patient-selected-card{align-items:flex-start;flex-direction:column}}

/* AIS LIS 3.0 — formules, échantillons et identité visuelle */
.brand-logo-image{width:46px;height:46px;object-fit:contain;border-radius:10px;background:#fff;padding:3px;border:1px solid rgba(255,255,255,.25)}
.formula-guide{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 14px}.formula-validation{padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}.formula-validation.success{border-color:#9bd7ae;background:#eefaf2}.formula-validation.error{border-color:#efb2bb;background:#fff3f5}.formula-validation.info{border-color:#b8d8e3;background:#f1f9fb}.formula-help pre{white-space:pre-wrap;background:#101828;color:#eef4f7;padding:12px;border-radius:9px;overflow:auto}.formula-help code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.calculation-input-row{grid-template-columns:minmax(100px,.7fr) minmax(145px,1fr) minmax(190px,1.35fr) minmax(105px,.7fr) minmax(95px,.65fr) auto auto auto}.nested-card{padding:12px!important;box-shadow:none;background:#fbfcfe}.check-row{flex-direction:row;align-items:center;gap:7px}.check-row input{width:auto}
.specimen-result-section{border:1px solid var(--line);border-radius:12px;margin:14px 0;overflow:hidden;background:#fff}.specimen-result-header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:13px 15px;background:#eef6f8;border-bottom:1px solid var(--line)}.specimen-result-header h4{margin:2px 0 0;font-size:15px}.eyebrow{display:block;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.table-line{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.chip.compact{padding:2px 6px;margin:0;font-size:10px}
.branding-preview{border:1px dashed #abc6d1;border-radius:12px;background:#f8fafc;padding:14px;min-height:260px}.report-preview-card{--report-accent:#116b8c;background:#fff;border:1px solid #d7e0e8;box-shadow:0 8px 24px rgba(25,48,72,.08);padding:18px;min-height:230px}.report-preview-card .preview-head{display:flex;justify-content:space-between;gap:14px;border-bottom:3px solid var(--report-accent);padding-bottom:10px}.report-preview-card .preview-logo{width:64px;height:48px;object-fit:contain}.report-preview-card .preview-title{font-weight:800;color:var(--report-accent);font-size:18px}.report-preview-card .preview-body{margin-top:12px;display:grid;gap:8px}.report-preview-card.template-classic{font-family:Georgia,serif}.report-preview-card.template-classic .preview-head{border:2px solid var(--report-accent);padding:10px}.report-preview-card.template-compact{font-size:11px;padding:10px}.report-preview-card.template-compact .preview-head{padding-bottom:5px;border-bottom-width:1px}.branding-logo-preview{max-width:180px;max-height:90px;object-fit:contain;border:1px solid var(--line);border-radius:8px;padding:5px;background:#fff}
@media(max-width:1250px){.calculation-input-row{grid-template-columns:repeat(4,minmax(120px,1fr))}.calculation-input-row .btn{align-self:end}}
@media(max-width:850px){.calculation-input-row{grid-template-columns:repeat(2,minmax(0,1fr))}.specimen-result-header{flex-direction:column}.branding-preview{min-height:auto}}
@media(max-width:560px){.calculation-input-row{grid-template-columns:1fr}.formula-guide{align-items:stretch}.formula-guide .btn{width:100%}.report-preview-card .preview-head{flex-direction:column}.specimen-result-section .table-wrap{border-left:0;border-right:0;border-radius:0}}

/* AIS LIS 3.1 — comptes rendus avancés et catalogue ANAM/HN */
.report-preview-card.template-advanced .preview-head{background:linear-gradient(135deg,var(--report-accent),#12324a);color:#fff;border:0;border-radius:9px;padding:13px}.report-preview-card.template-advanced .preview-title{color:#fff}.preview-section{margin:5px 0;padding:5px 0;color:var(--report-accent)}.preview-section.section-band{padding:6px 8px;background:var(--report-accent);color:#fff;border-radius:5px}.preview-section.section-boxed{padding:7px;border:1px solid var(--report-accent);border-radius:5px}.preview-attachment{padding:8px;border:1px solid var(--line);border-radius:7px;background:#fbfcfe}.placeholder-curve{height:72px;margin-top:5px;border-radius:5px;background:linear-gradient(135deg,#edf6f9,#dcecf2);display:grid;place-items:center;color:var(--muted);font-size:11px}.report-preview-card.density-compact td,.report-preview-card.density-compact th{padding:4px}.report-preview-card.density-spacious td,.report-preview-card.density-spacious th{padding:10px}.attachment-upload{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.attachment-upload button{grid-column:1/-1}@media(max-width:760px){.attachment-upload{grid-template-columns:1fr}.attachment-upload button{grid-column:auto}}

/* AIS LIS 3.2 — navigation desktop rétractable et interface modernisée. */
.app-shell,.sidebar,.nav-link,.brand,.content{transition:all .2s ease}.sidebar-collapse{position:absolute;right:-14px;top:88px;width:28px;height:38px;border:1px solid var(--line);border-radius:0 8px 8px 0;background:#fff;color:#24455a;box-shadow:0 4px 12px rgba(17,42,67,.14);cursor:pointer;z-index:7}.app-shell.sidebar-collapsed{grid-template-columns:78px 1fr}.app-shell.sidebar-collapsed .sidebar{padding-left:9px;padding-right:9px}.app-shell.sidebar-collapsed .brand{justify-content:center;padding-left:0;padding-right:0}.app-shell.sidebar-collapsed .brand-text,.app-shell.sidebar-collapsed .nav-text,.app-shell.sidebar-collapsed .sidebar-footer-text,.app-shell.sidebar-collapsed #logoutButton{display:none}.app-shell.sidebar-collapsed .nav-link{justify-content:center;padding:11px 8px}.app-shell.sidebar-collapsed .nav-icon{font-size:18px}.app-shell.sidebar-collapsed .sidebar-collapse{transform:rotate(180deg)}.specialty-workflow{margin-top:14px}.workflow-progress{height:9px;border-radius:999px;background:#e6edf3;overflow:hidden;margin:10px 0 14px}.workflow-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--primary),var(--accent));border-radius:999px}.specialty-task-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.specialty-task{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:11px;background:#fff}.specialty-task.status-completed{border-color:#a9dfbd;background:#f3fbf5}.specialty-task.status-in_progress{border-color:#9dcadd;background:#f3f9fc}.specialty-task.status-blocked{border-color:#edafb7;background:#fff6f7}.task-order{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#eaf1f5;color:var(--primary);font-weight:800}.task-main small,.task-meta{display:block;color:var(--muted);font-size:11px;margin-top:3px}.task-actions{display:flex;gap:5px;flex-wrap:wrap}.specialty-fields-form{padding-top:10px}.card,.metric{backdrop-filter:saturate(1.05)}.topbar{box-shadow:0 2px 12px rgba(17,42,67,.04)}
@media(max-width:760px){.sidebar-collapse{display:none}.app-shell.sidebar-collapsed{grid-template-columns:1fr}.specialty-task{grid-template-columns:34px 1fr}.task-actions{grid-column:1/-1}.task-actions .btn{flex:1}}


/* AIS LIS 3.3 — validation robuste, garde et identité professionnelle */
.guard-review-card{border-left:5px solid #c15b16}.guard-pending-text{display:block;color:#9a4b14;font-weight:700}.guard-release-active{display:block;margin-top:.35rem;color:#8b4b12;font-weight:700}.guard-release-badge{background:#fff2d8;color:#8a4800;border:1px solid #efb458}.guard-days{display:flex;gap:.7rem;flex-wrap:wrap;border:1px solid var(--border,#d8e1e9);border-radius:8px;padding:.75rem}.guard-days label{display:flex;align-items:center;gap:.3rem}.user-assets-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.user-assets-grid section{border:1px solid var(--border,#d8e1e9);border-radius:10px;padding:1rem;background:#fbfcfe}.user-asset-preview{display:block;width:100%;height:130px;object-fit:contain;background:white;border:1px dashed #c8d1dc;border-radius:7px;margin:.5rem 0}.empty.compact{padding:.8rem}.badge.success{background:#e8f7ef;color:#176b3a}.btn.warning{background:#d97706;color:#fff;border-color:#b85f00}@media(max-width:700px){.user-assets-grid{grid-template-columns:1fr}}

/* AIS LIS 3.4 — catalogue structuré et module de tâches laboratoire */
.catalog-editor{display:grid;gap:1rem}.catalog-editor-summary{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;padding:.8rem 1rem;border:1px solid var(--border);border-radius:12px;background:var(--surface-soft)}.catalog-editor-summary small{margin-left:auto;color:var(--muted)}.catalog-editor-tabs{margin:0}.catalog-structure-panel{display:grid;gap:1rem}.component-card-list{display:grid;gap:.75rem}.component-card{border:1px solid var(--border);border-radius:12px;background:var(--surface)}.component-card summary{padding:.85rem 1rem;cursor:pointer;display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.component-card .component-editor{padding:1rem;border-top:1px solid var(--border)}.component-card.add-card{border-style:dashed}.component-editor .checkbox-label{min-height:44px}.selected-tests .chip button{border:0;background:transparent;font-weight:800;cursor:pointer;margin-left:.35rem}.info-box[hidden],[data-test-result-field][hidden],[data-test-component-field][hidden],[data-general-result][hidden]{display:none!important}
.laboratory-tasks-intro{align-items:flex-start}.metric-grid.compact{grid-template-columns:repeat(6,minmax(110px,1fr));margin-bottom:1rem}.metric-grid.compact .metric-card{min-height:auto;padding:1rem}.metric-card.warning{border-left:4px solid #d97706}.metric-card.danger{border-left:4px solid #dc2626}.metric-card.success{border-left:4px solid #059669}.task-command-center{margin-bottom:1rem}.wide-filter{width:100%;margin-bottom:.75rem}.laboratory-task-workspace{align-items:start}.case-focus{position:sticky;top:76px}.case-focus .eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;color:var(--muted);font-weight:700}.specialty-data-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1rem}.specialty-data-grid .wide{grid-column:1/-1}.section-mini-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.5rem}.section-mini-header h3{margin:0}.task-command-center tr:has(.badge.danger){background:color-mix(in srgb,#dc2626 5%,transparent)}
@media(max-width:1100px){.metric-grid.compact{grid-template-columns:repeat(3,1fr)}.case-focus{position:static}}@media(max-width:700px){.metric-grid.compact{grid-template-columns:repeat(2,1fr)}.specialty-data-grid{grid-template-columns:1fr}.specialty-data-grid .wide{grid-column:auto}.catalog-editor-summary small{margin-left:0;width:100%}}

/* AIS LIS 3.5 — espace MicroBio optimisé */
.microbio-command-center{min-height:420px}.microbio-view-switch{display:flex;gap:6px;margin:0 0 12px}.microbio-view-switch button,.microbio-tabs button{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:999px;padding:8px 13px;cursor:pointer;font-weight:700}.microbio-view-switch button.active,.microbio-tabs button.active{background:var(--primary);border-color:var(--primary);color:#fff}.microbio-modal{width:min(1540px,98vw);max-width:min(1540px,98vw);height:min(940px,96vh);max-height:96vh}.microbio-modal .modal-body{height:calc(96vh - 64px);max-height:calc(96vh - 64px);overflow:auto;padding:0}.microbio-workspace{padding:18px 20px 28px}.microbio-case-header{position:sticky;top:0;z-index:9;display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:12px 4px 14px;background:rgba(255,255,255,.98);border-bottom:1px solid var(--line)}.microbio-case-header h2{margin:3px 0 5px}.microbio-case-header p{margin:0;color:var(--muted)}.microbio-status-block{display:flex;flex-direction:column;align-items:flex-end;gap:6px;min-width:180px}.microbio-status-block small{color:var(--muted)}.microbio-progress{display:grid;grid-template-columns:180px 1fr;gap:14px;align-items:center;margin:14px 0}.microbio-progress strong,.microbio-progress small{display:block}.microbio-progress small{color:var(--muted);margin-top:2px}.microbio-actionbar{position:sticky;top:84px;z-index:8;display:flex;gap:8px;flex-wrap:wrap;padding:10px;border:1px solid #c9dbe5;border-radius:12px;background:rgba(247,251,253,.98);box-shadow:0 5px 16px rgba(20,50,70,.08)}.microbio-tabs{position:sticky;top:146px;z-index:7;display:flex;gap:6px;flex-wrap:wrap;margin:14px 0;padding:8px 0;background:rgba(255,255,255,.98)}.microbio-tab-panel{min-height:300px}.microbio-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.microbio-summary-grid label{display:flex;flex-direction:column;gap:5px}.microbio-summary-grid .wide{grid-column:1/-1}.microbio-summary-grid textarea{min-height:82px}.microbio-tab-panel>.specialty-workflow{border:0;box-shadow:none;padding:0}.microbio-tab-panel .table-wrap{max-height:58vh;overflow:auto}.microbio-tab-panel .table-wrap thead{position:sticky;top:0;z-index:2}.microbio-tab-panel .section-mini-header{position:sticky;top:196px;z-index:5;background:#fff;padding:8px 0}.empty-state.compact{min-height:260px}.eyebrow{text-transform:uppercase;letter-spacing:.09em;font-size:.72rem;color:var(--muted);font-weight:800}.btn.danger{background:#fff;border-color:#efb2b2;color:#a61b1b}.btn.danger:hover{background:#fff0f0}.badge.info{background:#e7f4fb;color:#0f607c}.badge.warning{background:#fff4d8;color:#855900}.badge.danger{background:#ffe4e7;color:#a61b1b}.badge.success{background:#def7e8;color:#126b39}
@media(max-width:900px){.microbio-modal{width:100vw;max-width:100vw;height:100vh;max-height:100vh;border-radius:0}.microbio-modal .modal-body{height:calc(100vh - 62px);max-height:calc(100vh - 62px)}.microbio-case-header{flex-direction:column}.microbio-status-block{align-items:flex-start}.microbio-actionbar,.microbio-tabs{position:static}.microbio-progress,.microbio-summary-grid{grid-template-columns:1fr}.microbio-summary-grid .wide{grid-column:auto}.metric-grid.compact{grid-template-columns:repeat(2,1fr)}}

/* AIS LIS 3.5 — champs spécialisés configurables et navigation de paillasse */
.specialty-fields-form.form-grid{grid-template-columns:repeat(6,minmax(0,1fr));align-items:start}.specialty-field{min-width:0}.specialty-field.width-third{grid-column:span 2}.specialty-field.width-half{grid-column:span 3}.specialty-field.width-wide,.specialty-field.width-full{grid-column:1/-1}.specialty-field textarea{min-height:90px}.microbio-command-center tbody tr{cursor:default}.microbio-command-center .actions-cell{white-space:nowrap}.microbio-tabs{scrollbar-width:thin}.microbio-tabs button{white-space:nowrap}.genetics-workspace .microbio-tab-panel{padding-bottom:18px}.microbio-workspace .alert.info{border-left:4px solid var(--primary)}
@media(max-width:900px){.specialty-fields-form.form-grid{grid-template-columns:1fr}.specialty-field.width-third,.specialty-field.width-half,.specialty-field.width-wide,.specialty-field.width-full{grid-column:auto}.microbio-tabs{overflow-x:auto;flex-wrap:nowrap;padding-bottom:10px}}

/* AIS LIS 3.5 — revue biologique des résultats spécialisés. */
.specialty-biological-review{margin:1rem 0;padding:1rem;border:1px solid var(--border,#d9e2ec);border-radius:16px;background:var(--surface-soft,#f8fafc)}
.specialty-review-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.85rem}
.specialty-review-card{display:flex;flex-direction:column;gap:.55rem;padding:1rem;border:1px solid var(--border,#d9e2ec);border-radius:14px;background:var(--surface,#fff);box-shadow:0 4px 14px rgba(15,23,42,.04)}
.specialty-review-card h4,.specialty-review-card p{margin:0}.specialty-review-card .badge{align-self:flex-start}.specialty-review-card .btn{align-self:flex-start;margin-top:auto}
.specialty-snapshot-detail{display:grid;gap:1rem}.specialty-snapshot-detail .nested-card{padding:1rem;border:1px solid var(--border,#d9e2ec);border-radius:14px;background:var(--surface,#fff)}
@media (max-width:720px){.specialty-review-grid{grid-template-columns:1fr}}

/* AIS LIS 3.6 — revue spécialisée, modales protégées et traçabilité supervisée */
.modal-workspace{width:min(1560px,98vw);max-width:min(1560px,98vw);height:min(950px,96vh);max-height:96vh}.modal-workspace .modal-body{height:calc(96vh - 64px);max-height:calc(96vh - 64px);overflow:auto;padding:0}.modal-trace{width:min(1040px,96vw)}.modal-supervision{width:min(760px,96vw)}.modal-navigation{position:sticky;top:0;z-index:12;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;background:#f8fbfd;border-bottom:1px solid var(--line)}.modal-navigation .navigation-group{display:flex;gap:7px;flex-wrap:wrap}.trace-summary-card{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:18px 0;padding:14px 16px;border:1px solid var(--line);border-radius:13px;background:#f8fafc}.trace-summary-card h3,.trace-summary-card p{margin:0}.trace-timeline{display:grid;gap:0;padding:4px 0}.trace-entry{position:relative;display:grid;grid-template-columns:24px 1fr;gap:10px;padding:0 0 20px}.trace-entry:before{content:"";position:absolute;left:10px;top:19px;bottom:0;width:2px;background:#dce5ed}.trace-entry:last-child:before{display:none}.trace-dot{position:relative;z-index:1;width:20px;height:20px;border:5px solid #d9eef5;border-radius:50%;background:var(--primary);margin-top:2px}.trace-entry-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.trace-entry p{margin:5px 0}.trace-entry small{color:var(--muted)}.status-old,.status-new{display:inline-block;padding:3px 7px;border-radius:999px;background:#eef2f6;font-size:12px}.status-new{background:#e3f6ec;color:#16653b;font-weight:700}.trace-metadata{margin-top:7px}.trace-metadata summary{cursor:pointer;color:var(--primary);font-size:12px}.trace-metadata pre{max-height:260px;overflow:auto;white-space:pre-wrap;background:#101827;color:#d6e2ef;padding:10px;border-radius:8px;font-size:11px}.specialty-biological-review{border-left:5px solid var(--primary);box-shadow:0 8px 24px rgba(17,107,140,.08)}.specialty-review-card:has(.badge.info){border-color:#a8d7e7}.catalog-prescribable-yes{color:var(--success);font-weight:700}.catalog-prescribable-no{color:var(--muted)}.bundle-billing-note{border-left:4px solid #8b5cf6;background:#f6f3ff;padding:10px 12px;border-radius:8px}.destructive-note{border-left:4px solid var(--danger);background:#fff4f5;padding:10px 12px;border-radius:8px}
@media(max-width:900px){.modal-workspace{width:100vw;max-width:100vw;height:100vh;max-height:100vh;border-radius:0}.modal-workspace .modal-body{height:calc(100vh - 62px);max-height:calc(100vh - 62px)}.modal-navigation,.trace-summary-card{align-items:stretch;flex-direction:column}}
/* AIS LIS 3.7 — avancement lisible, relance directe et valeurs de référence */
.workflow-progress{min-width:210px;display:grid;gap:5px}.workflow-progress .progress-main{display:flex;align-items:center;justify-content:space-between;gap:8px}.workflow-progress .progress-main strong{font-size:15px}.workflow-progress .progress-main span{font-size:11px;color:var(--muted)}.workflow-progress .progress-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.workflow-progress .progress-steps small{display:flex;flex-direction:column;padding:3px 5px;border-radius:6px;background:#f3f6f8;color:var(--muted);line-height:1.15}.workflow-progress .progress-steps b{color:var(--ink)}.workflow-progress-complete .progress-bar span{background:var(--success)}.workflow-progress-partial .progress-bar span{background:#1b8fb5}.workflow-progress-started .progress-bar span{background:var(--warning)}.reanalysis-direct-badge{display:inline-flex;margin-top:5px;padding:3px 8px;border-radius:999px;background:#fff3d5;color:#8b5200;font-weight:700;font-size:11px}.result-unit-reference{display:grid;gap:3px;min-width:145px}.result-unit-reference>span{font-size:11px}.secondary-result{color:#245b73;font-weight:600}.abnormal-flag{display:inline-flex;width:max-content;padding:2px 7px;border-radius:999px;background:#fde7e7;color:#a61b1b;font-weight:800}.result-editor-table tr:has(.reanalysis-direct-badge){background:#fffdf4}.specialty-report-page{break-before:page;page-break-before:always}.pdf-report-page{display:block;width:100%;max-width:100%;height:auto;break-after:page;page-break-after:always}.pdf-report-page:last-child{break-after:auto;page-break-after:auto}.billing-preview-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.billing-preview-live{border:1px solid var(--line);border-radius:10px;background:#fff;padding:14px;min-height:240px}.catalog-tree-member{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:8px;align-items:center}.catalog-tree-member .tree-branch{font-size:20px;color:#7a91a2}.mapping-code-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}@media(max-width:760px){.workflow-progress{min-width:180px}.workflow-progress .progress-steps{grid-template-columns:1fr}.billing-preview-options,.mapping-code-grid{grid-template-columns:1fr}}
.abnormal-bold{font-weight:900;color:#9f1d1d}.secondary-unit-line{margin-top:3px;font-size:10px;color:#355d73}.specialty-report-page{break-before:page;page-break-before:always}.report-attachments .pdf-report-pages{display:block}.pdf-conversion-warning{border:1px solid #e5b94c;background:#fff9e8;padding:12px;border-radius:8px}
/* AIS LIS 3.8 — éditeur hiérarchique des groupes d'affichage */
.catalog-display-groups{margin:1rem 0;padding:1rem;border:1px solid var(--border,#dbe4ec);border-radius:14px;background:linear-gradient(180deg,#fbfdff,#f6f9fc)}
.display-group-list{display:grid;gap:.65rem;margin:.75rem 0 1rem}
.display-group-row{display:grid;grid-template-columns:minmax(110px,.7fr) minmax(180px,1.4fr) minmax(170px,1fr) 90px 90px auto;gap:.6rem;align-items:end;padding:.7rem;border:1px solid var(--border,#dde6ee);border-radius:10px;background:#fff}
.display-group-row label{margin:0}
.catalog-members-editor{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border,#dce6ee)}
.catalog-member-table table{min-width:880px}
.catalog-member-table input[type="number"]{width:86px}
.catalog-member-table select{min-width:190px}
.catalog-member-table td{vertical-align:middle}
.result-display-parent-title{margin:.85rem 0 .35rem;padding:.45rem .7rem;border-left:4px solid var(--primary,#0b7a91);background:color-mix(in srgb,var(--primary,#0b7a91) 8%,white);font-size:.96rem;font-weight:800}
.result-display-group-title{margin:.55rem 0 .3rem;padding:.3rem .6rem;color:#38536a;font-weight:700;border-bottom:1px solid #dbe4ec}
.report-display-parent-row th{padding:.65rem .5rem!important;background:#eef5f8!important;color:#17384a!important;font-size:1rem!important;text-transform:none!important}
.report-display-group-row th{padding:.45rem .5rem!important;background:#f7fafc!important;color:#39596c!important;text-transform:none!important}
@media(max-width:1100px){.display-group-row{grid-template-columns:1fr 1fr 1fr}.display-group-row .inline-actions{grid-column:1/-1}}
@media(max-width:720px){.display-group-row{grid-template-columns:1fr}.display-group-row .inline-actions{grid-column:auto}.catalog-display-groups{padding:.7rem}}
.pdf-render-note{margin:8px 0;padding:7px 9px;border-left:4px solid #d79b00;background:#fff8df;color:#6f4b00;font-size:10px}.pdf-separate-link{display:inline-block;margin-top:7px;font-weight:700;color:#0b6b8a;text-decoration:underline}.pdf-conversion-warning{break-inside:avoid;page-break-inside:avoid}

/* AIS LIS 3.9 — plages de référence structurées */
.reference-ranges-panel{margin:14px 0 2px;padding-top:12px;border-top:1px solid var(--line)}
.reference-ranges-panel h4{margin:0 0 4px}.reference-range-list{display:grid;gap:8px}
.reference-range-card{border:1px solid var(--line);border-radius:10px;background:#fbfcfd;padding:8px}
.reference-range-card>summary{cursor:pointer;font-weight:700}.reference-range-editor{margin-top:10px}
.reference-range-title{display:flex;align-items:center;justify-content:space-between;gap:8px}
.age-control{display:grid;grid-template-columns:minmax(0,1fr) 100px;gap:6px}.age-control input,.age-control select{width:100%}
@media(max-width:760px){.age-control{grid-template-columns:1fr}.reference-range-title{align-items:flex-start;flex-direction:column}}

/* AIS LIS 4.0 — interface clinique moderne, lisible et dynamique */
:root{
  --bg:#f3f7fb;--bg-deep:#eaf1f7;--panel:#ffffff;--panel-soft:#f8fbfd;
  --ink:#132238;--muted:#66768a;--line:#dfe8f0;--primary:#0b6b88;--primary2:#084e68;
  --accent:#1fb8a6;--danger:#c8354d;--warning:#b87312;--success:#137a4b;
  --shadow-sm:0 4px 14px rgba(22,48,72,.06);--shadow:0 12px 34px rgba(22,48,72,.09);
  --shadow-lg:0 24px 70px rgba(11,42,62,.16);--radius:16px;--radius-lg:22px;
}
html{scroll-behavior:smooth;background:var(--bg)}
body{background:radial-gradient(circle at 84% -10%,rgba(31,184,166,.13),transparent 26rem),linear-gradient(180deg,#f7fafc 0,var(--bg) 36%,var(--bg-deep) 100%);letter-spacing:.002em}
::selection{background:rgba(31,184,166,.24);color:#082e3f}
.skip-link{position:fixed;left:14px;top:-60px;z-index:999;background:#fff;color:var(--primary2);padding:10px 14px;border-radius:10px;box-shadow:var(--shadow-lg);font-weight:750;text-decoration:none}.skip-link:focus{top:14px}
.app-shell{grid-template-columns:268px minmax(0,1fr);transition:grid-template-columns .22s ease}
.sidebar{padding:18px 13px;background:linear-gradient(180deg,#0c2e3e 0,#102b3a 48%,#0a2432 100%);box-shadow:10px 0 35px rgba(10,36,50,.12);isolation:isolate}
.sidebar:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 20% 0,rgba(31,184,166,.18),transparent 20rem);z-index:-1}
.brand{padding:4px 8px 19px}.brand-mark,.auth-logo{border-radius:15px;background:linear-gradient(135deg,#2cd1bd,#8ce2d9);box-shadow:0 10px 25px rgba(31,184,166,.25);letter-spacing:.04em}.brand-text strong{font-size:15px;letter-spacing:.025em}.brand small{color:#b8ced8}
.sidebar nav{gap:3px;margin-top:14px;padding-right:2px}.nav-group-title{margin:15px 10px 6px;color:#7fa2b1;font-size:10px;font-weight:800;letter-spacing:.11em;text-transform:uppercase}
.nav-link{position:relative;min-height:42px;padding:8px 10px;border:1px solid transparent;border-radius:12px;color:#c9d9e1;transition:background .16s ease,color .16s ease,transform .16s ease,border-color .16s ease}.nav-link:hover{transform:translateX(2px);background:rgba(255,255,255,.075);border-color:rgba(255,255,255,.06)}.nav-link.active{background:linear-gradient(90deg,rgba(31,184,166,.22),rgba(255,255,255,.075));border-color:rgba(97,226,208,.16);box-shadow:none}.nav-link.active:before{content:"";position:absolute;left:-1px;top:9px;bottom:9px;width:3px;border-radius:8px;background:#53ddca;box-shadow:0 0 14px rgba(83,221,202,.7)}
.nav-icon{display:grid;place-items:center;flex:0 0 29px;width:29px;height:29px;border-radius:9px;background:rgba(255,255,255,.07);font-size:15px;color:#d9f8f3}.nav-link.active .nav-icon{background:rgba(83,221,202,.18);color:#8bf0e2}
.sidebar-collapse{border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.055);color:#cbe0e8;border-radius:10px;transition:.16s ease}.sidebar-collapse:hover{background:rgba(255,255,255,.11);color:#fff}.sidebar-footer{gap:8px}.link-button{padding:7px 8px;border-radius:8px}.link-button:hover{background:rgba(255,255,255,.08)}
.topbar{height:84px;padding:0 30px;background:rgba(255,255,255,.86);backdrop-filter:saturate(150%) blur(14px);border-bottom-color:rgba(209,222,232,.78);box-shadow:0 7px 24px rgba(24,54,75,.035)}.topbar h1{font-size:21px;letter-spacing:-.018em}.topbar p{font-size:12px}.topbar-actions{display:flex;align-items:center;gap:12px}.scope-switcher{min-width:210px}.scope-switcher select{padding:8px 32px 8px 10px;background-color:rgba(247,250,252,.92)}
.status-pill{position:relative;padding:7px 12px 7px 27px;background:#eaf8f2;color:#176847;font-weight:750;border:1px solid #d3eee2}.status-pill:before{content:"";position:absolute;left:10px;top:50%;width:8px;height:8px;border-radius:50%;background:#20a66a;transform:translateY(-50%);box-shadow:0 0 0 4px rgba(32,166,106,.1)}.status-pill.busy{background:#eaf4fb;color:#245d78;border-color:#d5e7f2}.status-pill.busy:before{background:#2586ad;animation:aisPulse 1s infinite}.status-pill.error{background:#fff0f2;color:#9c2940;border-color:#f3d2d8}.status-pill.error:before{background:#cc4055}@keyframes aisPulse{50%{opacity:.35;transform:translateY(-50%) scale(.72)}}
.content{padding:28px 30px 42px;max-width:1680px;animation:aisContentIn .28s ease both}@keyframes aisContentIn{from{opacity:.25;transform:translateY(5px)}to{opacity:1;transform:none}}
.page-intro{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 22px;padding:20px 22px;border:1px solid rgba(210,225,235,.82);border-radius:var(--radius-lg);background:linear-gradient(120deg,rgba(255,255,255,.95),rgba(245,251,252,.92));box-shadow:var(--shadow-sm)}.page-intro h2{margin:0 0 6px;font-size:21px;letter-spacing:-.02em}.page-intro p{margin:0;color:var(--muted)}
.card,.metric{border-color:rgba(216,228,237,.9);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:box-shadow .18s ease,border-color .18s ease,transform .18s ease}.card{padding:20px}.card:hover{border-color:#cfdee8;box-shadow:var(--shadow)}.metric{position:relative;overflow:hidden;padding:19px 20px;background:linear-gradient(145deg,#fff,#fbfdfe)}.metric:after{content:"";position:absolute;right:-24px;top:-24px;width:86px;height:86px;border-radius:50%;background:radial-gradient(circle,rgba(31,184,166,.13),transparent 66%)}.metric-link{text-decoration:none;color:inherit}.metric-link:hover{transform:translateY(-2px);border-color:#bedce4;box-shadow:0 16px 34px rgba(18,77,99,.12)}.metric strong{font-size:29px;letter-spacing:-.035em}.metric small{font-weight:650}.card h2{font-size:17px;letter-spacing:-.012em}.card-header p{margin:4px 0 0}
input,select,textarea{min-height:40px;border-color:#cad7e2;border-radius:10px;background:#fff;box-shadow:inset 0 1px 2px rgba(17,45,64,.025);transition:border-color .14s ease,box-shadow .14s ease,background .14s ease}textarea{min-height:92px}input:hover,select:hover,textarea:hover{border-color:#abc4d2}input:focus,select:focus,textarea:focus{outline:0;border-color:#2a94ae;box-shadow:0 0 0 4px rgba(42,148,174,.12);background:#fff}label{font-size:11.5px;letter-spacing:.005em}
.btn{min-height:39px;border-radius:10px;padding:9px 14px;box-shadow:0 1px 2px rgba(18,47,67,.04);transition:transform .13s ease,box-shadow .13s ease,filter .13s ease}.btn:hover{transform:translateY(-1px);box-shadow:0 7px 17px rgba(18,47,67,.1)}.btn:active{transform:translateY(0);box-shadow:none}.btn.primary{background:linear-gradient(135deg,var(--primary),#168ba7);box-shadow:0 7px 17px rgba(11,107,136,.2)}.btn.primary:hover{filter:brightness(1.04)}.btn.secondary{background:#eff5f8;color:#244c61;border:1px solid #dce8ee}.btn.danger{border:1px solid #f1d5da}.btn.success{border:1px solid #cee8d8}.btn:disabled{transform:none;box-shadow:none;cursor:not-allowed}
.table-wrap{border-radius:13px;border-color:#dbe6ee;box-shadow:0 2px 8px rgba(18,48,69,.025)}table{font-size:12.8px}th{padding:12px;background:#f6f9fb;color:#526477;border-bottom-color:#dbe6ee}td{padding:12px;border-bottom-color:#e7edf2}tbody tr{transition:background .11s ease}tbody tr:hover{background:#f7fbfc}.table-sort{color:inherit}.actions-cell .btn{min-height:32px}
.modal-backdrop{background:rgba(5,25,38,.62);backdrop-filter:blur(4px)}.modal-card{border:1px solid rgba(255,255,255,.3);border-radius:20px;box-shadow:var(--shadow-lg)}.modal-header{padding:18px 22px;background:linear-gradient(180deg,#fff,#fbfdfe);border-radius:20px 20px 0 0}.modal-body{padding:22px}.modal-close{width:38px;height:38px;border-radius:10px;color:#63788a}.modal-close:hover{background:#edf3f6;color:#203f50}
.toast{right:24px;bottom:24px;max-width:min(460px,calc(100vw - 32px));padding:14px 18px 14px 45px;border-radius:13px;background:#17384a;color:#fff;box-shadow:0 18px 45px rgba(9,34,48,.25);font-weight:650;animation:aisToastIn .2s ease}.toast:before{content:"✓";position:absolute;left:17px;font-weight:900}.toast.error{background:#9d2a3f}.toast.error:before{content:"!"}.toast.success{background:#17384a}@keyframes aisToastIn{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
.empty{border-radius:11px;background:linear-gradient(135deg,#fbfdfe,#f6f9fb)}.badge,.chip{border:1px solid rgba(205,222,232,.72)}.billing-rule-highlight{padding:12px 14px;border:1px solid #bfe5dc;border-radius:12px;background:linear-gradient(135deg,#effbf7,#f8fdfb);color:#17624f}.billing-rule-highlight input{width:auto;min-height:auto}.info-box,.page-error-banner{border-radius:13px}.progress-bar{height:8px;border-radius:999px;background:#e5edf2;overflow:hidden}.progress-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#168ba7,#23baa8);transition:width .25s ease}
.auth-page{background:radial-gradient(circle at 20% 10%,rgba(31,184,166,.2),transparent 23rem),linear-gradient(145deg,#eaf4f6,#f8fafc)}.auth-card,.setup-card{border-radius:24px;border-color:rgba(206,222,232,.9);box-shadow:0 28px 85px rgba(22,54,72,.17)}
.sidebar-backdrop{position:fixed;inset:0;background:rgba(7,27,39,.45);backdrop-filter:blur(2px);z-index:19}
@media(max-width:1050px){.topbar{padding:0 20px}.content{padding:22px 20px 36px}.page-intro{align-items:flex-start}}
@media(max-width:760px){.sidebar{width:270px;left:-290px}.topbar{height:auto;min-height:76px;padding:12px 14px;gap:10px}.topbar-actions{gap:7px}.scope-switcher{min-width:0}.scope-switcher span{display:none}.status-pill{font-size:0;width:34px;height:34px;padding:0}.status-pill:before{left:12px}.content{padding:14px 12px 28px}.page-intro{padding:16px;flex-direction:column}.page-intro .btn{width:100%}.card{padding:15px;border-radius:14px}.metric{padding:16px}.toast{right:16px;bottom:16px}.toolbar{align-items:stretch;flex-direction:column}.toolbar input{max-width:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* AIS LIS 4.3 — administration fluide des workflows spécialisés. */
.specialty-admin-grid{align-items:start}.specialty-admin-editor{position:sticky;top:84px;max-height:calc(100vh - 100px);overflow:auto}.specialty-report-settings{border:1px solid var(--line);border-radius:10px;padding:12px;background:#f8fbfc}.specialty-report-settings legend{font-weight:800;color:var(--ink);padding:0 6px}.specialty-admin-list{display:grid;gap:7px;margin:6px 0 13px;padding-left:0;list-style:none}.specialty-admin-row{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fbfdfe}.specialty-admin-row .form-actions{flex-wrap:nowrap}.specialty-admin-row small{color:var(--muted)}.specialty-field .danger-text,.specialty-field .success-text{display:block;margin-top:4px}.specialty-table-block{overflow-x:auto}@media(max-width:1100px){.specialty-admin-editor{position:static;max-height:none}.specialty-admin-row{flex-direction:column}.specialty-admin-row .form-actions{width:100%}}

/* AIS LIS 5.0 — affichage fluidique, navigation rapide et administration structurée. */
.sidebar-search-wrap{display:flex;align-items:center;gap:7px;margin:0 5px 8px;padding:7px 9px;border:1px solid rgba(255,255,255,.09);border-radius:11px;background:rgba(255,255,255,.055);color:#9fc3cf}.sidebar-search-wrap input{width:100%;min-width:0;min-height:28px;padding:0;border:0;background:transparent;color:#eefbff;box-shadow:none;font-size:12px}.sidebar-search-wrap input::placeholder{color:#89aab6}.sidebar-search-wrap input:focus{box-shadow:none}.sidebar-collapsed .sidebar-search-wrap{display:none}
.topbar-command{display:flex;align-items:center;gap:8px;min-height:38px;padding:7px 10px;border:1px solid #d8e5ec;border-radius:10px;background:#f7fafc;color:#3e596a;cursor:pointer}.topbar-command:hover{background:#eef5f8}.topbar-command kbd,.command-result kbd{padding:2px 6px;border:1px solid #d8e2e8;border-bottom-width:2px;border-radius:6px;background:#fff;color:#607381;font:10px/1.2 system-ui}.topbar-command>span:nth-child(2){font-size:12px;font-weight:700}
.command-open{overflow:hidden}.command-palette{position:fixed;inset:0;z-index:200}.command-palette-backdrop{position:absolute;inset:0;background:rgba(4,25,38,.58);backdrop-filter:blur(5px)}.command-palette-card{position:relative;width:min(720px,calc(100vw - 30px));max-height:min(680px,calc(100vh - 60px));margin:7vh auto 0;overflow:hidden;border:1px solid rgba(255,255,255,.45);border-radius:20px;background:#fff;box-shadow:0 30px 100px rgba(3,27,42,.32)}.command-palette-search{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:15px 17px;border-bottom:1px solid #e2ebf0}.command-palette-search input{min-height:42px;border:0;box-shadow:none;font-size:17px}.command-palette-search input:focus{box-shadow:none}.command-palette-search button{border:0;background:#edf3f6;border-radius:7px;padding:6px 8px;color:#587081}.command-palette-results{max-height:500px;overflow:auto;padding:8px}.command-result{display:grid;width:100%;grid-template-columns:72px 1fr auto;align-items:center;gap:12px;padding:11px 12px;border:0;border-radius:11px;background:transparent;text-align:left;cursor:pointer}.command-result:hover,.command-result.selected{background:#edf8f7}.command-result strong,.command-result small{display:block}.command-result small{margin-top:2px;color:var(--muted)}.command-kind{display:inline-flex;justify-content:center;padding:4px 7px;border-radius:7px;background:#edf3f6;color:#4e6878;font-size:10px;font-weight:800;text-transform:uppercase}.command-palette-help{padding:10px 16px;border-top:1px solid #e2ebf0;background:#f8fafb;color:#708391;font-size:11px}
.eyebrow{display:block;margin-bottom:5px;color:#168b88;font-size:10px;font-weight:850;letter-spacing:.13em;text-transform:uppercase}.intro-actions{display:flex;gap:8px;flex-wrap:wrap}.administration-intro{margin-bottom:14px}.admin-navigation-card{position:sticky;top:84px;z-index:12;margin-bottom:18px;border:1px solid #dbe7ee;border-radius:15px;background:rgba(255,255,255,.94);box-shadow:0 10px 28px rgba(20,57,76,.07);backdrop-filter:blur(12px)}.admin-navigation-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 13px 5px}.admin-navigation-head>small{color:var(--muted)}.admin-section-search{display:flex;align-items:center;gap:7px;flex:1;max-width:560px}.admin-section-search input{width:100%;min-height:36px}.admin-navigation-card .section-tabs{margin:0;padding:7px 11px 11px;display:flex;flex-wrap:nowrap;gap:6px;overflow-x:auto;scrollbar-width:thin}.admin-navigation-card .section-tabs button,.admin-navigation-card .section-tabs a{flex:0 0 auto;white-space:nowrap}.admin-navigation-card .section-tabs button[hidden]{display:none}.tab-panel{animation:aisContentIn .2s ease both}.admin-governance-grid{grid-template-columns:minmax(300px,.72fr) minmax(0,1.28fr)}.sticky-editor{position:sticky;top:190px;align-self:start}.security-scan{font-weight:700}.security-scan.status-clean{color:#17734e}.security-scan.status-infected{color:#a3213b}.security-scan.status-pending{color:#8a6717}.security-scan.status-error{color:#a54b20}.security-scan.status-not_configured{color:#687987}
@media(min-width:1200px){.content{width:100%;max-width:none}.grid.two-col:not(.specialty-admin-grid):not(.admin-governance-grid){grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.form-grid>.wide{grid-column:1/-1}}
@media(max-width:980px){.topbar-command>span:nth-child(2),.topbar-command kbd{display:none}.admin-navigation-card{top:76px}.admin-navigation-head{align-items:stretch;flex-direction:column}.admin-navigation-head>small{display:none}.admin-section-search{max-width:none}.admin-governance-grid{grid-template-columns:1fr}.sticky-editor{position:static}}
@media(max-width:760px){.topbar-command{min-width:38px;padding:7px;justify-content:center}.command-palette-card{margin-top:10px;max-height:calc(100vh - 20px)}.command-result{grid-template-columns:58px 1fr auto}.admin-navigation-card{top:0;position:relative}.intro-actions{width:100%}.intro-actions .btn{flex:1}.sidebar-search-wrap{margin-top:3px}}

/* AIS LIS 5.1 — thèmes et sélecteur de catalogue fluide */
html[data-theme="clinical"]{color-scheme:light}
html[data-theme="emerald"]{color-scheme:light;--bg:#f1f7f4;--panel:#ffffff;--ink:#183229;--muted:#60766e;--line:#dbe8e2;--primary:#16745d;--primary2:#0d5846;--accent:#43b99b;--danger:#c43d50;--warning:#a76d18;--success:#13724b;--shadow:0 8px 28px rgba(20,79,62,.09)}
html[data-theme="emerald"] .sidebar{background:#123b31}
html[data-theme="emerald"] .brand-mark,html[data-theme="emerald"] .auth-logo{background:linear-gradient(135deg,#43b99b,#9de2cf)}
html[data-theme="graphite"]{color-scheme:dark;--bg:#111820;--panel:#19232e;--ink:#eef4f7;--muted:#a7b5bf;--line:#31404d;--primary:#59b8d8;--primary2:#7ac9e2;--accent:#62d6c8;--danger:#ff7f91;--warning:#f1bd62;--success:#64d391;--shadow:0 10px 30px rgba(0,0,0,.28)}
html[data-theme="graphite"] .sidebar{background:#0b1117}
html[data-theme="graphite"] .topbar,html[data-theme="graphite"] .card,html[data-theme="graphite"] .metric,html[data-theme="graphite"] .modal-card,html[data-theme="graphite"] table,html[data-theme="graphite"] input,html[data-theme="graphite"] select,html[data-theme="graphite"] textarea,html[data-theme="graphite"] .section-tabs button,html[data-theme="graphite"] .subtabs button,html[data-theme="graphite"] .workflow-tabs a,html[data-theme="graphite"] .workflow-tabs button{background:var(--panel);color:var(--ink);border-color:var(--line)}
html[data-theme="graphite"] th{background:#202c37;color:#c4d0d8}
html[data-theme="graphite"] .btn.secondary{background:#293744;color:#dce8ee}
html[data-theme="graphite"] .btn.danger{background:#472530;color:#ffb4c0}
html[data-theme="graphite"] .btn.success{background:#183d2d;color:#8be4ae}
html[data-theme="graphite"] .detail-item,html[data-theme="graphite"] .billing-summary>div,html[data-theme="graphite"] .history-panel,html[data-theme="graphite"] .order-banner,html[data-theme="graphite"] .trace-summary-card,html[data-theme="graphite"] .modal-navigation,html[data-theme="graphite"] .reference-range-card{background:#202c37;border-color:var(--line)}
html[data-theme="graphite"] .status-pill,html[data-theme="graphite"] .badge{background:#1c4039;color:#a2ead4}
html[data-theme="graphite"] .chip{background:#2b3945;color:#dce7ec}
html[data-theme="graphite"] .chip.selected{background:#17463d;color:#a8f1dd}
html[data-theme="graphite"] .command-palette-card,html[data-theme="graphite"] .command-result{background:#18232d;color:var(--ink);border-color:var(--line)}
.theme-switcher,.scope-switcher{display:flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--panel);border-radius:10px;padding:5px 8px;color:var(--muted);font-size:11px}.theme-switcher select,.scope-switcher select{border:0;padding:4px 24px 4px 5px;background:transparent;color:var(--ink);min-width:104px}.theme-switcher select:focus,.scope-switcher select:focus{outline:0}.topbar-actions{display:flex;align-items:center;gap:9px}

.catalog-picker{border:1px solid var(--line);border-radius:16px;background:var(--panel);overflow:hidden}.catalog-picker-header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 9%,var(--panel)),var(--panel))}.catalog-picker-header h3{margin:2px 0 5px;font-size:18px}.catalog-picker-header p{margin:0;color:var(--muted);font-size:12px}.eyebrow{text-transform:uppercase;letter-spacing:.09em;font-size:10px;font-weight:800;color:var(--primary)}.catalog-selected-counter{display:grid;place-items:center;min-width:92px;padding:10px 14px;border-radius:13px;background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow)}.catalog-selected-counter strong{font-size:23px;color:var(--primary)}.catalog-selected-counter span{font-size:10px;color:var(--muted)}
.catalog-picker-layout{display:grid;grid-template-columns:210px minmax(0,1fr);min-height:455px}.catalog-disciplines{border-right:1px solid var(--line);background:color-mix(in srgb,var(--bg) 65%,var(--panel));padding:13px}.catalog-side-title{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:3px 8px 9px}.catalog-disciplines #disciplineTabs{display:grid;gap:4px}.catalog-disciplines button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;border:0;border-radius:9px;padding:9px 10px;background:transparent;color:var(--ink);text-align:left;cursor:pointer}.catalog-disciplines button span{font-size:12px;font-weight:700}.catalog-disciplines button small{font-size:9px;color:var(--muted)}.catalog-disciplines button:hover{background:color-mix(in srgb,var(--primary) 8%,transparent)}.catalog-disciplines button.active{background:var(--primary);color:#fff}.catalog-disciplines button.active small{color:rgba(255,255,255,.72)}
.catalog-browser{padding:16px;min-width:0}.catalog-searchbar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;border:1px solid var(--line);border-radius:12px;padding:0 10px;background:var(--panel)}.catalog-searchbar>span{font-size:20px;color:var(--primary)}.catalog-searchbar input{border:0;box-shadow:none;padding:12px 2px}.catalog-searchbar input:focus{outline:0}.catalog-clear{border:0;background:transparent;color:var(--muted);font-size:20px;cursor:pointer}.catalog-type-tabs{display:flex;gap:6px;margin:11px 0}.catalog-type-tabs button{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:999px;padding:6px 12px;font-size:11px;font-weight:700;cursor:pointer}.catalog-type-tabs button.active{background:var(--primary);border-color:var(--primary);color:#fff}.catalog-browser-status{display:flex;justify-content:space-between;gap:10px;align-items:center;margin:8px 2px 10px;color:var(--muted);font-size:10px}.catalog-result-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.catalog-card{position:relative;display:flex;flex-direction:column;align-items:stretch;min-height:145px;border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--panel);color:var(--ink);text-align:left;cursor:pointer;transition:.16s ease}.catalog-card:hover{border-color:var(--primary);transform:translateY(-1px);box-shadow:0 8px 20px color-mix(in srgb,var(--primary) 13%,transparent)}.catalog-card.selected{border-color:var(--success);background:color-mix(in srgb,var(--success) 7%,var(--panel))}.catalog-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.catalog-code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-weight:850;color:var(--primary)}.catalog-card>strong{margin:9px 0 4px;font-size:13px}.catalog-card p{margin:0 0 10px;color:var(--muted);font-size:10px;line-height:1.35}.catalog-type-badge{display:inline-flex;width:max-content;border-radius:999px;padding:3px 7px;font-size:9px;font-weight:800;background:#e8f1f7;color:#31566c}.catalog-type-badge.type-profile{background:#eee8fb;color:#6542a1}.catalog-type-badge.type-panel{background:#fff0d8;color:#87551a}.catalog-type-badge.type-test{background:#e4f5ef;color:#17654d}.catalog-billing{display:flex;justify-content:space-between;gap:8px;margin-top:auto;padding-top:7px;border-top:1px dashed var(--line);font-size:10px}.catalog-billing span{font-weight:750}.catalog-add-state{position:absolute;right:10px;bottom:8px;color:var(--primary);font-size:10px;font-weight:800}.catalog-card.selected .catalog-add-state{color:var(--success)}.catalog-pagination{text-align:center;padding-top:14px}.catalog-end{color:var(--muted);font-size:10px}.catalog-empty{grid-column:1/-1;display:grid;place-items:center;text-align:center;padding:50px 20px;color:var(--muted)}.catalog-empty>span{font-size:30px}.catalog-empty strong{color:var(--ink);margin-top:7px}.catalog-empty p{margin:4px 0}.catalog-card.skeleton{pointer-events:none}.catalog-card.skeleton span,.catalog-card.skeleton b,.catalog-card.skeleton i{display:block;border-radius:6px;background:linear-gradient(90deg,var(--line),color-mix(in srgb,var(--line) 45%,var(--panel)),var(--line));background-size:220% 100%;animation:catalogPulse 1.2s infinite}.catalog-card.skeleton span{height:14px;width:35%}.catalog-card.skeleton b{height:18px;width:76%;margin-top:20px}.catalog-card.skeleton i{height:11px;width:58%;margin-top:10px}@keyframes catalogPulse{to{background-position:-220% 0}}
.catalog-selection{border-top:1px solid var(--line);padding:14px 18px;background:color-mix(in srgb,var(--bg) 65%,var(--panel))}.catalog-selection-title{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:8px}.catalog-selection-title span{font-size:10px;color:var(--muted)}.catalog-selected-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:0}.catalog-selected-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px 9px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.catalog-selected-item>div{display:flex;flex-direction:column;min-width:0}.catalog-selected-item>div strong{font-size:10px;color:var(--primary)}.catalog-selected-item>div span{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.catalog-selected-item>button{border:0;background:transparent;color:var(--danger);font-size:18px;cursor:pointer}.catalog-empty-selection{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:10px;padding:13px;color:var(--muted);border:1px dashed var(--line);border-radius:10px}.catalog-empty-selection>span{font-size:20px}.catalog-empty-selection div{display:flex;flex-direction:column}.catalog-empty-selection strong{font-size:11px;color:var(--ink)}.catalog-empty-selection small{font-size:9px}.legacy-panel-picker{margin-top:10px;padding:10px 12px;border:1px dashed var(--line);border-radius:10px}.legacy-panel-picker summary{cursor:pointer;color:var(--muted);font-size:11px;font-weight:700}
@media(max-width:980px){.catalog-picker-layout{grid-template-columns:1fr}.catalog-disciplines{border-right:0;border-bottom:1px solid var(--line);overflow-x:auto}.catalog-disciplines #disciplineTabs{display:flex;min-width:max-content}.catalog-disciplines button{width:auto;min-width:130px}.catalog-result-grid{grid-template-columns:1fr 1fr}.theme-switcher span{display:none}}
@media(max-width:680px){.catalog-picker-header{align-items:flex-start}.catalog-selected-counter{min-width:70px}.catalog-browser{padding:12px}.catalog-result-grid,.catalog-selected-list{grid-template-columns:1fr}.catalog-help{display:none}.topbar-actions .theme-switcher{max-width:130px}.theme-switcher select{min-width:88px}.topbar-command span:nth-child(2),.topbar-command kbd{display:none}}

/* AIS LIS 5.2 — prescription, files analytiques et statistiques */
.provider-search-field{position:relative}.provider-search-results{position:absolute;z-index:22;top:68px;left:0;right:0;max-height:320px;overflow:auto;border:1px solid var(--line);border-radius:10px;background:var(--panel);box-shadow:0 16px 35px rgba(20,40,60,.16)}.provider-search-results:empty{display:none}.provider-search-results button{display:flex;flex-direction:column;align-items:flex-start;width:100%;padding:10px 12px;border:0;border-bottom:1px solid var(--line);background:var(--panel);color:var(--ink);text-align:left;cursor:pointer}.provider-search-results button:hover{background:color-mix(in srgb,var(--primary) 8%,var(--panel))}.provider-search-results button span{margin-top:3px;color:var(--muted);font-size:11px}.selected-provider{margin-top:7px}.provider-selected-card{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px;border:1px solid color-mix(in srgb,var(--primary) 35%,var(--line));border-radius:9px;background:color-mix(in srgb,var(--primary) 7%,var(--panel))}.provider-selected-card span{display:block;margin-top:3px;color:var(--muted);font-size:11px}
.workflow-filter-grid{grid-template-columns:repeat(5,minmax(145px,1fr));}.workflow-filter-grid .workflow-discipline-select{min-width:190px}.workflow-compact-list{display:flex;flex-direction:column;gap:2px;max-width:190px;line-height:1.25}.workflow-compact-list .table-line{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.workflow-more-count{display:inline-flex;width:max-content;padding:1px 6px;border-radius:999px;background:color-mix(in srgb,var(--primary) 10%,var(--panel));color:var(--primary);font-size:10px;font-weight:800}.workflow-progress.workflow-progress-compact{display:grid!important;gap:4px!important;height:auto!important;min-width:120px!important;max-width:150px!important;margin:0!important;overflow:visible!important;background:transparent!important;border-radius:0!important}.workflow-progress-compact .progress-main{display:flex;align-items:center;justify-content:space-between}.workflow-progress-compact .progress-main strong{font-size:15px}.workflow-progress-compact .progress-main span{font-size:10px;color:var(--muted)}.workflow-progress-compact .progress-bar{height:6px;margin:0;background:color-mix(in srgb,var(--line) 80%,var(--panel));border-radius:999px;overflow:hidden}.workflow-progress-compact .progress-bar span{display:block;height:100%;border-radius:999px;background:var(--primary)}.workflow-progress-complete .progress-bar span{background:var(--success)}.workflow-progress-started .progress-bar span{background:var(--warning)}.workflow-progress-compact .progress-caption{display:flex;justify-content:space-between;gap:5px;color:var(--muted);font-size:9px;font-weight:700}.workflow-progress-compact .guard-pending-text{font-size:9px}.workspace-result-filter{position:sticky;top:152px;z-index:2;display:flex;align-items:end;justify-content:space-between;gap:14px;margin:12px 0;padding:10px 12px;border:1px solid color-mix(in srgb,var(--primary) 25%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--primary) 5%,var(--panel));box-shadow:0 4px 14px rgba(20,40,60,.06)}.workspace-result-filter label{min-width:min(440px,100%)}.specimen-result-section[hidden]{display:none!important}#wfTable .table-wrap{border-radius:10px}#wfTable table{width:100%;min-width:1020px;table-layout:fixed}#wfTable th,#wfTable td{padding:8px 7px;vertical-align:top;word-break:normal}#wfTable th:last-child,#wfTable td:last-child{width:215px}#wfTable .actions-cell{white-space:normal}#wfTable .actions-cell .btn{margin:2px 1px}.result-editor-table{min-width:1080px}
.statistics-page{overflow:visible}.statistics-filter-grid{display:grid;grid-template-columns:repeat(3,minmax(170px,1fr));gap:10px;margin-bottom:14px}.statistics-pickers{display:grid;grid-template-columns:repeat(3,minmax(250px,1fr));gap:12px}.stat-picker{position:relative;padding:11px;border:1px solid var(--line);border-radius:11px;background:color-mix(in srgb,var(--bg) 55%,var(--panel))}.stat-picker>label{display:block;margin-bottom:6px;font-weight:800;font-size:11px}.stat-picker-results{position:absolute;z-index:20;left:10px;right:10px;top:72px;max-height:280px;overflow:auto;border:1px solid var(--line);border-radius:10px;background:var(--panel);box-shadow:0 16px 35px rgba(20,40,60,.14)}.stat-picker-results:empty{display:none}.stat-picker-results button{display:flex;justify-content:space-between;gap:10px;align-items:center;width:100%;padding:9px 10px;border:0;border-bottom:1px solid var(--line);background:var(--panel);color:var(--ink);text-align:left;cursor:pointer}.stat-picker-results button:hover{background:color-mix(in srgb,var(--primary) 8%,var(--panel))}.stat-picker-results button span{display:flex;flex-direction:column}.stat-picker-results button small{margin-top:2px;color:var(--muted)}.stat-picker-results button b{font-size:18px;color:var(--primary)}.stat-picker-selected{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}.stat-picker-selected .chip{max-width:100%}.stat-picker-selected .chip strong{max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stat-picker-selected .chip button{border:0;background:transparent;color:var(--danger);cursor:pointer;font-size:16px}.statistics-metrics{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px;margin:14px 0}.stat-metric{display:flex;flex-direction:column;gap:6px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:var(--shadow)}.stat-metric span{color:var(--muted);font-size:11px}.stat-metric strong{font-size:23px;color:var(--primary)}.statistics-table table{min-width:980px}
@media(max-width:1250px){.workflow-filter-grid{grid-template-columns:repeat(4,minmax(140px,1fr))}.statistics-pickers{grid-template-columns:repeat(2,minmax(240px,1fr))}.statistics-metrics{grid-template-columns:repeat(3,minmax(140px,1fr))}}
@media(max-width:760px){.provider-search-results,.stat-picker-results{position:static;max-height:250px}.provider-selected-card{align-items:flex-start;flex-direction:column}.workflow-filter-grid,.statistics-filter-grid,.statistics-pickers,.statistics-metrics{grid-template-columns:1fr}.workspace-result-filter{position:static;align-items:stretch;flex-direction:column}.workspace-result-filter label{min-width:0}#wfTable table{min-width:900px}}

/* AIS LIS 5.3 — configuration centralisée des documents PDF et numérotation */
.document-config-grid{align-items:start}.config-accordion{border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--panel) 92%,var(--bg));overflow:hidden}.config-accordion>summary{cursor:pointer;padding:12px 14px;font-weight:850;color:var(--primary2);background:color-mix(in srgb,var(--primary) 6%,var(--panel));border-bottom:1px solid transparent}.config-accordion[open]>summary{border-bottom-color:var(--line)}.config-accordion-body{padding:13px}.settings-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}.settings-check-grid .check-row{margin:0;min-height:38px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--panel)}.document-preview-sticky{position:sticky;top:92px;max-height:calc(100vh - 112px);overflow:auto}.document-numbering-card{margin-top:16px}.sequence-help{margin:8px 0 12px;padding:9px 11px;border:1px dashed var(--line);border-radius:9px;background:var(--panel-soft);color:var(--muted);font-size:11px}.sequence-help code{color:var(--primary2);font-weight:800}.document-sequence-form{display:grid;grid-template-columns:minmax(130px,1.2fr) 105px 125px minmax(160px,1fr) auto;gap:8px;align-items:end;padding:11px;border:1px solid var(--line);border-radius:11px;background:var(--panel)}.document-sequence-form h4{grid-column:1/-1;margin:0;color:var(--primary)}.sequence-preview{display:flex;flex-direction:column;gap:3px;padding:7px 9px;border-radius:8px;background:color-mix(in srgb,var(--primary) 7%,var(--panel));min-height:56px}.sequence-preview code{font-size:12px;font-weight:800;color:var(--primary2);overflow-wrap:anywhere}.sequence-preview small{color:var(--muted)}.branding-preview .detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:12px 0}.branding-preview .detail-item{display:flex;flex-direction:column;padding:7px 8px;border:1px solid var(--line);border-radius:8px;background:#f8fafc;font-size:10px}.branding-preview .detail-item strong{font-size:9px;color:var(--muted);text-transform:uppercase}.branding-preview .detail-item.wide{grid-column:1/-1}.billing-preview-live .preview-head{display:flex;justify-content:space-between;gap:12px;border-bottom:3px solid var(--report-accent);padding-bottom:8px}.billing-preview-live .preview-head>div:first-child{display:flex;flex-direction:column;align-items:flex-start}.billing-preview-live .preview-meta{text-align:right}.billing-preview-live small{display:block}.preview-b-summary{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px;padding:8px;border-left:4px solid var(--report-accent);background:#f2f8fa}.preview-totals{display:flex;flex-direction:column;align-items:flex-end;gap:3px;margin-top:12px}.preview-note{margin:9px 0;padding:7px 9px;background:#fff8e6;border-left:4px solid #e2a51a;font-size:10px}.preview-signature{width:45%;margin:28px 0 8px auto;padding-top:8px;border-top:1px solid #98a2b3;text-align:center;font-size:10px}.report-preview-card .preview-section{margin:12px 0 6px;color:var(--report-accent)}.report-preview-card .section-band{background:var(--report-accent);color:#fff;padding:5px 7px}.report-preview-card .section-boxed{border:1px solid var(--report-accent);padding:5px 7px}.report-preview-card table,.billing-preview-live table{width:100%;border-collapse:collapse}.report-preview-card th,.report-preview-card td,.billing-preview-live th,.billing-preview-live td{padding:6px;border-bottom:1px solid var(--line);text-align:left}.report-preview-card th,.billing-preview-live th{background:#eef4f7}.billing-preview-live .brand-mark{margin-bottom:4px}
@media(max-width:1200px){.document-config-grid{grid-template-columns:1fr}.document-preview-sticky{position:static;max-height:none}.document-sequence-form{grid-template-columns:repeat(2,minmax(0,1fr))}.document-sequence-form h4,.document-sequence-form .sequence-preview,.document-sequence-form button{grid-column:1/-1}}
@media(max-width:720px){.settings-check-grid,.branding-preview .detail-grid,.document-sequence-form{grid-template-columns:1fr}.branding-preview .detail-item.wide{grid-column:auto}.preview-signature{width:100%}}

/* AIS LIS 5.4 — registre et suivi des non-conformités */
.nc-layout{align-items:start}.nc-registry-card{min-width:0}.nc-filters{grid-template-columns:minmax(220px,2fr) repeat(4,minmax(125px,1fr));align-items:end}.nc-filters .wide{grid-column:span 2}.nc-metrics{margin:0 0 14px}.nc-detail-header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding:18px;border:1px solid var(--border,#d8e1ea);border-radius:14px;background:linear-gradient(135deg,rgba(17,107,140,.08),rgba(255,255,255,.7))}.nc-detail-header h2{margin:3px 0 6px}.nc-detail-header p{margin:0;max-width:850px}.nc-detail-actions{margin:12px 0}.nc-followup-grid{align-items:start;margin-top:14px}.nc-timeline{display:grid;gap:10px;max-height:420px;overflow:auto;padding-right:4px}.nc-timeline-item{position:relative;border:1px solid var(--border,#d8e1ea);border-radius:10px;padding:11px 12px;background:var(--surface,#fff)}.nc-timeline-item>div{display:flex;justify-content:space-between;gap:12px}.nc-timeline-item span,.nc-timeline-item small{color:var(--muted,#667085);font-size:12px}.nc-timeline-item p{margin:7px 0;white-space:pre-wrap}.nc-timeline-item.status{border-left:4px solid #147a9c}.nc-modal .modal-dialog{width:min(1450px,96vw)}.nc-severity-minor{background:#eef4f7;color:#365361}.nc-severity-major{background:#fff1cf;color:#8a5b00}.nc-severity-critical{background:#fde7ea;color:#a61b32}.nc-status-open{background:#e8f2ff;color:#175c9b}.nc-status-investigation{background:#eee9ff;color:#5940a5}.nc-status-action_in_progress{background:#fff0d8;color:#8b5500}.nc-status-effectiveness_review{background:#e5f7f2;color:#166b57}.nc-status-resolved{background:#e3f5e8;color:#1f6b36}.nc-status-closed{background:#edf0f3;color:#485467}.nc-status-cancelled{background:#f4e8ea;color:#7d3440}.nc-workspace textarea{min-height:78px}.nc-registry-card .actions-cell{white-space:nowrap}
@media(max-width:1180px){.nc-layout{grid-template-columns:1fr}.nc-filters{grid-template-columns:repeat(3,minmax(140px,1fr))}.nc-filters .wide{grid-column:span 2}}
@media(max-width:760px){.nc-filters{grid-template-columns:1fr}.nc-filters .wide{grid-column:auto}.nc-detail-header{flex-direction:column}.nc-followup-grid{grid-template-columns:1fr}}

/* AIS LIS 5.4.2 — suivi qualité et amélioration continue */
.qms-followup-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px;padding:12px 14px;border:1px solid var(--border,#d8e2ea);border-radius:12px;background:var(--surface-soft,#f7fafc)}
.qms-followup-head h3{margin:6px 0 0}.qms-followup-modal{max-width:min(1180px,96vw)}
.qms-timeline{display:grid;gap:10px;max-height:430px;overflow:auto;padding-right:4px}
.qms-timeline-item{border-left:4px solid var(--primary,#137b9a);background:var(--surface-soft,#f7fafc);padding:10px 12px;border-radius:8px}
.qms-timeline-item>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.qms-timeline-item small{margin-left:auto;color:var(--muted,#64748b)}
.qms-timeline-item p{margin:7px 0;white-space:pre-wrap}.qms-followup-modal .card{min-width:0}
@media(max-width:860px){.qms-followup-head{flex-direction:column}.qms-followup-modal .grid.two-col{grid-template-columns:1fr}.qms-timeline-item small{margin-left:0;width:100%}}


/* AIS LIS 5.4.5 — interface adaptative, navigation et surfaces harmonisées. */
:root{--sidebar-width:250px;--sidebar-bg:#102b3a;--sidebar-text:#fff;--sidebar-muted:#b6cbd4;--sidebar-line:rgba(255,255,255,.13);--sidebar-card:rgba(255,255,255,.07);--surface-soft:#f8fafc;--focus-ring:rgba(17,107,140,.16);--radius-card:14px}
html[data-theme="clinical"]{color-scheme:light;--bg:#f4f7fb;--panel:#fff;--ink:#172033;--muted:#667085;--line:#e1e8f0;--primary:#116b8c;--primary2:#0a4f6c;--accent:#20a39e;--danger:#c9384a;--warning:#b7791f;--success:#15803d;--shadow:0 8px 28px rgba(25,48,72,.08);--sidebar-bg:#102b3a;--sidebar-text:#fff;--sidebar-muted:#b6cbd4;--sidebar-line:rgba(255,255,255,.13);--sidebar-card:rgba(255,255,255,.07);--surface-soft:#f8fafc;--focus-ring:rgba(17,107,140,.16)}
html[data-theme="emerald"]{color-scheme:light;--bg:#f1f7f4;--panel:#fff;--ink:#183229;--muted:#60766e;--line:#d8e7e0;--primary:#16745d;--primary2:#0d5846;--accent:#43b99b;--danger:#c43d50;--warning:#a76d18;--success:#13724b;--shadow:0 8px 28px rgba(20,79,62,.09);--sidebar-bg:#123b31;--sidebar-text:#fff;--sidebar-muted:#b7d1c7;--sidebar-line:rgba(255,255,255,.14);--sidebar-card:rgba(255,255,255,.07);--surface-soft:#f5faf7;--focus-ring:rgba(22,116,93,.16)}
html[data-theme="graphite"]{color-scheme:dark;--bg:#111820;--panel:#19232e;--ink:#eef4f7;--muted:#a7b5bf;--line:#31404d;--primary:#59b8d8;--primary2:#7ac9e2;--accent:#62d6c8;--danger:#ff7f91;--warning:#f1bd62;--success:#64d391;--shadow:0 10px 30px rgba(0,0,0,.28);--sidebar-bg:#0b1117;--sidebar-text:#f4f8fb;--sidebar-muted:#94a7b5;--sidebar-line:#273441;--sidebar-card:#141e28;--surface-soft:#202c37;--focus-ring:rgba(89,184,216,.2)}
.app-shell{grid-template-columns:var(--sidebar-width) minmax(0,1fr);transition:grid-template-columns .2s ease}
.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--sidebar-bg);color:var(--sidebar-text);border-right:1px solid var(--sidebar-line);transition:width .2s ease,min-width .2s ease,padding .2s ease}
.brand{border-color:var(--sidebar-line)}.brand small,.sidebar-footer,.sidebar-footer span,.nav-link,.nav-group-title{color:var(--sidebar-muted)}.nav-link:hover,.nav-link.active{color:var(--sidebar-text);background:var(--sidebar-card)}
.sidebar-search-wrap{background:var(--sidebar-card);border-color:var(--sidebar-line)}.sidebar-search-wrap input{color:var(--sidebar-text)}.sidebar-search-wrap input::placeholder{color:var(--sidebar-muted)}
.sidebar-collapse{background:var(--panel);color:var(--ink);border-color:var(--line)}
.sidebar-resize-handle{position:absolute;top:0;right:-5px;width:10px;height:100%;cursor:ew-resize;z-index:9;touch-action:none;outline:0}.sidebar-resize-handle:after{content:"";position:absolute;top:45%;bottom:45%;left:4px;width:2px;border-radius:2px;background:transparent;transition:.16s}.sidebar-resize-handle:hover:after,.sidebar-resize-handle:focus-visible:after,body.sidebar-resizing .sidebar-resize-handle:after{top:39%;bottom:39%;background:var(--accent)}body.sidebar-resizing{cursor:ew-resize;user-select:none}
html[data-sidebar="compact"]{--sidebar-width:82px}html[data-sidebar="wide"]{--sidebar-width:320px}
html[data-sidebar="compact"] .sidebar{padding-inline:10px}html[data-sidebar="compact"] .brand{justify-content:center;padding-inline:0}html[data-sidebar="compact"] .brand-text,html[data-sidebar="compact"] .nav-text,html[data-sidebar="compact"] .nav-group-title,html[data-sidebar="compact"] .sidebar-footer-text,html[data-sidebar="compact"] #logoutButton,html[data-sidebar="compact"] .sidebar-search-wrap{display:none}html[data-sidebar="compact"] .nav-link{justify-content:center;padding:11px 8px}html[data-sidebar="compact"] .nav-icon{font-size:18px}html[data-sidebar="compact"] .sidebar-collapse{transform:rotate(180deg)}html[data-sidebar="compact"] .sidebar-resize-handle{display:none}
.topbar,.metric,.card,.modal-card,table,input,select,textarea,.section-tabs button,.subtabs button,.workflow-tabs a,.workflow-tabs button{background:var(--panel);color:var(--ink);border-color:var(--line)}
.card,.metric{border-radius:var(--radius-card)}.detail-item,.billing-summary>div,.history-panel,.order-banner,.trace-summary-card,.modal-navigation,.reference-range-card,.attachment-upload,.attachment-row,.attachment-preview{background:var(--surface-soft);border-color:var(--line)}
html[data-theme="graphite"] th{background:#202c37;color:#c4d0d8}html[data-theme="graphite"] .btn.secondary{background:#293744;color:#dce8ee}html[data-theme="graphite"] .btn.danger{background:#472530;color:#ffb4c0}html[data-theme="graphite"] .btn.success{background:#183d2d;color:#8be4ae}html[data-theme="graphite"] .status-pill,html[data-theme="graphite"] .badge{background:#1c4039;color:#a2ead4}html[data-theme="graphite"] .chip{background:#2b3945;color:#dce7ec}html[data-theme="graphite"] .chip.selected{background:#17463d;color:#a8f1dd}html[data-theme="graphite"] .modal-close{color:var(--ink)}html[data-theme="graphite"] .auth-page{background:radial-gradient(circle at 18% 12%,#173e3a55,transparent 30%),linear-gradient(145deg,#0b1117,#111b26)}html[data-theme="graphite"] .auth-card,html[data-theme="graphite"] .setup-card{background:var(--panel);color:var(--ink);border-color:var(--line)}
.appearance-button{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:7px 11px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);cursor:pointer;font-weight:650}.appearance-button:hover{border-color:var(--primary);box-shadow:0 0 0 3px var(--focus-ring)}.appearance-button>span:first-child{font-size:18px;color:var(--primary)}
.modal-appearance{width:min(900px,96vw)}.appearance-form{display:flex;flex-direction:column;gap:18px}.appearance-section{padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft)}.appearance-heading h3{margin:3px 0 4px}.appearance-heading p{margin:0 0 14px;color:var(--muted);font-size:12px}.theme-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.theme-choice{position:relative;display:flex;min-width:0;padding:11px;border:1px solid var(--line);border-radius:14px;background:var(--panel);cursor:pointer;flex-direction:column;transition:.16s}.theme-choice:hover{border-color:var(--primary);transform:translateY(-1px)}.theme-choice input{position:absolute;opacity:0;pointer-events:none}.theme-choice:has(input:checked){border-color:var(--primary);box-shadow:0 0 0 3px var(--focus-ring)}.theme-choice strong{margin-top:10px}.theme-choice small{margin-top:3px;color:var(--muted);font-size:11px;line-height:1.35}.theme-preview{display:grid;grid-template-columns:25% 1fr;grid-template-rows:18px 1fr;gap:5px;height:88px;padding:7px;border:1px solid rgba(100,120,140,.2);border-radius:10px;overflow:hidden}.theme-preview i{display:block;border-radius:4px}.theme-preview i:first-child{grid-row:1/3}.preview-clinical{background:#f4f7fb}.preview-clinical i:first-child{background:#102b3a}.preview-clinical i:nth-child(2){background:#fff}.preview-clinical i:nth-child(3){background:#dbe9f0}.preview-emerald{background:#f1f7f4}.preview-emerald i:first-child{background:#123b31}.preview-emerald i:nth-child(2){background:#fff}.preview-emerald i:nth-child(3){background:#d8e7e0}.preview-graphite{background:#111820}.preview-graphite i:first-child{background:#0b1117}.preview-graphite i:nth-child(2){background:#19232e}.preview-graphite i:nth-child(3){background:#31404d}.segmented-choice{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.segmented-choice label{position:relative}.segmented-choice input{position:absolute;opacity:0}.segmented-choice span{display:grid;place-items:center;min-height:42px;border:1px solid var(--line);border-radius:10px;background:var(--panel);cursor:pointer}.segmented-choice input:checked+span{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 10%,var(--panel));color:var(--primary);box-shadow:0 0 0 3px var(--focus-ring)}.appearance-actions{display:grid;grid-template-columns:auto 1fr auto auto;gap:8px;align-items:center}
html[data-ui-density="compact"] .content{padding:14px 18px}html[data-ui-density="compact"] .card{padding:13px;margin-bottom:12px}html[data-ui-density="compact"] .metric{padding:13px}html[data-ui-density="compact"] .grid{gap:12px}html[data-ui-density="compact"] .form-grid{gap:8px 10px}html[data-ui-density="compact"] label{gap:4px}html[data-ui-density="compact"] input,html[data-ui-density="compact"] select,html[data-ui-density="compact"] textarea{padding:7px 9px}html[data-ui-density="compact"] textarea{min-height:66px}html[data-ui-density="compact"] th,html[data-ui-density="compact"] td{padding:7px 9px}html[data-ui-density="compact"] .toolbar{margin-bottom:9px}html[data-ui-density="compact"] .section-tabs,html[data-ui-density="compact"] .subtabs{margin-bottom:10px}html[data-ui-density="compact"] .modal-header{padding:12px 16px}html[data-ui-density="compact"] .modal-body{padding:14px}html[data-ui-density="compact"] .modal-card{max-height:95vh}
@media(max-width:900px){.appearance-label{display:none}.theme-picker{grid-template-columns:1fr}.theme-preview{height:68px}.segmented-choice{grid-template-columns:1fr}.appearance-actions{grid-template-columns:1fr 1fr}.appearance-actions>span{display:none}.appearance-actions [data-ui-reset]{grid-column:1/-1}}
@media(max-width:760px){.app-shell{grid-template-columns:1fr}.sidebar{width:250px;min-width:250px}.sidebar-resize-handle,.sidebar-collapse{display:none!important}html[data-sidebar="compact"] .sidebar{padding:20px 14px}html[data-sidebar="compact"] .brand{justify-content:flex-start;padding:0 8px 22px}html[data-sidebar="compact"] .brand-text,html[data-sidebar="compact"] .nav-text,html[data-sidebar="compact"] .nav-group-title,html[data-sidebar="compact"] .sidebar-footer-text,html[data-sidebar="compact"] #logoutButton,html[data-sidebar="compact"] .sidebar-search-wrap{display:flex}html[data-sidebar="compact"] .nav-link{justify-content:flex-start;padding:10px 12px}.topbar-actions{gap:6px}.appearance-button{padding:6px 9px}}
@media(prefers-reduced-motion:reduce){.app-shell,.sidebar,.modal-card,.theme-choice,.btn,button{transition:none!important;animation:none!important}}

html[data-theme="graphite"] label{color:#d5e0e6}html[data-theme="graphite"] input::placeholder,html[data-theme="graphite"] textarea::placeholder{color:#8294a2}html[data-theme="graphite"] .empty,html[data-theme="graphite"] .muted{color:var(--muted)}html[data-theme="graphite"] .table-wrap{border-color:var(--line)}html[data-theme="graphite"] tr:hover td{background:#1d2934}


/* AIS LIS 5.4.5 — navigation des rubriques, cartes et tableaux stabilisés. */
.page-section-context{display:inline-flex;align-items:center;width:max-content;max-width:360px;margin-top:5px;padding:3px 8px;border:1px solid color-mix(in srgb,var(--primary) 22%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--primary) 7%,var(--panel));color:var(--primary);font-size:10px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar-page-sections{margin:2px 0 8px 22px;padding:8px 0 8px 11px;border-left:1px solid rgba(255,255,255,.17)}
.sidebar-page-sections-head{display:flex;flex-direction:column;gap:1px;margin:0 7px 7px;color:#fff}.sidebar-page-sections-head span{font-size:11px;font-weight:800}.sidebar-page-sections-head small{color:#8fb0bf;font-size:9px;text-transform:uppercase;letter-spacing:.08em}
.sidebar-page-sections-list{display:flex;flex-direction:column;gap:2px}.sidebar-page-section-link{appearance:none;width:100%;display:flex;align-items:center;gap:8px;padding:7px 9px;border:0;border-radius:8px;background:transparent;color:#b9ced8;text-align:left;text-decoration:none;font-size:11.5px;line-height:1.25;cursor:pointer}.sidebar-page-section-link:hover,.sidebar-page-section-link.active{background:rgba(255,255,255,.09);color:#fff}.sidebar-page-section-link.active{box-shadow:inset 2px 0 var(--accent)}.sidebar-page-section-dot{width:5px;height:5px;flex:0 0 5px;border-radius:50%;background:currentColor;opacity:.7}
.sidebar-page-sections-search{position:relative;display:block;margin:0 6px 7px}.sidebar-page-sections-search>span{position:absolute;left:8px;top:50%;transform:translateY(-50%);color:#89a8b6}.sidebar-page-sections-search input{min-height:30px;padding:5px 7px 5px 25px;border-color:rgba(255,255,255,.14);background:rgba(255,255,255,.08);color:#fff;font-size:10.5px}.sidebar-page-sections-search input::placeholder{color:#9eb6c1}
html[data-page-navigation="sidebar"] [data-page-section-nav]{display:none!important}html[data-page-navigation="sidebar"] [data-page-section-shell]{display:none!important}html[data-page-navigation="tabs"] .sidebar-page-sections{display:none!important}html[data-page-navigation="hybrid"][data-sidebar="compact"] .sidebar-page-sections{display:none!important}
.segmented-choice.two-options{grid-template-columns:repeat(2,minmax(0,1fr))}.navigation-mode-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.navigation-mode-picker label{cursor:pointer}.navigation-mode-picker input{position:absolute;opacity:0;pointer-events:none}.navigation-mode-picker label>span{min-height:92px;display:flex;flex-direction:column;gap:5px;padding:13px;border:1px solid var(--line);border-radius:12px;background:var(--panel);transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.navigation-mode-picker label:hover>span{transform:translateY(-1px);border-color:color-mix(in srgb,var(--primary) 35%,var(--line))}.navigation-mode-picker input:checked+span{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 13%,transparent)}.navigation-mode-picker strong{font-size:13px}.navigation-mode-picker small{color:var(--muted);font-size:10.5px;line-height:1.4}
[data-page-section-nav]{position:sticky;top:84px;z-index:11;display:flex;flex-wrap:nowrap;gap:7px;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin;padding:7px 2px 10px;margin-bottom:16px;background:linear-gradient(180deg,var(--bg) 72%,transparent)}[data-page-section-nav]>button,[data-page-section-nav]>a{flex:0 0 auto;white-space:nowrap}
.card{overflow:clip}.card>.card-header:first-child{margin:-2px -2px 15px;padding:2px 2px 12px;border-bottom:1px solid color-mix(in srgb,var(--line) 86%,transparent)}.table-wrap{position:relative;max-width:100%;overscroll-behavior:contain;background:var(--panel)}.table-wrap table{min-width:100%}.table-wrap tbody tr:nth-child(even) td{background:color-mix(in srgb,var(--primary) 1.7%,var(--panel))}.table-wrap tbody tr:hover td{background:color-mix(in srgb,var(--primary) 5%,var(--panel))}.table-wrap th{z-index:2;box-shadow:0 1px 0 var(--line)}
html[data-surface-style="flat"] .card,html[data-surface-style="flat"] .metric{box-shadow:none;border-radius:9px}html[data-surface-style="flat"] .card:hover,html[data-surface-style="flat"] .metric-link:hover{transform:none;box-shadow:none}html[data-surface-style="flat"] .table-wrap{box-shadow:none;border-radius:8px}html[data-surface-style="flat"] .admin-navigation-card{box-shadow:none;backdrop-filter:none}
html[data-theme="graphite"] .sidebar-page-sections-search input{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.13)}html[data-theme="graphite"] .navigation-mode-picker label>span{background:var(--panel)}html[data-theme="graphite"] .table-wrap tbody tr:nth-child(even) td{background:#18232d}html[data-theme="graphite"] .table-wrap tbody tr:hover td{background:#1d2b36}
@media(max-width:980px){.navigation-mode-picker{grid-template-columns:1fr}.sidebar-page-sections{margin-left:16px}.page-section-context{max-width:220px}}
@media(max-width:760px){[data-page-section-nav]{position:relative;top:auto;padding-top:2px}.sidebar-page-sections{margin-left:19px}.page-section-context{display:none}.navigation-mode-picker label>span{min-height:auto}.table-wrap{-webkit-overflow-scrolling:touch}}


/* AIS LIS 5.4.8 — palettes, sidebar personnalisable, tables adaptatives et typographie. */
html[data-accent="ocean"]{--primary:#116b8c;--primary2:#0a4f6c;--accent:#20a39e;--focus-ring:rgba(17,107,140,.17)}
html[data-accent="teal"]{--primary:#147d72;--primary2:#0b5f57;--accent:#42b8a6;--focus-ring:rgba(20,125,114,.17)}
html[data-accent="indigo"]{--primary:#5655a8;--primary2:#3f3d86;--accent:#8079d8;--focus-ring:rgba(86,85,168,.18)}
html[data-accent="amber"]{--primary:#a75d12;--primary2:#7d430a;--accent:#df9b32;--focus-ring:rgba(167,93,18,.18)}
html[data-theme="graphite"][data-accent="ocean"]{--primary:#59b8d8;--primary2:#7ac9e2;--accent:#62d6c8}html[data-theme="graphite"][data-accent="teal"]{--primary:#58c8b4;--primary2:#7addca;--accent:#39a991}html[data-theme="graphite"][data-accent="indigo"]{--primary:#9a96f1;--primary2:#b2afff;--accent:#7770d7}html[data-theme="graphite"][data-accent="amber"]{--primary:#f1b45c;--primary2:#ffd08a;--accent:#d88e2d}
.accent-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.accent-choice{position:relative}.accent-choice input{position:absolute;opacity:0}.accent-choice>span{display:flex;align-items:center;gap:9px;min-height:46px;padding:9px 11px;border:1px solid var(--line);border-radius:11px;background:var(--panel);cursor:pointer}.accent-choice input:checked+span{border-color:var(--primary);box-shadow:0 0 0 3px var(--focus-ring)}.accent-choice i{width:22px;height:22px;border-radius:50%;box-shadow:inset 0 0 0 5px rgba(255,255,255,.58)}.accent-ocean i{background:#116b8c}.accent-teal i{background:#147d72}.accent-indigo i{background:#5655a8}.accent-amber i{background:#a75d12}
html[data-sidebar="mini"]{--sidebar-width:58px}html[data-sidebar="compact"]{--sidebar-width:84px}html[data-sidebar="wide"]{--sidebar-width:320px}
html[data-sidebar="mini"] .sidebar{padding-inline:7px}html[data-sidebar="mini"] .brand{justify-content:center;padding-inline:0}html[data-sidebar="mini"] .brand-logo-image,html[data-sidebar="mini"] .brand-mark{width:36px;height:36px}html[data-sidebar="mini"] .brand-text,html[data-sidebar="mini"] .nav-text,html[data-sidebar="mini"] .nav-group-title,html[data-sidebar="mini"] .sidebar-footer-text,html[data-sidebar="mini"] #logoutButton,html[data-sidebar="mini"] .sidebar-search-wrap{display:none}html[data-sidebar="mini"] .nav-link{justify-content:center;padding:10px 5px}html[data-sidebar="mini"] .nav-icon{font-size:17px}html[data-sidebar="mini"] .sidebar-resize-handle,html[data-sidebar="compact"] .sidebar-resize-handle{display:none}
.segmented-choice.five-options{grid-template-columns:repeat(5,minmax(0,1fr))}.segmented-choice.four-options{grid-template-columns:repeat(4,minmax(0,1fr))}.sidebar-width-control{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;margin-top:12px}.sidebar-width-control input{padding:0}.sidebar-width-control output{min-width:62px;text-align:right;color:var(--primary);font-weight:800}.appearance-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.appearance-inline-settings{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal-appearance{width:min(1080px,97vw)}
.sidebar-section-trigger{display:none;width:100%;align-items:center;justify-content:center;gap:8px;padding:7px;border:0;border-radius:8px;background:var(--sidebar-card);color:var(--sidebar-muted);cursor:pointer}.sidebar-section-trigger:hover{color:var(--sidebar-text)}html[data-sidebar="mini"] .sidebar-section-trigger,html[data-sidebar="compact"] .sidebar-section-trigger{display:flex}.sidebar-page-sections-head{position:relative}.sidebar-flyout-close{display:none;position:absolute;right:0;top:-4px;border:0;background:transparent;color:inherit;font-size:20px;cursor:pointer}.sidebar-page-sections.flyout{position:fixed;left:var(--flyout-left);top:var(--flyout-top);width:var(--flyout-width);max-height:min(70vh,520px);overflow:auto;margin:0;padding:12px;border:1px solid var(--line);border-radius:13px;background:var(--sidebar-bg);box-shadow:0 22px 60px rgba(0,0,0,.28);z-index:45;display:none}.sidebar-page-sections.flyout.open{display:block}.sidebar-page-sections.flyout .sidebar-flyout-close{display:block}.sidebar-page-sections.flyout .sidebar-page-sections-head{padding-right:25px}
html[data-font-size="small"]{--ui-font-scale:.90}html[data-font-size="normal"]{--ui-font-scale:1}html[data-font-size="large"]{--ui-font-scale:1.10}html[data-font-size="xlarge"]{--ui-font-scale:1.20}body,button,input,select,textarea{font-size:calc(14px * var(--ui-font-scale,1))}.nav-link{font-size:calc(14px * var(--ui-font-scale,1))}.topbar h1{font-size:calc(20px * var(--ui-font-scale,1))}.topbar p,.muted,small{font-size:calc(12px * var(--ui-font-scale,1))}th,td{font-size:calc(12px * var(--ui-font-scale,1))}.card h2{font-size:calc(17px * var(--ui-font-scale,1))}
.table-wrap{overflow:auto;scrollbar-gutter:stable;isolation:isolate}.table-wrap.wide-table table{min-width:max(980px,100%)}.table-wrap.can-scroll-left:before,.table-wrap.can-scroll-right:after{content:"";position:sticky;z-index:7;top:0;bottom:0;width:18px;pointer-events:none}.table-wrap.can-scroll-left:before{left:0;float:left;background:linear-gradient(90deg,rgba(12,34,49,.15),transparent)}.table-wrap.can-scroll-right:after{right:0;float:right;background:linear-gradient(270deg,rgba(12,34,49,.15),transparent)}
html[data-table-mode="scroll"] .wide-table .key-col,html[data-table-mode="auto"] .wide-table .key-col{position:sticky;left:0;z-index:4;background:var(--panel);box-shadow:1px 0 var(--line)}html[data-table-mode="scroll"] .wide-table .actions-col,html[data-table-mode="auto"] .wide-table .actions-col{position:sticky;right:0;z-index:4;background:var(--panel);box-shadow:-1px 0 var(--line)}html[data-table-mode="compact"] .table-wrap table{min-width:max-content}html[data-table-mode="compact"] th,html[data-table-mode="compact"] td{padding:5px 7px;font-size:11px;white-space:nowrap}html[data-table-mode="compact"] .actions-cell .btn{padding:5px 7px;font-size:10.5px}
html[data-table-mode="cards"] .table-wrap,html[data-table-mode="cards"] .table-wrap table,html[data-table-mode="cards"] .table-wrap tbody,html[data-table-mode="cards"] .table-wrap tr,html[data-table-mode="cards"] .table-wrap td{display:block;width:100%}html[data-table-mode="cards"] .table-wrap thead{display:none}html[data-table-mode="cards"] .table-wrap tbody{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;padding:2px}html[data-table-mode="cards"] .table-wrap tr{padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:var(--shadow)}html[data-table-mode="cards"] .table-wrap td{display:grid;grid-template-columns:minmax(105px,38%) 1fr;gap:9px;padding:7px 0;border:0;border-bottom:1px dashed var(--line);white-space:normal}html[data-table-mode="cards"] .table-wrap td:last-child{border-bottom:0}html[data-table-mode="cards"] .table-wrap td:before{content:attr(data-label);color:var(--muted);font-size:11px;font-weight:750}html[data-table-mode="cards"] .table-wrap .key-col,html[data-table-mode="cards"] .table-wrap .actions-col{position:static;box-shadow:none}html[data-table-mode="cards"] .actions-cell{display:flex;flex-wrap:wrap;align-items:center}
.donut-chart-layout{display:grid;grid-template-columns:minmax(160px,220px) 1fr;align-items:center;gap:20px;min-height:240px}.donut-chart{width:190px;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;position:relative;margin:auto}.donut-chart:after{content:"";position:absolute;width:58%;height:58%;border-radius:50%;background:var(--panel)}.donut-chart>span{position:relative;z-index:1;font-weight:850;font-size:18px}.donut-legend{display:grid;gap:7px;max-height:235px;overflow:auto}.donut-legend>div{display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:8px;padding:5px 0;border-bottom:1px solid var(--line)}.donut-legend i{width:9px;height:9px;border-radius:50%}.statistics-chart-card .card-header label{min-width:180px}.modern-chart{min-height:220px}
@media(max-width:1050px){.appearance-grid-2{grid-template-columns:1fr}.segmented-choice.five-options{grid-template-columns:repeat(3,1fr)}.accent-picker{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){html[data-sidebar="mini"] .sidebar,html[data-sidebar="compact"] .sidebar{width:250px;min-width:250px;padding:20px 14px}html[data-sidebar="mini"] .brand,html[data-sidebar="compact"] .brand{justify-content:flex-start;padding:0 8px 22px}html[data-sidebar="mini"] .brand-text,html[data-sidebar="mini"] .nav-text,html[data-sidebar="mini"] .nav-group-title,html[data-sidebar="mini"] .sidebar-footer-text,html[data-sidebar="mini"] #logoutButton,html[data-sidebar="mini"] .sidebar-search-wrap{display:flex}html[data-sidebar="mini"] .nav-link{justify-content:flex-start;padding:10px 12px}.segmented-choice.four-options,.segmented-choice.five-options{grid-template-columns:1fr 1fr}.appearance-inline-settings{grid-template-columns:1fr}.donut-chart-layout{grid-template-columns:1fr}.statistics-chart-card .card-header{align-items:stretch}.statistics-chart-card .card-header label{min-width:0}html[data-table-mode="auto"] .table-wrap,html[data-table-mode="auto"] .table-wrap table,html[data-table-mode="auto"] .table-wrap tbody,html[data-table-mode="auto"] .table-wrap tr,html[data-table-mode="auto"] .table-wrap td{display:block;width:100%}html[data-table-mode="auto"] .table-wrap thead{display:none}html[data-table-mode="auto"] .table-wrap tbody{display:grid;gap:10px}html[data-table-mode="auto"] .table-wrap tr{padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}html[data-table-mode="auto"] .table-wrap td{display:grid;grid-template-columns:minmax(105px,38%) 1fr;gap:8px;padding:6px 0;border:0;border-bottom:1px dashed var(--line);white-space:normal}html[data-table-mode="auto"] .table-wrap td:before{content:attr(data-label);color:var(--muted);font-size:11px;font-weight:750}html[data-table-mode="auto"] .table-wrap td:last-child{border-bottom:0}html[data-table-mode="auto"] .table-wrap .key-col,html[data-table-mode="auto"] .table-wrap .actions-col{position:static;box-shadow:none}}
html[data-page-navigation="hybrid"][data-sidebar="compact"] .sidebar-page-sections.flyout.open,html[data-page-navigation="hybrid"][data-sidebar="mini"] .sidebar-page-sections.flyout.open{display:block!important}


/* AIS LIS 5.4.8 — couleur indépendante de la barre latérale. */
html[data-sidebar-color="theme"][data-theme="clinical"]{--sidebar-bg:#102b3a;--sidebar-gradient-top:#0c2e3e;--sidebar-gradient-bottom:#0a2432;--sidebar-glow:rgba(31,184,166,.18);--sidebar-text:#fff;--sidebar-muted:#b6cbd4;--sidebar-line:rgba(255,255,255,.13);--sidebar-card:rgba(255,255,255,.07)}
html[data-sidebar-color="theme"][data-theme="emerald"]{--sidebar-bg:#123b31;--sidebar-gradient-top:#0e4437;--sidebar-gradient-bottom:#0a2d26;--sidebar-glow:rgba(67,185,155,.22);--sidebar-text:#fff;--sidebar-muted:#b7d1c7;--sidebar-line:rgba(255,255,255,.14);--sidebar-card:rgba(255,255,255,.075)}
html[data-sidebar-color="theme"][data-theme="graphite"]{--sidebar-bg:#0b1117;--sidebar-gradient-top:#18212a;--sidebar-gradient-bottom:#090d12;--sidebar-glow:rgba(89,184,216,.16);--sidebar-text:#f4f8fb;--sidebar-muted:#94a7b5;--sidebar-line:#273441;--sidebar-card:#141e28}
html[data-sidebar-color="navy"]{--sidebar-bg:#102b3a;--sidebar-gradient-top:#0d3447;--sidebar-gradient-bottom:#091f2c;--sidebar-glow:rgba(43,190,207,.20);--sidebar-text:#fff;--sidebar-muted:#bdd2dc;--sidebar-line:rgba(255,255,255,.13);--sidebar-card:rgba(255,255,255,.075)}
html[data-sidebar-color="emerald"]{--sidebar-bg:#123b31;--sidebar-gradient-top:#0e493a;--sidebar-gradient-bottom:#082a23;--sidebar-glow:rgba(67,185,155,.25);--sidebar-text:#fff;--sidebar-muted:#c0d9cf;--sidebar-line:rgba(255,255,255,.14);--sidebar-card:rgba(255,255,255,.08)}
html[data-sidebar-color="indigo"]{--sidebar-bg:#292b59;--sidebar-gradient-top:#363a78;--sidebar-gradient-bottom:#1b1d3f;--sidebar-glow:rgba(128,121,216,.25);--sidebar-text:#fff;--sidebar-muted:#c9cbed;--sidebar-line:rgba(255,255,255,.14);--sidebar-card:rgba(255,255,255,.085)}
html[data-sidebar-color="graphite"]{--sidebar-bg:#151b22;--sidebar-gradient-top:#202a34;--sidebar-gradient-bottom:#0c1015;--sidebar-glow:rgba(127,151,170,.20);--sidebar-text:#f5f7f9;--sidebar-muted:#b2bec7;--sidebar-line:rgba(255,255,255,.12);--sidebar-card:rgba(255,255,255,.07)}
html[data-sidebar-color] .sidebar{background:linear-gradient(180deg,var(--sidebar-gradient-top,var(--sidebar-bg)) 0,var(--sidebar-bg) 48%,var(--sidebar-gradient-bottom,var(--sidebar-bg)) 100%)}
html[data-sidebar-color] .sidebar:before{background:radial-gradient(circle at 18% 0,var(--sidebar-glow,rgba(31,184,166,.18)),transparent 21rem)}
.sidebar-color-picker{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.sidebar-color-choice{position:relative;min-width:0}.sidebar-color-choice input{position:absolute;opacity:0;pointer-events:none}.sidebar-color-choice>span{display:grid;grid-template-columns:32px minmax(0,1fr);grid-template-rows:auto auto;column-gap:9px;align-items:center;min-height:64px;padding:9px 10px;border:1px solid var(--line);border-radius:11px;background:var(--panel);cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.sidebar-color-choice:hover>span{transform:translateY(-1px);border-color:color-mix(in srgb,var(--primary) 35%,var(--line))}.sidebar-color-choice input:checked+span{border-color:var(--primary);box-shadow:0 0 0 3px var(--focus-ring)}.sidebar-color-choice strong{align-self:end;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-color-choice small{grid-column:2;align-self:start;color:var(--muted);font-size:10px}.sidebar-color-swatch{grid-row:1/3;width:30px;height:42px;border-radius:9px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18),0 3px 9px rgba(18,35,50,.15)}.sidebar-color-theme .sidebar-color-swatch{background:linear-gradient(135deg,#102b3a 0 33%,#123b31 33% 66%,#151b22 66%)}.sidebar-color-navy .sidebar-color-swatch{background:linear-gradient(180deg,#0d3447,#091f2c)}.sidebar-color-emerald .sidebar-color-swatch{background:linear-gradient(180deg,#0e493a,#082a23)}.sidebar-color-indigo .sidebar-color-swatch{background:linear-gradient(180deg,#363a78,#1b1d3f)}.sidebar-color-graphite .sidebar-color-swatch{background:linear-gradient(180deg,#202a34,#0c1015)}
@media(max-width:980px){.sidebar-color-picker{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.sidebar-color-picker{grid-template-columns:1fr 1fr}.sidebar-color-choice>span{min-height:58px}}

/* AIS LIS 5.4.9 — atelier de paramétrage des workflows spécialisés. */
.specialty-workbench{display:grid;grid-template-columns:minmax(260px,310px) minmax(0,1fr);gap:16px;align-items:start}.specialty-workflow-browser{position:sticky;top:84px;max-height:calc(100vh - 100px);display:flex;flex-direction:column;overflow:hidden;padding:0}.specialty-browser-header{padding:16px 16px 10px}.specialty-browser-filters{display:grid;gap:8px;padding:0 16px 12px}.specialty-browser-filters input,.specialty-browser-filters select{width:100%}.specialty-workflow-navigator{display:grid;gap:6px;overflow:auto;padding:0 10px 14px}.specialty-workflow-nav-item{display:grid;gap:5px;width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);text-align:left;cursor:pointer;transition:border-color .15s ease,background .15s ease,transform .15s ease}.specialty-workflow-nav-item:hover{border-color:color-mix(in srgb,var(--primary) 45%,var(--line));transform:translateY(-1px)}.specialty-workflow-nav-item.active{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 8%,var(--panel));box-shadow:inset 3px 0 0 var(--primary)}.specialty-nav-main{display:grid;gap:2px}.specialty-nav-main strong{font-size:13px}.specialty-nav-main small,.specialty-nav-meta{color:var(--muted);font-size:10px}.specialty-nav-meta b{color:var(--ink)}.specialty-workflow-main{min-width:0;display:grid;gap:12px}.specialty-workflow-context{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px}.specialty-workflow-context h2,.specialty-workflow-context p{margin:2px 0}.specialty-editor-tabs{display:flex;gap:7px;overflow-x:auto;padding:5px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--panel) 92%,var(--primary) 8%);scrollbar-width:thin}.specialty-editor-tabs button{flex:0 0 auto;padding:9px 13px;border:0;border-radius:9px;background:transparent;color:var(--muted);font-weight:750;cursor:pointer}.specialty-editor-tabs button.active{background:var(--panel);color:var(--primary);box-shadow:0 3px 12px rgba(15,42,60,.09)}.specialty-editor-pane{min-width:0}.specialty-editor-pane[hidden]{display:none!important}.specialty-config-list{display:grid;gap:8px;margin-top:16px}.specialty-list-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-top:12px;border-top:1px solid var(--line)}.specialty-config-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--panel) 96%,var(--primary) 4%)}.specialty-config-order,.specialty-field-type{display:grid;place-items:center;min-height:32px;padding:4px;border-radius:8px;background:color-mix(in srgb,var(--primary) 10%,var(--panel));color:var(--primary);font-size:11px;font-weight:800}.specialty-config-copy{display:grid;gap:3px;min-width:0}.specialty-config-copy strong,.specialty-config-copy small{overflow:hidden;text-overflow:ellipsis}.specialty-config-copy small{color:var(--muted)}.specialty-workflow-overview{display:grid;gap:16px}.specialty-overview-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.specialty-overview-header h2,.specialty-overview-header p{margin:3px 0}.specialty-overview-metrics{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px}.specialty-overview-metrics article{display:grid;gap:2px;padding:14px;border:1px solid var(--line);border-radius:11px;background:color-mix(in srgb,var(--primary) 5%,var(--panel))}.specialty-overview-metrics strong{font-size:22px;color:var(--primary)}.specialty-overview-metrics span{font-size:11px;color:var(--muted)}.specialty-overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.specialty-overview-grid>section{min-width:0}.specialty-overview-grid h3{margin:0 0 8px}.specialty-report-settings{margin-top:4px}.specialty-admin-editor{position:static;max-height:none;overflow:visible}

/* AIS LIS 5.4.9 — référentiels microbiologiques par rubrique. */
.microbiology-admin-toolbar{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(0,1.4fr);gap:18px;align-items:end;margin-bottom:14px}.microbiology-admin-toolbar h2,.microbiology-admin-toolbar p{margin:3px 0}.micro-admin-tabs{display:flex;justify-content:flex-end;gap:7px;overflow-x:auto;padding-bottom:2px}.micro-admin-tabs button{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);font-weight:750;cursor:pointer}.micro-admin-tabs button.active{border-color:var(--primary);background:var(--primary);color:#fff}.micro-admin-tabs button.active .badge{background:rgba(255,255,255,.18);color:#fff}.micro-admin-panel[hidden]{display:none!important}.micro-reference-workbench{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr);gap:14px;align-items:start}.micro-reference-list,.micro-reference-editor{min-width:0}.micro-reference-list .card-header{align-items:flex-end}.micro-reference-list .card-header input{width:min(310px,100%)}.micro-reference-editor{position:sticky;top:84px}.micro-reference-list .table-wrap{max-height:calc(100vh - 260px);overflow:auto}.microbiology-mapping-card{max-width:1180px;margin:0 auto}.micro-mapping-wizard{display:grid;gap:14px}.micro-mapping-step{display:grid;grid-template-columns:42px minmax(0,1fr);gap:13px;padding:15px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--panel) 97%,var(--primary) 3%)}.micro-step-number{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--primary);color:#fff;font-weight:900}.micro-step-content{min-width:0}.micro-step-content h3,.micro-step-content p{margin:0 0 8px}.micro-step-content>label{display:grid;gap:5px;max-width:720px}.micro-mapping-summary{display:flex;justify-content:space-between;gap:10px;margin-top:9px;padding:10px 12px;border-radius:9px;background:color-mix(in srgb,var(--primary) 7%,var(--panel));font-size:11px}.micro-mapping-targets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.micro-mapping-targets label{display:grid;gap:5px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.micro-mapping-targets label small{min-height:30px;color:var(--muted)}.micro-mapping-preview{margin-top:10px}.micro-preview-flow{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:10px;border:1px dashed color-mix(in srgb,var(--primary) 45%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--primary) 4%,var(--panel))}.micro-preview-flow span{padding:6px 8px;border-radius:7px;background:var(--panel);border:1px solid var(--line);font-size:10px}.micro-preview-flow b{color:var(--primary)}

@media(max-width:1180px){.specialty-workbench{grid-template-columns:1fr}.specialty-workflow-browser{position:static;max-height:none}.specialty-workflow-navigator{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));max-height:280px}.specialty-overview-grid{grid-template-columns:1fr}.microbiology-admin-toolbar{grid-template-columns:1fr}.micro-admin-tabs{justify-content:flex-start}.micro-reference-workbench{grid-template-columns:1fr}.micro-reference-editor{position:static}.micro-reference-list .table-wrap{max-height:none}.micro-mapping-targets{grid-template-columns:1fr}}
@media(max-width:760px){.specialty-workflow-context,.specialty-overview-header,.specialty-list-heading,.micro-mapping-summary{align-items:stretch;flex-direction:column}.specialty-config-row{grid-template-columns:36px minmax(0,1fr)}.specialty-config-row .inline-actions{grid-column:1/-1}.specialty-overview-metrics{grid-template-columns:repeat(2,minmax(100px,1fr))}.microbiology-admin-toolbar{padding:12px}.micro-admin-tabs{display:grid;grid-template-columns:1fr 1fr}.micro-admin-tabs button{justify-content:center}.micro-mapping-step{grid-template-columns:1fr}.micro-step-number{width:30px;height:30px}.micro-reference-list .card-header{align-items:stretch}.micro-reference-list .card-header input{width:100%}}
