:root{font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,PingFang TC,Helvetica Neue,Arial,sans-serif;color:#24233a;background:#f1f1f7;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #24233a;--muted: #707184;--line: #ddddea;--surface: #fff;--surface-soft: #f6f5fb;--primary: #6558d3;--primary-dark: #4b42ae;--primary-soft: #eceafd;--danger: #b83d3d}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;min-width:760px;margin:0;overflow:hidden}body{background:#f1f1f7}button,input,select{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid rgba(21,101,192,.3);outline-offset:1px}button:disabled{cursor:not-allowed;opacity:.42}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell{--app-background: #f1f1f7;--topbar: #fbfbfe;--panel: #f7f7fb;--editor: #fff;--control: #fff;--canvas: #f2f2f5;--canvas-check: #e7e7ec;display:flex;width:100%;height:100%;flex-direction:column;overflow:hidden;color:var(--ink);background:var(--app-background)}.app-shell[data-theme=beige]{--ink: #373127;--muted: #756d62;--line: #ddd4c5;--surface: #fffdf7;--surface-soft: #f4eee3;--primary: #99614d;--primary-dark: #744537;--primary-soft: #f3e2d8;--app-background: #eee7dc;--topbar: #fffcf6;--panel: #f7f1e7;--editor: #fffdf9;--control: #fffdf9;--canvas: #eee6d9;--canvas-check: #dfd4c4}.app-shell[data-theme=gray]{--ink: #282828;--muted: #676767;--line: #c6c6c6;--surface: #fafafa;--surface-soft: #e8e8e8;--primary: #666666;--primary-dark: #444444;--primary-soft: #dadada;--app-background: #d0d0d0;--topbar: #eeeeee;--panel: #e2e2e2;--editor: #f8f8f8;--control: #fff;--canvas: #dedede;--canvas-check: #c5c5c5}.app-shell[data-theme=charcoal]{--ink: #f0f0f4;--muted: #acaab6;--line: #45434e;--surface: #29272e;--surface-soft: #36343d;--primary: #a89cf3;--primary-dark: #c2b9ff;--primary-soft: #45405f;--danger: #ff9b9b;--app-background: #1d1c21;--topbar: #242229;--panel: #2a2830;--editor: #201f25;--control: #383640;--canvas: #2b2a31;--canvas-check: #3b3943}.app-shell[data-theme=black]{--ink: #f6f5f8;--muted: #bdb9c7;--line: #3c3944;--surface: #17161a;--surface-soft: #27252c;--primary: #b0a3ff;--primary-dark: #cec6ff;--primary-soft: #464062;--danger: #ffa1a1;--app-background: #0d0d0f;--topbar: #151419;--panel: #1c1b20;--editor: #111115;--control: #29272f;--canvas: #242329;--canvas-check: #34323a}.topbar{z-index:20;display:grid;grid-template-columns:auto minmax(0,1fr) auto;flex:0 0 48px;gap:16px;align-items:center;min-width:0;padding:6px 12px;border-bottom:1px solid var(--line);background:var(--topbar)}.brand{display:inline-flex;gap:8px;align-items:center;white-space:nowrap}.brand-mark{display:grid;width:32px;height:32px;place-items:center;border-radius:50%;color:#fff;background:linear-gradient(145deg,var(--primary-dark),var(--primary));font-size:18px;font-weight:900}.brand-mark svg{width:24px;height:24px;overflow:visible}.brand-mark svg text{fill:currentColor;stroke:none;font-family:SignPainter,Noteworthy,Bradley Hand,cursive;font-size:27px;font-style:normal;font-weight:700}.brand strong{font-family:SignPainter,Noteworthy,Bradley Hand,cursive;font-size:22px;font-style:normal;font-weight:700;letter-spacing:.04em;line-height:1}.helper-state{display:inline-flex;gap:7px;align-items:center;padding:5px 9px;border:1px solid var(--line);border-radius:999px;white-space:nowrap;color:var(--muted);background:#fff;font-size:11px;font-weight:800}.helper-state>span{width:7px;height:7px;border-radius:50%;background:#c88432}.helper-online>span{background:#6558d3}.top-controls{display:flex;gap:6px;align-items:center}.language-picker select{width:88px;min-height:29px;padding:4px 24px 4px 7px;background:var(--control);font-size:10px}.theme-picker{position:relative}.theme-picker summary{display:grid;width:29px;height:29px;place-items:center;list-style:none;border:1px solid var(--line);border-radius:7px;cursor:pointer;background:var(--control)}.theme-picker summary::-webkit-details-marker{display:none}.theme-picker summary>span,.theme-picker button{width:18px;height:18px;padding:0;border:1px solid rgba(103,103,118,.4);border-radius:50%;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.theme-picker button:hover{transform:scale(1.14)}.theme-picker summary>span{border-radius:50%}.theme-options{position:absolute;z-index:30;top:calc(100% + 7px);right:0;display:grid;grid-template-columns:repeat(5,18px);gap:6px;padding:8px;border:1px solid var(--line);border-radius:9px;background:var(--control);box-shadow:0 8px 18px #1817232e}.theme-picker button{border-radius:50%}.theme-picker button.active{box-shadow:0 0 0 2px var(--topbar),0 0 0 3px var(--primary)}.theme-picker [data-theme-option=black]{background:#0d0d0f}.theme-picker [data-theme-option=charcoal]{background:#34313a}.theme-picker [data-theme-option=gray]{background:#8c8c8c}.theme-picker [data-theme-option=beige]{background:#d3bfa5}.theme-picker [data-theme-option=white]{background:#fff}.compact-main{min-height:0;flex:1;padding:8px;overflow:hidden}.workspace{display:grid;width:100%;height:100%;min-height:0;grid-template-columns:300px minmax(0,1fr);overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 5px 18px #312b5b14}.image-sidebar{position:relative;display:flex;min-width:0;min-height:0;flex-direction:column;padding:12px;overflow:hidden;border-right:1px solid var(--line);background:var(--panel)}.sidebar-status{display:flex;flex:0 0 30px;min-width:0;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;padding:5px 2px 0;overflow:hidden;border-top:1px solid var(--line);color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:700}.sidebar-status>span{min-width:0;overflow:hidden;text-overflow:ellipsis}.sidebar-status a{flex:0 0 auto;color:var(--primary);text-decoration:none}.sidebar-status a:hover{text-decoration:underline}.image-sidebar.is-dragging{background:var(--primary-soft)}.sidebar-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.sidebar-heading h1{margin:0;font-size:17px}.sidebar-heading>span{min-width:25px;padding:3px 7px;border-radius:999px;color:var(--primary-dark);background:var(--primary-soft);text-align:center;font-size:11px;font-weight:900}.source-actions{display:grid;grid-template-columns:minmax(0,1fr) 40px;gap:7px}.primary-button,.secondary-button,.soft-button,.confirm-button,.export-button,.danger-button,.folder-button{min-height:36px;padding:7px 11px;border:1px solid transparent;border-radius:8px;cursor:pointer;white-space:nowrap;font-size:12px;font-weight:800}.primary-button,.confirm-button,.export-button{color:#fff;background:var(--primary)}.primary-button:hover:not(:disabled),.confirm-button:hover:not(:disabled),.export-button:hover:not(:disabled){background:var(--primary-dark)}.secondary-button,.folder-button{border-color:var(--line);background:#fff}.soft-button{color:var(--primary-dark);background:var(--primary-soft)}.danger-button{border-color:#f0d0d0;color:var(--danger);background:#fff7f7}.subfolder-toggle{display:inline-flex;gap:7px;align-items:center;margin:8px 2px 10px;color:var(--muted);font-size:11px;cursor:pointer}.subfolder-toggle input,.check-row input{width:16px;height:16px;margin:0;accent-color:var(--primary)}.image-queue{display:flex;min-height:0;flex:1;flex-direction:column}.queue-empty{display:grid;width:100%;min-height:0;flex:1;place-items:center;align-content:center;gap:8px;padding:0;border:0;border-radius:9px;color:var(--muted);background:transparent;text-align:center;cursor:pointer}.queue-empty .input-icon{display:grid;width:48px;height:48px;place-items:center;border-radius:50%;color:var(--primary);background:transparent;font-size:31px;font-weight:900}.input-icon svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.3}.magnifier-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.3}.queue-empty p{margin:0;font-size:12px;font-weight:700}.queue-list{display:grid;min-height:0;gap:5px;align-content:start;margin:0;padding:0 2px 8px 0;overflow-y:auto;list-style:none}.queue-list li{position:relative}.queue-item{display:grid;width:100%;min-height:58px;grid-template-columns:43px minmax(0,1fr);gap:8px;align-items:center;padding:6px 29px 6px 6px;border:1px solid transparent;border-radius:8px;cursor:pointer;text-align:left;background:transparent}.queue-item:hover,.queue-item.active{border-color:var(--primary);background:var(--primary-soft)}.queue-item.active{box-shadow:inset 3px 0 var(--primary)}.queue-index{display:none}.queue-item img{width:43px;height:43px;border-radius:6px;object-fit:cover;background:var(--surface-soft)}.queue-copy{display:grid;min-width:0;gap:4px}.queue-meta{display:flex;min-width:0;gap:6px;align-items:center;color:var(--muted);font-size:9px}.queue-copy strong{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.status{justify-self:start;padding:2px 6px;border-radius:999px;color:#707184;background:#ececf2;font-size:9px;font-weight:900}.status-review{color:#865114;background:#fff0cf}.status-confirmed{color:#4b42ae;background:#e5e2ff}.status-done{color:#fff;background:var(--primary)}.status-error{color:#9b3333;background:#fde6e6}.queue-remove{position:absolute;top:16px;right:4px;display:grid;width:25px;height:25px;place-items:center;border:0;border-radius:50%;cursor:pointer;color:#81918a;background:transparent;font-size:18px}.queue-remove:hover{color:var(--danger);background:#fdeeee}.drop-overlay{position:absolute;z-index:10;inset:8px;display:grid;place-items:center;border:2px dashed var(--primary);border-radius:10px;color:var(--primary-dark);background:#eeecfff2;font-size:17px;font-weight:900;pointer-events:none}.right-workspace{display:grid;min-width:0;min-height:0;grid-template-columns:minmax(0,1fr) 238px;overflow:hidden}.editor-panel{display:flex;min-width:0;min-height:0;flex-direction:column;padding:10px 12px;overflow:hidden;background:var(--editor)}.editor-heading{display:flex;flex:0 0 39px;gap:14px;align-items:center;justify-content:space-between;min-width:0}.file-heading{min-width:0}.editor-heading h2{max-width:560px;margin:0;overflow:hidden;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.editor-heading small{display:block;margin-top:2px;color:var(--muted);font-size:10px}.detect-actions,.review-actions{display:flex;flex:0 0 auto;gap:6px}.editor-toolbar{display:flex;flex:0 0 39px;gap:3px;align-items:center;margin:5px 0 7px;padding:3px;overflow-x:auto;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft)}.editor-toolbar button{display:inline-flex;width:82px;min-height:31px;gap:5px;align-items:center;justify-content:center;padding:4px 10px;border:0;border-radius:6px;cursor:pointer;white-space:nowrap;color:#68687b;background:transparent;font-size:10px;font-weight:800}.editor-toolbar button>span[aria-hidden]{font-size:14px;line-height:1}.tool-label{display:inline}.editor-toolbar button:hover:not(:disabled),.editor-toolbar button.active{color:var(--primary-dark);background:var(--control);box-shadow:0 2px 6px #3e36741a}.editor-stage{display:flex;min-width:0;min-height:0;flex:1;align-items:center;justify-content:center;overflow:hidden}.image-surface{position:relative;flex:0 0 auto;margin:auto;overflow:hidden;border:0;border-radius:8px;background:linear-gradient(45deg,var(--canvas-check) 25%,transparent 25%),linear-gradient(-45deg,var(--canvas-check) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--canvas-check) 75%),linear-gradient(-45deg,transparent 75%,var(--canvas-check) 75%),var(--canvas);background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px;box-shadow:inset 0 0 0 1px var(--line)}.image-surface>img,.region-layer{position:absolute;inset:0;display:block;width:100%;height:100%}.image-surface>img{object-fit:fill;pointer-events:none;-webkit-user-select:none;user-select:none}.region-layer{touch-action:none}.region-layer.tool-smart{cursor:crosshair}.privacy-region{fill:currentColor;fill-opacity:.15;stroke:currentColor;stroke-width:3px;cursor:move}.privacy-region:hover,.privacy-region.selected{fill-opacity:.24;stroke-width:4px}.privacy-region.low-confidence{stroke-dasharray:9 6}.selection-handles line{stroke:#fff;stroke-width:2px;filter:drop-shadow(0 1px 1px rgba(0,0,0,.5))}.resize-handle,.rotation-handle{fill:#fff;stroke:var(--primary-dark);stroke-width:2px;cursor:nwse-resize;filter:drop-shadow(0 1px 2px rgba(0,0,0,.28))}.resize-nw,.resize-se{cursor:nwse-resize}.resize-ne,.resize-sw{cursor:nesw-resize}.rotation-handle{cursor:grab;fill:#f5e78f}.job-warning-slot{display:flex;flex:0 0 25px;align-items:center}.job-warning{width:100%;margin:3px 0 0;padding:6px 9px;overflow:hidden;border-radius:6px;color:#825116;background:#fff3d9;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:700}.main-empty-state{display:grid;min-height:0;flex:1;place-items:center;align-content:center;gap:9px;color:var(--muted)}.main-empty-state span{color:var(--primary);font-family:SignPainter,Noteworthy,Bradley Hand,cursive;font-size:clamp(54px,8vw,112px);font-style:normal;font-weight:700;letter-spacing:.03em;line-height:.8;opacity:.18}.main-empty-state strong{font-size:13px}.review-row{display:flex;flex:0 0 49px;gap:12px;align-items:flex-end;justify-content:flex-end;padding-top:7px;border-top:1px solid var(--line)}.review-row>span{align-self:center;color:var(--muted);font-size:11px;font-weight:800}.inspector-panel{display:flex;min-width:0;min-height:0;flex-direction:column;padding:12px;overflow-y:auto;border-left:1px solid var(--line);background:var(--panel)}.inspector-panel section+section{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.recognition-controls,.region-controls,.output-controls{display:grid;gap:8px}.execute-area{margin-top:auto!important;padding-top:14px}.execute-area .export-button{width:100%;min-height:42px}.compact-field{display:grid;grid-template-columns:22px minmax(0,1fr);gap:6px;align-items:center}.compact-field>span,.compact-range>span{color:var(--muted);text-align:center;font-size:15px;font-weight:900}select{width:100%;min-height:34px;padding:5px 28px 5px 8px;border:1px solid var(--line);border-radius:7px;color:var(--ink);background:var(--control);font-size:11px;font-weight:700}.compact-range{display:grid;grid-template-columns:58px minmax(0,1fr) 30px;gap:6px;align-items:center}.compact-range>span{overflow:hidden;text-align:left;font-size:10px;white-space:nowrap}input[type=range]{width:100%;accent-color:var(--primary)}.compact-range output{padding:4px;border-radius:6px;color:var(--primary-dark);background:var(--primary-soft);text-align:center;font-size:9px;font-weight:900}.icon-action-row{display:flex;align-items:center;justify-content:flex-end;gap:6px}.icon-action-row>span:first-child{margin-right:auto}.icon-button{display:grid;width:31px;height:31px;place-items:center;padding:0;border:1px solid var(--line);border-radius:7px;cursor:pointer;background:var(--control);font-size:17px;font-weight:900}.danger-icon{color:var(--danger)}.confidence-dot{display:grid;width:21px;height:21px;place-items:center;border-radius:50%;color:#80500f;background:#ffebb9;font-size:11px;font-weight:900}.gps-toggle{display:inline-flex;gap:6px;align-items:center;justify-self:start;padding:6px 8px;border:1px solid var(--line);border-radius:7px;cursor:pointer;background:#fff;font-size:10px;font-weight:800}.gps-toggle input{width:15px;height:15px;margin:0;accent-color:var(--primary)}.output-picker{display:grid;width:100%;min-height:38px;grid-template-columns:auto minmax(0,1fr) auto;gap:7px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:8px;cursor:pointer;text-align:left;background:#fff}.output-picker strong{min-width:0;overflow:hidden;font-size:10px;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 1050px){.workspace{grid-template-columns:260px minmax(0,1fr)}.right-workspace{grid-template-columns:minmax(0,1fr) 210px}.editor-panel{padding-right:8px;padding-left:8px}.editor-toolbar button{padding-right:6px;padding-left:6px}}@media (max-height: 680px){.topbar{flex-basis:42px;padding-top:4px;padding-bottom:4px}.brand-mark{width:29px;height:29px}.compact-main{padding:5px}.workspace{border-radius:9px}.editor-heading{flex-basis:35px}.editor-toolbar{flex-basis:35px;margin:3px 0 5px}.editor-toolbar button{min-height:27px}.review-row{flex-basis:43px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
