:root{--font-ui:"Noto Sans Thai", Tahoma, sans-serif;--text-caption:.8125rem;--text-label:.875rem;--text-body:.9375rem;--text-input:1rem;--text-subtitle:1rem;--text-section:1.375rem;--text-subsection:1.125rem;--text-title:2rem;--text-stat:2rem}body{font-family:var(--font-ui);font-size:var(--text-body);line-height:1.6}button,input,select,textarea{font-family:inherit}h1,h2,h3{line-height:1.45}h1,:is(.page-heading,.users-heading,.sop-heading,.scan-heading) h1,.auth-form-wrap>h1,.first-setup>h1,.auth-setup .first-setup>h1{font-size:var(--text-title);letter-spacing:-.4px;font-weight:700}h2,:is(.panel-heading,.users-list-heading,.dialog-head,.sop-editor-heading) h2{font-size:var(--text-section);font-weight:600;line-height:1.5}h3,.sop-layout aside h3,.sop-criteria-title{font-size:var(--text-subsection);font-weight:600}:is(.page-heading,.users-heading,.sop-heading,.scan-heading) p{font-size:var(--text-subtitle);line-height:1.65}:is(.navbar,.sop-navbar,.users-navbar) .brand{font-size:1.5rem;line-height:1.3}:is(.navbar,.sop-navbar,.users-navbar) .nav-item,.users-account-trigger strong,:is(main,.dialog,.auth-page) [data-slot=button],.users-heading>button,.sop-heading>.primary{font-size:var(--text-body);font-weight:500;line-height:1.5}:is(main,.dialog,.auth-page) :is(input,select,textarea),.users-search input,.users-filter select,.sop-weight input{font-size:var(--text-input);line-height:1.5}:is(.form-stack,.users-form-fields,.sop-dialog-form,.score-form,.score-criteria) label,:is(main,.dialog,.auth-page) [data-slot=label],.users-filter>label{font-size:var(--text-label);font-weight:500;line-height:1.6}table,:is(.users-table,.sop-criteria,.criteria-table) :is(th,td),main :is(th,td),.dialog :is(th,td){font-size:var(--text-label);line-height:1.6}main th,.dialog th{font-weight:600}.users-person strong,.person strong,.sop-product-copy strong,.sop-summary strong,.product-name,.sop-criteria td strong{font-size:var(--text-input);font-weight:600;line-height:1.5}small,.users-person small,.person span:not(.avatar),.sop-product-copy small,.sop-criteria td small,.sop-summary span,.panel-heading p,.summary-card>div>small,.summary-note,.threshold-note,.users-pagination,.pagination,.sop-dialog-form p,.form-stack p,.scan-instructions,.score-image>p{font-size:var(--text-caption);line-height:1.65}.users-stat h2,.summary-card>div>span,.summary-card h3{font-size:var(--text-body);font-weight:500;line-height:1.6}.date-range label>span:not(.date-input),.detail-person p,.detail-summary span,.photo-card p,.upload-previews strong,.upload-previews article>span,.score-criteria>div>input,.scan-summary small{font-size:var(--text-caption);line-height:1.65}.date-range label>.date-input>span,.date-control .date-input>span,.detail-filters .date-input>span{font-size:var(--text-input);line-height:1.5}.photo-card h3,.scan-results .photo-card .section-line strong{font-size:var(--text-label);line-height:1.6}.scan-results .photo-card>div:last-child>.outline{font-size:var(--text-body)}.users-stat strong,.summary-card h2,.scan-summary strong{font-size:var(--text-stat);font-variant-numeric:tabular-nums;font-weight:700;line-height:1.4}.users-stat strong span,.summary-card h2 small{font-size:var(--text-subsection);font-weight:600}.users-role-badge,.users-status-badge,.users-data-badge,.sop-page .sop-status,.sop-total-status,.badge,.live-label{font-size:var(--text-caption);font-weight:500;line-height:1.5}.dialog .dialog-head h2{font-size:var(--text-section)}.photosop-alert .swal2-title{font-size:var(--text-section)!important}.photosop-alert :is(.swal2-html-container,.swal2-actions button){font-size:var(--text-body);line-height:1.6}.auth-message h2{font-size:var(--text-title);line-height:1.6}.auth-message>p{font-size:var(--text-body)}@media (max-width:1200px){:is(.navbar,.sop-navbar,.users-navbar) .nav-item{font-size:var(--text-label)}}@media (max-width:720px){:root{--text-title:1.75rem;--text-section:1.25rem;--text-subtitle:.875rem;--text-stat:1.625rem}:is(.navbar,.sop-navbar,.users-navbar) .brand{font-size:1.375rem}:is(.navbar,.sop-navbar,.users-navbar) .nav-item,.users-stat h2{font-size:var(--text-caption)}.users-heading>button{padding-inline:12px}}
.sop-simple{gap:20px;display:grid}.sop-simple>.page-heading{margin-bottom:0}.sop-simple>.panel{min-width:0;padding:24px}.sop-activity-search{width:min(100%,320px)}.sop-activity-list{overscroll-behavior:contain;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:12px;max-height:340px;padding:2px;display:grid;overflow-y:auto}.sop-activity-option[data-slot=button]{text-align:left;white-space:normal;flex-direction:column;justify-content:start;align-items:stretch;gap:8px;min-width:0;height:auto;padding:16px;display:flex}.sop-activity-option[aria-pressed=true]{border-color:var(--primary);background:var(--accent);box-shadow:inset 0 0 0 1px var(--primary)}.sop-activity-option-heading{justify-content:space-between;align-items:start;gap:12px;display:flex}.sop-activity-option-heading strong,.sop-activity-name{overflow-wrap:anywhere}.sop-activity-option-heading>span{color:var(--primary);font-size:var(--text-caption);flex-shrink:0}.sop-activity-name,.sop-activity-time{color:var(--muted-foreground);font-weight:400;font-size:var(--text-caption)}.sop-simple h2{margin:0}.sop-simple p{line-height:1.7}.sop-simple-controls{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:end;gap:24px;display:grid}.sop-simple-controls label{gap:8px;display:grid}.sop-simple-controls .sop-simple-enabled{align-items:center;gap:8px;padding-bottom:10px;display:flex}.sop-simple-enabled input{width:18px;height:18px;accent-color:var(--primary)}.sop-simple-meta{color:var(--muted-foreground);margin-top:12px}.sop-simple-section-head{justify-content:space-between;align-items:start;gap:16px;margin-bottom:16px;display:flex}.sop-simple-section-head p{color:var(--muted-foreground);margin:6px 0 0}.sop-simple-section-head h2 span{color:var(--muted-foreground);font-size:var(--text-body);margin-left:8px;font-weight:400}.sop-simple-images{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.sop-simple-images figure{min-width:0;margin:0}.sop-simple-image[data-slot=button]{aspect-ratio:4/3;border:1px solid var(--border);background:var(--muted);width:100%;height:auto;padding:0;overflow:hidden}.sop-simple-image img{object-fit:contain;width:100%;height:100%}.sop-simple-images figcaption{color:var(--muted-foreground);justify-content:space-between;align-items:center;display:flex}.sop-simple-review{border-left:3px solid var(--primary);margin-bottom:20px;padding:8px 16px}.sop-simple .table-scroll table{min-width:620px}.sop-simple .table-scroll th:first-child{width:32%}.sop-simple .table-scroll th:nth-child(2){width:100px}.sop-simple .table-scroll td{vertical-align:top;white-space:normal}.sop-simple .sop-weight-input{width:96px}.sop-simple-save{justify-content:space-between;align-items:center;gap:16px;padding:8px 0;display:flex}.sop-simple-save>p{color:var(--muted-foreground)}.sop-simple-save>div{flex-wrap:wrap;flex-shrink:0;gap:12px;display:flex}.sop-simple-full-image{object-fit:contain;max-width:100%;max-height:72vh;margin:auto;display:block}@media (max-width:760px){.sop-simple>.panel{padding:16px}.sop-simple-controls{grid-template-columns:minmax(0,1fr);gap:16px}.sop-simple-images{grid-template-columns:repeat(2,minmax(0,1fr))}.sop-simple-section-head,.sop-simple-save{flex-direction:column;align-items:stretch}.sop-simple-save>div>button{flex:1}.sop-simple-rubric .table-scroll table{min-width:0}.sop-simple-rubric thead{display:none}.sop-simple-rubric tbody,.sop-simple-rubric tr,.sop-simple-rubric td{display:block}.sop-simple-rubric tbody tr{border-bottom:1px solid var(--border);padding:16px 0;position:relative}.sop-simple-rubric tbody td{border:0;padding:0}.sop-simple-rubric tbody td:first-child{padding-right:116px;font-weight:600}.sop-simple-rubric tbody td:nth-child(2){color:var(--primary);position:absolute;top:16px;right:0}.sop-simple-rubric tbody td:nth-child(2):after{content:""}.sop-simple-rubric tbody td:nth-child(3){color:var(--muted-foreground);margin-top:8px}}.app-navbar .brand>.app-brand-logo{object-fit:contain;flex-shrink:0;width:32px;height:32px}[data-slot=button][data-loading=true]>svg:not(.button-loading-spinner){display:none}[data-slot=button][data-loading=true]{cursor:wait}html{scrollbar-gutter:stable}:root{--canvas:#f7fcff;--background:#fff;--foreground:#080d68;--primary:#0863ff;--primary-foreground:#fff;--secondary:#eef3f9;--secondary-foreground:#142b49;--muted-foreground:#6479ba;--accent:#e8f1ff;--accent-foreground:#0863ff;--border:#dfe7f1;--input:#ccd8e7;--ring:#83b7ff;--card:#fff;--card-foreground:#142b49;--popover:#fff;--popover-foreground:#142b49;--navy:var(--foreground);--blue:var(--primary);--muted:var(--secondary);--line:var(--border);--success:#078548;--success-bg:#e7f8ee;--warning:#a36509;--warning-bg:#fff4df;--destructive:#dc3545;--danger-bg:#fff0f2;--green:var(--success);--red:var(--destructive);--surface-shadow:0 2px 8px #173e630a;--reference:#902bff;--reference-foreground:#5706a5;--reference-surface:#f8f1ff;--reference-accent:#e5c9ff;--navigation-start:#031e50;--navigation-end:#063b77;--text-similarity:3.25rem}:is(body,body:has(.users-page)){background:var(--canvas);color:var(--foreground)}.app-main{max-width:1760px;padding:20px 2.25% 18px}.app-main :is(.users-page,.sop-page){color:var(--foreground)}.app-navbar{background:linear-gradient(110deg, var(--navigation-start), var(--navigation-end));gap:32px;height:72px;min-height:72px;padding:0 2.25%;box-shadow:0 1px 4px #142b491a}.app-navbar .brand{color:#fff;gap:11px}.app-navbar .brand b{color:#fff;font-weight:400}.app-navbar .brand{font-size:22px;font-weight:400}.app-navbar .brand>svg{stroke:#fff;stroke-width:2.5px;width:34px;height:34px}.app-navbar nav{gap:6px;min-width:0}.app-navbar .nav-item{height:44px;min-height:44px;color:color-mix(in srgb, var(--primary-foreground) 85%, transparent);font-size:var(--text-body);border-radius:8px;gap:10px;padding:10px 16px;transition:background-color .15s,color .15s}.app-navbar .nav-item>svg{flex-shrink:0;width:20px;height:20px}.app-navbar .nav-item:hover{color:var(--primary-foreground);background:color-mix(in srgb, var(--primary-foreground) 9%, transparent)}.app-navbar .nav-item.active{background:color-mix(in srgb, var(--primary) 26%, transparent);color:var(--primary-foreground);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--primary-foreground) 12%, transparent)}.app-navbar .nav-item.active:after{content:"";background:var(--ring);border:0;height:2px;display:block;position:absolute;bottom:0;left:16px;right:16px}.app-navbar .nav-item{position:relative}.app-navbar .users-recent-link{display:none}.app-navbar .users-account-avatar{width:36px;height:36px}.app-navbar .users-account-trigger{min-height:44px;color:var(--primary-foreground);border-radius:8px;gap:10px;padding:4px 10px}.app-navbar .users-account-trigger:hover,.app-navbar .users-account-trigger[data-state=open]{background:color-mix(in srgb, var(--primary-foreground) 9%, transparent)}.app-navbar :is(.brand,.nav-item,.users-account-trigger):focus-visible{outline:2px solid var(--ring);outline-offset:3px}.app-navbar .brand,.app-navbar .users-account{flex-shrink:0}.app-navbar .users-account-avatar{color:var(--primary);background:var(--accent)}.app-main :is(h1,h2,h3),.dialog :is(h1,h2,h3),.users-person strong,.person strong,.sop-product-copy strong,.sop-summary strong,.sop-criteria td strong{color:var(--foreground)}:is(.page-heading,.users-heading,.sop-heading,.scan-heading) p,.app-main :is(small,.panel-heading p,.summary-note,.threshold-note),.users-stat h2,.summary-card>div>span,.users-filter>label,.users-person small,.person span:not(.avatar),.sop-product-copy small,.sop-summary span,.sop-criteria td small,.sop-dialog-form p,.users-pagination,.pagination,.sop-footer,.dialog .form-stack p{color:var(--muted-foreground)}.app-main :is(.page-heading,.users-heading,.sop-heading,.scan-heading){margin-bottom:22px}.app-main :is(.panel,.summary-card,.work-card,.photo-card),.sop-page .panel,.users-page .panel{background:var(--card);color:var(--card-foreground);border:1px solid var(--border);box-shadow:var(--surface-shadow);border-radius:10px}.app-main :is(.users-stat strong,.summary-card h2,.scan-summary strong){color:var(--foreground)}.app-main :is(.users-stat-icon,.stat-icon.blue,.stat-icon.purple,.sop-heading-icon){color:var(--primary);background:var(--accent)}.app-main :is(.users-stat-icon.green,.stat-icon.green){color:var(--success);background:var(--success-bg)}.app-main .stat-icon.red{color:var(--destructive);background:var(--danger-bg)}:is(.app-main,.dialog,.auth-page) [data-slot=button].primary,:is(.app-main,.dialog,.auth-page) [data-slot=button][data-variant=default]:not(.icon-button):not(.sop-item):not(.outline),.auth-submit,.alert-confirm{background:var(--primary);color:var(--primary-foreground);border-color:var(--primary);box-shadow:none}:is(.app-main,.dialog,.auth-page) [data-slot=button].primary:hover,.auth-submit:hover,.alert-confirm:hover{background:#0755db}:is(.app-main,.dialog,.auth-page) [data-slot=button].outline,:is(.app-main,.dialog,.auth-page) [data-slot=button][data-variant=outline],.users-reset,.alert-cancel{background:var(--background);color:var(--foreground);border-color:var(--input);box-shadow:none}:is(.app-main,.dialog) :is(.primary,.outline),.app-main :is(.page-heading,.users-heading,.sop-heading)>[data-slot=button]{border-radius:8px;height:auto;min-height:44px;padding:10px 18px}.app-main :is(input,select,textarea),.dialog :is(input,select,textarea),.users-filter select,.sop-weight input{color:var(--foreground);border-color:var(--input);background-color:var(--background)}.app-main :is(input,textarea)::placeholder,.dialog :is(input,textarea)::placeholder{color:var(--muted-foreground);opacity:1}.app-main :is(.users-search,.search-field,.date-range),.auth-input{border-color:var(--input);color:var(--muted-foreground);background-color:var(--background)}.app-main :is(.users-search,.search-field) input{background:0 0}.app-main [data-slot=label],.dialog [data-slot=label]{color:var(--foreground)}.app-main :is(th,.users-table th,.sop-criteria th),.dialog th{background:var(--secondary);color:var(--foreground);border-color:var(--border)}.app-main :is(td,.users-table td,.sop-criteria tbody td),.dialog td{color:var(--foreground);border-color:var(--border)}.app-main :is(tbody tr,.users-table tr):hover{background-color:#f8faff}.app-main :is(.sop-summary>div,.detail-summary,.previous-score){background:var(--secondary)}.sop-page .sop-item{background:var(--background);color:var(--foreground);border-color:var(--border)}.sop-page .sop-item.selected{background:var(--accent);color:var(--foreground);border-left-color:var(--primary)}.users-role-badge{background:var(--secondary);color:var(--muted-foreground)}.users-role-badge.admin,.users-data-badge,.live-label{background:var(--accent);color:var(--primary)}.users-status-badge,.sop-page .sop-status.inactive{background:var(--secondary);color:var(--muted-foreground)}.users-status-badge.active,.sop-page .sop-status:not(.inactive),.badge.passed,.success-message{background:var(--success-bg);color:var(--success)}.badge.failed,.badge.error,.error-message{background:var(--danger-bg);color:var(--destructive)}.badge.pending{background:var(--warning-bg);color:var(--warning)}.sop-criteria tfoot,.criteria-table tfoot{background:var(--success-bg);color:var(--success)}.sop-criteria tfoot td{color:var(--success)}.sop-criteria .sop-invalid{background:var(--warning-bg);color:var(--warning)}.sop-criteria .sop-invalid td{color:var(--warning)}.users-pagination button[aria-current=page],.pagination .page-current{background:var(--primary);color:#fff;border-color:var(--primary)}.dialog[data-slot=dialog-content],[data-slot=dropdown-menu-content]{background:var(--background);color:var(--foreground);border-color:var(--border)}.auth-intro{background:var(--foreground)}.auth-form-wrap>h1,.auth-mobile-brand,.auth-form-wrap label{color:var(--foreground)}.auth-mobile-brand svg,.auth-title-icon{color:var(--primary)}.auth-form-wrap>p{color:var(--muted-foreground)}.alert-confirm.alert-danger{background:var(--destructive);border-color:var(--destructive)}.photosop-toast.swal2-toast{font-family:var(--font-ui);background:var(--card);color:var(--foreground);border:1px solid var(--border);box-shadow:var(--surface-shadow)}.photosop-toast.swal2-toast .swal2-title{font-size:var(--text-body)!important}.photosop-toast .swal2-html-container{font-size:var(--text-label)}.photosop-toast .swal2-timer-progress-bar{background:var(--primary)}@media (max-width:1200px){.app-navbar{flex-wrap:wrap;gap:10px 14px;height:auto;padding:12px 3% 10px}.app-navbar nav{flex-basis:100%;order:3;padding:3px 3px 5px;overflow-x:auto}.app-navbar .users-account{margin-left:auto}.app-navbar .nav-item{padding:10px 12px}}@media (prefers-reduced-motion:reduce){.app-navbar .nav-item{transition:none}}@media (max-width:720px){.app-main{padding:22px 12px 16px}.app-navbar .brand>svg{width:34px;height:34px}.app-navbar .nav-item{gap:7px;min-height:44px;padding:9px 12px}.app-navbar .nav-item>svg{width:18px;height:18px}.app-navbar .users-account-trigger strong{display:none}.app-navbar .users-account{gap:6px}.app-main :is(.page-heading,.users-heading,.sop-heading)>[data-slot=button]{padding:9px 12px}}.scan-sop-summary{border:1px solid var(--border);background:var(--secondary);border-radius:10px;margin-top:20px;padding:16px}.scan-sop-summary p,.scan-summary-note{color:var(--muted-foreground)}.scan-sop-summary small{color:var(--muted-foreground);display:block}.scan-progress{margin-top:18px}.scan-progress progress{width:100%;height:12px;accent-color:var(--primary)}.scan-table-filters{grid-template-columns:minmax(180px,2fr) 1fr 1fr auto;gap:12px;margin:16px 0;display:grid}.scan-pagination{align-items:center;gap:12px;display:flex}.scan-date-picker{gap:8px;display:grid}.scan-date-picker>button{justify-content:space-between;min-height:48px}.photosop-calendar{color:var(--foreground);font-size:var(--text-label)}.photosop-calendar table{border-collapse:separate;border-spacing:2px}.photosop-calendar th{color:var(--muted-foreground);font-weight:500}@media (max-width:760px){.scan-table-filters{grid-template-columns:1fr 1fr}.scan-table-filters>input{grid-column:1/-1}}@media (max-width:420px){.scan-table-filters{grid-template-columns:1fr}}.photos-page{padding:26px 2.5% 18px}.photos-page .page-heading{min-height:86px;margin-bottom:20px}.photos-page .heading-meta{gap:8px}.photos-page .waiting{background:var(--background);padding:8px 12px}.photos-page .summary-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;margin-bottom:20px}.photos-page .summary-card{gap:20px;min-height:108px;padding:18px;position:relative}.photos-page .summary-card h2 small{font-size:inherit}.photos-page .summary-card>div>span:first-child{margin-bottom:2px;display:block}.photos-data-label{background:var(--accent);color:var(--primary);font-size:var(--text-caption);border-radius:6px;padding:6px 10px;font-weight:400;position:absolute;top:14px;right:16px}.photos-page .summary-card>div{padding-right:66px}.photos-page .filters{grid-template-columns:1.6fr 1fr 1fr .92fr auto;gap:12px;margin-bottom:22px;display:grid}.photos-page .filters>label{align-items:center;display:flex}.photos-page .filters :is(select,.photos-date-filter,.reset){height:52px;min-height:52px}.photos-page .filters .search-field{border-color:var(--input);gap:12px;padding:0 12px 0 18px}.photos-page .search-field:focus-within{outline:2px solid var(--ring);outline-offset:2px}.photos-page .search-field input{box-shadow:none;min-width:0}.photos-page .search-field button{color:var(--primary);padding:0 6px}.photos-date-filter{color:var(--muted-foreground);justify-content:space-between;min-width:0}.photos-date-filter span{text-overflow:ellipsis;overflow:hidden}.photos-date-popover{gap:14px;width:300px;display:grid}.photos-date-popover label{gap:6px;display:grid}.photos-date-popover .date-input{min-height:42px}.photos-page .portfolio-panel{padding:18px 18px 0}.photos-page .panel-heading{margin-bottom:20px}.photos-page .panel-heading h2{flex-wrap:wrap;align-items:baseline;gap:12px;display:flex}.photos-page .panel-heading h2 span{font-size:var(--text-caption);margin-left:0}.photos-page .view-toggle button{min-height:46px}.photos-page .table-scroll table{table-layout:fixed;min-width:1180px}.photos-page th:first-child{width:14%}.photos-page th:nth-child(2){width:10%}.photos-page th:nth-child(3){width:14%}.photos-page th:nth-child(4){width:5%}.photos-page th:nth-child(5){width:8%}.photos-page th:nth-child(6){width:10%}.photos-page th:nth-child(7){width:8%}.photos-page th:nth-child(8){width:13%}.photos-page th:nth-child(9),.photos-page th:nth-child(10){width:9%}.photos-page .product-name{overflow-wrap:anywhere;display:block}.photos-page .stat-icon.pending{color:var(--warning);background:var(--warning-bg)}.photos-page .photos-pending-link[data-slot=button]{color:var(--warning);background:var(--warning-bg);padding:5px 8px}.photos-pending-zero{color:var(--muted-foreground);font-size:var(--text-label)}.photos-page th{background:var(--secondary);height:58px;padding:10px}.photos-page .th-button{text-align:left;white-space:normal;height:auto;box-shadow:none;background:0 0}.photos-page .th-button>svg:not(.sorted){display:none}.folder-dates{white-space:normal;min-width:96px;max-width:210px;color:var(--muted-foreground);font-size:var(--text-caption);margin-top:4px;line-height:1.6;display:block}.folder-dates time{white-space:nowrap;display:block}.column-hint{color:var(--muted-foreground);font-size:var(--text-caption);font-weight:400;display:block}.photos-page td{height:101px;padding:14px 10px}.photos-page .person{gap:12px;min-width:0}.photos-page .person .avatar{flex-shrink:0;width:64px;height:64px}.photos-page .person>div{min-width:0}.photos-page .person :is(span,small){overflow-wrap:anywhere}.photos-page .previews{gap:7px;min-width:0}.photos-page .previews>:is(img,.photo-placeholder){width:calc(33.3333% - 4.66667px);height:65px}.photos-page .results{gap:14px}.photos-page .results b{min-width:44px;color:var(--success);background:var(--success-bg);padding:5px 8px}.photos-page .results b.failed{color:var(--destructive);background:var(--danger-bg)}.photos-page :is(.rate,.average){min-width:0}.photos-page .track{background:var(--secondary);height:8px;margin:6px 0 3px}.photos-page .average .track i{background:var(--primary)}.photos-page .upload-date{max-width:none}.photos-page .upload-date small{color:var(--muted-foreground);font-size:var(--text-caption);display:block}.photos-page .work-button{border-color:var(--primary);color:var(--primary);min-height:44px;padding:8px 12px}.photos-page .pagination{grid-template-columns:1fr auto 1fr;padding:10px 0 14px;display:grid}.photos-page .pagination>label{justify-self:end}.photos-page>footer{display:none}@media (max-width:1300px){.photos-page .summary-card{gap:12px;padding:16px}.photos-data-label{margin-top:2px;padding:2px 6px;display:inline-block;position:static}.photos-page .summary-card>div{padding-right:0}.photos-page .filters{grid-template-columns:1.6fr 1fr 1fr}.photos-page .filters>label:first-child{grid-column:span 1}}@media (max-width:760px){.photos-page .summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.photos-page .filters{grid-template-columns:1fr 1fr}.photos-page .filters>label:first-child,.photos-page .filters>.reset{grid-column:1/-1}.photos-page .summary-card{gap:10px}.photos-page .stat-icon{width:44px;height:44px}.photos-page .summary-card{min-height:116px}.photos-page .panel-heading{flex-wrap:wrap}.photos-page .pagination{grid-template-columns:1fr auto}.photos-page .pagination>span{grid-column:1/-1}.photos-page .page-heading{align-items:flex-start}}@media (max-width:420px){.photos-page .page-heading{flex-direction:column}.photos-page .heading-meta{align-items:flex-start}.photos-page .summary-card{flex-direction:column;align-items:flex-start}.photos-page .filters{grid-template-columns:1fr}.photos-page .filters>*{grid-column:1/-1}}.photos-page .summary-card h2 small{color:inherit}.photos-page .summary-card>div>.photos-data-label{color:var(--primary)}.photos-page .person>div{overflow:hidden}.photos-page .person>div>:is(strong,span,small){text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.photos-page .table-scroll .th-button{color:var(--foreground);background:0 0;border:0;border-radius:0;justify-content:flex-start;min-height:0;padding:0}.photos-page .table-scroll .th-button:disabled{pointer-events:auto}.photos-page .table-scroll .column-hint{color:var(--muted-foreground)}.photos-page .table-scroll td .work-button{background:var(--background);color:var(--primary);border-color:var(--primary)}.photos-page .pagination .page-button{color:var(--muted-foreground);background:var(--background);border-color:var(--border)}
.app-form-dialog.dialog{border-radius:18px;padding:0}.app-form-dialog .dialog-head{text-align:left;margin:0 32px;padding:24px 0 18px}.app-dialog-heading{gap:2px;display:grid}.app-dialog-heading [data-slot=dialog-description]{color:var(--muted-foreground);font-size:var(--text-body)}.app-dialog-fieldset{border:0;min-width:0;margin:0;padding:0}.app-form-dialog .form-stack{gap:0}.app-dialog-columns{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;padding:26px 32px 28px;display:grid}.app-dialog-section{flex-direction:column;gap:18px;min-width:0;display:flex}.app-dialog-section+.app-dialog-section{border-left:1px solid var(--border);padding-left:32px}.app-dialog-section h3{font-size:var(--text-section);align-items:center;gap:16px;margin:0;font-weight:700;display:flex}.app-dialog-section-icon{background:var(--accent);width:60px;height:60px;color:var(--primary);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.app-dialog-section-icon svg{width:30px;height:30px}.app-dialog-section [data-slot=label]{font-size:var(--text-label);gap:8px;font-weight:600;display:grid}.app-dialog-section :is(input:not([type=checkbox]),select){width:100%;height:46px;font-size:var(--text-input)}.app-dialog-password-field{gap:8px;display:grid}.app-dialog-password{position:relative}.app-dialog-password input{padding-right:48px}.app-dialog-password>button{position:absolute;top:5px;right:5px}.app-dialog-section small{color:var(--muted-foreground);font-size:var(--text-caption);display:block}.app-dialog-account{border:1px solid var(--border);background:var(--secondary);border-radius:9px;align-items:center;gap:18px;padding:18px;display:flex}.app-dialog-account.is-active{background:var(--success-bg);border-color:color-mix(in srgb, var(--success) 22%, var(--border))}.app-dialog-status-dot{background:var(--muted-foreground);border-radius:50%;flex-shrink:0;width:16px;height:16px}.is-active .app-dialog-status-dot{background:var(--success);box-shadow:0 0 0 9px color-mix(in srgb, var(--success) 12%, transparent)}.app-dialog-account>div{flex:1}.app-dialog-account input.app-dialog-switch{appearance:none;background:var(--muted-foreground);cursor:pointer;border:0;border-radius:999px;flex-shrink:0;width:56px;height:30px;min-height:30px;padding:0;position:relative}.app-dialog-account input.app-dialog-switch:checked{background:var(--success)}.app-dialog-switch:after{content:"";background:var(--background);border-radius:50%;width:24px;height:24px;position:absolute;top:3px;left:3px}.app-dialog-switch:checked:after{left:29px}.app-dialog-switch:disabled{opacity:.5;cursor:not-allowed}.app-dialog-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:14px;padding:16px 32px;display:flex}.app-dialog-footer button{min-height:46px;padding-inline:24px}.doc-ui-page{gap:24px;display:grid}.doc-ui-example{justify-items:start;gap:18px;padding:28px;display:grid}.doc-ui-example h2{font-size:var(--text-section);font-weight:700}.doc-ui-example p{max-width:80ch}.doc-ui-example pre{background:var(--secondary);border:1px solid var(--border);width:100%;font-size:var(--text-caption);border-radius:8px;padding:20px;overflow-x:auto}@media (max-width:700px){.app-form-dialog .dialog-head{margin-inline:20px}.app-dialog-columns{grid-template-columns:minmax(0,1fr);gap:24px;padding:20px}.app-dialog-section+.app-dialog-section{border-left:0;border-top:1px solid var(--border);padding:24px 0 0}.app-dialog-footer{flex-wrap:wrap;padding:16px 20px}.app-dialog-footer button{flex:1;padding-inline:12px}}
.activity-sop-guide{border-block:1px solid var(--border);margin-block:24px;padding-block:24px}.activity-guide-heading,.activity-reference-toolbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.activity-guide-heading h2{font-size:var(--text-section);margin:0}.activity-guide-heading p,.activity-reference-toolbar p{color:var(--muted-foreground);font-size:var(--text-body);margin:6px 0 0}.activity-rubric-columns{grid-template-columns:1fr 1fr;gap:24px;display:grid}.activity-rubric-group{background:var(--secondary);border-radius:8px;min-width:0;padding:20px}.activity-rubric-group header{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding-bottom:14px;display:flex}.activity-rubric-group h3{font-size:var(--text-body);flex:1;margin:0}.activity-rubric-group header>strong{color:var(--primary);font-size:var(--text-section);white-space:nowrap}.activity-rubric-group header small{font-size:var(--text-caption);font-weight:400}.activity-rubric-group ul{margin:0;padding:0;list-style:none}.activity-rubric-group li{font-size:var(--text-body);justify-content:space-between;gap:16px;padding-top:16px;display:flex}.activity-rubric-group li p{color:var(--muted-foreground);line-height:1.6;font-size:var(--text-caption);margin:4px 0 0}.activity-reference-brief{align-items:center;gap:24px;padding-block:20px;display:flex}.activity-reference-brief>div{flex:1}.activity-reference-brief h3,.activity-reference-toolbar h3{font-size:var(--text-body);margin:0}.activity-reference-brief p,.activity-method-note{font-size:var(--text-caption);max-width:85ch;margin:8px 0 0;line-height:1.7}.activity-method-note{color:var(--muted-foreground)}.activity-reference-toolbar>div:last-child{flex-wrap:wrap;gap:8px;display:flex}.activity-reference-empty{border:1px dashed var(--input);color:var(--muted-foreground);border-radius:8px;align-items:center;gap:12px;padding:24px;display:flex}.activity-reference-compare{grid-template-columns:1fr 1fr;gap:16px;width:100%;display:grid}.activity-reference-compare figure{min-width:0;margin:0}.activity-reference-compare figcaption{text-align:center;margin-top:8px}.sop-page .sop-focus-image-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sop-page .sop-focus-image-stage img{object-fit:contain}@media (max-width:700px){.activity-rubric-columns,.activity-reference-compare,.sop-page .sop-focus-image-grid{grid-template-columns:1fr}.activity-guide-heading,.activity-reference-toolbar,.activity-reference-brief{flex-direction:column;align-items:stretch}.activity-rubric-group{padding:16px}}.app-main:has(.sop-page){padding-top:24px;padding-bottom:8px}.app-main .sop-page .sop-heading{margin-bottom:24px}.sop-page .sop-heading h1{font-size:var(--text-title);line-height:1.3}.sop-page .sop-heading p{font-size:var(--text-subtitle);line-height:1.4}.sop-page .sop-heading>[data-slot=button]{height:49px;padding:0 28px;font-size:17px}.sop-page .sop-layout{grid-template-columns:minmax(250px,22.4%) minmax(0,1fr);gap:15px}.sop-page .sop-layout>aside{min-height:713px}.sop-page .sop-editor{padding:18px 25px 13px}.sop-page .sop-editor-heading h2{font-size:var(--text-section);font-weight:700}.sop-page .sop-summary{margin-bottom:19px}.sop-page .sop-summary strong{font-size:19px}.sop-page .sop-summary span{font-size:15px;line-height:1.5}.sop-page .sop-criteria th,.sop-page .sop-criteria td strong{font-size:15px}.sop-page .sop-criteria td small{font-size:14px}.sop-page .sop-criteria tbody td:first-child{color:var(--muted-foreground)}.sop-page .sop-criteria tfoot td{color:var(--success);line-height:1.4}.sop-page .sop-item{border-top:0;border-left:0;border-right:0;border-radius:0;width:100%}.sop-page .sop-item.selected{border-left:3px solid var(--primary);border-radius:6px}.sop-page .sop-criteria tbody td{height:74px}.sop-page .sop-examples{grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;display:grid}.sop-page .sop-examples :is(.sop-example,.sop-image-slot){width:100%;height:60px;min-height:60px;padding:0}.sop-page .sop-image-slot{color:var(--muted-foreground);border:1px dashed var(--input);background:var(--secondary);flex-direction:column;gap:2px;font-size:12px}.sop-page .sop-image-slot span{font-size:12px}.sop-page .sop-actions{margin-top:10px}.sop-page .sop-actions .outline{padding-inline:18px}.sop-page .sop-actions>.outline{min-width:152px}.sop-page .sop-actions .primary{min-width:162px}.sop-page .sop-criteria tfoot td:nth-child(2){font-size:18px;font-weight:700}.sop-page .sop-footer{font-size:12px}@media (max-width:1250px){.sop-page .sop-editor{padding:18px 16px 13px}}@media (max-width:950px){.sop-page .sop-layout{grid-template-columns:1fr}.sop-page .sop-layout>aside{min-height:0}.sop-page .sop-heading h1{font-size:var(--text-title)}.sop-page .sop-heading p{font-size:var(--text-subtitle)}.sop-page .sop-editor-heading h2{font-size:var(--text-section)}}.sop-calibration-editor{border-top:1px solid var(--border);gap:12px;padding-top:16px;display:grid}.sop-calibration-editor h3,.sop-calibration-editor p{margin:0}.sop-calibration-editor p{color:var(--muted-foreground);font-size:var(--text-caption)}.sop-calibration-anchor{grid-template-columns:1fr 1fr auto;align-items:end;gap:8px;display:grid}.sop-calibration-actions{flex-wrap:wrap;gap:8px;display:flex}@media (max-width:640px){.sop-calibration-anchor{grid-template-columns:1fr 1fr}.sop-calibration-anchor>button{grid-column:1/-1}}.ai-settings-heading-actions,.ai-settings-key-status,.ai-settings-form-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ai-settings-form-actions{justify-content:flex-end;margin-top:8px}.ai-settings-fields{gap:12px;min-width:0;display:grid}.ai-settings-fields p{color:var(--muted-foreground);font-size:var(--text-caption);margin:0}.sop-dialog-form .sop-reference-dropzone{white-space:normal;border:1px dashed var(--input);background:var(--background);width:100%;height:auto;min-height:134px;color:var(--foreground);border-radius:8px;flex-direction:column;gap:4px;padding:14px;display:flex}.sop-dialog-form .sop-reference-dropzone>svg{width:30px;height:30px;color:var(--primary)}.sop-reference-dropzone strong{font-size:var(--text-input)}.sop-reference-dropzone small{color:var(--muted-foreground)}.sop-dialog-form .sop-reference-dropzone:is(:hover,.is-dragging){border-color:var(--primary);background:var(--accent)}.sop-reference-thumbnails{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.sop-threshold-settings{border:1px solid var(--border);background:var(--card);border-radius:12px;gap:12px;margin-block:24px;padding:20px;display:grid}.sop-threshold-settings input{width:min(100%,280px)}.sop-threshold-settings p{color:var(--muted-foreground)}
.scan-page{flex-direction:column;gap:16px;display:flex}.scan-page .scan-heading{margin:0 0 18px;padding:0}.scan-page .upload-panel>.panel-heading{margin-bottom:12px}.scan-page .upload-panel>.panel-heading>div:first-child{display:none}.scan-page .upload-panel .file-actions{grid-area:1/6;align-self:start;gap:8px;padding-top:30px;display:flex}.scan-page .upload-panel .file-actions .file-picker:first-child{display:none}.scan-page .file-actions .file-picker{flex-direction:row}.scan-folder-path>span{border:1px solid var(--input);background:var(--background);height:48px;font-size:var(--text-input);border-radius:6px;align-items:center;gap:12px;min-width:0;padding:0 14px;display:flex}.scan-folder-path>span>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.scan-page .scan-heading h1{align-items:center;gap:18px;display:flex}.scan-page .scan-heading h1:before{content:"";background:var(--primary);flex-shrink:0;width:32px;height:32px;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M3 3h7l2 3h9v15H3z'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M3 3h7l2 3h9v15H3z'/%3E%3C/svg%3E") 50%/contain no-repeat}.scan-page .scan-heading p{margin-left:50px}.scan-page .file-actions .file-picker{min-height:48px;color:var(--primary);border-color:var(--primary);flex:1;justify-content:center}.scan-page .upload-fields{grid-template-columns:minmax(230px,1.7fr) minmax(130px,.9fr) minmax(170px,1.1fr) minmax(160px,1.1fr) minmax(80px,.55fr) minmax(150px,1fr);align-items:start;gap:14px}.scan-page .upload-fields>label,.scan-page .upload-fields .scan-folder-setting>label{text-align:left;min-width:0;font-size:var(--text-label);flex-direction:column;align-items:stretch;gap:8px;line-height:22px;display:flex}.scan-page .upload-fields :is(input,select),.scan-page .upload-fields .date-input{border-radius:8px;height:48px;min-height:48px}.scan-page .upload-fields>.primary{white-space:nowrap;height:48px;margin-top:30px}.scan-page .upload-fields .file-picker{white-space:nowrap;border-radius:8px;height:48px;padding:10px 12px}.scan-page .upload-panel>.panel-heading{display:none}.scan-page .upload-fields>.primary{min-height:48px}.scan-reference-overview{padding:16px 24px 10px}.scan-reference-overview h2{margin:0}.scan-metrics,.scan-buckets{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;display:grid}.scan-metrics{margin:4px 0 12px}.scan-reference-overview .blue{--scan-color:var(--primary);--scan-tint:var(--accent)}.scan-reference-overview .neutral{--scan-color:var(--foreground);--scan-tint:var(--secondary)}.scan-reference-overview .green{--scan-color:var(--success);--scan-tint:var(--success-bg)}.scan-reference-overview .amber{--scan-color:var(--warning);--scan-tint:var(--warning-bg)}.scan-reference-overview .red{--scan-color:var(--destructive);--scan-tint:var(--danger-bg)}.scan-metric{border:1px solid var(--scan-tint);background:var(--scan-tint);color:var(--scan-color);border-radius:8px;align-items:center;gap:28px;padding:12px 20px;display:flex}.scan-metric-icon{background:var(--background);border-radius:12px;place-items:center;width:52px;height:52px;display:grid}.scan-metric p,.scan-bucket p{margin:0}.scan-metric strong,.scan-bucket strong{font-size:var(--text-stat);font-weight:700;line-height:1.25}.scan-metric p{color:var(--muted-foreground)}.scan-metric p strong{color:var(--scan-color);margin-right:6px}.scan-metric>div>span{font-size:var(--text-label);font-weight:600}.scan-bucket{background:var(--scan-tint);border:1px solid color-mix(in srgb, var(--scan-color) 23%, transparent);color:var(--scan-color);border-radius:8px;padding:12px 18px 10px}.scan-bucket-heading{align-items:flex-start;gap:20px;display:flex}.scan-bucket-heading>svg{fill:var(--scan-color);margin-top:2px}.scan-bucket h3{color:var(--scan-color);font-size:var(--text-subsection);margin:0}.scan-page .scan-bucket [data-slot=button][data-variant=outline]{width:100%;height:36px;min-height:36px;color:var(--scan-color);border-color:var(--scan-color);background:0 0;margin-top:8px;padding:4px 10px}.scan-recent-heading{margin:14px 0 4px}.scan-recent-heading button{color:var(--primary)}.scan-recent-table{border:1px solid var(--border);border-radius:6px;overflow:hidden}.scan-recent-table th,.scan-recent-table td{white-space:nowrap;height:34px;padding:3px 14px}.scan-recent-table .scan-filename{white-space:normal;overflow-wrap:anywhere;width:240px;max-width:55vw;display:block}.scan-recent-table td .scan-detail-button{border-color:var(--input);background:var(--background);width:auto;height:32px;color:var(--primary);white-space:nowrap;padding:0 12px}.scan-recent-table td .scan-detail-button:hover{background:var(--accent);border-color:var(--primary)}.scan-recent-table td .scan-thumbnail-button{cursor:zoom-in;width:72px;height:40px;padding:3px;position:relative}.scan-thumbnail-button .scan-thumb{width:66px;height:34px}.scan-thumbnail-button .scan-thumbnail-zoom-icon{background:var(--background);color:var(--primary);border-radius:3px;padding:2px;position:absolute;bottom:3px;right:3px}.scan-image-zoom-toolbar{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin-bottom:12px;display:flex}.scan-image-zoom-viewport{border:1px solid var(--border);background:var(--secondary);border-radius:8px;max-height:65vh;overflow:auto}.scan-image-zoom-preview{object-fit:contain;max-width:none;height:auto;display:block}.scan-thumb{object-fit:cover;border-radius:4px;width:60px;height:28px}.scan-score{text-align:center;min-width:48px;color:var(--scan-color);background:var(--scan-tint);border-radius:7px;font-weight:700;display:inline-block}.scan-storage{color:var(--muted-foreground);align-items:center;gap:12px;display:flex}.scan-storage i{background:var(--scan-color);border-radius:50%;width:10px;height:10px}.scan-empty{text-align:center;color:var(--muted-foreground);padding:30px!important}@media (max-width:1100px){.scan-page .upload-panel .file-actions{grid-area:auto}.scan-metrics,.scan-buckets{gap:12px}.scan-metric{gap:12px;padding:12px}.scan-page .upload-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.scan-bucket{padding:12px}}@media (max-width:720px){.scan-page .scan-heading{padding:16px 14px 0}.scan-page .upload-panel,.scan-reference-overview{padding:14px}.scan-metrics,.scan-buckets{grid-template-columns:repeat(2,minmax(0,1fr))}.scan-metric{gap:8px}.scan-metric-icon{width:36px;height:40px}.scan-bucket-heading{gap:8px}.scan-bucket h3{font-size:var(--text-label)}.scan-page .upload-fields{grid-template-columns:1fr}.scan-recent-heading{align-items:flex-start}}.scan-folder-setting{min-width:0;padding-bottom:25px;position:relative}.scan-folder-setting>label{margin-bottom:8px}.scan-folder-select{align-items:center;gap:0;display:flex;position:relative}.scan-folder-select>svg{z-index:1;pointer-events:none;color:var(--muted-foreground);position:absolute;left:12px}.scan-folder-select [data-slot=native-select-wrapper]{flex:1;min-width:0}.scan-folder-select select{text-overflow:ellipsis;border-right:0;border-radius:8px 0 0 8px;height:48px;padding-left:40px}.scan-folder-select>button{width:44px;height:48px;color:var(--primary);background:var(--accent);border-color:var(--input);border-radius:0 8px 8px 0;flex-shrink:0}.scan-folder-hint{text-overflow:ellipsis;white-space:nowrap;max-width:100%;color:var(--muted-foreground);font-size:var(--text-caption);margin-top:5px;line-height:20px;display:block;overflow:hidden}@media (max-width:1500px) and (min-width:1101px){.scan-page .upload-fields{grid-template-columns:minmax(230px,1.4fr) repeat(3,minmax(150px,1fr))}.scan-page .upload-panel .file-actions{grid-area:2/3}.scan-page .upload-fields>.primary{grid-area:2/4}}@media (max-width:1100px){.scan-page .upload-panel .file-actions{grid-area:auto;padding-top:30px}}@media (max-width:720px){.scan-page .upload-panel .file-actions{padding-top:0}.scan-page .upload-fields>.primary{margin-top:0}.scan-folder-setting{padding-bottom:0}}.scan-folder-dialog{gap:18px;display:grid}.scan-folder-dialog>p{color:var(--muted-foreground);font-size:var(--text-caption)}.scan-folder-list{gap:8px;max-height:230px;display:grid;overflow:auto}.scan-folder-list>div{border:1px solid var(--border);border-radius:8px;align-items:center;gap:8px;padding:10px;display:flex}.scan-folder-list>div>div{flex:1;min-width:0}.scan-folder-list small{overflow-wrap:anywhere;color:var(--muted-foreground);display:block}.scan-folder-dialog .file-actions{flex-wrap:wrap;gap:8px;display:flex}.upload-previews article>.scan-preview-open[data-slot=button]{cursor:zoom-in;background:0 0;border-radius:6px;width:100%;height:auto;padding:0;display:block;position:static;overflow:hidden}.upload-previews .scan-preview-open img{width:100%;display:block}.scan-lightbox{outline:none;min-width:0}.scan-lightbox-stage{background:var(--secondary);border:1px solid var(--border);border-radius:10px;justify-content:center;align-items:center;height:min(65vh,720px);display:flex;overflow:hidden}.scan-lightbox-stage img{object-fit:contain;width:100%;height:100%}.scan-lightbox-controls{color:var(--muted-foreground);justify-content:center;align-items:center;gap:20px;margin-top:14px;display:flex}.scan-lightbox-controls button{min-width:44px;min-height:44px}.scan-source-list[data-slot=tabs-list]{background:var(--secondary);border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;height:auto;padding:0;display:grid;overflow:hidden}.scan-source-list [data-slot=tabs-trigger]{min-width:0;min-height:58px;color:var(--muted-foreground);font-size:var(--text-body);border-bottom:4px solid #0000;border-radius:0;flex-wrap:wrap;padding:12px}.scan-source-list [data-slot=tabs-trigger][data-state=active]{background:var(--accent);color:var(--primary);border-bottom-color:var(--primary)}.scan-source-list [data-slot=badge]{font-size:var(--text-caption)}.scan-source-panel>.panel-heading{display:none}.scan-url-source[data-state=active]{border:1px solid var(--border);background:var(--secondary);border-radius:8px;align-items:center;gap:16px;padding:22px;display:flex}.scan-url-source>svg{color:var(--primary);flex-shrink:0;width:32px;height:32px}.scan-url-source h2{margin:0 0 5px}.scan-url-source p{color:var(--muted-foreground);margin:0}.scan-url-source>div{flex:1}.scan-verification{margin:12px 0 16px}.scan-verification h2{margin:0 0 10px}.scan-method-options[data-slot=radio-group]{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.scan-method-card[data-slot=label]{border:1px solid var(--input);cursor:pointer;border-radius:8px;align-items:center;gap:16px;min-width:0;padding:12px 18px;transition:border-color .15s,background-color .15s;display:flex}.scan-method-card.is-selected{background:var(--accent);border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}.scan-method-card:has(:focus-visible){outline:2px solid var(--ring);outline-offset:3px}.scan-method-card:has([data-disabled]){cursor:wait;opacity:.65}.scan-method-card [data-slot=radio-group-item]{background:var(--background)}.scan-method-icon{background:var(--secondary);width:54px;height:54px;color:var(--foreground);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.is-selected .scan-method-icon{background:var(--card);color:var(--primary)}.scan-method-copy{gap:4px;min-width:0;display:grid}.scan-method-copy strong{font-size:var(--text-body);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.scan-method-copy>span{color:var(--muted-foreground);font-size:var(--text-label);overflow-wrap:anywhere;line-height:1.5}.scan-method-copy [data-slot=badge]{font-size:var(--text-caption)}.scan-sop-summary{justify-content:space-between;align-items:center;gap:24px;display:flex}.scan-sop-details{flex:1;min-width:0}.scan-start[data-slot=button]{flex-shrink:0;min-height:46px}@media (max-width:1200px){.scan-method-card[data-slot=label]{gap:10px;padding:12px}.scan-method-icon{width:44px;height:44px}}@media (max-width:900px){.scan-source-list [data-slot=tabs-trigger]{text-align:center;flex-direction:column;gap:5px;min-height:90px;padding:10px 5px}.scan-method-options[data-slot=radio-group]{grid-template-columns:1fr}.scan-sop-summary{flex-wrap:wrap}.scan-start[data-slot=button]{width:100%}.scan-url-source[data-state=active]{flex-wrap:wrap;padding:16px}}@media (prefers-reduced-motion:reduce){.scan-method-card[data-slot=label]{transition:none}}.scan-page .upload-panel{padding:18px 24px 12px}.scan-page .scan-heading{margin-bottom:12px}.scan-heading .live-label{display:none}.scan-source-tabs{gap:12px}.scan-source-panel[data-state=active]{gap:12px;display:grid}.scan-url-source[data-state=active]{display:flex}.scan-source-list [data-slot=tabs-trigger]{min-height:50px}.scan-step{border:1px solid var(--border);border-radius:12px;min-width:0;padding:12px 16px 14px}.scan-step-title{align-items:center;gap:16px;margin:-8px 0 8px -5px;display:flex}.scan-step-title>span{background:var(--primary);width:36px;height:36px;color:var(--primary-foreground);font-size:var(--text-section);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.scan-source-layout{grid-template-columns:1fr 1fr;gap:28px;margin-left:48px;display:grid}.scan-pick-area{grid-template-columns:minmax(0,1.8fr) minmax(160px,1fr);align-items:center;gap:16px;display:grid;position:relative}.scan-drop-zone[data-slot=button]{white-space:normal;border:2px dashed var(--input);background:var(--secondary);height:146px;color:var(--foreground);text-align:center;flex-direction:column;justify-content:center;gap:4px;padding:16px;display:flex}.scan-drop-zone>svg{color:var(--primary);width:32px;height:32px}.scan-drop-zone strong{font-size:var(--text-subsection)}.scan-drop-zone small{color:var(--muted-foreground);font-size:var(--text-caption)}.scan-drop-zone.is-dragging{background:var(--accent);border-color:var(--primary)}.scan-pick-buttons{gap:12px;display:grid}.scan-pick-buttons [data-slot=button]{min-height:44px;color:var(--primary)}.scan-selection{border-left:1px solid var(--border);min-width:0;padding-left:28px}.scan-selection-heading{justify-content:space-between;align-items:center;gap:8px;min-height:28px;margin-bottom:8px;display:flex}.scan-selection-heading strong{font-size:var(--text-body)}.scan-selection-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-height:230px;padding:2px;display:grid;overflow-y:auto}.scan-selection-grid article{flex-direction:column;min-width:0;display:flex;position:relative}.scan-selected-preview[data-slot=button]{border-radius:7px;width:100%;height:94px;padding:0;display:block;overflow:hidden}.scan-selected-preview img{object-fit:cover;width:100%;height:100%}.scan-selection-grid article>strong{font-size:var(--text-caption);text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-weight:500;overflow:hidden}.scan-selection-grid article>small{font-size:var(--text-caption);color:var(--muted-foreground);overflow-wrap:anywhere}.scan-selection-grid article>small.text-red{color:var(--destructive)}.scan-selection-grid article>small.text-green{color:var(--success)}.scan-remove-file[data-slot=button]{background:var(--card);width:26px;height:26px;min-height:26px;color:var(--foreground);border-radius:50%;position:absolute;top:5px;right:5px}.scan-selection-empty{height:125px;color:var(--muted-foreground);background:var(--secondary);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:6px;display:flex}.scan-selection-empty small{font-size:var(--text-caption)}.scan-destination-step .upload-fields{grid-template-columns:1.2fr 1fr 1.4fr .65fr;gap:14px;margin:0 0 0 48px}.scan-destination-step .upload-fields :is(input,select),.scan-destination-step .scan-date-picker>button{height:44px;min-height:44px}.scan-destination-path{color:var(--muted-foreground);font-size:var(--text-caption);align-items:baseline;gap:6px;margin:4px 0;display:flex}.scan-destination-path>svg{flex-shrink:0;align-self:center}.scan-destination-path>span{flex-shrink:0}.scan-destination-path strong{min-width:0;font-size:inherit;color:var(--primary);overflow-wrap:anywhere;font-weight:500}.scan-verification-step{margin-top:12px}.scan-verification-step .scan-verification{margin:0 0 0 48px}.scan-verification-step .scan-method-card{gap:12px}.scan-sop-summary{background:var(--secondary);border:1px solid var(--border);border-radius:9px;gap:16px;margin-top:6px;padding:12px 16px}.scan-summary-icon{color:var(--primary);flex-shrink:0}.scan-upload-total{font-size:var(--text-subsection);color:var(--primary);display:block}.scan-sop-details>span{font-size:var(--text-caption)}.scan-sop-details h3{font-size:var(--text-body);margin:4px 0}.scan-sop-details p{font-size:var(--text-caption);margin:2px 0}.scan-sop-details small{font-size:var(--text-caption);color:var(--muted-foreground)}.scan-sop-link[data-slot=button]{height:auto;min-height:24px;font-size:var(--text-caption);padding:0 6px}@media (max-width:1200px){.scan-source-layout{grid-template-columns:1.1fr 1fr;gap:18px}.scan-pick-area{grid-template-columns:1fr;gap:8px}.scan-pick-buttons{grid-template-columns:1fr 1fr;gap:8px}.scan-selection{padding-left:18px}.scan-selected-preview[data-slot=button]{height:100px}.scan-destination-step .upload-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:720px){.scan-page .upload-panel{padding:14px 12px}.scan-step{padding:12px}.scan-step-title{gap:10px;margin-left:0}.scan-step-title>span{width:30px;height:30px}.scan-source-layout{grid-template-columns:1fr;margin-left:0}.scan-selection{border-left:0;border-top:1px solid var(--border);padding:12px 0 0}.scan-destination-step .upload-fields{grid-template-columns:1fr;margin-left:0}.scan-verification-step .scan-verification{margin-left:0}.scan-source-list [data-slot=tabs-trigger]{min-height:90px;font-size:var(--text-label)}.scan-sop-summary{gap:10px}.scan-summary-icon{display:none}}
.scan-review-panel .scan-source-list[data-slot=tabs-list]{grid-template-columns:repeat(2,minmax(0,1fr))}.scan-review-panel .scan-source-panel[data-state=active]{flex-direction:column;display:flex}.scan-review-panel .scan-destination-step{background:var(--secondary);order:0;padding:12px 16px}.scan-sop-reference-picker{border:1px solid var(--border);background:var(--secondary);border-radius:10px;gap:10px;margin-bottom:20px;padding:16px;display:grid}.scan-sop-reference-preview{object-fit:contain;background:var(--card);border-radius:8px;width:100%;max-width:480px;height:240px}.scan-sop-reference-picker p{color:var(--muted-foreground);font-size:var(--text-caption);margin:0}.scan-review-intro{order:-2;margin:0}.scan-destination-toolbar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;padding-bottom:8px;display:flex}.scan-destination-toolbar h2{margin:0}.scan-destination-toolbar>div{flex-wrap:wrap;gap:8px;display:flex}.scan-review-panel .scan-destination-step .upload-fields{margin-left:0}.scan-review-panel .scan-destination-path{background:var(--accent);border-radius:6px;margin:8px 0 0;padding:6px 8px}.scan-review-panel .scan-destination-path>small{font-size:var(--text-caption);flex-shrink:0;margin-left:auto}.scan-review-board{grid-template-columns:minmax(220px,.8fr) minmax(300px,1.35fr) minmax(390px,1.3fr);gap:12px;margin-top:12px;display:grid}.scan-review-list,.scan-review-visual,.scan-review-scores{border:1px solid var(--border);background:var(--card);border-radius:10px;min-width:0;padding:12px}.scan-review-list-heading,.scan-review-score-heading{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.scan-review-list-heading h2,.scan-review-score-heading h2{margin:0}.scan-review-list-heading [data-slot=button]{flex-shrink:0}.scan-review-list-tools{align-items:center;gap:6px;margin-bottom:8px;display:flex}.scan-review-list-tools [data-slot=native-select-wrapper]{flex:1;min-width:0}.scan-review-items{scrollbar-gutter:stable;height:460px;overflow-y:auto}.scan-review-items>article{border-bottom:1px solid var(--border);border-radius:6px;padding:6px 24px 6px 0;position:relative}.scan-review-items>article.is-active{background:var(--accent);box-shadow:inset 0 0 0 1px var(--primary)}.scan-review-file[data-slot=button]{text-align:left;white-space:normal;justify-content:flex-start;align-items:center;gap:10px;width:100%;height:auto;padding:6px;display:flex}.scan-review-file img{object-fit:cover;border-radius:6px;flex-shrink:0;width:88px;height:76px}.scan-review-file>span{gap:4px;min-width:0;display:grid}.scan-review-file strong{font-size:var(--text-label);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.scan-review-file small{font-size:var(--text-caption);color:var(--muted-foreground)}.scan-review-file [data-slot=badge]{font-size:var(--text-caption);white-space:normal}.scan-review-file-remove[data-slot=button],.scan-review-file-zoom[data-slot=button]{width:26px;height:26px;min-height:26px;position:absolute;right:2px}.scan-review-file-remove{top:4px}.scan-review-file-zoom{bottom:7px}.scan-review-items article>small{font-size:var(--text-caption);padding:4px 8px;display:block}.scan-review-visual{flex-direction:column;display:flex}.scan-compare-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.scan-compare-pair figure{min-width:0;margin:0}.scan-compare-pair figcaption{font-size:var(--text-label);margin-bottom:8px;font-weight:600}.scan-compare-pair .scan-review-stage{height:300px;min-height:180px}.scan-reference-choices{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.scan-reference-choices [data-slot=button]{height:auto;font-size:var(--text-caption);gap:4px;padding:6px;display:grid}.scan-reference-choices img{object-fit:contain;background:var(--secondary);border-radius:4px;width:56px;height:48px}.scan-compare-similarity{font-size:var(--text-label);margin-top:12px}.scan-compare-score{border:1px solid var(--border);background:var(--accent);border-radius:8px;gap:6px;margin-top:12px;padding:14px;display:grid}.scan-compare-score>span{color:var(--primary);font-size:var(--text-stat);font-weight:700}.scan-compare-score small{color:var(--muted-foreground);font-size:var(--text-caption)}.scan-reference-full{object-fit:contain;width:100%;max-height:75vh}.scan-review-scores .scan-ai-attribution{overflow-wrap:anywhere;gap:4px;display:grid}.scan-review-stage{background:var(--secondary);border-radius:7px;justify-content:center;align-items:center;height:490px;min-height:300px;display:flex;position:relative;overflow:hidden}.scan-review-stage>img{object-fit:contain;width:100%;height:100%}.scan-review-zoom[data-slot=button]{background:var(--card);position:absolute;top:8px;right:8px}.scan-review-navigation{justify-content:space-between;align-items:center;gap:10px;padding-top:12px;display:flex}.scan-review-navigation>div{text-align:center;min-width:0}.scan-review-navigation strong{text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-body);display:block;overflow:hidden}.scan-review-navigation small{color:var(--muted-foreground);font-size:var(--text-caption);margin-top:4px;display:block}.scan-review-scores{flex-direction:column;gap:8px;display:flex}.scan-review-score-heading{flex-wrap:wrap;margin-bottom:0}.scan-review-score-heading [data-slot=badge]{font-size:var(--text-caption)}.scan-review-ai-toolbar{background:var(--secondary);border-radius:7px;gap:8px;padding:12px;display:grid}.scan-review-ai-toolbar p{font-size:var(--text-caption);color:var(--muted-foreground);margin:0}.scan-review-ai-toolbar [data-slot=button]{white-space:normal;width:100%;height:auto;min-height:40px}.scan-review-score-fieldset{border:0;min-width:0;max-height:440px;margin:0;padding:0;overflow:auto}.scan-review-score-table{width:100%;font-size:var(--text-label)}.scan-review-score-table :is(th,td){border:1px solid var(--border);vertical-align:middle;padding:9px 8px}.scan-review-score-table th{background:var(--secondary);color:var(--foreground);font-size:var(--text-label);white-space:normal;font-weight:600}.scan-review-score-table [data-slot=label]{font-size:var(--text-label);display:block}.scan-review-score-table td:nth-child(2){text-align:center;color:var(--muted-foreground)}.scan-review-score-table td:last-child{width:100px}.scan-review-score-table input{text-align:center;min-width:70px;height:42px;font-size:var(--text-input)}.scan-review-shortcuts{flex-wrap:wrap;align-items:center;gap:4px;margin-top:6px;display:flex}.scan-review-shortcuts [data-slot=button]{min-width:27px;height:30px;min-height:30px;font-size:var(--text-body);color:var(--primary);padding:3px 5px}.scan-review-shortcuts [aria-pressed=true]{background:var(--primary);color:var(--primary-foreground)}.scan-review-total{background:var(--secondary);border-radius:7px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding:10px 12px;display:flex}.scan-review-total small{font-size:var(--text-caption);color:var(--muted-foreground);font-weight:400;display:block}.scan-review-total>strong{font-size:var(--text-title);line-height:1.2}.scan-review-total>strong small{display:inline}.scan-review-total.is-passed{background:var(--success-bg);color:var(--success)}.scan-review-total.is-failed{background:var(--danger-bg);color:var(--destructive)}.scan-review-footer{border:1px solid var(--border);background:var(--card);box-shadow:0 4px 16px var(--border);border-radius:10px;flex-wrap:wrap;grid-column:1/-1;justify-content:space-between;align-items:center;gap:16px;padding:12px 16px;display:flex}.scan-review-progress{grid-template-columns:minmax(160px,300px) auto;gap:5px 12px;display:grid}.scan-review-progress strong{font-size:var(--text-label);grid-column:1/-1}.scan-review-progress progress{width:100%;height:10px;accent-color:var(--primary);appearance:none;border:0;border-radius:6px;align-self:center;overflow:hidden}.scan-review-progress progress::-webkit-progress-bar{background:var(--secondary)}.scan-review-progress progress::-webkit-progress-value{background:var(--primary)}.scan-review-progress progress::-moz-progress-bar{background:var(--primary)}.scan-review-progress small{font-size:var(--text-caption);color:var(--muted-foreground)}.scan-review-optimization{grid-column:1/-1;max-width:620px}.scan-review-actions{flex-wrap:wrap;gap:8px;display:flex}@media (max-width:1350px){.scan-review-board{grid-template-columns:minmax(200px,.75fr) minmax(260px,1fr) minmax(350px,1.2fr)}.scan-review-file img{width:65px;height:65px}.scan-review-list-heading{flex-wrap:wrap}}@media (max-width:1100px){.scan-review-board{grid-template-columns:minmax(200px,.7fr) minmax(0,1.3fr)}.scan-review-scores{grid-column:1/-1}.scan-review-score-fieldset{max-height:none}.scan-review-items{height:400px}.scan-review-stage{height:410px}.scan-destination-toolbar{flex-wrap:wrap;align-items:flex-start}}@media (max-width:720px){.scan-review-board{grid-template-columns:minmax(0,1fr)}.scan-review-items{height:220px}.scan-review-stage{height:340px;min-height:220px}.scan-review-scores{grid-column:auto}.scan-review-footer{padding:12px;position:static}.scan-review-progress{grid-template-columns:minmax(0,1fr);width:100%}.scan-review-actions{grid-template-columns:1fr 1fr;width:100%;display:grid}.scan-review-actions>:last-child{grid-column:1/-1}.scan-destination-toolbar>div{gap:6px}.scan-destination-toolbar [data-slot=button]{padding-inline:8px}.scan-review-panel .scan-destination-path{flex-wrap:wrap}.scan-review-panel .scan-destination-path>small{width:100%;margin-left:0}.scan-review-panel .scan-source-list [data-slot=tabs-trigger]{min-height:66px}}.scan-review-panel .scan-heading>div>p,.scan-review-intro{display:none}.scan-review-panel .scan-source-list[data-slot=tabs-list]{background:var(--card);border:1px solid var(--border);border-radius:8px 8px 0 0;width:min(560px,100%)}.scan-review-panel .scan-source-list [data-slot=tabs-trigger]{min-height:44px;padding:8px 16px}.scan-review-panel .scan-source-list [data-state=active]{color:var(--primary-foreground);background:var(--primary);border-bottom-color:var(--primary)}.scan-review-panel .scan-destination-step{background:var(--card)}.scan-review-panel .scan-destination-toolbar{border:0;padding:0}.scan-review-panel .scan-destination-step .upload-fields{grid-template-columns:1.2fr 1.1fr 1fr .6fr;max-width:900px;margin-left:48px}.scan-review-panel .scan-destination-path{margin-left:48px}.scan-review-panel .scan-step{border-radius:8px}.scan-review-board{border:1px solid var(--border);background:var(--card);border-radius:8px;grid-template-columns:minmax(230px,.85fr) minmax(380px,2.1fr) minmax(340px,1.12fr);align-items:start;padding:12px}.scan-review-step-heading{grid-column:1/-1;margin:0}.scan-review-list,.scan-review-visual{border:0;padding:0}.scan-review-list{background:var(--card);border:1px solid var(--border);padding:10px}.scan-review-list-heading h2{font-size:var(--text-label)}.scan-review-list-heading>button,.scan-review-list>button{display:none}.scan-review-items{height:360px}.scan-review-file [data-slot=badge]{color:var(--primary);background:0 0;border:0;padding:0}.scan-review-file>span{flex:1}.scan-review-file strong{font-weight:500}.scan-primary-photo{margin:0}.scan-primary-photo .scan-review-stage{height:clamp(260px,24vw,420px);min-height:240px}.scan-primary-photo figcaption{font-size:var(--text-label);padding:6px 0}.scan-reference-heading{font-size:var(--text-label);margin:4px 0}.scan-review-visual .scan-reference-choices{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;max-height:180px;margin:0;display:grid;overflow:auto}.scan-review-visual .scan-reference-choices [data-slot=button]{min-width:0;font-size:var(--text-caption);white-space:normal;align-content:start;padding:2px;overflow:hidden}.scan-review-visual .scan-reference-choices img{object-fit:cover;width:100%;height:68px}.scan-reference-expand{align-self:flex-start}.scan-review-navigation{padding-top:6px}.scan-review-scores{padding:12px}.scan-review-scores .scan-review-score-heading{display:none}.scan-review-scores .scan-verification{margin:0}.scan-review-scores .scan-method-options[data-slot=radio-group]{border:1px solid var(--border);border-radius:6px;gap:0;display:flex;overflow:hidden}.scan-review-scores .scan-method-card[data-slot=label]{border:0;border-radius:0;flex:1;justify-content:center;gap:6px;min-width:0;padding:8px 4px}.scan-review-scores .scan-method-card.is-selected{box-shadow:none;background:var(--primary);color:var(--primary-foreground)}.scan-review-scores .scan-method-card [data-slot=radio-group-item]{opacity:0;width:1px;height:1px;position:absolute}.scan-review-scores .scan-method-copy>span,.scan-review-scores .scan-method-copy [data-slot=badge]{display:none}.scan-review-scores .scan-method-copy strong{font-size:var(--text-label)}.scan-review-scores .scan-method-icon,.scan-review-scores .is-selected .scan-method-icon{width:22px;height:22px;color:inherit;background:0 0}.scan-review-scores .scan-method-icon svg{width:20px;height:20px}.scan-criterion-heading{font-size:var(--text-label);justify-content:space-between;align-items:center;gap:10px;display:flex}.scan-review-score-fieldset>.scan-criterion-heading{background:var(--secondary);border-radius:6px;padding:6px}.scan-criterion-card{border-bottom:1px solid var(--border);padding:10px 0}.scan-criterion-input{align-items:center;gap:14px;margin:8px 0;display:flex}.scan-criterion-input input{font-size:var(--text-section);font-weight:700}.scan-criterion-input>span{white-space:nowrap}.scan-criterion-card .scan-review-shortcuts{grid-template-columns:repeat(5,1fr);margin:8px 0 10px;display:grid}.scan-criterion-card textarea{min-height:56px}.scan-note-count{text-align:right;font-size:var(--text-caption);color:var(--muted-foreground);display:block}.scan-review-total{background:var(--card);border-top:1px solid var(--border);border-radius:0;margin-top:8px;padding:8px 0 0}.scan-review-total>div>small{display:none}.scan-review-footer{z-index:5;box-shadow:0 -4px 16px color-mix(in srgb, var(--border) 35%, transparent);border-radius:0 0 8px 8px;margin:0 -12px -12px;position:sticky;bottom:0}.scan-review-progress{flex-wrap:wrap;flex:1;align-items:center;display:flex}.scan-review-progress progress{width:min(260px,100%)}.scan-review-progress>small{display:none}.scan-review-actions>:last-child{background:var(--card);border:1px solid var(--primary);color:var(--primary)}.scan-clip-result{border:1px solid var(--border);border-radius:8px;gap:4px;padding:12px;display:grid}.scan-clip-value{justify-content:space-between;align-items:center;gap:12px;display:flex}.scan-clip-value>strong{font-size:var(--text-stat);color:var(--primary)}.scan-clip-value>span{color:var(--primary);background:var(--accent);font-size:var(--text-caption);border-radius:6px;padding:10px}.scan-clip-ranking{margin:6px 0 0;padding:0;list-style:none}.scan-clip-ranking li{font-size:var(--text-label);align-items:center;gap:10px;margin:6px 0;display:flex}.scan-clip-ranking progress{min-width:0;height:10px;accent-color:var(--primary);flex:1}.scan-clip-actions{flex-wrap:wrap;gap:8px;display:flex}.scan-clip-actions>button{flex:1}.scan-presets-layout{grid-template-columns:35% minmax(0,1fr);display:grid}.scan-presets-layout>aside{border-right:1px solid var(--border);padding:20px}.scan-presets-layout>section{gap:14px;min-width:0;padding:20px;display:grid}.scan-presets-layout h3{font-size:var(--text-section);margin:0}.scan-presets-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:14px;display:flex}.scan-presets-list{gap:12px;display:grid}.scan-presets-list>div{border:1px solid var(--border);border-radius:8px;align-items:center;gap:2px;padding:10px 4px;display:flex}.scan-presets-list>div.is-selected{border-color:var(--primary);background:var(--accent)}.scan-presets-list>div>button:first-child{white-space:normal;flex:1;justify-content:flex-start;min-width:0}.scan-presets-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.scan-presets-current input{width:22px;height:22px;accent-color:var(--primary)}.scan-presets-hint{color:var(--muted-foreground);font-size:var(--text-caption)}.scan-presets-path{background:var(--accent);overflow-wrap:anywhere;border-radius:8px;padding:14px}.scan-presets-path p{align-items:center;gap:12px;margin:8px 0 0;display:flex}.scan-presets-path svg{flex-shrink:0}.scan-presets-layout>section>button{justify-self:end}.scan-presets-footer{border-top:1px solid var(--border);align-items:center;gap:14px;padding:16px 20px;display:flex}.scan-presets-footer>span{color:var(--muted-foreground);margin-left:auto}.scan-presets-footer>button:last-child{margin-left:auto}@media (max-width:1200px){.scan-review-board{grid-template-columns:minmax(200px,.7fr) minmax(300px,1.4fr)}.scan-review-scores{grid-column:1/-1}.scan-review-scores .scan-method-card[data-slot=label]{padding:10px}}@media (max-width:720px){.scan-review-board{grid-template-columns:minmax(0,1fr)}.scan-review-panel .scan-destination-step .upload-fields{grid-template-columns:1fr;margin-left:0}.scan-review-panel .scan-destination-path{margin-left:0}.scan-review-panel .scan-source-list [data-slot=tabs-trigger]{white-space:normal}.scan-review-items{height:220px}.scan-primary-photo .scan-review-stage{height:270px;min-height:220px}.scan-review-visual .scan-reference-choices{grid-template-columns:repeat(3,minmax(0,1fr))}.scan-review-footer{margin:0;position:static}.scan-review-progress{display:grid}.scan-presets-layout{grid-template-columns:minmax(0,1fr)}.scan-presets-layout>aside{border-right:0;border-bottom:1px solid var(--border);padding:12px}.scan-presets-layout>section{padding:12px}.scan-presets-fields{grid-template-columns:1fr}.scan-presets-footer{flex-wrap:wrap;gap:8px;padding:12px}}.scan-review-panel .scan-review-intro{display:none}.scan-review-scores .scan-method-card:has([data-disabled]){opacity:.5;cursor:not-allowed}.scan-clip-ranking progress::-webkit-progress-value{background:var(--primary)}.scan-clip-ranking progress::-moz-progress-bar{background:var(--primary)}.scan-review-board.is-clip .scan-review-score-fieldset,.scan-review-board.is-clip .scan-review-total{display:none}.scan-review-board .scan-compare-similarity{display:none}.scan-review-board .scan-reference-expand{height:26px;min-height:26px;font-size:var(--text-caption);padding:0}.scan-review-board .scan-review-navigation{padding-top:4px}.scan-review-board .scan-review-navigation small{display:none}.scan-review-board .scan-review-navigation>button{width:32px;height:32px;min-height:32px}.scan-review-panel .scan-step-title{margin-top:0;margin-bottom:8px}.scan-review-file[data-slot=button]{position:relative}.scan-review-file>.scan-file-number{width:26px;height:26px;color:var(--primary-foreground);background:var(--muted-foreground);font-size:var(--text-body);border-radius:4px;place-items:center;font-weight:700;display:grid;position:absolute;top:6px;left:6px}.scan-review-file>.scan-file-number.is-complete{background:var(--success)}.scan-review-items>article.is-active .scan-file-number{background:var(--primary)}.scan-page .upload-panel.scan-review-panel{box-shadow:none;background:0 0;border:0;padding:0}.scan-page .scan-review-panel .scan-heading{margin-bottom:12px;padding:0}.scan-review-board .scan-review-items{height:320px}@media (max-width:720px){.scan-review-board.is-manual .scan-review-score-fieldset{max-height:none}.scan-review-board .scan-review-items{height:220px}}.scan-presets-layout>section>[data-slot=label],.scan-presets-fields>[data-slot=label]{align-items:start;gap:8px;display:grid}.scan-presets-layout>section>.scan-presets-current{align-items:center;display:flex}@media (max-width:720px){.scan-presets-dialog.dialog[data-slot=dialog-content]{max-height:90dvh;top:5dvh;left:15px;right:15px;transform:translate(0,0);width:calc(100vw - 30px)!important}}.scan-empty-list{text-align:center;min-height:320px;color:var(--muted-foreground);font-size:var(--text-label);place-content:center;display:grid}.scan-empty-stage{height:300px;color:var(--muted-foreground);border:1px dashed var(--input);flex-direction:column;gap:12px}.scan-empty-stage>span{font-size:var(--text-caption);text-align:center}.scan-review-empty .scan-review-stage>svg{color:var(--primary)}.scan-page .scan-select-step{background:var(--card)}.scan-review-empty .scan-criterion-card input{margin-top:10px}@media (min-width:1201px){.scan-review-board{grid-template-columns:minmax(220px,.85fr) minmax(360px,2.1fr) minmax(340px,1.12fr)}}@media (max-width:720px){.scan-presets-dialog.dialog[data-slot=dialog-content]{--tw-translate-x:0px!important;--tw-translate-y:0px!important;transform:none!important}}.scan-page .scan-heading h1:before{display:none}.scan-review-panel .scan-source-list[data-slot=tabs-list]{z-index:1;margin-bottom:-12px}.scan-photo-comparison{grid-template-columns:minmax(0,1.08fr) 24px minmax(0,1fr);align-items:stretch;gap:8px;display:grid}.scan-comparison-card{border:2px solid var(--primary);background:linear-gradient(var(--accent), var(--card) 78%);border-radius:10px;flex-direction:column;min-width:0;margin:0;padding:10px;display:flex}.scan-reference-photo{border-color:var(--reference);background:linear-gradient(var(--reference-surface), var(--card) 78%)}.scan-comparison-heading{min-height:84px;color:var(--primary);flex-shrink:0;align-items:flex-start;gap:12px;padding:5px 5px 18px;display:flex;position:relative}.scan-comparison-heading>svg{flex-shrink:0;width:34px;height:34px;margin-top:3px}.scan-comparison-heading>div{min-width:0}.scan-comparison-heading h2{color:var(--primary);font-size:var(--text-section);margin:0}.scan-comparison-heading>div>span{font-size:var(--text-label);color:var(--muted-foreground)}.scan-comparison-heading [data-slot=badge]{color:var(--primary);background:color-mix(in srgb, var(--primary) 19%, var(--card));gap:5px;padding:5px 8px;position:absolute;bottom:7px;right:5px}.scan-reference-photo .scan-comparison-heading,.scan-reference-photo .scan-comparison-heading h2{color:var(--reference-foreground)}.scan-reference-photo .scan-comparison-heading [data-slot=badge]{color:var(--reference-foreground);background:var(--reference-accent)}.scan-comparison-arrow{width:24px;color:var(--muted-foreground);align-self:center}.scan-comparison-card .scan-review-stage{border:1px solid var(--border);flex-shrink:0;height:clamp(220px,15.6vw,300px);min-height:0}.scan-comparison-card .scan-review-stage>img{object-fit:cover}.scan-primary-photo .scan-review-stage{height:clamp(250px,16vw,320px)}.scan-comparison-card .scan-review-zoom[data-slot=button]{border:2px solid var(--primary-foreground);width:46px;height:46px;color:var(--primary-foreground);background:color-mix(in srgb, var(--foreground) 85%, transparent);box-shadow:var(--surface-shadow);border-radius:18px}.scan-comparison-card .scan-review-zoom svg{width:28px;height:28px}.scan-photo-guidance{background:var(--accent);min-height:100px;font-size:var(--text-body);border-radius:8px;justify-content:center;align-items:center;gap:16px;margin-top:14px;display:flex}.scan-photo-guidance svg{width:28px;height:28px;color:var(--primary)}.scan-reference-photo .scan-reference-heading{margin:10px 2px 6px;display:block}.scan-review-visual .scan-reference-choices{grid-template-columns:repeat(3,minmax(0,1fr));align-content:start;gap:8px;min-height:0;max-height:148px}.scan-reference-photo .scan-reference-choices [data-slot=button]{background:var(--card);color:var(--muted-foreground);border:2px solid #0000;border-radius:7px;padding:2px}.scan-reference-photo .scan-reference-choices [aria-pressed=true][data-slot=button]{background:var(--reference);border-color:var(--reference);color:var(--primary-foreground)}.scan-reference-photo .scan-reference-choices img{border-radius:4px;height:64px}.scan-file-status{color:var(--muted-foreground);pointer-events:none;position:absolute;top:18px;right:7px}.scan-file-status svg{width:19px;height:19px}.is-evaluated .scan-file-status,.is-evaluated .scan-review-file [data-slot=badge]{color:var(--success)}.scan-review-items article .scan-review-file-remove,.scan-review-items article .scan-review-file-zoom{opacity:0}.scan-review-items article:hover .scan-review-file-remove,.scan-review-items article:hover .scan-review-file-zoom,.scan-review-items article:focus-within .scan-review-file-remove,.scan-review-items article:focus-within .scan-review-file-zoom{opacity:1;background:var(--card)}.scan-review-list-tools,.scan-review-file>span>small{display:none}.scan-review-file[data-slot=button]{min-height:80px}.scan-review-file img{height:68px}.scan-clip-status{border:1px solid var(--border);border-radius:7px;gap:5px;margin:10px -5px 6px;padding:9px;display:grid}.scan-clip-status p{font-size:var(--text-label);grid-template-columns:1fr 1.15fr;gap:10px;margin:0;display:grid}.scan-clip-status .is-complete{color:var(--success)}.scan-clip-ranking progress{appearance:none;border:0;border-radius:20px;overflow:hidden}.scan-clip-ranking progress::-webkit-progress-bar{background:var(--secondary)}.scan-clip-ranking progress::-webkit-progress-value{background:var(--primary);border-radius:20px}.scan-clip-ranking li:nth-child(2) progress::-webkit-progress-value{background:color-mix(in srgb, var(--primary) 55%, var(--card))}.scan-clip-ranking li:nth-child(3) progress::-webkit-progress-value{background:color-mix(in srgb, var(--primary) 28%, var(--card))}.scan-review-scores .scan-method-card:focus-within{outline:2px solid var(--ring);outline-offset:-3px}.scan-review-board.is-clip .scan-review-navigation,.scan-review-board.is-clip .scan-review-actions .scan-save-next{display:none}.scan-review-board.is-clip .scan-review-actions>:first-child{color:var(--primary);border-color:var(--primary)}.scan-review-board .scan-review-actions>:last-child{background:var(--primary);color:var(--primary-foreground);min-height:54px;padding-inline:28px}.scan-review-progress strong{white-space:nowrap;font-size:var(--text-body);align-items:center;gap:10px;display:flex}.scan-review-progress strong svg{color:var(--primary)}@media (min-width:1201px){.scan-review-board{grid-template-columns:minmax(240px,.8fr) minmax(0,2.22fr) minmax(330px,1fr);gap:12px}.scan-review-step-heading{white-space:nowrap;grid-area:1/1;align-self:start}.scan-review-list{grid-area:1/1;margin-top:46px}.scan-review-visual{grid-area:1/2}.scan-review-scores{border:0;grid-area:1/3;padding:5px 0 10px}.scan-review-board .scan-review-items{height:390px}.scan-review-footer{min-height:82px;margin-top:10px}.scan-review-progress progress{border-radius:20px;width:clamp(160px,23vw,460px);height:14px}}@media (min-width:721px) and (max-width:1200px){.scan-review-board{grid-template-columns:minmax(200px,.65fr) minmax(0,2fr)}.scan-review-scores{grid-column:1/-1}}@media (max-width:720px){.scan-photo-comparison{grid-template-columns:minmax(0,1fr)}.scan-comparison-arrow{justify-self:center;transform:rotate(90deg)}.scan-comparison-card .scan-review-stage{height:260px}.scan-comparison-heading{min-height:95px}.scan-photo-guidance{min-height:70px}.scan-review-board .scan-review-actions>:last-child{padding-inline:14px}}.scan-review-visual .scan-reference-photo .scan-reference-choices [aria-pressed=true][data-slot=button]{background:var(--reference);border-color:var(--reference);color:var(--primary-foreground)}.scan-coming-soon{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:320px;display:flex}.scan-coming-soon>svg{color:var(--primary)}.scan-coming-soon h2{margin:0}.scan-coming-soon p{color:var(--muted-foreground);margin:0}.scan-page .scan-review-panel .scan-heading{margin-bottom:0}.scan-review-panel .scan-source-list[data-slot=tabs-list]{grid-template-columns:minmax(0,210fr) minmax(0,318fr);width:528px;max-width:100%}.scan-review-panel .scan-source-list [data-slot=tabs-trigger]{min-height:42px}.scan-review-panel .scan-source-panel[data-state=active]{gap:14px}.scan-review-board{margin-top:14px}.scan-comparison-heading{gap:18px;min-height:88px;padding:6px 16px 20px}.scan-comparison-heading h2{white-space:nowrap;font-weight:600}.scan-comparison-heading>div>span{color:var(--muted-foreground);font-size:var(--text-body)}.scan-comparison-heading [data-slot=badge]{font-size:var(--text-label);padding:6px 9px;bottom:7px}.scan-photo-guidance{min-height:104px;margin-top:14px}.scan-review-visual .scan-reference-choices{grid-template-columns:repeat(3,minmax(0,1fr))}.scan-review-visual .scan-reference-choices [data-slot=button]{font-size:var(--text-label);flex-direction:column;align-items:stretch;gap:0;padding:2px;display:flex}.scan-reference-choices [data-slot=button]>span{padding:6px 2px}.scan-review-visual .scan-reference-choices img{width:100%;height:64px}.scan-reference-photo .scan-reference-heading{margin-top:10px;margin-bottom:6px}.scan-review-list{border-radius:8px;padding:10px 5px 0}.scan-review-list-heading{margin:0 6px 8px}.scan-review-file[data-slot=button]{gap:12px;min-height:80px;padding:5px}.scan-review-items>article{border-bottom:0;margin-bottom:5px;padding:0 21px 0 0}.scan-review-items>article.is-active{box-shadow:inset 0 0 0 1px var(--ring)}.scan-review-file img{width:46%;height:70px}.scan-review-file>.scan-file-number{width:30px;height:30px;top:5px;left:5px}.scan-review-file [data-slot=badge]{color:var(--muted-foreground)}.scan-review-file strong{font-size:var(--text-label)}.scan-review-scores{gap:8px}.scan-review-scores .scan-method-card[data-slot=label]{min-height:42px;padding:8px 5px}.scan-review-scores .scan-method-copy strong{font-size:var(--text-body);font-weight:500}.scan-clip-sop-heading{justify-content:space-between;align-items:center;gap:5px;min-height:30px;display:flex}.scan-clip-sop-heading>strong{font-size:var(--text-body)}.scan-clip-sop-heading>button[data-slot=button]{min-width:0;height:auto;font-size:var(--text-caption);color:var(--muted-foreground);padding:0}.scan-clip-sop-heading>button svg{width:16px;height:16px}.scan-clip-result{gap:0;padding:8px 14px 10px}.scan-clip-value{min-height:68px;margin-top:0}.scan-clip-value>strong{font-size:var(--text-similarity);line-height:1.1}.scan-clip-value>span{font-size:var(--text-label);padding:12px 16px;font-weight:600}.scan-clip-status{gap:7px;margin:10px -7px 8px;padding:8px}.scan-clip-status p{font-size:var(--text-body);grid-template-columns:1fr 1.15fr}.scan-clip-ranking{margin:4px 0 0}.scan-clip-ranking li{font-size:var(--text-body);margin:5px 0}.scan-clip-ranking li>span{min-width:96px}.scan-clip-ranking li>strong{text-align:right;min-width:40px;color:var(--muted-foreground)}.scan-clip-ranking li:first-child>strong{color:var(--foreground)}.scan-clip-ranking progress{height:12px}.scan-clip-actions{flex-wrap:nowrap;gap:10px}.scan-clip-actions>button[data-slot=button]{height:44px;color:var(--primary);border-color:var(--primary);background:var(--card);white-space:nowrap;padding:8px 10px}.scan-footer-count{font-size:var(--text-body);color:var(--muted-foreground);border-left:1px solid var(--border);white-space:nowrap;padding-left:22px}@media (min-width:1201px){.scan-page.is-reviewing{padding-bottom:92px}.scan-review-board{grid-template-columns:minmax(270px,.79fr) minmax(0,2.25fr) minmax(355px,.97fr);gap:14px;min-height:520px;padding:5px 10px 10px}.scan-review-step-heading{padding:3px 5px 0}.scan-review-list{margin-top:52px}.scan-review-board .scan-review-items{height:408px}.scan-photo-comparison{grid-template-columns:minmax(0,1.08fr) 24px minmax(0,1fr);gap:8px}.scan-comparison-card{height:498px;padding:10px}.scan-comparison-card .scan-review-stage{height:228px}.scan-primary-photo .scan-review-stage{height:264px}.scan-review-board .scan-review-footer{border:0;border-top:1px solid var(--border);border-radius:0;flex-wrap:nowrap;gap:22px;min-height:84px;margin:0;padding:7px 2.25%;position:fixed;bottom:0;left:0;right:0}.scan-review-progress{flex-wrap:nowrap;gap:18px}.scan-review-progress progress{width:min(29.5vw,492px);height:16px}.scan-review-actions{flex-wrap:nowrap;align-items:center;gap:14px}.scan-review-actions>button[data-slot=button]{height:54px;min-height:54px;padding:10px 24px}.scan-review-actions>button:last-child[data-slot=button]{height:54px;padding-inline:30px}.scan-review-actions>button svg{width:28px;height:28px}}.scan-manual-method{border:1px solid var(--border);border-radius:8px;padding:5px 8px}.scan-manual-method>strong{font-size:var(--text-body);margin-bottom:4px;display:block}.scan-manual-method .scan-method-copy strong{white-space:nowrap;font-size:var(--text-label);flex-wrap:nowrap}.scan-manual-method .scan-method-card[data-slot=label]{gap:5px;height:38px;min-height:38px;padding:5px 3px}.scan-manual-method .scan-method-icon{flex-shrink:0}.scan-manual-method .scan-method-icon svg{width:19px;height:19px}.scan-manual-sop{font-size:var(--text-body);align-items:center;gap:10px;padding:0;display:flex}.scan-manual-sop svg{width:21px;height:21px}.scan-review-board.is-manual .scan-review-scores{border:1px solid var(--border);border-radius:8px;gap:6px;padding:5px 8px 8px}.scan-review-board.is-manual .scan-review-score-fieldset{max-height:278px}.scan-review-board.is-manual .scan-review-score-fieldset>.scan-criterion-heading{padding:7px 5px}.scan-review-board.is-manual .scan-criterion-card{border:0;padding:8px 0 0}.scan-review-board.is-manual .scan-criterion-heading [data-slot=label]{align-items:center;gap:10px;display:flex}.scan-criterion-number{background:var(--secondary);border-radius:5px;flex-shrink:0;place-items:center;width:30px;height:28px;display:inline-grid}.scan-review-board.is-manual .scan-criterion-input{gap:14px;margin:8px 5px 8px 44px}.scan-review-board.is-manual .scan-criterion-input input{height:46px;font-size:var(--text-section)}.scan-review-board.is-manual .scan-criterion-input>span{font-size:var(--text-section)}.scan-review-board.is-manual .scan-review-shortcuts{gap:9px;margin:8px 12px 12px 44px}.scan-review-board.is-manual .scan-review-shortcuts button{border:1px solid var(--border);background:var(--secondary);color:var(--foreground);height:32px}.scan-review-board.is-manual .scan-review-shortcuts [aria-pressed=true]{background:var(--primary);color:var(--primary-foreground)}.scan-review-board.is-manual .scan-criterion-card textarea{resize:vertical;min-height:66px}.scan-review-board.is-manual .scan-note-count{margin-top:2px}.scan-review-board.is-manual .scan-review-total{color:var(--foreground);background:0 0;margin-top:0;padding:10px 2px 0;display:block}.scan-review-board.is-manual .scan-review-total>strong{font-size:calc(var(--text-section) * 2);margin-top:5px;font-weight:700;line-height:1.1;display:block}.scan-review-board.is-manual .scan-review-total>strong small{font-size:var(--text-section);color:var(--foreground)}.scan-review-board.is-manual .scan-review-total>[data-slot=badge],.scan-review-board.is-manual .scan-review-navigation{display:none}.scan-review-board.is-manual .scan-review-actions>:first-child{color:var(--primary);border-color:var(--primary)}@media (min-width:1201px){.scan-review-board.is-manual .scan-review-scores{height:498px;min-height:498px}.scan-review-board.is-manual .scan-review-score-fieldset{flex:1;min-height:0;max-height:none}.scan-review-board.is-manual .scan-review-total{flex-shrink:0}.scan-review-board.is-manual .scan-review-progress progress{width:clamp(130px,29vw,492px)}.scan-review-board.is-manual .scan-review-actions>button[data-slot=button]{padding-inline:18px}.scan-review-board.is-manual .scan-review-actions{gap:12px}.scan-review-board.is-manual .scan-review-footer{gap:10px}}@media (max-width:720px){.scan-review-board.is-manual .scan-review-score-fieldset{max-height:none}.scan-review-board.is-manual .scan-criterion-input{margin-left:0}.scan-review-board.is-manual .scan-review-shortcuts{margin-left:0;margin-right:0}}.scan-reference-photo .scan-reference-choices{scrollbar-gutter:stable;flex:1;grid-auto-rows:104px;max-height:none;overflow-y:auto}.scan-reference-photo .scan-reference-choices [data-slot=button]{height:104px;min-height:104px}.scan-reference-photo .scan-reference-choices img,.scan-reference-photo .scan-reference-choices [data-slot=button]>span,.scan-reference-photo .scan-reference-heading{flex-shrink:0}.scan-comparison-heading>div>span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.scan-comparison-heading [data-slot=badge]{max-width:calc(100% - 12px)}.scan-empty-criteria{font-size:var(--text-label);color:var(--muted-foreground);text-align:center;padding:20px 10px}.scan-review-empty .scan-empty-stage{text-align:center;padding:16px}.scan-review-empty .scan-empty-stage:has(>img){border:1px solid var(--border);padding:0}.scan-review-empty .scan-empty-stage>img{object-fit:cover}.scan-review-empty .scan-empty-stage>strong{font-size:var(--text-body)}.scan-review-empty .scan-review-scores :disabled{cursor:not-allowed}.scan-review-empty .scan-empty-list{min-height:390px;padding:16px}.scan-review-empty .scan-review-list>strong{font-size:var(--text-label);margin:0 6px 8px;display:block}.scan-review-board.is-manual .scan-criterion-card textarea{resize:none}@media (min-width:1201px){.scan-reference-photo .scan-reference-choices{max-height:108px}.scan-photo-guidance{flex:1;min-height:0}.scan-review-board .scan-review-progress{min-width:0}.scan-review-board .scan-review-progress progress{flex:1;width:auto;min-width:60px;max-width:492px}.scan-review-actions>button[data-slot=button]{flex-shrink:0}}@media (min-width:1201px) and (max-width:1450px){.scan-footer-count{display:none}}@media (max-width:720px){.scan-review-empty .scan-empty-list{min-height:150px}.scan-reference-photo .scan-reference-choices{flex:none;max-height:210px}.scan-comparison-heading>div>span{white-space:normal}}@media (max-width:1200px){.scan-footer-count{display:none}}@media (max-width:720px){.scan-comparison-heading h2{white-space:normal}.scan-clip-value{flex-wrap:wrap;gap:8px}.scan-clip-value>span{flex:1;min-width:145px}.scan-review-scores .scan-method-copy strong{white-space:nowrap;font-size:var(--text-label)}.scan-clip-sop-heading,.scan-clip-actions{flex-wrap:wrap}}.scan-page .upload-panel.scan-review-panel{flex-direction:column;gap:20px;display:flex}.scan-page .scan-review-panel .scan-heading{margin:0}.scan-review-panel .scan-heading>div>p{color:var(--muted-foreground);margin:6px 0 0;display:block}.scan-review-panel .scan-source-list[data-slot=tabs-list]{border-radius:8px;margin:0 0 12px}.scan-page .scan-review-panel .scan-step{margin:0;padding:20px}.scan-page .scan-step-title{gap:12px;margin:0 0 16px}.scan-page .scan-source-layout{align-items:start;gap:20px;margin:0}.scan-page .scan-pick-area{grid-template-columns:minmax(0,1fr);gap:12px}.scan-page .scan-pick-buttons{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.scan-page .scan-sop-reference-picker{margin-bottom:16px}.scan-page .scan-review-panel .scan-destination-step .upload-fields{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1.2fr) minmax(80px,.5fr);max-width:none;margin:0}.scan-page .scan-destination-toolbar{flex-wrap:wrap;align-items:start;margin-bottom:16px}.scan-page .scan-destination-toolbar .scan-step-title{margin:0}.scan-page .scan-review-panel .scan-destination-path{flex-wrap:wrap;margin:16px 0 0;padding:10px 12px}.scan-page .scan-destination-path strong{overflow-wrap:anywhere}.scan-page .scan-review-board .scan-review-footer{border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;gap:16px;padding:16px;position:static}.scan-page.is-reviewing{padding-bottom:0}.scan-page .scan-review-actions{flex-wrap:wrap}@media (max-width:900px){.scan-page .scan-review-panel .scan-destination-step .upload-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.scan-page .scan-source-layout{grid-template-columns:minmax(0,1fr)}}@media (max-width:720px){.scan-page .upload-panel.scan-review-panel{gap:16px;padding:16px 12px}.scan-page .scan-review-panel .scan-step{padding:14px}.scan-page .scan-review-panel .scan-destination-step .upload-fields{grid-template-columns:minmax(0,1fr)}.scan-page .scan-review-actions{width:100%}.scan-page .scan-review-actions>button{flex:100%}}
.scan-ai-jobs{margin-top:16px;padding:24px}.scan-ai-header,.scan-ai-heading,.scan-ai-header-actions,.scan-ai-batch-title,.scan-ai-batch-count,.scan-ai-batch-meta,.scan-ai-job-actions,.scan-ai-file-status,.scan-ai-file-actions{align-items:center;gap:10px;display:flex}.scan-ai-header{justify-content:space-between;gap:16px;margin-bottom:20px}.scan-ai-jobs:has(.scan-ai-batches:empty) .scan-ai-header{margin-bottom:0}.scan-ai-history-actions{color:var(--muted-foreground);font-size:var(--text-caption);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;margin-top:12px;display:flex}.scan-ai-heading{gap:12px;min-width:0}.scan-ai-heading h2{margin:0}.scan-ai-heading p{color:var(--muted-foreground);font-size:var(--text-caption);margin:4px 0 0}.scan-ai-heading-icon,.scan-ai-file-icon{width:44px;height:44px;color:var(--primary);background:var(--accent);border-radius:10px;flex-shrink:0;place-items:center;display:grid}.scan-ai-header-actions{flex-wrap:wrap;justify-content:flex-end}.scan-ai-jobs .scan-ai-status{font-size:var(--text-caption);white-space:normal;border:0;gap:6px;padding:5px 9px;font-weight:500}.scan-ai-status-dot{background:currentColor;border-radius:50%;flex-shrink:0;width:6px;height:6px}.scan-ai-jobs .success{color:var(--success)}.scan-ai-jobs .warning{color:var(--warning)}.scan-ai-jobs .danger{color:var(--destructive)}.scan-ai-status.success{background:var(--success-bg)}.scan-ai-status.warning{background:var(--warning-bg)}.scan-ai-status.danger{background:var(--danger-bg)}.scan-ai-status.neutral{background:var(--secondary);color:var(--muted-foreground)}.scan-ai-batches{gap:14px;display:grid}.scan-ai-jobs .scan-ai-batch{border:1px solid var(--border);background:var(--card);box-shadow:none;border-radius:10px;gap:0;padding:0;display:block;overflow:hidden}.scan-ai-batch-toggle[data-slot=button]{text-align:left;white-space:normal;border-radius:0;justify-content:space-between;gap:16px;width:100%;height:auto;min-height:72px;padding:16px 18px 10px;display:flex}.scan-ai-batch-title{min-width:0}.scan-ai-batch-title>svg{color:var(--primary);flex-shrink:0;width:20px;height:20px}.scan-ai-batch-title strong{font-size:var(--text-body);font-weight:600;display:block}.scan-ai-batch-title small{color:var(--muted-foreground);font-size:var(--text-caption);margin-top:4px;font-weight:400;display:block}.scan-ai-batch-count{color:var(--muted-foreground);font-size:var(--text-caption);flex-shrink:0;font-weight:400}.scan-ai-batch-count svg{width:16px;height:16px}.scan-ai-batch-count .is-open{transform:rotate(180deg)}.scan-ai-batch-progress{align-items:center;gap:12px;padding:0 18px;display:flex}.scan-ai-batch-progress>span{color:var(--muted-foreground);font-size:var(--text-caption);text-align:right;min-width:36px}.scan-ai-batch-progress progress{appearance:none;background:var(--secondary);width:100%;height:6px;accent-color:var(--primary);border:0;border-radius:6px;overflow:hidden}.scan-ai-batch-progress progress::-webkit-progress-bar{background:var(--secondary)}.scan-ai-batch-progress progress::-webkit-progress-value{background:var(--primary);border-radius:6px}.scan-ai-batch-progress progress::-moz-progress-bar{background:var(--primary)}.scan-ai-batch-meta{font-size:var(--text-caption);color:var(--muted-foreground);flex-wrap:wrap;gap:16px;padding:10px 18px 16px}.scan-ai-job-actions{border-top:1px solid var(--border);background:var(--secondary);flex-wrap:wrap;padding:12px 18px}.scan-ai-file-list{margin:0;padding:0;list-style:none}.scan-ai-file-list>li{align-items:center;gap:12px;padding:16px 18px;display:flex}.scan-ai-file-list>li+li{border-top:1px solid var(--border)}.scan-ai-file-icon{background:var(--secondary);width:40px;height:44px;color:var(--muted-foreground);border-radius:7px}.scan-ai-file-icon svg{width:20px;height:20px}.scan-ai-file-info{flex:1;min-width:0}.scan-ai-file-info>strong{text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-label);font-weight:600;display:block;overflow:hidden}.scan-ai-file-status{font-size:var(--text-caption);color:var(--muted-foreground);flex-wrap:wrap;gap:8px;margin-top:6px}.scan-ai-file-actions{flex-wrap:wrap;flex-shrink:0;gap:6px}.scan-ai-detail-image{object-fit:contain;background:var(--secondary);border-radius:8px;width:100%;max-height:420px}@media (max-width:1000px){.scan-ai-file-list>li{flex-wrap:wrap}.scan-ai-file-actions{width:calc(100% - 52px);margin-left:52px}}@media (max-width:640px){.scan-ai-jobs{padding:16px}.scan-ai-header{flex-direction:column;align-items:flex-start}.scan-ai-header-actions{justify-content:flex-start}.scan-ai-batch-toggle[data-slot=button]{flex-wrap:wrap;gap:8px;padding:14px 12px 10px}.scan-ai-batch-count{flex:1;justify-content:space-between;margin-left:30px}.scan-ai-batch-progress{padding-inline:12px}.scan-ai-batch-meta{gap:12px;padding-inline:12px}.scan-ai-job-actions{padding:12px}.scan-ai-job-actions [data-slot=button]{width:100%}.scan-ai-file-list>li{padding:14px 12px}.scan-ai-file-actions{width:100%;margin-left:0}.scan-ai-file-actions [data-slot=button]{flex:1}}
.portfolio-report{gap:16px;display:grid}.report-face-toolbar{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.report-face-toolbar select{width:100%;max-width:100%}.report-face-toolbar [data-slot=native-select-wrapper]{width:min(240px,100%)}.report-face-toolbar>span,.report-rubric-note{color:var(--muted-foreground)}.report-criterion-details summary{cursor:pointer;color:var(--primary);padding-block:8px}.report-criterion-details dl{gap:8px;margin:0 0 8px;display:grid}.report-criterion-details dl>div{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.report-criterion-details dd{font-variant-numeric:tabular-nums;margin:0}.report-photo-assessment dd{text-align:right;overflow-wrap:anywhere}.report-result.review{--result-color:var(--warning);--result-tint:var(--warning-bg);grid-column:1/-1}.report-top,.report-results{grid-template-columns:1fr 1fr;align-items:stretch;gap:12px;display:grid}.report-surface{border:1px solid var(--border);background:var(--card);min-width:0;box-shadow:var(--surface-shadow);border-radius:10px;overflow:hidden}.report-summary{flex-direction:column;padding:24px;display:flex}.report-metadata{grid-template-columns:max-content 1fr;gap:2px 18px;margin:0 0 16px;font-weight:600;display:grid}.report-metadata dd{color:var(--primary);overflow-wrap:anywhere;margin:0}.report-chart-row{flex-wrap:wrap;flex:1;justify-content:center;align-items:center;gap:clamp(20px,2vw,40px);padding-block:28px;display:flex}.report-donut{aspect-ratio:1;background:conic-gradient(var(--success) 0 var(--pass-angle), var(--destructive) var(--pass-angle) var(--fail-angle), var(--secondary) var(--fail-angle) 360deg);border-radius:50%;flex:0 0 clamp(240px,20vw,360px);place-items:center;width:clamp(240px,20vw,360px);max-width:100%;display:grid}.report-donut>div{aspect-ratio:1;background:var(--card);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:70%;line-height:1.4;display:flex}.report-donut strong{font-size:calc(var(--text-stat) * 1.5);letter-spacing:-1px;font-variant-numeric:tabular-nums}.report-donut b{font-size:var(--text-subtitle)}.portfolio-report small{font-size:var(--text-caption)}.report-donut small,.report-legend small{color:var(--muted-foreground)}.report-legend{gap:28px;min-width:190px;display:grid}.report-legend>div{padding-left:22px;display:grid;position:relative}.report-legend>div:before{content:"";background:var(--success);border-radius:50%;width:15px;height:15px;position:absolute;top:5px;left:0}.report-legend .report-legend-fail:before{background:var(--destructive)}.report-legend strong{font-size:var(--text-subsection)}.report-sop>h3{background:var(--foreground);color:var(--primary-foreground);margin:0;padding:9px 14px}.report-reference-slideshow{padding:12px}.report-slideshow-viewport{border-radius:10px;overflow:hidden}.report-slideshow-track{transition:transform .56s cubic-bezier(.22,1,.36,1);display:flex}.report-reference-images{flex:0 0 100%;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;min-width:0;display:grid}.report-reference-images>img{aspect-ratio:3/2;object-fit:contain;background:var(--secondary);border-radius:10px;width:100%;min-width:0}.report-reference-images>.report-no-image{min-height:130px}.report-slideshow-controls{border:1px solid var(--border);background:var(--secondary);border-radius:999px;justify-content:center;align-items:center;gap:10px;width:fit-content;max-width:100%;margin:12px auto 0;padding:5px;display:flex}.report-slideshow-controls button{background:var(--background);box-shadow:none;border-color:#0000;border-radius:50%;flex-shrink:0;transition:background-color .18s,color .18s}.report-slideshow-controls button:hover{background:var(--accent)}.report-slideshow-controls>span{color:var(--muted-foreground);font-size:var(--text-caption);font-variant-numeric:tabular-nums;white-space:nowrap;padding-inline:4px}@media (prefers-reduced-motion:reduce){.report-slideshow-track,.report-slideshow-controls button{transition:none}}@media (max-width:640px){.report-reference-images{grid-template-columns:minmax(0,1fr)}}.report-no-image{background:var(--secondary);width:100%;height:100%;color:var(--muted-foreground);font-size:var(--text-caption);flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.report-conditions{background:var(--secondary);border-radius:6px;margin:8px;padding:12px}.report-conditions h4{font-size:var(--text-label);margin:0 0 4px}.report-conditions p{color:var(--primary);font-size:var(--text-label);align-items:start;gap:8px;margin:4px 0;display:flex}.report-conditions p>svg{color:var(--success);border:1px solid var(--success);border-radius:3px;flex-shrink:0;margin-top:2px}.report-conditions small{color:var(--muted-foreground);display:block}.report-conditions .report-sop-version{color:var(--muted-foreground);font-size:var(--text-caption)}.report-result{--result-color:var(--primary);--result-tint:var(--accent)}.report-result.pass{--result-color:var(--success);--result-tint:var(--success-bg)}.report-result.fail{--result-color:var(--destructive);--result-tint:var(--danger-bg)}.report-result.pending{--result-color:var(--warning);--result-tint:var(--warning-bg);grid-column:1/-1}.report-result.unconfigured{grid-column:1/-1}.report-result>header{background:var(--result-color);color:var(--primary-foreground);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:9px 12px;display:flex}.report-result>header h3{color:inherit;font-size:var(--text-body);align-items:center;gap:8px;margin:0;display:flex}.report-result>header>small{color:inherit}.report-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:8px;display:grid}.report-result.pending .report-photo-grid,.report-result.unconfigured .report-photo-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.report-photo{background:var(--result-tint);border-radius:6px;min-width:0;overflow:hidden}.portfolio-report .report-photo-open[data-slot=button]{aspect-ratio:1.2;border:0;border-radius:6px 6px 0 0;width:100%;height:auto;padding:0;display:block;position:relative;overflow:hidden}.report-photo-open>img{object-fit:cover;width:100%;height:100%}.report-score{background:var(--result-tint);color:var(--foreground);border-radius:6px;padding:4px 9px;line-height:1.3;display:grid;position:absolute;top:8px;right:8px}.report-score strong{font-size:var(--text-subsection)}.report-photo-caption{gap:3px;padding:8px;display:grid}.report-photo-caption>strong{font-size:var(--text-label);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.report-photo-caption>small{color:var(--muted-foreground);overflow-wrap:anywhere}.report-photo-assessment{font-size:var(--text-label);gap:5px;margin:5px 0;display:grid}.report-photo-assessment>div{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.report-photo-assessment dt{color:var(--muted-foreground)}.report-photo-assessment dd{margin:0;font-weight:600}.report-score-group[data-slot=badge]{font-size:var(--text-caption)}.report-score-group.danger{color:var(--destructive);background:var(--danger-bg)}.report-score-group.warning{color:var(--warning);background:var(--warning-bg)}.report-score-group.primary{color:var(--primary);background:var(--accent)}.report-score-group.success{color:var(--success);background:var(--success-bg)}.report-score-group.pending{color:var(--muted-foreground);background:var(--secondary)}.report-photo-note{color:var(--result-color);font-size:var(--text-label);overflow-wrap:anywhere;margin:0;font-weight:600}.report-photo-caption [data-slot=button]{width:100%;margin-top:5px}.report-empty{color:var(--muted-foreground);text-align:center;margin:0;padding:20px}@media (max-width:1000px){.report-chart-row{flex-wrap:wrap;justify-content:center;gap:15px}.report-donut{flex-basis:280px;width:min(280px,100%)}.report-result.pending .report-photo-grid,.report-result.unconfigured .report-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:650px){.report-results .report-photo-grid,.report-top,.report-results{grid-template-columns:1fr}.report-summary{padding:14px}.report-chart-row{justify-content:center;padding-block:20px}.report-donut{flex-basis:260px;width:min(260px,100%)}.report-legend{gap:14px}.report-result.pending .report-photo-grid,.report-result.unconfigured .report-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-photo-caption [data-slot=button]{white-space:normal;height:auto;min-height:36px;padding-inline:5px}}
.photo-score-dialog.dialog[data-slot=dialog-content]{flex-direction:column;max-height:94dvh;padding:0;display:flex;overflow:hidden}.photo-score-dialog>.dialog-head{background:var(--card);flex-shrink:0;margin:0;padding:18px 24px}.photo-score-editor{flex-direction:column;min-height:0;display:flex;overflow:hidden}.photo-score-body{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:28px;min-height:0;padding:18px;display:grid;overflow-y:auto}.photo-score-visual,.photo-score-controls{min-width:0}.photo-score-stage{aspect-ratio:1.4;background:var(--secondary);border-radius:8px;width:100%;position:relative;overflow:hidden}.photo-score-stage>img{object-fit:contain;width:100%;height:100%}.photo-score-zoom[data-slot=button]{background:var(--card);width:44px;height:44px;color:var(--foreground);box-shadow:var(--surface-shadow);position:absolute;top:10px;right:10px}.photo-score-placeholder{height:100%;color:var(--muted-foreground);flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex}.photo-score-metadata{padding:12px 6px}.photo-score-metadata h3{overflow-wrap:anywhere;margin:0 0 5px}.photo-score-metadata p{color:var(--muted-foreground);font-size:var(--text-label);margin:3px 0}.photo-score-history{border:1px solid var(--border);font-size:var(--text-caption);border-radius:8px;padding:10px 12px}.photo-score-history summary{cursor:pointer;font-weight:600}.photo-score-history p{color:var(--muted-foreground);margin:8px 0}.photo-score-controls{flex-direction:column;gap:10px;display:flex}.photo-score-sop,.photo-score-change{gap:5px;display:grid}.photo-score-guidance{border:1px solid var(--border);background:var(--accent);color:var(--foreground);font-size:var(--text-label);border-radius:6px;margin:0;padding:7px 12px}.photo-score-fieldset{border:1px solid var(--border);border-radius:8px;min-width:0;margin:4px 0 0;padding:0;overflow:hidden}.photo-score-table{table-layout:fixed;width:100%}.photo-score-table th{background:var(--secondary)}.photo-score-table th,.photo-score-table td{border-right:1px solid var(--border);white-space:normal;padding:10px 12px}.photo-score-table :is(th,td):last-child{border-right:0}.photo-score-table th:first-child{width:60%}.photo-score-table th:nth-child(2){width:12%}.photo-score-table th:last-child{width:28%}.photo-score-table :is(th,td):nth-child(n+2){text-align:center}.photo-score-criterion[data-slot=label]{margin-bottom:5px;font-weight:600;line-height:1.4;display:block}.photo-score-shortcuts{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.photo-score-shortcuts [data-slot=button]{height:28px;min-height:28px;color:var(--primary);background:var(--accent);font-size:var(--text-body);padding:2px 9px}.photo-score-shortcuts [data-slot=button][aria-pressed=true]{background:var(--primary);color:var(--primary-foreground)}.photo-score-shortcuts .photo-score-note-toggle[data-slot=button]{font-size:var(--text-caption);background:0 0;padding-inline:5px}.photo-score-note-toggle[aria-expanded=true]>svg:last-child{transform:rotate(180deg)}.photo-score-table textarea{resize:vertical;min-height:64px;margin-top:8px}.photo-score-input{justify-content:center;align-items:center;gap:9px;display:flex}.photo-score-input input{text-align:center;width:100%;min-width:0;max-width:115px;height:48px;font-weight:700}.photo-score-input>span{white-space:nowrap;color:var(--muted-foreground);font-size:var(--text-caption)}.photo-score-total{border:1px solid var(--border);background:var(--secondary);border-radius:9px;justify-content:space-between;align-items:center;gap:10px;padding:10px 16px;display:flex}.photo-score-total h3{margin:0}.photo-score-total small{color:var(--muted-foreground);font-size:var(--text-caption)}.photo-score-total>div:last-child{flex-wrap:wrap;justify-content:end;align-items:center;gap:8px;display:flex}.photo-score-total strong{font-size:var(--text-stat);line-height:1.2}.photo-score-total [data-slot=badge]{font-size:var(--text-label);white-space:normal;padding:6px 12px}.photo-score-total .passed{color:var(--success);background:var(--success-bg)}.photo-score-total .failed{color:var(--destructive);background:var(--danger-bg)}.photo-score-total .neutral{color:var(--muted-foreground)}.photo-score-footer{border-top:1px solid var(--border);background:var(--card);color:var(--foreground);flex-direction:row;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;margin:0;padding:12px 24px;display:flex}.photo-score-footer>div{gap:10px;display:flex}.photo-score-footer>span{font-size:var(--text-label)}@media (max-width:1100px){.photo-score-body{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:16px}.photo-score-table :is(th,td){padding:9px 8px}.photo-score-input{flex-direction:column;gap:2px}.photo-score-table th:first-child{width:58%}.photo-score-table th:nth-child(2){width:15%}.photo-score-table th:last-child{width:27%}}@media (max-width:760px){.photo-score-dialog>.dialog-head{padding:12px 14px}.photo-score-body{grid-template-columns:1fr;padding:12px}.photo-score-stage{max-height:42dvh}.photo-score-shortcuts [data-slot=button]{padding-inline:7px}.photo-score-footer{flex-wrap:wrap;gap:8px;padding:10px 12px}.photo-score-footer>span{margin-left:auto}.photo-score-footer>div{flex-basis:100%}.photo-score-footer>div>[data-slot=button]{flex:1}.photo-score-total{flex-wrap:wrap;padding:10px}}
