:root{color-scheme:light;--brand-navy:#143a57;--brand-blue:#1f8fa9;--brand-sand:#c6a06a;--brand-burnt:#b75a22;--brand-teal:#5ca9b5;--brand-slate:#6f8fa0;--brand-mist:#9eb4bf;--bg:#eef4f7;--panel:hsla(0,0%,100%,.92);--panel-strong:#fff;--panel-alt:rgba(241,248,251,.94);--text:var(--brand-navy);--muted:#506779;--accent:var(--brand-blue);--accent-dark:#176f85;--refresh:var(--brand-teal);--refresh-dark:#468792;--annuaire:var(--brand-sand);--annuaire-dark:#aa8450;--vip:var(--brand-slate);--vip-dark:#567282;--danger:var(--brand-burnt);--danger-dark:#953f14;--border:rgba(20,58,87,.14);--border-strong:rgba(20,58,87,.22);--shadow:0 24px 70px rgba(20,58,87,.12);--ring:0 0 0 3px rgba(31,143,169,.18);--row-alt:hsla(0,0%,100%,.58);--row-hover:rgba(31,143,169,.08);--row-selected:rgba(31,143,169,.13);--row-validated:hsla(35,45%,60%,.18);--row-validated-alt:hsla(35,45%,60%,.24);--row-validated-strong:hsla(35,45%,60%,.34);--row-gal-create:rgba(183,90,34,.12);--row-gal-create-alt:rgba(183,90,34,.18);--row-gal-update:hsla(35,45%,60%,.15);--row-gal-update-alt:hsla(35,45%,60%,.22);--warning:#8b4018;--warning-bg:hsla(35,45%,60%,.18);--warning-border:rgba(183,90,34,.22);--success:#0f5a72;--success-bg:rgba(92,169,181,.14);--chip-bg:rgba(31,143,169,.08);--chip-border:rgba(31,143,169,.18);--chip-text:var(--brand-navy);--section-bar-bg:hsla(0,0%,100%,.72);--section-bar-border:rgba(20,58,87,.14)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;padding:18px 14px 14px;font-family:Segoe UI,Tahoma,Arial,sans-serif;background:radial-gradient(circle at top left,rgba(31,143,169,.16),transparent 28%),radial-gradient(circle at top right,rgba(183,90,34,.14),transparent 24%),linear-gradient(180deg,#f9fbfc 0,var(--bg) 100%);color:var(--text);font-size:13px}body:before{content:"";position:fixed;top:0;left:0;right:0;height:6px;z-index:40;background:linear-gradient(90deg,var(--brand-burnt) 0,var(--brand-sand) 18%,var(--brand-blue) 42%,var(--brand-teal) 64%,var(--brand-slate) 82%,var(--brand-mist) 100%)}.shell{max-width:98vw;margin:0 auto}h1{margin:0 0 12px;color:var(--text);font-size:clamp(1.35rem,2vw,2rem);letter-spacing:-.02em}.title-row{gap:10px}.title-row,.top-header{display:flex;align-items:center}.top-header{justify-content:space-between;gap:16px;margin-bottom:14px;padding:20px 22px;border:1px solid var(--border);border-radius:26px;background:linear-gradient(135deg,hsla(0,0%,100%,.97),rgba(241,248,251,.94) 68%,rgba(230,241,246,.92));box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.user-panel{min-width:260px;justify-content:flex-end}.user-panel,.user-row{display:flex;align-items:center}.user-row{gap:8px}.ticket-bell{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;border:1px solid var(--border);background:linear-gradient(135deg,hsla(0,0%,100%,.96),rgba(241,248,251,.9));box-shadow:0 10px 24px rgba(20,58,87,.08)}.ticket-bell:hover{background:linear-gradient(135deg,rgba(241,248,251,.96),rgba(230,241,246,.92))}.ticket-bell-icon{width:15px;height:15px;display:inline-flex}.ticket-bell-icon svg{width:15px;height:15px;fill:var(--text)}.ticket-bell-text{font-size:12px;color:var(--text);font-weight:700}.ticket-bell-badge{min-width:24px;padding:2px 8px;border-radius:999px;background:rgba(158,180,191,.24);color:var(--text);font-size:12px;font-weight:800;text-align:center}.ticket-bell-badge.is-active{background:linear-gradient(135deg,var(--danger),var(--danger-dark));color:#fff}.user-label{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.user-name{font-size:18px;font-weight:800;line-height:1.1;color:var(--text)}.user-logout{padding:5px 8px;font-size:11px}.admin-main-btn{font-size:14px;font-weight:700;padding:8px 12px}.toolbar{display:grid;grid-gap:6px;gap:6px;margin-bottom:12px}.toolbar-actions,.toolbar-filters{display:flex;flex-wrap:wrap;gap:6px;align-items:center}button,input,select,textarea{border:1px solid var(--border);border-radius:14px;padding:7px 10px;font-size:12px;background:var(--panel-strong);color:var(--text);transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease,transform .16s ease}input:focus,select:focus,textarea:focus{outline:none;border-color:rgba(31,143,169,.34);box-shadow:var(--ring)}textarea{resize:vertical;min-height:84px}.fulltext-search{flex:1 1 420px;min-width:280px}button{cursor:pointer;background:var(--panel);box-shadow:0 10px 24px rgba(20,58,87,.08)}button:hover:not(:disabled){transform:translateY(-1px)}button.primary{background:linear-gradient(135deg,var(--accent),var(--text));color:#fff;border-color:rgba(20,58,87,.08)}button.primary:hover{background:linear-gradient(135deg,var(--accent-dark),var(--text))}button.refresh{background:linear-gradient(135deg,var(--refresh),var(--vip));color:#fff;border-color:rgba(20,58,87,.08)}button.refresh:hover{background:linear-gradient(135deg,var(--refresh-dark),var(--vip-dark))}button.annuaire-btn{background:linear-gradient(135deg,var(--annuaire),var(--brand-burnt));color:#fff;border-color:rgba(20,58,87,.08)}button.annuaire-btn:hover{background:linear-gradient(135deg,var(--annuaire-dark),var(--danger-dark))}button.vip{background:linear-gradient(135deg,var(--vip),var(--text));color:#fff;border-color:rgba(20,58,87,.08)}button.vip:hover{background:linear-gradient(135deg,var(--vip-dark),var(--text))}button.danger{background:linear-gradient(135deg,var(--danger),var(--danger-dark));color:#fff;border-color:rgba(20,58,87,.08)}button.danger:hover{background:linear-gradient(135deg,var(--danger-dark),#713114)}button:disabled,button[disabled]{opacity:.45;cursor:not-allowed;filter:grayscale(20%)}.table-wrap{background:linear-gradient(180deg,hsla(0,0%,100%,.98) 0,var(--panel-alt) 100%);border:1px solid var(--border);border-radius:24px;max-height:68vh;overflow-x:auto;overflow-y:auto;overscroll-behavior:contain}.editor,.table-wrap{box-shadow:var(--shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.editor{background:linear-gradient(145deg,hsla(0,0%,100%,.99),rgba(241,248,251,.95) 68%,rgba(233,243,247,.92));border:1px solid var(--border);border-radius:28px;padding:18px;margin-bottom:14px}.editor-title{font-weight:700;margin-bottom:8px}.entry-kind-switch{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px;padding:8px 10px;border:1px dashed var(--border);border-radius:14px;background:hsla(0,0%,100%,.78)}.entry-kind-label{font-weight:700}.entry-kind-hint{color:var(--muted)}.editor-grid{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));grid-gap:8px;gap:8px}.editor-grid label{display:grid;grid-gap:4px;gap:4px;font-size:12px}.editor-grid label.field-required-missing{color:var(--warning)}.editor-grid input.field-required-missing,.editor-grid select.field-required-missing{border-color:rgba(183,90,34,.3);box-shadow:0 0 0 2px hsla(35,45%,60%,.18);background:rgba(255,249,240,.96)}.editor-grid input.field-required-missing:focus,.editor-grid select.field-required-missing:focus{outline:none;border-color:rgba(183,90,34,.38);box-shadow:0 0 0 3px hsla(35,45%,60%,.24)}.inline-field{display:flex;gap:8px;align-items:center}.inline-field input{min-width:120px;flex:0 0 140px}.field-suggest{font-size:11px;color:var(--muted);margin-top:-4px}.validation-line{display:flex;align-items:center;gap:10px;grid-column:span 2}.check-label{display:flex!important;align-items:center;gap:6px;margin:0}.field-suggest-inline{margin-top:0}.field-suggest button{margin-left:4px;padding:2px 6px;border-radius:999px;border:1px solid var(--border);background:rgba(31,143,169,.08);color:var(--text);box-shadow:none}.dup-panel{grid-column:1/-1;margin-top:4px;border-top:1px dashed var(--border);padding-top:8px}.dup-list{margin:0;padding-left:0;list-style:none;display:grid;grid-gap:4px;gap:4px}.link-row{width:100%;text-align:left;background:hsla(0,0%,100%,.88);border:1px solid rgba(20,58,87,.1);border-radius:14px;padding:5px 7px;box-shadow:none}.link-row:hover{background:rgba(31,143,169,.08)}table{width:100%;border-collapse:collapse;min-width:1460px;table-layout:fixed}td,th{border-bottom:1px solid var(--border);padding:8px;text-align:left;vertical-align:middle;font-size:12px;line-height:1.5}th{background:linear-gradient(180deg,hsla(0,0%,100%,.98),rgba(234,243,247,.96));position:-webkit-sticky;position:sticky;top:0;z-index:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text);font-weight:800}td{white-space:normal;overflow-wrap:anywhere;word-break:break-word}tbody tr:nth-child(2n){background:var(--row-alt)}tbody tr{transition:background-color .12s ease,box-shadow .12s ease;cursor:pointer}tbody tr:hover{background:var(--row-hover);box-shadow:inset 0 0 0 1px rgba(31,143,169,.16)}tbody tr.row-selected{background:var(--row-selected)!important}tbody tr.row-validated{background:var(--row-validated)}tbody tr.row-validated:nth-child(2n){background:var(--row-validated-alt)}tbody tr.row-validated:hover{background:hsla(35,45%,60%,.22);box-shadow:inset 3px 0 0 var(--brand-sand),inset 0 0 0 1px hsla(35,45%,60%,.26)}tbody tr.row-validated td:first-child{font-weight:700;color:var(--text);background:var(--row-validated-strong);border-left:3px solid var(--brand-sand)}tbody tr.row-selected.row-validated{background:rgba(31,143,169,.12)!important;box-shadow:inset 4px 0 0 var(--brand-sand),inset 0 0 0 1px rgba(31,143,169,.18)}tbody tr.row-selected.row-validated:hover{background:rgba(31,143,169,.16)!important;box-shadow:inset 4px 0 0 var(--brand-sand),inset 0 0 0 1px rgba(31,143,169,.2)}td input,td select{width:100%}.editor-grid input.input-locked{background:rgba(158,180,191,.2);color:#4c6373;border-color:rgba(20,58,87,.12);cursor:not-allowed;opacity:1}.small{color:var(--muted);font-size:12px}.info-strong{color:var(--success)}.warning{color:var(--warning);font-weight:700}.summary-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px}.summary-total{font-weight:800;color:var(--text);white-space:nowrap}.dryrun-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:10px;gap:10px;margin:8px 0}.dryrun-kpi-card{background:hsla(0,0%,100%,.84);border:1px solid var(--border);border-radius:18px;padding:10px 12px;box-shadow:0 14px 30px rgba(20,58,87,.08)}.dryrun-kpi-card strong{font-size:20px}.selection-strip{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:8px 0;padding:10px 12px;border:1px solid var(--border);border-radius:18px;background:hsla(0,0%,100%,.8);box-shadow:0 14px 30px rgba(20,58,87,.08)}.selection-preview{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 8px}.selection-chip{font-size:12px;padding:4px 10px;border-radius:999px;border:1px solid var(--chip-border);background:var(--chip-bg);color:var(--chip-text)}.dryrun-table-wrap{max-height:65vh}.dryrun-table{min-width:1220px}.action-badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:700;text-transform:uppercase}.action-create{background:rgba(92,169,181,.14);color:var(--success);border:1px solid rgba(92,169,181,.24)}.action-update{background:rgba(31,143,169,.12);color:var(--text);border:1px solid rgba(31,143,169,.22)}.action-noop{background:rgba(158,180,191,.16);color:#4d5d6a;border:1px solid rgba(20,58,87,.14)}.action-skip{background:hsla(35,45%,60%,.16);color:var(--warning);border:1px solid rgba(183,90,34,.16)}.dryrun-reason{color:var(--warning);font-weight:600}.diff-tags{display:flex;flex-wrap:wrap;gap:4px}.diff-tag{display:inline-flex;align-items:center;border-radius:999px;border:1px solid rgba(20,58,87,.12);background:hsla(0,0%,100%,.84);color:var(--text);padding:2px 7px;font-size:11px}.scroll-editor-btn{position:fixed;right:18px;bottom:18px;z-index:20;background:linear-gradient(135deg,var(--vip),var(--text));color:#fff;border-color:rgba(20,58,87,.08);box-shadow:0 18px 34px rgba(20,58,87,.18)}.scroll-editor-btn:hover{background:linear-gradient(135deg,var(--vip-dark),var(--text))}@media (max-width:1200px){.editor-grid{grid-template-columns:repeat(2,minmax(160px,1fr))}.validation-line{grid-column:span 1;gap:4px}.top-header,.validation-line{align-items:flex-start;flex-direction:column}.title-row{flex-wrap:wrap}.user-panel{min-width:0;width:100%;justify-content:flex-start}.fulltext-search{flex-basis:100%;min-width:0}.summary-row{flex-direction:column;align-items:flex-start}.table-wrap{max-height:58vh}.scroll-editor-btn{right:12px;bottom:12px}}.shell.comfortable button,.shell.comfortable input,.shell.comfortable select{font-size:13px;padding:7px 10px}.shell.comfortable td,.shell.comfortable th{font-size:13px;padding:10px;line-height:1.6}.dryrun-selection-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:8px;flex-wrap:wrap}.dryrun-selected-list{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.selected-chip{border:1px solid hsla(35,45%,60%,.28);background:hsla(35,45%,60%,.14);border-radius:999px;padding:3px 9px;font-size:12px;color:var(--text)}.gal-sync-alert{margin:8px 0;padding:10px 12px;border-radius:18px;border:1px solid var(--warning-border);background:rgba(255,247,238,.94);color:var(--warning);font-size:13px;box-shadow:0 14px 28px rgba(20,58,87,.08)}.gal-sync-alert strong{margin-right:6px}.ticket-form-wrap{margin-bottom:12px;background:linear-gradient(145deg,hsla(0,0%,100%,.99),rgba(241,248,251,.95) 68%,rgba(233,243,247,.92));border:1px solid var(--border);border-radius:24px;padding:14px;box-shadow:var(--shadow)}.ticket-form{display:grid;grid-gap:8px;gap:8px}.ticket-form label{display:grid;grid-gap:4px;gap:4px;font-size:12px}.ticket-status-modal-backdrop{position:fixed;inset:0;background:rgba(20,58,87,.35);display:flex;align-items:center;justify-content:center;padding:14px;z-index:60}.ticket-status-modal{width:min(780px,100%);max-height:92vh;overflow:auto;background:linear-gradient(180deg,hsla(0,0%,100%,.99),rgba(241,248,251,.98));border:1px solid var(--border);border-radius:22px;box-shadow:var(--shadow);padding:14px;display:grid;grid-gap:8px;gap:8px}.ticket-status-modal h2{margin:0;font-size:18px}.ticket-status-modal label{display:grid;grid-gap:4px;gap:4px;font-size:12px}.ticket-status-modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}tbody tr.row-gal-create{background:var(--row-gal-create)}tbody tr.row-gal-create:nth-child(2n){background:var(--row-gal-create-alt)}tbody tr.row-gal-create:hover{background:rgba(183,90,34,.22)}tbody tr.row-gal-update{background:var(--row-gal-update)}tbody tr.row-gal-update:nth-child(2n){background:var(--row-gal-update-alt)}tbody tr.row-gal-update:hover{background:hsla(35,45%,60%,.24)}