:root{--color-primitive-key-primary:#004ed4;--color-primitive-key-secondary:#003eaa;--color-primitive-key-tertiary:#005efe;--color-primitive-key-neutral:#16181d;--color-primitive-key-neutral-variant:#38393a;--color-primitive-key-error:#c51707;--color-primitive-primary-0:#000;--color-primitive-primary-10:#001333;--color-primitive-primary-20:#002566;--color-primitive-primary-30:#003899;--color-primitive-primary-40:#004bcc;--color-primitive-primary-50:#005dff;--color-primitive-primary-60:#337eff;--color-primitive-primary-70:#669eff;--color-primitive-primary-80:#99beff;--color-primitive-primary-90:#ccdfff;--color-primitive-primary-95:#e5efff;--color-primitive-primary-98:#f5f9ff;--color-primitive-primary-99:#fafcff;--color-primitive-primary-100:#fff;--color-primitive-secondary-0:#000;--color-primitive-secondary-10:#001c4c;--color-primitive-secondary-20:#002e80;--color-primitive-secondary-30:#003eaa;--color-primitive-secondary-40:#004ed6;--color-primitive-secondary-50:#005dff;--color-primitive-secondary-60:#3d84ff;--color-primitive-secondary-70:#70a5ff;--color-primitive-secondary-80:#a3c5ff;--color-primitive-secondary-90:#d6e5ff;--color-primitive-secondary-95:#ebf2ff;--color-primitive-secondary-98:#f5f9ff;--color-primitive-secondary-99:#fafcff;--color-primitive-secondary-100:#fff;--color-primitive-tertiary-0:#000;--color-primitive-tertiary-10:#001333;--color-primitive-tertiary-20:#002666;--color-primitive-tertiary-30:#003999;--color-primitive-tertiary-40:#004bcc;--color-primitive-tertiary-50:#005efe;--color-primitive-tertiary-60:#337eff;--color-primitive-tertiary-70:#669fff;--color-primitive-tertiary-80:#99bfff;--color-primitive-tertiary-90:#ccdfff;--color-primitive-tertiary-95:#e5efff;--color-primitive-tertiary-98:#f5f9ff;--color-primitive-tertiary-99:#fafcff;--color-primitive-tertiary-100:#fff;--color-primitive-neutral-0:#000;--color-primitive-neutral-10:#16181d;--color-primitive-neutral-20:#2c303a;--color-primitive-neutral-30:#424857;--color-primitive-neutral-40:#586074;--color-primitive-neutral-50:#6e7891;--color-primitive-neutral-60:#8b93a7;--color-primitive-neutral-70:#a8aebd;--color-primitive-neutral-80:#c5c9d3;--color-primitive-neutral-90:#e2e4e9;--color-primitive-neutral-95:#f0f1f4;--color-primitive-neutral-98:#f9fafb;--color-primitive-neutral-99:#fcfcfd;--color-primitive-neutral-100:#fff;--color-primitive-neutralvariant-0:#000;--color-primitive-neutralvariant-10:#19191a;--color-primitive-neutralvariant-20:#323334;--color-primitive-neutralvariant-30:#4b4c4e;--color-primitive-neutralvariant-40:#646668;--color-primitive-neutralvariant-50:#7d8082;--color-primitive-neutralvariant-60:#97999b;--color-primitive-neutralvariant-70:#b1b2b4;--color-primitive-neutralvariant-80:#cbcccd;--color-primitive-neutralvariant-90:#e5e5e6;--color-primitive-neutralvariant-95:#f2f2f2;--color-primitive-neutralvariant-98:#fafafa;--color-primitive-neutralvariant-99:#fcfcfc;--color-primitive-neutralvariant-100:#fff;--color-primitive-error-0:#000;--color-primitive-error-10:#310602;--color-primitive-error-20:#630b03;--color-primitive-error-30:#ad1406;--color-primitive-error-40:#c51707;--color-primitive-error-50:#f71c08;--color-primitive-error-60:#f84a3a;--color-primitive-error-70:#fb8e84;--color-primitive-error-80:#fcada6;--color-primitive-error-90:#fdd2ce;--color-primitive-error-95:#fee8e6;--color-primitive-error-98:#fff6f5;--color-primitive-error-99:snow;--color-primitive-error-100:#fff;--color-role-primary:var(--color-primitive-key-primary);--color-role-on-primary:var(--color-primitive-primary-100);--color-role-primary-container:var(--color-primitive-primary-90);--color-role-on-primary-container:var(--color-primitive-primary-30);--color-role-secondary:var(--color-primitive-key-secondary);--color-role-on-secondary:var(--color-primitive-secondary-100);--color-role-secondary-container:var(--color-primitive-secondary-90);--color-role-on-secondary-container:var(--color-primitive-secondary-30);--color-role-tertiary:var(--color-primitive-key-tertiary);--color-role-on-tertiary:var(--color-primitive-tertiary-100);--color-role-tertiary-container:var(--color-primitive-tertiary-90);--color-role-on-tertiary-container:var(--color-primitive-tertiary-30);--color-role-error:var(--color-primitive-key-error);--color-role-on-error:var(--color-primitive-error-100);--color-role-error-container:var(--color-primitive-error-90);--color-role-on-error-container:var(--color-primitive-error-30);--color-role-surface-color:var(--color-primitive-neutral-98);--color-role-on-surface:var(--color-primitive-neutral-10);--color-role-surface-variant:var(--color-primitive-neutralvariant-90);--color-role-on-surface-variant:var(--color-primitive-neutralvariant-30);--color-role-surface-container-lowest:var(--color-primitive-neutral-100);--color-role-surface-container-low:var(--color-primitive-neutral-98);--color-role-surface-container:var(--color-primitive-neutral-95);--color-role-surface-container-high:var(--color-primitive-neutral-90);--color-role-surface-container-highest:var(--color-primitive-neutral-90);--color-role-inverse-surface:var(--color-primitive-neutral-20);--color-role-inverse-on-surface:var(--color-primitive-neutral-95);--color-role-surface-tint:var(--color-primitive-primary-40);--spacing-none:0;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:12px;--spacing-base:16px;--spacing-lg:20px;--spacing-xl:24px;--spacing-2xl:32px;--typography-display-large-font-family:"DM Sans",sans-serif;--typography-display-large-font-size:64px;--typography-display-large-font-weight:500;--typography-display-large-line-height:96px;--typography-display-large-letter-spacing:-4px;--typography-display-large-text-decoration:none;--typography-display-large-text-case:none;--typography-display-medium-font-family:"DM Sans",sans-serif;--typography-display-medium-font-size:50px;--typography-display-medium-font-weight:500;--typography-display-medium-line-height:75px;--typography-display-medium-letter-spacing:-3px;--typography-display-medium-text-decoration:none;--typography-display-medium-text-case:none;--typography-display-small-font-family:"DM Sans",sans-serif;--typography-display-small-font-size:40px;--typography-display-small-font-weight:500;--typography-display-small-line-height:60px;--typography-display-small-letter-spacing:-2.3px;--typography-display-small-text-decoration:none;--typography-display-small-text-case:none;--typography-headline-large-font-family:"DM Sans",sans-serif;--typography-headline-large-font-size:32px;--typography-headline-large-font-weight:500;--typography-headline-large-line-height:48px;--typography-headline-large-letter-spacing:-1.55px;--typography-headline-large-text-decoration:none;--typography-headline-large-text-case:none;--typography-headline-medium-font-family:"DM Sans",sans-serif;--typography-headline-medium-font-size:28px;--typography-headline-medium-font-weight:500;--typography-headline-medium-line-height:42px;--typography-headline-medium-letter-spacing:-1.35px;--typography-headline-medium-text-decoration:none;--typography-headline-medium-text-case:none;--typography-headline-small-font-family:"DM Sans",sans-serif;--typography-headline-small-font-size:24px;--typography-headline-small-font-weight:500;--typography-headline-small-line-height:36px;--typography-headline-small-letter-spacing:-1px;--typography-headline-small-text-decoration:none;--typography-headline-small-text-case:none;--typography-title-large-font-family:"DM Sans",sans-serif;--typography-title-large-font-size:22px;--typography-title-large-font-weight:500;--typography-title-large-line-height:33px;--typography-title-large-letter-spacing:-1px;--typography-title-large-text-decoration:none;--typography-title-large-text-case:none;--typography-title-medium-font-family:"DM Sans",sans-serif;--typography-title-medium-font-size:16px;--typography-title-medium-font-weight:600;--typography-title-medium-line-height:24px;--typography-title-medium-letter-spacing:-0.85px;--typography-title-medium-text-decoration:none;--typography-title-medium-text-case:none;--typography-title-small-font-family:"DM Sans",sans-serif;--typography-title-small-font-size:14px;--typography-title-small-font-weight:400;--typography-title-small-line-height:21px;--typography-title-small-letter-spacing:-0.75px;--typography-title-small-text-decoration:none;--typography-title-small-text-case:none;--typography-body-large-font-family:"DM Sans",sans-serif;--typography-body-large-font-size:16px;--typography-body-large-font-weight:500;--typography-body-large-line-height:24px;--typography-body-large-letter-spacing:-0.8px;--typography-body-large-text-decoration:none;--typography-body-large-text-case:none;--typography-body-medium-font-family:"DM Sans",sans-serif;--typography-body-medium-font-size:14px;--typography-body-medium-font-weight:500;--typography-body-medium-line-height:21px;--typography-body-medium-letter-spacing:-0.75px;--typography-body-medium-text-decoration:none;--typography-body-medium-text-case:none;--typography-body-small-font-family:"DM Sans",sans-serif;--typography-body-small-font-size:12px;--typography-body-small-font-weight:400;--typography-body-small-line-height:18px;--typography-body-small-letter-spacing:-0.75px;--typography-body-small-text-decoration:none;--typography-body-small-text-case:none;--typography-label-large-font-family:"DM Sans",sans-serif;--typography-label-large-font-size:14px;--typography-label-large-font-weight:500;--typography-label-large-line-height:21px;--typography-label-large-letter-spacing:-0.9px;--typography-label-large-text-decoration:none;--typography-label-large-text-case:none;--typography-label-medium-font-family:"DM Sans",sans-serif;--typography-label-medium-font-size:12px;--typography-label-medium-font-weight:500;--typography-label-medium-line-height:18px;--typography-label-medium-letter-spacing:-0.9px;--typography-label-medium-text-decoration:none;--typography-label-medium-text-case:none;--typography-label-small-font-family:"DM Sans",sans-serif;--typography-label-small-font-size:11px;--typography-label-small-font-weight:500;--typography-label-small-line-height:16.5px;--typography-label-small-letter-spacing:-0.8px;--typography-label-small-text-decoration:none;--typography-label-small-text-case:none;--shadow-hard:4px 6px 8px 0px #00000052;--shadow-medium:2px 4px 6px 0px #00000047;--shadow-soft:2px 2px 20px 0px #0000001f}@import url("https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&family=JetBrains+Mono:wght@400;500;600;700&display=swap");*{box-sizing:border-box;margin:0;padding:0}body,html{min-height:100vh;background-color:var(--color-role-surface-color);color:var(--color-role-on-surface);font-family:var(--typography-body-medium-font-family);font-size:var(--typography-body-medium-font-size);font-weight:var(--typography-body-medium-font-weight);line-height:var(--typography-body-medium-line-height);letter-spacing:var(--typography-body-medium-letter-spacing);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}.container{position:relative;z-index:1;max-width:920px;width:100%;margin:0 auto;padding:var(--spacing-2xl) var(--spacing-xl) 80px;min-width:320px}@media (max-width:768px){.container{padding:var(--spacing-xl) var(--spacing-lg) 60px}}@media (max-width:480px){.container{padding:var(--spacing-lg) var(--spacing-base) 40px}}.app-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-base);border-bottom:1px solid var(--color-role-surface-variant);flex-wrap:wrap;gap:var(--spacing-md)}@media (max-width:480px){.app-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm)}}.logo-group{gap:var(--spacing-md)}.logo-group,.logo-icon{display:flex;align-items:center}.logo-icon{width:40px;height:40px;border-radius:var(--spacing-sm);background:var(--color-role-primary-container);border:1px solid var(--color-role-primary);justify-content:center;color:var(--color-role-primary);flex-shrink:0}.logo-title{font-family:var(--typography-title-large-font-family);font-size:20px;font-weight:700;line-height:1.3;letter-spacing:-.4px}.logo-title,.tier-pill{color:var(--color-role-on-surface)}.tier-pill{display:inline-flex;align-items:center;gap:var(--spacing-xs);background:var(--color-role-surface-container);border:1px solid var(--color-role-surface-variant);padding:var(--spacing-xs) var(--spacing-md);border-radius:9999px;font-family:var(--typography-label-medium-font-family);font-size:var(--typography-label-medium-font-size);font-weight:var(--typography-label-medium-font-weight)}.tier-dot{width:8px;height:8px;border-radius:50%;background-color:var(--color-role-primary)}.main-nav-tabs{display:flex;gap:var(--spacing-sm);background:var(--color-role-surface-container);border:1px solid var(--color-role-surface-variant);padding:var(--spacing-xs);border-radius:var(--spacing-sm);margin-bottom:var(--spacing-xl);overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:480px){.main-nav-tabs{flex-direction:column;gap:var(--spacing-xs)}}.nav-tab-button{flex:1 1;display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-base);border-radius:var(--spacing-xs);background:transparent;border:none;font-family:var(--typography-label-large-font-family);font-size:var(--typography-label-large-font-size);font-weight:var(--typography-label-large-font-weight);color:var(--color-role-on-surface-variant);cursor:pointer;transition:all .2s ease;min-height:44px;white-space:nowrap}.nav-tab-button:hover{color:var(--color-role-on-surface);background:var(--color-role-surface-container-high)}.nav-tab-button.active{color:var(--color-role-primary);font-weight:700}.card,.nav-tab-button.active{background:var(--color-role-surface-container-lowest);box-shadow:var(--shadow-soft)}.card{border:1px solid var(--color-role-surface-variant);border-radius:var(--spacing-base);padding:var(--spacing-xl);width:100%}@media (max-width:480px){.card{padding:var(--spacing-md);border-radius:var(--spacing-sm)}}.section-title{font-family:var(--typography-title-medium-font-family);font-size:var(--typography-title-medium-font-size);font-weight:var(--typography-title-medium-font-weight);color:var(--color-role-on-surface);margin-bottom:var(--spacing-xs)}.section-subtitle{font-family:var(--typography-body-small-font-family);font-size:var(--typography-body-small-font-size);margin-bottom:var(--spacing-base)}.section-label,.section-subtitle{color:var(--color-role-on-surface-variant)}.section-label{font-family:var(--typography-label-small-font-family);font-size:var(--typography-label-small-font-size);font-weight:600;text-transform:uppercase;letter-spacing:var(--typography-label-small-letter-spacing);margin-bottom:var(--spacing-xs)}.dropzone{border:2px dashed var(--color-role-surface-variant);border-radius:var(--spacing-base);padding:var(--spacing-2xl) var(--spacing-lg);text-align:center;cursor:pointer;transition:all .2s ease;background:var(--color-role-surface-container);position:relative;overflow:hidden}@media (max-width:480px){.dropzone{padding:var(--spacing-xl) var(--spacing-sm)}}.dropzone.active,.dropzone:hover{border-color:var(--color-role-primary);background:var(--color-role-primary-container)}.dropzone-icon{width:56px;height:56px;margin:0 auto var(--spacing-base);border-radius:50%;background:var(--color-role-surface-container-high);display:flex;align-items:center;justify-content:center;color:var(--color-role-primary)}.dropzone-title{font-family:var(--typography-title-medium-font-family);font-size:var(--typography-title-medium-font-size);font-weight:var(--typography-title-medium-font-weight);color:var(--color-role-on-surface);margin-bottom:var(--spacing-xs)}.dropzone-desc{font-family:var(--typography-body-small-font-family);font-size:var(--typography-body-small-font-size);color:var(--color-role-on-surface-variant);margin-bottom:var(--spacing-base)}.supported-tags{display:flex;justify-content:center;gap:var(--spacing-sm);flex-wrap:wrap}.tag{font-family:var(--typography-label-small-font-family);font-size:var(--typography-label-small-font-size);font-weight:600;background:var(--color-role-surface-container-high);color:var(--color-role-on-surface-variant);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--spacing-xs)}.file-list-container{display:flex;flex-direction:column;gap:var(--spacing-sm)}.file-list-header{font-family:var(--typography-label-small-font-family);font-size:var(--typography-label-small-font-size);font-weight:var(--typography-label-small-font-weight);color:var(--color-role-on-surface-variant);text-transform:uppercase;letter-spacing:var(--typography-label-small-letter-spacing)}.file-item{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-base);border-radius:var(--spacing-sm);background:var(--color-role-surface-container);border:1px solid var(--color-role-surface-variant);box-shadow:var(--shadow-soft);transition:all .2s ease;gap:var(--spacing-sm)}.file-item-error{background:var(--color-role-error-container);border-color:var(--color-role-error)}.file-item-left{display:flex;align-items:center;gap:var(--spacing-md);min-width:0;flex:1 1}.file-item-name{font-family:var(--typography-body-medium-font-family);font-size:var(--typography-body-medium-font-size);font-weight:600;color:var(--color-role-on-surface);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-item-meta{font-family:var(--typography-body-small-font-family);font-size:var(--typography-body-small-font-size);color:var(--color-role-on-surface-variant)}.file-item-meta.error{color:var(--color-role-on-error-container);font-weight:600}.file-item-remove{background:transparent;border:none;color:var(--color-role-on-surface-variant);cursor:pointer;padding:var(--spacing-xs) var(--spacing-sm);min-height:44px;min-width:44px;display:flex;align-items:center;justify-content:center;border-radius:var(--spacing-xs);transition:color .2s ease;flex-shrink:0}.file-item-remove:hover,.form-validation-error{color:var(--color-role-error)}.form-validation-error{font-family:var(--typography-body-small-font-family);font-size:var(--typography-body-small-font-size);font-weight:600;display:flex;align-items:center;gap:var(--spacing-xs);flex-wrap:wrap}.status-tracker{display:flex;flex-direction:column;gap:var(--spacing-lg);padding:var(--spacing-sm) 0}.pipeline-step{display:flex;align-items:flex-start;gap:var(--spacing-base);position:relative}@media (max-width:480px){.pipeline-step{gap:var(--spacing-sm)}}.step-indicator{width:36px;height:36px;border-radius:50%;background:var(--color-role-surface-container);border:1px solid var(--color-role-surface-variant);display:flex;align-items:center;justify-content:center;font-family:var(--typography-label-medium-font-family);font-size:14px;font-weight:700;color:var(--color-role-on-surface-variant);flex-shrink:0;transition:all .2s ease}.step-indicator.active{background:var(--color-role-primary-container);border-color:var(--color-role-primary);color:var(--color-role-primary)}.step-indicator.completed{background:var(--color-role-primary);border-color:var(--color-role-primary);color:var(--color-role-on-primary)}.step-indicator.failed{background:var(--color-role-error-container);border-color:var(--color-role-error);color:var(--color-role-on-error-container)}.step-details{flex:1 1;min-width:0}.step-title{font-family:var(--typography-title-small-font-family);font-size:var(--typography-title-small-font-size);font-weight:var(--typography-title-small-font-weight);color:var(--color-role-on-surface);margin-bottom:var(--spacing-xs)}.step-subtext{font-family:var(--typography-body-small-font-family);font-size:var(--typography-body-small-font-size);color:var(--color-role-on-surface-variant);word-break:break-word}.badge-needs-review{background:var(--color-role-error-container);border:1px solid var(--color-role-error);color:var(--color-role-on-error-container);border-radius:var(--spacing-xs)}.badge-needs-review,.badge-verified{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);font-family:var(--typography-label-small-font-family);font-size:var(--typography-label-small-font-size);font-weight:700;white-space:nowrap}.badge-verified{background:var(--color-role-primary-container);border:1px solid var(--color-role-primary);color:var(--color-role-primary);border-radius:var(--spacing-xs)}.badge-category{display:inline-flex;align-items:center;background:var(--color-role-tertiary-container);border:1px solid var(--color-role-tertiary);color:var(--color-role-on-tertiary-container);padding:var(--spacing-xs) var(--spacing-md);border-radius:9999px;font-family:var(--typography-label-small-font-family);font-size:var(--typography-label-small-font-size);font-weight:700;white-space:nowrap}.badge-duplicate{background:var(--color-role-secondary-container);border:1px solid var(--color-role-secondary);color:var(--color-role-on-secondary-container);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--spacing-xs)}.badge-confirmed,.badge-duplicate{display:inline-flex;align-items:center;gap:var(--spacing-xs);font-family:var(--typography-label-small-font-family);font-size:var(--typography-label-small-font-size);font-weight:700;white-space:nowrap}.badge-confirmed{background:var(--color-role-primary-container);border:1px solid var(--color-role-primary);color:var(--color-role-on-primary-container);border-radius:9999px}.badge-confirmed,.badge-draft{padding:var(--spacing-xs) var(--spacing-md)}.badge-draft{display:inline-flex;align-items:center;gap:var(--spacing-xs);background:var(--color-role-surface-container-high);border:1px solid var(--color-role-surface-variant);color:var(--color-role-on-surface-variant);border-radius:9999px;font-family:var(--typography-label-small-font-family);font-size:var(--typography-label-small-font-size);font-weight:700;white-space:nowrap}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:var(--spacing-md);gap:var(--spacing-md);margin-top:var(--spacing-xs)}@media (max-width:600px){.stat-grid{grid-template-columns:1fr}}.stat-card{background:var(--color-role-surface-container);border:1px solid var(--color-role-surface-variant);border-radius:var(--spacing-sm);padding:var(--spacing-base)}.stat-card-highlight{border-color:var(--color-role-primary);background:var(--color-role-primary-container)}.stat-label{font-family:var(--typography-label-small-font-family);font-size:var(--typography-label-small-font-size);font-weight:600;text-transform:uppercase;letter-spacing:var(--typography-label-small-letter-spacing);color:var(--color-role-on-surface-variant);margin-bottom:var(--spacing-xs)}.stat-value{font-family:JetBrains Mono,monospace;font-size:1.35rem;font-weight:700;color:var(--color-role-on-surface);word-break:break-word}.stat-value.highlight{color:var(--color-role-primary)}.result-header{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:var(--spacing-md);border-bottom:1px solid var(--color-role-surface-variant);padding-bottom:var(--spacing-lg)}@media (max-width:600px){.result-header{flex-direction:column;align-items:stretch}.result-header .btn{width:100%}}.result-vendor-title{font-family:var(--typography-headline-small-font-family);font-size:var(--typography-headline-small-font-size);font-weight:800;line-height:var(--typography-headline-small-line-height);color:var(--color-role-on-surface);word-break:break-word}.result-meta-row{display:flex;align-items:center;gap:var(--spacing-md);flex-wrap:wrap;font-family:var(--typography-body-small-font-family);font-size:var(--typography-body-small-font-size);color:var(--color-role-on-surface-variant);margin-top:var(--spacing-xs)}.view-tab-container{display:flex;gap:var(--spacing-xs);border-bottom:1px solid var(--color-role-surface-variant);padding-bottom:var(--spacing-none);margin-top:var(--spacing-base);overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:480px){.view-tab-container{flex-direction:column;border-bottom:none;gap:var(--spacing-xs)}}.view-tab{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-md) var(--spacing-lg);background:transparent;border:none;border-bottom:2px solid transparent;font-family:var(--typography-title-small-font-family);font-size:var(--typography-title-small-font-size);font-weight:600;color:var(--color-role-on-surface-variant);cursor:pointer;min-height:44px;transition:all .2s ease;white-space:nowrap}@media (max-width:480px){.view-tab{border:1px solid var(--color-role-surface-variant);border-radius:var(--spacing-xs);justify-content:center}.view-tab.active{background:var(--color-role-surface-container);border-color:var(--color-role-primary)}}.view-tab:hover{color:var(--color-role-on-surface)}.view-tab.active{color:var(--color-role-primary);border-bottom-color:var(--color-role-primary);font-weight:700}.tab-pill-warning{background:var(--color-role-error-container);color:var(--color-role-on-error-container);font-size:.7rem;padding:2px 6px;border-radius:9999px;font-weight:700}.review-form{display:flex;flex-direction:column;gap:var(--spacing-xl);padding-top:var(--spacing-base)}.review-form-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--spacing-md)}.review-form-title{font-family:var(--typography-title-medium-font-family);font-size:var(--typography-title-medium-font-size);font-weight:var(--typography-title-medium-font-weight);color:var(--color-role-on-surface)}.review-form-subtitle{font-family:var(--typography-body-small-font-family);font-size:var(--typography-body-small-font-size);color:var(--color-role-on-surface-variant)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:var(--spacing-lg);gap:var(--spacing-lg)}@media (max-width:480px){.form-grid{grid-template-columns:1fr;gap:var(--spacing-md)}}.form-field{flex-direction:column}.form-field,.form-label-row{display:flex;gap:var(--spacing-xs)}.form-label-row{align-items:center;justify-content:space-between;flex-wrap:wrap}.form-label{font-family:var(--typography-label-medium-font-family);font-size:var(--typography-label-medium-font-size);font-weight:600;color:var(--color-role-on-surface)}.form-input,.form-select{width:100%;padding:var(--spacing-sm) var(--spacing-base);border-radius:var(--spacing-sm);background:var(--color-role-surface-container);border:1px solid var(--color-role-surface-variant);color:var(--color-role-on-surface);font-family:var(--typography-body-medium-font-family);font-size:var(--typography-body-medium-font-size);min-height:44px;transition:all .2s ease;outline:none}.form-input:focus,.form-select:focus{border-color:var(--color-role-primary);background:var(--color-role-surface-container-lowest)}.form-input-flagged{border-color:var(--color-role-error)!important;background:var(--color-role-error-container)!important;color:var(--color-role-on-error-container)}.form-input-highlight{font-family:JetBrains Mono,monospace;font-weight:700;color:var(--color-role-primary)}.form-alert-success{background:var(--color-role-primary-container);border:1px solid var(--color-role-primary);color:var(--color-role-on-primary-container);border-radius:var(--spacing-sm)}.form-alert-error,.form-alert-success{padding:var(--spacing-md) var(--spacing-base);font-family:var(--typography-body-small-font-family);font-size:var(--typography-body-small-font-size);font-weight:600}.form-alert-error{background:var(--color-role-error-container);border:1px solid var(--color-role-error);color:var(--color-role-on-error-container);border-radius:var(--spacing-sm)}.line-items-section{display:flex;flex-direction:column;gap:var(--spacing-sm)}.line-items-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--spacing-xs)}.line-items-title{font-family:var(--typography-title-small-font-family);font-size:var(--typography-title-small-font-size);font-weight:700}.line-items-title,.table-input{color:var(--color-role-on-surface)}.table-input{width:100%;padding:var(--spacing-xs) var(--spacing-sm);background:var(--color-role-surface-container);border:1px solid var(--color-role-surface-variant);border-radius:var(--spacing-xs);font-family:var(--typography-body-small-font-family);font-size:var(--typography-body-small-font-size);min-height:36px;outline:none}.table-input:focus{border-color:var(--color-role-primary);background:var(--color-role-surface-container-lowest)}.text-center{text-align:center}.text-right{text-align:right}.font-bold{font-weight:700}.btn-icon-danger{background:transparent;border:none;color:var(--color-role-error);cursor:pointer;min-height:36px;min-width:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--spacing-xs);transition:background .2s ease}.btn-icon-danger:hover{background:var(--color-role-error-container)}.empty-line-items{padding:var(--spacing-base);text-align:center;background:var(--color-role-surface-container);border:1px dashed var(--color-role-surface-variant);border-radius:var(--spacing-sm);font-family:var(--typography-body-small-font-family);color:var(--color-role-on-surface-variant)}.form-actions{display:flex;gap:var(--spacing-md);flex-wrap:wrap}@media (max-width:480px){.form-actions{flex-direction:column}.form-actions .btn{width:100%}}.table-container{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--color-role-surface-variant);border-radius:var(--spacing-sm);margin-top:var(--spacing-xs);max-width:100%}table{width:100%;min-width:440px;border-collapse:collapse;text-align:left;font-family:var(--typography-body-small-font-family);font-size:var(--typography-body-small-font-size)}th{background:var(--color-role-surface-container);font-family:var(--typography-label-small-font-family);font-size:var(--typography-label-small-font-size);font-weight:700;text-transform:uppercase;letter-spacing:var(--typography-label-small-letter-spacing);color:var(--color-role-on-surface-variant);white-space:nowrap}td,th{padding:var(--spacing-md) var(--spacing-base);border-bottom:1px solid var(--color-role-surface-variant)}td{color:var(--color-role-on-surface)}tr:last-child td{border-bottom:none}.table-subtext{font-size:.8rem;color:var(--color-role-on-surface-variant);margin-top:2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--spacing-sm);font-family:var(--typography-label-large-font-family);font-size:var(--typography-label-large-font-size);font-weight:var(--typography-label-large-font-weight);cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);border:none;min-height:44px;text-decoration:none;white-space:nowrap}.btn-sm{padding:var(--spacing-xs) var(--spacing-md);font-size:var(--typography-label-medium-font-size);min-height:36px}.btn-primary{background:var(--color-role-primary);color:var(--color-role-on-primary);box-shadow:var(--shadow-medium)}.btn-primary:hover{opacity:.92;box-shadow:var(--shadow-hard)}.btn-secondary{background:var(--color-role-surface-container);color:var(--color-role-on-surface);border:1px solid var(--color-role-surface-variant)}.btn-secondary:hover{background:var(--color-role-surface-container-high)}.btn-action{background:var(--color-role-tertiary);color:var(--color-role-on-tertiary);box-shadow:var(--shadow-medium)}.btn-action:hover{opacity:.92;box-shadow:var(--shadow-hard)}.status-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--spacing-md)}@media (max-width:480px){.status-header{flex-direction:column;align-items:flex-start}}.status-file-meta{font-family:var(--typography-body-small-font-family);font-size:var(--typography-body-small-font-size);color:var(--color-role-on-surface-variant);margin-top:var(--spacing-xs);word-break:break-all}.status-pill{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-md);border-radius:9999px;font-family:var(--typography-label-small-font-family);font-size:var(--typography-label-small-font-size);font-weight:700;white-space:nowrap}.status-pill-failed{background:var(--color-role-error-container);color:var(--color-role-on-error-container);border:1px solid var(--color-role-error)}.status-pill-extracting{background:var(--color-role-primary-container);color:var(--color-role-primary);border:1px solid var(--color-role-primary)}.status-pill-queued{background:var(--color-role-secondary-container);color:var(--color-role-on-secondary-container);border:1px solid var(--color-role-secondary)}.status-pill-complete{background:var(--color-role-primary-container);color:var(--color-role-primary);border:1px solid var(--color-role-primary)}.polling-banner{display:flex;align-items:center;justify-content:space-between;background:var(--color-role-surface-container);border:1px solid var(--color-role-surface-variant);padding:var(--spacing-md) var(--spacing-base);border-radius:var(--spacing-sm);font-family:var(--typography-body-small-font-family);font-size:var(--typography-body-small-font-size);color:var(--color-role-on-surface-variant);flex-wrap:wrap;gap:var(--spacing-sm)}.alert-failed-box{background:var(--color-role-error-container);border:1px solid var(--color-role-error);border-radius:var(--spacing-sm);padding:var(--spacing-base)}.alert-failed-title{font-family:var(--typography-title-small-font-family);font-size:var(--typography-title-small-font-size);font-weight:700;color:var(--color-role-on-error-container);margin-bottom:var(--spacing-xs)}.alert-failed-desc{color:var(--color-role-on-error-container);margin-bottom:var(--spacing-md)}.alert-failed-desc,.alert-partial-box{font-family:var(--typography-body-small-font-family);font-size:var(--typography-body-small-font-size)}.alert-partial-box{background:var(--color-role-tertiary-container);border:1px solid var(--color-role-tertiary);border-radius:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-base);color:var(--color-role-on-tertiary-container)}.summary-box{background:var(--color-role-surface-container);border:1px solid var(--color-role-tertiary);border-radius:var(--spacing-base);padding:var(--spacing-xl);margin-top:var(--spacing-xl);box-shadow:var(--shadow-soft)}@media (max-width:480px){.summary-box{padding:var(--spacing-md)}}.summary-box-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-base);flex-wrap:wrap;gap:var(--spacing-md)}@media (max-width:600px){.summary-box-header{flex-direction:column;align-items:flex-start}}.summary-insight-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:var(--spacing-md);gap:var(--spacing-md);margin-bottom:var(--spacing-base)}@media (max-width:480px){.summary-insight-grid{grid-template-columns:1fr;gap:var(--spacing-sm)}}.summary-insight-card{background:var(--color-role-surface-container-high);padding:var(--spacing-md);border-radius:var(--spacing-sm);border:1px solid var(--color-role-surface-variant)}.summary-insight-card-label{font-family:var(--typography-label-small-font-family);font-size:var(--typography-label-small-font-size);font-weight:600;text-transform:uppercase;color:var(--color-role-on-surface-variant);margin-bottom:var(--spacing-xs)}.summary-insight-card-value{font-family:JetBrains Mono,monospace;font-size:1.1rem;font-weight:700;color:var(--color-role-primary)}.summary-preformatted{background:var(--color-role-surface-container-lowest);border:1px solid var(--color-role-surface-variant);border-radius:var(--spacing-sm);padding:var(--spacing-base);font-family:JetBrains Mono,monospace;font-size:.8rem;line-height:1.6;color:var(--color-role-on-surface);white-space:pre-wrap;word-break:break-word;max-height:260px;overflow-y:auto;overflow-x:auto;-webkit-overflow-scrolling:touch}.dashboard-container{display:flex;flex-direction:column;gap:var(--spacing-lg)}.dashboard-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--spacing-md)}@media (max-width:600px){.dashboard-header{flex-direction:column;align-items:flex-start}.dashboard-actions{width:100%}.dashboard-actions .btn{flex:1 1}}.dashboard-title{font-family:var(--typography-title-large-font-family);font-size:var(--typography-title-large-font-size);font-weight:var(--typography-title-large-font-weight);color:var(--color-role-on-surface)}.dashboard-subtitle{font-family:var(--typography-body-small-font-family);font-size:var(--typography-body-small-font-size);color:var(--color-role-on-surface-variant)}.dashboard-actions{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.metric-cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:var(--spacing-md);gap:var(--spacing-md)}@media (max-width:600px){.metric-cards-grid{grid-template-columns:1fr}}.metric-card{background:var(--color-role-surface-container-lowest);border:1px solid var(--color-role-surface-variant);border-radius:var(--spacing-base);padding:var(--spacing-lg);box-shadow:var(--shadow-soft)}@media (max-width:480px){.metric-card{padding:var(--spacing-base);border-radius:var(--spacing-sm)}}.metric-card-primary{border-color:var(--color-role-primary);background:var(--color-role-primary-container)}.metric-label{font-family:var(--typography-label-small-font-family);font-size:var(--typography-label-small-font-size);font-weight:700;text-transform:uppercase;letter-spacing:var(--typography-label-small-letter-spacing);color:var(--color-role-on-surface-variant)}.metric-label,.metric-value{margin-bottom:var(--spacing-xs)}.metric-value{font-family:JetBrains Mono,monospace;font-size:1.6rem;font-weight:800;color:var(--color-role-on-surface);word-break:break-word}.metric-card-primary .metric-value{color:var(--color-role-primary)}.metric-subtext{font-family:var(--typography-body-small-font-family);font-size:var(--typography-body-small-font-size);color:var(--color-role-on-surface-variant)}.category-breakdown-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:var(--spacing-md);gap:var(--spacing-md)}@media (max-width:480px){.category-breakdown-grid{grid-template-columns:1fr}}.category-card{background:var(--color-role-surface-container);border:1px solid var(--color-role-surface-variant);border-radius:var(--spacing-sm);padding:var(--spacing-base);display:flex;flex-direction:column;gap:var(--spacing-sm)}.category-card-top{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--spacing-xs)}.category-amount{font-family:JetBrains Mono,monospace;font-weight:700;color:var(--color-role-on-surface)}.progress-bar-track{width:100%;height:6px;background:var(--color-role-surface-container-high);border-radius:9999px;overflow:hidden}.progress-bar-fill{height:100%;background:var(--color-role-primary);border-radius:9999px;transition:width .4s ease}.category-percentage{font-family:var(--typography-label-small-font-family);font-size:var(--typography-label-small-font-size);color:var(--color-role-on-surface-variant)}.table-header-row{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:var(--spacing-md);margin-bottom:var(--spacing-base)}@media (max-width:600px){.table-header-row{flex-direction:column;align-items:stretch}}.filter-pill-group{display:flex;gap:var(--spacing-xs);flex-wrap:wrap}.filter-pill{background:var(--color-role-surface-container);border:1px solid var(--color-role-surface-variant);border-radius:9999px;padding:var(--spacing-xs) var(--spacing-md);font-family:var(--typography-label-small-font-family);font-size:var(--typography-label-small-font-size);font-weight:600;color:var(--color-role-on-surface-variant);cursor:pointer;transition:all .2s ease;min-height:36px}.filter-pill:hover{background:var(--color-role-surface-container-high);color:var(--color-role-on-surface)}.filter-pill.active{background:var(--color-role-primary);border-color:var(--color-role-primary);color:var(--color-role-on-primary)}.empty-state{text-align:center;font-family:var(--typography-body-medium-font-family)}.empty-state,.loading-state{padding:var(--spacing-2xl) var(--spacing-base);color:var(--color-role-on-surface-variant)}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-md)}