:root{--bg:#14110e;--bg-2:#1c1814;--panel:#221c16;--panel-2:#2a231c;--line:#3a3128;--line-strong:#524737;--text:#f3ebe0;--muted:#a39482;--gold:#d4b483;--gold-2:#e8c99a;--brass:#9a7b4f;--pos:#7dba7a;--neg:#d4745e;--chip:#2f281f;--shadow:0 18px 40px #00000059;--radius:14px;--sidebar:240px;--sans:"Segoe UI", "Trebuchet MS", "Candara", system-ui, sans-serif;--serif:Palatino, "Palatino Linotype", "Book Antiqua", Georgia, serif;--mono:"Cascadia Mono", "Segoe UI Mono", "Consolas", monospace}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{font-family:var(--sans);background:radial-gradient(1200px 500px at 10% -10%, #d4b48314, transparent 50%), var(--bg);color:var(--text);letter-spacing:.01em}button,input,select,textarea{font:inherit}input,select,textarea{color:var(--text);background:var(--bg-2);border:1px solid var(--line);border-radius:10px;outline:none;padding:8px 10px}select{cursor:pointer}select option,select optgroup{background:var(--panel);color:var(--text)}input:focus,select:focus,textarea:focus{border-color:var(--gold)}a{color:inherit;text-decoration:none}.shell{grid-template-columns:var(--sidebar) 1fr;min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--line);background:linear-gradient(#1a1612 0%,#12100d 100%);flex-direction:column;gap:28px;height:100vh;padding:28px 20px;display:flex;position:sticky;top:0}.brand{flex-direction:column;gap:4px;padding:0 8px;display:flex}.brand strong{font-family:var(--serif);color:var(--gold-2);letter-spacing:.04em;font-size:28px;font-weight:600}.brand span{color:var(--muted);text-transform:uppercase;letter-spacing:.16em;font-size:12px}.nav{flex-direction:column;gap:6px;display:flex}.nav a{color:var(--muted);border-radius:10px;align-items:center;gap:10px;padding:10px 12px;display:flex}.nav a.active,.nav a:hover{background:var(--panel);color:var(--text)}.nav a.active{box-shadow:inset 2px 0 0 var(--gold)}.sidebar-actions{flex-direction:column;gap:8px;padding:0 4px;display:flex}.sidebar-msg{color:var(--muted);margin:4px 0 0;font-size:12px;line-height:1.35}.ext-link{color:var(--gold-2);text-underline-offset:3px;text-decoration:underline}.ext-link:hover{color:var(--text)}.link-cell{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.snapshot-table{border-collapse:separate;border-spacing:0}.snapshot-table .col-produit{width:30%;max-width:22.5rem}.snapshot-table .produit-name{text-overflow:ellipsis;white-space:nowrap;max-width:22.5rem;display:block;overflow:hidden}.snapshot-table .produit-meta{text-overflow:ellipsis;white-space:nowrap;max-width:22.5rem;font-size:12px;overflow:hidden}.snapshot-table .col-auto{vertical-align:top;width:4.5rem}.snapshot-table .col-liens{vertical-align:middle;width:4.5rem}.snapshot-toolbar{align-items:flex-end}.snapshot-pricing-info-btn{white-space:nowrap;flex-shrink:0;margin-left:auto}.pricing-info-modal{width:min(560px,100%);max-height:min(85vh,720px);overflow:auto}.pricing-info-modal h2{text-transform:none;letter-spacing:normal;font-size:1.25rem}.pricing-info-section h3{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 8px;font-size:12px;font-weight:600}.pricing-info-section ul{flex-direction:column;gap:6px;margin:0;padding-left:1.2rem;display:flex}.pricing-info-section li{font-size:14px;line-height:1.45}.pricing-info-section+.pricing-info-section{margin-top:4px}.pricing-info-foot{margin:4px 0 0;font-size:13px;line-height:1.45}.pricing-info-modal code{background:color-mix(in srgb, var(--line) 60%, transparent);border-radius:4px;padding:1px 5px;font-size:.9em}.snapshot-toolbar-field{flex-direction:column;gap:6px;display:flex}.snapshot-field-label{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:12px;line-height:1.2}.snapshot-toolbar-actions{flex-wrap:wrap;align-items:center;gap:8px;min-height:38px;display:flex}.snapshot-cm-count{text-transform:none;letter-spacing:normal;font-size:13px}.snapshot-table td.snapshot-total-high{color:#1a1608;background:#e8c440b8;border-radius:2px;font-weight:700}.snapshot-table tbody tr{transition:background .4s}.snapshot-table tbody tr>td{transition:border-color .4s,box-shadow .4s}.snapshot-table tbody tr.snapshot-row-empty{background:linear-gradient(90deg, color-mix(in srgb, var(--neg) 22%, transparent) 0%, color-mix(in srgb, var(--neg) 9%, var(--panel)) 22%, color-mix(in srgb, var(--neg) 6%, var(--panel)) 100%)}.snapshot-table tbody tr.snapshot-row-empty>td{border-bottom-color:color-mix(in srgb, var(--neg) 20%, var(--line));background:0 0}.snapshot-table tbody tr.snapshot-row-empty>td:first-child{box-shadow:inset 3px 0 0 color-mix(in srgb, var(--neg) 65%, transparent)}.snapshot-table tbody tr.snapshot-row-empty .value-input{border-color:color-mix(in srgb, var(--neg) 45%, var(--line));background:color-mix(in srgb, var(--neg) 8%, var(--panel-2));transition:border-color .35s,background-color .35s,box-shadow .35s}.snapshot-table tbody tr.snapshot-row-empty .value-input:focus{border-color:color-mix(in srgb, var(--neg) 60%, var(--gold));box-shadow:0 0 0 3px color-mix(in srgb, var(--neg) 16%, transparent)}.snapshot-table tfoot .snapshot-total-row td{border-top:1px solid var(--line-strong);padding-top:12px;font-weight:700}.lien-stack{flex-direction:column;gap:2px;font-size:12px;line-height:1.25;display:flex}.lien-missing{color:var(--muted);opacity:.55}.cm-btn{flex-shrink:0;width:34px;height:28px;padding:0}.cm-btn:disabled{opacity:.45;cursor:not-allowed}.cm-mark{font-family:var(--mono);letter-spacing:.04em;color:var(--gold-2);font-size:11px;font-weight:700}.cm-spinner{border:2px solid var(--line-strong);border-top-color:var(--gold-2);border-radius:50%;width:12px;height:12px;animation:.7s linear infinite cm-spin}@keyframes cm-spin{to{transform:rotate(360deg)}}.cm-feedback{max-width:180px;margin-top:4px;font-size:11px;line-height:1.3}.cm-feedback.ok{color:var(--pos)}.cm-feedback.warn{color:var(--gold)}.cm-feedback.err{color:var(--neg)}.main{min-width:0;padding:28px 36px 64px}.page-head{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px;display:flex}.page-head h1{font-family:var(--serif);margin:0;font-size:34px;font-weight:600}.page-head p{color:var(--muted);margin:6px 0 0}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.grid{gap:16px;display:grid}.kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 18px 16px}.card h2,.card h3{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 12px;font-size:13px;font-weight:600}.kpi-label{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;font-size:12px}.kpi-value{font-family:var(--serif);margin-top:8px;font-size:28px}.kpi-sub{color:var(--muted);margin-top:4px;font-size:13px}.pos{color:var(--pos)}.neg{color:var(--neg)}td.pos,td.neg{font-weight:600}.muted{color:var(--muted)}.btn{border:1px solid var(--line-strong);background:var(--panel-2);color:var(--text);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:8px 14px;display:inline-flex}.btn:hover{border-color:var(--gold)}.btn.primary{background:var(--gold);color:#1a140e;border-color:var(--gold);font-weight:600}.btn.success{background:color-mix(in srgb, var(--pos) 22%, var(--panel-2));border-color:color-mix(in srgb, var(--pos) 55%, var(--line-strong));color:var(--pos);font-weight:600}.btn.success:hover{border-color:var(--pos);background:color-mix(in srgb, var(--pos) 30%, var(--panel-2))}.btn.sell{background:color-mix(in srgb, var(--neg) 10%, var(--panel-2));border-color:color-mix(in srgb, var(--neg) 65%, var(--line-strong));color:var(--neg);font-weight:600}.btn.sell:hover{border-color:var(--neg);background:color-mix(in srgb, var(--neg) 18%, var(--panel-2))}.btn.danger{background:color-mix(in srgb, var(--neg) 72%, #2a1210);border-color:color-mix(in srgb, var(--neg) 85%, #1a0c0a);color:#ffe8e2;font-weight:600}.btn.danger:hover{border-color:var(--neg);background:color-mix(in srgb, var(--neg) 82%, #1a0c0a)}.btn.small{padding:5px 10px;font-size:13px}.filters{flex-wrap:wrap;gap:10px;margin-bottom:16px;display:flex}.table-wrap{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);overflow:auto}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;padding:10px 12px}th{color:var(--muted);letter-spacing:.1em;text-transform:uppercase;background:#1b1713;font-size:11px;position:sticky;top:0}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--mono);font-size:13px}tr.clickable{cursor:pointer}tbody tr.clickable:hover{background:#2b241c}.chip{background:var(--chip);border:1px solid var(--line);color:var(--gold-2);border-radius:999px;align-items:center;padding:2px 8px;font-size:12px;display:inline-flex}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid;overflow:visible}.form-grid label,.stack label{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;z-index:0;flex-direction:column;gap:6px;font-size:12px;display:flex;position:relative;overflow:visible}.form-grid label:focus-within{z-index:3}.form-grid label input,.form-grid label select,.form-grid label textarea,.stack label input,.stack label select,.stack label textarea{text-transform:none;letter-spacing:normal;color:var(--text)}.form-grid .full{grid-column:1/-1}.product-add{flex-direction:column;gap:16px;margin-bottom:16px;display:flex}.form-section h2{margin:0 0 .35rem;font-size:1.08rem}.form-section h3{letter-spacing:.08em;text-transform:uppercase;color:var(--gold);margin:1.15rem 0 .55rem;font-size:.78rem}.form-section>.muted{margin-top:0}.field-hint{text-transform:none;letter-spacing:normal;color:var(--muted);margin-top:.35rem;font-size:.82rem;font-weight:400;display:block}.catalog-hit-list{flex-direction:column;gap:6px;margin:.75rem 0 0;padding:0;list-style:none;display:flex}.catalog-hit-list li{margin:0}.catalog-hit{text-align:left;border:1px solid var(--line);background:var(--panel-2);width:100%;color:var(--text);cursor:pointer;border-radius:10px;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;display:flex}.catalog-hit:hover,.catalog-hit.selected{border-color:var(--gold)}.catalog-hit-name{font-size:14px;font-weight:600}.catalog-hit-meta{color:var(--muted);font-size:12px}.condition-picks{border:none;min-width:0;margin:0;padding:0}.condition-picks legend{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-size:12px}.condition-pick-list{flex-wrap:wrap;gap:8px;display:flex}.condition-pick{border:1px solid var(--line);background:var(--panel-2);letter-spacing:0;text-transform:none;color:var(--text);cursor:pointer;border-radius:8px;flex-direction:row;align-items:center;gap:6px;margin:0;padding:6px 10px;font-size:13px;display:inline-flex}.condition-pick:has(input:checked){border-color:var(--gold);color:var(--gold-2)}.condition-pick input{margin:0}.wishlist-lot-edit{border:1px solid var(--line);background:var(--panel-2);border-radius:10px;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px;padding:12px;display:grid}.wishlist-lot-edit .full{grid-column:1/-1}.catalog-lock-banner{border:1px solid color-mix(in srgb, var(--gold-2) 35%, var(--line));background:color-mix(in srgb, var(--gold-2) 8%, transparent);border-radius:10px;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.catalog-lock-banner strong{color:var(--gold-2);margin-bottom:4px;font-size:13px;display:block}.catalog-lock-banner p{color:var(--muted);text-transform:none;letter-spacing:normal;margin:0;font-size:13px;line-height:1.45}.form-grid label.catalog-locked{color:color-mix(in srgb, var(--muted) 90%, transparent)}.form-grid label.catalog-locked input,.form-grid label.catalog-locked select{background:color-mix(in srgb, var(--line) 40%, var(--bg,#1a1510));border-color:color-mix(in srgb, var(--line) 80%, transparent);color:color-mix(in srgb, var(--text) 72%, var(--muted));cursor:not-allowed;opacity:.92}.form-grid label.catalog-locked input:focus,.form-grid label.catalog-locked select:focus{box-shadow:none;outline:none}.stack{flex-direction:column;gap:12px;display:flex}.modal-back{z-index:20;background:#0806049e;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--line-strong);width:min(480px,100%);box-shadow:var(--shadow);border-radius:16px;padding:20px}.modal h2{font-family:var(--serif);margin:0 0 16px}.alloc{flex-direction:column;gap:10px;display:flex}.dash-alerts{margin-top:16px}.dash-alerts-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.dash-alerts-controls label{align-items:center;gap:8px;display:flex}.dash-alerts-threshold{width:72px}.dash-alloc{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}.dash-alloc-card{flex-direction:column;height:320px;min-height:320px;max-height:320px;display:flex}.dash-alloc-card .alloc{flex:1;min-height:0;padding-right:4px;overflow-y:auto}.alloc-hint{color:var(--muted);margin:-4px 0 12px;font-size:12px}.alloc-row{width:100%;color:inherit;cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:10px;grid-template-columns:110px 1fr 90px;align-items:center;gap:10px;padding:6px 8px;font-size:13px;display:grid}.alloc-row:hover{background:var(--panel-2);border-color:var(--line)}.alloc-row.active{border-color:var(--gold);background:#2f281f}.filter-chip{cursor:pointer;border:1px solid var(--line-strong)}.filter-chip:hover{border-color:var(--gold)}.bar{background:#2f281f;border-radius:99px;height:8px;overflow:hidden}.bar>span{background:linear-gradient(90deg, var(--brass), var(--gold));height:100%;display:block}.detail-grid{grid-template-columns:1.2fr .8fr;gap:16px;display:grid}.product-fiche-body{align-items:flex-start;gap:20px;display:flex}.product-image-wrap{border:1px solid var(--line);background:var(--panel-2);border-radius:12px;flex-shrink:0;width:300px;padding:12px}.product-image{object-fit:contain;width:100%;height:auto;max-height:420px;display:block}.product-image-wrap-empty{min-height:200px;color:var(--muted);justify-content:center;align-items:center;font-size:14px;display:flex}.product-image-col{flex-direction:column;flex-shrink:0;gap:8px;width:300px;display:flex}.product-image-col .product-image-wrap{width:100%}.product-image-actions{flex-wrap:wrap;gap:8px}.admin-catalog-fiche .admin-catalog-cm{border-top:1px solid var(--line);margin-top:20px;padding-top:20px}.admin-catalog-cm label.full input{width:100%;font-family:var(--mono,monospace);font-size:13px}@media (width<=900px){.product-fiche-body{flex-direction:column}.product-image-wrap,.product-image-col{width:100%;max-width:320px}}.product-cell{align-items:flex-start;gap:10px;min-width:0;display:flex}.product-cell-body{flex:1;min-width:0}.product-thumb{object-fit:contain;border:1px solid var(--line);background:var(--panel-2);border-radius:6px;flex-shrink:0;width:44px;height:44px}.product-thumb-empty{background:var(--panel-2);display:inline-block}.product-fiche .dl{flex:1;min-width:0}.dl{grid-template-columns:160px 1fr;gap:8px 12px;font-size:14px;display:grid}.dl dt{color:var(--muted)}.value-input{text-align:right;width:110px;font-family:var(--mono);transition:border-color .35s,background-color .35s,box-shadow .35s}.chart{height:320px;overflow:visible}.chart-event-legend{color:var(--muted);gap:16px;margin-top:8px;font-size:12px;display:flex}.chart-event-swatch{vertical-align:middle;clip-path:polygon(50% 0%,0% 100%,100% 100%);width:10px;height:10px;margin-right:6px;display:inline-block}.chart-event-swatch.purchase{background:#7dba7a}.chart-event-swatch.sale{background:#d4745e;transform:rotate(180deg)}.chart-event-lines{color:var(--pos);margin-top:6px;font-size:12px}.chart-empty-msg{align-items:center;min-height:80px;display:flex}.chart-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.chart-head h2{margin:0}.chart-unit-toggle{flex-shrink:0;gap:4px;display:flex}.chart-ranking-scroll{height:420px;max-height:420px;overflow:auto}.chart-ranking-inner{min-width:100%;min-height:420px}.chart-ranking-inner .recharts-wrapper,.chart-ranking-inner .recharts-surface{overflow:visible}.chart-ranking-inner .recharts-yAxis .recharts-cartesian-axis-tick text{cursor:pointer}.chart-ranking-inner .recharts-yAxis .recharts-cartesian-axis-tick text:hover{fill:var(--text)}.chart-ranking-inner .recharts-bar-background{pointer-events:all}.chart-floating-tooltip{z-index:1000;pointer-events:none;max-width:280px;position:fixed;box-shadow:0 6px 24px #0006}.chart-ranking,.chart-product-evolution{height:420px;overflow:visible}.dash-top-grid{grid-template-columns:minmax(300px,1fr) minmax(300px,1.2fr);align-items:start;gap:20px;margin-top:8px;display:grid}.dash-top-subtitle{color:var(--muted);margin:0 0 8px;font-size:14px;font-weight:600}.dash-top-evolution-empty{align-items:center;min-height:120px;padding:16px 0;display:flex}.dash-chart-tooltip{background:#221c16;border:1px solid #3a3128;border-radius:10px;padding:10px 12px;font-size:13px;line-height:1.4}.dash-chart-tooltip strong{margin-bottom:4px;display:block}@media (width<=900px){.dash-top-grid{grid-template-columns:1fr}.product-focus-stats{flex-wrap:wrap}}.metric-toggle{flex-shrink:0;gap:6px;display:flex}.product-focus{border:1px solid var(--line);background:#e8c99a14;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:14px;padding:14px 16px;display:flex}.product-focus-stats{gap:20px;display:flex}.product-focus-stats>div{flex-direction:column;gap:2px;font-size:13px;display:flex}.product-focus-stats strong{font-family:var(--mono);font-size:15px}.chart-pie{height:280px}.chart-pie.year-pie{height:300px;overflow:visible}.year-pie .recharts-wrapper,.year-pie .recharts-surface{overflow:visible}.year-callout text{font-family:var(--sans);letter-spacing:.02em}.dash-pies{grid-template-columns:repeat(2,minmax(0,1fr))}.alloc-nums{flex-direction:column;align-items:flex-end;gap:2px;font-size:12px;line-height:1.2;display:flex}.product-links{flex-wrap:wrap;gap:10px 14px;margin-top:10px;font-size:13px;display:flex}.cm-status-row{align-items:center;gap:8px;margin-bottom:6px;display:flex}.cm-dot{background:var(--muted);border-radius:50%;flex-shrink:0;width:8px;height:8px}.cm-dot.ok{background:var(--pos)}.cm-dot.err{background:var(--neg)}.global-search{padding:0 14px 10px;position:relative}.global-search input{width:100%}.search-pop{z-index:40;background:var(--panel);border:1px solid var(--line);max-height:280px;box-shadow:var(--shadow);border-radius:10px;position:absolute;top:100%;left:14px;right:14px;overflow:auto}.search-pop button,.search-pop a{text-align:left;width:100%;color:var(--text);cursor:pointer;background:0 0;border:0;padding:8px 10px;font-size:13px;text-decoration:none;display:block}.search-pop button:hover,.search-pop a:hover{background:var(--panel-2)}.notice{border:1px solid var(--line);color:var(--muted);background:#2a2318;border-radius:10px;padding:12px 14px}.error{color:var(--neg)}.login-page{min-height:100vh;position:relative}.login-admin-fab{z-index:20;position:fixed;bottom:20px;right:20px}.login-admin-gear{border:1px solid var(--line);background:var(--panel);width:44px;height:44px;color:var(--muted);cursor:pointer;box-shadow:var(--shadow);border-radius:999px;font-size:20px;line-height:1}.login-admin-gear:hover{color:var(--gold);border-color:var(--gold)}.admin-modal-backdrop{z-index:30;background:#0000008c;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.admin-modal{width:min(420px,100%)}@media (width<=1100px){.kpis,.detail-grid,.form-grid,.dash-pies,.dash-alloc,.shell{grid-template-columns:1fr}.sidebar{flex-flow:wrap;align-items:center;height:auto;position:relative}}
