.login-page{display:flex;flex-direction:column;min-height:100dvh;width:100%;overflow:hidden;background:var(--color-surface-subtle)}.login-topbar{display:flex;align-items:center;justify-content:space-between;height:64px;flex-shrink:0;padding:0 var(--space-10);background:linear-gradient(90deg,#111a2d 0%,var(--color-sidebar-bg) 100%);border-bottom:1px solid rgba(255,255,255,.08)}.login-topbar__brand,.login-topbar__meta{display:flex;align-items:center}.login-topbar__brand{gap:var(--space-3)}.login-topbar__logo-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;color:var(--color-text-inverse);flex-shrink:0}.login-topbar__brand-text{font-size:var(--text-lg);font-weight:700;color:var(--color-text-inverse);white-space:nowrap}.login-topbar__meta{gap:var(--space-2);font-size:var(--text-sm);color:#ffffffdb;white-space:nowrap}.login-layout{position:relative;flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,520px);gap:var(--space-16);padding:var(--space-16) var(--space-16) var(--space-12);background:linear-gradient(90deg,#0b44b91a,#ffffff14 46%,#ffffff42),var(--login-bg) center / cover no-repeat}.login-layout:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#fff0 72%,#f1f3f573);pointer-events:none}.login-hero,.login-panel,.login-footer{position:relative;z-index:1}.login-hero{min-width:0;width:calc(100% - 40px);height:calc(100% - 40px);display:flex;flex-direction:column;justify-content:center;justify-self:center;align-self:center;padding-left:var(--space-6);padding-bottom:var(--space-10)}.login-hero__content{max-width:calc(34rem - 40px);transform:translateY(2rem)}.login-hero__title{margin:0;font-size:2.25rem;font-weight:700;line-height:1.18;color:var(--color-text-inverse);text-shadow:0 2px 16px rgba(8,31,77,.22);text-wrap:balance}.login-hero__rule{display:block;width:3rem;height:4px;margin:var(--space-5) 0 var(--space-4);border-radius:var(--radius-sm);background:#ffffffeb}.login-hero__subtitle{margin:0;font-size:var(--text-lg);font-weight:600;line-height:1.5;color:#ffffffeb;text-shadow:0 2px 12px rgba(8,31,77,.18)}.login-value-list{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4);width:min(100%,calc(48rem - 40px));margin-top:auto;margin-bottom:var(--space-6);padding:var(--space-5) 0 var(--space-5) var(--space-6);list-style:none;border:1px solid rgba(255,255,255,.26);border-radius:var(--radius-xl);background:#1741844d;box-shadow:0 14px 38px #1a56db1f;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.login-value-list:before,.login-value-list:after{content:"";position:absolute;top:var(--space-4);bottom:var(--space-4);width:1px;background:#ffffff4d;pointer-events:none}.login-value-list:before{left:28.75%}.login-value-list:after{left:62.5%}.login-value-item{display:flex;align-items:center;min-width:0;gap:var(--space-3);color:var(--color-text-inverse)}.login-value-item__icon{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;flex:0 0 2.75rem;border:1px solid rgba(255,255,255,.58);border-radius:50%;background:#ffffff29}.login-value-item strong,.login-value-item span span{display:block}.login-value-item strong{font-size:var(--text-sm);font-weight:700;line-height:1.4}.login-value-item span span{margin-top:.125rem;font-size:var(--text-xs);line-height:1.45;color:#ffffffe6}.login-panel{display:flex;align-items:center;justify-content:center;min-width:0}.login-card{width:min(100%,31rem);padding:var(--space-12);border:1px solid rgba(255,255,255,.76);border-radius:20px;background:#fffffff0;box-shadow:0 24px 70px #1a56db29,0 1px #ffffffeb inset}.login-welcome{margin-bottom:var(--space-8)}.login-welcome-title{margin:0 0 var(--space-2);font-size:var(--text-3xl);font-weight:700;line-height:1.25;color:#152033}.login-welcome-sub{margin:0;font-size:var(--text-base);color:#5d6878}.login-field{margin-bottom:var(--space-5)}.login-field label{display:block;margin-bottom:var(--space-2);font-size:var(--text-sm);font-weight:600;color:#223047}.login-input-wrap{position:relative;display:flex;align-items:center}.login-input-icon{position:absolute;top:50%;left:1rem;z-index:2;display:flex;align-items:center;width:1rem;height:1rem;color:var(--color-text-muted);pointer-events:none;transform:translateY(-50%)}.login-input-wrap .login-input{min-height:3rem;padding:.75rem .875rem .75rem 3.125rem;border-color:#cfd7e6;background-color:#ffffffe0}.login-input-wrap .login-input::placeholder{color:#667085}.login-input-wrap .login-input:focus-visible{border-color:var(--color-brand-primary);box-shadow:0 0 0 3px #1a56db1f}.login-input-wrap .login-input--password{padding-right:3.125rem}.login-eye-btn{position:absolute;right:.625rem;z-index:1;display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;color:var(--color-text-muted);background:transparent;border:1px solid transparent;border-radius:var(--radius-md);transition:background-color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.login-eye-btn:hover:not(:disabled){color:var(--color-text-secondary);background:var(--color-surface-subtle)}.login-eye-btn:focus-visible{border-color:var(--color-brand-primary);box-shadow:0 0 0 3px #1a56db1f;outline:none}.login-eye-btn:disabled{opacity:.45;cursor:not-allowed}.login-row-options{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-6)}.login-remember{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.login-remember input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--color-brand-primary);cursor:pointer}.login-remember input[type=checkbox]:disabled,.login-remember:has(input[type=checkbox]:disabled){cursor:not-allowed}.login-remember:has(input[type=checkbox]:disabled){opacity:.55}.login-forgot{font-size:var(--text-sm);font-weight:600;color:var(--color-text-link);text-decoration:none}.login-forgot:hover{text-decoration:underline}.login-forgot:focus-visible{border-radius:var(--radius-sm);box-shadow:0 0 0 3px #1a56db1f;outline:none}.login-error{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-5);font-size:var(--text-sm);color:var(--color-severity-critical);background:#fff5f5;border:1px solid #ffc9c9;border-radius:var(--radius-md)}.login-btn{justify-content:center;width:100%;min-height:3.5rem;padding:.875rem;font-size:var(--text-base);font-weight:700;box-shadow:0 10px 24px #1a56db33}.login-btn:hover:not(:disabled){box-shadow:0 12px 28px #1a56db3d}.login-btn:active:not(:disabled){transform:translateY(1px)}.login-footer{position:absolute;left:50%;bottom:var(--space-6);transform:translate(-50%);width:min(100%,36rem);padding:0 var(--space-4);font-size:var(--text-xs);color:var(--color-text-muted);text-align:center}@media(prefers-reduced-motion:reduce){.login-eye-btn,.login-btn{transition:none}.login-btn:active:not(:disabled){transform:none}}@media(max-width:1180px){.login-layout{grid-template-columns:minmax(0,1fr) minmax(340px,460px);gap:var(--space-10);padding-left:var(--space-10);padding-right:var(--space-10);background-position:42% center}.login-value-list{grid-template-columns:1fr;width:min(100%,24rem)}.login-value-list:before,.login-value-list:after{display:none}}@media(max-width:900px){.login-page{overflow:auto}.login-topbar{height:58px;padding:0 var(--space-5)}.login-layout{min-height:calc(100dvh - 58px);display:flex;flex-direction:column;gap:var(--space-6);padding:var(--space-8) var(--space-5) var(--space-12);background-position:34% center}.login-layout:before{background:#ffffff52}.login-hero{width:auto;height:auto;justify-self:auto;align-self:auto;padding:0}.login-hero__content{max-width:28rem;transform:none}.login-hero__title{font-size:var(--text-2xl)}.login-hero__subtitle{font-size:var(--text-base)}.login-value-list{display:none}.login-panel{justify-content:flex-start}.login-card{width:min(100%,30rem);padding:var(--space-8);border-radius:var(--radius-xl)}.login-footer{position:static;transform:none;width:100%;margin-top:auto}}@media(max-width:560px){.login-topbar__meta{display:none}.login-topbar__brand-text{font-size:var(--text-base)}.login-layout{padding:var(--space-6) var(--space-4) var(--space-8)}.login-card{padding:var(--space-6)}.login-welcome-title{font-size:var(--text-2xl)}.login-row-options{align-items:flex-start;flex-direction:column}}.dashboard-main{flex:1;display:flex;flex-direction:column;min-width:0}.dashboard-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.75rem;background:#fff;border-bottom:1px solid #e5e7eb}.dashboard-header__actions{display:flex;align-items:center;gap:1rem}.account-status-badge{display:inline-flex;align-items:center;min-height:1.5rem;padding:.125rem .625rem;border-radius:9999px;font-size:.75rem;font-weight:600;line-height:1.2;white-space:nowrap}.account-status-badge--active{background:#dcfce7;color:#15803d}.account-status-badge--pending-verify{background:#fef3c7;color:#b45309}.account-status-badge--disabled{background:#f3f4f6;color:#4b5563}.account-status-badge--locked{background:#fee2e2;color:#b91c1c}.stat-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;padding:1.5rem 1.75rem 0}.dashboard-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1rem 1.75rem 0;padding:1rem 1.25rem;background:color-mix(in srgb,var(--color-brand-primary) 8%,transparent);border-radius:8px;border:1px solid color-mix(in srgb,var(--color-brand-primary) 40%,transparent)}.dashboard-banner__info{min-width:0}.dashboard-banner__title{margin:0;font-size:.9375rem;font-weight:600;color:#111827}.dashboard-banner__desc{margin:.25rem 0 0;font-size:.8125rem;color:#6b7280;line-height:1.5}.recent-batches{margin:1.5rem 1.75rem;background:#fff;border-radius:8px;border:1px solid #e5e7eb;overflow:hidden}.recent-batches__header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid #e5e7eb}.recent-batches__title{font-size:.9375rem;font-weight:600;color:#111827;margin:0}.recent-batches__view-all{font-size:.8125rem;color:var(--color-brand-primary);text-decoration:none}.recent-batches__view-all:hover{text-decoration:underline}.recent-batches__customer{font-weight:700;color:var(--color-text-primary)}.recent-batches__customer-product-separator,.recent-batches__product{color:var(--color-text-secondary)}.recent-batches__actions{display:inline-flex;align-items:center;gap:1rem;flex-wrap:wrap}.recent-batches__action-link{display:inline-flex;align-items:center;min-height:1.5rem;padding:0;color:var(--color-brand-primary);font-size:var(--text-sm);font-weight:500;line-height:1.5;text-decoration:none}.recent-batches__actions .btn.recent-batches__action-link{gap:0;padding:0;border:0;border-radius:0;font-size:var(--text-sm);font-weight:500;line-height:1.5}.recent-batches__action-link:hover{text-decoration:underline}.recent-batches__continue-action{color:var(--color-brand-primary)}.recent-batches__review-action{color:var(--color-status-pending-edit, #7c3aed)}.recent-batches__download-action,.recent-batches__actions .btn.recent-batches__download-action{color:var(--color-status-report-ready, #15803d)}.recent-batches__danger-action,.recent-batches__actions .btn.recent-batches__danger-action{color:var(--color-status-failed, #dc2626)}.dashboard-delete-dialog__copy{margin:0;color:var(--color-text-secondary);font-size:var(--text-sm);line-height:1.7}.dashboard-delete-dialog__target{margin:1rem 0 0;padding:.75rem;border-radius:var(--radius-md);background:var(--color-surface-muted, #f8fafc);color:var(--color-text-primary);font-weight:700}.dashboard-delete-dialog__error{margin:.75rem 0 0;color:var(--color-status-failed, #dc2626);font-size:var(--text-sm)}.create-batch{flex:1;display:flex;flex-direction:column;min-width:0;color:var(--color-text-primary)}.create-batch__breadcrumb-bar{display:flex;align-items:center;padding:1rem 1.75rem;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.create-batch__body{width:100%;max-width:1280px;margin:0 auto;padding:0 1.75rem var(--space-6)}.create-batch__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin:var(--space-6) 0 var(--space-2)}.create-batch__title{margin:0;color:var(--color-text-primary);font-size:var(--text-2xl);font-weight:700;line-height:1.3}.create-batch__body .page-description{margin-top:0;max-width:48rem}.create-batch__cancel-create{flex-shrink:0}.create-batch__steps{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));width:min(100%,980px);margin:var(--space-5) auto var(--space-5);padding:0;list-style:none}.create-batch__step{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--space-2);min-width:0;color:var(--color-text-secondary)}.create-batch__step:not(:last-child):after{content:"";position:absolute;top:1rem;left:calc(50% + 1.375rem);right:calc(-50% + 1.375rem);height:1px;background:var(--color-border)}.create-batch__step--active:not(:last-child):after,.create-batch__step--done:not(:last-child):after{background:var(--color-brand-primary)}.create-batch__step-num{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:1px solid var(--color-border);border-radius:50%;background:var(--color-surface);color:var(--color-text-muted);font-size:var(--text-sm);font-weight:600;line-height:1}.create-batch__step-label{color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:500;line-height:1.35;text-align:center;white-space:nowrap}.create-batch__step--active .create-batch__step-num{border-color:var(--color-brand-primary);background:var(--color-brand-primary);color:var(--color-text-inverse);box-shadow:0 0 0 3px #1a56db1f}.create-batch__step--active .create-batch__step-label{color:var(--color-brand-primary);font-weight:600}.create-batch__step--done .create-batch__step-num{border-color:var(--color-brand-primary);background:var(--color-brand-primary);color:var(--color-text-inverse)}.create-batch__main{background:transparent}.create-batch__form{display:flex;flex-direction:column}.create-batch__content{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;column-gap:var(--space-6);padding:var(--space-6);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.create-batch__info-panel,.create-batch__upload-panel{display:flex;flex-direction:column;min-width:0}.create-batch__fieldset{display:flex;flex:1;flex-direction:column;gap:var(--space-3);min-width:0;margin:0;padding:0;border:0}.create-batch__fieldset:disabled{opacity:.62;pointer-events:none}.create-batch__legend,.create-batch__upload-title{width:100%;margin:0 0 var(--space-3);padding:0;color:var(--color-text-primary);font-size:var(--text-base);font-weight:600;line-height:1.4}.create-batch__legend{float:none}.create-batch__legend span,.create-batch__upload-title span{color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:400}.form-field{display:grid;grid-template-columns:5.5rem minmax(0,1fr);align-items:flex-start;gap:20px;min-width:0}.form-field__label{padding-top:.45rem;color:var(--color-text-primary);font-size:var(--text-sm);font-weight:500;line-height:1.45}.form-field__control{min-width:0}.form-field__control--textarea{position:relative}.form-field__textarea{min-height:5rem;padding-bottom:var(--space-6);line-height:1.5}.form-field__count{position:absolute;right:var(--space-3);bottom:var(--space-2);color:var(--color-text-muted);font-size:var(--text-xs);line-height:1;pointer-events:none}.form-field__error{margin:var(--space-1) 0 0;color:var(--color-status-failed);font-size:var(--text-xs);line-height:1.45}.form-field__error--global{margin:var(--space-3) 0 0;padding:var(--space-2) var(--space-3);background:#e0313114;border:1px solid rgb(224 49 49 / .24);border-radius:var(--radius-md)}.create-batch__upload-panel{padding-left:var(--space-6);border-left:1px solid var(--color-border)}.create-batch__upload-drop{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;min-height:0;padding:var(--space-5);text-align:center;background:var(--color-surface-muted);border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg)}.create-batch__upload-illustration{width:auto;max-width:min(64%,16rem);height:7rem;margin:0 auto var(--space-4);filter:grayscale(1);opacity:.38;object-fit:contain;-webkit-user-select:none;user-select:none}.create-batch__upload-main{max-width:24rem;margin:0 0 var(--space-2);color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:600;line-height:1.5}.create-batch__upload-meta{margin:0;color:var(--color-text-muted);font-size:var(--text-xs);line-height:1.7}.create-batch__api-error{margin:var(--space-3) 0 0;padding:var(--space-2) var(--space-3);background:#e0313114;border:1px solid rgb(224 49 49 / .24);border-radius:var(--radius-md);color:var(--color-status-failed);font-size:var(--text-sm);line-height:1.5}.create-batch__actions{display:flex;justify-content:flex-end;align-items:center;gap:var(--space-3);padding-top:var(--space-4)}@media(max-height:780px)and (min-width:961px){.create-batch__body{padding-bottom:var(--space-4)}.create-batch__steps{margin-bottom:var(--space-4)}.create-batch__content{padding:var(--space-6)}.create-batch__fieldset{gap:var(--space-2)}.create-batch__legend,.create-batch__upload-title{margin-bottom:var(--space-2)}.form-field__textarea{min-height:4.5rem}.create-batch__upload-drop{padding:var(--space-4)}.create-batch__upload-illustration{max-width:min(56%,12rem);height:5.5rem;margin-bottom:var(--space-3)}.create-batch__actions{padding-top:var(--space-3)}}@media(max-width:960px){.create-batch__content{grid-template-columns:1fr;row-gap:var(--space-5)}.create-batch__upload-panel{padding-top:var(--space-5);padding-left:0;border-top:1px solid var(--color-border);border-left:0}.create-batch__upload-drop{min-height:13rem}}@media(max-width:720px){.create-batch__body{padding:0 var(--space-4) var(--space-5)}.create-batch__header{flex-direction:column;align-items:stretch}.create-batch__cancel-create{justify-content:center}.create-batch__step:not(:last-child):after{left:calc(50% + 1.125rem);right:calc(-50% + 1.125rem)}.create-batch__step-label{max-width:4.5rem;font-size:var(--text-xs);white-space:normal}.create-batch__content{padding:var(--space-5)}.form-field{grid-template-columns:1fr;gap:var(--space-1)}.form-field__label{padding-top:0}.create-batch__actions{flex-direction:column-reverse;align-items:stretch}.create-batch__actions .btn{justify-content:center;width:100%}}@media(max-width:480px){.create-batch__step-label{display:none}}.upload-page{--upload-footer-height: 4.5rem;display:flex;flex-direction:column;min-height:calc(100vh - var(--header-height, 56px));width:100%;background:var(--color-surface-subtle);color:var(--color-text-primary)}.upload-page__breadcrumb-bar{display:flex;align-items:center;padding:1rem 1.75rem;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.upload-page__body{width:100%;max-width:1280px;margin:0 auto;padding:0 1.75rem calc(var(--upload-footer-height) + var(--space-8))}.upload-page__steps{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));width:min(100%,980px);margin:var(--space-6) auto var(--space-5);padding:0;list-style:none}.upload-page__step{position:relative;display:flex;flex-direction:column;align-items:center;min-width:0;gap:var(--space-2);color:var(--color-text-secondary)}.upload-page__step:not(:last-child):after{content:"";position:absolute;top:1rem;left:calc(50% + 1.375rem);right:calc(-50% + 1.375rem);height:1px;background:var(--color-border)}.upload-page__step--active:not(:last-child):after,.upload-page__step--done:not(:last-child):after{background:var(--color-brand-primary)}.upload-page__step-num{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:1px solid var(--color-border);border-radius:50%;background:var(--color-surface);color:var(--color-text-muted);font-size:var(--text-sm);font-weight:600;line-height:1}.upload-page__step-label{color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:500;line-height:1.35;text-align:center;white-space:nowrap}.upload-page__step--active .upload-page__step-num{border-color:var(--color-brand-primary);background:var(--color-brand-primary);color:var(--color-text-inverse);box-shadow:0 0 0 3px #1a56db1f}.upload-page__step--active .upload-page__step-label{color:var(--color-brand-primary);font-weight:600}.upload-page__step--done .upload-page__step-num{border-color:var(--color-status-report-ready);background:var(--color-status-report-ready);color:var(--color-text-inverse)}.upload-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-6)}.upload-column{display:flex;flex-direction:column;gap:var(--space-4);min-width:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-6)}.column-title{font-size:var(--text-base);font-weight:600;color:var(--color-text-primary);margin:0}.upload-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-6);border:2px dashed var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-subtle);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out);min-height:126px;-webkit-user-select:none;user-select:none;outline:none}.upload-zone:hover,.upload-zone:focus-visible{border-color:var(--color-brand-primary);background:var(--color-brand-secondary)}.upload-zone.uploading{border-color:var(--color-brand-primary);background:var(--color-brand-secondary);pointer-events:none}.upload-zone.has-files{border-color:var(--color-status-report-ready);background:#f0fdf4}.zone-upload-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-5);background:var(--color-brand-primary);color:var(--color-text-inverse);border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:background var(--duration-fast) var(--ease-out)}.zone-upload-btn__icon{flex-shrink:0;color:currentColor}.zone-upload-btn:hover{background:var(--color-brand-primary-hover)}.zone-hint{font-size:var(--text-xs);color:var(--color-text-muted);text-align:center;margin:0}.done-text{color:var(--color-status-report-ready);font-weight:500;font-size:var(--text-sm)}.file-input-hidden{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;overflow:hidden}.upload-progress-area,.upload-file-list{display:flex;flex-direction:column;gap:var(--space-2)}.upload-file-list{margin-top:calc(var(--space-1) * -1)}.upload-file-list__summary{color:var(--color-text-secondary);font-size:var(--text-sm);line-height:1.4}.upload-file-list__items{display:flex;flex-direction:column;gap:0;padding:0;margin:0;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);overflow:hidden;list-style:none}.upload-file-row{display:grid;grid-template-columns:3rem minmax(0,1fr) auto;align-items:center;gap:var(--space-3);padding:var(--space-3);min-height:5rem}.upload-file-row+.upload-file-row{border-top:1px solid var(--color-border)}.upload-file-row--error{background:#fff7f7}.upload-file-row__thumb{display:inline-flex;align-items:center;justify-content:center;width:3rem;height:3rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-subtle);color:var(--color-text-secondary);cursor:pointer;overflow:hidden}.upload-file-row__thumb:disabled{cursor:default;opacity:.7}.upload-file-row__thumb img{width:100%;height:100%;object-fit:cover}.upload-file-row__main{display:flex;min-width:0;flex-direction:column;gap:var(--space-2)}.upload-file-row__top{display:flex;align-items:center;justify-content:space-between;min-width:0;gap:var(--space-3)}.upload-file-row__actions{display:inline-flex;align-items:center;gap:var(--space-2)}.upload-row-btn{border:0;background:transparent;color:var(--color-text-secondary);font-size:var(--text-xs);cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm)}.upload-row-btn:hover:not(:disabled),.upload-row-btn:focus-visible{color:var(--color-brand-primary);background:var(--color-brand-secondary)}.upload-row-btn--danger{color:var(--color-severity-critical)}.upload-row-btn--danger:hover:not(:disabled),.upload-row-btn--danger:focus-visible{color:var(--color-text-inverse);background:var(--color-severity-critical)}.upload-row-btn:disabled{cursor:default;opacity:.6}.file-info{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.file-name{font-size:var(--text-sm);color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.file-size{font-size:var(--text-xs);color:var(--color-text-muted);white-space:nowrap;flex-shrink:0}.progress-bar-track{height:6px;background:var(--color-surface-muted);border-radius:999px;overflow:hidden}.progress-bar-fill{height:100%;background:var(--color-brand-primary);border-radius:999px;transition:width var(--duration-normal) linear}.progress-bar-fill.complete{background:var(--color-status-report-ready)}.upload-error{font-size:var(--text-xs);color:var(--color-severity-critical);margin:0}.upload-preview-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:var(--space-6);background:#0f172a85}.upload-preview-modal__dialog{display:flex;flex-direction:column;width:min(920px,100%);max-height:min(760px,90vh);overflow:hidden;border-radius:var(--radius-lg);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-lg)}.upload-preview-modal__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border)}.upload-preview-modal__title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-primary);font-size:var(--text-sm);font-weight:600}.upload-preview-modal__body{display:flex;align-items:center;justify-content:center;min-height:320px;padding:var(--space-5);background:var(--color-surface-subtle)}.upload-preview-modal__image,.upload-preview-modal__pdf{display:block;width:100%;height:min(640px,70vh);border:0;object-fit:contain;background:var(--color-surface)}.upload-preview-modal__fallback{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);color:var(--color-text-secondary);font-size:var(--text-sm);word-break:break-word}.file-preview{width:100%;min-height:220px;max-height:460px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-subtle);overflow:hidden}.file-preview-image{display:block;width:100%;height:100%;min-height:220px;max-height:460px;object-fit:contain;background:var(--color-surface)}.file-preview-pdf{height:clamp(320px,48vh,560px);max-height:none}.file-preview-embed{display:block;width:100%;height:100%;border:0}.file-preview-fallback{display:flex;align-items:center;justify-content:center;padding:var(--space-4);min-height:120px;color:var(--color-text-secondary);font-size:var(--text-sm);text-align:center;word-break:break-word}.upload-footer{position:fixed;right:0;bottom:0;left:0;z-index:20;min-height:var(--upload-footer-height);display:flex;align-items:center;justify-content:center;background:var(--color-surface);border-top:1px solid var(--color-border);box-shadow:0 -2px 8px #0000000f}.app-shell .upload-footer{left:var(--nav-width, 220px)}.side-nav--collapsed+.app-shell__content .upload-footer{left:var(--nav-width-collapsed, 64px)}.upload-footer__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);width:100%;max-width:1280px;margin:0 auto;padding:var(--space-4) 1.75rem}.upload-footer__next-group{display:inline-flex;align-items:center;justify-content:flex-end;gap:var(--space-3);min-width:0;margin-left:auto}.upload-missing-hint{margin:0;color:var(--color-text-muted);font-size:var(--text-xs);line-height:1.4;white-space:nowrap}@media(max-height:780px)and (min-width:961px){.upload-page__steps{margin-bottom:var(--space-4)}.upload-column{padding:var(--space-5)}.upload-zone{min-height:118px;padding:var(--space-5)}}@media(max-width:960px){.upload-columns{grid-template-columns:1fr}}@media(max-width:720px){.upload-page{--upload-footer-height: 8.75rem}.upload-page__body{padding:0 var(--space-4) calc(var(--upload-footer-height) + var(--space-5))}.upload-page__step:not(:last-child):after{left:calc(50% + 1.125rem);right:calc(-50% + 1.125rem)}.upload-page__step-label{max-width:4.5rem;font-size:var(--text-xs);white-space:normal}.upload-footer__inner{flex-direction:column;align-items:stretch;gap:var(--space-3);padding:var(--space-3) var(--space-4)}.upload-footer__next-group{flex-direction:column;align-items:stretch;gap:var(--space-2);margin-left:0}.upload-footer .btn{justify-content:center;width:100%}.upload-missing-hint{text-align:center;white-space:normal}.upload-file-row{grid-template-columns:3rem minmax(0,1fr)}.upload-file-row__actions{grid-column:2;justify-content:flex-start}.upload-preview-modal{padding:var(--space-3)}}@media(max-width:480px){.upload-page__step-label{display:none}}.prep-editor-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a9e;display:flex;align-items:center;justify-content:center;z-index:60;padding:var(--space-4, 1rem)}.prep-editor{display:flex;flex-direction:column;width:min(1280px,96vw);height:min(860px,94vh);background:var(--color-surface, #ffffff);border-radius:var(--radius-lg, 8px);box-shadow:var(--shadow-lg, 0 10px 15px -3px rgba(0, 0, 0, .1));overflow:hidden}.prep-editor__toolbar{display:flex;align-items:center;gap:var(--space-4, 1rem);padding:var(--space-3, .75rem) var(--space-4, 1rem);border-bottom:1px solid var(--color-border, #e5e7eb);flex-wrap:wrap}.prep-editor__title{font-weight:600;color:var(--color-text-primary, #212529)}.prep-editor__tools,.prep-editor__zoom{display:flex;align-items:center;gap:.375rem}.prep-btn--smart{border-color:#1a56db;color:#1a56db;font-weight:600}.prep-btn--smart:disabled{opacity:.6}.prep-editor__smart-notice{padding:.5rem 1rem;font-size:.85rem;color:#1a4731;background:#f0faf3;border-bottom:1px solid #cfeeda}.prep-editor__zoom{margin-left:auto}.prep-editor__zoom-val{min-width:3.2em;text-align:center;font-size:var(--text-sm, .875rem);color:var(--color-text-secondary, #495057);font-variant-numeric:tabular-nums}.prep-editor__calbar{display:flex;align-items:center;gap:var(--space-3, .75rem);padding:var(--space-2, .5rem) var(--space-4, 1rem);background:#eff6ff;border-bottom:1px solid #bfdbfe;font-size:var(--text-sm, .875rem);color:var(--color-text-primary, #212529)}.prep-editor__calbar input,.prep-editor__cal-info input{width:7em;margin-left:.375rem;padding:.25rem .5rem;border:1px solid var(--color-border, #dee2e6);border-radius:var(--radius-sm, 4px);font-size:var(--text-sm, .875rem)}.prep-editor__body{display:flex;flex:1;min-height:0}.prep-editor__viewport{flex:1;min-width:0;overflow:hidden;background:var(--color-surface-muted, #eceff3);display:flex;align-items:center;justify-content:center;position:relative}.prep-editor__transform{transform-origin:center center;transition:transform var(--duration-fast, .15s) cubic-bezier(.16,1,.3,1);will-change:transform}@media(prefers-reduced-motion:reduce){.prep-editor__transform{transition:none}}.prep-editor__stage{position:relative;width:min(72vw,900px);max-height:70vh;background:#fff;border:1px solid var(--color-border, #e5e7eb);-webkit-user-select:none;user-select:none}.prep-editor__stage--roi,.prep-editor__stage--exclude,.prep-editor__stage--calibrate{cursor:crosshair}.prep-editor__stage--select{cursor:grab}.prep-editor__bg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.prep-editor__fallback{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted, #868e96);font-size:var(--text-sm, .875rem);text-align:center;padding:var(--space-4, 1rem)}.prep-editor-box{position:absolute;box-sizing:border-box}.prep-editor-box--roi{border:2px solid var(--color-brand-primary, #1a56db);background:#1a56db14;cursor:move}.prep-editor-box--roi.is-selected{box-shadow:0 0 0 2px #1a56db59}.prep-editor-box--exclude,.prep-exclude{border:1.5px solid #e03131;background:repeating-linear-gradient(45deg,#e0313138,#e0313138 6px,#e031310d 6px,#e031310d 12px);cursor:move}.prep-editor-box--exclude.is-selected{box-shadow:0 0 0 2px #e0313166}.prep-handle{position:absolute;width:12px;height:12px;background:#fff;border:2px solid var(--color-brand-primary, #1a56db);border-radius:2px;z-index:2}.prep-editor-box--exclude .prep-handle{border-color:#e03131}.prep-handle--nw{left:-6px;top:-6px;cursor:nwse-resize}.prep-handle--ne{right:-6px;top:-6px;cursor:nesw-resize}.prep-handle--sw{left:-6px;bottom:-6px;cursor:nesw-resize}.prep-handle--se{right:-6px;bottom:-6px;cursor:nwse-resize}.prep-handle--cal{border-radius:50%;border-color:#0c8599;cursor:move}.prep-editor__calline{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.prep-editor__calline line{stroke:#0c8599;stroke-width:.6;stroke-dasharray:2 1.2;vector-effect:non-scaling-stroke}.prep-editor__side{width:248px;flex-shrink:0;border-left:1px solid var(--color-border, #e5e7eb);padding:var(--space-4, 1rem);overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-5, 1.25rem)}.prep-editor__side-title{font-size:var(--text-sm, .875rem);font-weight:600;color:var(--color-text-primary, #212529);margin-bottom:.5rem}.prep-editor__side-empty{font-size:var(--text-xs, .75rem);color:var(--color-text-muted, #868e96);line-height:1.6;margin-bottom:.5rem}.prep-editor__list{list-style:none;margin:0 0 .5rem;padding:0;display:flex;flex-direction:column;gap:.25rem}.prep-editor__list li{display:flex;align-items:center;gap:.375rem}.prep-editor__list-item{flex:1;text-align:left;padding:.25rem .5rem;font-size:var(--text-xs, .75rem);border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-sm, 4px);background:var(--color-surface, #fff);cursor:pointer}.prep-editor__list-item:hover{background:var(--color-surface-subtle, #f8f9fa)}.prep-editor__list-item.is-selected{border-color:#e03131;background:#fff5f5}.prep-editor__cal-info{display:flex;flex-direction:column;gap:.5rem;font-size:var(--text-sm, .875rem);color:var(--color-text-primary, #212529)}.prep-editor__footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3, .75rem);padding:var(--space-3, .75rem) var(--space-4, 1rem);border-top:1px solid var(--color-border, #e5e7eb)}.prep-editor__hint{margin-right:auto;font-size:var(--text-xs, .75rem);color:var(--color-text-muted, #868e96)}.prep-panel{display:flex;flex-direction:column;gap:var(--space-4, 1rem);padding:var(--space-5, 1.25rem);background:var(--color-surface, #ffffff);border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-md, 6px);box-shadow:var(--shadow-sm, 0 1px 2px rgba(0, 0, 0, .05))}.prep-panel__head{display:flex;flex-direction:column;gap:.35rem;padding:var(--space-4, 1rem) var(--space-5, 1.25rem);background:var(--color-surface-subtle, #f8f9fa);border:1px solid var(--color-border, #dee2e6);border-radius:var(--radius-md, 6px)}.prep-panel__title{margin:0;font-size:var(--text-base, 1rem);font-weight:600;color:var(--color-text-primary, #212529)}.prep-panel__hint{margin:0;font-size:var(--text-sm, .875rem);color:var(--color-text-secondary, #495057);line-height:1.6;max-width:none}.prep-panel__readonly{padding:var(--space-3, .75rem) var(--space-4, 1rem);background:var(--color-surface-subtle, #f8f9fa);border:1px dashed var(--color-border-strong, #adb5bd);border-radius:var(--radius-md, 6px);color:var(--color-text-muted, #868e96);font-size:var(--text-sm, .875rem)}.prep-panel__sides{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-4, 1rem)}.prep-side{display:flex;flex-direction:column;gap:.5rem;min-width:0}.prep-side__head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.prep-side__title{font-size:var(--text-sm, .875rem);font-weight:600;color:var(--color-text-primary, #212529)}.prep-side__meta{font-size:var(--text-xs, .75rem);color:var(--color-text-muted, #868e96)}.prep-side__filename{display:inline-block;margin-left:.5rem;font-size:var(--text-xs, .75rem);font-weight:400;color:var(--color-text-secondary, #495057);word-break:break-all}.prep-stage{position:relative;width:100%;max-height:340px;background:var(--color-surface-muted, #f1f3f5);border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-sm, 4px);overflow:hidden;cursor:crosshair;-webkit-user-select:none;user-select:none}.prep-stage__img{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;max-width:100%;max-height:100%;pointer-events:none}.prep-stage__img--r90,.prep-stage__img--r270{max-width:none;max-height:none;width:auto;height:100%;transform-origin:center center}.prep-stage__img--r90{transform:rotate(90deg);height:auto;width:100%}.prep-stage__img--r180{transform:rotate(180deg)}.prep-stage__img--r270{transform:rotate(270deg);height:auto;width:100%}.prep-stage__img--r90,.prep-stage__img--r270{width:auto;height:auto;max-width:100%;max-height:100%}.prep-stage__fallback{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted, #868e96);font-size:var(--text-sm, .875rem);text-align:center;padding:var(--space-4, 1rem)}.prep-roi{position:absolute;border:1px solid rgba(26,86,219,.72);background:#1a56db09;box-shadow:none;pointer-events:none}.prep-exclude{position:absolute;border:1.5px solid #e03131;background:repeating-linear-gradient(45deg,#e0313138,#e0313138 6px,#e031310d 6px,#e031310d 12px);pointer-events:none}.prep-calline{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.prep-calline line{stroke:#0c8599;stroke-width:.6;stroke-dasharray:2 1.2;vector-effect:non-scaling-stroke}.prep-side__cal{display:flex;align-items:center;gap:.5rem;font-size:var(--text-xs, .75rem);color:#0c8599}.prep-side__actions{display:flex;gap:.5rem;flex-wrap:wrap}.prep-btn{display:inline-flex;align-items:center;justify-content:center;padding:.4rem .9rem;font-size:var(--text-sm, .875rem);font-weight:500;border-radius:var(--radius-sm, 4px);border:1px solid var(--color-border, #dee2e6);background:var(--color-surface, #ffffff);color:var(--color-text-primary, #212529);cursor:pointer;transition:background var(--duration-fast, .15s);white-space:nowrap}.prep-btn:hover:not(:disabled){background:var(--color-surface-subtle, #f8f9fa)}.prep-btn:disabled{opacity:.5;cursor:not-allowed}.prep-btn--primary{background:var(--color-brand-primary, #1a56db);border-color:var(--color-brand-primary, #1a56db);color:#fff}.prep-btn--primary:hover:not(:disabled){background:var(--color-brand-primary-hover, #1648c0)}.prep-btn--mini{padding:.15rem .5rem;font-size:var(--text-xs, .75rem)}.prep-panel__notice{padding:var(--space-3, .75rem) var(--space-4, 1rem);background:#eff6ff;border:1px solid #bfdbfe;border-radius:var(--radius-md, 6px);color:#1e429f;font-size:var(--text-sm, .875rem);line-height:1.6}.prep-panel__notice--ok{background:#ebfbee;border-color:#b2f2bb;color:#2b8a3e}.prep-panel__guard{display:flex;align-items:center;gap:.625rem;flex-wrap:wrap;padding:var(--space-3, .75rem) var(--space-4, 1rem);background:#fff9db;border:1px solid #ffe066;border-radius:var(--radius-md, 6px);color:#8a6d0b;font-size:var(--text-sm, .875rem);line-height:1.6}.prep-panel__thumbs{display:flex;flex-direction:column;gap:.5rem;padding:var(--space-4, 1rem);background:var(--color-surface-subtle, #f8f9fa);border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-md, 6px)}.prep-panel__thumbs-title{font-size:var(--text-sm, .875rem);font-weight:600;color:var(--color-text-secondary, #495057)}.prep-panel__thumbs-row{display:flex;gap:var(--space-4, 1rem);flex-wrap:wrap;align-items:flex-start}.prep-thumb{display:flex;flex-direction:column;gap:.25rem}.prep-thumb__label{font-size:var(--text-xs, .75rem);color:var(--color-text-muted, #868e96)}.prep-thumb__canvas{border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-sm, 4px);background:#fff;max-width:220px;max-height:220px}.prep-thumb__fallback{width:160px;height:100px;display:flex;align-items:center;justify-content:center;border:1px dashed var(--color-border, #e5e7eb);border-radius:var(--radius-sm, 4px);color:var(--color-text-muted, #868e96);font-size:var(--text-xs, .75rem)}.prep-panel__error{padding:var(--space-3, .75rem) var(--space-4, 1rem);background:#fef2f2;border:1px solid #fca5a5;border-radius:var(--radius-md, 6px);color:#dc2626;font-size:var(--text-sm, .875rem)}.prep-panel__footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-4, 1rem)}.prep-panel__saved{font-size:var(--text-sm, .875rem);color:var(--color-status-report-ready, #2f9e44)}.units-panel{display:flex;flex-direction:column;gap:var(--space-4, 1rem);padding:var(--space-5, 1.25rem);background:var(--color-surface, #ffffff);border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-md, 6px);box-shadow:var(--shadow-sm, 0 1px 2px rgba(0, 0, 0, .05))}.units-panel__head{display:flex;flex-direction:column;gap:.25rem}.units-panel__title{margin:0;font-size:var(--text-base, 1rem);font-weight:600;color:var(--color-text-primary, #212529)}.units-panel__hint{margin:0;font-size:var(--text-sm, .875rem);color:var(--color-text-secondary, #495057);line-height:1.6;max-width:76ch}.units-panel__readonly,.units-panel__fallback{padding:var(--space-3, .75rem) var(--space-4, 1rem);background:var(--color-surface-subtle, #f8f9fa);border:1px dashed var(--color-border-strong, #adb5bd);border-radius:var(--radius-md, 6px);color:var(--color-text-muted, #868e96);font-size:var(--text-sm, .875rem)}.units-panel__warn{padding:var(--space-3, .75rem) var(--space-4, 1rem);background:#fff4e6;border:1px solid #ffc078;border-radius:var(--radius-md, 6px);color:#d9480f;font-size:var(--text-sm, .875rem)}.units-panel__error{padding:var(--space-3, .75rem) var(--space-4, 1rem);background:#fef2f2;border:1px solid #fca5a5;border-radius:var(--radius-md, 6px);color:#dc2626;font-size:var(--text-sm, .875rem)}.units-panel__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-4, 1rem)}.units-side{display:flex;flex-direction:column;gap:.5rem;min-width:0}.units-side__title{font-size:var(--text-sm, .875rem);font-weight:600;color:var(--color-text-primary, #212529)}.units-side__img{display:block;width:100%;max-height:380px;object-fit:contain;border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-sm, 4px);background:var(--color-surface-muted, #f1f3f5)}.units-overlay{position:relative;display:inline-block;width:100%}.units-box{position:absolute;border:2px solid var(--color-brand-primary, #1a56db);background:#1a56db0f;pointer-events:none}.units-box__tag{position:absolute;top:0;left:0;transform:translateY(-100%);background:var(--color-brand-primary, #1a56db);color:#fff;font-size:10px;line-height:1.4;padding:0 4px;border-radius:2px 2px 0 0;white-space:nowrap}.units-field-row{display:flex;gap:.6rem;flex-wrap:wrap}.units-field{display:inline-flex;align-items:center;gap:.35rem;font-size:var(--text-sm, .875rem);color:var(--color-text-secondary, #495057)}.units-field input[type=number]{width:4.6rem;padding:.25rem .4rem;border:1px solid var(--color-border, #dee2e6);border-radius:var(--radius-sm, 4px);font-size:var(--text-sm, .875rem)}.units-pairs{display:flex;flex-direction:column;gap:.5rem;padding:var(--space-4, 1rem);background:var(--color-surface-subtle, #f8f9fa);border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-md, 6px)}.units-pairs__title{font-size:var(--text-sm, .875rem);font-weight:600;color:var(--color-text-secondary, #495057)}.units-pairs__rows{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:.625rem}.units-pairs__row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;font-size:var(--text-sm, .875rem);color:var(--color-text-primary, #212529);padding:.5rem .625rem;border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-sm, 4px);background:var(--color-surface, #fff);min-width:0}.units-pairs__row select{padding:.2rem .4rem;border:1px solid var(--color-border, #dee2e6);border-radius:var(--radius-sm, 4px);font-size:var(--text-sm, .875rem)}.units-panel__footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-4, 1rem)}.units-panel__saved{font-size:var(--text-sm, .875rem);color:var(--color-status-report-ready, #2f9e44)}.units-cal{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-top:.375rem}.units-cal__info{font-size:var(--text-xs, .75rem);color:#0c8599}.units-cal__empty{font-size:var(--text-xs, .75rem);color:var(--color-text-muted, #868e96)}.units-panel__notice{padding:var(--space-3, .75rem) var(--space-4, 1rem);background:#eff6ff;border:1px solid #bfdbfe;border-radius:var(--radius-md, 6px);color:#1e429f;font-size:var(--text-sm, .875rem);line-height:1.6}.units-panel__notice--ok{background:#ebfbee;border-color:#b2f2bb;color:#2b8a3e}.units-thumb{display:inline-block;max-width:72px;max-height:72px;border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-sm, 4px);background:#fff;vertical-align:middle}.units-thumb--ph{width:40px;height:54px;display:inline-flex;align-items:center;justify-content:center;font-size:var(--text-xs, .75rem);color:var(--color-text-muted, #868e96);border-style:dashed}.units-pairs__name{flex-basis:100%;min-width:0;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.units-pager{display:flex;align-items:center;gap:.5rem;margin-top:.25rem}.units-pager__label{font-size:var(--text-xs, .75rem);color:var(--color-text-secondary, #495057);font-variant-numeric:tabular-nums}.units-compare-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a99;display:flex;align-items:center;justify-content:center;z-index:60;padding:var(--space-4, 1rem)}.units-compare{display:flex;flex-direction:column;width:min(1240px,95vw);max-height:92vh;background:var(--color-surface, #ffffff);border-radius:var(--radius-lg, 8px);box-shadow:var(--shadow-lg, 0 10px 15px -3px rgba(0, 0, 0, .1));overflow:hidden}.units-compare__head{display:flex;align-items:center;gap:var(--space-4, 1rem);padding:var(--space-3, .75rem) var(--space-4, 1rem);border-bottom:1px solid var(--color-border, #e5e7eb)}.units-compare__title{font-weight:600;color:var(--color-text-primary, #212529)}.units-compare__zoom{display:flex;align-items:center;gap:.375rem;margin-left:auto}.units-compare__zoom-val{min-width:3.2em;text-align:center;font-size:var(--text-sm, .875rem);color:var(--color-text-secondary, #495057);font-variant-numeric:tabular-nums}.units-compare__viewport{flex:1;min-height:0;overflow:auto;background:var(--color-surface-muted, #eceff3);display:flex;align-items:flex-start;justify-content:center;padding:var(--space-4, 1rem)}.units-compare__body{display:flex;gap:var(--space-6, 1.5rem);transform-origin:top center;transition:transform var(--duration-fast, .15s) cubic-bezier(.16,1,.3,1)}@media(prefers-reduced-motion:reduce){.units-compare__body{transition:none}}.units-compare__fig{margin:0;display:flex;flex-direction:column;gap:.375rem;align-items:center}.units-compare__fig figcaption{font-size:var(--text-sm, .875rem);color:var(--color-text-secondary, #495057)}.units-compare__fig .units-thumb{max-width:560px;max-height:560px}.units-confirm-badge{display:inline-flex;align-items:center;margin-left:.625rem;padding:.125rem .625rem;border-radius:9999px;background:#ebfbee;border:1px solid #b2f2bb;color:#2b8a3e;font-size:var(--text-xs, .75rem);font-weight:500;white-space:nowrap}.pair-page{--pair-footer-height: 4.5rem;display:flex;flex-direction:column;min-height:calc(100vh - var(--header-height, 56px));width:100%;background:var(--color-surface-subtle, #f8f9fa);color:var(--color-text-primary, #212529);box-sizing:border-box}.pair-page__breadcrumb-bar{display:flex;align-items:center;padding:1rem 1.75rem;background:var(--color-surface, #ffffff);border-bottom:1px solid var(--color-border, #dee2e6)}.pair-page__body{width:100%;max-width:1280px;margin:0 auto;padding:0 1.75rem calc(var(--pair-footer-height) + var(--space-8, 2rem));box-sizing:border-box}.pair-page__steps{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));width:min(100%,980px);margin:var(--space-6, 1.5rem) auto var(--space-5, 1.25rem);padding:0;list-style:none}.pair-page__step{position:relative;display:flex;flex-direction:column;align-items:center;min-width:0;gap:var(--space-2, .5rem);color:var(--color-text-secondary, #495057)}.pair-page__step:not(:last-child):after{content:"";position:absolute;top:1rem;left:calc(50% + 1.375rem);right:calc(-50% + 1.375rem);height:1px;background:var(--color-border, #dee2e6)}.pair-page__step--active:not(:last-child):after,.pair-page__step--done:not(:last-child):after{background:var(--color-brand-primary, #1a56db)}.pair-page__step-num{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:1px solid var(--color-border, #dee2e6);border-radius:50%;background:var(--color-surface, #ffffff);color:var(--color-text-muted, #868e96);font-size:var(--text-sm, .875rem);font-weight:600;line-height:1}.pair-page__step-label{color:var(--color-text-secondary, #495057);font-size:var(--text-sm, .875rem);font-weight:500;line-height:1.35;text-align:center;white-space:nowrap}.pair-page__step--active .pair-page__step-num{border-color:var(--color-brand-primary, #1a56db);background:var(--color-brand-primary, #1a56db);color:var(--color-text-inverse, #ffffff);box-shadow:0 0 0 3px #1a56db1f}.pair-page__step--active .pair-page__step-label{color:var(--color-brand-primary, #1a56db);font-weight:600}.pair-page__step--done .pair-page__step-num{border-color:var(--color-status-report-ready, #2f9e44);background:var(--color-status-report-ready, #2f9e44);color:var(--color-text-inverse, #ffffff)}.pair-layout{display:flex;align-items:flex-start;gap:var(--space-4, 1rem)}.pair-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-3, .75rem)}@media(max-width:900px){.pair-layout{flex-direction:column}.pair-rules{width:100%}}.pair-notice{display:flex;align-items:flex-start;gap:.6rem;padding:var(--space-3, .75rem) var(--space-4, 1rem);background-color:var(--color-brand-secondary, #e8f0fe);border:1px solid rgba(26,86,219,.25);border-radius:var(--radius-md, 6px);color:var(--color-text-primary, #212529);font-size:var(--text-sm, .875rem);line-height:1.6}.pair-notice__icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:1.1rem;height:1.1rem;margin-top:.15rem;border-radius:50%;background:var(--color-brand-primary, #1a56db);color:#fff;font-size:.7rem;font-weight:700;font-style:italic;font-family:Georgia,serif}.pair-stats{display:flex;gap:var(--space-3, .75rem);flex-wrap:wrap}.pair-stats .stat-card{flex:1 1 220px;gap:var(--space-3, .75rem);padding:var(--space-3, .75rem) var(--space-4, 1rem);border-radius:var(--radius-md, 6px)}.pair-stats .stat-card__icon{width:32px;height:32px;border-radius:var(--radius-sm, 4px)}.pair-stats .stat-card__body{flex:1;flex-direction:row;align-items:baseline;justify-content:space-between;gap:var(--space-3, .75rem)}.pair-stats .stat-card__label{font-size:var(--text-sm, .875rem);white-space:nowrap}.pair-stats .stat-card__value{font-size:var(--text-xl, 1.25rem)}.pair-warning{display:flex;flex-direction:column;gap:.5rem;padding:var(--space-4, 1rem) var(--space-5, 1.25rem);background-color:#fff4e6;border:1px solid #ffc078;border-radius:var(--radius-md, 6px);color:#d9480f;font-size:var(--text-sm, .875rem);line-height:1.6}.pair-conflict{display:flex;flex-direction:column;gap:.5rem;padding:var(--space-4, 1rem) var(--space-5, 1.25rem);background-color:#e7f5ff;border:1px solid #74c0fc;border-radius:var(--radius-md, 6px);color:#1864ab;font-size:var(--text-sm, .875rem);line-height:1.6}.pair-warning__row{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem}.pair-chip{display:inline-block;padding:.1rem .5rem;background:#ffffffbf;border:1px solid currentColor;border-radius:999px;font-size:var(--text-xs, .75rem);font-family:var(--font-mono, ui-monospace, monospace);word-break:break-all}.pair-loading,.pair-aligning{display:flex;align-items:center;justify-content:center;gap:.6rem;padding:var(--space-6, 1.5rem);background-color:var(--color-surface-subtle, #f8f9fa);border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-md, 6px);color:var(--color-text-secondary, #495057);font-size:var(--text-sm, .875rem)}.pair-spinner{width:1rem;height:1rem;flex-shrink:0;border:2px solid var(--color-border, #e5e7eb);border-top-color:var(--color-brand-primary, #1a56db);border-radius:50%;animation:pair-spin .8s linear infinite}@keyframes pair-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.pair-spinner{animation:none;border-top-color:var(--color-border, #e5e7eb)}}.pair-ready-guide{display:flex;flex-direction:column;gap:.4rem;padding:var(--space-6, 1.5rem);background-color:var(--color-surface-subtle, #f8f9fa);border:1px dashed var(--color-border-strong, #adb5bd);border-radius:var(--radius-md, 6px);color:var(--color-text-primary, #212529);font-size:var(--text-sm, .875rem);line-height:1.7}.pair-ready-guide p{margin:0;color:var(--color-text-secondary, #495057)}.pair-empty-guide{display:flex;align-items:center;justify-content:center;text-align:center;color:var(--color-text-muted, #6b7280);background-color:var(--color-surface-subtle, #f8f9fa);border:1px dashed var(--color-border, #e5e7eb);border-radius:var(--radius-md, 6px);padding:var(--space-8, 2rem);font-size:var(--text-sm, .875rem)}.pair-error{padding:var(--space-4, 1rem);background-color:#fef2f2;border:1px solid #fca5a5;border-radius:var(--radius-md, 6px);color:#dc2626;font-size:var(--text-sm, .875rem)}.pair-rules{width:260px;flex-shrink:0;align-self:flex-start;height:var(--pair-rules-height, auto);max-height:var(--pair-rules-height, none);padding:var(--space-4, 1rem) 0 var(--space-4, 1rem) var(--space-5, 1.25rem);background-color:var(--color-surface, #ffffff);border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-md, 6px);box-shadow:var(--shadow-sm, 0 1px 2px rgba(0, 0, 0, .05));box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden}.pair-rules__title{margin:0 0 .6rem;padding-right:var(--space-5, 1.25rem);flex-shrink:0;font-size:var(--text-base, 1rem);font-weight:600;color:var(--color-text-primary, #212529)}.pair-rules__scroll{min-height:0;flex:1;overflow-y:auto;padding-right:var(--space-4, 1rem);scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:rgba(148,163,184,.72) transparent}.pair-rules__scroll::-webkit-scrollbar{width:8px}.pair-rules__scroll::-webkit-scrollbar-track{background:transparent}.pair-rules__scroll::-webkit-scrollbar-thumb{background-color:#94a3b87a;border:2px solid var(--color-surface, #ffffff);border-radius:999px}.pair-rules__scroll::-webkit-scrollbar-thumb:hover{background-color:#64748bad}.pair-rules__list{margin:0;padding-left:1.1rem;display:flex;flex-direction:column;gap:.45rem;font-size:var(--text-sm, .875rem);color:var(--color-text-secondary, #495057);line-height:1.6}.pair-table-wrapper{overflow-x:auto;border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-md, 6px);box-shadow:var(--shadow-sm, 0 1px 2px rgba(0, 0, 0, .05));background:var(--color-surface, #ffffff)}.pair-table{width:100%;min-width:0;table-layout:fixed;border-collapse:collapse;font-size:var(--text-sm, .875rem)}.pair-table__col-seq{width:5%}.pair-table__col-file{width:17%}.pair-table__col-thumb{width:8.5%}.pair-table__col-status{width:32%}.pair-table__col-actions{width:12%}.pair-table th{padding:var(--space-3, .75rem) .625rem;background-color:var(--color-surface-subtle, #f8f9fa);text-align:left;font-weight:600;color:var(--color-text-secondary, #495057);border-bottom:1px solid var(--color-border, #e5e7eb);white-space:nowrap}.pair-table td{padding:var(--space-3, .75rem) .625rem;border-bottom:1px solid var(--color-border, #e5e7eb);vertical-align:middle}.pair-table tr:last-child td{border-bottom:none}.pair-table tbody tr:hover td{background-color:var(--color-surface-subtle, #f8f9fa)}.pair-row--unmatched td{background-color:#fff9f2}.file-cell{display:flex;align-items:center;gap:var(--space-2, .5rem);min-width:0}.file-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem}.file-cell__text{display:flex;flex-direction:column;gap:.15rem;min-width:0}.file-name{font-weight:500;color:var(--color-text-primary, #212529);word-break:break-all}.file-meta{font-size:var(--text-xs, .75rem);color:var(--color-text-muted, #6b7280)}.pair-missing{color:var(--color-text-muted, #6b7280);font-size:var(--text-sm, .875rem)}.pair-thumb{display:block;width:50px;height:38px;object-fit:cover;border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-sm, 4px);background:var(--color-surface-subtle, #f8f9fa)}.pair-modal__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4, 1rem);padding:var(--space-3, .75rem) var(--space-5, 1.25rem);border-bottom:1px solid var(--color-border, #e5e7eb)}.pair-modal__title{font-weight:600;color:var(--color-text-primary, #212529)}.pair-modal__close{border:1px solid var(--color-border, #dee2e6);background:var(--color-surface, #fff);border-radius:var(--radius-sm, 4px);padding:.3rem .9rem;font-size:var(--text-sm, .875rem);cursor:pointer}.pair-modal__close:hover{background:var(--color-surface-subtle, #f8f9fa)}.pair-modal__body{display:flex;gap:var(--space-5, 1.25rem);padding:var(--space-5, 1.25rem);overflow:auto;align-items:flex-start;flex-wrap:wrap}.pair-modal__fig{margin:0;flex:1 1 380px;min-width:0;display:flex;flex-direction:column;gap:.4rem}.pair-modal__fig figcaption{font-size:var(--text-sm, .875rem);font-weight:600;color:var(--color-text-secondary, #495057);word-break:break-all}.pair-modal__fig img{max-width:100%;max-height:62vh;object-fit:contain;border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-sm, 4px);background:var(--color-surface-subtle, #f8f9fa)}.thumb-ph{display:inline-flex;align-items:center;justify-content:center;width:44px;height:34px;border:1px dashed var(--color-border-strong, #adb5bd);border-radius:var(--radius-sm, 4px);color:var(--color-text-muted, #868e96);background:var(--color-surface-subtle, #f8f9fa)}.pair-status{display:inline-block;font-weight:600;font-size:var(--text-sm, .875rem)}.pair-status--ok{color:var(--color-status-report-ready, #2f9e44)}.pair-status--warn{color:var(--color-status-pending-align, #fd7e14)}.pair-status__basis{display:block;margin-top:.15rem;font-size:var(--text-xs, .75rem);color:var(--color-text-muted, #868e96);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pair-actions{display:inline-flex;align-items:center;gap:0;white-space:nowrap}.pair-page .pair-actions .btn{min-width:0;padding:0;border:0;border-radius:0;line-height:1.5}.pair-actions__sep{margin:0 var(--space-2, .5rem);color:var(--color-border, #e5e7eb)}.pair-footer{position:fixed;right:0;bottom:0;left:0;z-index:20;min-height:var(--pair-footer-height);display:flex;align-items:center;justify-content:center;background:var(--color-surface, #ffffff);border-top:1px solid var(--color-border, #e5e7eb);box-shadow:0 -2px 8px #0000000f}.app-shell .pair-footer{left:var(--nav-width, 220px)}.side-nav--collapsed+.app-shell__content .pair-footer{left:var(--nav-width-collapsed, 64px)}.pair-footer__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4, 1rem);width:100%;max-width:1280px;margin:0 auto;padding:var(--space-4, 1rem) 1.75rem;box-sizing:border-box}.pair-footer__right{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3, .75rem);min-width:0;margin-left:auto}.pair-page .btn{display:inline-flex;align-items:center;justify-content:center;padding:.55rem 1.4rem;font-size:var(--text-sm, .875rem);font-weight:500;border-radius:var(--radius-md, 6px);border:1px solid transparent;cursor:pointer;transition:background var(--duration-fast, .15s),border-color var(--duration-fast, .15s);white-space:nowrap}.pair-page .btn:disabled{opacity:.5;cursor:not-allowed}.pair-page .btn-primary,.pair-page .btn--primary{background:var(--color-brand-primary, #1a56db);color:#fff;border-color:var(--color-brand-primary, #1a56db)}.pair-page .btn-primary:hover:not(:disabled),.pair-page .btn--primary:hover:not(:disabled){background:var(--color-brand-primary-hover, #1648c0);border-color:var(--color-brand-primary-hover, #1648c0)}.pair-page .pair-save-btn--saved{background:var(--color-status-report-ready, #2f9e44);border-color:var(--color-status-report-ready, #2f9e44);color:var(--color-text-inverse, #ffffff)}.pair-page .pair-save-btn--saved:hover:not(:disabled){background:#27883b;border-color:#27883b}.pair-page .btn-secondary,.pair-page .btn--secondary{background:var(--color-surface, #ffffff);color:var(--color-text-primary, #212529);border-color:var(--color-border, #dee2e6)}.pair-page .btn-secondary:hover:not(:disabled),.pair-page .btn--secondary:hover:not(:disabled){background:var(--color-surface-subtle, #f8f9fa)}.pair-footer__right .btn{min-width:10.5rem}.pair-page .pair-clear-btn{color:var(--color-status-failed, #e03131);background:var(--color-surface, #ffffff);border-color:#e031315c}.pair-page .pair-clear-btn:hover:not(:disabled){background:#fff5f5;border-color:#e0313194}.pair-prep-tabs{display:inline-flex;align-items:center;width:fit-content;max-width:100%;gap:var(--space-5, 1.25rem);margin:var(--space-5, 1.25rem) 0 var(--space-3, .75rem);padding:0;background:transparent;border:0;border-radius:0;box-shadow:none}.pair-prep-tab{min-height:2.25rem;padding:.35rem 0 .45rem;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;color:var(--color-text-secondary, #495057);font-size:var(--text-sm, .875rem);font-weight:500;line-height:1.35;white-space:nowrap;cursor:pointer;transition:background-color .16s ease,box-shadow .16s ease,color .16s ease}.pair-prep-tab:hover:not(:disabled){background:transparent;color:var(--color-text-primary, #212529)}.pair-prep-tab:focus-visible{outline:2px solid rgba(26,86,219,.36);outline-offset:2px}.pair-prep-tab--active{background:transparent;border-bottom-color:var(--color-brand-primary, #1a56db);color:var(--color-brand-primary, #1a56db);box-shadow:none;font-weight:600}.pair-prep-tab:disabled{opacity:.55;cursor:not-allowed}.prep-rec-badge{margin-left:.4rem;padding:.05rem .4rem;font-size:.7rem;font-weight:600;line-height:1.4;color:#0f7b3f;background:#e6f6ec;border:1px solid #b7e4c7;border-radius:9999px;vertical-align:middle}.pair-prep-rec-hint{margin:0 0 var(--space-4, 1rem);padding:.5rem .75rem;font-size:.82rem;line-height:1.5;color:#1a4731;background:#f0faf3;border:1px solid #cfeeda;border-radius:6px}@media(max-width:720px){.pair-page{--pair-footer-height: 9.75rem}.pair-page__body{padding:0 var(--space-4, 1rem) calc(var(--pair-footer-height) + var(--space-5, 1.25rem))}.pair-page__step:not(:last-child):after{left:calc(50% + 1.125rem);right:calc(-50% + 1.125rem)}.pair-rules{align-self:stretch;height:auto;max-height:none}.pair-rules__scroll{max-height:18rem}.pair-prep-tabs{display:flex;width:100%}.pair-prep-tab{flex:1 1 0;white-space:normal}.pair-page__step-label{max-width:4.5rem;font-size:var(--text-xs, .75rem);white-space:normal}.pair-footer__inner,.pair-footer__right{flex-direction:column;align-items:stretch}.pair-footer__inner{gap:var(--space-3, .75rem);padding:var(--space-3, .75rem) var(--space-4, 1rem)}.pair-footer__right{gap:var(--space-2, .5rem);margin-left:0}.pair-footer .btn{justify-content:center;width:100%}}@media(max-width:480px){.pair-page__step-label{display:none}}.workflow-stepbar{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;width:100%;margin:0;padding:0;list-style:none}.workflow-stepbar__step{min-width:0}.workflow-stepbar__step-num{flex:0 0 auto}.workflow-stepbar__step-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.batch-info-bar{width:100%}.batch-info-bar__field{min-width:0}.batch-info-bar__value{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:1120px){.annotation-infobar{grid-template-columns:repeat(3,minmax(0,1fr))}.annotation-infobar__field:nth-child(3):after{display:none}}@media(max-width:900px){.annotation-infobar{grid-template-columns:repeat(2,minmax(0,1fr))}.annotation-infobar__field:nth-child(2n):after{display:none}}@media(max-width:680px){.annotation-page__steps{overflow-x:auto;grid-template-columns:repeat(6,minmax(6.5rem,1fr));padding-bottom:var(--space-2, .5rem)}.annotation-infobar{grid-template-columns:minmax(0,1fr)}.annotation-infobar__field:after{display:none}.annotation-infobar__field:not(:last-child){border-bottom:1px solid var(--color-border, #dee2e6)}}.detecting-main{--detecting-footer-height: 4.5rem;flex:1;display:flex;flex-direction:column;min-height:calc(100vh - var(--header-height, 56px));overflow:hidden;background:var(--color-surface-subtle, #f8f9fa)}.detecting-page__breadcrumb-bar{flex-shrink:0;padding:1rem 1.75rem;background:var(--color-surface, #ffffff);border-bottom:1px solid var(--color-border, #dee2e6)}.detecting-page__body{flex:1;min-height:0;width:100%;max-width:1280px;margin:0 auto;padding:0 1.75rem calc(var(--detecting-footer-height) + var(--space-8, 2rem));box-sizing:border-box;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-4, 1rem)}.detecting-page__steps{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));align-items:start;gap:0;width:min(100%,980px);margin:var(--space-6, 1.5rem) auto var(--space-4, 1rem);padding:0;list-style:none}.detecting-page__step{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--space-2, .5rem);min-width:0}.detecting-page__step:not(:last-child):after{content:"";position:absolute;top:1rem;left:calc(50% + 1.375rem);right:calc(-50% + 1.375rem);height:1px;background:var(--color-border, #dee2e6)}.detecting-page__step--active:not(:last-child):after,.detecting-page__step--done:not(:last-child):after{background:var(--color-brand-primary, #1a56db)}.detecting-page__step-num{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:1px solid var(--color-border, #dee2e6);border-radius:50%;background:var(--color-surface, #ffffff);color:var(--color-text-muted, #868e96);font-size:var(--text-sm, .875rem);font-weight:600;line-height:1}.detecting-page__step-label{color:var(--color-text-secondary, #495057);font-size:var(--text-sm, .875rem);font-weight:500;line-height:1.35;text-align:center;white-space:nowrap}.detecting-page__step--active .detecting-page__step-num{border-color:var(--color-brand-primary, #1a56db);background:var(--color-brand-primary, #1a56db);color:var(--color-text-inverse, #ffffff);box-shadow:0 0 0 3px #1a56db1f}.detecting-page__step--active .detecting-page__step-label{color:var(--color-brand-primary, #1a56db);font-weight:600}.detecting-page__step--done .detecting-page__step-num{border-color:var(--color-status-report-ready, #2f9e44);background:var(--color-status-report-ready, #2f9e44);color:var(--color-text-inverse, #ffffff)}.detecting-main .annotation-infobar{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) minmax(0,.9fr) minmax(0,.9fr) minmax(0,.82fr);background:var(--color-surface, #ffffff);border:1px solid var(--color-border, #dee2e6);border-radius:var(--radius-lg, 8px);box-shadow:var(--shadow-sm, 0 1px 2px rgb(0 0 0 / .05));overflow:hidden}.detecting-main .annotation-infobar__field{position:relative;display:flex;align-items:center;gap:var(--space-3, .75rem);min-width:0;padding:var(--space-4, 1rem) var(--space-4, 1rem)}.detecting-main .annotation-infobar__field:not(:last-child){padding-right:var(--space-7, 1.75rem)}.detecting-main .annotation-infobar__field:not(:last-child):after{content:"";position:absolute;top:var(--space-4, 1rem);right:var(--space-3, .75rem);bottom:var(--space-4, 1rem);width:1px;background:var(--color-border, #dee2e6)}.detecting-main .annotation-infobar__icon{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:var(--radius-lg, 8px);background:color-mix(in srgb,var(--color-brand-primary, #1a56db) 10%,#ffffff);color:var(--color-brand-primary, #1a56db)}.detecting-main .annotation-infobar__text{display:flex;flex-direction:column;gap:var(--space-1, .25rem);min-width:0}.detecting-main .annotation-infobar__label{color:var(--color-text-secondary, #495057);font-size:var(--text-xs, .75rem);line-height:1.35}.detecting-main .annotation-infobar__value{display:flex;align-items:center;min-width:0;color:var(--color-text-primary, #212529);font-size:var(--text-sm, .875rem);font-weight:600;line-height:1.35;white-space:nowrap}.detecting-main .annotation-infobar__field--batch .annotation-infobar__value,.detecting-main .annotation-infobar__field--order .annotation-infobar__value{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace}.detecting-prep-notice{padding:var(--space-3, .75rem) var(--space-4, 1rem);background:#fff9db;border:1px solid #ffe066;border-radius:var(--radius-md, 6px);color:#8a6d0b;font-size:var(--text-sm, .875rem);line-height:1.6}.detecting-status-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:var(--space-4, 1rem);align-items:stretch}.detecting-status-grid--failure{grid-template-columns:minmax(0,1fr)}.detect-progress-card,.refresh-panel,.failure-panel{background:var(--color-surface, #ffffff);border:1px solid var(--color-border, #dee2e6);border-radius:var(--radius-lg, 8px);box-shadow:var(--shadow-sm, 0 1px 2px rgb(0 0 0 / .05))}.detect-progress-card{min-width:0;padding:var(--space-5, 1.25rem)}.detect-progress-card__title{margin:0;color:var(--color-text-primary, #212529);font-size:var(--text-lg, 1.125rem);font-weight:600;line-height:1.35}.detect-progress-card__body{display:grid;grid-template-columns:minmax(220px,.42fr) minmax(0,.58fr);gap:var(--space-5, 1.25rem);align-items:center;min-height:260px}.detect-progress-card__media{min-width:0;display:flex;align-items:center;justify-content:flex-start;overflow:hidden}.detect-progress-card__image{display:block;width:min(100%,360px);height:auto;object-fit:contain}.detect-progress{min-width:0;display:flex;flex-direction:column;gap:var(--space-4, 1rem)}.detect-progress__percent{display:flex;align-items:baseline;gap:var(--space-1, .25rem);color:var(--color-brand-primary, #1a56db);line-height:1}.detect-progress__percent strong{font-size:3rem;font-weight:700}.detect-progress__percent span{font-size:var(--text-xl, 1.25rem);font-weight:700}.detect-progress__status{margin:0;color:var(--color-text-primary, #212529);font-size:var(--text-base, 1rem);font-weight:600;line-height:1.5}.detect-ellipsis{display:inline-flex;width:1.2em;justify-content:flex-start}.detect-ellipsis span{animation:detect-ellipsis 1.2s infinite ease-out;opacity:.25}.detect-ellipsis span:nth-child(2){animation-delay:.16s}.detect-ellipsis span:nth-child(3){animation-delay:.32s}.detect-progress__bar{width:100%;height:.5rem;overflow:hidden;border-radius:999px;background:var(--color-surface-muted, #f1f3f5);border:1px solid var(--color-border, #dee2e6)}.detect-progress__bar span{display:block;height:100%;min-width:.25rem;border-radius:inherit;background:var(--color-brand-primary, #1a56db);transition:width .6s var(--ease-out, ease-out)}.stage-marquee{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));width:100%;margin-top:var(--space-2, .5rem)}.stage-marquee__step{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--space-2, .5rem);min-width:0}.stage-marquee__step:not(:last-child):after{content:"";position:absolute;top:.875rem;left:calc(50% + 1.1rem);right:calc(-50% + 1.1rem);height:1px;background:var(--color-border, #dee2e6)}.stage-marquee__step--done:not(:last-child):after{background:color-mix(in srgb,var(--color-brand-primary, #1a56db) 64%,var(--color-border, #dee2e6))}.stage-marquee__dot{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;border-radius:50%;border:1px solid var(--color-border, #dee2e6);background:var(--color-surface, #ffffff);color:var(--color-text-muted, #868e96);font-size:var(--text-sm, .875rem);font-weight:600;line-height:1}.stage-marquee__step--done .stage-marquee__dot{border-color:var(--color-brand-primary, #1a56db);background:var(--color-brand-primary, #1a56db);color:var(--color-text-inverse, #ffffff)}.stage-marquee__step--active .stage-marquee__dot{border-color:var(--color-brand-primary, #1a56db);background:var(--color-brand-primary, #1a56db);color:var(--color-text-inverse, #ffffff);box-shadow:0 0 0 3px #1a56db1f}.stage-marquee__step--active:not(:last-child):after{background:linear-gradient(90deg,color-mix(in srgb,var(--color-brand-primary, #1a56db) 70%,transparent),var(--color-border, #dee2e6));background-size:160% 100%;animation:detect-stage-run 1.6s infinite linear}.stage-marquee__label{min-width:0;max-width:5.8rem;color:var(--color-text-secondary, #495057);font-size:var(--text-xs, .75rem);font-weight:500;line-height:1.35;text-align:center;white-space:normal;overflow-wrap:anywhere}.stage-marquee__step--done .stage-marquee__label,.stage-marquee__step--active .stage-marquee__label{color:var(--color-brand-primary, #1a56db)}.refresh-panel{display:flex;flex-direction:column;justify-content:space-between;gap:var(--space-5, 1.25rem);min-width:0;padding:var(--space-5, 1.25rem);background:color-mix(in srgb,var(--color-brand-primary, #1a56db) 5%,#ffffff);border-color:color-mix(in srgb,var(--color-brand-primary, #1a56db) 18%,var(--color-border, #dee2e6))}.refresh-panel__top{display:flex;align-items:center;gap:var(--space-4, 1rem);margin-top:var(--space-5, 1.25rem)}.refresh-panel__clock{flex:0 0 auto;width:4.5rem;height:4.5rem;object-fit:contain}.refresh-panel__metrics{display:flex;flex-direction:column;gap:var(--space-3, .75rem);min-width:0}.refresh-panel__metric{display:flex;flex-direction:column;gap:var(--space-1, .25rem)}.refresh-panel__label{color:var(--color-text-secondary, #495057);font-size:var(--text-sm, .875rem);line-height:1.35}.refresh-panel__value{color:var(--color-brand-primary, #1a56db);font-size:var(--text-lg, 1.125rem);font-weight:700;line-height:1.35}.refresh-panel__metric:last-child .refresh-panel__value{font-size:var(--text-sm, .875rem)}.refresh-panel__tip{padding-top:var(--space-5, 1.25rem);border-top:1px solid color-mix(in srgb,var(--color-brand-primary, #1a56db) 18%,var(--color-border, #dee2e6))}.refresh-panel__tip h3{margin:0 0 var(--space-3, .75rem);color:var(--color-text-primary, #212529);font-size:var(--text-sm, .875rem);font-weight:600;line-height:1.35}.refresh-panel__tip p{margin:0;color:var(--color-text-secondary, #495057);font-size:var(--text-sm, .875rem);line-height:1.65}.failure-panel{display:flex;flex-direction:column;align-items:center;gap:var(--space-4, 1rem);width:min(100%,560px);margin:0 auto;padding:var(--space-8, 2rem)}.failure-panel__icon{margin-bottom:var(--space-1, .25rem)}.failure-panel__title{margin:0;color:var(--color-status-failed, #e03131);font-size:var(--text-lg, 1.125rem);font-weight:600}.failure-panel__answers{width:100%;margin:0;display:grid;row-gap:var(--space-3, .75rem)}.failure-panel__answers dt{margin-bottom:2px;color:var(--color-text-secondary, #495057);font-size:var(--text-xs, .75rem);font-weight:600}.failure-panel__answers dd{margin:0 0 var(--space-2, .5rem);color:var(--color-text-primary, #212529);font-size:var(--text-sm, .875rem);line-height:1.6}.failure-panel__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-3, .75rem);margin-top:var(--space-2, .5rem)}.detect-log{flex-shrink:0;padding:0 24px;border:1px solid var(--color-border, #dee2e6);border-radius:var(--radius-lg, 8px);background:#fff;max-height:200px;overflow-y:auto}.detect-log__title{font-size:12px;font-weight:600;color:var(--color-text-secondary, #64748b);text-transform:uppercase;letter-spacing:.05em;padding:10px 0 6px;margin:0;position:sticky;top:0;background:#fff;z-index:1}.detect-log__list{list-style:none;margin:0;padding:0 0 10px;display:flex;flex-direction:column;gap:4px}.detect-log__empty{font-size:12px;color:var(--color-text-muted, #94a3b8);font-style:italic;padding:4px 0}.detect-log__entry{display:flex;gap:10px;align-items:baseline;font-size:12px;line-height:1.5}.detect-log__time{color:var(--color-text-muted, #94a3b8);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:11px;flex-shrink:0;min-width:70px}.detect-log__stage{color:var(--color-brand-primary, #1a56db);font-weight:500;flex-shrink:0;min-width:36px}.detect-log__msg{color:var(--color-text-primary, #212529)}.detecting-footer{position:fixed;right:0;bottom:0;left:0;z-index:20;min-height:var(--detecting-footer-height);display:flex;align-items:center;justify-content:center;background:var(--color-surface, #ffffff);border-top:1px solid var(--color-border, #dee2e6);box-shadow:0 -2px 8px #0000000f}.app-shell .detecting-footer{left:var(--nav-width, 220px)}.side-nav--collapsed+.app-shell__content .detecting-footer{left:var(--nav-width-collapsed, 64px)}.detecting-footer__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4, 1rem);width:100%;max-width:1280px;margin:0 auto;padding:var(--space-4, 1rem) 1.75rem;box-sizing:border-box}@keyframes detect-stage-run{0%{background-position:100% 0}to{background-position:0 0}}@keyframes detect-ellipsis{0%,20%{opacity:.25}45%,to{opacity:1}}@media(max-width:1120px){.detecting-main .annotation-infobar{grid-template-columns:repeat(3,minmax(0,1fr))}.detecting-main .annotation-infobar__field:nth-child(3):after{display:none}}@media(max-width:1080px){.detecting-status-grid{grid-template-columns:minmax(0,1fr)}.refresh-panel__top{align-items:flex-start}}@media(max-width:900px){.detecting-main .annotation-infobar{grid-template-columns:repeat(2,minmax(0,1fr))}.detecting-main .annotation-infobar__field:nth-child(2n):after{display:none}.detect-progress-card__body{grid-template-columns:minmax(0,1fr);gap:var(--space-5, 1.25rem)}.detect-progress-card__image{width:min(100%,300px)}}@media(max-width:640px){.detecting-main{--detecting-footer-height: 8.75rem}.detecting-page__breadcrumb-bar{padding:var(--space-4, 1rem)}.detecting-page__body{padding:0 var(--space-4, 1rem) calc(var(--detecting-footer-height) + var(--space-5, 1.25rem))}.detecting-page__steps{overflow-x:auto;grid-template-columns:repeat(6,minmax(6.5rem,1fr));width:100%;padding-bottom:var(--space-2, .5rem)}.detecting-main .annotation-infobar{grid-template-columns:minmax(0,1fr)}.detecting-main .annotation-infobar__field:after{display:none}.detecting-main .annotation-infobar__field:not(:last-child){border-bottom:1px solid var(--color-border, #dee2e6)}.stage-marquee{overflow-x:auto;grid-template-columns:repeat(5,minmax(7rem,1fr));padding-bottom:var(--space-2, .5rem)}.refresh-panel__top{flex-direction:column}.detecting-footer__inner{flex-direction:column;align-items:stretch}.detecting-footer .btn{width:100%}}@media(prefers-reduced-motion:reduce){.stage-marquee__step--active:not(:last-child):after,.detect-ellipsis span{animation:none}.detect-progress__bar span{transition:none}}.annot-edit-root{display:flex;flex-direction:column;min-width:0;flex:1;position:relative}.annot-edit-toolbar{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:#fff;border-bottom:1px solid var(--color-border, #e2e8f0)}.annot-edit-toolbar__btn{font-size:.8125rem;font-weight:600;padding:.4rem .85rem;border-radius:6px;border:1px solid transparent;cursor:pointer;transition:background var(--duration-fast, .15s) ease,border-color var(--duration-fast, .15s) ease,color var(--duration-fast, .15s) ease,opacity var(--duration-fast, .15s) ease}.annot-edit-toolbar__btn:disabled{opacity:.5;cursor:not-allowed}.annot-edit-toolbar__btn--primary{background:var(--color-accent, #1a56db);color:#fff}.annot-edit-toolbar__btn--primary:hover:not(:disabled){background:#1648b8}.annot-edit-toolbar__btn--success{background:var(--color-status-report-ready, #2f9e44);color:#fff}.annot-edit-toolbar__btn--success:hover:not(:disabled){background:#2b8a3e}.annot-edit-toolbar__btn--danger{background:#fff;color:#e03131;border-color:#f3c0c0}.annot-edit-toolbar__btn--danger:hover:not(:disabled){background:#fff5f5;border-color:#e03131}.annot-edit-toolbar__btn--ghost{background:#fff;color:var(--color-text-secondary, #64748b);border-color:var(--color-border, #e2e8f0)}.annot-edit-toolbar__btn--ghost:hover:not(:disabled){background:#f8fafc;border-color:#94a3b8;color:var(--color-text, #0f172a)}.annot-edit-stage{flex:1;min-height:0;display:flex;overflow:hidden}.annot-edit-stage>.annotation-canvas-pane{flex:1}.annot-edit-hint{position:absolute;left:50%;bottom:1.25rem;transform:translate(-50%);background:#0f172adb;color:#fff;font-size:.8125rem;padding:.5rem 1rem;border-radius:999px;pointer-events:none;z-index:5}.annot-edit-manual-list{list-style:none;margin:0;padding:.5rem .75rem;display:flex;flex-direction:column;gap:.35rem;max-height:160px;overflow-y:auto;border-top:1px solid var(--color-border, #e2e8f0);background:#fff}.annot-edit-manual-item{display:flex;flex-direction:column;gap:.3rem;padding:.45rem .6rem;border-radius:6px;border:1px dashed #7048e8;background:#7048e80a;cursor:pointer;font-size:.8125rem}.annot-edit-manual-item:hover{background:#7048e81a}.annot-edit-manual-item.selected{background:#7048e829;box-shadow:0 0 0 1px #7048e8 inset}.annot-edit-manual-item__head{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem}.annot-edit-manual-item__label{font-weight:700;color:#7048e8}.annot-edit-manual-item__category{font-size:.75rem;color:var(--color-text, #0f172a);font-weight:600}.annot-edit-manual-item__severity-tag{font-size:.65rem;font-weight:600;padding:.1em .4em;border-radius:3px;flex-shrink:0}.annot-edit-manual-item__src{font-size:.6875rem;color:#7048e8;background:#7048e81f;padding:.1rem .4rem;border-radius:4px;margin-left:auto}.annot-edit-manual-item__desc{font-size:.78rem;color:var(--color-text, #0f172a);line-height:1.4;word-break:break-word}.annot-edit-manual-item__suggest{font-size:.78rem;color:#2f9e44;line-height:1.4;word-break:break-word}.annot-edit-manual-item__suggest-label{font-weight:600;color:var(--color-text-secondary, #64748b)}.annot-edit-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-start;justify-content:flex-end;padding:1rem;background:#0f172a2e;z-index:20;overflow-y:auto}.annot-edit-overlay--add{background:#0f172ab3;border-radius:var(--radius-lg, 8px)}.annot-edit-overlay--passive{background:transparent;pointer-events:none}.annot-edit-overlay--passive>*{pointer-events:auto}.annot-edit-overlay--center{align-items:center;justify-content:center}.annot-correct-hint{position:fixed;top:60px;left:50%;transform:translate(-50%);max-width:min(92%,560px);display:flex;align-items:center;gap:var(--space-3, .75rem);background:#fff8e6;border:1px solid #f2c078;color:#7a4a12;font-size:.78rem;font-weight:600;line-height:1.5;padding:.55rem .65rem .55rem .9rem;border-radius:var(--radius-lg, 8px);pointer-events:auto;z-index:90;text-align:left;box-shadow:0 10px 26px #7a4a1224}.annot-correct-hint__text{min-width:0}.annot-correct-hint__close{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:1.45rem;height:1.45rem;border:1px solid transparent;border-radius:var(--radius-sm, 4px);background:transparent;color:#8a5a18;cursor:pointer;transition:background var(--duration-fast, .15s) ease,border-color var(--duration-fast, .15s) ease}.annot-correct-hint__close:hover,.annot-correct-hint__close:focus-visible{outline:none;background:#fff1c2;border-color:#e2a44a}.annot-confirm-dialog{width:360px;max-width:100%;max-height:100%;overflow-y:auto;background:#fff;border-radius:12px;box-shadow:0 16px 48px #0f172a47;padding:1.5rem 1.5rem 1.25rem;display:flex;flex-direction:column;align-items:center;gap:.6rem;text-align:center}.annot-confirm-dialog__icon{width:44px;height:44px;border-radius:50%;background:#ebfbee;color:#2f9e44;border:2px solid #b2f2bb;font-size:1.4rem;font-weight:700;display:flex;align-items:center;justify-content:center}.annot-confirm-dialog__title{font-size:1.05rem;font-weight:700;color:var(--color-text, #0f172a)}.annot-confirm-dialog__text{font-size:.82rem;color:var(--color-text-secondary, #64748b);line-height:1.6}.annot-confirm-dialog__actions{display:flex;gap:.6rem;margin-top:.5rem}.annot-edit-form,.annot-delete-dialog{width:320px;max-width:100%;background:#fff;border-radius:10px;box-shadow:0 12px 36px #0f172a38;padding:1rem 1.1rem;display:flex;flex-direction:column;gap:.7rem;max-height:100%;min-height:0}.annot-edit-form__body{display:flex;flex-direction:column;gap:.7rem;flex:1;min-height:0;overflow-y:auto}.annot-edit-form__title,.annot-delete-dialog__title{font-size:.95rem;font-weight:700;color:var(--color-text, #0f172a)}.annot-edit-form__field{display:flex;flex-direction:column;gap:.3rem}.annot-edit-form__label,.annot-delete-dialog__label{font-size:.75rem;color:var(--color-text-secondary, #64748b);font-weight:600}.annot-edit-form__required,.annot-delete-dialog__required{color:#e03131}.annot-edit-form__select,.annot-edit-form__textarea,.annot-delete-dialog__textarea{width:100%;font:inherit;font-size:.8125rem;padding:.45rem .6rem;border:1px solid var(--color-border, #e2e8f0);border-radius:6px;background:#fff;color:var(--color-text, #0f172a);resize:vertical}.annot-edit-form__select:focus,.annot-edit-form__textarea:focus,.annot-delete-dialog__textarea:focus{outline:none;border-color:var(--color-accent, #1a56db);box-shadow:0 0 0 3px #1a56db26}.annot-edit-form__actions,.annot-delete-dialog__actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.25rem}.annot-edit-form__btn,.annot-delete-dialog__btn{font-size:.8125rem;font-weight:600;padding:.45rem .95rem;border-radius:6px;border:1px solid transparent;cursor:pointer}.annot-edit-form__btn:disabled,.annot-delete-dialog__btn:disabled{opacity:.5;cursor:not-allowed}.annot-edit-form__btn--ghost,.annot-delete-dialog__btn--ghost{background:#fff;color:var(--color-text-secondary, #64748b);border-color:var(--color-border, #e2e8f0)}.annot-edit-form__btn--primary{background:var(--color-accent, #1a56db);color:#fff}.annot-delete-dialog__btn--danger{background:#e03131;color:#fff}.annot-delete-dialog__btn--danger:hover:not(:disabled){background:#c92a2a}.annot-delete-dialog__hint{font-size:.78rem;color:var(--color-text-secondary, #64748b);margin:0;line-height:1.5}.annot-edit-error{margin:.5rem .75rem;padding:.5rem .75rem;border-radius:6px;background:#fff5f5;border:1px solid #f3c0c0;color:#c92a2a;font-size:.8125rem}.annot-add-mode-banner{width:100%;height:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3, .75rem);padding:0 .85rem;background:#0f172acc;color:var(--color-text-inverse, #ffffff);border-radius:var(--radius-lg, 8px) var(--radius-lg, 8px) 0 0}.annot-add-mode-banner__title{min-width:0;font-size:.8rem;font-weight:700;white-space:nowrap}.annot-add-mode-banner__cancel{display:inline-flex;align-items:center;justify-content:center;height:1.55rem;padding:.12rem .5rem;border-radius:9999px;border:1px solid #ffc9c9;background:#fff5f5;color:#c92a2a;font-size:.72rem;font-weight:600;white-space:nowrap;cursor:pointer;transition:background var(--duration-fast, .15s) ease,border-color var(--duration-fast, .15s) ease}.annot-add-mode-banner__cancel:hover,.annot-add-mode-banner__cancel:focus-visible{outline:none;background:#ffe3e3;border-color:#ffa8a8}.annot-edit-form__counter{float:right;font-weight:400;color:var(--color-text-secondary, #94a3b8);font-size:.68rem}.annot-edit-form__label{display:block}.annot-edit-form__textarea--readonly{background:#f1f5f9;color:var(--color-text-secondary, #64748b);resize:none;cursor:default}.annot-edit-form__index{font-size:.75rem;color:var(--color-text-secondary, #64748b);padding-bottom:.2rem;border-bottom:1px solid var(--color-border, #f1f5f9)}.annot-edit-form__btn--danger-ghost{background:#fff;color:#e03131;border-color:#f3c0c0;margin-right:auto}.annot-edit-form__btn--danger-ghost:hover:not(:disabled){background:#fff5f5;border-color:#e03131}.annot-history{border-top:1px solid var(--color-border, #e2e8f0);padding-top:.6rem;display:flex;flex-direction:column;gap:.45rem}.annot-history__title{font-size:.85rem;font-weight:700;color:var(--color-text, #0f172a)}.annot-history__table{width:100%;border-collapse:collapse;font-size:.72rem}.annot-history__table th{text-align:left;font-weight:600;color:var(--color-text-secondary, #64748b);background:#f8fafc;padding:.35rem .45rem;border-bottom:1px solid var(--color-border, #e2e8f0);white-space:nowrap}.annot-history__table td{padding:.35rem .45rem;color:var(--color-text, #1e293b);border-bottom:1px solid var(--color-border, #f1f5f9);word-break:break-word}.annot-history__note{font-size:.7rem;color:var(--color-text-secondary, #94a3b8);text-align:center;padding:.15rem 0}.annotation-root{--annotation-footer-height: 5rem;display:flex;flex-direction:column;flex:1;min-height:calc(100vh - var(--header-height, 56px));width:100%;overflow:hidden;background:var(--color-surface-subtle, #f8f9fa);color:var(--color-text-primary, #212529);font-family:var(--font-sans, system-ui, sans-serif)}.annotation-page__breadcrumb-bar{flex-shrink:0;padding:1rem 1.75rem;background:var(--color-surface, #ffffff);border-bottom:1px solid var(--color-border, #dee2e6)}.annotation-page__body{flex:1;min-height:0;width:100%;max-width:1280px;margin:0 auto;padding:0 1.75rem calc(var(--annotation-footer-height) + var(--space-8, 2rem));box-sizing:border-box;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-4, 1rem)}.annotation-page__body--state{min-height:0}.annotation-page__steps{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));align-items:start;gap:0;width:min(100%,980px);margin:var(--space-6, 1.5rem) auto var(--space-4, 1rem);padding:0;list-style:none}.annotation-page__step{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--space-2, .5rem);min-width:0}.annotation-page__step:not(:last-child):after{content:"";position:absolute;top:1rem;left:calc(50% + 1.375rem);right:calc(-50% + 1.375rem);height:1px;background:var(--color-border, #dee2e6)}.annotation-page__step--active:not(:last-child):after,.annotation-page__step--done:not(:last-child):after{background:var(--color-brand-primary, #1a56db)}.annotation-page__step-num{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:1px solid var(--color-border, #dee2e6);border-radius:50%;background:var(--color-surface, #ffffff);color:var(--color-text-muted, #868e96);font-size:var(--text-sm, .875rem);font-weight:600;line-height:1}.annotation-page__step-label{color:var(--color-text-secondary, #495057);font-size:var(--text-sm, .875rem);font-weight:500;line-height:1.35;text-align:center;white-space:nowrap}.annotation-page__step--active .annotation-page__step-num{border-color:var(--color-brand-primary, #1a56db);background:var(--color-brand-primary, #1a56db);color:var(--color-text-inverse, #ffffff);box-shadow:0 0 0 3px #1a56db1f}.annotation-page__step--active .annotation-page__step-label{color:var(--color-brand-primary, #1a56db);font-weight:600}.annotation-page__step--done .annotation-page__step-num{border-color:var(--color-status-report-ready, #2f9e44);background:var(--color-status-report-ready, #2f9e44);color:var(--color-text-inverse, #ffffff)}.annotation-infobar{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) minmax(0,.9fr) minmax(0,.9fr) minmax(0,.82fr);background:var(--color-surface, #ffffff);border:1px solid var(--color-border, #dee2e6);border-radius:var(--radius-lg, 8px);box-shadow:var(--shadow-sm, 0 1px 2px rgb(0 0 0 / .05));overflow:hidden}.annotation-infobar--units{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) minmax(0,.9fr) minmax(0,.9fr) minmax(0,.82fr) minmax(0,1.05fr)}.annotation-infobar__field{position:relative;display:flex;align-items:center;gap:var(--space-3, .75rem);min-width:0;padding:var(--space-4, 1rem) var(--space-4, 1rem)}.annotation-infobar__field:not(:last-child){padding-right:var(--space-7, 1.75rem)}.annotation-infobar__field:not(:last-child):after{content:"";position:absolute;top:var(--space-4, 1rem);right:var(--space-3, .75rem);bottom:var(--space-4, 1rem);width:1px;background:var(--color-border, #dee2e6)}.annotation-infobar__icon{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:var(--radius-lg, 8px);background:color-mix(in srgb,var(--color-brand-primary, #1a56db) 10%,#ffffff);color:var(--color-brand-primary, #1a56db)}.annotation-infobar__text{display:flex;flex-direction:column;gap:var(--space-1, .25rem);min-width:0}.annotation-infobar__label{color:var(--color-text-secondary, #495057);font-size:var(--text-xs, .75rem);line-height:1.35}.annotation-infobar__value{display:flex;align-items:center;min-width:0;color:var(--color-text-primary, #212529);font-size:var(--text-sm, .875rem);font-weight:600;line-height:1.35;white-space:nowrap}.annotation-infobar__field--batch .annotation-infobar__value,.annotation-infobar__field--order .annotation-infobar__value{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace}.annotation-pager{display:inline-flex;align-items:center;gap:.4rem}.annotation-pager__btn{width:1.5rem;height:1.5rem;border-radius:4px;border:1px solid var(--color-border, #e2e8f0);background:#fff;color:var(--color-text-secondary, #64748b);font-size:.9rem;line-height:1;cursor:pointer;transition:background .15s ease,border-color .15s ease}.annotation-pager__btn:hover:not(:disabled){background:#f1f5f9;border-color:#94a3b8}.annotation-pager__btn:disabled{opacity:.4;cursor:not-allowed}.annotation-pager__current{min-width:1.75rem;text-align:center;padding:.1rem .35rem;border:1px solid var(--color-border, #e2e8f0);border-radius:4px;background:#fff}.annotation-pager__total{color:var(--color-text-secondary, #64748b);font-weight:400;font-size:.8rem}.annotation-body{display:flex;flex:1 1 auto;overflow:hidden;margin:0;gap:.6rem;min-height:560px;overflow-x:auto}.annotation-thumb-rail{width:148px;flex-shrink:0;background:#fff;border:1px solid var(--color-border, #e2e8f0);border-radius:8px;overflow:hidden;display:flex;flex-direction:column;transition:width var(--duration-fast, .15s) ease}.annotation-thumb-rail--collapsed{width:2.75rem}.annotation-thumb-rail__header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.55rem .75rem;background:#fff;border:none;border-bottom:1px solid var(--color-border, #f1f5f9);font-size:.78rem;font-weight:600;color:var(--color-text, #1e293b);min-height:2.4rem}.annotation-thumb-rail--collapsed .annotation-thumb-rail__header{justify-content:center;padding:.5rem 0;border-bottom:none}.annotation-thumb-rail__collapse{display:inline-flex;align-items:center;justify-content:center;width:1.65rem;height:1.65rem;border:1px solid transparent;border-radius:var(--radius-md, 6px);background:transparent;color:var(--color-text-secondary, #64748b);cursor:pointer;transition:background var(--duration-fast, .15s) ease,border-color var(--duration-fast, .15s) ease,color var(--duration-fast, .15s) ease}.annotation-thumb-rail__collapse:hover,.annotation-thumb-rail__collapse:focus-visible{background:#eff6ff;border-color:#1a56db3d;color:var(--color-brand-primary, #1a56db);outline:none}.annotation-thumb-rail__chevron{color:var(--color-text-secondary, #94a3b8);font-size:.7rem}.annotation-thumb-rail__list{flex:1;overflow-y:auto;display:flex;flex-direction:column;align-items:center;padding:.6rem;gap:.6rem}.annotation-thumb-rail__pager{flex-shrink:0;display:flex;align-items:center;justify-content:center;padding:.55rem .45rem;border-top:1px solid var(--color-border, #f1f5f9);background:#fff}.annotation-thumb-rail__item{position:relative;width:104px;min-height:96px;border-radius:6px;background:#f8fafc;border:2px solid var(--color-border, #e2e8f0);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:.3rem;transition:border-color .15s ease,box-shadow .15s ease}.annotation-thumb-rail__item:hover{border-color:#94a3b8}.annotation-thumb-rail__item.active{border-color:var(--color-primary, #1a56db);box-shadow:0 0 0 2px #1a56db2e}.annotation-thumb-rail__index{position:absolute;top:-8px;left:-8px;width:20px;height:20px;border-radius:50%;background:var(--color-primary, #1a56db);color:#fff;font-size:.7rem;font-weight:700;display:flex;align-items:center;justify-content:center;z-index:1}.annotation-thumb-rail__count{position:absolute;top:-7px;right:-7px;min-width:18px;height:18px;padding:0 4px;border-radius:9999px;background:var(--color-severity-critical, #e03131);color:#fff;font-size:.65rem;font-weight:700;display:flex;align-items:center;justify-content:center;z-index:1}.annotation-thumb-rail__img{max-width:100%;max-height:120px;object-fit:contain;border-radius:3px}.annotation-thumb-rail__placeholder{font-size:.75rem;font-weight:600;color:var(--color-text-secondary, #94a3b8);padding:1.6rem 0}.annotation-canvases-col{flex:1;display:flex;flex-direction:column;gap:.6rem;overflow:hidden;min-width:520px}.annotation-canvases{flex:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:minmax(0,1fr);gap:.6rem;overflow:hidden;min-height:0}.annotation-canvases-bottom{flex-shrink:0;display:flex;flex-direction:column;gap:.4rem;max-height:30%;overflow-y:auto}.annotation-canvases-bottom:empty{display:none}.annotation-canvases-bottom .annot-edit-manual-list{border-top:none;border:1px solid var(--color-border, #e2e8f0);border-radius:8px}.annotation-canvases-bottom .annot-edit-error{margin:0}.annotation-canvas-pane{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0;background:#fff;border:1px solid var(--color-border, #e2e8f0);border-radius:8px}.annotation-canvas-pane__label{position:relative;display:flex;align-items:center;justify-content:space-between;gap:.5rem;height:38px;box-sizing:border-box;padding:0 .85rem;font-size:.8rem;font-weight:600;color:var(--color-text, #1e293b);background:#fff;border-bottom:1px solid var(--color-border, #e2e8f0);flex-shrink:0}.annotation-canvas-pane__label-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2}.annotation-sync-badge{display:inline-flex;align-items:center;gap:.25rem;font-size:.72rem;font-weight:600;color:#2f9e44;background:#ebfbee;border:1px solid #b2f2bb;padding:.12rem .5rem;border-radius:9999px;white-space:nowrap}.annotation-canvas-pane__zoom{display:flex;align-items:center;gap:.25rem;flex-shrink:0}.annotation-canvas-pane__zoom-btn{min-width:1.6rem;height:1.6rem;padding:0 .4rem;border-radius:4px;border:1px solid var(--color-border, #e2e8f0);background:#fff;color:var(--color-text-secondary, #64748b);font-size:.75rem;font-weight:700;line-height:1;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.annotation-canvas-pane__zoom-btn:hover:not(:disabled){background:#f1f5f9;border-color:#94a3b8;color:var(--color-text, #0f172a)}.annotation-canvas-pane__zoom-btn:disabled{opacity:.4;cursor:not-allowed}.annotation-canvas-pane__zoom-btn--label{min-width:2.75rem;font-weight:600}.annotation-canvas-pane__zoom-btn--text{min-width:auto;font-weight:600;white-space:nowrap}.annotation-canvas-pane__content{flex:1;overflow:hidden;position:relative;background:#eef2f8;display:flex;align-items:center;justify-content:center}.annotation-canvas-pane__content--scrollable{overflow:auto;align-items:flex-start}.annotation-canvas-pane__content--synced,.annotation-canvas-pane__content--orig{overflow:hidden;align-items:flex-start;justify-content:flex-start}.annotation-orig-transform{position:relative;flex-shrink:0;will-change:transform}.annotation-mirror-shape{position:absolute;--anno-scale: 1;border:calc(2px * var(--anno-scale)) dashed currentColor;border-radius:calc(4px * var(--anno-scale));pointer-events:none;box-sizing:border-box}.annotation-mirror-shape--selected{border-style:solid;border-width:calc(3px * var(--anno-scale));box-shadow:0 0 0 calc(3px * var(--anno-scale)) #1a56db40;background:#1a56db14}.annotation-mirror-shape__label{position:absolute;bottom:100%;left:0;transform:scale(var(--anno-scale, 1));transform-origin:left bottom;margin-bottom:2px;min-width:16px;height:16px;padding:0 3px;border-radius:50%;color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1;box-shadow:0 0 0 1.5px #fff,0 1px 3px #0f172a73}.annotation-canvas-pane__content--pannable{cursor:grab}.annotation-canvas-pane__content--pannable:active,.annotation-canvas-pane__content--panning{cursor:grabbing}.annotation-orig-image{width:100%;display:block;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.annotation-orig-embed{width:100%;height:100%;border:none}.annotation-orig-pdf-note{position:absolute;left:50%;bottom:.5rem;transform:translate(-50%);font-size:.7rem;color:var(--color-text-secondary, #64748b);background:#ffffffeb;border:1px solid var(--color-border, #e2e8f0);border-radius:9999px;padding:.15rem .7rem;white-space:nowrap}.annotation-orig-placeholder{color:#94a3b8;font-size:.8rem;margin:auto}.annotation-defect-panel{width:320px;flex-shrink:0;background:#fff;border:1px solid var(--color-border, #e2e8f0);border-radius:8px;display:flex;flex-direction:column;overflow:hidden;transition:width var(--duration-fast, .15s) ease}.annotation-defect-panel--collapsed{width:2.75rem}.defect-panel__header{padding:.6rem 1rem;font-size:.875rem;font-weight:600;color:var(--color-text, #1e293b);border-bottom:1px solid var(--color-border, #e2e8f0);display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-shrink:0}.annotation-defect-panel--collapsed .defect-panel__header{justify-content:center;padding:.55rem 0;border-bottom:none}.defect-panel__title-wrap{display:inline-flex;align-items:center;gap:.25rem;min-width:0}.defect-panel__title{white-space:nowrap}.defect-panel__collapse{display:inline-flex;align-items:center;justify-content:center;width:1.65rem;height:1.65rem;border:1px solid transparent;border-radius:var(--radius-md, 6px);background:transparent;color:var(--color-text-secondary, #64748b);cursor:pointer;transition:background var(--duration-fast, .15s) ease,border-color var(--duration-fast, .15s) ease,color var(--duration-fast, .15s) ease}.defect-panel__collapse:hover,.defect-panel__collapse:focus-visible{background:#eff6ff;border-color:#1a56db3d;color:var(--color-brand-primary, #1a56db);outline:none}.defect-panel__tabs{display:flex;gap:.35rem;padding:.5rem .75rem;border-bottom:1px solid var(--color-border, #f1f5f9);flex-shrink:0;overflow-x:auto}.defect-panel__tab{font-size:.72rem;font-weight:600;padding:.28rem .55rem;border-radius:6px;border:1px solid var(--color-border, #e2e8f0);background:#fff;color:var(--color-text-secondary, #64748b);cursor:pointer;white-space:nowrap;transition:background .15s ease,border-color .15s ease,color .15s ease}.defect-panel__tab:hover{border-color:#94a3b8;color:var(--color-text, #0f172a)}.defect-panel__tab.active{border-color:var(--color-primary, #1a56db);color:var(--color-primary, #1a56db);background:#eff6ff}.defect-panel__list{box-sizing:border-box;max-height:540px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;-ms-overflow-style:none;padding:.25rem 0 .5rem}.defect-panel__list::-webkit-scrollbar{display:none}.defect-panel__empty{padding:1.5rem 1rem;text-align:center;font-size:.8rem;color:var(--color-text-secondary, #94a3b8)}.defect-panel__footer{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.55rem 1rem;border-top:1px solid var(--color-border, #e2e8f0);font-size:.78rem;color:var(--color-text-secondary, #64748b);flex-shrink:0}.defect-panel__export{border:none;background:none;color:var(--color-primary, #1a56db);font-size:.78rem;font-weight:600;cursor:pointer;padding:.2rem .3rem;border-radius:4px}.defect-panel__export:hover{background:#eff6ff}.defect-item{display:flex;gap:.6rem;padding:.6rem .9rem;cursor:pointer;border-bottom:1px solid var(--color-border, #f1f5f9);transition:background .1s ease}.defect-item:hover{background:#f8fafc}.defect-item.selected{background:#eff6ff;box-shadow:inset 2px 0 0 var(--color-primary, #1a56db)}.defect-item--manual{background:#7048e809}.defect-item--manual:hover{background:#7048e813}.defect-item--manual.selected{background:#7048e81f;box-shadow:inset 2px 0 #7048e8}.defect-item--manual .defect-item__seq{width:26px;border-radius:999px;font-size:.62rem;letter-spacing:0}.defect-item__seq{width:22px;height:22px;border-radius:50%;color:#fff;font-size:.7rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}.defect-item__seq--severe{background:var(--color-severity-critical, #e03131)}.defect-item__seq--normal{background:var(--color-severity-normal, #b45309)}.defect-item__seq--hint{background:var(--color-severity-hint, #64748b)}.defect-item__body{flex:1;min-width:0}.defect-item__head{display:flex;align-items:center;gap:.4rem;margin-bottom:.2rem;min-width:0}.defect-item__category{font-size:.8rem;font-weight:600;color:var(--color-text, #1e293b);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.defect-item__unknown{font-size:.62rem;font-weight:600;color:#9a3412;background:#ffedd5;border-radius:3px;padding:.08em .35em;flex-shrink:0}.defect-item__page{margin-left:auto;font-size:.7rem;color:var(--color-text-secondary, #94a3b8);flex-shrink:0}.defect-item__message{font-size:.76rem;color:var(--color-text-secondary, #475569);line-height:1.45;word-break:break-word}.defect-item__manual-suggest{margin-top:.25rem;font-size:.76rem;line-height:1.45;color:#2f9e44;word-break:break-word}.defect-item__manual-suggest-label{color:var(--color-text-secondary, #64748b);font-weight:600}.defect-item__severity-tag{font-size:.65rem;font-weight:600;padding:.1em .4em;border-radius:3px;flex-shrink:0}.severity-tag--severe{background:#fde8e8;color:var(--color-severity-critical, #e03131)}.severity-tag--normal{background:#fff4e0;color:var(--color-severity-normal, #b45309)}.severity-tag--hint{background:#eef2f7;color:#526075}.defect-item__details{margin-top:.3rem}.defect-item__details summary{font-size:.7rem;color:var(--color-primary, #1a56db);cursor:pointer;-webkit-user-select:none;user-select:none;width:fit-content}.defect-item__details ul{margin:.3rem 0 0;padding:.4rem .6rem;list-style:none;background:#f8fafc;border-radius:6px;display:flex;flex-direction:column;gap:.2rem}.defect-item__details li{font-size:.7rem;color:var(--color-text-secondary, #64748b);word-break:break-all}.defect-fold__toggle{width:100%;display:flex;align-items:center;gap:.5rem;padding:.6rem 1rem;background:#f8fafc;border:none;cursor:pointer;font:inherit;color:var(--color-text-secondary, #64748b);transition:background .1s ease}.defect-fold__toggle:hover{background:#f1f5f9}.defect-fold__chevron{font-size:.7rem;width:.8rem;flex-shrink:0}.defect-fold__title{flex:1;text-align:left;font-size:.8rem;font-weight:600}.defect-fold__badge{font-size:.7rem;font-weight:600;background:var(--color-severity-review, #1a56db);color:#fff;padding:.1em .5em;border-radius:9999px;flex-shrink:0}.defect-fold__list{background:#fbfcfe}.view-toolbar{display:flex;align-items:center;justify-content:center;gap:.75rem;margin:.6rem 1.25rem 0;padding:.3rem 1rem;background:#fff;border:1px solid var(--color-border, #e2e8f0);border-radius:8px;flex-shrink:0;overflow-x:auto}.annotation-footer .view-toolbar{justify-content:flex-start;margin:0;padding:0;background:transparent;border:none;border-radius:0;overflow:visible}.view-toolbar__group{display:flex;align-items:center;gap:.15rem}.view-toolbar__btn{display:flex;flex-direction:column;align-items:center;gap:.12rem;min-width:3.2rem;padding:.3rem .45rem;border:1px solid transparent;border-radius:6px;background:none;color:var(--color-text-secondary, #64748b);cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.view-toolbar__btn:hover{background:#f1f5f9;color:var(--color-text, #0f172a)}.view-toolbar__btn--active{color:var(--color-primary, #1a56db);background:#eff6ff;border-color:#1a56db59}.view-toolbar__icon{display:flex;align-items:center;justify-content:center}.view-toolbar__label{font-size:.66rem;font-weight:600;white-space:nowrap}.view-toolbar__percent{min-width:3rem;text-align:center;font-size:.75rem;font-weight:600;color:var(--color-text, #1e293b);border:1px solid var(--color-border, #e2e8f0);border-radius:6px;padding:.3rem .4rem;margin:0 .2rem}.view-toolbar__divider{width:1px;height:1.6rem;background:var(--color-border, #e2e8f0);flex-shrink:0}.view-toolbar__sync{display:flex;align-items:center;gap:.45rem;color:var(--color-text-secondary, #64748b);cursor:pointer}.view-toolbar__switch{position:relative;width:34px;height:18px;border-radius:9999px;border:none;background:#cbd5e1;cursor:pointer;padding:0;transition:background .15s ease}.view-toolbar__switch--on{background:var(--color-primary, #1a56db)}.view-toolbar__switch-knob{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;transition:transform .15s ease}.view-toolbar__switch--on .view-toolbar__switch-knob{transform:translate(16px)}.view-toolbar__help{position:relative;display:inline-flex;align-items:center;flex-shrink:0}.view-toolbar__help-trigger{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;padding:0;border:1px solid transparent;border-radius:50%;background:transparent;color:var(--color-text-secondary, #64748b);cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.view-toolbar__help-trigger:hover,.view-toolbar__help-trigger:focus-visible{background:#eff6ff;border-color:#1a56db47;color:var(--color-primary, #1a56db);outline:none}.view-toolbar__help-card{position:absolute;right:0;bottom:calc(100% + 2rem);z-index:60;width:max-content;max-width:24rem;padding:.65rem .8rem;border:1px solid var(--color-border, #e2e8f0);border-radius:var(--radius-md, 6px);background:var(--color-surface, #ffffff);box-shadow:0 8px 24px #0f172a1f;color:var(--color-text-primary, #212529);font-size:var(--text-sm, .875rem);line-height:1.55;white-space:normal;pointer-events:none;opacity:0;transform:translateY(4px);transition:opacity .15s ease,transform .15s ease}.view-toolbar__help-card--warning{border-color:#f2c078;background:#fff8e6;color:#7a4a12;box-shadow:0 8px 22px #7a4a1224}.view-toolbar__help:hover .view-toolbar__help-card,.view-toolbar__help:focus-within .view-toolbar__help-card,.view-toolbar__help--open .view-toolbar__help-card{opacity:1;transform:translateY(0)}@media(prefers-reduced-motion:reduce){.view-toolbar__switch-knob,.view-toolbar__switch,.view-toolbar__btn,.view-toolbar__help-trigger,.view-toolbar__help-card,.defect-item,.annotation-thumb-rail__item{transition:none}}.annotation-footer{position:fixed;right:0;bottom:0;left:0;z-index:20;min-height:var(--annotation-footer-height);display:flex;align-items:center;justify-content:center;background:var(--color-surface, #ffffff);border-top:1px solid var(--color-border, #dee2e6);box-shadow:0 -2px 8px #0000000f;overflow:visible}.app-shell .annotation-footer{left:var(--nav-width, 220px)}.side-nav--collapsed+.app-shell__content .annotation-footer{left:var(--nav-width-collapsed, 64px)}.annotation-footer__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4, 1rem);width:100%;max-width:1280px;margin:0 auto;padding:var(--space-3, .75rem) 1.75rem;box-sizing:border-box;overflow:visible}.annotation-footer__toolbar{flex:1 1 auto;min-width:0;overflow:visible;padding:.15rem 0}.annotation-footer__actions{display:flex;align-items:center;justify-content:flex-end;flex:0 0 auto;min-width:0}.annotation-footer__actions .annot-edit-toolbar{background:transparent;border-bottom:none;padding:0;gap:.6rem}.annotation-state-center{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:1rem;color:var(--color-text-secondary, #64748b);font-size:.875rem}.error-box{background:#fde8e8;color:var(--color-severity-critical, #e03131);padding:1rem 1.5rem;border-radius:8px;text-align:center;max-width:320px}.no-result-box{background:#f8fafc;border:1px dashed var(--color-border, #cbd5e1);padding:2rem;border-radius:8px;text-align:center;color:var(--color-text-secondary, #64748b)}.units-overview{width:208px;flex-shrink:0;background:#fff;border:1px solid var(--color-border, #e2e8f0);border-radius:8px;overflow:hidden;display:flex;flex-direction:column}.units-overview__header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.55rem .75rem;border-bottom:1px solid var(--color-border, #f1f5f9);font-size:.78rem;font-weight:600;color:var(--color-text, #1e293b)}.units-overview__count{font-size:.7rem;color:var(--color-text-secondary, #94a3b8)}.units-overview__stage{position:relative;margin:.6rem;flex:1;min-height:0;overflow-y:auto}.units-overview__img{width:100%;display:block;border-radius:4px;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.units-overview__placeholder{padding:2rem .5rem;text-align:center;font-size:.72rem;color:var(--color-text-secondary, #94a3b8);background:#f8fafc;border:1px dashed var(--color-border, #cbd5e1);border-radius:4px}.units-overview__boxes{position:absolute;top:0;right:0;bottom:0;left:0}.units-overview__box{position:absolute;border:1.5px solid rgba(26,86,219,.65);background:#1a56db0f;border-radius:2px;cursor:pointer;padding:0;transition:border-color .15s ease,background .15s ease}.units-overview__box:hover{border-color:var(--color-primary, #1a56db);background:#1a56db24}.units-overview__box.active{border:2.5px solid var(--color-primary, #1a56db);background:#1a56db2e;box-shadow:0 0 0 2px #1a56db40}.units-overview__box.unpaired{border-style:dashed;border-color:#94a3b8;background:#94a3b814;cursor:not-allowed}.units-overview__box-label{position:absolute;top:2px;left:2px;font-size:.6rem;font-weight:700;color:#fff;background:#1a56dbe6;border-radius:3px;padding:0 4px;line-height:1.5;white-space:nowrap;max-width:calc(100% - 4px);overflow:hidden;text-overflow:ellipsis}.units-overview__box.active .units-overview__box-label{background:var(--color-primary, #1a56db)}.units-overview__box-count{position:absolute;top:-7px;right:-7px;min-width:17px;height:17px;padding:0 4px;border-radius:9999px;background:var(--color-severity-critical, #e03131);color:#fff;font-size:.62rem;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 1.5px #fff}.defect-panel__unit-filter{margin-left:auto;font-size:.72rem;font-weight:600;padding:.26rem .4rem;border-radius:6px;border:1px solid var(--color-border, #e2e8f0);background:#fff;color:var(--color-text-secondary, #64748b);cursor:pointer;max-width:9rem}.defect-panel__unit-filter:hover{border-color:#94a3b8;color:var(--color-text, #0f172a)}.annotation-defect-nav{display:flex;align-items:center;gap:.25rem;margin-right:0;flex-shrink:0}.annotation-defect-nav__btn{display:inline-flex;align-items:center;justify-content:center;width:1.65rem;height:1.65rem;padding:0;border-radius:var(--radius-md, 6px);border:1px solid var(--color-border, #e2e8f0);background:#fff;color:var(--color-text-secondary, #64748b);cursor:pointer;white-space:nowrap;transition:background .15s ease,border-color .15s ease,color .15s ease}.annotation-defect-nav__btn:hover:not(:disabled){background:#f1f5f9;border-color:#94a3b8;color:var(--color-text, #0f172a)}.annotation-defect-nav__btn:disabled{opacity:.4;cursor:not-allowed}.annotation-defect-nav__pos{font-size:.8rem;font-weight:600;color:var(--color-text, #1e293b);min-width:2.8rem;text-align:center;display:inline-flex;align-items:baseline;justify-content:center;gap:.15rem}.annotation-defect-nav__slash{color:var(--color-text-muted, #868e96);font-weight:500}.annotation-defect-nav__total{color:var(--color-severity-critical, #e03131)}.defect-item__check{flex-shrink:0;margin-top:3px;accent-color:var(--color-primary, #1a56db);cursor:pointer}.defect-item__ignore-btn{flex-shrink:0;font-size:.65rem;font-weight:600;padding:.1rem .45rem;border-radius:4px;border:1px solid #f3c0c0;background:#fff;color:#e03131;cursor:pointer;transition:background .15s ease,border-color .15s ease}.defect-item__ignore-btn:hover{background:#fff5f5;border-color:#e03131}.defect-panel__batch-bar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.4rem .9rem;background:#fff9db;border-bottom:1px solid #ffe066;font-size:.75rem;font-weight:600;color:#997404;flex-shrink:0}.defect-panel__batch-ignore{font-size:.72rem;font-weight:600;padding:.28rem .7rem;border-radius:6px;border:1px solid #e03131;background:#e03131;color:#fff;cursor:pointer}.defect-panel__batch-ignore:hover:not(:disabled){background:#c92a2a}.defect-panel__batch-ignore:disabled{opacity:.5;cursor:not-allowed}.defect-ignored{border-top:1px solid var(--color-border, #e2e8f0);flex-shrink:0;max-height:30%;overflow-y:auto}.defect-ignored__badge{background:#64748b}.defect-ignored__list{background:#fbfcfe}.defect-ignored__item{display:flex;align-items:baseline;gap:.5rem;padding:.4rem 1rem;font-size:.72rem;color:var(--color-text-secondary, #64748b);border-bottom:1px solid var(--color-border, #f1f5f9)}.defect-ignored__seq{font-weight:700;color:#94a3b8;text-decoration:line-through}.defect-ignored__cat{font-weight:600;color:var(--color-text-secondary, #64748b);text-decoration:line-through}.defect-ignored__reason{margin-left:auto;font-size:.68rem;background:#eef2f7;border-radius:4px;padding:.08rem .4rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:45%}.ignore-dialog__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0f172a3d;display:flex;align-items:center;justify-content:center;z-index:30;padding:.75rem}.annotation-defect-panel{position:relative}.ignore-dialog{width:260px;max-width:100%;max-height:100%;overflow-y:auto;background:#fff;border-radius:10px;box-shadow:0 12px 36px #0f172a3d;padding:.9rem 1rem;display:flex;flex-direction:column;gap:.6rem}.ignore-dialog__title{font-size:.88rem;font-weight:700;color:var(--color-text, #0f172a)}.ignore-dialog__options{display:flex;flex-direction:column;gap:.4rem}.ignore-dialog__option{display:flex;align-items:center;gap:.45rem;font-size:.78rem;color:var(--color-text, #1e293b);cursor:pointer}.ignore-dialog__option input{accent-color:var(--color-primary, #1a56db)}.ignore-dialog__custom-input{font:inherit;font-size:.78rem;padding:.35rem .5rem;border:1px solid var(--color-border, #e2e8f0);border-radius:6px}.ignore-dialog__warning{display:flex;align-items:center;gap:.35rem;font-size:.76rem;font-weight:600;color:#8a6800;background:#fff9db;border:1px solid #ffe066;border-radius:6px;padding:.4rem .6rem}.ignore-dialog__warning-icon{flex-shrink:0}.ignore-dialog__actions{display:flex;justify-content:flex-end;gap:.5rem}.defect-panel__readonly-hint{padding:.45rem .9rem;background:#f1f5f9;border-bottom:1px solid var(--color-border, #e2e8f0);font-size:.72rem;color:var(--color-text-secondary, #64748b);flex-shrink:0}@media(max-width:1120px){.annotation-infobar{grid-template-columns:repeat(3,minmax(0,1fr))}.annotation-infobar__field:nth-child(3):after{display:none}.annotation-footer__inner{align-items:stretch}}@media(max-width:900px){.annotation-root{--annotation-footer-height: 8.75rem}.annotation-page__body{padding-right:var(--space-4, 1rem);padding-left:var(--space-4, 1rem)}.annotation-infobar{grid-template-columns:repeat(2,minmax(0,1fr))}.annotation-infobar__field:nth-child(2n):after{display:none}.annotation-footer__inner{flex-direction:column;gap:var(--space-3, .75rem)}.annotation-footer__actions{justify-content:stretch}.annotation-footer__actions .annot-edit-toolbar{flex-wrap:wrap;width:100%}}@media(max-width:640px){.annotation-root{--annotation-footer-height: 12rem}.annotation-page__breadcrumb-bar{padding:var(--space-4, 1rem)}.annotation-page__steps{overflow-x:auto;grid-template-columns:repeat(6,minmax(6.5rem,1fr));width:100%;padding-bottom:var(--space-2, .5rem)}.annotation-infobar{grid-template-columns:minmax(0,1fr)}.annotation-infobar__field:after{display:none}.annotation-infobar__field:not(:last-child){border-bottom:1px solid var(--color-border, #dee2e6)}}.report-root{--report-footer-height: 4.5rem;display:flex;flex-direction:column;flex:1;min-height:calc(100vh - var(--header-height, 56px));overflow:hidden;background:var(--color-surface-subtle, #f8f9fa);color:var(--color-text-primary, #212529)}.report-state-center{min-height:56vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:var(--space-4);color:var(--color-text-secondary)}.error-box,.report-floating-error{border:1px solid rgba(224,49,49,.28);background:#e0313114;color:var(--color-status-failed);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);font-size:var(--text-sm)}.report-topbar{flex-shrink:0;display:flex;align-items:center;padding:1rem 1.75rem;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.report-page__body{flex:1;display:flex;flex-direction:column;gap:var(--space-4, 1rem);min-height:0;width:100%;max-width:1280px;margin:0 auto;padding:0 1.75rem calc(var(--report-footer-height) + var(--space-8, 2rem));box-sizing:border-box;overflow-y:auto}.report-status-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid color-mix(in srgb,var(--color-status-report-ready) 28%,var(--color-border));border-radius:var(--radius-lg);background:color-mix(in srgb,var(--color-status-report-ready) 9%,#ffffff);font-size:var(--text-sm)}.report-status-strip__item{display:flex;align-items:center;gap:var(--space-2);min-width:0}.report-status-strip__label{display:inline-flex;align-items:center;gap:.375rem;flex:0 0 auto;color:var(--color-text-muted);line-height:1.35;white-space:nowrap}.report-status-strip__icon{flex:0 0 auto;color:var(--color-status-report-ready)}.report-status-strip__value{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-primary);font-weight:600}.report-panel{display:flex;flex-direction:column;gap:var(--space-3)}.report-panel+.report-panel{padding-top:var(--space-4);border-top:1px dashed color-mix(in srgb,var(--color-border-strong) 52%,transparent)}.report-section-heading{display:grid;gap:2px;padding:0}.report-section-heading__eyebrow{font-size:var(--text-xs);font-weight:400;color:color-mix(in srgb,var(--color-text-muted) 72%,#ffffff)}.report-section-heading h2{margin:0;color:var(--color-text-primary);font-size:var(--text-lg);line-height:1.35}.report-summary-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--space-2)}.report-summary-card{min-width:0;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-subtle)}.report-summary-card__label{display:block;margin-bottom:.375rem;color:var(--color-text-muted);font-size:var(--text-xs);font-weight:700}.report-summary-card__value{display:block;color:var(--color-text-primary);font-size:1.5rem;line-height:1.05}.report-summary-card--primary{border-color:#1a56db47;background:#1a56db14}.report-summary-card--danger{border-color:#e0313147;background:#e0313114}.report-summary-card--warning{border-color:#b4530947;background:#b4530914}.report-summary-card--manual{border-color:color-mix(in srgb,#7048e8 24%,var(--color-border));background:color-mix(in srgb,#7048e8 8%,#ffffff)}.report-assets__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:var(--space-3)}.report-asset-card{display:flex;flex-direction:column;min-width:0;height:100%;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-subtle);overflow:hidden}.report-asset-card__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:.625rem var(--space-3);border-bottom:1px solid var(--color-border)}.report-asset-card__header h3{margin:0;font-size:var(--text-sm)}.report-asset-card__header span{flex:0 0 auto;color:var(--color-text-muted);font-size:var(--text-xs)}.report-asset-card__thumb{flex:1 1 auto;background:var(--color-surface)}.report-asset-card__thumb--image{display:flex;align-items:center;justify-content:center;font-size:0;line-height:0}.report-asset-card__thumb--placeholder{display:flex;min-height:13.5rem}.report-asset-card__thumb img{display:block;width:100%;height:auto;background:var(--color-surface);vertical-align:top}.report-asset-card__placeholder{display:flex;align-items:center;justify-content:center;flex:1;min-height:100%;border:1px dashed var(--color-border-strong);color:var(--color-text-muted);font-weight:700}.report-asset-card p{margin:0;padding:.625rem var(--space-3);color:var(--color-text-secondary);font-size:var(--text-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.report-issue-table-wrap,.report-activity-log__table-wrap{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);overflow-x:auto}.report-issue-table,.report-activity-log__table{width:100%;min-width:920px;border-collapse:separate;border-spacing:0;font-size:var(--text-sm)}.report-issue-table th,.report-activity-log__table th{padding:.625rem var(--space-4);text-align:left;color:var(--color-text-muted);font-size:var(--text-xs);font-weight:700;background:var(--color-surface-subtle);border-bottom:1px solid var(--color-border)}.report-issue-table td,.report-activity-log__table td{padding:.625rem var(--space-4);vertical-align:top;color:var(--color-text-secondary);border-bottom:1px solid var(--color-surface-muted);line-height:1.45}.report-issue-table tbody tr:last-child td,.report-activity-log__table tbody tr:last-child td{border-bottom:none}.report-severity{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;color:var(--color-text-inverse);font-size:var(--text-xs);font-weight:700;white-space:nowrap}.report-severity--severe{background:var(--color-severity-critical)}.report-severity--normal{background:var(--color-severity-normal)}.report-severity--hint{background:var(--color-severity-hint)}.report-issue-empty,.report-table-empty{padding:var(--space-8);color:var(--color-text-muted);text-align:center}.report-floating-error{position:fixed;right:var(--space-6);bottom:104px;z-index:20;max-width:min(420px,calc(100vw - 48px));background:#fff5f5}.report-footer{position:fixed;right:0;bottom:0;left:var(--nav-width, 220px);z-index:15;border-top:1px solid var(--color-border);background:#fffffff5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.report-footer__inner{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);width:min(1280px,calc(100% - 48px));min-height:72px;margin:0 auto}@media(max-width:1180px){.report-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.report-assets__grid{grid-template-columns:1fr}}@media(max-width:760px){.report-topbar{padding:var(--space-4)}.report-page__body,.report-footer__inner{width:100%}.report-status-strip,.report-summary-grid{grid-template-columns:1fr}.report-footer{left:0}.report-footer__inner{flex-wrap:wrap;justify-content:flex-start;padding:var(--space-3) 0}}@media print{.report-footer,.report-topbar{display:none}.report-root{padding-bottom:0;background:#fff}.report-page__body{width:100%;padding:0}}.history-main{flex:1;display:flex;flex-direction:column;min-width:0}.history-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.75rem;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.history-titlebar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:var(--space-6) 1.75rem var(--space-2)}.history-titlebar__action{flex-shrink:0}.history-header__title{margin:0;font-size:var(--text-2xl);font-weight:700;color:var(--color-text-primary)}.history-main .page-description{margin:0 1.75rem}.history-filters{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin:1.25rem 1.75rem 0}.history-filters__group{display:flex;align-items:center;gap:.5rem}.history-filters__label{font-size:var(--text-xs);color:var(--color-text-muted);white-space:nowrap}.history-filters__input{height:2.375rem;padding:.5rem .75rem;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-primary);font-size:var(--text-sm);box-sizing:border-box;transition:border-color var(--duration-fast) var(--ease-out)}.history-filters__input:focus{outline:none;border-color:var(--color-brand-primary);box-shadow:0 0 0 3px #1a56db1f}.history-filters__input--keyword{min-width:220px}.history-filters__select{min-width:150px;height:2.375rem;box-sizing:border-box}.history-content{margin:1.25rem 1.75rem 1.75rem;background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);overflow:hidden;box-shadow:var(--shadow-sm)}.history-badge{display:inline-block;padding:.2em .65em;border-radius:9999px;font-size:var(--text-xs);font-weight:500;line-height:1.4;white-space:nowrap}.history-badge--pending-upload{background:#eff6ff;color:#2563eb}.history-badge--pending-align{background:#fff7ed;color:#c2410c}.history-badge--detecting{background:#fefce8;color:#ca8a04}.history-badge--pending-edit{background:#faf5ff;color:#7c3aed}.history-badge--report-ready{background:#f0fdf4;color:#15803d}.history-badge--failed{background:#fef2f2;color:#dc2626}.history-table__customer-product{display:inline-flex;align-items:center;gap:.35rem;max-width:100%;min-width:0;flex-wrap:wrap}.history-table__customer{font-weight:700;color:var(--color-text-primary)}.history-table__customer-product-separator,.history-table__product{color:var(--color-text-secondary)}.history-table__actions{display:inline-flex;align-items:center;gap:1rem;flex-wrap:wrap}.history-table__action-link{display:inline-flex;align-items:center;min-height:1.5rem;padding:0;color:var(--color-brand-primary);font-size:var(--text-sm);font-weight:500;line-height:1.5;text-decoration:none}.history-table__actions .btn.history-table__action-link{gap:0;padding:0;border:0;border-radius:0;font-size:var(--text-sm);font-weight:500;line-height:1.5}.history-table__action-link:hover{text-decoration:underline}.history-table__continue-action{color:var(--color-brand-primary)}.history-table__review-action{color:var(--color-status-pending-edit, #7c3aed)}.history-table__download-action,.history-table__actions .btn.history-table__download-action{color:var(--color-status-report-ready, #15803d)}.history-table__danger-action,.history-table__actions .btn.history-table__danger-action{color:var(--color-status-failed, #dc2626)}.history-delete-dialog__copy{margin:0;color:var(--color-text-secondary);font-size:var(--text-sm);line-height:1.7}.history-delete-dialog__target{margin:1rem 0 0;padding:.75rem;border-radius:var(--radius-md);background:var(--color-surface-muted, #f8fafc);color:var(--color-text-primary);font-weight:700}.history-delete-dialog__error{margin:.75rem 0 0;color:var(--color-status-failed, #dc2626);font-size:var(--text-sm)}.history-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:4rem 2rem;color:var(--color-text-muted)}.history-empty__icon{color:var(--color-border-strong)}.history-empty__text{font-size:var(--text-sm);color:var(--color-text-muted)}.user-menu{position:relative;display:inline-flex}.user-menu__trigger{display:inline-flex;align-items:center;gap:.5rem;padding:.375rem .5rem;border:none;border-radius:8px;background:transparent;color:#c8d3e6;font-size:.875rem;font-weight:500;cursor:pointer;transition:background var(--duration-fast, .15s) var(--ease-out, ease-out),color var(--duration-fast, .15s) var(--ease-out, ease-out)}.user-menu__trigger:hover{background:#ffffff14;color:#fff}.user-menu__trigger:focus-visible{outline:2px solid var(--color-brand-primary, #1a56db);outline-offset:2px;color:#fff}.user-menu__trigger:active{background:#ffffff1f}.user-menu__trigger--open{background:#ffffff1a;color:#fff}.user-menu__avatar{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--color-brand-primary, #1a56db);color:#fff;font-size:.75rem;font-weight:600;flex-shrink:0;overflow:hidden}.user-menu__avatar img{width:100%;height:100%;object-fit:cover}.user-menu__name{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu__chevron{color:currentColor;transition:transform var(--duration-fast, .15s) var(--ease-out, ease-out)}.user-menu__chevron--open{transform:rotate(180deg)}.user-menu__dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:160px;padding:.375rem;border-radius:10px;background:#fff;border:1px solid rgba(15,23,42,.08);box-shadow:0 4px 12px #0f172a1a,0 1px 3px #0f172a0f;z-index:50;animation:user-menu-drop var(--duration-fast, .15s) var(--ease-out, ease-out);transform-origin:top right}@keyframes user-menu-drop{0%{opacity:0;transform:scale(.96) translateY(-4px)}to{opacity:1;transform:scale(1) translateY(0)}}.user-menu__item{display:flex;align-items:center;gap:.625rem;width:100%;padding:.5rem .625rem;border:none;border-radius:6px;background:transparent;color:#334155;font-size:.875rem;text-align:left;cursor:pointer;transition:background var(--duration-fast, .15s) var(--ease-out, ease-out),color var(--duration-fast, .15s) var(--ease-out, ease-out)}.user-menu__item:hover{background:var(--color-surface-muted, #f1f3f5);color:var(--color-text-primary, #212529)}.user-menu__item:focus-visible{outline:2px solid var(--color-brand-primary, #1a56db);outline-offset:-1px}.user-menu__item:active{background:#e9ecef}.user-menu__item:disabled{opacity:.6;cursor:not-allowed}.user-menu__item svg{flex-shrink:0}.user-menu__item--danger:hover{background:#fef2f2;color:#dc2626}.user-menu__item--danger:active{background:#fee2e2}.user-menu__separator{height:1px;margin:.25rem 0;background:var(--color-border, #dee2e6)}.user-menu-dialog__form{display:flex;flex-direction:column;gap:var(--space-4, 1rem)}.user-menu-dialog__field{display:flex;flex-direction:column;gap:var(--space-2, .5rem)}.user-menu-dialog__label{font-size:var(--text-sm, .875rem);font-weight:500;color:var(--color-text-secondary, #495057)}.user-menu-dialog__hint{font-size:var(--text-xs, .75rem);color:var(--color-text-muted, #868e96)}.user-menu-dialog__error{display:flex;align-items:center;gap:var(--space-2, .5rem);padding:var(--space-3, .75rem);border:1px solid rgba(224,49,49,.2);border-radius:var(--radius-md, 6px);background:#fff5f5;color:var(--color-status-failed, #e03131);font-size:var(--text-sm, .875rem)}.user-menu-dialog__avatar-row{display:flex;align-items:center;gap:var(--space-4, 1rem)}.user-menu-dialog__avatar-preview{position:relative;display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;flex-shrink:0;overflow:hidden;border:1px solid var(--color-border, #dee2e6);border-radius:50%;background:var(--color-brand-secondary, #e8f0fe);color:var(--color-brand-primary, #1a56db);font-size:var(--text-lg, 1.125rem);font-weight:700}.user-menu-dialog__avatar-preview--loading{color:var(--color-text-muted, #868e96)}.user-menu-dialog__avatar-preview img{width:100%;height:100%;object-fit:cover}.user-menu-dialog__avatar-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:inline-flex;align-items:center;justify-content:center;background:#ffffffc2}.user-menu-dialog__avatar-overlay .spinner{width:20px;height:20px;border-width:2px}.user-menu-dialog__avatar-meta{display:flex;min-width:0;flex:1;flex-direction:column;gap:var(--space-2, .5rem)}.user-menu-dialog__file-input{width:100%;font-size:var(--text-sm, .875rem);color:var(--color-text-secondary, #495057)}.user-menu-dialog__avatar-status{display:inline-flex;align-items:center;gap:var(--space-2, .5rem);font-size:var(--text-xs, .75rem);line-height:1.4}.user-menu-dialog__avatar-status .spinner{width:14px;height:14px;border-width:2px}.user-menu-dialog__avatar-status--uploading{color:var(--color-status-detecting, #1a56db)}.user-menu-dialog__avatar-status--success{color:var(--color-status-report-ready, #2f9e44)}.user-menu-dialog__avatar-status--error{color:var(--color-status-failed, #e03131)}.user-menu-dialog__password-wrap{position:relative;display:flex;align-items:center}.user-menu-dialog__password-input{padding-right:2.75rem}.user-menu-dialog__eye{position:absolute;right:.625rem;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:var(--radius-sm, 4px);background:transparent;color:var(--color-text-muted, #868e96);cursor:pointer}.user-menu-dialog__eye:hover:not(:disabled){color:var(--color-text-secondary, #495057);background:var(--color-surface-muted, #f1f3f5)}.user-menu-dialog__eye:focus-visible{outline:2px solid var(--color-brand-primary, #1a56db);outline-offset:2px}.user-menu-dialog__eye:disabled{cursor:not-allowed;opacity:.5}@media(prefers-reduced-motion:reduce){.user-menu__trigger,.user-menu__chevron,.user-menu__item,.user-menu-dialog__eye{transition:none}.user-menu__dropdown{animation:none}}.app-shell{display:flex;min-height:100vh;width:100%;background:var(--color-surface-subtle, #f8f9fa)}.app-shell__content{flex:1;display:flex;flex-direction:column;min-width:0;min-height:100vh}.app-shell__topbar{display:flex;align-items:center;justify-content:space-between;height:var(--header-height, 56px);flex-shrink:0;padding:0 1.25rem;background:var(--color-sidebar-bg, #1a2236);border-bottom:1px solid rgba(255,255,255,.08)}.app-shell__topbar-collapse-toggle{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:32px;height:32px;border:none;border-radius:var(--radius-md, 6px);background:transparent;color:#c8d3e6;cursor:pointer;transition:background var(--duration-fast, .15s),color var(--duration-fast, .15s)}.app-shell__topbar-collapse-toggle:hover{background:#ffffff12;color:#fff}.app-shell__topbar-actions{display:inline-flex;align-items:center;gap:.75rem}.app-shell__main{flex:1;min-width:0;min-height:0;overflow:auto}.side-nav{width:var(--nav-width, 220px);min-width:var(--nav-width, 220px);flex-shrink:0;display:flex;flex-direction:column;background:var(--color-sidebar-bg, #1a2236);color:#c8d3e6;overflow-x:hidden;overflow-y:auto;transition:width var(--duration-normal, .25s) var(--ease-out, ease),min-width var(--duration-normal, .25s) var(--ease-out, ease)}.side-nav--collapsed{width:var(--nav-width-collapsed, 64px);min-width:var(--nav-width-collapsed, 64px)}.side-nav__logo{display:flex;align-items:center;flex-shrink:0;gap:.625rem;height:var(--header-height, 56px);padding:0 1.25rem;border-bottom:1px solid rgba(255,255,255,.08);overflow:hidden}.side-nav__logo-mark{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:28px;height:28px;border-radius:var(--radius-md, 6px);background:var(--color-brand-primary, #1a56db)}.side-nav__logo-text{font-size:.875rem;font-weight:600;color:#fff;letter-spacing:.02em;line-height:1.4;white-space:nowrap;overflow:hidden}.side-nav__list{list-style:none;margin:0;padding:.5rem 0;flex:1}.side-nav__list--bottom{flex:0;margin-top:auto;border-top:1px solid rgba(255,255,255,.08);padding:.5rem 0}.side-nav__link{display:flex;align-items:center;gap:.75rem;padding:.65rem 1.25rem;font-size:.875rem;color:#c8d3e6;text-decoration:none;white-space:nowrap;overflow:hidden;transition:background var(--duration-fast, .15s),color var(--duration-fast, .15s)}a.side-nav__link:hover,button.side-nav__link:hover{background:#ffffff12;color:#fff}.side-nav__item--active .side-nav__link{background:var(--color-brand-primary, #1a56db);color:#fff;font-weight:500}.side-nav__group{margin:0}.side-nav__group-toggle{width:100%;border:none;background:transparent;font-family:inherit;font-size:.875rem;line-height:inherit;text-align:left;cursor:pointer}.side-nav__group--active>.side-nav__group-toggle{background:#ffffff0e;color:#fff}.side-nav__group-toggle-icon{flex-shrink:0;margin-left:auto;opacity:.82}.side-nav__submenu{list-style:none;margin:.125rem 0 .25rem;padding:0}.side-nav__item--sub .side-nav__link{min-height:2.25rem;gap:.625rem;padding:.5rem 1.25rem .5rem 2.75rem;font-size:.8125rem}.side-nav__item--sub.side-nav__item--active .side-nav__link{background:var(--color-brand-primary, #1a56db);color:#fff}.side-nav__icon{flex-shrink:0}.side-nav__label{overflow:hidden;text-overflow:ellipsis;transition:opacity var(--duration-fast, .15s) var(--ease-out, ease)}.menu-item--disabled{opacity:.5;cursor:not-allowed}.menu-item--disabled .side-nav__link{cursor:not-allowed}.side-nav--collapsed .side-nav__label,.side-nav--collapsed .side-nav__logo-text{width:0;opacity:0}.side-nav--collapsed .side-nav__logo,.side-nav--collapsed .side-nav__link,.side-nav--collapsed .side-nav__collapse-toggle{justify-content:center;padding-left:0;padding-right:0;gap:0}.side-nav--collapsed .side-nav__group-toggle-icon,.side-nav--collapsed .side-nav__submenu{display:none}.side-nav__collapse-toggle{display:flex;align-items:center;gap:.75rem;padding:.65rem 1.25rem;border:none;border-top:1px solid rgba(255,255,255,.08);background:transparent;color:#c8d3e6;font-size:.875rem;font-family:inherit;white-space:nowrap;overflow:hidden;cursor:pointer;transition:background var(--duration-fast, .15s),color var(--duration-fast, .15s)}.side-nav__collapse-toggle:hover{background:#ffffff12;color:#fff}:root{--color-brand-primary: #1a56db;--color-brand-primary-hover: #1648c0;--color-brand-secondary: #e8f0fe;--color-surface: #ffffff;--color-surface-subtle: #f8f9fa;--color-surface-muted: #f1f3f5;--color-border: #dee2e6;--color-border-strong: #adb5bd;--color-text-primary: #212529;--color-text-secondary: #495057;--color-text-muted: #868e96;--color-text-inverse: #ffffff;--color-text-link: #1a56db;--color-status-pending-upload: #868e96;--color-status-pending-align: #fd7e14;--color-status-detecting: #1a56db;--color-status-pending-edit: #ae3ec9;--color-status-report-ready: #2f9e44;--color-status-failed: #e03131;--color-severity-critical: #e03131;--color-severity-high: #fd7e14;--color-severity-review: #1a56db;--color-severity-normal: #b45309;--color-severity-hint: #64748b;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--duration-fast: .15s;--duration-normal: .25s;--ease-out: cubic-bezier(.16, 1, .3, 1);--nav-width: 220px;--nav-width-collapsed: 64px;--header-height: 56px;--color-sidebar-bg: #1a2236}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{height:100%;font-size:16px;-webkit-text-size-adjust:100%}body{height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:var(--text-base);color:var(--color-text-primary);background-color:var(--color-surface-subtle);line-height:1.6;-webkit-font-smoothing:antialiased}#root{min-height:100vh;height:100%;display:flex;flex-direction:column}a{color:var(--color-text-link);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;font-family:inherit}input,textarea,select{font-family:inherit;font-size:var(--text-base)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:3px}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.3;color:var(--color-text-primary)}h1{font-size:var(--text-3xl)}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl)}h4{font-size:var(--text-lg)}h5{font-size:var(--text-base)}h6{font-size:var(--text-sm)}p{line-height:1.6;color:var(--color-text-secondary)}.text-muted{color:var(--color-text-muted);font-size:var(--text-sm)}.text-strong{font-weight:600}.btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-5);font-family:inherit;font-size:var(--text-sm);font-weight:500;line-height:1.4;color:var(--color-text-primary);white-space:nowrap;text-decoration:none;background-color:transparent;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),opacity var(--duration-fast) var(--ease-out);-webkit-user-select:none;user-select:none}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--primary{background-color:var(--color-brand-primary);border-color:var(--color-brand-primary);color:var(--color-text-inverse)}.btn--primary:hover:not(:disabled){background-color:var(--color-brand-primary-hover);border-color:var(--color-brand-primary-hover)}.btn--secondary{background-color:var(--color-surface);color:var(--color-text-secondary);border-color:var(--color-border)}.btn--secondary:hover:not(:disabled){border-color:var(--color-border-strong)}.btn--ghost{background-color:transparent;color:var(--color-text-secondary);border-color:var(--color-border)}.btn--ghost:hover:not(:disabled){background-color:var(--color-surface-muted)}.btn--danger{background-color:var(--color-status-failed);border-color:var(--color-status-failed);color:var(--color-text-inverse)}.btn--danger:hover:not(:disabled){filter:brightness(.9)}.btn--link{background-color:transparent;color:var(--color-text-link);border-color:transparent;padding-left:0;padding-right:0}.btn--link:hover:not(:disabled){text-decoration:underline}.btn--sm{padding:var(--space-1) var(--space-3);font-size:var(--text-xs)}.btn--lg{padding:var(--space-3) var(--space-6);font-size:var(--text-base)}.badge{display:inline-flex;align-items:center;padding:.2em .65em;border-radius:9999px;font-size:var(--text-xs);font-weight:600;line-height:1.4;white-space:nowrap}.badge--pending{background-color:#868e961f;color:var(--color-status-pending-upload)}.badge--align{background-color:#fd7e141f;color:var(--color-status-pending-align)}.badge--detecting{background-color:#1a56db1a;color:var(--color-status-detecting)}.badge--pending-edit{background-color:#ae3ec91a;color:var(--color-status-pending-edit)}.badge--completed{background-color:#2f9e441a;color:var(--color-status-report-ready)}.badge--failed{background-color:#e031311a;color:var(--color-status-failed)}.table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.table th{padding:var(--space-3) var(--space-5);text-align:left;font-size:var(--text-xs);font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;background-color:var(--color-surface-subtle);border-bottom:1px solid var(--color-border)}.table td{padding:.875rem var(--space-5);border-bottom:1px solid var(--color-surface-muted);color:var(--color-text-secondary);vertical-align:middle}.table tbody tr:hover{background-color:var(--color-brand-secondary)}.table tbody tr:last-child td{border-bottom:none}.input{width:100%;padding:var(--space-2) var(--space-3);font-family:inherit;font-size:var(--text-sm);color:var(--color-text-primary);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.input:hover:not(:disabled):not(:focus){border-color:var(--color-border-strong)}.input:focus{border-color:var(--color-brand-primary);outline:none}.input:focus-visible{box-shadow:0 0 0 3px #1a56db1a}.input::placeholder{color:var(--color-text-muted)}.input:disabled{background-color:var(--color-surface-muted);color:var(--color-text-muted);cursor:not-allowed}.input--error{border-color:var(--color-status-failed)}.input--error:focus-visible{box-shadow:0 0 0 3px #e031311a}.textarea{display:block;width:100%;min-height:80px;padding:var(--space-3);font-family:inherit;font-size:var(--text-sm);color:var(--color-text-primary);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);resize:vertical;transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.textarea:hover:not(:disabled):not(:focus){border-color:var(--color-border-strong)}.textarea:focus{border-color:var(--color-brand-primary);outline:none}.textarea:focus-visible{box-shadow:0 0 0 3px #1a56db1a}.textarea::placeholder{color:var(--color-text-muted)}.select{padding:var(--space-2) 2rem var(--space-2) var(--space-3);font-family:inherit;font-size:var(--text-sm);color:var(--color-text-primary);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23868e96' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-3) center;background-size:16px;cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.select:hover:not(:disabled):not(:focus){border-color:var(--color-border-strong)}.select:focus{border-color:var(--color-brand-primary);outline:none}.select:focus-visible{box-shadow:0 0 0 3px #1a56db1a}.select:disabled{background-color:var(--color-surface-muted);color:var(--color-text-muted);cursor:not-allowed}.field .select,.field select{width:100%}.field{display:flex;flex-direction:column;gap:var(--space-2)}.field__label{font-size:var(--text-sm);font-weight:500;color:var(--color-text-secondary)}.field__required{color:var(--color-status-failed);margin-left:.15em}.field__error{font-size:var(--text-xs);color:var(--color-status-failed)}.field__hint{font-size:var(--text-xs);color:var(--color-text-muted)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0f172a8c;display:flex;align-items:center;justify-content:center;z-index:100;padding:var(--space-6)}.overlay[data-state=open]{animation:overlay-in var(--duration-normal) var(--ease-out)}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.dialog{position:fixed;top:50%;left:50%;z-index:101;transform:translate(-50%,-50%);background-color:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:520px;width:calc(100vw - var(--space-6) - var(--space-6));max-height:min(88vh,calc(100vh - var(--space-6) - var(--space-6)));display:flex;flex-direction:column;overflow:hidden}.dialog--lg{max-width:1080px}.dialog[data-state=open]{animation:dialog-in var(--duration-normal) var(--ease-out)}@keyframes dialog-in{0%{opacity:0;transform:translate(-50%,calc(-50% + 8px)) scale(.98)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.dialog__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border)}.dialog__title{font-size:var(--text-lg);font-weight:600;color:var(--color-text-primary);margin:0}.dialog__close{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background-color:transparent;border:none;font-size:1.5rem;line-height:1;color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:color var(--duration-fast) var(--ease-out),background-color var(--duration-fast) var(--ease-out)}.dialog__close:hover{color:var(--color-text-primary);background-color:var(--color-surface-muted)}.dialog__body{padding:var(--space-5);overflow-y:auto;flex:1}.dialog__footer{display:flex;justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-top:1px solid var(--color-border)}.spinner{display:inline-block;width:24px;height:24px;border:3px solid var(--color-surface-muted);border-top-color:var(--color-brand-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8);gap:var(--space-3);color:var(--color-text-muted)}.empty-state__icon{margin-bottom:var(--space-2);opacity:.5}.empty-state__text{font-size:var(--text-sm)}.stat-card{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-5);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.stat-card__icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex-shrink:0;border-radius:var(--radius-md)}.stat-card__body{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.stat-card__label{font-size:var(--text-xs);font-weight:500;color:var(--color-text-muted)}.stat-card__value{font-size:var(--text-2xl);font-weight:700;color:var(--color-text-primary);line-height:1.2}.stat-card--blue .stat-card__icon{background-color:color-mix(in srgb,var(--color-status-detecting) 12%,transparent);color:var(--color-status-detecting)}.stat-card--purple .stat-card__icon{background-color:color-mix(in srgb,var(--color-status-pending-edit) 12%,transparent);color:var(--color-status-pending-edit)}.stat-card--gray .stat-card__icon{background-color:color-mix(in srgb,var(--color-status-pending-upload) 12%,transparent);color:var(--color-status-pending-upload)}.stat-card--green .stat-card__icon{background-color:color-mix(in srgb,var(--color-status-report-ready) 12%,transparent);color:var(--color-status-report-ready)}.stat-card--red .stat-card__icon{background-color:color-mix(in srgb,var(--color-status-failed) 12%,transparent);color:var(--color-status-failed)}.pagination{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-5);border-top:1px solid var(--color-surface-muted);color:var(--color-text-secondary);font-size:var(--text-xs);flex-wrap:wrap}.pagination__summary{white-space:nowrap}.pagination__right{display:flex;align-items:center;gap:var(--space-4)}.pagination__page-size{display:flex;align-items:center;gap:var(--space-2)}.pagination__page-size-label{white-space:nowrap}.pagination__page-size-select{min-width:70px;padding:var(--space-1) 1.75rem var(--space-1) var(--space-2);font-size:var(--text-xs)}.pagination__controls{display:flex;align-items:center;gap:var(--space-2)}.pagination__btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border-radius:var(--radius-md);border:1px solid var(--color-border);background-color:var(--color-surface);color:var(--color-text-primary);cursor:pointer;font-size:var(--text-lg);line-height:1;transition:background-color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out)}.pagination__btn:hover:not(:disabled){background-color:var(--color-brand-secondary);border-color:var(--color-brand-primary)}.pagination__btn:disabled{background-color:var(--color-surface-muted);color:var(--color-text-muted);cursor:not-allowed}.breadcrumb{display:flex;align-items:center;gap:.5rem;font-size:var(--text-sm);color:var(--color-text-muted)}.breadcrumb__item{display:inline-flex;align-items:center}.breadcrumb__separator{margin-right:.5rem;color:var(--color-border-strong)}.breadcrumb__icon{margin-right:.375rem;flex-shrink:0;opacity:.65}.breadcrumb__link{color:var(--color-text-secondary);text-decoration:none;transition:color var(--duration-fast) var(--ease-out)}.breadcrumb__link:hover{color:var(--color-brand-primary)}.breadcrumb__current{color:var(--color-text-primary);font-weight:500}.page-description{margin:var(--space-2) 0 0;font-size:var(--text-sm);line-height:1.5;color:var(--color-text-muted)}
