.stats-ring-widget[data-v-ecc4c9ff]{--ring-size: 106px;--ring-stroke: 8px;--ring-track: rgba(122, 80, 214, .74);--ring-meteor-head: #e9d5ff;--ring-meteor-core: #fdfcff;--ring-meteor-tail-rgb: 139, 92, 246;display:flex;align-items:center;gap:20px;min-width:0}.stats-ring-widget__visual[data-v-ecc4c9ff]{position:relative;width:var(--ring-size);height:var(--ring-size);flex:0 0 auto}.stats-ring-widget__canvas[data-v-ecc4c9ff]{display:block;width:100%;height:100%}.stats-ring-widget__center[data-v-ecc4c9ff]{position:absolute;inset:calc(var(--ring-stroke) + 2px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:50%;background:transparent;box-shadow:none}.stats-ring-widget__number[data-v-ecc4c9ff]{font-size:clamp(18px,calc(var(--ring-size) * .215 * var(--ring-number-scale, 1)),31px);line-height:.94;font-weight:900;color:var(--text, #2f2447);letter-spacing:var(--ring-number-tracking, -.03em)}.stats-ring-widget__label[data-v-ecc4c9ff]{color:var(--muted-strong, #6d5f88);font-size:calc(11px * var(--ring-label-scale, 1));font-weight:650;letter-spacing:.01em}.stats-ring-widget__legend[data-v-ecc4c9ff]{display:grid;gap:12px;align-content:center;min-width:0}.stats-ring-widget__legend-item[data-v-ecc4c9ff]{display:flex;align-items:center;gap:10px;min-width:0}.stats-ring-widget__dot[data-v-ecc4c9ff]{width:12px;height:12px;border-radius:50%;flex:0 0 auto}.stats-ring-widget__dot--filled[data-v-ecc4c9ff]{background:var(--primary, #8b5cf6);box-shadow:0 0 0 6px #8b5cf61f}.stats-ring-widget__dot--muted[data-v-ecc4c9ff]{background:#c4bbd6db}.stats-ring-widget__legend-text[data-v-ecc4c9ff]{color:var(--muted-strong, #6d5f88);font-size:14px;white-space:nowrap}.stats-ring-widget__legend-text strong[data-v-ecc4c9ff]{color:var(--text, #2f2447);font-weight:800}@media(max-width:1180px){.stats-ring-widget[data-v-ecc4c9ff]{gap:16px}.stats-ring-widget__legend[data-v-ecc4c9ff]{gap:10px}.stats-ring-widget__legend-text[data-v-ecc4c9ff]{font-size:13px}}:root{--bg: #f7f4ff;--bg-soft: #fcfbff;--panel: rgba(255, 255, 255, .84);--panel-strong: rgba(255, 255, 255, .94);--line: rgba(161, 140, 255, .18);--line-strong: rgba(161, 140, 255, .28);--text: #2f2447;--muted: #8f82aa;--muted-strong: #6d5f88;--primary: #8b5cf6;--primary-deep: #6d3ff2;--primary-soft: #efe9ff;--danger: #ef6a6a;--danger-soft: #fff1f1;--easy: #22b573;--easy-soft: #effcf5;--hard: #f06464;--hard-soft: #fff1f1;--extreme: #f2a13a;--extreme-soft: #fff7eb;--neutral: #8f82aa;--shadow: 0 26px 60px -36px rgba(120, 88, 216, .42);--shadow-soft: 0 18px 40px -30px rgba(120, 88, 216, .3);--button-transition: all .4s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box}html,body,#app{min-height:100%}html{background:#f7f4ff}body{position:relative;margin:0;background:transparent;color:var(--text);font-family:Noto Sans SC,Microsoft YaHei,sans-serif}#app{position:relative;isolation:isolate}#app:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:radial-gradient(circle 48vw at 0% 0%,rgba(191,169,255,.24) 0%,rgba(191,169,255,.14) 26%,transparent 68%),radial-gradient(circle 42vw at 100% 10%,rgba(237,230,255,.95) 0%,rgba(237,230,255,.72) 22%,transparent 64%),linear-gradient(180deg,#fdfcff 0%,var(--bg) 58%,#f3eeff 100%)}button,select,input,textarea{font:inherit}button{cursor:pointer}img{max-width:100%}.file-input-hidden{display:none}.glass-panel{position:relative;background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.glass-card{background:#fffffff5;border:1px solid rgba(161,140,255,.12);box-shadow:var(--shadow-soft)}.app-shell{min-height:100vh;padding:22px 24px 40px}.topbar{position:sticky;top:18px;z-index:40;max-width:1540px;margin:0 auto;border-radius:28px;padding:22px 28px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand-block,.topbar-actions{display:flex;align-items:center;gap:16px}.model-stack{display:grid;gap:6px}.brand-mark{width:52px;height:52px;display:grid;place-items:center;border-radius:18px;color:#fff;font-size:26px;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-deep) 100%);box-shadow:0 20px 36px -18px #6d3ff29e}.brand-copy h1{margin:0;font-size:22px;font-weight:800;line-height:1.1}.brand-copy p{margin:6px 0 0;color:var(--muted);font-size:13px}.brand-tag{margin-left:8px;font-size:14px;color:#7966f0}.model-pill{display:grid;gap:8px;min-width:208px;padding:8px 10px 10px;border-radius:18px;background:linear-gradient(180deg,#f6f2fff0,#f1ecfce6);border:1px solid rgba(161,140,255,.18);box-shadow:0 14px 28px -26px #6d3ff238}.status-pill{display:inline-flex;align-items:center;gap:10px;min-height:44px;border-radius:999px;padding:0 16px;background:#f6f2ffeb;border:1px solid rgba(161,140,255,.16)}.model-label-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.model-label{color:#8d7fb1;font-size:11px;font-weight:700;letter-spacing:.02em}.model-state-chip{display:inline-flex;align-items:center;min-height:24px;padding:0 10px;border-radius:999px;background:#ffffffc2;border:1px solid rgba(161,140,255,.14);color:var(--muted-strong);font-size:11px;font-weight:700;white-space:nowrap}.model-state-chip.offline{color:#b35b5b;background:#fff3f3e6;border-color:#ef6a6a2e}.model-dropdown{width:100%}.model-trigger{min-width:0;min-height:42px;padding-inline:13px 12px;border-radius:16px;background:linear-gradient(180deg,#fffffffa,#f8f5fff0);box-shadow:0 10px 24px -24px #6d3ff23d}.model-menu{min-width:200px}.model-option-side{font-size:12px;font-weight:700;color:var(--muted-strong)}.model-option-disabled{opacity:.62;cursor:not-allowed}.model-option-disabled:hover{transform:none}.provider-tone-ready{--difficulty-accent: var(--primary);--difficulty-soft: rgba(139, 92, 246, .12);--difficulty-border: rgba(139, 92, 246, .22)}.provider-tone-offline{--difficulty-accent: var(--danger);--difficulty-soft: rgba(239, 106, 106, .12);--difficulty-border: rgba(239, 106, 106, .22)}.model-status,.control-note,.review-blocked{color:var(--muted-strong);font-size:12px;line-height:1.5}.model-status.offline,.review-blocked{color:#b35b5b}.status-pill{background:#fff8ecf5;border-color:#f5bd5f6b;color:#cb7a18;font-weight:700}.app-main{max-width:1540px;margin:26px auto 0}.section-heading,.gallery-head{display:flex;align-items:center;justify-content:space-between;gap:18px}.section-heading-main,.gallery-title{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.section-line{width:40px;height:2px;border-radius:999px;background:linear-gradient(90deg,var(--primary),rgba(139,92,246,.2))}.section-heading h2,.gallery-title h2,.detail-preview-head h3,.csv-head h3{margin:0;font-size:18px;font-weight:800}.section-sub,.detail-meta,.search-result-meta{color:var(--muted);font-size:13px}.demo-section{margin-bottom:28px}.demo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:18px}.demo-card{position:relative;overflow:hidden;border-radius:26px;padding:1px;cursor:pointer;transform-style:preserve-3d;transform:perspective(1000px) rotateX(var(--demo-rotate-x, 0deg)) rotateY(var(--demo-rotate-y, 0deg)) translateY(var(--demo-lift, 0px)) scale(var(--demo-scale, 1));transition:transform .12s ease,box-shadow .28s ease,border-color .28s ease;will-change:transform;--card-glow-x: 50%;--card-glow-y: 50%;--card-glow-opacity: 0}.demo-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(255,255,255,.64),transparent 45%);transform:translate(-120%);transition:transform .7s ease;pointer-events:none;z-index:3}.demo-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;padding:2px;background:radial-gradient(180px circle at var(--card-glow-x) var(--card-glow-y),rgba(168,85,247,.92),rgba(236,72,153,.68) 48%,transparent 72%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;opacity:var(--card-glow-opacity);transition:opacity .28s ease;pointer-events:none;z-index:2}.demo-card:hover{--demo-lift: -4px}.demo-card:hover:before{transform:translate(120%)}.demo-card-inner{position:relative;min-height:100%;border-radius:25px;padding:20px;overflow:hidden;background:var(--panel-strong);transform-style:preserve-3d}.demo-theme-l1{box-shadow:0 0 0 2px #22b5732e,var(--shadow-soft)}.demo-theme-l2{box-shadow:0 0 0 2px #4986ff2e,var(--shadow-soft)}.demo-theme-l3{box-shadow:0 0 0 2px #f2a13a38,var(--shadow-soft)}.scan-line{position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,transparent,rgba(139,92,246,.7),transparent);animation:scan 3.2s linear infinite;opacity:0;z-index:6;pointer-events:none}@keyframes scan{0%{top:0;opacity:0}12%{opacity:1}88%{opacity:1}to{top:100%;opacity:0}}.demo-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;transform:translateZ(18px)}.demo-card-algo{display:flex;align-items:center;min-width:0}.demo-card-file{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted-strong);font-size:16px;font-weight:700}.demo-card-action,.action-btn,.segment-btn,.sort-btn,.toggle-pill,.control-select,.search-pill,.ghost-link{transition:var(--button-transition)}.demo-card-action,.action-btn,.sort-btn,.segment-btn{position:relative;overflow:hidden;border:1px solid rgba(161,140,255,.18);background:#fffffff0;color:var(--text)}.demo-card-action{min-width:72px;height:34px;border-radius:999px;font-size:13px;font-weight:700}.demo-card-preview{position:relative;border-radius:20px;overflow:hidden;aspect-ratio:16 / 10;background:linear-gradient(180deg,#faf7fff0,#f3eeffd1);border:1px solid rgba(161,140,255,.12);transform:translateZ(22px)}.demo-card-image{width:100%;height:100%;object-fit:contain;transform:scale(1);transition:transform .45s ease,opacity .45s ease}.demo-card:hover .demo-card-image{transform:scale(1.05)}.demo-card-body{padding-top:18px;transform:translateZ(18px)}.demo-card-title{font-size:15px;font-weight:800;margin-bottom:8px}.demo-card-copy{margin:0;color:var(--muted-strong);line-height:1.8;font-size:14px}.demo-empty{margin-top:18px;border-radius:24px;padding:24px;text-align:center;color:var(--muted)}.control-hub{display:grid;grid-template-columns:minmax(320px,420px) 1px minmax(0,1fr) 1px minmax(180px,220px);gap:24px;align-items:center;border-radius:34px;padding:28px 30px;margin-bottom:34px;overflow:visible;z-index:20;isolation:isolate}.control-hub.control-hub-compact{grid-template-columns:minmax(148px,168px) 1px minmax(0,1fr) 1px minmax(180px,220px)}.control-hub-glow{position:absolute;top:22px;right:26px;width:200px;height:200px;border-radius:50%;background:#d1c2ff29;filter:blur(34px);pointer-events:none}.upload-cluster,.stats-cluster{position:relative;z-index:1;display:flex;align-items:center;gap:20px;align-self:stretch;min-width:0}.upload-cluster-empty{align-items:center}.upload-cluster{width:100%;max-width:420px}.upload-cluster-empty{width:auto;max-width:168px}.upload-orb{width:132px;height:132px;border-radius:50%;border:2px dashed rgba(139,92,246,.28);background:#f5f1ffb3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;flex-shrink:0;animation:upload-float 6s ease-in-out infinite;will-change:transform;transition:var(--button-transition)}.upload-orb:hover{border-color:#8b5cf6b8;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-deep) 100%);box-shadow:0 24px 48px -24px #6d3ff294;animation-play-state:paused}.upload-orb-icon{font-size:28px;color:var(--primary);transition:var(--button-transition)}.upload-orb-text{font-weight:800;color:var(--primary-deep);transition:var(--button-transition)}.upload-orb-sub{color:var(--muted);font-size:12px;transition:var(--button-transition)}.upload-orb:hover .upload-orb-icon,.upload-orb:hover .upload-orb-text,.upload-orb:hover .upload-orb-sub{color:#fff}.pending-panel{flex:1 1 0;display:flex;flex-direction:column;justify-content:center;min-height:132px;min-width:0}.control-label{margin-bottom:0;color:var(--muted);font-size:12px;font-weight:700;min-height:18px;display:flex;align-items:flex-end}.pending-mini-list{display:grid;gap:8px;max-height:120px;overflow:auto;min-width:0;min-height:44px;padding-right:4px}.pending-mini-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;border-radius:14px;background:#ffffffc7;border:1px solid rgba(161,140,255,.12)}.pending-mini-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.pending-mini-empty,.panel-message,.review-current,.image-card-meta,.detail-muted{color:var(--muted);font-size:13px}.pending-mini-actions,.detail-page-actions,.detail-tabs,.gallery-actions,.gallery-sort{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.pending-mini-actions{margin-top:12px;align-items:center}.pending-more{justify-self:start}.control-divider{width:1px;height:120px;background:linear-gradient(180deg,transparent,rgba(161,140,255,.24),transparent)}.control-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:20px;min-width:0;width:100%;align-items:start;overflow:visible}.control-cell{position:relative;min-width:0;display:grid;grid-template-rows:20px 48px auto;gap:10px;overflow:visible}.control-cell-wide{min-width:0}.segmented{display:inline-flex;align-items:center;align-self:stretch;padding:4px;height:48px;border-radius:16px;background:#f2eefff5;gap:4px}.segmented-compact{height:38px;padding:3px;border-radius:14px;gap:3px}.segmented-elastic{display:inline-flex;align-items:center;width:fit-content;min-width:auto;justify-content:flex-start;gap:2px;padding:4px;border-radius:24px;background:linear-gradient(180deg,#f4f0fff5,#ebe5f9f0);box-shadow:0 4px 12px #6d3ff214;contain:layout style paint;overflow:hidden}.segment-btn,.sort-btn,.action-btn,.control-select,.toggle-pill,.search-pill,.demo-card-action{border-radius:14px}.segment-btn,.sort-btn{min-width:58px;height:40px;padding:0 14px;font-size:13px;font-weight:700}.scope-switch-btn{min-width:54px;height:32px;padding:0 12px;font-size:12px}.segment-btn-elastic{position:relative;display:flex;flex:0 0 58px;align-items:center;justify-content:center;width:58px;min-width:58px;height:38px;padding:0 10px;border-radius:999px;gap:4px;border:none;overflow:hidden;background:transparent;color:var(--muted-strong);font-family:inherit;font-size:13px;font-weight:800;line-height:1;transform:scaleX(.76);transform-origin:center;will-change:transform,background-color,box-shadow,filter;backface-visibility:hidden;transition:transform .48s cubic-bezier(.68,-.4,.265,1.28),background .3s ease,color .3s ease,box-shadow .3s ease,filter .3s ease}.segment-btn-value{display:inline-flex;align-items:center;justify-content:center;min-width:14px;line-height:inherit;font-size:16px;font-weight:900;z-index:2;letter-spacing:-.02em}.segment-btn-text{position:absolute;left:31px;opacity:0;white-space:nowrap;line-height:inherit;font-size:inherit;font-weight:inherit;letter-spacing:0;transform:scale(.8) translate(-10px);transform-origin:left center;pointer-events:none;transition:opacity .24s ease,transform .4s cubic-bezier(.68,-.4,.265,1.28)}.demo-card-action:hover:not(:disabled),.action-btn:hover:not(:disabled):not(.primary):not(.active),.segment-btn:hover:not(:disabled):not(.active),.sort-btn:hover:not(:disabled):not(.active){border-color:#8b5cf6b8;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-deep) 100%);color:#fff;box-shadow:0 20px 40px -24px #6d3ff294}.segment-btn.active,.sort-btn.active,.action-btn.primary,.demo-card-action:hover{border-color:#8b5cf66b;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-deep) 100%);color:#fff;box-shadow:0 18px 36px -22px #6d3ff2a6}.segment-btn.active:hover:not(:disabled),.sort-btn.active:hover:not(:disabled),.action-btn.primary:hover:not(:disabled){border-color:#8b5cf6c2;background:linear-gradient(135deg,#7f52f5,#5c31df);box-shadow:0 22px 42px -22px #5c31dfa3}.segment-btn-elastic:hover:not(:disabled):not(.active){background:linear-gradient(145deg,#fff,#f0ebfb);color:var(--text);box-shadow:2px 2px 6px #d2cae766,-2px -2px 6px #fffc;filter:brightness(1.02)}.segment-btn-elastic.active,.segment-btn-elastic.active:hover:not(:disabled){transform:scaleX(1);justify-content:flex-start;background:linear-gradient(135deg,#a855f7,#d946ef);box-shadow:0 8px 20px #a855f740;filter:none}.segment-btn-elastic.active .segment-btn-text{opacity:1;transform:scale(1) translate(0)}.control-select,.search-pill input{width:100%;height:48px;border:1px solid rgba(161,140,255,.18);background:#fffffff5;color:var(--text);outline:none}.difficulty-dropdown{position:relative;width:100%;z-index:2}.difficulty-dropdown.open{z-index:40}.difficulty-trigger{width:100%;height:48px;border:1px solid rgba(161,140,255,.18);border-radius:16px;background:linear-gradient(180deg,#fffffffa,#f8f5fff5);color:var(--text);display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 16px;box-shadow:0 12px 28px -24px #6d3ff252;transition:var(--button-transition)}.difficulty-trigger:hover{border-color:#8b5cf670;box-shadow:0 18px 36px -24px #6d3ff257}.difficulty-dropdown.open .difficulty-trigger{border-color:#8b5cf680;box-shadow:0 20px 42px -24px #6d3ff266}.difficulty-trigger-value{display:inline-flex;align-items:center;gap:10px;min-width:0;font-size:14px;font-weight:700}.difficulty-trigger-dot,.difficulty-option-dot{width:9px;height:9px;border-radius:50%;background:var(--difficulty-accent, var(--primary));box-shadow:0 0 0 6px color-mix(in srgb,var(--difficulty-accent, var(--primary)) 14%,transparent);flex:0 0 auto}.difficulty-trigger-arrow{color:var(--muted-strong);font-size:13px;line-height:1;transition:var(--button-transition)}.difficulty-dropdown.open .difficulty-trigger-arrow{color:var(--primary-deep)}.difficulty-menu{position:absolute;top:calc(100% + 10px);left:0;right:0;z-index:50;max-height:288px;overflow-x:hidden;overflow-y:auto;padding:10px;border-radius:20px;border:1px solid rgba(161,140,255,.16);background:#fffffff7;box-shadow:0 26px 56px -28px #6d3ff25c;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.difficulty-menu:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.28),transparent 32%)}.difficulty-menu>*+*{margin-top:6px}.difficulty-option{--difficulty-accent: var(--primary);--difficulty-soft: rgba(139, 92, 246, .12);--difficulty-border: rgba(139, 92, 246, .18);position:relative;width:100%;min-height:42px;border:1px solid transparent;border-radius:14px;background:transparent;color:var(--text);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 12px;text-align:left;transition:var(--button-transition)}.gallery-section{position:relative;z-index:1}.difficulty-option:hover{border-color:var(--difficulty-border);background:var(--difficulty-soft);transform:translate(2px)}.difficulty-option.selected{border-color:var(--difficulty-border);background:linear-gradient(135deg,var(--difficulty-soft) 0%,rgba(255,255,255,.98) 100%);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--difficulty-accent) 10%,transparent)}.difficulty-option-main{display:inline-flex;align-items:center;gap:10px;min-width:0;font-size:14px;font-weight:700}.difficulty-option-check{color:var(--difficulty-accent);font-size:14px;font-weight:800;line-height:1}.difficulty-tone-all{--difficulty-accent: var(--primary);--difficulty-soft: rgba(139, 92, 246, .14);--difficulty-border: rgba(139, 92, 246, .24)}.difficulty-tone-easy{--difficulty-accent: var(--easy);--difficulty-soft: rgba(34, 181, 115, .12);--difficulty-border: rgba(34, 181, 115, .22)}.difficulty-tone-hard{--difficulty-accent: var(--hard);--difficulty-soft: rgba(240, 100, 100, .12);--difficulty-border: rgba(240, 100, 100, .22)}.difficulty-tone-extreme{--difficulty-accent: #d9831b;--difficulty-soft: rgba(242, 161, 58, .14);--difficulty-border: rgba(242, 161, 58, .24)}.difficulty-tone-neutral{--difficulty-accent: var(--neutral);--difficulty-soft: rgba(143, 130, 170, .12);--difficulty-border: rgba(143, 130, 170, .22)}.control-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding:0 40px 0 14px;background-image:linear-gradient(45deg,transparent 50%,rgba(109,95,136,.78) 50%),linear-gradient(135deg,rgba(109,95,136,.78) 50%,transparent 50%);background-position:calc(100% - 18px) calc(50% - 2px),calc(100% - 12px) calc(50% - 2px);background-size:6px 6px,6px 6px;background-repeat:no-repeat}.control-select option{background:#fffffffa;color:var(--text)}.control-select option:checked,.control-select option:hover,.control-select option:focus{background:#fffffffa;color:var(--text)}.toggle-pill{width:100%;height:48px;padding:0 14px;border:1px solid rgba(161,140,255,.18);background:#f5f1ffe0;display:flex;align-items:center;justify-content:space-between;color:var(--muted-strong);font-weight:700}.toggle-pill:hover:not(:disabled){border-color:#8b5cf661;background:linear-gradient(135deg,#8b5cf624,#6d3ff233);color:var(--primary-deep);box-shadow:0 18px 36px -26px #6d3ff26b}.toggle-pill.active{color:var(--primary-deep);border-color:#8b5cf642}.toggle-pill.active:hover:not(:disabled){border-color:#8b5cf6b8;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-deep) 100%);color:#fff}.toggle-track{width:40px;height:22px;border-radius:999px;background:#beb4e0cc;position:relative}.toggle-thumb{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 6px 14px -8px #0006;transition:transform .22s ease}.toggle-pill.active .toggle-track{background:#8b5cf6e0}.toggle-pill.active .toggle-thumb{transform:translate(18px)}.action-btn{height:48px;padding:0 16px;border:1px solid rgba(161,140,255,.18);background:#fffffff0;color:var(--text);font-weight:700}.action-btn.small{height:36px;padding:0 12px;font-size:13px}.pending-mini-actions .action-btn{min-width:110px}.action-btn.wide{width:100%;justify-content:center}.action-btn:disabled,.ghost-link:disabled{opacity:.45;cursor:not-allowed}.demo-card-action:active:not(:disabled),.action-btn:active:not(:disabled),.segment-btn:active:not(:disabled),.sort-btn:active:not(:disabled),.toggle-pill:active:not(:disabled),.upload-orb:active:not(:disabled),.image-review-trigger:active:not(:disabled){transform:scale(.97)}.ghost-link{border:none;background:transparent;padding:0;color:var(--muted-strong);font-size:14px;font-weight:700}.ghost-link:hover:not(:disabled){color:var(--primary-deep)}.ghost-link.danger,.ghost-link.danger:hover:not(:disabled){color:var(--danger)}.score-progress{margin-top:12px}.score-progress-track,.image-card-progress{height:8px;border-radius:999px;background:#ece8f6eb;overflow:hidden}.score-progress-bar,.image-card-progress-bar{height:100%;border-radius:inherit}.score-progress-bar{background:linear-gradient(90deg,#c4afff,var(--primary))}.score-progress-text{margin-top:8px;color:var(--muted-strong);font-size:12px}.stats-cluster{min-width:180px;justify-content:flex-end;justify-self:end}.gallery-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:14px;flex:1;flex-wrap:wrap}.gallery-scope-switch{margin-left:6px}.gallery-actions{padding:4px;border-radius:16px;background:#f7f3ffeb;border:1px solid rgba(161,140,255,.14);box-shadow:0 16px 34px -28px #6d3ff247}.gallery-action-btn{height:36px;padding:0 14px;border:1px solid rgba(161,140,255,.14);border-radius:12px;background:#fffffff0;color:var(--text);font-size:13px;font-weight:700;transition:var(--button-transition)}.gallery-action-btn:hover:not(:disabled){border-color:#8b5cf666;background:#f4eefff5;color:var(--primary-deep);box-shadow:0 14px 28px -22px #6d3ff257}.gallery-action-btn:disabled{opacity:.45;cursor:not-allowed}.gallery-action-btn.danger{color:#d76f76;background:#fff4f4f0;border-color:#ef6a6a29}.gallery-action-btn.danger:hover:not(:disabled){color:#d94f4f;border-color:#ef6a6a4d;background:#ffefeffa;box-shadow:0 14px 28px -22px #ef6a6a38}.gallery-sort{padding:4px 6px;border-radius:999px;background:#ffffff80;border:1px solid rgba(161,140,255,.1);gap:6px}.gallery-sort-label{padding:0 6px 0 2px;color:var(--muted);font-size:12px;font-weight:700}.sort-btn.sort-btn-minor{min-width:52px;height:30px;padding:0 10px;border-radius:999px;border-color:transparent;background:transparent;color:var(--muted-strong);box-shadow:none;font-size:12px}.sort-btn.sort-btn-toggle{min-width:70px}.sort-btn.sort-btn-minor:hover:not(:disabled):not(.active){border-color:#a18cff29;background:#f5f1ffeb;color:var(--primary-deep);box-shadow:none}.sort-btn.sort-btn-minor.active,.sort-btn.sort-btn-minor.active:hover:not(:disabled){border-color:#8b5cf62e;background:#eee8fff5;color:var(--primary-deep);box-shadow:none}.search-pill{display:flex;align-items:center;min-width:280px;padding:0 14px;background:#fffffff0;border:1px solid rgba(161,140,255,.16)}.search-pill input{border:none;background:transparent;padding:0}.search-pill input:focus,.control-select:focus,.model-select:focus{outline:none}.search-icon{margin-right:10px;color:var(--muted)}.grid-wrap{position:relative;margin-top:18px}.grid-loading{position:absolute;top:-8px;right:0;z-index:2;padding:6px 12px;border-radius:999px;background:#fffffff0;border:1px solid rgba(161,140,255,.16);color:var(--muted-strong);font-size:12px}.image-grid{display:grid;gap:22px;align-items:start}.image-card{position:relative;border-radius:20px;overflow:visible;cursor:pointer;transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease;padding:18px 18px 14px;isolation:isolate;--card-glow-x: 50%;--card-glow-y: 50%;--card-glow-opacity: 0}.image-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;padding:2px;background:radial-gradient(180px circle at var(--card-glow-x) var(--card-glow-y),rgba(168,85,247,.92),rgba(236,72,153,.68) 48%,transparent 72%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;opacity:var(--card-glow-opacity);transition:opacity .28s ease;pointer-events:none;z-index:1}.image-card>*{position:relative;z-index:2}.image-card:hover{transform:translateY(-3px)}.image-card.readonly{cursor:default}.image-card.selected{border-color:#8b5cf67a;box-shadow:0 0 0 3px #8b5cf624,var(--shadow-soft)}.image-card-frame{padding:6px;border-radius:16px;border:1px solid rgba(161,140,255,.16);background:#ffffffd6}.image-card-media{position:relative;aspect-ratio:4 / 3;overflow:hidden;border-radius:12px;background:linear-gradient(180deg,#fdfbfff2,#f4f0fae0)}.image-card-thumb{width:100%;height:100%;object-fit:contain;transition:transform .45s ease,opacity .45s ease}.image-card:hover .image-card-thumb{transform:scale(1.05)}.badge-easy{color:var(--easy);background:var(--easy-soft);border:1px solid rgba(34,181,115,.22)}.badge-hard{color:var(--hard);background:var(--hard-soft);border:1px solid rgba(240,100,100,.22)}.badge-extreme{color:#d9831b;background:var(--extreme-soft);border:1px solid rgba(242,161,58,.24)}.badge-neutral{color:var(--neutral);background:#f5f3fbf2;border:1px solid rgba(143,130,170,.18)}.image-card-body{padding:14px 2px 0}.image-card-head-row{display:flex;align-items:center;gap:10px;min-width:0;margin-bottom:12px}.image-card-name{flex:1 1 auto;min-width:0;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700;color:var(--muted-strong);font-size:13px;line-height:1.25;margin-bottom:0}.image-card-level-pill{display:inline-flex;align-items:center;flex:0 0 auto;gap:7px;min-height:28px;padding:0 10px;border-radius:999px;font-size:13px;font-weight:800;line-height:1}.level-pill-dot{width:7px;height:7px;border-radius:50%;background:currentColor}.image-card-score-row{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:13px}.image-card-score-label{color:var(--muted)}.image-card-score-value{font-weight:700;color:var(--text)}.image-card-progress{margin-top:8px}.image-card-divider{height:1px;margin:12px 0 10px;background:#a18cff29}.image-card-action-row{display:flex;align-items:center;gap:12px;margin-top:12px}.image-card-select-row{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto;color:var(--muted-strong);font-size:13px;cursor:pointer;white-space:nowrap}.image-card-select-row input{width:16px;height:16px;accent-color:var(--primary)}.image-review-trigger{width:auto;flex:1 1 auto;min-width:0;margin-top:0;min-height:42px;border:1px solid rgba(161,140,255,.14);border-radius:14px;background:linear-gradient(180deg,#f5f0ffe0,#f1ebfff5);color:#8a63f3;display:flex;align-items:center;justify-content:center;gap:10px;padding:0 14px;font-size:13px;font-weight:700;line-height:1;white-space:nowrap;transition:var(--button-transition)}.image-review-trigger:hover:not(:disabled){border-color:#8b5cf6b8;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-deep) 100%);color:#fff;box-shadow:0 20px 40px -24px #6d3ff294}.image-review-label{display:inline-block;letter-spacing:.01em}.image-review-caret{font-size:11px;flex:0 0 auto}.image-grid.image-grid-cols-4 .image-review-trigger{min-height:46px;padding:0 16px;font-size:15px;gap:10px}.image-grid.image-grid-cols-4 .image-card-action-row{gap:14px}.image-grid.image-grid-cols-4 .image-review-caret{font-size:12px}.image-grid.image-grid-cols-6 .image-review-trigger{min-height:42px;padding:0 14px;font-size:13px;gap:9px}.image-grid.image-grid-cols-6 .image-review-caret{font-size:11px}.image-grid.image-grid-cols-8 .image-review-trigger{min-height:36px;padding:0 10px;font-size:11px;gap:7px}.image-grid.image-grid-cols-8 .image-card-action-row{gap:8px}.image-grid.image-grid-cols-8 .image-card-select-row{gap:6px;font-size:12px}.image-grid.image-grid-cols-8 .image-card-select-row input{width:15px;height:15px}.image-grid.image-grid-cols-8 .image-review-caret{font-size:9px}.image-review-panel{margin-top:14px;padding:12px;border-radius:16px;background:#f7f4ffeb;border:1px solid rgba(161,140,255,.16)}.image-review-panel .review-panel-head strong{font-size:14px;line-height:1.2}.image-review-panel .ghost-link{font-size:12px;font-weight:600}.image-review-panel .review-current{font-size:12px;line-height:1.45}.review-panel-head,.review-weight,.csv-head,.detail-preview-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.review-weight{margin:10px 0 6px;color:var(--muted-strong)}.image-review-panel .review-weight{font-size:12px}.image-review-panel .review-weight strong{font-size:12px;font-weight:700}.weight-slider{width:100%;accent-color:var(--primary)}.image-review-panel .action-btn{height:42px;font-size:13px;border-radius:12px}.review-ok{margin-top:12px;padding:12px;border-radius:16px;background:#edfcf5f0;border:1px solid rgba(34,181,115,.2);display:grid;gap:10px}.review-ok-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.review-ok-main{min-width:0}.review-ok-title{font-weight:800;color:#138558;font-size:13px;line-height:1.2}.review-ok-message{margin-top:4px;color:#12734b;font-size:12px;line-height:1.55;overflow-wrap:anywhere}.review-ok-close{flex:0 0 auto;align-self:flex-start;padding-top:1px}.review-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}.review-meta-item{display:flex;flex-direction:column;justify-content:space-between;gap:6px;min-height:62px;padding:8px 10px;border-radius:12px;background:#ffffffd1;border:1px solid rgba(34,181,115,.14)}.review-meta-label{display:block;color:#4b9a78;font-size:11px;margin-bottom:3px;line-height:1.35}.review-meta-value{color:#15744c;font-size:13px;font-weight:700;line-height:1.15}.bar-easy{background:linear-gradient(90deg,#79e2b4,var(--easy))}.bar-hard{background:linear-gradient(90deg,#f8a0a0,var(--hard))}.bar-extreme{background:linear-gradient(90deg,#f6c77b,#f0a43e)}.bar-neutral{background:linear-gradient(90deg,#d6d0e9,#b0a4d0)}.image-card-easy,.image-card-hard,.image-card-extreme,.image-card-neutral{background:linear-gradient(180deg,#fffffffa,#f8f6fcfa)}.detail-page{margin-top:8px}.detail-page-top{margin-bottom:12px}.detail-page-header{display:grid;grid-template-columns:1fr auto;gap:14px;margin-bottom:14px}.detail-page-title,.detail-img-wrap,.csv-box,.csv-table-wrap,.detail-fit-toggle{background:#ffffffeb;border:1px solid rgba(161,140,255,.16)}.detail-page-title{border-radius:18px;padding:14px 16px;font-weight:800}.detail-page-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);gap:18px}.detail-fit-toggle{display:inline-flex;align-items:center;gap:14px;padding:8px 12px;border-radius:999px}.radio{color:var(--muted-strong);font-size:13px}.radio.compact{display:inline-flex;align-items:center;gap:6px}.detail-img-wrap{border-radius:18px;overflow:auto;max-height:70vh}.detail-img-wrap .detail-img{width:100%;display:block}.detail-img-wrap.origin .detail-img{width:auto;max-width:none}.detail-img{width:100%;border-radius:16px}table{width:100%;border-collapse:collapse;border-radius:16px;overflow:hidden;background:#ffffffeb}th,td{padding:11px 12px;border:1px solid rgba(161,140,255,.12);text-align:left;font-size:13px}th{background:#f6f2fff5;font-weight:800}.csv-table-wrap{border-radius:18px;overflow:auto;max-height:480px}.csv-table td.numeric{text-align:right;font-variant-numeric:tabular-nums}.csv-box{border-radius:18px;padding:14px;white-space:pre-wrap;font-family:Consolas,monospace}.busy-wrap{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:flex;align-items:center;justify-content:center;background:#20192f29;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.busy-card{width:min(320px,calc(100vw - 32px));border-radius:24px;padding:24px;text-align:center;background:#fffffff5;border:1px solid rgba(161,140,255,.16);box-shadow:var(--shadow)}.busy-spinner{width:48px;height:48px;margin:0 auto 16px;border-radius:50%;border:4px solid rgba(161,140,255,.18);border-top-color:var(--primary);animation:spin .8s linear infinite}.busy-text{font-weight:700}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes upload-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#a18cff66;border-radius:999px}@media(max-width:1400px){.control-hub{grid-template-columns:1fr}.control-divider{width:100%;height:1px}.control-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:1100px){.topbar,.gallery-head,.section-heading,.detail-page-header,.detail-page-grid{grid-template-columns:1fr;display:grid}.topbar{position:static}.demo-grid,.image-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}@media(max-width:760px){.app-shell{padding:16px}.topbar,.control-hub,.demo-card-inner{padding:18px}.brand-block,.topbar-actions,.upload-cluster,.stats-cluster,.gallery-toolbar{flex-direction:column;align-items:stretch}.demo-grid,.image-grid,.control-grid,.review-meta{grid-template-columns:1fr!important}.search-pill{min-width:0;width:100%}.image-review-trigger{min-height:42px;padding:0 14px;font-size:13px;gap:9px}.image-review-caret{font-size:11px}}
