/* Tactile DS component kit — bundle.css
   Styles only through tokens.css custom properties. Load tokens.css first. */

.tds-reset{box-sizing:border-box}
.tds-neu-raised{background:var(--surface);border-radius:var(--radius-default);box-shadow:var(--shadow-shallow)}
.tds-neu-card{background:var(--surface);border-radius:var(--radius-card);box-shadow:var(--shadow-card)}
.tds-neu-inset{background:var(--surface-container-low);border-radius:var(--radius-default);box-shadow:var(--shadow-inset)}
.tds-neu-pressed{box-shadow:var(--shadow-pressed)!important}
.tds-neu-pill{border-radius:var(--radius-control)}

.tds-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;padding:0 20px;border-radius:var(--radius-control);border:0;cursor:pointer;font-family:var(--font-sans);font-weight:700;font-size:14px;background:var(--surface);color:var(--on-surface);box-shadow:var(--shadow-shallow);transition:box-shadow .12s ease}
.tds-btn:active{box-shadow:var(--shadow-pressed)}
.tds-btn:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}
.tds-btn[data-variant='primary']{background:linear-gradient(135deg,var(--accent-primary),var(--md-primary-container));color:#fff}
.tds-btn[data-variant='ghost']{background:transparent;box-shadow:none}
.tds-btn[data-variant='ghost']:active{box-shadow:var(--shadow-pressed)}
.tds-btn[data-variant='danger']{background:var(--error);color:#fff}
.tds-btn[disabled]{opacity:.45;cursor:not-allowed}
.tds-icon-btn{width:44px;height:44px;padding:0;border-radius:20px}
.tds-icon-btn[data-shape='circle']{border-radius:50%}

.tds-card{background:var(--surface);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:24px}

.tds-input-well{display:flex;align-items:center;gap:8px;height:44px;padding:0 16px;border-radius:var(--radius-control);background:var(--surface-container-low);box-shadow:var(--shadow-inset)}
.tds-input-well input,.tds-input-well select{border:0;outline:0;background:transparent;width:100%;font-family:var(--font-sans);color:var(--on-surface)}
.tds-input-well input::placeholder{color:var(--text-placeholder)}
.tds-input-well:focus-within{box-shadow:var(--shadow-inset), 0 0 0 4px rgba(59,130,246,.2)}
.tds-input-well[data-error='true']{box-shadow:var(--shadow-inset), 0 0 0 3px rgba(186,26,26,.25)}
.tds-input-well .tds-icon{color:var(--text-placeholder)}

.tds-check,.tds-radio{width:22px;height:22px;border-radius:7px;background:var(--surface);box-shadow:var(--shadow-shallow);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.tds-radio{border-radius:50%}
.tds-check[data-checked='true'],.tds-radio[data-checked='true']{background:var(--accent-primary);box-shadow:none;color:#fff}

.tds-toggle{width:56px;height:32px;border-radius:9999px;background:var(--surface-container-low);box-shadow:var(--shadow-inset);position:relative;cursor:pointer}
.tds-toggle .tds-thumb{position:absolute;top:4px;left:4px;width:24px;height:24px;border-radius:50%;background:var(--surface);box-shadow:var(--shadow-shallow);transition:left .18s ease}
.tds-toggle[data-on='true']{background:linear-gradient(135deg,var(--accent-primary),var(--accent-emerald))}
.tds-toggle[data-on='true'] .tds-thumb{left:28px}

.tds-segmented{display:inline-flex;padding:4px;border-radius:9999px;background:var(--surface-container-low);box-shadow:var(--shadow-inset);gap:2px}
.tds-segmented button{border:0;background:transparent;padding:8px 16px;border-radius:9999px;cursor:pointer;font-family:var(--font-sans);font-size:12px;font-weight:600;color:var(--on-surface-variant)}
.tds-segmented button[data-active='true']{background:var(--surface);box-shadow:var(--shadow-shallow);color:var(--on-surface)}

.tds-chip{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:9999px;background:var(--surface);box-shadow:var(--shadow-shallow);cursor:pointer;font-family:var(--font-sans);font-size:12px;font-weight:600;color:var(--on-surface-variant)}
.tds-chip[data-active='true']{box-shadow:var(--shadow-pressed);color:var(--accent-primary)}

.tds-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 12px;border-radius:9999px;font-family:var(--font-sans);font-size:11px;font-weight:700}
.tds-badge::before{content:'';width:7px;height:7px;border-radius:50%;background:currentColor}
.tds-badge[data-tone='success']{background:rgba(16,185,129,.14);color:#0a8a5f}
.tds-badge[data-tone='warning']{background:rgba(245,158,11,.16);color:#b45309}
.tds-badge[data-tone='error']{background:rgba(186,26,26,.12);color:var(--error)}
.tds-badge[data-tone='info']{background:rgba(59,130,246,.14);color:var(--accent-primary)}

.tds-tabs{display:flex;gap:4px;border-radius:9999px;background:var(--surface-container-low);box-shadow:var(--shadow-inset);padding:4px;width:fit-content}
.tds-tabs button{border:0;background:transparent;padding:9px 18px;border-radius:9999px;cursor:pointer;font-family:var(--font-sans);font-weight:600;color:var(--on-surface-variant)}
.tds-tabs button[data-active='true']{background:var(--surface);box-shadow:var(--shadow-shallow);color:var(--accent-primary)}

.tds-slider{-webkit-appearance:none;appearance:none;width:100%;height:8px;border-radius:99px;background:var(--surface-container-low);box-shadow:var(--shadow-inset);outline:0}
.tds-slider::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:var(--surface);box-shadow:var(--shadow-shallow);cursor:pointer;border:3px solid var(--accent-primary)}

.tds-meter{height:14px;border-radius:99px;background:var(--surface-container-low);box-shadow:var(--shadow-inset);overflow:hidden}
.tds-meter>i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--accent-primary),var(--accent-cyan))}
.tds-progress{height:10px;border-radius:99px;background:var(--surface-container-low);box-shadow:var(--shadow-inset);overflow:hidden}
.tds-progress>i{display:block;height:100%;border-radius:99px;background:var(--accent-primary)}

.tds-stepper{display:inline-flex;align-items:center;border-radius:9999px;background:var(--surface-container-low);box-shadow:var(--shadow-inset);overflow:hidden}
.tds-stepper button{width:36px;height:44px;border:0;background:transparent;cursor:pointer;font-size:18px;color:var(--on-surface-variant)}
.tds-stepper .tds-val{min-width:36px;text-align:center;font-family:var(--font-mono);font-weight:600}

.tds-alert{display:flex;gap:12px;padding:16px;border-radius:var(--radius-default);align-items:flex-start;font-family:var(--font-sans)}
.tds-alert[data-tone='info']{background:rgba(59,130,246,.1);color:#1d4ed8}
.tds-alert[data-tone='success']{background:rgba(16,185,129,.12);color:#047857}
.tds-alert[data-tone='warning']{background:rgba(245,158,11,.14);color:#b45309}
.tds-alert[data-tone='error']{background:rgba(186,26,26,.1);color:var(--error)}

.tds-modal-backdrop{position:fixed;inset:0;background:rgba(20,25,35,.45);display:flex;align-items:center;justify-content:center;z-index:300;padding:20px}
.tds-modal{background:var(--surface);border-radius:var(--radius-card);box-shadow:var(--shadow-card);max-width:520px;width:100%;padding:24px;font-family:var(--font-sans)}

.tds-table{width:100%;border-collapse:collapse;font-family:var(--font-sans)}
.tds-table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--outline);font-weight:700;padding:10px 14px}
.tds-table td{padding:12px 14px;font-size:14px}
.tds-table tbody tr:hover{background:var(--surface-container-low)}

.tds-avatar{border-radius:50%;background:var(--surface);box-shadow:var(--shadow-shallow);display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-sans);font-weight:700;color:var(--accent-primary);width:40px;height:40px}

.tds-icon{font-family:'Material Symbols Outlined';font-variation-settings:'FILL' 0,'wght' 400,'GRAD' 0,'opsz' 20;font-size:20px;line-height:1;display:inline-flex;color:var(--on-surface-variant);user-select:none}