.react-mask-editor-outer{flex-direction:column;justify-content:flex-start;align-items:stretch;width:100%;height:100%;min-height:300px;margin:0 auto;display:flex;position:relative;overflow:hidden}.react-mask-editor-outer .react-mask-editor-inner{flex:auto;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative;overflow:hidden}.react-mask-editor-outer .react-mask-editor-inner .canvas-container{box-sizing:border-box;justify-content:center;align-items:center;width:100%;height:100%;min-height:200px;display:flex;position:relative;overflow:hidden}.react-mask-editor-outer .react-mask-editor-inner .all-canvases{will-change:transform;touch-action:none;width:auto;height:auto;transform-style:preserve-3d;backface-visibility:hidden;-webkit-transform-style:preserve-3d;display:block;position:relative;transform:translateZ(0)}.react-mask-editor-outer .all-canvases>canvas{display:block;position:absolute;top:0;left:0}.react-mask-editor-outer .react-mask-editor-base-canvas{z-index:5}.react-mask-editor-outer .react-mask-editor-mask-canvas{z-index:10}.react-mask-editor-outer .react-mask-editor-cursor-canvas{z-index:20;background-color:#0000;pointer-events:auto!important}body.panning-active{-webkit-user-select:none;user-select:none;cursor:grabbing!important}.react-mask-editor-inner[style*="cursor: zoom-in"]{cursor:zoom-in}@supports not (cursor:zoom-in){.react-mask-editor-inner[style*="cursor: zoom-in"]{cursor:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"><circle cx=\"8\" cy=\"8\" r=\"7\" stroke=\"black\" stroke-width=\"1.5\" fill=\"white\" fill-opacity=\"0.5\"/><line x1=\"13\" y1=\"13\" x2=\"18\" y2=\"18\" stroke=\"black\" stroke-width=\"1.5\"/><line x1=\"6\" y1=\"8\" x2=\"10\" y2=\"8\" stroke=\"black\" stroke-width=\"1.5\"/><line x1=\"8\" y1=\"6\" x2=\"8\" y2=\"10\" stroke=\"black\" stroke-width=\"1.5\"/></svg>") 10 10,auto}}:root{color:var(--text);background:var(--page-bg);font-synthesis:none;text-rendering:optimizelegibility;--page-bg:#eef1f4;--page-bg-top:#f8fafc;--page-bg-mid:#eef2f6;--page-bg-bottom:#e4e9ee;--page-glow:79 115 151;--text:#26313d;--text-strong:#111821;--text-muted:#667280;--line:#d7dee6;--line-strong:#c3cbd5;--topbar-bg:#fafcfee6;--rail-bg:#f2f5f8f0;--panel-bg:#fff;--panel-soft:#f5f7fa;--panel-hover:#eef4f7;--canvas-bg:#dde4ea;--canvas-soft:#f8fafc;--canvas-grid:#e8edf2;--preview-bg:#f8fbfd;--preview-chrome:#eef4f8;--preview-check-a:#d7dee6;--preview-check-b:#eef3f7;--accent:#3366d6;--accent-strong:#2450b8;--accent-soft:#e9efff;--accent-glow:51 102 214;--ok:#166944;--ok-bg:#e6f5ec;--warn:#80560b;--warn-bg:#fff3d3;--danger:#923325;--danger-bg:#ffe8e2;--shadow-soft:0 16px 40px #222e3e1f;--shadow-strong:0 24px 56px #222e3e2e;--motion-fast:.14s;--motion-medium:.24s;--motion-pop:.42s;--motion-slow:.56s;--ease-standard:cubic-bezier(.2, 0, 0, 1);--ease-emphasized:cubic-bezier(.2, .85, .25, 1);--ease-pop:cubic-bezier(.18, .88, .28, 1.18);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif}[data-theme=graphite]{--page-bg:#11161d;--page-bg-top:#171d25;--page-bg-mid:#10151b;--page-bg-bottom:#0d1117;--page-glow:65 91 123;--text:#d7dee7;--text-strong:#f5f7fa;--text-muted:#8b98a8;--line:#27313d;--line-strong:#303b48;--topbar-bg:#10151ce0;--rail-bg:#12181feb;--panel-bg:#151c25;--panel-soft:#101720;--panel-hover:#14202a;--canvas-bg:#090d13;--canvas-soft:#111821;--canvas-grid:#161d26;--preview-bg:#101720;--preview-chrome:#131c27;--preview-check-a:#2b3440;--preview-check-b:#17212b;--accent:#8b949e;--accent-strong:#c4ccd5;--accent-soft:#1f262e;--accent-glow:139 148 158;--ok:#86efc0;--ok-bg:#143024;--warn:#f4c36d;--warn-bg:#302714;--danger:#ff9b8a;--danger-bg:#321a17;--shadow-soft:0 14px 36px #0000002e;--shadow-strong:0 24px 56px #00000057}[data-theme=cyan]{--page-bg:#11161d;--page-bg-top:#171d25;--page-bg-mid:#10151b;--page-bg-bottom:#0d1117;--page-glow:65 91 123;--text:#d7dee7;--text-strong:#f5f7fa;--text-muted:#8b98a8;--line:#27313d;--line-strong:#303b48;--topbar-bg:#10151ce0;--rail-bg:#12181feb;--panel-bg:#151c25;--panel-soft:#101720;--panel-hover:#14202a;--canvas-bg:#090d13;--canvas-soft:#111821;--canvas-grid:#161d26;--preview-bg:#101720;--preview-chrome:#13202a;--preview-check-a:#28404a;--preview-check-b:#17232c;--accent:#43b3c8;--accent-strong:#72d6e9;--accent-soft:#10222a;--accent-glow:67 179 200;--shadow-soft:0 14px 36px #0000002e;--shadow-strong:0 24px 56px #00000057}[data-theme=light]{--page-bg:#eef1f4;--page-bg-top:#f8fafc;--page-bg-mid:#eef2f6;--page-bg-bottom:#e4e9ee;--page-glow:79 115 151;--text:#26313d;--text-strong:#111821;--text-muted:#667280;--line:#d7dee6;--line-strong:#c3cbd5;--topbar-bg:#fafcfee6;--rail-bg:#f2f5f8f0;--panel-bg:#fff;--panel-soft:#f5f7fa;--panel-hover:#eef4f7;--canvas-bg:#dde4ea;--canvas-soft:#f8fafc;--canvas-grid:#e8edf2;--preview-bg:#f8fbfd;--preview-chrome:#eef4f8;--preview-check-a:#d7dee6;--preview-check-b:#eef3f7;--accent:#3366d6;--accent-strong:#2450b8;--accent-soft:#e9efff;--accent-glow:51 102 214;--ok:#166944;--ok-bg:#e6f5ec;--warn:#80560b;--warn-bg:#fff3d3;--danger:#923325;--danger-bg:#ffe8e2;--shadow-soft:0 16px 40px #222e3e1f;--shadow-strong:0 24px 56px #222e3e2e}[data-theme=sage]{--page-bg:#eef2ef;--page-bg-top:#fbfcfa;--page-bg-mid:#eef3ef;--page-bg-bottom:#dfe8e2;--page-glow:67 124 99;--text:#26342d;--text-strong:#132017;--text-muted:#627165;--line:#d2ddd4;--line-strong:#b9c8bc;--topbar-bg:#fafcfae8;--rail-bg:#f1f6f2f0;--panel-bg:#fff;--panel-soft:#f3f8f4;--panel-hover:#e9f1eb;--canvas-bg:#d9e5dc;--canvas-soft:#f7fbf7;--canvas-grid:#e4ede6;--preview-bg:#f7fbf7;--preview-chrome:#eaf2ec;--preview-check-a:#d2ddd4;--preview-check-b:#eef5f0;--accent:#2f8061;--accent-strong:#206848;--accent-soft:#e2f1e8;--accent-glow:47 128 97;--ok:#17633f;--ok-bg:#e1f4e8;--warn:#80610f;--warn-bg:#fff4cf;--danger:#95382c;--danger-bg:#ffe9e3;--shadow-soft:0 16px 40px #2341311f;--shadow-strong:0 24px 56px #2341312b}[data-theme=coral]{--page-bg:#f3f1ef;--page-bg-top:#fffaf8;--page-bg-mid:#f3efed;--page-bg-bottom:#e7e2df;--page-glow:199 93 74;--text:#352d2a;--text-strong:#1f1714;--text-muted:#756861;--line:#ded5d0;--line-strong:#cabbb4;--topbar-bg:#fffaf8e8;--rail-bg:#f6f2eff0;--panel-bg:#fff;--panel-soft:#f8f3f0;--panel-hover:#f0e8e4;--canvas-bg:#e7ded9;--canvas-soft:#fffaf7;--canvas-grid:#efe5e0;--preview-bg:#fffaf7;--preview-chrome:#f1e7e2;--preview-check-a:#decfca;--preview-check-b:#f6eeea;--accent:#c75d4a;--accent-strong:#a64031;--accent-soft:#fde8e2;--accent-glow:199 93 74;--ok:#17633f;--ok-bg:#e3f2e7;--warn:#86560a;--warn-bg:#fff1cc;--danger:#9d3328;--danger-bg:#ffe4df;--shadow-soft:0 16px 40px #4f2e241f;--shadow-strong:0 24px 56px #4f2e242e}[data-theme=mono]{--page-bg:#f1f2f3;--page-bg-top:#fbfbfc;--page-bg-mid:#f0f1f2;--page-bg-bottom:#e2e4e6;--page-glow:96 104 112;--text:#2d3339;--text-strong:#121417;--text-muted:#697178;--line:#d7dadd;--line-strong:#bfc4c8;--topbar-bg:#fafbfce8;--rail-bg:#f3f4f5f2;--panel-bg:#fff;--panel-soft:#f4f5f6;--panel-hover:#e9ebed;--canvas-bg:#dcdee1;--canvas-soft:#f9fafb;--canvas-grid:#e7e9eb;--preview-bg:#f9fafb;--preview-chrome:#eceef0;--preview-check-a:#d5d8db;--preview-check-b:#f0f2f3;--accent:#4c5560;--accent-strong:#222832;--accent-soft:#e8eaed;--accent-glow:76 85 96;--ok:#255b42;--ok-bg:#e8f2ec;--warn:#735912;--warn-bg:#fff3d2;--danger:#84372e;--danger-bg:#ffe8e3;--shadow-soft:0 16px 40px #1c222a1a;--shadow-strong:0 24px 56px #1c222a29}*{box-sizing:border-box}body{background:radial-gradient(circle at 34% -20%, rgb(var(--page-glow) / 20%), transparent 36%), linear-gradient(180deg, var(--page-bg-top) 0%, var(--page-bg-mid) 58%, var(--page-bg-bottom) 100%);min-width:320px;min-height:100vh;margin:0}[data-theme=graphite] body,[data-theme=cyan] body{background:radial-gradient(circle at 34% -20%, rgb(var(--page-glow) / 20%), transparent 36%), linear-gradient(180deg, var(--page-bg-top) 0%, var(--page-bg-mid) 58%, var(--page-bg-bottom) 100%)}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible{outline:3px solid rgb(var(--accent-glow) / 18%);outline-offset:2px}.ghost-action{border:1px solid var(--line-strong);min-height:36px;color:var(--text-strong);background:linear-gradient(180deg, color-mix(in srgb, var(--panel-bg) 86%, transparent), transparent), var(--panel-soft);transition:border-color var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-emphasized);border-radius:999px;justify-content:center;align-items:center;gap:7px;padding:0 14px;font-size:13px;font-weight:800;display:inline-flex;box-shadow:0 8px 20px #0f172a14}.ghost-action:hover{border-color:var(--accent);color:var(--accent-strong);background:var(--panel-hover);box-shadow:0 12px 24px rgb(var(--accent-glow) / 12%);transform:translateY(-1px)}.ghost-action.icon-close{border-radius:999px;width:38px;height:38px;min-height:38px;padding:0}select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--text-muted) 50%), linear-gradient(135deg, var(--text-muted) 50%, transparent 50%);transition:border-color var(--motion-fast) var(--ease-standard), background-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-emphasized);background-position:calc(100% - 16px),calc(100% - 11px);background-repeat:no-repeat;background-size:5px 5px,5px 5px}select:hover{border-color:var(--accent);background-color:var(--panel-hover)}select:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px rgb(var(--accent-glow) / 16%);outline:none}.app-shell{min-height:100vh;color:var(--text);animation:app-enter var(--motion-slow) var(--ease-emphasized) both;flex-direction:column;display:flex;position:relative}.topbar{z-index:100;border-bottom:1px solid var(--line);background:var(--topbar-bg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);justify-content:space-between;align-items:center;gap:14px;min-height:58px;padding:10px 16px;display:flex;position:relative;overflow:visible;box-shadow:0 1px #ffffff0a}.topbar h1,.stage-toolbar h2,.results-header h2{letter-spacing:0;margin:0}.topbar h1{color:var(--text-strong);font-size:19px;line-height:1.2}.brand-block{align-items:center;min-width:190px;display:flex}.eyebrow{color:var(--text-muted);text-transform:uppercase;letter-spacing:0;margin:0 0 4px;font-size:11px}.status-row{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.status-pill,.download-link{border:1px solid var(--line-strong);min-height:30px;color:var(--text);background:var(--panel-soft);white-space:nowrap;border-radius:8px;align-items:center;gap:7px;padding:5px 10px;font-size:13px;text-decoration:none;display:inline-flex}button.download-link{cursor:pointer}button.download-link:disabled{opacity:.68;cursor:not-allowed}.topbar-status .status-pill{min-height:28px}.icon-action{border:1px solid var(--line-strong);width:36px;height:36px;color:var(--text-strong);background:linear-gradient(180deg, color-mix(in srgb, var(--accent-soft) 42%, transparent), transparent), var(--panel-soft);box-shadow:0 8px 20px rgb(var(--accent-glow) / 8%);transition:border-color var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-emphasized);border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.icon-action:hover{border-color:var(--accent);color:var(--accent-strong);background:var(--panel-hover);box-shadow:0 12px 26px rgb(var(--accent-glow) / 14%);transform:translateY(-1px)scale(1.02)}.icon-action:focus-visible{outline:3px solid rgb(var(--accent-glow) / 18%);outline-offset:2px}.download-link:hover,.secondary-action:hover,.manual-result-row:hover{border-color:var(--accent);background:var(--panel-hover);box-shadow:0 10px 22px rgb(var(--accent-glow) / 10%);transform:translateY(-1px)}.status-pill.ok{border-color:var(--ok);color:var(--ok);background:var(--ok-bg)}.status-pill.warn{border-color:var(--warn);color:var(--warn);background:var(--warn-bg)}.theme-switcher{z-index:110;position:relative}.theme-trigger{border:1px solid color-mix(in srgb, var(--theme-color) 38%, var(--line-strong));min-height:36px;color:color-mix(in srgb, var(--theme-color) 82%, var(--text-strong));background:radial-gradient(circle at 18px 50%, color-mix(in srgb, var(--theme-color) 30%, transparent), transparent 21px), linear-gradient(180deg, color-mix(in srgb, var(--theme-color) 12%, transparent), transparent), var(--panel-soft);box-shadow:0 8px 20px rgb(var(--accent-glow) / 8%);transition:border-color var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-emphasized);border-radius:999px;align-items:center;gap:8px;padding:0 11px 0 8px;font-size:12px;display:inline-flex}.theme-trigger:before{content:"";border:1px solid color-mix(in srgb, var(--theme-color) 70%, white);background:linear-gradient(135deg, var(--theme-color) 0 50%, color-mix(in srgb, var(--theme-color) 16%, var(--panel-bg)) 50% 100%);width:18px;height:18px;box-shadow:0 0 0 3px color-mix(in srgb, var(--theme-color) 12%, transparent), inset 0 1px 0 #ffffff61;border-radius:999px}.theme-trigger:hover,.theme-switcher.open .theme-trigger{border-color:var(--theme-color);box-shadow:0 12px 26px color-mix(in srgb, var(--theme-color) 20%, transparent);transform:translateY(-1px)}.theme-trigger span{color:var(--text-muted)}.theme-trigger strong{color:color-mix(in srgb, var(--theme-color) 88%, var(--text-strong));font-size:14px}.theme-trigger i{width:8px;height:8px;transition:transform var(--motion-fast) var(--ease-emphasized);border-bottom:2px solid;border-right:2px solid;transform:rotate(45deg)translateY(-2px)}.theme-switcher.open .theme-trigger i{transform:rotate(225deg)translateY(-1px)}.theme-menu{z-index:120;border:1px solid var(--line);background:color-mix(in srgb, var(--panel-bg) 96%, transparent);min-width:188px;box-shadow:var(--shadow-strong);animation:menu-in var(--motion-fast) var(--ease-emphasized) both;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);transform-origin:90% 0;border-radius:12px;gap:4px;padding:6px;display:grid;position:absolute;top:calc(100% + 8px);right:0}.theme-menu button{min-height:34px;color:color-mix(in srgb, var(--theme-color) 82%, var(--text-strong));text-align:left;transition:border-color var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-emphasized), color var(--motion-fast) var(--ease-standard);background:0 0;border:1px solid #0000;border-radius:8px;grid-template-columns:18px 1fr;align-items:center;gap:9px;padding:0 10px;font-weight:700;display:grid}.theme-menu button span{background:linear-gradient(135deg, var(--theme-color) 0 50%, color-mix(in srgb, var(--theme-color) 14%, var(--panel-bg)) 50% 100%);width:16px;height:16px;box-shadow:0 0 0 3px color-mix(in srgb, var(--theme-color) 14%, transparent), inset 0 1px 0 #ffffff59;border-radius:999px}.theme-menu button:hover,.theme-menu button.active{border-color:color-mix(in srgb, var(--theme-color) 44%, var(--line));background:color-mix(in srgb, var(--theme-color) 12%, var(--panel-soft));color:color-mix(in srgb, var(--theme-color) 92%, var(--text-strong));transform:translate(2px)}@keyframes menu-in{0%{opacity:0;transform:translateY(-7px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes app-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.workspace{z-index:1;grid-template-columns:minmax(360px,420px) minmax(540px,1fr) minmax(270px,320px);gap:0;width:100%;min-height:calc(100vh - 58px);padding:0;display:grid;position:relative}.left-rail,.right-rail{background:var(--rail-bg);flex-direction:column;gap:10px;min-height:0;padding:12px;display:flex}.left-rail{border-right:1px solid var(--line)}.right-rail{border-left:1px solid var(--line)}.panel{border:1px solid var(--line);background:var(--panel-bg);box-shadow:0 1px 0 #ffffff08 inset, var(--shadow-soft);animation:panel-in var(--motion-medium) var(--ease-emphasized) both;transition:border-color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-emphasized), background var(--motion-fast) var(--ease-standard);border-radius:8px;padding:12px}.panel:hover{border-color:color-mix(in srgb, var(--accent) 18%, var(--line))}.panel-title{color:var(--text);align-items:center;gap:8px;margin-bottom:12px;display:flex}.panel-title h3,.result-column h3,.histogram h3{color:var(--text-strong);letter-spacing:0;margin:0;font-size:14px}.field,.slider-field{color:var(--text);gap:6px;margin-top:10px;font-size:13px;display:grid}.field input,.field select{border:1px solid var(--line-strong);width:100%;min-height:34px;color:var(--text-strong);background:var(--panel-soft);border-radius:8px;padding:0 34px 0 10px}.animated-select-field{position:relative}.animated-select{z-index:10;position:relative}.animated-select.open{z-index:30}.animated-select-trigger{border:1px solid var(--line-strong);width:100%;min-height:34px;color:var(--text-strong);background:linear-gradient(180deg, color-mix(in srgb, var(--accent-soft) 28%, transparent), transparent), var(--panel-soft);text-align:left;transition:border-color var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-emphasized);border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:0 10px 0 11px;display:inline-flex;box-shadow:inset 0 1px #ffffff08}.animated-select-trigger strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;overflow:hidden}.animated-select-trigger i{border-right:2px solid var(--text-muted);border-bottom:2px solid var(--text-muted);width:8px;height:8px;transition:border-color var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-emphasized);flex:none;transform:rotate(45deg)translateY(-2px)}.animated-select-trigger:hover,.animated-select.open .animated-select-trigger{border-color:var(--accent);background:linear-gradient(180deg, color-mix(in srgb, var(--accent-soft) 48%, transparent), transparent), var(--panel-hover);box-shadow:0 0 0 3px rgb(var(--accent-glow) / 12%);transform:translateY(-1px)}.animated-select-trigger:hover i,.animated-select.open .animated-select-trigger i{border-color:var(--accent-strong)}.animated-select.open .animated-select-trigger i{transform:rotate(225deg)translateY(-1px)}.animated-select-menu{border:1px solid var(--line);background:color-mix(in srgb, var(--panel-bg) 96%, transparent);box-shadow:var(--shadow-strong);animation:menu-in var(--motion-fast) var(--ease-emphasized) both;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);transform-origin:50% 0;border-radius:10px;gap:4px;padding:5px;display:grid;position:absolute;top:calc(100% + 6px);left:0;right:0}.animated-select-menu button{min-height:32px;color:var(--text);text-align:left;transition:border-color var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-emphasized);background:0 0;border:1px solid #0000;border-radius:8px;padding:0 10px;font-weight:700}.animated-select-menu button:hover,.animated-select-menu button.active{border-color:color-mix(in srgb, var(--accent) 38%, var(--line));color:var(--text-strong);background:color-mix(in srgb, var(--accent-soft) 70%, var(--panel-soft));transform:translate(2px)}.slider-field span{justify-content:space-between;gap:10px;display:flex}.slider-field strong{color:var(--accent-strong);font-weight:700}.slider-field input{accent-color:var(--accent)}@keyframes panel-in{0%{opacity:0;transform:translateY(10px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes overlay-fade{0%{opacity:0}to{opacity:1}}@keyframes modal-pop{0%{opacity:0;transform:translateY(14px)scale(.975)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes tile-rise{0%{opacity:0;transform:translateY(8px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.slider-field.disabled{opacity:.55}.slider-field input:disabled{cursor:not-allowed}.library-selectors{gap:14px;display:grid}.library-selectors.libcom-style{margin-top:2px}.asset-library-block{border:1px solid var(--line);background:var(--panel-soft);border-radius:8px;gap:8px;padding:8px;display:grid}.asset-library-block:last-of-type{border-bottom:1px solid var(--line);padding-bottom:8px}.asset-library-block h3{color:var(--text-strong);margin:0;font-size:15px;line-height:1.2}.asset-library-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.asset-library-head:after{content:"";background:var(--line);flex:auto;height:1px}.asset-grid-panel{background:0 0;gap:8px;padding:0;display:grid}.asset-random-button{border:1px solid var(--line-strong);width:30px;height:30px;min-height:30px;color:var(--text);background:var(--panel-soft);white-space:nowrap;border-radius:8px;flex:none;justify-content:center;align-items:center;padding:0;font-size:12px;font-weight:700;transition:border-color .15s,background .15s,color .15s,box-shadow .15s,transform .15s;display:inline-flex}.asset-random-button:hover{border-color:var(--accent);color:var(--text-strong);background:var(--panel-hover);box-shadow:0 8px 18px rgb(var(--accent-glow) / 14%);transform:translateY(-1px)rotate(8deg)}.asset-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.asset-tile-wrap{min-width:0;animation:tile-rise var(--motion-medium) var(--ease-emphasized) both;position:relative}.asset-grid-tile{aspect-ratio:1;background:var(--preview-chrome);cursor:grab;width:100%;box-shadow:inset 0 0 0 1px var(--line);border:2px solid #0000;border-radius:8px;padding:3px;transition:border-color .15s,box-shadow .15s,transform .15s,background .15s;display:block;position:relative;overflow:hidden}.asset-grid-tile:hover{border-color:var(--accent);background:var(--panel-hover);transform:translateY(-3px)scale(1.015)}.asset-grid-tile:active{cursor:grabbing;transform:translateY(0)scale(.985)}.asset-grid-tile.active{border-color:var(--accent);box-shadow:inset 0 0 0 1px #ffffff2e, 0 0 0 3px rgb(var(--accent-glow) / 22%), 0 10px 24px rgb(var(--accent-glow) / 16%)}.asset-grid-tile.active:after{content:"";background:var(--accent-strong);width:8px;height:8px;box-shadow:0 0 0 2px var(--panel-bg);border-radius:999px;position:absolute;top:6px;left:6px}.asset-grid-tile img{object-fit:contain;background:var(--preview-bg);pointer-events:none;width:100%;height:100%;transition:transform var(--motion-medium) var(--ease-emphasized), filter var(--motion-medium) var(--ease-standard);border-radius:6px}.asset-grid-tile:hover img{filter:saturate(1.04);transform:scale(1.035)}.asset-grid-tile.active img{animation:selected-image-bloom var(--motion-pop) var(--ease-pop) both}.asset-grid-tile.transparent img{background-image:linear-gradient(45deg, var(--preview-check-a) 25%, transparent 25%), linear-gradient(-45deg, var(--preview-check-a) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, var(--preview-check-a) 75%), linear-gradient(-45deg, transparent 75%, var(--preview-check-a) 75%);background-color:var(--preview-check-b);background-position:0 0,0 7px,7px -7px,-7px 0;background-size:14px 14px}.asset-delete-button{z-index:4;border:1px solid color-mix(in srgb, var(--danger) 34%, var(--line));width:24px;height:24px;min-height:24px;color:var(--danger);background:color-mix(in srgb, var(--panel-bg) 88%, transparent);opacity:0;border-radius:999px;justify-content:center;align-items:center;padding:0;transition:opacity .15s,transform .15s,background .15s,border-color .15s;display:inline-flex;position:absolute;top:6px;right:6px;transform:translateY(-2px)scale(.94);box-shadow:0 8px 18px #0f172a2e}.asset-tile-wrap:hover .asset-delete-button,.asset-delete-button:focus-visible{opacity:1;transform:translateY(0)scale(1)}.asset-delete-button:hover{border-color:var(--danger);background:var(--danger-bg)}.uploaded-assets-section{gap:8px;display:grid}.uploaded-assets-divider{color:var(--text-muted);letter-spacing:0;grid-template-columns:1fr auto auto 1fr;align-items:center;gap:8px;font-size:11px;font-weight:800;display:grid}.uploaded-assets-divider:before,.uploaded-assets-divider:after{content:"";background:linear-gradient(90deg, transparent, var(--line-strong), transparent);height:1px}.uploaded-assets-divider strong{border:1px solid var(--line);min-width:20px;height:20px;color:var(--accent-strong);background:var(--panel-bg);border-radius:999px;justify-content:center;align-items:center;font-size:11px;display:inline-flex}.uploaded-asset-grid{scrollbar-gutter:stable;max-height:152px;padding:2px;overflow:auto}@media (width>=1500px){.workspace{grid-template-columns:minmax(520px,640px) minmax(520px,1fr) minmax(240px,280px)}}.upload-dropzone{border:1px dashed var(--line-strong);min-height:34px;color:var(--text-muted);background:var(--panel-soft);text-align:center;transition:border-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-emphasized), box-shadow var(--motion-fast) var(--ease-standard);border-radius:8px;justify-content:center;align-items:center;gap:7px;display:inline-flex;position:relative;overflow:hidden}.upload-dropzone svg{color:var(--text-muted)}.upload-dropzone span{padding:0;font-size:12px;font-weight:700;line-height:1}.upload-dropzone:hover{border-color:var(--accent);color:var(--text-strong);background:var(--panel-hover);box-shadow:0 10px 22px rgb(var(--accent-glow) / 10%);transform:translateY(-1px)}.upload-modal-backdrop{z-index:68}.upload-modal{border:1px solid var(--line);background:var(--panel-bg);width:min(1040px,100vw - 48px);max-height:min(820px,100vh - 48px);box-shadow:var(--shadow-strong);animation:modal-pop var(--motion-medium) var(--ease-emphasized) both;border-radius:10px;grid-template-rows:auto auto minmax(0,1fr) auto;gap:14px;padding:18px;display:grid;overflow:hidden}.upload-modal-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.upload-modal-head h2{color:var(--text-strong);margin:0;font-size:20px}.upload-mode-tabs{border:1px solid var(--line);background:var(--panel-soft);border-radius:10px;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;width:min(360px,100%);padding:4px;display:inline-grid}.upload-mode-tabs button{min-height:34px;color:var(--text);transition:border-color var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-emphasized);background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:7px;font-weight:800;display:inline-flex}.upload-mode-tabs button:hover:not(:disabled){color:var(--text-strong);background:var(--panel-hover);transform:translateY(-1px)}.upload-mode-tabs button.active{border-color:color-mix(in srgb, var(--accent) 42%, var(--line));color:var(--accent-strong);background:var(--panel-bg);box-shadow:0 10px 22px rgb(var(--accent-glow) / 10%)}.upload-mode-tabs button:disabled{opacity:.5;cursor:not-allowed}.online-picker{grid-template-rows:auto minmax(0,1fr) auto;gap:12px;min-height:0;display:grid}.online-search-row{border:1px solid var(--line);background:var(--panel-soft);border-radius:10px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:7px 8px;display:grid}.online-search-row svg{color:var(--text-muted)}.online-search-row input{min-width:0;color:var(--text-strong);background:0 0;border:0;outline:0}.online-result-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;min-height:0;padding:2px;display:grid;overflow:auto}.online-result-card{border:1px solid var(--line);min-width:0;min-height:190px;color:var(--text);background:var(--panel-soft);text-align:left;transition:border-color var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-emphasized);border-radius:8px;grid-template-rows:minmax(120px,1fr) auto;padding:6px;display:grid;position:relative;overflow:hidden}.online-result-card:hover:not(:disabled){border-color:var(--accent);background:var(--panel-hover);box-shadow:0 14px 28px rgb(var(--accent-glow) / 12%);transform:translateY(-2px)}.online-result-card:disabled{cursor:wait;opacity:.78}.online-result-card img{object-fit:cover;background:var(--preview-bg);border-radius:6px;width:100%;height:100%;min-height:120px}.online-result-card>span{gap:3px;min-width:0;padding:7px 2px 1px;display:grid}.online-result-card strong,.online-result-card small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.online-result-card strong{color:var(--text-strong);font-size:12px}.online-result-card small{color:var(--text-muted);font-size:11px}.online-result-card a{border:1px solid var(--line);width:28px;height:28px;color:var(--text);background:color-mix(in srgb, var(--panel-bg) 88%, transparent);border-radius:999px;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:10px;right:10px;box-shadow:0 8px 18px #0f172a2e}.online-result-card em{color:var(--text-strong);background:color-mix(in srgb, var(--panel-bg) 78%, transparent);border-radius:6px;place-items:center;font-style:normal;font-weight:900;display:grid;position:absolute;inset:6px}.online-picker-footer{color:var(--text-muted);justify-content:center;align-items:center;gap:10px;font-size:12px;font-weight:700;display:flex}.upload-modal-dropzone{border:1px dashed var(--line-strong);min-height:360px;color:var(--text-muted);background:linear-gradient(180deg, color-mix(in srgb, var(--accent-soft) 36%, transparent), transparent), var(--panel-soft);border-radius:10px;align-content:center;place-items:center;gap:10px;display:grid;position:relative;overflow:hidden}.upload-modal-dropzone svg{color:var(--accent-strong)}.upload-modal-dropzone span{color:var(--text-strong);font-weight:900}.upload-modal-dropzone input{opacity:0;cursor:pointer;position:absolute;inset:0}.feature-modal-backdrop{z-index:72}.feature-modal{border:1px solid var(--line);background:linear-gradient(135deg, color-mix(in srgb, var(--accent-soft) 36%, transparent), transparent 42%), var(--panel-bg);width:min(980px,100vw - 48px);max-height:min(720px,100vh - 48px);box-shadow:var(--shadow-strong);animation:modal-pop var(--motion-medium) var(--ease-emphasized) both;border-radius:10px;grid-template-rows:auto minmax(0,1fr);gap:16px;padding:18px;display:grid;overflow:hidden}.feature-modal-head h2{color:var(--text-strong);margin:2px 0 4px;font-size:22px;line-height:1.2}.feature-modal-body{grid-template-columns:minmax(210px,250px) minmax(0,1fr);gap:14px;min-height:0;display:grid}.feature-tabs{align-content:start;gap:7px;min-height:0;padding-right:2px;display:grid;overflow:auto}.feature-tabs button{border:1px solid color-mix(in srgb, var(--line) 82%, transparent);min-height:42px;color:var(--text);background:color-mix(in srgb, var(--panel-soft) 82%, transparent);text-align:left;transition:border-color var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-emphasized);border-radius:8px;grid-template-columns:34px 1fr;align-items:center;gap:10px;padding:0 12px 0 6px;font-weight:800;display:grid}.feature-tabs button span{width:28px;height:28px;color:var(--text-muted);background:var(--panel-bg);box-shadow:inset 0 0 0 1px var(--line);border-radius:999px;place-items:center;font-size:11px;display:grid}.feature-tabs button:hover,.feature-tabs button.active{border-color:color-mix(in srgb, var(--accent) 42%, var(--line));color:var(--text-strong);background:linear-gradient(180deg, color-mix(in srgb, var(--accent-soft) 58%, transparent), transparent), var(--panel-bg);box-shadow:0 12px 24px rgb(var(--accent-glow) / 10%);transform:translate(2px)}.feature-tabs button.active span{color:#fff;background:var(--accent);box-shadow:0 8px 18px rgb(var(--accent-glow) / 18%)}.feature-detail{border:1px solid color-mix(in srgb, var(--line) 82%, transparent);background:radial-gradient(circle at 100% 0%, rgb(var(--accent-glow) / 10%), transparent 28%), color-mix(in srgb, var(--panel-soft) 82%, transparent);min-width:0;min-height:0;animation:tile-rise var(--motion-medium) var(--ease-emphasized) both;border-radius:10px;grid-template-rows:auto minmax(0,1fr);gap:16px;padding:18px;display:grid;box-shadow:inset 0 1px #ffffff0a}.feature-detail h3{color:var(--text-strong);margin:0 0 8px;font-size:24px;line-height:1.2}.feature-detail strong{max-width:680px;color:var(--text);font-size:15px;line-height:1.55;display:block}.feature-detail-list{align-content:start;gap:14px;min-height:0;padding-right:4px;display:grid;overflow:auto}.feature-detail ul{gap:10px;margin:0;padding:0;list-style:none;display:grid}.feature-detail li{border:1px solid color-mix(in srgb, var(--line) 70%, transparent);min-width:0;color:var(--text);background:color-mix(in srgb, var(--panel-bg) 72%, transparent);border-radius:8px;grid-template-columns:36px minmax(0,1fr);align-items:start;gap:10px;padding:10px;display:grid}.feature-detail li span{width:28px;height:28px;color:var(--accent-strong);background:var(--accent-soft);border-radius:999px;place-items:center;font-size:11px;font-weight:900;display:grid}.feature-detail li p{margin:2px 0 0;font-size:14px;line-height:1.55}.feature-section-list{gap:12px;display:grid}.feature-section{border:1px solid color-mix(in srgb, var(--line) 78%, transparent);background:linear-gradient(180deg, color-mix(in srgb, var(--panel-bg) 76%, transparent), transparent), color-mix(in srgb, var(--panel-soft) 88%, transparent);border-radius:8px;gap:10px;padding:12px;display:grid}.feature-section h4{color:var(--text-strong);margin:0;font-size:14px;line-height:1.3}.feature-section-items{gap:8px;display:grid}.feature-section-items p{color:var(--text);margin:0;padding-left:14px;font-size:13px;line-height:1.58;position:relative}.feature-section-items p:before{content:"";background:var(--accent);border-radius:999px;width:5px;height:5px;position:absolute;top:.78em;left:0;transform:translateY(-50%)}.explanation-modal-backdrop{z-index:74}.explanation-modal{border:1px solid var(--line);background:linear-gradient(135deg, color-mix(in srgb, var(--accent-soft) 30%, transparent), transparent 46%), var(--panel-bg);width:min(1160px,100vw - 48px);max-height:min(780px,100vh - 48px);box-shadow:var(--shadow-strong);animation:modal-pop var(--motion-medium) var(--ease-emphasized) both;border-radius:10px;grid-template-rows:auto minmax(0,1fr);gap:16px;padding:18px;display:grid;overflow:hidden}.explanation-modal-body{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(220px,260px);gap:14px;min-height:0;display:grid}.explanation-image-card{border:1px solid var(--line);background:var(--panel-soft);border-radius:8px;grid-template-rows:auto minmax(0,1fr);gap:8px;min-width:0;min-height:360px;padding:10px;display:grid}.explanation-image-card span{color:var(--text);font-size:13px;font-weight:800}.explanation-image-card img{object-fit:contain;background:var(--preview-bg);border-radius:6px;width:100%;height:100%;min-height:0}.explanation-image-card.gradcam{background:linear-gradient(180deg, color-mix(in srgb, var(--accent-soft) 42%, transparent), transparent), var(--panel-soft)}.explanation-metrics{align-content:start;gap:10px;min-width:0;display:grid}.explanation-metrics div{border:1px solid var(--line);background:color-mix(in srgb, var(--panel-soft) 84%, transparent);border-radius:8px;gap:4px;min-width:0;padding:11px 12px;display:grid}.explanation-metrics div.wide{background:var(--panel-bg)}.explanation-metrics small{color:var(--text-muted);font-size:12px;font-weight:800}.explanation-metrics strong{min-width:0;color:var(--text-strong);overflow-wrap:anywhere;font-size:18px}.modal-backdrop{z-index:50;animation:overlay-fade var(--motion-fast) var(--ease-standard) both;background:#0f172a94;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.interaction-lock{z-index:49;position:fixed;inset:0}.mask-modal{border:1px solid var(--line);background:var(--panel-bg);width:min(1320px,100vw - 48px);max-height:min(820px,100vh - 48px);animation:modal-pop var(--motion-medium) var(--ease-emphasized) both;border-radius:8px;grid-template-rows:auto 1fr auto;gap:16px;padding:18px;display:grid;box-shadow:0 24px 60px #0f172a3d}.mask-modal-head,.mask-modal-actions{justify-content:space-between;align-items:center;gap:12px;display:flex}.mask-modal-head h2{color:var(--text-strong);margin:2px 0 4px;font-size:22px;line-height:1.2}.mask-modal-head span{color:var(--text-muted);font-size:13px}.mask-modal-body{grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:16px;min-height:0;display:grid;overflow:hidden}.mask-modal-preview{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-width:0;min-height:0;display:grid}.mask-preview-card{border:1px solid var(--line);min-height:0;color:var(--text);background:var(--panel-soft);border-radius:8px;grid-template-rows:auto 1fr;gap:8px;padding:10px;font-size:13px;display:grid}.mask-preview-card img{object-fit:contain;background:var(--panel-hover);border-radius:6px;width:100%;height:100%;min-height:0;max-height:560px}.mask-preview-card.transparent img,.mask-candidate img,.asset-preview.transparent img{background-image:linear-gradient(45deg, var(--preview-check-a) 25%, transparent 25%), linear-gradient(-45deg, var(--preview-check-a) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, var(--preview-check-a) 75%), linear-gradient(-45deg, transparent 75%, var(--preview-check-a) 75%);background-color:var(--preview-check-b);background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px}.mask-candidate-panel{border:1px solid var(--line);background:var(--panel-soft);border-radius:8px;grid-template-rows:auto minmax(0,1fr);gap:10px;min-height:0;padding:10px;display:grid}.mask-panel-title{color:var(--text-muted);justify-content:space-between;align-items:center;gap:10px;font-size:12px;font-weight:800;display:flex}.mask-panel-title strong{color:var(--accent-strong);font-size:13px}.mask-candidate-grid{grid-template-columns:1fr;align-content:start;gap:10px;min-height:0;padding-right:2px;display:grid;overflow:auto}.mask-picker{gap:8px;display:grid}.mask-candidate-track{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.mask-candidate{border:1px solid var(--line);min-width:0;color:var(--text);background:var(--panel-soft);text-align:left;border-radius:8px;gap:6px;padding:7px;transition:border-color .15s,background .15s,transform .15s,box-shadow .15s;display:grid}.mask-candidate:hover{border-color:var(--accent);background:var(--panel-hover);transform:translateY(-1px)}.mask-candidate.active{border-color:var(--accent);box-shadow:0 0 0 2px rgb(var(--accent-glow) / 20%)}.mask-candidate.large{gap:8px;min-height:0;padding:9px}.mask-candidate.large img{height:86px}.mask-candidate strong{min-width:0;color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.mask-candidate small{min-width:0;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.mask-candidate img{object-fit:contain;background-color:var(--panel-hover);background-image:linear-gradient(45deg, var(--preview-check-a) 25%, transparent 25%), linear-gradient(-45deg, var(--preview-check-a) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, var(--preview-check-a) 75%), linear-gradient(-45deg, transparent 75%, var(--preview-check-a) 75%);background-position:0 0,0 6px,6px -6px,-6px 0;background-size:12px 12px;border-radius:6px;width:100%;height:56px}.mask-edit-action{grid-column:1/-1;justify-self:end;min-width:180px}.mask-candidate span{min-width:0;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.mask-candidate:disabled{cursor:wait}.mask-candidate.loading{opacity:.82;border-style:dashed}.mask-candidate.error{border-color:var(--danger);color:var(--danger);background:var(--danger-bg)}.loading-preview{filter:saturate(.65);opacity:.76;animation:1.2s ease-in-out infinite pulse-preview}.mask-editor-backdrop{z-index:70}.mask-editor-modal{width:min(1180px,100%);max-height:min(820px,100vh - 48px)}.mask-editor-body{grid-template-columns:minmax(420px,1fr) minmax(220px,280px);gap:16px;min-height:0;display:grid;overflow:auto}.mask-editor-stage{border:1px solid var(--line);background-color:var(--preview-check-b);background-image:linear-gradient(45deg, var(--preview-check-a) 25%, transparent 25%), linear-gradient(-45deg, var(--preview-check-a) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, var(--preview-check-a) 75%), linear-gradient(-45deg, transparent 75%, var(--preview-check-a) 75%);background-position:0 0,0 9px,9px -9px,-9px 0;background-size:18px 18px;border-radius:8px;place-items:center;min-height:460px;display:grid;position:relative;overflow:hidden}.mask-editor-stage>canvas{object-fit:contain;width:100%;height:100%;position:absolute;inset:0}.mask-editor-base{opacity:.86}.mask-editor-mask{opacity:.58;mix-blend-mode:screen;touch-action:none;cursor:none}.mask-editor-mask:after{content:""}.mask-editor-stage-library{min-height:520px;padding:10px}.mask-editor-stage-library .react-mask-editor-outer{width:100%;height:100%;min-height:500px}.mask-editor-stage-library .react-mask-editor-inner,.mask-editor-stage-library .canvas-container{border-radius:8px}.mask-editor-stage-library .react-mask-editor-cursor-canvas{cursor:crosshair}.mask-editor-tool-hints{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.mask-editor-tool-hints span{border:1px solid var(--line-strong);min-height:36px;color:var(--text);background:var(--panel-bg);border-radius:8px;justify-content:center;align-items:center;gap:6px;font-weight:700;display:inline-flex}.mask-editor-tool-hints span:first-child{border-color:var(--accent);color:var(--accent-strong);background:var(--accent-soft)}.mask-editor-quick-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.mask-editor-tools{border:1px solid var(--line);background:var(--panel-soft);border-radius:8px;align-content:start;gap:10px;padding:12px;display:grid}.segmented-tools{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.segmented-tools button{border:1px solid var(--line-strong);min-height:36px;color:var(--text);background:var(--panel-bg);border-radius:8px;justify-content:center;align-items:center;gap:6px;font-weight:700;display:inline-flex}.segmented-tools button.active{border-color:var(--accent);color:var(--accent-strong);background:var(--accent-soft)}.mask-editor-loading{z-index:3;color:var(--text-strong);background:color-mix(in srgb, var(--panel-bg) 72%, transparent);place-items:center;font-weight:700;display:grid;position:absolute;inset:0}.saved-case-stack{gap:8px;margin-top:12px;display:grid}.saved-case-row{border:1px solid var(--line);background:var(--panel-soft);border-radius:8px;grid-template-columns:auto minmax(0,1fr);gap:4px 8px;padding:8px;display:grid}.saved-case-row strong{color:var(--accent-strong)}.saved-case-row span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.saved-case-row small{color:var(--text-muted);grid-column:1/-1}@keyframes pulse-preview{0%,to{opacity:.58}50%{opacity:.9}}.switch-row{color:var(--text);align-items:center;gap:8px;margin-top:10px;font-size:13px;display:flex}.switch-row input{width:16px;height:16px;accent-color:var(--accent)}.candidate-estimate{border:1px solid color-mix(in srgb, var(--accent) 40%, var(--line));color:var(--text);background:var(--accent-soft);border-radius:8px;grid-template-columns:auto 1fr;align-items:center;column-gap:8px;margin-top:10px;padding:8px 10px;font-size:13px;display:grid}.candidate-estimate strong{color:var(--accent-strong);font-size:18px}.candidate-estimate span{font-weight:700}.upload-hint{color:var(--text);background:var(--panel-soft);border-radius:8px;grid-column:1/-1;margin-top:5px;padding:8px 10px;font-size:12px;line-height:1.35;display:block}.info-grid{gap:6px;display:grid}.inspector-stack{gap:10px;display:grid}.inspector-section{border:1px solid var(--line);background:var(--panel-soft);border-radius:8px;gap:8px;padding:10px;display:grid}.inspector-section .field,.inspector-section .slider-field,.inspector-section .switch-row,.inspector-section .manual-status,.inspector-section .advanced-settings-body,.inspector-section .candidate-estimate,.inspector-section .primary-action,.inspector-section .secondary-action{margin-top:0}.inspector-section-title{color:var(--text-muted);letter-spacing:0;text-transform:uppercase;font-size:11px;font-weight:800}.action-section{background:linear-gradient(180deg, color-mix(in srgb, var(--accent-soft) 66%, transparent), transparent), var(--panel-soft)}.advanced-settings{display:block}.advanced-settings summary{color:var(--text-strong);cursor:pointer;justify-content:space-between;align-items:center;gap:10px;font-weight:800;list-style:none;display:flex}.advanced-settings summary::-webkit-details-marker{display:none}.advanced-settings summary:after{content:"";border-right:2px solid var(--text-muted);border-bottom:2px solid var(--text-muted);width:8px;height:8px;transition:transform var(--motion-fast) var(--ease-emphasized);transform:rotate(45deg)translateY(-2px)}.advanced-settings[open] summary:after{transform:rotate(225deg)translateY(-1px)}.advanced-settings summary strong{color:var(--text-muted);margin-left:auto;font-size:12px}.advanced-settings-body{animation:menu-in var(--motion-fast) var(--ease-emphasized) both;gap:8px;padding-top:10px;display:grid}.info-row{min-height:30px;color:var(--text-muted);background:var(--panel-soft);border-radius:8px;grid-template-columns:minmax(78px,auto) minmax(0,1fr);align-items:center;gap:10px;padding:6px 8px;font-size:12px;display:grid}.info-row strong{min-width:0;color:var(--text-strong);text-align:right;overflow-wrap:anywhere;font-size:12px}.info-row.ok{color:var(--ok);background:var(--ok-bg)}.info-row.warn{color:var(--warn);background:var(--warn-bg)}.info-row.danger{color:var(--danger);background:var(--danger-bg)}.manual-status{border-radius:8px;margin-top:12px;padding:8px 10px;font-size:13px;line-height:1.35}.manual-status.ok{color:var(--ok);background:var(--ok-bg)}.manual-status.warn{color:var(--warn);background:var(--warn-bg)}.primary-action,.secondary-action{width:100%;min-height:38px;transition:border-color var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard), filter var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-emphasized);border-radius:8px;justify-content:center;align-items:center;gap:7px;margin-top:12px;font-weight:700;display:inline-flex}.primary-action{border:1px solid var(--accent);color:#061016;background:linear-gradient(180deg, color-mix(in srgb, var(--accent-strong) 88%, white), var(--accent));box-shadow:0 10px 24px rgb(var(--accent-glow) / 18%)}.primary-action:hover:not(:disabled){filter:brightness(1.05);box-shadow:0 14px 30px rgb(var(--accent-glow) / 24%);transform:translateY(-1px)}.primary-action:disabled{opacity:.7;cursor:not-allowed}.secondary-action{border:1px solid var(--line-strong);color:var(--text-strong);background:var(--panel-soft)}.secondary-action:hover:not(:disabled){border-color:var(--accent);background:var(--panel-hover);box-shadow:0 10px 22px rgb(var(--accent-glow) / 10%);transform:translateY(-1px)}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.stage{background:linear-gradient(90deg, color-mix(in srgb, var(--canvas-grid) 52%, transparent) 1px, transparent 1px), linear-gradient(0deg, color-mix(in srgb, var(--canvas-grid) 52%, transparent) 1px, transparent 1px), var(--canvas-bg);background-size:28px 28px;flex-direction:column;gap:12px;min-width:0;min-height:0;padding:14px;display:flex}.stage-toolbar,.results-header{color:var(--text);justify-content:space-between;align-items:center;gap:12px;display:flex}.stage-toolbar{grid-template-columns:minmax(150px,auto) minmax(420px,1fr) minmax(150px,auto);display:grid}.stage-toolbar h2,.results-header h2{color:var(--text-strong);font-size:18px}.canvas-view-toolbar{border:1px solid color-mix(in srgb, var(--line-strong) 76%, transparent);background:linear-gradient(180deg, color-mix(in srgb, var(--panel-bg) 92%, transparent), color-mix(in srgb, var(--panel-soft) 88%, transparent));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:10px;flex-wrap:wrap;justify-content:center;justify-self:center;align-items:center;gap:5px;max-width:100%;min-height:42px;padding:4px;display:inline-flex;box-shadow:0 12px 28px #0f172a14,inset 0 1px #fff3}.canvas-view-toggle{min-height:32px;color:var(--text);white-space:nowrap;-webkit-user-select:none;user-select:none;transition:border-color var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-emphasized);background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:0 9px 0 8px;font-size:12px;font-weight:700;display:inline-flex;position:relative}.canvas-view-toggle:hover{color:var(--text-strong);background:var(--panel-hover);transform:translateY(-1px)}.canvas-view-toggle.active{border-color:color-mix(in srgb, var(--accent) 42%, var(--line));color:var(--accent-strong);background:linear-gradient(180deg, color-mix(in srgb, var(--accent-soft) 78%, var(--panel-bg)), var(--panel-bg));box-shadow:0 8px 18px rgb(var(--accent-glow) / 12%), inset 0 1px 0 #ffffff47}.canvas-view-toggle input{opacity:0;pointer-events:none;position:absolute}.canvas-view-toggle span{border:1px solid color-mix(in srgb, var(--text-muted) 68%, transparent);background:var(--panel-bg);width:16px;height:16px;transition:border-color var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard);border-radius:5px;justify-content:center;align-items:center;display:inline-flex;position:relative;box-shadow:inset 0 1px 2px #0f172a1f}.canvas-view-toggle.active span{border-color:var(--accent);background:var(--accent);box-shadow:0 0 0 2px rgb(var(--accent-glow) / 14%), inset 0 1px 0 #ffffff3d}.canvas-view-toggle.active span:after{content:"";width:7px;height:4px;animation:check-pop var(--motion-fast) var(--ease-pop) both;border-bottom:2px solid #fff;border-left:2px solid #fff;transform:translateY(-1px)rotate(-45deg)}.placement-canvas{border:1px solid var(--line-strong);background:linear-gradient(45deg, var(--canvas-grid) 25%, transparent 25%), linear-gradient(-45deg, var(--canvas-grid) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, var(--canvas-grid) 75%), linear-gradient(-45deg, transparent 75%, var(--canvas-grid) 75%), var(--canvas-soft);touch-action:none;width:100%;min-height:520px;max-height:720px;box-shadow:var(--shadow-strong), 0 1px 0 #ffffff0d inset;transition:border-color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard), background-color var(--motion-fast) var(--ease-standard);background-position:0 0,0 10px,10px -10px,-10px 0;background-size:20px 20px;border-radius:8px;position:relative;overflow:hidden}.canvas-viewport{border:1px solid var(--line);background:radial-gradient(circle at 50% 12%, rgb(var(--accent-glow) / 10%), transparent 34%), var(--canvas-bg);border-radius:8px;place-items:center;min-height:560px;padding:18px;display:grid;box-shadow:inset 0 0 0 1px #ffffff08}.canvas-viewport .empty-state{border-color:var(--accent);width:100%;min-height:520px;color:var(--text);background:linear-gradient(90deg, color-mix(in srgb, var(--accent) 16%, transparent) 50%, transparent 50%), var(--canvas-soft);background-size:22px 1px}.placement-canvas.draggable{cursor:grab}.placement-canvas.draggable:active{cursor:grabbing}.placement-canvas.drop-active,.asset-preview.drop-active{border-color:var(--accent);box-shadow:0 0 0 3px rgb(var(--accent-glow) / 18%), var(--shadow-strong)}.placement-svg{width:100%;height:100%;display:block}.svg-background-image,.svg-bbox,.svg-resize-handle{transition:opacity var(--motion-fast) var(--ease-standard), stroke var(--motion-fast) var(--ease-standard), fill var(--motion-fast) var(--ease-standard)}.svg-foreground-image{transition:opacity var(--motion-fast) var(--ease-standard)}.svg-foreground-pop{transform-box:view-box;transform-origin:var(--fg-cx) var(--fg-cy);animation:foreground-mushroom var(--motion-pop) var(--ease-pop) both;will-change:opacity, transform}.svg-bbox{fill:#0000;stroke:var(--accent-strong);stroke-width:2px;stroke-dasharray:10 6;filter:drop-shadow(0 0 1px #ffffffe6)}.svg-resize-handle{fill:var(--accent-strong);stroke:var(--panel-bg);stroke-width:2px;filter:drop-shadow(0 1px 1px #11264633)}.svg-mask-overlay{opacity:.32;mix-blend-mode:multiply}.svg-top-point{fill:var(--ok);stroke:var(--panel-bg);stroke-width:2px}.svg-heatmap-layer{mix-blend-mode:multiply;pointer-events:none;animation:.26s both heatmap-in}.svg-empty-bg{fill:var(--canvas-soft)}.heatmap-legend{min-height:28px;color:var(--text);background:color-mix(in srgb, var(--panel-bg) 88%, transparent);border:1px solid var(--line);border-radius:8px;grid-template-columns:auto 76px auto;align-items:center;gap:7px;padding:5px 8px;font-size:11px;font-weight:700;display:inline-grid;position:absolute;bottom:12px;right:12px}.heatmap-legend i{background:linear-gradient(90deg,#1c63b8,#f7be42,#dc4837);border-radius:999px;height:8px;display:block}.canvas-badge{max-width:calc(100% - 24px);min-height:32px;color:var(--text-strong);background:color-mix(in srgb, var(--panel-soft) 88%, transparent);border:1px solid var(--line);border-radius:8px;align-items:center;padding:5px 10px;font-size:13px;font-weight:700;display:flex;position:absolute;bottom:12px;left:12px}.drop-hint{border:2px dashed var(--accent);color:var(--text-strong);background:color-mix(in srgb, var(--accent-soft) 72%, transparent);pointer-events:none;animation:drop-hint-in var(--motion-fast) var(--ease-emphasized) both;border-radius:8px;place-items:center;font-size:15px;font-weight:700;display:grid;position:absolute;inset:12px}@keyframes heatmap-in{0%{opacity:0}to{opacity:1}}@keyframes foreground-mushroom{0%{opacity:0;transform:translateY(10px)scale(.18,.04)}42%{opacity:1;transform:translateY(-3px)scale(1.08,1.16)}68%{transform:translateY(1px)scale(.98,.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes selected-image-bloom{0%{transform:scale(.9)}48%{transform:scale(1.06)}to{transform:scale(1)}}@keyframes check-pop{0%{opacity:0;transform:translateY(-1px)rotate(-45deg)scale(.35)}70%{opacity:1;transform:translateY(-1px)rotate(-45deg)scale(1.16)}to{opacity:1;transform:translateY(-1px)rotate(-45deg)scale(1)}}@keyframes drop-hint-in{0%{opacity:0;transform:scale(.985)}to{opacity:1;transform:scale(1)}}.asset-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.asset-preview{border:1px solid var(--line);background:var(--preview-chrome);min-height:122px;color:var(--text);transition:border-color var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-emphasized);border-radius:8px;grid-template-rows:auto 1fr;gap:7px;padding:8px;font-size:13px;display:grid}.asset-preview-head{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.asset-preview-head>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.asset-preview-head button{border:1px solid var(--line-strong);color:var(--accent-strong);background:var(--panel-soft);border-radius:999px;flex:none;padding:4px 8px;font-size:12px}.asset-preview-head button:hover{border-color:var(--accent);background:var(--panel-hover)}.asset-preview img{object-fit:contain;background:var(--preview-bg);width:100%;height:92px}.asset-preview.transparent img{background-image:linear-gradient(45deg, var(--preview-check-a) 25%, transparent 25%), linear-gradient(-45deg, var(--preview-check-a) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, var(--preview-check-a) 75%), linear-gradient(-45deg, transparent 75%, var(--preview-check-a) 75%);background-color:var(--preview-check-b);background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px}.missing-preview,.empty-state{border:1px dashed var(--line-strong);min-height:104px;color:var(--text-muted);background:var(--panel-soft);border-radius:8px;place-items:center;display:grid}.empty-state{min-height:240px}.empty-state.compact{min-height:120px}.results-band{border:1px solid var(--line);background:linear-gradient(180deg, color-mix(in srgb, var(--panel-bg) 82%, transparent), var(--rail-bg));box-shadow:0 1px 0 #ffffff0a inset, 0 -12px 40px rgb(var(--accent-glow) / 8%);animation:tray-in var(--motion-medium) var(--ease-emphasized) both;border-radius:8px 8px 0 0;margin:18px 24px 24px;padding:12px}.stage-results{margin:0}.assessment-title{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.assessment-title span,.comparison-head h3{color:var(--text-strong);font-size:15px;font-weight:700}.assessment-title strong{color:var(--accent-strong);font-size:18px}.comparison-head small{color:var(--text-muted);margin:0;font-size:12px;line-height:1.45}.selected-candidate-bar{border:1px solid var(--line);color:var(--text);background:color-mix(in srgb, var(--accent-soft) 58%, var(--panel-soft));border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;padding:8px 10px;font-size:13px;display:flex}.selected-candidate-bar strong{color:var(--text-strong);font-size:18px}.manual-result-row{border:1px solid var(--line);width:100%;min-height:48px;color:inherit;background:var(--panel-soft);text-align:left;transition:border-color var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-emphasized);border-radius:8px;grid-template-columns:minmax(104px,auto) auto auto minmax(0,1fr);align-items:center;gap:10px;margin-top:12px;padding:8px 10px;display:grid}.manual-result-row:hover{border-color:var(--accent);background:var(--panel-hover);box-shadow:0 12px 28px rgb(var(--accent-glow) / 10%);transform:translateY(-2px)}.manual-result-row>span:first-child{color:var(--text);font-weight:700}.manual-result-row strong{color:var(--accent-strong);font-size:18px}.manual-result-row small{min-width:0;color:var(--text-muted);overflow-wrap:anywhere}.results-layout{grid-template-columns:minmax(300px,1fr) minmax(220px,280px);gap:12px;margin-top:12px;display:grid}.candidate-list{grid-template-columns:repeat(3,minmax(180px,1fr));gap:8px;margin-top:10px;display:grid}.candidate-card{border:1px solid var(--line);width:100%;min-height:82px;color:inherit;background:var(--panel-soft);text-align:left;transition:transform var(--motion-fast) var(--ease-emphasized), border-color var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard);border-radius:8px;grid-template-columns:92px minmax(0,1fr);gap:8px;padding:8px;display:grid}.candidate-card:hover{border-color:var(--accent);background:var(--panel-hover);box-shadow:0 12px 28px rgb(var(--accent-glow) / 12%);transform:translateY(-3px)scale(1.006)}.candidate-card:active,.manual-result-row:active,.primary-action:active:not(:disabled),.secondary-action:active:not(:disabled){transform:translateY(0)scale(.99)}.mini-canvas{background:var(--panel-hover);border-radius:6px;width:92px;height:64px;position:relative;overflow:hidden}.placement-svg.compact .svg-bbox{stroke-width:3px;fill:#f19a3e29}.candidate-meta{align-content:start;gap:5px;display:grid}.candidate-meta strong{color:var(--text-strong);font-size:18px;line-height:1}.candidate-meta small{color:var(--text-muted);line-height:1.3}.candidate-scoreline{align-items:baseline;gap:8px;display:flex}.candidate-rank{color:var(--text-muted);font-size:13px;font-weight:700}.candidate-bbox{color:var(--text-muted);font-size:12px;line-height:1.3}.tier-recommend,.tier-acceptable,.tier-reject{border-radius:999px;width:fit-content;padding:2px 8px;font-size:12px;font-weight:700}.tier-recommend{color:var(--ok);background:var(--ok-bg)}.tier-acceptable{color:var(--warn);background:var(--warn-bg)}.tier-reject{color:var(--danger);background:var(--danger-bg)}.histogram{border:1px solid var(--line);background:var(--panel-soft);border-radius:8px;padding:10px}.histogram-bars{grid-template-columns:repeat(5,1fr);align-items:end;gap:9px;min-height:118px;margin-top:10px;display:grid}.histogram-item{text-align:center;height:118px;color:var(--text-muted);grid-template-rows:1fr auto auto;gap:5px;font-size:12px;display:grid}.bar-wrap{background:var(--panel-hover);border-radius:6px;justify-content:center;align-items:end;height:76px;display:flex;overflow:hidden}.bar-wrap span{background:linear-gradient(180deg, var(--accent-strong), var(--accent));width:100%}.histogram-item strong{color:var(--text-strong)}.table-wrap{border:1px solid var(--line);border-radius:8px;margin-top:18px;overflow:auto}.candidate-score-details{border:1px solid var(--line);background:var(--panel-soft);border-radius:8px;margin-top:14px;overflow:hidden}.candidate-score-details summary{color:var(--text-strong);cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:11px 12px;font-weight:700;display:flex}.candidate-score-details summary::marker{color:var(--accent)}.candidate-score-details strong{color:var(--accent-strong);font-size:13px}.candidate-score-details .table-wrap{background:var(--panel-soft);border-bottom:0;border-left:0;border-right:0;border-radius:0;margin-top:0}table{border-collapse:collapse;width:100%;min-width:840px;font-size:13px}th,td{border-bottom:1px solid var(--line);text-align:left;padding:10px 12px}th{color:var(--text-muted);background:var(--panel-bg);font-weight:700}tbody tr{cursor:pointer}tbody tr:hover{background:var(--panel-hover)}@keyframes tray-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (width<=1180px){.workspace{grid-template-columns:minmax(400px,460px) minmax(0,1fr)}.asset-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.right-rail{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.results-layout{grid-template-columns:1fr}.candidate-list{grid-template-columns:repeat(2,minmax(180px,1fr))}.histogram{grid-column:auto}.feature-modal-body{grid-template-columns:minmax(190px,220px) minmax(0,1fr)}.explanation-modal-body{grid-template-columns:minmax(0,1fr) minmax(220px,260px)}.explanation-image-card.gradcam{grid-column:1}}@media (width<=760px){.topbar,.stage-toolbar,.results-header{flex-direction:column;align-items:stretch}.workspace,.right-rail,.results-layout,.candidate-list,.asset-strip{grid-template-columns:1fr}.manual-result-row{grid-template-columns:1fr auto}.manual-result-row small{grid-column:1/-1}.workspace{padding:14px}.asset-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.modal-backdrop{padding:12px}.mask-modal{max-height:calc(100vh - 24px);padding:14px}.mask-modal-head,.mask-modal-actions{flex-direction:column;align-items:stretch}.feature-modal-head{align-items:flex-start}.feature-modal-head .icon-close{position:absolute;top:14px;right:14px}.mask-modal-body,.feature-modal-body{grid-template-columns:1fr}.explanation-modal{max-height:calc(100vh - 24px);padding:14px;position:relative}.explanation-modal-body{grid-template-columns:1fr;overflow:auto}.explanation-image-card{min-height:260px}.feature-modal{max-height:calc(100vh - 24px);padding:14px;position:relative}.feature-tabs{grid-template-columns:repeat(2,minmax(0,1fr));max-height:184px}.feature-detail{padding:14px}.feature-detail h3{font-size:20px}.mask-candidate-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mask-preview-card{min-height:160px}.mask-preview-card img{min-height:120px}.mask-candidate-track{grid-template-columns:repeat(2,minmax(0,1fr))}.results-band{margin:14px;padding:14px}.placement-canvas{min-height:320px}.candidate-card{grid-template-columns:96px 1fr}.mini-canvas{width:96px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}
