:root{--brisa-navy:#1b3a51;--brisa-navy-dark:#0f2335;--brisa-orange:#fa5738;--brisa-orange-mid:#f4825c;--brisa-orange-lt:#fee;--brisa-body:#edf0f6;--brisa-card:#fff;--brisa-row:#f7f8f9;--brisa-text-heading:#1b3a51;--brisa-text-body:#4a5568;--brisa-text-muted:#667482;--brisa-border:#e2e8f0;--brisa-error:#f23b3b;--brisa-error-bg:#fee;--brisa-success:#31cd64;--brisa-success-bg:#31cd641a;--brisa-warning:#fda92a;--brisa-warning-bg:#fff5e1;--brisa-shadow:0 4px 16px #1b3a511a, 0 1px 4px #1b3a510f;--text:var(--brisa-text-body);--text-h:var(--brisa-text-heading);--bg:var(--brisa-body);--border:var(--brisa-border);--accent:var(--brisa-orange);--accent-bg:var(--brisa-orange-lt);--accent-border:var(--brisa-orange-mid);--code-bg:var(--brisa-row);--social-bg:#f0f0f7;--shadow:var(--brisa-shadow);--distance-3xs:2px;--distance-2xs:4px;--distance-xs:6px;--distance-s:8px;--distance-m:12px;--distance-l:16px;--distance-xl:20px;--distance-2xl:24px;--distance-3xl:32px;--distance-4xl:48px;--distance-5xl:56px;--distance-6xl:64px;--font-size-xs:12px;--font-size-s:13px;--font-size-m:14px;--font-size-l:16px;--font-size-xl:20px;--font-size-2xl:22px;--font-size-3xl:28px;--sans:"Inter", system-ui, "Segoe UI", Roboto, sans-serif;--heading:"Inter", system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:var(--font-size-l) / 150% var(--sans);letter-spacing:.01px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--brisa-navy:#1e293b;--brisa-navy-dark:#0f172a;--brisa-body:#141414;--brisa-card:#1e293b;--brisa-row:#475569;--brisa-text-heading:#f1f5f9;--brisa-text-body:#94a3b8;--brisa-text-muted:#64748b;--brisa-border:#334155;--brisa-shadow:0 4px 16px #00000059, 0 1px 4px #0003;--social-bg:#1e293b;--code-bg:var(--brisa-navy)}}body{background:var(--bg);margin:0}#root{flex-direction:column;min-height:100svh;display:flex}h1,h2,h3{font-family:var(--heading);color:var(--text-h);margin:0;font-weight:600}h1{font-size:var(--font-size-3xl);letter-spacing:-.5px}@media (width<=768px){h1{font-size:var(--font-size-2xl)}}h2{font-size:var(--font-size-xl)}p{margin:0}code{font-family:var(--mono);font-size:var(--font-size-s);padding:var(--distance-3xs) var(--distance-xs);border-radius:var(--distance-2xs);background:var(--code-bg);color:var(--text-h)}.upload-zone{border:var(--distance-3xs) dashed var(--brisa-border);border-radius:var(--distance-s);padding:var(--distance-4xl) var(--distance-2xl) var(--distance-3xl);text-align:center;cursor:pointer;background:var(--brisa-body);transition:border-color .2s,background .2s}@media (prefers-color-scheme:dark){.upload-zone{background:var(--brisa-navy)}}--dragging.upload-zone{border-color:var(--brisa-orange);background:var(--brisa-orange-lt)}@media (prefers-color-scheme:dark){--dragging.upload-zone{background:#fa57381a}}--loading.upload-zone{opacity:.6;cursor:wait}.upload-zone input[type=file]{display:none}.upload-zone__label{color:var(--brisa-text-muted);margin:0 0 var(--distance-xl);font-size:15px}.upload-zone__button{font-size:var(--font-size-m);padding:var(--distance-s) var(--distance-2xl);border-radius:var(--distance-xs);color:#fff;background:var(--brisa-orange);cursor:pointer;letter-spacing:.01em;border:none;font-weight:600;transition:background .2s,box-shadow .2s}.upload-zone__button:hover:not(:disabled){box-shadow:0 var(--distance-2xs) var(--distance-m) #fa573859;background:#e84d30}.upload-zone__button:focus-visible{outline:var(--distance-3xs) solid #fa573873;outline-offset:var(--distance-3xs)}.upload-zone__button:disabled{cursor:wait;opacity:.6}.upload-zone__hint{font-size:var(--font-size-xs);color:var(--brisa-text-muted);opacity:.7;margin:var(--distance-m) 0 0}.upload-zone__filename{font-size:var(--font-size-s);color:var(--brisa-text-body);margin:var(--distance-s) 0 0;font-style:italic}.validation-import{margin-top:var(--distance-xl);gap:var(--distance-s);flex-direction:column;display:flex}.validation-import__button{font-size:var(--font-size-m);padding:var(--distance-s) var(--distance-2xl);border-radius:var(--distance-xs);color:#fff;background:var(--brisa-orange);cursor:pointer;white-space:nowrap;border:none;align-self:flex-start;font-weight:600;transition:background .2s,box-shadow .2s}.validation-import__button:hover:not(:disabled){box-shadow:0 var(--distance-2xs) var(--distance-m) #fa573859;background:#e84d30}.validation-import__button:focus-visible{outline:var(--distance-3xs) solid #fa573873;outline-offset:var(--distance-3xs)}.validation-import__button:disabled{cursor:wait;opacity:.6}.validation-import__error{font-size:var(--font-size-s);color:var(--brisa-error);margin:0}@media (prefers-color-scheme:dark){.validation-import__error{color:#fca5a5}}.validation-import-success{margin-top:var(--distance-s)}.validation-result--success{padding:var(--distance-m) var(--distance-l);border-radius:var(--distance-s);background:var(--brisa-success-bg);color:#166534;font-size:var(--font-size-m);border:1px solid #31cd6459;font-weight:500}@media (prefers-color-scheme:dark){.validation-result--success{color:#86efac;background:#31cd6414;border-color:#31cd6433}}.validation-result__count{margin:0 0 var(--distance-l);font-size:var(--font-size-m);color:var(--brisa-text-heading);font-weight:600}.validation-table-wrapper{border:1px solid var(--brisa-border);border-radius:var(--distance-s);overflow-x:auto}.validation-table{border-collapse:collapse;width:max-content;min-width:100%;font-size:var(--font-size-s)}.validation-table th,.validation-table td{padding:9px var(--distance-m);border-right:1px solid var(--brisa-border);border-bottom:1px solid var(--brisa-border);white-space:nowrap;text-align:left;vertical-align:middle}:is(.validation-table th,.validation-table td):last-child{border-right:none}.validation-table tbody tr:last-child td{border-bottom:none}.validation-table th{background:var(--brisa-navy);color:#ffffffe6;font-weight:500;font-size:var(--font-size-xs);letter-spacing:.03em;text-transform:uppercase;z-index:1;position:sticky;top:0}.validation-table .col-row{z-index:2;text-align:center;font-variant-numeric:tabular-nums;background:var(--brisa-navy);color:#ffffffa6;border-right:var(--distance-3xs) solid #ffffff1f;width:52px;min-width:52px;position:sticky;left:0}.validation-table th.col-row{z-index:3;color:#ffffff80}.validation-table tbody td.col-row{color:var(--brisa-text-muted);font-size:var(--font-size-xs);border-right:var(--distance-3xs) solid var(--brisa-border);background:#f7f8f9}@media (prefers-color-scheme:dark){.validation-table tbody td.col-row{background:var(--brisa-navy);color:#ffffff73}}.validation-table th.col-anchor{background:var(--brisa-navy-dark);border-right:var(--distance-3xs) solid #ffffff1f}.validation-table tbody td.col-anchor{color:var(--brisa-text-heading);border-right:var(--distance-3xs) solid var(--brisa-border);background:#fafafa;font-weight:500}@media (prefers-color-scheme:dark){.validation-table tbody td.col-anchor{background:#1e293b99}}.validation-table .cell--error{background:var(--brisa-error-bg);color:var(--brisa-error);font-weight:500}@media (prefers-color-scheme:dark){.validation-table .cell--error{color:#fca5a5;background:#f23b3b26}}.validation-table tbody td.col-anchor.cell--error{background:#ffe5e5}@media (prefers-color-scheme:dark){.validation-table tbody td.col-anchor.cell--error{background:#f23b3b33}}.validation-table tbody tr:hover td{background:#f0f4ff}@media (prefers-color-scheme:dark){.validation-table tbody tr:hover td{background:#1e293bcc}}.validation-table tbody tr:hover td.col-row{background:#f7f8f9}@media (prefers-color-scheme:dark){.validation-table tbody tr:hover td.col-row{background:var(--brisa-navy)}}.validation-table tbody tr:hover td.col-anchor{background:#eef1fb}@media (prefers-color-scheme:dark){.validation-table tbody tr:hover td.col-anchor{background:#1e293be6}}.validation-table tbody tr:hover td.cell--error{background:#fdd}@media (prefers-color-scheme:dark){.validation-table tbody tr:hover td.cell--error{background:#f23b3b38}}.app-topbar{background:var(--brisa-navy);color:#fff;z-index:100;box-shadow:0 var(--distance-3xs) var(--distance-s) #0003;position:sticky;top:0}.app-topbar__inner{max-width:1100px;padding:0 var(--distance-3xl);height:var(--distance-5xl);align-items:center;gap:var(--distance-l);margin:0 auto;display:flex}@media (width<=768px){.app-topbar__inner{padding:0 var(--distance-l)}}.app-topbar__brand{font-size:var(--font-size-xl);color:var(--brisa-orange);letter-spacing:-.3px;font-weight:700}.app-topbar__title{font-size:var(--font-size-s);color:#ffffff8c;padding-left:var(--distance-l);white-space:nowrap;text-overflow:ellipsis;border-left:1px solid #ffffff26;overflow:hidden}.app-main{padding:var(--distance-3xl);box-sizing:border-box;gap:var(--distance-2xl);flex-direction:column;flex:1;width:100%;max-width:1100px;margin:0 auto;display:flex}@media (width<=768px){.app-main{padding:var(--distance-xl) var(--distance-l)}}.app-card{background:var(--brisa-card);border-radius:var(--distance-m);padding:var(--distance-3xl);box-shadow:var(--brisa-shadow)}@media (width<=768px){.app-card{padding:var(--distance-xl) var(--distance-l)}}.app-card--results{padding:var(--distance-2xl) var(--distance-3xl)}@media (width<=768px){.app-card--results{padding:var(--distance-l)}}.app-card__header{margin-bottom:var(--distance-2xl);padding-bottom:var(--distance-2xl);border-bottom:1px solid var(--brisa-border)}.app-subtitle{color:var(--brisa-text-muted);margin-top:var(--distance-xs);font-size:15px}.alert{border-radius:var(--distance-s);padding:var(--distance-m) var(--distance-l);font-size:var(--font-size-m);margin-top:var(--distance-xl);line-height:1.5}.alert--error{background:var(--brisa-error-bg);color:#b91c1c;border:1px solid #f23b3b4d}@media (prefers-color-scheme:dark){.alert--error{color:#fca5a5;background:#f23b3b1a}}.alert--warning{background:var(--brisa-warning-bg);color:#92400e;border:1px solid #fda92a59}@media (prefers-color-scheme:dark){.alert--warning{color:#fde68a;background:#fda92a14}}
