/* Composants Tresolo : états natifs communs au produit et aux pages publiques. */
.button{min-height:var(--control-height);display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border:1px solid transparent;border-radius:var(--radius-sm);font-size:var(--text-ui);font-weight:var(--weight-strong);line-height:1.35;text-decoration:none;white-space:normal;transition:background-color var(--interaction) var(--ease-out),border-color var(--interaction) var(--ease-out),transform var(--duration-instant) var(--ease-out)}
.button:active:not(:disabled){transform:translateY(1px)}
.button-primary{background:var(--accent);color:var(--text-inverse);border-color:var(--accent);box-shadow:var(--shadow-control)}
.button-secondary{background:var(--surface);border-color:var(--control-line);color:var(--ink);box-shadow:var(--shadow-control)}
.button-ghost{background:transparent;color:var(--ink)}
.button-small{font-size:13px;padding:8px 12px;min-height:var(--control-height)}
.button-destructive{border-color:var(--negative);color:var(--negative);background:var(--surface)}
.button:disabled{transform:none;box-shadow:none}
.button[aria-busy=true]{cursor:progress}
.badge{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);padding:3px 8px;border-radius:var(--radius-sm);font-size:var(--text-meta);font-weight:var(--weight-medium);line-height:1.6;white-space:nowrap;background:var(--surface);color:var(--ink-2)}
.badge-accent{background:var(--accent-soft);color:var(--accent-ink);border-color:transparent}
.badge-positive{background:var(--status-success-bg);color:var(--positive);border-color:transparent}
.badge-warning{background:var(--status-warning-bg);color:var(--warn);border-color:transparent}
.badge-negative{background:var(--status-danger-bg);color:var(--negative);border-color:transparent}
.eyebrow{font-size:var(--text-meta);line-height:1.4;letter-spacing:.06em;text-transform:uppercase;font-weight:var(--weight-strong);color:var(--muted)}
.field{display:grid;gap:6px;min-width:0}
.field label,.field-label{font-size:13px;font-weight:var(--weight-medium);color:var(--ink)}
.field input,.field select,.field textarea,input.form-control,select.form-control{width:100%;min-height:var(--control-height);padding:10px 12px;font-size:16px;line-height:1.4;background:var(--surface);border:1px solid var(--control-line);border-radius:var(--radius-sm);color:var(--ink);transition:border-color var(--interaction) var(--ease-out),box-shadow var(--interaction) var(--ease-out)}
.field input::placeholder,.field textarea::placeholder{color:var(--muted);opacity:1}
.field textarea{resize:vertical;min-height:112px}
.field input:disabled,.field select:disabled,.field textarea:disabled{background:var(--paper-2);color:var(--ink-2);cursor:not-allowed}
.field-help,.field-error{font-size:var(--text-meta);line-height:1.55}
.field-help{color:var(--muted)}
.field-error{color:var(--negative)}
[aria-invalid=true]{border-color:var(--negative)!important;background:var(--status-danger-bg)}
input[type=checkbox],input[type=radio]{accent-color:var(--accent)}
.segmented{display:inline-flex;padding:3px;gap:2px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper-2)}
.segmented button{border:0;background:transparent;border-radius:4px;padding:8px 14px;min-height:var(--control-height);font-size:13px;color:var(--ink-2)}
.segmented button[aria-checked=true],.segmented button[aria-selected=true],.segmented button.active{background:var(--surface);color:var(--accent-ink);font-weight:var(--weight-strong);box-shadow:var(--shadow-control)}
.table-wrap{max-width:100%;overflow:auto;overscroll-behavior-x:contain;scrollbar-color:var(--control-line) var(--paper-2);scrollbar-width:thin}
.data-table{width:100%;border-collapse:collapse;text-align:left;font-size:var(--text-ui);font-variant-numeric:tabular-nums lining-nums}
.data-table caption{text-align:left;padding:0 0 12px;color:var(--muted);font-size:var(--text-meta);line-height:1.5}
.data-table th,.data-table td{padding:14px 16px;border-bottom:1px solid var(--line);vertical-align:middle}
.data-table thead th{font-size:var(--text-meta);font-weight:var(--weight-medium);color:var(--ink-2);background:var(--paper);white-space:nowrap}
.data-table tbody th{font-weight:var(--weight-medium)}
.data-table .numeric{text-align:right}
.data-table tfoot td,.data-table tfoot th{background:var(--paper);font-weight:var(--weight-strong)}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px;min-width:0}
.notice{padding:16px 20px;border:1px solid var(--line);border-left:3px solid var(--status-info);border-radius:var(--radius-sm);font-size:13px;background:var(--status-info-bg);color:var(--ink-2)}
.status-message{padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);font-size:13px;background:var(--paper-2)}
.status-message:empty{display:none}
.link-arrow{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:var(--weight-medium);text-decoration:none;min-height:var(--control-height)}
.link-arrow span{text-decoration:underline;text-underline-offset:4px}
dialog{color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-large);box-shadow:var(--shadow);padding:24px;max-width:min(560px,calc(100% - 32px));max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain}
dialog::backdrop{background:#17233880}
summary{cursor:pointer;min-height:var(--control-height)}
.mark{display:inline-flex;width:25px;height:25px;position:relative;align-items:flex-end;gap:3px;margin-right:9px;color:var(--accent)}
.mark i{display:block;width:5px;background:currentColor;border-radius:1px}
.mark i:nth-child(1){height:12px}.mark i:nth-child(2){height:18px}.mark i:nth-child(3){height:25px}
.wordmark{display:inline-flex;align-items:center;text-decoration:none;font-size:23px;line-height:1;font-weight:650;letter-spacing:-.9px;color:var(--ink)}
@media(hover:hover){
  .button-primary:hover{background:var(--accent-ink);border-color:var(--accent-ink);color:var(--text-inverse)}
  .button-secondary:hover,.button-ghost:hover{background:var(--bg-hover);color:var(--ink)}
  .button-destructive:hover{background:var(--status-danger-bg);color:var(--negative)}
  .field input:hover,.field select:hover,.field textarea:hover{border-color:var(--ink-2)}
  .data-table tbody tr:hover{background:var(--bg-hover)}
}
