.btn{display:inline-flex;align-items:center;gap:var(--s2);min-height:36px;padding:0 var(--s4);border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);color:var(--text);font-size:var(--fs-sm);font-weight:var(--fw-semibold);box-shadow:var(--shadow-1);cursor:pointer;transition:background-color var(--dur-1) var(--ease-out),border-color var(--dur-1) var(--ease-out),box-shadow var(--dur-1) var(--ease-out),transform var(--dur-1) var(--ease-out)}.btn:hover{background:var(--bg-subtle);border-color:var(--text-muted)}.btn:focus-visible{outline:none;box-shadow:var(--shadow-1),0 0 0 3px var(--ring)}.btn:disabled{opacity:.45;box-shadow:none;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-sm{min-height:26px;padding:0 var(--s2);font-size:var(--fs-xs)}.btn-lg{min-height:42px;padding:0 var(--s5);font-size:var(--fs-base)}.actions,.under-drop,.export-row,.export-bar,.tbl-actions,.toolbar{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap;margin-top:var(--s4)}.field>label,.variant-seg,.stat .k,.kpi .k,.ov-label,.kpi-label,.dropzone .dz-hint{font-family:var(--font-mono);font-weight:var(--fw-medium);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:var(--track-caps);color:var(--text-muted)}input[type=text],input[type=number],input[type=date],input[type=search],input[type=url],select,textarea{min-height:36px;padding:var(--s2) var(--s3);border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);color:var(--text);min-width:0;transition:border-color var(--dur-1) var(--ease-out),box-shadow var(--dur-1) var(--ease-out)}:is(input,select,textarea):focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--ring)}input[type=number]{font-family:var(--font-mono);font-variant-numeric:tabular-nums slashed-zero;text-align:right;width:128px}textarea{min-height:168px;width:100%;padding:var(--s3);font-family:var(--font-mono);font-size:var(--fs-sm);line-height:var(--lh-body);resize:vertical}.field{display:flex;flex-direction:column;gap:var(--s1)}input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px}label.check{display:inline-flex;align-items:center;gap:var(--s2);cursor:pointer;font-size:var(--fs-sm);font-weight:var(--fw-medium)}.badge{display:inline-flex;align-items:center;gap:6px;padding:1px var(--s2) 1px 7px;border-radius:var(--radius-pill);border:1px solid color-mix(in srgb,currentColor 32%,transparent);font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;letter-spacing:var(--track-caps);white-space:nowrap}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}.badge-ok{color:var(--ok);background:var(--ok-bg)}.badge-warn{color:var(--warn);background:var(--warn-bg)}.badge-error{color:var(--error);background:var(--error-bg)}.badge-info{color:var(--info);background:var(--info-bg)}.tbl-toolbar{display:flex;align-items:center;gap:var(--s3);margin-bottom:var(--s3)}.tbl-toolbar input{margin-left:auto;max-width:260px;min-height:32px}.tbl-wrap{overflow-x:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-1)}table.tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--fs-sm);font-variant-numeric:tabular-nums slashed-zero}table.tbl th,.fat-table th,.breakdown th,.cmp-table th{background:var(--surface);font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:var(--fw-medium);text-transform:uppercase;letter-spacing:var(--track-caps);color:var(--text-muted);padding:var(--s2) var(--s3);border-bottom:1px solid var(--ink-rule);text-align:left;white-space:nowrap}table.tbl th{position:sticky;top:0;z-index:1;cursor:pointer;user-select:none}table.tbl th:hover{color:var(--text)}table.tbl th .sort-ind{color:var(--accent);font-size:var(--fs-xs);margin-left:var(--s1)}table.tbl td{padding:10px var(--s3);border-bottom:1px solid var(--border);text-align:left;white-space:nowrap;transition:background-color var(--dur-1) var(--ease-out)}table.tbl tbody tr:nth-child(2n) td{background:var(--surface-2)}table.tbl tbody tr:hover td{background:var(--accent-soft)}table.tbl tr:last-child td{border-bottom:0}table.tbl .align-right{text-align:right;font-family:var(--font-mono)}table.tbl td.mono,table.tbl .mono{font-family:var(--font-mono)}table.tbl .empty-row td{padding:var(--s7) var(--s4);text-align:center;color:var(--text-muted);white-space:normal;background:var(--surface)}table.tbl .empty-row td:before{content:"";display:block;width:40px;height:1px;background:var(--border-strong);margin:0 auto var(--s3)}.dropzone{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);padding:var(--s7) var(--s5);text-align:center;color:var(--text-muted);cursor:pointer;outline:1px dashed var(--border-strong);outline-offset:-10px;transition:border-color var(--dur-1) var(--ease-out),background-color var(--dur-1) var(--ease-out),box-shadow var(--dur-1) var(--ease-out),outline-color var(--dur-1) var(--ease-out)}.dropzone .dz-main:before{--dz-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 16V4'/%3E%3Cpath d='m7 9 5-5 5 5'/%3E%3Cpath d='M4 16v3a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-3'/%3E%3C/svg%3E");content:"";display:block;width:28px;height:28px;margin:0 auto var(--s3);background:var(--accent);-webkit-mask:var(--dz-arrow) center / contain no-repeat;mask:var(--dz-arrow) center / contain no-repeat}.dropzone .dz-main{font-size:var(--fs-lg);font-weight:var(--fw-semibold);color:var(--text)}.dropzone .dz-hint{margin-top:var(--s2);color:var(--text-faint)}.dropzone .dz-file{display:inline-flex;margin-top:var(--s3);padding:2px var(--s3);border-radius:var(--radius-pill);background:var(--ok-bg);color:var(--ok);font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:var(--fw-medium)}.dropzone:hover,.dropzone.drag-over{border-color:var(--accent);outline-color:var(--accent);background:var(--accent-soft);box-shadow:var(--shadow-2)}textarea+.dropzone{margin-top:var(--s3)}.mapper{display:flex;flex-direction:column;gap:var(--s3)}.mapper-row{display:grid;grid-template-columns:minmax(120px,180px) minmax(160px,1fr);gap:var(--s3);align-items:start}.mapper-row .m-label{font-size:var(--fs-sm);font-weight:var(--fw-medium);padding-top:var(--s2)}.m-hint{display:block;font-weight:var(--fw-regular);font-size:var(--fs-xs);color:var(--text-faint)}.m-sample{display:block;margin-top:var(--s1);background:var(--bg-subtle);border-radius:var(--radius);padding:2px var(--s2);font-family:var(--font-mono);font-variant-numeric:tabular-nums slashed-zero;font-size:var(--fs-xs);color:var(--text-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mapper-row select{width:100%}select.m-guessed{border-color:var(--ok);box-shadow:inset 3px 0 0 var(--ok)}.stat-row,.kpis,.ov-cards,.kpi-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--s3);margin:var(--s4) 0}.stat,.kpi,.ov-card,.kpi-card{display:flex;flex-direction:column;gap:var(--s1);padding:var(--s4) var(--s4) var(--s3);background:var(--surface);border:1px solid var(--border);border-top:2px solid var(--ink-rule);border-radius:var(--radius-lg);box-shadow:var(--shadow-1)}.stat .k,.kpi .k,.ov-label,.kpi-label{order:-1}.stat .v,.kpi .v,.ov-value,.kpi-value{font-family:var(--font-mono);font-size:var(--fs-2xl);font-weight:var(--fw-medium);line-height:1;letter-spacing:var(--track-tight);font-variant-numeric:tabular-nums slashed-zero}.kpi .sub,.kpi-sub,.ov-note{font-size:var(--fs-xs);color:var(--text-faint)}.delta{font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:var(--fw-medium)}.verdict,.verdict-card,.cross-card,.detect-card,.pv-card,.rp-summary,.pv-divergence,.bridge{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);padding:var(--s5)}.verdict.good,.verdict-card.v-ok,.cross-card.cc-ok,.pv-card.pv-ok{background:color-mix(in srgb,var(--ok-bg) 60%,var(--surface));border-left-color:var(--ok)}.verdict.warn,.verdict-card.v-warn,.cross-card.cc-warn,.pv-card.pv-warn,.detect-card.d-weak{background:color-mix(in srgb,var(--warn-bg) 60%,var(--surface));border-left-color:var(--warn)}.verdict.bad,.verdict-card.v-error,.cross-card.cc-error,.pv-card.pv-error{background:color-mix(in srgb,var(--error-bg) 60%,var(--surface));border-left-color:var(--error)}.detect-card.d-ok,.pv-card.pv-info,.rp-summary,.pv-divergence,.bridge{background:color-mix(in srgb,var(--info-bg) 60%,var(--surface));border-left-color:var(--info)}.variant-chips{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s2);align-items:center}.chip{display:inline-flex;align-items:center;font-family:var(--font-mono);font-variant-numeric:tabular-nums slashed-zero;font-size:var(--fs-sm);padding:2px var(--s2);border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);color:var(--text)}.chip.canonical{background:var(--ok-bg);border-color:var(--ok);color:var(--ok);font-weight:var(--fw-semibold)}.chip.variant{background:var(--warn-bg);border-color:var(--warn);color:var(--warn)}.chip .n{color:var(--text-faint);margin-left:var(--s1)}.chip-arrow{color:var(--text-faint)}.finding-group{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);margin-bottom:var(--s3);overflow:hidden}.finding-group>summary{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);background:var(--surface-2);font-weight:var(--fw-semibold);cursor:pointer}.finding-group[open]>summary{border-bottom:1px solid var(--border)}.finding-group>summary::-webkit-details-marker{display:none}.finding-group>summary:before{content:"";width:6px;height:6px;flex:none;border:1px solid var(--text-faint);border-width:0 1px 1px 0;transform:rotate(-45deg);transition:transform var(--dur-1) var(--ease-out)}.finding-group[open]>summary:before{transform:rotate(45deg)}.fg-count{margin-left:auto;font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-muted)}.fg-flag{margin-left:auto}.finding-body{padding:var(--s4)}.variant-row{padding:var(--s3) 0;border-bottom:1px dashed var(--border)}.variant-row:last-child{border-bottom:0}.issue-list{margin:0;padding:0;list-style:none;font-size:var(--fs-xs)}.issue-list li{color:var(--text-muted)}.issue-list li.il-error{color:var(--error)}.issue-list li.il-warn{color:var(--warn)}.parse-status{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--text-muted)}.page-sub{color:var(--text-muted);font-size:var(--fs-sm);margin-bottom:var(--s4);max-width:68ch}.chart-wrap,.chart-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--s3);box-shadow:var(--shadow-1)}.chart-legend,.legend{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-muted)}#results:not([hidden]),#step2:not([hidden]),#preview:not([hidden]),#export-bar:not([hidden]),#source:not([hidden]),#settings:not([hidden]){animation:rise-in var(--dur-3) var(--ease-out) both}@media (prefers-reduced-motion: reduce){#results:not([hidden]),#step2:not([hidden]),#preview:not([hidden]),#export-bar:not([hidden]),#source:not([hidden]),#settings:not([hidden]){animation:none}.finding-group>summary:before{transition:none}.dropzone,.card{transition-property:border-color,background-color,outline-color}}
