/* Table container: overflow-x isolated here (never on body), and the scroll boundary the sticky
   header sticks within — table can be dropped in with or without a maxHeight. */
.le-table-wrap{container-type:inline-size;container-name:le-table;overflow:hidden;border:1px solid var(--border-subtle);border-radius:var(--r-lg);background:var(--bg-0)}
.le-section-body--flush .le-table-wrap{border:none;border-radius:0 0 var(--r-lg) var(--r-lg)}
.le-section-head+.le-section-body--flush:has(.le-table-wrap){border-top:none}
.le-table-scroll{overflow:auto}
.le-table{width:100%;min-width:560px;border-collapse:collapse;font-family:var(--font-text);font-size:14px}
.le-table th{position:sticky;top:0;z-index:1;background:var(--tbl-head-bg);text-align:left;font-size:12px;font-weight:600;color:var(--ink-500);text-transform:uppercase;letter-spacing:.04em;padding:8px 8px;border-bottom:1px solid var(--border-subtle);white-space:nowrap}
.le-table td{border-bottom:1px solid var(--border-subtle);vertical-align:middle;color:var(--fg-2)}
/* Column alignment: text=left (default), number=right, status/date=center — set via data-align, never inline */
.le-table th[data-align="right"],.le-table td[data-align="right"]{text-align:right}
.le-table th[data-align="center"],.le-table td[data-align="center"]{text-align:center}
.le-table th[data-align="right"] .le-th-inner{justify-content:flex-end}
.le-table th[data-align="center"] .le-th-inner{justify-content:center}
.le-table th:first-child,.le-table td:first-child{padding-left:16px}
.le-table th:last-child,.le-table td:last-child{padding-right:16px}
.le-row--standard td{padding:var(--row-py-standard) 8px}
.le-row--compact td{padding:var(--row-py-compact) 8px}
.le-cell-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px;display:block}
td .le-cell-truncate{max-width:260px}
.le-row--standard td,.le-row--compact td{min-height:40px}
.le-table tr.le-row--clickable{cursor:pointer}
.le-table tr.le-row--clickable:hover{background:var(--bg-sunken)}
.le-table tr.le-row--clickable:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.le-table tr.le-row--selected td{background:var(--brand-tint)}
.le-table--striped tbody tr:nth-child(even):not(.le-row--selected) td{background:var(--tbl-stripe)}

.le-th-select,.le-td-select{width:44px;text-align:center;padding:0 8px}
.le-td-select .le-select-check,.le-th-select .le-select-check{vertical-align:middle}
.le-checkbox{width:18px;height:18px;accent-color:var(--brand);cursor:pointer}

.le-th-sort{display:inline-flex;align-items:center;gap:4px;background:none;border:none;padding:0;margin:0;font:inherit;text-transform:inherit;letter-spacing:inherit;color:var(--fg-muted);cursor:pointer}
.le-th-inner{display:inline-flex;align-items:center;gap:6px;width:100%}
.le-th-label{flex:none}
.le-th-head{display:inline-flex;align-items:center;gap:5px}
.le-th-icon{display:inline-flex;flex:none;color:currentColor}
.le-th-icon svg{width:14px;height:14px}
.le-th-filter{position:relative;flex:none;display:inline-flex}
.le-th-filter-btn{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;background:none;border:none;padding:0;color:var(--fg-faint);cursor:pointer}
.le-th-filter-btn:hover{color:var(--fg-muted)}
.le-filter-icon--active{color:var(--brand)}
.le-th-filter-btn:has(.le-filter-icon--active){color:var(--brand)}
.le-th-filter-pop{position:absolute;top:20px;left:0;z-index:10;background:#fff;border:1px solid var(--border-subtle);border-radius:var(--r-md);box-shadow:var(--shadow-md);padding:8px;min-width:160px;max-height:220px;overflow-y:auto;text-transform:none;letter-spacing:normal;font-weight:500}
.le-th-filter-pop-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 4px 6px;font-size:12px;font-weight:700;color:var(--fg-1);text-transform:none}
.le-th-filter-reset{display:inline-flex;align-items:center;min-height:32px;margin:-6px -8px;padding:0 8px;background:none;border:none;border-radius:var(--r-xs);color:var(--brand);font-size:12px;font-weight:600;cursor:pointer}
.le-th-filter-reset:hover{background:var(--bg-sunken)}
.le-th-filter-reset:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}
/* Checkbox rows (column filter, TableToolbar, Select multiple): the whole row is the hit target. 36px desktop / 44px touch, rows touch (no dead zone), 16px box, focus ring on the row. */
.le-th-filter-opt,.le-msel-opt{display:flex;align-items:center;gap:10px;min-height:36px;padding:0 8px;box-sizing:border-box;border-radius:var(--r-xs);font-size:13px;color:var(--fg-2);cursor:pointer;user-select:none;min-width:0}
.le-th-filter-opt:hover,.le-msel-opt:hover{background:var(--bg-sunken)}
.le-th-filter-opt:has(input:focus-visible),.le-msel-opt:has(input:focus-visible){box-shadow:inset 0 0 0 2px var(--brand)}
.le-th-filter-opt input,.le-msel-opt input{flex:none;width:16px;height:16px;margin:0;accent-color:var(--brand);cursor:pointer;outline:none}
@media (pointer:coarse){.le-th-filter-opt,.le-msel-opt{min-height:44px}.le-th-filter-reset{min-height:44px;margin:-12px -8px}}
.le-th-filter-empty{padding:6px 4px;font-size:12px;color:var(--fg-faint)}
.le-th-sort:hover{color:var(--fg-1)}
.le-th-sort--active{color:var(--brand)}
.le-sort-icon{fill:currentColor}
.le-table th[aria-sort="ascending"] .le-th-sort,.le-table th[aria-sort="descending"] .le-th-sort{color:var(--brand)}

.le-cell-number{font-family:var(--font-text);font-size:13px;color:var(--fg-1);font-variant-numeric:tabular-nums;white-space:nowrap;min-width:88px;display:inline-block}
.le-cell-number--empty{color:var(--fg-faint)}
.le-cell-number--muted{color:var(--fg-muted)}
.le-cell-number--danger{color:var(--danger-600)}
.le-cell-unit{color:var(--fg-muted);font-size:var(--fs-caption)}
.le-cell-number--stacked{display:inline-flex;flex-direction:column;align-items:flex-end;line-height:1.3;gap:1px;min-width:0}
.le-cell-number--stacked .le-cell-unit{font-size:11px}
.le-cell-qtyprice{display:inline-flex;flex-direction:column;align-items:flex-end;line-height:1.3;gap:1px;min-width:0}
.le-cell-qtyprice-qty{font:600 14px/1.3 var(--font-text);color:var(--fg-1)}
.le-cell-qtyprice-price{font:400 12px/1.3 var(--font-text);color:var(--fg-muted)}
.le-cell-qtyprice-price.le-cell-number--danger{color:var(--danger-600)}
.le-cell-delta--danger{color:var(--danger-600)}
.le-cell-delta--success{color:var(--success-600)}
.le-cell-delta--neutral{color:var(--fg-1)}
.le-delta-stable{min-width:0;padding:2px 8px;font-size:11px}
.le-input-cell{display:inline-flex;align-items:center;justify-content:flex-end;gap:4px;box-sizing:border-box;height:32px;padding:0 6px 0 8px;border-radius:var(--r-sm);border:1px solid var(--border-subtle);background:#fff}
.le-input-cell--md{width:128px}
.le-input-cell--sm{width:108px}
.le-input-cell .le-cell-unit{flex:none;width:28px;text-align:left}
.le-input-cell-reset{display:inline-flex;width:16px;height:16px;flex:none;align-items:center;justify-content:center;color:var(--fg-faint);background:none;border:none;padding:0;cursor:pointer;outline:none;visibility:hidden}
.le-input-cell--filled .le-input-cell-reset,
.le-input-cell--warning .le-input-cell-reset,
.le-input-cell--error .le-input-cell-reset{visibility:visible}
.le-input-cell-reset:hover{color:var(--fg-2)}
.le-input-cell--blank .le-input-cell-reset{visibility:hidden}
.le-input-cell input{border:none;outline:none;background:none;font:inherit;font-family:var(--font-text);font-variant-numeric:tabular-nums;text-align:right;color:var(--fg-1);flex:1;min-width:40px;width:auto}
.le-input-cell input::placeholder{color:var(--fg-faint)}
.le-input-cell--filled{border-color:var(--success-600)}
.le-input-cell:has(input:focus){border-color:var(--brand);box-shadow:0 0 0 3px var(--focus-ring);background:var(--brand-tint)}
.le-input-cell--error{border-color:var(--danger-600)}
.le-input-cell--warning{border-color:var(--warning-500)}
.le-input-cell--focus-success.le-input-cell:has(input:focus){border-color:var(--success-600);box-shadow:0 0 0 3px var(--success-50);background:none}
.le-input-cell--primary{border-width:1.5px}
.le-input-cell--primary.le-input-cell--empty{border-color:var(--border-strong)}
.le-input-cell--primary.le-input-cell:has(input:focus):not(.le-input-cell--focus-success){border-color:var(--ink-900);box-shadow:none;background:none}
.le-input-cell-add{box-sizing:border-box;height:32px;padding:0 12px;border-radius:var(--r-sm);border:1px solid var(--border-strong);background:#fff;color:var(--fg-2);font:600 13px var(--font-text);cursor:pointer}
.le-input-cell-add:hover:not(:disabled){background:var(--bg-sunken)}
.le-input-cell-add:disabled{opacity:.5;cursor:not-allowed}
.le-cell-qtyprice-input{display:flex;flex-direction:column;gap:2px;width:100%;min-width:96px;max-width:130px}
.le-qpi-row{display:flex;align-items:center;justify-content:center;gap:3px;height:26px;padding:0 6px;border-radius:var(--r-sm);border:1px solid var(--border-strong);box-sizing:border-box;background:var(--bg-0)}
.le-qpi-row input{border:none;outline:none;background:none;font:600 12px/1 var(--font-text);font-variant-numeric:tabular-nums;text-align:center;color:var(--fg-1);flex:1;min-width:0;width:auto}
.le-qpi-row--price{opacity:.75}
.le-qpi-row--price input{font-weight:400}
.le-qpi-unit{flex:none;font-size:10px;color:var(--fg-faint)}
.le-qpi-row--filled{border-color:var(--success-600)}
.le-qpi-row:has(input:focus){border-color:var(--brand);box-shadow:0 0 0 2px var(--focus-ring);background:var(--brand-tint)}
.le-qpi-row--error{border-color:var(--danger-600)}
.le-qpi-row--warning{border-color:var(--warning-500)}
.le-qpi-row--focus-success.le-qpi-row:has(input:focus){border-color:var(--success-600);box-shadow:0 0 0 2px var(--success-50);background:var(--success-50)}
.le-row--tone-danger td{background:var(--danger-50)}
.le-row--tone-danger.le-row--clickable:hover td{background:var(--danger-50)}
.le-row--tone-warning td{background:var(--warning-50)}
.le-row--tone-warning.le-row--clickable:hover td{background:var(--warning-50)}
.le-row--tone-warning.le-row--selected td{background:var(--brand-tint)}
.le-row--tone-muted td{color:var(--fg-faint)}
.le-row--tone-muted .le-cell-number{color:var(--fg-faint)}
.le-row--tone-muted .le-badge-status,.le-row--tone-muted .le-badge-tag{opacity:.65}
.le-row--tone-muted .le-select-check-btn{border-color:var(--border-strong);color:var(--fg-faint)}
.le-row--tone-total td{background:var(--bg-sunken);font-weight:700;border-top:1px solid var(--border-strong)}
.le-row--tone-total .le-qpi-row{border:none;background:none;padding:0}
.le-row--tone-total .le-qpi-row input{font-weight:700;color:var(--fg-1)}
.le-row--tone-total .le-qpi-row--price input{font-weight:600;color:var(--fg-muted)}
.le-row--tone-total .le-qpi-row .le-input-cell-reset,.le-row--tone-total .le-qpi-unit{display:none}
.le-row--tone-total input::placeholder{color:transparent}
.le-row--tone-total .le-input-cell{border:none;background:none}
.le-row--tone-total .le-input-cell-reset{display:none}
/* Sticky first column — pins the row's identifying cell (e.g. Référence) while the rest scrolls
   horizontally; needs its own opaque background per row state so scrolled content doesn't show through. */
.le-table--sticky-col td:first-child{position:sticky;left:0;z-index:1;background:var(--bg-0);box-shadow:1px 0 0 var(--border-subtle)}
.le-table--sticky-col th:first-child{position:sticky;left:0;z-index:2;background:var(--tbl-head-bg);box-shadow:1px 0 0 var(--border-subtle)}
.le-table--sticky-col tr.le-row--selected td:first-child{background:var(--brand-tint)}
.le-table--sticky-col tr.le-row--tone-danger td:first-child{background:var(--danger-50)}
.le-table--sticky-col tr.le-row--tone-warning td:first-child{background:var(--warning-50)}
.le-table--sticky-col tr.le-row--tone-warning.le-row--selected td:first-child{background:var(--brand-tint)}
.le-table--sticky-col tr.le-row--tone-muted td:first-child{color:var(--fg-faint)}
.le-table--sticky-col.le-table--striped tbody tr:nth-child(even):not(.le-row--selected) td:first-child{background:var(--tbl-stripe)}
.le-table--sticky-col .le-th-group-row th:first-child{z-index:3}
.le-table--sticky-col thead tr:not(.le-th-group-row) th:first-child{z-index:2}
.le-th-group-row th{position:sticky;top:0;z-index:2;background:var(--tbl-head-bg);border-bottom:1px solid var(--border-subtle);font-size:11px;font-weight:600;color:var(--ink-500);text-transform:uppercase;letter-spacing:.06em;padding:6px 8px 4px}
.le-th-subrow th{background:var(--tbl-head-bg);font-size:10px;line-height:14px;letter-spacing:.04em;color:var(--ink-400);font-weight:600}
.le-col-sep{border-right:1px solid var(--border-subtle)}
.le-col-sep-strong{border-right:1px solid var(--border-strong)}
.le-table thead tr+tr th{top:29px;z-index:1}
.le-toggle{position:relative;width:34px;height:20px;flex:none;border-radius:var(--r-pill);border:none;background:var(--ink-200);cursor:pointer;padding:0;transition:background var(--dur-1) var(--ease-out)}
.le-toggle:disabled{opacity:.5;cursor:not-allowed}
.le-toggle-knob{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:var(--shadow-xs);transition:transform var(--dur-1) var(--ease-out)}
.le-toggle--on{background:var(--success-600)}
.le-toggle--on .le-toggle-knob{transform:translateX(14px)}
.le-select-check{width:20px;height:20px;flex:none;border-radius:var(--r-xs);border:1.5px solid var(--border-strong);background:#fff;color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
.le-select-check:hover:not(:disabled){border-color:var(--brand)}
.le-select-check:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.le-select-check:disabled{opacity:.5;cursor:not-allowed}
.le-select-check--on,.le-select-check--indeterminate{background:var(--brand);border-color:var(--brand)}
.le-select-check-dash{width:8px;height:2px;background:#fff;border-radius:1px}
.le-cell-date{font-variant-numeric:tabular-nums;white-space:nowrap}
.le-select-cell-empty{display:inline-block;width:20px;height:20px}
.le-select-check-btn{width:28px;height:28px;flex:none;border-radius:var(--r-sm);border:1.5px solid var(--success-600);background:#fff;color:var(--success-600);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
.le-select-check-btn:hover:not(:disabled){background:var(--success-50)}
.le-select-check-btn:disabled{opacity:.5;cursor:not-allowed}
.le-select-check-btn--on{background:var(--success-600);color:#fff}
.le-select-check-btn--on:hover:not(:disabled){background:var(--success-700,var(--success-600));filter:brightness(.92)}
.le-select-check-btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.le-select-check-done{width:28px;height:28px;flex:none;border-radius:var(--r-sm);background:var(--success-600);color:#fff;display:inline-flex;align-items:center;justify-content:center}
.le-progress-summary{display:flex;align-items:center;gap:16px;padding:14px 20px;background:var(--bg-0);border:1px solid var(--border-subtle);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}
.le-progress-summary-text{display:flex;align-items:baseline;gap:10px;flex:none;white-space:nowrap}
.le-progress-summary-title{font:600 14px var(--font-text);color:var(--fg-1)}
.le-progress-summary-count{font-size:13px;color:var(--fg-muted)}
.le-progress-summary-track{flex:1;height:8px;border-radius:var(--r-pill);background:var(--ink-100);overflow:hidden}
.le-progress-summary-fill{height:100%;border-radius:var(--r-pill);background:var(--blue-600);transition:width var(--dur-1) var(--ease-out)}
.le-progress-summary-pct{flex:none;font:600 14px var(--font-text);color:var(--fg-1);min-width:36px;text-align:right}
.le-selection-bar{display:flex;align-items:center;gap:14px;padding:10px 16px;border-radius:var(--r-md);background:var(--brand-tint);border:1px solid var(--border-subtle)}
.le-selection-bar-count{font:600 13px var(--font-text);color:var(--brand);flex:none;white-space:nowrap}
.le-selection-bar-actions{display:flex;align-items:center;gap:10px;margin-left:auto}
.le-selection-bar-extend{background:none;border:none;padding:0;font:600 13px var(--font-text);color:var(--brand);text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.le-action-btn{white-space:nowrap}
.le-selection-bar-deselect{background:none;border:none;padding:0;font:600 13px var(--font-text);color:var(--fg-muted);cursor:pointer}
.le-selection-bar-deselect:hover{color:var(--fg-1);text-decoration:underline;text-underline-offset:2px}
@media (max-width:600px){
  .le-progress-summary{flex-wrap:wrap;padding:12px 14px}
  .le-progress-summary-track{width:100%;order:3}
  .le-selection-bar{flex-wrap:wrap}
  .le-selection-bar-actions{margin-left:0;width:100%}
}
.le-row-complete{display:inline-flex;width:32px;height:32px;align-items:center;justify-content:center;border-radius:50%}
.le-row-complete--done{color:var(--success-600);background:var(--success-50)}
.le-row-complete--pending{color:var(--fg-faint)}
.le-table-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;border-top:1px solid var(--border-subtle);background:var(--bg-0)}
.le-table-footer-count{font-size:13px;color:var(--fg-muted);white-space:nowrap;flex-shrink:0}
.le-table-footer-actions{display:flex;gap:12px}
.le-btn-success{background:var(--success-600);color:#fff}
.le-btn-success:hover{background:var(--green-700)}
.le-stepper-btn{width:28px;height:28px;flex:none;border-radius:var(--r-sm);border:1px solid var(--border-subtle);background:#fff;color:var(--fg-2);font-size:16px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}
.le-stepper-btn:hover:not(:disabled){background:var(--bg-sunken);border-color:var(--border-strong)}
.le-stepper-btn:disabled{color:var(--fg-faint);cursor:not-allowed}
.le-stepper-value{min-width:32px;text-align:center;font-family:var(--font-text);font-variant-numeric:tabular-nums;color:var(--fg-1)}
.le-stepper--disabled{opacity:.6}
.le-hq-msg{position:relative;display:flex;align-items:flex-start;gap:14px;background:var(--brand-tint);border:1px solid var(--border-subtle);border-radius:var(--r-md);padding:16px 52px 16px 18px;font-family:var(--font-text)}
.le-hq-msg-icon{flex:none;width:40px;height:40px;border-radius:var(--r-pill);background:#fff;color:var(--brand);display:inline-flex;align-items:center;justify-content:center;overflow:hidden}
.le-hq-msg-icon img{width:100%;height:100%;object-fit:cover}
.le-hq-msg-body{flex:1 1 auto;min-width:0}
.le-hq-msg-meta{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:10px;row-gap:2px}
.le-hq-msg-sender{font-size:14px;font-weight:700;color:var(--fg-1)}
.le-hq-msg-date{font-size:13px;color:var(--fg-muted)}
.le-hq-msg-text{margin:4px 0 0;font-size:14px;line-height:1.5;color:var(--fg-2);text-wrap:pretty}
.le-hq-msg-close{position:absolute;top:12px;right:12px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:none;border-radius:var(--r-sm);color:var(--fg-muted);cursor:pointer}
.le-hq-msg-close:hover{background:#fff;color:var(--fg-1)}
@media (max-width:600px){
  .le-hq-msg{gap:12px;padding:14px 48px 14px 14px}
  .le-hq-msg-icon{width:32px;height:32px}
  .le-hq-msg-close{width:44px;height:44px;top:8px;right:8px}
}
.le-field{display:flex;flex-direction:column;gap:6px;font-family:var(--font-text);min-width:0}
.le-field-label{font-size:13px;font-weight:600;color:var(--fg-1)}
.le-field-required{color:var(--danger-600);margin-left:2px}
.le-field-optional{font-weight:400;color:var(--fg-muted)}
.le-field-help{font-size:12px;color:var(--fg-muted)}
.le-field-error{font-size:12px;font-weight:500;color:var(--danger-600)}
.le-field-error-action{color:var(--danger-600);font-weight:600;text-decoration:underline;text-underline-offset:2px;white-space:nowrap}
.le-field-error-action:hover{color:var(--fg-1)}
.le-input,.le-select{position:relative;display:flex;align-items:center;gap:8px;height:42px;box-sizing:border-box;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:#fff;font-family:var(--font-text);transition:border-color var(--dur-1) var(--ease-out),box-shadow var(--dur-1) var(--ease-out)}
.le-input{padding:0 12px}
.le-input input{flex:1 1 auto;min-width:0;height:100%;padding:0;border:none;outline:none;background:none;font:400 14px var(--font-text);color:var(--fg-1)}
.le-input input::placeholder{color:var(--fg-faint)}
.le-input--number input{text-align:right;font-variant-numeric:tabular-nums}
.le-input-unit{flex:none;font-size:13px;color:var(--fg-muted)}
.le-select select{appearance:none;-webkit-appearance:none;width:100%;height:100%;padding:0 38px 0 12px;border:none;outline:none;background:none;font:400 14px var(--font-text);color:var(--fg-1);cursor:pointer;border-radius:inherit}
.le-select--empty select{color:var(--fg-faint)}
.le-select option{color:var(--fg-1)}
.le-select-chevron{position:absolute;right:12px;pointer-events:none;color:var(--fg-muted)}
.le-multiselect-trigger{display:flex;align-items:center;width:100%;height:100%;min-width:0;padding:0 38px 0 12px;border:none;outline:none;background:none;font:400 14px var(--font-text);color:var(--fg-1);text-align:left;cursor:pointer;border-radius:inherit}
.le-multiselect-trigger:disabled{cursor:not-allowed}
.le-select--empty .le-multiselect-trigger{color:var(--fg-faint)}
.le-multiselect-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.le-msel-pop{position:absolute;top:calc(100% + 4px);left:0;z-index:20;width:max-content;min-width:100%;max-width:360px;max-height:280px;overflow:auto;background:#fff;border:1px solid var(--border-subtle);border-radius:var(--r-md);box-shadow:var(--shadow-md);padding:8px;box-sizing:border-box}
.le-msel-pop:focus,.le-multiselect-pop:focus{outline:none}
.le-msel-pop--right{left:auto;right:0}
.le-msel-opt-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.le-msel-opt--disabled{opacity:.5;cursor:not-allowed}
.le-msel-opt--disabled:hover{background:none}
.le-msel-opt--disabled input{cursor:not-allowed}
.le-msel .le-multiselect-text{display:flex;min-width:0}
.le-msel-first{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.le-msel-more{flex:none;white-space:pre}
.le-msel.le-filterbar-select--on,.le-filterbar-select--on:hover{border-color:var(--brand)}
.le-multiselect-group+.le-multiselect-group{margin-top:6px}
.le-multiselect-group-label{padding:6px 8px 2px;cursor:default;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--fg-muted)}
.le-input:hover,.le-select:hover{border-color:var(--ink-400)}
.le-input:focus-within,.le-select:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--focus-ring)}
.le-input--error,.le-select--error,.le-input--error:hover,.le-select--error:hover{border-color:var(--danger-600)}
.le-input--error:focus-within,.le-select--error:focus-within{border-color:var(--danger-600);box-shadow:0 0 0 3px var(--danger-50)}
.le-input--disabled,.le-select--disabled,.le-input--disabled:hover,.le-select--disabled:hover{background:var(--bg-sunken);border-color:var(--border-subtle)}
.le-input--disabled input,.le-select--disabled select{color:var(--fg-muted);cursor:not-allowed}
.le-kpi-card{background:#fff;border:1px solid var(--border-subtle);border-radius:var(--r-md);padding:16px 18px;min-width:160px}
.le-kpi-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.le-kpi-label{font-size:12px;font-weight:600;line-height:1.35;color:var(--fg-muted);text-transform:uppercase;letter-spacing:.04em;flex:1 1 auto;min-width:0}
.le-kpi-icon{color:var(--brand);display:inline-flex;width:20px;height:20px}
.le-kpi-value{font-family:var(--font-display);font-size:28px;font-weight:600;color:var(--fg-1);margin-top:6px}
.le-kpi-unit{font-size:14px;color:var(--fg-muted);font-weight:500;font-family:var(--font-text)}
.le-kpi-delta{margin-top:4px;font-size:13px;font-weight:600;font-family:var(--font-text);font-variant-numeric:tabular-nums}
.le-kpi-delta--danger{color:var(--danger-600)}
.le-kpi-delta--success{color:var(--success-600)}
.le-kpi-delta--neutral{color:var(--fg-muted)}
.le-kpi-head-end{display:inline-flex;align-items:center;gap:6px;flex:none}
.le-kpi-rank{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:var(--r-pill);background:var(--ink-100);color:var(--fg-1);font:700 12px var(--font-text);font-variant-numeric:tabular-nums;white-space:nowrap}
.le-kpi-rank-total{color:var(--fg-muted);font-weight:500}
.le-kpi-sub{margin-top:2px;font-size:13px;color:var(--fg-2)}
.le-kpi-delta-row{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:6px;margin-top:4px}
.le-kpi-delta-row .le-kpi-delta{margin-top:0}
.le-kpi-delta-label{font-size:12px;color:var(--fg-muted);white-space:nowrap}
.le-kpi-bench{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px;padding-top:10px;border-top:1px solid var(--border-subtle);font-size:13px;color:var(--fg-2);font-variant-numeric:tabular-nums}
.le-kpi-bench>span:first-child{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.le-kpi-bench-value{font-weight:600;color:var(--fg-1);white-space:nowrap}
.le-kpi-bench-badge{flex:none;padding:2px 8px;border-radius:var(--r-pill);font-size:12px;font-weight:700;white-space:nowrap}
.le-kpi-bench-badge--danger{background:var(--danger-50);color:var(--danger-600)}
.le-kpi-bench-badge--success{background:var(--success-50);color:var(--green-700)}
.le-kpi-bench-badge--neutral{background:var(--ink-100);color:var(--ink-700)}
.le-kpi-info{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border:none;background:none;border-radius:var(--r-pill);color:var(--fg-muted);cursor:pointer;padding:0}
.le-kpi-info:hover{background:var(--bg-sunken);color:var(--brand)}
.le-kpi-meta{margin-top:4px;font-size:12px;color:var(--fg-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.le-kpi-card--clickable{cursor:pointer;transition:border-color var(--dur-1) var(--ease-out),box-shadow var(--dur-1) var(--ease-out)}
.le-kpi-card--clickable:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}
.le-kpi-card--clickable:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.le-kpi-skel{display:block;border-radius:var(--r-xs);background:linear-gradient(90deg,var(--ink-100) 25%,var(--bg-sunken) 50%,var(--ink-100) 75%);background-size:200% 100%;animation:le-skel 1.2s ease-in-out infinite}
.le-kpi-skel--value{width:60%;height:28px;margin-top:8px}
.le-kpi-skel--line{width:40%;height:12px;margin-top:10px}
@keyframes le-skel{from{background-position:100% 0}to{background-position:-100% 0}}
@media (prefers-reduced-motion:reduce){.le-kpi-skel{animation:none}}

/* Table responsive strategy: hide secondary columns at tablet/mobile — see README. Based on the TABLE's width (container query), not the viewport: with the AppShell sidebar a 924px viewport leaves ~600px to the table. tablet < 840px, mobile < 480px. fixedLayout: min-width = fixed columns of the breakpoint + 180px for the name column. */
.le-table--fixed{min-width:calc(var(--le-tw-0,0px) + 180px)}
@container le-table (max-width:839px){ .le-table [data-hide-tablet]{display:none} .le-table--fixed{min-width:calc(var(--le-tw-1,0px) + 180px)} }
@container le-table (max-width:479px){ .le-table [data-hide-mobile]{display:none} .le-table--fixed{min-width:calc(var(--le-tw-2,0px) + 180px)} }

.le-table-toolbar-stack{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}
.le-table-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.le-table-toolbar-extra{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.le-table-toolbar-extra .le-select{height:38px;min-height:38px;width:240px;max-width:100%}
.le-multiselect{position:relative}
.le-multiselect-btn{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 12px;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:#fff;font:inherit;font-size:13px;font-weight:600;color:var(--fg-2);cursor:pointer;white-space:nowrap}
.le-multiselect-btn svg{flex:none}
.le-multiselect-btn:hover{background:var(--bg-sunken)}
.le-multiselect-btn--active{border-color:var(--brand);color:var(--brand)}
.le-multiselect-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:var(--r-pill);background:var(--brand);color:var(--fg-on-brand);font-size:11px;font-weight:700}
.le-multiselect-pop{position:absolute;top:calc(100% + 4px);left:0;z-index:20;min-width:220px;max-height:280px;overflow:auto;padding:6px;background:#fff;border:1px solid var(--border-subtle);border-radius:var(--r-md);box-shadow:var(--shadow-md)}
.le-active-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.le-filter-chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 6px 0 10px;border-radius:var(--r-pill);background:var(--bg-sunken);font-size:12px;font-weight:600;color:var(--fg-1)}
.le-filter-chip-key{color:var(--fg-muted);font-weight:500}
.le-filter-chip button{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border:none;border-radius:50%;background:none;color:var(--fg-muted);cursor:pointer}
.le-filter-chip button:hover{background:var(--border-subtle);color:var(--fg-1)}
.le-active-filters-clear{background:none;border:none;padding:0 4px;font:inherit;font-size:12px;font-weight:600;color:var(--brand);cursor:pointer}
.le-sort-priority{display:inline-flex;align-items:center;justify-content:center;min-width:14px;height:14px;padding:0 3px;border-radius:var(--r-pill);background:var(--brand);color:var(--fg-on-brand);font-size:10px;font-weight:700;letter-spacing:0}
.le-row-empty td{padding:32px 16px;text-align:center;font-size:13px;color:var(--fg-muted)}
.le-search{display:flex;align-items:center;gap:8px;height:38px;padding:0 12px;border:1px solid var(--border-strong);border-radius:var(--r-sm);color:var(--fg-muted);min-width:220px;background:var(--bg-0)}
.le-search input{border:none;outline:none;font:inherit;color:var(--fg-1);width:100%;background:none}
.le-search input::placeholder{color:var(--fg-faint)}
.le-chip-group{display:flex;gap:8px;flex-wrap:wrap}
.le-chip{height:38px;padding:0 14px;border-radius:var(--r-pill);border:1px solid var(--border-strong);background:#fff;font-size:13px;font-weight:600;color:var(--fg-2);cursor:pointer}
.le-chip{transition:background var(--dur-1) var(--ease-out),border-color var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out)}
.le-chip:hover:not(:disabled):not(.le-chip--active){background:var(--bg-sunken);border-color:var(--ink-400);color:var(--fg-1)}
.le-chip--active{background:var(--brand);border-color:var(--brand);color:var(--fg-on-brand);cursor:default}
.le-chip:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.le-chip:disabled{opacity:.45;cursor:not-allowed}
@media (pointer:coarse){.le-chip{height:44px}}
.le-chip{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-text);white-space:nowrap;flex:none}
.le-chip-count{flex:none}
.le-chip-count{min-width:20px;height:20px;padding:0 6px;box-sizing:border-box;border-radius:var(--r-pill);background:var(--ink-100);color:var(--fg-2);font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;font-variant-numeric:tabular-nums}
.le-chip--active .le-chip-count{background:#fff;color:var(--brand)}

.le-badge-status{display:inline-flex;align-items:center;justify-content:center;min-width:72px;padding:3px 8px;border-radius:var(--r-pill);font-size:12px;font-weight:700;line-height:1.4;white-space:nowrap}
.le-badge-status--success{background:var(--success-50);color:var(--green-700)}
.le-badge-status--warning{background:var(--warning-50);color:var(--warning-600)}
.le-badge-status--danger{background:var(--danger-50);color:var(--danger-600)}
.le-badge-status--neutral{background:var(--ink-100);color:var(--ink-700)}
.le-badge-status--info{background:var(--info-50);color:var(--info-600)}

.le-badge-tag{display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 8px;border-radius:var(--r-pill);border:1px solid var(--border-subtle);background:#fff;font-size:12px;font-weight:600;color:var(--fg-1);white-space:nowrap}
.le-tag-dot{width:8px;height:8px;border-radius:50%;flex:none}
.le-tag-empty{font-size:12px;color:var(--fg-faint)}

.le-action-link{color:var(--brand);font-weight:600;font-size:13px;text-decoration:none;display:inline-flex;align-items:center;gap:4px;white-space:nowrap;min-height:24px}
.le-action-link:hover{color:var(--brand);text-decoration:underline;text-underline-offset:2px}
.le-action-arrow{display:inline-flex;min-width:24px;min-height:24px;align-items:center;justify-content:center;margin:-2px 0}
.le-action-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--r-sm);color:var(--ink-500);border:none;background:none;padding:0;cursor:pointer}
.le-action-icon:hover{background:var(--bg-sunken);color:var(--brand)}
.le-action-icon--danger:hover{background:var(--danger-bg,#FDECEC);color:var(--danger,#C0362C)}
.le-action-none{color:var(--fg-faint);font-size:13px}

.le-progress-wrap{display:flex;align-items:center;gap:8px;min-width:120px}
.le-progress-track{flex:1;height:6px;border-radius:999px;background:var(--ink-100);overflow:hidden}
.le-progress-fill{height:100%;border-radius:999px;background:var(--brand)}
.le-progress-label{font-size:12px;color:var(--fg-muted);width:36px;text-align:right;flex:none}

.le-name-primary{font-weight:600;color:var(--fg-1)}
.le-name-meta{font-size:12px;color:var(--fg-muted);margin-top:2px}

/* .le-btn base lives in colors_and_type.css — product kit only adds its modifiers */
.le-btn-secondary{background:#fff;color:var(--ink-900);border-color:var(--border-strong)}
.le-btn-secondary:hover{background:var(--bg-sunken)}
.le-btn-danger{background:var(--danger-600);color:#fff}
.le-btn-danger:hover{background:#B93838}
.le-btn-ghost{background:none;color:var(--brand);padding:0 10px}
.le-btn-ghost:hover{background:var(--brand-tint);color:var(--brand)}
.le-btn-sm{height:34px;padding:0 12px;font-size:13px;gap:6px}
.le-btn-ghost.le-btn-sm{padding:0 8px}
.le-btn--block{width:100%;justify-content:center}
.le-btn-icon{display:inline-flex;width:16px;height:16px;flex:none;align-items:center;justify-content:center}
.le-btn-icon svg{width:16px;height:16px}
.le-btn-spinner{width:14px;height:14px;flex:none;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:le-spin .7s linear infinite}
@keyframes le-spin{to{transform:rotate(360deg)}}
.le-btn:disabled,.le-btn[aria-disabled="true"]{opacity:.45;cursor:not-allowed;box-shadow:none}
.le-btn--loading:disabled{opacity:.75;cursor:progress}
.le-btn-primary:disabled{background:var(--brand)}
.le-btn-accent:disabled{background:var(--accent)}
.le-btn-secondary:disabled{background:#fff}
.le-btn-danger:disabled{background:var(--danger-600)}
.le-btn-success:disabled{background:var(--success-600)}
.le-btn-ghost:disabled{background:none}
.le-icon-btn{display:inline-flex;align-items:center;justify-content:center;flex:none;padding:0;border:none;background:none;border-radius:var(--r-sm);color:var(--ink-500);cursor:pointer;transition:background var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out)}
.le-icon-btn--md{width:32px;height:32px}
.le-icon-btn--sm{width:28px;height:28px}
.le-icon-btn-glyph{display:inline-flex}
.le-icon-btn-glyph svg{width:16px;height:16px}
.le-icon-btn:hover:not(:disabled){background:var(--bg-sunken);color:var(--brand)}
.le-icon-btn--danger:hover:not(:disabled){background:var(--danger-50);color:var(--danger-600)}
.le-icon-btn[aria-pressed="true"]{background:var(--brand-tint);color:var(--brand)}
.le-icon-btn:disabled{opacity:.4;cursor:not-allowed}

.le-modal-scrim{position:fixed;inset:0;background:var(--overlay-scrim);display:flex;align-items:center;justify-content:center;z-index:1000}
.le-modal-scrim--drawer{align-items:stretch;justify-content:flex-end}
.le-modal{position:relative;background:#fff;border-radius:var(--r-lg);box-shadow:var(--shadow-lg);max-width:90vw;max-height:85vh;display:flex;flex-direction:column}
.le-modal--drawer{border-radius:0;max-height:100vh;height:100vh;animation:le-drawer-in .22s var(--ease-out)}
@keyframes le-drawer-in{from{transform:translateX(24px);opacity:.6}to{transform:translateX(0);opacity:1}}
.le-modal--sm{width:400px}
.le-modal--md{width:560px}
.le-modal--lg{width:720px}
.le-modal-head{display:flex;align-items:flex-start;gap:12px;padding:20px 64px 0 20px;flex:none}
.le-modal-head-text{flex:1 1 auto;min-width:0}
.le-modal-icon{width:40px;height:40px;flex:none;border-radius:var(--r-sm);background:var(--brand-tint);color:var(--brand);display:flex;align-items:center;justify-content:center}
.le-modal-subtitle{margin:2px 0 0;font-size:14px;color:var(--fg-2)}
.le-modal-meta{margin:2px 0 0;font-size:12px;color:var(--fg-muted);font-family:var(--font-mono)}
.le-modal-title{margin:0}
.le-modal-close{position:absolute;top:12px;right:12px;z-index:1;width:38px;height:38px;flex:none;display:flex;align-items:center;justify-content:center;background:var(--ink-100);border:1px solid var(--border-subtle);border-radius:var(--r-sm);color:var(--fg-2);cursor:pointer}
.le-modal-close:hover{background:var(--ink-200)}
.le-modal-body{padding:16px 20px;overflow-y:auto;flex:1 1 auto;display:flex;flex-direction:column;gap:12px}
.le-modal-body>*{margin-top:0;margin-bottom:0}
.le-modal-impact{margin:0;color:var(--fg-2)}
.le-modal-footer{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:12px;padding:16px 20px;flex:none;border-top:1px solid var(--border-subtle)}

.le-toast{position:fixed;bottom:24px;right:24px;background:var(--ink-900);color:#fff;padding:12px 18px;border-radius:var(--r-sm);font-size:14px;font-weight:500;box-shadow:var(--shadow-lg);z-index:1100}
.le-toast--success{background:var(--green-700)}
.le-toast--danger{background:var(--danger-600)}
.le-toast--action{display:flex;align-items:center;gap:16px;padding-right:8px}
.le-toast-action{flex:none;min-height:32px;padding:0 10px;border:none;border-radius:var(--r-xs,4px);background:rgba(255,255,255,.16);color:#fff;font:inherit;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.le-toast-action:hover{background:rgba(255,255,255,.26)}
.le-toast-action:focus-visible{outline:2px solid #fff;outline-offset:2px}

/* Alert — inline message box */
.le-alert{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid;border-radius:var(--r-md);font-family:var(--font-text);font-size:13px;line-height:1.45;color:var(--fg-1)}
.le-alert-icon{flex:none;display:inline-flex;margin-top:1px}
.le-alert-body{flex:1;min-width:0}
.le-alert-title{margin:0 0 2px;font-weight:600;font-size:14px}
.le-alert-text{text-wrap:pretty}
.le-alert-action{flex:none;margin:-4px -4px -4px 0}
.le-alert--info{background:var(--info-50);border-color:var(--blue-200)}.le-alert--info .le-alert-icon{color:var(--info-600)}
.le-alert--warning{background:var(--warning-50);border-color:var(--warning-500)}.le-alert--warning .le-alert-icon{color:var(--warning-600)}
.le-alert--danger{background:var(--danger-50);border-color:var(--danger-600)}.le-alert--danger .le-alert-icon{color:var(--danger-600)}
.le-alert--success{background:var(--success-50);border-color:var(--success-600)}.le-alert--success .le-alert-icon{color:var(--success-600)}

/* ExportDialog */
.le-export{display:flex;flex-direction:column;gap:20px}
.le-export-levels{display:flex;flex-direction:column;gap:8px}
.le-export-cols{display:flex;flex-wrap:wrap;gap:6px}
.le-export-file{display:block;margin-top:4px;font-family:var(--font-mono);font-size:12px;color:var(--fg-2);overflow-wrap:anywhere}

.le-sidebar{width:240px;flex:none;background:#fff;border-right:1px solid var(--border-subtle);padding:20px 12px;height:100%}
.le-sidebar-brand{font-family:var(--font-display);font-weight:700;font-size:18px;color:var(--fg-1);padding:0 12px 20px}
.le-sidebar-nav{display:flex;flex-direction:column;gap:2px}
.le-sidebar-item{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:var(--r-sm);color:var(--fg-2);font-size:14px;font-weight:500;text-decoration:none}
.le-sidebar-item--nested{padding-left:32px}
.le-sidebar-item-icon{display:inline-flex;width:18px;height:18px;flex:none;align-items:center;justify-content:center;color:inherit}
.le-sidebar-item-label{flex:1 1 auto;min-width:0}
.le-sidebar-item-badge{flex:none;min-width:20px;height:20px;padding:0 6px;border-radius:var(--r-pill);background:var(--brand-tint);color:var(--brand);font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}
.le-sidebar-item--active .le-sidebar-item-badge{background:#fff;color:var(--brand)}
.le-sidebar-section{margin-top:8px}
.le-sidebar-section-label{display:flex;align-items:center;gap:8px;padding:8px 12px 4px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-muted)}
.le-sidebar-item:hover{background:var(--bg-sunken);color:var(--fg-2);text-decoration:none}
.le-sidebar-item--active{background:var(--brand-tint);color:var(--brand);font-weight:600}
.le-sidebar-toggle{display:none;width:38px;height:38px;align-items:center;justify-content:center;background:var(--ink-100);border:1px solid var(--border-subtle);border-radius:var(--r-sm);cursor:pointer;color:var(--fg-2)}
.le-chart-wrap{position:relative;width:100%;font-family:var(--font-text)}
.le-chart-wrap svg{display:block;font-variant-numeric:tabular-nums}
.le-chart-month-line{stroke:var(--border-subtle);stroke-width:1}
.le-chart-month{font-size:11px;fill:var(--fg-muted)}
.le-chart-date{font-size:11px;font-weight:600;fill:var(--fg-2)}
.le-chart-point-var{font-size:11px;font-weight:600}
.le-chart-wrap .le-chart-point-label,.le-chart-wrap .le-chart-point-var,.le-chart-wrap .le-chart-marker{paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round}
.le-chart-marker{font-size:11px;fill:var(--fg-muted)}
.le-chart-marker--danger{fill:var(--danger-600)}
.le-chart-marker-value{font-size:12px;font-weight:700;fill:var(--fg-1)}
.le-chart-ref-line{stroke:var(--ink-400);stroke-width:1;stroke-dasharray:2 3}
.le-chart-threshold-line{stroke:var(--danger-600);stroke-width:1.25;stroke-dasharray:4 4}
.le-chart-tooltip-var{font-size:11px;color:var(--ink-300)}
.le-chart-gridline{stroke:var(--border-subtle);stroke-width:1}
.le-chart-tick{font-size:11px;fill:var(--fg-muted)}
.le-chart-target-line{stroke:var(--ink-400);stroke-width:1.5;stroke-dasharray:4 4}
.le-chart-target-label{font-size:11px;fill:var(--fg-muted)}
.le-chart-point-label{font-size:11px;font-weight:600;fill:var(--fg-2)}
.le-chart-hover-line{stroke:var(--border-strong);stroke-width:1}
.le-chart-tooltip{position:absolute;transform:translate(-50%,-120%);background:var(--ink-900);color:#fff;padding:6px 10px;border-radius:var(--r-sm);font-size:12px;white-space:nowrap;pointer-events:none;box-shadow:var(--shadow-md)}
.le-chart-tooltip-date{color:var(--ink-300);font-size:11px}
.le-chart-tooltip-value{font-weight:600}
.le-chart-legend{display:flex;gap:16px;margin-bottom:8px;font-size:12px;color:var(--fg-2)}
.le-chart-legend-item{display:inline-flex;align-items:center;gap:6px}
.le-chart-legend-dot{width:8px;height:8px;border-radius:50%;display:inline-block}
.le-chart-legend--below{margin:8px 0 0}
.le-chart-legend-dot--alert{width:10px;height:10px;box-shadow:0 0 0 3px color-mix(in oklab,var(--danger-600) 16%,transparent)}

.le-sidebar-drawer-scrim{position:fixed;inset:0;background:var(--overlay-scrim);z-index:1000;display:flex}
.le-sidebar-drawer{width:240px;height:100%;box-sizing:border-box;background:#fff;padding:20px 12px;display:flex;flex-direction:column;overflow-y:auto}
.le-sidebar{display:flex;flex-direction:column;box-sizing:border-box;overflow-y:auto}
.le-sidebar-footer{margin-top:auto;padding-top:16px}
.le-sidebar--collapsed{width:76px;padding:20px 10px}
.le-sidebar--collapsed .le-sidebar-brand{padding:0 0 20px;text-align:center}
.le-sidebar--collapsed .le-sidebar-item{position:relative;justify-content:center;padding:12px 0}
.le-sidebar--collapsed .le-sidebar-item--nested{padding-left:0}
.le-sidebar--collapsed .le-sidebar-item-icon{width:20px;height:20px}
.le-sidebar-item-initial{font-size:13px;font-weight:700}
.le-sidebar--collapsed .le-sidebar-item-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.le-sidebar--collapsed .le-sidebar-item-badge,.le-sidebar--collapsed .le-sidebar-item--active .le-sidebar-item-badge{position:absolute;top:3px;right:6px;min-width:18px;height:18px;padding:0 5px;box-sizing:border-box;font-size:10px;background:var(--brand);color:var(--fg-on-brand)}
.le-sidebar--collapsed .le-sidebar-section{margin-top:8px;padding-top:8px;border-top:1px solid var(--border-subtle)}
.le-sidebar--collapsed .le-sidebar-section-label{display:none}
.le-sidebar--collapsed .le-sidebar-footer{display:flex;justify-content:center}
.le-account-compact{position:relative}
.le-account-compact-btn{padding:0;border:1px solid var(--border-subtle);background:var(--bg-sunken);border-radius:var(--r-pill);cursor:pointer;display:inline-flex}
.le-account-compact-btn:hover{border-color:var(--border-strong)}
.le-account-compact-btn .le-account-avatar{width:40px;height:40px}
.le-account-popover{position:absolute;left:calc(100% + 16px);bottom:0;z-index:30;width:260px}
.le-account-popover .le-account-menu{background:#fff;box-shadow:var(--shadow-md)}

.le-tree{font-family:var(--font-text);font-size:var(--fs-small);color:var(--fg-1)}
.le-tree-search{width:100%;box-sizing:border-box;height:36px;padding:0 12px;margin-bottom:12px;border:1px solid var(--border-strong);border-radius:var(--r-sm);font:inherit;color:var(--fg-1)}
.le-tree-search:focus-visible{outline:2px solid var(--brand);outline-offset:1px;border-color:var(--brand)}
.le-tree-search::placeholder{color:var(--fg-faint)}
.le-tree-root{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--fg-1);padding:6px 0}
.le-tree-root-icon{display:inline-flex;width:16px;height:16px;flex:none;color:var(--brand)}
.le-tree-guide{border-left:1px solid var(--border-subtle);margin-left:8px;padding-left:0}
.le-tree-branch{position:relative}
.le-tree-branch-head{display:flex;align-items:center;gap:8px;width:100%;min-width:0;padding:8px 12px;background:none;border:none;cursor:pointer;text-align:left;color:var(--fg-1);font:inherit;border-radius:var(--r-sm)}
.le-tree-branch-head:hover{background:var(--bg-sunken)}
.le-tree-branch-icon{display:inline-flex;width:14px;height:14px;flex:none;color:var(--fg-muted)}
.le-tree-branch-label{font-weight:600;flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.le-tree-branch-label--muted{font-style:italic;font-weight:500;color:var(--fg-muted)}
.le-tree-branch-count{color:var(--fg-muted);font-size:var(--fs-caption);flex:none;white-space:nowrap}
.le-tree-branch-body{padding-left:12px}
.le-tree-leaf{display:flex;align-items:center;gap:8px;padding:6px 12px 6px 0;position:relative}
.le-tree-guide-h{width:20px;height:1px;background:var(--border-subtle);flex:none}
.le-tree-leaf-icon{display:inline-flex;width:12px;height:12px;flex:none;color:var(--fg-faint)}
.le-tree-leaf-link{color:var(--fg-2);text-decoration:none}
.le-tree-leaf-link:hover{color:var(--brand);text-decoration:underline;text-underline-offset:2px}
.le-tree-more{background:none;border:none;padding:0;font:600 var(--fs-caption)/1.4 var(--font-text);color:var(--brand);cursor:pointer}
.le-tree-more:hover{color:var(--brand-hover);text-decoration:underline}
.le-tree-empty{padding:32px 16px;text-align:center;color:var(--fg-muted);background:var(--bg-sunken);border-radius:var(--r-md)}

/* Modal — full-screen sheet on mobile (fixed sm/md/lg widths don't fit a 375-414px viewport) */
@media (max-width:600px){
  .le-modal-scrim{align-items:stretch;justify-content:stretch}
  .le-modal{width:100%!important;max-width:100vw;max-height:100vh;height:100%;border-radius:0}
  .le-modal--drawer{animation:none}
}

/* Field — 16px text on mobile so iOS doesn't auto-zoom on focus */
@media (max-width:600px){
  .le-input input,.le-select select{font-size:16px}
}

/* KpiCard — tighten padding/value size so cards stay readable at mobile grid widths */
@media (max-width:600px){
  .le-kpi-card{padding:14px 16px;min-width:0}
  .le-kpi-value{font-size:24px}
}

/* TableToolbar — search and multiselects go full-width and stack instead of wrapping mid-row */
@media (max-width:600px){
  .le-table-toolbar{flex-direction:column;align-items:stretch}
  .le-search{min-width:0;width:100%}
  .le-multiselect{width:100%}
  .le-table-toolbar-extra,.le-table-toolbar-extra .le-select{width:100%}
  .le-multiselect-btn{width:100%;justify-content:space-between}
  .le-multiselect-pop{left:0;right:0;min-width:0}
  .le-chip-group{width:100%}
}

/* Charts — legend wraps and shrinks tick/label type instead of overflowing a narrow chart */
@media (max-width:600px){
  .le-chart-legend{flex-wrap:wrap;gap:8px 16px}
  .le-chart-tick,.le-chart-target-label{font-size:10px}
  .le-chart-tooltip{font-size:11px;padding:5px 8px}
}

.le-account-menu{width:100%;max-width:280px;box-sizing:border-box;background:var(--bg-sunken);border:1px solid var(--border-subtle);border-radius:var(--r-md);padding:4px 6px 6px;font-family:var(--font-text)}
.le-account-head{display:flex;align-items:center;gap:10px;padding:8px 6px;margin-bottom:4px;border-bottom:1px solid var(--border-subtle)}
.le-account-avatar{flex:none;width:32px;height:32px;border-radius:var(--r-pill);background:#fff;color:var(--fg-1);font-size:13px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}
.le-account-id{display:flex;flex-direction:column;flex:1 1 auto;min-width:0}
.le-account-name{font-size:13px;font-weight:700;color:var(--fg-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.le-account-sub{font-size:12px;color:var(--fg-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.le-account-list{display:flex;flex-direction:column;gap:2px}
.le-account-item{display:flex;align-items:center;gap:8px;width:100%;box-sizing:border-box;padding:7px 10px;border:none;background:none;border-radius:var(--r-sm);color:var(--fg-muted);font:500 13px var(--font-text);text-align:left;text-decoration:none;cursor:pointer}
.le-account-item:hover{background:#fff;color:var(--fg-1);text-decoration:none}
.le-account-item--active{background:#fff;color:var(--brand);font-weight:600}
.le-account-foot{margin-top:4px;padding-top:4px;border-top:1px solid var(--border-subtle)}
.le-account-logout{color:var(--danger-600)}
.le-account-logout:hover{background:var(--danger-50);color:var(--danger-600)}

@media (max-width:900px){
  .le-sidebar{display:none}
  .le-sidebar-toggle{display:flex}
}

/* Collapsed Sidebar = tablet rail: stays visible 601–900px (base rule hides .le-sidebar ≤900px) */
@media (min-width:601px) and (max-width:900px){
  .le-sidebar.le-sidebar--collapsed{display:flex}
  .le-sidebar-toggle.le-sidebar-toggle--rail{display:none}
}

.le-flow-heading{display:flex;flex-direction:column;gap:4px}
.le-flow-heading h2{margin:0;font:700 20px/1.3 var(--font-display);color:var(--fg-1);outline:none}
.le-flow-heading p{margin:0;font-size:14px;color:var(--fg-muted);text-wrap:pretty}

.le-btn-wrap{display:inline-flex;cursor:not-allowed}
.le-btn-wrap--block{display:flex;width:100%}
.le-btn-wrap--block>.le-btn{flex:1 1 auto}
.le-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(var(--le-kpi-min,200px),100%),1fr));gap:16px}

/* AppShell */
.le-shell{display:flex;height:100%;min-height:0;background:var(--bg-sunken)}
.le-shell{height:100vh;height:100dvh}
.le-shell--parent{height:100%}
.le-shell-main{flex:1 1 auto;min-width:0;overflow:auto;padding:24px 32px 48px;box-sizing:border-box;display:flex;flex-direction:column;gap:16px}
.le-shell-main>*{flex-shrink:0}
@media (max-width:600px){.le-shell-main{padding:16px 16px 32px}}
/* PageActionBar — sticky bottom of .le-shell-main, cancels its side/bottom padding */
.le-pagebar{position:sticky;bottom:-48px;z-index:30;margin:auto -32px -48px;display:flex;align-items:center;justify-content:space-between;gap:12px 24px;flex-wrap:wrap;padding:12px 32px calc(12px + env(safe-area-inset-bottom,0px));background:var(--bg-0);border-top:1px solid var(--border-subtle);box-shadow:0 -4px 12px rgba(16,24,40,.06)}
.le-pagebar-status{min-width:0;font-size:14px;color:var(--fg-2);font-variant-numeric:tabular-nums}
.le-pagebar-status strong{color:var(--fg-1);font-weight:600}
.le-pagebar-end{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-left:auto}
.le-pagebar .le-input,.le-pagebar-btn .le-btn{height:44px;min-height:44px}
.le-pagebar-btn{display:inline-flex}
@media (max-width:600px){.le-pagebar{bottom:-32px;margin:auto -16px -32px;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px))}.le-pagebar-end{width:100%;margin-left:0}.le-pagebar-btn{flex:1 1 0;min-width:140px}.le-pagebar-btn .le-btn-wrap,.le-pagebar-btn .le-btn{width:100%;justify-content:center}}

/* FoodCostDialog */
.le-fc{display:flex;flex-direction:column;gap:16px;font-family:var(--font-text)}
.le-fc-period{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.le-fc-ca{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start}
.le-fc-ca>.le-btn{margin-top:24px;height:42px}
.le-fc-ro{display:flex;flex-direction:column;gap:2px;font-size:13px;color:var(--fg-muted)}
.le-fc-ro strong{font-size:15px;color:var(--fg-1);font-variant-numeric:tabular-nums}
.le-fc-detail{margin:0;padding:12px 16px;border-radius:var(--r-md);background:var(--bg-sunken);display:flex;flex-direction:column;gap:6px;font-size:14px}
.le-fc-detail>div{display:flex;justify-content:space-between;gap:12px}
.le-fc-detail dt{color:var(--fg-2)}
.le-fc-detail dd{margin:0;font-variant-numeric:tabular-nums;color:var(--fg-1)}
.le-fc-detail-sum{padding-top:6px;border-top:1px solid var(--border-subtle);font-weight:600}
.le-fc-result{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px}
.le-fc-result span{font-size:14px;font-weight:600;color:var(--fg-2)}
.le-fc-result strong{font:700 28px/1.1 var(--font-display);color:var(--fg-1);font-variant-numeric:tabular-nums}
.le-fc-result em{flex-basis:100%;font-style:normal;font-size:13px;color:var(--fg-muted)}
@media (max-width:600px){.le-fc-period,.le-fc-ca{grid-template-columns:minmax(0,1fr)}.le-fc-ca>.le-btn{margin-top:0}}

/* CartSummary · CartLayout */
.le-cart-foot{display:flex;flex-direction:column;gap:16px}
.le-cart-total{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:14px;color:var(--fg-2)}
.le-cart-total strong{font-size:18px;color:var(--fg-1);font-variant-numeric:tabular-nums}
.le-cart-line{display:flex;align-items:center;gap:8px}
.le-cart-amount{min-width:72px;text-align:right;font-weight:600;font-variant-numeric:tabular-nums;color:var(--fg-1)}
.le-cart-empty{padding:16px}
.le-cart-layout{flex:none;display:grid;grid-template-columns:minmax(0,1fr) var(--le-cart-w,380px);gap:20px;align-items:start}
.le-cart-layout-main{display:flex;flex-direction:column;gap:12px;min-width:0}
.le-cart-layout-aside{position:sticky;top:0;align-self:start;min-width:0}
@media (max-width:1100px){.le-cart-layout{grid-template-columns:minmax(0,1fr)}.le-cart-layout-aside{position:static}}

/* QuickAddBar — one-click add shortcuts above an order table */
.le-quickadd{display:flex;flex-direction:column;gap:8px;font-family:var(--font-text);min-width:0}
.le-quickadd-title{font-size:15px;font-weight:700;color:var(--fg-1)}
.le-quickadd-period{font-weight:500;color:var(--fg-2)}
.le-quickadd-list{display:flex;flex-wrap:wrap;gap:8px}
.le-quickadd-btn{box-sizing:border-box;display:inline-flex;align-items:center;gap:6px;min-height:36px;max-width:440px;padding:4px 12px 4px 10px;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--bg-0);font:600 13px/1.25 var(--font-text);color:var(--fg-1);text-align:left;cursor:pointer;transition:background var(--dur-1) var(--ease-out),border-color var(--dur-1) var(--ease-out)}
.le-quickadd-btn .le-icon,.le-quickadd-btn svg{flex:none;color:var(--brand)}
.le-quickadd-btn:hover:not(.le-quickadd-btn--in){background:var(--bg-sunken);border-color:var(--ink-400)}
.le-quickadd-btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.le-quickadd-btn--in{color:var(--fg-muted);background:var(--bg-sunken);border-color:var(--border-subtle);cursor:default}
.le-quickadd-btn--in .le-icon,.le-quickadd-btn--in svg{color:var(--fg-muted)}
.le-quickadd-label{min-width:0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere}
@media (pointer:coarse){.le-quickadd-btn{min-height:44px}}
@media (max-width:600px){.le-quickadd-list{flex-wrap:nowrap;overflow-x:auto;margin:0 -16px;padding:0 16px;scrollbar-width:none}.le-quickadd-btn{flex:none;max-width:240px}}

/* SegmentedControl */
.le-seg{display:inline-grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:2px;padding:3px;width:max-content;max-width:100%;align-self:flex-start;background:var(--ink-100);border-radius:var(--r-md);font-family:var(--font-text);box-sizing:border-box}
.le-seg--block{display:grid;grid-auto-columns:minmax(0,1fr);width:100%;align-self:stretch}
.le-seg-opt{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:0;padding:4px 14px;border:none;background:none;border-radius:var(--r-sm);font:600 13px/1.2 var(--font-text);color:var(--fg-2);text-align:center;text-wrap:balance;cursor:pointer;transition:background var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out)}
.le-seg--md .le-seg-opt{min-height:40px}
.le-seg:not(.le-seg--block) .le-seg-opt{white-space:nowrap}
.le-seg--sm .le-seg-opt{min-height:30px;padding:3px 10px;font-size:12px}
.le-seg-opt:hover:not(:disabled):not(.le-seg-opt--on){color:var(--fg-1);background:rgba(255,255,255,.5)}
.le-seg-opt--on{background:var(--bg-0);color:var(--brand);box-shadow:var(--shadow-sm)}
.le-seg-opt:disabled{opacity:.45;cursor:not-allowed}
.le-seg-opt{transition:background var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out)}
.le-seg-opt--on{cursor:default}
.le-seg-opt:focus-visible{outline:2px solid var(--brand);outline-offset:2px;position:relative;z-index:1}
.le-seg-count{min-width:20px;height:18px;padding:0 6px;box-sizing:border-box;border-radius:var(--r-pill);background:var(--ink-200);color:var(--fg-2);font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;font-variant-numeric:tabular-nums}
.le-seg-opt--on .le-seg-count{background:var(--brand-tint);color:var(--brand)}
@media (max-width:600px){.le-seg--md .le-seg-opt{min-height:44px}}

/* ChipInput */
.le-chipinput{display:flex;flex-direction:column;gap:8px;font-family:var(--font-text);min-width:0}
.le-chipinput-list{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}
.le-chipinput-chip{flex:none;display:inline-flex;align-items:center;gap:2px;max-width:100%;height:30px;padding:0 3px 0 12px;box-sizing:border-box;background:var(--bg-0);border:1px solid var(--border-subtle);border-radius:var(--r-pill);font-size:13px;color:var(--fg-1)}
.le-chipinput-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.le-chipinput-remove{position:relative;flex:none;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:50%;background:none;color:var(--fg-muted);cursor:pointer}
.le-chipinput-remove::after{content:"";position:absolute;inset:-10px}
.le-chipinput-remove:hover:not(:disabled){background:var(--danger-50);color:var(--danger-600)}
.le-chipinput-row{display:flex;gap:8px}
.le-chipinput-row .le-input{flex:1 1 auto;min-width:0}
.le-chipinput-add{height:42px;flex:none}

/* SelectableList */
.le-sellist{display:flex;flex-direction:column;gap:10px;font-family:var(--font-text);min-width:0}
.le-sellist-search-icon{display:inline-flex;color:var(--fg-muted);flex:none}
.le-sellist-box{background:var(--bg-0);border:1px solid var(--border-subtle);border-radius:var(--r-md);overflow:hidden}
.le-sellist-row{display:flex;align-items:center;gap:12px;min-height:48px;padding:8px 14px;box-sizing:border-box;cursor:pointer;outline:none}
.le-sellist-row+.le-sellist-row{border-top:1px solid var(--border-subtle)}
.le-sellist-row:hover:not(.le-sellist-row--disabled):not(.le-sellist-row--on){background:var(--bg-sunken)}
.le-sellist-row:focus-visible{box-shadow:inset 0 0 0 2px var(--brand)}
.le-sellist-row--on{background:var(--brand-tint);box-shadow:inset 3px 0 0 var(--brand)}
.le-sellist-row--on:focus-visible{box-shadow:inset 3px 0 0 var(--brand),inset 0 0 0 2px var(--brand)}
.le-sellist-row--disabled{opacity:.55;cursor:not-allowed}
.le-sellist-dot{flex:none;width:18px;height:18px;box-sizing:border-box;border-radius:50%;border:1.5px solid var(--border-strong);background:#fff}
.le-sellist-row--on .le-sellist-dot{border:5px solid var(--brand)}
.le-sellist-box:focus{outline:none}
.le-sellist--error .le-sellist-box,.le-sellist--error .le-sellist-empty{border:1px solid var(--danger-600)}
.le-sellist--error>.le-field-error{margin-top:-4px}
.le-sellist-text{display:flex;flex-direction:column;flex:1 1 auto;min-width:0;gap:1px}
.le-sellist-label,.le-sellist-meta{line-height:1.3}
.le-sellist-label{font-size:14px;font-weight:600;color:var(--fg-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.le-sellist-meta{font-size:12px;color:var(--fg-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.le-sellist-more{padding:10px 14px;border-top:1px solid var(--border-subtle);font-size:12px;color:var(--fg-muted);background:var(--bg-sunken)}
.le-sellist-empty{display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px 16px;text-align:center;font-size:13px;color:var(--fg-muted);background:var(--bg-sunken);border-radius:var(--r-md)}

/* BackLink · PageHeader */
.le-backlink{align-self:flex-start;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;min-height:32px;font:600 13px var(--font-text);color:var(--fg-muted);text-decoration:none;border-radius:var(--r-sm)}
.le-backlink:hover{color:var(--brand);text-decoration:none}
.le-backlink:hover span{text-decoration:underline;text-underline-offset:2px}
.le-pagehead{display:flex;flex-direction:column;gap:6px;padding:4px 0 20px;font-family:var(--font-text)}
.le-pagehead--sticky{position:sticky;top:0;z-index:20;background:var(--bg-page,var(--bg-sunken));padding-top:16px}
.le-pagehead-row{display:flex;align-items:flex-end;justify-content:space-between;gap:12px 24px;flex-wrap:wrap}
.le-pagehead-text{min-width:0;flex:1 1 320px}
.le-pagehead-title{display:flex;align-items:center;gap:10px;margin:0;font-family:var(--font-display);font-size:24px;line-height:1.25;font-weight:700;color:var(--fg-1);text-wrap:balance}
h2.le-pagehead-title{font-size:20px}
.le-pagehead-count{flex:none;min-width:28px;height:24px;padding:0 9px;box-sizing:border-box;border-radius:var(--r-pill);background:var(--ink-100);color:var(--fg-2);font:700 13px var(--font-text);font-variant-numeric:tabular-nums;display:inline-flex;align-items:center;justify-content:center}
.le-pagehead-sub{margin:4px 0 0;font-size:14px;color:var(--fg-muted);text-wrap:pretty}
.le-pagehead-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
@media (max-width:600px){.le-pagehead-title{font-size:20px}.le-pagehead-actions{width:100%}.le-pagehead-actions>.le-btn{flex:1 1 auto;justify-content:center;height:44px}}

/* Section (Card) */
.le-section{background:var(--bg-0);border:1px solid var(--border-subtle);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);font-family:var(--font-text);min-width:0}
.le-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;padding:8px 12px 8px 20px;box-sizing:border-box}
.le-section-title{display:flex;align-items:center;gap:8px;margin:0;font-size:12px;line-height:1.3;text-wrap:balance;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-muted);min-width:0}
.le-section-count{min-width:20px;height:20px;padding:0 6px;box-sizing:border-box;border-radius:var(--r-pill);background:var(--ink-100);color:var(--fg-2);font-size:11px;letter-spacing:0;display:inline-flex;align-items:center;justify-content:center;font-variant-numeric:tabular-nums}
.le-section-action{display:flex;align-items:center;gap:4px;flex:none}
.le-section-total{padding:0 8px;font-size:14px;font-weight:600;color:var(--fg-1);font-variant-numeric:tabular-nums;white-space:nowrap}
.le-section-head>.le-section-title{flex:1 1 auto;min-width:0}
.le-section-title-text{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.le-section-title-text::after{content:"";display:inline-block;width:2px}
.le-section-toggle{text-align:left;min-width:0;max-width:100%;flex:1 1 auto;justify-content:flex-start}
.le-section-count{flex:none}
.le-table--fixed{table-layout:fixed}
.le-table--fixed th{overflow:hidden;box-sizing:border-box;white-space:normal;vertical-align:bottom}
.le-table--fixed th,.le-table--fixed td{padding-left:12px;padding-right:12px}
.le-table--fixed th:first-child,.le-table--fixed td:first-child{padding-left:16px}
.le-table--fixed th:last-child,.le-table--fixed td:last-child{padding-right:16px}
.le-table--fixed .le-th-inner,.le-table--fixed .le-th-sort,.le-table--fixed .le-th-head{min-width:0;max-width:100%}
.le-table--fixed .le-th-label{flex:0 1 auto;min-width:0;white-space:normal;overflow-wrap:normal;text-wrap:balance;line-height:1.3}
.le-table--fixed .le-th-sort{text-align:inherit}
.le-table--fixed th[data-align="right"] .le-th-label{text-align:right}
.le-table--fixed th[data-align="center"] .le-th-label{text-align:center}
.le-section-toggle{display:inline-flex;align-items:center;gap:8px;min-height:36px;margin-left:-8px;padding:0 8px;border:none;background:none;border-radius:var(--r-sm);font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;cursor:pointer}
.le-section-toggle:hover{background:var(--bg-sunken);color:var(--fg-1)}
.le-section-chevron{display:inline-flex;transition:transform var(--dur-1) var(--ease-out);transform:rotate(90deg)}
.le-section--closed .le-section-chevron{transform:none}
.le-section-body{padding:0 20px 20px;font-size:14px;color:var(--fg-1)}
.le-section-body--flush{padding:0}
.le-section-body--flush.le-section-body--divided>*{padding-left:20px;padding-right:20px}
.le-section-body--divided>*+*{border-top:1px solid var(--border-subtle)}
.le-section-head+.le-section-body--flush{border-top:1px solid var(--border-subtle)}
.le-section-footer{padding:12px 20px;border-top:1px solid var(--border-subtle)}
.le-section-row{display:grid;grid-template-columns:180px minmax(0,1fr) auto;align-items:center;gap:4px 16px;min-height:44px;padding:10px 0;box-sizing:border-box}
.le-section-row-label{font-size:13px;color:var(--fg-muted)}
.le-section-row-value{min-width:0;overflow-wrap:anywhere;color:var(--fg-1)}
.le-section-row-action{display:flex;gap:4px}
.le-section-body--cols{container-type:inline-size}
.le-section-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:40px}
.le-section-grid .le-section-row{grid-template-columns:minmax(120px,40%) minmax(0,1fr) auto}
.le-section-body--divided .le-section-grid>*:nth-child(n+3){border-top:1px solid var(--border-subtle)}
@container (max-width:899px){.le-section-grid{grid-template-columns:minmax(0,1fr)}.le-section-body--divided .le-section-grid>*:nth-child(2){border-top:1px solid var(--border-subtle)}}
@media (max-width:600px){.le-section-grid .le-section-row{grid-template-columns:minmax(0,1fr) auto}}
@media (max-width:600px){.le-section-head{padding-left:16px}.le-section-body{padding:0 16px 16px}.le-section-row{grid-template-columns:minmax(0,1fr) auto}.le-section-row-label{grid-column:1/-1}}

/* List + ListRow — short list in a narrow card (home widgets) */
.le-list{list-style:none;margin:0;padding:0;font-family:var(--font-text)}
.le-list-item+.le-list-item{border-top:1px solid var(--border-subtle)}
.le-list-group>.le-list-group-label{padding:12px 20px 4px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-muted)}
.le-list-group:not(:last-child) .le-list-row--link{border-radius:0}
.le-list-rank{flex:none;min-width:20px;font-size:13px;font-weight:700;color:var(--fg-muted);font-variant-numeric:tabular-nums;text-align:right}
@media (max-width:600px){.le-list-group>.le-list-group-label{padding-left:16px;padding-right:16px}}
.le-list-row{display:flex;align-items:center;gap:12px;width:100%;min-height:48px;padding:8px 20px;box-sizing:border-box;border:none;background:none;font:inherit;color:var(--fg-1);text-align:left;text-decoration:none}
.le-list-row--link{cursor:pointer;transition:background var(--dur-1) var(--ease-out)}
.le-list-row--link:hover{background:var(--bg-sunken)}
.le-list-row--link:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--brand)}
.le-list-item:last-child .le-list-row--link{border-radius:0 0 var(--r-lg) var(--r-lg)}
.le-list-row-leading{display:inline-flex;flex:none;color:var(--fg-muted)}
.le-list-row-text{display:flex;flex-direction:column;gap:1px;flex:1 1 auto;min-width:0}
.le-list-row-primary,.le-list-row-secondary{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.3}
.le-list-row-primary{font-size:14px;font-weight:600;color:var(--fg-1)}
.le-list-row-secondary{font-size:12px;color:var(--fg-muted)}
.le-list-row-value{display:inline-flex;align-items:center;flex:none;white-space:nowrap;font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--fg-1)}
.le-list-row-value .le-cell-number{min-width:0;font-size:14px}
.le-list-row-chevron{flex:none;margin-right:-6px;color:var(--fg-faint)}
.le-list-row--link:hover .le-list-row-chevron{color:var(--fg-muted)}
.le-list-empty{margin:0;padding:24px 20px;font-size:13px;color:var(--fg-muted);text-align:center}
@media (max-width:600px){.le-list-row{padding:8px 16px}.le-list-empty{padding:16px}}

/* FilterBar */
.le-filterbar{display:flex;flex-direction:column;gap:14px;padding:16px 20px;background:var(--bg-0);border:1px solid var(--border-subtle);border-radius:var(--r-lg);font-family:var(--font-text)}
.le-filterbar-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.le-filterbar-titles{flex:1 1 280px;min-width:0}
.le-filterbar-title{margin:0;font-family:var(--font-display);font-size:18px;font-weight:700;color:var(--fg-1);text-wrap:balance}
.le-filterbar-sub{margin:2px 0 0;font-size:13px;color:var(--fg-muted)}
.le-filterbar-row{display:flex;align-items:flex-end;gap:12px 16px;flex-wrap:wrap}
.le-filterbar-item{display:flex;flex-direction:column;gap:6px;width:200px;min-width:0}
.le-filterbar-label{font-size:12px;font-weight:600;color:var(--fg-2)}
.le-filterbar-select--on{border-color:var(--brand)}
.le-filterbar-reset{height:42px;padding:0 6px;border:none;background:none;font:600 13px var(--font-text);color:var(--brand);cursor:pointer;border-radius:var(--r-sm)}
.le-filterbar-reset:hover{text-decoration:underline;text-underline-offset:2px}
@media (max-width:600px){.le-filterbar{padding:14px 16px}.le-filterbar-item{width:100%!important}.le-filterbar-reset{height:44px}}

/* Full-page flow — FlowPage · FlowStepper · ActionBar · RecapCard · CompletionScreen · LeaveGuard */
.le-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.le-flow{min-height:100vh;display:flex;flex-direction:column;background:var(--bg-sunken);font-family:var(--font-text);color:var(--fg-1)}
.le-flow-top{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:8px;height:56px;padding:0 12px 0 6px;box-sizing:border-box;background:var(--bg-0);border-bottom:1px solid var(--border-subtle)}
.le-flow-close{flex:none;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border:none;background:none;border-radius:var(--r-sm);color:var(--fg-2);cursor:pointer}
.le-flow-close:hover{background:var(--bg-sunken);color:var(--fg-1)}
.le-flow-top-text{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}
.le-flow-top-title{font-size:15px;font-weight:700;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.le-flow-top-sub{font-size:12px;color:var(--fg-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.le-flow-main{flex:1 0 auto;width:100%;max-width:600px;margin:0 auto;padding:24px 16px 32px;box-sizing:border-box;display:flex;flex-direction:column;gap:20px}
.le-flow-main h1,.le-flow-main h2{outline:none}
.le-flowstep{display:flex;gap:12px;margin:0;padding:0;list-style:none}
.le-flowstep-item{flex:0 1 auto;min-width:0;display:flex;align-items:center;gap:8px}
.le-flowstep-item+.le-flowstep-item::before{content:"";flex:0 0 16px;height:1px;background:var(--border-strong)}
.le-flowstep-dot{flex:none;width:26px;height:26px;border-radius:50%;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;border:1.5px solid var(--border-strong);background:var(--bg-0);color:var(--fg-muted)}
.le-flowstep-item--current .le-flowstep-dot{border-color:var(--brand);background:var(--brand);color:var(--fg-on-brand)}
.le-flowstep-item--done .le-flowstep-dot{border-color:var(--brand);background:var(--brand-tint);color:var(--brand)}
.le-flowstep-label{min-width:0;font-size:13px;font-weight:600;color:var(--fg-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.le-flowstep-item--current .le-flowstep-label{color:var(--fg-1)}
.le-actionbar{position:sticky;bottom:0;z-index:30;background:var(--bg-0);border-top:1px solid var(--border-subtle);padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px))}
.le-actionbar-inner{display:flex;align-items:center;gap:12px;max-width:600px;margin:0 auto}
.le-actionbar-start{flex:none}
.le-actionbar-end{margin-left:auto;display:flex;gap:12px;min-width:0}
.le-actionbar-btn{height:44px}
@media (max-width:600px){.le-actionbar-end{flex:1 1 auto}.le-actionbar-end .le-actionbar-btn{flex:1 1 auto;justify-content:center;white-space:normal;text-align:center;line-height:1.2}}
.le-recap{background:var(--bg-0);border:1px solid var(--border-subtle);border-radius:var(--r-lg);padding:6px 12px 12px 16px}
.le-recap-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px}
.le-recap-title{margin:0;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-muted)}
.le-recap-list{margin:0;display:flex;flex-direction:column;gap:6px}
.le-recap-row{display:grid;grid-template-columns:minmax(96px,35%) minmax(0,1fr);gap:12px;font-size:14px}
.le-recap-row dt{color:var(--fg-muted)}
.le-recap-row dd{margin:0;color:var(--fg-1);overflow-wrap:anywhere}
.le-done{display:flex;flex-direction:column;align-items:center;gap:12px;padding:16px 0 8px;text-align:center}
.le-done-badge{width:56px;height:56px;border-radius:50%;background:var(--success-50);color:var(--success-600);display:inline-flex;align-items:center;justify-content:center}
.le-done-title{margin:4px 0 0;font-family:var(--font-display);font-size:22px;line-height:1.25;font-weight:700;text-wrap:balance}
.le-done-text{margin:0;font-size:14px;color:var(--fg-2);text-wrap:pretty;max-width:46ch}
.le-done-copies,.le-done-check{width:100%;margin-top:8px;text-align:left}
.le-done-copies{display:flex;flex-direction:column;background:var(--bg-0);border:1px solid var(--border-subtle);border-radius:var(--r-lg)}
.le-done-copy{display:flex;align-items:center;gap:12px;padding:12px 12px 12px 16px}
.le-done-copy+.le-done-copy{border-top:1px solid var(--border-subtle)}
.le-done-copy-text{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}
.le-done-copy-label{font-size:12px;color:var(--fg-muted)}
.le-done-copy-value{font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.le-done-copy-btn--ok,.le-done-copy-btn--ok:hover{border-color:var(--success-600);color:var(--green-700);background:var(--success-50)}
.le-done-check{background:var(--bg-0);border:1px solid var(--border-subtle);border-radius:var(--r-lg);padding:14px 16px}
.le-done-check-title{margin:0 0 8px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-muted)}
.le-done-check ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column}
.le-done-check li{display:flex;align-items:center;gap:10px;min-height:40px;font-size:14px}
.le-done-check a{color:var(--brand);font-weight:600;text-decoration:none}
.le-done-check a:hover{text-decoration:underline;text-underline-offset:2px}
.le-done-check-dot{flex:none;width:18px;height:18px;box-sizing:border-box;border-radius:50%;border:1.5px solid var(--border-strong);display:inline-flex;align-items:center;justify-content:center}
.le-done-check--ok .le-done-check-dot{background:var(--success-600);border-color:var(--success-600);color:#fff}
.le-done-check--ok>span:not(.le-done-check-dot):not(.le-sr-only){color:var(--fg-muted);text-decoration:line-through}
.le-done-actions{width:100%;display:flex;flex-direction:column;gap:10px;margin-top:8px}
.le-done-actions>.le-btn{height:44px;justify-content:center}
.le-leave-actions{display:flex;flex-direction:column;gap:8px;padding:8px 20px 20px}
.le-leave-actions .le-btn{height:44px;justify-content:center}
.le-leave-discard{color:var(--danger-600)}
.le-leave-discard:hover{background:var(--danger-50);color:var(--danger-600)}
@media (max-width:600px){.le-modal.le-leave{height:auto;margin-top:auto;border-radius:var(--r-lg) var(--r-lg) 0 0;padding-bottom:env(safe-area-inset-bottom,0px)}}
.le-draft{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 14px;border-radius:var(--r-md);background:var(--info-50);color:var(--info-600);font-size:13px;font-weight:600}
.le-draft-discard{border:none;background:none;padding:0;min-height:32px;font:inherit;color:var(--info-600);text-decoration:underline;text-underline-offset:2px;cursor:pointer}

/* ErrorSummary */
.le-errsum{padding:14px 16px;border-radius:var(--r-md);background:var(--danger-50);border:1px solid color-mix(in oklab,var(--danger-600) 25%,transparent);color:var(--danger-600);font-family:var(--font-text);outline:none}
.le-errsum:focus-visible{box-shadow:0 0 0 3px var(--focus-ring)}
.le-errsum-head{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700}
.le-errsum-list{margin:8px 0 0;padding:0 0 0 26px;display:flex;flex-direction:column;gap:2px}
.le-errsum-list a{display:inline-block;min-height:28px;line-height:28px;font-size:14px;font-weight:600;color:var(--danger-600);text-decoration:underline;text-underline-offset:2px}
.le-errsum-list a:hover{color:var(--fg-1)}

/* EmptyState */
.le-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:40px 24px;text-align:center;background:var(--bg-sunken);border-radius:var(--r-md);font-family:var(--font-text)}
.le-empty--compact{padding:20px 16px}
.le-empty-icon{display:inline-flex;width:44px;height:44px;margin-bottom:4px;align-items:center;justify-content:center;border-radius:50%;background:var(--bg-0);color:var(--fg-muted)}
.le-empty-title{margin:0;font-size:15px;font-weight:700;color:var(--fg-1);text-wrap:balance}
.le-empty-text{margin:0;max-width:44ch;font-size:13px;color:var(--fg-muted);text-wrap:pretty}
.le-empty-action{margin-top:10px}

/* DangerZone */
.le-danger{display:flex;align-items:center;justify-content:space-between;gap:16px 24px;flex-wrap:wrap;padding:18px 20px;background:var(--bg-0);border:1px solid color-mix(in oklab,var(--danger-600) 35%,transparent);border-radius:var(--r-lg);font-family:var(--font-text)}
.le-danger-text{flex:1 1 320px;min-width:0}
.le-danger-title{margin:0;font-size:15px;font-weight:700;color:var(--danger-600)}
.le-danger-impact{margin:4px 0 0;font-size:13px;color:var(--fg-2);text-wrap:pretty}
.le-danger-blocked{margin:8px 0 0;padding:8px 12px;border-radius:var(--r-sm);background:var(--bg-sunken);font-size:13px;color:var(--fg-1)}
.le-danger-btn{flex:none}
@media (max-width:600px){.le-danger-btn{width:100%;justify-content:center;height:44px}}

/* StackedBar */
.le-stack{display:flex;flex-direction:column;gap:12px;font-family:var(--font-text);min-width:0}
.le-stack-bar{display:flex;gap:2px;width:100%;border-radius:var(--r-pill);overflow:hidden;background:var(--ink-100)}
.le-stack-seg{flex-basis:0;min-width:3px;transition:opacity var(--dur-1) var(--ease-out)}
.le-stack-seg--dim{opacity:.35}
.le-stack-legend{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:4px 24px}
.le-stack-legend li{display:grid;grid-template-columns:8px minmax(0,1fr) auto 44px;align-items:center;gap:8px;min-height:28px;padding:0 6px;border-radius:var(--r-sm);font-size:13px}
.le-stack-legend--on{background:var(--bg-sunken)}
.le-stack-dot{width:8px;height:8px;border-radius:50%}
.le-stack-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg-1)}
.le-stack-value,.le-stack-pct{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.le-stack-value{color:var(--fg-1);font-weight:600}
.le-stack-pct{color:var(--fg-muted)}

/* RankStrip */
.le-rank{display:flex;align-items:center;gap:20px;font-family:var(--font-text);min-width:0}
.le-rank-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:6px}
.le-rank-track{position:relative;height:56px;margin:0 8px}
.le-rank-line{position:absolute;left:0;right:0;top:32px;height:2px;border-radius:1px;background:var(--ink-200)}
.le-rank-dot{position:absolute;top:27px;width:12px;height:12px;margin-left:-6px;box-sizing:border-box;border-radius:50%;background:var(--ink-300);border:2px solid #fff}
.le-rank-dot--me{top:24px;width:18px;height:18px;margin-left:-9px;background:var(--brand);border-width:3px;box-shadow:var(--shadow-sm);z-index:1}
.le-rank-me-label{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:13px;font-weight:700;color:var(--brand);font-variant-numeric:tabular-nums}
.le-rank-avg{position:absolute;top:22px;height:22px;border-left:1.5px dashed var(--ink-500)}
.le-rank-avg-label{position:absolute;top:24px;left:0;transform:translateX(-50%);white-space:nowrap;font-size:11px;color:var(--fg-muted);font-variant-numeric:tabular-nums}
.le-rank-axis{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:14px;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--fg-muted)}
.le-rank-axis span{white-space:nowrap}
.le-rank-pos{flex:none;font-family:var(--font-display);font-size:22px;font-weight:700;color:var(--fg-1);font-variant-numeric:tabular-nums;white-space:nowrap}
.le-rank-pos span{font-size:14px;font-weight:500;color:var(--fg-muted);font-family:var(--font-text)}

/* CompareBars */
.le-compare{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;font-family:var(--font-text)}
.le-compare-row{display:grid;grid-template-columns:minmax(120px,200px) minmax(60px,1fr) auto 92px;align-items:center;gap:12px;min-height:44px;padding:6px 10px;border-radius:var(--r-sm);font-size:13px}
.le-compare-row--current{background:var(--brand-tint)}
.le-compare-label{display:flex;flex-direction:column;min-width:0;font-weight:600;color:var(--fg-1)}
.le-compare-label,.le-compare-meta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.le-compare-meta{font-size:12px;font-weight:400;color:var(--fg-muted)}
.le-compare-bar{display:block;min-width:0}
.le-compare-fill{display:flex;height:10px;gap:1px}
.le-compare-base,.le-compare-extra{flex-basis:0;min-width:0}
.le-compare-base{background:var(--ink-300);border-radius:var(--r-pill) 0 0 var(--r-pill)}
.le-compare-base--best{background:var(--success-600);border-radius:var(--r-pill)}
.le-compare-extra{background:var(--danger-600);border-radius:0 var(--r-pill) var(--r-pill) 0;min-width:2px}
.le-compare-value{text-align:right;white-space:nowrap;font-weight:600;color:var(--fg-1);font-variant-numeric:tabular-nums}
.le-compare-gap{text-align:right;white-space:nowrap;font-weight:700;color:var(--danger-600);font-variant-numeric:tabular-nums}
.le-compare-gap--best{color:var(--green-700);font-weight:600;font-size:12px}
@media (max-width:600px){.le-compare-row{grid-template-columns:minmax(0,1fr) auto auto;row-gap:6px}.le-compare-bar{grid-column:1/-1;grid-row:2}}

/* FlowBanner tones (E7) */
.le-flowbanner--success{background:var(--success-50);color:var(--green-700)}
.le-flowbanner--success .le-draft-discard{color:var(--green-700)}
.le-flowbanner--warning{background:var(--warning-50);color:var(--fg-1)}
.le-flowbanner--warning .le-draft-discard{color:var(--fg-1)}
.le-flowbanner--danger{background:var(--danger-50);color:var(--danger-600)}
.le-flowbanner--danger .le-draft-discard{color:var(--danger-600)}

/* SupplierSetupForm */
.le-sup{background:var(--bg-0);border:1px solid var(--border-subtle);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);overflow:hidden;font-family:var(--font-text);color:var(--fg-1)}
.le-sup-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:20px 24px;border-bottom:1px solid var(--border-subtle)}
.le-sup-name{margin:0;flex:1;min-width:0;font-family:var(--font-display);font-size:26px;line-height:1.2;font-weight:700}
.le-sup-sec{display:grid;grid-template-columns:40px minmax(0,1fr);gap:0 14px;padding:22px 24px}
.le-sup-sec+.le-sup-sec{border-top:1px solid var(--border-subtle)}
.le-sup-sec--auto{background:var(--bg-sunken)}
.le-sup-num{grid-row:1/3;width:32px;height:32px;border-radius:50%;background:var(--ink-100);color:var(--ink-700);font:700 14px var(--font-text);display:inline-flex;align-items:center;justify-content:center}
.le-sup-num--ok{background:var(--success-600);color:#fff}
.le-sup-num--icon{border-radius:var(--r-sm);background:var(--brand-tint);color:var(--brand)}
.le-sup-sec-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-height:32px}
.le-sup-sec-title{margin:0;font-size:16px;font-weight:700}
.le-sup-sec-help{grid-column:2;margin:2px 0 14px;font-size:13px;color:var(--fg-2);line-height:1.45;text-wrap:pretty}
.le-sup-sec-body{grid-column:2;display:flex;flex-direction:column;gap:14px}
.le-sup-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.le-sup-rows{display:flex;flex-direction:column}
.le-sup-row{display:flex;flex-direction:column;gap:8px;padding:14px 0}
.le-sup-row+.le-sup-row{border-top:1px solid var(--border-subtle)}.le-sup-row:first-child{padding-top:0}.le-sup-row:last-child{padding-bottom:0}
.le-sup-row-label{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700}
.le-sup .le-chipinput-list{max-height:62px;overflow-y:auto;padding:0 2px 0 0}
.le-sup .le-chipinput-chip{height:28px;font-size:13px}
.le-sup .le-chipinput-remove::after{inset:-2px}
.le-sup-copies{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.le-sup-copy{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--bg-0);border:1px solid var(--border-subtle);border-radius:var(--r-md)}
.le-sup-copy-text{flex:1;min-width:0}
.le-sup-copy-label{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-muted)}
.le-sup-copy-val{font:600 13px var(--font-mono);overflow-wrap:anywhere;margin-top:2px}
@media (max-width:600px){.le-sup-head,.le-sup-sec{padding-left:16px;padding-right:16px}.le-sup-sec{grid-template-columns:28px minmax(0,1fr);gap:0 10px}.le-sup-num{width:28px;height:28px;font-size:13px}.le-sup-name{font-size:22px}}

/* SupplierStepper */
.le-supstep{display:flex;gap:6px;margin:0;padding:0;list-style:none;font-family:var(--font-text)}
.le-supstep-i{flex:1 1 auto;min-width:0}
.le-supstep-i button{width:100%;display:flex;align-items:center;gap:6px;padding:8px 6px 10px;border:none;border-top:3px solid var(--border-subtle);background:none;font:inherit;text-align:left;cursor:pointer;color:var(--fg-muted)}
.le-supstep-i button:hover{color:var(--fg-1)}
.le-supstep-i--done button{border-top-color:var(--success-600)}
.le-supstep-i--current button{border-top-color:var(--brand);color:var(--fg-1)}
.le-supstep-dot{flex:none;width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font:700 11px var(--font-text);background:var(--bg-0);border:1.5px solid var(--border-strong);color:var(--fg-muted);box-sizing:border-box}
.le-supstep-i--done .le-supstep-dot,.le-supstep-dot--done{background:var(--success-600);border-color:var(--success-600);color:#fff}
.le-supstep-i--current .le-supstep-dot,.le-supstep-dot--current{background:var(--brand);border-color:var(--brand);color:var(--fg-on-brand)}
.le-supstep-name{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:600px){.le-supstep-i{flex:0 0 auto}.le-supstep-i--current{flex:1 0 auto}.le-supstep-i:not(.le-supstep-i--current) .le-supstep-name{display:none}}
.le-supstep-c{position:relative;display:flex;flex-direction:column;gap:10px;font-family:var(--font-text)}
.le-supstep-c-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.le-supstep-c-label{font-size:14px;color:var(--fg-2)}.le-supstep-c-label strong{color:var(--fg-1)}
.le-supstep-seg{display:flex;gap:3px}
.le-supstep-seg-i{flex:1 1 0;min-width:0;height:8px;padding:0;border:none;border-radius:2px;background:var(--border-subtle);cursor:pointer;position:relative}
.le-supstep-seg-i::before{content:"";position:absolute;inset:-8px 0}
.le-supstep-seg-i:hover{filter:brightness(.9)}
.le-supstep-seg-i--done{background:var(--success-600)}.le-supstep-seg-i--current{background:var(--brand)}
.le-supstep-pop{position:absolute;right:0;top:40px;z-index:30;width:min(360px,100%);background:var(--bg-0);border:1px solid var(--border-subtle);border-radius:var(--r-md);box-shadow:var(--shadow-lg,0 8px 24px rgba(0,0,0,.12));overflow:hidden}
.le-supstep-search{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border-subtle);color:var(--fg-muted)}
.le-supstep-search input{flex:1;min-width:0;border:none;outline:none;background:none;font:14px var(--font-text);color:var(--fg-1)}
.le-supstep-list{max-height:320px;overflow-y:auto;padding:4px}
.le-supstep-row{width:100%;display:flex;align-items:center;gap:10px;min-height:44px;padding:6px 10px;border:none;background:none;border-radius:var(--r-sm);font:inherit;text-align:left;cursor:pointer;color:var(--fg-1)}
.le-supstep-row:hover{background:var(--bg-sunken)}.le-supstep-row--on{background:var(--brand-tint)}
.le-supstep-row-name{flex:1;min-width:0;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.le-supstep-row-st{font-size:12px;color:var(--fg-muted)}
.le-supstep-empty{padding:14px;font-size:13px;color:var(--fg-muted);text-align:center}

/* OnboardingHeader */
.le-obh{position:sticky;top:0;z-index:25;background:var(--bg-0);border-bottom:1px solid var(--border-subtle);font-family:var(--font-text)}
.le-obh-in{max-width:1280px;margin:0 auto;height:72px;padding:0 24px;box-sizing:border-box;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px}
.le-obh-logo{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-size:18px;font-weight:700;color:var(--fg-1)}.le-obh-logo img{width:30px;height:30px;object-fit:contain}
.le-obh-steps{display:flex;gap:10px}
.le-obh-pill{display:flex;align-items:center;gap:8px;height:44px;padding:0 14px 0 10px;border:1px solid var(--border-subtle);border-radius:999px;background:var(--bg-0);font:600 15px var(--font-text);color:var(--fg-1)}
button.le-obh-pill{cursor:pointer}button.le-obh-pill:hover{background:var(--bg-sunken)}
.le-obh-pill--on{border-color:var(--brand);background:var(--brand-tint)}
.le-obh-pill--todo{color:var(--fg-muted)}
.le-obh-dot{width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font:700 12px var(--font-text);color:#fff;background:var(--success-600)}
.le-obh-pill--on .le-obh-dot{background:var(--brand)}.le-obh-pill--todo .le-obh-dot{background:var(--ink-100);color:var(--fg-muted)}
.le-obh-save{justify-self:end;display:flex;align-items:center;gap:8px;height:32px;padding:0 14px;border-radius:999px;background:var(--success-50);color:var(--success-600);font:600 14px var(--font-text);white-space:nowrap}
.le-obh-save--saving{background:var(--ink-100);color:var(--fg-2)}.le-obh-save--error{background:var(--danger-50);color:var(--danger-600)}
@media (max-width:760px){.le-obh-in{grid-template-columns:auto 1fr;height:auto;padding:12px 16px;row-gap:10px}.le-obh-steps{grid-column:1/-1;grid-row:2}.le-obh-pill{flex:1;justify-content:center;height:40px}.le-obh-logo span{display:none}}

/* SupplierCard */
.le-supcard{display:flex;flex-direction:column;gap:12px;width:100%;padding:16px 18px;background:var(--bg-0);border:1px solid var(--border-subtle);border-radius:var(--r-lg);font:inherit;font-family:var(--font-text);text-align:left;color:var(--fg-1);cursor:pointer;box-sizing:border-box}
.le-supcard:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}
.le-supcard-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.le-supcard-name{font-size:16px;font-weight:700;line-height:1.3}
.le-supcard-lines{display:flex;flex-direction:column;gap:6px}
.le-supcard-line{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--fg-2);min-width:0}
.le-supcard-line span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.le-supcard-line svg{flex:none;color:var(--fg-muted)}
.le-supcard-line--empty{color:var(--fg-muted);font-style:italic}
.le-supcard-cta{display:flex;align-items:center;gap:4px;font-size:13px;font-weight:700;color:var(--brand);margin-top:auto}

/* Lien texte (navigation vers une vraie route). Appliqué aux <a> sans classe et à .le-link. Une action sans URL = Button, jamais <a href="#">. */
a:not([class]),.le-link{color:var(--brand);font-weight:600;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;border-radius:2px}
a:not([class]):hover,.le-link:hover{text-decoration-thickness:2px}
a:not([class]):focus-visible,.le-link:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
/* Table · lignes dépliables (renderExpanded) */
.le-th-expand,.le-td-expand{width:44px;padding-left:8px!important;padding-right:0!important}
.le-expand-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:var(--r-sm);background:none;color:var(--fg-muted);cursor:pointer;transition:transform var(--dur-1) var(--ease-out),background var(--dur-1) var(--ease-out)}
.le-expand-btn:hover{background:var(--bg-sunken);color:var(--fg-1)}
.le-expand-btn:focus-visible{outline:2px solid var(--brand);outline-offset:1px}
.le-expand-btn--open{transform:rotate(90deg);color:var(--brand)}
.le-row-detail>td{padding:12px 16px 16px 52px!important;background:var(--bg-sunken)}
@media (pointer:coarse){.le-expand-btn{width:44px;height:44px}}
.le-vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* AuthLayout — pages hors application (connexion, mot de passe oublié) */
.le-auth{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--bg-sunken);font-family:var(--font-text);color:var(--fg-1)}
.le-auth-main{flex:1 0 auto;display:flex;justify-content:center;padding:clamp(32px,12vh,120px) 16px 48px;box-sizing:border-box}
.le-auth-col{width:100%;max-width:400px;display:flex;flex-direction:column;gap:24px}
.le-auth--md .le-auth-col{max-width:480px}
.le-auth-logo{display:flex;justify-content:center}
.le-auth-logo img{display:block;height:40px;width:auto}
.le-auth-card{background:var(--bg-0);border:1px solid var(--border-subtle);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);padding:32px;display:flex;flex-direction:column;gap:24px}
.le-auth-head h1{margin:0;font:700 22px/1.25 var(--font-display);color:var(--fg-1);text-wrap:balance;outline:none}
.le-auth-head p{margin:6px 0 0;font-size:14px;line-height:1.45;color:var(--fg-muted);text-wrap:pretty}
.le-auth-body{display:flex;flex-direction:column;gap:16px}
.le-auth-body>*{margin:0}
.le-auth-footer{display:flex;flex-direction:column;align-items:center;gap:8px;font-size:14px;color:var(--fg-2);text-align:center}
@media (max-width:600px){.le-auth-main{padding-top:24px}.le-auth-card{padding:24px 20px}}
