.login-view[data-v-968c5419]{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:radial-gradient(120% 120% at 50% 0%,#eef6ff,#e7f0f8 45%,#e2e9f0);background:radial-gradient(120% 120% at 50% 0%,color(xyz 0.861 0.914 1.107),#e7f0f8 45%,#e2e9f0);font-family:-apple-system,PingFang SC,Microsoft YaHei,sans-serif}.login-card[data-v-968c5419]{display:flex;width:360px;max-width:calc(100vw - 48px);flex-direction:column;align-items:center;padding:40px 36px;border:1px solid oklch(92% .01 250);border-radius:16px;background:#fff;box-shadow:0 20px 50px #5364801f,0 2px 8px #5364800f}.login-logo[data-v-968c5419]{display:grid;width:56px;height:56px;margin-bottom:18px;border-radius:14px;background:#3a70ee;color:#fff;place-items:center}.login-title[data-v-968c5419]{margin:0;color:#1d222b;font-size:22px;font-weight:700;letter-spacing:-.01em}.login-subtitle[data-v-968c5419]{margin:8px 0 28px;color:#6f7278;font-size:13px;line-height:1.5;text-align:center}.login-btn[data-v-968c5419]{display:inline-flex;width:100%;height:46px;align-items:center;justify-content:center;gap:9px;border:0;border-radius:11px;background:#3a70ee;color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:background-color .16s ease,transform .12s ease}.login-btn[data-v-968c5419]:hover{background:#2c61e6}.login-btn[data-v-968c5419]:active{transform:scale(.985)}.login-error[data-v-968c5419]{margin:16px 0 0;color:#db2c2b;font-size:12.5px}.login-hint[data-v-968c5419]{margin:18px 0 0;color:#95989f;font-size:11px}.auth-loading[data-v-e5018c29]{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;background:#eef1f5;place-items:center}.auth-loading__spinner[data-v-e5018c29]{width:32px;height:32px;border:3px solid oklch(88% .01 250);border-top-color:#3a70ee;border-radius:999px;animation:auth-spin-e5018c29 .7s linear infinite}@keyframes auth-spin-e5018c29{to{transform:rotate(360deg)}}:root{color:#111827;background:#eef1f5;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--ink: #111827;--muted: #6b7280;--line: #e5e7eb;--soft-line: #cbd5e1;--canvas-bg: #f8fafc;--severity-critical: oklch(58% .21 27);--severity-high: oklch(70% .17 55);--severity-medium: oklch(78% .14 90);--severity-low: oklch(62% .13 235);--severity-neutral: oklch(58% 0 0);--red: #dc2626;--orange: #f97316;--yellow: #eab308;--blue: #2563eb;--gray: #64748b;--danger: var(--red);--warning: var(--orange);--manual: #7c3aed}*{box-sizing:border-box}body{min-width:320px;margin:0;overflow:hidden;overscroll-behavior:none}button{border:0;font:inherit}input,textarea{font:inherit}button:not(:disabled){cursor:pointer}button:focus-visible{outline:3px solid #93c5fd;outline-offset:2px}.review-app{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;background:#eef1f5;flex-direction:column;overflow:hidden;overscroll-behavior:none}.icon-button,.ghost-icon-button,.zoom-button{display:inline-flex;width:36px;height:36px;align-items:center;justify-content:center;border-radius:8px;background:#fff;color:#4b5563}.ghost-icon-button{width:26px;height:26px;background:transparent;color:#404040}.ghost-icon-button:hover{background:#dedede}.workbench{display:grid;height:100%;min-height:0;grid-template-columns:236px minmax(0,1fr);gap:8px;padding:8px}.workbench--sidebar-collapsed{grid-template-columns:54px minmax(0,1fr)}.sidebar-panel{display:flex;min-height:0;flex-direction:column;gap:9px;overflow-y:auto;overflow-x:hidden;border-right:1px solid var(--line);border-radius:10px;background:#f8fafc;padding:10px;scrollbar-width:thin;scrollbar-color:oklch(80% 0 0) transparent}.sidebar-panel--collapsed{align-items:center;padding:10px 7px}.sidebar-panel--collapsed .sidebar-title{grid-template-columns:26px}.sidebar-panel--collapsed .sidebar-title__copy,.sidebar-panel--collapsed .primary-action span,.sidebar-panel--collapsed .recent-section,.sidebar-panel--collapsed .upload-card,.sidebar-panel--collapsed .ignore-rules,.sidebar-panel--collapsed .check-action span,.sidebar-panel--collapsed .sidebar-user strong{display:none}.sidebar-panel--collapsed .primary-action,.sidebar-panel--collapsed .check-action{width:36px;padding:0}.sidebar-title{display:grid;align-items:center;grid-template-columns:26px minmax(0,1fr) 16px;gap:7px;padding:1px 2px}.sidebar-title__badge{display:inline-flex;width:26px;height:26px;align-items:center;justify-content:center;border-radius:8px;background:var(--ink);color:#fff}.sidebar-title__copy{min-width:0}.sidebar-title h1{margin:0 0 2px;color:var(--ink);font-size:13px;font-weight:800;line-height:1.2}.sidebar-title p{margin:0;overflow:hidden;color:var(--muted);font-size:10px;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.sidebar-collapse-button{display:inline-flex;width:28px;height:28px;align-items:center;justify-content:center;border-radius:8px;background:transparent;color:#8b949e}.sidebar-collapse-button:hover{background:#eef2f7;color:#111827}.primary-action,.check-action,.dark-button,.secondary-button{display:inline-flex;min-height:36px;align-items:center;justify-content:center;border-radius:10px;font-weight:800;transition:transform .18s ease,background-color .18s ease,opacity .18s ease}.primary-action{width:100%;gap:7px;background:var(--ink);color:#fff;font-size:13px}.check-action{width:100%;min-height:36px;gap:7px;border:0;border-radius:10px;background:#151619;color:#fff;font-size:13px}.primary-action:active,.check-action:active,.dark-button:active,.secondary-button:active{transform:scale(.98)}.check-action:disabled,.dark-button:disabled{cursor:progress;opacity:.72}.sidebar-user{display:flex;width:100%;min-height:52px;align-items:center;gap:9px;background:transparent;color:var(--ink);padding:0 8px;text-align:left}.sidebar-user__avatar{display:inline-flex;width:32px;height:32px;flex:0 0 auto;align-items:center;justify-content:center;border-radius:999px;background:var(--ink);color:#fff}.sidebar-user strong{overflow:hidden;color:var(--ink);font-size:14px;font-weight:800;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.sidebar-user-wrap{position:relative;width:100%;margin-top:auto}.user-menu{position:absolute;bottom:52px;left:8px;display:grid;min-width:132px;gap:4px;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:0 12px 24px #00000014;padding:6px;z-index:10}.user-menu button{min-height:32px;border-radius:7px;background:transparent;color:#374151;font-size:12px;font-weight:700;text-align:left;padding:0 10px}.user-menu button:hover{background:#f3f4f6}.recent-section{display:grid;gap:7px}.section-heading,.upload-card__heading{display:flex;align-items:center;justify-content:space-between;min-height:24px;color:#64748b;font-size:12px;font-weight:800}.section-heading--button{width:100%;background:transparent;padding:0;text-align:left}.section-heading__chevron{display:inline-flex;transition:transform .18s ease}.section-heading__chevron--collapsed{transform:rotate(180deg)}.recent-list{display:grid;gap:6px}.recent-card{display:flex;width:100%;min-height:38px;align-items:center;justify-content:space-between;border-radius:9px;background:transparent;padding:0 8px;transition:background-color .16s ease,box-shadow .16s ease}.recent-card:hover{background:#f3f4f6}.recent-card--active{background:#e2e8f0;box-shadow:none}.recent-card__main{display:flex;flex:1 1 auto;min-width:0;align-items:center;gap:5px;background:transparent;color:#404040;text-align:left}.recent-card__main svg{width:14px;height:14px;flex:0 0 auto;stroke-width:2.2}.recent-card strong{overflow:hidden;color:#171717;font-size:13px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.recent-card .ghost-icon-button{width:24px;height:24px}.recent-card .ghost-icon-button svg{width:14px;height:14px}.recent-card__input{width:100%;min-width:0;border:0;border-radius:6px;background:#fff;color:#111827;font:inherit;font-size:13px;font-weight:800;padding:5px 6px}.upload-card{display:grid;gap:8px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px}.upload-card__heading{min-height:auto;justify-content:start;gap:7px;color:var(--ink);font-size:12px}.upload-card__heading svg{color:#2563eb}.upload-card__heading span{margin-left:auto;color:var(--muted);font-size:10px;font-weight:500}.drop-zone{display:flex;width:100%;min-height:126px;flex-direction:column;align-items:center;justify-content:center;border:1px solid var(--soft-line);border-radius:8px;background:#f8fafc;color:var(--ink);gap:6px;padding:12px;cursor:pointer;transition:background-color .16s ease,border-color .16s ease}.drop-zone:hover,.drop-zone:focus-within{border-color:#2563eb;background:#f1f7ff}.drop-zone__input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.drop-zone__icon,.file-state__icon{display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;border-radius:999px;background:#eff6ff;color:#2563eb}.drop-zone strong{font-size:12px;font-weight:700}.drop-zone span:not(.drop-zone__icon){color:var(--muted);font-size:10px}.file-state{display:grid;align-items:center;grid-template-columns:34px minmax(0,1fr) 15px;gap:8px;border:1px solid var(--line);border-radius:8px;background:#f9fafb;padding:8px}.file-list{display:grid;max-height:188px;gap:7px;overflow:auto;padding-right:1px}.file-state--done{background:#f0fdf4}.file-state--checking{background:#eff6ff}.file-state__icon{width:34px;height:38px;border-radius:6px;background:#e0f2fe;color:#0284c7}.file-state div{display:grid;min-width:0;gap:3px}.file-state strong{overflow:hidden;color:var(--ink);font-size:11px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.file-state span{color:var(--muted);font-size:10px}.file-state__check{color:#16a34a}.file-state__spinner{width:15px;height:15px;border:2px solid #bfdbfe;border-top-color:#2563eb;border-radius:999px;animation:review-spin .76s linear infinite}.review-mode{padding:10px 14px 12px;border-top:1px solid oklch(92% 0 0)}.review-mode__heading{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:#5d5d5d;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.review-mode__segments{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid oklch(88% 0 0);border-radius:8px;overflow:hidden;background:#f8f8f8}.review-mode__seg{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:none;border-right:1px solid oklch(88% 0 0);padding:7px 8px;font-size:12px;font-weight:500;color:#555;cursor:pointer;transition:background .14s,color .14s}.review-mode__seg:last-child{border-right:none}.review-mode__seg:hover{background:#ebebeb;color:#161616}.review-mode__seg--active,.review-mode__seg--active:hover{background:#161616;color:#fff}.review-mode__desc{margin:8px 0 0;font-size:10.5px;line-height:1.4;color:#717171}.sidebar-panel--collapsed .review-mode{display:none}.ignore-rules{padding:10px 14px 12px;border-top:1px solid oklch(92% 0 0)}.ignore-rules__heading{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:#5d5d5d;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.ignore-rule-row{display:flex;align-items:center;gap:8px;padding:5px 0;cursor:pointer}.ignore-rule-row:hover .ignore-rule-row__name{color:#161616}.ignore-rule-row__label{flex:1;min-width:0}.ignore-rule-row__name{font-size:12px;font-weight:500;color:#292929;display:block;line-height:1.3;transition:color .14s}.ignore-rule-row__desc{font-size:10.5px;color:#7a7a7a;display:block;margin-top:1px;line-height:1.3}.ignore-rule-toggle{position:relative;width:30px;height:17px;-moz-appearance:none;appearance:none;-webkit-appearance:none;background:#c4c4c4;border-radius:999px;cursor:pointer;flex-shrink:0;transition:background .18s;outline:none}.ignore-rule-toggle:after{content:"";position:absolute;top:2px;left:2px;width:13px;height:13px;background:#fff;border-radius:50%;box-shadow:0 1px 2px #0003;transition:transform .18s}.ignore-rule-toggle:checked{background:#0081b2;background:oklch(57% .18 234)}.ignore-rule-toggle:checked:after{transform:translate(13px)}.ignore-rule-toggle:focus-visible{outline:2px solid oklch(57% .18 234);outline-offset:2px}.canvas-panel{position:relative;min-width:0;min-height:0;overflow:hidden;border-radius:12px;background:#fff;overscroll-behavior:none;touch-action:none}.canvas-shell{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;background-color:var(--canvas-bg);background-image:radial-gradient(#cbd5e1 1px,transparent 1.2px);background-position:var(--canvas-pan-x, 0) var(--canvas-pan-y, 0);background-size:24px 24px;overscroll-behavior:none;touch-action:none}.canvas-scene{position:absolute;top:42px;left:48px;width:1120px;height:1700px;transform-origin:top left;transition:transform .18s ease;will-change:transform}.canvas-shell--dragging .canvas-scene{transition:none}.canvas-stage{position:absolute;top:0;left:0;width:1120px;height:1700px}.canvas-viewport{position:relative;width:1120px;height:1700px;transform-origin:top left}.proof-object{position:absolute;top:0;right:0;bottom:0;left:0;transition:transform .12s ease}.proof-object--dragging{transition:none}.canvas-stage--correct{cursor:crosshair}.canvas-stage--pan,.canvas-shell--pan{cursor:grab}.canvas-stage--pan:active,.canvas-shell--pan:active{cursor:grabbing}.canvas-stage--select .proof-card,.canvas-stage--select .proof-card-copy{cursor:move}.canvas-stage--pan .proof-card,.canvas-stage--pan .proof-card-copy,.canvas-stage--pan .annotation-box,.canvas-stage--pan img{cursor:grab}.canvas-shell--pan:active .proof-card,.canvas-shell--pan:active .proof-card-copy,.canvas-shell--pan:active .annotation-box,.canvas-shell--pan:active img{cursor:grabbing}.proof-card{position:absolute;width:494px;height:371px;border:1px solid var(--soft-line);border-radius:0;background:#fff;transition:border-color .12s ease}.canvas-empty{position:absolute;top:132px;left:0;display:grid;width:494px;height:180px;place-items:center;border:1px dashed var(--soft-line);border-radius:10px;background:#ffffffa8;color:var(--muted);font-size:13px;font-weight:700}.proof-card--selected,.proof-card--review-selected{border-color:#38bdf8;box-shadow:0 0 0 1px #38bdf8}.proof-card img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;overflow:hidden}.proof-card-copy{position:absolute;z-index:2;width:494px;height:371px;border:1px solid #bae6fd;background:#fff;box-shadow:0 10px 20px #0f172a1f;opacity:.92;cursor:move;transition:border-color .12s ease,box-shadow .12s ease,opacity .12s ease}.proof-card-copy--selected{z-index:5;border-color:#38bdf8;box-shadow:0 0 0 1px #38bdf8,0 12px 24px #0f172a24;opacity:1}.proof-card-copy__image{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain}.image-selection-actions{position:absolute;top:12px;right:12px;z-index:80;display:inline-flex;gap:8px;pointer-events:auto}.image-selection-actions--floating{top:auto;right:auto;transform:translate(calc(-100% - 12px))}.image-selection-actions button{min-width:28px;height:28px;border-radius:999px;background:#525252;box-shadow:0 8px 18px #00000024;color:#fff;padding:0 8px}.image-selection-actions button:hover{background:#404040}.image-selection-actions .image-correct-button{width:auto;min-width:48px;background:#111827;font-size:11px;font-weight:800}.image-selection-actions .image-correct-button:hover{background:#020617}.image-selection-actions .image-correct-button:disabled{opacity:.55;cursor:not-allowed}.image-selection-actions--copy{top:8px;right:8px}.annotations{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;pointer-events:none}.review-loading{position:absolute;top:50%;left:50%;z-index:12;display:grid;min-width:190px;justify-items:center;gap:7px;border:1px solid #dbeafe;border-radius:14px;background:#fffe;box-shadow:0 16px 36px #0f172a21;color:var(--ink);padding:18px 20px;pointer-events:none;transform:translate(-50%,-50%)}.review-loading__spinner{width:28px;height:28px;border:3px solid #dbeafe;border-top-color:#2563eb;border-radius:999px;animation:review-spin .76s linear infinite}.review-loading strong{font-size:13px;font-weight:800}.review-loading span:not(.review-loading__spinner){color:var(--muted);font-size:11px}@keyframes review-spin{to{transform:rotate(360deg)}}.proof-card--checking,.proof-card-copy--checking{overflow:hidden}.proof-card--checking:before,.proof-card-copy--checking:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:11;pointer-events:none;background:linear-gradient(to bottom,transparent 42%,rgba(37,99,235,.05) 47%,rgba(37,99,235,.3) 50%,rgba(37,99,235,.18) 52%,rgba(37,99,235,.09) 58%,rgba(37,99,235,.04) 68%,rgba(37,99,235,.015) 82%,transparent 92%);background-size:100% 220%;background-position:0% -10%;animation:review-scanline 2.2s cubic-bezier(.4,0,.2,1) infinite}@keyframes review-scanline{0%{background-position:0% -10%}to{background-position:0% 110%}}.review-loading--card{top:auto;bottom:16px;display:inline-flex;flex-direction:row;align-items:center;min-width:0;gap:8px;padding:6px 14px;border-radius:999px;background:#fffffff0;box-shadow:0 4px 14px #0f172a2e;transform:translate(-50%)}.review-loading--card strong{font-size:12px}.review-loading--card span:not(.review-loading__spinner){font-size:11px}.review-loading--card .review-loading__spinner{width:8px;height:8px;border:none;background:#2563eb;border-radius:999px;animation:review-pulse .9s ease-in-out infinite}@keyframes review-pulse{0%,to{opacity:.4;transform:scale(.85)}50%{opacity:1;transform:scale(1.1)}}.annotation-box{position:absolute;pointer-events:auto}.annotation-box{padding:0;border:1.5px solid currentColor;border-radius:6px;background:color-mix(in oklch,currentColor 6%,transparent);cursor:move;transition:background-color .16s ease,box-shadow .16s ease,border-color .16s ease,border-width .16s ease}.annotation-box:hover{background:color-mix(in oklch,currentColor 14%,transparent)}.annotation-box--draft{border-style:dashed;pointer-events:none}.annotation-box--active{background:color-mix(in oklch,currentColor 14%,transparent);box-shadow:0 0 0 3px color-mix(in oklch,currentColor 22%,transparent)}.annotation-box--auto{position:absolute;cursor:pointer;pointer-events:auto;font-family:inherit;text-align:left}.annotation-box--auto:hover{background:color-mix(in oklch,currentColor 18%,transparent);border-width:2px}.annotation-box--auto.annotation-box--active{background:color-mix(in oklch,currentColor 22%,transparent);border-width:2.5px;box-shadow:0 0 0 3px color-mix(in oklch,currentColor 30%,transparent);z-index:4}.annotation-box__corner{position:absolute;top:-12px;right:-12px;display:inline-flex;width:24px;height:24px;align-items:center;justify-content:center;border-radius:999px;background:currentColor;color:inherit;-webkit-text-fill-color:#fff;font-size:12px;font-weight:700;line-height:1;pointer-events:none;outline:1.5px solid #fff;box-shadow:0 1px 3px color-mix(in oklch,currentColor 40%,transparent);font-feature-settings:"tnum";letter-spacing:-.02em}.annotation-delete{position:absolute;top:-8px;right:-8px;display:inline-flex;width:16px;height:16px;align-items:center;justify-content:center;border-radius:999px;background:#111827;color:#fff}.annotation-tooltip{position:absolute;top:0;left:50%;transform:translate(-50%,calc(-100% - 8px));z-index:30;display:block;max-width:240px;padding:4px 8px;border-radius:6px;background:#111827eb;color:#fff;font-size:11px;font-weight:500;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:0;pointer-events:none;transition:opacity .12s ease,transform .12s ease;box-shadow:0 2px 8px #0f172a2e}.annotation-box--auto:hover .annotation-tooltip,.annotation-box--auto.annotation-box--active .annotation-tooltip{opacity:1}.annotation--danger,.annotation--red,.annotation--mandatory-missing{color:var(--severity-critical)}.annotation--orange{color:var(--severity-high)}.annotation--yellow,.annotation--warning,.annotation--visual-violation{color:var(--severity-medium)}.annotation--blue{color:var(--severity-low)}.annotation--gray,.annotation--manual{color:var(--severity-neutral)}.severity-critical{color:var(--severity-critical)}.severity-high{color:var(--severity-high)}.severity-medium{color:var(--severity-medium)}.severity-low{color:var(--severity-low)}.severity-neutral{color:var(--severity-neutral)}.review-panel{position:absolute;z-index:20;top:0;left:510px;display:flex;width:420px;max-height:min(720px,calc(100vh - 160px));min-height:92px;flex-direction:column;gap:12px;border-radius:12px;background:#fff;box-shadow:0 8px 18px #00000014;padding:14px;overflow:hidden;transition:transform .18s ease,max-height .26s ease,min-height .26s ease,box-shadow .22s ease;will-change:transform}.review-panel--moving{transition:max-height .26s ease,min-height .26s ease,box-shadow .22s ease}.review-panel--selected{z-index:22;box-shadow:0 0 0 2px #38bdf8,0 12px 28px #0f172a1f}.review-panel--draggable{cursor:move}.review-panel--draggable button,.review-panel--draggable input,.review-panel--draggable textarea{cursor:auto}.review-panel--collapsed{max-height:56px;min-height:0;box-shadow:0 8px 16px #0000000f}.review-panel__header{display:flex;flex-direction:column;gap:10px}.review-panel__header-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.review-panel h2{margin:0;color:var(--ink);font-size:18px;font-weight:700;letter-spacing:-.01em}.review-collapse-button{width:32px;height:32px;border-radius:10px;background:#f2f2f2;color:#3f383a;display:inline-flex;align-items:center;justify-content:center;transition:background-color .16s ease,color .16s ease,transform .18s ease}.review-collapse-button:hover{background:#e4e4e4;color:#1a1416}.review-panel__stats{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.review-stat{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 11px;border-radius:14px;background:color-mix(in oklch,currentColor 10%,transparent);font-size:13px;font-weight:500;line-height:1;white-space:nowrap}.review-stat--high{color:var(--severity-critical)}.review-stat--medium{color:var(--severity-medium)}.review-stat--low{color:var(--severity-low)}.review-stat__dot{width:8px;height:8px;border-radius:50%;background:currentColor;flex-shrink:0}.review-stat__count{font-weight:700;font-variant-numeric:tabular-nums;color:#1f191a}.review-stat__label{color:#4d4647}.review-panel__stats-total{margin-left:auto;color:#6c6869;font-size:12px;font-variant-numeric:tabular-nums}.review-panel__body{display:grid;gap:14px;min-height:0;overflow:auto;padding-right:2px}.review-panel__preview{display:flex;min-height:0;flex:1;flex-direction:column;gap:10px;overflow:hidden;transform:translateY(0);transition:opacity .18s ease,transform .24s ease}.review-panel__body,.review-panel__actions,.review-panel__tag-input,.review-panel__header h2{transition:opacity .12s ease}.review-panel--collapsed .review-panel__preview{opacity:0;pointer-events:none;transform:translateY(-18px)}.review-panel--collapsed .review-panel__tag-input{opacity:0;pointer-events:none}.extracted-text{border:1px solid #dbe4ef;border-radius:8px;background:#fff;color:#334155}.extracted-text summary{cursor:pointer;padding:8px 10px;color:#111827;font-size:12px;font-weight:800;line-height:1.2}.extracted-text pre{max-height:168px;overflow:auto;margin:0;border-top:1px solid #e5e7eb;color:#475569;font-family:inherit;font-size:11px;line-height:1.45;padding:8px 10px;white-space:pre-wrap;word-break:break-word}.review-item{display:grid;gap:10px;border:1px solid oklch(92% .005 250);border-left:4px solid var(--severity-neutral);border-radius:10px;background:#fcfcfc;padding:16px 18px;cursor:default;transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease}.review-item.severity-critical{border-left-color:var(--severity-critical)}.review-item.severity-high{border-left-color:var(--severity-high)}.review-item.severity-medium{border-left-color:var(--severity-medium)}.review-item.severity-low{border-left-color:var(--severity-low)}.review-item.severity-neutral{border-left-color:var(--severity-neutral)}.review-item:hover{background:#f8fafd;border-color:#c9ced4}.review-item.severity-critical:hover{background:color-mix(in oklch,var(--severity-critical) 6%,white)}.review-item.severity-high:hover{background:color-mix(in oklch,var(--severity-high) 6%,white)}.review-item.severity-medium:hover{background:color-mix(in oklch,var(--severity-medium) 8%,white)}.review-item.severity-low:hover{background:color-mix(in oklch,var(--severity-low) 6%,white)}.review-item--active{background:#f0f6fc;border-color:#37aae3;box-shadow:0 0 0 3px #c5e3f599}.review-item.severity-critical.review-item--active{background:color-mix(in oklch,var(--severity-critical) 8%,white);border-color:color-mix(in oklch,var(--severity-critical) 40%,white);box-shadow:0 0 0 3px color-mix(in oklch,var(--severity-critical) 22%,transparent)}.review-item.severity-high.review-item--active{background:color-mix(in oklch,var(--severity-high) 8%,white);border-color:color-mix(in oklch,var(--severity-high) 40%,white);box-shadow:0 0 0 3px color-mix(in oklch,var(--severity-high) 22%,transparent)}.review-item.severity-medium.review-item--active{background:color-mix(in oklch,var(--severity-medium) 12%,white);border-color:color-mix(in oklch,var(--severity-medium) 50%,white);box-shadow:0 0 0 3px color-mix(in oklch,var(--severity-medium) 22%,transparent)}.review-item.severity-low.review-item--active{background:color-mix(in oklch,var(--severity-low) 8%,white);border-color:color-mix(in oklch,var(--severity-low) 40%,white);box-shadow:0 0 0 3px color-mix(in oklch,var(--severity-low) 22%,transparent)}.review-item__header{display:flex;align-items:center;gap:8px}.review-item__number{display:inline-flex;width:26px;height:26px;flex:0 0 auto;align-items:center;justify-content:center;border-radius:999px;background:var(--severity-neutral);color:#fff;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:13px;font-weight:800;line-height:1}.review-item.severity-critical .review-item__number{background:var(--severity-critical)}.review-item.severity-high .review-item__number{background:var(--severity-high)}.review-item.severity-medium .review-item__number{background:var(--severity-medium);color:#322707}.review-item.severity-low .review-item__number{background:var(--severity-low)}.review-item.severity-neutral .review-item__number{background:var(--severity-neutral)}.review-item__severity-chip{margin-left:auto;padding:3px 10px;border-radius:999px;background:color-mix(in oklch,var(--severity-neutral) 14%,white);color:color-mix(in oklch,var(--severity-neutral) 80%,black);font-size:12px;font-weight:700;line-height:1.4;letter-spacing:.02em}.review-item.severity-critical .review-item__severity-chip{background:color-mix(in oklch,var(--severity-critical) 14%,white);color:color-mix(in oklch,var(--severity-critical) 80%,black)}.review-item.severity-high .review-item__severity-chip{background:color-mix(in oklch,var(--severity-high) 16%,white);color:color-mix(in oklch,var(--severity-high) 78%,black)}.review-item.severity-medium .review-item__severity-chip{background:color-mix(in oklch,var(--severity-medium) 20%,white);color:#463600;color:oklch(34% .08 90)}.review-item.severity-low .review-item__severity-chip{background:color-mix(in oklch,var(--severity-low) 14%,white);color:color-mix(in oklch,var(--severity-low) 80%,black)}.review-item__delete{width:26px;height:26px;flex:0 0 auto;border:0;border-radius:999px;background:#e9ebee;color:#44484d;font-size:18px;line-height:1;cursor:pointer;transition:background-color .14s ease,color .14s ease}.review-item__delete:hover{background:#141618;color:#fff}.review-item .anchor-quote{display:inline-block;max-width:100%;padding:4px 10px;border-radius:6px;border:1px solid oklch(91% .005 250);background:#f3f5f8;color:#3b3d40;font-size:12px;font-weight:500;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:help}.review-item__heading,.review-item h3{margin:0;color:var(--ink);font-size:16px;font-weight:700;line-height:1.4}.review-item__description{margin:0;color:#404345;font-size:14px;font-weight:400;line-height:1.55;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.review-item--expanded .review-item__description{-webkit-line-clamp:unset;overflow:visible}.review-item>p:not(.review-item__description){margin:0;color:#404345;font-size:14px;line-height:1.55}.review-item__expand-btn{align-self:flex-start;margin-top:-2px;padding:0;border:0;background:transparent;color:#0078a7;color:oklch(54% .13 235);font-size:13px;font-weight:600;line-height:1.2;cursor:pointer;transition:color .14s ease}.review-item__expand-btn:hover{color:#004e6f;color:oklch(40% .16 235);text-decoration:underline}.review-item__suggestion-input{width:100%;min-height:72px;border:1px solid oklch(92% .005 250);border-radius:8px;background:#fcfcfc;color:#27292b;font-family:inherit;font-size:14px;line-height:1.55;padding:10px 12px;outline:none;resize:vertical;transition:border-color .16s ease,box-shadow .16s ease}.review-item__suggestion-input:focus{border-color:#37aae3;box-shadow:0 0 0 3px #7ac8f54d}.review-panel__actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:auto}.review-panel__footer{position:sticky;bottom:0;margin-top:auto;display:flex;flex-direction:column;gap:10px;padding:12px 0 0;background:linear-gradient(to bottom,transparent,oklch(99% 0 0) 35%)}.review-panel__footer-meta{display:flex;align-items:center;gap:6px;color:#67696c;font-size:12px;font-weight:500;letter-spacing:.02em;font-variant-numeric:tabular-nums}.review-panel__footer-actions{display:flex;align-items:stretch;gap:8px}.review-footer-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:0 18px;border-radius:10px;font-family:inherit;font-size:14px;font-weight:600;line-height:1;cursor:pointer;transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,transform 80ms ease}.review-footer-btn:active:not(:disabled){transform:translateY(1px)}.review-footer-btn:disabled{opacity:.55;cursor:not-allowed}.review-footer-btn--secondary{flex:1 1 0;border:1px solid oklch(88% .005 250);background:#fcfcfc;color:#191b1d}.review-footer-btn--secondary:hover:not(:disabled){background:#eff2f5;border-color:#b3b8be}.review-footer-btn--primary{flex:1 1 0;border:1px solid oklch(20% .005 250);background:#141618;color:#fff}.review-footer-btn--primary:hover:not(:disabled){background:#050607;border-color:#050607}.review-panel__footer-actions .report-export-wrapper{flex:1 1 0;display:flex}.review-panel__footer-actions .report-export-wrapper .review-footer-btn{width:100%}.secondary-button,.dark-button{min-height:38px;border-radius:8px;font-size:12px}.secondary-button{background:#f3f4f6;color:#374151}.secondary-button:hover{background:#e5e7eb}.dark-button{background:var(--ink);color:#fff}.dark-button:hover,.primary-action:hover,.check-action:hover{background:#000}.tool-dock,.zoom-dock{position:absolute;display:inline-flex;align-items:center;border-radius:12px;background:#fff;box-shadow:0 8px 20px #0000001a;padding:5px}.tool-dock{left:427px;bottom:18px;gap:5px}.tool-dock__button{display:inline-flex;height:30px;align-items:center;gap:5px;border-radius:7px;background:#f3f4f6;color:#374151;font-size:12px;font-weight:800;padding:0 9px}.tool-dock__button:hover,.zoom-button:hover:not(:disabled){background:#e5e7eb}.tool-dock__button--active{background:var(--ink);color:#fff}.zoom-dock{right:12px;bottom:18px;gap:4px}.zoom-button{width:32px;height:32px;background:#f3f4f6}.zoom-button:disabled{cursor:not-allowed;opacity:.5}.zoom-status{display:inline-flex;height:32px;align-items:center;gap:6px;border-right:1px solid var(--line);border-left:1px solid var(--line);color:#374151;font-size:13px;padding:0 12px}.zoom-status svg{color:var(--muted)}.toast{position:absolute;right:18px;top:18px;z-index:20;border:1px solid #dbeafe;border-radius:999px;background:#fff;box-shadow:0 10px 24px #00000014;color:#111827;font-size:12px;font-weight:800;padding:9px 14px}@media(max-width:1100px){.workbench{grid-template-columns:220px minmax(0,1fr)}.workbench--sidebar-collapsed{grid-template-columns:54px minmax(0,1fr)}.sidebar-panel{padding:9px}.canvas-shell{min-width:960px}}@media(max-width:760px){.workbench{width:max-content;min-width:100vw;grid-template-columns:216px 960px}.workbench--sidebar-collapsed{grid-template-columns:54px 960px}.canvas-panel{height:calc(100dvh - 16px);overflow:auto}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.product-info{padding:12px 16px;border-top:1px solid oklch(92% 0 0);display:flex;flex-direction:column;gap:10px}.product-info__heading{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#717171}.product-info__field{display:flex;flex-direction:column;gap:4px}.product-info__label{font-size:11px;color:#636363}.product-info__select-wrap{position:relative}.product-info__select{width:100%;padding:5px 24px 5px 8px;border:1px solid oklch(88% 0 0);border-radius:6px;background:#f8f8f8;font-size:12px;color:#161616;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23888' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;transition:border-color .15s}.product-info__select:focus{outline:none;border-color:#0f74c5;box-shadow:0 0 0 2px #0f74c526}.product-info__input-wrap{position:relative;display:flex;align-items:center}.product-info__input{width:100%;padding:5px 28px 5px 8px;border:1px solid oklch(88% 0 0);border-radius:6px;background:#f8f8f8;font-size:12px;color:#161616;font-variant-numeric:tabular-nums;transition:border-color .15s}.product-info__input:focus{outline:none;border-color:#0f74c5;box-shadow:0 0 0 2px #0f74c526}.product-info__input--valid{border-color:#189a30}.product-info__input--invalid{border-color:#d40924}.product-info__status-icon{position:absolute;right:8px;flex-shrink:0;pointer-events:none}.product-info__status-icon--ok{color:#189a30}.product-info__status-icon--err{color:#d40924}.product-info__hint{font-size:10px;color:#d40924;line-height:1.4;margin:0}.mandatory-checklist{margin:8px 0;border:1px solid oklch(88% .02 250);border-radius:6px;overflow:hidden}.mandatory-checklist__summary{display:flex;align-items:center;gap:6px;padding:7px 10px;font-size:11px;font-weight:600;color:#262f38;background:#edf2f8;cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none}.mandatory-checklist__summary::marker,.mandatory-checklist__summary::-webkit-details-marker{display:none}.mandatory-checklist__badge{margin-left:auto;padding:1px 6px;border-radius:10px;font-size:10px;font-weight:600;letter-spacing:.02em}.mandatory-checklist__badge--warn{background:#ffe0dc;background:oklch(94% .12 25);color:#8a0012;color:oklch(40% .18 25)}.mandatory-checklist__badge--ok{background:#c1fec2;color:#005211;color:oklch(38% .14 145)}.mandatory-checklist__list{list-style:none;margin:0;padding:4px 0}.mandatory-checklist__item{display:flex;align-items:baseline;gap:5px;padding:4px 10px;font-size:11px;line-height:1.4;border-top:1px solid oklch(94% .01 250)}.mandatory-checklist__icon{flex-shrink:0;position:relative;top:1px}.mandatory-checklist__icon--present{color:#1c882d}.mandatory-checklist__icon--missing{color:#bb061e}.mandatory-checklist__icon--malformed{color:#a77600;color:oklch(60% .18 80)}.mandatory-checklist__icon--unverified{color:#5b748e}.mandatory-checklist__label{font-weight:600;color:#1a222b;flex-shrink:0}.mandatory-checklist__reason{color:#3c4f62;flex:1;min-width:0}.mandatory-checklist__evidence{flex-shrink:0;font-size:10px;color:#1f6a96;text-decoration:none;white-space:nowrap}.mandatory-checklist__evidence:hover{text-decoration:underline;color:#004d74;color:oklch(40% .15 240)}.review-item__evidence{margin-top:6px;border-top:1px solid oklch(90% .02 250 / 60%);padding-top:4px}.review-item__evidence>summary{font-size:10px;font-weight:600;color:#426882;cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.review-item__evidence>summary::marker,.review-item__evidence>summary::-webkit-details-marker{display:none}.review-item__evidence>p{margin:3px 0 0;font-size:10px;color:#3b596e;line-height:1.4}.review-item__evidence a{color:#1f6a96;text-decoration:none;margin-left:4px}.review-item__evidence a:hover{text-decoration:underline}.bluehat-overlay-svg{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:6}.bluehat-overlay--pass{stroke:#00b568;stroke:oklch(68% .2 155);stroke-width:3;filter:drop-shadow(0 0 4px oklch(68% .2 155 / .4))}.bluehat-overlay--malformed{stroke:#e1a100;stroke:oklch(75% .19 80);stroke-width:3;stroke-dasharray:10 5;filter:drop-shadow(0 0 4px oklch(75% .19 80 / .4))}.bluehat-overlay--missing{stroke:#ec3d00;stroke:oklch(62% .22 35);stroke-width:2;stroke-dasharray:6 6;filter:drop-shadow(0 0 4px oklch(62% .22 35 / .3))}.report-export-wrapper{position:relative;display:inline-flex}.report-export-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;background:#e8f3ff;background:oklch(96% .04 250);color:#002f56;color:oklch(30% .1 250);border:1px solid oklch(85% .06 250);border-radius:8px;font-size:12px;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s;white-space:nowrap}.report-export-btn:hover:not(:disabled){background:#cbe4ff;background:oklch(91% .08 250);border-color:#7cb3eb}.report-export-btn:disabled{opacity:.5;cursor:not-allowed}.report-export-btn__chevron{transition:transform .15s;flex-shrink:0}.report-export-btn__chevron--open{transform:rotate(180deg)}.report-export-menu{position:absolute;bottom:calc(100% + 6px);left:0;min-width:140px;background:#fcfcfc;border:1px solid oklch(88% .02 250);border-radius:8px;box-shadow:0 4px 16px #1616161f;overflow:hidden;z-index:200}.report-export-menu__item{display:block;width:100%;padding:9px 14px;text-align:left;background:none;border:none;font-size:13px;color:#0f171f;cursor:pointer;transition:background .1s}.report-export-menu__item:hover{background:#e2f0ff;background:oklch(95% .04 250)}
