/* TaxiNexo v5 · C2 Design System BUILD1 · component layer only */
:root{
 --tn-font-sans:Inter,Arial,Helvetica,sans-serif;
 --tn-space-1:.25rem;--tn-space-2:.5rem;--tn-space-3:.75rem;--tn-space-4:1rem;--tn-space-5:1.5rem;--tn-space-6:2rem;--tn-space-7:3rem;--tn-space-8:4rem;
 --tn-radius-sm:10px;--tn-radius-md:16px;--tn-radius-lg:24px;--tn-radius-pill:999px;
 --tn-surface:#fff;--tn-surface-soft:#eef3ff;--tn-success:#087a55;--tn-success-soft:#eaf8f2;--tn-danger:#b42318;--tn-danger-soft:#fff0ee;--tn-warning:#806200;--tn-warning-soft:#fff8d8;
 --tn-shadow-sm:0 8px 22px rgba(10,60,184,.08);--tn-shadow-md:0 18px 45px rgba(10,60,184,.12);
 --tn-measure:68ch;
}
.tn-section{padding:clamp(2.5rem,6vw,5rem) 0}.tn-section--soft{background:var(--tn-surface-soft)}
.tn-kicker{margin:0 0 .5rem;color:var(--tn-blue);font-weight:900;letter-spacing:.08em;text-transform:uppercase;font-size:.78rem}.tn-display{margin:0;color:var(--tn-heading);font-size:clamp(2.25rem,6vw,4.75rem);line-height:.98;letter-spacing:-.035em}.tn-h2{margin:0 0 .65rem;color:var(--tn-heading);font-size:clamp(1.55rem,3vw,2.35rem);line-height:1.1}.tn-h3{margin:0 0 .5rem;color:var(--tn-heading);font-size:1.2rem;line-height:1.2}.tn-lead{max-width:var(--tn-measure);font-size:clamp(1.05rem,2vw,1.22rem);color:var(--tn-muted)}.tn-copy{max-width:var(--tn-measure);color:var(--tn-ink)}
.tn-stack>*{margin-block:0}.tn-stack>*+*{margin-top:var(--tn-space-4)}.tn-cluster{display:flex;flex-wrap:wrap;align-items:center;gap:var(--tn-space-3)}.tn-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--tn-space-5)}
.tn-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.68rem 1.1rem;border-radius:var(--tn-radius-pill);border:1px solid transparent;text-decoration:none;font:inherit;font-weight:850;cursor:pointer}.tn-btn--primary{background:var(--tn-yellow);color:var(--tn-heading)}.tn-btn--primary:hover{filter:brightness(.97)}.tn-btn--secondary{background:var(--tn-blue);color:#fff}.tn-btn--secondary:hover{background:var(--tn-blue-hover)}.tn-btn--outline{background:#fff;color:var(--tn-blue);border-color:var(--tn-blue)}.tn-btn[disabled]{opacity:.48;cursor:not-allowed}
.tn-text-link{color:var(--tn-blue);font-weight:800;text-underline-offset:.18em}.tn-card{background:#fff;border:1px solid var(--tn-line);border-radius:var(--tn-radius-lg);padding:clamp(1.25rem,3vw,1.8rem);box-shadow:var(--tn-shadow-sm)}.tn-card p{color:var(--tn-muted)}
.tn-field{display:grid;gap:.4rem;max-width:34rem}.tn-label{font-weight:800;color:var(--tn-heading)}.tn-input,.tn-select,.tn-textarea{width:100%;min-height:46px;border:1px solid #9eacc0;border-radius:12px;background:#fff;color:var(--tn-ink);font:inherit;padding:.7rem .85rem}.tn-textarea{min-height:110px;resize:vertical}.tn-help{font-size:.9rem;color:var(--tn-muted)}.tn-input[aria-invalid=true]{border-color:var(--tn-danger);background:var(--tn-danger-soft)}.tn-error{color:var(--tn-danger);font-weight:750;font-size:.9rem}
.tn-status{border-radius:var(--tn-radius-md);padding:1rem 1.1rem;border:1px solid var(--tn-line);font-weight:700}.tn-status--success{background:var(--tn-success-soft);color:var(--tn-success);border-color:#b9e6d4}.tn-status--warning{background:var(--tn-warning-soft);color:#664e00;border-color:#eedb7a}.tn-status--danger{background:var(--tn-danger-soft);color:var(--tn-danger);border-color:#efc3bd}
.tn-swatch{border-radius:16px;min-height:116px;padding:1rem;display:flex;flex-direction:column;justify-content:flex-end;font-weight:850}.tn-swatch--blue{background:var(--tn-blue);color:#fff}.tn-swatch--yellow{background:var(--tn-yellow);color:var(--tn-heading)}.tn-swatch--ink{background:var(--tn-heading);color:#fff}.tn-swatch--soft{background:var(--tn-bg);color:var(--tn-heading);border:1px solid var(--tn-line)}
.tn-demo-media{aspect-ratio:16/9;border-radius:var(--tn-radius-lg);background:linear-gradient(135deg,var(--tn-blue-soft),#fff);border:1px solid var(--tn-line);display:grid;place-items:center;color:var(--tn-muted);font-weight:800;text-align:center;padding:1rem}.tn-rule{border:0;border-top:1px solid var(--tn-line);margin:2rem 0}
@media(max-width:799px){.tn-grid{grid-template-columns:1fr}.tn-section{padding:2.5rem 0}.tn-display{font-size:clamp(2.1rem,12vw,3.35rem)}}
@media(prefers-reduced-motion:reduce){.tn-btn{transition:none}}
